From 680ccbedf08839143215f40dea5273dc2819100c Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 30 十月 2024 23:26:33 +0800
Subject: [PATCH] 优化WMS、WCS用户管理

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |  121 ++++++++++++++++++++++++++++------------
 1 files changed, 85 insertions(+), 36 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 989566b..acb22e2 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"
@@ -16,6 +16,7 @@
 #endregion << 鐗� 鏈� 娉� 閲� >>
 
 using AutoMapper;
+using Newtonsoft.Json;
 using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
 using SqlSugar;
 using System;
@@ -27,9 +28,12 @@
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Common.WMSInfo;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_DTO.WMSInfo;
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
@@ -64,7 +68,6 @@
             _taskExecuteDetailRepository = taskExecuteDetailRepository;
             _mapper = mapper;
         }
-
         /// <summary>
         /// 鎺ユ敹WMS浠诲姟淇℃伅
         /// </summary>
@@ -120,34 +123,68 @@
             }
             return content;
         }
-
-
-
         /// <summary>
-        /// 鏍规嵁鎵樼洏鍙枫�佽捣濮嬪湴鍧�鍚慦MS璇锋眰浠诲姟
+        /// 杈撻�佺嚎鍏ュ簱瀹屾垚鍚慦MS鐢宠鍏ュ簱/鍫嗗灈鏈虹敵璇峰叆搴�
         /// </summary>
-        /// <param name="palletCode">鎵樼洏鍙�</param>
-        /// <param name="sourceAddress">璧峰鍦板潃</param>
+        /// <param name="task"></param>
         /// <returns></returns>
-        public WebResponseContent RequestWMSTask(string palletCode, string sourceAddress)
+        public WebResponseContent StackerCraneRequestInbound(Dt_Task task)
         {
             WebResponseContent content = new WebResponseContent();
             try
             {
-                WMSTaskDTO taskDTO = new WMSTaskDTO()
+                ConveyorLineDTO lineDTO = new ConveyorLineDTO()
                 {
-                    TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
-                    Grade = 1,
-                    PalletCode = palletCode,
-                    RoadWay = "SC01",
-                    SourceAddress = sourceAddress,
-                    TargetAddress = "SC01",
-                    TaskState = (int)TaskInStatusEnum.InNew,
-                    Id = 0,
-                    TaskType = (int)TaskInboundTypeEnum.Inbound
+                    stationCode = task.CurrentAddress,
+                    TaskNum = task.TaskNum,
+                    Barcode = task.PalletCode
                 };
+                var ResultData = HttpHelper.PostAsync(WMSIP.StackerCraneRequestInbound, lineDTO.ToJson(), headers: new Dictionary<string, string>());
+                if (ResultData.Result == null) throw new Exception($"鍚慦MS璇锋眰鍏ュ簱鍒嗛厤璐т綅澶辫触!浠诲姟鍙�:{task.TaskNum}");
+                content = JsonConvert.DeserializeObject<WebResponseContent>(ResultData.Result);
+                if (content.Status)
+                {
+                    var receiveWMSInfo = JsonConvert.DeserializeObject<ReceiveWMSInfo>(content.Data.ToJson());
+                    task.IsPickPlace = receiveWMSInfo.IsPickPlace;
+                    task.TargetAddress = receiveWMSInfo.TargetAddress;
+                    task.NextAddress = task.TargetAddress;
+                    BaseDal.UpdateData(task);
+                }
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
 
-                content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
+        /// <summary>
+        /// 杈撻�佺嚎妫�娴嬪彛鍚慦MS鐢宠鍏ュ簱
+        /// </summary>
+        /// <param name="palletCode">鎵樼洏鍙�</param>
+        /// <param name="sourceAddress">璧峰鍦板潃</param>
+        /// <returns></returns>
+        public WebResponseContent RequestWMSTask(ConveyorLineDTO lineDTO)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                #region 鍚慦MS鐢宠
+                var ResultData = HttpHelper.PostAsync(WMSIP.ConveyorLineRequestInbound, lineDTO.ToJson(), headers: new Dictionary<string, string>());
+                if (ResultData.Result == null) throw new Exception($"鍚慦MS璇锋眰鍏ュ簱澶辫触!鎵樼洏鍙�:{lineDTO.Barcode}");
+
+                content = JsonConvert.DeserializeObject<WebResponseContent>(ResultData.Result);
+                //if (content != null && content.Status)//浠诲姟杞崲
+                //{
+                //    var task = JsonConvert.DeserializeObject<Dt_Task>(content.Data.ToJson());
+                //    #region 浠诲姟淇℃伅鍙樻洿
+
+
+                //    #endregion
+                //    content.Data = task;
+                //    content.Status = BaseDal.UpdateData(task);
+                //}
+                #endregion
             }
             catch (Exception ex)
             {
@@ -162,9 +199,9 @@
         /// <param name="deviceNo">璁惧缂栧彿</param>
         /// <param name="currentAddress">褰撳墠鍦板潃</param>
         /// <returns></returns>
-        public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress)
+        public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress, string Barcode)
         {
-            return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy);
+            return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.PalletCode == Barcode && x.TaskState == (int)TaskInStatusEnum.AGV_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy);
         }
 
         /// <summary>
