From fcb50f9e6408bf42e3bc5d34d9f6eff93c2dd263 Mon Sep 17 00:00:00 2001 From: wankeda <Administrator@DESKTOP-HAU3ST3> Date: 星期六, 01 三月 2025 17:36:16 +0800 Subject: [PATCH] 1 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 84 +++++++++++++++++++++++++++++++++++++++--- 1 files changed, 78 insertions(+), 6 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 3cf8d6e..b53fad2 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" @@ -150,6 +150,68 @@ } } + public WebResponseContent AGVTasks(SaveModel saveModel) + { + try + { + var palletCode = saveModel.MainData["barcode"].ToString(); + var stationCode = saveModel.MainData["address"].ToString(); + var warehouseId = saveModel.MainData["warehouseId"].ObjToInt(); + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == warehouseId); + if (warehouse == null) + { + return WebResponseContent.Instance.Error("鏈壘鍒板簱鍖�"); + } + + Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode && x.WarehouseId == warehouseId); + if (task != null) + { + return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡鐢熸垚浠诲姟"); + } + if (Repository.QueryFirst(x => x.SourceAddress == stationCode && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null && warehouse.WarehouseCode != WarehouseEnum.HA58.ToString()) + { + return WebResponseContent.Instance.Error($"璇ョ珯鐐瑰凡鏈夋湭鎵ц鐨勪换鍔�"); + } + Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); + if (stockInfo == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒扮粍鐩樹俊鎭�"); + } + if (stockInfo.StockStatus != StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt()) + { + return WebResponseContent.Instance.Error($"璇ユ墭鐩樼姸鎬佷笉姝g‘"); + } + if (warehouseId != stockInfo.WarehouseId) + { + return WebResponseContent.Instance.Error($"浠撳簱涓嶆纭�"); + } + Dt_Task newTask = new Dt_Task() + { + CurrentAddress = stationCode, + Grade = 0, + NextAddress ="", + PalletCode = palletCode, + Roadway = warehouse.Remark,//鏌ヨ瀵瑰簲绾胯竟浠撳湴鍧�宸烽亾鍙� + SourceAddress = stationCode, + TargetAddress = "", + TaskType = TaskTypeEnum.OutAllocate.ObjToInt(), + TaskStatus = TaskStatusEnum.New.ObjToInt(), + WarehouseId = stockInfo.WarehouseId, + PalletType = stockInfo.PalletType + }; + _unitOfWorkManage.BeginTran(); + BaseDal.AddData(newTask); + PushTasksToWCS(new List<Dt_Task> { newTask}); + _unitOfWorkManage.CommitTran(); + return WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + _unitOfWorkManage.RollbackTran(); + return WebResponseContent.Instance.Error(ex.Message); + } + } + /// <summary> /// 鍏ュ簱浠诲姟瀹屾垚 /// </summary> @@ -180,7 +242,17 @@ { return WebResponseContent.Instance.Error($"鏈壘鍒拌鎵樼洏搴撳瓨鏄庣粏淇℃伅"); } - + #region 绌烘墭閫�搴� + if (task.TaskType == TaskTypeEnum.MesPalletReturn.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(); + } + #endregion Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress); if (locationInfo == null) { @@ -199,7 +271,7 @@ stockInfo.LocationCode = locationInfo.LocationCode; #region 绌虹鍏ュ簱/鎷i�夊洖搴�/鐢熶骇閫�鏂� - if (task.TaskType == TaskTypeEnum.InEmpty.ObjToInt() || task.TaskType == TaskTypeEnum.InPick.ObjToInt() || (task.TaskType==TaskTypeEnum.ProductionReturn.ObjToInt() && warehouse.WarehouseCode==WarehouseEnum.HA64.ToString())) + if (task.TaskType == TaskTypeEnum.InEmpty.ObjToInt() || task.TaskType == TaskTypeEnum.InPick.ObjToInt() || (task.TaskType == TaskTypeEnum.ProductionReturn.ObjToInt() && warehouse.WarehouseCode == WarehouseEnum.HA64.ToString())) { stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(); task.TaskStatus = TaskStatusEnum.Finish.ObjToInt(); @@ -251,10 +323,10 @@ if (inboundOrder.OrderType == InOrderTypeEnum.Return.ObjToInt()) { returnOrder = _inboundRepository.ReturnOrderRepository.Db.Queryable<Dt_ReturnOrder>().Where(x => x.OrderNo == inboundOrder.UpperOrderNo).Includes(x => x.Details).First(); - returnOrder.ReturnOrderStatus=ReturnOrderStatusEnum.Returned.ObjToInt(); + returnOrder.ReturnOrderStatus = ReturnOrderStatusEnum.Returned.ObjToInt(); foreach (var item in inboundOrder.Details) { - Dt_ReturnOrderDetail returnOrderDetail = returnOrder.Details?.FirstOrDefault(x=>x.MCode==item.MaterielCode); + Dt_ReturnOrderDetail returnOrderDetail = returnOrder.Details?.FirstOrDefault(x => x.MCode == item.MaterielCode); if (returnOrderDetail != null) { returnOrderDetail.OverReturnQty = item.OverInQuantity; @@ -302,7 +374,7 @@ _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder); _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetail); } - if (returnOrder!=null) + if (returnOrder != null) { _inboundRepository.ReturnOrderRepository.UpdateData(returnOrder); _inboundRepository.ReturnOrderDetailRepository.UpdateData(returnOrder.Details); @@ -401,7 +473,7 @@ task.TaskStatus = TaskStatusEnum.Finish.ObjToInt(); _unitOfWorkManage.BeginTran(); - if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt()|| task.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt()) + if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt()) { //澶勭悊鍑哄簱璇︽儏 if (outboundOrderDetails.Count > 0) -- Gitblit v1.9.3