| | |
| | | try |
| | | { |
| | | // æ¥æ¾ä»»å¡ |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.TaskStatus == TaskOutStatusEnum.OutFinish.ObjToInt()); |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum &&(x.TaskStatus == TaskOutStatusEnum.OutNew.ObjToInt()|| x.TaskStatus == TaskRelocationStatusEnum.RelocationNew.ObjToInt()|| x.TaskStatus == TaskInStatusEnum.Line_InExecuting.ObjToInt())); |
| | | if (task == null) |
| | | { |
| | | return webResponse.Error($"æªæ¾å°ä»»å¡å·ä¸ºã{taskNum}ãçä»»å¡ä¿¡æ¯"); |
| | |
| | | } |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.äººå·¥å®æ : OperateTypeEnum.èªå¨å®æ); |
| | | //è·åæ¥å£è¿è¡è°å |
| | | var ConfigsAPIInfo = _dt_ApiInfoService.GetConfigsByAPIInfo(CateGoryConst.CONFIG_MES_IPAddress, SysConfigConst.WCSCancelinventory); //è·åå°wcså
¨é¨ç±»åçæ¥å£ |
| | | var ConfigsAPIInfo = _dt_ApiInfoService.GetConfigsByAPIInfo(CateGoryConst.CONFIG_WCS_IPAddress, SysConfigConst.WCSCancelinventory); //è·åå°wcså
¨é¨ç±»åçæ¥å£ |
| | | string WCSReceiveTaskAPI = ConfigsAPIInfo.ApiAddress + ConfigsAPIInfo.ApiName; |
| | | if (WCSReceiveTaskAPI == null) |
| | | { |
| | | return webResponse.Error($"ä»»å¡åé¦MESå¤±è´¥ï¼æªé
ç½®MESä»»å¡å®æå馿¥å£"); |
| | | _unitOfWorkManage.RollbackTran(); |
| | | |
| | | return webResponse.Error($"任塿å¨åæ¶å¤±è´¥ï¼æªé
ç½®WCS任塿å¨åæ¶å馿¥å£"); |
| | | } |
| | | var respon = HttpHelper.Get(WCSReceiveTaskAPI, JsonConvert.SerializeObject(task.TaskNum)); |
| | | if (respon != null) |
| | | |
| | | if (respon == null) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | |
| | | return webResponse.Error($"è°åæ¥å£å¤±è´¥ï¼åé¦åæ°ä¸ºç©º"); |
| | | } |
| | | var response = JsonConvert.DeserializeObject<ApiResponse<object>>(respon); |
| | | // if (response.Success) |
| | | // { |
| | | // return webResponse.OK(); |
| | | // } |
| | | // else |
| | | // { |
| | | // return webResponse.Error($"è°åæ¥å£å¤±è´¥ï¼åé¦åæ°åå ï¼{response.Message}"); |
| | | // } |
| | | //} |
| | | //else |
| | | //{ |
| | | // return webResponse.Error($"è°åæ¥å£å¤±è´¥ï¼åé¦åæ°ä¸ºç©º"); |
| | | //} |
| | | if (stockmsseg > 0 && locationmsseg > 0 && taskmsseg) |
| | | if (!response.Success) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | |
| | | return webResponse.Error($"è°åæ¥å£å¤±è´¥ï¼åé¦åæ°åå ï¼{response.Message}"); |
| | | } |
| | | if (stockmsseg <= 0 && locationmsseg <= 0 && taskmsseg) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error("ä»»å¡åæ¶å¤±è´¥"); |
| | | } |
| | | |
| | | //è·åæ¥å£è¿è¡è°å |
| | | var MESConfigsAPIInfo = _dt_ApiInfoService.GetConfigsByAPIInfo(CateGoryConst.CONFIG_MES_IPAddress, SysConfigConst.MEScancelTask); //è·åå°MESå
¨é¨ç±»åçæ¥å£ |
| | | string MEScancelTask = ConfigsAPIInfo.ApiAddress + ConfigsAPIInfo.ApiName; |
| | | if (MEScancelTask == null) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"任塿å¨å®æå¤±è´¥ï¼æªé
ç½®WCS任塿å¨å®æå馿¥å£"); |
| | | } |
| | | var MES = new |
| | | { |
| | | businessId = task.MESbusinessId, |
| | | taskId = task.MEStaskId, |
| | | palletCode = task.PalletCode |
| | | }; |
| | | var MESrespon = HttpHelper.Post(MEScancelTask, JsonConvert.SerializeObject(MES)); |
| | | if (respon == null) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"è°åæ¥å£å¤±è´¥ï¼åé¦åæ°ä¸ºç©º"); |
| | | } |
| | | var MESresponse = JsonConvert.DeserializeObject<ApiResponse<object>>(respon); |
| | | if (!response.Success) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"è°åæ¥å£å¤±è´¥ï¼åé¦åæ°åå ï¼{response.Message}"); |
| | | } |
| | | _unitOfWorkManage.CommitTran(); |
| | | return webResponse.OK("ä»»å¡åæ¶æå"); |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"åæ¶ä»»å¡å¤±è´¥ï¼åå ï¼{ex.Message}"); |
| | | } |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error("ä»»å¡åæ¶å¤±è´¥"); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æå¨å®ææ¥å£ |
| | | /// </summary> |
| | | /// <param name="taskNum"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="NotImplementedException"></exception> |
| | | public WebResponseContent ManualTaskCompleted(int taskNum) |
| | | { |
| | | WebResponseContent webResponse = new WebResponseContent(); |
| | | try |
| | | { |
| | | // æ¥æ¾ä»»å¡ |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (task == null) |
| | | { |
| | | return webResponse.Error($"æªæ¾å°ä»»å¡å·ä¸ºã{taskNum}ãçä»»å¡ä¿¡æ¯"); |
| | | } |
| | | |
| | | |
| | | Dt_StockInfo stockInfo = _stockRepository.QueryFirst(x => x.PalletCode == task.PalletCode); |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | |
| | | Dt_StockInfo stockmsseg; |
| | | Dt_LocationInfo locationmsseg1 = null; |
| | | Dt_LocationInfo locationmsseg2 = null; |
| | | bool taskmsseg; |
| | | bool task_htymsseg; |
| | | |
| | | bool location1; |
| | | bool location2 = false; |
| | | |
| | | bool resstock; |
| | | if (task.TaskType == TaskInboundTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt()) |
| | | { |
| | | stockmsseg = _stockRepository.QueryFirst(x => x.LocationCode == task.TargetAddress); |
| | | if (stockmsseg == null) { return webResponse.Error("æªæ¾å°åºåä¿¡æ¯"); }; |
| | | stockmsseg.StockStatus = StockStatusEmun.å
¥åºå®æ.ObjToInt(); |
| | | resstock = _stockRepository.UpdateData(stockmsseg); |
| | | if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt()) |
| | | { |
| | | locationmsseg1 = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress); |
| | | locationmsseg2 = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.CurrentAddress); |
| | | if (locationmsseg1 == null || locationmsseg2 == null) { webResponse.Error("æªæ¾å°è´§ä½ä¿¡æ¯"); } |
| | | locationmsseg1.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | locationmsseg2.LocationStatus = LocationStatusEnum.Free.ObjToInt(); |
| | | location1 = _locationInfoRepository.UpdateData(locationmsseg1); |
| | | location2 = _locationInfoRepository.UpdateData(locationmsseg2); |
| | | } |
| | | else |
| | | { |
| | | locationmsseg1 = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress); |
| | | if (locationmsseg1 == null) { webResponse.Error("æªæ¾å°è´§ä½ä¿¡æ¯"); } |
| | | locationmsseg1.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | location1 = _locationInfoRepository.UpdateData(locationmsseg1); |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | | stockmsseg = _stockRepository.QueryFirst(x => x.LocationCode == task.CurrentAddress); |
| | | if (stockmsseg == null) { return webResponse.Error("æªæ¾å°åºåä¿¡æ¯"); } |
| | | resstock = _stockRepository.DeleteData(stockmsseg); |
| | | locationmsseg1 = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.CurrentAddress); |
| | | if (locationmsseg1 == null) { webResponse.Error("æªæ¾å°è´§ä½ä¿¡æ¯"); } |
| | | locationmsseg1.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); |
| | | location1 = _locationInfoRepository.UpdateData(locationmsseg1); |
| | | } |
| | | |
| | | taskmsseg = BaseDal.DeleteData(task); |
| | | |
| | | task_htymsseg = BaseDal.DeleteAndMoveIntoHty(task,OperateTypeEnum.äººå·¥å®æ); |
| | | //è·åæ¥å£è¿è¡è°å |
| | | var ConfigsAPIInfo = _dt_ApiInfoService.GetConfigsByAPIInfo(CateGoryConst.CONFIG_WCS_IPAddress, SysConfigConst.WCSManualTaskCompleted); //è·åå°wcså
¨é¨ç±»åçæ¥å£ |
| | | string WCSReceiveTaskAPI = ConfigsAPIInfo.ApiAddress + ConfigsAPIInfo.ApiName; |
| | | if (WCSReceiveTaskAPI == null) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"任塿å¨å®æå¤±è´¥ï¼æªé
ç½®WCS任塿å¨å®æå馿¥å£"); |
| | | } |
| | | var respon = HttpHelper.Get(WCSReceiveTaskAPI, JsonConvert.SerializeObject(task.TaskNum)); |
| | | if (respon == null) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"è°åæ¥å£å¤±è´¥ï¼åé¦åæ°ä¸ºç©º"); |
| | | } |
| | | var response = JsonConvert.DeserializeObject<ApiResponse<object>>(respon); |
| | | if (!response.Success) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"è°åæ¥å£å¤±è´¥ï¼åé¦åæ°åå ï¼{response.Message}"); |
| | | } |
| | | if (!(resstock && task_htymsseg && taskmsseg && task.TaskType ==TaskOutboundTypeEnum.Outbound.ObjToInt() ? location1 : (location1 && location2))) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"任塿å¨å®æå¤±è´¥"); |
| | | } |
| | | |
| | | //è·åæ¥å£è¿è¡è°å |
| | | var MESConfigsAPIInfo = _dt_ApiInfoService.GetConfigsByAPIInfo(CateGoryConst.CONFIG_MES_IPAddress, SysConfigConst.MESmockComplete); //è·åå°wcså
¨é¨ç±»åçæ¥å£ |
| | | string MESmockComplete = ConfigsAPIInfo.ApiAddress + ConfigsAPIInfo.ApiName; |
| | | if (MESConfigsAPIInfo == null) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"任塿å¨å®æå¤±è´¥ï¼æªé
ç½®WCS任塿å¨å®æå馿¥å£"); |
| | | } |
| | | var MES = new |
| | | { |
| | | businessId = task.MESbusinessId, |
| | | taskId = task.MEStaskId, |
| | | palletCode = task.PalletCode |
| | | }; |
| | | var MESrespon = HttpHelper.Post(MESmockComplete, JsonConvert.SerializeObject(MES)); |
| | | if (respon == null) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"è°åæ¥å£å¤±è´¥ï¼åé¦åæ°ä¸ºç©º"); |
| | | } |
| | | var MESresponse = JsonConvert.DeserializeObject<ApiResponse<object>>(respon); |
| | | if (!response.Success) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"è°åæ¥å£å¤±è´¥ï¼åé¦åæ°åå ï¼{response.Message}"); |
| | | } |
| | | _unitOfWorkManage.CommitTran(); |
| | | return webResponse.OK("任塿å¨å®ææå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"任塿å¨å®æå¤±è´¥ï¼åå ï¼{ex.Message}"); |
| | | } |
| | | } |
| | | } |
| | | } |