From dcecb039035f4b2e82e31c39b74db9402444c536 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期二, 08 四月 2025 21:35:39 +0800 Subject: [PATCH] 代码更新,优化等内容 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs | 149 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 143 insertions(+), 6 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" index 9954061..0192475 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/ProOutOrderService.cs" @@ -133,7 +133,7 @@ WebResponseContent content = new WebResponseContent(); try { - + } catch (Exception ex) { @@ -150,10 +150,24 @@ WebResponseContent content = new WebResponseContent(); try { - + Dt_ProOutOrder proOutOrder = _outboundRepository.ProOutOrderRepository.Db.Queryable<Dt_ProOutOrder>().Where(x => x.ProOutOrderNo == outOrderDTO.OrderNo).Includes(x => x.Details).First(); + if (proOutOrder==null) + { + return content.Error($"鏈壘鍒板嚭搴撳崟{outOrderDTO.OrderNo}"); + } + if (proOutOrder.ProOrderStatus==OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt() || proOutOrder.ProOrderStatus == OutOrderStatusEnum.鍑哄簱涓�.ObjToInt()) + { + return content.Error("鍑哄簱鍗曟墽琛屼腑"); + } + _unitOfWorkManage.BeginTran(); + _outboundRepository.ProOutOrderRepository.DeleteData(proOutOrder); + _outboundRepository.ProOutOrderDetailRepository.DeleteData(proOutOrder.Details); + _unitOfWorkManage.CommitTran(); + content.OK("鎴愬姛"); } catch (Exception ex) { + _unitOfWorkManage.RollbackTran(); content.Error(ex.Message); } return content; @@ -162,11 +176,12 @@ /// 鎴愬搧鍑哄緟鍙戣揣鍖�(骞冲簱)+鍚屾ERP鍑哄簱(缁戝畾浜嗗嚭搴撳崟搴撳瓨) /// </summary> /// <returns></returns> - public WebResponseContent OutProductPK(string[] OutPKCodes,string ProOutNo) + public WebResponseContent OutProductPK(SaveModel saveModel, string ProOutNo) { WebResponseContent content = new WebResponseContent(); try { + List<string> OutPKCodes = saveModel.DelKeys.Select(x => x.ToString()).ToList(); if (OutPKCodes.IsNullOrEmpty()) { return content.Error("涓嶈兘涓虹┖"); @@ -190,7 +205,7 @@ return content.Error($"鍑哄簱鍗晎ProOutNo}宸叉棤缁戝畾搴撳瓨"); } List<Dt_ProStockInfo> proStockInfos = new List<Dt_ProStockInfo>(); - List<Dt_ProStockInfoDetail> proStockInfoDetails=new List<Dt_ProStockInfoDetail>(); + List<Dt_ProStockInfoDetail> proStockInfoDetails = new List<Dt_ProStockInfoDetail>(); List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(x => x.WarehouseType == WarehouseTypEnum.鎴愬搧.ToString()); foreach (var item in OutPKCodes) { @@ -291,6 +306,11 @@ }; _stockRepository.ProStockInfoRepository.DeleteAndMoveIntoHty(proStockInfos, OperateTypeEnum.鑷姩瀹屾垚); _stockRepository.ProStockInfoDetailRepository.DeleteAndMoveIntoHty(proStockInfoDetails, OperateTypeEnum.鑷姩瀹屾垚); + WebResponseContent contentSaveInfos = SaveOutProPKInfos(proStockInfos); + if (!contentSaveInfos.Status) + { + throw new Exception(contentSaveInfos.Message); + }; string response = _invokeERPService.InvokeProOutApi(proOutOrderModel); ErpRequestContent erpRequestContent = response.DeserializeObject<ErpRequestContent>(); if (erpRequestContent.res != 1) @@ -319,6 +339,65 @@ catch (Exception ex) { _unitOfWorkManage.RollbackTran(); + content.Error(ex.Message); + } + return content; + } + /// <summary> + /// 鑾峰彇鍑哄簱鎵�鏈夌殑澶栧唴鍖呮槑缁� + /// </summary> + /// <param name="proStockInfos"></param> + /// <returns></returns> + public WebResponseContent SaveOutProPKInfos(List<Dt_ProStockInfo> proStockInfos) + { + WebResponseContent content = new WebResponseContent(); + try + { + List<Dt_OutProPKStockInfo> outProPKStockInfos = new List<Dt_OutProPKStockInfo>(); + foreach (var fromItem in proStockInfos) + { + foreach (var lordItem in fromItem.proStockInfoDetails) + { + Dt_OutProPKStockInfo outProPKStockInfo = new Dt_OutProPKStockInfo() + { + PCode = lordItem.ProductCode, + PVer=lordItem.ProductVersion, + PLot=lordItem.ProductVersion, + DateCode=lordItem.DateCode, + StockId=fromItem.Id, + OriginalQuantity=lordItem.StockPcsQty, + AssignQuantity=lordItem.StockPcsQty, + PalletCode=fromItem.PalletCode, + Unit="PCS" + }; + outProPKStockInfos.Add(outProPKStockInfo); + } + } + Db.InsertNav(outProPKStockInfos).Include(x=>x).ExecuteCommand(); + content.OK(); + } + catch (Exception ex) + { + content.Error(ex.Message); + } + return content; + } + //鏍规嵁鍐呭寘鍑哄簱 + public WebResponseContent BagProductPK(SaveModel saveModel) + { + WebResponseContent content = new WebResponseContent(); + try + { + var outOrder = saveModel.MainData["proOutNo"].ToString(); + var outBags = saveModel.DelKeys.Select(x => x.ToString()).ToList(); + if (outBags.Count<=0) + { + return content.Error("鍐呭寘淇℃伅鑾峰彇澶辫触"); + } + + } + catch (Exception ex) + { content.Error(ex.Message); } return content; @@ -449,8 +528,8 @@ { Way = 1, StockOutCode = _outboundOrderService.CreateCodeByRule(nameof(RuleCodeEnum.ProOutCOdeRule)), - ConfirmedUserNo = "admin", - AssignUserNo = "admin", + ConfirmedUserNo = App.User.UserName, + AssignUserNo = App.User.UserName, WarehouseCode = warehouse.WarehouseCode, ShipDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), DeliverplanCode = proOutOrder.ProOutOrderNo, @@ -482,5 +561,63 @@ } return content; } + /// <summary> + /// PDA鑾峰彇鍑哄簱鍗曟嵁 + /// </summary> + /// <param name="saveModel"></param> + /// <returns></returns> + public WebResponseContent GetProOutOrders(SaveModel saveModel) + { + WebResponseContent content = new WebResponseContent(); + try + { + int pageNo = saveModel.MainData["pageNo"].ObjToInt(); + int warehouseId = saveModel.MainData["warehouseId"].ObjToInt(); + string orderNo = saveModel.MainData["orderNo"].ToString(); + List<Dt_ProOutOrder> proOutOrders = new List<Dt_ProOutOrder>(); + if (string.IsNullOrEmpty(orderNo)) + { + proOutOrders = Db.Queryable<Dt_ProOutOrder>().Where(x => x.ProOrderStatus == OutOrderStatusEnum.鍑哄簱涓�.ObjToInt() && x.WarehouseId == warehouseId).Includes(x=>x.Details).OrderByDescending(x => x.Id).ToPageList(pageNo, 5); + } + else + { + proOutOrders = Db.Queryable<Dt_ProOutOrder>().Where(x => (x.ProOutOrderNo.Contains(orderNo) || x.ProOutOrderNo.Contains(orderNo)) && x.ProOrderStatus == OutOrderStatusEnum.鍑哄簱涓�.ObjToInt() && x.WarehouseId == warehouseId).OrderByDescending(x => x.Id).Includes(x => x.Details).ToPageList(pageNo, 5); + } + + content.OK(data: proOutOrders); + } + catch (Exception) + { + + throw; + } + return content; + } + /// <summary> + /// 鑾峰彇鎵爜鑾峰彇璁㈠崟鏄庣粏淇℃伅 + /// </summary> + public WebResponseContent GetOrderDetails(int keyId) + { + WebResponseContent content=new WebResponseContent(); + try + { + //鑾峰彇鍑哄簱鍗曞彿 + Dt_ProOutOrder proOutOrder = BaseDal.QueryFirst(x => x.Id == keyId); + if (proOutOrder == null) + { + return content.Error($"鏈壘鍒板嚭搴撳崟{proOutOrder.ProOutOrderNo}"); + } + //鑾峰彇褰撳墠宸茬粦瀹氱殑澶栧寘鐮�(鍑哄簱鐘舵��) + List<string> outBags = _stockRepository.ProStockInfoRepository.QueryData(x => x.StockStatus == StockStatusEmun.骞冲簱寰呭彂璐�.ObjToInt() && x.ShipmentOrder== proOutOrder.ProOutOrderNo).Select(x=>x.PalletCode).ToList(); + //鑾峰彇鏄庣粏 + List<Dt_ProOutOrderDetail> proOutOrderDetails = _outboundRepository.ProOutOrderDetailRepository.QueryData(x=>x.ProOrderId==keyId).OrderBy(x=>x.ProOrderDetailStatus).ThenBy(x=>x.Id).ToList(); + content.OK("鎴愬姛", new { outBags, proOutOrderDetails }); + } + catch (Exception ex) + { + content.Error(ex.Message); + } + return content; + } } } -- Gitblit v1.9.3