From 9d75314e88f8aac494d57715e3231fe3540cb867 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期二, 23 九月 2025 03:03:03 +0800 Subject: [PATCH] 优化更新 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 88 ++++++++++++++++++++++++++++++-------------- 1 files changed, 60 insertions(+), 28 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" index a0ff157..3c56706 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" @@ -139,29 +139,6 @@ return WebResponseContent.Instance.Error(ex.Message); } } - /// <summary> - /// 鏀捐揣瀹屾垚 - /// </summary> - /// <param name="code"></param> - /// <returns></returns> - public WebResponseContent PutFinish(string code, string barCode = "", string taskNum = "") - { - try - { - string url = AppSettings.Get("WCS"); - if (string.IsNullOrEmpty(url)) - { - return WebResponseContent.Instance.Error($"鏈壘鍒癢CSAApi鍦板潃,璇锋鏌ラ厤缃枃浠�"); - } - string response = HttpHelper.Post($"{url}/api/CTU_AGV/PutFinish?code={code}&barCode={barCode}&taskNum={taskNum}" ); - - return JsonConvert.DeserializeObject<WebResponseContent>(response) ?? WebResponseContent.Instance.Error("杩斿洖閿欒"); - } - catch (Exception ex) - { - return WebResponseContent.Instance.Error(ex.Message); - } - } public WebResponseContent AGVTasks(SaveModel saveModel) { @@ -213,6 +190,7 @@ PalletType = stockInfo.PalletType, MaterielCode = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode, Quantity = (float)stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.StockQuantity, + BatchNo = stockInfo.Details.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.BatchNo }; _unitOfWorkManage.BeginTran(); BaseDal.AddData(newTask); @@ -380,7 +358,7 @@ }); //鏇存柊浠诲姟鐘舵�� task.TaskStatus = TaskStatusEnum.Finish.ObjToInt(); - FeedBackWCSTaskCompleted(taskNum); + _unitOfWorkManage.BeginTran(); BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚); _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId); @@ -411,6 +389,7 @@ _inboundOrderService.FeedbackInboundOrder(inboundOrder.Id); } } + FeedBackWCSTaskCompleted(taskNum); return WebResponseContent.Instance.OK(); } catch (Exception ex) @@ -721,7 +700,7 @@ } task.TaskStatus = TaskStatusEnum.Finish.ObjToInt(); - FeedBackWCSTaskCompleted(taskNum); + _unitOfWorkManage.BeginTran(); if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.OutQuality.ObjToInt() || task.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt()) @@ -807,6 +786,7 @@ MesMaterialLotaAceptModel model = GetMesMaterialLotaAceptModel(stockInfo, stockInfo.Details.FirstOrDefault(), mesOutboundOrders.FirstOrDefault().TaskNo, warehouse.WarehouseCode, stockInfo.Details.Where(x => x.MaterielCode == mesOutboundOrders.FirstOrDefault().MaterialCode).Sum(x => x.StockQuantity)); UploadMesMaterialLotaAcept(model); } + FeedBackWCSTaskCompleted(taskNum); return WebResponseContent.Instance.OK(); } catch (Exception ex) @@ -824,6 +804,7 @@ switch (task.TaskType) { case (int)TaskTypeEnum.OutProduct: + case (int)TaskTypeEnum.OutSendProduct: content = OutProductCompleted(task); break; case (int)TaskTypeEnum.OutMesRworkProduct: @@ -935,9 +916,12 @@ BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚); _unitOfWorkManage.CommitTran(); //MES鎴愬搧鍑哄簱鍚屾 - MesShipmentOrderSync shipmentOrderSync = MesOutSync(outProStockInfo, proOutOrderDetail, proStockInfoDetails); - ShipmentOrderSync(shipmentOrderSync); - ShipmentOrderMESSync(shipmentOrderSync); + if (task.TaskType!= TaskTypeEnum.OutSendProduct.ObjToInt()) + { + MesShipmentOrderSync shipmentOrderSync = MesOutSync(outProStockInfo, proOutOrderDetail, proStockInfoDetails); + ShipmentOrderSync(shipmentOrderSync); + ShipmentOrderMESSync(shipmentOrderSync); + } content.OK(); } catch (Exception ex) @@ -1173,5 +1157,53 @@ } return content; } + + public WebResponseContent InboundTaskHandCancel(int taskNum, int warehouseId) + { + try + { + Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); + if (task == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅"); + } + Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == task.PalletCode && x.WarehouseId == task.WarehouseId).Includes(x => x.Details).First(); + if (stockInfo == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒版墭鐩樺搴旂殑缁勭洏淇℃伅"); + } + if (stockInfo.Details.Count == 0 && stockInfo.PalletType != PalletTypeEnum.Empty.ObjToInt()) + { + return WebResponseContent.Instance.Error($"鏈壘鍒拌鎵樼洏搴撳瓨鏄庣粏淇℃伅"); + } + if (task.TaskType == TaskTypeEnum.MesPalletLargeReturn.ObjToInt() || task.TaskType == TaskTypeEnum.MesPalletSmallReturn.ObjToInt()) + { + task.TaskStatus = TaskStatusEnum.Cancel.ObjToInt(); + _unitOfWorkManage.BeginTran(); + BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐鍒犻櫎 : OperateTypeEnum.鑷姩鍒犻櫎); + _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateTypeEnum.鑷姩鍒犻櫎 : OperateTypeEnum.浜哄伐鍒犻櫎); + _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateTypeEnum.鑷姩鍒犻櫎 : OperateTypeEnum.浜哄伐鍒犻櫎); + _unitOfWorkManage.CommitTran(); + return WebResponseContent.Instance.OK(); + } + Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress); + if (locationInfo != null) + { + if (locationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt()) + { + return WebResponseContent.Instance.Error($"璐т綅鐘舵�佷笉姝g‘"); + } + + LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus; + locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt(); + } + return WebResponseContent.Instance.OK(); + + } + catch(Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } } } -- Gitblit v1.9.3