From 9c3ee278c31a79e2e36b635651cef0b2dd431260 Mon Sep 17 00:00:00 2001 From: huanghongfeng <huanghongfeng@hnkhzn.com> Date: 星期一, 22 九月 2025 16:55:57 +0800 Subject: [PATCH] 1 --- 代码管理/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 216 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 172 insertions(+), 44 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 ac8d38e..4d24355 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" @@ -60,6 +60,7 @@ using WIDESEAWCS_QuartzJob.Repository; using WIDESEAWCS_QuartzJob.Service; using static Microsoft.IO.RecyclableMemoryStreamManager; +using static System.Net.Mime.MediaTypeNames; namespace WIDESEAWCS_TaskInfoService { @@ -149,11 +150,14 @@ dt_Task.SourceAddress = item.startAddress; dt_Task.TargetAddress = item.endAddress; dt_Task.CurrentAddress = item.startAddress; - dt_Task.NextAddress = "0"; //鐩墠鏆傛棤 + dt_Task.NextAddress = "1021"; //鐩墠鏆傛棤 dt_Task.Grade = item.priority; dt_Task.WMSId = 0; //鐩墠鏆傛棤 BaseDal.AddData(dt_Task); content.code = 0; + + int taskidt= BaseDal.QueryFirst(x=>x.TaskNum== dt_Task.TaskNum).TaskId; + _taskExecuteDetailService.AddTaskExecuteDetail(taskidt, $"绯荤粺鑷姩娴佺▼锛屽垱寤轰换鍔�"); } else if (item.type == 2) //鍑哄簱 { @@ -195,6 +199,8 @@ dt_Task.WMSId = 0; //鐩墠鏆傛棤 BaseDal.AddData(dt_Task); content.code = 0; + + _taskExecuteDetailService.AddTaskExecuteDetail(dt_Task.TaskId,$"绯荤粺鑷姩娴佺▼锛屽垱寤轰换鍔�"); } else { @@ -250,8 +256,6 @@ } task.RGVTaskType = RGvtype; bool updatesta = BaseDal.UpdateData(task); - string Meesgt = $"鐩爣鍦板潃锛歿task.CurrentAddress},浠诲姟绫诲瀷锛歿rwlx}锛屼慨鏀圭姸鎬侊細{updatesta}"; - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, Meesgt); content = WebResponseContent.Instance.OK(); } @@ -288,7 +292,7 @@ task.ExceptionMessage = message; task.ModifyDate = DateTime.Now; BaseDal.UpdateData(task); - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, task.ExceptionMessage); + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, "鏇存柊浠诲姟寮傚父锛�"+task.ExceptionMessage); content = WebResponseContent.Instance.OK(); } catch (Exception ex) @@ -346,7 +350,14 @@ task.Modifier = "System"; BaseDal.UpdateData(task); - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"浜哄伐鎵嬪姩灏嗕换鍔$姸鎬佷粠銆恵oldState}銆戣烦杞埌銆恵task.TaskState}銆�" : $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskState}銆�"); + string oldstaterem = _taskExecuteDetailService.GetEnumDescription(oldState); //鍓嶄竴涓姸鎬� + string afterstaterem = _taskExecuteDetailService.GetEnumDescription(task.TaskState); //鍚庝竴涓姸鎬� + + string rgvtyperem = _taskExecuteDetailService.GetEnumDescription2(task.RGVTaskType); //鍚庝竴涓姸鎬� + + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? + $"浜哄伐鎵嬪姩灏嗕换鍔$姸鎬佷粠銆恵oldstaterem}銆戣烦杞埌銆恵afterstaterem}銆�" + : $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldstaterem}銆戣浆鍒般�恵afterstaterem}銆�"); content = WebResponseContent.Instance.OK(); } @@ -396,7 +407,9 @@ BaseDal.UpdateData(task); - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"浜哄伐鎭㈠鎸傝捣浠诲姟,鎭㈠鎸傝捣鏃朵换鍔$姸鎬併�恵task.TaskState}銆�"); + string afterstaterem = _taskExecuteDetailService.GetEnumDescription(task.TaskState); //鍚庝竴涓姸鎬� + + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"浜哄伐鎭㈠鎸傝捣浠诲姟,鎭㈠鎸傝捣鏃朵换鍔$姸鎬併�恵afterstaterem}銆�"); content = WebResponseContent.Instance.OK(); } @@ -421,7 +434,20 @@ if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�"); int oldState = task.TaskState; - Dt_TaskExecuteDetail taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.TaskState < task.TaskState && x.TaskState > 0, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } }); + Dt_TaskExecuteDetail taskExecuteDetail = null; + + if (task.CurrentAddress == "1061") + { + taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.TaskState > task.TaskState && x.TaskState > 0, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } }); + } + else + { + taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.TaskState < task.TaskState && x.TaskState > 0, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } }); + + } + + + if (taskExecuteDetail != null) { task.TaskState = taskExecuteDetail.TaskState; @@ -437,7 +463,13 @@ BaseDal.UpdateData(task); - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"浜哄伐灏嗕换鍔$姸鎬佷粠銆恵oldState}銆戝洖婊氬埌銆恵task.TaskState}銆�"); + string oldstaterem = _taskExecuteDetailService.GetEnumDescription(oldState); //鍓嶄竴涓姸鎬� + string afterstaterem = _taskExecuteDetailService.GetEnumDescription(task.TaskState); //鍚庝竴涓姸鎬� + + string rgvtyperem = _taskExecuteDetailService.GetEnumDescription2(task.RGVTaskType); //鍚庝竴涓姸鎬� + + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, + $"浜哄伐鎵嬪姩灏嗕换鍔$姸鎬佷粠銆恵oldstaterem}銆戝洖褰掑埌銆恵afterstaterem}銆�"); content = WebResponseContent.Instance.OK(); } @@ -509,7 +541,7 @@ /// </summary> /// <param name="taskNum">浠诲姟缂栧彿</param> /// <returns>杩斿洖澶勭悊缁撴灉</returns> - public WebResponseContent UpdateTaskStatus(int taskNum) + public WebResponseContent UpdateTaskStatus(int taskNum, int Completetype) { WebResponseContent content = new WebResponseContent(); @@ -537,10 +569,19 @@ task.ExceptionMessage = string.Empty; BaseDal.UpdateData(task); - _taskExecuteDetailService.AddTaskExecuteDetail( - task.TaskId, - $"鑷姩浠诲姟鐘舵�佷粠銆恵oldState}銆戣繘鍏ュ埌銆恵task.TaskState}銆�" - ); + string oldstaterem = _taskExecuteDetailService.GetEnumDescription(oldState); //鍓嶄竴涓姸鎬� + string afterstaterem = _taskExecuteDetailService.GetEnumDescription(task.TaskState); //鍚庝竴涓姸鎬� + + string rgvtyperem = _taskExecuteDetailService.GetEnumDescription2(task.RGVTaskType); //鍚庝竴涓姸鎬� + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? + $"浜哄伐鎵嬪姩灏嗕换鍔$姸鎬佷粠銆恵oldstaterem}銆戣烦杞埌銆恵afterstaterem}銆�" + : $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldstaterem}銆戣浆鍒般�恵afterstaterem}銆�"); + + + if (task.TaskState == (int)TaskInStatusEnum.RGV_InMothercarFinish && Completetype==2) //鍏ュ簱浠诲姟瀹屾垚 + { + CompletedManually(task.TaskId, Completetype); + } return WebResponseContent.Instance.OK(); } @@ -614,20 +655,42 @@ private void HandleInboundZichemove(Dt_Task task) { - var route = _routerRepository.QueryFirst(x => - x.IsEnd == true && - x.ChildPosi == task.NextAddress && - x.InOutType == 1 - ); + try + { + Dt_Router dt_Router = null; + task.TaskState = (int)TaskInStatusEnum.RGV_InZichemoveFinish; + if (task.TargetAddress == "4" || task.TargetAddress == "3") + { + dt_Router = _routerRepository.QueryFirst(x => + x.StartPosi == task.NextAddress && + x.InOutType == 1); + if (task.CurrentAddress != "1061") task.TaskState = (int)TaskInStatusEnum.RGV_InReleaseFinish; - if (route == null) - throw new InvalidOperationException("鏈壘鍒板搴旂殑缁撴潫璺敱"); + } + else + { + dt_Router = _routerRepository.QueryFirst(x => + x.IsEnd == true && + x.ChildPosi == task.NextAddress && + x.InOutType == 1); + } - task.TaskState = (int)TaskInStatusEnum.RGV_InZichemoveFinish; - task.RGVTaskType = (int)RGVTaskTypeEnum.TravelingOnly; - task.CurrentAddress = route.StartPosi; - task.NextAddress = route.NextPosi; - task.Roadway = route.ChildPosiDeviceCode; + + if (dt_Router == null) + throw new InvalidOperationException("鏈壘鍒板搴旂殑缁撴潫璺敱"); + + + + task.RGVTaskType = (int)RGVTaskTypeEnum.PickingUp; + task.CurrentAddress = dt_Router.StartPosi; + task.NextAddress = dt_Router.NextPosi; + task.Roadway = dt_Router.ChildPosiDeviceCode; + } + catch (Exception ex) + { + + throw; + } } #endregion @@ -1047,7 +1110,13 @@ /// <param name="ids"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> - public WebResponseContent CompletedManually(int id) + /// <summary> + /// 浜哄伐鎵嬪姩瀹屾垚 + /// </summary> + /// <param name="ids"></param> + /// <returns></returns> + /// <exception cref="NotImplementedException"></exception> + public WebResponseContent CompletedManually(int id, int CompletionType) { var db = BaseDal.Db as SqlSugarClient; @@ -1059,6 +1128,8 @@ Dt_Task dt_task = BaseDal.QueryData().Where(x => x.TaskId == id).FirstOrDefault(); if (dt_task == null) return WebResponseContent.Instance.Error($"鏈煡璇㈠埌浠诲姟"); + string Remark = CompletionType == 1 ? "浜哄伐鎵嬪姩瀹屾垚" : "鑷姩瀹屾垚"; + var res = _task_HtyService.AddData(new Dt_Task_hty { @@ -1073,38 +1144,33 @@ NextAddress = dt_task.NextAddress, WMSId = dt_task.WMSId, Dispatchertime = dt_task.Dispatchertime, - Remark = "浜哄伐鎵嬪姩瀹屾垚", + Remark = 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("鎵嬪姩瀹屾垚澶辫触锛�"); + return WebResponseContent.Instance.Error($"{Remark}澶辫触锛�"); } var deletetask = BaseDal.DeleteData(dt_task); - if (deletetask == false) { + if (deletetask == false) + { db.Ado.RollbackTran(); - return WebResponseContent.Instance.Error("鍒犻櫎浠诲姟澶辫触鎵�鏈夋搷浣滃洖婊氾紒"); + return WebResponseContent.Instance.Error("鍒犻櫎浠诲姟澶辫触鎵�鏈夋搷浣滃洖婊氾紒"); } db.Ado.CommitTran(); - return WebResponseContent.Instance.OK("鎵嬪姩瀹屾垚鎴愬姛锛�"); + return WebResponseContent.Instance.OK($"{Remark}鎴愬姛锛�"); } catch (Exception ex) { db.Ado.RollbackTran(); - return WebResponseContent.Instance.Error("鎵嬪姩瀹屾垚澶辫触锛�"); + return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触锛�"); } } @@ -1124,7 +1190,7 @@ 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.TaskType >= 200 && dt_task.TaskType <= 203) { if (dt_task.TaskState > (int)TaskInStatusEnum.RGV_InNew) return WebResponseContent.Instance.Error($"浠诲姟鐘舵�佷笉鍏佽鍙栨秷"); } @@ -1132,7 +1198,7 @@ { if (dt_task.TaskState > (int)TaskOutStatusEnum.OutNew) return WebResponseContent.Instance.Error($"浠诲姟鐘舵�佷笉鍏佽鍙栨秷"); - } + }*/ Dt_Task_hty dt_Task_Hty = new Dt_Task_hty { @@ -1158,14 +1224,14 @@ db.Ado.RollbackTran(); return WebResponseContent.Instance.Error("鍙栨秷浠诲姟澶辫触锛�"); } - int oldState = dt_task.TaskState; + /*int oldState = dt_task.TaskState; _taskExecuteDetailService.AddTaskExecuteDetail( dt_task.TaskId, $"鑷姩浠诲姟鐘舵�佷粠銆恵oldState}銆戣繘鍏ュ埌銆恵dt_Task_Hty.TaskState}銆�" -); +);*/ - var deletetask = BaseDal.DeleteData(dt_task); - if (deletetask == false) { + bool deletetask = BaseDal.DeleteData(dt_task); + if (!deletetask) { db.Ado.RollbackTran(); return WebResponseContent.Instance.Error("鍒犻櫎浠诲姟澶辫触鎵�鏈夋搷浣滃洖婊氾紒"); } @@ -1178,5 +1244,67 @@ return WebResponseContent.Instance.Error("鍙栨秷浠诲姟澶辫触锛�"); } } + + + + + /// <summary> + /// 浠诲姟涓嬩竴姝ユ墽琛� + /// </summary> + /// <param name="sCErrorStatus"></param> + /// <returns></returns> + public WebResponseContent NextStepeXecuted(int taskid) + { + WebResponseContent responseContent = new WebResponseContent(); + Dt_Task task = BaseDal.QueryData().Where(x => x.TaskNum == taskid).FirstOrDefault(); + if (task == null) return WebResponseContent.Instance.Error($"鏈煡璇㈠埌浠诲姟"); + switch (task.TaskState) + { + //鍏ュ簱鐘舵�� + case (int)TaskInStatusEnum.RGV_InNew: + case (int)TaskInStatusEnum.RGV_InPickupFinish: + case (int)TaskInStatusEnum.RGV_InReleaseFinish: + case (int)TaskInStatusEnum.RGV_InZicheFinish: + case (int)TaskInStatusEnum.RGV_InZicheReleaseFinish: + case (int)TaskInStatusEnum.RGV_InZichemoveFinish: + //鍏ュ簱鐘舵�� + //鍑哄簱鐘舵�� + case (int)TaskOutStatusEnum.OutNew: + case (int)TaskOutStatusEnum.RGV_OutMothercarFinish: + case (int)TaskOutStatusEnum.RGV_OutZicheFinish: + case (int)TaskOutStatusEnum.RGV_OutZicheReleaseFinish: + case (int)TaskOutStatusEnum.RGV_OutPickupFinish: + //鍑哄簱鐘舵�� + //璋冨彇涓嬪彂鐨勬帴鍙� + responseContent = UpdateTaskStatusToNext(task); + break; + + + //鍏ュ簱鐘舵�� + case (int)TaskInStatusEnum.RGV_InPickupExecuting: + case (int)TaskInStatusEnum.RGV_InReleaseExecuting: + case (int)TaskInStatusEnum.RGV_InZicheExecuting: + case (int)TaskInStatusEnum.RGV_InZicheReleaseExecuting: + case (int)TaskInStatusEnum.RGV_InZichemoveExecuting: + case (int)TaskInStatusEnum.RGV_InMothercarExecuting: + //鍏ュ簱鐘舵�� + //鍑哄簱鐘舵�� + case (int)TaskOutStatusEnum.RGV_OutMothercarExecuting: + case (int)TaskOutStatusEnum.RGV_OutZicheExecuting: + case (int)TaskOutStatusEnum.RGV_OutZicheReleaseExecuting: + case (int)TaskOutStatusEnum.RGV_OutPickupExecuting: + case (int)TaskOutStatusEnum.RGV_OutReleaseExecuting: + //鍑哄簱鐘舵�� + //璋冨彇瀹屾垚鎺ュ彛 + responseContent = UpdateTaskStatus(task.TaskNum, 1); + break; + case (int)TaskInStatusEnum.RGV_InMothercarFinish: + return WebResponseContent.Instance.Error("浠诲姟宸�"); + default: + return WebResponseContent.Instance.Error("浠诲姟鐘舵�侀敊璇紝鎵ц涓嬩竴姝ュけ璐�"); + } + // 鍒涘缓骞惰祴鍊� + return responseContent; + } } } -- Gitblit v1.9.3