From 73a5779f0d27535a46ae5bc00a5e006be6c24d25 Mon Sep 17 00:00:00 2001 From: hudong <Administrator@PC-20250329JZUF> Date: 星期四, 03 七月 2025 08:37:36 +0800 Subject: [PATCH] 1.河南平高变更单需求修改 审核自动触发出库任务2.增加优先级字段3.分拣接口提出来单独使用4.增加入库单明细临时表 5增加过账日期表和审核回调逻辑 --- api/WmsSpaHelper.cs | 781 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 618 insertions(+), 163 deletions(-) diff --git a/api/WmsSpaHelper.cs b/api/WmsSpaHelper.cs index 4a2f148..98edcb4 100644 --- a/api/WmsSpaHelper.cs +++ b/api/WmsSpaHelper.cs @@ -41,6 +41,9 @@ using System.Data; using System.Runtime.ConstrainedExecution; using HH.WCS.Mobox3.pinggao.core; +using static HH.WCS.Mobox3.pinggao.api.OtherModel.Putaway_Order_In; +using System.Web.Http.Results; +using System.Runtime.Caching; namespace HH.WCS.Mobox3.pinggao.api { @@ -1007,7 +1010,7 @@ { var result = new SimpleResult(); //鍒ゆ柇鍐查攢鍑瘉缂栧彿 鏄惁涓虹┖ 濡傛灉涓虹┖ 鍒欎负鍐查攢(瀹℃牳鍓嶆墠鑳藉啿閿�紝闈炲緟鎵ц鐘舵�鎻愮ず鎵ц涓笉鍙啿閿� 涓嶄负绌�鍒欎负澶栭噰鍏ュ簱 - if ((itemwlpz.HEAD.YDLX != "351" || itemwlpz.HEAD.YDLX != "Z89") && itemwlpz.ITEM[0].FHGC == "3040") + if (itemwlpz.ITEM[0].JDBS=="H" && itemwlpz.ITEM[0].GC == "3040") { var po = db.Queryable<TN_Ll_Order>().Includes(a => a.Details).Where(s => s.S_NO == itemwlpz.HEAD.WLPZH).First(); //鍒涘缓鍑哄簱鍗曚富瀛愯〃 @@ -1243,7 +1246,7 @@ } #endregion } - else if ((itemwlpz.HEAD.YDLX == "351" || itemwlpz.HEAD.YDLX == "Z89") && itemwlpz.ITEM[0].GC == "3040") + else if (itemwlpz.ITEM[0].JDBS == "S" && itemwlpz.ITEM[0].GC == "3040") { //鍒涘缓鍏ュ簱鍗曚富瀛愯〃 var po = WMSHelper.GetInboundOrder(itemwlpz.HEAD.WLPZH); @@ -1731,6 +1734,8 @@ /// <returns></returns> internal static SimpleResult InboundOrderSorting(MPSorting model) { + + var result = new SimpleResult(); foreach (var a in model.MaterList) { @@ -1745,6 +1750,27 @@ // var db = new SqlHelper<object>().GetInstance(); using (var db = new SqlHelper<object>().GetInstance()) { + Location endloc = new Location(); + var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE.Trim() == model.cntr_code).First(); + if (hwbd!=null) + { + endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE.Trim()).First(); + if (endloc?.N_LOCK_STATE != 0) + { + result.resultCode = 3; + result.resultMsg = $"缁堢偣搴撲綅宸查攣/涓嶅瓨鍦�; + return result; + } + } + else + { + result.resultCode = 3; + result.resultMsg = $"{model.cntr_code}鎵樼洏鎵句笉鍒拌揣浣�; + return result; + } + + + var locinfo = db.Queryable<Location>().Where(a => a.S_CODE == model.start).First(); if (locinfo?.N_LOCK_STATE != 0) @@ -1817,7 +1843,9 @@ S_START_LOC = model.start, S_START_AREA = locinfo.S_AREA_CODE, S_START_WH = locinfo.S_WH_CODE, - S_END_LOC = model.start, + S_END_LOC = endloc.S_CODE, + S_END_AREA = endloc.S_AREA_CODE, + S_END_WH = endloc.S_WH_CODE, S_BS_NO = model.MaterList[0].arrival_no, N_TYPE = 1, S_TYPE = WMSTask.GetTypeStr(1), @@ -1895,21 +1923,31 @@ } else if (!string.IsNullOrEmpty(model.item_code)) { - var khsta= db.Queryable<CGRels>().Where(cir => cir.S_CNTR_TYPE == "鍗婃墭" && cir.S_ITEM_CODE == model.item_code).OrderBy(cir => cir.T_CREATE).ToList().FirstOrDefault(); + LogHelper.Info($"杩涙潵浜�); + var khsta= db.Queryable<CGRels>().Where(cir => cir.S_CNTR_TYPE == "鍗婃墭" && cir.S_ITEM_CODE == model.item_code).OrderBy(cir => cir.T_CREATE).ToList().FirstOrDefault(); - - if (khsta != null) { - LogHelper.Info($"starts{khsta}"); - var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == khsta.S_CNTR_CODE).ToList().FirstOrDefault(); - LogHelper.Info($"starts1{starts12}"); - start = db.Queryable<Location>().Where(loc => loc.S_AREA_CODE == "HJQ" && loc.S_CODE == starts12.S_LOC_CODE).ToList().FirstOrDefault(); - LogHelper.Info($"starts2{start}"); + LogHelper.Info($"starts{khsta?.S_CNTR_CODE}"); + var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == khsta.S_CNTR_CODE).First(); + if (starts12==null) + { + LogHelper.Info($"{khsta.S_CNTR_CODE}瀹瑰櫒璐т綅涓嶅瓨鍦�); + result.resultMsg = $"{khsta.S_CNTR_CODE}瀹瑰櫒璐т綅涓嶅瓨鍦�; + result.resultCode = 1; + return result; + } + else + { - model.cntr_code = starts12?.S_CNTR_CODE; + LogHelper.Info($"starts1{starts12.S_LOC_CODE}"); + start = db.Queryable<Location>().Where(loc => loc.S_AREA_CODE == "HJQ" && loc.S_CODE == starts12.S_LOC_CODE).ToList().FirstOrDefault(); + LogHelper.Info($"starts2{start?.S_CODE}"); + + model.cntr_code = starts12?.S_CNTR_CODE; + } } else { @@ -1928,10 +1966,14 @@ 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(); start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).ToList().FirstOrDefault(); - var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == start.S_CODE).ToList().FirstOrDefault(); + if (start!=null) + { + var starts12 = db.Queryable<LocCntrRel>().Where(lcr => lcr.S_CNTR_CODE == start.S_CODE).ToList().FirstOrDefault(); - model.cntr_code = starts12?.S_CNTR_CODE; + model.cntr_code = starts12?.S_CNTR_CODE; + } + } } @@ -1945,8 +1987,8 @@ } if (start == null) { - LogHelper.Info($"{model.cntr_code}鏈壘鍒板彲鐢ㄨ揣浣�); - result.resultMsg = $"{model.cntr_code}鏈壘鍒板彲鐢ㄨ揣浣�; + LogHelper.Info($"{model.item_code}鏈壘鍒板彲鐢ㄨ揣浣�); + result.resultMsg = $"{model.item_code}鏈壘鍒板彲鐢ㄨ揣浣�; result.resultCode = 1; return result; } @@ -1963,7 +2005,7 @@ S_END_LOC = endinfo.S_CODE, S_END_AREA = endinfo.S_AREA_CODE, S_END_WH = endinfo.S_WH_CODE, - + N_PRIORITY=1, N_TYPE = 2, // S_TYPE = WMSTask.GetTypeStr(1), S_TYPE = "鍑哄簱绌烘墭鐩�, @@ -1984,26 +2026,42 @@ 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(); - //start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).First(); + var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE.Trim() == model.cntr_code).First(); + if (hwbd!=null) + { + end = db.Queryable<Location>().Where(s => s.S_CODE == hwbd.S_LOC_CODE.Trim()).First(); + } + else + { - //// 鑾峰彇鎵�湁琚崰鐢ㄧ殑瀹瑰櫒缂栫爜 - //var usedContainerCodes = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToList(); + #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(); + //start = db.Queryable<Location>().Where(it => S_LOC_CODElist.Contains(it.S_CODE)).First(); - // 鑾峰彇鏈鍗犵敤鐨勫鍣ㄥ搴旂殑璐т綅缂栫爜 - var availableLocationCodes = db.Queryable<LocCntrRel>() - .Select(s => s.S_LOC_CODE) - .ToList(); + //// 鑾峰彇鎵�湁琚崰鐢ㄧ殑瀹瑰櫒缂栫爜 + //var usedContainerCodes = db.Queryable<CntrItemRel>().Select(s => s.S_CNTR_CODE).ToList(); + #endregion + // 鑾峰彇鏈鍗犵敤鐨勫鍣ㄥ搴旂殑璐т綅缂栫爜 + var availableLocationCodes = db.Queryable<LocCntrRel>() + .Select(s => s.S_LOC_CODE) + .ToList(); // 鑾峰彇绗竴涓彲鐢ㄨ揣浣嶏紙濡傛灉娌℃湁鍒欒繑鍥瀗ull锛� end = db.Queryable<Location>() .Where(it => !availableLocationCodes.Contains(it.S_CODE) && it.S_AREA_CODE == "HJQ") .ToList().FirstOrDefault(); + if (end!=null) + { + TN_Container_Code tN_Container_Code = new TN_Container_Code(); + tN_Container_Code.S_CNTR_CODE= model.cntr_code; + tN_Container_Code.S_LOC_CODE = end.S_CODE; + var sss = db.Insertable<TN_Container_Code>(tN_Container_Code).ExecuteCommand(); + } - #endregion + } + } else { @@ -2053,12 +2111,35 @@ catch (Exception e) { result.resultMsg = e.Message; + result.resultCode = 1; db.RollbackTran(); return result; throw; } } + } + private static readonly ObjectCache Cache = MemoryCache.Default; + private const string CachePrefix = "ClickProtection_"; + private const int CacheDurationInSeconds = 2; + + public static bool IsClickAllowed(string parameter) + { + string cacheKey = CachePrefix + parameter; + + // 妫�煡缂撳瓨涓槸鍚﹀凡瀛樺湪璇ュ弬鏁�+ if (Cache.Contains(cacheKey)) + { + // 缂撳瓨涓瓨鍦紝璇存槑5绉掑唴宸茬偣鍑昏繃 + return false; + } + else + { + // 缂撳瓨涓笉瀛樺湪锛屾坊鍔犲埌缂撳瓨骞惰缃�绉掑悗杩囨湡 + CacheItemPolicy policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(CacheDurationInSeconds) }; + Cache.Set(cacheKey, parameter, policy); + return true; + } } /// <summary> /// 鍒嗘嫞 @@ -2069,16 +2150,36 @@ { var result = new SimpleResult(); - + if (!IsClickAllowed(model.cntr_code)) + { + // 鎻愮ず鐢ㄦ埛5绉掑唴宸茬偣鍑昏繃 + result.resultMsg = "鎮ㄥ凡鐐瑰嚮杩囷紝璇�绉掑悗鍐嶈瘯銆�; + result.resultCode = 1; + return result; + } + else + { + + } // var db = new SqlHelper<object>().GetInstance(); using (var db = new SqlHelper<object>().GetInstance()) { try { - - - result.resultMsg = "鎴愬姛"; + var start = ""; + var startloc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == model.cntr_code).First(); + if (startloc!=null) + { + start = startloc.S_LOC_CODE; + } + else + { + result.resultMsg = $"{model.cntr_code}瀹瑰櫒鏈壘鍒拌揣浣嶄俊鎭�; + result.resultCode = 1; + return result; + } + result.resultMsg = "鎴愬姛"; result.resultCode = 0; if (string.IsNullOrEmpty(model.arrival_no)) { @@ -2098,30 +2199,39 @@ } LogHelper.Info($"S_OUT_TYPE{po.S_OUT_TYPE}"); + var gzra = db.Queryable<TN_GZ_SZ>().Where(a => a.N_ENABLE == 1).First(); + var GZRQ = DateTime.Now.ToString("yyyyMMdd"); + if (gzra != null) + { + GZRQ = gzra.S_GZRQ.ToString("yyyyMMdd"); + } //鏍规嵁涓嶅悓鍑哄簱绫诲瀷 鍥炶皟sap if (po.S_OUT_TYPE == "鍐查攢鍑哄簱") { - result = await CXAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); + result = await CXAddOutboundOrder(GZRQ,db, model.MaterList, model.arrival_no, model.cntr_code, start); } else if (po.S_OUT_TYPE == "鍑哄簱")//鏅�鍑哄簱 { LogHelper.Info($"S_OUT_TYPE{po.S_OUT_TYPE}"); - result = await AddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); + result = await AddOutboundOrder(GZRQ, db, model.MaterList, model.arrival_no, model.cntr_code, start); } else if (po.S_OUT_TYPE == "璁″垝澶栧彂鏂欏嚭搴�) { - result = await jhwtlAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); + result = await jhwtlAddOutboundOrder(GZRQ,db, model.MaterList, model.arrival_no, model.cntr_code, start); } else if (po.S_OUT_TYPE == "鎴愭湰涓績鍑哄簱") { - result = await CBAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start); + result = await CBAddOutboundOrder(GZRQ,db, model.MaterList, model.arrival_no, model.cntr_code, start); } - - //閫氱敤鎺ュ彛 瀵瑰鍣ㄨ揣鍝佺殑鍒犲噺 鍜岀敓鎴愬洖搴撳崟 閮借鐢ㄧ殑鎺ュ彛 - result = await TYAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.IsHK, model.start, po.S_OUT_TYPE, model.cntr_type); if (result.resultCode == 1) { + return result; + } + //閫氱敤鎺ュ彛 瀵瑰鍣ㄨ揣鍝佺殑鍒犲噺 鍜岀敓鎴愬洖搴撳崟 閮借鐢ㄧ殑鎺ュ彛 + result = await TYAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.IsHK, start, po.S_OUT_TYPE, model.cntr_type); + if (result.resultCode == 1) + { return result; } #region 鍗囬檷閲�@@ -2258,9 +2368,10 @@ //鍥炲弬鐗╂枡淇℃伅 List<OutboundRecord> records = new List<OutboundRecord>(); - var pz = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == arrival_no).First(); + var pzlist = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == arrival_no).ToList(); foreach (var item in MaterList) { + var pz=pzlist.Where(s=>s.S_WLBM== item.item_code).FirstOrDefault(); // 鎻掑叆鍒版墭鐩樻槑缁嗚〃 var cntr = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr_code).ToList(); if (cntr.Count() > 0) @@ -2281,7 +2392,7 @@ else { db.Updateable(cir).UpdateColumns(it => new { it.F_QTY, it.S_CNTR_TYPE, it.F_ALLOC_QTY, it.T_MODIFY }).ExecuteCommand(); - //娣诲姞鍥炲簱浣滀笟 + } } else @@ -2329,6 +2440,28 @@ result.resultMsg += $"浠诲姟{locs.S_CODE}鏉ユ簮鍙穥locs.S_BS_NO}鎵句笉鍒伴厤鐩樹俊鎭�; return result; } + Location endloc = new Location(); + + LogHelper.Info($"鑾峰彇鎵樼洏淇℃伅{cntr_code}瀹瑰櫒"); + var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE.Trim() == cntr_code).First(); + if (hwbd != null) + { + endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE.Trim()).First(); + if (endloc?.N_LOCK_STATE != 0) + { + result.resultCode = 3; + result.resultMsg = $"缁堢偣搴撲綅宸查攣/涓嶅瓨鍦�; + return result; + } + + } + else + { + result.resultCode = 3; + result.resultMsg = $"{cntr_code}鎵樼洏鎵句笉鍒拌揣浣�; + return result; + } + //var location = db.Queryable<Location>().Where(a => a.S_CODE == locs.S_LOC_CODE).First(); var wmsTask = new WMSTask { @@ -2337,9 +2470,13 @@ S_START_LOC = start, S_START_AREA = startinfo.S_AREA_CODE, S_START_WH = startinfo.S_WH_CODE, - S_END_LOC = locs?.S_START_LOC, - S_END_AREA = locs?.S_START_AREA, - S_END_WH = locs?.S_START_WH, + + //S_END_LOC = start, + //S_END_AREA = startinfo.S_AREA_CODE, + //S_END_WH = startinfo.S_AREA_CODE, + S_END_LOC = endloc?.S_CODE, + S_END_AREA = endloc?.S_AREA_CODE, + S_END_WH = endloc?.S_WH_CODE, N_TYPE = 1, // S_TYPE = WMSTask.GetTypeStr(1), @@ -2349,7 +2486,7 @@ }; if (WMSHelper.CreateWmsTask(wmsTask)) { - LocationHelper.LockLoc(start, 1); + LocationHelper.LockLoc(start, 2); result.resultMsg = $"鍒涘缓浣滀笟鎴愬姛锛屼綔涓氬彿{wmsTask.S_CODE}"; } } @@ -2379,7 +2516,97 @@ } //} + public static async Task<SimpleResult> HkGets(HuiK model) { + var db = new SqlHelper<object>().GetInstance(); + + SimpleResult result = new SimpleResult(); + var locs = db.Queryable<WCSTask>().Where(a => a.S_TYPE.Contains("鍑哄簱") && a.S_CNTR_CODE == model.cntr_code && a.N_B_STATE == 3).OrderByDescending(s => s.T_END_TIME).First(); + if (locs != null) + { + var cntr = db.Queryable<TN_Distribution_CNTR>().Where(a => a.S_DC_NO == locs.S_BS_NO).First(); + if (cntr != null) + { + cntr.S_SORT_TYPE = "宸插垎鎷�; + db.Updateable(cntr).UpdateColumns(it => new { it.S_SORT_TYPE }).ExecuteCommand(); + } + else + { + result.resultCode = 1; + result.resultMsg += $"浠诲姟{locs.S_CODE}鏉ユ簮鍙穥locs.S_BS_NO}鎵句笉鍒伴厤鐩樹俊鎭�; + return result; + } + Location endloc = new Location(); + + LogHelper.Info($"鑾峰彇鎵樼洏淇℃伅{model.cntr_code}瀹瑰櫒"); + var hwbd = db.Queryable<TN_Container_Code>().Where(a => a.S_CNTR_CODE.Trim() == model.cntr_code).First(); + if (hwbd != null) + { + endloc = db.Queryable<Location>().Where(a => a.S_CODE == hwbd.S_LOC_CODE.Trim()).First(); + if (endloc?.N_LOCK_STATE != 0) + { + result.resultCode = 3; + result.resultMsg = $"缁堢偣搴撲綅宸查攣/涓嶅瓨鍦�; + return result; + } + + } + else + { + result.resultCode = 3; + result.resultMsg = $"{model.cntr_code}鎵樼洏鎵句笉鍒拌揣浣�; + return result; + } + var start = ""; + var startloc1 = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == model.cntr_code).First(); + if (startloc1 != null) + { + start = startloc1.S_LOC_CODE; + } + else + { + result.resultMsg = $"{model.cntr_code}瀹瑰櫒鏈壘鍒拌揣浣嶄俊鎭�; + result.resultCode = 1; + return result; + } + var startloc = db.Queryable<Location>().Where(a => a.S_CODE ==start).First(); + //var location = db.Queryable<Location>().Where(a => a.S_CODE == locs.S_LOC_CODE).First(); + var wmsTask = new WMSTask + { + S_CNTR_CODE = model.cntr_code, + S_CODE = WMSHelper.GenerateTaskNo(), + S_START_LOC = startloc.S_CODE, + S_START_AREA = startloc.S_AREA_CODE, + S_START_WH = startloc.S_WH_CODE, + + //S_END_LOC = start, + //S_END_AREA = startinfo.S_AREA_CODE, + //S_END_WH = startinfo.S_AREA_CODE, + S_END_LOC = endloc?.S_CODE, + S_END_AREA = endloc?.S_AREA_CODE, + S_END_WH = endloc?.S_WH_CODE, + + N_TYPE = 1, + // S_TYPE = WMSTask.GetTypeStr(1), + S_TYPE = "鍥炲簱", + S_OP_DEF_CODE = "", + S_OP_DEF_NAME = "pda鍏ュ簱" + }; + if (WMSHelper.CreateWmsTask(wmsTask)) + { + LocationHelper.LockLoc(startloc.S_CODE, 1); + result.resultMsg = $"鍒涘缓浣滀笟鎴愬姛锛屼綔涓氬彿{wmsTask.S_CODE}"; + } + } + else + { + result.resultCode = 1; + result.resultMsg += $"鎵句笉鍒板鍣ㄥ搴斾换鍔′俊鎭瘂model.cntr_code}"; + return result; + } + return result; + + } /// <summary> @@ -2390,7 +2617,7 @@ /// <param name="cntr_code"></param> /// <param name="start"></param> /// <returns></returns> - public static async Task<SimpleResult> CBAddOutboundOrder(SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start) + public static async Task<SimpleResult> CBAddOutboundOrder(string GZRQ,SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start) { //using (var db = new SqlHelper<object>().GetInstance()) //{ @@ -2418,12 +2645,12 @@ //鍥炲弬鐗╂枡淇℃伅 List<CBcenterBackDto.HEADItem> iTEMs = new List<CBcenterBackDto.HEADItem>(); List<OutboundRecord> records = new List<OutboundRecord>(); - string GZRQ = ""; + //string GZRQ = ""; string PZZDRQ = ""; - if (po.BUDAT != null) - { - GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd"); - } + //if (po.BUDAT != null) + //{ + // GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd"); + //} if (po.BLDAT != null) { PZZDRQ = DateTime.Parse(po.BLDAT.ToString()).ToString("yyyyMMdd"); @@ -2438,7 +2665,7 @@ ckbitem.CBZX = po.S_CBZX; ckbitem.WLBH = item.item_code; ckbitem.SL = item.qty; - ckbitem.KCDD = podetail?.S_KCDD; + ckbitem.KCDD = podetail?.S_ERP_WH_CODE; ckbitem.LRZX = po.S_LRZX; ckbitem.ZZKM = po.S_ZZKM; ckbitem.GC = po.S_FACTORY; @@ -2478,17 +2705,7 @@ string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml; LogHelper.Info($"鎴愭湰涓績鍑哄簱xml鏁版嵁{xml}"); - //// 鍒涘缓 StringContent 骞舵寚瀹氬獟浣撶被鍨嬩负 "text/xml" - //HttpContent content = new StringContent(xml, Encoding.UTF8, "application/xml"); - //string url = Settings.WCSSeverUrl + "/api/WmsSap/cesReceiveXmlData"; - //string responseXml = ""; - //using (HttpClient client = new HttpClient()) - //{ - // // 鍙戦� POST 璇锋眰骞舵帴鏀跺搷搴�- // HttpResponseMessage responsess = await client.PostAsync(url, content); - // responseXml = await responsess.Content.ReadAsStringAsync(); - - //} + #region sap鍥炶皟 // 鍒涘缓Web Service浠g悊绫诲疄渚�@@ -2512,12 +2729,13 @@ XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(responses.Output.ToString()); JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc)); - var data = JsonConvert.DeserializeObject<ReturnWcBcak.Root>(jsonObject.ToString()); + EnsureArrayFormat(jsonObject, "ITEM", ""); + var data = JsonConvert.DeserializeObject<CbbReturnWcBcak.Root>(jsonObject.ToString()); //娣诲姞鍑瘉璁板綍琛�- result.resultMsg = data.ROOT.ITEM.MSGDESP; - result.resultCode = data.ROOT.ITEM.MSGCODE; - if (data.ROOT.ITEM.MSGCODE == 0) + result.resultMsg = data.ROOT.ITEM[0].MSGDESP; + result.resultCode = data.ROOT.ITEM[0].MSGCODE; + if (data.ROOT.ITEM[0].MSGCODE == 0) { foreach (var item in MaterList) @@ -2527,8 +2745,8 @@ materialVoucher.S_TYPE = po.S_OUT_TYPE; materialVoucher.S_WLBM = item.item_code; materialVoucher.S_WLH = item.N_ROW_NO; - materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZH; - materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND; + materialVoucher.S_WLPZBH = data.ROOT.ITEM?[0].WLPZBH; + //materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND; materialVoucher.S_WH_CODE = po.S_WH_CODE; materialVoucher.S_AREA_CODE = po.S_AREA_CODE; materialVoucher.F_QTY = item.qty; @@ -2537,13 +2755,6 @@ materialVoucher.UNAME = po.UNAME; db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand(); } - //MaterialVoucher materialVoucher = new MaterialVoucher(); - //materialVoucher.S_NO = po.S_NO; - //materialVoucher.S_TYPE = po.S_OUT_TYPE; - //materialVoucher.S_WLPZBH = data.ROOT.ITEM.WLPZBH; - //materialVoucher.S_WLPZND = data.ROOT.ITEM.WLPZND; - //materialVoucher.STATUS = 0; - //db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand(); } #endregion @@ -2569,7 +2780,7 @@ /// <param name="cntr_code"></param> /// <param name="start"></param> /// <returns></returns> - public static async Task<SimpleResult> jhwtlAddOutboundOrder(SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start) + public static async Task<SimpleResult> jhwtlAddOutboundOrder(string GZRQ,SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start) { //using (var db = new SqlHelper<object>().GetInstance()) //{ @@ -2587,12 +2798,12 @@ DateTime dateTime; DateTime dateTime1; - string GZRQ = ""; + //string GZRQ = ""; string PZZDRQ = ""; - if (po.BUDAT != null) - { - GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd"); - } + //if (po.BUDAT != null) + //{ + // GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd"); + //} if (po.BLDAT != null) { PZZDRQ = DateTime.Parse(po.BLDAT.ToString()).ToString("yyyyMMdd"); @@ -2637,7 +2848,7 @@ ckbitem.DDH = podetail?.S_DDH; //ckbitem.DDHXM = (podetail?.N_ROW_NO); ckbitem.WBS = podetail?.S_WBS; - ckbitem.KCDD = podetail?.S_KCDD; + ckbitem.KCDD = podetail?.S_ERP_WH_CODE; ckbitem.PC = podetail?.S_BATCH_NO; JHWBackDto.ITEM1 listitem1 = new JHWBackDto.ITEM1(); //string[] xlhValues = item.S_SERIAL_NO.Split(','); @@ -2761,7 +2972,7 @@ /// <param name="cntr_code"></param> /// <param name="start"></param> /// <returns></returns> - public static async Task<SimpleResult> CXAddOutboundOrder(SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start) + public static async Task<SimpleResult> CXAddOutboundOrder(string GZRQ,SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start) { // var db = new SqlHelper<object>().GetInstance(); @@ -2771,15 +2982,15 @@ try { //搴撲綅淇℃伅 - var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == start).First(); + //var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == start).First(); //鍑哄簱鍗曡鎯� var po = db.Queryable<TN_Outbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == arrival_no).First(); - string GZRQ = ""; - if (po.BUDAT != null) - { - GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd"); - } + //string GZRQ = ""; + //if (po.BUDAT != null) + //{ + // GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd"); + //} //鏉ユ簮鍐查攢鍑瘉瀵瑰簲鐨勭墿鏂欏嚟璇佷俊鎭� //var poIn = db.Queryable<TN_Inbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == po.S_BS_NO).First(); @@ -2812,11 +3023,6 @@ hEAD.GZRQ = GZRQ; hEAD.SRSJ = DateTime.Now.ToString("yyyyMMdd"); - //hEAD.WLPZ = porecord.Where(s => s.S_WLBM == item.item_code && s.S_WLH == item.N_ROW_NO).First()?.S_WLPZBH; - //hEAD.WLPZNF = porecord.Where(s=>s.S_WLBM==item.item_code&&s.S_WLH==item.N_ROW_NO).First()?.S_WLPZND; - - //hEAD.WLPZ = porecord.First()?.S_WLPZBH; - //hEAD.WLPZNF = porecord.First()?.S_WLPZND; hEAD.WLPZ = porecord.FirstOrDefault()?.S_WLPZBH; hEAD.WLPZNF = porecord.FirstOrDefault()?.S_WLPZND; @@ -2937,7 +3143,7 @@ /// <param name="cntr_code"></param> /// <param name="start"></param> /// <returns></returns> - public static async Task<SimpleResult> AddOutboundOrder(SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start) + public static async Task<SimpleResult> AddOutboundOrder(string GZRQ,SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start) { //using (var db = new SqlHelper<object>().GetInstance()) //{ @@ -2950,7 +3156,7 @@ var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == start).First(); //鍑哄簱鍗曡鎯� var po = db.Queryable<TN_Outbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == arrival_no).First(); - string GZRQ = ""; + //string GZRQ = ""; string PZZDRQ = ""; //if (po.Details[0].S_CJRQ != null) //{ @@ -2970,7 +3176,7 @@ KEY = po.S_NO, ZYWLX = "2", PZRQ = DateTime.Now.ToString("yyyyMMdd"), - GZRQ = DateTime.Now.ToString("yyyyMMdd"), // 鍋囪鏃ユ湡鏍煎紡涓�骞�鏈�鏃� + GZRQ = GZRQ, // 鍋囪鏃ユ湡鏍煎紡涓�骞�鏈�鏃� GZRY = po.S_CREATOR_NAME, ITEM = new List<CkBcakDto.ITEM> { @@ -2997,7 +3203,7 @@ ckbitem.YLBH = podetail?.S_YLBH; ckbitem.YLXMH = podetail?.S_YLXMH; ckbitem.GC = po.S_FACTORY; - ckbitem.KCDD = podetail?.S_KCDD; + ckbitem.KCDD = podetail?.S_ERP_WH_CODE; CkBcakDto.ITEM1 listitem1 = new CkBcakDto.ITEM1(); //var CntrItemRels = db.Queryable<CntrItemRel>().Where(a => a.S_ITEM_CODE == item.item_code&&a.N_ROW_NO==item.N_ROW_NO).ToList(); @@ -3159,7 +3365,7 @@ if (cntr != null) { #region 瀹㈡埛鎸囧畾瀹瑰櫒琛�- var cir2 = db.Queryable<CGRels>().Where(a => a.S_CNTR_CODE == cntr.S_CODE && a.S_ITEM_CODE == item.item_code && a.N_BS_ROW_NO == item.N_ROW_NO ).First(); + var cir2 = db.Queryable<CGRels>().Where(a => a.S_CNTR_CODE == cntr.S_CODE && a.S_ITEM_CODE == item.item_code ).First(); if (cir2 != null) { @@ -3433,6 +3639,7 @@ S_YLXMH = a.YLHXM, S_BATCH_NO = "", S_ERP_WH_CODE = a.KCDD, + S_ZJWLTH = a.ZJWLTH, S_ZJWLMS = a.ZJWLMS, S_ZHFHBS = a.ZHFHBS, @@ -3714,7 +3921,7 @@ /// </summary> /// <param name="model"></param> /// <returns></returns> - internal static WeiLiResult Out_Order_Inss(string S_NO) + internal static WeiLiResult Out_Order_Inss(string S_NO,int N_PRIORITY) { var result = new WeiLiResult(); // var db = new SqlHelper<object>().GetInstance(); @@ -3740,13 +3947,48 @@ else { //var az = db.Queryable<AZInventory>().ToList(); - var po1 = new TN_Outbound_Order { S_NO = WMSHelper.GenerateShippNo(), UNAME = po.UNAME, S_FACTORY = po.S_FACTORY, S_CBZX = po.S_CBZX, S_ZZKM = po.S_ZZKM, S_LRZX = po.S_LRZX, BLDAT = po.BLDAT, BUDAT = po.BUDAT, S_OUT_TYPE = po.S_OUT_TYPE, S_BS_TYPE = po.S_BS_TYPE, S_AREA_CODE = po.S_AREA_CODE, S_BS_NO = po.S_NO }; + var po1 = new TN_Outbound_Order { S_NO = WMSHelper.GenerateShippNo(), N_PRIORITY=N_PRIORITY, UNAME = po.UNAME, S_FACTORY = po.S_FACTORY, S_CBZX = po.S_CBZX, S_ZZKM = po.S_ZZKM, S_LRZX = po.S_LRZX, BLDAT = po.BLDAT, BUDAT = po.BUDAT, S_OUT_TYPE = po.S_OUT_TYPE, S_BS_TYPE = po.S_BS_TYPE, S_AREA_CODE = po.S_AREA_CODE, S_BS_NO = po.S_NO }; List<TN_Ll_detail> tN_Ll_Details = new List<TN_Ll_detail>(); po1.Details = new List<TN_Outbound_Detail>(); var list = po.Details.Where(s => s.F_QTY > s.F_ACC_D_QTY&&s.S_ERP_WH_CODE=="4004").Select(s => s.S_ITEM_CODE).Distinct().ToArray(); - - var Sitemlist = db.Queryable<CntrItemRel>().Where(s => list.Contains(s.S_ITEM_CODE)).Select(s => s.S_ITEM_CODE).ToArray().Select(x => x.Trim()).ToArray(); ; - + var itemfirs = db.Queryable<CntrItemRel>().Where(s => list.Contains(s.S_ITEM_CODE)).ToList() ; + var Sitemlist = itemfirs.Select(s => s.S_ITEM_CODE).ToArray().Select(x => x.Trim()).ToArray(); + + + + #region list闆嗗悎鏁伴噺 + var extractedArrays = itemfirs.Select(s => new CustomItem + { + SITEMCODE = s.S_ITEM_CODE?.Trim() ?? string.Empty, + FQTY = s.F_QTY, + FALLOCQTY = s.F_ALLOC_QTY + }).ToList(); + + var extractedArray = extractedArrays + .GroupBy(x => x.SITEMCODE) + .Select(g => new CustomItem + { + SITEMCODE = g.Key, + FQTY = g.Sum(x => x.FQTY), + FALLOCQTY = g.Sum(x => x.FALLOCQTY) + }) + .ToList(); + + var cklist= db.Queryable<TN_Outbound_Order>().Includes(s => s.Details).Where(a => a.N_B_STATE==0).ToList(); + foreach (var ckdetail in cklist) + { + foreach (var item in itemfirs) + { + var itemfi = ckdetail.Details.Where(s => s.S_ITEM_CODE == item.S_ITEM_CODE).FirstOrDefault(); + if (itemfi!=null) + { + var extractedArrayone = extractedArray.Where(s => s.SITEMCODE == item.S_ITEM_CODE).FirstOrDefault(); + extractedArrayone.FQTY = (float)(extractedArrayone.FQTY - itemfi.F_QTY); + } + } + } + #endregion + po.Details = po.Details.Where(s => Sitemlist.Contains(s.S_ITEM_CODE)).ToList(); if (po.Details.Count() > 0) { @@ -3755,37 +3997,54 @@ { if (a.F_QTY > a.F_ACC_D_QTY) { - po1.Details.Add(new TN_Outbound_Detail - { - S_DO_NO = po1.S_NO, - S_AREA_CODE = "HJQ", - N_ROW_NO = a.N_ROW_NO, - S_KCDD = a.S_KCDD, - S_ITEM_CODE = a.S_ITEM_CODE, - S_ITEM_NAME = a.S_ITEM_NAME, - S_UOM = a.S_UOM, - F_QTY = a.F_QTY - a.F_ACC_D_QTY, - S_BATCH_NO = a.S_BATCH_NO, - S_SERIAL_NO = a.S_SERIAL_NO, - S_CGPZH = a.S_CGPZH, - S_ZJBM = a.S_ZJBM, - S_YLBH = a.S_YLBH, - S_ZJWLTH = a.S_ZJWLTH, - S_ZJWLMS = a.S_ZJWLMS, - S_ZHFHBS = a.S_ZHFHBS, - S_CJRQ = a.S_CJRQ, - S_LLDSCBS = a.S_LLDSCBS, - S_SCGLY = a.S_SCGLY, - S_GXH = a.S_GXH, - S_XQRQ = a.S_XQRQ, - S_YLXMH = a.S_YLXMH, - S_CGPZXMBH = a.S_CGPZXMBH, - S_ERP_WH_CODE = a.S_ERP_WH_CODE, - N_ITEM_STATE = a.N_ITEM_STATE - }); - double difference = a.F_QTY - a.F_ACC_D_QTY; - a.F_ACC_D_QTY += difference; - tN_Ll_Details.Add(a); + var ones = extractedArray.Where(s => s.SITEMCODE == a.S_ITEM_CODE).FirstOrDefault(); + ///搴撳瓨鏁伴噺 + ones.FQTY = ones.FQTY - ones.FALLOCQTY; + ///鍑哄簱鏁伴噺 + double shul = a.F_QTY - a.F_ACC_D_QTY; + if (ones.FQTY !=0) { + if (ones.FQTY - shul>=0) + { + ones.FQTY = (float)(ones.FQTY - shul); + } + else + { + shul = ones.FQTY; + ones.FQTY = 0; + } + po1.Details.Add(new TN_Outbound_Detail + { + S_DO_NO = po1.S_NO, + S_AREA_CODE = "HJQ", + N_ROW_NO = a.N_ROW_NO, + S_KCDD = a.S_KCDD, + S_ITEM_CODE = a.S_ITEM_CODE, + S_ITEM_NAME = a.S_ITEM_NAME, + S_UOM = a.S_UOM, + F_QTY = shul, + S_BATCH_NO = a.S_BATCH_NO, + S_SERIAL_NO = a.S_SERIAL_NO, + S_CGPZH = a.S_CGPZH, + S_ZJBM = a.S_ZJBM, + S_YLBH = a.S_YLBH, + S_ZJWLTH = a.S_ZJWLTH, + S_ZJWLMS = a.S_ZJWLMS, + S_ZHFHBS = a.S_ZHFHBS, + S_CJRQ = a.S_CJRQ, + S_LLDSCBS = a.S_LLDSCBS, + S_SCGLY = a.S_SCGLY, + S_GXH = a.S_GXH, + S_XQRQ = a.S_XQRQ, + S_YLXMH = a.S_YLXMH, + S_CGPZXMBH = a.S_CGPZXMBH, + S_ERP_WH_CODE = a.S_ERP_WH_CODE, + N_ITEM_STATE = a.N_ITEM_STATE + }); + double difference = shul; + a.F_ACC_D_QTY += difference; + tN_Ll_Details.Add(a); + + } } else { @@ -3795,7 +4054,6 @@ } } - db.Updateable(tN_Ll_Details).UpdateColumns(it => new { it.F_ACC_D_QTY }).ExecuteCommand(); if (po1.Details.Count() > 0) @@ -4165,6 +4423,11 @@ db.BeginTran(); var po = db.Queryable<TN_Inbound_Order>().Includes(p => p.Details).Where(a => a.S_NO == model.S_NO).First(); + + + + + LogHelper.Info($"杩涙潵浜�"); #region MyRegion if (po.Details.Count > 0) @@ -4252,8 +4515,154 @@ List<TN_Inbound_Detail> tN_Inbound_Details = new List<TN_Inbound_Detail>(); po.Details = po.Details.Where(d => model.Wlist.Any(w => w.S_ITEM_CODE == d.S_ITEM_CODE && - w.N_ROW_NO == d.N_ROW_NO)) + w.N_ROW_NO == d.N_ROW_NO)).OrderBy(s => s.N_ROW_NO) .ToList(); + + #region MyRegion + + + List<TN_Center_Inbound_Detail> tN_Center_Inbound_Details=new List<TN_Center_Inbound_Detail>(); + foreach (var item in po.Details) + { + bool idadd = true; + // var cir2 = db.Queryable<CGRels>().Where(a => a.S_ITEM_CODE == item.S_ITEM_CODE && a.S_CNTR_TYPE == "鍗婃墭").Select(s => s.S_CNTR_CODE).Distinct().ToArray(); + var S_CNTR_CODE = ""; + + + + var lcr = db.Queryable<LocCntrRel>() + .InnerJoin<CGRels>((l, c) => l.S_CNTR_CODE == c.S_CNTR_CODE) + .Where((l, c) => c.S_ITEM_CODE == item.S_ITEM_CODE && c.S_CNTR_TYPE == "鍗婃墭") + .OrderByDescending((l, c) => l.T_CREATE) + .Select((l, c) => l).ToList() + .FirstOrDefault(); + + //if (cir2.Count()>0) + //{ + + + // var lcr = db.Queryable<LocCntrRel>().Where(c => cir2.Contains(c.S_CNTR_CODE)).OrderByDescending(s=>s.T_CREATE).First(); + + S_CNTR_CODE = lcr.S_CNTR_CODE; + if (lcr != null) + { + //璧峰搴撲綅 + var startloc = db.Queryable<Location>().Where(it => it.S_CODE == lcr.S_LOC_CODE).First(); + var wsc = db.Queryable<WCSTask>().Where(it => it.S_CNTR_CODE == S_CNTR_CODE&&it.S_TYPE.Contains("鍑哄簱") && it.N_B_STATE < 3).First(); + if (wsc != null) + { + item.N_B_STATE = 2; + db.Updateable(item).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); + } + else + { + if (startloc != null)//&& + { + //缁堢偣璐т綅 + var endloc = db.Queryable<Location>().Where(it => it.S_AREA_CODE == "QYQXHQ" && it.N_LOCK_STATE == 0 && it.N_CURRENT_NUM == 0).First(); + + // var endloc = db.Queryable<Location>().Where(it => it.S_CODE == item.S_END_LOC).First(); + if (endloc != null) + { + var optask = new WMSTask + { + S_CODE = WMSHelper.GenerateTaskNo(), + S_START_LOC = startloc.S_CODE, + S_START_AREA = startloc.S_AREA_CODE, + S_START_WH = startloc.S_WH_CODE, + S_END_LOC = endloc.S_CODE, + S_END_AREA = endloc.S_AREA_CODE, + S_END_WH = endloc.S_WH_CODE, + N_PRIORITY = 1, + S_TYPE = "鍗婃墭鍑哄簱", + N_TYPE = 2, + N_B_STATE = 0, + S_BS_NO = "", + S_CNTR_CODE = S_CNTR_CODE, + S_OP_DEF_NAME = item.S_BS_TYPE + }; + var res = db.Insertable(optask).ExecuteCommand() > 0; + if (res) + { + startloc.N_LOCK_STATE = 2; + startloc.S_LOCK_STATE = "鍑哄簱閿�; + db.Updateable(startloc).UpdateColumns(it => new { it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand(); + var models = db.Queryable<Location>().Where(a => a.S_CODE == endloc.S_CODE).First(); + // if (model != null && model.S_LOCK_STATE.Trim() == "鏃�) + if (models != null && models.N_LOCK_STATE == 0) + { + models.N_LOCK_STATE = 1; + models.S_LOCK_STATE = Location.GetLockStateStr(1); + res = db.Updateable(models).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE }).ExecuteCommand() > 0; + } + //LocationHelper.LockLoc(endloc.S_CODE, 1); + item.N_B_STATE = 2; + db.Updateable(item).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); + + + } + } + else + { + idadd = false; + LogHelper.Info($" 搴撳尯AGVXHQ鏃犵┖璐т綅"); + + } + } + else + { + idadd = false; + LogHelper.Info($" 搴撳尯鏃犺揣浣�); + } + } + + } + else + { + idadd = false; + LogHelper.Info($"鐗╂枡{item.S_ITEM_CODE}鏈壘鍒板鍣ㄥ搴旂殑璐т綅淇℃伅锛岃鑱旂郴浜哄伐缁戝畾鍏崇郴"); + } + if (!idadd) + { + TN_Center_Inbound_Detail tN_Center_Inbound_Detail = new TN_Center_Inbound_Detail(); + tN_Center_Inbound_Detail.S_IO_NO = item.S_IO_NO; + tN_Center_Inbound_Detail.N_ROW_NO = item.N_ROW_NO; + tN_Center_Inbound_Detail.S_ITEM_CODE = item.S_ITEM_CODE; + tN_Center_Inbound_Detail.F_QTY = item.F_QTY; + tN_Center_Inbound_Detail.S_ITEM_STATE = item.S_ITEM_STATE; + tN_Center_Inbound_Detail.S_ITEM_NAME = item.S_ITEM_NAME; + tN_Center_Inbound_Detail.F_ACC_B_QTY = item.F_ACC_B_QTY; + tN_Center_Inbound_Detail.S_KCDD = item.S_KCDD; + tN_Center_Inbound_Detail.S_UOM = item.S_UOM;//璁¢噺鍗曚綅 + tN_Center_Inbound_Detail.S_BATCH_NO = item.S_BATCH_NO; + tN_Center_Inbound_Detail.S_CGPZH = item.S_CGPZH; + tN_Center_Inbound_Detail.S_CGPZXMBH = item.S_CGPZXMBH; + tN_Center_Inbound_Detail.S_CKPZKJND = item.S_CKPZKJND; + tN_Center_Inbound_Detail.S_CKPZXM = item.S_CKPZXM; + tN_Center_Inbound_Detail.S_CXWLPZBH = item.S_CXWLPZBH; + tN_Center_Inbound_Detail.S_HWSJJYZT = item.S_HWSJJYZT; + tN_Center_Inbound_Detail.S_JYPBH = item.S_JYPBH; + tN_Center_Inbound_Detail.S_KJPZSSRQ = item.S_KJPZSSRQ; + tN_Center_Inbound_Detail.S_KJPZSRSJ = item.S_KJPZSRSJ; + tN_Center_Inbound_Details.Add(tN_Center_Inbound_Detail); + + } + //} + //else + //{ + // LogHelper.Info($"鏈壘鍒扮墿鏂檣item.S_ITEM_CODE}瀵瑰簲鐨勫鍣�); + //} + + } + db.Insertable(tN_Center_Inbound_Details).ExecuteCommand(); + #endregion + + var gzra = db.Queryable<TN_GZ_SZ>().Where(a => a.N_ENABLE == 1).First(); + var GZRQ = DateTime.Now.ToString("yyyyMMdd"); + if (gzra!=null) + { + GZRQ= gzra.S_GZRQ.ToString("yyyyMMdd"); + } if (po.S_IN_TYPE == "鍐呴噰鍏ュ簱") { List<NcRkDto.ITEM> listitem = new List<NcRkDto.ITEM>(); @@ -4292,6 +4701,13 @@ tN_Inbound_Details.Add(item); } + string combinedIds= string.Join(",", po.Details.Select(x => x.N_ROW_NO)); + var KEY = WCSHelper.Generate13DigitIds(); + var s_key= db.Queryable<TN_InBounder_Sh>().Where(a => a.S_NO == model.S_NO&&a.N_ROW_NO == combinedIds).First(); + if (s_key!=null) + { + KEY = s_key.S_KEY; + } NcRkDto.Root roots = new NcRkDto.Root { ROOT = new NcRkDto.ROOT @@ -4301,9 +4717,9 @@ HEAD = new NcRkDto.HEAD { - KEY = po.S_NO, - GZRQ = DateTime.Now.ToString("yyyyMMdd"), - GZRY = model.GZRY, + KEY = KEY, + GZRQ = GZRQ, + GZRY = model.GZRY,//GenerateTaskNo WLPZBH = po.S_NO, WLPZND = po.S_WLPZND }, @@ -4318,8 +4734,7 @@ var json = JsonConvert.SerializeObject(roots.ROOT); string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml; - // 鐜板湪 root 瀵硅薄鍖呭惈浜嗘偍瀹氫箟鐨勫亣鏁版嵁 - // 鍙戦�POST璇锋眰 + LogHelper.Info($"鍐呴噰鏀惰揣xml鏁版嵁{xml}"); #region MyRegion @@ -4377,15 +4792,9 @@ //娣诲姞鍑瘉璁板綍琛� result.resultMsg = data.ROOT.ITEM.MSGDESP; result.resultCode = data.ROOT.ITEM.MSGCODE; - //MaterialVoucher materialVoucher = new MaterialVoucher(); if (data.ROOT.ITEM.MSGCODE == 0) { - //materialVoucher.S_NO = model.S_NO; - //materialVoucher.S_TYPE = po.S_IN_TYPE; - //materialVoucher.S_WLPZBH = data.ROOT.ITEM.WLPZH; - //materialVoucher.S_WLPZND = data.ROOT.ITEM.WLPZND; - //materialVoucher.STATUS = 0; - //db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand(); + List<MaterialVoucher> materials = new List<MaterialVoucher>(); foreach (var item in model.Wlist) { @@ -4406,6 +4815,16 @@ db.Insertable<MaterialVoucher>(materials).ExecuteCommand(); } } + else + { + + TN_InBounder_Sh tN_InBounder_Sh = new TN_InBounder_Sh(); + tN_InBounder_Sh.S_KEY = KEY; + tN_InBounder_Sh.N_ROW_NO = combinedIds; + tN_InBounder_Sh.S_NO = po.S_NO; + db.Insertable<TN_InBounder_Sh>(tN_InBounder_Sh).ExecuteCommand(); + + } } @@ -4413,16 +4832,23 @@ { DateTime dateTime; DateTime dateTime1; - string GZRQ = ""; + //string GZRQ = ""; string PZZDRQ = ""; - if (po.BUDAT != null) - { - GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd"); - } + //if (po.BUDAT != null) + //{ + // GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd"); + //} if (po.BLDAT != null) { PZZDRQ = DateTime.Parse(po.BLDAT.ToString()).ToString("yyyyMMdd"); + } + string combinedIds = string.Join(",", po.Details.Select(x => x.N_ROW_NO)); + var KEY = WCSHelper.Generate13DigitIds(); + var s_key = db.Queryable<TN_InBounder_Sh>().Where(a => a.S_NO == model.S_NO && a.N_ROW_NO == combinedIds).ToList().FirstOrDefault(); + if (s_key != null) + { + KEY = s_key.S_KEY; } JHWBackDto.Root myRoot = new JHWBackDto.Root { @@ -4430,7 +4856,7 @@ { HEAD = new JHWBackDto.HEAD { - KEY = po.S_NO, + KEY = KEY, GZRQ = GZRQ, PZZDRQ = PZZDRQ, YHM = po.UNAME, @@ -4445,6 +4871,7 @@ } }; + //鍥炲弬鐗╂枡淇℃伅 List<JHWBackDto.ITEM> iTEMs = new List<JHWBackDto.ITEM>(); foreach (var item in po.Details) @@ -4555,6 +4982,17 @@ db.Insertable<MaterialVoucher>(materials).ExecuteCommand(); } } + else + { + + TN_InBounder_Sh tN_InBounder_Sh = new TN_InBounder_Sh(); + tN_InBounder_Sh.S_KEY = KEY; + tN_InBounder_Sh.N_ROW_NO = combinedIds; + tN_InBounder_Sh.S_NO = po.S_NO; + db.Insertable<TN_InBounder_Sh>(tN_InBounder_Sh).ExecuteCommand(); + + } + #endregion } @@ -4596,6 +5034,13 @@ tN_Inbound_Details.Add(item); } + string combinedIds = string.Join(",", po.Details.Select(x => x.N_ROW_NO)); + var KEY = WCSHelper.Generate13DigitIds(); + var s_key = db.Queryable<TN_InBounder_Sh>().Where(a => a.S_NO == model.S_NO && a.N_ROW_NO == combinedIds).First(); + if (s_key != null) + { + KEY = s_key.S_KEY; + } WcRkBc.Root roots = new WcRkBc.Root { ROOT = new WcRkBc.ROOT @@ -4604,8 +5049,8 @@ { HEAD = new WcRkBc.HEAD { - KEY = po.S_NO, - GZRQ = DateTime.Now.ToString("yyyyMMdd"), + KEY = KEY, + GZRQ = GZRQ, GZRY = model.GZRY, GC = po.S_FACTORY }, @@ -4701,6 +5146,16 @@ } } + else + { + + TN_InBounder_Sh tN_InBounder_Sh = new TN_InBounder_Sh(); + tN_InBounder_Sh.S_KEY = KEY; + tN_InBounder_Sh.N_ROW_NO = combinedIds; + tN_InBounder_Sh.S_NO = po.S_NO; + db.Insertable<TN_InBounder_Sh>(tN_InBounder_Sh).ExecuteCommand(); + + } } @@ -4708,12 +5163,12 @@ { var materpz = db.Queryable<TN_Inbound_Order>().Where(s => s.S_NO == po.S_NO).First(); - string GZRQ = ""; + //string GZRQ = ""; LogHelper.Info($"鍐查攢鍏ュ簱鍏ュ簱{po.BUDAT}"); - if (po.BUDAT != null) - { - GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd"); - } + //if (po.BUDAT != null) + //{ + // GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd"); + //} //鍑哄簱鍥炶皟鍏ュ弬 CXCkBackDto.Root roots = new CXCkBackDto.Root -- Gitblit v1.9.1