From 99d55d437cc924429bb9589d5afe24f386cf8342 Mon Sep 17 00:00:00 2001 From: HuBingJie <3146306518@qq.com> Date: 星期四, 18 九月 2025 15:52:17 +0800 Subject: [PATCH] 1 --- 代码管理/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 579 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 434 insertions(+), 145 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" index 3d9ef05..ac8d38e 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" @@ -26,6 +26,7 @@ using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using SqlSugar; +using StackExchange.Profiling.Internal; using System; using System.Collections.Generic; using System.ComponentModel; @@ -49,6 +50,7 @@ using WIDESEAWCS_Core.Utilities; using WIDESEAWCS_DTO.Enum; using WIDESEAWCS_DTO.TaskInfo; +using WIDESEAWCS_ISystemServices; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; @@ -69,6 +71,7 @@ private readonly ITaskExecuteDetailRepository _taskExecuteDetailRepository; private readonly ITask_HtyService _task_HtyService; private readonly IMapper _mapper; + private readonly IEquipmentStatusService _equipmentStatus; private Dictionary<string, OrderByType> _taskOrderBy = new() @@ -83,7 +86,7 @@ public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList(); - public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService, IRouterRepository routerRepository) : base(BaseDal) + public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService, IRouterRepository routerRepository, IEquipmentStatusService equipmentStatus) : base(BaseDal) { _routerService = routerService; _taskExecuteDetailService = taskExecuteDetailService; @@ -91,7 +94,21 @@ _task_HtyService = task_HtyService; _mapper = mapper; _routerRepository = routerRepository; + _equipmentStatus = equipmentStatus; } + + /// <summary> + /// 鍏板墤WCS璋冨彇鎺ュ彛 + /// </summary> + public string urlLanJianWCSAPI = WIDESEAWCS_Core.Helper.AppSettings.Configuration["urlLanJianWCSAPI"]; + /// <summary> + /// 鍏板墤鎺ュ彛鍚嶏紙鍫嗗灈鏈鸿繍琛岀姸鎬侊級 + /// </summary> + public string LanJianStkRunStatus = WIDESEAWCS_Core.Helper.AppSettings.Configuration["LanJianStkRunStatus"]; + /// <summary> + /// 鍏板墤浠诲姟鍙嶉鎺ュ彛 + /// </summary> + public string LanJiantaskResult = WIDESEAWCS_Core.Helper.AppSettings.Configuration["LanJiantaskResult"]; /// <summary> /// 鎺ユ敹浠诲姟淇℃伅 @@ -100,11 +117,25 @@ /// <returns>杩斿洖澶勭悊缁撴灉</returns> public ExpoReverse TaskInstruction(ExpoTaskDTO expoTask) { + + ExpoReverse content = new ExpoReverse(); try { foreach (var item in expoTask.data) { + //鏌ヨ鏁版嵁搴擄紝鏌ョ湅鏄惁鏈夊綋鍓嶄换鍔� + Dt_Task dt_Tasks = BaseDal.QueryFirst(x => x.TaskNum == item.taskNo); + if (dt_Tasks != null) + { + content.code = 1; + content.msg = $"鏄庡拰WCS宸叉湁褰撳墠浠诲姟ID锛岃鍕块噸鏂颁笅鍙戯紝浠诲姟鍙凤細{dt_Tasks.TaskNum}"; + + WriteLog.Write_Log("浠诲姟鎺ユ敹", "浠诲姟閲嶅", "寮傚父浠诲姟", $"浠诲姟鍙凤細{dt_Tasks.TaskNum}閲嶅,鍏板墤绯荤粺涓嬪彂閲嶅浠诲姟锛侊紒锛�"); + return content; + } + + if (item.type == 1) //鍏ュ簱 { Dt_Task dt_Task = new Dt_Task(); @@ -171,11 +202,13 @@ content.msg = $"浠诲姟绫诲瀷閿欒锛寃cs鎺ユ敹鍒扮殑绫诲瀷涓猴細{item.type}"; } } + WriteLog.Write_Log("浠诲姟鎺ユ敹", "鎺ユ敹鍏板墤涓嬪彂浠诲姟", "鎴愬姛", $"鎺ユ敹鍒扮殑鏁版嵁涓猴細{expoTask.ToJson()}"); } catch (Exception ex) { content.code = 1; content.msg = $"鏁版嵁閿欒锛屽師鍥狅細{ex.Message}"; + WriteLog.Write_Log("浠诲姟鎺ユ敹", "鎺ユ敹鍏板墤涓嬪彂浠诲姟寮傚父", "寮傚父", ex.Message); } return content; } @@ -256,7 +289,6 @@ task.ModifyDate = DateTime.Now; BaseDal.UpdateData(task); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, task.ExceptionMessage); - content = WebResponseContent.Instance.OK(); } catch (Exception ex) @@ -482,158 +514,194 @@ WebResponseContent content = new WebResponseContent(); Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); - if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�"); + if (task == null) + return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�"); int oldState = task.TaskState; - if (task.TaskType == (int)TaskInboundTypeEnum.Inbound) + + try { - if (task.TaskState == (int)TaskInStatusEnum.RGV_InPickupExecuting) //鐢卞彇璐т腑==銆嬪彇璐у畬鎴� + if (task.TaskType == (int)TaskInboundTypeEnum.Inbound) { - task.TaskState = (int)TaskInStatusEnum.RGV_InPickupFinish; - task.CurrentAddress = "1021"; //鏀捐揣鐨勫湴鍧� - task.RGVTaskType = (int)RGVTaskTypeEnum.Placing; //鏀捐揣 + HandleInboundTask(task); } - else if (task.TaskState == (int)TaskInStatusEnum.RGV_InReleaseExecuting) + else if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound) { - task.TaskState = (int)TaskInStatusEnum.RGV_InReleaseFinish; - task.RGVTaskType = (int)RGVTaskTypeEnum.PickingUp; //鍙栬揣 - task.Roadway = "RGV104"; - } - else if (task.TaskState == (int)TaskInStatusEnum.RGV_InZicheExecuting) - { - Dt_Router dt_Router = _routerRepository.QueryFirst(x => x.StartPosi == task.CurrentAddress && x.ChildPosi == task.TargetAddress && x.IsEnd == false); - if (dt_Router != null) - { - if (task.CurrentAddress == "1061") //HCJ绔欏彴 - { - task.Roadway = "RGV107"; - } - task.TaskState = (int)TaskInStatusEnum.RGV_InZicheFinish; - task.RGVTaskType = (int)RGVTaskTypeEnum.Placing; //鍙栬揣 - task.CurrentAddress = dt_Router.NextPosi; - - } - else - { - if (task.TargetAddress == "3" && task.TargetAddress == "4") - { - task.TaskState = (int)TaskInStatusEnum.RGV_InZicheFinish; - task.RGVTaskType = (int)RGVTaskTypeEnum.Placing; //鍙栬揣 - task.CurrentAddress = "1061"; - } - } - } - else if (task.TaskState == (int)TaskInStatusEnum.RGV_InZicheReleaseExecuting) - { - task.TaskState = (int)TaskInStatusEnum.RGV_InZicheReleaseFinish; - task.RGVTaskType = (int)RGVTaskTypeEnum.TravelingOnly; - task.CurrentAddress = "1021"; //姝ゆ寰呬慨鏀癸紝闇�瑕佽�冭檻2鍙峰瓙杞︾Щ鍔� - } - else if (task.TaskState == (int)TaskInStatusEnum.RGV_InZichemoveExecuting) - { - Dt_Router dt_Router = _routerRepository.QueryFirst(x => x.IsEnd == true && x.ChildPosi == task.TargetAddress && x.InOutType == 1); - - task.TaskState = (int)TaskInStatusEnum.RGV_InZichemoveFinish; - task.RGVTaskType = (int)RGVTaskTypeEnum.TravelingOnly; - task.CurrentAddress = dt_Router.NextPosi; //姝ゆ寰呬慨鏀癸紝闇�瑕佽�冭檻2鍙峰瓙杞︾Щ鍔� - task.Roadway = dt_Router.ChildPosiDeviceCode; - } - else if (task.TaskState == (int)TaskInStatusEnum.RGV_InMothercarExecuting) - { - //鏈�鎬讳换鍔″畬鎴� - task.TaskState = (int)TaskInStatusEnum.RGV_InMothercarFinish; - } - } - else if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound) - { - if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutMothercarExecuting) - { - Dt_Router dt_Router = _routerRepository.QueryFirst(x => x.StartPosi == task.CurrentAddress && x.IsEnd == true && x.InOutType == 2); - if (dt_Router != null) - { - task.TaskState = (int)TaskOutStatusEnum.RGV_OutMothercarFinish; - task.CurrentAddress = dt_Router.NextPosi; - task.RGVTaskType = (int)RGVTaskTypeEnum.PickingUp; - task.Roadway = dt_Router.ChildPosiDeviceCode; //鏀捐揣鐨勫湴鍧� - } - else - { - Dt_Router dt_Rout = _routerRepository.QueryFirst(x => x.StartPosi == task.CurrentAddress && x.IsEnd == false && x.InOutType == 2); - task.TaskState = (int)TaskOutStatusEnum.RGV_OutMothercarFinish; - task.CurrentAddress = dt_Rout.StartPosi; - task.RGVTaskType = (int)RGVTaskTypeEnum.PickingUp; - task.Roadway = dt_Rout.ChildPosiDeviceCode; - } - } - else if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutZicheExecuting) - { - if ((task.CurrentAddress == "1101" || task.CurrentAddress == "1121") && task.TaskState == (int)TaskOutStatusEnum.RGV_OutZicheExecuting) - { - Dt_Router dt_Router = _routerRepository.QueryFirst(x => x.StartPosi == task.CurrentAddress && x.InOutType == 2); - task.TaskState = (int)TaskOutStatusEnum.RGV_OutZicheFinish; - task.RGVTaskType = (int)RGVTaskTypeEnum.Placing; - task.Roadway = dt_Router.ChildPosiDeviceCode; - task.CurrentAddress = dt_Router.NextPosi; - - } - else - { - task.TaskState = (int)TaskOutStatusEnum.RGV_OutZicheFinish; - task.RGVTaskType = (int)RGVTaskTypeEnum.Placing; - task.CurrentAddress = "1171"; - task.Roadway = "RGV116"; - } - - /*Dt_Router dt_Router = _routerRepository.QueryFirst(x => x.StartPosi == task.CurrentAddress && x.InOutType == 2); - task.TaskState = (int)TaskOutStatusEnum.RGV_OutZicheFinish; - task.CurrentAddress = dt_Router.NextPosi; - task.RGVTaskType = (int)RGVTaskTypeEnum.Placing;*/ - } - else if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutZicheReleaseExecuting) - { - if (task.CurrentAddress == "1131") - { - Dt_Router dt_Router = _routerRepository.QueryFirst(x => x.StartPosi == task.CurrentAddress && x.InOutType == 2); - task.TaskState = (int)TaskOutStatusEnum.RGV_OutMothercarFinish; - task.RGVTaskType = (int)RGVTaskTypeEnum.PickingUp; - task.Roadway = dt_Router.ChildPosiDeviceCode; - } - else - { - task.TaskState = (int)TaskOutStatusEnum.RGV_OutZicheReleaseFinish; - task.RGVTaskType = (int)RGVTaskTypeEnum.PickingUp; - task.Roadway = "RGV118"; - } - } - else if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutPickupExecuting) - { - task.TaskState = (int)TaskOutStatusEnum.RGV_OutPickupFinish; - task.RGVTaskType = (int)RGVTaskTypeEnum.Placing; - task.CurrentAddress = ""; - } - else if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutReleaseExecuting) - { - task.TaskState = (int)TaskOutStatusEnum.OutFinish; //浠诲姟瀹屾垚 + HandleOutboundTask(task); } else { - return WebResponseContent.Instance.Error(); + return WebResponseContent.Instance.Error("鏈煡鐨勪换鍔$被鍨�"); } + + task.ExceptionMessage = string.Empty; + BaseDal.UpdateData(task); + + _taskExecuteDetailService.AddTaskExecuteDetail( + task.TaskId, + $"鑷姩浠诲姟鐘舵�佷粠銆恵oldState}銆戣繘鍏ュ埌銆恵task.TaskState}銆�" + ); + + return WebResponseContent.Instance.OK(); } + catch (Exception ex) + { - task.ExceptionMessage = string.Empty; + return WebResponseContent.Instance.Error("鏇存柊浠诲姟鐘舵�佹椂鍙戠敓绯荤粺閿欒"); + } + } + #region 鍏ュ簱 - BaseDal.UpdateData(task); + private void HandleInboundTask(Dt_Task task) + { + switch (task.TaskState) + { + case (int)TaskInStatusEnum.RGV_InPickupExecuting: + task.TaskState = (int)TaskInStatusEnum.RGV_InPickupFinish; + task.RGVTaskType = (int)RGVTaskTypeEnum.Placing; + break; - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鑷姩浠诲姟鐘舵�佷粠銆恵oldState}銆戣繘鍏ュ埌銆恵task.TaskState}銆戯紝"); + case (int)TaskInStatusEnum.RGV_InReleaseExecuting: + HandleInboundRelease(task); + break; - content = WebResponseContent.Instance.OK(); + case (int)TaskInStatusEnum.RGV_InZicheExecuting: + task.RGVTaskType = (int)RGVTaskTypeEnum.Placing; + task.TaskState = (int)TaskInStatusEnum.RGV_InZicheFinish; + break; - return content; + case (int)TaskInStatusEnum.RGV_InZicheReleaseExecuting: + task.TaskState = (int)TaskInStatusEnum.RGV_InZicheReleaseFinish; + task.RGVTaskType = (int)RGVTaskTypeEnum.TravelingOnly; + break; + case (int)TaskInStatusEnum.RGV_InZichemoveExecuting: + HandleInboundZichemove(task); + break; + + case (int)TaskInStatusEnum.RGV_InMothercarExecuting: + task.TaskState = (int)TaskInStatusEnum.RGV_InMothercarFinish; + break; + + default: + throw new InvalidOperationException($"鏈煡鐨勫叆搴撲换鍔$姸鎬�: {task.TaskState}"); + } } + private void HandleInboundRelease(Dt_Task task) + { + task.TaskState = (int)TaskInStatusEnum.RGV_InReleaseFinish; + task.RGVTaskType = (int)RGVTaskTypeEnum.PickingUp; + var routes = _routerRepository.QueryData(x => + x.StartPosi == task.NextAddress && + x.InOutType == 1 && + x.IsEnd == false + ); + + foreach (var route in routes) + { + if (route.ChildPosi == task.TargetAddress || + (int.Parse(route.ChildPosi) > 2 && int.Parse(task.TargetAddress) > 2)) + { + task.Roadway = route.ChildPosiDeviceCode; + task.CurrentAddress = route.StartPosi; + task.NextAddress = route.NextPosi; + break; // 鎵惧埌鍖归厤璺敱鍚庨��鍑哄惊鐜� + } + } + } + + private void HandleInboundZichemove(Dt_Task task) + { + var route = _routerRepository.QueryFirst(x => + x.IsEnd == true && + x.ChildPosi == task.NextAddress && + x.InOutType == 1 + ); + + if (route == null) + throw new InvalidOperationException("鏈壘鍒板搴旂殑缁撴潫璺敱"); + + task.TaskState = (int)TaskInStatusEnum.RGV_InZichemoveFinish; + task.RGVTaskType = (int)RGVTaskTypeEnum.TravelingOnly; + task.CurrentAddress = route.StartPosi; + task.NextAddress = route.NextPosi; + task.Roadway = route.ChildPosiDeviceCode; + } + #endregion + + #region 鍑哄簱 + + private void HandleOutboundTask(Dt_Task task) + { + switch (task.TaskState) + { + case (int)TaskOutStatusEnum.RGV_OutMothercarExecuting: + task.TaskState = (int)TaskOutStatusEnum.RGV_OutMothercarFinish; + task.RGVTaskType = (int)RGVTaskTypeEnum.PickingUp; + break; + + case (int)TaskOutStatusEnum.RGV_OutZicheExecuting: + task.TaskState = (int)TaskOutStatusEnum.RGV_OutZicheFinish; + task.RGVTaskType = (int)RGVTaskTypeEnum.Placing; + break; + + case (int)TaskOutStatusEnum.RGV_OutZicheReleaseExecuting: + HandleOutboundZicheRelease(task); + break; + + case (int)TaskOutStatusEnum.RGV_OutPickupExecuting: + task.TaskState = (int)TaskOutStatusEnum.RGV_OutPickupFinish; + task.RGVTaskType = (int)RGVTaskTypeEnum.Placing; + break; + + case (int)TaskOutStatusEnum.RGV_OutReleaseExecuting: + task.TaskState = (int)TaskOutStatusEnum.OutFinish; + break; + + default: + throw new InvalidOperationException($"鏈煡鐨勫嚭搴撲换鍔$姸鎬�: {task.TaskState}"); + } + } + + private void HandleOutboundZicheRelease(Dt_Task task) + { + var route = _routerRepository.QueryFirst(x => + x.StartPosi == task.CurrentAddress && + x.InOutType == 2 + ); + + if (route == null) + throw new InvalidOperationException("鏈壘鍒板搴旂殑璺敱淇℃伅"); + + if (route.IsEnd) + { + task.TaskState = (int)TaskOutStatusEnum.RGV_OutZicheReleaseFinish; + task.RGVTaskType = (int)RGVTaskTypeEnum.PickingUp; + task.Roadway = "RGV118"; + } + else + { + var nextRoute = _routerRepository.QueryFirst(x => + x.StartPosi == task.NextAddress && + x.InOutType == 2 + ); + + if (nextRoute == null) + throw new InvalidOperationException("鏈壘鍒颁笅涓�涓矾鐢变俊鎭�"); + + task.TaskState = (int)TaskOutStatusEnum.RGV_OutMothercarFinish; + task.RGVTaskType = (int)RGVTaskTypeEnum.PickingUp; + task.CurrentAddress = nextRoute.StartPosi; + task.NextAddress = nextRoute.NextPosi; + task.Roadway = route.ChildPosiDeviceCode; + } + } + #endregion + + + #region 鍏板墤璋冨彇鎺ュ彛鍐呭 /// <summary> /// 鏌ヨRGV鐘舵�� @@ -797,16 +865,33 @@ ExpoReverse expoReverse = new ExpoReverse(); try { + if (sCErrorStatus == null) + { + expoReverse.code = 1; + expoReverse.msg = "鏄庡拰WCS鎺ユ敹鍒扮殑鍙傛暟涓虹┖锛岃妫�鏌�"; + return expoReverse; + } + + List<EquipmentStatus> equipmentdata = new List<EquipmentStatus>(); + + List<EquipmentStatus> equipmentList = _equipmentStatus.GetEquipmentStatus(); + string msgeetst = ""; foreach (var item in sCErrorStatus.data) { - if (sCErrorStatus == null) - { - expoReverse.code = 1; - expoReverse.msg = "鏄庡拰WCS鎺ユ敹鍒扮殑鍙傛暟涓虹┖锛岃妫�鏌�"; - return expoReverse; - } - expoReverse.code = 0; + EquipmentStatus equipment = equipmentList.Find(x => x.Equipment_Number == item.stackerName); + + msgeetst += $"銆婅澶囷細{equipment.Equipment_Number}锛屼慨鏀瑰墠鐘舵�侊細{equipment.Equipment_Status}锛�"; + + equipment.Equipment_Status = item.errorStatus; + + msgeetst += $"<淇敼鍚庣姸鎬侊細{equipment.Equipment_Status}>銆�................"; + equipmentdata.Add(equipment); } + + WriteLog.Write_Log("璁惧鐘舵�佹洿鏀�", "鍫嗗灈鏈虹姸鎬佹洿鏀�", "姝e父", msgeetst); + _equipmentStatus.UpdateData(equipmentdata); //淇敼鐘舵�� + expoReverse.code = 0; + return expoReverse; } @@ -814,6 +899,7 @@ { expoReverse.code = 1; expoReverse.msg = $"鏄庡拰WCS鎺ュ彛閿欒锛歿ex.Message}"; + WriteLog.Write_Log("璁惧鐘舵�佹洿鏀�", "鍫嗗灈鏈虹姸鎬佹洿鏀�", "寮傚父", ex.Message); return expoReverse; } } @@ -829,9 +915,6 @@ try { List<Dt_Task> _TaskList = BaseDal.QueryData(x => x.TaskType == (int)TaskInboundTypeEnum.Inbound).ToList(); - - - foreach (var item in taskcanceled.data) { if (taskcanceled == null) @@ -850,6 +933,7 @@ _task_HtyService.AddTaskHty(dt_Task); BaseDal.DeleteData(dt_Task); expoReverse.code = 0; + WriteLog.Write_Log("浠诲姟鍙栨秷淇℃伅", "浠诲姟鍙栨秷", "淇℃伅", $"浠诲姟鍙凤細{dt_Task.TaskNum}锛屽凡鍙栨秷"); } else { @@ -866,6 +950,7 @@ } } + return expoReverse; } catch (Exception ex) @@ -875,6 +960,7 @@ return expoReverse; } } + #endregion @@ -886,8 +972,211 @@ /// <returns></returns> public WebResponseContent StkRunStatus() { - WebResponseContent responseContent=new WebResponseContent(); + WebResponseContent responseContent = new WebResponseContent(); + // 鍒涘缓骞惰祴鍊� + StkRunStatusReception reception = new StkRunStatusReception { data = new List<StkRunStatusData> { new StkRunStatusData { stackerName = "ALL" } } }; + StkRunStatusReturns LJReturns = HttpHelper.Post<StkRunStatusReturns>(urlLanJianWCSAPI + LanJianStkRunStatus, reception, "鏌ヨ鍫嗗灈鏈鸿繍琛岀姸鎬�"); + if (LJReturns.code == 0) + { + if (LJReturns.data[0].runStatus == 0) //鍏ㄩ儴鍫嗗灈鏈轰笉鍦ㄨ繍琛岀姸鎬� + { + return responseContent.OK(); + } + else + { + return responseContent.Error($"鏈夊爢鍨涙満鍦ㄨ繍琛屼腑锛屼笉鍙檺鍒�"); + } + + } + else + { + WriteLog.Write_Log("鍫嗗灈鏈鸿繍琛岀姸鎬佹煡璇�", "鐘舵�佹煡璇㈠け璐�", "鎺ュ彛璋冨彇澶辫触", $"杩斿洖鍐呭锛歿LJReturns.msg}"); + return responseContent.Error($"璋冨彇鍏板墤WCS澶辫触锛侊紝杩斿洖鍐呭锛歿LJReturns.msg}"); + } + } + + + /// <summary> + /// 浠诲姟淇℃伅鐘舵�佷笂浼�(鍥哄畾鍏ュ簱鎺ュ彛) + /// </summary> + /// <param name="sCErrorStatus"></param> + /// <returns></returns> + public WebResponseContent TaskResultIn(string taskNo, string finalAddress, int status, string remark) + { + WebResponseContent responseContent = new WebResponseContent(); + TaskfeedbackResponse reception = new TaskfeedbackResponse { data = new List<TaskfeedbackData> { new TaskfeedbackData { taskNo = taskNo, type = 1, finalAddress = finalAddress, status = status, remark = remark } } }; + StkRunStatusReturns LJReturns = HttpHelper.Post<StkRunStatusReturns>(urlLanJianWCSAPI + LanJiantaskResult, reception, "浠诲姟鍙嶉鎺ュ彛"); + if (LJReturns.code == 0) + { + responseContent.OK("涓婁紶鎴愬姛"); + } + else + { + responseContent.OK("涓婁紶澶辫触锛屽師鍥狅細" + LJReturns.msg); + } + // 鍒涘缓骞惰祴鍊� return responseContent; } + + /// <summary> + /// 浠诲姟淇℃伅鐘舵�佷笂浼�(鍥哄畾鍑哄簱鎺ュ彛) + /// </summary> + /// <param name="sCErrorStatus"></param> + /// <returns></returns> + public WebResponseContent TaskResultOut(string taskNo, string finalAddress, int status, string remark) + { + WebResponseContent responseContent = new WebResponseContent(); + TaskfeedbackResponse reception = new TaskfeedbackResponse { data = new List<TaskfeedbackData> { new TaskfeedbackData { taskNo = taskNo, type = 1, finalAddress = finalAddress, status = status, remark = remark } } }; + StkRunStatusReturns LJReturns = HttpHelper.Post<StkRunStatusReturns>(urlLanJianWCSAPI + LanJiantaskResult, reception, "浠诲姟鍙嶉鎺ュ彛"); + if (LJReturns.code == 0) + { + responseContent.OK("涓婁紶鎴愬姛"); + } + else + { + responseContent.OK("涓婁紶澶辫触锛屽師鍥狅細" + LJReturns.msg); + } + // 鍒涘缓骞惰祴鍊� + return responseContent; + } + + + /// <summary> + /// 浜哄伐鎵嬪姩瀹屾垚 + /// </summary> + /// <param name="ids"></param> + /// <returns></returns> + /// <exception cref="NotImplementedException"></exception> + public WebResponseContent CompletedManually(int id) + { + + var db = BaseDal.Db as SqlSugarClient; + + try + { + db.Ado.BeginTran(); + + + Dt_Task dt_task = BaseDal.QueryData().Where(x => x.TaskId == id).FirstOrDefault(); + if (dt_task == null) return WebResponseContent.Instance.Error($"鏈煡璇㈠埌浠诲姟"); + + var res = _task_HtyService.AddData(new Dt_Task_hty + { + TaskNum = dt_task.TaskNum, + PalletCode = dt_task.PalletCode, + Roadway = dt_task.Roadway, + TaskType = dt_task.TaskType, + TaskState = dt_task.TaskState, + SourceAddress = dt_task.SourceAddress, + TargetAddress = dt_task.TargetAddress, + CurrentAddress = dt_task.CurrentAddress, + NextAddress = dt_task.NextAddress, + WMSId = dt_task.WMSId, + Dispatchertime = dt_task.Dispatchertime, + Remark = "浜哄伐鎵嬪姩瀹屾垚", + Creater = App.User.UserName, + CreateDate = DateTime.Now, + RGVTaskType = dt_task.RGVTaskType, + RGVCurrentexecution = dt_task.RGVCurrentexecution + }); + + int oldState = dt_task.TaskState; + _taskExecuteDetailService.AddTaskExecuteDetail( + dt_task.TaskId, + $"鑷姩浠诲姟鐘舵�佷粠銆恵oldState}銆戣繘鍏ュ埌銆恵dt_task.TaskState}銆�" +); + + if (res.Status == false) + { + db.Ado.RollbackTran(); + return WebResponseContent.Instance.Error("鎵嬪姩瀹屾垚澶辫触锛�"); + } + + var deletetask = BaseDal.DeleteData(dt_task); + if (deletetask == false) { + db.Ado.RollbackTran(); + return WebResponseContent.Instance.Error("鍒犻櫎浠诲姟澶辫触鎵�鏈夋搷浣滃洖婊氾紒"); + } + db.Ado.CommitTran(); + return WebResponseContent.Instance.OK("鎵嬪姩瀹屾垚鎴愬姛锛�"); + + } + catch (Exception ex) + { + db.Ado.RollbackTran(); + return WebResponseContent.Instance.Error("鎵嬪姩瀹屾垚澶辫触锛�"); + } + } + + /// <summary> + /// 浜哄伐鎵嬪姩鍙栨秷浠诲姟 + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + /// <exception cref="NotImplementedException"></exception> + public WebResponseContent MHWCSTaskCancel(int id) + { + var db = BaseDal.Db as SqlSugarClient; + + try + { + db.Ado.BeginTran(); + Dt_Task dt_task = BaseDal.QueryData().Where(x => x.TaskId == id).FirstOrDefault(); + if (dt_task == null) return WebResponseContent.Instance.Error($"鏈煡璇㈠埌浠诲姟"); + //if (dt_task.TaskState > (int)TaskInStatusEnum.RGV_InNew || dt_task.TaskState > (int)TaskOutStatusEnum.OutNew) return WebResponseContent.Instance.Error($"浠诲姟鐘舵�佷笉鍏佽鍙栨秷"); + if (dt_task.TaskType >= 200 && dt_task.TaskType <= 203) + { + if (dt_task.TaskState > (int)TaskInStatusEnum.RGV_InNew) return WebResponseContent.Instance.Error($"浠诲姟鐘舵�佷笉鍏佽鍙栨秷"); + } + else + { + if (dt_task.TaskState > (int)TaskOutStatusEnum.OutNew) return WebResponseContent.Instance.Error($"浠诲姟鐘舵�佷笉鍏佽鍙栨秷"); + + } + + Dt_Task_hty dt_Task_Hty = new Dt_Task_hty + { + TaskNum = dt_task.TaskNum, + PalletCode = dt_task.PalletCode, + Roadway = dt_task.Roadway, + TaskType = dt_task.TaskType, + TaskState = dt_task.TaskType >= (int)TaskInboundTypeEnum.Inbound ? (int)TaskInStatusEnum.InCancel : (int)TaskOutStatusEnum.OutCancel, + SourceAddress = dt_task.SourceAddress, + TargetAddress = dt_task.TargetAddress, + CurrentAddress = dt_task.CurrentAddress, + NextAddress = dt_task.NextAddress, + WMSId = dt_task.WMSId, + Dispatchertime = dt_task.Dispatchertime, + Remark = "浜哄伐鎵嬪姩鍙栨秷浠诲姟", + Creater = App.User.UserName, + CreateDate = DateTime.Now, + RGVTaskType = dt_task.RGVTaskType, + RGVCurrentexecution = dt_task.RGVCurrentexecution + }; + var res = _task_HtyService.AddData(dt_Task_Hty); + if (res.Status == false) { + db.Ado.RollbackTran(); + return WebResponseContent.Instance.Error("鍙栨秷浠诲姟澶辫触锛�"); + } + int oldState = dt_task.TaskState; + _taskExecuteDetailService.AddTaskExecuteDetail( + dt_task.TaskId, + $"鑷姩浠诲姟鐘舵�佷粠銆恵oldState}銆戣繘鍏ュ埌銆恵dt_Task_Hty.TaskState}銆�" +); + + var deletetask = BaseDal.DeleteData(dt_task); + if (deletetask == false) { + db.Ado.RollbackTran(); + return WebResponseContent.Instance.Error("鍒犻櫎浠诲姟澶辫触鎵�鏈夋搷浣滃洖婊氾紒"); + } + db.Ado.CommitTran(); + return WebResponseContent.Instance.OK("鍙栨秷浠诲姟鎴愬姛锛�"); + } + catch (Exception ex) + { + db.Ado.RollbackTran(); + return WebResponseContent.Instance.Error("鍙栨秷浠诲姟澶辫触锛�"); + } + } } } -- Gitblit v1.9.3