From 3a3c5f5711a57439f34e772313fcbb18ba7885bc Mon Sep 17 00:00:00 2001 From: hudong <Administrator@PC-20250329JZUF> Date: 星期一, 14 七月 2025 10:31:15 +0800 Subject: [PATCH] 优化 --- api/WmsSpaHelper.cs | 960 +++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 657 insertions(+), 303 deletions(-) diff --git a/api/WmsSpaHelper.cs b/api/WmsSpaHelper.cs index 98edcb4..636d30b 100644 --- a/api/WmsSpaHelper.cs +++ b/api/WmsSpaHelper.cs @@ -2121,7 +2121,7 @@ } private static readonly ObjectCache Cache = MemoryCache.Default; private const string CachePrefix = "ClickProtection_"; - private const int CacheDurationInSeconds = 2; + private const int CacheDurationInSeconds = 5; public static bool IsClickAllowed(string parameter) { @@ -2141,6 +2141,381 @@ return true; } } + public static async Task<SimpleResult> AllTYAddOutboundOrder(SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start, string S_OUT_TYPE, string cntr_type) + { + // var db = new SqlHelper<object>().GetInstance(); + //using (var db = new SqlHelper<object>().GetInstance()) + //{ + var result = new SimpleResult(); + + try + { + //搴撲綅淇℃伅 + 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(); + //鍒嗘嫞鍗�+ //var popp = db.Queryable<TN_Distribution_CNTR>().Where(a => a.S_BS_NO == arrival_no&&a.S_SORT_TYPE=="鏈垎绫� && a.N_B_STATE == 2).First(); + + //鍥炲弬鐗╂枡淇℃伅 + List<OutboundRecord> records = new List<OutboundRecord>(); + 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) + { + db.BeginTran(); + //1.鏌ョ湅鏄惁鏈夌浉鍚岀墿鏂欐壒娆$殑淇℃伅锛屽鏋滄湁瑕佺疮鍑忓皯锛屼笉鍚屾壒娆$殑鍙互鍒嗗紑&& a.N_BS_ROW_NO == item.N_ROW_NO + var cir = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr_code && a.S_ITEM_CODE == item.item_code).First();//&& a.S_BATCH_NO == item.S_BATCH_NO + if (cir != null) + { + cir.F_QTY -= item.qty; + cir.S_CNTR_TYPE = cntr_type; + cir.F_ALLOC_QTY -= item.qty; + cir.T_MODIFY = DateTime.Now; + if (cir.F_QTY == 0) + { + db.Deleteable(cir).ExecuteCommand(); + } + else + { + db.Updateable(cir).UpdateColumns(it => new { it.F_QTY, it.S_CNTR_TYPE, it.F_ALLOC_QTY, it.T_MODIFY }).ExecuteCommand(); + + } + } + else + { + db.RollbackTran(); + result.resultCode = 1; + result.resultMsg = $"鐗╂枡涓嶅瓨鍦▄item.item_code}"; + LogHelper.Info($"鐗╂枡涓嶅瓨鍦▄item.item_code}"); + return result; + } + + OutboundRecord outboundRecord = new OutboundRecord(); + outboundRecord.S_WLPZBH = pz?.S_WLPZBH; + outboundRecord.S_WLPZND = pz?.S_WLPZND; + outboundRecord.S_TYPE = S_OUT_TYPE; + + outboundRecord.S_NO = arrival_no; + outboundRecord.S_WLBM = item.item_code; + outboundRecord.S_SL = item.qty; + outboundRecord.S_CNTR_CODE = cntr_code; + records.Add(outboundRecord); + } + else + { + result.resultCode = 1; + result.resultMsg = $"鑾峰彇鎵樼洏淇℃伅澶辫触{cntr_code}"; + LogHelper.Info($"鑾峰彇鎵樼洏淇℃伅澶辫触{cntr_code}"); + return result; + } + } + //if (isHK) + //{ + var locs = db.Queryable<WCSTask>().Where(a => a.S_TYPE.Contains("鍑哄簱") && a.S_CNTR_CODE == 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($"鑾峰彇鎵樼洏淇℃伅{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 + { + S_CNTR_CODE = cntr_code, + S_CODE = WMSHelper.GenerateTaskNo(), + S_START_LOC = start, + S_START_AREA = startinfo.S_AREA_CODE, + S_START_WH = startinfo.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(start, 2); + result.resultMsg = $"鍒涘缓浣滀笟鎴愬姛锛屼綔涓氬彿{wmsTask.S_CODE}"; + } + } + else + { + result.resultCode = 1; + result.resultMsg += $"鎵句笉鍒板鍣ㄥ搴斾换鍔′俊鎭瘂cntr_code}"; + return result; + } + + //} + var sss = db.Insertable<OutboundRecord>(records).ExecuteCommand(); + + //db.CommitTran(); + } + catch (Exception ex) + { + //db.RollbackTran(); + LogHelper.Info("鐗╂枡淇℃伅缁戝畾鍒版弧瀹瑰櫒涓� + ex.Message); + result.resultCode = 1; + result.resultMsg += ex.Message; + Console.WriteLine(ex.Message); + + throw; + } + return result; + } + + /// <summary> + /// 鍒嗘嫞 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + internal static async Task<SimpleResult> ALLOutboundOrderSorting(FJSorting model) + { + + + var result = new SimpleResult(); + if (!IsClickAllowed("1")) + { + // 鎻愮ず鐢ㄦ埛5绉掑唴宸茬偣鍑昏繃 + result.resultMsg = "鎮ㄥ凡鐐瑰嚮杩囷紝璇�绉掑悗鍐嶈瘯銆�; + result.resultCode = 1; + return result; + } + else + { + + } + // var db = new SqlHelper<object>().GetInstance(); + + using (var db = new SqlHelper<object>().GetInstance()) + { + try + { + 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)) + { + result.resultMsg = "鍑哄簱鍗曞彿涓嶈兘涓虹┖"; + result.resultCode = 1; + return result; + } + + //浜哄伐鍒嗘嫞 瀹瑰櫒璐у搧琛ㄦ暟閲忋�鍒嗛厤閲忓崌闄�+ //鍑哄簱鍗曡鎯�+ var po = db.Queryable<TN_Outbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == model.arrival_no).First(); + if (po == null) + { + result.resultMsg = "鏈壘鍒版鍑哄簱鍗�; + result.resultCode = 1; + return result; + + } + LogHelper.Info($"S_OUT_TYPE{po.S_OUT_TYPE}"); + var gzra = db.Queryable<TN_GZ_SZ>().Where(a => a.C_ENABLE == "Y").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(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(GZRQ, db, model.MaterList, model.arrival_no, model.cntr_code, start); + } + else if (po.S_OUT_TYPE == "璁″垝澶栧彂鏂欏嚭搴�) + { + result = await jhwtlAddOutboundOrder(GZRQ, db, model.MaterList, model.arrival_no, model.cntr_code, start); + } + else if (po.S_OUT_TYPE == "鎴愭湰涓績鍑哄簱") + { + result = await CBAddOutboundOrder(GZRQ, db, model.MaterList, model.arrival_no, model.cntr_code, start); + } + //if (result.resultCode == 1) + //{ + // return result; + //} + //閫氱敤鎺ュ彛 瀵瑰鍣ㄨ揣鍝佺殑鍒犲噺 鍜岀敓鎴愬洖搴撳崟 閮借鐢ㄧ殑鎺ュ彛 + result = await AllTYAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start, po.S_OUT_TYPE, model.cntr_type); + if (result.resultCode == 1) + { + return result; + } + #region 鍗囬檷閲�+ + bool adds = true; + + //var itemlist = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == model.cntr_code).ToList(); + if (model.MaterList.Count > 0) + { + var url = Settings.MoboxSeverUrl + "inventory/AddChange"; + //浠撳簱閲忚〃鍗囬噺 + var req = new AddChangeModel { op_type = 4 }; + //搴撳尯閲忚〃鍗囬噺 + var req2 = new AddChangeModel { op_type = 7 }; + var S_WH_CODE = ""; + var S_AREA_CODE = ""; + if (string.IsNullOrEmpty(po.S_WH_CODE)) + { + S_WH_CODE = util.Settings.WHCode; + } + else + { + S_WH_CODE = po.S_WH_CODE; + } + if (string.IsNullOrEmpty(po.S_AREA_CODE)) + { + S_AREA_CODE = util.Settings.AREACode; + } + else + { + S_AREA_CODE = po.S_AREA_CODE; + } + model.MaterList.ForEach(a => + { + LogHelper.Info($"濉厖鏁版嵁{util.Settings.WHCode}"); + LogHelper.Info($"鍑忎粨搴撻噺{util.Settings.AREACode}琛ㄦ暟鎹�浠撳簱{po.S_WH_CODE} 鐗╂枡缂栫爜{a.item_code} 鐗╂枡鍚嶇О 鏁伴噺{a.qty}"); + req.item_info.Add(new AddChangeModel.itemModel + { + wh_code = S_WH_CODE, + item_code = a.item_code, + item_name = "", + qty = a.qty + }); + LogHelper.Info($"鍑忓簱鍖洪噺琛ㄦ暟鎹�搴撳尯{po.S_AREA_CODE} 鐗╂枡缂栫爜{a.item_code} 鐗╂枡鍚嶇О 鏁伴噺{a.qty}"); + req2.item_info.Add(new AddChangeModel.itemModel + { + wh_code = S_WH_CODE, + area_code = S_AREA_CODE, + item_code = a.item_code, + item_name = "", + qty = a.qty + }); + }); + var reqData = JsonConvert.SerializeObject(req); + var AppKey = Settings.AppKey; + var AppSecret = Settings.AppSecret; + var ReqTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString(); + //var ReqTime = GetTimeStamp(DateTime.Now.AddHours(-8), 1, 2); + LogHelper.Info($"鍔犲瘑鍓�AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime}"); + var ReqVerify = GetMd5FromString(AppKey + AppSecret + ReqTime); + LogHelper.Info($"鍔犲瘑鍚�AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime} ReqVerify={ReqVerify} url={url} req={reqData}"); + var res = new HttpHelper().WebPost(url, reqData, "application/json", AppKey, ReqTime, ReqVerify); + if (!string.IsNullOrEmpty(res)) + { + LogHelper.Info($"mobox 浠撳簱闄嶉噺鎺ュ彛杩斿洖 {res}"); + var moboxres = JsonConvert.DeserializeObject<moboxres>(res); + if (moboxres.err_code != 0) + { + adds = false; + } + } + else + { + LogHelper.Info($"mobox 浠撳簱闄嶉噺鎺ュ彛杩斿洖涓虹┖"); + + } + var reqData2 = JsonConvert.SerializeObject(req2); + var ReqTime2 = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString(); + //var ReqTime2 = GetTimeStamp(DateTime.Now.AddHours(-8), 1, 2); + LogHelper.Info($"鍔犲瘑鍓�AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime2}"); + var ReqVerify2 = GetMd5FromString(AppKey + AppSecret + ReqTime2); + LogHelper.Info($"鍔犲瘑鍚�AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime2} ReqVerify={ReqVerify2} url={url} req={reqData2}"); + var res2 = new HttpHelper().WebPost(url, reqData2, "application/json", AppKey, ReqTime2, ReqVerify2); + if (!string.IsNullOrEmpty(res2)) + { + LogHelper.Info($"mobox 搴撳尯闄嶉噺鎺ュ彛杩斿洖 {res2}"); + var moboxres = JsonConvert.DeserializeObject<moboxres>(res); + if (moboxres.err_code != 0) + + { + adds = false; + } + } + else + { + LogHelper.Info($"mobox 搴撳尯闄嶉噺鎺ュ彛杩斿洖涓虹┖"); + + } + //if (adds) addOnShelves(po, model.cntr_code, 2); + + } + else LogHelper.Info($"鎵樼洏{model.cntr_code}鏃犻渶瑕佸崌闄嶉噺鐨勭墿鏂�); + db.CommitTran(); + #endregion + return result; + + } + catch (Exception e) + { + LogHelper.Info($"鎶ラ敊{e.Message}"); + result.resultMsg = e.Message; + db.RollbackTran(); + return result; + throw; + } + } + + } /// <summary> /// 鍒嗘嫞 /// </summary> @@ -2150,10 +2525,10 @@ { var result = new SimpleResult(); - if (!IsClickAllowed(model.cntr_code)) + if (!IsClickAllowed("1")) { // 鎻愮ず鐢ㄦ埛5绉掑唴宸茬偣鍑昏繃 - result.resultMsg = "鎮ㄥ凡鐐瑰嚮杩囷紝璇�绉掑悗鍐嶈瘯銆�; + result.resultMsg = "鎮ㄥ凡鐐瑰嚮杩囷紝璇�绉掑悗鍐嶈瘯銆�; result.resultCode = 1; return result; } @@ -2199,16 +2574,17 @@ } LogHelper.Info($"S_OUT_TYPE{po.S_OUT_TYPE}"); - var gzra = db.Queryable<TN_GZ_SZ>().Where(a => a.N_ENABLE == 1).First(); + var gzra = db.Queryable<TN_GZ_SZ>().Where(a => a.C_ENABLE == "Y").First(); var GZRQ = DateTime.Now.ToString("yyyyMMdd"); if (gzra != null) { GZRQ = gzra.S_GZRQ.ToString("yyyyMMdd"); } + #region 娉ㄩ噴sap 鍥犳晥鐜囪繃鎱�浜哄伐鍥炲埌 //鏍规嵁涓嶅悓鍑哄簱绫诲瀷 鍥炶皟sap if (po.S_OUT_TYPE == "鍐查攢鍑哄簱") { - result = await CXAddOutboundOrder(GZRQ,db, model.MaterList, model.arrival_no, model.cntr_code, start); + result = await CXAddOutboundOrder(GZRQ, db, model.MaterList, model.arrival_no, model.cntr_code, start); } else if (po.S_OUT_TYPE == "鍑哄簱")//鏅�鍑哄簱 @@ -2218,18 +2594,22 @@ } else if (po.S_OUT_TYPE == "璁″垝澶栧彂鏂欏嚭搴�) { - result = await jhwtlAddOutboundOrder(GZRQ,db, model.MaterList, model.arrival_no, model.cntr_code, start); + result = await jhwtlAddOutboundOrder(GZRQ, db, model.MaterList, model.arrival_no, model.cntr_code, start); } else if (po.S_OUT_TYPE == "鎴愭湰涓績鍑哄簱") { - result = await CBAddOutboundOrder(GZRQ,db, model.MaterList, model.arrival_no, model.cntr_code, start); + result = await CBAddOutboundOrder(GZRQ, db, model.MaterList, model.arrival_no, model.cntr_code, start); } - if (result.resultCode == 1) - { - return result; - } + #endregion + + + + //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); + result = await TYAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, start, po.S_OUT_TYPE, model.cntr_type); if (result.resultCode == 1) { return result; @@ -2350,7 +2730,7 @@ } } - public static async Task<SimpleResult> TYAddOutboundOrder(SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, bool isHK, string start, string S_OUT_TYPE, string cntr_type) + public static async Task<SimpleResult> TYAddOutboundOrder(SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start, string S_OUT_TYPE, string cntr_type) { // var db = new SqlHelper<object>().GetInstance(); //using (var db = new SqlHelper<object>().GetInstance()) @@ -2423,82 +2803,28 @@ return result; } } - if (isHK) + LogHelper.Info($"鍒嗘嫞鎺ュ彛{cntr_code}"); + //if (isHK) + //{ + var locs = db.Queryable<WCSTask>().Where(a => a.S_TYPE.Contains("鍑哄簱") && a.S_CNTR_CODE == cntr_code && a.N_B_STATE == 3).OrderByDescending(s => s.T_END_TIME).First(); + if (locs != null) { - var locs = db.Queryable<WCSTask>().Where(a => a.S_TYPE.Contains("鍑哄簱") && a.S_CNTR_CODE == cntr_code && a.N_B_STATE == 3).OrderByDescending(s => s.T_END_TIME).First(); - if (locs != null) + LogHelper.Info($"鍒嗘嫞鎺ュ彛 杩涙潵浜唟cntr_code}"); + var cntr = db.Queryable<TN_Distribution_CNTR>().Where(a => a.S_DC_NO == locs.S_BS_NO).First(); + if (cntr != 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($"鑾峰彇鎵樼洏淇℃伅{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 - { - S_CNTR_CODE = cntr_code, - S_CODE = WMSHelper.GenerateTaskNo(), - S_START_LOC = start, - S_START_AREA = startinfo.S_AREA_CODE, - S_START_WH = startinfo.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(start, 2); - result.resultMsg = $"鍒涘缓浣滀笟鎴愬姛锛屼綔涓氬彿{wmsTask.S_CODE}"; - } + cntr.S_SORT_TYPE = "宸插垎鎷�; + db.Updateable(cntr).UpdateColumns(it => new { it.S_SORT_TYPE }).ExecuteCommand(); } else { result.resultCode = 1; - result.resultMsg += $"鎵句笉鍒板鍣ㄥ搴斾换鍔′俊鎭瘂cntr_code}"; + result.resultMsg += $"浠诲姟{locs.S_CODE}鏉ユ簮鍙穥locs.S_BS_NO}鎵句笉鍒伴厤鐩樹俊鎭�; return result; } - } - var sss = db.Insertable<OutboundRecord>(records).ExecuteCommand(); + + var sss = db.Insertable<OutboundRecord>(records).ExecuteCommand(); //db.CommitTran(); } @@ -2521,21 +2847,21 @@ 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; - } + //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}瀹瑰櫒"); @@ -2557,53 +2883,53 @@ 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 + var start = ""; + var startloc1 = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == model.cntr_code).First(); + if (startloc1 != null) { - 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}"; + start = startloc1.S_LOC_CODE; } - } - else - { - result.resultCode = 1; - result.resultMsg += $"鎵句笉鍒板鍣ㄥ搴斾换鍔′俊鎭瘂model.cntr_code}"; - return result; - } + 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, 2); + result.resultMsg = $"鍒涘缓浣滀笟鎴愬姛锛屼綔涓氬彿{wmsTask.S_CODE}"; + } + //} + //else + //{ + // result.resultCode = 1; + // result.resultMsg += $"鎵句笉鍒板鍣ㄥ搴斾换鍔′俊鎭瘂model.cntr_code}"; + // return result; + //} return result; } @@ -3382,7 +3708,7 @@ #region 1.鏌ョ湅鏄惁鏈夌浉鍚岀墿鏂欐壒娆$殑淇℃伅锛屽鏋滄湁瑕佺疮鍔狅紝涓嶅悓鎵规鐨勫彲浠ュ垎寮�- var cir = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr.S_CODE && a.S_ITEM_CODE == item.item_code && a.S_BATCH_NO == item.S_BATCH_NO && a.N_BS_ROW_NO == item.N_ROW_NO && a.S_BS_NO == item.arrival_no).First(); + var cir = db.Queryable<CntrItemRel>().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 && a.S_BS_NO == item.arrival_no).First(); if (cir != null) { cir.F_QTY += item.qty; @@ -3392,7 +3718,7 @@ else { //2.鎻掑叆鏂扮殑瀹瑰櫒鐗╂枡淇℃伅锛堝鍣ㄥ彿涓嶅彉S_SERIAL_NO = item.S_SERIAL_NO,锛�- cir = new CntrItemRel { S_CNTR_TYPE = S_CNTR_TYPE, S_CNTR_CODE = cntr.S_CODE.Trim(), S_UOM = info.S_UOM, S_BATCH_NO = item.S_BATCH_NO, N_BS_ROW_NO = item.N_ROW_NO, F_QTY = item.qty, S_ITEM_CODE = item.item_code, S_BS_NO = item.arrival_no }; + cir = new CntrItemRel { S_CNTR_TYPE = S_CNTR_TYPE, S_CNTR_CODE = cntr.S_CODE.Trim(), S_UOM = info.S_UOM, N_BS_ROW_NO = item.N_ROW_NO, F_QTY = item.qty, S_ITEM_CODE = item.item_code, S_BS_NO = item.arrival_no }; db.Insertable<CntrItemRel>(cir).ExecuteCommand(); } var count = db.Queryable<CntrItemRel>().Count(a => a.S_CNTR_CODE == cntr.S_CODE); @@ -4402,7 +4728,150 @@ } + public static async Task<SimpleResult> AddCenter( SqlSugarClient db, List<TN_Inbound_Detail> MaterList) + { + //using (var db = new SqlHelper<object>().GetInstance()) + //{ + // var db = new SqlHelper<object>().GetInstance(); + var result = new SimpleResult(); + try + { + #region MyRegion + + List<TN_Center_Inbound_Detail> tN_Center_Inbound_Details = new List<TN_Center_Inbound_Detail>(); + foreach (var item in MaterList) + { + 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(); + + 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; + } + 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); + + } + + } + db.Insertable(tN_Center_Inbound_Details).ExecuteCommand(); + #endregion + } + catch (Exception e) + { + + throw ; + } + + return result; + + } /// <summary> /// 鍐呴噰鍏ュ簱鍥炶皟 @@ -4518,151 +4987,17 @@ w.N_ROW_NO == d.N_ROW_NO)).OrderBy(s => s.N_ROW_NO) .ToList(); + + + var gzra = db.Queryable<TN_GZ_SZ>().Where(a => a.C_ENABLE == "Y").First(); + var GZRQ = DateTime.Now.ToString("yyyyMMdd"); + if (gzra != null) + { + GZRQ = gzra.S_GZRQ.ToString("yyyyMMdd"); + } #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>(); @@ -4701,10 +5036,10 @@ tN_Inbound_Details.Add(item); } - string combinedIds= string.Join(",", po.Details.Select(x => x.N_ROW_NO)); + 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) + 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; } @@ -4734,7 +5069,7 @@ var json = JsonConvert.SerializeObject(roots.ROOT); string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml; - + LogHelper.Info($"鍐呴噰鏀惰揣xml鏁版嵁{xml}"); #region MyRegion @@ -4759,9 +5094,6 @@ // 灏�XmlDocument 杞崲涓�JSON 瀛楃涓� //JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc)); #endregion - - - #region sap鍥炶皟 @@ -4794,6 +5126,11 @@ result.resultCode = data.ROOT.ITEM.MSGCODE; if (data.ROOT.ITEM.MSGCODE == 0) { + if (tN_Inbound_Details.Count() > 0) + { + db.Updateable(tN_Inbound_Details).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); + } + await AddCenter(db, po.Details); List<MaterialVoucher> materials = new List<MaterialVoucher>(); foreach (var item in model.Wlist) @@ -4871,12 +5208,12 @@ } }; - + //鍥炲弬鐗╂枡淇℃伅 List<JHWBackDto.ITEM> iTEMs = new List<JHWBackDto.ITEM>(); foreach (var item in po.Details) { - // var podetail = po.Details.Where(s => s.S_ITEM_CODE == item.S_ITEM_CODE).FirstOrDefault(); + // var podetail = po.Details.Where(s => s.S_ITEM_CODE == item.S_ITEM_CODE).FirstOrDefault(); JHWBackDto.ITEM ckbitem = new JHWBackDto.ITEM(); ckbitem.WLBH = item.S_ITEM_CODE; ckbitem.GC = po.S_FACTORY; @@ -4962,6 +5299,11 @@ result.resultCode = data.ROOT.ITEM.MSGCODE; if (data.ROOT.ITEM.MSGCODE == 0) { + if (tN_Inbound_Details.Count() > 0) + { + db.Updateable(tN_Inbound_Details).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); + } + await AddCenter(db, po.Details); List<MaterialVoucher> materials = new List<MaterialVoucher>(); foreach (var item in model.Wlist) { @@ -5125,6 +5467,11 @@ result.resultCode = data.ROOT.ITEM.MSGCODE; if (data.ROOT.ITEM.MSGCODE == 0) { + if (tN_Inbound_Details.Count() > 0) + { + db.Updateable(tN_Inbound_Details).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); + } + await AddCenter(db, po.Details); ; List<MaterialVoucher> materials = new List<MaterialVoucher>(); foreach (var item in model.Wlist) @@ -5255,14 +5602,15 @@ //娣诲姞鍑瘉璁板綍琛� if (data != null) { + List<TN_Inbound_Detail> tN_Inbound_Detailcx = new List<TN_Inbound_Detail>(); List<MaterialVoucher> materiallist = new List<MaterialVoucher>(); foreach (var item in data.ROOT.ITEM) { if (item.MSGCODE == 0) { - var onr = po.Details.Where(s => s.N_ROW_NO == item.WLPZHXM).FirstOrDefault(); - + onr.N_B_STATE = 1; + tN_Inbound_Detailcx.Add(onr); MaterialVoucher materialVoucher = new MaterialVoucher(); materialVoucher.S_NO = po.S_NO; materialVoucher.S_TYPE = po.S_IN_TYPE; @@ -5288,6 +5636,11 @@ } + } + if (tN_Inbound_Detailcx.Count() > 0) + { + db.Updateable(tN_Inbound_Detailcx).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); + await AddCenter(db, tN_Inbound_Detailcx); } if (materiallist.Count() > 0) { @@ -5325,12 +5678,8 @@ //} //db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand(); } - - if (tN_Inbound_Details.Count() > 0) - { - db.Updateable(tN_Inbound_Details).UpdateColumns(it => new { it.N_B_STATE }).ExecuteCommand(); - } - var newpodetai= db.Queryable<TN_Inbound_Detail>().Where(a => a.S_IO_NO == model.S_NO).ToList(); + #endregion + var newpodetai = db.Queryable<TN_Inbound_Detail>().Where(a => a.S_IO_NO == model.S_NO).ToList(); int cout = newpodetai.Where(s => s.N_B_STATE != 1).Count(); if (cout==0) { @@ -5378,11 +5727,16 @@ List<OutboundRecord> records = new List<OutboundRecord>(); foreach (var item in po) { + var pz = pzs.Where(s => s.S_WLBM == item.S_ITEM_CODE && s.S_WLH == item.N_BS_ROW_NO).ToList().FirstOrDefault(); - + var S_TYPE = "鍥炲簱"; + if (pz!=null) + { + S_TYPE = pz.S_TYPE; + } OutboundRecord outboundRecord = new OutboundRecord(); outboundRecord.S_NO = item.S_BS_NO; - outboundRecord.S_TYPE = pz?.S_TYPE; + outboundRecord.S_TYPE = S_TYPE; outboundRecord.S_WLPZBH = pz?.S_WLBM; outboundRecord.S_WLPZND = pz?.S_WLPZND; outboundRecord.S_WLBM = item.S_ITEM_CODE; -- Gitblit v1.9.1