From d41acebbd89f171b0eeb205fca4f68043ca85f95 Mon Sep 17 00:00:00 2001
From: Admin <Admin@ADMIN>
Date: 星期三, 03 十二月 2025 19:47:24 +0800
Subject: [PATCH] 选配与暂存
---
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 287 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 286 insertions(+), 1 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 219d861..eeef14e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -4,6 +4,7 @@
using Newtonsoft.Json;
using SqlSugar;
using System.Diagnostics.CodeAnalysis;
+using System.Threading.Tasks;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_BasicInfoService;
using WIDESEAWCS_Common;
@@ -18,9 +19,12 @@
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob.DeviceBase;
+using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_QuartzJob.DTO;
namespace WIDESEAWCS_TaskInfoService
{
@@ -36,6 +40,7 @@
private readonly IRouterRepository _routerRepository;
private readonly ITask_HtyRepository _taskHtyRepository;
private readonly IDt_needBarcodeRepository _taskNeedBarcodeRepository;
+
private Dictionary<string, OrderByType> _taskOrderBy = new()
{
@@ -95,6 +100,7 @@
task.wheels_mttype = item.wheels_mttype;
task.WheelsNewOrOld = item.WheelsNewOrOld;
task.WheelsLX = item.WheelsLX;
+
// 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄嚭搴撲换鍔�
if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
@@ -103,12 +109,23 @@
List<Dt_Router> routers = _routerService.QueryNextRoutes(item.RoadWay, item.TargetAddress);
if (routers.Count > 0)
{
+
// 璁剧疆浠诲姟鐘舵�佷负鍑哄簱鏂板缓
- task.TaskState = (int)TaskOutStatusEnum.OutNew;
+ task.TaskState =(int)TaskOutStatusEnum.OutNew;
// 璁剧疆褰撳墠鍦板潃涓烘簮鍦板潃
task.CurrentAddress = item.SourceAddress;
// 璁剧疆涓嬩竴涓湴鍧�涓虹涓�涓瓙浣嶇疆
task.NextAddress = routers.FirstOrDefault().ChildPosi;
+
+ if (item.SourceAddress == "2009")
+ {
+ task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish;
+ // 璁剧疆涓嬩竴涓湴鍧�涓虹涓�涓瓙浣嶇疆
+ task.NextAddress = "2015";
+ }
+
+
+
}
else
{
@@ -825,5 +842,273 @@
}
#endregion 閲嶅啓鏂规硶
+
+ #region
+ public WebResponseContent UpWheelsFlow(SaveModel saveModel)
+ {
+ WebResponseContent webResponse = new WebResponseContent();
+ try
+ {
+ string CZTM = saveModel.MainData["CZTM"].ToString();
+ string TargetAddress = saveModel.MainData["TargetAddress"].ToString();
+ List<Dt_Task> taskt = BaseDal.QueryData(x => x.task_CZInfo == CZTM).ToList();
+ if (taskt.Count() == 0)
+ return webResponse.Error($"鏈壘鍒板搴旇溅杞达細{CZTM}鐨勮溅杞嚭搴撲俊鎭�");
+ foreach (var item in taskt)
+ {
+ item.Towhereabouts = TargetAddress;
+ }
+ BaseDal.UpdateData(taskt);
+ return webResponse.OK("淇敼鎴愬姛锛�");
+ }
+ catch (Exception ex)
+ {
+ // 濡傛灉鍙戠敓寮傚父锛屽垯璋冪敤content.Error鏂规硶锛岃褰曢敊璇俊鎭紝骞惰緭鍑洪敊璇俊鎭�
+ webResponse.Error(ex.Message);
+ return webResponse;
+ }
+ }
+ #endregion
+
+
+
+ //===========================杞﹁酱涓婃枡=====================
+ public WebResponseContent GetFeedbackAxleloading()
+ {
+
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+ var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+ var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestAxleloading)?.ConfigValue;
+ if (wmsBase == null || completeTask == null)
+ {
+ throw new InvalidOperationException("WMS IP 鏈厤缃�");
+ }
+ var wmsIpAddress = wmsBase + completeTask;
+ var taskDto = new RequestTaskDto()
+ {
+ PalletCode = "1",
+ };
+ var result = HttpHelper.PostAsync(wmsIpAddress,taskDto.ToJsonString()).Result;
+ content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+ return content;
+ }
+ catch (Exception ex)
+ {
+ return content.Error($"{ex.Message}");
+ }
+ }
+
+ public WebResponseContent UpdateAxleCurrentStatue(string CZTM)
+ {
+
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+ var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+ var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateAxleCurrentStatue)?.ConfigValue;
+ if (wmsBase == null || completeTask == null)
+ {
+ throw new InvalidOperationException("WMS IP 鏈厤缃�");
+ }
+ var wmsIpAddress = wmsBase + completeTask;
+ var keys = new Dictionary<string, object>()
+ {
+ {"CZTM", CZTM}
+ };
+
+
+ var taskDto = new RequestTaskDto()
+ {
+ PalletCode = CZTM,
+ };
+
+
+ var result = HttpHelper.PostAsync(wmsIpAddress, taskDto.ToJsonString()).Result;
+ content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+ return content;
+ }
+ catch (Exception ex)
+ {
+ return content.Error($"{ex.Message}");
+ }
+ }
+
+
+ //璇诲彇鐢宠锛岀粰agv涓嬪彂浠诲姟
+ public WebResponseContent GetAGVTaskdistribution(string TargetAddress,string Number)
+ {
+
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+ var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+ var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.genAgvSchedulingTask)?.ConfigValue;
+ if (wmsBase == null || completeTask == null)
+ {
+ throw new InvalidOperationException("WMS IP 鏈厤缃�");
+ }
+ IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1000");
+ CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
+ DeviceProDTO? deviceProDTOt = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == TargetAddress && x.DeviceProParamName == "ConveyorLineSingal");
+ if (conveyorLine.Communicator.Read<short>(deviceProDTOt.DeviceProAddress) == 1)
+ {
+
+
+ var wmsIpAddress = wmsBase + completeTask;
+ var taskDto = new RequestTaskDto()
+ {
+ RequestType = "999",
+ Position = TargetAddress,
+ };
+
+
+ var result = HttpHelper.PostAsync(wmsIpAddress, taskDto.ToJsonString()).Result;
+ content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+ if (content.Status)
+ {
+ List<Dt_Task> tasks = BaseDal.QueryData(x => x.axle_czh == Number);
+ if (tasks.Count > 0)
+ {
+ foreach (var task in tasks)
+ {
+ task.Towhereabouts = TargetAddress;
+ }
+ BaseDal.UpdateData(tasks);
+ }
+ }
+ }
+ else
+ {
+ content.Error();
+ }
+
+ return content;
+ }
+ catch (Exception ex)
+ {
+ return content.Error($"{ex.Message}");
+ }
+ }
+
+
+ public WebResponseContent SetPlcResponState(string TargetAddress)
+ {
+ try
+ {
+ IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1000");
+ CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
+ DeviceProDTO? deviceProDTOt = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == TargetAddress && x.DeviceProParamName == "ResponState");
+ if (conveyorLine.Communicator.Write(deviceProDTOt.DeviceProAddress, (short)2))
+ {
+ Console.Out.WriteLine("鎴愬姛锛佸啓鍑鸿溅杞寸嚎鏈agv鍙栬揣瀹屾垚淇″彿锛�2");
+ return WebResponseContent.Instance.OK();
+ }
+ else
+ {
+
+ bool st= conveyorLine.Communicator.Write(deviceProDTOt.DeviceProAddress, (short)3);
+ Console.Out.WriteLine($"鍐欏嚭杞﹁酱绾挎湯绔痑gv鍙栬揣瀹屾垚淇″彿澶辫触淇℃伅锛屽啓鍏ワ細3,鏄惁鎴愬姛锛歿st}");
+ return WebResponseContent.Instance.Error();
+ }
+ }
+ catch (Exception ex)
+ {
+ Console.Out.WriteLine($"鍐欏嚭杞﹁酱绾挎湯绔痑gv鍙栬揣瀹屾垚淇″彿澶辫触淇℃伅锛屾晠闅滀俊鎭細{ex.Message}");
+ return WebResponseContent.Instance.Error();
+ }
+ }
+
+ public WebResponseContent GetPlcState(string TargetAddress)
+ {
+
+ Dt_StationManager dt_Station=_stationManagerRepository.QueryFirst(x => x.stationLocation == TargetAddress);
+ if(dt_Station == null)
+ return WebResponseContent.Instance.Error("鏈壘鍒板帇瑁呬綅淇℃伅锛�");
+ if(dt_Station.stationStatus=="0")
+ return WebResponseContent.Instance.Error("璇ュ帇瑁呬綅宸茶绂佺敤锛佷笉鍙敓鎴恆gv浠诲姟");
+
+ IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1000");
+ CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
+
+ //DeviceProDTO? devicePr = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == "2033" && x.DeviceProParamName == "ConveyorLineSingal");
+ short agv20 = conveyorLine.Communicator.Read<short>("DB5.794");
+ if (agv20 != 1) //鑾峰彇涓嬭酱澶勬槸鍚︽湁鏂欏崰鐢�
+ {
+ return WebResponseContent.Instance.Error($"鏈娴嬪埌agv鍙栨枡绔欏彴鏈夎揣锛屼笉鍙笅鍙戜换鍔★紝璇诲彇鍒帮細{agv20}");
+ }
+
+
+
+
+ DeviceProDTO? deviceProDTOt = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == TargetAddress && x.DeviceProParamName == "ConveyorLineSingal");
+ DeviceProDTO? deviceProDTOt2 = conveyorLine.DeviceProDTOs.Find(x => x.DeviceChildCode == TargetAddress && x.DeviceProParamName == "ResponState");
+ if (conveyorLine.Communicator.Read<short>(deviceProDTOt.DeviceProAddress)==1)
+ {
+ conveyorLine.Communicator.Write(deviceProDTOt2.DeviceProAddress,(short)1);
+ return WebResponseContent.Instance.OK();
+ }
+ else
+ {
+ conveyorLine.Communicator.Write(deviceProDTOt2.DeviceProAddress, (short)2);
+ return WebResponseContent.Instance.Error("璇诲彇鍒板帇瑁呬綅淇″彿鍙嶉涓嶅彲鏀捐揣锛佷笉鍙敓鎴恆gv浠诲姟");
+ }
+ }
+
+
+
+ public WebResponseContent SetPlcPalletCode(SaveModel saveModel)
+ {
+ WebResponseContent webResponse = new WebResponseContent();
+ try
+ {
+ if (saveModel.DelKeys.Count != 2)
+ {
+ return webResponse.Error("wcs浼犲弬閿欒锛�");
+ }
+ string AddStitic = saveModel.DelKeys[0].ToString();
+ if (AddStitic == "") return webResponse.Error("閫夋嫨鐨勭珯鍙颁负绌猴紝璇烽�夋嫨閫夋嫨绔欏彴锛�");
+ string PalletCode = saveModel.DelKeys[1].ToString();
+ if (PalletCode == "") return webResponse.Error("杈撳叆鐨勬潯鐮佷负绌猴紝璇疯緭鍏ユ潯鐮佷俊鎭紒");
+
+ IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1000");
+ CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
+
+ bool setplc = false;
+ switch (AddStitic)
+ {
+ case "1010":
+ setplc = conveyorLine.Communicator.Write("DB5.914", (string)PalletCode);
+ break;
+ case "2015":
+ setplc = conveyorLine.Communicator.Write("DB5.434", (string)PalletCode);
+ break;
+ case "2017":
+ setplc = conveyorLine.Communicator.Write("DB5.554", (string)PalletCode);
+ break;
+ case "2021":
+ setplc = conveyorLine.Communicator.Write("DB5.794", (string)PalletCode);
+ break;
+ }
+
+ if (setplc)
+ {
+ return webResponse.OK($"瀵箋AddStitic}绔欏彴鍐欏叆鏉$爜锛歿PalletCode}锛屾垚鍔�");
+ }
+ else
+ {
+ return webResponse.Error($"瀵箋AddStitic}绔欏彴鍐欏叆鏉$爜锛歿PalletCode}锛屽け璐�");
+ }
+ }
+ catch (Exception ex)
+ {
+ return webResponse.Error($"閿欒淇℃伅锛歿ex.Message}");
+ throw;
+ }
+ }
}
}
\ No newline at end of file
--
Gitblit v1.9.3