From afbd33474dfd3f9f19b0829cf9d544a5afae1249 Mon Sep 17 00:00:00 2001 From: hudong <Administrator@PC-20250329JZUF> Date: 星期三, 04 六月 2025 17:02:48 +0800 Subject: [PATCH] 1.增加出库任务大屏接口 实体类 测试流程 2.空托出入库 半托 先进先出逻辑优化 --- api/WmsSpaHelper.cs | 132 ++++++++++++++++++++++++++++++++++++++----- 1 files changed, 116 insertions(+), 16 deletions(-) diff --git a/api/WmsSpaHelper.cs b/api/WmsSpaHelper.cs index 1db82f5..a677c7d 100644 --- a/api/WmsSpaHelper.cs +++ b/api/WmsSpaHelper.cs @@ -45,6 +45,34 @@ } + public static bool MaterPanduan(string ItemCode,double count) { + bool panduan = true; + var db = new SqlHelper<object>().GetInstance(); + + var po = db.Queryable<TN_Material_KC>().Where(a => a.S_ITEM_CODE == ItemCode).First(); + + var po1 = db.Queryable<CntrItemRel>().Where(a => a.S_ITEM_CODE == ItemCode).First(); + if (po != null) + { + if (po1!=null) + { + double sl= po1.F_QTY + count; + if (sl>po.N_COUNT) + { + panduan = false; + } + } + if (count > po.N_COUNT) + { + panduan = false; + } + } + else + { + panduan = false; + } + return panduan; + } /// <summary> /// 鏁版嵁 /// </summary> @@ -423,6 +451,17 @@ } foreach (var item in items.ITEM) { + bool v = MaterPanduan(item.WLBM, item.SL); + if (!v) + { + result.resultMsg = "澶辫触"; + result.WLPZBH = items.HEAD.WLPZH; + result.resultCode = 1; + result.WLPZND = items.HEAD.WLPZND; + result.resultMsg = $"鐗╂枡{item.WLBM}鏁伴噺瓒呰繃 搴撳瓨鎬绘暟"; + simpleResults.Add(result); + continue; + } ///鍒ゆ柇鏄惁閮芥湁鍐查攢鍑瘉缂栧彿 if (string.IsNullOrEmpty(item.CXPZH)) { @@ -1185,9 +1224,20 @@ po.Details = new List<TN_Inbound_Detail>(); if (itemwlpz.ITEM.Count > 0) { - itemwlpz.ITEM.ForEach(a => + foreach (var a in itemwlpz.ITEM) + { - + bool v = MaterPanduan(a.WLBM, a.SL); + if (!v) + { + result.resultMsg = "澶辫触"; + result.WLPZBH = itemwlpz.HEAD.WLPZH; + result.resultCode = 1; + result.WLPZND = itemwlpz.HEAD.ND; + result.resultMsg = $"鐗╂枡{a.WLBM}鏁伴噺瓒呰繃 搴撳瓨鎬绘暟"; + simpleResults.Add(result); + continue; + } po.Details.Add(new TN_Inbound_Detail { S_IO_NO = itemwlpz.HEAD.WLPZH, @@ -1209,7 +1259,7 @@ }); //} - }); + } db.Insertable<TN_Inbound_Order>(po).ExecuteCommand(); db.Insertable<TN_Inbound_Detail>(po.Details).ExecuteCommand(); db.CommitTran(); @@ -1223,8 +1273,19 @@ var Details = new List<TN_Inbound_Detail>(); if (itemwlpz.ITEM.Count > 0) { - itemwlpz.ITEM.ForEach(a => + foreach (var a in itemwlpz.ITEM) { + bool v = MaterPanduan(a.WLBM, a.SL); + if (!v) + { + result.resultMsg = "澶辫触"; + result.WLPZBH = itemwlpz.HEAD.WLPZH; + result.resultCode = 1; + result.WLPZND = itemwlpz.HEAD.ND; + result.resultMsg = $"鐗╂枡{a.WLBM}鏁伴噺瓒呰繃 搴撳瓨鎬绘暟"; + simpleResults.Add(result); + continue; + } if (po.Details.Where(s => s.S_ITEM_CODE == a.WLBM).Count() > 0) { var poq = po.Details.Where(s => s.S_ITEM_CODE == a.WLBM).FirstOrDefault(); @@ -1253,7 +1314,7 @@ }); } - }); + } db.Insertable<TN_Inbound_Detail>(Details).ExecuteCommand(); db.CommitTran(); @@ -1332,8 +1393,20 @@ po.Details = new List<TN_Inbound_Detail>(); if (itemwlpz.ITEM.Count > 0) { - itemwlpz.ITEM.ForEach(a => + foreach (var a in itemwlpz.ITEM) + { + bool v = MaterPanduan(a.WLBH, a.SL); + if (!v) + { + result.resultMsg = "澶辫触"; + result.WLPZBH = itemwlpz.HEAD.WLPZBH; + result.resultCode = 1; + result.WLPZND = itemwlpz.HEAD.WLPZNF; + result.resultMsg = $"鐗╂枡{a.WLBH}鏁伴噺瓒呰繃 搴撳瓨鎬绘暟"; + simples.Add(result); + continue; + } #region 涓嶉渶瑕� //if (a.ITEM1.Select(s => s.XLH).Count() > 0)//鍒ゆ柇搴忓垪鍙锋槸鍚︿负澶氫釜 //{ @@ -1385,7 +1458,7 @@ }); //} - }); + } db.Insertable<TN_Inbound_Order>(po).ExecuteCommand(); db.Insertable<TN_Inbound_Detail>(po.Details).ExecuteCommand(); db.CommitTran(); @@ -1397,8 +1470,20 @@ var Details = new List<TN_Inbound_Detail>(); if (itemwlpz.ITEM.Count > 0) { - itemwlpz.ITEM.ForEach(a => + foreach (var a in itemwlpz.ITEM) + { + bool v = MaterPanduan(a.WLBH, a.SL); + if (!v) + { + result.resultMsg = "澶辫触"; + result.WLPZBH = itemwlpz.HEAD.WLPZBH; + result.resultCode = 1; + result.WLPZND = itemwlpz.HEAD.WLPZNF; + result.resultMsg = $"鐗╂枡{a.WLBH}鏁伴噺瓒呰繃 搴撳瓨鎬绘暟"; + simples.Add(result); + continue; + } if (po.Details.Where(s => s.S_ITEM_CODE == a.WLBH).Count() > 0) { var poq = po.Details.Where(s => s.S_ITEM_CODE == a.WLBH).FirstOrDefault(); @@ -1432,7 +1517,7 @@ }); } - }); + } db.Insertable<TN_Inbound_Detail>(Details).ExecuteCommand(); db.CommitTran(); @@ -1854,13 +1939,17 @@ return result; } //鍒ゆ柇鎵樼洏鏄惁宸茬粡鐢熸垚浠诲姟锛屽鏋滄病鏈夊垯鐢熸垚 - var wmsTaskcs = WMSHelper.GetWmsTaskByCntr(model.cntr_code); - if (wmsTaskcs != null) + if (!string.IsNullOrEmpty(model.cntr_code)) { - result.resultCode = 3; - result.resultMsg = $"璧风偣{model.start} 鎵樼洏{model.cntr_code}宸茬粡鍒涘缓浠诲姟锛岃鍕块噸澶嶇敵璇�; - return result; + var wmsTaskcs = WMSHelper.GetWmsTaskByCntr(model.cntr_code); + if (wmsTaskcs != null) + { + result.resultCode = 3; + result.resultMsg = $"璧风偣{model.start} 鎵樼洏{model.cntr_code}宸茬粡鍒涘缓浠诲姟锛岃鍕块噸澶嶇敵璇�; + return result; + } } + //鍑哄簱 if (model.Type==2) { @@ -1881,6 +1970,16 @@ { start= db.Queryable<Location>().Where(it => it.S_CODE == loc.S_LOC_CODE).First(); } + } + else if (!string.IsNullOrEmpty(model.item_code)) + { + start = db.Queryable<LocCntrRel>() + .LeftJoin<CntrItemRel>((lcr, cir) => lcr.S_CNTR_CODE == cir.S_CNTR_CODE&&cir.S_CNTR_TYPE=="鍗婃墭") + .Where((lcr, cir) => cir.S_CNTR_CODE != null) + .LeftJoin<Location>((lcr, cir, loc) => lcr.S_LOC_CODE == loc.S_CODE && loc.S_AREA_CODE == "HJQ") + .OrderBy((lcr, cir) => cir.T_CREATE) + .Select((lcr, cir, loc) => loc).ToList() // 杩斿洖 Location 瀵硅薄 + .FirstOrDefault(); // 鎴栬� Take(1).ToList()[0] } else { @@ -1908,7 +2007,7 @@ start = db.Queryable<LocCntrRel>() .LeftJoin<CntrItemRel>((lcr, cir) => lcr.S_CNTR_CODE == cir.S_CNTR_CODE) .Where((lcr, cir) => cir.S_CNTR_CODE == null) // 鎵惧嚭鏈鍗犵敤鐨勫鍣�- .LeftJoin<Location>((lcr, cir, loc) => lcr.S_LOC_CODE == loc.S_CODE&&loc.S_AREA_CODE== "HJQ") + .LeftJoin<Location>((lcr, cir, loc) => lcr.S_LOC_CODE == loc.S_CODE && loc.S_AREA_CODE == "HJQ") .Select((lcr, cir, loc) => loc).ToList() // 杩斿洖 Location 瀵硅薄 .FirstOrDefault(); // 鎴栬� Take(1).ToList()[0] } @@ -1952,6 +2051,7 @@ Location end = new Location(); if (!string.IsNullOrEmpty(model.cntr_code)) { + #region MyRegion //var list = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToArray(); //var S_LOC_CODElist = db.Queryable<LocCntrRel>().Where(s=>!list.Contains(s.S_CNTR_CODE)).Select(s=>s.S_LOC_CODE).ToArray(); @@ -3088,7 +3188,7 @@ [ApiExplorerSettings(IgnoreApi = true)] public static SimpleResult AddInboundOrder(List<Mater> MaterList, string cntr_code,string S_CNTR_TYPE) { - var result = new SimpleResult(); + var result = new SimpleResult(); // var db = new SqlHelper<object>().GetInstance(); using (var db = new SqlHelper<object>().GetInstance()) { -- Gitblit v1.9.1