From 16749e23b489ee24f993fe9e87346680b7bcf63a Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期五, 10 十月 2025 21:14:49 +0800 Subject: [PATCH] 代码提交 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 537 ++++++++++++++++++++--------------------------------------- 1 files changed, 185 insertions(+), 352 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 d76dc75..0df6834 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" @@ -26,6 +26,7 @@ using WIDESEAWCS_QuartzJob.Models; using WIDESEAWCS_QuartzJob.Repository; using WIDESEAWCS_QuartzJob.Service; +using WIDESEAWCS_TaskInfoRepository; namespace WIDESEAWCS_TaskInfoService { @@ -53,6 +54,9 @@ public List<int> TaskInboundTypes => typeof(TaskInboundTypeEnum).GetEnumIndexList(); public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList(); + public List<int> TaskRelocationboundTypes => typeof(TaskRelocationStatusEnum).GetEnumIndexList(); + public List<int> TaskAGVCarryboundTypes => typeof(TaskAGVCarryStatusEnum).GetEnumIndexList(); + public List<int> TaskAcrossFloorboundTypes => typeof(TaskAcrossFloorStatusEnum).GetEnumIndexList(); public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ISys_ConfigService sys_ConfigService, IDt_StationManagerService stationManagerService, IDt_StationManagerRepository stationManagerRepository, IRouterRepository routerRepository, ITask_HtyRepository htyRepository) : base(BaseDal) { @@ -95,58 +99,77 @@ // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄嚭搴撲换鍔� if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { - // 鍒ゆ柇浠诲姟鐩爣鍦板潃鍜岃矾寰勬槸鍚︽弧瓒崇壒瀹氭潯浠� - if (((task.TargetAddress == "002-021-001" || task.TargetAddress == "001-021-001") && task.Roadway.Contains("JZ")) || task.TaskType == (int)TaskOutboundTypeEnum.OutFireAlarm) - { - // 璁剧疆浠诲姟鐘舵�佷负鍑哄簱鏂板缓 - task.TaskState = (int)TaskOutStatusEnum.OutNew; - // 璁剧疆褰撳墠鍦板潃涓烘簮鍦板潃 - task.CurrentAddress = item.SourceAddress; - // 璁剧疆涓嬩竴涓湴鍧�涓虹洰鏍囧湴鍧� - task.NextAddress = item.TargetAddress; - } - else - { - // 鏌ヨ涓嬩竴涓矾鐢� - List<Dt_Router> routers = _routerService.QueryNextRoutes(item.RoadWay, item.TargetAddress); - if (routers.Count > 0) - { - // 璁剧疆浠诲姟鐘舵�佷负鍑哄簱鏂板缓 - task.TaskState = (int)TaskOutStatusEnum.OutNew; - // 璁剧疆褰撳墠鍦板潃涓烘簮鍦板潃 - task.CurrentAddress = item.SourceAddress; - // 璁剧疆涓嬩竴涓湴鍧�涓虹涓�涓瓙浣嶇疆 - task.NextAddress = routers.FirstOrDefault().ChildPosi; - } - else - { - // 鏌ヨ浠庢簮鍦板潃鍒扮洰鏍囧湴鍧�鐨勮矾鐢� - routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress); - if (routers.Count > 0) - { - // 璁剧疆浠诲姟鐘舵�佷负鍑哄簱瀹屾垚 - task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish; - // 璁剧疆褰撳墠鍦板潃涓烘簮鍦板潃 - task.CurrentAddress = item.SourceAddress; - // 璁剧疆涓嬩竴涓湴鍧�涓虹涓�涓瓙浣嶇疆 - task.NextAddress = routers.FirstOrDefault().ChildPosi; - } - } - } + var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1"); + + task.TaskState = (int)TaskOutStatusEnum.OutNew; + + task.CurrentAddress = item.SourceAddress; + + task.NextAddress = station.stationChildCode; + + task.Floor = "1F"; + + task.AGVSign = ""; } // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄叆搴撲换鍔� else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) { + var station = _stationManagerRepository.QueryFirst(x => x.stationType == 1 && x.Roadway == "SC1"); - task.CurrentAddress = string.Empty; - if (task.SourceAddress == "1325-6") - // 璁剧疆褰撳墠鍦板潃涓�"001-021-001" - task.CurrentAddress = "001-021-001"; - else - // 璁剧疆褰撳墠鍦板潃涓�"002-021-001" - task.CurrentAddress = "002-021-001"; - // 璁剧疆涓嬩竴涓湴鍧�涓虹洰鏍囧湴鍧� - task.NextAddress = item.TargetAddress; + task.TaskState = (int)TaskInStatusEnum.InNew; + + task.CurrentAddress = item.SourceAddress; + + task.NextAddress = station.stationChildCode; + + task.Floor = "1F"; + + task.AGVSign= ""; + } + else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) + { + task.TaskState = (int)TaskRelocationStatusEnum.RelocationNew; + + task.CurrentAddress = item.SourceAddress; + + task.NextAddress = task.TargetAddress; + + task.Floor = "1F"; + + task.AGVSign = ""; + } + else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.CarryGroup) + { + var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress); + + task.TaskState = (int)TaskAGVCarryStatusEnum.CarryNew; + + task.CurrentAddress = item.SourceAddress; + + task.NextAddress = task.TargetAddress; + + task.Floor = station.stationFloor; + + task.AGVSign = ""; + } + else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.AcrossFloorGroup) + { + var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == item.SourceAddress); + + if (station != null) + { + var next = _stationManagerRepository.QueryFirst(x => x.stationType == 5 && x.stationFloor == station.stationFloor); + + task.TaskState = (int)TaskAcrossFloorStatusEnum.CarryNew; + + task.CurrentAddress = item.SourceAddress; + + task.NextAddress = next.stationChildCode; + + task.Floor = station.stationFloor; + + task.AGVSign = ""; + } } // 灏嗚浆鎹㈠悗鐨勪换鍔℃坊鍔犲埌浠诲姟鍒楄〃涓� tasks.Add(task); @@ -169,144 +192,7 @@ return content; } - /// <summary> - /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟 - /// </summary> - /// <param name="deviceNo">璁惧缂栧彿</param> - /// <param name="currentAddress">褰撳墠鍦板潃</param> - /// <returns></returns> - public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress) - { - 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); - } - - /// <summary> - /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟 - /// </summary> - /// <param name="deviceNo">璁惧缂栧彿</param> - /// <param name="currentAddress">褰撳墠鍦板潃</param> - /// <returns></returns> - 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 && x.PalletCode == Barcode, TaskOrderBy); - } - - /// <summary> - /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟 - /// </summary> - /// <param name="deviceNo">璁惧缂栧彿</param> - /// <param name="currentAddress">褰撳墠鍦板潃</param> - /// <returns></returns> - public Dt_Task QueryNextConveyorLineTask(string deviceNo, string currentAddress) - { - return BaseDal.QueryFirst(x => ((TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew) || (TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)) && x.NextAddress == currentAddress, TaskOrderBy); - } - - /// <summary> - /// 鏍规嵁鎵樼洏鍙枫�佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟 - /// </summary> - /// <param name="Barcode">鎵樼洏鍙�</param> - /// <param name="currentAddress">褰撳墠鍦板潃</param> - /// <returns></returns> - public Dt_Task QueryBarCodeConveyorLineTask(string Barcode, string currentAddress) - { - 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 && x.PalletCode == Barcode, TaskOrderBy); - } - - /// <summary> - /// 鏍规嵁浠诲姟鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟 - /// </summary> - /// <param name="taskNum">浠诲姟鍙�</param> - /// <param name="nextAddress">涓嬩竴鍦板潃</param> - /// <returns></returns> - public Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress) - { - return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.NextAddress == nextAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy); - } - - /// <summary> - /// 鏍规嵁浠诲姟鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟 - /// </summary> - /// <param name="taskNum">浠诲姟鍙�</param> - /// <param name="Barcode">涓嬩竴鍦板潃</param> - /// <param name="currentAddress">涓嬩竴鍦板潃</param> - /// <returns></returns> - public Dt_Task QueryExecutingCurrentConveyorLineTask(int taskNum, string Barcode, string currentAddress) - { - return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.PalletCode == Barcode && x.CurrentAddress == currentAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy); - } - - /// <summary> - /// 鏍规嵁浠诲姟鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟 - /// </summary> - /// <param name="taskNum">浠诲姟鍙�</param> - /// <param name="nextAddress">涓嬩竴鍦板潃</param> - /// <returns></returns> - public Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress, string Barcode) - { - return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.NextAddress == nextAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy); - } - - /// <summary> - /// 鏍规嵁鎵樼洏鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟 - /// </summary> - /// <param name="taskNum">浠诲姟鍙�</param> - /// <param name="nextAddress">涓嬩竴鍦板潃</param> - /// <returns></returns> - public Dt_Task QueryExecutingConveyorLineTask(string nextAddress, string Barcode) - { - return BaseDal.QueryFirst(x => (x.NextAddress == nextAddress || x.TargetAddress == nextAddress) && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy); - } - - /// <summary> - /// 鏍规嵁浠诲姟鍙枫�佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎瀹屾垚鐨勪换鍔� - /// </summary> - /// <param name="taskNum">浠诲姟鍙�</param> - /// <param name="currentAddress">褰撳墠鍦板潃</param> - /// <returns></returns> - public Dt_Task QueryCompletedConveyorLineTask(int taskNum, string currentAddress) - { - return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InFinish || x.TaskState == (int)TaskOutStatusEnum.Line_OutFinish), TaskOrderBy); - } - - /// <summary> - /// 鏍规嵁鎵樼洏鍙枫�佸綋鍓嶅湴鍧�鏌ヨ浠诲姟 - /// </summary> - /// <param name="taskNum">浠诲姟鍙�</param> - /// <param name="currentAddress">褰撳墠鍦板潃</param> - /// <returns></returns> - public Dt_Task QueryBarcodeTask(string barcode, string currentAddress) - { - return BaseDal.QueryFirst(x => x.PalletCode == barcode && x.CurrentAddress == currentAddress, TaskOrderBy); - } - - /// <summary> - /// 鏍规嵁浠诲姟鍙枫�佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏂板缓鐨勪换鍔� - /// </summary> - /// <param name="taskNum">浠诲姟鍙�</param> - /// <param name="currentAddress">褰撳墠鍦板潃</param> - /// <returns></returns> - public Dt_Task QueryCraneConveyorLineTask(int taskNum, string currentAddress) - { - return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress && (x.TaskState == (int)TaskInStatusEnum.InNew || x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy); - } - - /// <summary> - /// 鏍规嵁璁惧缂栧彿銆佷换鍔$被鍨嬪垎缁�(鍙��)鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鏂板鐨勪换鍔� - /// </summary> - /// <param name="deviceNo">璁惧缂栧彿</param> - /// <param name="taskTypeGroup">浠诲姟绫诲瀷鍒嗙粍(鍙��)</param> - /// <returns></returns> - public Dt_Task? QuertStackerCraneTask(string deviceNo, TaskTypeGroup? taskTypeGroup = null) - { - if (taskTypeGroup == null) - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && ((TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish) || (TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew)), TaskOrderBy); - if (taskTypeGroup.Value == TaskTypeGroup.InboundGroup) - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish, TaskOrderBy); - if (taskTypeGroup.Value == TaskTypeGroup.OutbondGroup) - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy); - return null; - } + #region 鍫嗗灈鏈轰换鍔℃煡璇� /// <summary> /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鏂板鐨勪换鍔� @@ -365,16 +251,32 @@ return BaseDal.QueryData(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew && x.CurrentAddress == currentAddress, TaskOrderBy); } + #endregion + + #region AGV璇锋眰璁惧淇″彿浠诲姟鏌ヨ + /// <summary> - /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鍑哄簱绫诲瀷鐨勬柊澧炵殑浠诲姟 + /// 璇锋眰杈撻�佺嚎 /// </summary> - /// <param name="deviceNo">璁惧缂栧彿</param> - /// <param name="currentAddress">褰撳墠鍦板潃</param> - /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄闆嗗悎锛屽彲鑳戒负null</returns> - public List<Dt_Task> QueryStackerCraneOutTasks(string deviceNo, List<string> outStationCodes) + /// <param name="deviceNo"></param> + /// <param name="agvSign"></param> + /// <returns></returns> + public Dt_Task QueryRequestConveyorLineSignalTask() { - return BaseDal.QueryData(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew && outStationCodes.Contains(x.CurrentAddress), TaskOrderBy); + return BaseDal.QueryFirst(x => (x.AGVSign == "RequestPickUp" || x.AGVSign == "RequestPut")&&((TaskInboundTypes.Contains(x.TaskType) && x.TaskState > (int)TaskInStatusEnum.InNew) || (TaskOutboundTypes.Contains(x.TaskType) && x.TaskState > (int)TaskOutStatusEnum.SC_OutFinish))); } + + /// <summary> + /// 璇锋眰鎻愬崌鏈� + /// </summary> + /// <returns></returns> + public Dt_Task QueryRequestTSJSignalTask() + { + return BaseDal.QueryFirst(x => TaskAcrossFloorboundTypes.Contains(x.TaskType) && x.TaskState > (int)TaskAcrossFloorStatusEnum.CarryNew && (x.AGVSign == "RequestPickUp" || x.AGVSign == "RequestPut")); + } + + #endregion + /// <summary> /// 鏇存柊浠诲姟寮傚父淇℃伅鏄剧ず @@ -411,19 +313,6 @@ return content; } - /// <summary> - /// 鏇存柊浠诲姟鐘舵�佷俊鎭紝骞跺悓姝ヨ嚦WMS - /// </summary> - /// <param name="taskNum">浠诲姟鍙�</param> - /// <param name="status">浠诲姟鐘舵��</param> - public void UpdateTaskStatus(int taskNum, int status) - { - var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); - if (task == null) return; - task.TaskState = status; - task.ModifyDate = DateTime.Now; - BaseDal.UpdateData(task); - } /// <summary> /// 灏嗕换鍔$姸鎬佷慨鏀逛负涓嬩竴涓姸鎬� @@ -462,7 +351,7 @@ task.TaskState = nextStatus; - if (task.TaskState == (int)TaskOutStatusEnum.Line_OutFinish) + if (task.TaskState == (int)TaskOutStatusEnum.AGV_OutFinish) { task.ModifyDate = DateTime.Now; task.Modifier = "System"; @@ -485,55 +374,56 @@ int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>(); task.TaskState = nextStatus; - if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish) - { - #region 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃 + //if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish) + //{ + // #region 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃 - // TODO: 璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃 - // 鍒涘缓璇锋眰瀵硅薄 - var taskDto = new RequestTaskDto() - { - Position = task.NextAddress, - PalletCode = task.PalletCode, - }; + // // TODO: 璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃 + // // 鍒涘缓璇锋眰瀵硅薄 + // var taskDto = new RequestTaskDto() + // { + // Position = task.NextAddress, + // PalletCode = task.PalletCode, + // }; - // 鑾峰彇WMSip鍦板潃 - var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); - var wmsBasez = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue; - var requestLocation = configz.Where(x => x.ConfigKey == SysConfigKeyConst.RequestLocation).FirstOrDefault()?.ConfigValue; - if (wmsBasez == null || requestLocation == null) - { - throw new InvalidOperationException("WMS IP 鏈厤缃�"); - } - var wmsIpAddrss = wmsBasez + requestLocation; + // // 鑾峰彇WMSip鍦板潃 + // var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); + // var wmsBasez = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue; + // var requestLocation = configz.Where(x => x.ConfigKey == SysConfigKeyConst.RequestLocation).FirstOrDefault()?.ConfigValue; + // if (wmsBasez == null || requestLocation == null) + // { + // throw new InvalidOperationException("WMS IP 鏈厤缃�"); + // } + // var wmsIpAddrss = wmsBasez + requestLocation; - // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲 - var abc = HttpHelper.PostAsync(wmsIpAddrss, taskDto.ToJsonString()).Result; - if (abc == null) - return content.Error(); - // 鍙嶅簭鍒楀寲鍝嶅簲鍐呭 - content = JsonConvert.DeserializeObject<WebResponseContent>(abc); + // // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲 + // var abc = HttpHelper.PostAsync(wmsIpAddrss, taskDto.ToJsonString()).Result; + // if (abc == null) + // return content.Error(); + // // 鍙嶅簭鍒楀寲鍝嶅簲鍐呭 + // content = JsonConvert.DeserializeObject<WebResponseContent>(abc); - QuartzLogger.WriteLogToFile($"Info_鑾峰彇璐т綅", $"鑾峰彇璐т綅,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙凤細銆恵task.PalletCode}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}"); + // QuartzLogger.WriteLogToFile($"Info_鑾峰彇璐т綅", $"鑾峰彇璐т綅,浠诲姟鍙�:銆恵task.TaskNum}銆�,鎵樼洏鍙凤細銆恵task.PalletCode}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}"); - // 妫�鏌ョ姸鎬佸苟杩斿洖 - if (!content.Status) - { - return content; - } + // // 妫�鏌ョ姸鎬佸苟杩斿洖 + // if (!content.Status) + // { + // return content; + // } - // 鍙嶅簭鍒楀寲浠诲姟鏁版嵁 - var taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); + // // 鍙嶅簭鍒楀寲浠诲姟鏁版嵁 + // var taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); - task.CurrentAddress = task.NextAddress; - task.NextAddress = taskResult.TargetAddress; - task.TargetAddress = task.NextAddress; + // task.CurrentAddress = task.NextAddress; + // task.NextAddress = taskResult.TargetAddress; + // task.TargetAddress = task.NextAddress; - #endregion 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃 - } - else if (task.TaskState == (int)TaskInStatusEnum.SC_InFinish) + // #endregion 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃 + //} + //else + if (task.TaskState == (int)TaskInStatusEnum.SC_InFinish) { if (App.User.UserId > 0) { @@ -541,6 +431,23 @@ return content; } + 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); + } + }else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.CarryGroup) + { + int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskAGVCarryStatusEnum>(); + + task.TaskState = nextStatus; + + if (task.TaskState == (int)TaskAGVCarryStatusEnum.AGV_CarryFinish) + { task.ModifyDate = DateTime.Now; task.Modifier = "System"; @@ -594,41 +501,6 @@ } /// <summary> - /// 鏍规嵁浠诲姟鍙枫�佸綋鍓嶅湴鍧�鏇存柊浠诲姟浣嶇疆淇℃伅 - /// </summary> - /// <param name="taskNum">浠诲姟鍙�</param> - /// <param name="currentAddress">褰撳墠鍦板潃</param> - /// <returns></returns> - public Dt_Task? UpdatePosition(int taskNum, string currentAddress) - { - try - { - var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress); - if (task == null) throw new Exception($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�"); - - string oldCurrentPos = task.CurrentAddress; - string oldNextPos = task.NextAddress; - - var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress); - if (!routers.Any()) throw new Exception($"鏈壘鍒拌澶囪矾鐢变俊鎭�"); - - task.CurrentAddress = task.NextAddress; - task.NextAddress = routers.FirstOrDefault().ChildPosi; - - task.ModifyDate = DateTime.Now; - task.Modifier = "System"; - - - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绯荤粺鑷姩娴佺▼锛屾洿鏂板綋鍓嶄綅缃�恵oldCurrentPos} ----> {task.CurrentAddress}銆戝拰涓嬩竴浣嶇疆銆恵oldNextPos} ----> {task.NextAddress}銆�"); - return task; - } - catch (Exception ex) - { - } - return null; - } - - /// <summary> /// 浠诲姟瀹屾垚 /// </summary> /// <param name="taskNum">浠诲姟缂栧彿</param> @@ -643,78 +515,37 @@ #region WMS鍚屾浠诲姟瀹屾垚 - var keys = new Dictionary<string, object>() - { - {"taskNum", taskNum} - }; - // 鑾峰彇WMSip鍦板潃 - 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.CompleteTask)?.ConfigValue; - if (wmsBase == null || completeTask == null) - { - throw new InvalidOperationException("WMS IP 鏈厤缃�"); - } - var wmsIpAddress = wmsBase + completeTask; + //var keys = new Dictionary<string, object>() + //{ + // {"taskNum", taskNum} + //}; + //// 鑾峰彇WMSip鍦板潃 + //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.CompleteTask)?.ConfigValue; + //if (wmsBase == null || completeTask == null) + //{ + // throw new InvalidOperationException("WMS IP 鏈厤缃�"); + //} + //var wmsIpAddress = wmsBase + completeTask; - var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result; + //var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result; - QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚,浠诲姟鍙�:銆恵taskNum}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(result)}銆憑Environment.NewLine}{Environment.NewLine}"); - if (result != null) - { - - content = JsonConvert.DeserializeObject<WebResponseContent>(result); - if (!content.Data.IsNullOrEmpty()) - { - if (content.Data.ToString() == "NG") - { - task.Remark = "NG"; - //BaseDal.UpdateData(task); - //_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴愶紝MOM杩斿洖NG"); - } - } - task.ExceptionMessage += " " + content.Message; - - } #endregion WMS鍚屾浠诲姟瀹屾垚 if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting) { - if (!task.Roadway.Contains("GW") && task.TaskType != (int)TaskOutboundTypeEnum.InToOut) - { - var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress); - if (!routers.Any()) return WebResponseContent.Instance.Error($"鏈壘鍒拌澶囪矾鐢变俊鎭�"); + var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.NextAddress); + int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>(); + task.TaskState = nextStatus; - int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>(); - task.TaskState = nextStatus; - task.CurrentAddress = task.NextAddress; - task.NextAddress = routers.FirstOrDefault().ChildPosi; - task.ModifyDate = DateTime.Now; - task.Modifier = "System"; - BaseDal.UpdateData(task); + task.CurrentAddress = task.NextAddress; + task.NextAddress = task.TargetAddress; + task.ModifyDate = DateTime.Now; + task.Modifier = "System"; + BaseDal.UpdateData(task); - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�"); - } - else - { - task.TaskState = (int)TaskOutStatusEnum.OutFinish; - //濡傞珮娓╁嚭搴撳悗 NG 鍒欏皢浠诲姟鏍囪涓篘G 骞跺湪鍑哄簱鐢宠鍚庡皢浠诲姟鍑鸿嚦NG鍙� - if (task.Remark == "NG") - { - BaseDal.UpdateData(task); - } - else - { - BaseDal.DeleteData(task); - ConsoleHelper.WriteWarningLine($"楂樻俯鍑哄簱鐩殑鍦板潃{task.TargetAddress}"); - } - - var taskHty = task.Adapt<Dt_Task_Hty>(); - _taskHtyRepository.AddData(taskHty); - _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�"); - } - - //鏆備笉鑰冭檻澶氫釜鍑哄簱鍙� + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�"); } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting) { @@ -733,7 +564,17 @@ } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) { - //todo 璋冪敤WMS绉诲簱瀹屾垚 + int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskRelocationStatusEnum>(); + task.TaskState = nextStatus; + 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); + _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈虹Щ搴撳畬鎴�"); } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OtherGroup) { @@ -846,15 +687,7 @@ { return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskType == (int)TaskRelocationTypeEnum.Relocation && x.TaskState == (int)TaskRelocationStatusEnum.RelocationNew); } - public Dt_Task QueryOutFireAlarmTask(string deviceNo) - { - return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskType == (int)TaskOutboundTypeEnum.OutFireAlarm && x.TaskState == (int)TaskOutStatusEnum.OutNew); - } - public Dt_Task QueryExecutingTaskByBarcode(string barcode, string nextAddress) - { - return BaseDal.QueryFirst(x => x.PalletCode == barcode && x.NextAddress == nextAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy); - } private string GetIpAddress(string baseIp, string name) { -- Gitblit v1.9.3