From 77198a2c5f246696198277b82821cdc69c588d1e Mon Sep 17 00:00:00 2001 From: hutongqing <hutongqing@hnkhzn.com> Date: 星期四, 16 一月 2025 10:16:02 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn --- 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c55dc563-0ab2-4a62-9fbf-42cb95118eea.vsidx | 0 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs | 1 代码管理/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue | 4 - 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs | 79 +++++++++++++++++++++++++- 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock | 0 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/18a53365-4699-4a05-a22d-52202ffc28c5.vsidx | 0 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/OrderDetailStatusEnum.cs | 6 + 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs | 44 ++------------ 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 34 ++++++----- 代码管理/淮安PDA/pages/stash/raworderboxing.vue | 7 +- 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock | 0 11 files changed, 113 insertions(+), 62 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/18a53365-4699-4a05-a22d-52202ffc28c5.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/18a53365-4699-4a05-a22d-52202ffc28c5.vsidx" new file mode 100644 index 0000000..3810953 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/18a53365-4699-4a05-a22d-52202ffc28c5.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock" new file mode 100644 index 0000000..e69de29 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock" diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue" index ccadec6..468e67d 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/materielCodeInfo.vue" @@ -50,9 +50,8 @@ title: "鐗╂枡缂栫爜", field: "materielCode", type: "select", - required: true, - // dataKey: "MaterielCodes", data: [], + required: true, }, ], [ @@ -60,7 +59,6 @@ title: "閲囪喘鍗曞彿", field: "purchaseOrderNo", type: "select", - // dataKey: "purchaseOrderNos", data: [], required: true, }, diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c55dc563-0ab2-4a62-9fbf-42cb95118eea.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c55dc563-0ab2-4a62-9fbf-42cb95118eea.vsidx" new file mode 100644 index 0000000..033cd0f --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c55dc563-0ab2-4a62-9fbf-42cb95118eea.vsidx" Binary files differ diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock" new file mode 100644 index 0000000..e69de29 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock" diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/OrderDetailStatusEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/OrderDetailStatusEnum.cs" index aef15d7..8e849dc 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/OrderDetailStatusEnum.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/OrderDetailStatusEnum.cs" @@ -20,7 +20,11 @@ /// </summary> [Description("缁勭洏鍏ュ簱")] GroupAndInbound = 10, - + /// <summary> + /// 鍏ュ簱涓� + /// </summary> + [Description("鍏ュ簱涓�")] + Inbounding = 20, /// <summary> /// 鍑哄簱閮ㄥ垎鍒嗛厤瀹屾垚 /// </summary> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs" index 9c00a39..5939418 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs" @@ -17,55 +17,27 @@ { IInboundOrderRepository Repository { get; } - /// <summary> - /// - /// </summary> - /// <param name="saveModel"></param> - /// <returns></returns> WebResponseContent GetInboundOrders(SaveModel saveModel); - - /// <summary> - /// - /// </summary> - /// <param name="inboundOrderId"></param> - /// <param name="palletCode"></param> - /// <param name="serNum"></param> - /// <returns></returns> WebResponseContent MaterielGroup(int inboundOrderId, string palletCode, string serNum); - /// <summary> - /// - /// </summary> - /// <param name="inboundOrderId"></param> - /// <param name="warehouseId"></param> - /// <param name="serNums"></param> - /// <returns></returns> WebResponseContent InPinKu(string inboundOrderId,int warehouseId, List<string> serNums); - - /// <summary> - /// - /// </summary> - /// <param name="palletCode"></param> - /// <param name="Initiallife"></param> - /// <param name="warehouseId"></param> - /// <param name="serNums"></param> - /// <returns></returns> WebResponseContent MaterielGroup(string palletCode, int Initiallife, int warehouseId, List<string> serNums); //WebResponseContent FeedbackInboundOrder(int id); - /// <summary> - /// - /// </summary> - /// <param name="saveModel"></param> - /// <returns></returns> WebResponseContent MaterielGroup(SaveModel saveModel); + /// <summary> + /// 鍏ュ簱瀹屾垚涓婃姤 寮冪敤 + /// </summary> + /// <returns></returns> + #region 寮冪敤 + WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo,Dt_InboundOrder inboundOrder, List<ERPInboundDetailModel> detailModels); + #endregion /// <summary> /// 鍏ュ簱瀹屾垚涓婃姤 /// </summary> /// <returns></returns> - WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo,Dt_InboundOrder inboundOrder, List<ERPInboundDetailModel> detailModels); - + WebResponseContent FeedbackInboundOrder(Dt_InboundOrder inboundOrder,List<Dt_StockInfoDetail> stockInfoDetails); /// <summary> /// /// </summary> diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" index 672b088..bcf23c8 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" @@ -513,7 +513,7 @@ return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�"); } - List<Dt_InboundOrderDetail> inboundOrderDetails = inboundOrder.Details.Where(x => x.MaterielCode == materielCode).ToList(); + List<Dt_InboundOrderDetail> inboundOrderDetails = inboundOrder.Details.Where(x => x.MaterielCode == materielCode && x.BatchNo==(models.FirstOrDefault()?.LotNo ?? "")).ToList(); if (inboundOrderDetails == null || inboundOrderDetails.Count <= 0) { @@ -766,9 +766,10 @@ return content; } /// <summary> - /// 鍏ュ簱瀹屾垚涓婃姤ERP + /// 鍏ュ簱瀹屾垚涓婃姤ERP 寮冪敤 /// </summary> /// <returns></returns> + #region 寮冪敤 public WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo, Dt_InboundOrder inboundOrder, List<ERPInboundDetailModel> detailModels) { WebResponseContent content = new WebResponseContent(); @@ -812,7 +813,79 @@ } return content; } - + #endregion + /// <summary> + /// 鍏ュ簱瀹屾垚涓婃姤ERP + /// </summary> + /// <returns></returns> + public WebResponseContent FeedbackInboundOrder(Dt_InboundOrder inboundOrder, List<Dt_StockInfoDetail> stockInfoDetails) + { + WebResponseContent content = new WebResponseContent(); + try + { + if (inboundOrder.Details.Count == 0) + { + return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅"); + } + if (stockInfoDetails.Count==0) + { + return WebResponseContent.Instance.Error($"鏈壘鍒板簱瀛樻槑缁嗕俊鎭�"); + } + Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == inboundOrder.WarehouseId); + if (warehouse == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒颁粨搴撲俊鎭�"); + } + List<ERPInboundDetailModel>? detailModels = null; + foreach (var item in stockInfoDetails) + { + Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.QueryFirst(x => x.Id == item.StockId); + if (detailModels!=null && detailModels.FirstOrDefault(x=>x.Rack==stockInfo.LocationCode)!=null) + { + var detailModel = detailModels.FirstOrDefault(x => x.Rack == stockInfo.LocationCode); + detailModel.Quantity = (Convert.ToDouble(detailModel.Quantity) + item.StockQuantity).ToString(); + } + else + { + ERPInboundDetailModel detailModel = new ERPInboundDetailModel() + { + ExpiryDate = item.EffectiveDate ?? "", + LocationCode = warehouse.WarehouseCode, + MaterialsCode = item.MaterielCode, + MfgDate = item.ProductionDate ?? "", + QtyCustoms = "0", + Quantity = item.StockQuantity.ToString(), + Rack = stockInfo.LocationCode, + ReceiptCode = inboundOrder.UpperOrderNo, + ReceiptSerNo = item.InboundOrderRowNo.ToString() + }; + detailModels.Add(detailModel); + } + } + ERPInboundModel model = new ERPInboundModel() + { + Code = CreateCodeByRule(nameof(RuleCodeEnum.RLCodeRule)), + CreatorCode = inboundOrder.Creater,//娴嬭瘯 + EntDate = inboundOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"), + StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), + SuppliersId = inboundOrder.SupplierId, + Type = "S", + UniqueTag = inboundOrder.Id.ToString(), + WarehouseCode = warehouse.WarehouseCode, + Way = 1, + Details = detailModels + }; + //鎺ㄩ�丒RP 娴嬭瘯娉ㄩ噴 + _invokeERPService.InvokeInboundOrderApi(model); + return WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + _unitOfWorkManage.RollbackTran(); + content.Error(ex.Message); + } + return content; + } static object lock_code = new object(); public string CreateCodeByRule(string ruleCode) { diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs" index 18fc975..bf6d65c 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderDetailService.cs" @@ -27,6 +27,7 @@ { List<Dt_PurchaseOrderDetail> purchaseOrderDetails = BaseDal.QueryData(x => x.WarehouseId == warehouseId && x.PurchaseDetailStatus != PurchaseOrderDetailStatusEnum.Received.ObjToInt()); List<string> MaterielCodes = purchaseOrderDetails.Select(x => x.MaterielCode).ToList(); + MaterielCodes = MaterielCodes.Distinct().ToList(); return WebResponseContent.Instance.OK(data: MaterielCodes); } catch (Exception ex) 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 c41e69f..1501360 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" @@ -214,7 +214,7 @@ #endregion Dt_InboundOrder? inboundOrder = _inboundRepository.InboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == stockInfo.Details.FirstOrDefault().OrderNo).Includes(x => x.Details).First(); - List<Dt_InboundOrderDetail> inboundOrderDetails = new List<Dt_InboundOrderDetail>(); + Dt_InboundOrderDetail? inboundOrderDetail = null; List<ERPInboundDetailModel> detailModels = new List<ERPInboundDetailModel>(); if (stockInfo.StockStatus == StockStatusEmun.鍏ュ簱纭.ObjToInt()) { @@ -222,9 +222,11 @@ { return WebResponseContent.Instance.Error($"瀵瑰簲鍏ュ簱鍗曚笉瀛樺湪"); } + //鏌ヨ鍘熷畬鎴愮殑鍏ュ簱鏄庣粏鏁伴噺 + int overCount = inboundOrder.Details.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count; + inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.RowNo == stockInfo.Details.FirstOrDefault()?.InboundOrderRowNo); foreach (var item in stockInfo.Details) { - Dt_InboundOrderDetail? inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.RowNo == item.InboundOrderRowNo); if (inboundOrderDetail == null) { continue; @@ -241,24 +243,22 @@ ReceiptCode = inboundOrder.UpperOrderNo, ReceiptSerNo = item.InboundOrderRowNo.ToString() }; - inboundOrderDetail.OverInQuantity += detailModel.Quantity.ObjToInt(); + inboundOrderDetail.OverInQuantity += item.StockQuantity; if (inboundOrderDetail.OverInQuantity == inboundOrderDetail.OrderQuantity) { inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt(); + overCount += 1; } - inboundOrderDetails.Add(inboundOrderDetail); + else if(inboundOrderDetail.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt()) + { + inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Inbounding.ObjToInt(); + } detailModels.Add(detailModel); } - - //鍏ュ簱鏄庣粏鏂板瀹屾垚鏁伴噺 - int newCount = inboundOrderDetails.Select(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count; - //鍏ュ簱鏄庣粏鍘熷畬鎴愭暟閲� - int oldCount = inboundOrder.Details.Select(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count; - if (inboundOrder.Details.Count == (newCount + oldCount)) + if (inboundOrder.Details.Count == overCount) { inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt(); } - } if ((stockInfo.StockStatus == StockStatusEmun.鍏ュ簱纭.ObjToInt() || stockInfo.StockStatus == StockStatusEmun.鎵嬪姩缁勭洏鍏ュ簱纭.ObjToInt()) && warehouse.WarehouseCode == WarehouseEnum.HA64.ToString()) @@ -294,13 +294,17 @@ _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, stockInfo.Details.Sum(x => x.StockQuantity), stockInfo.Details.Sum(x => x.StockQuantity), StockChangeTypeEnum.Inbound, taskNum); if (inboundOrder != null) { - _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetails); _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder); + if (inboundOrderDetail!=null) + { + _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetail); + } } _unitOfWorkManage.CommitTran(); - if (stockInfo.StockStatus == StockStatusEmun.鍏ュ簱纭.ObjToInt()) + if (stockInfo.StockStatus == StockStatusEmun.鍏ュ簱纭.ObjToInt() && inboundOrder.OrderStatus== InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt()) { - _inboundOrderService.FeedbackInboundOrder(stockInfo, inboundOrder, detailModels); + List<Dt_StockInfoDetail> stockInfoDetails = _stockRepository.StockInfoDetailRepository.QueryData(x => x.OrderNo == inboundOrder.InboundOrderNo); + _inboundOrderService.FeedbackInboundOrder(inboundOrder, stockInfoDetails); } return WebResponseContent.Instance.OK(); } @@ -368,7 +372,7 @@ Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.Id == item.OrderDetailId); if (outboundOrderDetail != null) { - outboundOrderDetail.OverOutQuantity = item.AssignQuantity; + outboundOrderDetail.OverOutQuantity += item.AssignQuantity; if (outboundOrderDetail.OverOutQuantity == outboundOrderDetail.OrderQuantity) { outboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt(); diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue" index 80fed18..6754ebf 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/\346\267\256\345\256\211PDA/pages/stash/raworderboxing.vue" @@ -68,8 +68,8 @@ placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" ref='midInput' @input="inputChangebarcode" /> </uni-forms-item> <uni-forms-item label="鍦板潃鏉$爜"> - <uni-easyinput type="text" v-model="address" :disabled="addressdisabled" placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput' - :focus="addressFocus" /> + <uni-easyinput type="text" v-model="address" :disabled="addressdisabled" + placeholder="璇锋壂鎻忓湴鍧�鏉$爜" ref='midInput' :focus="addressFocus" /> </uni-forms-item> <uni-forms-item> <button @click="inbound" type="primary" size="default" style="margin-top: 2%;">鍏ュ簱纭</button> @@ -87,8 +87,7 @@ <view style="font-size: 18px;">鍗曟嵁鍙凤細{{orderNo}}</view> <view style="font-size: 18px;">鐗╂枡缂栫爜锛歿{item.materielCode}}</view> <!-- <view style="font-size: 18px;">鐗╂枡鍚嶇О锛歿{item.matName}}</view> --> - <view style="font-size: 18px;">鏁伴噺锛歿{item.orderQuantity}}</view> - <view style="font-size: 18px;">鍗曚綅锛歿{item.unit}}</view> + <view style="font-size: 18px;">鏁伴噺锛歿{item.orderQuantity+item.unit}}</view> <view style="font-size: 18px;">缁勭洏鏁伴噺锛歿{item.receiptQuantity}}</view> </view> </view> -- Gitblit v1.9.3