ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs
@@ -82,10 +82,16 @@ OutCarton = 360, /// <summary> /// äºæ¥¼çº¸ç®±ä¾æ /// </summary> [Description("纸æ¯çº¸ç便")] OutScrapsPaper = 370, /// <summary> /// æ çººå¸æ·èåºåº /// </summary> [Description("æ çººå¸æ·èåºåº")] OutWFBLM = 370, OutWFBLM = 380, /// <summary> /// å²ååºåºåº @@ -130,12 +136,6 @@ InPick = 530, /// <summary> /// 空æåå ç /// </summary> [Description("空æåå ç")] EmptyPaletteBack = 535, /// <summary> /// æåå ¥åº /// </summary> [Description("æåå ¥åº")] @@ -148,10 +148,34 @@ EmptyProductBack = 630, /// <summary> /// åååæåå ¥åº /// </summary> [Description("åååæåå ¥åº")] PartOffInbound = 680, /// <summary> /// 模ååæåå ¥åº /// </summary> [Description("模ååæåå ¥åº")] DieCutInbound = 685, /// <summary> /// å²ååæåå ¥åº /// </summary> [Description("å²ååæåå ¥åº")] PunchingInbound = 690, /// <summary> /// æ 纺å¸åæåå ¥åº /// </summary> [Description("æ 纺å¸åæåå ¥åº")] WFBYLInbound = 700, WFBYLInbound = 695, /// <summary> /// æ çººå¸æ·èåæåå ¥åº /// </summary> [Description("æ çººå¸æ·èåæåå ¥åº")] WFBLMYLInbound = 700, /// <summary> /// çº¸å¼ æ·èåæåå ¥åº ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/IPackaxisTaskService.cs
@@ -13,8 +13,21 @@ { public interface IPackaxisTaskService : IService<Dt_PackaxisTask> { /// <summary> /// åé ç åä»»å¡ /// </summary> /// <param name="barCode"></param> /// <param name="deviceCode"></param> /// <returns></returns> WebResponseContent ReqPackTask(string barCode, string deviceCode); /// <summary> /// ç åä»»å¡å®æ /// </summary> /// <param name="taskNum"></param> /// <param name="packaxisTask"></param> /// <returns></returns> WebResponseContent TaskCompleted(int taskNum=0,Dt_PackaxisTask? packaxisTask=null); //ç åç»æå¹¶ä¸ä¼ ç åå·¥ä½ç åæç»æ°æ® WebResponseContent BoxingInBound(string stationCode); } } ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs
@@ -244,7 +244,7 @@ } else { if (task.TaskType == TaskTypeEnum.PrintYLInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PrintYLBackInbound.ObjToInt() || task.TaskType == TaskTypeEnum.EmptyPaletteBack.ObjToInt()) if (task.TaskType == TaskTypeEnum.PrintYLInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PrintYLBackInbound.ObjToInt()) { var content = TakeFinish(task.CurrentAddress); if (!content.Status) ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_TaskInfoService/PackaxisTaskService.cs
@@ -39,6 +39,12 @@ _stationMangerRepository = stationMangerRepository; _unitOfWorkManage = unitOfWorkManage; } /// <summary> /// åé ç åä»»å¡ /// </summary> /// <param name="barCode"></param> /// <param name="deviceCode"></param> /// <returns></returns> public WebResponseContent ReqPackTask(string barCode,string deviceCode) { WebResponseContent content= new WebResponseContent(); @@ -139,6 +145,11 @@ } return content; } /// <summary> /// ç åç»æå¹¶ä¸ä¼ ç åå·¥ä½ç åæç»æ°æ® /// </summary> /// <param name="stationCode"></param> /// <returns></returns> public WebResponseContent BoxingInBound(string stationCode) { WebResponseContent content = new WebResponseContent(); @@ -186,11 +197,17 @@ } return content; } /// <summary> /// ç åä»»å¡å®æ /// </summary> /// <param name="taskNum"></param> /// <param name="packaxisTask"></param> /// <returns></returns> public WebResponseContent TaskCompleted(int taskNum=0,Dt_PackaxisTask? packaxisTask=null) { try { _unitOfWorkManage.BeginTran(); Dt_PackaxisTask? packaxisTaskFinish = null; if (packaxisTask!=null) { @@ -211,15 +228,16 @@ StationPackId = stationPackInfo.id, BoxCode = packaxisTaskFinish.BarCode }; _unitOfWorkManage.BeginTran(); _stationPackInfoRepository.UpdateData(stationPackInfo); _stationPackDetailRepository.AddData(stationPackDetail); BaseDal.DeleteAndMoveIntoHty(packaxisTaskFinish, App.User?.UserId == 0 ? OperateTypeEnum.èªå¨å®æ : OperateTypeEnum.äººå·¥å®æ); _unitOfWorkManage.CommitTran(); } else { return WebResponseContent.Instance.Error("æªæ¾å°ä»»å¡"); } _unitOfWorkManage.CommitTran(); return WebResponseContent.Instance.OK(); } catch (Exception ex) ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -102,12 +102,15 @@ } } } private readonly static object lockerCompleted = new object(); /// <summary> /// ä»»å¡å®æ /// </summary> public WebResponseContent TaskCompleted(int taskNum) { try { lock (lockerCompleted) { Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); if (task != null) @@ -126,6 +129,7 @@ WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(responseStr) ?? WebResponseContent.Instance.Error($"{taskNum},æªæ¥æ¶å°ä»»å¡å®æè¿åå¼"); return content; } } catch (Exception ex) { return WebResponseContent.Instance.Error(ex.Message); ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Tasks/³ÉÆ·²Ö/ConveyorLineJob_CPH.cs
@@ -89,9 +89,15 @@ List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode); Task.Run(() => { bool shouldRestart = true; while (shouldRestart) { try { shouldRestart = false; Dt_StationManger? RequestIn = stationMangers.FirstOrDefault(x => x.StationDeviceCode == device.DeviceCode && x.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt()); WriteError($"çº¿ç¨ {Thread.CurrentThread.ManagedThreadId}","å¼å§æ§è¡"); while (true) { if (RequestIn != null) @@ -159,15 +165,24 @@ } catch (Exception ex) { Thread.Sleep(1000); WriteError($"çº¿ç¨ {Thread.CurrentThread.ManagedThreadId}", $"å¼å¸¸:{ex.Message}"); Thread.Sleep(1500); shouldRestart = true; } } }); Task.Run(() => { bool shouldRestart = true; while (shouldRestart) { try { shouldRestart = false; //è·åææç åå£ List<Dt_StationManger> stationMangersMD = stationMangers.Where(x => x.StationDeviceCode == device.DeviceCode && x.StationType == StationTypeEnum.StationType_OnlyOutbound.ObjToInt()).ToList(); WriteError($"çº¿ç¨ {Thread.CurrentThread.ManagedThreadId}", "å¼å§æ§è¡"); while (true) { if (stationMangersMD.Count > 0) @@ -215,7 +230,10 @@ } catch (Exception ex) { Thread.Sleep(1000); WriteError($"çº¿ç¨ {Thread.CurrentThread.ManagedThreadId}", $"å¼å¸¸:{ex.Message}"); Thread.Sleep(1500); shouldRestart = true; } } }); ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Tasks/Âë¶â/MDJob_CP.cs
@@ -82,7 +82,6 @@ { foreach (var item in stationMangers) { short Allow = device.GetValue<R_MDDB, short>(R_MDDB.R_MDAllow, item.StackerCraneCode); #region 读åå·¥ä½ç¶æ short R_MDStatus1 = device.GetValue<R_MDDB, short>(R_MDDB.R_MDStatus1, item.StackerCraneCode); ÏîÄ¿´úÂë/WMS/WMSClient/src/views/taskinfo/task.vue
@@ -275,6 +275,13 @@ width: 100, align: "left", }, { field: "taskLength", title: "ç©æå¹ å®½", type: "int", width: 100, align: "left", }, ]); const detail = ref({ cnName: "#detailCnName", ÏîÄ¿´úÂë/WMS/WMSClient/src/views/taskinfo/task_hty.vue
@@ -274,6 +274,13 @@ width: 100, align: "left", }, { field: "taskLength", title: "ç©æå¹ å®½", type: "int", width: 100, align: "left", } ]); const detail = ref({ cnName: "#detailCnName", ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_Common/StockEnum/OutLockStockStatusEnum.cs
@@ -14,6 +14,7 @@ /// 2ï¼åºåºå®æ<br/> /// 3ï¼æ£é宿<br/> /// 99ï¼æ¤é<br/> /// 100ï¼å ³é<br/> /// </summary> public enum OutLockStockStatusEnum { ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs
@@ -82,10 +82,16 @@ OutCarton = 360, /// <summary> /// äºæ¥¼çº¸ç®±ä¾æ /// </summary> [Description("纸æ¯çº¸ç便")] OutScrapsPaper = 370, /// <summary> /// æ çººå¸æ·èåºåº /// </summary> [Description("æ çººå¸æ·èåºåº")] OutWFBLM = 370, OutWFBLM = 380, /// <summary> /// å²ååºåºåº @@ -145,13 +151,31 @@ /// åååæåå ¥åº /// </summary> [Description("åååæåå ¥åº")] PartOffInbound = 695, PartOffInbound = 680, /// <summary> /// 模ååæåå ¥åº /// </summary> [Description("模ååæåå ¥åº")] DieCutInbound = 685, /// <summary> /// å²ååæåå ¥åº /// </summary> [Description("å²ååæåå ¥åº")] PunchingInbound = 690, /// <summary> /// æ 纺å¸åæåå ¥åº /// </summary> [Description("æ 纺å¸åæåå ¥åº")] WFBYLInbound = 700, WFBYLInbound = 695, /// <summary> /// æ çººå¸æ·èåæåå ¥åº /// </summary> [Description("æ çººå¸æ·èåæåå ¥åº")] WFBLMYLInbound = 700, /// <summary> /// çº¸å¼ æ·èåæåå ¥åº ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_DTO/ERP/BSTPickInfoDTO.cs
@@ -41,7 +41,7 @@ /// é¢ç¨åå·¥ /// </summary> [PropertyValidate("é¢ç¨åå·¥", NotNullAndEmpty = true)] public long EmployeeName { get; set; } public string EmployeeName { get; set; } /// <summary> /// é¢ç¨æç» ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_IStockService/IProStockViewService.cs
@@ -13,5 +13,6 @@ PageGridData<ProStockViewDTO> GetPageData(PageDataOptions options); object GetDetailPage(PageDataOptions pageData); WebResponseContent Export(PageDataOptions options); } } ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_IStockService/IStockInfoService.cs
@@ -34,6 +34,11 @@ /// </summary> List<Dt_StockInfo> GetUseableStocks(string materielCode, decimal width, int warehoseId); /// <summary> /// è·åèåç¼åå¯ç¨åºå /// </summary> /// <returns></returns> List<Dt_StockInfo> GetUseOldCacheStocks(string materielCode, decimal width); /// <summary> /// è·åå¯ä½¿ç¨åºå /// </summary> List<Dt_StockInfo> GetUseableStocks(string materielCode, int warehoseId); ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_InboundService/MESProInOrderInfoService.cs
@@ -53,7 +53,7 @@ List<Dt_MESProInOrderInfo>? mESProInOrderInfos = BaseDal.QueryData(x => x.ProductOrderNo == orderStopDTO.ProductOrderNo && x.MESProInStatus != InOrderStatusEnum.å ³é.ObjToInt()); if (mESProInOrderInfos == null || mESProInOrderInfos.Count <= 0) { return content.Error($"æåæåæåå·¥å{nameof(MESOrderStopDTO.ProductOrderNo)}{orderStopDTO.ProductOrderNo}ä¸åå¨æå·²å ³é"); return content.Error($"æåå·¥å{nameof(MESOrderStopDTO.ProductOrderNo)}{orderStopDTO.ProductOrderNo}ä¸åå¨æå·²å ³é"); } mESProInOrderInfos.ForEach(x => { ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_InboundService/ReturnBSTOrderService.cs
@@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Common.CommonEnum; using WIDESEA_Common.MaterielEnum; using WIDESEA_Common.OrderEnum; using WIDESEA_Common.StockEnum; @@ -48,134 +49,99 @@ WebResponseContent content = new WebResponseContent(); try { List<Dt_ReturnBSTOrder> OldreturnBSTOrders = BaseDal.Db.Queryable<Dt_ReturnBSTOrder>().Includes(x => x.Details).ToList(); List<Dt_StockInfo> ExiststockInfos = _stockInfoRepository.QueryData(x=>x.WarehouseId==WarehouseEnum.LLDOldCache.ObjToInt()); //æ°å¢ List<BSTReturnOrderDTO> bSTReturnOrderDTOsAdd = bSTReturnOrderDTOs.Where(x => x.Way == 1).ToList(); List<BSTReturnOrderDTOItem>? bSTReturnOrderDTOItemsAdd = null; //ä¿®æ¹ List<BSTReturnOrderDTO> bSTReturnOrderDTOsUpdate = bSTReturnOrderDTOs.Where(x => x.Way == 2).ToList(); //å é¤ List<BSTReturnOrderDTO> bSTReturnOrderDTOsDel = bSTReturnOrderDTOs.Where(x => x.Way == 3).ToList(); List<BSTReturnOrderDTOItem>? bSTReturnOrderDTOItemsUp = null; //è·åææç©æ List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.WarehouseId == WarehouseEnum.LLDYL.ObjToInt() && x.MaterielInvOrgId == MaterielInvOrgEnum.èå.ObjToInt() && x.MaterialSourceId != 0); List<Dt_ReturnBSTOrder> returnAddBSTOrders = new List<Dt_ReturnBSTOrder>(); List<Dt_ReturnBSTOrder> returnUpdateBSTOrders = new List<Dt_ReturnBSTOrder>(); List<Dt_ReturnBSTOrder> returnDeleteBSTOrders = new List<Dt_ReturnBSTOrder>(); List<Dt_ReturnBSTOrderDetail> returnBSTOrderDetailsDel = new List<Dt_ReturnBSTOrderDetail>(); if (bSTReturnOrderDTOsAdd!=null && bSTReturnOrderDTOsAdd.Count>0) { bSTReturnOrderDTOItemsAdd = bSTReturnOrderDTOsAdd.SelectMany(x => x.BstPaperWreturnDetails).ToList(); } if (bSTReturnOrderDTOsUpdate != null && bSTReturnOrderDTOsUpdate.Count > 0) { bSTReturnOrderDTOItemsUp = bSTReturnOrderDTOsUpdate.SelectMany(x => x.BstPaperWreturnDetails).ToList(); } List<Dt_StockInfo> stockInfosUpdate = new List<Dt_StockInfo>(); //æ°å¢ if (bSTReturnOrderDTOsAdd.Count > 0) if (bSTReturnOrderDTOItemsAdd!=null && bSTReturnOrderDTOItemsAdd.Count > 0) { //夿忮 Dt_ReturnBSTOrder? ExistAddReturn = OldreturnBSTOrders.FirstOrDefault(x => bSTReturnOrderDTOsAdd.Select(x => x.PaperWreturnId).Contains(x.PaperWreturnId)); if (ExistAddReturn != null) { return content.Error($"éæå{nameof(BSTReturnOrderDTO.PaperWreturnId)}:{ExistAddReturn.PaperWreturnId}å·²åå¨"); } List<BSTReturnOrderDTOItem> bSTReturnOrderDTOItemsAdd = bSTReturnOrderDTOsAdd.SelectMany(x => x.BstPaperWreturnDetails).ToList(); //夿æ¯å¦åå¨ç©æ BSTReturnOrderDTOItem? bSTReturnOrderDTOItem = bSTReturnOrderDTOItemsAdd.FirstOrDefault(x => !materielInfos.Select(x => x.MaterialSourceId).Contains(x.MaterialId)); if (bSTReturnOrderDTOItem != null) { return content.Error($"éæ{nameof(bSTReturnOrderDTOItem.Barcode)}:{bSTReturnOrderDTOItem.Barcode}ç©æ{nameof(BSTReturnOrderDTOItem.MaterialId)}:{bSTReturnOrderDTOItem.MaterialId}ä¸åå¨"); } //éªè¯éææ¡ç æ¯å¦å¨åºåä¸ var ExiststockInfo = bSTReturnOrderDTOItemsAdd.FirstOrDefault(x => !ExiststockInfos.Select(x => x.PalletCode).Contains(x.Barcode)); if (ExiststockInfo != null) foreach (var item in bSTReturnOrderDTOItemsAdd) { return content.Error($"éææ¡ç {nameof(ExiststockInfo.Barcode)}:{ExiststockInfo.Barcode}ç©ææªå¨èåæååº"); } //è·å对åºåºåä¿®æ£åºåæ°é List<Dt_StockInfo> returnStockinfos = ExiststockInfos.Where(x => bSTReturnOrderDTOItemsAdd.Select(x => x.Barcode).Contains(x.PalletCode)).ToList(); foreach (var item in bSTReturnOrderDTOsAdd) { if (bSTReturnOrderDTOsUpdate.FirstOrDefault(x => x.PaperWreturnId == item.PaperWreturnId) != null) //å°ä¸åå¨çåºåè·³è¿ Dt_StockInfo? stockReturn = ExiststockInfos.FirstOrDefault(x => x.PalletCode == item.Barcode); if (stockReturn == null) { continue; } List<Dt_ReturnBSTOrderDetail> bSTOrderDetails = item.BstPaperWreturnDetails.Select(x => _mapper.Map<Dt_ReturnBSTOrderDetail>(x)).ToList(); Dt_ReturnBSTOrder returnBSTOrder = _mapper.Map<Dt_ReturnBSTOrder>(item); returnBSTOrder.Details = bSTOrderDetails; foreach (var detail in bSTOrderDetails) if (bSTReturnOrderDTOItemsUp!=null && bSTReturnOrderDTOItemsUp.FirstOrDefault(x => x.Barcode == item.Barcode) != null) { Dt_StockInfo stockReturn = stockInfosUpdate.FirstOrDefault(x => x.PalletCode == detail.Barcode); stockReturn.MaterielId = detail.MaterialId; stockReturn.MaterielCode = detail.MaterialNo; stockReturn.MaterielWide=detail.MaterialWide; stockReturn.MaterielThickness = detail.MaterialThick; stockReturn.MaterielWeight = detail.Qty; stockReturn.StockLength = detail.ProcurementLength; continue; } stockReturn.MaterielId = item.MaterialId; stockReturn.MaterielCode = item.MaterialNo; stockReturn.MaterielWide = item.W; stockReturn.MaterielThickness = item.Thick; stockReturn.MaterielWeight = item.Qty; stockReturn.StockLength = item.ProcurementLength; stockReturn.StockOutLength = 0; stockReturn.IsPick = WhetherEnum.False.ObjToInt(); stockReturn.IsFull = WhetherEnum.True.ObjToInt(); stockReturn.StockStatus = StockStatusEmun.èåéææå.ObjToInt(); stockInfosUpdate.Add(stockReturn); } returnAddBSTOrders.Add(returnBSTOrder); } } //æ´æ° if (bSTReturnOrderDTOsUpdate.Count > 0) if (bSTReturnOrderDTOItemsUp != null && bSTReturnOrderDTOItemsUp.Count > 0) { //åå¨çéè´å List<Dt_ReturnBSTOrder>? ExistreturnBSTOrders = OldreturnBSTOrders.Where(x => bSTReturnOrderDTOsUpdate.Select(x => x.PaperWreturnId).Contains(x.PaperWreturnId)).Distinct().ToList(); foreach (var item in bSTReturnOrderDTOsUpdate) //è·å对åºåºåä¿®æ£åºåæ°é List<Dt_StockInfo> returnStockinfos = ExiststockInfos.Where(x => bSTReturnOrderDTOItemsUp.Select(x => x.Barcode).Contains(x.PalletCode)).ToList(); foreach (var item in bSTReturnOrderDTOItemsUp) { Dt_ReturnBSTOrder? returnBSTOrderUpdate = ExistreturnBSTOrders.FirstOrDefault(x => x.PaperWreturnId == item.PaperWreturnId); //å¦æè®¢åå·²åå¨åè¿è¡æ´æ¹ if (returnBSTOrderUpdate != null) Dt_StockInfo? returnUpdate = stockInfosUpdate.FirstOrDefault(x => x.PalletCode == item.Barcode); //å¦æä¿®æ¹å·²åå¨ï¼å¨ååºç¡ä¸æ´æ° if (returnUpdate != null) { if (returnBSTOrderUpdate.ReturnOrderStatus != InOrderStatusEnum.æªå¼å§.ObjToInt()) { return content.Error($"éæ{nameof(returnBSTOrderUpdate.PaperWreturnId)}:{returnBSTOrderUpdate.PaperWreturnId}订åéæå ¥åºä¸ï¼ä¸å¯æ´æ¹"); } returnBSTOrderDetailsDel.AddRange(returnBSTOrderUpdate.Details); //æ´æ° List<Dt_ReturnBSTOrderDetail> bSTOrderDetails = item.BstPaperWreturnDetails.Select(x => _mapper.Map<Dt_ReturnBSTOrderDetail>(x)).ToList(); bSTOrderDetails.ForEach(x => { x.ReturnBSTOrderId = returnBSTOrderUpdate.Id; }); returnBSTOrderUpdate.Details = bSTOrderDetails; returnBSTOrderUpdate.PaperWreturnId = item.PaperWreturnId; returnBSTOrderUpdate.PaperWreturnNo = item.PaperWreturnNo; returnBSTOrderUpdate.EmployeeName = item.EmployeeName; returnBSTOrderUpdate.WreturnDate = DateTimeOffset.FromUnixTimeMilliseconds(item.WreturnDate).DateTime; returnUpdateBSTOrders.Add(returnBSTOrderUpdate); returnUpdate.MaterielThickness = item.Thick; returnUpdate.MaterielWeight = item.Qty; returnUpdate.StockLength = item.ProcurementLength; } else //妿ä¸åå¨åè¿è¡æ°å¢ else { List<Dt_ReturnBSTOrderDetail> bSTOrderDetails = item.BstPaperWreturnDetails.Select(x => _mapper.Map<Dt_ReturnBSTOrderDetail>(x)).ToList(); Dt_ReturnBSTOrder returnBSTOrder = _mapper.Map<Dt_ReturnBSTOrder>(item); returnBSTOrder.Details = bSTOrderDetails; foreach (var detail in bSTOrderDetails) //å°ä¸åå¨çåºåè·³è¿ Dt_StockInfo? stockReturn = ExiststockInfos.FirstOrDefault(x => x.PalletCode == item.Barcode); if (stockReturn == null) { Dt_StockInfo stockReturn = stockInfosUpdate.FirstOrDefault(x => x.PalletCode == detail.Barcode); stockReturn.MaterielId = detail.MaterialId; stockReturn.MaterielCode = detail.MaterialNo; stockReturn.MaterielWide = detail.MaterialWide; stockReturn.MaterielThickness = detail.MaterialThick; stockReturn.MaterielWeight = detail.Qty; stockReturn.StockLength = detail.ProcurementLength; continue; } stockReturn.MaterielId = item.MaterialId; stockReturn.MaterielCode = item.MaterialNo; stockReturn.MaterielWide = item.W; stockReturn.MaterielThickness = item.Thick; stockReturn.MaterielWeight = item.Qty; stockReturn.StockLength = item.ProcurementLength; stockReturn.StockOutLength = 0; stockReturn.IsPick = WhetherEnum.False.ObjToInt(); stockReturn.IsFull = WhetherEnum.True.ObjToInt(); stockReturn.StockStatus = StockStatusEmun.èåéææå.ObjToInt(); stockInfosUpdate.Add(stockReturn); } returnAddBSTOrders.Add(returnBSTOrder); } } } //å é¤ if (bSTReturnOrderDTOsDel.Count > 0) { } //æ´æ°æ°æ® _unitOfWorkManage.BeginTran(); BaseDal.Db.InsertNav(returnAddBSTOrders).Include(x => x.Details).ExecuteCommand(); _stockInfoRepository.UpdateData(stockInfosUpdate); _returnBSTOrderDetailRepository.DeleteData(returnBSTOrderDetailsDel); BaseDal.Db.UpdateNav(returnUpdateBSTOrders).Include(x => x.Details).ExecuteCommand(); _unitOfWorkManage.CommitTran(); content.OK("æ¥æ¶æå"); } ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_Model/Models/TaskInfo/Dt_Task.cs
@@ -196,7 +196,7 @@ /// </summary> [ImporterHeader(Name = "ç©ææ°é")] [ExporterHeader(DisplayName = "ç©ææ°é")] [SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "ç©ææ°é")] [SugarColumn(IsNullable = true, ColumnDescription = "ç©ææ°é")] public decimal Quantity { get; set; } } } ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderDetailService.cs
@@ -5,8 +5,10 @@ using System.Text; using System.Threading.Tasks; using WIDESEA_Common.LocationEnum; using WIDESEA_Common.StockEnum; using WIDESEA_Core; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Helper; using WIDESEA_IBasicRepository; using WIDESEA_IBasicService; using WIDESEA_IOutboundRepository; @@ -72,8 +74,10 @@ foreach (var item in groupDetails) { decimal needQuantity = item.XqLen; //è·åå¯ç¨åºå List<Dt_StockInfo> stockInfos = _stockService.StockInfoService.GetUseableStocks(item.MaterialNo, item.Width, outBSTOrders.FirstOrDefault().WarehouseId).Where(x=>!outStocks.Select(x=>x.PalletCode).Contains(x.PalletCode)).ToList(); //è·åèåç¼åå¯ç¨åºå List<Dt_StockInfo> stockInfos = _stockService.StockInfoService.GetUseOldCacheStocks(item.MaterialNo, item.Width) ?? new List<Dt_StockInfo>(); //è·åç«åºå¯ç¨åºå stockInfos.AddRange(_stockService.StockInfoService.GetUseableStocks(item.MaterialNo, item.Width, outBSTOrders.FirstOrDefault().WarehouseId).Where(x=>!outStocks.Select(x=>x.PalletCode).Contains(x.PalletCode)).ToList()); if (!stockInfos.Any()) { continue; @@ -132,7 +136,7 @@ } locationInfos.AddRange(_basicRepository.LocationInfoRepository.GetLocationInfos(outStocks.Select(x => x.LocationCode).ToList())); locationInfos.AddRange(_basicRepository.LocationInfoRepository.GetLocationInfos(outStocks.Where(x=>!x.LocationCode.IsNullOrEmpty() && !locationInfos.Select(x=>x.LocationCode).Contains(x.LocationCode)).Select(x => x.LocationCode).ToList())); } return (outStocks, outboundOrderDetails, outStockLockInfos, locationInfos); @@ -144,6 +148,10 @@ { try { stockInfos.Where(x => x.LocationCode.IsNullOrEmpty()).ToList().ForEach(x => { x.StockStatus = StockStatusEmun.åºåºå®æ.ObjToInt(); }); _stockService.StockInfoService.Repository.UpdateData(stockInfos); BaseDal.UpdateData(outboundOrderDetails); ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_OutboundService/OutStockLockInfoService.cs
@@ -136,7 +136,7 @@ OrderType=OutOrderTypeEnum.OutSGPick.ObjToInt(), MaterielCode = outSGOrderDetail.MaterialNo, BatchNo = outSGOrderDetail.BoardFluteNo, //æ¥å«æ¹æ¬¡ LocationCode = outStock.LocationCode, LocationCode = outStock.LocationCode.IsNullOrEmpty() ? "èåç¼ååº": outStock.LocationCode, MaterielName = outStock.MaterielName, OrderDetailId = outSGOrderDetail.Id, OrderNo = outSGOrder.OrderId, ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_StockService/StockInfoService.cs
@@ -206,6 +206,14 @@ return BaseDal.GetStockInfos(materielCode, width, locationCodes); } /// <summary> /// è·åèåç¼åå¯ç¨åºå /// </summary> /// <returns></returns> public List<Dt_StockInfo> GetUseOldCacheStocks(string materielCode, decimal width) { return Db.Queryable<Dt_StockInfo>().Where(x => x.MaterielCode.StartsWith(materielCode) && x.StockStatus == StockStatusEmun.èåéææå.ObjToInt() && x.MaterielWide == width && x.StockOutLength <= 0 && x.StockLength > 0).OrderBy(x => x.CreateDate).ToList(); } public List<Dt_StockInfo> GetUseableStocks(string materielCode, int warehoseId) { List<string> locationCodes = _basicRepository.LocationInfoRepository.GetCanOutLocationCodes(warehoseId); ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs
@@ -244,13 +244,9 @@ return content.Error($"æªæ¾å°æ¡ç {returnMaterial.BarCode}ç©æä¿¡æ¯"); } //夿 if (returnMaterial.Thickness <= 0 && materielInfo.WarehouseId==WarehouseEnum.LLDYL.ObjToInt()) if ((returnMaterial.Thickness <= 0 || returnMaterial.Wide <= 0)&& materielInfo.WarehouseId==WarehouseEnum.LLDYL.ObjToInt()) { return content.Error($"ç©æ{returnMaterial.MaterialCode}æ¡ç {returnMaterial.BarCode}ç´å¾ä¸è½å°äº0"); } if (returnMaterial.Wide <= 0 && materielInfo.WarehouseId == WarehouseEnum.LLDYL.ObjToInt()) { return content.Error($"ç©æ{returnMaterial.MaterialCode}æ¡ç {returnMaterial.BarCode}ç´å¾ä¸è½å°äº0"); return content.Error($"ç©æ{returnMaterial.MaterialCode}æ¡ç {returnMaterial.BarCode}ç´å¾æå¹ 宽ä¸è½å°äº0"); } Dt_StockInfo? stockInfoOld = stockInfosOld.FirstOrDefault(x => x.PalletCode == returnMaterial.BarCode); if (stockInfoOld != null) ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService.cs
@@ -194,6 +194,12 @@ { return content; } //è·åææçåºåºè¯¦æ 夿æ¯å¦æ»¡è¶³åºåºéå°äº5ä¸ä¸å°äº17å· List<Dt_OutStockLockInfo> outStockLockInfos = _outboundRepository.OutStockLockInfoRepository.QueryData(x=>x.OrderType==OutOrderTypeEnum.OutSGPick.ObjToInt() && x.Status<=OutLockStockStatusEnum.å ³é.ObjToInt()); decimal sumAssignQty = outStockLockInfos.Sum(x => x.AssignQuantity); int outCount= outStockLockInfos.Select(x=>x.PalletCode).Distinct().Count(); if (sumAssignQty < AppSettings.Get("OutSGLength").ObjToInt() && outCount < AppSettings.Get("OutSGCount").ObjToInt()) { List<int> ints = _outboundRepository.OutSGOrderDetailRepository.QueryData(x=>x.Id>outDetailId).Select(x=>x.Id).ToList(); int[] reseponse= new int[ints.Count]; for (int i = 0; i < ints.Count; i++) @@ -202,6 +208,11 @@ } content.Message = CreateSGOutboundTasks(reseponse).Message; } else { return content.Error($"å½ååºåºéï¼{sumAssignQty},å½ååºåºå·æ°ï¼{outCount},䏿»¡è¶³å°äº5ä¸ä¸å°äº17å·åºåºæ¡ä»¶"); } } } catch (Exception ex) ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs
@@ -197,7 +197,7 @@ UpdateStock(stockInfoOld, weight, thickness, wide); return content.OK($"临æ¶å ¥åº{stockInfoOld.RfidCode}"); } else if (stockInfoOld != null && stockInfoOld.MaterielInvOrgId == MaterielInvOrgEnum.èå.ObjToInt() && stockInfoOld.StockStatus == StockStatusEmun.åºåºå®æ.ObjToInt() && stockInfoOld.IsPick==WhetherEnum.False.ObjToInt() && stationCode.IsNotEmptyOrNull()) else if (stockInfoOld != null && stockInfoOld.MaterielInvOrgId == MaterielInvOrgEnum.èå.ObjToInt() && stockInfoOld.StockStatus == StockStatusEmun.åºåºå®æ.ObjToInt() && stationCode.IsNotEmptyOrNull()) { decimal oldQty = stockInfoOld.StockLength; //è°ç¨æ´æ°éæåºåå䏿¥éé @@ -348,17 +348,17 @@ WebResponseContent content = new WebResponseContent(); try { if (thickness < 400) { throw new Exception($"RFID{stockInfoOld.RfidCode}æ¡ç {stockInfoOld.PalletCode}ç´å¾å°äº400mm"); } BSTResponse<BSTStockInfoDTO> bSTResponse = _invokeERPService.BSTStockAsync(stockInfoOld.PalletCode).DeserializeObject<BSTResponse<BSTStockInfoDTO>>(); if (bSTResponse.Code == 500) { throw new Exception($"æªæ¾å°æ¡ç {stockInfoOld.PalletCode}䏿ERPåºåä¸åå¨"); } BSTStockInfoDTO bSTStockInfoDTO = bSTResponse.Data ?? throw new Exception($"䏿ERPæªè¿å{stockInfoOld.PalletCode}çåºåä¿¡æ¯"); if (stockInfoOld.StockStatus == StockStatusEmun.èåéææå.ObjToInt()) { stockInfoOld.IsPick = WhetherEnum.False.ObjToInt(); } decimal stockLength = bSTStockInfoDTO.StockMeter; if (weight != bSTStockInfoDTO.Qty && weight < stockInfoOld.InitialWeight) { @@ -390,10 +390,6 @@ stockInfoOld.StockLength = stockLength; stockInfoOld.StockOutLength = 0; stockInfoOld.WarehouseId = WarehouseEnum.LLDYL.ObjToInt(); if (thickness < 400) { throw new Exception($"RFID{stockInfoOld.RfidCode}æ¡ç {stockInfoOld.PalletCode}ç´å¾å°äº400mm"); } content.OK("æå",data:stockInfoOld); } catch (Exception ex) @@ -926,22 +922,6 @@ bool RoadwayType = stockInfo.PalletType == LocationTypeEnum.MediumPallet.ObjToInt(); //è·ååé List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() && x.RoadwayNo.Contains("YLDual") && (stockInfo.PalletType == LocationTypeEnum.MediumPallet.ObjToInt() ? x.LocationType == LocationTypeEnum.MediumPallet.ObjToInt() : x.LocationType == LocationTypeEnum.SmallPallet.ObjToInt())).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).OrderBy(x => x.RoadwayNo).ToList(); if (RoadwayType) { foreach (var item in locationCounts) { if (item.RoadwayNo.Contains("YLDual")) { int count = Db.Queryable<Dt_LocationInfo>() .Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationStatus == (int)LocationStatusEnum.Free && x.EnableStatus == (int)EnableStatusEnum.Normal && x.LocationType == LocationTypeEnum.MediumPallet.ObjToInt() && x.RoadwayNo == item.RoadwayNo).Count(); item.Count = count; } } } roadwayNo = HandleRoadway(locationCounts, warehouse, ErrorRoadway ? roadways : null); } } @@ -1842,7 +1822,7 @@ return content.Error("ä¼ å ¥ä¿¡æ¯ä¸ºç©º"); } //è·åæææåï¼åæåä¿¡æ¯ List<Dt_MESProInOrderInfo> proInOrderInfos = _inboundRepository.MESProInOrderInfoRepository.QueryData(); List<Dt_MESProInOrderInfo> proInOrderInfosOld = _inboundRepository.MESProInOrderInfoRepository.QueryData(); //è·åææç©æä¿¡æ¯ List<Dt_MaterielInfo> materielInfos = _basicRepository.MaterielInfoRepository.QueryData(x => x.MaterielInvOrgId == MaterielInvOrgEnum.æ°å.ObjToInt()); @@ -1855,12 +1835,12 @@ List<Dt_AGVStationInfo> aGVStationInfos = _basicRepository.AGVStationInfoRepository.QueryData(x => !string.IsNullOrEmpty(x.MESPointCode)); //夿æ¯å¦åå¨éå¤ MESProInDTO? proInDTO = proInDTOs.FirstOrDefault(x => x.IsMantissa == false && proInOrderInfos.Select(x => x.BarCode).Contains(x.BarCode)); MESProInDTO? proInDTO = proInDTOs.FirstOrDefault(x => x.IsMantissa == false && proInOrderInfosOld.Select(x => x.BarCode).Contains(x.BarCode)); if (proInDTO != null) { return content.Error($"{proInDTO.ProductOrderNo}ç产工å{proInDTO.BarCode}æ¡ç å·²åå¨"); } Dt_MESProInOrderInfo? proInOrderInfo = proInOrderInfos.FirstOrDefault(x => x.MESProInStatus == InOrderStatusEnum.å ³é.ObjToInt() && proInDTOs.Select(x => x.ProductOrderNo).Distinct().Contains(x.ProductOrderNo)); Dt_MESProInOrderInfo? proInOrderInfo = proInOrderInfosOld.FirstOrDefault(x => x.MESProInStatus == InOrderStatusEnum.å ³é.ObjToInt() && proInDTOs.Select(x => x.ProductOrderNo).Distinct().Contains(x.ProductOrderNo)); if (proInOrderInfo != null) { return content.Error($"{proInOrderInfo.ProductOrderNo}ç产工åå·²å ³é"); @@ -1869,6 +1849,11 @@ foreach (var item in proInDTOs) { Dt_MaterielInfo materielInfo = materielInfos.FirstOrDefault(x => x.MaterielCode == item.MaterialCode); //夿 if ((item.Thickness <= 0 || item.Wide <= 0) && materielInfo.WarehouseId == WarehouseEnum.LLDYL.ObjToInt()) { return content.Error($"ç©æ{item.MaterialCode}æ¡ç {item.BarCode}ç´å¾æå¹ 宽ä¸è½å°äº0"); } if (materielInfo.MaterielSourceType != MaterielTypeEnum.æå.ObjToInt()) { Dt_AGVStationInfo? CheckPointCode = aGVStationInfos.FirstOrDefault(x => x.MESPointCode == item?.PointCode); @@ -1884,6 +1869,11 @@ Dt_MESProInOrderInfo AddproInOrderInfo = _mapper.Map<Dt_MESProInOrderInfo>(item); AddproInOrderInfo.WarehouseId = materielInfo.WarehouseId; AddproInOrderInfo.MESProOrderType = materielInfo.MaterielSourceType; //å°äº550å¹ å®½åä¸è½æ¬è¿ if (item.Wide < 550 && materielInfo.WarehouseId == WarehouseEnum.LLDYL.ObjToInt()) { AddproInOrderInfo.MESProInStatus=InOrderStatusEnum.å ¥åºå®æ.ObjToInt(); } AddMESProInOrders.Add(AddproInOrderInfo); } List<Dt_Task> tasks = new List<Dt_Task>(); @@ -1910,6 +1900,9 @@ PB_INV_PRODUCT_IN= pRODUCT_INItems }) ?? throw new Exception("åæåå ¥åºæ¥å£è¯·æ±å¤±è´¥"); //çæåæåå ¥åº List<Dt_MESProInOrderInfo> semiProInOrderInfos = mESProInOrderInfos.Where(x => x.MESProInStatus == InOrderStatusEnum.æªå¼å§.ObjToInt()).ToList(); if (semiProInOrderInfos.Count>0) { WebResponseContent webResponse = SemiProInbound(AddMESProInOrders.Where(x => x.MESProOrderType == MaterielTypeEnum.åæå.ObjToInt()).ToList()); if (!webResponse.Status) { @@ -1922,9 +1915,11 @@ throw new Exception(taskResponse.Message); } } if (AddMESProInOrders.Where(x => x.MESProOrderType == MaterielTypeEnum.æå.ObjToInt()).Count() > 0) } List<Dt_MESProInOrderInfo> proInOrderInfos = AddMESProInOrders.Where(x => x.MESProOrderType == MaterielTypeEnum.æå.ObjToInt()).ToList(); if (proInOrderInfos.Count > 0) { WebResponseContent webResponse = PushPackaxisTaskToWCS(AddMESProInOrders.Where(x => x.MESProOrderType == MaterielTypeEnum.æå.ObjToInt()).ToList()); WebResponseContent webResponse = PushPackaxisTaskToWCS(proInOrderInfos); if (!webResponse.Status) { throw new Exception(webResponse.Message); ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs
@@ -741,7 +741,7 @@ if (result.Item1 != null && result.Item1.Count > 0) { //è·åä»»å¡ tasks = GetTasks(result.Item1, TaskTypeEnum.OldYLOutbound); tasks = GetTasks(result.Item1.Where(x=> !x.LocationCode.IsNullOrEmpty()).ToList(), TaskTypeEnum.OldYLOutbound); result.Item2.ForEach(x => { if (result.Item3.FirstOrDefault(t=>t.OrderDetailId==x.Id)!=null) @@ -751,7 +751,14 @@ }); result.Item3.ForEach(x => { if (x.LocationCode== "èåç¼ååº") { x.Status = OutLockStockStatusEnum.åºåºå®æ.ObjToInt(); } else { x.Status = OutLockStockStatusEnum.åºåºä¸.ObjToInt(); } }); stockInfos = result.Item1; @@ -829,42 +836,68 @@ WebResponseContent content = new WebResponseContent(); try { //æ°å¢ List<BSTPickInfoDTO> bSTPickInfosAdd = bSTPickInfoDTOs.Where(x => x.Way == 1).ToList(); //è·åæ°å¢æç»é¢æ List<PaperMattakeDetailItem>? paperMattakeDetailItemsAdd = null; //ä¿®æ¹ List<BSTPickInfoDTO> bSTPickInfosUp = bSTPickInfoDTOs.Where(x => x.Way == 2).ToList(); //è·åæ°å¢æç»é¢æ List<PaperMattakeDetailItem>? paperMattakeDetailItemsUp = null; if (bSTPickInfosAdd != null && bSTPickInfosAdd.Count > 0) //è·å颿æ¡ç ååºå List<string> lockCodes = bSTPickInfoDTOs.SelectMany(x => x.PaperMattakeDetails).Select(x=>x.Barcode).Distinct().ToList(); List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.QueryData(x=> lockCodes.Contains(x.PalletCode)); //è·åå¾ é¢æçåºåºè¯¦æ List<Dt_OutStockLockInfo> outStockLockInfos = _outboundRepository.OutStockLockInfoRepository.QueryData(x => x.OrderType == OutOrderTypeEnum.OutSGPick.ObjToInt() && x.Status==OutLockStockStatusEnum.åºåºå®æ.ObjToInt() && lockCodes.Distinct().ToList().Contains(x.PalletCode)); //åºåºè¯¦æ ç¶ææ´æ° if (outStockLockInfos.Count > 0) { paperMattakeDetailItemsAdd = bSTPickInfosAdd.SelectMany(x => x.PaperMattakeDetails).ToList(); } if (bSTPickInfosUp != null && bSTPickInfosUp.Count > 0) outStockLockInfos.ForEach(x => { paperMattakeDetailItemsUp = bSTPickInfosUp.SelectMany(x => x.PaperMattakeDetails).ToList(); x.Status = OutLockStockStatusEnum.å ³é.ObjToInt(); }); } //è·åææå¾ 颿çåºåºè¯¦æ List<Dt_OutStockLockInfo> outStockLockInfos = _outboundRepository.OutStockLockInfoRepository.QueryData(x => x.OrderType == OutOrderTypeEnum.OutSGPick.ObjToInt() && x.Status==OutLockStockStatusEnum.åºåºå®æ.ObjToInt()); List<int> BSTPickDetailsId = outStockLockInfos.Select(x => x.OrderDetailId).Distinct().ToList(); //è·åå¯¹åºæç¨ List<Dt_OutSGOrder> outSGOrders = BaseDal.Db.Queryable<Dt_OutSGOrder>().Where(x => x.OutSGOrderStatus < OutOrderStatusEnum.åºåºå®æ.ObjToInt()).Includes(x => x.Details) .Where(x => x.Details .Any(v => BSTPickDetailsId.Contains(v.Id)) ).OrderBy(x => x.CreateDate).ToList(); List<Dt_OutSGOrderDetail> orderDetails = new List<Dt_OutSGOrderDetail>(); //å¤çæç¨ if (outSGOrders.Count>0) { orderDetails = outSGOrders.SelectMany(x=>x.Details).Where(x=> BSTPickDetailsId.Contains(x.Id)).ToList(); orderDetails.ForEach(x => { x.OutSGOrderDetailStatus = OutOrderStatusEnum.åºåºå®æ.ObjToInt(); }); foreach (var item in outSGOrders) { int overCount = item.Details.Where(x=>x.OutSGOrderDetailStatus==OutLockStockStatusEnum.åºåºå®æ.ObjToInt()).Count(); int thisCount = orderDetails.Where(x => x.OutSGOrderId == item.Id).Count(); if ((overCount + thisCount) == item.Details.Count) { item.OutSGOrderStatus = OutOrderStatusEnum.åºåºå®æ.ObjToInt(); } } } //è·åææå¾ 颿çåºå #region 颿é»è¾ if (paperMattakeDetailItemsAdd != null && paperMattakeDetailItemsAdd.Count > 0) foreach (var item in stockInfos) { foreach (var item in paperMattakeDetailItemsAdd) if (item.StockStatus==StockStatusEmun.åºåºå®æ.ObjToInt()) { //è·å对åºç item.StockLength = 0; item.MaterielWeight = 0; item.MaterielThickness = 0; item.MaterielWide = 0; item.StockOutLength = 0; item.IsFull = WhetherEnum.True.ObjToInt(); item.IsPick = WhetherEnum.True.ObjToInt(); } } if (paperMattakeDetailItemsUp != null && paperMattakeDetailItemsUp.Count > 0) { foreach (var item in paperMattakeDetailItemsUp) { } } #endregion _unitOfWorkManage.BeginTran(); _stockRepository.StockInfoRepository.UpdateData(stockInfos); _outboundRepository.OutStockLockInfoRepository.UpdateData(outStockLockInfos); _outboundRepository.OutSGOrderRepository.UpdateData(outSGOrders); _outboundRepository.OutSGOrderDetailRepository.UpdateData(orderDetails); _unitOfWorkManage.CommitTran(); } catch (Exception ex) { @@ -970,90 +1003,90 @@ _unitOfWorkManage.BeginTran(); //æä½æ°æ®ï¼å¹¶åé éæ±åºå _outboundRepository.OutMESOrderRepository.AddData(AddoutMESOrders); List<Dt_OutMESOrder> mESOrders = _outboundRepository.OutMESOrderRepository.QueryData(x => AddoutMESOrders.Select(x => x.OutDetailId).Contains(x.OutDetailId)); { List<Dt_Task> tasks = new List<Dt_Task>(); List<Dt_ProStockInfo>? stockInfos = null; List<Dt_OutMESOrder>? Orders = null; List<Dt_OutStockLockInfo>? outStockLockInfos = null; List<Dt_LocationInfo>? locationInfos = null; { if (mESOrders.Where(x => x.WarehouseId == WarehouseEnum.LLDFL.ObjToInt()).ToList().Count>0) { //åé åºå (List<Dt_ProStockInfo>, List<Dt_OutMESOrder>, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.OutMESOrderService.AssignProStockOutbound(mESOrders.Where(x => x.WarehouseId == WarehouseEnum.LLDFL.ObjToInt()).ToList()); if (result.Item1 != null && result.Item1.Count > 0) { //åå»ºä»»å¡ tasks = GetTasks(result.Item1, result.Item3); result.Item3.ForEach(x => { x.Status = OutLockStockStatusEnum.åºåºä¸.ObjToInt(); }); stockInfos = result.Item1; Orders = result.Item2; outStockLockInfos = result.Item3; locationInfos = result.Item4; } } } if (stockInfos != null && stockInfos.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0 && tasks.Count>0) { BaseDal.AddData(tasks); stockInfos.ForEach(x => { x.StockStatus = StockStatusEmun.åºåºéå®.ObjToInt(); }); WebResponseContent contentResponse = _outboundService.OutMESOrderService.LockOutboundStockDataUpdate(stockInfos, Orders, outStockLockInfos, locationInfos, tasks: tasks); //List<Dt_OutMESOrder> mESOrders = _outboundRepository.OutMESOrderRepository.QueryData(x => AddoutMESOrders.Select(x => x.OutDetailId).Contains(x.OutDetailId)); //{ // List<Dt_Task> tasks = new List<Dt_Task>(); // List<Dt_ProStockInfo>? stockInfos = null; // List<Dt_OutMESOrder>? Orders = null; // List<Dt_OutStockLockInfo>? outStockLockInfos = null; // List<Dt_LocationInfo>? locationInfos = null; // { // if (mESOrders.Where(x => x.WarehouseId == WarehouseEnum.LLDFL.ObjToInt()).ToList().Count>0) // { // //åé åºå // (List<Dt_ProStockInfo>, List<Dt_OutMESOrder>, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.OutMESOrderService.AssignProStockOutbound(mESOrders.Where(x => x.WarehouseId == WarehouseEnum.LLDFL.ObjToInt()).ToList()); // if (result.Item1 != null && result.Item1.Count > 0) // { // //åå»ºä»»å¡ // tasks = GetTasks(result.Item1, result.Item3); // result.Item3.ForEach(x => // { // x.Status = OutLockStockStatusEnum.åºåºä¸.ObjToInt(); // }); // stockInfos = result.Item1; // Orders = result.Item2; // outStockLockInfos = result.Item3; // locationInfos = result.Item4; // } // } // } // if (stockInfos != null && stockInfos.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0 && tasks.Count>0) // { // BaseDal.AddData(tasks); // stockInfos.ForEach(x => // { // x.StockStatus = StockStatusEmun.åºåºéå®.ObjToInt(); // }); // WebResponseContent contentResponse = _outboundService.OutMESOrderService.LockOutboundStockDataUpdate(stockInfos, Orders, outStockLockInfos, locationInfos, tasks: tasks); if (!contentResponse.Status) { _unitOfWorkManage.RollbackTran(); return content.Error(contentResponse.Message); } } } { List<Dt_Task> tasks = new List<Dt_Task>(); List<Dt_StockInfo>? stockInfos = null; List<Dt_OutMESOrder>? Orders = null; List<Dt_OutStockLockInfo>? outStockLockInfos = null; List<Dt_LocationInfo>? locationInfos = null; { if (mESOrders.Where(x => x.WarehouseId == WarehouseEnum.LLDYL.ObjToInt()).ToList().Count > 0) { //åé åºå (List<Dt_StockInfo>, List<Dt_OutMESOrder>, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.OutMESOrderService.AssignStockOutbound(mESOrders.Where(x => x.WarehouseId == WarehouseEnum.LLDYL.ObjToInt()).ToList()); if (result.Item1 != null && result.Item1.Count > 0) { //åå»ºä»»å¡ tasks = GetTasks(result.Item1, result.Item3); result.Item3.ForEach(x => { x.Status = OutLockStockStatusEnum.åºåºä¸.ObjToInt(); }); stockInfos = result.Item1; Orders = result.Item2; outStockLockInfos = result.Item3; locationInfos = result.Item4; } } } if (stockInfos != null && stockInfos.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0 && tasks.Count>0) { BaseDal.AddData(tasks); stockInfos.ForEach(x => { x.StockStatus = StockStatusEmun.åºåºéå®.ObjToInt(); }); WebResponseContent contentResponse = _outboundService.OutMESOrderService.LockOutboundStockDataUpdate(stockInfos, Orders, outStockLockInfos, locationInfos, tasks: tasks); if (!contentResponse.Status) { _unitOfWorkManage.RollbackTran(); return content.Error(contentResponse.Message); } } } // if (!contentResponse.Status) // { // _unitOfWorkManage.RollbackTran(); // return content.Error(contentResponse.Message); // } // } //} //{ // List<Dt_Task> tasks = new List<Dt_Task>(); // List<Dt_StockInfo>? stockInfos = null; // List<Dt_OutMESOrder>? Orders = null; // List<Dt_OutStockLockInfo>? outStockLockInfos = null; // List<Dt_LocationInfo>? locationInfos = null; // { // if (mESOrders.Where(x => x.WarehouseId == WarehouseEnum.LLDYL.ObjToInt()).ToList().Count > 0) // { // //åé åºå // (List<Dt_StockInfo>, List<Dt_OutMESOrder>, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) result = _outboundService.OutMESOrderService.AssignStockOutbound(mESOrders.Where(x => x.WarehouseId == WarehouseEnum.LLDYL.ObjToInt()).ToList()); // if (result.Item1 != null && result.Item1.Count > 0) // { // //åå»ºä»»å¡ // tasks = GetTasks(result.Item1, result.Item3); // result.Item3.ForEach(x => // { // x.Status = OutLockStockStatusEnum.åºåºä¸.ObjToInt(); // }); // stockInfos = result.Item1; // Orders = result.Item2; // outStockLockInfos = result.Item3; // locationInfos = result.Item4; // } // } // } // if (stockInfos != null && stockInfos.Count > 0 && outStockLockInfos != null && outStockLockInfos.Count > 0 && locationInfos != null && locationInfos.Count > 0 && tasks.Count>0) // { // BaseDal.AddData(tasks); // stockInfos.ForEach(x => // { // x.StockStatus = StockStatusEmun.åºåºéå®.ObjToInt(); // }); // WebResponseContent contentResponse = _outboundService.OutMESOrderService.LockOutboundStockDataUpdate(stockInfos, Orders, outStockLockInfos, locationInfos, tasks: tasks); // if (!contentResponse.Status) // { // _unitOfWorkManage.RollbackTran(); // return content.Error(contentResponse.Message); // } // } //} _unitOfWorkManage.CommitTran(); return content.OK("æ¥æ¶æå"); ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_WMSServer/Controllers/ERP/ErpBSTController.cs
@@ -91,7 +91,7 @@ /// æ¥æ¶åæéé¢æä¿¡æ¯ /// </summary> /// <returns></returns> [HttpPost, HttpGet, Route("ReceivePicking"), AllowAnonymous] [HttpPost, HttpGet, Route("ReceivePicking")] public WebResponseContent ReceivePicking([FromBody] List<BSTPickInfoDTO> bSTPickInfoDTOs) { return _taskService.ReceivePicking(bSTPickInfoDTOs); @@ -101,7 +101,7 @@ /// æ¥æ¶åæééæä¿¡æ¯ /// </summary> /// <returns></returns> [HttpPost, HttpGet, Route("ReceiveReturnOrder"), AllowAnonymous] [HttpPost, HttpGet, Route("ReceiveReturnOrder")] public WebResponseContent ReceiveReturnOrder([FromBody] List<BSTReturnOrderDTO> bSTReturnOrderDTOs) { return _returnBSTOrderService.ReceiveReturnOrder(bSTReturnOrderDTOs); ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_WMSServer/appsettings.json
@@ -32,6 +32,8 @@ "ApiName": "WIDESEA", "ExpMinutes": 360, "QuartzJobAutoStart": true, "OutSGLength": "50000", "OutSGCount": "17", "PDAVersion": "4", "WebSocketPort": 9296 } ÏîÄ¿×ÊÁÏ/½Ó¿ÚÐÒé/²©Ë¹Í¨ÀûÍØ½Ó¿Ú.V2.xlsxBinary files differ
ÏîÄ¿×ÊÁÏ/ͨÐÅÐÒé/ÔÁÏ¿âÊäËÍÏß¹ÊÕ϶ÁÈ¡.xlsBinary files differ