@@ -466,23 +503,35 @@
                     task.TaskState = nextStatus;
                     task.ModifyDate = DateTime.Now;
                     task.Modifier = "System";
-                    BaseDal.UpdateData(task);
-                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�");
 
-                    WMSTaskDTO taskDTO = new WMSTaskDTO()
+                    #region 鍚慦MS鍙嶉鍫嗗灈鏈轰换鍔″畬鎴�
+                    WMSTaskDTO WMStask = _mapper.Map<WMSTaskDTO>(task);
+                    var ResultData = HttpHelper.PostAsync(WMSIP.UpdateTaskStatus, WMStask.ToJson(), headers: new Dictionary<string, string>());
+                    if (ResultData.Result == null) throw new Exception($"浠诲姟鐘舵�佸悓姝ュ埌WMS澶辫触!浠诲姟鍙�:{task.TaskNum}");
+                    content = JsonConvert.DeserializeObject<WebResponseContent>(ResultData.Result);
+                    if (content.Status)
                     {
-                        TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
-                        Grade = 1,
-                        PalletCode = task.PalletCode + "S",
-                        RoadWay = "SC01",
-                        SourceAddress = task.TargetAddress,
-                        TargetAddress = "CLOutAreaA",
-                        TaskState = (int)TaskOutStatusEnum.OutNew,
-                        Id = 0,
-                        TaskType = (int)TaskOutboundTypeEnum.Outbound
-                    };
+                        BaseDal.UpdateData(task);
+                        _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�");
+                    }
+                    #endregion
 
-                    content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
+
+
+                    //WMSTaskDTO taskDTO = new WMSTaskDTO()
+                    //{
+                    //    TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
+                    //    Grade = 1,
+                    //    PalletCode = task.PalletCode + "S",
+                    //    RoadWay = "SC01",
+                    //    SourceAddress = task.TargetAddress,
+                    //    TargetAddress = "CLOutAreaA",
+                    //    TaskState = (int)TaskOutStatusEnum.OutNew,
+                    //    Id = 0,
+                    //    TaskType = (int)TaskOutboundTypeEnum.Outbound
+                    //};
+
+                    //content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
                 {
@@ -645,7 +694,7 @@
                 TaskType = (int)TaskOtherTypeEnum.RelocationCar,
                 SourceAddress = SourceAddress,
                 TargetAddress = TargetAddress,
-                CurrentAddress = "",
+                CurrentAddress = SourceAddress,
                 NextAddress = TargetAddress,
                 CreateDate = DateTime.Now,
                 Creater = "WCS",

--
Gitblit v1.9.3