From 736fb5782d375908a9097780743913193ffde494 Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期四, 03 七月 2025 17:28:14 +0800 Subject: [PATCH] 完善部分日志内容,优化查询语句和日志打印代码 --- api/ApiHelper.cs | 305 ++++++++++++++------------------------------------ 1 files changed, 86 insertions(+), 219 deletions(-) diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs index a61f780..3675e5e 100644 --- a/api/ApiHelper.cs +++ b/api/ApiHelper.cs @@ -27,106 +27,74 @@ /// <returns></returns> public static SimpleResult GoodpackOffline(GoodpackOfflineInfo model) { var db = new SqlHelper<object>().GetInstance(); - var info = ""; - - var taskInfo = Settings.GetTaskInfo(ETask.M婊$涓嬬嚎鍏ュ簱); - var taskName = taskInfo.TaskName; - var startAreas = taskInfo.StartAreas; - var endAreas = taskInfo.EndAreas; + var taskInfo = ETask.M婊$涓嬬嚎鍏ュ簱.Info(); + const string preLog = "API锛氭弧绠变笅绾垮叆搴擄細"; + const string cntrType = "濂借繍绠�; try { if (model.Num <= 0) { - info = $"鐗╂枡鏁伴噺'{model.Num}'涓嶅悎娉曪細鐗╂枡鏁伴噺搴旇澶т簬0"; - LogHelper.Info(info); - return NewSimpleResult(400, info); + return NewSimpleResult(400, preLog + $"鐗╂枡鏁伴噺'{model.Num}'涓嶅悎娉曪紒瑕佹眰锛氱墿鏂欐暟閲忥紴0"); } - var cgDetail = db.Queryable<TN_CG_Detail>().Where(d => d.S_ITEM_CODE == model.ItemCode && d.S_BATCH_NO == model.BatchNo && d.N_ITEM_STATE == 1 && d.S_ITEM_STATE == "寰呮").First(); // TODO model 涓�鏁伴噺銆佽鏍兼槸鍚︿篃鍙備笌姣斿 寰呭悗缁姹�- + // TODO model 涓�鏁伴噺銆佽鏍兼槸鍚︿篃鍙備笌姣斿 寰呭悗缁姹�+ var cgDetail = db.Queryable<TN_CG_Detail>().Where(d => d.S_ITEM_CODE == model.ItemCode && d.S_BATCH_NO == model.BatchNo && d.N_ITEM_STATE == 1 && d.S_ITEM_STATE == "寰呮").First(); if (cgDetail == null) { - info = $"PDA鎵爜鐗╂枡淇℃伅涓庤创鏍囨満浼犻�鐨勪俊鎭笉涓�嚧锛� + JsonConvert.SerializeObject(model); - LogHelper.Info(info); - return NewSimpleResult(1, info); + return NewSimpleResult(1, preLog + $"娌℃湁鍦ㄨ揣鍝佹槑缁嗚〃涓壘鍒癧鐗╂枡缂栫爜='{model.ItemCode}',鎵规鍙�'{model.BatchNo}']鐨勭墿鏂欙紒璇锋鏌ワ細PDA鎵爜鐗╂枡淇℃伅涓庤创鏍囨満浼犻�鐨勪俊鎭槸鍚︿竴鑷达紒瑕佹眰锛氱墿鏂欑姸鎬�'寰呮'锛�); } - var startLoc = db.Queryable<TN_Location>() - .Where(l => l.S_CODE == model.StartLoc) - .Where(l => startAreas.Contains(l.S_AREA_CODE)) - .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") - .Where(l => l.N_CURRENT_NUM == 0) - .First(); - + var startLoc = LocationHelper.Query(db, 0, 0, taskInfo.StartAreas, model.StartLoc).First(); if (startLoc == null) { - info = $"锛氭病鏈夋壘鍒拌捣鐐硅揣浣�{model.StartLoc}'锛佽姹傦細鏈笂閿併�鏁伴噺=0銆佽揣鍖哄睘浜嶽{string.Join(", ", startAreas)}]"; - LogHelper.Info(info); - return NewSimpleResult(2, info); + return NewSimpleResult(2, LogBuilder.StartLocNotFound(0, 0, taskInfo.StartAreas, model.StartLoc, preLog)); } - startLoc.N_CURRENT_NUM = 1; // 缁戝畾鍚�+ var locCntrRel = new TN_Loc_Container { S_LOC_CODE = startLoc.S_CODE, S_CNTR_CODE = cgDetail.S_CNTR_CODE, - S_CNTR_TYPE = "濂借繍绠�, + S_CNTR_TYPE = cntrType, }; - var endLoc = db.Queryable<TN_Location>() - .Where(l => startAreas.Contains(l.S_AREA_CODE)) - .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") - .Where(l => l.N_CURRENT_NUM == 0) - .OrderBy(l => new { l.N_LAYER }).First(); - + // Order锛氭寜璐т綅灞傛暟锛屼粠灏忓埌澶ф帓鍒�+ var endLoc = LocationHelper.Query(db, 0, 0, taskInfo.EndAreas).OrderBy(l => new { l.N_LAYER }).First(); if (endLoc == null) { - info = $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紝闇�婊¤冻锛氭湭涓婇攣銆佸綋鍓嶅鍣ㄦ暟閲�0"; - LogHelper.Info(info); - return NewSimpleResult(3, info); + return NewSimpleResult(3, LogBuilder.EndLocNotFound(0, 0, taskInfo.EndAreas, pre: preLog)); } LocationHelper.LockStartLoc(ref startLoc); LocationHelper.LockEndLoc(ref endLoc); var cntId = locCntrRel.S_CNTR_CODE; // 瀹瑰櫒鍙�- var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName); + var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskInfo.TaskName); using (var tran = db.Ado.UseTran()) { if (db.Insertable<TN_Loc_Container>(locCntrRel).ExecuteCommand() <= 0) { - info = $"鎻掑叆璐т綅瀹瑰櫒缁戝畾琛ㄥけ璐ワ細" + JsonConvert.SerializeObject(locCntrRel); tran.RollbackTran(); - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, preLog + $"鎻掑叆[璐т綅瀹瑰櫒缁戝畾琛╙澶辫触锛� + JsonConvert.SerializeObject(locCntrRel)); } if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, it.N_CURRENT_NUM, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂拌捣鐐硅揣浣峽startLoc.S_CODE}閿佺姸鎬佸け璐�; - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, preLog + $"鏇存柊璧风偣璐т綅'{startLoc.S_CODE}'閿佺姸鎬佸け璐ワ紒"); } if (db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂扮粓鐐硅揣浣峽endLoc.S_CODE}閿佺姸鎬佸け璐�; - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, preLog + $"鏇存柊缁堢偣璐т綅'{endLoc.S_CODE}'閿佺姸鎬佸け璐ワ紒"); } if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{taskInfo.TaskName}'澶辫触锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"); } tran.CommitTran(); - info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; - LogHelper.Info(info); - return NewSimpleResult(0, info); + return NewSimpleResult(0, LogBuilder.CreateTaskSuccess(task, preLog)); } } catch (Exception ex) { - info = $"鍙戠敓浜嗗紓甯革細{ex.Message}"; LogHelper.InfoEx(ex); - return NewSimpleResult(-1, info); + return NewSimpleResult(-1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}", false); } } @@ -141,58 +109,35 @@ /// <returns></returns> public static SimpleResult EmptyInboundPallet(EmptyInboundInfo model) { var db = new SqlHelper<object>().GetInstance(); - var info = ""; - - var taskInfo = Settings.GetTaskInfo(ETask.K绌烘墭鍏ュ簱); - var taskName = taskInfo.TaskName; - var startAreas = taskInfo.StartAreas; - var endAreas = taskInfo.EndAreas; - var cntrType = "鎵樼洏"; + var taskInfo = ETask.K绌烘墭鍏ュ簱.Info(); + const string pre = "API锛氱┖鎵樺叆搴擄細"; + const string cntrType = "鎵樼洏"; try { - var startLoc = db.Queryable<TN_Location>() - .Where(l => l.S_CODE == model.StartLoc) - .Where(l => startAreas.Contains(l.S_AREA_CODE)) - .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") - .Where(l => l.N_CURRENT_NUM == 0) - .First(); - + var startLoc = LocationHelper.Query(db, 0, 0, taskInfo.StartAreas, model.StartLoc).First(); if (startLoc == null) { - info = $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'锛屾垨涓嶅叿澶囪捣鐐瑰彇璐ц姹傦細鏈笂閿併�缁戝畾鍓嶆棤璐х墿"; - LogHelper.Info(info); - return NewSimpleResult(1, info); + return NewSimpleResult(1, LogBuilder.StartLocNotFound(0, 0, taskInfo.StartAreas, model.StartLoc, pre)); } - var cntr = db.Queryable<TN_Container>() - .Where(c => c.S_CODE == model.CntrCode) // 瀵逛簬鍓嶅彴绋嬪簭鑰岃█锛孲_CODE灏辨槸涓婚敭锛岀淮鎶ゆ椂蹇呭畾鍞竴 - .First(); - + // 瀵逛簬鍓嶅彴绋嬪簭鑰岃█锛孲_CODE灏辨槸涓婚敭锛岀淮鎶ゆ椂蹇呭畾鍞竴 + var cntr = db.Queryable<TN_Container>().Where(c => c.S_CODE == model.CntrCode).First(); if (cntr == null) { - info = $"瀹瑰櫒'{model.CntrCode}'鍦ㄣ�瀹瑰櫒琛ㄣ�涓笉瀛樺湪锛岃鍦ㄥ墠鍙伴〉闈腑缁存姢锛�; - LogHelper.Info(info); - return NewSimpleResult(2, info); + return NewSimpleResult(2, pre + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪锛岃鍦ㄥ墠鍙伴〉闈腑缁存姢锛�); } - if (cntr.S_TYPE != cntrType) { // 绌烘墭鍏ュ簱 - info = $"瀹瑰櫒'{model.CntrCode}'鍦ㄣ�瀹瑰櫒琛ㄣ�涓殑绫诲瀷涓�{cntr.S_TYPE}'锛屼笌杈撳叆鐨勫鍣ㄧ被鍨�{cntrType}'涓嶅悓锛�; - LogHelper.Info(info); - return NewSimpleResult(3, info); + if (cntr.S_TYPE != cntrType) { + return NewSimpleResult(3, pre + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷涓�{cntr.S_TYPE}'锛屼笌杈撳叆鐨勫鍣ㄧ被鍨�{cntrType}'涓嶅悓锛�); } // 鍋囧畾浜哄伐涓嶄細灏嗘湁鐗╂枡鐨勭瀛愭斁鍦ㄧ┖绠卞叆搴撴帴椹充綅锛屾病鏈夊繀瑕佹鏌� // 濡傛灉浜哄伐灏嗗嚭搴撳悗鐨勬墭鐩樺叆搴擄紝杩欐椂鐗╂枡淇℃伅骞舵病鏈夊垹闄わ紝闇�灏嗘墭鐩樼墿鏂欑殑鍏崇郴瑙i櫎 - var cgDetailOld = db.Queryable<TN_CG_Detail>() - .Where(d => d.S_CNTR_CODE == model.CntrCode) - .First(); + var cgDetailOld = db.Queryable<TN_CG_Detail>().Where(d => d.S_CNTR_CODE == model.CntrCode).First(); // 濡傛灉浜哄伐灏嗗嚭搴撳悗鐨勬墭鐩樺叆搴擄紝姝ゆ椂瀹瑰櫒浠嶇劧涓庢棫鐨勫嚭搴撹揣浣嶇粦瀹氾紝闇�妫�煡 - var locCntrRelOld = db.Queryable<TN_Loc_Container>() - .Where(c => c.S_CNTR_CODE == model.CntrCode) - .First(); + var locCntrRelOld = db.Queryable<TN_Loc_Container>().Where(c => c.S_CNTR_CODE == model.CntrCode).First(); TN_Location locOld = null; if (locCntrRelOld != null) { // 濡傛灉闇�瑙g粦瀹瑰櫒璐т綅锛屼篃闇�淇敼璐т綅淇℃伅 - locOld = db.Queryable<TN_Location>() - .Where(l => l.S_CODE == locCntrRelOld.S_LOC_CODE).First(); + locOld = db.Queryable<TN_Location>().Where(l => l.S_CODE == locCntrRelOld.S_LOC_CODE).First(); if (locOld != null) { locOld.N_CURRENT_NUM = 0; // 濡傛灉鏃ц揣浣嶅瓨鍦紝灏嗘棫璐т綅鐨勬暟閲忚缃负 0 locOld.T_MODIFY = DateTime.Now; @@ -200,97 +145,69 @@ } // 缁戝畾璐т綅鍜屽鍣ㄥ彿锛圥DA鍦ㄦ帴椹充綅缁戝畾锛�- var locCntrRel = new TN_Loc_Container { - S_LOC_CODE = startLoc.S_CODE, - S_CNTR_CODE = cntr.S_CODE, - S_CNTR_TYPE = cntrType, // 绌烘墭鍏ュ簱 - }; - + var locCntrRel = new TN_Loc_Container { S_LOC_CODE = startLoc.S_CODE, S_CNTR_CODE = cntr.S_CODE, S_CNTR_TYPE = cntrType }; startLoc.N_CURRENT_NUM = 1; // 缁戝畾鍚� - var endLoc = db.Queryable<TN_Location>() - .Where(l => startAreas.Contains(l.S_AREA_CODE)) - .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") - .Where(l => l.N_CURRENT_NUM == 0) - .OrderBy(l => new { l.N_LAYER, l.N_ROW, l.N_COL }) // TODO 鏆傚畾閫夋嫨鏈�綆灞傛寜鍖轰綅椤哄簭鍏ュ簱锛屽悗闈㈠緟淇敼 - .First(); + // TODO 鏆傚畾閫夋嫨鏈�綆灞傛寜鍖轰綅椤哄簭鍏ュ簱锛屽悗闈㈠緟淇敼 + var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y" && taskInfo.EndAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 0).OrderBy(l => new { l.N_LAYER, l.N_ROW, l.N_COL }).First(); if (endLoc == null) { - info = $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒闇�锛氭湭涓婇攣銆佹棤璐х墿"; - LogHelper.Info(info); - return NewSimpleResult(4, info); + return NewSimpleResult(4, pre + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒瑕佹眰锛�1)鏈笂閿�(2)鏁伴噺=0;(3)璐у尯灞炰簬['{string.Join("','", taskInfo.EndAreas)}'];"); } LocationHelper.LockStartLoc(ref startLoc); LocationHelper.LockEndLoc(ref endLoc); var cntId = locCntrRel.S_CNTR_CODE; // 瀹瑰櫒鍙�- var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName); + var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskInfo.TaskName); using (var tran = db.Ado.UseTran()) { if (cgDetailOld != null && db.Deleteable<TN_CG_Detail>(cgDetailOld).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鍒犻櫎銆愭棫鐗╂枡淇℃伅銆戝け璐ワ細" + JsonConvert.SerializeObject(cgDetailOld); - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, pre + $"鍒犻櫎[鏃х墿鏂欎俊鎭痌澶辫触锛� + JsonConvert.SerializeObject(cgDetailOld)); } if (locCntrRelOld != null && db.Deleteable<TN_Loc_Container>(locCntrRelOld).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鍒犻櫎銆愭棫璐т綅瀹瑰櫒鍏崇郴銆戝け璐ワ細" + JsonConvert.SerializeObject(locCntrRelOld); - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, pre + $"鍒犻櫎[鏃ц揣浣嶅鍣ㄥ叧绯籡澶辫触锛� + JsonConvert.SerializeObject(locCntrRelOld)); } if (locOld != null && db.Updateable<TN_Location>(locOld).UpdateColumns(l => new { l.N_CURRENT_NUM, l.T_MODIFY }).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鏇存柊鏃ц揣浣嶃�瀹瑰櫒鏁伴噺銆戝け璐ワ細" + JsonConvert.SerializeObject(locOld); - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, pre + $"鏇存柊[鏃ц揣浣峕[瀹瑰櫒鏁伴噺]澶辫触锛� + JsonConvert.SerializeObject(locOld)); } if (db.Insertable<TN_Loc_Container>(locCntrRel).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鎻掑叆銆愯揣浣嶅鍣ㄥ叧绯汇�澶辫触锛� + JsonConvert.SerializeObject(locCntrRel); - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, pre + $"鎻掑叆[璐т綅瀹瑰櫒鍏崇郴]澶辫触锛� + JsonConvert.SerializeObject(locCntrRel)); } - if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, it.N_CURRENT_NUM }).ExecuteCommand() <= 0) { + if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, it.N_CURRENT_NUM, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂拌捣鐐硅揣浣�{startLoc.S_CODE}'閿佺姸鎬佸け璐�; - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, pre + $"鏇存柊璧风偣璐т綅'{startLoc.S_CODE}'閿佺姸鎬佸け璐ワ紒"); } - if (db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY }).ExecuteCommand() <= 0) { + if (db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂扮粓鐐硅揣浣�{endLoc.S_CODE}'閿佺姸鎬佸け璐�; - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, pre + $"鏇存柊缁堢偣璐т綅'{endLoc.S_CODE}'閿佺姸鎬佸け璐ワ紒"); } if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, pre + $"鐢熸垚浠诲姟'{taskInfo.TaskName}'澶辫触锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"); } tran.CommitTran(); - info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; - LogHelper.Info(info); - return NewSimpleResult(0, info); + return NewSimpleResult(0, pre + $"鐢熸垚浠诲姟'{taskInfo.TaskName}'鎴愬姛锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"); } } catch (Exception ex) { - info = $"鍙戠敓浜嗗紓甯革細{ex.Message}"; LogHelper.InfoEx(ex); - return NewSimpleResult(-1, info); + return NewSimpleResult(-1, pre + $"鍙戠敓浜嗗紓甯革細{ex.Message}", false); } } /// <summary> - /// 绌虹鍏ュ簱(濂借繍绠� + /// 绌虹鍏ュ簱 /// </summary> /// <remarks> /// 浜哄伐锛氱┖绠�=鎼繍==>鍏ュ簱鎺ラ┏浣嶏紝闇�鏂扮粦瀹氬鍣ㄨ揣浣�br/> @@ -299,150 +216,100 @@ /// <returns></returns> public static SimpleResult EmptyInboundGoodpack(EmptyInboundInfo model) { var db = new SqlHelper<object>().GetInstance(); - var info = ""; - - var taskInfo = Settings.GetTaskInfo(ETask.K绌虹鍏ュ簱); - var taskName = taskInfo.TaskName; - var startAreas = taskInfo.StartAreas; - var endAreas = taskInfo.EndAreas; + var taskInfo = ETask.K绌虹鍏ュ簱.Info(); + const string pre = "API锛氱┖绠卞叆搴擄細"; const string cntrType = "濂借繍绠�; try { - var startLoc = db.Queryable<TN_Location>() - .Where(l => l.S_CODE == model.StartLoc) - .Where(l => startAreas.Contains(l.S_AREA_CODE)) - .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") - .Where(l => l.N_CURRENT_NUM == 0) // 缁戝畾鍓�- .First(); - + var startLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y" && l.S_CODE == model.StartLoc && taskInfo.StartAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 0).First(); if (startLoc == null) { - info = $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'锛屾垨涓嶆弧瓒宠姹傦細鏈笂閿併�褰撳墠瀹瑰櫒鏁伴噺=0"; - LogHelper.Info(info); - return NewSimpleResult(2, info); + return NewSimpleResult(1, pre + $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'锛佽姹傦細(1)鏈笂閿�(2)鏁伴噺=0;(3)璐у尯灞炰簬['{string.Join("','", taskInfo.StartAreas)}'];"); } - var cntr = db.Queryable<TN_Container>() - .Where(c => c.S_CODE == model.CntrCode) // 瀵逛簬鍓嶅彴绋嬪簭鑰岃█锛孲_CODE灏辨槸涓婚敭锛岀淮鎶ゆ椂蹇呭畾鍞竴 - .First(); - + // 瀵逛簬鍓嶅彴绋嬪簭鑰岃█锛孲_CODE灏辨槸涓婚敭锛岀淮鎶ゆ椂蹇呭畾鍞竴 + var cntr = db.Queryable<TN_Container>().Where(c => c.S_CODE == model.CntrCode).First(); if (cntr == null) { - info = $"瀹瑰櫒'{model.CntrCode}'鍦ㄥ鍣ㄨ〃涓笉瀛樺湪锛岃鍦ㄥ墠鍙伴〉闈腑缁存姢锛�; - LogHelper.Info(info); - return NewSimpleResult(2, info); + return NewSimpleResult(2, pre + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪锛岃鍦ㄥ墠鍙伴〉闈腑缁存姢锛�); } if (cntr.S_TYPE != cntrType) { - info = $"瀹瑰櫒'{model.CntrCode}'鍦ㄥ鍣ㄨ〃涓殑绫诲瀷涓�{cntr.S_TYPE}'锛屼笌杈撳叆鐨勫鍣ㄧ被鍨�{cntrType}'涓嶅悓锛�; - LogHelper.Info(info); - return NewSimpleResult(2, info); + return NewSimpleResult(3, pre + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷涓�{cntr.S_TYPE}'锛屼笌杈撳叆鐨勫鍣ㄧ被鍨�{cntrType}'涓嶅悓锛�); } // 鍋囧畾浜哄伐涓嶄細灏嗘湁鐗╂枡鐨勭瀛愭斁鍦ㄧ┖绠卞叆搴撴帴椹充綅锛屾病鏈夊繀瑕佹鏌� // 濡傛灉浜哄伐灏嗗嚭搴撳悗鐨勬墭鐩樺叆搴擄紝杩欐椂鐗╂枡淇℃伅骞舵病鏈夊垹闄わ紝闇�灏嗘墭鐩樼墿鏂欑殑鍏崇郴瑙i櫎 - var cgDetailOld = db.Queryable<TN_CG_Detail>() - .Where(d => d.S_CNTR_CODE == model.CntrCode).First(); + var cgDetailOld = db.Queryable<TN_CG_Detail>().Where(d => d.S_CNTR_CODE == model.CntrCode).First(); // 濡傛灉浜哄伐灏嗗嚭搴撳悗鐨勬墭鐩樺叆搴擄紝姝ゆ椂瀹瑰櫒浠嶇劧涓庢棫鐨勫嚭搴撹揣浣嶇粦瀹氾紝闇�妫�煡 - var locCntrRelOld = db.Queryable<TN_Loc_Container>() - .Where(c => c.S_CNTR_CODE == model.CntrCode).First(); + var locCntrRelOld = db.Queryable<TN_Loc_Container>().Where(c => c.S_CNTR_CODE == model.CntrCode).First(); TN_Location locOld = null; if (locCntrRelOld != null) { // 濡傛灉闇�瑙g粦瀹瑰櫒璐т綅锛屼篃闇�淇敼璐т綅淇℃伅 - locOld = db.Queryable<TN_Location>() - .Where(l => l.S_CODE == locCntrRelOld.S_LOC_CODE).First(); + locOld = db.Queryable<TN_Location>().Where(l => l.S_CODE == locCntrRelOld.S_LOC_CODE).First(); if (locOld != null) { locOld.N_CURRENT_NUM = 0; // 濡傛灉鏃ц揣浣嶅瓨鍦紝灏嗘棫璐т綅鐨勬暟閲忚缃负 0 + locOld.T_MODIFY = DateTime.Now; } } - // 缁戝畾璐т綅鍜屽鍣ㄥ彿 - var locCntrRel = new TN_Loc_Container { - S_LOC_CODE = startLoc.S_CODE, - S_CNTR_CODE = cntr.S_CODE, - S_CNTR_TYPE = cntrType, - }; - + // 缁戝畾璐т綅鍜屽鍣ㄥ彿锛圥DA鍦ㄦ帴椹充綅缁戝畾锛�+ var locCntrRel = new TN_Loc_Container { S_LOC_CODE = startLoc.S_CODE, S_CNTR_CODE = cntr.S_CODE, S_CNTR_TYPE = cntrType }; startLoc.N_CURRENT_NUM = 1; // 缁戝畾鍚� - var endLoc = db.Queryable<TN_Location>() - .Where(l => endAreas.Contains(l.S_AREA_CODE)) - .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") - .Where(l => l.N_CURRENT_NUM == 0) - .OrderBy(l => new { l.N_LAYER }) // TODO 鏆傚畾閫夋嫨鏈�綆灞傞『搴忓叆搴擄紝鍚庨潰寰呬慨鏀�- .First(); + // TODO 鏆傚畾閫夋嫨鏈�綆灞傛寜鍖轰綅椤哄簭鍏ュ簱锛屽悗闈㈠緟淇敼 + var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y" && taskInfo.EndAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 0).OrderBy(l => new { l.N_LAYER, l.N_ROW, l.N_COL }).First(); if (endLoc == null) { - info = $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒闇�锛氭湭涓婇攣銆佹棤璐х墿"; - LogHelper.Info(info); - return NewSimpleResult(4, info); + return NewSimpleResult(4, pre + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒瑕佹眰锛�1)鏈笂閿�(2)鏁伴噺=0;(3)璐у尯灞炰簬['{string.Join("','", taskInfo.EndAreas)}'];"); } - - var cntId = locCntrRel.S_CNTR_CODE; LocationHelper.LockStartLoc(ref startLoc); LocationHelper.LockEndLoc(ref endLoc); - var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName); + var cntId = locCntrRel.S_CNTR_CODE; // 瀹瑰櫒鍙�+ var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskInfo.TaskName); using (var tran = db.Ado.UseTran()) { - // 瀛樺湪鏃с�鐗╂枡鏄庣粏銆戣〃鏃讹紝鍒犻櫎鏃ц〃 if (cgDetailOld != null && db.Deleteable<TN_CG_Detail>(cgDetailOld).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鍒犻櫎銆愭棫鐗╂枡淇℃伅銆戝け璐ワ細" + JsonConvert.SerializeObject(cgDetailOld); - LogHelper.Info(info); - return NewSimpleResult(500, info); - } - // 瀛樺湪鏃с�璐т綅瀹瑰櫒缁戝畾銆戣〃鏃讹紝鍒犻櫎鏃ц〃 - if (locCntrRelOld != null && db.Deleteable<TN_Loc_Container>(locCntrRelOld).ExecuteCommand() <= 0) { - tran.RollbackTran(); - info = $"鍒犻櫎銆愭棫璐т綅瀹瑰櫒鍏崇郴銆戝け璐ワ細" + JsonConvert.SerializeObject(locCntrRelOld); - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, pre + $"鍒犻櫎[鏃х墿鏂欎俊鎭痌澶辫触锛� + JsonConvert.SerializeObject(cgDetailOld)); } - if (locOld != null && db.Updateable<TN_Location>(locOld).UpdateColumns(l => l.N_CURRENT_NUM).ExecuteCommand() <= 0) { + if (locCntrRelOld != null && db.Deleteable<TN_Loc_Container>(locCntrRelOld).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鏇存柊鏃ц揣浣嶃�瀹瑰櫒鏁伴噺銆戝け璐ワ細" + JsonConvert.SerializeObject(locOld); - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, pre + $"鍒犻櫎[鏃ц揣浣嶅鍣ㄥ叧绯籡澶辫触锛� + JsonConvert.SerializeObject(locCntrRelOld)); + } + + if (locOld != null && db.Updateable<TN_Location>(locOld).UpdateColumns(l => new { l.N_CURRENT_NUM, l.T_MODIFY }).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return NewSimpleResult(500, pre + $"鏇存柊[鏃ц揣浣峕[瀹瑰櫒鏁伴噺]澶辫触锛� + JsonConvert.SerializeObject(locOld)); } if (db.Insertable<TN_Loc_Container>(locCntrRel).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鎻掑叆銆愯揣浣嶅鍣ㄥ叧绯汇�澶辫触锛� + JsonConvert.SerializeObject(locCntrRel); - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, pre + $"鎻掑叆[璐т綅瀹瑰櫒鍏崇郴]澶辫触锛� + JsonConvert.SerializeObject(locCntrRel)); } - if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, it.N_CURRENT_NUM }).ExecuteCommand() <= 0) { + if (db.Updateable<TN_Location>(startLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, it.N_CURRENT_NUM, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂拌捣鐐硅揣浣�{startLoc.S_CODE}'閿佺姸鎬佸け璐�; - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, pre + $"鏇存柊璧风偣璐т綅'{startLoc.S_CODE}'閿佺姸鎬佸け璐ワ紒"); } - if (db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY }).ExecuteCommand() <= 0) { + if (db.Updateable<TN_Location>(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂扮粓鐐硅揣浣�{endLoc.S_CODE}'閿佺姸鎬佸け璐�; - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, pre + $"鏇存柊缁堢偣璐т綅'{endLoc.S_CODE}'閿佺姸鎬佸け璐ワ紒"); } if (db.Insertable<TN_Task>(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; - LogHelper.Info(info); - return NewSimpleResult(500, info); + return NewSimpleResult(500, pre + $"鐢熸垚浠诲姟'{taskInfo.TaskName}'澶辫触锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"); } tran.CommitTran(); - info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; - LogHelper.Info(info); - return NewSimpleResult(0, info); + return NewSimpleResult(0, pre + $"鐢熸垚浠诲姟'{taskInfo.TaskName}'鎴愬姛锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"); } } catch (Exception ex) { - info = $"鍙戠敓浜嗗紓甯革細{ex.Message}"; LogHelper.InfoEx(ex); - return NewSimpleResult(-1, info); + return NewSimpleResult(-1, pre + $"鍙戠敓浜嗗紓甯革細{ex.Message}", false); } } -- Gitblit v1.9.1