From 219a08427376efdd304e9b11e481ccd8276018bb Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期六, 18 十月 2025 11:14:29 +0800
Subject: [PATCH] 巷道形式存取放物料
---
Wms/Utility/Tools/RcsHelper.cs | 132 ++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 126 insertions(+), 6 deletions(-)
diff --git a/Wms/Utility/Tools/RcsHelper.cs b/Wms/Utility/Tools/RcsHelper.cs
index 0cd9b43..88d44ab 100644
--- a/Wms/Utility/Tools/RcsHelper.cs
+++ b/Wms/Utility/Tools/RcsHelper.cs
@@ -1,15 +1,19 @@
锘縰sing Model.InterFaceModel;
+using SqlSugar;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;
using ZXing;
using static Model.InterFaceModel.RCSModel;
+using WMS.Entity.Context;
+using WMS.Entity.SysEntity;
namespace Utility.Tools
{
public static class RcsHelper
{
+ private static readonly SqlSugarScope Db = DataContext.Db;
/// <summary>
/// 涓嬪彂浠诲姟
/// </summary>
@@ -21,12 +25,37 @@
public static bool CreateTaskForAgv(TaskDetial taskDetial, string url, out string agvMsg, string priority = null)
{
bool result = false;
+ var tasktype = "";
+ switch (taskDetial.Crtype)
+ {
+ case "1": //鍙《
+ tasktype = "F12";
+ break;
+ case "2": //鍙溅
+ tasktype = "F12";
+ break;
+ case "3": //娓呮礂鏈哄彨鑴忔《
+ tasktype = "F20";
+ break;
+ case "4": //娓呮礂鏈哄彇鍑�妗�
+ tasktype = "F21";
+ break;
+ default:
+ break;
+ }
+
+ //璺ㄦゼ灞備换鍔asktype鍊艰祴鍊尖�︹��
+ if (taskDetial.Endport.Substring(0,3) == "C01")
+ {
+ tasktype = "F23";
+ }
+
List<targetRoute> pahtList = new List<targetRoute>();
//璧峰浣嶇疆
targetRoute royte1 = new targetRoute();
royte1.seq = 0;
- royte1.type = "ZONE";
+ royte1.type = "SITE";
royte1.code = taskDetial.Startport;
pahtList.Add(royte1);
@@ -34,18 +63,109 @@
//鐩爣浣嶇疆
targetRoute royte2 = new targetRoute();
royte2.seq = 0;
- royte2.type = "ZONE";
+ royte2.type = "SITE";
royte2.code = taskDetial.Endport;
pahtList.Add(royte2);
AgvCreateTaskModel taskModel = new AgvCreateTaskModel();
- taskModel.taskType = "PF-LMR-COMMON";
+ taskModel.taskType = tasktype;
taskModel.targetRoute = pahtList;
+ taskModel.initPriority = 100;
+ taskModel.robotTaskCode = taskDetial.Taskno;
+
+ //AGV浠诲姟涓嬪彂鏃跺鍔爃earder:X-LR-REQUEST-ID,鍊间负闅忔満鏁�
+ long ran = DateTime.Now.Ticks;
+ Dictionary<string, string> key = new Dictionary<string, string>();
+ key.Add("X-LR-REQUEST-ID", ran.ToString());
// 姝e紡杩愯绋嬪簭鏀惧紑
var jsonData = JsonConvert.SerializeObject(taskModel);
- string response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV");
+ string response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV杞繍鍛戒护", "AGV", key);
+ //瑙f瀽杩斿洖鏁版嵁
+ var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
+ if (agvModel.Code == "SUCCESS")
+ {
+ result = true;//缁欎笅杞︿笅鍙戜换鍔℃垚鍔�
+
+ agvMsg = "";
+ }
+ else
+ {
+ var logStr = $@".\log\AGV\涓嬪彂缁橝GV杞繍鍛戒护" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+ LogFile.SaveLogToFile($"涓嬪彂缁橝GV杞繍鍛戒护寮傚父锛�( {agvModel.Message} ),", logStr);
+
+ agvMsg = agvModel.Message;
+ }
+
+ return result;
+ }
+ /// <summary>
+ /// 涓嬪彂AGV缁戝畾杞藉叿鍜岀珯鐐�
+ /// </summary>
+ /// <param name="palletNo">妗跺彿L</param>
+ /// <param name="url">璇锋眰鍦板潃</param>
+ /// <param name="agvMsg">杩斿洖淇℃伅</param>
+ /// <param name="locateNo">杩斿洖淇℃伅</param>
+ /// <returns></returns>
+ public static bool BindPalletAndSite(string palletNo,string locateNo,string url,out string agvMsg)
+ {
+
+ bool result = false;
+ carrierInfo carrierInfo = new carrierInfo();
+ carrierInfo.carrierCode = palletNo;
+ carrierInfo.siteCode = locateNo;
+
+ //AGV浠诲姟涓嬪彂鏃跺鍔爃earder:X-LR-REQUEST-ID,鍊间负闅忔満鏁�
+ long ran = DateTime.Now.Ticks;
+ Dictionary<string, string> key = new Dictionary<string, string>();
+ key.Add("X-LR-REQUEST-ID", ran.ToString());
+
+ // 姝e紡杩愯绋嬪簭鏀惧紑
+ var jsonData = JsonConvert.SerializeObject(carrierInfo);
+ string response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV缁戝畾杞藉叿鍛戒护", "AGV", key);
+ //瑙f瀽杩斿洖鏁版嵁
+ var agvModel = JsonConvert.DeserializeObject<AgvTaskBindBack>(response);
+ if (agvModel.code == "SUCCESS")
+ {
+ result = true;//缁欎笅杞︿笅鍙戜换鍔℃垚鍔�
+
+ agvMsg = "";
+ }
+ else
+ {
+ var logStr = $@".\log\AGV\涓嬪彂缁橝GV缁戝畾杞藉叿鍛戒护" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+ LogFile.SaveLogToFile($"涓嬪彂缁橝GV缁戝畾杞藉叿鍛戒护寮傚父锛�( {agvModel.message} ),", logStr);
+
+ agvMsg = agvModel.message;
+ }
+
+ return result;
+ }
+
+ /// <summary>
+ /// 涓嬪彂AGV瑙g粦杞藉叿鍜岀珯鐐�
+ /// </summary>
+ /// <param name="palletType">瀹瑰櫒绫诲瀷1锛�400L锛�2锛�800/1000L</param>
+ /// <param name="url">璇锋眰鍦板潃</param>
+ /// <param name="agvMsg">杩斿洖淇℃伅</param>
+ /// <param name="locateNo">杩斿洖淇℃伅</param>
+ /// <returns></returns>
+ public static bool UnBindPalletAndSite(string palletType, string locateNo,string url, out string agvMsg)
+ {
+ bool result = false;
+ carrierInfo carrierInfo = new carrierInfo();
+ carrierInfo.carrierCode = palletType;
+ carrierInfo.siteCode = locateNo;
+
+ //AGV浠诲姟涓嬪彂鏃跺鍔爃earder:X-LR-REQUEST-ID,鍊间负闅忔満鏁�
+ long ran = DateTime.Now.Ticks;
+ Dictionary<string, string> key = new Dictionary<string, string>();
+ key.Add("X-LR-REQUEST-ID", ran.ToString());
+
+ // 姝e紡杩愯绋嬪簭鏀惧紑
+ var jsonData = JsonConvert.SerializeObject(carrierInfo);
+ string response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV缁戝畾杞藉叿鍛戒护", "AGV", key);
//瑙f瀽杩斿洖鏁版嵁
var agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response);
if (agvModel.Code == "0")
@@ -56,8 +176,8 @@
}
else
{
- var logStr = $@".\log\AGV\涓嬪彂缁橝GV杞繍鍛戒护" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
- LogFile.SaveLogToFile($"涓嬪彂缁橝GV杞繍鍛戒护寮傚父锛�( {agvModel.Message} ),", logStr);
+ var logStr = $@".\log\AGV\涓嬪彂缁橝GV瑙g粦杞藉叿鍛戒护" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+ LogFile.SaveLogToFile($"涓嬪彂缁橝GV瑙g粦杞藉叿鍛戒护寮傚父锛�( {agvModel.Message} ),", logStr);
agvMsg = agvModel.Message;
}
--
Gitblit v1.8.0