From b91c166e2da452578c71423138a0291558b36344 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期五, 25 七月 2025 15:43:15 +0800 Subject: [PATCH] 1 --- 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs | 1023 -------------------------------------------------------- 1 files changed, 0 insertions(+), 1,023 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs" index 0df30d5..68dbbb7 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs" @@ -330,112 +330,6 @@ } /// <summary> - /// 鍩烘澘鍑哄簱 - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - public MesResponseContent SubstrateOut(SubstrateOutModel model) - { - try - { - string line = string.Empty; - if (!model.Line.Contains("SCUTL")) - { - line = WarehouseEnum.HA58.ToString(); - } - else - { - line = WarehouseEnum.HA57.ToString(); - } - Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == line); - if (warehouse == null) - { - return MesResponseContent.Instance.Error($"浠撳簱鍩虹淇℃伅鏈厤缃�"); - } - - Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == model.MaterialCode); - if (materielInfo == null) - { - return MesResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡淇℃伅"); - } - - Dt_MesOutboundOrder mesOutboundOrder = new Dt_MesOutboundOrder() - { - CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(), - Line = model.Line, - MaterialCode = model.MaterialCode, - MaterialName = model.MaterialName, - OrderQuantity = model.RequiredQuantity, - TaskNo = model.TaskNo, - Unit = model.Unit, - OrderType = MesOutboundOrderTypeEnum.SubstrateOut.ObjToInt(), - OrderStatus = OutOrderStatusEnum.鏈紑濮�.ObjToInt(), - WarehouseId = warehouse.WarehouseId - }; - - List<Dt_Task> tasks = new List<Dt_Task>(); - - List<Dt_StockInfo>? stockInfos = null; - List<Dt_OutStockLockInfo>? outStockLockInfos = null; - List<Dt_LocationInfo>? locationInfos = null; - { - (List<Dt_StockInfo>, Dt_MesOutboundOrder, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.MesOutboundOrderService.AssignStockOutbound(mesOutboundOrder); - if (result.Item1 != null && result.Item1.Count > 0) - { - tasks = GetTasks(result.Item1, TaskTypeEnum.MesOutbound); - result.Item2.OrderStatus = OrderDetailStatusEnum.Outbound.ObjToInt(); - result.Item3.ForEach(x => - { - x.Status = OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt(); - }); - - stockInfos = result.Item1; - mesOutboundOrder = result.Item2; - outStockLockInfos = result.Item3; - locationInfos = result.Item4; - } - else - { - throw new Exception("鏃犲簱瀛�"); - } - } - tasks.ForEach(x => - { - x.TargetAddress = model.Line; - x.OrderNo = mesOutboundOrder.TaskNo; - }); - _unitOfWorkManage.BeginTran(); - - int id = BaseDal.AddData(tasks); - outStockLockInfos.ForEach(x => - { - x.OrderNo = mesOutboundOrder.TaskNo; - x.OrderDetailId = id; - }); - _outboundService.MesOutboundOrderService.Repository.AddData(mesOutboundOrder); - if (stockInfos != null && stockInfos.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0) - { - WebResponseContent content = _outboundService.MesOutboundOrderService.LockOutboundStockDataUpdate(stockInfos, outStockLockInfos, locationInfos, tasks: tasks); - - if (!content.Status) - { - _unitOfWorkManage.RollbackTran(); - return MesResponseContent.Instance.Error(content.Message); - } - } - _unitOfWorkManage.CommitTran(); - PushTasksToWCS(tasks); - - - return MesResponseContent.Instance.OK(); - } - catch (Exception ex) - { - return MesResponseContent.Instance.Error(ex.Message); - } - } - - /// <summary> /// 鍩烘澘浣欐枡閫�搴� /// </summary> /// <param name="model"></param> @@ -508,922 +402,5 @@ return MesResponseContent.Instance.Error(ex.Message); } } - - /// <summary> - /// PP澶у嵎鍑哄簱-杩涜鍒嗗嵎 - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - public MesResponseContent PPSubsectionOut(PPSubsectionOutModel model) - { - MesResponseContent modelCount = new MesResponseContent(); - try - { - - Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA58.ToString()); - if (warehouse == null) - { - return MesResponseContent.Instance.Error("浠撳簱淇℃伅鏈厤缃�"); - } - Dt_MesPPOutboundOrder mesPPOutboundOrder = BaseDal.Db.Queryable<Dt_MesPPOutboundOrder>().Where(x => x.TaskNo == model.TaskNo).Includes(x => x.Details).First(); - if (mesPPOutboundOrder != null) - { - return MesResponseContent.Instance.Error("宸插瓨鍦ㄦ浠诲姟鍗曞彿"); - } - List<Dt_MesPPOutboundOrderDetail> mesPPOutboundOrderDetail = new List<Dt_MesPPOutboundOrderDetail>(); - foreach (var item in model.Carriers) - { - //mesPPOutboundOrderDetail.Add(_mapper.Map<Dt_MesPPOutboundOrderDetail>(item)); - Dt_MesPPOutboundOrderDetail dt_MesPPOutboundOrderDetail = new Dt_MesPPOutboundOrderDetail - { - CarrierCode = item.CarrierCode, - Warehouse = item.Warehouse, - OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt() - }; - mesPPOutboundOrderDetail.Add(dt_MesPPOutboundOrderDetail); - } - Dt_MesPPOutboundOrder mesOutboundOrder = new Dt_MesPPOutboundOrder() - { - CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(), - MaterialCode = model.MaterialCode, - MaterialName = model.MaterialName, - OrderQuantity = model.RequiredQuantity, - TaskNo = model.TaskNo, - Unit = model.Unit,//PP闇�瑕佽浆鎹㈡垚绫�(闇�姹傚钩鏂�(PNL鏁�*闈㈢Н)/瀹藉害) - Width = model.Width, - TargetAddressCode = model.TargetAddressCode, - OrderStatus = OutOrderStatusEnum.鏈紑濮�.ObjToInt(), - OrderType = OutOrderTypeEnum.Issue.ObjToInt(), - WarehouseId = warehouse.WarehouseId, - Details = mesPPOutboundOrderDetail - }; - #region - //Db.InsertNav(mesOutboundOrder).Include(x=>x.Details).ExecuteCommand(); - // List<Dt_Task> tasks = new List<Dt_Task>(); - - // List<Dt_StockInfo>? stockInfos = null; - // List<Dt_OutStockLockInfo>? outStockLockInfos = null; - // List<Dt_LocationInfo>? locationInfos = null; - // { - //(List<Dt_StockInfo>, Dt_MesPPOutboundOrder, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.MesPPOutboundOrderService.AssignStockOutbound(mesOutboundOrder); - // if (result.Item1 != null && result.Item1.Count > 0) - // { - // tasks = GetTasks(result.Item1, TaskTypeEnum.MesOutbound); - // result.Item2.OrderStatus = OrderDetailStatusEnum.Outbound.ObjToInt(); - // result.Item3.ForEach(x => - // { - // x.Status = OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt(); - // }); - - // stockInfos = result.Item1; - // mesOutboundOrder = result.Item2; - // outStockLockInfos = result.Item3; - // locationInfos = result.Item4; - // mesPPOutboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt(); - - // } - // else - // { - // throw new Exception("鏃犲簱瀛�"); - // } - // } - // tasks.ForEach(x => - // { - // x.TargetAddress = model.TargetAddressCode; - // }); - // _unitOfWorkManage.BeginTran(); - - // int id = BaseDal.AddData(tasks); - // outStockLockInfos.ForEach(x => - // { - // x.OrderNo = mesOutboundOrder.TaskNo; - // x.OrderDetailId = id; - // }); - // //_outboundService.MesPPOutboundOrderService.Repository.AddData(mesOutboundOrder); - // Db.InsertNav(mesOutboundOrder).Include(x => x.Details).ExecuteCommand(); - // if (stockInfos != null && stockInfos.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0) - // { - // WebResponseContent content = _outboundService.MesOutboundOrderService.LockOutboundStockDataUpdate(stockInfos, outStockLockInfos, locationInfos, tasks: tasks); - - // if (!content.Status) - // { - // _unitOfWorkManage.RollbackTran(); - // return MesResponseContent.Instance.Error(content.Message); - // } - // } - // _unitOfWorkManage.CommitTran(); - // PushTasksToWCS(tasks); - - //} - #endregion - _unitOfWorkManage.BeginTran(); - Db.InsertNav(mesOutboundOrder).Include(x => x.Details).ExecuteCommand(); - _unitOfWorkManage.CommitTran(); - return MesResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return MesResponseContent.Instance.Error(ex.Message); - } - - } - - /// <summary> - /// PP灏忓嵎鍑哄簱 - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - public MesResponseContent PPCutOut(PPCutOutModle model) - { - try - { - - Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA58.ToString()); - if (warehouse == null) - { - return MesResponseContent.Instance.Error("浠撳簱鍩虹淇℃伅鏈厤缃�"); - } - Dt_MesPPCutOutboundOrder mesPPCutOutboundOrder = BaseDal.Db.Queryable<Dt_MesPPCutOutboundOrder>().Where(x => x.TaskNo == model.TaskNo).Includes(x => x.Details).First(); - if (mesPPCutOutboundOrder != null) - { - return MesResponseContent.Instance.Error("宸插瓨鍦ㄦ浠诲姟鍗曞彿"); - } - List<Dt_MesPPCutOutboundOrderDetail> mesPPCutOutboundOrderDetail = new List<Dt_MesPPCutOutboundOrderDetail>(); - foreach (var item in model.MaterialDetails) - { - mesPPCutOutboundOrderDetail.Add(_mapper.Map<Dt_MesPPCutOutboundOrderDetail>(item)); - } - Dt_MesPPCutOutboundOrder mesPPOutboundOrder = new Dt_MesPPCutOutboundOrder() - { - CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(), - TaskNo = model.TaskNo, - OrderType = OutOrderTypeEnum.Issue.ObjToInt(), - OrderStatus = OutOrderStatusEnum.鏈紑濮�.ObjToInt(), - WarehouseId = warehouse.WarehouseId, - Details = mesPPCutOutboundOrderDetail, - }; - _unitOfWorkManage.BeginTran(); - Db.InsertNav(mesPPOutboundOrder).Include(x => x.Details).ExecuteCommand(); - _unitOfWorkManage.CommitTran(); - #region - //List<Dt_Task> tasks = new List<Dt_Task>(); - - //List<Dt_StockInfo>? stockInfos = null; - //List<Dt_OutStockLockInfo>? outStockLockInfos = null; - //List<Dt_LocationInfo>? locationInfos = null; - //{ - //(List<Dt_StockInfo>, Dt_MesPPCutOutboundOrderDetail, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.MesPPOutboundOrderService.AssignStockOutbound(mesPPOutboundOrder, mesPPCutOutboundOrderDetail); - // if (result.Item1 != null && result.Item1.Count > 0) - // { - // tasks = GetTasks(result.Item1, TaskTypeEnum.MesOutbound); - // result.Item2.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt(); - // result.Item3.ForEach(x => - // { - // x.Status = OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt(); - // }); - - // stockInfos = result.Item1; - // mesPPCutOutboundOrderDetail = result.Item2; - // outStockLockInfos = result.Item3; - // locationInfos = result.Item4; - - // } - // else - // { - // throw new Exception("鏃犲簱瀛�"); - // } - //} - //tasks.ForEach(x => - //{ - // x.TargetAddress = mesPPCutOutboundOrderDetail.TargetAddressCode; - //}); - //_unitOfWorkManage.BeginTran(); - - //int id = BaseDal.AddData(tasks); - //outStockLockInfos.ForEach(x => - //{ - // x.OrderNo = mesPPOutboundOrder.TaskNo; - // x.OrderDetailId = id; - //}); - ////_outboundService.MesPPOutboundOrderService.Repository.AddData(mesOutboundOrder); - //Db.InsertNav(mesPPOutboundOrder).Include(x => x.Details).ExecuteCommand(); - //if (stockInfos != null && stockInfos.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0) - //{ - // WebResponseContent content = _outboundService.MesOutboundOrderService.LockOutboundStockDataUpdate(stockInfos, outStockLockInfos, locationInfos, tasks: tasks); - - // if (!content.Status) - // { - // _unitOfWorkManage.RollbackTran(); - // return MesResponseContent.Instance.Error(content.Message); - // } - //} - //_unitOfWorkManage.CommitTran(); - //PushTasksToWCS(tasks, "AGV_PP"); - #endregion - return MesResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return MesResponseContent.Instance.Error(ex.Message); - } - } - - /// <summary> - /// PP鍏ュ簱(澶у嵎銆佸皬鍗枫�佸紶鏂�) - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - public MesResponseContent PPBack(PPBackModel model) - { - try - { - //涓�娆″彧鍙戜竴鍗风墿鏂欏叆搴撴槑缁� - foreach (var item in model.MaterialLotInfo) - { - //鑾峰彇鐗╂枡淇℃伅 - Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == item.MaterialCode); - if (materielInfo == null) - { - return MesResponseContent.Instance.Error($"鐗╂枡{item.MaterialCode}涓嶅瓨鍦�!"); - } - Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA58.ToString()); - if (warehouse == null) - { - return MesResponseContent.Instance.Error($"鏈壘鍒颁粨搴撲俊鎭�"); - } - Dt_MesPPBackInboundOrderDetail mesPPBackInboundOrderDetail = new Dt_MesPPBackInboundOrderDetail() - { - MaterialLot = item.MaterialLot, - MaterielCode = item.MaterialCode, - OrderQuantity = item.Quantity, - CutedWidth = item.CutedWidth, - MaterialLotOld = item.MaterialLotOld, - Unit = item.Unit, - ProductionDate = item.ProductionDate, - EffectiveDate = item.ExpirationDate, - OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(), - }; - Dt_MesPPBackInboundOrder mesPPBackInboundOrder = new Dt_MesPPBackInboundOrder() - { - WarehouseId = warehouse.WarehouseId, - SourceAddressCode = model.SourceAddressCode, - CarrierCode = model.CarrierCode, - OrderStatus = InOrderStatusEnum.鏈紑濮�.ObjToInt(), - CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(), - Details = new List<Dt_MesPPBackInboundOrderDetail> { mesPPBackInboundOrderDetail } - }; - - Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail() - { - BatchNo = mesPPBackInboundOrderDetail.MaterialLot, - MaterielCode = mesPPBackInboundOrderDetail.MaterielCode, - MaterielName = materielInfo.MaterielName, - OrderNo = "", - SerialNumber = "", - StockQuantity = mesPPBackInboundOrderDetail.OrderQuantity, - OutboundQuantity = 0, - Unit = materielInfo.MaterielUnit, - Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(), - ProductionDate = mesPPBackInboundOrderDetail.ProductionDate, - EffectiveDate = mesPPBackInboundOrderDetail.EffectiveDate, - InboundOrderRowNo = mesPPBackInboundOrderDetail.RowNo, - }; - - Dt_StockInfo stockInfo = new Dt_StockInfo() - { - PalletCode = model.CarrierCode, - StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(), - WarehouseId = mesPPBackInboundOrder.WarehouseId, - Details = new List<Dt_StockInfoDetail> { stockInfoDetail } - }; - _unitOfWorkManage.BeginTran(); - Db.InsertNav(mesPPBackInboundOrder).Include(x => x.Details).ExecuteCommand(); - Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand(); - WebResponseContent content = DeviceRequestInboundTask(mesPPBackInboundOrder, stockInfo); - if (!content.Status) - { - _unitOfWorkManage.RollbackTran(); - return MesResponseContent.Instance.Error(content.Message); - } - _unitOfWorkManage.CommitTran(); - } - return MesResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return MesResponseContent.Instance.Error(ex.Message); - } - - } - - public WebResponseContent DeviceRequestInboundTask(Dt_MesPPBackInboundOrder mesPPBackInboundOrder, Dt_StockInfo stockInfo) - { - try - { - Dt_Task task = Repository.QueryFirst(x => x.PalletCode == stockInfo.PalletCode); - if (task != null) - { - PushTasksToWCS(new List<Dt_Task> { task }); - return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡鐢熸垚浠诲姟"); - } - if (Repository.QueryFirst(x => x.SourceAddress == stockInfo.PalletCode && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null) - { - return WebResponseContent.Instance.Error($"璇ョ珯鐐瑰凡鏈夋湭鎵ц鐨勪换鍔�"); - } - //Dt_StockInfo stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); - //if (stockInfos == null) - //{ - // return WebResponseContent.Instance.Error($"鏈壘鍒扮粍鐩樹俊鎭�"); - //} - //if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鎷i�夊畬鎴�.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.閫�搴�.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.MES閫�搴�.ObjToInt()) - //{ - // return WebResponseContent.Instance.Error($"璇ユ墭鐩樼姸鎬佷笉姝g‘,涓嶅彲鐢宠鍏ュ簱"); - //} - //if (!string.IsNullOrEmpty(stockInfo.LocationCode)) - //{ - // return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡缁戝畾璐т綅"); - //} - //鍙叆骞冲簱,闇�鍒ゆ柇骞冲簱瀹氫箟璐т綅绫诲瀷銆傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�� - Dt_LocationInfo? locationInfos = _basicRepository.LocationInfoRepository.QueryFirst(x => x.WarehouseId == stockInfo.WarehouseId && x.LocationType == LocationTypeEnum.MediumPallet.ObjToInt()); - Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(locationInfos.RoadwayNo, stockInfo.PalletType, stockInfo.WarehouseId); - if (locationInfo == null) - { - return WebResponseContent.Instance.Error($"璐т綅鍒嗛厤澶辫触,鏈壘鍒板彲鍒嗛厤璐т綅"); - } - - Dt_Task newTask = new Dt_Task() - { - CurrentAddress = mesPPBackInboundOrder.SourceAddressCode, - Grade = 0, - NextAddress = locationInfo.LocationCode, - PalletCode = stockInfo.PalletCode, - Roadway = locationInfo.RoadwayNo,//宸烽亾鍙峰寘鍚獳GV - SourceAddress = mesPPBackInboundOrder.SourceAddressCode, - TargetAddress = locationInfo.LocationCode, - TaskType = TaskTypeEnum.Inbound.ObjToInt(), - TaskStatus = TaskStatusEnum.New.ObjToInt(), - WarehouseId = stockInfo.WarehouseId, - 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, - }; - LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus; - _unitOfWorkManage.BeginTran(); - _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, lastStatus, LocationStatusEnum.Lock, LocationChangeType.InboundAssignLocation); - _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, newTask.PalletType, LocationStatusEnum.Lock, newTask.WarehouseId); - BaseDal.AddData(newTask); - _stockRepository.StockInfoRepository.UpdateData(stockInfo); - _unitOfWorkManage.CommitTran(); - - PushTasksToWCS(new List<Dt_Task> { newTask }); - return WebResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - } - - /// <summary> - /// PP搴撳瓨鏌ヨ - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - public MesResponseContent QueryPpByWidth(QueryPpByWidthModel model) - { - MesResponseContent content = new MesResponseContent(); - try - { - //闇�鍒ゆ柇鏌ヨ绔嬪簱,骞冲簱 - Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA58.ToString()); - List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => - x.WarehouseId == warehouse.WarehouseId && - x.StockStatus == (int)StockStatusEmun.鍏ュ簱瀹屾垚).Includes(x => x.Details).ToList(); - Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(x => x.MaterielCode == model.MaterialCode && x.CutedWidth == model.CutedWidth)); - if (stockInfo == null) - { - return content.Error($"PP浠撶珛搴�/骞冲簱锛氱墿鏂欑紪鍙�:{model.MaterialCode},瑁佸垏瀹�:{model.CutedWidth},鏈壘鍒版鐗╂枡搴撳瓨淇℃伅"); - } - var stock = stockInfo.Details.FirstOrDefault(); - if (stock != null) - { - content.Content = new - { - MaterialCode = stock.MaterielCode, - Quantity = stock.StockQuantity, - Unit = stock.Unit, - Warehouse = warehouse.WarehouseCode, - WarehouseName = warehouse.WarehouseName, - CutedWidth = stock.CutedWidth, - CarrierCode = stockInfo.PalletCode, - MaterialLot = stock.BatchNo, - }; - } - return content.OK(); - } - catch (Exception ex) - { - return MesResponseContent.Instance.Error(ex.Message); - } - } - - - - /// <summary> - /// 鐢熸垚PP澶у嵎鍑哄簱浠诲姟 - /// </summary> - /// <param name="keys">鍑哄簱鍗曟槑缁嗕富閿�</param> - /// <returns></returns> - public WebResponseContent MESPPGenerateOutboundTasks(int[] keys) - { - try - { - List<Dt_Task> tasks = new List<Dt_Task>(); - List<StockSelectViewDTO> stockSelectViews = new List<StockSelectViewDTO>(); - List<Dt_StockInfo> stockInfos = new List<Dt_StockInfo>(); - List<Dt_MesPPOutboundOrderDetail> outboundOrderDetails = new List<Dt_MesPPOutboundOrderDetail>(); - List<Dt_OutStockLockInfo> outStockLockInfos = new List<Dt_OutStockLockInfo>(); - List<Dt_LocationInfo> locationInfos = new List<Dt_LocationInfo>(); - - (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_MesPPOutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?, Dt_MesPPOutboundOrder mesPPOutboundOrder) result = MESPPOutboundTaskDataHandle(keys); - if (result.Item2 != null && result.Item2.Count > 0) - { - stockInfos.AddRange(result.Item2); - } - if (result.Item3 != null && result.Item3.Count > 0) - { - outboundOrderDetails.AddRange(result.Item3); - } - if (result.Item4 != null && result.Item4.Count > 0) - { - outStockLockInfos.AddRange(result.Item4); - } - if (result.Item5 != null && result.Item5.Count > 0) - { - locationInfos.AddRange(result.Item5); - } - if (result.Item1 != null && result.Item1.Count > 0) - { - tasks.AddRange(result.Item1); - } - if (result.mesPPOutboundOrder != null) - { - - } - - WebResponseContent content = MESPPGenerateOutboundTaskDataUpdate(tasks, stockInfos, outboundOrderDetails, outStockLockInfos, locationInfos, result.mesPPOutboundOrder); - return content; - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - } - - /// <summary> - /// PP澶у嵎鍑哄簱浠诲姟鏁版嵁澶勭悊 - /// </summary> - /// <param name="orderDetailId"></param> - /// <param name="stockSelectViews"></param> - /// <returns></returns> - /// <exception cref="Exception"></exception> - public (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_MesPPOutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?, Dt_MesPPOutboundOrder mesPPOutboundOrder) MESPPOutboundTaskDataHandle(int[] keys) - { - List<Dt_Task> tasks = new List<Dt_Task>(); - List<Dt_MesPPOutboundOrderDetail> outboundOrderDetails = BaseDal.Db.Queryable<Dt_MesPPOutboundOrderDetail>().Where(x => keys.Contains(x.Id)).ToList(); - if (outboundOrderDetails == null || outboundOrderDetails.Count == 0) - { - throw new Exception("鏈壘鍒板嚭搴撳崟鏄庣粏淇℃伅"); - } - if (outboundOrderDetails.FirstOrDefault(x => x.OrderDetailStatus > OrderDetailStatusEnum.New.ObjToInt() && x.OrderDetailStatus != OrderDetailStatusEnum.AssignOverPartial.ObjToInt()) != null) - { - throw new Exception("鎵�閫夊嚭搴撳崟鏄庣粏瀛樺湪鍑哄簱涓垨宸插畬鎴�"); - } - List<Dt_StockInfo>? stockInfos = null; - List<Dt_MesPPOutboundOrderDetail>? orderDetails = null; - List<Dt_OutStockLockInfo>? outStockLockInfos = null; - List<Dt_LocationInfo>? locationInfos = null; - Dt_MesPPOutboundOrder? mesPPOutboundOrders = null; - if (outboundOrderDetails.FirstOrDefault().OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()) - { - (List<Dt_StockInfo>, List<Dt_MesPPOutboundOrderDetail>, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>, Dt_MesPPOutboundOrder mesPPOutboundOrder) result = _outboundService.MesPPOutboundOrderDetailService.AssignStockOutbound(outboundOrderDetails); - if (result.Item1 != null && result.Item1.Count > 0) - { - Dt_MesPPOutboundOrder outboundOrder = _outboundService.MesPPOutboundOrderService.Repository.QueryFirst(x => x.Id == outboundOrderDetails.FirstOrDefault().OrderId); - TaskTypeEnum typeEnum = outboundOrder.OrderType switch - { - (int)OutOrderTypeEnum.Issue => TaskTypeEnum.Outbound, - (int)OutOrderTypeEnum.Allocate => TaskTypeEnum.OutAllocate, - (int)OutOrderTypeEnum.Quality => TaskTypeEnum.OutQuality, - _ => new TaskTypeEnum() - }; - tasks = GetTasks(result.Item1, typeEnum); - result.Item2.ForEach(x => - { - x.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt(); - }); - result.Item3.ForEach(x => - { - x.Status = OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt(); - }); - - stockInfos = result.Item1; - orderDetails = result.Item2; - outStockLockInfos = result.Item3; - locationInfos = result.Item4; - mesPPOutboundOrders = result.mesPPOutboundOrder; - } - else - { - throw new Exception("鏃犲簱瀛�"); - } - } - //else - //{ - // List<Dt_OutStockLockInfo> stockLockInfos = _outboundService.OutboundStockLockInfoService.GetByOrderDetailId(outboundOrderDetails.oi, OutLockStockStatusEnum.宸插垎閰�); - // if (stockLockInfos != null && stockLockInfos.Count > 0) - // { - // List<Dt_StockInfo> stocks = _stockService.StockInfoService.Repository.GetStockInfosByPalletCodes(stockLockInfos.Select(x => x.PalletCode).Distinct().ToList()); - // tasks = GetTasks(stocks); - // } - //} - - return (tasks, stockInfos, orderDetails, outStockLockInfos, locationInfos, mesPPOutboundOrders); - } - - /// <summary> - /// PP骞冲簱鐩存帴鍑哄簱 - /// </summary> - /// <param name="orderDetailId"></param> - /// <param name="stockSelectViews"></param> - /// <returns></returns> - public WebResponseContent PPGeneratePKOutboundTask(int orderDetailId, List<PPStockSelectViewDTO> stockSelectViews) - { - try - { - (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_MesPPCutOutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) result = PPOutboundTaskDataHandle(orderDetailId, stockSelectViews); - - WebResponseContent content = PPGenerateOutboundTaskDataUpdate(result.Item1, result.Item2, result.Item3, result.Item4, result.Item5); - - return content; - } - catch (Exception ex) - { - return WebResponseContent.Instance.Error(ex.Message); - } - } - /// <summary> - /// PP绔嬪簱灏忓嵎鐩存帴鍑哄簱 - /// </summary> - /// <param name="orderDetailId"></param> - /// <param name="stockSelectViews"></param> - /// <returns></returns> - public WebResponseContent PPCutOutGenerateOutboundTasks(int orderDetailId, List<PPStockSelectViewDTO> stockSelectViews) - { - try - { - (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_MesPPCutOutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) result = PPOutboundTaskDataHandle(orderDetailId, stockSelectViews); - - WebResponseContent content = PPGenerateOutboundTaskDataUpdate(result.Item1, result.Item2, result.Item3, result.Item4, result.Item5); - - return content; - } - catch (Exception ex) - { - return WebResponseContent.Instance.Error(ex.Message); - } - } - - /// <summary> - /// 鍑哄簱浠诲姟鏁版嵁澶勭悊 - /// </summary> - /// <param name="orderDetailId"></param> - /// <param name="stockSelectViews"></param> - /// <returns></returns> - /// <exception cref="Exception"></exception> - public (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_MesPPCutOutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) PPOutboundTaskDataHandle(int orderDetailId, List<PPStockSelectViewDTO> stockSelectViews) - { - List<Dt_Task> tasks = new List<Dt_Task>(); - Dt_MesPPCutOutboundOrderDetail outboundOrderDetail = _outboundService.MesPPCutOutboundOrderDetailService.Repository.QueryFirst(x => x.Id == orderDetailId); - - if (outboundOrderDetail == null) - { - throw new Exception("鏈壘鍒板嚭搴撳崟鏄庣粏淇℃伅"); - } - - if (stockSelectViews.Sum(x => x.UseableQuantity) > outboundOrderDetail.OrderQuantity - outboundOrderDetail.LockQuantity) - { - throw new Exception("閫夋嫨鏁伴噺瓒呭嚭鍗曟嵁鏁伴噺"); - } - List<Dt_StockInfo>? stockInfos = null; - Dt_MesPPCutOutboundOrderDetail? orderDetail = null; - List<Dt_OutStockLockInfo>? outStockLockInfos = null; - List<Dt_LocationInfo>? locationInfos = null; - if (outboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()) - { - (List<Dt_StockInfo>, Dt_MesPPCutOutboundOrderDetail, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.MesPPCutOutboundOrderDetailService.AssignStockOutbound(outboundOrderDetail, stockSelectViews); - if (result.Item1 != null && result.Item1.Count > 0) - { - Dt_MesPPCutOutboundOrder outboundOrder = _outboundService.MesPPCutOutboundOrderService.Repository.QueryFirst(x => x.Id == outboundOrderDetail.OrderId); - TaskTypeEnum typeEnum = outboundOrder.OrderType switch - { - (int)OutOrderTypeEnum.Issue => TaskTypeEnum.Outbound, - (int)OutOrderTypeEnum.Allocate => TaskTypeEnum.OutAllocate, - (int)OutOrderTypeEnum.Quality => TaskTypeEnum.OutQuality, - _ => new TaskTypeEnum() - }; - tasks = GetTasks(result.Item1, TaskTypeEnum.Outbound); - result.Item2.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt(); - result.Item3.ForEach(x => - { - x.Status = OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt(); - }); - - stockInfos = result.Item1; - orderDetail = result.Item2; - outStockLockInfos = result.Item3; - locationInfos = result.Item4; - } - else - { - throw new Exception("鏃犲簱瀛�"); - } - } - else - { - List<Dt_OutStockLockInfo> stockLockInfos = _outboundService.OutboundStockLockInfoService.GetByOrderDetailId(outboundOrderDetail.OrderId, OutLockStockStatusEnum.宸插垎閰�); - if (stockLockInfos != null && stockLockInfos.Count > 0) - { - List<Dt_StockInfo> stocks = _stockService.StockInfoService.Repository.GetStockInfosByPalletCodes(stockLockInfos.Select(x => x.PalletCode).Distinct().ToList()); - tasks = GetTasks(stocks, TaskTypeEnum.Outbound); - } - } - - return (tasks, stockInfos, orderDetail == null ? null : new List<Dt_MesPPCutOutboundOrderDetail> { orderDetail }, outStockLockInfos, locationInfos); - } - - public WebResponseContent PPGenerateOutboundTaskDataUpdate(List<Dt_Task> tasks, List<Dt_StockInfo>? stockInfos = null, List<Dt_MesPPCutOutboundOrderDetail>? outboundOrderDetails = null, List<Dt_OutStockLockInfo>? outStockLockInfos = null, List<Dt_LocationInfo>? locationInfos = null) - { - try - { - _unitOfWorkManage.BeginTran(); - - BaseDal.AddData(tasks); - if (stockInfos != null && stockInfos.Count > 0 && outboundOrderDetails != null && outboundOrderDetails.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0) - { - stockInfos.ForEach(x => - { - x.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt(); - }); - WebResponseContent content = _outboundService.MesPPCutOutboundOrderDetailService.LockOutboundStockDataUpdate(stockInfos, outboundOrderDetails, outStockLockInfos, locationInfos, tasks: tasks); - if (!content.Status) - { - _unitOfWorkManage.RollbackTran(); - return content; - } - } - else if (outboundOrderDetails != null && outboundOrderDetails.Count > 0) - { - outboundOrderDetails.ForEach(x => - { - x.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt(); - }); - - _outboundService.MesPPCutOutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails); - } - _unitOfWorkManage.CommitTran(); - PushTasksToWCS(tasks); - return WebResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - - } - #region - /// <summary> - /// 鐢熸垚PP灏忓嵎鍑哄簱浠诲姟 - /// </summary> - /// <param name="keys">鍑哄簱鍗曟槑缁嗕富閿�</param> - /// <returns></returns> - //public WebResponseContent PPCutOutGenerateOutboundTasks(int[] keys) - //{ - // try - // { - // List<Dt_Task> tasks = new List<Dt_Task>(); - // List<StockSelectViewDTO> stockSelectViews = new List<StockSelectViewDTO>(); - // List<Dt_StockInfo> stockInfos = new List<Dt_StockInfo>(); - // List<Dt_MesPPCutOutboundOrderDetail> outboundOrderDetails = new List<Dt_MesPPCutOutboundOrderDetail>(); - // List<Dt_OutStockLockInfo> outStockLockInfos = new List<Dt_OutStockLockInfo>(); - // List<Dt_LocationInfo> locationInfos = new List<Dt_LocationInfo>(); - - // (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_MesPPCutOutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) result = PPCutOutboundTaskDataHandle(keys); - // if (result.Item2 != null && result.Item2.Count > 0) - // { - // stockInfos.AddRange(result.Item2); - // } - // if (result.Item3 != null && result.Item3.Count > 0) - // { - // outboundOrderDetails.AddRange(result.Item3); - // } - // if (result.Item4 != null && result.Item4.Count > 0) - // { - // outStockLockInfos.AddRange(result.Item4); - // } - // if (result.Item5 != null && result.Item5.Count > 0) - // { - // locationInfos.AddRange(result.Item5); - // } - // if (result.Item1 != null && result.Item1.Count > 0) - // { - // tasks.AddRange(result.Item1); - // } - - // WebResponseContent content = PPCutOutGenerateOutboundTaskDataUpdate(tasks, stockInfos, outboundOrderDetails, outStockLockInfos, locationInfos); - // return content; - // } - // catch (Exception ex) - // { - // _unitOfWorkManage.RollbackTran(); - // return WebResponseContent.Instance.Error(ex.Message); - // } - //} - - ///// <summary> - ///// PP灏忓嵎鍑哄簱浠诲姟鏁版嵁澶勭悊 - ///// </summary> - ///// <param name="orderDetailId"></param> - ///// <param name="stockSelectViews"></param> - ///// <returns></returns> - ///// <exception cref="Exception"></exception> - //public (List<Dt_Task>, List<Dt_StockInfo>?, List<Dt_MesPPCutOutboundOrderDetail>?, List<Dt_OutStockLockInfo>?, List<Dt_LocationInfo>?) PPCutOutboundTaskDataHandle(int[] keys) - //{ - // List<Dt_Task> tasks = new List<Dt_Task>(); - // List<Dt_MesPPCutOutboundOrderDetail> outboundOrderDetails = BaseDal.Db.Queryable<Dt_MesPPCutOutboundOrderDetail>().Where(x => keys.Contains(x.Id)).ToList(); - // if (outboundOrderDetails == null || outboundOrderDetails.Count == 0) - // { - // throw new Exception("鏈壘鍒板嚭搴撳崟鏄庣粏淇℃伅"); - // } - // if (outboundOrderDetails.FirstOrDefault(x => x.OrderDetailStatus > OrderDetailStatusEnum.New.ObjToInt() && x.OrderDetailStatus != OrderDetailStatusEnum.AssignOverPartial.ObjToInt()) != null) - // { - // throw new Exception("鎵�閫夊嚭搴撳崟鏄庣粏瀛樺湪鍑哄簱涓垨宸插畬鎴�"); - // } - // List<Dt_StockInfo>? stockInfos = null; - // List<Dt_MesPPCutOutboundOrderDetail>? orderDetails = null; - // List<Dt_OutStockLockInfo>? outStockLockInfos = null; - // List<Dt_LocationInfo>? locationInfos = null; - // if (outboundOrderDetails.FirstOrDefault().OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()) - // { - // (List<Dt_StockInfo>, List<Dt_MesPPCutOutboundOrderDetail>, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.MesPPCutOutboundOrderDetailService.AssignStockOutbound(outboundOrderDetails); - // if (result.Item1 != null && result.Item1.Count > 0) - // { - // Dt_MesPPCutOutboundOrder outboundOrder = _outboundService.MesPPCutOutboundOrderService.Repository.QueryFirst(x => x.Id == outboundOrderDetails.FirstOrDefault().OrderId); - // //TaskTypeEnum typeEnum = outboundOrder.OrderType switch - // //{ - // // (int)OutOrderTypeEnum.Issue => TaskTypeEnum.Outbound, - // // (int)OutOrderTypeEnum.Allocate => TaskTypeEnum.OutAllocate, - // // (int)OutOrderTypeEnum.Quality => TaskTypeEnum.OutQuality, - // // _ => new TaskTypeEnum() - // //}; - // tasks = GetTasks(result.Item1, TaskTypeEnum.MesOutbound); - // result.Item2.ForEach(x => - // { - // x.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt(); - // }); - // result.Item3.ForEach(x => - // { - // x.Status = OutLockStockStatusEnum.鍑哄簱涓�.ObjToInt(); - // }); - - // stockInfos = result.Item1; - // orderDetails = result.Item2; - // outStockLockInfos = result.Item3; - // locationInfos = result.Item4; - // } - // else - // { - // throw new Exception("鏃犲簱瀛�"); - // } - // } - // //else - // //{ - // // List<Dt_OutStockLockInfo> stockLockInfos = _outboundService.OutboundStockLockInfoService.GetByOrderDetailId(outboundOrderDetails.OrderId, OutLockStockStatusEnum.宸插垎閰�); - // // if (stockLockInfos != null && stockLockInfos.Count > 0) - // // { - // // List<Dt_StockInfo> stocks = _stockService.StockInfoService.Repository.GetStockInfosByPalletCodes(stockLockInfos.Select(x => x.PalletCode).Distinct().ToList()); - // // tasks = GetTasks(stocks); - // // } - // //} - - // return (tasks, stockInfos, orderDetails, outStockLockInfos, locationInfos); - //} - - ///// <summary> - ///// 鐢熸垚PP灏忓嵎鍑哄簱浠诲姟鍚庢暟鎹洿鏂板埌鏁版嵁搴� - ///// </summary> - ///// <param name="tasks"></param> - ///// <param name="stockInfos"></param> - ///// <param name="outboundOrderDetails"></param> - ///// <param name="outStockLockInfos"></param> - ///// <param name="locationInfos"></param> - ///// <returns></returns> - //public WebResponseContent PPCutOutGenerateOutboundTaskDataUpdate(List<Dt_Task> tasks, List<Dt_StockInfo>? stockInfos = null, List<Dt_MesPPCutOutboundOrderDetail>? outboundOrderDetails = null, List<Dt_OutStockLockInfo>? outStockLockInfos = null, List<Dt_LocationInfo>? locationInfos = null) - //{ - // try - // { - // _unitOfWorkManage.BeginTran(); - - // BaseDal.AddData(tasks); - // if (stockInfos != null && stockInfos.Count > 0 && outboundOrderDetails != null && outboundOrderDetails.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0) - // { - // stockInfos.ForEach(x => - // { - // x.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt(); - // }); - // WebResponseContent content = _outboundService.MesPPCutOutboundOrderDetailService.LockOutboundStockDataUpdate(stockInfos, outboundOrderDetails, outStockLockInfos, locationInfos, tasks: tasks); - - // if (!content.Status) - // { - // _unitOfWorkManage.RollbackTran(); - // return content; - // } - // } - // else if (outboundOrderDetails != null && outboundOrderDetails.Count > 0) - // { - // outboundOrderDetails.ForEach(x => - // { - // x.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt(); - // }); - - // _outboundService.MesPPCutOutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails); - // } - // _unitOfWorkManage.CommitTran(); - // PushTasksToWCS(tasks,"AGV_PP"); - // return WebResponseContent.Instance.OK(); - // } - // catch (Exception ex) - // { - // _unitOfWorkManage.RollbackTran(); - // return WebResponseContent.Instance.Error(ex.Message); - // } - //} - #endregion - /// <summary> - /// 鐢熸垚PP澶у嵎鍑哄簱浠诲姟鍚庢暟鎹洿鏂板埌鏁版嵁搴� - /// </summary> - /// <param name="tasks"></param> - /// <param name="stockInfos"></param> - /// <param name="outboundOrderDetails"></param> - /// <param name="outStockLockInfos"></param> - /// <param name="locationInfos"></param> - /// <returns></returns> - public WebResponseContent MESPPGenerateOutboundTaskDataUpdate(List<Dt_Task> tasks, List<Dt_StockInfo>? stockInfos = null, List<Dt_MesPPOutboundOrderDetail>? outboundOrderDetails = null, List<Dt_OutStockLockInfo>? outStockLockInfos = null, List<Dt_LocationInfo>? locationInfos = null, Dt_MesPPOutboundOrder? mesPPOutboundOrder = null) - { - try - { - _unitOfWorkManage.BeginTran(); - - BaseDal.AddData(tasks); - if (stockInfos != null && stockInfos.Count > 0 && outboundOrderDetails != null && outboundOrderDetails.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0) - { - stockInfos.ForEach(x => - { - x.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt(); - }); - WebResponseContent content = _outboundService.MesPPOutboundOrderDetailService.LockOutboundStockDataUpdate(mesPPOutboundOrder, stockInfos, outboundOrderDetails, outStockLockInfos, locationInfos, tasks: tasks); - - if (!content.Status) - { - _unitOfWorkManage.RollbackTran(); - return content; - } - } - else if (outboundOrderDetails != null && outboundOrderDetails.Count > 0) - { - outboundOrderDetails.ForEach(x => - { - x.OrderDetailStatus = OrderDetailStatusEnum.Outbound.ObjToInt(); - }); - - _outboundService.MesPPOutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails); - } - _unitOfWorkManage.CommitTran(); - PushTasksToWCS(tasks); - return WebResponseContent.Instance.OK(); - } - catch (Exception ex) - { - _unitOfWorkManage.RollbackTran(); - return WebResponseContent.Instance.Error(ex.Message); - } - } - } } -- Gitblit v1.9.3