From 2190be42c0d77be84fed82d387f2a34da7fe4acc Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期四, 07 八月 2025 16:17:07 +0800 Subject: [PATCH] 1 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 859 +++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 707 insertions(+), 152 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 2fdd7d6..e39ead0 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 HslCommunication; using Mapster; using Newtonsoft.Json; using SqlSugar; @@ -45,6 +46,7 @@ using WIDESEAWCS_QuartzJob.Repository; using WIDESEAWCS_QuartzJob.Service; using WIDESEAWCS_TaskInfoRepository; +using static WIDESEAWCS_QuartzJob.Service.DeviceInfoService; namespace WIDESEAWCS_TaskInfoService { @@ -59,6 +61,7 @@ private readonly IMapper _mapper; private readonly IDeviceInfoRepository _deviceInfoRepository; private readonly IDt_StationManagerRepository _stationManagerRepository; + private readonly IDt_WMSErrorMessageRepository _errorMessageRepository; private Dictionary<string, OrderByType> _taskOrderBy = new() @@ -75,7 +78,7 @@ public List<int> TaskRelocationboundTypes => typeof(TaskRelocationTypeEnum).GetEnumIndexList(); public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService taskHtyService, ISys_ConfigService sys_ConfigService, IDt_StationManagerRepository stationManagerRepository, ITask_HtyRepository taskHtyRepository, - IDeviceInfoRepository deviceInfoRepository) : base(BaseDal) + IDeviceInfoRepository deviceInfoRepository, IDt_WMSErrorMessageRepository errorMessageRepository) : base(BaseDal) { _routerService = routerService; _taskExecuteDetailService = taskExecuteDetailService; @@ -87,6 +90,7 @@ _mapper = mapper; _sys_ConfigService = sys_ConfigService; _deviceInfoRepository = deviceInfoRepository; + _errorMessageRepository = errorMessageRepository; } /// <summary> @@ -94,21 +98,57 @@ /// </summary> /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param> /// <returns>杩斿洖澶勭悊缁撴灉</returns> - public WebResponseContent ReceiveWMSTask([NotNull] List<WMSTaskDTO> taskDTOs) + public WebResponseContent ReceiveWMSTask([NotNull] WMSTaskDTO taskDTOs) { WebResponseContent content = new WebResponseContent(); try - {// 鍒涘缓涓�涓狣t_Task绫诲瀷鐨勫垪琛ㄧ敤浜庡瓨鍌ㄨ浆鎹㈠悗鐨勪换鍔℃暟鎹� - List<Dt_Task> tasks = new List<Dt_Task>(); - // 閬嶅巻浼犲叆鐨刉MSTaskDTO鍒楄〃 - foreach (var item in taskDTOs) + { + WriteLog.GetLog("鎺ユ敹WMS浠诲姟").Write(JsonConvert.SerializeObject(taskDTOs), "鎺ユ敹WMS浠诲姟"); + Dt_Task task =null; + // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄嚭搴撲换鍔� + if (taskDTOs.TaskType == "2") { - // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄嚭搴撲换鍔� - if (item.TaskType == "2") + if (Convert.ToInt32(taskDTOs.EndPoint) > 1999 && Convert.ToInt32(taskDTOs.EndPoint) < 3000) { - string[] targetCodes = item.BeginPoint.Split("-"); + Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTOs.EndPoint); + if (stationManagerStart == null) + { + return content.Error("鏈壘鍒板嚭搴撶珯鍙颁俊鎭�"); + } + task = new Dt_Task() + { + TaskNum = BaseDal.GetTaskNo().Result, + Creater = "WMS", + WMSTaskNum = taskDTOs.TaskId, + Grade = 1, + PalletCode = taskDTOs.TPbarcode, + TaskType = (int)TaskOutboundTypeEnum.Outbound, + TaskState = (int)TaskOutStatusEnum.OutNew, + SourceAddress = taskDTOs.BeginPoint, + CurrentAddress = taskDTOs.BeginPoint, + Roadway = stationManagerStart.Roadway, + NextAddress = taskDTOs.EndPoint, + TargetAddress = taskDTOs.EndPoint, + Floor = stationManagerStart.stationFloor, + RGVName = "" + }; + BaseDal.AddData(task); + } + else + { + string[] targetCodes = taskDTOs.BeginPoint.Split("-"); - Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.stationChildCode==item.EndPoint); + if (taskDTOs.EndPoint == "3004") + { + var newTask = BaseDal.QueryFirst(x => x.SourceAddress == "3001" && x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState != (int)TaskInStatusEnum.HoistNew && x.TaskState != (int)TaskInStatusEnum.HoistInExecuting && x.TaskState > 225); + if (newTask != null) + { + return content.Error("宸插瓨鍦ㄥ叆搴撲换鍔★紝鍑哄簱浠诲姟涓嶅彲涓嬪彂"); + } + } + + + Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTOs.EndPoint); if (stationManagerEnd == null) { return content.Error("鏈壘鍒板嚭搴撶珯鍙颁俊鎭�"); @@ -119,116 +159,262 @@ var RGVName = string.Empty; if (stationManager.stationFloor == "1F") { - var deviceCode = _deviceInfoRepository.Db.Queryable<Dt_DeviceInfo>().Where(x => x.DeviceStatus == "1" && x.DeviceRemark == "OneFloor").Where(x => x.DeviceCode.Contains("RGV")).ToList().Select(x => x.DeviceCode).ToList(); - if (deviceCode != null && deviceCode.Count() > 0) - { - if (deviceCode.Contains("RGV01")&& deviceCode.Contains("RGV02")) - { - var RGVOne = BaseDal.QueryData(x => x.RGVName == "RGV01").ToList(); - var RGVTwo = BaseDal.QueryData(x => x.RGVName == "RGV02").ToList(); - if (RGVOne.Count > RGVTwo.Count) - { - RGVName = "RGV01"; - } - else - { - RGVName = "RGV02"; - } - } - else - { - RGVName = deviceCode[0]; - } - } - else - { - RGVName = "RGV01"; - } + RGVName = stationManager.RGVName; } - Dt_Task taskOut = new Dt_Task() + Dt_Task NewTask = new Dt_Task() { TaskNum = BaseDal.GetTaskNo().Result, Creater = "WMS", - WMSTaskNum=item.TaskId, + WMSTaskNum = taskDTOs.TaskId, Grade = 1, - PalletCode = item.TPbarcode, + PalletCode = taskDTOs.TPbarcode, TaskType = (int)TaskOutboundTypeEnum.Outbound, TaskState = (int)TaskOutStatusEnum.OutNew, - SourceAddress = item.BeginPoint, - CurrentAddress = item.BeginPoint, + SourceAddress = taskDTOs.BeginPoint, + CurrentAddress = taskDTOs.BeginPoint, Roadway = GetScCode(Convert.ToInt32(targetCodes[0])), NextAddress = stationManager.stationChildCode, - TargetAddress = item.EndPoint, + TargetAddress = taskDTOs.EndPoint, RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName, - Floor= stationManager.stationFloor, + Floor = stationManager.stationFloor, + TargetStation = stationManagerEnd.remark, + SourceStation = 0, }; - BaseDal.AddData(taskOut); + if (GetScCode(Convert.ToInt32(targetCodes[0])) == "SC01" && (taskDTOs.EndPoint == "1030" || taskDTOs.EndPoint == "1029")) + { + Dt_StationManager stationTransfer = _stationManagerRepository.QueryFirst(x => x.stationChildCode== "1025"); + NewTask.TargetStation = stationTransfer.stationRemark; + NewTask.Remark = "1025"; + } + if(taskDTOs.EndPoint == "1004") + { + return content.Error("璇ョ偣浣嶄笉鏄嚭搴撶偣浣�"); + } + if (GetScCode(Convert.ToInt32(targetCodes[0])) == "SC06" && taskDTOs.EndPoint == "1002") + { + Dt_StationManager stationTransfer = _stationManagerRepository.QueryFirst(x => x.stationChildCode == "1026"); + NewTask.TargetStation = stationTransfer.stationRemark; + NewTask.Remark = "1026"; + } + task = NewTask; + BaseDal.AddData(NewTask); } - // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄叆搴撲换鍔� - else if (item.TaskType == "1") + } + // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄叆搴撲换鍔� + else if (taskDTOs.TaskType == "1") + { + if (taskDTOs.BeginPoint == "3002") { - var task = BaseDal.QueryFirst(x => x.PalletCode == item.TPbarcode); + Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTOs.BeginPoint); + if (stationManagerStart == null) + { + return content.Error("鏈壘鍒板叆搴撶珯鍙颁俊鎭�"); + } + string[] targetCodes = taskDTOs.EndPoint.Split("-"); + task = new Dt_Task() + { + TaskNum = BaseDal.GetTaskNo().Result, + Creater = "WMS", + WMSTaskNum = taskDTOs.TaskId, + Grade = 1, + PalletCode = taskDTOs.TPbarcode, + TaskType = (int)TaskInboundTypeEnum.Inbound, + TaskState = (int)TaskInStatusEnum.HoistNew, + SourceAddress = taskDTOs.BeginPoint, + CurrentAddress = stationManagerStart.stationChildCode, + Roadway = GetScCode(Convert.ToInt32(targetCodes[0])), + NextAddress = stationManagerStart.stationNextChildCode, + TargetAddress = taskDTOs.EndPoint, + Floor = stationManagerStart.stationFloor, + RGVName = "RGV03" + }; + BaseDal.AddData(task); + } + else if (Convert.ToInt32(taskDTOs.BeginPoint) > 1999 && Convert.ToInt32(taskDTOs.BeginPoint) < 3000) + { + Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTOs.BeginPoint); + if (stationManagerStart == null) + { + return content.Error("鏈壘鍒板嚭搴撶珯鍙颁俊鎭�"); + } + task = new Dt_Task() + { + TaskNum = BaseDal.GetTaskNo().Result, + Creater = "WMS", + WMSTaskNum = taskDTOs.TaskId, + Grade = 1, + PalletCode = taskDTOs.TPbarcode, + TaskType = (int)TaskInboundTypeEnum.Inbound, + TaskState = (int)TaskInStatusEnum.Line_InFinish, + SourceAddress = taskDTOs.BeginPoint, + CurrentAddress = stationManagerStart.stationChildCode, + Roadway = stationManagerStart.Roadway, + NextAddress = taskDTOs.EndPoint, + TargetAddress = taskDTOs.EndPoint, + Floor = stationManagerStart.stationFloor, + RGVName = "" + }; + BaseDal.AddData(task); + } + else + { + task = BaseDal.QueryFirst(x => x.PalletCode == taskDTOs.TPbarcode); + string[] targetCodes = taskDTOs.EndPoint.Split("-"); + if (task != null) { task.Creater = "WMS"; task.Grade = 1; - task.PalletCode = item.TPbarcode; - - task.TaskType = (int)TaskInboundTypeEnum.Inbound; + task.PalletCode = taskDTOs.TPbarcode; - task.TaskState = (int)TaskInStatusEnum.RGV_IndispatchFinish; + task.TaskType = (int)TaskInboundTypeEnum.Inbound; - task.CurrentAddress = item.BeginPoint; + task.TaskState = (int)TaskInStatusEnum.RGV_IndispatchFinish; - task.WMSTaskNum = item.TaskId; + task.CurrentAddress = taskDTOs.BeginPoint; - task.TargetAddress = item.EndPoint; + task.WMSTaskNum = taskDTOs.TaskId; - string[] targetCodes = item.EndPoint.Split("-"); + task.TargetAddress = taskDTOs.EndPoint; - task.Roadway = GetScCode(Convert.ToInt32(targetCodes[0])); + task.Roadway = GetScCode(Convert.ToInt32(targetCodes[0])); - Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 3); + Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 3 && x.stationFloor == task.Floor); - task.NextAddress = stationManager.stationChildCode; - BaseDal.UpdateData(task); + Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode==taskDTOs.BeginPoint && x.stationFloor == task.Floor); + + task.NextAddress = stationManager.stationChildCode; + + task.SourceStation = stationManagerStart.remark; + + task.TargetStation = stationManager.stationRemark; + + + if (GetScCode(Convert.ToInt32(targetCodes[0])) == "SC01" && (taskDTOs.BeginPoint == "1030" || taskDTOs.EndPoint == "1029")) + { + Dt_StationManager stationTransfer = _stationManagerRepository.QueryFirst(x => x.stationChildCode == "1026"); + task.TargetStation = stationTransfer.stationRemark; + task.Remark = "1026"; + } + + if (GetScCode(Convert.ToInt32(targetCodes[0])) == "SC06" && (taskDTOs.BeginPoint == "1002" || taskDTOs.BeginPoint == "1004")) + { + Dt_StationManager stationTransfer = _stationManagerRepository.QueryFirst(x => x.stationChildCode == "1026"); + task.TargetStation = stationTransfer.stationRemark; + task.Remark = "1025"; + } + BaseDal.UpdateData(task); } else { - return content.Error($"鏈壘鍒拌鎵樼洏銆恵item.TPbarcode}銆戜换鍔�"); + return content.Error($"鏈壘鍒拌鎵樼洏銆恵taskDTOs.TPbarcode}銆戜换鍔�"); } } - else if (item.TaskType == "3") + } + else if (taskDTOs.TaskType == "3") + { + string[] targetCodes = taskDTOs.BeginPoint.Split("-"); + task = new Dt_Task() { - Dt_Task taskRelocation = new Dt_Task() + TaskType = (int)TaskRelocationTypeEnum.Relocation, + + TaskState = (int)TaskRelocationStatusEnum.RelocationNew, + + Roadway = GetScCode(Convert.ToInt32(targetCodes[0])), + + SourceAddress = taskDTOs.BeginPoint, + + CurrentAddress = taskDTOs.BeginPoint, + + NextAddress = taskDTOs.EndPoint, + + TargetAddress = taskDTOs.EndPoint, + + Grade = 3, + + }; + BaseDal.AddData(task); + } + else if (taskDTOs.TaskType == "4") + { + task = BaseDal.QueryFirst(x => x.PalletCode == taskDTOs.TPbarcode); + Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress); + if (stationManager == null) + { + return content.Error("鏈壘鍒拌捣鐐圭珯鍙�"); + } + + if (task != null) + { + task.ModifyDate = DateTime.Now; + task.Modifier = "System"; + + Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task); + task_Hty.TaskId = 0; + task_Hty.OperateType = (int)OperateTypeEnum.寮傚父閫�鍥�; + + BaseDal.DeleteData(task); + _taskHtyRepository.AddData(task_Hty); + Dt_WMSErrorMessage message = new Dt_WMSErrorMessage() { - TaskType = (int)TaskRelocationTypeEnum.Relocation, - - TaskState = (int)TaskRelocationStatusEnum.RelocationNew, - - SourceAddress = item.BeginPoint, - - CurrentAddress = item.BeginPoint, - - NextAddress = item.EndPoint, - - TargetAddress = item.EndPoint, - - Grade = 3, - + TaskNum = task.TaskNum, + PalletCode=taskDTOs.TPbarcode, + ErrorMessage=taskDTOs.EndPoint, + CreateDate=DateTime.Now, + Creater = "WMS" }; - BaseDal.AddData(taskRelocation); + _errorMessageRepository.AddData(message); + IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == task.RGVName); + if (device != null) + { + if (task.RGVName == "RGV01" || task.RGVName == "RGV02") + { + CommonRGV_FirstFloor commonRGV = (CommonRGV_FirstFloor)device; + + commonRGV.SetValue(StackerCraneDBName.PutcargoLocation, Convert.ToSByte(stationManager.stationRemark)); + commonRGV.SetValue(StackerCraneDBName.TaskNum, Convert.ToInt16(task.TaskNum)); + commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(4)); + } + else + { + CommonRGV commonRGV = (CommonRGV)device; + commonRGV.SetValue(StackerCraneDBName.PutcargoLocation, Convert.ToSByte(stationManager.stationRemark)); + commonRGV.SetValue(StackerCraneDBName.TaskNum, Convert.ToInt16(task.TaskNum)); + commonRGV.SetValue(StackerCraneDBName.TaskType, Convert.ToSByte(4)); + } + } } else { - return content.Error($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵item.TaskId}銆�,浠诲姟绫诲瀷:銆恵item.TaskType}銆�"); + IDevice? deviceconveyorline = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManager.stationPLC); + if (deviceconveyorline != null) + { + CommonConveyorLine conveyorLine = (CommonConveyorLine)deviceconveyorline; + + conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(3), stationManager.stationChildCode); + + Dt_WMSErrorMessage message = new Dt_WMSErrorMessage() + { + PalletCode = taskDTOs.TPbarcode, + ErrorMessage = taskDTOs.EndPoint, + CreateDate = DateTime.Now, + Creater ="WMS" + }; + _errorMessageRepository.AddData(message); + } } + return content.OK(); } - _taskExecuteDetailService.AddTaskExecuteDetail(tasks.Select(x => x.TaskId).ToList(), "鎺ユ敹WMS浠诲姟"); + else + { + return content.Error($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵taskDTOs.TaskId}銆�,浠诲姟绫诲瀷:銆恵taskDTOs.TaskType}銆�"); + } + _taskExecuteDetailService.AddTaskExecuteDetailS(task.TaskNum, "鎺ユ敹WMS浠诲姟"); content = WebResponseContent.Instance.OK("鎴愬姛"); } catch (Exception ex) { + WriteLog.GetLog("鎺ユ敹WMS浠诲姟").Write(JsonConvert.SerializeObject(ex.Message), "鎺ユ敹WMS浠诲姟"); content = WebResponseContent.Instance.Error($"鐢熸垚浠诲姟澶辫触,閿欒淇℃伅:{ex.Message}"); } finally @@ -244,17 +430,25 @@ { return "SC01"; } - else if (number >= 5 && number <= 8) + else if (number >= 5 && number <= 7) { return "SC02"; } - else if (number >= 9 && number <= 12) + else if (number >= 8 && number <= 10) { return "SC03"; } - else if (number >= 13 && number <= 16) + else if (number >= 11 && number <= 14) { return "SC04"; + } + else if (number >= 15 && number <= 18) + { + return "SC05"; + } + else if (number >= 19 && number <= 22) + { + return "SC06"; } else { @@ -270,8 +464,8 @@ WebResponseContent content = new WebResponseContent(); try { - Dt_Task task = BaseDal.QueryFirst(x => x.WMSTaskNum == taskDTO.TaskId || x.Roadway == taskDTO.WhCode); - Dt_Task_Hty taskHty = _taskHtyRepository.QueryFirst(x => x.WMSTaskNum == taskDTO.TaskId || x.Roadway == taskDTO.WhCode); + Dt_Task task = BaseDal.QueryFirst(x => x.WMSTaskNum == taskDTO.TaskId && x.Roadway == taskDTO.WhCode); + Dt_Task_Hty taskHty = _taskHtyRepository.QueryFirst(x => x.WMSTaskNum == taskDTO.TaskId && x.Roadway == taskDTO.WhCode); if (task != null) { return content.OK(data: new WMSTaskDTO() @@ -401,7 +595,18 @@ /// <returns></returns> public Dt_Task QueryRGVExecutingTask(string deviceNo) { - return BaseDal.QueryFirst(x => TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish); + return BaseDal.QueryFirst(x => (x.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish|| x.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS|| x.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish) && x.RGVName == deviceNo); + } + + /// <summary> + /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨRGV鏈墽琛岀殑浠诲姟 + /// </summary> + /// <param name="deviceNo">璁惧缂栧彿</param> + /// <param name="currentAddress">褰撳墠鍦板潃</param> + /// <returns></returns> + public Dt_Task QueryRGVExecutingTask(string deviceNo,int taskNum) + { + return BaseDal.QueryFirst(x => (x.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS) && x.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish && x.RGVName == deviceNo&&x.TaskNum==taskNum); } /// <summary> @@ -453,6 +658,11 @@ public Dt_Task QueryRGVTask(string deviceNo) { return BaseDal.QueryFirst(x => x.RGVName == deviceNo && ((TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew) || (TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Line_OutFinish)), TaskOrderBy); + } + + public List<Dt_Task> QueryRGVTask() + { + return BaseDal.QueryData(x => ((TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew) || (TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Line_OutFinish) && x.Floor == "1F"), TaskOrderBy); } /// <summary> @@ -545,6 +755,147 @@ /// 灏嗕换鍔$姸鎬佷慨鏀逛负涓嬩竴涓姸鎬� /// </summary> /// <param name="taskNum">浠诲姟鍙�</param> + public WebResponseContent HandUpdateTaskStatusToNext(int taskNum) + { + WebResponseContent content = new WebResponseContent(); + try + { + Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); + if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�"); + int oldState = task.TaskState; + if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) + { + int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>(); + + task.TaskState = nextStatus; + + if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutFinish) + { + task.TaskState = (int)TaskOutStatusEnum.OutFinish; + task.ModifyDate = DateTime.Now; + task.Modifier = "System"; + + Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task); + task_Hty.TaskId = 0; + task_Hty.OperateType = (int)OperateTypeEnum.浜哄伐瀹屾垚; + BaseDal.DeleteData(task); + _taskHtyRepository.AddData(task_Hty); + + var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); + var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; + var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue; + WMSTaskDTO taskDTO = new WMSTaskDTO() + { + TaskId = task.WMSTaskNum, + TPbarcode = task.PalletCode, + WhCode = "1001", + BeginPoint = task.SourceAddress, + EndPoint = task.TargetAddress, + Results = "1" + }; + if (wmsBase == null || requestTask == null) + { + throw new InvalidOperationException("WMS IP 鏈厤缃�"); + } + var wmsIpAddress = wmsBase + requestTask; + var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result; + + + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV鍑哄簱瀹屾垚"); + } + + if (task.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) + { + Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationChildCode == task.NextAddress); + Dt_StationManager stationManagerend = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.TargetAddress); + task.CurrentAddress = task.NextAddress; + task.NextAddress = task.TargetAddress; + task.SourceStation = stationManager.stationRemark; + task.TargetStation = stationManagerend.remark; + } + + if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) + { + content = StackCraneTaskCompleted(task.TaskNum); + return content; + } + } + else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) + { + int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>(); + task.TaskState = nextStatus; + + if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish) + { + task.CurrentAddress = task.NextAddress; + task.NextAddress = task.TargetAddress; + } + else if (task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) + { + return content.Error("璇风瓑寰匴MS涓嬪彂鍏ュ簱浠诲姟"); + } + else if (task.TaskState == (int)TaskInStatusEnum.RGV_InExecutingFinish) + { + Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.NextAddress && x.stationFloor == task.Floor); + task.CurrentAddress = task.NextAddress; + task.NextAddress = stationManager.stationNextChildCode; + task.ModifyDate = DateTime.Now; + BaseDal.UpdateData(task); + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV鍏ュ簱瀹屾垚"); + } + else if (task.TaskState == (int)TaskInStatusEnum.SC_InFinish) + { + if (App.User.UserId > 0) + { + content = StackCraneTaskCompleted(task.TaskNum); + return content; + } + + task.ModifyDate = DateTime.Now; + task.Modifier = "System"; + + Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task); + task_Hty.TaskId = 0; + task_Hty.OperateType = (int)OperateTypeEnum.浜哄伐瀹屾垚; + BaseDal.DeleteData(task); + _taskHtyRepository.AddData(task_Hty); + } + else if (task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish || task.TaskState == (int)TaskInStatusEnum.RGV_InExecutingFinish) + { + RGVTaskCompleted(task.TaskNum); + } + } + else + { + throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�"); + } + + if (task.TaskState <= 0) + { + return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�"); + } + + task.ModifyDate = DateTime.Now; + task.Modifier = "System"; + BaseDal.UpdateData(task); + + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"浜哄伐鎵嬪姩灏嗕换鍔$姸鎬佷粠銆恵oldState}銆戣烦杞埌銆恵task.TaskState}銆�" : $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskState}銆�"); + + content = WebResponseContent.Instance.OK(); + + return content; + } + catch (Exception ex) + { + content = WebResponseContent.Instance.Error(ex.Message); + } + return content; + } + + /// <summary> + /// 灏嗕换鍔$姸鎬佷慨鏀逛负涓嬩竴涓姸鎬� + /// </summary> + /// <param name="taskNum">浠诲姟鍙�</param> public WebResponseContent UpdateTaskStatusToNext(int taskNum) { WebResponseContent content = new WebResponseContent(); @@ -578,28 +929,24 @@ task.TaskState = nextStatus; - if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutFinish) - { - task.ModifyDate = DateTime.Now; - task.Modifier = "System"; - - Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task); - task_Hty.TaskId = 0; - - BaseDal.DeleteData(task); - _taskHtyRepository.AddData(task_Hty); - } if (task.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) { Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationChildCode == task.NextAddress); + Dt_StationManager stationManagerend = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.TargetAddress); task.CurrentAddress = task.NextAddress; task.NextAddress = task.TargetAddress; + task.SourceStation = stationManager.stationRemark; + task.TargetStation = stationManagerend.remark; } if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) { content = StackCraneTaskCompleted(task.TaskNum); return content; + } + if (task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting) + { + task.Dispatchertime = DateTime.Now; } } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) @@ -628,6 +975,10 @@ BaseDal.DeleteData(task); _taskHtyRepository.AddData(task_Hty); + } + else if (task.TaskState == (int)TaskInStatusEnum.InFinish|| task.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) + { + RGVTaskCompleted(task.TaskNum); } } else @@ -666,29 +1017,28 @@ if (task.TaskState == (int)TaskInStatusEnum.RGV_Indispatch) { - //var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); - //var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; - //var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTask)?.ConfigValue; - //var keys = new Dictionary<string, object>() - //{ - // {"TPbarcode", Barcode}, - // {"WhCode", "1001"}, - // {"BeginPoint", task.SourceAddress} - //}; - //if (wmsBase == null || requestTask == null) - //{ - // throw new InvalidOperationException("WMS IP 鏈厤缃�"); - //} - //var wmsIpAddress = wmsBase + requestTask; - //var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, keys.ToString()).Result; + task.TaskState = (int)TaskInStatusEnum.RGV_InAwaitWMS; + task.PalletCode = Barcode; + task.ModifyDate = DateTime.Now; + BaseDal.UpdateData(task); - //if (result != null) - //{ - task.TaskState = (int)TaskInStatusEnum.RGV_InAwaitWMS; - task.PalletCode = Barcode; - task.ModifyDate = DateTime.Now; - BaseDal.UpdateData(task); - //} + var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); + var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; + var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTask)?.ConfigValue; + + WMSTaskDTO taskDTO = new WMSTaskDTO() + { + TPbarcode = Barcode, + WhCode = "1001", + BeginPoint = task.SourceAddress + }; + if (wmsBase == null || requestTask == null) + { + throw new InvalidOperationException("WMS IP 鏈厤缃�"); + } + var wmsIpAddress = wmsBase + requestTask; + var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result; + WriteLog.GetLog("WMS鎺ュ彛杩斿洖淇℃伅").Write(JsonConvert.SerializeObject(result), "WMS鎺ュ彛杩斿洖淇℃伅"); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV璋冨害瀹屾垚绛夊緟WMS浠诲姟"); } @@ -707,11 +1057,10 @@ task.TaskState = (int)TaskOutStatusEnum.RGV_OutdispatchFinish; task.ModifyDate = DateTime.Now; BaseDal.UpdateData(task); - + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV鍑哄簱璋冨害"); } - else if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting) + else if (task.TaskState == (int)TaskInStatusEnum.InRetuen) { - task.TaskState = (int)TaskOutStatusEnum.OutFinish; task.ModifyDate = DateTime.Now; task.Modifier = "System"; @@ -721,6 +1070,52 @@ BaseDal.DeleteData(task); _taskHtyRepository.AddData(task_Hty); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV鍑哄簱瀹屾垚"); + } + else if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutExecuting) + { + task.TaskState = (int)TaskOutStatusEnum.OutFinish; + task.ModifyDate = DateTime.Now; + task.Modifier = "System"; + + Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task); + task_Hty.TaskId = 0; + task_Hty.OperateType = (int)OperateTypeEnum.鑷姩瀹屾垚; + BaseDal.DeleteData(task); + _taskHtyRepository.AddData(task_Hty); + + var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); + var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; + var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue; + WMSTaskDTO taskDTO = new WMSTaskDTO() + { + TaskId = task.WMSTaskNum, + TPbarcode = task.PalletCode, + WhCode = "1001", + BeginPoint = task.SourceAddress, + EndPoint = task.TargetAddress, + Results = "1" + }; + if (wmsBase == null || requestTask == null) + { + throw new InvalidOperationException("WMS IP 鏈厤缃�"); + } + var wmsIpAddress = wmsBase + requestTask; + var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result; + WriteLog.GetLog("WMS鎺ュ彛杩斿洖淇℃伅").Write(JsonConvert.SerializeObject(result), "WMS鎺ュ彛杩斿洖淇℃伅"); + + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV鍑哄簱瀹屾垚"); + } + else if (task.TaskState == (int)TaskInStatusEnum.RGV_TransFer) + { + task.TaskState = (int)TaskInStatusEnum.RGV_TransFerFInish; + BaseDal.UpdateData(task); + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV鍏ュ簱涓浆"); + } + else if (task.TaskState == (int)TaskOutStatusEnum.RGV_TransFer) + { + task.TaskState = (int)TaskOutStatusEnum.RGV_TransFerFInish; + BaseDal.UpdateData(task); + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV鍑哄簱涓浆"); } else { @@ -744,43 +1139,39 @@ Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�"); - //var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); - //var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; - //var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue; - //var keys = new Dictionary<string, object>() - // { - // {"TaskId", task.WMSTaskNum}, - // {"TPbarcode", task.PalletCode}, - // {"WhCode", "1001"}, - // {"BeginPoint", task.SourceAddress}, - // {"EndPoint", task.TargetAddress}, - // {"Results", 1}, - // }; - //if (wmsBase == null || requestTask == null) - //{ - // throw new InvalidOperationException("WMS IP 鏈厤缃�"); - //} - //var wmsIpAddress = wmsBase + requestTask; - //var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, keys.ToString()).Result; - - //if (result != null) - //{ - // task.ExceptionMessage += " " + content.Message; - //} - if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting) { - task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish; + if (Convert.ToInt32(task.TargetAddress) > 1999 && Convert.ToInt32(task.TargetAddress) < 3000) + { + task.TaskState = (int)TaskOutStatusEnum.OutFinish; ; + task.ModifyDate = DateTime.Now; + task.Modifier = "System"; - Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 2 && x.stationFloor == task.Floor); + Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task); + task_Hty.TaskId = 0; + task_Hty.OperateType = (int)OperateTypeEnum.鑷姩瀹屾垚; + BaseDal.DeleteData(task); + _taskHtyRepository.AddData(task_Hty); + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�"); + } + else + { + task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish; - task.CurrentAddress = task.NextAddress; + Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 2 && x.stationFloor == task.Floor); - task.NextAddress = stationManager.stationNextChildCode; + task.CurrentAddress = task.NextAddress; - BaseDal.UpdateData(task); + task.NextAddress = stationManager.stationNextChildCode; - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�"); + BaseDal.UpdateData(task); + + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�"); + } + } + else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) + { + } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting) { @@ -790,10 +1181,30 @@ Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task); task_Hty.TaskId = 0; - + task_Hty.OperateType = (int)OperateTypeEnum.鑷姩瀹屾垚; BaseDal.DeleteData(task); _taskHtyRepository.AddData(task_Hty); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�"); + + var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); + var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; + var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue; + WMSTaskDTO taskDTO = new WMSTaskDTO() + { + TaskId = task.WMSTaskNum, + TPbarcode = task.PalletCode, + WhCode = "1001", + BeginPoint = task.SourceAddress, + EndPoint = task.TargetAddress, + Results = "1" + }; + if (wmsBase == null || requestTask == null) + { + throw new InvalidOperationException("WMS IP 鏈厤缃�"); + } + var wmsIpAddress = wmsBase + requestTask; + var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result; + WriteLog.GetLog("WMS鎺ュ彛杩斿洖淇℃伅").Write(JsonConvert.SerializeObject(result), "WMS鎺ュ彛杩斿洖淇℃伅"); } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) { @@ -804,10 +1215,30 @@ Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task); task_Hty.TaskId = 0; - + task_Hty.OperateType = (int)OperateTypeEnum.鑷姩瀹屾垚; BaseDal.DeleteData(task); _taskHtyRepository.AddData(task_Hty); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈虹Щ搴撳畬鎴�"); + + var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); + var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; + var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue; + WMSTaskDTO taskDTO = new WMSTaskDTO() + { + TaskId = task.WMSTaskNum, + TPbarcode = task.PalletCode, + WhCode = "1001", + BeginPoint = task.SourceAddress, + EndPoint = task.TargetAddress, + Results = "1" + }; + if (wmsBase == null || requestTask == null) + { + throw new InvalidOperationException("WMS IP 鏈厤缃�"); + } + var wmsIpAddress = wmsBase + requestTask; + var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result; + WriteLog.GetLog("WMS鎺ュ彛杩斿洖淇℃伅").Write(JsonConvert.SerializeObject(result), "WMS鎺ュ彛杩斿洖淇℃伅"); } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OtherGroup) { @@ -853,6 +1284,130 @@ return content; } + public WebResponseContent TaskCancel(int taskNum) + { + WebResponseContent content = new WebResponseContent(); + try + { + var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); + if (task == null) return content.Error("鏈壘鍒拌浠诲姟淇℃伅"); + + if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) + { + task.TaskState = (int)TaskOutStatusEnum.OutCancel; + } + else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) + { + task.TaskState = (int)TaskInStatusEnum.InCancel; + } + else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) + { + task.TaskState = (int)TaskRelocationStatusEnum.RelocationCancel; + } + else + { + return content.Error($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�"); + } + task.ModifyDate = DateTime.Now; + BaseDal.DeleteData(task); + + Dt_Task_Hty taskHty = _mapper.Map<Dt_Task_Hty>(task); + taskHty.OperateType = (int)OperateTypeEnum.WCS浜哄伐鍙栨秷; + _taskHtyRepository.AddData(taskHty); + + #region 涓婃姤WMS鎵ц缁撴灉 + var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); + var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; + var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue; + WMSTaskDTO taskDTO = new WMSTaskDTO() + { + TaskId = task.WMSTaskNum, + TPbarcode = task.PalletCode, + WhCode = "1001", + BeginPoint = task.SourceAddress, + EndPoint = task.TargetAddress, + Results = "3" + }; + if (wmsBase == null || requestTask == null) + { + throw new InvalidOperationException("WMS IP 鏈厤缃�"); + } + var wmsIpAddress = wmsBase + requestTask; + var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result; + WriteLog.GetLog("WMS鎺ュ彛杩斿洖淇℃伅").Write(JsonConvert.SerializeObject(result), "WMS鎺ュ彛杩斿洖淇℃伅"); + #endregion + + content = WebResponseContent.Instance.OK("鍙栨秷浠诲姟鎴愬姛"); + } + catch (Exception ex) + { + content = WebResponseContent.Instance.Error(ex.Message); + } + return content; + } + + public WebResponseContent TaskComplete(int taskNum) + { + WebResponseContent content = new WebResponseContent(); + try + { + var task=BaseDal.QueryFirst(x => x.TaskNum == taskNum); + if (task == null) return content.Error("鏈壘鍒拌浠诲姟淇℃伅"); + + if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) + { + task.TaskState = (int)TaskOutStatusEnum.OutHandFinish; + } + else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) + { + task.TaskState = (int)TaskInStatusEnum.InHandFinish; + } + else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) + { + task.TaskState = (int)TaskRelocationStatusEnum.RelocationHandFinish; + } + else + { + return content.Error($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�"); + } + task.ModifyDate = DateTime.Now; + BaseDal.DeleteData(task); + + Dt_Task_Hty taskHty = _mapper.Map<Dt_Task_Hty>(task); + taskHty.OperateType = (int)OperateTypeEnum.浜哄伐瀹屾垚; + _taskHtyRepository.AddData(taskHty); + + #region 涓婃姤WMS瀹屾垚 + var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); + var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; + var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue; + WMSTaskDTO taskDTO = new WMSTaskDTO() + { + TaskId = task.WMSTaskNum, + TPbarcode = task.PalletCode, + WhCode = "1001", + BeginPoint = task.SourceAddress, + EndPoint = task.TargetAddress, + Results = "2" + }; + if (wmsBase == null || requestTask == null) + { + throw new InvalidOperationException("WMS IP 鏈厤缃�"); + } + var wmsIpAddress = wmsBase + requestTask; + var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result; + WriteLog.GetLog("WMS鎺ュ彛杩斿洖淇℃伅").Write(JsonConvert.SerializeObject(result), "WMS鎺ュ彛杩斿洖淇℃伅"); + #endregion + + content = WebResponseContent.Instance.OK("鎵嬪姩瀹屾垚鎴愬姛"); + } + catch (Exception ex) + { + content = WebResponseContent.Instance.Error(ex.Message); + } + return content; + } + /// <summary> /// 鎭㈠鎸傝捣浠诲姟 /// </summary> -- Gitblit v1.9.3