From f8d23dcf8d6501482db1a5180325194232afe96c Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期五, 18 七月 2025 17:30:09 +0800 Subject: [PATCH] 封装部分业务代码,继续优化日志打印流程 --- models/TN_Location.cs | 12 device/S7Helper.cs | 54 swagger.js | 98 +- models/TN_CG_Detail.cs | 6 Program.cs | 12 models/TN_Container.cs | 4 core/Monitor.cs | 222 ++---- device/ProductionLineDevice.cs | 16 dispatch/HanAo.cs | 8 api/ApiModel.cs | 46 models/TN_Outbound_Plan.cs | 2 wms/WCSHelper.cs | 121 +++ models/TN_Relocation_List.cs | 2 device/TcpClient.cs | 4 device/TcpServer.cs | 26 config/config.comment.json | 28 device/OpcUaHelper.cs | 8 api/AgvController.cs | 6 models/BaseModel.cs | 6 models/TN_Record_Table.cs | 2 process/TaskProcess.cs | 35 App_Start/Startup.cs | 2 dispatch/NDCApi.cs | 36 models/TN_CAR_IN.cs | 2 device/TcpClientHelper.cs | 83 +- device/ModbusHelper.cs | 36 process/DeviceProcess.cs | 2 models/TN_RelocationList_Detail.cs | 2 Properties/AssemblyInfo.cs | 6 wms/LocationHelper.cs | 52 dispatch/HostToAGV.cs | 4 util/LogHelper.cs | 15 models/TN_SpotCheck_Detail.cs | 2 models/TN_Task.cs | 6 core/WCSCore.cs | 135 ++-- util/SqlHelper.cs | 4 device/ModbusFactory.cs | 154 ++-- api/DebugController.cs | 38 util/HttpHelper.cs | 4 models/TN_Spot_Check.cs | 2 models/TN_Outbound_Detail.cs | 8 dispatch/GZRobot.cs | 18 api/ApiHelper.cs | 477 +++++++-------- api/MoboxController.cs | 4 models/TN_Outbound_Order.cs | 8 45 files changed, 922 insertions(+), 896 deletions(-) diff --git a/App_Start/Startup.cs b/App_Start/Startup.cs index 16d4445..087146b 100644 --- a/App_Start/Startup.cs +++ b/App_Start/Startup.cs @@ -14,7 +14,7 @@ namespace HH.WCS.Mobox3.DSZSH { public class Startup { public void Configuration(IAppBuilder app) { - // 鏈夊叧濡備綍閰嶇疆搴旂敤绋嬪簭鐨勮缁嗕俊鎭紝璇疯闂�https://go.microsoft.com/fwlink/?LinkID=316888 + // 鏈夊叧濡備綍閰嶇疆搴旂敤绋嬪簭鐨勮缁嗕俊鎭�璇疯闂�https://go.microsoft.com/fwlink/?LinkID=316888 HttpConfiguration config = new HttpConfiguration(); config.Routes.MapHttpRoute( name: "DefaultApi", diff --git a/Program.cs b/Program.cs index 4447e8b..29085fa 100644 --- a/Program.cs +++ b/Program.cs @@ -68,7 +68,7 @@ } /// <summary> - /// 寮�惎TCP鍗忚閫氳锛屾湇鍔$ + /// 寮�惎TCP鍗忚閫氳,鏈嶅姟绔� /// </summary> private static void StartTcp() { @@ -123,16 +123,16 @@ tasks.Add(GetTask(WCSCore.Dispatch)); - // 娴嬭瘯锛氭墭鐩樹笅绾�+ // 娴嬭瘯:鎵樼洏涓嬬嚎 //tasks.Add(GetTask(Monitor.CheckInbound)); - // 杞锛氬嚭搴撳崟鐘舵� + // 杞:鍑哄簱鍗曠姸鎬� tasks.Add(GetTask(Monitor.CheckOutboundOrder)); - // 杞锛氭娊妫�崟鐘舵� + // 杞:鎶芥鍗曠姸鎬� tasks.Add(GetTask(Monitor.CheckCheckOrder)); - // 杞锛氱Щ搴撳崟鐘舵� + // 杞:绉诲簱鍗曠姸鎬� tasks.Add(GetTask(Monitor.CheckShiftOrder)); Task.WaitAll(tasks.ToArray()); @@ -151,7 +151,7 @@ } catch (Exception ex) { - LogHelper.Error(ex.Message, ex); + LogHelper.InfoEx(ex); } Thread.Sleep(intervalMs); } diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 71b07bb..6dc54f2 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -19,7 +19,7 @@ //璇峰皢姝ょ被鍨嬬殑 ComVisible 鐗规�璁剧疆涓�true銆� [assembly: ComVisible(false)] -// 濡傛灉姝ら」鐩悜 COM 鍏紑锛屽垯涓嬪垪 GUID 鐢ㄤ簬绫诲瀷搴撶殑 ID +// 濡傛灉姝ら」鐩悜 COM 鍏紑,鍒欎笅鍒�GUID 鐢ㄤ簬绫诲瀷搴撶殑 ID [assembly: Guid("8e589c0d-7d65-474d-8ced-e34e087126a1")] // 绋嬪簭闆嗙殑鐗堟湰淇℃伅鐢变笅鍒楀洓涓�缁勬垚: @@ -29,8 +29,8 @@ // 鐢熸垚鍙� // 淇鍙� // -//鍙互鎸囧畾鎵�湁杩欎簺鍊硷紝涔熷彲浠ヤ娇鐢ㄢ�鐢熸垚鍙封�鍜屸�淇鍙封�鐨勯粯璁ゅ� -//閫氳繃浣跨敤 "*"锛屽涓嬫墍绀� +//鍙互鎸囧畾鎵�湁杩欎簺鍊�涔熷彲浠ヤ娇鐢ㄢ�鐢熸垚鍙封�鍜屸�淇鍙封�鐨勯粯璁ゅ� +//閫氳繃浣跨敤 "*",濡備笅鎵�ず: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/api/AgvController.cs b/api/AgvController.cs index f01ab17..744500e 100644 --- a/api/AgvController.cs +++ b/api/AgvController.cs @@ -16,7 +16,7 @@ namespace HH.WCS.Mobox3.DSZSH.api { /// <summary> - /// 璁惧淇℃伅涓婃姤锛圚ostToAGV涓婃姤銆佹澀濂ュ爢鍨涙満銆佸浗鑷狝GV锛�+ /// 璁惧淇℃伅涓婃姤 (HostToAGV涓婃姤,鏉ゥ鍫嗗灈鏈�鍥借嚜AGV) /// </summary> [RoutePrefix("agv")] public class AgvController : ApiController @@ -29,7 +29,7 @@ [HttpPost] [Route("AGVCallbackState")] public ReturnResult AGVCallbackState(AgvTaskState model){ - LogHelper.InfoHostToAGV("AGVCallbackState锛歂DC浠诲姟鐘舵�鍥炴姤", model); + LogHelper.InfoHostToAGV("AGVCallbackState:NDC浠诲姟鐘舵�鍥炴姤", model); return WCSCore.OperateAgvTaskStatus(model); } @@ -41,7 +41,7 @@ [HttpPost] [Route("SafetyInteraction")] public ReturnResult SafetyInteraction(SafetyInteractionInfo model) { - LogHelper.InfoHostToAGV("SafetyInteraction锛欰GV涓庝骇绾胯繘琛屽畨鍏ㄤ氦浜�, model); + LogHelper.InfoHostToAGV("SafetyInteraction:AGV涓庝骇绾胯繘琛屽畨鍏ㄤ氦浜�, model); return WCSCore.SafetyInteraction(model); } } diff --git a/api/ApiHelper.cs b/api/ApiHelper.cs index 805fb09..f1adf15 100644 --- a/api/ApiHelper.cs +++ b/api/ApiHelper.cs @@ -25,83 +25,84 @@ public static SimpleResult GoodpackOffline(GoodpackOfflineInfo model) { var db = new SqlHelper<object>().GetInstance(); var taskInfo = ETask.M婊$涓嬬嚎鍏ュ簱.Info(); - const string preLog = "API锛氭弧绠变笅绾垮叆搴擄細"; + const string preLog = "API:婊$涓嬬嚎鍏ュ簱:"; const string cntrType = "濂借繍绠�; try { if (model.Num <= 0) { - return NewSimpleResult(400, preLog + $"鐗╂枡鏁伴噺'{model.Num}'涓嶅悎娉曪紒瑕佹眰锛氱墿鏂欐暟閲忥紴0"); + return NewSimpleResult(400, preLog + $"鐗╂枡鏁伴噺'{model.Num}'涓嶅悎娉�瑕佹眰:鐗╂枡鏁伴噺锛�"); } - // 妫�煡璐у搧瀹瑰櫒琛細鏄惁宸茬粡瀛樺湪璐存爣鏈轰紶閫掔殑寰呭叆搴撶墿鏂欎俊鎭�- // TODO锛氭暟閲忋�瑙勬牸鏄惁涔熷弬涓庢瘮瀵癸紵 + // 妫�煡璐у搧瀹瑰櫒琛�鏄惁宸茬粡瀛樺湪璐存爣鏈轰紶閫掔殑寰呭叆搴撶墿鏂欎俊鎭�+ // TODO:鏁伴噺,瑙勬牸鏄惁涔熷弬涓庢瘮瀵癸紵 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) { - return NewSimpleResult(1, preLog + $"娌℃湁鍦╗璐у搧鏄庣粏琛╙涓壘鍒癧鐗╂枡缂栫爜='{model.ItemCode}',鎵规鍙�'{model.BatchNo}']鐨勭墿鏂欙紒璇锋鏌ワ細PDA鎵爜鐗╂枡淇℃伅涓庤创鏍囨満浼犻�鐨勪俊鎭槸鍚︿竴鑷达紒瑕佹眰锛氱墿鏂欑姸鎬�'寰呮'"); + return NewSimpleResult(1, preLog + $"娌℃湁鍦╗璐у搧鏄庣粏琛╙涓壘鍒癧鐗╂枡缂栫爜='{model.ItemCode}',鎵规鍙�'{model.BatchNo}']鐨勭墿鏂�璇锋鏌�PDA鎵爜鐗╂枡淇℃伅涓庤创鏍囨満浼犻�鐨勪俊鎭槸鍚︿竴鑷�瑕佹眰:鐗╂枡鐘舵�='寰呮'"); } - // 鏌ヨ璧风偣璐т綅锛氭暟閲�0 - var startLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y").Where(l => l.S_CODE == model.StartLoc && taskInfo.StartAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 0).First(); + // 鏌ヨ璧风偣璐т綅:鏁伴噺=0 + 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) { - return NewSimpleResult(2, preLog + $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'锛佽姹傦細閿佺姸鎬�'鏃�锛屽綋鍓嶅鍣ㄦ暟閲�0锛屾墍鍦ㄥ簱鍖�{LogObject(taskInfo.StartAreas)}"); + return NewSimpleResult(2, preLog + $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'!瑕佹眰:閿佺姸鎬�'鏃�,褰撳墠瀹瑰櫒鏁伴噺=0,鎵�湪搴撳尯={LogObject(taskInfo.StartAreas)}"); } - // 鍜屾弧鎵樹笅绾垮叆搴撶殑閫昏緫涓�嚧锛岀敱浜庡鍣ㄧЩ鍔ㄤ笉浼氭洿鏀圭粦瀹氫俊鎭紝鎵�互蹇呴』鍒犻櫎鏃ф暟鎹�- var locCntrRelOld = db.Queryable<TN_Loc_Container>() - .Where(c => c.S_CNTR_CODE == cgDetail.S_CNTR_CODE).First(); + // 鍜屾弧鎵樹笅绾垮叆搴撶殑閫昏緫涓�嚧,鐢变簬瀹瑰櫒绉诲姩涓嶄細鏇存敼缁戝畾淇℃伅,鎵�互蹇呴』鍒犻櫎鏃ф暟鎹�+ var old = WCSHelper.GetLocCntrCg(cgDetail.S_CNTR_CODE, skipCgDetail: true); - // 缁戝畾璐т綅瀹瑰櫒锛岃捣鐐硅揣浣嶅綋鍓嶆暟閲�1 - var locCntrRel = new TN_Loc_Container { S_LOC_CODE = startLoc.S_CODE, S_CNTR_CODE = cgDetail.S_CNTR_CODE, S_CNTR_TYPE = cntrType,}; - startLoc.N_CURRENT_NUM = 1; + // 缁戝畾璐т綅瀹瑰櫒,璧风偣璐т綅褰撳墠鏁伴噺=1 + var locCntrRel = WCSHelper.BindLocCntr(ref startLoc, cgDetail.S_CNTR_CODE); + locCntrRel.S_CNTR_TYPE = cntrType; // 鏌ヨ缁堢偣璐т綅 - // Order锛氭寜璐т綅灞傛暟锛屼粠灏忓埌澶ф帓鍒�- var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") - .Where(l => taskInfo.EndAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 0).OrderBy(l => new { l.N_LAYER }).First(); + // Order:鎸夎揣浣嶅眰鏁�浠庡皬鍒板ぇ鎺掑垪 + 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 }).First(); if (endLoc == null) { - return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒瑕佹眰锛氶攣鐘舵�='鏃�锛屽綋鍓嶅鍣ㄦ暟閲�0锛屾墍鍦ㄥ簱鍖�{LogObject(taskInfo.EndAreas)}"); + return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣�瑕佹眰:閿佺姸鎬�'鏃�,褰撳墠瀹瑰櫒鏁伴噺=0,鎵�湪搴撳尯={LogObject(taskInfo.EndAreas)}"); } - // 璧风偣缁堢偣涓婇攣锛屽垱寤轰换鍔�+ // 鏇存柊[璧风偣/缁堢偣]閿佺姸鎬�鍒涘缓浠诲姟 WCSHelper.LockStartLoc(ref startLoc); WCSHelper.LockEndLoc(ref endLoc); var task = WCSHelper.BuildTask(startLoc, endLoc, locCntrRel.S_CNTR_CODE, taskInfo.TaskName); using (var tran = db.Ado.UseTran()) { - if (locCntrRelOld != null) { - if (db.Deleteable(locCntrRelOld).ExecuteCommand() <= 0 && - db.Updateable<TN_Location>().SetColumns(l => l.N_CURRENT_NUM == 0).Where(l => l.S_CODE == locCntrRelOld.S_LOC_CODE).ExecuteCommand() <= 0) { - tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鍒犻櫎鏃ц揣浣嶅鍣ㄥ叧绯昏〃澶辫触锛佽揣浣嶇紪鐮�{locCntrRelOld.S_LOC_CODE}锛屽鍣ㄧ紪鐮�{locCntrRelOld.S_CNTR_CODE}"); - } + // 鍒犻櫎/鏇存柊鏃璐т綅/瀹瑰櫒/鐗╂枡]淇℃伅 + if (old.LocCntrRel != null && db.Deleteable(old.LocCntrRel).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return NewSimpleResult(500, preLog + $"鍒犻櫎[鏃ц揣浣嶅鍣ㄥ叧绯籡澶辫触!鏁版嵁:{LogObject(old.LocCntrRel)}"); + } + if (old.Location != null && db.Updateable(old.Location).UpdateColumns(l => new { l.N_CURRENT_NUM, l.T_MODIFY }).ExecuteCommand() <= 0) { + tran.RollbackTran(); + return NewSimpleResult(500, preLog + $"鏇存柊[鏃ц揣浣峾褰撳墠瀹瑰櫒鏁伴噺]澶辫触!璐т綅='{old.Location.S_CODE}',鏁伴噺=>{old.Location.N_CURRENT_NUM}"); } + // 鎻掑叆鏂扮粦瀹氱殑[璐т綅-瀹瑰櫒]琛� if (db.Insertable(locCntrRel).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鎻掑叆[瀹瑰櫒璐т綅缁戝畾琛╙澶辫触锛佹暟鎹細{LogObject(locCntrRel)}"); + return NewSimpleResult(500, preLog + $"鎻掑叆[瀹瑰櫒璐т綅缁戝畾琛╙澶辫触!鏁版嵁:{LogObject(locCntrRel)}"); } + // 鏇存柊[璧风偣/缁堢偣]閿佺姸鎬�鍒涘缓浠诲姟 if (db.Updateable(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(); - return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触锛佽捣鐐�'{startLoc.S_CODE}'锛岄攣鐘舵�=>'鍑哄簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触!璧风偣='{startLoc.S_CODE}',閿佺姸鎬�>'鍑哄簱閿�"); } - if (db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触锛佺粓鐐�'{endLoc.S_CODE}'锛岄攣鐘舵�=>'鍏ュ簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触!缁堢偣='{endLoc.S_CODE}',閿佺姸鎬�>'鍏ュ簱閿�"); } - if (db.Insertable(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } + // 鎻愪氦鏁版嵁搴撴洿鏀� tran.CommitTran(); - return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } } catch (Exception ex) { - return NewSimpleResult(-1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewSimpleResult(ex, preLog); } } @@ -113,95 +114,86 @@ public static SimpleResult EmptyInboundPallet(EmptyInboundInfo model) { var db = new SqlHelper<object>().GetInstance(); var taskInfo = ETask.K绌烘墭鍏ュ簱.Info(); - const string preLog = "API锛氱┖鎵樺叆搴擄細"; + const string preLog = "API:绌烘墭鍏ュ簱:"; const string cntrType = "鎵樼洏"; try { - // 鏌ヨ璧风偣璐т綅锛氭暟閲�0 - var startLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y").Where(l => l.S_CODE == model.StartLoc && taskInfo.StartAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 0).First(); + // 鏌ヨ璧风偣璐т綅:鏁伴噺=0 + 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) { - return NewSimpleResult(1, preLog + $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'锛佽姹傦細閿佺姸鎬�'鏃�锛涘綋鍓嶅鍣ㄦ暟閲�0锛涙墍鍦ㄥ簱鍖�{LogObject(taskInfo.StartAreas)}"); + return NewSimpleResult(1, preLog + $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'!瑕佹眰:閿佺姸鎬�'鏃�;褰撳墠瀹瑰櫒鏁伴噺=0;鎵�湪搴撳尯={LogObject(taskInfo.StartAreas)}"); } - // 鏌ヨ瀹瑰櫒琛細瀹瑰櫒绫诲瀷瀛楁 + // 鏌ヨ瀹瑰櫒琛�瀹瑰櫒绫诲瀷瀛楁 var cntr = db.Queryable<TN_Container>().Where(c => c.S_CODE == model.CntrCode).First(); if (cntr == null) { - return NewSimpleResult(2, preLog + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪锛岃鍦ㄥ墠鍙伴〉闈腑缁存姢锛�); + return NewSimpleResult(2, preLog + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪,璇峰湪鍓嶅彴椤甸潰涓淮鎶�"); } if (cntr.S_TYPE != cntrType) { - return NewSimpleResult(3, preLog + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷涓�{cntr.S_TYPE}'锛屼笌杈撳叆鐨勫鍣ㄧ被鍨�{cntrType}'涓嶅悓锛�); + return NewSimpleResult(3, preLog + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷涓�{cntr.S_TYPE}',涓庤緭鍏ョ殑瀹瑰櫒绫诲瀷'{cntrType}'涓嶅悓!"); } + + // 绌虹鍏ュ簱鏃�濡傛灉瀛樺湪鏃х殑缁戝畾鏁版嵁,鍒犻櫎 + var old = WCSHelper.GetLocCntrCg(model.CntrCode); - // 绌虹鍏ュ簱鏃讹紝濡傛灉瀛樺湪鏃х殑缁戝畾鏁版嵁锛屽垹闄�- 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(); - TN_Location locOld = null; - if (locCntrRelOld != null) { - 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; - } - } - - // 缁戝畾璐т綅瀹瑰櫒锛岃捣鐐硅揣浣嶅綋鍓嶆暟閲�1 - 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; + // 缁戝畾璐т綅瀹瑰櫒,璧风偣璐т綅褰撳墠鏁伴噺=1 + var locCntrRel = WCSHelper.BindLocCntr(ref startLoc, cntr.S_CODE); + locCntrRel.S_CNTR_TYPE = cntrType; // 鏌ヨ缁堢偣璐т綅 - // Order锛氬眰鏁颁粠浣庡埌楂樸�琛屻�鍒�- var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y").Where(l => 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(); + // Order:灞傛暟浠庝綆鍒伴珮,琛�鍒�+ 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) { - return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒瑕佹眰锛氶攣鐘舵�='鏃�锛涘綋鍓嶅鍣ㄦ暟閲�0锛涙墍鍦ㄥ簱鍖�{LogObject(taskInfo.EndAreas)}"); + return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣�瑕佹眰:閿佺姸鎬�'鏃�;褰撳墠瀹瑰櫒鏁伴噺=0;鎵�湪搴撳尯={LogObject(taskInfo.EndAreas)}"); } - // 璧风偣缁堢偣涓婇攣锛屽垱寤轰换鍔�+ // 璧风偣缁堢偣涓婇攣,鍒涘缓浠诲姟 WCSHelper.LockStartLoc(ref startLoc); WCSHelper.LockEndLoc(ref endLoc); var task = WCSHelper.BuildTask(startLoc, endLoc, locCntrRel.S_CNTR_CODE, taskInfo.TaskName); using (var tran = db.Ado.UseTran()) { - if (cgDetailOld != null && db.Deleteable(cgDetailOld).ExecuteCommand() <= 0) { + if (old.CgDetail != null && db.Deleteable(old.CgDetail).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鍒犻櫎[鏃х墿鏂欎俊鎭痌澶辫触锛佹暟鎹細{LogObject(cgDetailOld)}"); + return NewSimpleResult(500, preLog + $"鍒犻櫎[鏃х墿鏂欎俊鎭痌澶辫触!鏁版嵁:{LogObject(old.CgDetail)}"); } - if (locCntrRelOld != null && db.Deleteable(locCntrRelOld).ExecuteCommand() <= 0) { + if (old.LocCntrRel != null && db.Deleteable(old.LocCntrRel).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鍒犻櫎[鏃ц揣浣嶅鍣ㄥ叧绯籡澶辫触锛佹暟鎹細{LogObject(locCntrRelOld)}"); + return NewSimpleResult(500, preLog + $"鍒犻櫎[鏃ц揣浣嶅鍣ㄥ叧绯籡澶辫触!鏁版嵁:{LogObject(old.LocCntrRel)}"); } - if (locOld != null && db.Updateable(locOld).UpdateColumns(l => new { l.N_CURRENT_NUM, l.T_MODIFY }).ExecuteCommand() <= 0) { + if (old.Location != null && db.Updateable(old.Location).UpdateColumns(l => new { l.N_CURRENT_NUM, l.T_MODIFY }).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鏇存柊[鏃ц揣浣峾褰撳墠瀹瑰櫒鏁伴噺]澶辫触锛佽揣浣�'{locOld.S_CODE}'锛屾暟閲�>{locOld.N_CURRENT_NUM}"); + return NewSimpleResult(500, preLog + $"鏇存柊[鏃ц揣浣峾褰撳墠瀹瑰櫒鏁伴噺]澶辫触!璐т綅='{old.Location.S_CODE}',鏁伴噺=>{old.Location.N_CURRENT_NUM}"); } if (db.Insertable(locCntrRel).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鎻掑叆[璐т綅瀹瑰櫒缁戝畾琛╙澶辫触锛佹暟鎹細{LogObject(locCntrRel)}"); + return NewSimpleResult(500, preLog + $"鎻掑叆[璐т綅瀹瑰櫒缁戝畾琛╙澶辫触!鏁版嵁:{LogObject(locCntrRel)}"); } + // 鏇存柊[璧风偣/缁堢偣]閿佺姸鎬�鍒涘缓浠诲姟 if (db.Updateable(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(); - return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触锛佽捣鐐�'{startLoc.S_CODE}'锛岄攣鐘舵�=>'鍑哄簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触!璧风偣='{startLoc.S_CODE}',閿佺姸鎬�>'鍑哄簱閿�"); } - if (db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触锛佺粓鐐�'{endLoc.S_CODE}'锛岄攣鐘舵�=>'鍏ュ簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触!缁堢偣='{endLoc.S_CODE}',閿佺姸鎬�>'鍏ュ簱閿�"); } - if (db.Insertable(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } + // 鎻愪氦鏁版嵁搴撴洿鏀� tran.CommitTran(); - return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } } catch (Exception ex) { - return NewSimpleResult(-1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewSimpleResult(ex, preLog); } } @@ -212,46 +204,37 @@ public static SimpleResult EmptyInboundGoodpack(EmptyInboundInfo model) { var db = new SqlHelper<object>().GetInstance(); var taskInfo = ETask.K绌虹鍏ュ簱.Info(); - const string preLog = "API锛氱┖绠卞叆搴擄細"; + const string preLog = "API:绌虹鍏ュ簱:"; const string cntrType = "濂借繍绠�; try { - // 鏌ヨ璧风偣璐т綅锛氭暟閲�0 + // 鏌ヨ璧风偣璐т綅:鏁伴噺=0 var startLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y").Where(l => l.S_CODE == model.StartLoc && taskInfo.StartAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 0).First(); if (startLoc == null) { - return NewSimpleResult(1, preLog + $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'锛佽姹傦細閿佺姸鎬�'鏃�锛涘綋鍓嶅鍣ㄦ暟閲�0锛涙墍鍦ㄥ簱鍖�{LogObject(taskInfo.StartAreas)}"); + return NewSimpleResult(1, preLog + $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'!瑕佹眰:閿佺姸鎬�'鏃�;褰撳墠瀹瑰櫒鏁伴噺=0;鎵�湪搴撳尯={LogObject(taskInfo.StartAreas)}"); } - // 鏌ヨ瀹瑰櫒琛細瀹瑰櫒绫诲瀷瀛楁 + // 鏌ヨ瀹瑰櫒琛�瀹瑰櫒绫诲瀷瀛楁 var cntr = db.Queryable<TN_Container>().Where(c => c.S_CODE == model.CntrCode).First(); if (cntr == null) { - return NewSimpleResult(2, preLog + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪锛岃鍦ㄥ墠鍙伴〉闈腑缁存姢锛�); + return NewSimpleResult(1, $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪,璇峰湪鍓嶅彴椤甸潰涓淮鎶�"); } if (cntr.S_TYPE != cntrType) { - return NewSimpleResult(3, preLog + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷涓�{cntr.S_TYPE}'锛屼笌杈撳叆鐨勫鍣ㄧ被鍨�{cntrType}'涓嶅悓锛�); + return NewSimpleResult(2, preLog + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷鏄�{cntr.S_TYPE},涓嶆槸'{cntrType}'!"); } - // 绌虹鍏ュ簱鏃讹紝濡傛灉瀛樺湪鏃х殑缁戝畾鏁版嵁锛屽垹闄�- 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(); - TN_Location locOld = null; - if (locCntrRelOld != null) { - 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 old = WCSHelper.GetLocCntrCg(model.CntrCode); - // 缁戝畾璐т綅瀹瑰櫒锛岃捣鐐硅揣浣嶅綋鍓嶆暟閲�1 - 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; + // 缁戝畾璐т綅瀹瑰櫒,璧风偣璐т綅褰撳墠鏁伴噺=1 + var locCntrRel = WCSHelper.BindLocCntr(ref startLoc, model.CntrCode); + locCntrRel.S_CNTR_TYPE = cntrType; // 鏌ヨ缁堢偣璐т綅 - // Order锛氬眰鏁颁粠浣庡埌楂樸�琛屻�鍒�+ // Order:灞傛暟浠庝綆鍒伴珮,琛�鍒� var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y").Where(l => 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) { - return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒瑕佹眰锛氶攣鐘舵�='鏃�锛涘綋鍓嶅鍣ㄦ暟閲�0锛涙墍鍦ㄥ簱鍖�{LogObject(taskInfo.EndAreas)}"); + return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣�瑕佹眰:閿佺姸鎬�'鏃�;褰撳墠瀹瑰櫒鏁伴噺=0;鎵�湪搴撳尯={LogObject(taskInfo.EndAreas)}"); } WCSHelper.LockStartLoc(ref startLoc); @@ -259,47 +242,45 @@ var task = WCSHelper.BuildTask(startLoc, endLoc, locCntrRel.S_CNTR_CODE, taskInfo.TaskName); using (var tran = db.Ado.UseTran()) { - if (cgDetailOld != null && db.Deleteable(cgDetailOld).ExecuteCommand() <= 0) { + if (old.CgDetail != null && db.Deleteable(old.CgDetail).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鍒犻櫎[鏃х墿鏂欎俊鎭痌澶辫触锛佹暟鎹細{LogObject(cgDetailOld)}"); + return NewSimpleResult(500, preLog + $"鍒犻櫎[鏃х墿鏂欎俊鎭痌澶辫触!鏁版嵁:{LogObject(old.CgDetail)}"); } - - if (locCntrRelOld != null && db.Deleteable(locCntrRelOld).ExecuteCommand() <= 0) { + if (old.LocCntrRel != null && db.Deleteable(old.LocCntrRel).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鍒犻櫎[鏃ц揣浣嶅鍣ㄥ叧绯籡澶辫触锛� + LogObject(locCntrRelOld)); + return NewSimpleResult(500, preLog + $"鍒犻櫎[鏃ц揣浣嶅鍣ㄥ叧绯籡澶辫触!鏁版嵁:{LogObject(old.LocCntrRel)}"); } - - if (locOld != null && db.Updateable(locOld).UpdateColumns(l => new { l.N_CURRENT_NUM, l.T_MODIFY }).ExecuteCommand() <= 0) { + if (old.Location != null && db.Updateable(old.Location).UpdateColumns(l => new { l.N_CURRENT_NUM, l.T_MODIFY }).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鏇存柊[鏃ц揣浣峾瀹瑰櫒鏁伴噺]澶辫触锛� + LogObject(locOld)); + return NewSimpleResult(500, preLog + $"鏇存柊[鏃ц揣浣峾褰撳墠瀹瑰櫒鏁伴噺]澶辫触!璐т綅='{old.Location.S_CODE}',鏁伴噺=>{old.Location.N_CURRENT_NUM}"); } if (db.Insertable(locCntrRel).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鎻掑叆[璐т綅瀹瑰櫒鍏崇郴]澶辫触锛� + LogObject(locCntrRel)); + return NewSimpleResult(500, preLog + $"鎻掑叆[璐т綅瀹瑰櫒鍏崇郴]澶辫触:" + LogObject(locCntrRel)); } + // 鏇存柊[璧风偣/缁堢偣]閿佺姸鎬�鍒涘缓浠诲姟 if (db.Updateable(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(); - return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触锛佽捣鐐�'{startLoc.S_CODE}'锛岄攣鐘舵�=>'鍑哄簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触!璧风偣='{startLoc.S_CODE}',閿佺姸鎬�>'鍑哄簱閿�"); } - if (db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触锛佺粓鐐�'{endLoc.S_CODE}'锛岄攣鐘舵�=>'鍏ュ簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触!缁堢偣='{endLoc.S_CODE}',閿佺姸鎬�>'鍏ュ簱閿�"); } - if (db.Insertable(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } + // 鎻愪氦鏁版嵁搴撴洿鏀� tran.CommitTran(); - return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } } catch (Exception ex) { - return NewSimpleResult(-1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewSimpleResult(ex, preLog); } } @@ -311,41 +292,41 @@ public static SimpleResult EmptyOnlinePallet(EmptyOnlinePalletInfo model) { var db = new SqlHelper<object>().GetInstance(); var taskInfo = ETask.K绌烘墭涓婄嚎鍑哄簱.Info(); - const string preLog = "API锛氱┖鎵樹笂绾垮嚭搴擄細"; + const string preLog = "API:绌烘墭涓婄嚎鍑哄簱:"; const string cntrType = "鎵樼洏"; try { - // 鏌ヨ瀹瑰櫒琛細瀹瑰櫒绫诲瀷瀛楁 + // 鏌ヨ瀹瑰櫒琛�瀹瑰櫒绫诲瀷瀛楁 var cntr = db.Queryable<TN_Container>().Where(c => c.S_CODE == model.CntId).First(); if (cntr == null) { - return NewSimpleResult(1, $"瀹瑰櫒'{model.CntId}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪锛岃鍦ㄥ墠鍙伴〉闈腑缁存姢锛�); + return NewSimpleResult(1, $"瀹瑰櫒'{model.CntId}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪,璇峰湪鍓嶅彴椤甸潰涓淮鎶�"); } if (cntr.S_TYPE != cntrType) { - return NewSimpleResult(2, preLog + $"瀹瑰櫒'{model.CntId}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷鏄�{cntr.S_TYPE}锛屼笉鏄�{cntrType}'锛�); + return NewSimpleResult(2, preLog + $"瀹瑰櫒'{model.CntId}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷鏄�{cntr.S_TYPE},涓嶆槸'{cntrType}'!"); } var needUpdateContainer = false; if (string.IsNullOrEmpty(cntr.S_SPEC)) { - // TEMP 鐩墠娴佺▼锛氬鏋滃鍣ㄨ〃涓鏍硷紙鐗╂枡缂栫爜锛変负绌猴紝鏍规嵁娴佺▼鐨勭墿鏂欎俊鎭啓鍏�- // 寰呭畾锛氬悗闈㈠彲鑳戒細鏇存敼娴佺▼锛屾垨鑰呯敤鍏朵粬淇℃伅锛堝鐗╂枡绫诲瀷/瑙勬牸锛変綔涓哄鍣ㄧ殑瑙勬牸 + // TEMP 鐩墠娴佺▼:濡傛灉瀹瑰櫒琛ㄤ腑瑙勬牸 (鐗╂枡缂栫爜) 涓虹┖,鏍规嵁娴佺▼鐨勭墿鏂欎俊鎭啓鍏�+ // 寰呭畾:鍚庨潰鍙兘浼氭洿鏀规祦绋�鎴栬�鐢ㄥ叾浠栦俊鎭�(濡傜墿鏂欑被鍨�瑙勬牸) 浣滀负瀹瑰櫒鐨勮鏍� needUpdateContainer = true; cntr.S_SPEC = model.ItemCode; - LogHelper.Info($"瀹瑰櫒'{model.CntId}'鍦╗瀹瑰櫒琛╙涓璠瑙勬牸(鐗╂枡缂栫爜)]涓虹┖锛屽皢鐗╂枡缂栫爜'{model.ItemCode}'鍐欏叆瀹瑰櫒鐨勮鏍�); + LogHelper.Info($"瀹瑰櫒'{model.CntId}'鍦╗瀹瑰櫒琛╙涓璠瑙勬牸(鐗╂枡缂栫爜)]涓虹┖,灏嗙墿鏂欑紪鐮�{model.ItemCode}'鍐欏叆瀹瑰櫒鐨勮鏍�); } else if (cntr.S_SPEC != model.ItemCode) { - return NewSimpleResult(3, $"瀹瑰櫒'{model.CntId}'宸茬粡涓庣墿鏂欑被鍨�{cntr.S_SPEC}'缁戝畾锛屾棤娉曠敤浜庤杞界墿鏂�{model.ItemCode}'锛�); + return NewSimpleResult(3, $"瀹瑰櫒'{model.CntId}'宸茬粡涓庣墿鏂欑被鍨�{cntr.S_SPEC}'缁戝畾,鏃犳硶鐢ㄤ簬瑁呰浇鐗╂枡'{model.ItemCode}'!"); } var startLoc = db.Queryable<TN_Location>().LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE).Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y").Where((l, c) => taskInfo.StartAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 1 && c.S_CNTR_CODE == model.CntId && c.S_CNTR_TYPE == cntrType).First(); if (startLoc == null) { - return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勮捣鐐硅揣浣嶏紒瑕佹眰锛氶攣鐘舵�='鏃�锛涘綋鍓嶅鍣ㄦ暟閲�1锛涙墍鍦ㄥ簱鍖�{LogObject(taskInfo.StartAreas)}锛岀粦瀹氬鍣ㄧ紪鐮�'{model.CntId}'锛岀粦瀹氬鍣ㄧ被鍨�'{cntrType}'"); + return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勮捣鐐硅揣浣�瑕佹眰:閿佺姸鎬�'鏃�;褰撳墠瀹瑰櫒鏁伴噺=1;鎵�湪搴撳尯={LogObject(taskInfo.StartAreas)},缁戝畾瀹瑰櫒缂栫爜='{model.CntId}',缁戝畾瀹瑰櫒绫诲瀷='{cntrType}'"); } // 鏌ヨ缁堢偣璐т綅 var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y").Where(l => taskInfo.EndAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 0).First(); if (endLoc == null) { - return NewSimpleResult(5, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒瑕佹眰锛氶攣鐘舵�='鏃�锛涘綋鍓嶅鍣ㄦ暟閲�0锛涙墍鍦ㄥ簱鍖�{LogObject(taskInfo.EndAreas)}"); + return NewSimpleResult(5, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣�瑕佹眰:閿佺姸鎬�'鏃�;褰撳墠瀹瑰櫒鏁伴噺=0;鎵�湪搴撳尯={LogObject(taskInfo.EndAreas)}"); } WCSHelper.LockStartLoc(ref startLoc); @@ -357,30 +338,30 @@ using (var tran = db.Ado.UseTran()) { if (needUpdateContainer && db.Updateable(cntr).UpdateColumns(c => new { c.S_SPEC, c.S_SOURCE, c.T_MODIFY }).ExecuteCommand() <= 0) { - return NewSimpleResult(500, preLog + $"鏇存柊[瀹瑰櫒琛╙澶辫触锛佹暟鎹細{LogObject(cntr)}"); + return NewSimpleResult(500, preLog + $"鏇存柊[瀹瑰櫒琛╙澶辫触!鏁版嵁:{LogObject(cntr)}"); } + // 鏇存柊[璧风偣/缁堢偣]閿佺姸鎬�鍒涘缓浠诲姟 if (db.Updateable(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(); - return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触锛佽捣鐐�'{startLoc.S_CODE}'锛岄攣鐘舵�=>'鍑哄簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触!璧风偣='{startLoc.S_CODE}',閿佺姸鎬�>'鍑哄簱閿�"); } - if (db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触锛佺粓鐐�'{endLoc.S_CODE}'锛岄攣鐘舵�=>'鍏ュ簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触!缁堢偣='{endLoc.S_CODE}',閿佺姸鎬�>'鍏ュ簱閿�"); } - if (db.Insertable(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } + // 鎻愪氦鏁版嵁搴撴洿鏀� tran.CommitTran(); - return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } } catch (Exception ex) { - return NewSimpleResult(-1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewSimpleResult(ex, preLog); } } @@ -392,30 +373,27 @@ public static SimpleResult EmptyOnlineGoodpack(EmptyOnlineGoodpackInfo model) { var db = new SqlHelper<object>().GetInstance(); var taskInfo = ETask.K绌虹涓婄嚎鍑哄簱.Info(); - const string preLog = "API锛氱┖绠变笂绾垮嚭搴擄細"; + const string preLog = "API:绌虹涓婄嚎鍑哄簱:"; const string cntrType = "濂借繍绠�; try { - var cntr = db.Queryable<TN_Container>() - .Where(c => c.S_CODE == model.CntId) - .First(); - + var cntr = db.Queryable<TN_Container>().Where(c => c.S_CODE == model.CntId).First(); if (cntr == null) { - return NewSimpleResult(1, preLog + $"瀹瑰櫒'{model.CntId}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪锛岃鍦ㄥ墠鍙伴〉闈腑缁存姢锛�); + return NewSimpleResult(1, preLog + $"瀹瑰櫒'{model.CntId}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪,璇峰湪鍓嶅彴椤甸潰涓淮鎶�"); } if (cntr.S_TYPE != cntrType) { - return NewSimpleResult(2, preLog + $"瀹瑰櫒'{model.CntId}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷='{cntr.S_TYPE}'锛屼笉鏄�{cntrType}'锛�); + return NewSimpleResult(2, preLog + $"瀹瑰櫒'{model.CntId}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷='{cntr.S_TYPE}',涓嶆槸'{cntrType}'!"); } var startLoc = db.Queryable<TN_Location>().LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE).Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y").Where((l, c) => taskInfo.StartAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 1 && c.S_CNTR_CODE == model.CntId && c.S_CNTR_TYPE == cntrType).First(); if (startLoc == null) { - return NewSimpleResult(2, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勮捣鐐硅揣浣嶏紒瑕佹眰锛氶攣鐘舵�='鏃�锛屽綋鍓嶅鍣ㄦ暟閲�1锛屾墍鍦ㄥ簱鍖�{LogObject(taskInfo.StartAreas)}锛岀粦瀹氬鍣ㄧ紪鐮�'{model.CntId}'锛岀粦瀹氬鍣ㄧ被鍨�'{cntrType}'"); + return NewSimpleResult(2, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勮捣鐐硅揣浣�瑕佹眰:閿佺姸鎬�'鏃�,褰撳墠瀹瑰櫒鏁伴噺=1,鎵�湪搴撳尯={LogObject(taskInfo.StartAreas)},缁戝畾瀹瑰櫒缂栫爜='{model.CntId}',缁戝畾瀹瑰櫒绫诲瀷='{cntrType}'"); } var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") .Where(l => taskInfo.EndAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 0).First(); if (endLoc == null) { - return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒瑕佹眰锛氶攣鐘舵�='鏃�锛屽綋鍓嶅鍣ㄦ暟閲�0锛屾墍鍦ㄥ簱鍖�{LogObject(taskInfo.EndAreas)}"); + return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣�瑕佹眰:閿佺姸鎬�'鏃�,褰撳墠瀹瑰櫒鏁伴噺=0,鎵�湪搴撳尯={LogObject(taskInfo.EndAreas)}"); } WCSHelper.LockStartLoc(ref startLoc); @@ -423,27 +401,27 @@ var task = WCSHelper.BuildTask(startLoc, endLoc, model.CntId, taskInfo.TaskName); using (var tran = db.Ado.UseTran()) { + // 鏇存柊[璧风偣/缁堢偣]閿佺姸鎬�鍒涘缓浠诲姟 if (db.Updateable(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(); - return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触锛佽捣鐐�'{startLoc.S_CODE}'锛岄攣鐘舵�=>'鍑哄簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触!璧风偣='{startLoc.S_CODE}',閿佺姸鎬�>'鍑哄簱閿�"); } - if (db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触锛佺粓鐐�'{endLoc.S_CODE}'锛岄攣鐘舵�=>'鍏ュ簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触!缁堢偣='{endLoc.S_CODE}',閿佺姸鎬�>'鍏ュ簱閿�"); } - if (db.Insertable(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } + // 鎻愪氦鏁版嵁搴撴洿鏀� tran.CommitTran(); - return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } } catch (Exception ex) { - return NewSimpleResult(-1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewSimpleResult(ex, preLog); } } @@ -455,32 +433,29 @@ public static SimpleResult QualifiedBack(QualifiedBackInfo model) { var db = new SqlHelper<object>().GetInstance(); var taskInfo = ETask.C鎶芥鍚堟牸鍥炲簱.Info(); - const string preLog = "API锛氭娊妫�悎鏍煎洖搴�; + const string preLog = "API:鎶芥鍚堟牸鍥炲簱"; try { var cgDetail = db.Queryable<TN_CG_Detail>() .Where(d => d.S_ITEM_CODE == model.ItemCode && d.S_CNTR_CODE == model.CntrCode).First(); if (cgDetail == null) { - return NewSimpleResult(2, preLog + "娌℃湁鎵惧埌寰呭洖搴撶殑鎶芥鐗╂枡锛� + LogObject(model)); + return NewSimpleResult(2, preLog + "娌℃湁鎵惧埌寰呭洖搴撶殑鎶芥鐗╂枡:" + LogObject(model)); } - var locCntrRel = db.Queryable<TN_Loc_Container>() - .Where(c => c.S_CNTR_CODE == cgDetail.S_CNTR_CODE).First(); + var locCntrRel = db.Queryable<TN_Loc_Container>().Where(c => c.S_CNTR_CODE == cgDetail.S_CNTR_CODE).First(); if (locCntrRel == null) { return NewSimpleResult(3, preLog + $"瀹瑰櫒{model.CntrCode}鍦ㄨ揣浣嶅鍣ㄥ叧绯昏〃涓笉瀛樺湪"); } - var startLoc = db.Queryable<TN_Location>() - .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y").Where(l => l.S_CODE == locCntrRel.S_LOC_CODE && taskInfo.StartAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 1).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 == locCntrRel.S_LOC_CODE && taskInfo.StartAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 1).First(); if (startLoc == null) { - return NewSimpleResult(4, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勮捣鐐硅揣浣嶏紒瑕佹眰锛氶攣鐘舵�='鏃�锛屽綋鍓嶅鍣ㄦ暟閲�1锛屾墍鍦ㄥ簱鍖�{LogObject(taskInfo.StartAreas)}"); + return NewSimpleResult(4, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勮捣鐐硅揣浣�瑕佹眰:閿佺姸鎬�'鏃�,褰撳墠瀹瑰櫒鏁伴噺=1,鎵�湪搴撳尯={LogObject(taskInfo.StartAreas)}"); } var endAreas = locCntrRel.S_CNTR_CODE == "鎵樼洏" ? taskInfo.EndAreas_Pallet : taskInfo.EndAreas_Goodpack; - var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") - .Where(l => endAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 0).First(); + var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y" && endAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 0).First(); if (endLoc == null) { - return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒瑕佹眰锛氶攣鐘舵�='鏃�锛屽綋鍓嶅鍣ㄦ暟閲�0锛屾墍鍦ㄥ簱鍖�{LogObject(endAreas)}"); + return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣�瑕佹眰:閿佺姸鎬�'鏃�,褰撳墠瀹瑰櫒鏁伴噺=0,鎵�湪搴撳尯={LogObject(endAreas)}"); } cgDetail.N_ITEM_STATE = 0; @@ -496,30 +471,30 @@ using (var tran = db.Ado.UseTran()) { if (db.Updateable(cgDetail).UpdateColumns(it => new { it.N_ITEM_STATE, it.S_ITEM_STATE, it.T_MODIFY }).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鏇存柊[鐗╂枡鏄庣粏琛╙澶辫触锛佺墿鏂欏彿='{cgDetail.S_ITEM_CODE}'锛岀墿鏂欑姸鎬�>'鍚堟牸'"); + return NewSimpleResult(500, preLog + $"鏇存柊[鐗╂枡鏄庣粏琛╙澶辫触!鐗╂枡鍙�'{cgDetail.S_ITEM_CODE}',鐗╂枡鐘舵�=>'鍚堟牸'"); } + // 鏇存柊[璧风偣/缁堢偣]閿佺姸鎬�鍒涘缓浠诲姟 if (db.Updateable(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(); - return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触锛佽捣鐐�'{startLoc.S_CODE}'锛岄攣鐘舵�=>'鍑哄簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触!璧风偣='{startLoc.S_CODE}',閿佺姸鎬�>'鍑哄簱閿�"); } - if (db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触锛佺粓鐐�'{endLoc.S_CODE}'锛岄攣鐘舵�=>'鍏ュ簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触!缁堢偣='{endLoc.S_CODE}',閿佺姸鎬�>'鍏ュ簱閿�"); } - if (db.Insertable(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } + // 鎻愪氦鏁版嵁搴撴洿鏀� tran.CommitTran(); - return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } } catch (Exception ex) { - return NewSimpleResult(-1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewSimpleResult(ex, preLog); } } @@ -531,34 +506,33 @@ public static SimpleResult UnqualifiedShift(UnqualifiedShiftInfo model) { var db = new SqlHelper<object>().GetInstance(); var taskInfo = ETask.C鎶芥涓嶅悎鏍肩Щ搴�Info(); - const string preLog = "API锛氭娊妫�笉鍚堟牸绉诲簱锛�; + const string preLog = "API:鎶芥涓嶅悎鏍肩Щ搴�"; try { if (!taskInfo.EndAreas.Contains(model.EndArea)) { - return NewSimpleResult(1, preLog + $"缁堢偣搴撳尯'{model.EndArea}'涓嶆弧瓒虫潯浠讹紒闇�锛氳揣鍖�{LogObject(taskInfo.EndAreas)}"); + return NewSimpleResult(1, preLog + $"缁堢偣搴撳尯'{model.EndArea}'涓嶆弧瓒虫潯浠�闇�:璐у尯={LogObject(taskInfo.EndAreas)}"); } var cgDetail = db.Queryable<TN_CG_Detail>() .Where(d => d.S_ITEM_CODE == model.ItemCode && d.S_CNTR_CODE == model.CntrCode).First(); if (cgDetail == null) { - return NewSimpleResult(2, preLog + $"娌℃湁鍦╗鐗╂枡鏄庣粏琛╙涓壘鍒扮墿鏂欙紒瑕佹眰锛氱墿鏂欑紪鐮�'{model.ItemCode}'锛屽鍣ㄧ紪鐮�'{model.CntrCode}'"); + return NewSimpleResult(2, preLog + $"娌℃湁鍦╗鐗╂枡鏄庣粏琛╙涓壘鍒扮墿鏂�瑕佹眰:鐗╂枡缂栫爜='{model.ItemCode}',瀹瑰櫒缂栫爜='{model.CntrCode}'"); } var locCntrRel = db.Queryable<TN_Loc_Container>().Where(c => c.S_CNTR_CODE == cgDetail.S_CNTR_CODE).First(); if (locCntrRel == null) { - return NewSimpleResult(3, preLog + $"鍦╗璐т綅瀹瑰櫒鍏崇郴琛╙涓病鏈夋壘鍒板鍣�{model.CntrCode}'锛�); + return NewSimpleResult(3, preLog + $"鍦╗璐т綅瀹瑰櫒鍏崇郴琛╙涓病鏈夋壘鍒板鍣�{model.CntrCode}'!"); } - // 鏌ヨ璧风偣璐т綅锛氭暟閲�1 - var startLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y").Where(l => l.S_CODE == locCntrRel.S_LOC_CODE && taskInfo.StartAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 1).First(); + // 鏌ヨ璧风偣璐т綅:鏁伴噺=1 + var startLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y" && l.S_CODE == locCntrRel.S_LOC_CODE && taskInfo.StartAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 1).First(); if (startLoc == null) { - return NewSimpleResult(1, preLog + $"娌℃湁鎵惧埌璧风偣璐т綅'{locCntrRel.S_LOC_CODE}'锛佽姹傦細閿佺姸鎬�'鏃�锛涘綋鍓嶅鍣ㄦ暟閲�1锛涙墍鍦ㄥ簱鍖�{LogObject(taskInfo.StartAreas)}"); + return NewSimpleResult(1, preLog + $"娌℃湁鎵惧埌璧风偣璐т綅'{locCntrRel.S_LOC_CODE}'!瑕佹眰:閿佺姸鎬�'鏃�;褰撳墠瀹瑰櫒鏁伴噺=1;鎵�湪搴撳尯={LogObject(taskInfo.StartAreas)}"); } - var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") - .Where(l => l.S_AREA_CODE == model.EndArea && l.N_CURRENT_NUM == 0).First(); + var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y" && l.S_AREA_CODE == model.EndArea && l.N_CURRENT_NUM == 0).First(); if (endLoc == null) { - return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒瑕佹眰锛氶攣鐘舵�='鏃�锛屽綋鍓嶅鍣ㄦ暟閲�0锛屾墍鍦ㄥ簱鍖�'{model.EndArea}'"); + return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣�瑕佹眰:閿佺姸鎬�'鏃�,褰撳墠瀹瑰櫒鏁伴噺=0,鎵�湪搴撳尯='{model.EndArea}'"); } cgDetail.N_ITEM_STATE = 2; @@ -571,30 +545,30 @@ using (var tran = db.Ado.UseTran()) { if (db.Updateable(cgDetail).UpdateColumns(it => new { it.N_ITEM_STATE, it.S_ITEM_STATE }).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鏇存柊[璐у搧鏄庣粏琛╙澶辫触锛佺墿鏂欏彿='{cgDetail}'锛岀墿鏂欑姸鎬�>'{cgDetail.S_ITEM_STATE}'"); + return NewSimpleResult(500, preLog + $"鏇存柊[璐у搧鏄庣粏琛╙澶辫触!鐗╂枡鍙�'{cgDetail}',鐗╂枡鐘舵�=>'{cgDetail.S_ITEM_STATE}'"); } + // 鏇存柊[璧风偣/缁堢偣]閿佺姸鎬�鍒涘缓浠诲姟 if (db.Updateable(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(); - return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触锛佽捣鐐�'{startLoc.S_CODE}'锛岄攣鐘舵�=>'鍑哄簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触!璧风偣='{startLoc.S_CODE}',閿佺姸鎬�>'鍑哄簱閿�"); } - if (db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触锛佺粓鐐�'{endLoc.S_CODE}'锛岄攣鐘舵�=>'鍏ュ簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触!缁堢偣='{endLoc.S_CODE}',閿佺姸鎬�>'鍏ュ簱閿�"); } - if (db.Insertable(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } + // 鎻愪氦鏁版嵁搴撴洿鏀� tran.CommitTran(); - return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } } catch (Exception ex) { - return NewSimpleResult(-1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewSimpleResult(ex, preLog); } } @@ -606,13 +580,12 @@ public static SimpleResult RestBack(RestBackInfo model) { var db = new SqlHelper<object>().GetInstance(); var taskInfo = ETask.W灏炬枡鍥炲簱.Info(); - const string preLog = "API锛氬熬鏂欏洖搴擄細"; + const string preLog = "API:灏炬枡鍥炲簱:"; try { - var startLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") - .Where(l => l.S_CODE == model.StartLoc && l.N_CURRENT_NUM == 1).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 && l.N_CURRENT_NUM == 1).First(); if (startLoc == null) { - return NewSimpleResult(2, $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'锛佽姹傦細閿佺姸鎬�'鏃�锛涘綋鍓嶅鍣ㄦ暟閲�1"); + return NewSimpleResult(2, $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'!瑕佹眰:閿佺姸鎬�'鏃�;褰撳墠瀹瑰櫒鏁伴噺=1"); } var locCntrRel = db.Queryable<TN_Loc_Container>().Where(c => c.S_LOC_CODE == model.StartLoc).First(); @@ -621,10 +594,9 @@ } var endAreas = locCntrRel.S_CNTR_CODE == "鎵樼洏" ? taskInfo.EndAreas_Pallet : taskInfo.EndAreas_Goodpack; - var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") - .Where(l => endAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 0).First(); + var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y" && endAreas.Contains(l.S_AREA_CODE) && l.N_CURRENT_NUM == 0).First(); if (endLoc == null) { - return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒瑕佹眰锛氶攣鐘舵�='鏃�锛屽綋鍓嶅鍣ㄦ暟閲�0锛屾墍鍦ㄥ簱鍖�{LogObject(endAreas)}"); + return NewSimpleResult(3, preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣�瑕佹眰:閿佺姸鎬�'鏃�,褰撳墠瀹瑰櫒鏁伴噺=0,鎵�湪搴撳尯={LogObject(endAreas)}"); } var cntId = locCntrRel.S_CNTR_CODE; @@ -636,42 +608,42 @@ using (var tran = db.Ado.UseTran()) { //if (db.Insertable(locCntrRel).ExecuteCommand() <= 0) { // tran.RollbackTran(); - // return NewSimpleResult(500, preLog + $"鎻掑叆[瀹瑰櫒璐т綅缁戝畾琛╙澶辫触锛佹暟鎹細{LogObject(locCntrRel)}"); + // return NewSimpleResult(500, preLog + $"鎻掑叆[瀹瑰櫒璐т綅缁戝畾琛╙澶辫触!鏁版嵁:{LogObject(locCntrRel)}"); //} + // 鏇存柊[璧风偣/缁堢偣]閿佺姸鎬�鍒涘缓浠诲姟 if (db.Updateable(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(); - return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触锛佽捣鐐�'{startLoc.S_CODE}'锛岄攣鐘舵�=>'鍑哄簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触!璧风偣='{startLoc.S_CODE}',閿佺姸鎬�>'鍑哄簱閿�"); } - if (db.Updateable(endLoc).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触锛佺粓鐐�'{endLoc.S_CODE}'锛岄攣鐘舵�=>'鍏ュ簱閿�"); + return NewSimpleResult(500, preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触!缁堢偣='{endLoc.S_CODE}',閿佺姸鎬�>'鍏ュ簱閿�"); } - if (db.Insertable(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(500, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } + // 鎻愪氦鏁版嵁搴撴洿鏀� tran.CommitTran(); - return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛锛佷换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={task.S_CNTR_CODE}锛岃捣鐐�{task.S_START_LOC}锛岀粓鐐�{task.S_END_LOC}"); + return NewSimpleResult(0, preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } } catch (Exception ex) { - return NewSimpleResult(-1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewSimpleResult(ex, preLog); } } /// <summary> - /// 鎴愬搧鑳跺嚭搴�PDA) 寰呭畾锛屾殏鏃朵笉闇�姝ゅ姛鑳�+ /// 鎴愬搧鑳跺嚭搴�PDA) 寰呭畾,鏆傛椂涓嶉渶瑕佹鍔熻兘 /// </summary> /// <param name="model"></param> /// <returns></returns> public static SimpleResult FinishedOutbound(FinishedOutboundInfo model) { var db = new SqlHelper<object>().GetInstance(); var taskInfo = ETask.C鎴愬搧鑳跺嚭搴�Info(); - const string preLog = "API锛氭垚鍝佽兌鍑哄簱锛�; + const string preLog = "API:鎴愬搧鑳跺嚭搴�"; try { var orderNo = GenerateOrderNo("鍑哄簱鍗曞彿", "CKD"); @@ -706,12 +678,12 @@ using (var tran = db.Ado.UseTran()) { if (db.Insertable(order).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(2, preLog + "鐢熸垚鍑哄簱鍗曞け璐ワ細" + LogObject(order)); + return NewSimpleResult(2, preLog + "鐢熸垚鍑哄簱鍗曞け璐�" + LogObject(order)); } if (db.Insertable(detailList).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(4, preLog + "鐢熸垚鍑哄簱鍗曟槑缁嗗け璐ワ細" + LogObject(detailList)); + return NewSimpleResult(4, preLog + "鐢熸垚鍑哄簱鍗曟槑缁嗗け璐�" + LogObject(detailList)); } tran.CommitTran(); @@ -720,7 +692,7 @@ return NewSimpleResult(0, preLog + "鐢熸垚鍑哄簱鍗曟垚鍔�); } catch (Exception ex) { - return NewSimpleResult(-1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewSimpleResult(ex, preLog); } } @@ -731,7 +703,7 @@ public static SimpleResult FinishedOutboundForce(FinishedOutboundInfo model) { var db = new SqlHelper<object>().GetInstance(); var taskInfo = ETask.C鎴愬搧鑳跺嚭搴�Info(); - const string preLog = "API锛氭垚鍝佽兌鍑哄簱锛�; + const string preLog = "API:鎴愬搧鑳跺嚭搴�"; try { var orderNo = GenerateOrderNo("鍑哄簱鍗曞彿", "CKD"); @@ -766,12 +738,12 @@ using (var tran = db.Ado.UseTran()) { if (db.Insertable(order).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(2, preLog + "鐢熸垚鍑哄簱鍗曞け璐ワ細" + LogObject(order)); + return NewSimpleResult(2, preLog + "鐢熸垚鍑哄簱鍗曞け璐�" + LogObject(order)); } if (db.Insertable(detailList).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewSimpleResult(4, preLog + "鐢熸垚鍑哄簱鍗曟槑缁嗗け璐ワ細" + LogObject(detailList)); + return NewSimpleResult(4, preLog + "鐢熸垚鍑哄簱鍗曟槑缁嗗け璐�" + LogObject(detailList)); } tran.CommitTran(); @@ -780,7 +752,7 @@ return NewSimpleResult(0, preLog + "鐢熸垚鍑哄簱鍗曟垚鍔�); } catch (Exception ex) { - return NewSimpleResult(-1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewSimpleResult(ex, preLog); } } @@ -799,13 +771,13 @@ return result; } - // NOTE 鏍规嵁鎬婚噺閫塪etail鏃讹紝鏄惁闇�鑰冭檻璐т綅鐨勯珮浣庯紵 + // NOTE 鏍规嵁鎬婚噺閫塪etail鏃�鏄惁闇�鑰冭檻璐т綅鐨勯珮浣庯紵 var sortedMaterials = new List<TN_CG_Detail>(); var cntrTypeList = new List<string>(); if (cntrType == "") { - cntrTypeList = new List<string> { "鎵樼洏", "濂借繍绠� }; // 涓嶆寚瀹氭墭鐩樼被鍨嬶紝浜岃�鍧囧彲 + cntrTypeList = new List<string> { "鎵樼洏", "濂借繍绠� }; // 涓嶆寚瀹氭墭鐩樼被鍨�浜岃�鍧囧彲 } else { cntrTypeList.Add(cntrType); @@ -863,94 +835,94 @@ } /// <summary> - /// 鍗氬疄鐗╂枡淇℃伅涓嬪彂鍚屾锛堝彧閽堝濂借繍绠憋級 + /// 鍗氬疄鐗╂枡淇℃伅涓嬪彂鍚屾 (鍙拡瀵瑰ソ杩愮) /// </summary> /// <param name="model"></param> /// <returns></returns> public static MesResult CgInfoSync(CgInfoSyncInfo model) { var db = new SqlHelper<object>().GetInstance(); - const string preLog = "API锛氬崥瀹炰笅鍙戠墿鏂欎俊鎭細"; + const string preLog = "API:鍗氬疄涓嬪彂鐗╂枡淇℃伅:"; const string cntrType = "濂借繍绠�; try { if (string.IsNullOrEmpty(model.ItemCode)) { - return NewMesResult(400, preLog + $"鐗╂枡缂栫爜'{model.ItemCode}'涓嶈兘涓虹┖锛�); + return NewMesResult(400, preLog + $"鐗╂枡缂栫爜'{model.ItemCode}'涓嶈兘涓虹┖!"); } if (string.IsNullOrEmpty(model.CntrCode)) { - return NewMesResult(400, preLog + $"瀹瑰櫒缂栫爜'{model.CntrCode}'涓嶈兘涓虹┖锛�); + return NewMesResult(400, preLog + $"瀹瑰櫒缂栫爜'{model.CntrCode}'涓嶈兘涓虹┖!"); } if (string.IsNullOrEmpty(model.BatchNo)) { - return NewMesResult(400, preLog + $"鎵规鍙�{model.BatchNo}'涓嶈兘涓虹┖锛�); + return NewMesResult(400, preLog + $"鎵规鍙�{model.BatchNo}'涓嶈兘涓虹┖!"); } if (model.ItemNum <= 0) { - return NewMesResult(400, preLog + $"鐗╂枡鏁伴噺'{model.ItemNum}'涓嶅悎娉曪紒瑕佹眰锛氱墿鏂欐暟閲忥紴0"); + return NewMesResult(400, preLog + $"鐗╂枡鏁伴噺'{model.ItemNum}'涓嶅悎娉�瑕佹眰:鐗╂枡鏁伴噺锛�"); } - // TEMP 鐩墠娴佺▼锛氬鍗氬疄涓嬪彂鐨勪俊鎭篃杩涜妫�煡锛屾湭鎵惧埌灏辨姤閿欙紝鍚庨潰鏈夐渶姹傚啀鏇存敼 + // TEMP 鐩墠娴佺▼:瀵瑰崥瀹炰笅鍙戠殑淇℃伅涔熻繘琛屾鏌�鏈壘鍒板氨鎶ラ敊,鍚庨潰鏈夐渶姹傚啀鏇存敼 var cntr = db.Queryable<TN_Container>() - .Where(c => c.S_CODE == model.CntrCode) // 瀵逛簬鍓嶅彴绋嬪簭鑰岃█锛孲_CODE灏辨槸涓婚敭锛岀淮鎶ゆ椂蹇呭畾鍞竴 + .Where(c => c.S_CODE == model.CntrCode) // 瀵逛簬鍓嶅彴绋嬪簭鑰岃█,S_CODE灏辨槸涓婚敭,缁存姢鏃跺繀瀹氬敮涓� .First(); if (cntr == null) { - return NewMesResult(1, preLog + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪锛岃鍦ㄥ墠鍙伴〉闈腑缁存姢锛�); + return NewMesResult(1, preLog + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪,璇峰湪鍓嶅彴椤甸潰涓淮鎶�"); } if (cntr.S_TYPE != cntrType) { - return NewMesResult(2, preLog + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷涓�{cntr.S_TYPE}'锛屼笌褰撳墠瀹瑰櫒绫诲瀷'{cntrType}'涓嶅悓锛�); + return NewMesResult(2, preLog + $"瀹瑰櫒'{model.CntrCode}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷涓�{cntr.S_TYPE}',涓庡綋鍓嶅鍣ㄧ被鍨�{cntrType}'涓嶅悓!"); } - // 灏嗕笅鍙戠殑淇℃伅鍏堝瓨鍌ㄥ埌CG琛ㄤ腑锛堟鏃舵墭鐩樻病鏈変笌浜х嚎澶勭殑璐т綅缁戝畾锛�+ // 灏嗕笅鍙戠殑淇℃伅鍏堝瓨鍌ㄥ埌CG琛ㄤ腑 (姝ゆ椂鎵樼洏娌℃湁涓庝骇绾垮鐨勮揣浣嶇粦瀹� var detail = new TN_CG_Detail { S_ITEM_CODE = model.ItemCode, // NOT NULL S_ITEM_NAME = model.ItemName, - S_CNTR_CODE = model.CntrCode, // NOT NULL 鏂欑缂栧彿锛堝緟瀹氾紝鐜板湪鏆傛椂璁惧畾涓哄崥瀹炰笅鍙戯級 + S_CNTR_CODE = model.CntrCode, // NOT NULL 鏂欑缂栧彿 (寰呭畾,鐜板湪鏆傛椂璁惧畾涓哄崥瀹炰笅鍙� S_BATCH_NO = model.BatchNo, // NOT NULL S_STANDARD = model.Standard, S_NET_WEIGHT = model.NetWeight, S_QUALITY_GRADE = model.QualityGrade, }; - // 浜х嚎鍙风殑閫昏緫寰呭畾锛岀幇鍦ㄨ瀹氫负鍗氬疄涓嬪彂浜х嚎鍙凤紝鐪嬪悗缁渶姹傚彉鏇�- // 濂借繍绠辫捣鐐逛负浜х嚎璐т綅锛屼汉宸ュ皢濂借繍绠变粠浜х嚎涓婂彇涓嬶紝鎼繍鍒版弧濂借繍绠辨搷浣滃尯 + // 浜х嚎鍙风殑閫昏緫寰呭畾,鐜板湪璁惧畾涓哄崥瀹炰笅鍙戜骇绾垮彿,鐪嬪悗缁渶姹傚彉鏇�+ // 濂借繍绠辫捣鐐逛负浜х嚎璐т綅,浜哄伐灏嗗ソ杩愮浠庝骇绾夸笂鍙栦笅,鎼繍鍒版弧濂借繍绠辨搷浣滃尯 //var startLocCode = ""; //if (model.ProdLineId.Trim() == "3") { // startLocCode = ""; //} //if (model.ProdLineId.Trim() != "3" || model.ProdLineId.Trim() != "4") { - // info = $"涓嶅悎娉曠殑浜х嚎鍙穥model.ProdLineId}锛氬ソ杩愮浜х嚎鍙峰繀椤讳负 3 鎴�4"; + // info = $"涓嶅悎娉曠殑浜х嚎鍙穥model.ProdLineId}:濂借繍绠变骇绾垮彿蹇呴』涓�3 鎴�4"; // LogHelper.Info(info); // return NewMesResult(2, info); //} if (db.Insertable(detail).ExecuteCommand() <= 0) { - return NewMesResult(500, preLog + $"鎻掑叆[鐗╂枡鏄庣粏琛╙澶辫触锛佹暟鎹細{LogObject(detail)}"); + return NewMesResult(500, preLog + $"鎻掑叆[鐗╂枡鏄庣粏琛╙澶辫触!鏁版嵁:{LogObject(detail)}"); } - return NewMesResult(500, preLog + $"鎻掑叆[鐗╂枡鏄庣粏琛╙鎴愬姛锛佹暟鎹細{LogObject(detail)}"); + return NewMesResult(500, preLog + $"鎻掑叆[鐗╂枡鏄庣粏琛╙鎴愬姛!鏁版嵁:{LogObject(detail)}"); } catch (Exception ex) { - return NewMesResult(-1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewMesResult(-1, preLog + $"鍙戠敓浜嗗紓甯�{ex.Message}\n\n{ex.StackTrace}\n"); } } public static ErpResult ErpSendOutboundPlan(ErpSendOutboundPlanInfo model) { var db = new SqlHelper<object>().GetInstance(); var orderNo = GenerateOrderNo("鍑哄簱鍗曞彿", "CKD"); - const string preLog = "API锛欵RP涓嬪彂鍑哄簱璁″垝鍗曪細"; + const string preLog = "API:ERP涓嬪彂鍑哄簱璁″垝鍗�"; try { if (model.pzjs <= 0) { - return NewErpResult(400, preLog + $"鐗╂枡鏁伴噺(pzjs)'{model.pzjs}'涓嶅悎娉曪紒瑕佹眰锛氱墿鏂欐暟閲忥紴0"); + return NewErpResult(400, preLog + $"鐗╂枡鏁伴噺(pzjs)'{model.pzjs}'涓嶅悎娉�瑕佹眰:鐗╂枡鏁伴噺锛�"); } var outboundPlan = db.Queryable<TN_Outbound_Plan>() .Where(p => p.JHDH == model.jhdh).First(); if (outboundPlan != null) { - return NewErpResult(1, preLog + $"璁″垝鍗曞彿'{model.jhdh}'宸插湪[鍑哄簱璁″垝鍗昡涓瓨鍦紒"); + return NewErpResult(1, preLog + $"璁″垝鍗曞彿'{model.jhdh}'宸插湪[鍑哄簱璁″垝鍗昡涓瓨鍦�"); } outboundPlan = new TN_Outbound_Plan { - JHDH = model.jhdh, // 璁″垝鍗曞彿锛堝敮涓�爣璇嗭級 - CKZT = model.ckzt, // 鍑哄簱鐘舵�锛堥渶瑕佽繑鍥烇級 + JHDH = model.jhdh, // 璁″垝鍗曞彿 (鍞竴鏍囪瘑) + CKZT = model.ckzt, // 鍑哄簱鐘舵� (闇�杩斿洖) JHLB = model.jhlb, // 璁″垝绫诲埆 CKDH = model.ckdh, // 鍙傝�鍗曞彿 CPH = model.cph, // 杞︾墝鍙�@@ -961,9 +933,9 @@ CPLB = model.cplb, // 浜у搧绫诲埆 CPLBMX = model.cplbmx, // 浜у搧绫诲埆鏄庣粏 PP = model.pp, // 鍝佺墝 - DJ = model.dj, // 绛夌骇锛堥渶瑕佽繑鍥烇級 + DJ = model.dj, // 绛夌骇 (闇�杩斿洖) GH = model.gh, // 缃愬彿 - PH = model.ph, // 鎵瑰彿锛堥渶瑕佽繑鍥烇級 + PH = model.ph, // 鎵瑰彿 (闇�杩斿洖) BZLX = model.bzlx, // 鍖呰绫诲瀷 PZDH = model.pzdh, // 娲捐鍗曞彿 PZD_DW = model.pzd_dw, // 娲捐鍗曞崟浣�@@ -976,15 +948,15 @@ PZ_ZFRQ = model.pz_zfrq, // 娲捐浣滃簾鏃ユ湡 PZ_BZ = model.pz_bz, // 娲捐澶囨敞 CKDBH = model.ckdbh, // 鍑哄簱鍗曠紪鍙�- SFJS = model.sfjs, // 瀹炲彂浠舵暟锛堥渶瑕佽繑鍥烇級 - SFSL = model.sfsl, // 瀹炲彂鏁伴噺锛堥渶瑕佽繑鍥烇級 - SFCS = model.sfcs, // 瀹炲彂杞︽暟锛堥渶瑕佽繑鍥烇級 - ZCSJ = model.zcsj, // 瑁呰溅鏃堕棿锛堥渶瑕佽繑鍥烇級 - JLDW = model.jldw, // 璁¢噺鍗曚綅锛堥渶瑕佽繑鍥烇級 - FHRQ = model.fhrq, // 鍙戣揣鏃ユ湡锛堥渶瑕佽繑鍥烇級 - CKDM = model.ckdm, // 浠撳簱浠g爜锛堥渶瑕佽繑鍥烇級 - FHR = model.fhr, // 鍙戣揣浜猴紙闇�杩斿洖锛�- CZYDM = model.czydm, // 鎿嶄綔鍛橈紙闇�杩斿洖锛�+ SFJS = model.sfjs, // 瀹炲彂浠舵暟 (闇�杩斿洖) + SFSL = model.sfsl, // 瀹炲彂鏁伴噺 (闇�杩斿洖) + SFCS = model.sfcs, // 瀹炲彂杞︽暟 (闇�杩斿洖) + ZCSJ = model.zcsj, // 瑁呰溅鏃堕棿 (闇�杩斿洖) + JLDW = model.jldw, // 璁¢噺鍗曚綅 (闇�杩斿洖) + FHRQ = model.fhrq, // 鍙戣揣鏃ユ湡 (闇�杩斿洖) + CKDM = model.ckdm, // 浠撳簱浠g爜 (闇�杩斿洖) + FHR = model.fhr, // 鍙戣揣浜�(闇�杩斿洖) + CZYDM = model.czydm, // 鎿嶄綔鍛�(闇�杩斿洖) SHR_USERNAME = model.shr_username, // 瀹℃牳浜� SHRQ = model.shrq, // 瀹℃牳鏃ユ湡 ZFBJ = model.zfbj, // 浣滃簾鏍囪 @@ -993,14 +965,14 @@ SHDW = model.shdw, // 鏀惰揣鍗曚綅 YSDW = model.ysdw, // 杩愯緭鍗曚綅 LXR = model.lxr, // 鑱旂郴浜�- RY_ZXG = model.ry_zxg, // 瑁呭嵏宸ワ紙闇�杩斿洖锛�- RY_CCSJ = model.ry_ccsj, // 鍙夎溅鍙告満锛堥渶瑕佽繑鍥烇級 + RY_ZXG = model.ry_zxg, // 瑁呭嵏宸�(闇�杩斿洖) + RY_CCSJ = model.ry_ccsj, // 鍙夎溅鍙告満 (闇�杩斿洖) ERPHX_JHDH = model.erphx_jhdh, // erp浜よ揣鍗曞彿 ERPHX_WLBM = model.erphx_wlbm, // erp鐗╂枡缂栫爜 ERPHX_WLMC = model.erphx_wlmc, // erp鐗╂枡鍚嶇О ERPHX_CJRQ = model.erphx_cjrq, // erp鍒涘缓鏃ユ湡 - HW = model.hw, // 璐т綅锛堥渶瑕佽繑鍥烇級 - HWZT = model.hwzt // 璐т綅鐘舵�锛堥渶瑕佽繑鍥烇級 + HW = model.hw, // 璐т綅 (闇�杩斿洖) + HWZT = model.hwzt // 璐т綅鐘舵� (闇�杩斿洖) }; //var cgDetailList = SelectCgByTotalQty( @@ -1015,10 +987,9 @@ // return NewErpResult(3, info); //} - var cgDetail = db.Queryable<TN_CG_Detail>() - .Where(d => d.S_ITEM_CODE == model.cpdm && d.N_ITEM_NUM >= model.pzjs).First(); + var cgDetail = db.Queryable<TN_CG_Detail>().Where(d => d.S_ITEM_CODE == model.cpdm && d.N_ITEM_NUM >= model.pzjs).First(); if (cgDetail == null ) { - return NewErpResult(2, preLog + $"鍦╗璐у搧鏄庣粏琛╙涓病鏈夋壘鍒板悎閫傜殑鐗╂枡锛佽姹傦細鐗╂枡缂栫爜='{model.cpdm}'锛岀墿鏂欐暟閲�={model.pzjs}"); + return NewErpResult(2, preLog + $"鍦╗璐у搧鏄庣粏琛╙涓病鏈夋壘鍒板悎閫傜殑鐗╂枡!瑕佹眰:鐗╂枡缂栫爜='{model.cpdm}',鐗╂枡鏁伴噺>={model.pzjs}"); } var order = new TN_Outbound_Order { @@ -1063,25 +1034,25 @@ using (var tran = db.Ado.UseTran()) { if (db.Insertable(order).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewErpResult(500, preLog + $"鐢熸垚[鍑哄簱鍗昡澶辫触锛佹暟鎹細{LogObject(order)}"); + return NewErpResult(500, preLog + $"鐢熸垚[鍑哄簱鍗昡澶辫触!鏁版嵁:{LogObject(order)}"); } if (db.Insertable(detailList).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewErpResult(500, preLog + $"鐢熸垚[鍑哄簱鍗曟槑缁哴澶辫触锛佹暟鎹細{LogObject(detailList)}"); + return NewErpResult(500, preLog + $"鐢熸垚[鍑哄簱鍗曟槑缁哴澶辫触!鏁版嵁:{LogObject(detailList)}"); } if (db.Insertable(outboundPlan).ExecuteCommand() <= 0) { tran.RollbackTran(); - return NewErpResult(500, preLog + $"鐢熸垚[鍑哄簱鍗曡鍒掕褰曡〃]澶辫触锛佹暟鎹細{LogObject(outboundPlan)}"); + return NewErpResult(500, preLog + $"鐢熸垚[鍑哄簱鍗曡鍒掕褰曡〃]澶辫触!鏁版嵁:{LogObject(outboundPlan)}"); } tran.CommitTran(); - return NewErpResult(0, preLog + $"鐢熸垚[鍑哄簱鍗昡鎴愬姛锛佸嚭搴撳崟锛歿LogObject(order)}\n鍑哄簱鍗曟槑缁嗭細{LogObject(detail)}"); + return NewErpResult(0, preLog + $"鐢熸垚[鍑哄簱鍗昡鎴愬姛!鍑哄簱鍗�{LogObject(order)}\n鍑哄簱鍗曟槑缁�{LogObject(detail)}"); } } catch (Exception ex) { - return NewErpResult(1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewErpResult(1, preLog + $"鍙戠敓浜嗗紓甯�{ex.Message}\n\n{ex.StackTrace}\n"); } } diff --git a/api/ApiModel.cs b/api/ApiModel.cs index 4a0cb39..0a6667f 100644 --- a/api/ApiModel.cs +++ b/api/ApiModel.cs @@ -17,16 +17,14 @@ public List<object> result { get; set; } = new List<object>(); } - /// <summary> - /// 鏋勫缓 <see cref="SimpleResult"/> 杩斿洖鍊�- /// </summary> - /// <param name="code"></param> - /// <param name="message"></param> - /// <param name="log"></param> - /// <returns></returns> - public static SimpleResult NewSimpleResult(int code, string message, bool log = true) { - if (log) { LogHelper.Info(message); } + public static SimpleResult NewSimpleResult(int code, string message, string name = "") { + LogHelper.Info(message, name); return new SimpleResult { resultCode = code, resultMsg = message }; + } + + public static SimpleResult NewSimpleResult(Exception ex, string preLog = "", int errCode = -1) { + LogHelper.InfoEx(ex, preLog); + return new SimpleResult { resultCode = errCode, resultMsg = $"鍙戠敓浜哰寮傚父]:{ex.Message}" }; } /// <summary> @@ -60,7 +58,7 @@ //public int station_id { get; set; } /// <summary> - /// 璇锋眰涓婄嚎/涓嬬嚎鐨勭殑绔欏彴搴撲綅鍚嶇О锛屼緥濡倃ork6銆亀ork8 + /// 璇锋眰涓婄嚎/涓嬬嚎鐨勭殑绔欏彴搴撲綅鍚嶇О,渚嬪work6,work8 /// </summary> public string station_name { get; set; } @@ -177,7 +175,7 @@ [JsonProperty("n_num")] public int Num { get; set; } /// <summary> - /// 璧风偣璐т綅淇℃伅锛堣捣鐐硅揣浣嶈揣鍖鸿姹傦細MXCZQ 婊$鎿嶄綔鍖猴級 + /// 璧风偣璐т綅淇℃伅 (璧风偣璐т綅璐у尯瑕佹眰:MXCZQ 婊$鎿嶄綔鍖� /// </summary> [JsonProperty("s_start_loc")] public string StartLoc { get; set; } @@ -193,17 +191,17 @@ [JsonProperty("cntr_code")] public string CntrCode { get; set; } /// <summary> - /// 瀹瑰櫒绫诲瀷锛堝繀椤讳负 '绌烘墭鐩樷� 鎴�鈥樼┖濂借繍绠�锛�+ /// 瀹瑰櫒绫诲瀷 (蹇呴』涓�'绌烘墭鐩樷� 鎴�鈥樼┖濂借繍绠�) /// </summary> [JsonProperty("cntr_type")] public string CntrType { get; set; } /// <summary> - /// 缁堢偣搴撳尯缂栫爜锛堟墭鐩樻槸 KTCFQ 绌烘墭瀛樻斁鍖猴紱濂借繍绠辨槸 CXHJQ 绌虹璐ф灦鍖猴級 + /// 缁堢偣搴撳尯缂栫爜 (鎵樼洏鏄�KTCFQ 绌烘墭瀛樻斁鍖�濂借繍绠辨槸 CXHJQ 绌虹璐ф灦鍖� /// </summary> [JsonProperty("end_area")] public string EndArea { get; set; } /// <summary> - /// 璧风偣璐т綅锛堟墭鐩樻槸 KTJBQ 绌烘墭鍏ュ簱鎺ラ┏鍖猴紱濂借繍绠辨槸 KXJBQ 绌虹鍏ュ簱鎺ラ┏鍖猴級 + /// 璧风偣璐т綅 (鎵樼洏鏄�KTJBQ 绌烘墭鍏ュ簱鎺ラ┏鍖�濂借繍绠辨槸 KXJBQ 绌虹鍏ュ簱鎺ラ┏鍖� /// </summary> [JsonProperty("start_loc")] public string StartLoc { get; set; } @@ -275,7 +273,7 @@ [JsonProperty("cntr_code")] public string CntrCode { get; set; } /// <summary> - /// 涓嶅悎鏍肩Щ搴撶粓鐐瑰簱鍖猴紙蹇呴』鏄�CJYCQ 鎶芥寮傚父鍖猴級 + /// 涓嶅悎鏍肩Щ搴撶粓鐐瑰簱鍖�(蹇呴』鏄�CJYCQ 鎶芥寮傚父鍖� /// </summary> [JsonProperty("end_area")] public string EndArea { get; set; } @@ -368,17 +366,17 @@ [JsonProperty("qualityGrade")] public string QualityGrade { get; set; } /// <summary> - /// 鏂欑缂栧彿锛堝緟瀹氾級 + /// 鏂欑缂栧彿 (寰呭畾) /// </summary> [JsonProperty("cntrCode")] public string CntrCode { get; set; } /// <summary> - /// 鐗╂枡鏁伴噺锛堝緟瀹氾級 + /// 鐗╂枡鏁伴噺 (寰呭畾) /// </summary> [JsonProperty("itemNum")] public int ItemNum { get; set; } ///// <summary> - ///// 浜х嚎鍙凤紙寰呭畾锛屽ソ杩愮鏈�鏉′骇绾匡紝瀵瑰簲2涓笅绾胯揣浣嶏紝杩欓噷鏆傚畾涓猴細3鍜�锛�+ ///// 浜х嚎鍙�(寰呭畾,濂借繍绠辨湁2鏉′骇绾�瀵瑰簲2涓笅绾胯揣浣�杩欓噷鏆傚畾涓�3鍜�) ///// </summary> //[JsonProperty("prodLineId")] //public string ProdLineId { get; set; } @@ -395,13 +393,13 @@ public int Result { get; set; } /// <summary> - /// 鏄惁鎴愬姛 True-鎴愬姛锛孎alse锛氬け璐�+ /// 鏄惁鎴愬姛 True-鎴愬姛,False:澶辫触 /// </summary> [JsonProperty("success")] public bool Success { get; set; } /// <summary> - /// 杩欓噷鏄痵tring绫诲瀷锛屽缁撴灉鐨勬弿杩�+ /// 杩欓噷鏄痵tring绫诲瀷,瀵圭粨鏋滅殑鎻忚堪 /// </summary> [JsonProperty("data")] public string Data { get; set; } @@ -418,7 +416,7 @@ if (log) { LogHelper.Info(message); } return new MesResult { Result = code, - Success = code == 0, // 浠呭綋code=0鏃讹紝success=true + Success = code == 0, // 浠呭綋code=0鏃�success=true Data = message, }; } @@ -443,7 +441,7 @@ /// </summary> public class ErpSendOutboundPlanInfo { /// <summary> - /// 璁″垝鍗曞彿锛堝敮涓�爣璇嗭級 + /// 璁″垝鍗曞彿 (鍞竴鏍囪瘑) /// </summary> public string jhdh { get; set; } = string.Empty; @@ -705,7 +703,7 @@ public class PickUpReturnErpInfo { /// <summary> - /// 璁″垝鍗曞彿锛堝敮涓�爣璇嗭級 + /// 璁″垝鍗曞彿 (鍞竴鏍囪瘑) /// </summary> public string jhdh { get; set; } @@ -967,7 +965,7 @@ public class CreateTaskReturnErpInfo { /// <summary> - /// 璁″垝鍗曞彿锛堝敮涓�爣璇嗭級 + /// 璁″垝鍗曞彿 (鍞竴鏍囪瘑) /// </summary> public string jhdh { get; set; } diff --git a/api/DebugController.cs b/api/DebugController.cs index d2f7485..57215cd 100644 --- a/api/DebugController.cs +++ b/api/DebugController.cs @@ -21,7 +21,7 @@ namespace HH.WCS.Mobox3.DSZSH.api { /// <summary> - /// 娴嬭瘯鐢細濡傛灉椤圭洰涓鍜岃澶囧鎺ワ紝鍓嶆湡璁惧鏃犳硶娴嬭瘯锛岀敤鎺ュ彛妯℃嫙 + /// 娴嬭瘯鐢�濡傛灉椤圭洰涓鍜岃澶囧鎺�鍓嶆湡璁惧鏃犳硶娴嬭瘯,鐢ㄦ帴鍙fā鎷� /// </summary> [RoutePrefix("api")] public class DebugController : ApiController { @@ -90,7 +90,7 @@ } /// <summary> - /// DEBUG锛氭ā鎷熻緭閫佺嚎浜х嚎婊℃墭鐩樹笅绾挎祦绋�+ /// DEBUG:妯℃嫙杈撻�绾夸骇绾挎弧鎵樼洏涓嬬嚎娴佺▼ /// </summary> /// <param name="model"></param> /// <returns></returns> @@ -101,7 +101,7 @@ } /// <summary> - /// DEBUG锛氭ā鎷熶汉宸ュ皢鏂欑鎼繍鍒颁骇绾夸笂绾垮彛锛堢洿鎺ヤ慨鏀规暟鎹簱锛�+ /// DEBUG:妯℃嫙浜哄伐灏嗘枡绠辨惉杩愬埌浜х嚎涓婄嚎鍙�(鐩存帴淇敼鏁版嵁搴� /// </summary> /// <param name="model"></param> /// <returns></returns> @@ -111,23 +111,23 @@ var db = new SqlHelper<object>().GetInstance(); try { - // 鏌ヨ璧风偣璐т綅锛氭暟閲�0 + // 鏌ヨ璧风偣璐т綅:鏁伴噺=0 var startLoc = db.Queryable<TN_Location>().LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE) .Where((l,c) => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y" && l.S_CODE == model.StartLoc && l.N_CURRENT_NUM == 1 && c.S_CNTR_CODE == model.CntrCode).First(); if (startLoc == null) { - return $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'锛佽姹傦細閿佺姸鎬�'鏃�锛屽綋鍓嶅鍣ㄦ暟閲�1"; + return $"娌℃湁鎵惧埌璧风偣璐т綅'{model.StartLoc}'!瑕佹眰:閿佺姸鎬�'鏃�,褰撳墠瀹瑰櫒鏁伴噺=1"; } // 鏌ヨ缁堢偣璐т綅 - // Order锛氭寜璐т綅灞傛暟锛屼粠灏忓埌澶ф帓鍒�+ // Order:鎸夎揣浣嶅眰鏁�浠庡皬鍒板ぇ鎺掑垪 var endLoc = db.Queryable<TN_Location>().Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y" && l.N_CURRENT_NUM == 0).First(); if (endLoc == null) { - return $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣嶏紒瑕佹眰锛氶攣鐘舵�='鏃�锛屽綋鍓嶅鍣ㄦ暟閲�0"; + return $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣�瑕佹眰:閿佺姸鎬�'鏃�,褰撳墠瀹瑰櫒鏁伴噺=0"; } var locCntrRel = db.Queryable<TN_Loc_Container>().Where(c => c.S_CNTR_CODE == model.CntrCode).First() ; if (locCntrRel == null) { - return $"璇ュ鍣ㄤ笉瀛樺湪缁戝畾鐨勮揣浣嶏紒"; + return $"璇ュ鍣ㄤ笉瀛樺湪缁戝畾鐨勮揣浣�"; } locCntrRel.S_LOC_CODE = model.StartLoc; @@ -140,7 +140,7 @@ db.Updateable(locCntrRel).ExecuteCommand() <= 0) { tran.RollbackTran(); - return "鏁版嵁搴撴搷浣滃け璐ワ紒"; + return "鏁版嵁搴撴搷浣滃け璐�"; } tran.CommitTran() ; @@ -154,7 +154,7 @@ } /// <summary> - /// DEBUG锛氭ā鎷烢rp涓嬪彂鍑哄簱璁″垝鍗�+ /// DEBUG:妯℃嫙Erp涓嬪彂鍑哄簱璁″垝鍗� /// </summary> /// <param name="model"></param> /// <returns></returns> @@ -175,7 +175,7 @@ } /// <summary> - /// 锛堝唴閮ㄦ柟娉曡鍕胯皟鐢級妯℃嫙鍙栬揣瀹屾垚鍙嶉Erp鍥炴姤缁撴灉锛堥粯璁や负success锛�+ /// (鍐呴儴鏂规硶璇峰嬁璋冪敤) 妯℃嫙鍙栬揣瀹屾垚鍙嶉Erp鍥炴姤缁撴灉 (榛樿涓簊uccess) /// </summary> /// <param name="model"></param> /// <returns></returns> @@ -196,7 +196,7 @@ } /// <summary> - /// 锛堝唴閮ㄦ柟娉曡鍕胯皟鐢級妯℃嫙浠诲姟鍒涘缓瀹屾垚鍙嶉Erp鍥炴姤缁撴灉锛堥粯璁や负success锛�+ /// (鍐呴儴鏂规硶璇峰嬁璋冪敤) 妯℃嫙浠诲姟鍒涘缓瀹屾垚鍙嶉Erp鍥炴姤缁撴灉 (榛樿涓簊uccess) /// </summary> /// <param name="model"></param> /// <returns></returns> @@ -225,15 +225,15 @@ public class TestErpSendOutboundPlanInfo { /// <summary> - /// 鍑哄簱璁″垝鍗曞彿锛堣鍒掑崟鍙�jhdh锛�+ /// 鍑哄簱璁″垝鍗曞彿 (璁″垝鍗曞彿 jhdh) /// </summary> public string PlanNo { get; set; } = string.Empty; /// <summary> - /// 鐗╂枡缂栫爜锛堜骇鍝佷唬鐮�cpdm锛�+ /// 鐗╂枡缂栫爜 (浜у搧浠g爜 cpdm) /// </summary> public string ItemCode { get; set; } = string.Empty; /// <summary> - /// 鐗╂枡鏁伴噺锛堟淳瑁呬欢鏁�pzjs锛�+ /// 鐗╂枡鏁伴噺 (娲捐浠舵暟 pzjs) /// </summary> public float ItemNum { get; set; } = 0; } @@ -245,11 +245,11 @@ public class AddInboundTaskInfo { /// <summary> - /// 鐗╂枡缂栫爜锛堟殏鏃舵病鐢級 + /// 鐗╂枡缂栫爜 (鏆傛椂娌$敤) /// </summary> public string ItemCode { get; set; } /// <summary> - /// 鎵规鍙凤紙鏆傛椂娌$敤锛�+ /// 鎵规鍙�(鏆傛椂娌$敤) /// </summary> public string BatchNo { get; set; } /// <summary> @@ -263,7 +263,7 @@ } /// <summary> - /// 妯℃嫙 AGV 浼犻�淇″彿锛岀敤浜庢洿鏀逛换鍔$姸鎬�+ /// 妯℃嫙 AGV 浼犻�淇″彿,鐢ㄤ簬鏇存敼浠诲姟鐘舵� /// </summary> public class UpdateTaskState { /// <summary> @@ -286,7 +286,7 @@ /// </summary> public string ForkliftNo { get; set; } /// <summary> - /// AGV 涓嬩竴鐘舵�锛堜换鍔″洖鎶ュ彿锛�+ /// AGV 涓嬩竴鐘舵� (浠诲姟鍥炴姤鍙� /// </summary> public int NextState { set; get; } = 0; } diff --git a/api/MoboxController.cs b/api/MoboxController.cs index 2f09344..059da11 100644 --- a/api/MoboxController.cs +++ b/api/MoboxController.cs @@ -41,8 +41,8 @@ else if (model.CntrType == "绌哄ソ杩愮") { return ApiHelper.EmptyInboundGoodpack(model); } - else { // PDA鍓嶇涓嬫媺閫夊崟闄愬埗锛屾晠鐞嗚涓婁笉浼氳繘鍏ヨ繖涓祦绋�- return NewSimpleResult(-1, $"瀹瑰櫒绫诲瀷'{model.CntrType}'涓嶅悎娉曪紒瑕佹眰锛氱被鍨�['绌烘墭鐩�,'绌哄ソ杩愮']"); + else { // PDA鍓嶇涓嬫媺閫夊崟闄愬埗,鏁呯悊璁轰笂涓嶄細杩涘叆杩欎釜娴佺▼ + return NewSimpleResult(-1, $"瀹瑰櫒绫诲瀷'{model.CntrType}'涓嶅悎娉�瑕佹眰:绫诲瀷=['绌烘墭鐩�,'绌哄ソ杩愮']"); } } diff --git a/config/config.comment.json b/config/config.comment.json index cc18744..5bddc0f 100644 --- a/config/config.comment.json +++ b/config/config.comment.json @@ -3,15 +3,15 @@ "NdcApiUrl": "http://127.0.0.1:5201/api/order/", // NDC AGV鎺ュ彛鍦板潃 "ErpApiUrl": "http://127.0.0.1:8901/api/", // ERP鎺ュ彛鍦板潃 "ErpRoute": { - "CreateTaskReturn": "CreateTaskReturn", // 鏍规嵁ERP涓嬪彂鍑哄簱璁″垝锛屽垱寤轰换鍔″悗鍙嶉ERP鐨勬帴鍙�- "PickUpReturn": "PickUpReturn" // 鏍规嵁ERP涓嬪彂鍑哄簱璁″垝锛孉GV鍙栬揣鍚庡弽棣圗RP鐨勬帴鍙�+ "CreateTaskReturn": "CreateTaskReturn", // 鏍规嵁ERP涓嬪彂鍑哄簱璁″垝,鍒涘缓浠诲姟鍚庡弽棣圗RP鐨勬帴鍙�+ "PickUpReturn": "PickUpReturn" // 鏍规嵁ERP涓嬪彂鍑哄簱璁″垝,AGV鍙栬揣鍚庡弽棣圗RP鐨勬帴鍙� }, "SqlServer": "Data Source=192.168.1.87;Initial Catalog=AMS_OIMobox;User ID=sa;Password=123456;", // 鏁版嵁搴撻厤缃�- "TaskInfos": [ // 浠诲姟淇℃伅锛堝悕绉般�璧风偣璐у尯銆佺粓鐐硅揣鍖猴級 + "TaskInfos": [ // 浠诲姟淇℃伅 (鍚嶇О,璧风偣璐у尯,缁堢偣璐у尯) { - "TaskName": "婊℃墭涓嬬嚎鍏ュ簱", // 浠诲姟鍚嶇О锛堝彲浠ユ洿鏀癸紝浣嗗悇浠诲姟鐩稿浣嶇疆涓嶈兘鏇存敼锛�- "StartAreas": [ "BZQ" ], // 璧风偣璐у尯缂栧彿锛氬寘瑁呭尯 - "EndAreas": [ "MTHJQ" ] // 缁堢偣璐у尯缂栧彿锛氭弧鎵樿揣鏋跺尯 + "TaskName": "婊℃墭涓嬬嚎鍏ュ簱", // 浠诲姟鍚嶇О (鍙互鏇存敼,浣嗗悇浠诲姟鐩稿浣嶇疆涓嶈兘鏇存敼) + "StartAreas": [ "BZQ" ], // 璧风偣璐у尯缂栧彿:鍖呰鍖�+ "EndAreas": [ "MTHJQ" ] // 缁堢偣璐у尯缂栧彿:婊℃墭璐ф灦鍖� }, { "TaskName": "婊$涓嬬嚎鍏ュ簱", @@ -20,8 +20,8 @@ }, { "TaskName": "鎴愬搧鑳跺嚭搴�, - "StartAreas": [ "MTHJQ", "MXHJQ", "HCBHQ", "QCBHQ" ], // 婊℃墭璐ф灦鍖恒�婊$璐ф灦鍖恒�鐏溅澶囪揣鍖恒�姹借溅澶囪揣鍖�- "EndAreas": [ "HCCKQ", "QCCKQ" ] // 鐏溅鍑哄簱鍖恒�姹借溅鍑哄簱鍖�+ "StartAreas": [ "MTHJQ", "MXHJQ", "HCBHQ", "QCBHQ" ], // 婊℃墭璐ф灦鍖�婊$璐ф灦鍖�鐏溅澶囪揣鍖�姹借溅澶囪揣鍖�+ "EndAreas": [ "HCCKQ", "QCCKQ" ] // 鐏溅鍑哄簱鍖�姹借溅鍑哄簱鍖� }, { "TaskName": "绌烘墭涓婄嚎鍑哄簱", @@ -40,19 +40,19 @@ }, { "TaskName": "绌虹鍏ュ簱", - "StartAreas": [ "KXJBQ1", "KXJBQ2" ], // 绌虹鍏ュ簱鎺ラ┏鍖�銆� + "StartAreas": [ "KXJBQ1", "KXJBQ2" ], // 绌虹鍏ュ簱鎺ラ┏鍖�,2 "EndAreas": [ "KXHJQ" ] // 绌虹璐ф灦鍖� }, { "TaskName": "鎶芥鍑哄簱", - "StartAreas": [ "MTHJQ", "MXHJQ" ], // 婊℃墭璐ф灦鍖恒�婊$璐ф灦鍖�+ "StartAreas": [ "MTHJQ", "MXHJQ" ], // 婊℃墭璐ф灦鍖�婊$璐ф灦鍖� "EndAreas": [ "CJQ" ] // 鎶芥鍖� }, { "TaskName": "鎶芥鍚堟牸鍥炲簱", "StartAreas": [ "CJQ" ], // 鎶芥鍖�- "EndAreas_Pallet": [ "MTHJQ" ], // 缁堢偣璐у尯锛堟墭鐩橈級锛氭弧鎵樿揣鏋跺尯 - "EndAreas_Goodpack": [ "MXHJQ" ] // 缁堢偣璐у尯锛堝ソ杩愮锛夛細婊$璐ф灦鍖�+ "EndAreas_Pallet": [ "MTHJQ" ], // 缁堢偣璐у尯 (鎵樼洏) :婊℃墭璐ф灦鍖�+ "EndAreas_Goodpack": [ "MXHJQ" ] // 缁堢偣璐у尯 (濂借繍绠� :婊$璐ф灦鍖� }, { "TaskName": "鎶芥涓嶅悎鏍肩Щ搴�, @@ -69,13 +69,13 @@ "TaskName": "绉诲簱" } ], - "ProductionLines": [ // 浜х嚎淇℃伅锛堝緟瀹氾紝鏍规嵁鍚庨潰闇�眰鍐嶆洿鏀癸級 + "ProductionLines": [ // 浜х嚎淇℃伅 (寰呭畾,鏍规嵁鍚庨潰闇�眰鍐嶆洿鏀� { "Id": "1", // 浜х嚎缂栧彿 "Name": "鎵樼洏浜х嚎1", // 浜х嚎鍚嶇О "PlcIp": "127.0.0.1", // 浜х嚎IP "PlcPort": 502, // 浜х嚎绔彛 - "SlaveId": 1, // 浜х嚎modbus slave id锛堟牴鎹疄闄呮儏鍐碉級 + "SlaveId": 1, // 浜х嚎modbus slave id (鏍规嵁瀹為檯鎯呭喌) "OnLoc": [ "BZQ-1-1" ], // 涓婄嚎璐т綅 "OffLoc": [ "BZQ-1-2" ] // 涓嬬嚎璐т綅 }, diff --git a/core/Monitor.cs b/core/Monitor.cs index 4165a59..65bcc53 100644 --- a/core/Monitor.cs +++ b/core/Monitor.cs @@ -33,10 +33,10 @@ //TcpClientHelper.Link("127.0.0.1", 8550); // 鐢ㄤ簬娴嬭瘯 TcpClientHelper.Link(prod.PlcIp, prod.PlcPort); - // TCPClient浼犻�淇℃伅鐨勬椂鍊欙紝涓嶈鐢ㄦ柇鐐归樆濉炵▼搴�+ // TCPClient浼犻�淇℃伅鐨勬椂鍊�涓嶈鐢ㄦ柇鐐归樆濉炵▼搴� // {"item_code":"CG1001","batch_no":"BN1001","cntr_code":"CN2505111"} if (!TcpClientHelper.TryReadProductionLine(out byte[] read)) { - info = $"娴嬭瘯{prod.Id}鍙蜂骇绾縶prod.PlcIp}:{prod.PlcPort}锛氳鍙栦骇绾夸俊鎭け璐�; + info = $"娴嬭瘯{prod.Id}鍙蜂骇绾縶prod.PlcIp}:{prod.PlcPort}:璇诲彇浜х嚎淇℃伅澶辫触"; LogHelper.Info(info); continue; } @@ -72,20 +72,14 @@ public static void CheckOutboundOrder() { var db = new SqlHelper<object>().GetInstance(); - var info = ""; - var taskInfo = Settings.GetTaskInfo(ETask.C鎴愬搧鑳跺嚭搴�; - var taskName = taskInfo.TaskName; + var taskName = "鍑哄簱"; + const string preLog = "杞:鍑哄簱:"; try { - var orderList = db.Queryable<TN_Outbound_Order>() - .Where(c => c.N_B_STATE == 1) - .OrderBy(c => c.T_CREATE, SqlSugar.OrderByType.Asc) - .ToList(); - + var orderList = db.Queryable<TN_Outbound_Order>().Where(c => c.N_B_STATE == 1).OrderBy(c => c.T_CREATE).ToList(); if (orderList.Count == 0) { - info = $"杞锛歿taskName}锛氭殏鏃犲緟鎵ц鐨剓taskName}鍗�; - LogHelper.Info(info); + LogHelper.Debug(preLog + $"鏆傛棤寰呮墽琛岀殑{taskName}鍗�); return; } @@ -93,12 +87,9 @@ var detailList = new List<TN_Outbound_Detail>(); foreach (var order in orderList) { - var doingCount = db.Queryable<TN_Outbound_Detail>() - .Count(d => d.S_OO_NO == order.S_NO && d.N_B_STATE >= 2); // 鎵ц涓�- var allCount = db.Queryable<TN_Outbound_Detail>() - .Count(d => d.S_OO_NO == order.S_NO); - info = $"杞锛歿taskName}锛氱粺璁taskName}鍗�{order.S_NO}'浠诲姟宸蹭笅鍙戯細{doingCount}/{allCount}"; - LogHelper.Info(info); + var doingCount = db.Queryable<TN_Outbound_Detail>().Count(d => d.S_OO_NO == order.S_NO && d.N_B_STATE >= 2); + var allCount = db.Queryable<TN_Outbound_Detail>().Count(d => d.S_OO_NO == order.S_NO); + LogHelper.Info(preLog + $"缁熻{taskName}鍗�{order.S_NO}'浠诲姟宸蹭笅鍙�{doingCount}/{allCount}"); if (doingCount == allCount) { order.N_B_STATE = 2; // 鎵�湁浠诲姟閮藉凡鎵ц @@ -111,8 +102,7 @@ .First(); if (lastDetail != null) { - info = $"杞锛歿taskName}锛歿taskName}鍗�{order.S_NO}'涓婁竴涓换鍔′粛鍦ㄨ繘琛屼腑锛� + JsonConvert.SerializeObject(lastDetail); - LogHelper.Info(info); + LogHelper.Info(preLog + $"{taskName}鍗�{order.S_NO}'涓婁竴涓换鍔′粛鍦ㄨ繘琛屼腑:" + JsonConvert.SerializeObject(lastDetail)); continue; } @@ -121,8 +111,7 @@ .First(); if (outboundDetail == null) { - info = $"杞锛歿taskName}锛氫粛鏈変换鍔℃湭鎵ц瀹屾垚锛屼絾褰撳墠娌℃湁宸蹭笅鍙戠殑浠诲姟"; - LogHelper.Info(info); + LogHelper.Info(preLog + $"浠嶆湁浠诲姟鏈墽琛屽畬鎴�浣嗗綋鍓嶆病鏈夊凡涓嬪彂鐨勪换鍔�"); continue; } @@ -135,16 +124,10 @@ } foreach (var detail in detailList) { - var startLoc = db.Queryable<TN_Location>() - .LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE) - .Where((l, c) => c.S_CNTR_CODE == detail.S_CNTR_CODE) // 鏍规嵁瀹瑰櫒鍙锋悳绱㈣捣鐐硅揣浣�- .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") // 绛涢�锛氭湭涓婇攣 - .Where(l => l.N_CURRENT_NUM == 1) - .First(); + var startLoc = db.Queryable<TN_Location>().LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE).Where((l, c) => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y" && l.N_CURRENT_NUM == 1 && c.S_CNTR_CODE == detail.S_CNTR_CODE).First(); if (startLoc == null) { - info = $"杞锛歿taskName}锛氭病鏈夋壘鍒板悎閫傜殑璧风偣璐т綅锛�; - LogHelper.Info(info); + LogHelper.Info(preLog + $"娌℃湁鎵惧埌鍚堥�鐨勮捣鐐硅揣浣�"); continue; } @@ -154,8 +137,7 @@ .Where(a => a.N_CURRENT_NUM == 0).First(); if (endLoc == null) { - info = $"杞锛歿taskName}锛氭病鏈夋壘鍒板悎閫傜殑缁堢偣璐т綅锛佸崟鍙�{detail.S_OO_NO}'瑕佹眰缁堢偣搴撳尯涓�{detail.S_END_AREA}'"; - LogHelper.Info(info); + LogHelper.Info(preLog + $"娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣�鍗曞彿'{detail.S_OO_NO}'瑕佹眰缁堢偣搴撳尯涓�{detail.S_END_AREA}'"); continue; } @@ -176,50 +158,30 @@ using (var tran = db.Ado.UseTran()) { if (db.Updateable(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"杞锛歿taskName}锛氫慨鏀规槑缁嗚〃鐘舵�涓哄畬鎴�-澶辫触锛�; - LogHelper.Info(info); + LogHelper.Info($"杞:{taskName}:淇敼鏄庣粏琛ㄧ姸鎬佷负瀹屾垚--澶辫触!"); continue; } - if (db.Updateable(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(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); - continue; + LogHelper.Info(preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触!璧风偣='{startLoc.S_CODE}',閿佺姸鎬�>'鍑哄簱閿�"); } - - if (db.Updateable(endLoc).UpdateColumns(it => new { - it.N_LOCK_STATE, - it.S_LOCK_STATE, - it.S_LOCK_OP, - it.T_MODIFY, - }).ExecuteCommand() <= 0) { + if (db.Updateable(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); - continue; + LogHelper.Info(preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触!缁堢偣='{endLoc.S_CODE}',閿佺姸鎬�>'鍏ュ簱閿�"); } - if (db.Insertable(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; - LogHelper.Info(info); - continue; + LogHelper.Info(preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'澶辫触!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } + // 鎻愪氦鏁版嵁搴撴洿鏀� tran.CommitTran(); - info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; - LogHelper.Info(info); - //continue; + LogHelper.Info(preLog + $"鐢熸垚浠诲姟'{task.S_TYPE}'鎴愬姛!浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{task.S_CNTR_CODE},璧风偣={task.S_START_LOC},缁堢偣={task.S_END_LOC}"); } - // 濡傛灉褰撳墠鍑哄簱鍗曟槑缁嗘槸ERP涓嬪彂鐨勶紝浠诲姟鍒涘缓瀹屾垚鍙嶉璐т綅淇℃伅 + // 濡傛灉褰撳墠鍑哄簱鍗曟槑缁嗘槸ERP涓嬪彂鐨�浠诲姟鍒涘缓瀹屾垚鍙嶉璐т綅淇℃伅 if (detail.S_BS_TYPE == "ERP") { //var createTaskReturnErpTask = Task.Run(() => { // CreateTaskReturnErp(task); @@ -231,8 +193,7 @@ } catch (Exception ex) { - info = $"杞锛歿taskName}锛氬彂鐢熶簡寮傚父锛歿ex.Message}"; - LogHelper.InfoEx(ex); + LogHelper.InfoEx(ex, preLog); } } @@ -242,25 +203,20 @@ var taskInfo = Settings.GetTaskInfo(ETask.C鎶芥鍑哄簱); var taskName = taskInfo.TaskName; + const string preLog = "杞:鎶芥:"; try { - var orderList = db.Queryable<TN_Spot_Check>() - .Where(c => c.N_B_STATE == 1) - .OrderBy(c => c.T_CREATE, SqlSugar.OrderByType.Asc) - .ToList(); - + var orderList = db.Queryable<TN_Spot_Check>().Where(c => c.N_B_STATE == 1).OrderBy(c => c.T_CREATE).ToList(); if (orderList.Count == 0) { - LogHelper.Info($"杞锛歿taskName}锛氭殏鏃犲緟鎵ц鐨剓taskName}鍗�); + LogHelper.Debug($"杞:{taskName}:鏆傛棤寰呮墽琛岀殑{taskName}鍗�); return; } var detailList = new List<TN_SpotCheck_Detail>(); foreach (var order in orderList) { - var doingCount = db.Queryable<TN_SpotCheck_Detail>() - .Count(d => d.S_OO_NO == order.S_NO && d.N_B_STATE >= 2); // 鎵ц涓�- var allCount = db.Queryable<TN_SpotCheck_Detail>() - .Count(d => d.S_OO_NO == order.S_NO); - LogHelper.Info($"杞锛歿taskName}锛氱粺璁taskName}鍗�{order.S_NO}'浠诲姟宸蹭笅鍙戯細{doingCount}/{allCount}"); + var doingCount = db.Queryable<TN_SpotCheck_Detail>().Count(d => d.S_OO_NO == order.S_NO && d.N_B_STATE >= 2); + var allCount = db.Queryable<TN_SpotCheck_Detail>().Count(d => d.S_OO_NO == order.S_NO); + LogHelper.Info(preLog + $"缁熻{taskName}鍗�{order.S_NO}'浠诲姟宸蹭笅鍙�{doingCount}/{allCount}"); if (doingCount == allCount) { order.N_B_STATE = 2; // 鎵�湁浠诲姟閮藉凡鎵ц @@ -273,7 +229,7 @@ .ToList(); if (checkDetailList.Count == 0) { - LogHelper.Info($"杞锛歿taskName}锛氫粛鏈変换鍔℃湭鎵ц瀹屾垚锛屼絾褰撳墠娌℃湁宸蹭笅鍙戠殑浠诲姟"); + LogHelper.Info($"杞:{taskName}:浠嶆湁浠诲姟鏈墽琛屽畬鎴�浣嗗綋鍓嶆病鏈夊凡涓嬪彂鐨勪换鍔�); continue; } @@ -283,23 +239,21 @@ } foreach (var detail in detailList) { - var startLoc = db.Queryable<TN_Location>() - .LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE) - .Where((l, c) => c.S_CNTR_CODE == detail.S_CNTR_CODE) - .First(); + var startLoc = db.Queryable<TN_Location>() .LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE) + .Where((l, c) => c.S_CNTR_CODE == detail.S_CNTR_CODE).First(); if (startLoc == null) { - LogHelper.Info($"杞锛歿taskName}锛氭病鏈夋壘鍒板悎閫傜殑璧风偣璐т綅锛�); + LogHelper.Info($"杞:{taskName}:娌℃湁鎵惧埌鍚堥�鐨勮捣鐐硅揣浣�"); continue; } var endLoc = db.Queryable<TN_Location>() .Where(l => l.S_AREA_CODE == detail.S_END_AREA) - .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") // 绛涢�锛氭湭涓婇攣 + .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") // 绛涢�:鏈笂閿� .Where(a => a.N_CURRENT_NUM == 0).First(); if (endLoc == null) { - LogHelper.Info($"杞锛歿taskName}锛氭病鏈夋壘鍒板悎閫傜殑缁堢偣璐т綅锛�); + LogHelper.Info($"杞:{taskName}:娌℃湁鎵惧埌鍚堥�鐨勭粓鐐硅揣浣�"); continue; } @@ -309,57 +263,44 @@ var task = WCSHelper.BuildTask(startLoc, endLoc, cntId, taskName); task.S_OP_CODE = detail.S_OO_NO; - WCSHelper.LockStartLoc(ref startLoc); // 璧风偣鍑哄簱閿�- WCSHelper.LockEndLoc(ref endLoc); // 缁堢偣鍏ュ簱閿�+ WCSHelper.LockStartLoc(ref startLoc); + WCSHelper.LockEndLoc(ref endLoc); using (var tran = db.Ado.UseTran()) { if (db.Updateable(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) { tran.RollbackTran(); - LogHelper.Info($"杞锛歿taskName}锛氫慨鏀箋taskName}鍗曟槑缁嗚〃鐘舵�涓哄畬鎴�-澶辫触锛�); + LogHelper.Info($"杞:{taskName}:淇敼{taskName}鍗曟槑缁嗚〃鐘舵�涓哄畬鎴�-澶辫触!"); continue; } - if (db.Updateable(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(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); + LogHelper.Info(preLog + $"鏇存柊[璧风偣璐т綅閿佺姸鎬乚澶辫触!璧风偣='{startLoc.S_CODE}',閿佺姸鎬�>'鍑哄簱閿�"); continue; } - if (db.Updateable(endLoc).UpdateColumns(it => new { - it.N_LOCK_STATE, - it.S_LOCK_STATE, - it.S_LOCK_OP, - it.T_MODIFY, - }).ExecuteCommand() <= 0) { + if (db.Updateable(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); + LogHelper.Info(preLog + $"鏇存柊[缁堢偣璐т綅閿佺姸鎬乚澶辫触!缁堢偣='{endLoc.S_CODE}',閿佺姸鎬�>'鍏ュ簱閿�"); continue; } if (db.Insertable(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; + info = $"鐢熸垚浠诲姟'{taskName}'澶辫触,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}"; LogHelper.Info(info); continue; } tran.CommitTran(); - info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; + info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}"; LogHelper.Info(info); continue; } } } catch (Exception ex) { - LogHelper.InfoEx(ex); + LogHelper.InfoEx(ex, preLog); } } @@ -369,6 +310,7 @@ var taskInfo = Settings.GetTaskInfo(ETask.Y绉诲簱); var taskName = taskInfo.TaskName; + const string preLog = "杞:绉诲簱:"; try { var orderList = db.Queryable<TN_Relocation_List>() @@ -377,7 +319,7 @@ .ToList(); if (orderList.Count == 0) { - LogHelper.Info($"杞锛歿taskName}锛氭殏鏃犲緟鎵ц鐨剓taskName}鍗�); + LogHelper.Debug($"杞:{taskName}:鏆傛棤寰呮墽琛岀殑{taskName}鍗�); return; } @@ -387,7 +329,7 @@ .Count(d => d.S_OO_NO == order.S_NO && d.N_B_STATE >= 2); // 鎵ц涓� var allCount = db.Queryable<TN_RelocationList_Detail>() .Count(d => d.S_OO_NO == order.S_NO); - LogHelper.Info($"杞锛歿taskName}锛氱粺璁taskName}鍗�{order.S_NO}浠诲姟宸蹭笅鍙戯細{doingCount}/{allCount}"); + LogHelper.Info($"杞:{taskName}:缁熻{taskName}鍗�{order.S_NO}浠诲姟宸蹭笅鍙�{doingCount}/{allCount}"); if (doingCount == allCount) { order.N_B_STATE = 2; // 鎵�湁浠诲姟閮藉凡鎵ц @@ -400,7 +342,7 @@ .ToList(); if (checkDetailList.Count == 0) { - LogHelper.Info($"杞锛歿taskName}锛氫粛鏈変换鍔℃湭鎵ц瀹屾垚锛屼絾褰撳墠娌℃湁宸蹭笅鍙戠殑浠诲姟"); + LogHelper.Info($"杞:{taskName}:浠嶆湁浠诲姟鏈墽琛屽畬鎴�浣嗗綋鍓嶆病鏈夊凡涓嬪彂鐨勪换鍔�); continue; } @@ -413,23 +355,23 @@ var startLoc = db.Queryable<TN_Location>() .LeftJoin<TN_Loc_Container>((l, c) => l.S_CODE == c.S_LOC_CODE) .Where((l, c) => c.S_CNTR_CODE == detail.S_CNTR_CODE) - .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") // 绛涢�锛氭湭涓婇攣 + .Where(l => l.N_LOCK_STATE == 0 && l.S_LOCK_STATE == "鏃� && l.C_ENABLE == "Y") // 绛涢�:鏈笂閿� .Where(l => l.N_CURRENT_NUM == 1) .First(); if (startLoc == null) { - info = $"杞锛歿taskName}锛氭病鏈夋壘鍒板鍣ㄥ彿={detail.S_CNTR_CODE}鐨勮捣鐐硅揣浣嶏紒闇�婊¤冻锛氭湭涓婇攣銆佸綋鍓嶅鍣ㄦ暟閲�1"; + info = $"杞:{taskName}:娌℃湁鎵惧埌瀹瑰櫒鍙�{detail.S_CNTR_CODE}鐨勮捣鐐硅揣浣�闇�婊¤冻:鏈笂閿�褰撳墠瀹瑰櫒鏁伴噺=1"; LogHelper.Info(info); continue; } var endLoc = db.Queryable<TN_Location>() .Where(l => l.S_AREA_CODE == detail.S_END_AREA) - .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") // 绛涢�锛氭湭涓婇攣 + .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") // 绛涢�:鏈笂閿� .Where(a => a.N_CURRENT_NUM == 0).First(); if (endLoc == null) { - info = $"杞锛歿taskName}锛氭病鏈夋壘鍒扮粓鐐硅揣浣�{detail.S_END_AREA}鐨勭粓鐐硅揣浣嶏紒闇�婊¤冻锛氭湭涓婇攣銆佸綋鍓嶅鍣ㄦ暟閲�0"; + info = $"杞:{taskName}:娌℃湁鎵惧埌缁堢偣璐т綅={detail.S_END_AREA}鐨勭粓鐐硅揣浣�闇�婊¤冻:鏈笂閿�褰撳墠瀹瑰櫒鏁伴噺=0"; LogHelper.Info(info); continue; } @@ -446,7 +388,7 @@ using (var tran = db.Ado.UseTran()) { if (db.Updateable(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) { tran.RollbackTran(); - LogHelper.Info($"杞锛歿taskName}锛氫慨鏀箋taskName}鍗曟槑缁嗚〃鐘舵�涓哄畬鎴�-澶辫触锛�); + LogHelper.Info($"杞:{taskName}:淇敼{taskName}鍗曟槑缁嗚〃鐘舵�涓哄畬鎴�-澶辫触!"); continue; } @@ -455,10 +397,10 @@ it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, - it.N_CURRENT_NUM, // 璧风偣璐т綅缁戝畾鍚庯紝灏嗚揣浣嶇姸鎬佹洿鏂�+ it.N_CURRENT_NUM, // 璧风偣璐т綅缁戝畾鍚�灏嗚揣浣嶇姸鎬佹洿鏂� }).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂拌捣鐐硅揣浣峽startLoc.S_CODE}閿佺姸鎬佸け璐�; + info = $"鐢熸垚浠诲姟'{taskName}'澶辫触:鏇存柊璧风偣璐т綅{startLoc.S_CODE}閿佺姸鎬佸け璐�; LogHelper.Info(info); continue; } @@ -470,27 +412,27 @@ it.T_MODIFY, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂扮粓鐐硅揣浣峽endLoc.S_CODE}閿佺姸鎬佸け璐�; + info = $"鐢熸垚浠诲姟'{taskName}'澶辫触:鏇存柊缁堢偣璐т綅{endLoc.S_CODE}閿佺姸鎬佸け璐�; LogHelper.Info(info); continue; } if (db.Insertable(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; + info = $"鐢熸垚浠诲姟'{taskName}'澶辫触,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}"; LogHelper.Info(info); continue; } tran.CommitTran(); - info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; + info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}"; LogHelper.Info(info); continue; } } } catch (Exception ex) { - LogHelper.InfoEx(ex); + LogHelper.InfoEx(ex, preLog); } } @@ -505,7 +447,7 @@ .First(); if (plan == null) { - info = $"璁″垝鍗曞彿{task.S_BS_NO}涓嶅瓨鍦紒"; + info = $"璁″垝鍗曞彿{task.S_BS_NO}涓嶅瓨鍦�"; LogHelper.Info(info); } @@ -514,13 +456,13 @@ .First(); if (cgDetail == null) { - info = $"鐗╂枡缂栫爜涓嶅瓨鍦紒"; + info = $"鐗╂枡缂栫爜涓嶅瓨鍦�"; LogHelper.Info(info); } var model = new OtherModel.CreateTaskReturnErpInfo { - jhdh = plan.JHDH , // 璁″垝鍗曞彿锛堝敮涓�爣璇嗭級 - ckzt = plan.CKZT , // 鍑哄簱鐘舵�锛堥渶瑕佽繑鍥烇級 + jhdh = plan.JHDH , // 璁″垝鍗曞彿 (鍞竴鏍囪瘑) + ckzt = plan.CKZT , // 鍑哄簱鐘舵� (闇�杩斿洖) jhlb = plan.JHLB , // 璁″垝绫诲埆 ckdh = plan.CKDH , // 鍙傝�鍗曞彿 cph = plan.CPH , // 杞︾墝鍙�@@ -531,9 +473,9 @@ cplb = plan.CPLB , // 浜у搧绫诲埆 cplbmx = plan.CPLBMX , // 浜у搧绫诲埆鏄庣粏 pp = plan.PP , // 鍝佺墝 - dj = plan.DJ , // 绛夌骇锛堥渶瑕佽繑鍥烇級 + dj = plan.DJ , // 绛夌骇 (闇�杩斿洖) gh = plan.GH , // 缃愬彿 - ph = plan.PH , // 鎵瑰彿锛堥渶瑕佽繑鍥烇級 + ph = plan.PH , // 鎵瑰彿 (闇�杩斿洖) bzlx = plan.BZLX , // 鍖呰绫诲瀷 pzdh = plan.PZDH , // 娲捐鍗曞彿 pzd_dw = plan.PZD_DW , // 娲捐鍗曞崟浣�@@ -546,15 +488,15 @@ pz_zfrq = plan.PZ_ZFRQ , // 娲捐浣滃簾鏃ユ湡 pz_bz = plan.PZ_BZ , // 娲捐澶囨敞 ckdbh = plan.CKDBH , // 鍑哄簱鍗曠紪鍙�- //sfjs = plan.SFJS , // 瀹炲彂浠舵暟锛堥渶瑕佽繑鍥烇級 - //sfsl = plan.SFSL , // 瀹炲彂鏁伴噺锛堥渶瑕佽繑鍥烇級 - //sfcs = plan.SFCS , // 瀹炲彂杞︽暟锛堥渶瑕佽繑鍥烇級 - //zcsj = plan.ZCSJ , // 瑁呰溅鏃堕棿锛堥渶瑕佽繑鍥烇級 - //jldw = plan.JLDW , // 璁¢噺鍗曚綅锛堥渶瑕佽繑鍥烇級 - //fhrq = plan.FHRQ , // 鍙戣揣鏃ユ湡锛堥渶瑕佽繑鍥烇級 - //ckdm = plan.CKDM , // 浠撳簱浠g爜锛堥渶瑕佽繑鍥烇級 - //fhr = plan.FHR , // 鍙戣揣浜猴紙闇�杩斿洖锛�- //czydm = plan.CZYDM , // 鎿嶄綔鍛橈紙闇�杩斿洖锛�+ //sfjs = plan.SFJS , // 瀹炲彂浠舵暟 (闇�杩斿洖) + //sfsl = plan.SFSL , // 瀹炲彂鏁伴噺 (闇�杩斿洖) + //sfcs = plan.SFCS , // 瀹炲彂杞︽暟 (闇�杩斿洖) + //zcsj = plan.ZCSJ , // 瑁呰溅鏃堕棿 (闇�杩斿洖) + //jldw = plan.JLDW , // 璁¢噺鍗曚綅 (闇�杩斿洖) + //fhrq = plan.FHRQ , // 鍙戣揣鏃ユ湡 (闇�杩斿洖) + //ckdm = plan.CKDM , // 浠撳簱浠g爜 (闇�杩斿洖) + //fhr = plan.FHR , // 鍙戣揣浜�(闇�杩斿洖) + //czydm = plan.CZYDM , // 鎿嶄綔鍛�(闇�杩斿洖) shr_username = plan.SHR_USERNAME , // 瀹℃牳浜� shrq = plan.SHRQ , // 瀹℃牳鏃ユ湡 zfbj = plan.ZFBJ , // 浣滃簾鏍囪 @@ -563,14 +505,14 @@ shdw = plan.SHDW , // 鏀惰揣鍗曚綅 ysdw = plan.YSDW , // 杩愯緭鍗曚綅 lxr = plan.LXR , // 鑱旂郴浜�- //ry_zxg = plan.RY_ZXG , // 瑁呭嵏宸ワ紙闇�杩斿洖锛�- //ry_ccsj = plan.RY_CCSJ , // 鍙夎溅鍙告満锛堥渶瑕佽繑鍥烇級 + //ry_zxg = plan.RY_ZXG , // 瑁呭嵏宸�(闇�杩斿洖) + //ry_ccsj = plan.RY_CCSJ , // 鍙夎溅鍙告満 (闇�杩斿洖) erphx_jhdh = plan.ERPHX_JHDH , // erp浜よ揣鍗曞彿 erphx_wlbm = plan.ERPHX_WLBM , // erp鐗╂枡缂栫爜 erphx_wlmc = plan.ERPHX_WLMC , // erp鐗╂枡鍚嶇О erphx_cjrq = plan.ERPHX_CJRQ , // erp鍒涘缓鏃ユ湡 - hw = plan.HW , // 璐т綅锛堥渶瑕佽繑鍥烇級 - hwzt = plan.HWZT // 璐т綅鐘舵�锛堥渶瑕佽繑鍥烇級 + hw = plan.HW , // 璐т綅 (闇�杩斿洖) + hwzt = plan.HWZT // 璐т綅鐘舵� (闇�杩斿洖) }; model.hw = task.S_START_LOC; model.hwzt = "寰呭嚭搴�; @@ -579,7 +521,7 @@ var jsonInfo = JsonConvert.SerializeObject(model); var result = httpH.WebPost(Settings.ErpApiUrl + Settings.ErpRoute.CreateTaskReturn, jsonInfo); - LogHelper.InfoApi($"鍒涘缓浠诲姟瀹屾垚鍙嶉ERP鎺ュ彛锛岀粨鏋�{result}锛岃皟鐢ㄥ弬鏁帮細", model); + LogHelper.InfoApi($"鍒涘缓浠诲姟瀹屾垚鍙嶉ERP鎺ュ彛,缁撴灉={result},璋冪敤鍙傛暟:", model); plan.HW = model.hw; plan.HWZT = model.hwzt; diff --git a/core/WCSCore.cs b/core/WCSCore.cs index dd776f4..5f1e56a 100644 --- a/core/WCSCore.cs +++ b/core/WCSCore.cs @@ -22,26 +22,26 @@ namespace HH.WCS.Mobox3.DSZSH.core { public class WCSCore { public static ReturnResult OperateAgvTaskStatus(AgvTaskState model) { - const string preLog = "AGV锛氫换鍔$姸鎬佸洖鎶ワ細"; + const string preLog = "AGV:浠诲姟鐘舵�鍥炴姤:"; try { if (model.state > 0) { // AGV 鎵ц浠诲姟鐨勯�杈戝鐞� if (!AgvTaskProcessOk(model)) { - // 鎵ц涓峅K锛岃鏄庢病鏈夋壘鍒颁换鍔�- return NewReturnResult(1, preLog + $"鏍规嵁浠诲姟鍙�{model.task_no}'鏈壘鍒板搴旂殑浠诲姟锛�); + // 鎵ц涓峅K,璇存槑娌℃湁鎵惧埌浠诲姟 + return NewReturnResult(1, preLog + $"鏍规嵁浠诲姟鍙�{model.task_no}'鏈壘鍒板搴旂殑浠诲姟!"); } } - return NewReturnResult(0, "success"); // 涓嶈繑鍥炶缁嗘垚鍔熸棩蹇楋紝閬垮厤NDC浠sg=success浣滀负鎴愬姛鍒ゅ畾锛堝弬鑰冨浗鑷級 + return NewReturnResult(0, "success"); // 涓嶈繑鍥炶缁嗘垚鍔熸棩蹇�閬垮厤NDC浠sg=success浣滀负鎴愬姛鍒ゅ畾 (鍙傝�鍥借嚜) } catch (Exception ex) { - return NewReturnResult(-1, $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewReturnResult(-1, $"鍙戠敓浜嗗紓甯�{ex.Message}\n\n{ex.StackTrace}\n"); } } /// <summary> - /// 鎵ц AGV 浠诲姟锛屾煡璇笉鍒颁换鍔¤繑鍥�<see langword="false"/> + /// 鎵ц AGV 浠诲姟,鏌ヨ涓嶅埌浠诲姟杩斿洖 <see langword="false"/> /// </summary> /// <param name="model"></param> /// <returns></returns> @@ -104,9 +104,9 @@ break; } - // 灏咥GV鎵ц鐘舵�锛屽姞鍏N_Task_Action琛ㄤ腑 + // 灏咥GV鎵ц鐘舵�,鍔犲叆TN_Task_Action琛ㄤ腑 WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data); - //璋冪敤绗笁鏂规帴鍙o紙濡傛灉鏈夛級TaskProcess.ReportStatus锛屾坊鍔犱换鍔″姩浣滃叧绯昏〃 + //璋冪敤绗笁鏂规帴鍙�(濡傛灉鏈� TaskProcess.ReportStatus,娣诲姞浠诲姟鍔ㄤ綔鍏崇郴琛� return true; } @@ -116,19 +116,19 @@ var info = ""; try { - var cgDetail = new TN_CG_Detail(); // 濡傛灉娌℃湁淇℃伅锛岄粯璁ゅ氨鏄┖鍊硷紝鍙互鐩存帴濉叆锛屼笉闇�鍒ゆ柇 + var cgDetail = new TN_CG_Detail(); // 濡傛灉娌℃湁淇℃伅,榛樿灏辨槸绌哄�,鍙互鐩存帴濉叆,涓嶉渶瑕佸垽鏂� //var emptyTask = false; // 绌烘墭/绌虹浠诲姟 if (task.S_TYPE != ETask.K绌烘墭涓婄嚎鍑哄簱.Name() && task.S_TYPE != ETask.K绌烘墭鍏ュ簱.Name() && task.S_TYPE != ETask.K绌虹涓婄嚎鍑哄簱.Name() && task.S_TYPE != ETask.K绌虹鍏ュ簱.Name()) { - // 闈炵┖鎵�绌虹浠诲姟锛堢┖鎵�绌虹浠诲姟鏃犳硶鍦–GDetail鏌ュ埌鐗╂枡淇℃伅锛�+ // 闈炵┖鎵�绌虹浠诲姟 (绌烘墭/绌虹浠诲姟鏃犳硶鍦–GDetail鏌ュ埌鐗╂枡淇℃伅) //emptyTask= true; cgDetail = db.Queryable<TN_CG_Detail>() .Where(d => d.S_CNTR_CODE == task.S_CNTR_CODE) .First(); if (cgDetail == null) { - info = $"浠诲姟{task.S_CODE}瀹屾垚锛岃褰曞嚭鍏ュ簱瀛樺湪闂锛氭棤娉曞湪瀹瑰櫒璐у搧鏄庣粏琛ㄤ腑鎵惧埌鎵樼洏{task.S_CNTR_CODE}瀵瑰簲鐨勭墿鏂�; + info = $"浠诲姟{task.S_CODE}瀹屾垚,璁板綍鍑哄叆搴撳瓨鍦ㄩ棶棰�鏃犳硶鍦ㄥ鍣ㄨ揣鍝佹槑缁嗚〃涓壘鍒版墭鐩榹task.S_CNTR_CODE}瀵瑰簲鐨勭墿鏂�; LogHelper.Info(info); //return; cgDetail = new TN_CG_Detail() ; @@ -136,7 +136,7 @@ } } - var isInbound = false; // 鍏ュ簱绫诲瀷鐨勪换鍔★紙鍖呮嫭绉诲簱绫讳换鍔★級 + var isInbound = false; // 鍏ュ簱绫诲瀷鐨勪换鍔�(鍖呮嫭绉诲簱绫讳换鍔� var inboundTasks = new List<string> { ETask.M婊℃墭涓嬬嚎鍏ュ簱.Name(), ETask.M婊$涓嬬嚎鍏ュ簱.Name(), ETask.K绌烘墭鍏ュ簱.Name(), ETask.K绌虹鍏ュ簱.Name(), ETask.C鎶芥鍚堟牸鍥炲簱.Name(), ETask.C鎶芥涓嶅悎鏍肩Щ搴�Name(), ETask.Y绉诲簱.Name() @@ -159,7 +159,7 @@ S_ITEM_CODE = cgDetail.S_ITEM_CODE, S_BATCH_NO = cgDetail.S_BATCH_NO, S_ITEM_NAME = cgDetail.S_ITEM_NAME, - S_LOC_CODE = isInbound ? task.S_END_LOC : task.S_START_LOC, // 鍏ュ簱璁板綍缁堢偣璐т綅锛屽嚭搴撹褰曡捣鐐硅揣浣�+ S_LOC_CODE = isInbound ? task.S_END_LOC : task.S_START_LOC, // 鍏ュ簱璁板綍缁堢偣璐т綅,鍑哄簱璁板綍璧风偣璐т綅 S_CNTR_CODE = task.S_CNTR_CODE, S_ITEM_SPEC = cgDetail.S_ITEM_SPEC, S_NET_WEIGHT = cgDetail.S_NET_WEIGHT, @@ -168,14 +168,14 @@ S_TASK_NO = task.S_CODE, T_RECORD_TIME = DateTime.Now, S_TYPE = task.S_TYPE, - S_BS_CODE = task.S_BS_NO, // ERP鍗曞彿锛岄粯璁や负绌�+ S_BS_CODE = task.S_BS_NO, // ERP鍗曞彿,榛樿涓虹┖ N_QTY = cgDetail.N_ITEM_NUM, S_NO = task.S_OP_CODE, // 鍑哄簱/鎶芥/绉诲簱鍗� }; // 鏁版嵁搴撴搷浣� if (db.Insertable(record).ExecuteCommand() <= 0) { - info = "鎻掑叆鍑哄叆搴撹褰曡〃澶辫触锛� + JsonConvert.SerializeObject(record); + info = "鎻掑叆鍑哄叆搴撹褰曡〃澶辫触:" + JsonConvert.SerializeObject(record); LogHelper.Info(info); return; } @@ -195,7 +195,7 @@ /// <returns></returns> public static ReturnResult SafetyInteraction(SafetyInteractionInfo model) { var db = new SqlHelper<object>().GetInstance(); - const string preLog = "AGV锛氫骇绾垮畨鍏ㄤ氦浜掞細"; + const string preLog = "AGV:浜х嚎瀹夊叏浜や簰:"; try { ModbusHelper.Relink(); @@ -233,13 +233,13 @@ //} if (prodLineDevice.SystemState != 1) { - return NewReturnResult(3, preLog + $"褰撳墠浜х嚎鏃犳硶涓嶢GV鑱斿姩锛氱姸鎬亄prodLineDevice.SystemState}"); + return NewReturnResult(3, preLog + $"褰撳墠浜х嚎鏃犳硶涓嶢GV鑱斿姩:鐘舵�{prodLineDevice.SystemState}"); } // 璇锋眰鍙栬揣 if (model.apply_code == "5") { if (prodLineDevice.FullOffline != 1) { - return NewReturnResult(4, preLog + $"褰撳墠杈撻�绾挎弧鏂欎笅绾夸俊鍙蜂笉涓�锛屾棤娉曞彇璐�); + return NewReturnResult(4, preLog + $"褰撳墠杈撻�绾挎弧鏂欎笅绾夸俊鍙蜂笉涓�,鏃犳硶鍙栬揣"); } if (!prodLineDevice.SetAgvPicking(1)) { @@ -251,7 +251,7 @@ // 璇锋眰鍗歌揣 else if (model.apply_code == "1") { if (prodLineDevice.AllowAgvPlacePallet != 1) { - return NewReturnResult(6, preLog + $"褰撳墠杈撻�绾垮厑璁告斁鎵樼洏淇″彿涓嶄负1锛屾棤娉曟斁璐�); + return NewReturnResult(6, preLog + $"褰撳墠杈撻�绾垮厑璁告斁鎵樼洏淇″彿涓嶄负1,鏃犳硶鏀捐揣"); } if (!prodLineDevice.SetAgvPlacingPallet(1)) { @@ -266,7 +266,7 @@ } catch (Exception ex) { - return NewReturnResult(1, preLog + $"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + return NewReturnResult(1, preLog + $"鍙戠敓浜嗗紓甯�{ex.Message}\n\n{ex.StackTrace}\n"); } } @@ -278,7 +278,7 @@ .First(d => d.N_B_STATE == 2); if (detail == null) { - LogHelper.Info($"{taskName}锛欰GV鍙栬揣锛氭煡璇㈡槑缁嗗崟锛氬綋鍓嶆病鏈夋墽琛屼腑鐨勬槑缁嗗崟"); + LogHelper.Info($"{taskName}:AGV鍙栬揣:鏌ヨ鏄庣粏鍗�褰撳墠娌℃湁鎵ц涓殑鏄庣粏鍗�); return; } @@ -286,23 +286,23 @@ detail.N_B_STATE = spotStateCode; if (db.Updateable(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) { tran.RollbackTran(); - LogHelper.Info($"{taskName}锛欰GV鍙栬揣锛氫慨鏀规槑缁嗗崟鐘舵�涓恒�3浠诲姟鎵ц瀹屾垚銆戝け璐ワ紒"); + LogHelper.Info($"{taskName}:AGV鍙栬揣:淇敼鏄庣粏鍗曠姸鎬佷负銆�浠诲姟鎵ц瀹屾垚銆戝け璐�"); return; } var finishedCount = db.Queryable<TN_Outbound_Detail>().Count(d => d.S_OO_NO == detail.S_OO_NO && d.N_B_STATE == 3); var allCount = db.Queryable<TN_Outbound_Detail>().Count(d => d.S_OO_NO == detail.S_OO_NO); - LogHelper.Info($"{taskName}锛欰GV鍙栬揣锛氱粺璁′换鍔″凡瀹屾垚锛歿finishedCount}/{allCount}"); + LogHelper.Info($"{taskName}:AGV鍙栬揣:缁熻浠诲姟宸插畬鎴�{finishedCount}/{allCount}"); - if (finishedCount == allCount) { // 褰撳墠鍑哄簱鍗曚笅鐨勬墍鏈夋槑缁嗗崟锛屼换鍔¢兘宸茬粡瀹屾垚 + if (finishedCount == allCount) { // 褰撳墠鍑哄簱鍗曚笅鐨勬墍鏈夋槑缁嗗崟,浠诲姟閮藉凡缁忓畬鎴� if (db.Updateable<TN_Outbound_Order>().SetColumns(it => it.N_B_STATE == 3) .Where(it => it.S_NO == detail.S_OO_NO) .ExecuteCommand() <= 0) { tran.RollbackTran(); - LogHelper.Info($"{taskName}锛欰GV鍙栬揣锛氭墍鏈変换鍔″畬鎴愭椂锛氫慨鏀瑰崟鎹姸鎬佷负3浠诲姟鎵ц瀹屾垚--澶辫触锛�); + LogHelper.Info($"{taskName}:AGV鍙栬揣:鎵�湁浠诲姟瀹屾垚鏃�淇敼鍗曟嵁鐘舵�涓�浠诲姟鎵ц瀹屾垚--澶辫触!"); return; } } @@ -322,7 +322,7 @@ .First(); if (plan == null) { - info = $"璁″垝鍗曞彿{task.S_BS_NO}涓嶅瓨鍦紒"; + info = $"璁″垝鍗曞彿{task.S_BS_NO}涓嶅瓨鍦�"; LogHelper.Info(info); } @@ -331,13 +331,13 @@ .First(); if (cgDetail == null) { - info = $"鐗╂枡缂栫爜涓嶅瓨鍦紒"; + info = $"鐗╂枡缂栫爜涓嶅瓨鍦�"; LogHelper.Info(info); } var model = new OtherModel.PickUpReturnErpInfo { - jhdh = plan.JHDH, // 璁″垝鍗曞彿锛堝敮涓�爣璇嗭級 - ckzt = plan.CKZT, // 鍑哄簱鐘舵�锛堥渶瑕佽繑鍥烇級 + jhdh = plan.JHDH, // 璁″垝鍗曞彿 (鍞竴鏍囪瘑) + ckzt = plan.CKZT, // 鍑哄簱鐘舵� (闇�杩斿洖) jhlb = plan.JHLB, // 璁″垝绫诲埆 ckdh = plan.CKDH, // 鍙傝�鍗曞彿 cph = plan.CPH, // 杞︾墝鍙�@@ -348,9 +348,9 @@ cplb = plan.CPLB, // 浜у搧绫诲埆 cplbmx = plan.CPLBMX, // 浜у搧绫诲埆鏄庣粏 pp = plan.PP, // 鍝佺墝 - dj = plan.DJ, // 绛夌骇锛堥渶瑕佽繑鍥烇級 + dj = plan.DJ, // 绛夌骇 (闇�杩斿洖) gh = plan.GH, // 缃愬彿 - ph = plan.PH, // 鎵瑰彿锛堥渶瑕佽繑鍥烇級 + ph = plan.PH, // 鎵瑰彿 (闇�杩斿洖) bzlx = plan.BZLX, // 鍖呰绫诲瀷 pzdh = plan.PZDH, // 娲捐鍗曞彿 pzd_dw = plan.PZD_DW, // 娲捐鍗曞崟浣�@@ -363,15 +363,15 @@ pz_zfrq = plan.PZ_ZFRQ, // 娲捐浣滃簾鏃ユ湡 pz_bz = plan.PZ_BZ, // 娲捐澶囨敞 ckdbh = plan.CKDBH, // 鍑哄簱鍗曠紪鍙�- sfjs = plan.SFJS, // 瀹炲彂浠舵暟锛堥渶瑕佽繑鍥烇級--鏇存柊 - sfsl = plan.SFSL, // 瀹炲彂鏁伴噺锛堥渶瑕佽繑鍥烇級--鏇存柊 - //sfcs = plan.SFCS , // 瀹炲彂杞︽暟锛堥渶瑕佽繑鍥烇級 - //zcsj = plan.ZCSJ , // 瑁呰溅鏃堕棿锛堥渶瑕佽繑鍥烇級 - //jldw = plan.JLDW , // 璁¢噺鍗曚綅锛堥渶瑕佽繑鍥烇級 - //fhrq = plan.FHRQ , // 鍙戣揣鏃ユ湡锛堥渶瑕佽繑鍥烇級 - //ckdm = plan.CKDM , // 浠撳簱浠g爜锛堥渶瑕佽繑鍥烇級 - //fhr = plan.FHR , // 鍙戣揣浜猴紙闇�杩斿洖锛�- //czydm = plan.CZYDM , // 鎿嶄綔鍛橈紙闇�杩斿洖锛�+ sfjs = plan.SFJS, // 瀹炲彂浠舵暟 (闇�杩斿洖) --鏇存柊 + sfsl = plan.SFSL, // 瀹炲彂鏁伴噺 (闇�杩斿洖) --鏇存柊 + //sfcs = plan.SFCS , // 瀹炲彂杞︽暟 (闇�杩斿洖) + //zcsj = plan.ZCSJ , // 瑁呰溅鏃堕棿 (闇�杩斿洖) + //jldw = plan.JLDW , // 璁¢噺鍗曚綅 (闇�杩斿洖) + //fhrq = plan.FHRQ , // 鍙戣揣鏃ユ湡 (闇�杩斿洖) + //ckdm = plan.CKDM , // 浠撳簱浠g爜 (闇�杩斿洖) + //fhr = plan.FHR , // 鍙戣揣浜�(闇�杩斿洖) + //czydm = plan.CZYDM , // 鎿嶄綔鍛�(闇�杩斿洖) shr_username = plan.SHR_USERNAME, // 瀹℃牳浜� shrq = plan.SHRQ, // 瀹℃牳鏃ユ湡 zfbj = plan.ZFBJ, // 浣滃簾鏍囪 @@ -380,14 +380,14 @@ shdw = plan.SHDW, // 鏀惰揣鍗曚綅 ysdw = plan.YSDW, // 杩愯緭鍗曚綅 lxr = plan.LXR, // 鑱旂郴浜�- //ry_zxg = plan.RY_ZXG , // 瑁呭嵏宸ワ紙闇�杩斿洖锛�- //ry_ccsj = plan.RY_CCSJ , // 鍙夎溅鍙告満锛堥渶瑕佽繑鍥烇級 + //ry_zxg = plan.RY_ZXG , // 瑁呭嵏宸�(闇�杩斿洖) + //ry_ccsj = plan.RY_CCSJ , // 鍙夎溅鍙告満 (闇�杩斿洖) erphx_jhdh = plan.ERPHX_JHDH, // erp浜よ揣鍗曞彿 erphx_wlbm = plan.ERPHX_WLBM, // erp鐗╂枡缂栫爜 erphx_wlmc = plan.ERPHX_WLMC, // erp鐗╂枡鍚嶇О erphx_cjrq = plan.ERPHX_CJRQ, // erp鍒涘缓鏃ユ湡 - hw = plan.HW, // 璐т綅锛堥渶瑕佽繑鍥烇級 - hwzt = plan.HWZT // 璐т綅鐘舵�锛堥渶瑕佽繑鍥烇級 + hw = plan.HW, // 璐т綅 (闇�杩斿洖) + hwzt = plan.HWZT // 璐т綅鐘舵� (闇�杩斿洖) }; model.sfjs = cgDetail.N_ITEM_NUM; model.sfsl = (decimal) cgDetail.F_QTY; // TEMP @@ -396,7 +396,7 @@ var jsonInfo = JsonConvert.SerializeObject(model); var result = httpH.WebPost(Settings.ErpApiUrl + Settings.ErpRoute.PickUpReturn, jsonInfo); - LogHelper.InfoApi($"鍙栬揣瀹屾垚鍙嶉ERP鎺ュ彛锛岀粨鏋�{result}锛岃皟鐢ㄥ弬鏁帮細", model); + LogHelper.InfoApi($"鍙栬揣瀹屾垚鍙嶉ERP鎺ュ彛,缁撴灉={result},璋冪敤鍙傛暟:", model); plan.SFJS = model.sfjs; plan.SFSL = model.sfsl; @@ -411,14 +411,13 @@ } /// <summary> - /// 浠诲姟鍒嗗彂锛屾牴鎹皟搴︾被鍨嬪彂缁欎笉鍚岀殑璋冨害绯荤粺 + /// 浠诲姟鍒嗗彂,鏍规嵁璋冨害绫诲瀷鍙戠粰涓嶅悓鐨勮皟搴︾郴缁� /// </summary> internal static void Dispatch() { - //鏌ヨ浠诲姟 //鑾峰彇鎵�湁绛夊緟鐨勪换鍔� var list = WCSHelper.GetWaitingTaskList(); - LogHelper.Info("绛夊緟浠诲姟淇℃伅" + JsonConvert.SerializeObject(list), "API"); if (list.Count > 0) { + LogHelper.Info($"杞:浠诲姟鍒嗗彂:绛夊緟浠诲姟淇℃伅\n\n{JsonConvert.SerializeObject(list)}\n"); list.ForEach(task => { //浣跨敤鑷畾涔変换鍔℃帹閫� //TaskProcess.SendTask(task);//璋冨害NDC鎴栨澀濂ユ垨鍥借嚜璁惧 @@ -426,7 +425,7 @@ }); } else { - LogHelper.Info("鏆傛棤浠诲姟"); + LogHelper.Debug("杞:浠诲姟鍒嗗彂:鏆傛棤浠诲姟"); } } @@ -436,7 +435,7 @@ var ListenPort = Settings.TcpServerPort; TcpListener listener = new TcpListener(IPAddress.Any, ListenPort); listener.Start(); - Console.WriteLine($"鍚庡彴鏈嶅姟宸插惎鍔紝鐩戝惉绔彛 {ListenPort}..."); + Console.WriteLine($"鍚庡彴鏈嶅姟宸插惎鍔�鐩戝惉绔彛 {ListenPort}..."); while (true) { try { @@ -444,7 +443,7 @@ System.Net.Sockets.TcpClient client = listener.AcceptTcpClient(); Console.WriteLine($"浜х嚎瀹㈡埛绔凡杩炴帴: {client.Client.RemoteEndPoint}"); - // 澶勭悊瀹㈡埛绔姹傦紙浣跨敤Task閬垮厤闃诲涓荤嚎绋嬶級 + // 澶勭悊瀹㈡埛绔姹�(浣跨敤Task閬垮厤闃诲涓荤嚎绋� Task.Run(() => HandleClientRequest(client)); } catch (Exception ex) { @@ -465,15 +464,15 @@ // 瑙f瀽娑堟伅 var message = JsonConvert.DeserializeObject<ProductCompletedMessage>(jsonMessage); - //Console.WriteLine($"鏀跺埌浜у搧瀹屾垚閫氱煡 - 鐗╂枡锛歿message.ItemCode}锛涙壒娆″彿锛歿message.BatchNo}锛涘鍣ㄥ彿锛歿message.CntrCode}"); - LogHelper.Info($"鏀跺埌浜у搧涓嬬嚎閫氱煡锛�+message); + //Console.WriteLine($"鏀跺埌浜у搧瀹屾垚閫氱煡 - 鐗╂枡:{message.ItemCode};鎵规鍙�{message.BatchNo};瀹瑰櫒鍙�{message.CntrCode}"); + LogHelper.Info($"鏀跺埌浜у搧涓嬬嚎閫氱煡:"+message); string startLocCode = ""; - // A. 濡傛灉鏄崟涓骇绾縋LC锛岄�杩嘥CP浼犳挱锛岄渶瑕佷紶閫掍骇绾縄D锛屾牴鎹甀D璁$畻璧风偣璐т綅 - //startLocCode = Settings.ProductionLines[message.Id].OffLoc[0]; // 鐞嗚涓婂簲璇ュ彧鏈�涓狾ffLoc锛屽惁鍒欏簲璇ユ敞鏄庢槸鍝竴涓�+ // A. 濡傛灉鏄崟涓骇绾縋LC,閫氳繃TCP浼犳挱,闇�浼犻�浜х嚎ID,鏍规嵁ID璁$畻璧风偣璐т綅 + //startLocCode = Settings.ProductionLines[message.Id].OffLoc[0]; // 鐞嗚涓婂簲璇ュ彧鏈�涓狾ffLoc,鍚﹀垯搴旇娉ㄦ槑鏄摢涓�釜 - // B. 濡傛灉鏄瘡鏉′骇绾垮悇涓�釜瀹㈡埛绔紝鏇寸畝鍗曪紝鐩存帴鏍规嵁IP鍦板潃纭畾缁堢偣璐т綅 + // B. 濡傛灉鏄瘡鏉′骇绾垮悇涓�釜瀹㈡埛绔�鏇寸畝鍗�鐩存帴鏍规嵁IP鍦板潃纭畾缁堢偣璐т綅 // TODO 鍏蜂綋閫昏緫寰呭悗缁‘瀹氭椂琛ュ畬 var success = CreateInboundTask(startLocCode, message.CntrCode).Value; @@ -490,7 +489,7 @@ } /// <summary> - /// 鍏ュ簱浣滀笟鍒涘缓鍙帴鏀惰捣鐐硅揣浣嶅拰瀹瑰櫒鍙凤紙鐗╂枡淇℃伅寰呭畾銆侀�杩囦骇绾垮彿璁$畻璧风偣鐨勯�杈戞斁鍦ㄦ柟娉曞锛�+ /// 鍏ュ簱浣滀笟鍒涘缓鍙帴鏀惰捣鐐硅揣浣嶅拰瀹瑰櫒鍙�(鐗╂枡淇℃伅寰呭畾,閫氳繃浜х嚎鍙疯绠楄捣鐐圭殑閫昏緫鏀惧湪鏂规硶澶� /// </summary> /// <param name="startLocCode"></param> /// <param name="cntrCode"></param> @@ -514,7 +513,7 @@ .First(); if (startLoc == null) { - info = $"娌℃湁鎵惧埌璧风偣璐т綅'{startLocCode}'锛屾垨涓嶆弧瓒宠姹傦細鏈笂閿併�褰撳墠瀹瑰櫒鏁伴噺=0"; + info = $"娌℃湁鎵惧埌璧风偣璐т綅'{startLocCode}',鎴栦笉婊¤冻瑕佹眰:鏈笂閿�褰撳墠瀹瑰櫒鏁伴噺=0"; LogHelper.Info(info); return new Result<bool>(false, info); } @@ -533,13 +532,13 @@ var endLoc = db.Queryable<TN_Location>() .Where(a => endAreas.Contains(a.S_AREA_CODE)) - .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") // 绛涢�锛氭湭涓婇攣 - .Where(a => a.N_CURRENT_NUM == 0) // 绛涢�锛氱┖璐т綅 + .Where(a => a.N_LOCK_STATE == 0 && a.S_LOCK_STATE == "鏃� && a.C_ENABLE == "Y") // 绛涢�:鏈笂閿�+ .Where(a => a.N_CURRENT_NUM == 0) // 绛涢�:绌鸿揣浣� .OrderBy(l => l.N_LAYER) .First(); if (endLoc == null) { - info = $"娌℃湁鎵惧埌鍚堥�鐨勩�缁堢偣璐т綅銆戯紝闇�婊¤冻瑕佹眰锛氭湭涓婇攣銆佸綋鍓嶅鍣ㄦ暟閲�0"; + info = $"娌℃湁鎵惧埌鍚堥�鐨勩�缁堢偣璐т綅銆�闇�婊¤冻瑕佹眰:鏈笂閿�褰撳墠瀹瑰櫒鏁伴噺=0"; LogHelper.Info(info); return new Result<bool>(false, info); } @@ -555,7 +554,7 @@ if (db.Deleteable(locCntrRelOld).ExecuteCommand() <= 0 && db.Updateable<TN_Location>().SetColumns(l => l.N_CURRENT_NUM == 0).Where(l => l.S_CODE == locCntrRelOld.S_LOC_CODE).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鍒犻櫎鏃ц揣浣嶅鍣ㄥ叧绯昏〃澶辫触锛氳揣浣嶇紪鐮亄locCntrRelOld.S_LOC_CODE}锛屽鍣ㄧ紪鐮亄locCntrRelOld.S_CNTR_CODE}"; + info = $"鍒犻櫎鏃ц揣浣嶅鍣ㄥ叧绯昏〃澶辫触:璐т綅缂栫爜{locCntrRelOld.S_LOC_CODE},瀹瑰櫒缂栫爜{locCntrRelOld.S_CNTR_CODE}"; LogHelper.Info(info); return new Result<bool>(false, info); } @@ -563,7 +562,7 @@ if (db.Insertable(locCntrRel).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄥけ璐ワ細璐т綅缂栫爜{locCntrRel.S_LOC_CODE}锛屽鍣ㄧ紪鐮亄locCntrRel.S_CNTR_CODE}"; + info = $"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄥけ璐�璐т綅缂栫爜{locCntrRel.S_LOC_CODE},瀹瑰櫒缂栫爜{locCntrRel.S_CNTR_CODE}"; LogHelper.Info(info); return new Result<bool>(false, info); } @@ -573,10 +572,10 @@ it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, - it.N_CURRENT_NUM, // 璧风偣璐т綅缁戝畾鍚庯紝灏嗚揣浣嶇姸鎬佹洿鏂�+ it.N_CURRENT_NUM, // 璧风偣璐т綅缁戝畾鍚�灏嗚揣浣嶇姸鎬佹洿鏂� }).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂拌捣鐐硅揣浣峽startLoc.S_CODE}閿佺姸鎬佸け璐�; + info = $"鐢熸垚浠诲姟'{taskName}'澶辫触:鏇存柊璧风偣璐т綅{startLoc.S_CODE}閿佺姸鎬佸け璐�; LogHelper.Info(info); return new Result<bool>(false, info); } @@ -588,20 +587,20 @@ it.T_MODIFY, }).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛氭洿鏂扮粓鐐硅揣浣峽endLoc.S_CODE}閿佺姸鎬佸け璐�; + info = $"鐢熸垚浠诲姟'{taskName}'澶辫触:鏇存柊缁堢偣璐т綅{endLoc.S_CODE}閿佺姸鎬佸け璐�; LogHelper.Info(info); return new Result<bool>(false, info); } if (db.Insertable(task).ExecuteCommand() <= 0) { tran.RollbackTran(); - info = $"鐢熸垚浠诲姟'{taskName}'澶辫触锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; + info = $"鐢熸垚浠诲姟'{taskName}'澶辫触,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}"; LogHelper.Info(info); return new Result<bool>(false, info); } tran.CommitTran(); - info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛锛屼换鍔″彿={task.S_CODE}锛屽鍣ㄥ彿={cntId}锛岃捣鐐�{startLoc.S_CODE}锛岀粓鐐�{endLoc.S_CODE}"; + info = $"鐢熸垚浠诲姟'{taskName}'鎴愬姛,浠诲姟鍙�{task.S_CODE},瀹瑰櫒鍙�{cntId},璧风偣={startLoc.S_CODE},缁堢偣={endLoc.S_CODE}"; LogHelper.Info(info); return new Result<bool>(true, info); } diff --git a/device/ModbusFactory.cs b/device/ModbusFactory.cs index 83a15ae..4c84a8a 100644 --- a/device/ModbusFactory.cs +++ b/device/ModbusFactory.cs @@ -21,28 +21,28 @@ // 甯哥敤鐨凪odbus鍔熻兘鐮佹柟娉� /// <summary> - /// 璇讳竴涓垨澶氫釜绾垮湀锛岃繑鍥炰竴涓猙it鐪熷亣鏁扮粍 + /// 璇讳竴涓垨澶氫釜绾垮湀,杩斿洖涓�釜bit鐪熷亣鏁扮粍 /// </summary> /// <param name="startingAddress"></param> /// <param name="quantity"></param> /// <returns></returns> bool[] ReadCoils(int startingAddress, int quantity); /// <summary> - /// 璇讳竴涓垨澶氫釜绂绘暎杈撳叆锛岃繑鍥炰竴涓猙it鐪熷亣鏁扮粍 + /// 璇讳竴涓垨澶氫釜绂绘暎杈撳叆,杩斿洖涓�釜bit鐪熷亣鏁扮粍 /// </summary> /// <param name="startingAddress"></param> /// <param name="quantity"></param> /// <returns></returns> bool[] ReadDiscreteInputs(int startingAddress, int quantity); /// <summary> - /// 鎵归噺璇诲彇鎴栧崟鐙鍙栦繚鎸佸瘎瀛樺櫒锛岃繑鍥炵殑鏄�2浣峣nt鏁扮粍 + /// 鎵归噺璇诲彇鎴栧崟鐙鍙栦繚鎸佸瘎瀛樺櫒,杩斿洖鐨勬槸32浣峣nt鏁扮粍 /// </summary> /// <param name="startingAddress"></param> /// <param name="quantity"></param> /// <returns></returns> int[] ReadHoldingRegisters(int startingAddress, int quantity); /// <summary> - /// 璇讳竴涓垨澶氫釜杈撳叆瀵勫瓨鍣紝杩斿洖涓�釜int32浣嶆暟缁�+ /// 璇讳竴涓垨澶氫釜杈撳叆瀵勫瓨鍣�杩斿洖涓�釜int32浣嶆暟缁� /// </summary> /// <param name="startingAddress"></param> /// <param name="quantity"></param> @@ -92,8 +92,8 @@ case ModbusCommunicationType.TcpSocket: return new TcpSocketCommunicator(); default: - //throw new ArgumentException("涓嶆敮鎸佺殑Modbus閫氫俊鏂瑰紡锛氳閫夋嫨EasyModbus鎴朤cpSocket"); - LogHelper.Info("涓嶆敮鎸佺殑Modbus閫氫俊鏂瑰紡锛氳閫夋嫨EasyModbus鎴朤cpSocket"); + //throw new ArgumentException("涓嶆敮鎸佺殑Modbus閫氫俊鏂瑰紡:璇烽�鎷〦asyModbus鎴朤cpSocket"); + LogHelper.Info("涓嶆敮鎸佺殑Modbus閫氫俊鏂瑰紡:璇烽�鎷〦asyModbus鎴朤cpSocket"); return null; } } @@ -127,10 +127,10 @@ _modbusClient.Connect(); if (IsConnected) { - LogHelper.Info($"杩炴帴鎴愬姛锛歿ipAddress}:{port}"); + LogHelper.Info($"杩炴帴鎴愬姛:{ipAddress}:{port}"); } else { - LogHelper.Info($"杩炴帴澶辫触锛歿ipAddress}:{port}"); + LogHelper.Info($"杩炴帴澶辫触:{ipAddress}:{port}"); } } @@ -143,10 +143,10 @@ _modbusClient?.Disconnect(); if (IsConnected) { - LogHelper.Info($"杩炴帴鎴愬姛锛歿_modbusClient.IPAddress}:{_modbusClient.Port}"); + LogHelper.Info($"杩炴帴鎴愬姛:{_modbusClient.IPAddress}:{_modbusClient.Port}"); } else { - LogHelper.Info($"杩炴帴澶辫触锛歿_modbusClient.IPAddress} : {_modbusClient.Port}"); + LogHelper.Info($"杩炴帴澶辫触:{_modbusClient.IPAddress} : {_modbusClient.Port}"); } } @@ -169,11 +169,11 @@ res = _modbusClient.ReadCoils(startingAddress, quantity); if (res.Length != 0) { //璇诲彇鎴愬姛 - LogHelper.Info($"璇诲彇鎴愬姛锛歊eadCoils:IP:{ip},Port:{port}"); + LogHelper.Info($"璇诲彇鎴愬姛:ReadCoils:IP:{ip},Port:{port}"); } else { //璇诲彇澶辫触 - LogHelper.Info($"璇诲彇澶辫触锛歊eadCoils:IP:{ip},Port:{port}"); + LogHelper.Info($"璇诲彇澶辫触:ReadCoils:IP:{ip},Port:{port}"); } } catch (Exception ex) { @@ -181,7 +181,7 @@ } } else { - LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�); + LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴"); } return res; } @@ -196,11 +196,11 @@ res = _modbusClient.ReadDiscreteInputs(startingAddress, quantity); if (res.Length != 0) { //璇诲彇鎴愬姛 - LogHelper.Info($"璇诲彇鎴愬姛锛歊eadDiscreteInputs:IP:{ip},Port:{port}"); + LogHelper.Info($"璇诲彇鎴愬姛:ReadDiscreteInputs:IP:{ip},Port:{port}"); } else { //璇诲彇澶辫触 - LogHelper.Info($"璇诲彇澶辫触锛歊eadDiscreteInputs:IP:{ip},Port:{port}"); + LogHelper.Info($"璇诲彇澶辫触:ReadDiscreteInputs:IP:{ip},Port:{port}"); } } catch (Exception ex) { @@ -208,7 +208,7 @@ } } else { - LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�); + LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴"); } return res; } @@ -220,24 +220,24 @@ var ip = client.IPAddress; var port = client.Port; try { - //涓�釜瀵勫瓨鍣ㄦ槸16浣嶏紝杩斿洖2涓猧nt绫诲瀷 + //涓�釜瀵勫瓨鍣ㄦ槸16浣�杩斿洖2涓猧nt绫诲瀷 res = client.ReadHoldingRegisters(startingAddress, quantity); if (res.Length != 0) { //璇诲彇鎴愬姛 - LogHelper.Info($"璇诲彇鎴愬姛锛歊eadHoldingRegisters:IP:{ip},Port:{port}"); + LogHelper.Info($"璇诲彇鎴愬姛:ReadHoldingRegisters:IP:{ip},Port:{port}"); } else { //璇诲彇澶辫触 - LogHelper.Info($"璇诲彇澶辫触锛歊eadHoldingRegisters:IP:{ip},Port:{port}"); + LogHelper.Info($"璇诲彇澶辫触:ReadHoldingRegisters:IP:{ip},Port:{port}"); } } catch (Exception ex) { - //濡傛灉璇锋眰鏁伴噺瓒呭嚭淇濇寔瀵勫瓨鍣ㄧ殑鏈�ぇ鏁版嵁琛屾暟锛屼細鎶ラ敊 + //濡傛灉璇锋眰鏁伴噺瓒呭嚭淇濇寔瀵勫瓨鍣ㄧ殑鏈�ぇ鏁版嵁琛屾暟,浼氭姤閿� LogHelper.InfoEx(ex); } } else { - LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�); + LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴"); } return res; } @@ -252,11 +252,11 @@ res = client.ReadInputRegisters(startingAddress, quantity); if (res.Length != 0) { //璇诲彇鎴愬姛 - LogHelper.Info($"璇诲彇鎴愬姛锛歊eadInputRegisters:IP:{ip},Port:{port}"); + LogHelper.Info($"璇诲彇鎴愬姛:ReadInputRegisters:IP:{ip},Port:{port}"); } else { //璇诲彇澶辫触 - LogHelper.Info($"璇诲彇澶辫触锛歊eadInputRegisters:IP:{ip},Port:{port}"); + LogHelper.Info($"璇诲彇澶辫触:ReadInputRegisters:IP:{ip},Port:{port}"); } } catch (Exception ex) { @@ -264,7 +264,7 @@ } } else { - LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�); + LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴"); } return res; } @@ -280,11 +280,11 @@ res = value == client.ReadCoils(coilAddress, 1)[0]; if (res) { //鍐欏叆鎴愬姛 - LogHelper.Info($"鍐欏叆鎴愬姛锛歐riteSingleCoil:IP:{ip},Port:{port}"); + LogHelper.Info($"鍐欏叆鎴愬姛:WriteSingleCoil:IP:{ip},Port:{port}"); } else { //鍐欏叆澶辫触 - LogHelper.Info($"鍐欏叆澶辫触锛歐riteSingleCoil:IP:{ip},Port:{port}"); + LogHelper.Info($"鍐欏叆澶辫触:WriteSingleCoil:IP:{ip},Port:{port}"); } } catch (Exception ex) { @@ -292,7 +292,7 @@ } } else { - LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�); + LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴"); } return res; } @@ -308,11 +308,11 @@ res = value == client.ReadHoldingRegisters(registerAddress, 1)[0]; if (res) { //鍐欏叆鎴愬姛 - LogHelper.Info($"鍐欏叆鎴愬姛锛歐riteSingleRegister:IP:{ip},Port:{port}"); + LogHelper.Info($"鍐欏叆鎴愬姛:WriteSingleRegister:IP:{ip},Port:{port}"); } else { //鍐欏叆澶辫触 - LogHelper.Info($"鍐欏叆澶辫触锛歐riteSingleRegister:IP:{ip},Port:{port}"); + LogHelper.Info($"鍐欏叆澶辫触:WriteSingleRegister:IP:{ip},Port:{port}"); } } catch (Exception ex) { @@ -320,7 +320,7 @@ } } else { - LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�); + LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴"); } return res; } @@ -337,11 +337,11 @@ res = values.SequenceEqual(dataRead); if (res) { //鍐欏叆鎴愬姛 - LogHelper.Info($"鍐欏叆鎴愬姛锛歐riteMultipleCoils:IP:{ip},Port:{port}"); + LogHelper.Info($"鍐欏叆鎴愬姛:WriteMultipleCoils:IP:{ip},Port:{port}"); } else { //鍐欏叆澶辫触 - LogHelper.Info($"鍐欏叆澶辫触锛歐riteMultipleCoils:IP:{ip},Port:{port}"); + LogHelper.Info($"鍐欏叆澶辫触:WriteMultipleCoils:IP:{ip},Port:{port}"); } } catch (Exception ex) { @@ -349,7 +349,7 @@ } } else { - LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�); + LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴"); } return res; } @@ -377,7 +377,7 @@ } } else { - LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄锛屾垨瀵硅薄鏈垚鍔熻繛鎺�); + LogHelper.Info($"鏈壘鍒癕odbus璁惧瀹炰緥瀵硅薄,鎴栧璞℃湭鎴愬姛杩炴帴"); } return res; } @@ -421,16 +421,16 @@ if (quantity < 1 || quantity > 2000) throw new ArgumentException("Quantity must be between 1 and 2000"); - // 鏋勫缓璇锋眰鎶ユ枃锛�2瀛楄妭锛�+ // 鏋勫缓璇锋眰鎶ユ枃 (12瀛楄妭) byte[] request = new byte[12]; request[0] = 0x00; // 浜嬪姟ID楂樺瓧鑺�- request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺傦紙绀轰緥鍊硷級 - request[2] = 0x00; // 鍗忚ID楂樺瓧鑺傦紙鍥哄畾0锛�- request[3] = 0x00; // 鍗忚ID浣庡瓧鑺傦紙鍥哄畾0锛�- request[4] = 0x00; // 闀垮害楂樺瓧鑺傦紙鍚庣画6瀛楄妭锛�+ request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺�(绀轰緥鍊� + request[2] = 0x00; // 鍗忚ID楂樺瓧鑺�(鍥哄畾0) + request[3] = 0x00; // 鍗忚ID浣庡瓧鑺�(鍥哄畾0) + request[4] = 0x00; // 闀垮害楂樺瓧鑺�(鍚庣画6瀛楄妭) request[5] = 0x06; // 闀垮害浣庡瓧鑺� request[6] = unitIdentifier; // 鍗曞厓鏍囪瘑绗�- request[7] = 0x01; // 鍔熻兘鐮侊紙璇荤嚎鍦堬級 + request[7] = 0x01; // 鍔熻兘鐮�(璇荤嚎鍦� request[8] = (byte)(startingAddress >> 8); // 璧峰鍦板潃楂樺瓧鑺� request[9] = (byte)startingAddress; // 璧峰鍦板潃浣庡瓧鑺� request[10] = (byte)(quantity >> 8); // 鏁伴噺楂樺瓧鑺�@@ -439,19 +439,19 @@ // 鍙戦�璇锋眰 _networkStream.Write(request, 0, request.Length); - // 璇诲彇鍝嶅簲澶达紙8瀛楄妭锛�+ // 璇诲彇鍝嶅簲澶�(8瀛楄妭) byte[] responseHeader = new byte[8]; int bytesRead = _networkStream.Read(responseHeader, 0, 8); if (bytesRead != 8) throw new Exception("Invalid response header length"); - // 鏍¢獙浜嬪姟ID銆佸崗璁甀D銆佸崟鍏冩爣璇嗙 + // 鏍¢獙浜嬪姟ID,鍗忚ID,鍗曞厓鏍囪瘑绗� if (responseHeader[0] != request[0] || responseHeader[1] != request[1] || responseHeader[2] != 0x00 || responseHeader[3] != 0x00 || responseHeader[6] != unitIdentifier) throw new Exception("Invalid response header"); - // 妫�煡寮傚父鍝嶅簲锛堝姛鑳界爜 + 0x80锛�+ // 妫�煡寮傚父鍝嶅簲 (鍔熻兘鐮�+ 0x80) if (responseHeader[7] == 0x81) { int errorCode = _networkStream.ReadByte(); throw new Exception($"Modbus error. Code: {errorCode}"); @@ -459,14 +459,14 @@ else if (responseHeader[7] != 0x01) throw new Exception("Invalid function code in response"); - // 璇诲彇鏁版嵁閮ㄥ垎锛堝瓧鑺傛暟 + 瀹為檯鏁版嵁锛�+ // 璇诲彇鏁版嵁閮ㄥ垎 (瀛楄妭鏁�+ 瀹為檯鏁版嵁) byte byteCount = responseHeader[8]; byte[] responseData = new byte[byteCount]; bytesRead = _networkStream.Read(responseData, 0, byteCount); if (bytesRead != byteCount) throw new Exception("Invalid response data length"); - // 瑙f瀽绾垮湀鐘舵�锛堟瘡涓綅琛ㄧず涓�釜绾垮湀锛�+ // 瑙f瀽绾垮湀鐘舵� (姣忎釜浣嶈〃绀轰竴涓嚎鍦� bool[] coils = new bool[quantity]; for (int i = 0; i < quantity; i++) { int byteIndex = i / 8; @@ -478,16 +478,16 @@ } public bool[] ReadDiscreteInputs(int startingAddress, int quantity) { - // 鎶ユ枃缁撴瀯涓嶳eadCoils鍑犱箮鐩稿悓锛屼粎鍔熻兘鐮佹敼涓�x02 + // 鎶ユ枃缁撴瀯涓嶳eadCoils鍑犱箮鐩稿悓,浠呭姛鑳界爜鏀逛负0x02 byte[] request = new byte[12]; request[0] = 0x00; // 浜嬪姟ID楂樺瓧鑺�- request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺傦紙绀轰緥鍊硷級 - request[2] = 0x00; // 鍗忚ID楂樺瓧鑺傦紙鍥哄畾0锛�- request[3] = 0x00; // 鍗忚ID浣庡瓧鑺傦紙鍥哄畾0锛�- request[4] = 0x00; // 闀垮害楂樺瓧鑺傦紙鍚庣画6瀛楄妭锛�+ request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺�(绀轰緥鍊� + request[2] = 0x00; // 鍗忚ID楂樺瓧鑺�(鍥哄畾0) + request[3] = 0x00; // 鍗忚ID浣庡瓧鑺�(鍥哄畾0) + request[4] = 0x00; // 闀垮害楂樺瓧鑺�(鍚庣画6瀛楄妭) request[5] = 0x06; // 闀垮害浣庡瓧鑺� request[6] = unitIdentifier; - request[7] = 0x02; // 鍔熻兘鐮侊細璇荤鏁h緭鍏�+ request[7] = 0x02; // 鍔熻兘鐮�璇荤鏁h緭鍏� request[8] = (byte)(startingAddress >> 8); // 璧峰鍦板潃楂樺瓧鑺� request[9] = (byte)startingAddress; // 璧峰鍦板潃浣庡瓧鑺� request[10] = (byte)(quantity >> 8); // 鏁伴噺楂樺瓧鑺�@@ -499,7 +499,7 @@ byte[] responseHeader = new byte[8]; _networkStream.Read(responseHeader, 0, 8); - // 鏍¢獙鍜屽紓甯稿鐞嗭紙鍙傝�ReadCoils锛�+ // 鏍¢獙鍜屽紓甯稿鐞�(鍙傝�ReadCoils) if (responseHeader[7] == 0x82) // 寮傚父鍝嶅簲 { int errorCode = _networkStream.ReadByte(); @@ -525,16 +525,16 @@ if (quantity < 1 || quantity > 125) throw new ArgumentException("Quantity must be between 1 and 125"); - // 鏋勫缓璇锋眰鎶ユ枃锛�2瀛楄妭锛�+ // 鏋勫缓璇锋眰鎶ユ枃 (12瀛楄妭) byte[] request = new byte[12]; - request[0] = 0x00; // 浜嬪姟ID楂樺瓧鑺傦紙绀轰緥鍊硷級 + request[0] = 0x00; // 浜嬪姟ID楂樺瓧鑺�(绀轰緥鍊� request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺�- request[2] = 0x00; // 鍗忚ID楂樺瓧鑺傦紙鍥哄畾0锛�- request[3] = 0x00; // 鍗忚ID浣庡瓧鑺傦紙鍥哄畾0锛�- request[4] = 0x00; // 闀垮害楂樺瓧鑺傦紙鍚庣画6瀛楄妭锛�+ request[2] = 0x00; // 鍗忚ID楂樺瓧鑺�(鍥哄畾0) + request[3] = 0x00; // 鍗忚ID浣庡瓧鑺�(鍥哄畾0) + request[4] = 0x00; // 闀垮害楂樺瓧鑺�(鍚庣画6瀛楄妭) request[5] = 0x06; // 闀垮害浣庡瓧鑺� request[6] = unitIdentifier; // 鍗曞厓鏍囪瘑绗�- request[7] = 0x03; // 鍔熻兘鐮侊紙璇讳繚鎸佸瘎瀛樺櫒锛�+ request[7] = 0x03; // 鍔熻兘鐮�(璇讳繚鎸佸瘎瀛樺櫒) request[8] = (byte)(startingAddress >> 8); // 璧峰鍦板潃楂樺瓧鑺� request[9] = (byte)startingAddress; // 璧峰鍦板潃浣庡瓧鑺� request[10] = (byte)(quantity >> 8); // 鏁伴噺楂樺瓧鑺�@@ -543,19 +543,19 @@ // 鍙戦�璇锋眰 _networkStream.Write(request, 0, request.Length); - // 璇诲彇鍝嶅簲澶达紙8瀛楄妭锛�+ // 璇诲彇鍝嶅簲澶�(8瀛楄妭) byte[] responseHeader = new byte[8]; int bytesRead = _networkStream.Read(responseHeader, 0, 8); if (bytesRead != 8) throw new Exception("Invalid response header length"); - // 鏍¢獙浜嬪姟ID銆佸崗璁甀D銆佸崟鍏冩爣璇嗙 + // 鏍¢獙浜嬪姟ID,鍗忚ID,鍗曞厓鏍囪瘑绗� if (responseHeader[0] != request[0] || responseHeader[1] != request[1] || responseHeader[2] != 0x00 || responseHeader[3] != 0x00 || responseHeader[6] != unitIdentifier) throw new Exception("Invalid response header"); - // 妫�煡寮傚父鍝嶅簲锛堝姛鑳界爜 + 0x80锛�+ // 妫�煡寮傚父鍝嶅簲 (鍔熻兘鐮�+ 0x80) if (responseHeader[7] == 0x83) { int errorCode = _networkStream.ReadByte(); throw new Exception($"Modbus error. Code: {errorCode}"); @@ -563,14 +563,14 @@ else if (responseHeader[7] != 0x03) throw new Exception("Invalid function code in response"); - // 璇诲彇鏁版嵁閮ㄥ垎锛堝瓧鑺傛暟 + 瀹為檯鏁版嵁锛�+ // 璇诲彇鏁版嵁閮ㄥ垎 (瀛楄妭鏁�+ 瀹為檯鏁版嵁) byte byteCount = responseHeader[8]; byte[] responseData = new byte[byteCount]; bytesRead = _networkStream.Read(responseData, 0, byteCount); if (bytesRead != byteCount) throw new Exception("Invalid response data length"); - // 瑙f瀽瀵勫瓨鍣ㄥ�锛堝ぇ绔簭锛�+ // 瑙f瀽瀵勫瓨鍣ㄥ� (澶х搴� int[] registers = new int[quantity]; for (int i = 0; i < quantity; i++) { int offset = i * 2; @@ -587,22 +587,22 @@ // 鏋勫缓Modbus TCP璇锋眰鎶ユ枃 byte[] request = new byte[12]; - // 浜嬪姟鏍囪瘑绗︼紙鍙互绠�崟閫掑锛�+ // 浜嬪姟鏍囪瘑绗�(鍙互绠�崟閫掑) request[0] = 0x00; request[1] = 0x01; - // 鍗忚鏍囪瘑绗︼紙Modbus鍥哄畾涓�锛�+ // 鍗忚鏍囪瘑绗�(Modbus鍥哄畾涓�) request[2] = 0x00; request[3] = 0x00; - // 闀垮害瀛楁锛堝悗闈㈣繕鏈�瀛楄妭锛�+ // 闀垮害瀛楁 (鍚庨潰杩樻湁6瀛楄妭) request[4] = 0x00; request[5] = 0x06; // 鍗曞厓鏍囪瘑绗� request[6] = unitIdentifier; - // 鍔熻兘鐮侊紙4琛ㄧず璇昏緭鍏ュ瘎瀛樺櫒锛�+ // 鍔熻兘鐮�(4琛ㄧず璇昏緭鍏ュ瘎瀛樺櫒) request[7] = 0x04; // 璧峰鍦板潃 @@ -677,7 +677,7 @@ _networkStream.Write(request, 0, request.Length); - // 鍝嶅簲搴斾笌璇锋眰瀹屽叏涓�嚧锛堝洖鏄撅級 + // 鍝嶅簲搴斾笌璇锋眰瀹屽叏涓�嚧 (鍥炴樉) byte[] response = new byte[12]; int bytesRead = _networkStream.Read(response, 0, 12); if (bytesRead != 12) @@ -708,7 +708,7 @@ _networkStream.Write(request, 0, request.Length); - // 妫�煡鍥炴樉鍝嶅簲锛堝悓WriteSingleCoil锛�+ // 妫�煡鍥炴樉鍝嶅簲 (鍚學riteSingleCoil) byte[] response = new byte[12]; _networkStream.Read(response, 0, 12); if (!response.SequenceEqual(request)) @@ -722,7 +722,7 @@ if (quantity < 1 || quantity > 1968) throw new ArgumentException("Quantity must be between 1 and 1968"); - // 璁$畻闇�鐨勫瓧鑺傛暟锛堟瘡涓瓧鑺傚瓨鍌�涓嚎鍦堢姸鎬侊級 + // 璁$畻闇�鐨勫瓧鑺傛暟 (姣忎釜瀛楄妭瀛樺偍8涓嚎鍦堢姸鎬� int byteCount = (quantity + 7) / 8; byte[] coilBytes = new byte[byteCount]; @@ -735,7 +735,7 @@ } } - // 鏋勫缓璇锋眰鎶ユ枃锛�3 + 绾垮湀瀛楄妭鏁帮級 + // 鏋勫缓璇锋眰鎶ユ枃 (13 + 绾垮湀瀛楄妭鏁� byte[] request = new byte[13 + coilBytes.Length]; request[0] = 0x00; // 浜嬪姟ID楂樺瓧鑺� request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺�@@ -744,7 +744,7 @@ request[4] = (byte)((7 + coilBytes.Length) >> 8); // 闀垮害楂樺瓧鑺� request[5] = (byte)(7 + coilBytes.Length); // 闀垮害浣庡瓧鑺� request[6] = unitIdentifier; - request[7] = 0x0F; // 鍔熻兘鐮侊紙鍐欏涓嚎鍦堬級 + request[7] = 0x0F; // 鍔熻兘鐮�(鍐欏涓嚎鍦� request[8] = (byte)(startingAddress >> 8); // 璧峰鍦板潃楂樺瓧鑺� request[9] = (byte)startingAddress; // 璧峰鍦板潃浣庡瓧鑺� request[10] = (byte)(quantity >> 8); // 鏁伴噺楂樺瓧鑺�@@ -755,7 +755,7 @@ // 鍙戦�璇锋眰 _networkStream.Write(request, 0, request.Length); - // 璇诲彇鍝嶅簲锛堝浐瀹�2瀛楄妭锛�+ // 璇诲彇鍝嶅簲 (鍥哄畾12瀛楄妭) byte[] response = new byte[12]; int bytesRead = _networkStream.Read(response, 0, 12); if (bytesRead != 12) @@ -774,14 +774,14 @@ if (quantity < 1 || quantity > 123) throw new ArgumentException("Quantity must be between 1 and 123"); - // 灏唘short鏁扮粍杞崲涓哄瓧鑺傛暟缁勶紙澶х搴忥級 + // 灏唘short鏁扮粍杞崲涓哄瓧鑺傛暟缁�(澶х搴� byte[] valueBytes = new byte[quantity * 2]; for (int i = 0; i < quantity; i++) { valueBytes[i * 2] = (byte)(values[i] >> 8); valueBytes[i * 2 + 1] = (byte)values[i]; } - // 鏋勫缓璇锋眰鎶ユ枃锛�3 + 鍊煎瓧鑺傛暟锛�+ // 鏋勫缓璇锋眰鎶ユ枃 (13 + 鍊煎瓧鑺傛暟) byte[] request = new byte[13 + valueBytes.Length]; request[0] = 0x00; // 浜嬪姟ID楂樺瓧鑺� request[1] = 0x01; // 浜嬪姟ID浣庡瓧鑺�@@ -790,7 +790,7 @@ request[4] = (byte)((7 + valueBytes.Length) >> 8); // 闀垮害楂樺瓧鑺� request[5] = (byte)(7 + valueBytes.Length); // 闀垮害浣庡瓧鑺� request[6] = unitIdentifier; - request[7] = 0x10; // 鍔熻兘鐮侊紙鍐欏涓瘎瀛樺櫒锛�+ request[7] = 0x10; // 鍔熻兘鐮�(鍐欏涓瘎瀛樺櫒) request[8] = (byte)(startingAddress >> 8); // 璧峰鍦板潃楂樺瓧鑺� request[9] = (byte)startingAddress; // 璧峰鍦板潃浣庡瓧鑺� request[10] = (byte)(quantity >> 8); // 鏁伴噺楂樺瓧鑺�@@ -801,7 +801,7 @@ // 鍙戦�璇锋眰 _networkStream.Write(request, 0, request.Length); - // 璇诲彇鍝嶅簲锛堝浐瀹�2瀛楄妭锛�+ // 璇诲彇鍝嶅簲 (鍥哄畾12瀛楄妭) byte[] response = new byte[12]; int bytesRead = _networkStream.Read(response, 0, 12); if (bytesRead != 12) diff --git a/device/ModbusHelper.cs b/device/ModbusHelper.cs index ff631e8..5c8dc79 100644 --- a/device/ModbusHelper.cs +++ b/device/ModbusHelper.cs @@ -10,7 +10,7 @@ /// modbus tcp 鐢ㄧ涓夋柟鐨勫寘 /// </summary> public class ModbusHelper { - // 鍐呭瓨锛岃繛鎺ヤ笂鐨�Modbus 閫氳瀵硅薄 + // 鍐呭瓨,杩炴帴涓婄殑 Modbus 閫氳瀵硅薄 private static Dictionary<string, ModbusClient> _ipPort_ModbusClient = new Dictionary<string, ModbusClient>(); public ModbusHelper(string ip, int port = 502, byte slaveId = 1) { @@ -25,7 +25,7 @@ try { if (ip == null || ip.Trim() == "") { // 璇诲彇閰嶇疆淇℃伅澶辫触 - LogHelper.Info("Modbus锛氳鍙栭厤缃俊鎭け璐�); + LogHelper.Info("Modbus:璇诲彇閰嶇疆淇℃伅澶辫触"); return; } @@ -59,7 +59,7 @@ } /// <summary> - /// 杩炴帴 Modbus 涓嬩綅鏈猴紙绉佹湁锛屽唴閮ㄨ皟鐢級 + /// 杩炴帴 Modbus 涓嬩綅鏈�(绉佹湁,鍐呴儴璋冪敤) /// </summary> /// <param name="modbusClient"></param> private static void Link(ModbusClient modbusClient) { @@ -79,7 +79,7 @@ } /// <summary> - /// 璇讳竴涓垨澶氫釜绾垮湀锛岃繑鍥炰竴涓猙it鐪熷亣鏁扮粍 + /// 璇讳竴涓垨澶氫釜绾垮湀,杩斿洖涓�釜bit鐪熷亣鏁扮粍 /// </summary> /// <param name="address"></param> /// <param name="qty"></param> @@ -131,7 +131,7 @@ } } catch (Exception ex) { - + LogHelper.InfoEx(ex); } } else { @@ -162,7 +162,7 @@ } } catch (Exception ex) { - + LogHelper.InfoEx(ex); } } else { @@ -173,7 +173,7 @@ } /// <summary> - /// 鎵归噺璇诲彇鎴栧崟鐙鍙栦繚鎸佸瘎瀛樺櫒锛岃繑鍥炵殑鏄�2浣峣nt鏁扮粍 + /// 鎵归噺璇诲彇鎴栧崟鐙鍙栦繚鎸佸瘎瀛樺櫒,杩斿洖鐨勬槸32浣峣nt鏁扮粍 /// </summary> /// <param name="address">璇诲彇璧峰浣�/param> /// <param name="qty">璇诲彇鐨勬暟閲�/param> @@ -185,7 +185,7 @@ var client = GetModbusClient(ip, port); if (client != null && client.Connected) { try { - //涓�釜瀵勫瓨鍣ㄦ槸16浣嶏紝杩斿洖2涓猧nt绫诲瀷 + //涓�釜瀵勫瓨鍣ㄦ槸16浣�杩斿洖2涓猧nt绫诲瀷 res = client.ReadHoldingRegisters(address, qty); if (res.Length != 0) { //璇诲彇鎴愬姛 @@ -195,7 +195,7 @@ } } catch (Exception ex) { - //濡傛灉璇锋眰鏁伴噺瓒呭嚭淇濇寔瀵勫瓨鍣ㄧ殑鏈�ぇ鏁版嵁琛屾暟锛屼細鎶ラ敊 + //濡傛灉璇锋眰鏁伴噺瓒呭嚭淇濇寔瀵勫瓨鍣ㄧ殑鏈�ぇ鏁版嵁琛屾暟,浼氭姤閿� LogHelper.Info($"鍙戠敓浜嗗紓甯�{ex.Message},IP:{ip},Port:{port}", "Error"); } } @@ -227,7 +227,7 @@ } } catch (Exception ex) { - + LogHelper.InfoEx(ex); } } else { @@ -270,7 +270,7 @@ } /// <summary> - /// 璇讳竴涓垨澶氫釜绂绘暎杈撳叆锛岃繑鍥炰竴涓猙it鐪熷亣鏁扮粍 + /// 璇讳竴涓垨澶氫釜绂绘暎杈撳叆,杩斿洖涓�釜bit鐪熷亣鏁扮粍 /// </summary> /// <param name="address"></param> /// <param name="qty"></param> @@ -291,7 +291,7 @@ } } catch (Exception ex) { - + LogHelper.InfoEx(ex); } } else { @@ -302,7 +302,7 @@ } /// <summary> - /// 璇讳竴涓垨澶氫釜杈撳叆瀵勫瓨鍣紝杩斿洖涓�釜int32浣嶆暟缁�+ /// 璇讳竴涓垨澶氫釜杈撳叆瀵勫瓨鍣�杩斿洖涓�釜int32浣嶆暟缁� /// </summary> /// <param name="address"></param> /// <param name="qty"></param> @@ -323,7 +323,7 @@ } } catch (Exception ex) { - + LogHelper.InfoEx(ex); } } else { @@ -338,7 +338,7 @@ } #region Modbus 鍗忚璇诲啓瀛楃涓�- // 灏嗗瓧绗︿覆杞崲涓�Modbus 瀵勫瓨鍣ㄦ暟缁勶紙int[] 褰㈠紡锛屾瘡涓猧nt瀛樹竴涓�6浣嶅�锛�+ // 灏嗗瓧绗︿覆杞崲涓�Modbus 瀵勫瓨鍣ㄦ暟缁�(int[] 褰㈠紡,姣忎釜int瀛樹竴涓�6浣嶅�) private static int[] StringToRegisters(string text) { // 濉厖涓哄伓鏁伴暱搴� if (text.Length % 2 != 0) { @@ -349,7 +349,7 @@ int[] registers = new int[bytes.Length / 2]; for (int i = 0; i < registers.Length; i++) { - // 澶х搴忥細楂樹綅瀛楄妭鍦ㄥ墠 + // 澶х搴�楂樹綅瀛楄妭鍦ㄥ墠 registers[i] = (bytes[i * 2] << 8) | bytes[i * 2 + 1]; } @@ -361,7 +361,7 @@ byte[] bytes = new byte[registers.Length * 2]; for (int i = 0; i < registers.Length; i++) { - // 鎻愬彇浣�6浣嶏紙蹇界暐楂�6浣嶏級 + // 鎻愬彇浣�6浣�(蹇界暐楂�6浣� ushort registerValue = (ushort)(registers[i] & 0xFFFF); // 瑙f瀽澶х搴�@@ -376,7 +376,7 @@ #endregion /// <summary> - /// 鑾峰彇 Modbus 閫氳瀵硅薄锛堢鏈夛紝鍐呴儴璋冪敤锛�+ /// 鑾峰彇 Modbus 閫氳瀵硅薄 (绉佹湁,鍐呴儴璋冪敤) /// </summary> /// <param name="ip"></param> /// <param name="port"></param> diff --git a/device/OpcUaHelper.cs b/device/OpcUaHelper.cs index 555fea1..106acb9 100644 --- a/device/OpcUaHelper.cs +++ b/device/OpcUaHelper.cs @@ -22,7 +22,7 @@ { try { - // 鍒涘缓涓�釜搴旂敤閰嶇疆瀵硅薄锛岀敤浜庤缃簲鐢ㄥ悕绉般�鍞竴鏍囪瘑銆佺被鍨嬨�璇佷功鍜屽畨鍏ㄧ瓥鐣�+ // 鍒涘缓涓�釜搴旂敤閰嶇疆瀵硅薄,鐢ㄤ簬璁剧疆搴旂敤鍚嶇О,鍞竴鏍囪瘑,绫诲瀷,璇佷功鍜屽畨鍏ㄧ瓥鐣� var config = new ApplicationConfiguration() { ApplicationName = "MyClient", @@ -48,18 +48,18 @@ // 楠岃瘉搴旂敤閰嶇疆瀵硅薄 await config.Validate(ApplicationType.Client); - // 璁剧疆璇佷功楠岃瘉浜嬩欢锛岀敤浜庤嚜鍔ㄦ帴鍙椾笉鍙椾俊浠荤殑璇佷功 + // 璁剧疆璇佷功楠岃瘉浜嬩欢,鐢ㄤ簬鑷姩鎺ュ彈涓嶅彈淇′换鐨勮瘉涔� if (config.SecurityConfiguration.AutoAcceptUntrustedCertificates) { config.CertificateValidator.CertificateValidation += (s, e) => { e.Accept = (e.Error.StatusCode == StatusCodes.BadCertificateUntrusted); }; } - // 鍒涘缓涓�釜搴旂敤瀹炰緥瀵硅薄锛岀敤浜庢鏌ヨ瘉涔�+ // 鍒涘缓涓�釜搴旂敤瀹炰緥瀵硅薄,鐢ㄤ簬妫�煡璇佷功 var application = new ApplicationInstance(config); // 妫�煡搴旂敤瀹炰緥瀵硅薄鐨勮瘉涔� bool check = await application.CheckApplicationInstanceCertificate(false, 2048); - // 鍒涘缓涓�釜浼氳瘽瀵硅薄锛岀敤浜庤繛鎺ュ埌 OPC UA 鏈嶅姟鍣�+ // 鍒涘缓涓�釜浼氳瘽瀵硅薄,鐢ㄤ簬杩炴帴鍒�OPC UA 鏈嶅姟鍣� EndpointDescription endpointDescription = CoreClientUtils.SelectEndpoint("opc.tcp://172.16.57.41:4840", true); EndpointConfiguration endpointConfiguration = EndpointConfiguration.Create(config); ConfiguredEndpoint endpoint = new ConfiguredEndpoint(null, endpointDescription, endpointConfiguration); diff --git a/device/ProductionLineDevice.cs b/device/ProductionLineDevice.cs index 406c492..986d0f5 100644 --- a/device/ProductionLineDevice.cs +++ b/device/ProductionLineDevice.cs @@ -32,32 +32,32 @@ public string Id { get; set; } /// <summary> - /// 绯荤粺鐘舵�锛�鏈湴 1鑱斿姩(AGV妯″紡) 2鏁呴殰 + /// 绯荤粺鐘舵�:0鏈湴 1鑱斿姩(AGV妯″紡) 2鏁呴殰 /// </summary> public int SystemState { get; set; } /// <summary> - /// 婊″灈涓嬬嚎锛�杈撻�绾挎湯绔湁鎴愬搧鏂欙紝闇�AGV鎼繍 0榛樿鍊�+ /// 婊″灈涓嬬嚎:1杈撻�绾挎湯绔湁鎴愬搧鏂�闇�AGV鎼繍 0榛樿鍊� /// </summary> public int FullOffline { get; set; } /// <summary> - /// 鍛煎彨鎵樼洏鍨涳細1闇�绌烘墭锛屽懠鍙獳GV閰嶉� 0榛樿鍊�+ /// 鍛煎彨鎵樼洏鍨�1闇�绌烘墭,鍛煎彨AGV閰嶉� 0榛樿鍊� /// </summary> public int CallPallet { get; set; } /// <summary> - /// 鍏佽 AGV 鏀炬墭鐩樺灈锛�鍏佽鏀惧灈 0榛樿鍊�+ /// 鍏佽 AGV 鏀炬墭鐩樺灈:1鍏佽鏀惧灈 0榛樿鍊� /// </summary> public int AllowAgvPlacePallet { get; set; } /// <summary> - /// AGV 姝e湪鍙栬揣锛氫笅绾緼GV鍐欏叆1锛屽彇璐у畬鎴愬悗鎭㈠0 + /// AGV 姝e湪鍙栬揣:涓嬬嚎AGV鍐欏叆1,鍙栬揣瀹屾垚鍚庢仮澶� /// </summary> public int AgvPicking { get; set; } /// <summary> - /// AGV 姝e湪鍙栬揣锛氫笅绾緼GV鍐欏叆1锛屽彇璐у畬鎴愬悗鎭㈠0 + /// AGV 姝e湪鍙栬揣:涓嬬嚎AGV鍐欏叆1,鍙栬揣瀹屾垚鍚庢仮澶� /// </summary> /// <param name="value"></param> /// <returns></returns> @@ -71,12 +71,12 @@ } /// <summary> - /// AGV 姝e湪鏀炬墭鐩樺灈锛氫笂绾緼GV鍐欏叆1锛屾斁鎵樺畬鎴愬悗鎭㈠0 + /// AGV 姝e湪鏀炬墭鐩樺灈:涓婄嚎AGV鍐欏叆1,鏀炬墭瀹屾垚鍚庢仮澶� /// </summary> public int AgvPlacingPallet { get; set; } /// <summary> - /// AGV 姝e湪鏀炬墭鐩樺灈锛氫笂绾緼GV鍐欏叆1锛屾斁鎵樺畬鎴愬悗鎭㈠0 + /// AGV 姝e湪鏀炬墭鐩樺灈:涓婄嚎AGV鍐欏叆1,鏀炬墭瀹屾垚鍚庢仮澶� /// </summary> public bool SetAgvPlacingPallet(int value) { if (!ModbusHelper.WriteSingleRegister(11, value, Ip, Port)) { diff --git a/device/S7Helper.cs b/device/S7Helper.cs index 9d176d9..dfe1385 100644 --- a/device/S7Helper.cs +++ b/device/S7Helper.cs @@ -18,7 +18,7 @@ /// </summary> public class S7Helper { - public static Dictionary<string, Plc> ip_Plc = new Dictionary<string, Plc>();//鍐呭瓨锛岃繛鎺ヤ笂鐨凱LC閫氳瀵硅薄 + public static Dictionary<string, Plc> ip_Plc = new Dictionary<string, Plc>();//鍐呭瓨,杩炴帴涓婄殑PLC閫氳瀵硅薄 public S7Helper(string ip, short rack, short slot) { @@ -93,12 +93,12 @@ } /// <summary> - /// 鎵归噺璇诲彇鎴栧崟鐙鍙朌B鍧楁暟鎹紙8浣峛yte锛夛紝骞惰浆鎹㈡垚瀛楃涓插舰寮�+ /// 鎵归噺璇诲彇鎴栧崟鐙鍙朌B鍧楁暟鎹�(8浣峛yte) ,骞惰浆鎹㈡垚瀛楃涓插舰寮� /// </summary> /// <param name="deviceIp">plc璁惧閫氳鍦板潃</param> /// <param name="dbNo">DB鍧楀彿</param> - /// <param name="startByteAdr">璧峰byte鍦板潃锛屾渶灏忓�0锛�=8浣�1涓狟lock</param> - /// <param name="count">璇诲彇鐨勪釜鏁帮紝1涓�8浣嶅崄鍏繘鍒舵暟</param> + /// <param name="startByteAdr">璧峰byte鍦板潃,鏈�皬鍊�,1=8浣�1涓狟lock</param> + /// <param name="count">璇诲彇鐨勪釜鏁�1涓�8浣嶅崄鍏繘鍒舵暟</param> /// <returns></returns> public static string ReadString(string deviceIp, int dbNo, int startByteAdr, int count) { @@ -111,15 +111,15 @@ if (plc.IsConnected) { var data = plc.ReadBytes(DataType.DataBlock, dbNo, startByteAdr, count); - result = System.Text.Encoding.UTF8.GetString(data).TrimEnd('\0').TrimEnd('\n').TrimEnd('\r'); ;//姝ゆ柟娉曞彲浠ユ妸byte鏁扮粍杞崲鎴愬瓧绗︿覆锛屼絾鏄細閫犳垚\0\u缁撴潫绗︿笉鏄剧ず锛岄渶瑕佷笅浣嶆満姝g‘鐨勬暟鎹�+ result = System.Text.Encoding.UTF8.GetString(data).TrimEnd('\0').TrimEnd('\n').TrimEnd('\r'); ;//姝ゆ柟娉曞彲浠ユ妸byte鏁扮粍杞崲鎴愬瓧绗︿覆,浣嗘槸浼氶�鎴怽0\u缁撴潫绗︿笉鏄剧ず,闇�涓嬩綅鏈烘纭殑鏁版嵁 if (result == string.Empty) { - Link(plc);//璁惧鍙戦�鐨勬暟鎹负绌猴紝閲嶈繛 + Link(plc);//璁惧鍙戦�鐨勬暟鎹负绌�閲嶈繛 } } else { - Link(plc);//璁惧鏈繛鎺ワ紝閲嶈繛 + Link(plc);//璁惧鏈繛鎺�閲嶈繛 } } else @@ -136,11 +136,11 @@ } /// <summary> - /// 鎵归噺鍐欏叆鎴栧崟鐙啓鍏B鍧楁暟鎹紙8浣峛yte锛夛紝浠ュ瓧绗︿覆杞崲byte褰㈠紡鍐欏叆 + /// 鎵归噺鍐欏叆鎴栧崟鐙啓鍏B鍧楁暟鎹�(8浣峛yte) ,浠ュ瓧绗︿覆杞崲byte褰㈠紡鍐欏叆 /// </summary> /// <param name="deviceIp">plc璁惧閫氳鍦板潃</param> /// <param name="dbNo">DB鍧楀彿</param> - /// <param name="startByteAdr">璧峰byte鍦板潃锛屾渶灏忓�0锛�=8浣�1涓狟lock</param> + /// <param name="startByteAdr">璧峰byte鍦板潃,鏈�皬鍊�,1=8浣�1涓狟lock</param> /// <param name="data">瑕佸啓鍏ョ殑鏁版嵁</param> /// <returns></returns> public static bool WriteString(string deviceIp, int dbNo, int startByteAdr, string data) @@ -165,7 +165,7 @@ } else { - Link(plc);//璁惧鏈繛鎺ワ紝閲嶈繛 + Link(plc);//璁惧鏈繛鎺�閲嶈繛 } } else @@ -182,12 +182,12 @@ } /// <summary> - /// 鎵归噺璇诲彇鎴栧崟鐙鍙朌B鍧楁暟鎹紙8浣峛yte锛�+ /// 鎵归噺璇诲彇鎴栧崟鐙鍙朌B鍧楁暟鎹�(8浣峛yte) /// </summary> /// <param name="deviceIp">plc璁惧閫氳鍦板潃</param> /// <param name="dbNo">DB鍧楀彿</param> - /// <param name="startByteAdr">璧峰byte鍦板潃锛屾渶灏忓�0锛�=8浣�1涓狟lock</param> - /// <param name="count">璇诲彇鐨勪釜鏁帮紝1涓�8浣嶅崄鍏繘鍒舵暟</param> + /// <param name="startByteAdr">璧峰byte鍦板潃,鏈�皬鍊�,1=8浣�1涓狟lock</param> + /// <param name="count">璇诲彇鐨勪釜鏁�1涓�8浣嶅崄鍏繘鍒舵暟</param> /// <returns></returns> public static byte[] ReadBytes(string deviceIp, int dbNo, int startByteAdr, int count) { @@ -203,12 +203,12 @@ if (result.Length == 0) { - Link(plc);//璁惧鍙戦�鐨勬暟鎹负绌猴紝閲嶈繛 + Link(plc);//璁惧鍙戦�鐨勬暟鎹负绌�閲嶈繛 } } else { - Link(plc);//璁惧鏈繛鎺ワ紝閲嶈繛 + Link(plc);//璁惧鏈繛鎺�閲嶈繛 } } else @@ -225,11 +225,11 @@ } /// <summary> - /// 鎵归噺鍐欏叆鎴栧崟鐙啓鍏B鍧楁暟鎹紙8浣峛yte锛�+ /// 鎵归噺鍐欏叆鎴栧崟鐙啓鍏B鍧楁暟鎹�(8浣峛yte) /// </summary> /// <param name="deviceIp">plc璁惧閫氳鍦板潃</param> /// <param name="dbNo">DB鍧楀彿</param> - /// <param name="startByteAdr">璧峰byte鍦板潃锛屾渶灏忓�0锛�=8浣�1涓狟lock</param> + /// <param name="startByteAdr">璧峰byte鍦板潃,鏈�皬鍊�,1=8浣�1涓狟lock</param> /// <param name="data">瑕佸啓鍏ョ殑鏁版嵁</param> /// <returns></returns> public static bool WriteBytes(string deviceIp, int dbNo, int startByteAdr, byte[] data) @@ -253,7 +253,7 @@ } else { - Link(plc);//璁惧鏈繛鎺ワ紝閲嶈繛 + Link(plc);//璁惧鏈繛鎺�閲嶈繛 } } else @@ -270,11 +270,11 @@ } /// <summary> - /// 鎵归噺璇诲彇鎴栧崟鐙鍙朌B鍧楁暟鎹紙1浣峛it锛�+ /// 鎵归噺璇诲彇鎴栧崟鐙鍙朌B鍧楁暟鎹�(1浣峛it) /// </summary> /// <param name="deviceIp">plc璁惧閫氳鍦板潃</param> /// <param name="dbNo">DB鍧楀彿</param> - /// <param name="startByteAdr">璧峰byte鍦板潃锛屾渶灏忓�0锛�=8浣�1涓狟lock</param> + /// <param name="startByteAdr">璧峰byte鍦板潃,鏈�皬鍊�,1=8浣�1涓狟lock</param> /// <param name="count">瑕佽鍙栧灏戜綅</param> /// <param name="bitAdr">浠庣鍑犱綅寮�璇诲彇</param> /// <returns></returns> @@ -299,12 +299,12 @@ } if (result.Length == 0) { - Link(plc);//璁惧鍙戦�鐨勬暟鎹负绌猴紝閲嶈繛 + Link(plc);//璁惧鍙戦�鐨勬暟鎹负绌�閲嶈繛 } } else { - Link(plc);//璁惧鏈繛鎺ワ紝閲嶈繛 + Link(plc);//璁惧鏈繛鎺�閲嶈繛 } } else @@ -321,12 +321,12 @@ } /// <summary> - /// 鎵归噺鍐欏叆鎴栧崟鐙啓鍏B鍧楁暟鎹紙1浣峛it锛�+ /// 鎵归噺鍐欏叆鎴栧崟鐙啓鍏B鍧楁暟鎹�(1浣峛it) /// </summary> /// <param name="deviceIp">plc璁惧閫氳鍦板潃</param> /// <param name="dbNo">DB鍧楀彿</param> - /// <param name="startByteAdr">璧峰byte鍦板潃锛屾渶灏忓�0锛�=8浣�1涓狟lock</param> - /// <param name="biteAdr">璧峰bit鍦板潃锛屼粠绗嚑浣嶅紑濮嬪啓k</param> + /// <param name="startByteAdr">璧峰byte鍦板潃,鏈�皬鍊�,1=8浣�1涓狟lock</param> + /// <param name="biteAdr">璧峰bit鍦板潃,浠庣鍑犱綅寮�鍐檏</param> /// <param name="bitValue">瑕佸啓鍏ョ殑鏁版嵁</param> /// <returns></returns> public static bool WriteBits(string deviceIp, int dbNo, int startByteAdr, byte biteAdr, BitArray bitValue) @@ -353,7 +353,7 @@ } else { - Link(plc);//璁惧鏈繛鎺ワ紝閲嶈繛 + Link(plc);//璁惧鏈繛鎺�閲嶈繛 } } else @@ -409,7 +409,7 @@ } /// <summary> - /// 閫氳繃S7鍗忚杩炴帴涓嬩綅鏈烘椂闇�鐨刴odel锛屽簲璇ユ斁鍦╩odel灞傦紝杩欓噷鎴戞噿浜�+ /// 閫氳繃S7鍗忚杩炴帴涓嬩綅鏈烘椂闇�鐨刴odel,搴旇鏀惧湪model灞�杩欓噷鎴戞噿浜� /// </summary> public class S7ConfigModel { diff --git a/device/TcpClient.cs b/device/TcpClient.cs index 54af524..44cb8b6 100644 --- a/device/TcpClient.cs +++ b/device/TcpClient.cs @@ -32,7 +32,7 @@ res = BitConverter.ToString(data).Replace("-", ""); } catch (Exception ex) { - LogHelper.Error(ex.Message, ex); + LogHelper.InfoEx(ex); } client.Disconnect(true); client.Dispose(); @@ -42,7 +42,7 @@ } /// <summary> - /// 璇讳繚鎸佸瘎瀛樺櫒锛宮odbus rtu鐨勫皝瑁�+ /// 璇讳繚鎸佸瘎瀛樺櫒,modbus rtu鐨勫皝瑁� /// </summary> /// <param name="address"></param> /// <param name="qty"></param> diff --git a/device/TcpClientHelper.cs b/device/TcpClientHelper.cs index bfdcc2c..2981a95 100644 --- a/device/TcpClientHelper.cs +++ b/device/TcpClientHelper.cs @@ -26,15 +26,15 @@ public static bool Init(string ip, int port) { lock (_connectLock) { try { - // 鑻ユ鍦ㄨ繛鎺ヤ腑锛岀洿鎺ヨ繑鍥�+ // 鑻ユ鍦ㄨ繛鎺ヤ腑,鐩存帴杩斿洖 if (_isConnecting) { - LogHelper.Info("宸叉湁杩炴帴姝e湪灏濊瘯涓紝绂佹閲嶅鎿嶄綔"); + LogHelper.Info("宸叉湁杩炴帴姝e湪灏濊瘯涓�绂佹閲嶅鎿嶄綔"); return false; } _isConnecting = true; // 鏍囪涓鸿繛鎺ヤ腑 - // 閲婃斁鏃�Socket锛堜粎鍦ㄦ湭杩炴帴鏃讹級 + // 閲婃斁鏃�Socket (浠呭湪鏈繛鎺ユ椂) if (_clientSocket != null && !_clientSocket.Connected) { SafeCloseSocket(); } @@ -52,7 +52,7 @@ } catch (SocketException ex) { _isConnecting = false; - LogHelper.Error($"鍒濆鍖栬繛鎺ュけ璐� {ex.Message}", ex); + LogHelper.InfoEx(ex); return false; } } @@ -64,7 +64,7 @@ lock (_linkLock) { try { - // 鑻ocket瀛樺湪浣嗗疄闄呭凡鏂紑锛屽己鍒舵竻鐞�+ // 鑻ocket瀛樺湪浣嗗疄闄呭凡鏂紑,寮哄埗娓呯悊 if (_clientSocket != null && (_clientSocket.Poll(0, SelectMode.SelectRead) && _clientSocket.Available == 0)) { SafeCloseSocket(); } @@ -72,7 +72,7 @@ // 鍘熸湁閫昏緫 if (_clientSocket != null && _clientSocket.Connected) { //if (ip == _ip && port == _port) { - LogHelper.Info($"浜х嚎宸茶繛鎺ワ紝鏃犻渶閲嶈繛锛孖P锛歿ip}锛岀鍙o細{port}"); + LogHelper.Info($"浜х嚎宸茶繛鎺�鏃犻渶閲嶈繛,IP:{ip},绔彛:{port}"); return false; //} @@ -82,7 +82,7 @@ return Init(ip, port); } catch (Exception ex) { - LogHelper.Error($"浜х嚎閲嶈繛澶辫触锛孖P锛歿ip}锛岀鍙o細{port}锛屽紓甯革細{ex.Message}", ex); + LogHelper.InfoEx(ex); return false; } } @@ -134,11 +134,11 @@ // 浠呭湪杩炴帴鎴愬姛鏃跺惎鍔ㄦ帴鏀� if (_clientSocket.Connected) { - LogHelper.Info($"鎴愬姛杩炴帴鍒版湇鍔$锛歿_ip}:{_port}"); + LogHelper.Info($"鎴愬姛杩炴帴鍒版湇鍔$:{_ip}:{_port}"); _clientSocket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, ReceiveCallback, null); } else { - LogHelper.Info("杩炴帴鏈垚鍔燂紝鍏抽棴Socket"); + LogHelper.Info("杩炴帴鏈垚鍔�鍏抽棴Socket"); SafeCloseSocket(); } } @@ -147,7 +147,7 @@ LogHelper.Info("杩炴帴杩囩▼涓璖ocket琚噴鏀�); } catch (Exception ex) { - LogHelper.Error($"杩炴帴澶辫触锛歿ex.Message}", ex); + LogHelper.InfoEx(ex); SafeCloseSocket(); } finally { @@ -166,16 +166,16 @@ _clientSocket.Close(); _clientSocket.Dispose(); - // 鏂紑鍚庯細娓呴櫎瀵瑰簲IP:Port鐨勬帴鏀舵暟鎹�+ // 鏂紑鍚�娓呴櫎瀵瑰簲IP:Port鐨勬帴鏀舵暟鎹� string key = $"{_ip}:{_port}"; if (_receivedDataQueue.ContainsKey(key)) { _receivedDataQueue.Remove(key); - LogHelper.Info($"宸叉竻鐞嗛槦鍒楁暟鎹紝Key锛歿key}"); + LogHelper.Info($"宸叉竻鐞嗛槦鍒楁暟鎹�Key:{key}"); } } } catch (Exception ex) { - LogHelper.Error($"閲婃斁Socket璧勬簮寮傚父锛歿ex.Message}", ex); + LogHelper.InfoEx(ex); } finally { _clientSocket = null; @@ -203,13 +203,13 @@ _clientSocket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, ReceiveCallback, null); } else { - // 鏈嶅姟绔富鍔ㄥ叧闂繛鎺ワ紝瑙﹀彂娓呯悊 + // 鏈嶅姟绔富鍔ㄥ叧闂繛鎺�瑙﹀彂娓呯悊 LogHelper.Info("杩炴帴宸茶鏈嶅姟绔叧闂�); SafeCloseSocket(); } } catch (Exception ex) { - LogHelper.Error($"鎺ユ敹鏁版嵁寮傚父锛歿ex.Message}", ex); + LogHelper.InfoEx(ex); SafeCloseSocket(); // 寮傚父鏃朵富鍔ㄥ叧闂� } } @@ -229,19 +229,18 @@ //read = result; return false; } - LogHelper.Info($"璇讳骇绾挎墭鐩樹笅绾挎暟鎹垚鍔燂細{BitConverter.ToString(result)}"); + LogHelper.Info($"璇讳骇绾挎墭鐩樹笅绾挎暟鎹垚鍔�{BitConverter.ToString(result)}"); read = result; return true; } else { //LogHelper.Info($"_clientSocket={_clientSocket} connected={_clientSocket?.Connected}"); Link(_ip, _port); - LogHelper.Info($"璇讳骇绾挎墭鐩樹笅绾挎暟鎹け璐ワ紙鏈繛鎺ワ級锛屽噯澶囬噸杩�); + LogHelper.Info($"璇讳骇绾挎墭鐩樹笅绾挎暟鎹け璐�(鏈繛鎺� ,鍑嗗閲嶈繛"); return false; } } catch (Exception ex) { - //LogHelper.Error($"璇讳骇绾挎墭鐩樹笅绾挎暟鎹け璐ワ紙鍙戠敓浜嗗紓甯革細{JsonConvert.SerializeObject(ex)}锛夛細{ex.Message}", ex); LogHelper.InfoEx(ex); return false; /* 寮傚父澶勭悊 */ @@ -256,11 +255,11 @@ /// <param name="registers">Modbus瀵勫瓨鍣ㄦ暟缁�/param> /// <returns>瀛楄妭鏁扮粍</returns> public static byte[] ConvertRegistersToBytes(ushort[] registers) { - // 姣忎釜瀵勫瓨鍣ㄦ槸16浣�2瀛楄妭)锛屾墍浠ユ�瀛楄妭鏁版槸瀵勫瓨鍣ㄦ暟閲忕殑2鍊�+ // 姣忎釜瀵勫瓨鍣ㄦ槸16浣�2瀛楄妭),鎵�互鎬诲瓧鑺傛暟鏄瘎瀛樺櫒鏁伴噺鐨�鍊� byte[] bytes = new byte[registers.Length * 2]; for (int i = 0; i < registers.Length; i++) { - // Modbus浣跨敤澶х搴忥紝楂樹綅瀛楄妭鍦ㄥ墠 + // Modbus浣跨敤澶х搴�楂樹綅瀛楄妭鍦ㄥ墠 bytes[i * 2] = (byte)(registers[i] >> 8); // 楂樹綅瀛楄妭 bytes[i * 2 + 1] = (byte)(registers[i] & 0xFF); // 浣庝綅瀛楄妭 } @@ -276,13 +275,13 @@ public static string ConvertBytesToString(byte[] bytes) { // 鏌ユ壘绗竴涓�x00瀛楄妭(瀛楃涓茬粨鏉熺)鐨勪綅缃� int length = Array.IndexOf(bytes, (byte)0); - if (length < 0) length = bytes.Length; // 濡傛灉娌℃湁缁撴潫绗︼紝浣跨敤鍏ㄩ儴瀛楄妭 + if (length < 0) length = bytes.Length; // 濡傛灉娌℃湁缁撴潫绗�浣跨敤鍏ㄩ儴瀛楄妭 // 鏍规嵁璁惧浣跨敤鐨勭紪鐮佽浆鎹�甯歌鐨勬湁ASCII鎴朥TF-8) - // 杩欓噷浣跨敤ASCII缂栫爜浣滀负绀轰緥锛屽疄闄呭簲鏍规嵁璁惧鏂囨。纭畾缂栫爜鏂瑰紡 + // 杩欓噷浣跨敤ASCII缂栫爜浣滀负绀轰緥,瀹為檯搴旀牴鎹澶囨枃妗g‘瀹氱紪鐮佹柟寮� return Encoding.ASCII.GetString(bytes, 0, length); - // 濡傛灉鏄疷TF-8缂栫爜锛屼娇鐢ㄤ笅闈㈣繖琛屼唬鏇夸笂闈㈤偅琛�+ // 濡傛灉鏄疷TF-8缂栫爜,浣跨敤涓嬮潰杩欒浠f浛涓婇潰閭h // return Encoding.UTF8.GetString(bytes, 0, length); } @@ -294,12 +293,12 @@ } else { Link(_ip, _port); - LogHelper.Info($"鍐欑數姊叆璐ф暟鎹け璐ワ紙鏈繛鎺ワ級锛歿Encoding.UTF8.GetString(sends)}"); + LogHelper.Info($"鍐欑數姊叆璐ф暟鎹け璐�(鏈繛鎺� :{Encoding.UTF8.GetString(sends)}"); return false; } } catch (Exception ex) { - LogHelper.Error($"鍐欑數姊叆璐ф暟鎹け璐ワ紙鍙戦�浜嗗紓甯革級锛歿ex.Message}", ex); + LogHelper.InfoEx(ex); return false; } } @@ -308,17 +307,17 @@ try { if (_clientSocket != null && _clientSocket?.Connected == true) { _receivedDataQueue.TryGetValue($"{_ip}:{_port}", out byte[] result); - LogHelper.Info($"璇荤數姊嚭璐ф暟鎹垚鍔燂細{BitConverter.ToString(result)}"); + LogHelper.Info($"璇荤數姊嚭璐ф暟鎹垚鍔�{BitConverter.ToString(result)}"); return result; } else { Link(_ip, _port); - LogHelper.Info($"璇荤數姊嚭璐ф暟鎹け璐ワ紙鏈繛鎺ワ級锛屽噯澶囬噸杩�); + LogHelper.Info($"璇荤數姊嚭璐ф暟鎹け璐�(鏈繛鎺� ,鍑嗗閲嶈繛"); return null; } } catch (Exception ex) { - LogHelper.Error($"璇荤數姊嚭璐ф暟鎹け璐ワ紙鍙戠敓浜嗗紓甯革細{JsonConvert.SerializeObject(ex)}锛夛細{ex.Message}", ex); + LogHelper.InfoEx(ex); return null; /* 寮傚父澶勭悊 */ } @@ -326,20 +325,20 @@ public static string ChekElevator() { try { - var res = "璇诲彇鐢垫鏁版嵁鐨刴odel锛岀储寮曚粠1寮�锛屾弧瓒充互涓嬫潯浠舵墠鑳藉彂浠诲姟 \r\n " + - "瀛楁锛宨sNormal 锛屾槸鍚︽甯告ā寮忥紝1锛氭甯告ā寮忥紝绗�涓狟yte鍙充晶绗竴浣岯it \r\n" + - "瀛楁锛宨sValid锛屽綋鍓嶄綅缃槸鍚︽湁鏁堬紝1锛氭湁鏁堬紝0锛氫笉鐢ㄧ锛岀9涓狟yte鍙充晶绗竴浣岯it \r\n" + - "瀛楁锛宺unMode锛岀數姊繍琛屾ā寮忥紝9=绌洪棽娉婂仠锛�=鑷姩杩愯锛岀10涓狟yte\r\n" + - "瀛楁锛宨sLock_1_Out,涓�眰鍑哄彛鏄惁鍗犵敤锛� = 鍗犵敤锛岀14涓狟yte鍙充晶绗竴浣岯it\r\n" + - "瀛楁锛宨sLock_2_Out锛屼簩灞傚嚭鍙f槸鍚﹀崰鐢紝1 = 鍗犵敤锛岀14涓狟yte鍙充晶绗簩浣岯it\r\n" + - "瀛楁锛宼askNO锛屼换鍔″彿\r\n" + - "鍒ゆ柇鐢垫鏄惁绗﹀悎2妤煎埌1妤兼惉閫佹潯浠讹細isNormal 涓�(runMode == 9 鎴�runMode == 7) 涓�锛乮sLock_1_Out \r\n" + - "鍒ゆ柇鐢垫鏄惁绗﹀悎1妤煎埌鎴愬搧搴撳尯鏉′欢锛歩sNormal 涓�(runMode == 9 鎴�runMode == 7) 涓�isLock_1_Out\r\n"; + var res = "璇诲彇鐢垫鏁版嵁鐨刴odel,绱㈠紩浠�寮�,婊¤冻浠ヤ笅鏉′欢鎵嶈兘鍙戜换鍔�\r\n " + + "瀛楁,isNormal ,鏄惁姝e父妯″紡,1:姝e父妯″紡,绗�涓狟yte鍙充晶绗竴浣岯it \r\n" + + "瀛楁,isValid,褰撳墠浣嶇疆鏄惁鏈夋晥,1:鏈夋晥,0:涓嶇敤绠�绗�涓狟yte鍙充晶绗竴浣岯it \r\n" + + "瀛楁,runMode,鐢垫杩愯妯″紡,9=绌洪棽娉婂仠,7=鑷姩杩愯,绗�0涓狟yte\r\n" + + "瀛楁,isLock_1_Out,涓�眰鍑哄彛鏄惁鍗犵敤,1 = 鍗犵敤,绗�4涓狟yte鍙充晶绗竴浣岯it\r\n" + + "瀛楁,isLock_2_Out,浜屽眰鍑哄彛鏄惁鍗犵敤,1 = 鍗犵敤,绗�4涓狟yte鍙充晶绗簩浣岯it\r\n" + + "瀛楁,taskNO,浠诲姟鍙穃r\n" + + "鍒ゆ柇鐢垫鏄惁绗﹀悎2妤煎埌1妤兼惉閫佹潯浠�isNormal 涓�(runMode == 9 鎴�runMode == 7) 涓�!isLock_1_Out \r\n" + + "鍒ゆ柇鐢垫鏄惁绗﹀悎1妤煎埌鎴愬搧搴撳尯鏉′欢:isNormal 涓�(runMode == 9 鎴�runMode == 7) 涓�isLock_1_Out\r\n"; var isRead = ReadElevatorOutOk(); var log = BitConverter.ToString(isRead); - res += "璇诲彇鍒扮殑鐢垫byte鏁扮粍锛� + log + "\r\n"; + res += "璇诲彇鍒扮殑鐢垫byte鏁扮粍:" + log + "\r\n"; //if (isRead != null && isRead.Length >= 14) { // var elevatorReadInfo = new ElevatorReadInfo() { // isNormal = (isRead[6] & 1) == 1, @@ -353,14 +352,14 @@ // var res1 = elevatorReadInfo.is2To1Ok(); - // res += "鍒ゆ柇鐢垫鏄惁绗﹀悎2妤煎埌1妤兼惉閫佹潯浠讹紝濡傛灉绗﹀悎鍒欒繑鍥瀟rue锛岀粨鏋� + res1 + "\r\n"; + // res += "鍒ゆ柇鐢垫鏄惁绗﹀悎2妤煎埌1妤兼惉閫佹潯浠�濡傛灉绗﹀悎鍒欒繑鍥瀟rue,缁撴灉" + res1 + "\r\n"; // var res2 = elevatorReadInfo.is1ToOk(); - // res += "鍒ゆ柇鐢垫鏄惁绗﹀悎1妤煎埌鎴愬搧搴撳尯鏉′欢锛屽鏋滅鍚堝垯杩斿洖true锛岀粨鏋� + res2 + "\r\n"; + // res += "鍒ゆ柇鐢垫鏄惁绗﹀悎1妤煎埌鎴愬搧搴撳尯鏉′欢,濡傛灉绗﹀悎鍒欒繑鍥瀟rue,缁撴灉" + res2 + "\r\n"; //} //else { - // return "璇诲彇鐢垫鐘舵�澶辫触锛宐yte鏁扮粍瑕佹眰澶т簬绛変簬14涓笖涓嶄负绌�; + // return "璇诲彇鐢垫鐘舵�澶辫触,byte鏁扮粍瑕佹眰澶т簬绛変簬14涓笖涓嶄负绌�; //} return res; } @@ -390,7 +389,7 @@ return false; } catch (Exception ex) { - LogHelper.Error($"鍒ゆ柇鐢垫鏄惁鏂數锛堝彂鐢熶簡寮傚父锛歿JsonConvert.SerializeObject(ex)}锛夛細{ex.Message}", ex); + LogHelper.InfoEx(ex); return false; } } diff --git a/device/TcpServer.cs b/device/TcpServer.cs index 5ee2f16..b85a167 100644 --- a/device/TcpServer.cs +++ b/device/TcpServer.cs @@ -17,14 +17,14 @@ } private void Init(string ip, int port) { - //鍒涘缓涓�釜鏂扮殑Socket,杩欓噷鎴戜滑浣跨敤鏈�父鐢ㄧ殑鍩轰簬TCP鐨凷tream Socket锛堟祦寮忓鎺ュ瓧锛�+ //鍒涘缓涓�釜鏂扮殑Socket,杩欓噷鎴戜滑浣跨敤鏈�父鐢ㄧ殑鍩轰簬TCP鐨凷tream Socket (娴佸紡濂楁帴瀛� var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { - //灏嗚socket缁戝畾鍒颁富鏈轰笂闈㈢殑鏌愪釜绔彛锛岀鍙e簲璇ユ斁鍒伴厤缃枃浠朵腑 + //灏嗚socket缁戝畾鍒颁富鏈轰笂闈㈢殑鏌愪釜绔彛,绔彛搴旇鏀惧埌閰嶇疆鏂囦欢涓� socket.Bind(new IPEndPoint(IPAddress.Parse(ip), port)); Console.WriteLine(port); - //鍚姩鐩戝惉锛屽苟涓旇缃竴涓渶澶х殑闃熷垪闀垮害 + //鍚姩鐩戝惉,骞朵笖璁剧疆涓�釜鏈�ぇ鐨勯槦鍒楅暱搴� socket.Listen(30); //寮�鎺ュ彈瀹㈡埛绔繛鎺ヨ姹� socket.BeginAccept(new AsyncCallback(ClientAccepted), socket); @@ -80,7 +80,7 @@ } catch (Exception ex) { - Console.WriteLine($"銆愭帴鏀跺鎴风鐨勬秷鎭紓甯搞�锛� + ex.Message); + Console.WriteLine($"銆愭帴鏀跺鎴风鐨勬秷鎭紓甯搞�:" + ex.Message); } //鍑嗗鎺ュ彈涓嬩竴涓鎴风璇锋眰 socket.BeginAccept(new AsyncCallback(ClientAccepted), socket); @@ -128,7 +128,7 @@ } } - //LogHelper.Info($"鎺ユ敹鍒颁俊鎭紝IP锛歿remote_ip},MSG锛歿BitConverter.ToString(buffers[remote_ip])}"); + //LogHelper.Info($"鎺ユ敹鍒颁俊鎭�IP:{remote_ip},MSG:{BitConverter.ToString(buffers[remote_ip])}"); if (buffers.Keys.Contains(remote_ip)) { @@ -156,7 +156,7 @@ string rfids16 = BitConverter.ToString(rfid); string rfids = Encoding.ASCII.GetString(rfid); - //LogHelper.Info($"璇诲崱鍣ㄦ牎楠屽搴斿鍣ㄥ彿锛歿rfids}锛屽叾16杩涘埗褰㈠紡锛歿rfids16}"); + //LogHelper.Info($"璇诲崱鍣ㄦ牎楠屽搴斿鍣ㄥ彿:{rfids},鍏�6杩涘埗褰㈠紡:{rfids16}"); //if (ScanCodeHelper.Analysis(remote_ip, rfids))//鏍¢獙RFID //{ // isCheck[remote_ip] = false; @@ -170,12 +170,12 @@ } else { - LogHelper.Info($"涓嶆弧瓒宠鍗″櫒鏍¢獙瑙勫畾锛欼P锛歿remote_ip},MSG锛歿message}"); + LogHelper.Info($"涓嶆弧瓒宠鍗″櫒鏍¢獙瑙勫畾:IP:{remote_ip},MSG:{message}"); } } catch(Exception ex) { - LogHelper.Info($"鎵爜鏍¢獙鍙戠敓浜嗗紓甯革細{ex.Message}"); + LogHelper.Info($"鎵爜鏍¢獙鍙戠敓浜嗗紓甯�{ex.Message}"); saoMa[remote_ip] = 4;//鎵爜寮傚父 } @@ -185,7 +185,7 @@ } catch(Exception ex) { - LogHelper.Info($"鍗峰笜闂ㄦ牎楠屽彂鐢熶簡寮傚父锛歿ex.Message}"); + LogHelper.Info($"鍗峰笜闂ㄦ牎楠屽彂鐢熶簡寮傚父:{ex.Message}"); } //TcpServerSend(remote_ip, System.Text.Encoding.Default.GetBytes(msgSend)); Array.Clear(buffers[remote_ip], 0, buffers[remote_ip].Length);//娓呯┖褰撳墠IP Buffer @@ -198,12 +198,12 @@ } } - //鎺ユ敹涓嬩竴涓秷鎭�鍥犱负杩欐槸涓�釜閫掑綊鐨勮皟鐢紝鎵�互杩欐牱灏卞彲浠ヤ竴鐩存帴鏀舵秷鎭簡锛�+ //鎺ユ敹涓嬩竴涓秷鎭�鍥犱负杩欐槸涓�釜閫掑綊鐨勮皟鐢�鎵�互杩欐牱灏卞彲浠ヤ竴鐩存帴鏀舵秷鎭簡) socket.BeginReceive(buffers[remote_ip], 0, buffers[remote_ip].Length, SocketFlags.None, new AsyncCallback(ReceiveMessage), socket); } catch (Exception ex) { - + LogHelper.InfoEx(ex); } } @@ -222,7 +222,7 @@ try { client.Send(msg); - LogHelper.Info($"宸插彂閫佺粰璇GV鍦板潃{ip}锛寋msg}"); + LogHelper.Info($"宸插彂閫佺粰璇GV鍦板潃{ip},{msg}"); return true; } catch (SocketException ex) @@ -240,7 +240,7 @@ } else { - LogHelper.Info("鏈壘鍒拌璁惧锛屾槸鍚﹀凡杩炴帴锛�); + LogHelper.Info("鏈壘鍒拌璁惧,鏄惁宸茶繛鎺ワ紵"); } return false; diff --git a/dispatch/GZRobot.cs b/dispatch/GZRobot.cs index dbc6847..0e58b2a 100644 --- a/dispatch/GZRobot.cs +++ b/dispatch/GZRobot.cs @@ -38,7 +38,7 @@ /// <param name="created_user"></param> /// <returns></returns> public static int CreateOrder(string taskNo, int priority, string param, string ts = "churuku", string created_user = "hanhe") { - LogHelper.Info($"CreateOrder鍙傛暟淇℃伅:taskNo:{taskNo},priority:{priority},param:{param},ts:{ts}锛宑reated_user锛歿created_user}", "API"); + LogHelper.Info($"CreateOrder鍙傛暟淇℃伅:taskNo:{taskNo},priority:{priority},param:{param},ts:{ts},created_user:{created_user}", "API"); var msg = ""; var orderId = 0; var data = new OrderInfo() { order_name = taskNo, priority = priority, dead_line = DateTime.Now, ts_name = ts, parameters = param, created_user = created_user }; @@ -54,8 +54,8 @@ // orderId = dataResult.data[0].in_order_id; //} - // 杩斿洖鍙傛暟涓紝code鐩墠涓嶅啀浣跨敤锛屽彲閫氳繃msg瀛楁鍒ゆ柇鏄惁鎴愬姛锛屽鏋渕sg涓衡�success鈥濆垯琛ㄧず鎴愬姛锛屽惁鍒欎负鎶ラ敊淇℃伅鎴栦笉瀛樺湪銆俬ttp code涓�22鏃跺�鐨勬姤閿欎负绯荤粺鎶ラ敊锛屽叾涓殑msg鏃犳硶鍏ㄩ儴鑾峰彇銆�- // SELFNOTE: 鐩存帴璋冪敤HttpHelper.Post鏂规硶锛屾棤娉曡幏鍙杊eader锛屾殏鏃朵笉鑰冭檻 + // 杩斿洖鍙傛暟涓�code鐩墠涓嶅啀浣跨敤,鍙�杩噈sg瀛楁鍒ゆ柇鏄惁鎴愬姛,濡傛灉msg涓衡�success鈥濆垯琛ㄧず鎴愬姛,鍚﹀垯涓烘姤閿欎俊鎭垨涓嶅瓨鍦ㄣ�http code涓�22鏃跺�鐨勬姤閿欎负绯荤粺鎶ラ敊,鍏朵腑鐨刴sg鏃犳硶鍏ㄩ儴鑾峰彇銆�+ // SELFNOTE: 鐩存帴璋冪敤HttpHelper.Post鏂规硶,鏃犳硶鑾峰彇header,鏆傛椂涓嶈�铏� if (dataResult.msg == "success") { orderId = dataResult.data[0].in_order_id; } @@ -94,10 +94,10 @@ // return result; //} - // 杩斿洖鍙傛暟涓紝code鐩墠涓嶅啀浣跨敤锛屽彲閫氳繃msg瀛楁鍒ゆ柇鏄惁鎴愬姛锛屽鏋渕sg涓衡�success鈥濆垯琛ㄧず鎴愬姛锛屽惁鍒欎负鎶ラ敊淇℃伅鎴栦笉瀛樺湪銆俬ttp code涓�22鏃跺�鐨勬姤閿欎负绯荤粺鎶ラ敊锛屽叾涓殑msg鏃犳硶鍏ㄩ儴鑾峰彇銆�- // SELFNOTE: 鐩存帴璋冪敤HttpHelper.Post鏂规硶锛屾棤娉曡幏鍙杊eader锛屾殏鏃朵笉鑰冭檻 + // 杩斿洖鍙傛暟涓�code鐩墠涓嶅啀浣跨敤,鍙�杩噈sg瀛楁鍒ゆ柇鏄惁鎴愬姛,濡傛灉msg涓衡�success鈥濆垯琛ㄧず鎴愬姛,鍚﹀垯涓烘姤閿欎俊鎭垨涓嶅瓨鍦ㄣ�http code涓�22鏃跺�鐨勬姤閿欎负绯荤粺鎶ラ敊,鍏朵腑鐨刴sg鏃犳硶鍏ㄩ儴鑾峰彇銆�+ // SELFNOTE: 鐩存帴璋冪敤HttpHelper.Post鏂规硶,鏃犳硶鑾峰彇header,鏆傛椂涓嶈�铏� // 灏婇噸鏂囨。鐨勭増鏈�- if (dataResult.msg == "success") { // 鐩墠鍙彇娑堜竴涓换鍔★紝鎴愬姛鏃犻渶鍐嶆鏌uccess_list鍜宔rror_list + if (dataResult.msg == "success") { // 鐩墠鍙彇娑堜竴涓换鍔�鎴愬姛鏃犻渶鍐嶆鏌uccess_list鍜宔rror_list Console.WriteLine("[guozi-CancelOrder]鍙栨秷璁㈠崟鎴愬姛"); result = true; return result; @@ -133,10 +133,10 @@ // return result; //} - // 杩斿洖鍙傛暟涓紝code鐩墠涓嶅啀浣跨敤锛屽彲閫氳繃msg瀛楁鍒ゆ柇鏄惁鎴愬姛锛屽鏋渕sg涓衡�success鈥濆垯琛ㄧず鎴愬姛锛屽惁鍒欎负鎶ラ敊淇℃伅鎴栦笉瀛樺湪銆俬ttp code涓�22鏃跺�鐨勬姤閿欎负绯荤粺鎶ラ敊锛屽叾涓殑msg鏃犳硶鍏ㄩ儴鑾峰彇銆�- // SELFNOTE: 鐩存帴璋冪敤HttpHelper.Post鏂规硶锛屾棤娉曡幏鍙杊eader锛屾殏鏃朵笉鑰冭檻 + // 杩斿洖鍙傛暟涓�code鐩墠涓嶅啀浣跨敤,鍙�杩噈sg瀛楁鍒ゆ柇鏄惁鎴愬姛,濡傛灉msg涓衡�success鈥濆垯琛ㄧず鎴愬姛,鍚﹀垯涓烘姤閿欎俊鎭垨涓嶅瓨鍦ㄣ�http code涓�22鏃跺�鐨勬姤閿欎负绯荤粺鎶ラ敊,鍏朵腑鐨刴sg鏃犳硶鍏ㄩ儴鑾峰彇銆�+ // SELFNOTE: 鐩存帴璋冪敤HttpHelper.Post鏂规硶,鏃犳硶鑾峰彇header,鏆傛椂涓嶈�铏� // 灏婇噸鏂囨。鐨勭増鏈�- if (dataResult.msg == "success") { // 鐩墠鍙彇娑堜竴涓换鍔★紝鎴愬姛鏃犻渶鍐嶆鏌uccess_list鍜宔rror_list + if (dataResult.msg == "success") { // 鐩墠鍙彇娑堜竴涓换鍔�鎴愬姛鏃犻渶鍐嶆鏌uccess_list鍜宔rror_list if (dataResult.success_list.Count == requests.Count && dataResult.error_list.Count == 0) { Console.WriteLine("[guozi-CancelOrder]鍙栨秷璁㈠崟鎴愬姛"); result = true; diff --git a/dispatch/HanAo.cs b/dispatch/HanAo.cs index 848caa8..422f394 100644 --- a/dispatch/HanAo.cs +++ b/dispatch/HanAo.cs @@ -102,7 +102,7 @@ /// </summary> public string trkType { get; set; } /// <summary> - /// 1-999锛堝�瓒婂ぇ浼樺厛绾ц秺楂橈級 + /// 1-999 (鍊艰秺澶т紭鍏堢骇瓒婇珮) /// </summary> public string trkPrty { get; set; } = "1"; public string frmPos { get; set; } @@ -115,7 +115,7 @@ public string groupNo { get; set; } = ""; public string clientCode { get; set; } = "WMS"; /// <summary> - /// 鏍煎紡锛�022-11-11 11:32:08 + /// 鏍煎紡:2022-11-11 11:32:08 /// </summary> public string reqTime { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); @@ -144,13 +144,13 @@ public string requestPk { get; set; } public string contNo { get; set; } /// <summary> - /// 鍙屾柟绯荤粺鍏卞悓瀹氫箟 1-鍏ュ簱 2-鍑哄簱 3-绉诲簱 锛堝悗缁鏈夊鍔犲啀鍗忓畾锛�+ /// 鍙屾柟绯荤粺鍏卞悓瀹氫箟 1-鍏ュ簱 2-鍑哄簱 3-绉诲簱 (鍚庣画濡傛湁澧炲姞鍐嶅崗瀹� /// </summary> public string noticeType { get; set; } public string curPos { get; set; } public string noticeInfo { get; set; } /// <summary> - /// 0-鎴愬姛 锛堝叆搴撲笂鏋跺畬鎴�鍑哄簱涓嬫灦瀹屾垚/搴撳唴绉诲簱瀹屾垚锛氱Щ搴撳彧涓婃姤鏈�粓绉诲簱涓婃灦锛�鎴�鍏朵粬-寮傚父鐮�鍙嶉鐩稿叧缁撴灉鍘熷洜锛學MS鏍规嵁鎯呭喌澶勭悊 + /// 0-鎴愬姛 (鍏ュ簱涓婃灦瀹屾垚/鍑哄簱涓嬫灦瀹屾垚/搴撳唴绉诲簱瀹屾垚:绉诲簱鍙笂鎶ユ渶缁堢Щ搴撲笂鏋� 鎴�鍏朵粬-寮傚父鐮�鍙嶉鐩稿叧缁撴灉鍘熷洜,WMS鏍规嵁鎯呭喌澶勭悊 /// 1-鍏ュ簱鏈夎揣 2-鍏ヨ繙杩戞湁璐�3-鍑哄簱鏃犺揣 4-鍑鸿繙杩戞湁璐� /// </summary> public string code { get; set; } diff --git a/dispatch/HostToAGV.cs b/dispatch/HostToAGV.cs index 1583115..0b46643 100644 --- a/dispatch/HostToAGV.cs +++ b/dispatch/HostToAGV.cs @@ -3,8 +3,8 @@ // 姝や唬鐮佺敱宸ュ叿鐢熸垚銆� // 杩愯鏃剁増鏈�4.0.30319.42000 // -// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆纭殑琛屼负锛屽苟涓斿鏋�-// 閲嶆柊鐢熸垚浠g爜锛岃繖浜涙洿鏀瑰皢浼氫涪澶便� +// 瀵规鏂囦欢鐨勬洿鏀瑰彲鑳戒細瀵艰嚧涓嶆纭殑琛屼负,骞朵笖濡傛灉 +// 閲嶆柊鐢熸垚浠g爜,杩欎簺鏇存敼灏嗕細涓㈠け銆� // </auto-generated> //------------------------------------------------------------------------------ diff --git a/dispatch/NDCApi.cs b/dispatch/NDCApi.cs index 75cd6ad..559e4f5 100644 --- a/dispatch/NDCApi.cs +++ b/dispatch/NDCApi.cs @@ -10,7 +10,7 @@ namespace HH.WCS.Mobox3.DSZSH.dispatch { /// <summary> - /// NDC鐨凙PI鎺ュ彛锛岀敤浜庢浛浠e師NDC銆丯DCHelper鍜孒ostToAGV妯″潡 + /// NDC鐨凙PI鎺ュ彛,鐢ㄤ簬鏇夸唬鍘烴DC,NDCHelper鍜孒ostToAGV妯″潡 /// </summary> public class NDCApi { @@ -33,15 +33,15 @@ try { string jsonInfo = JsonConvert.SerializeObject(model); - LogHelper.Info($"浠诲姟{taskNo}涓嬪彂锛寋jsonInfo}", "NDC"); + LogHelper.Info($"NDC浠诲姟涓嬪彂:{taskNo}\n\n{jsonInfo}\n", "NDC"); var result = httpH.WebPost(NDCApiUrl + "Add", jsonInfo); - LogHelper.Info($"浠诲姟涓嬪彂缁撴灉res={result}", "NDC"); + LogHelper.Info($"NDC浠诲姟涓嬪彂缁撴灉:res='{result}'", "NDC"); agvApiResult = JsonConvert.DeserializeObject<AgvApiResult>(result); return agvApiResult; } catch (Exception e) { - LogHelper.Info($"浠诲姟涓嬪彂澶辫触 res={e.Message}", "NDC"); + LogHelper.Info($"浠诲姟涓嬪彂澶辫触:res='{e.Message}'", "NDC"); agvApiResult.err_code = -1; agvApiResult.err_msg = e.Message; return agvApiResult; @@ -56,7 +56,7 @@ try { string jsonInfo = JsonConvert.SerializeObject(model); - LogHelper.Info($"浠诲姟{model.task_no}涓嬪彂锛寋jsonInfo}", "NDC"); + LogHelper.Info($"浠诲姟{model.task_no}涓嬪彂,{jsonInfo}", "NDC"); var result = httpH.WebPost(NDCApiUrl + "Add", jsonInfo); LogHelper.Info($"浠诲姟涓嬪彂缁撴灉res={result}", "NDC"); @@ -83,7 +83,7 @@ try { string jsonInfo = JsonConvert.SerializeObject(model); - LogHelper.Info($"浠诲姟{model.task_no}鍙栨秷锛寋jsonInfo}", "NDC"); + LogHelper.Info($"浠诲姟{model.task_no}鍙栨秷,{jsonInfo}", "NDC"); var result = httpH.WebPost(NDCApiUrl + "Cancel", jsonInfo); LogHelper.Info($"浠诲姟{model.task_no}鍙栨秷缁撴灉={result}", "NDC"); @@ -107,7 +107,7 @@ try { string jsonInfo = JsonConvert.SerializeObject(model); - LogHelper.Info($"浠诲姟{model.task_no}鍙栨秷锛寋jsonInfo}", "NDC"); + LogHelper.Info($"浠诲姟{model.task_no}鍙栨秷,{jsonInfo}", "NDC"); var result = httpH.WebPost(NDCApiUrl + "Cancel", jsonInfo); LogHelper.Info($"浠诲姟{model.task_no}鍙栨秷缁撴灉={result}", "NDC"); @@ -135,7 +135,7 @@ try { string jsonInfo = JsonConvert.SerializeObject(model); - LogHelper.Info($"浠诲姟{model.task_no}浼樺厛绾ф洿鏀癸紝{jsonInfo}", "NDC"); + LogHelper.Info($"浠诲姟{model.task_no}浼樺厛绾ф洿鏀�{jsonInfo}", "NDC"); var result = httpH.WebPost(NDCApiUrl + "ChangePri", jsonInfo); LogHelper.Info($"浠诲姟{model.task_no}浼樺厛绾ф洿鏀圭粨鏋�{result}", "NDC"); @@ -159,7 +159,7 @@ try { string jsonInfo = JsonConvert.SerializeObject(model); - LogHelper.Info($"浠诲姟{model.task_no}浼樺厛绾ф洿鏀癸紝{jsonInfo}", "NDC"); + LogHelper.Info($"浠诲姟{model.task_no}浼樺厛绾ф洿鏀�{jsonInfo}", "NDC"); var result = httpH.WebPost(NDCApiUrl + "ChangePri", jsonInfo); LogHelper.Info($"浠诲姟{model.task_no}浼樺厛绾ф洿鏀圭粨鏋�{result}", "NDC"); @@ -187,7 +187,7 @@ try { string jsonInfo = JsonConvert.SerializeObject(model); - LogHelper.Info($"浠诲姟{model.task_no}鍙傛暟鏇存敼锛寋jsonInfo}", "NDC"); + LogHelper.Info($"浠诲姟{model.task_no}鍙傛暟鏇存敼,{jsonInfo}", "NDC"); var result = httpH.WebPost(NDCApiUrl + "ChangeParam", jsonInfo); LogHelper.Info($"浠诲姟{model.task_no}鍙傛暟鏇存敼缁撴灉={result}", "NDC"); @@ -211,7 +211,7 @@ try { string jsonInfo = JsonConvert.SerializeObject(model); - LogHelper.Info($"浠诲姟{model.task_no}鍙傛暟鏇存敼锛寋jsonInfo}", "NDC"); + LogHelper.Info($"浠诲姟{model.task_no}鍙傛暟鏇存敼,{jsonInfo}", "NDC"); var result = httpH.WebPost(NDCApiUrl + "ChangeParam", jsonInfo); LogHelper.Info($"浠诲姟{model.task_no}鍙傛暟鏇存敼缁撴灉={result}", "NDC"); @@ -234,16 +234,16 @@ /// </summary> public class AgvApiResult { - public int err_code { set; get; }//寮傚父鐮侊細0 - 姝e父锛屽叾瀹冨�涓哄紓甯搁敊璇爜 - public string err_msg { set; get; }//杩斿洖鐨勯敊璇弿杩帮紝鍦�err_code <> 0 鏃惰繑鍥�- public object result { set; get; }//姝g‘杩斿洖鐨勭粨鏋滃唴瀹癸紝鍦�err_code = 0 涓旀湁杩斿洖鍐呭鏃�+ public int err_code { set; get; }//寮傚父鐮�0 - 姝e父,鍏跺畠鍊间负寮傚父閿欒鐮�+ public string err_msg { set; get; }//杩斿洖鐨勯敊璇弿杩�鍦�err_code <> 0 鏃惰繑鍥�+ public object result { set; get; }//姝g‘杩斿洖鐨勭粨鏋滃唴瀹�鍦�err_code = 0 涓旀湁杩斿洖鍐呭鏃� } public class AddOrderNewModel { - public int ts_no { set; get; }//TS 鍙凤紝蹇呴』鏈夊� + public int ts_no { set; get; }//TS 鍙�蹇呴』鏈夊� public int pri { set; get; }//浼樺厛绾�- public string task_no { set; get; }//涓婃父浠诲姟缂栫爜锛屽鏋�no_feedback = 1 鏃讹紝鍙互涓虹┖ + public string task_no { set; get; }//涓婃父浠诲姟缂栫爜,濡傛灉 no_feedback = 1 鏃�鍙互涓虹┖ public List<param> param { set; get; } = new List<param>();//鍙傛暟鍒楄〃 } @@ -257,14 +257,14 @@ public class CancelOrderModel { public string task_no { set; get; }//涓婃父浠诲姟缂栫爜 - public bool is_force { set; get; } = true;//鏄惁寮哄埗鍙栨秷锛� 鈥�寮哄埗 + public bool is_force { set; get; } = true;//鏄惁寮哄埗鍙栨秷,1 鈥�寮哄埗 } public class ChangeParamModel { public string task_no { set; get; }//涓婃父浠诲姟缂栫爜 public int param_no { set; get; }//鍙傛暟鍙�- public string param { set; get; }//鍙傛暟鍐呭锛屽涓弬鏁颁互鑻辨枃鍒嗗彿(;)鍒嗛殧 + public string param { set; get; }//鍙傛暟鍐呭,澶氫釜鍙傛暟浠ヨ嫳鏂囧垎鍙�;)鍒嗛殧 } public class ChangePriModel diff --git a/models/BaseModel.cs b/models/BaseModel.cs index 0f17517..fe43192 100644 --- a/models/BaseModel.cs +++ b/models/BaseModel.cs @@ -4,12 +4,12 @@ namespace HH.WCS.Mobox3.DSZSH.models { /// <summary> - /// 銆愭鏋躲�妯℃澘鎶借薄绫伙細鍩烘湰琛ㄦ暟鎹ā鍨�+ /// 銆愭鏋躲�妯℃澘鎶借薄绫�鍩烘湰琛ㄦ暟鎹ā鍨� /// </summary> public abstract class BaseModel { /// <summary> - /// 鍞竴璇嗗埆鐮侊紙搴曞眰涓婚敭锛�+ /// 鍞竴璇嗗埆鐮�(搴曞眰涓婚敭) /// </summary> [SugarColumn(IsPrimaryKey = true)] public string S_ID { get; set; } = Guid.NewGuid().ToString("D"); @@ -35,7 +35,7 @@ public DateTime T_MODIFY { get; set; } = DateTime.Now; /// <summary> - /// 鏁版嵁鐘舵�锛氱紪杈戙�瀹氱増 + /// 鏁版嵁鐘舵�:缂栬緫,瀹氱増 /// </summary> public string S_STATE { get; set; } = "缂栬緫"; } diff --git a/models/TN_CAR_IN.cs b/models/TN_CAR_IN.cs index f299631..6e0df27 100644 --- a/models/TN_CAR_IN.cs +++ b/models/TN_CAR_IN.cs @@ -13,7 +13,7 @@ public string S_CNTR_CODE { set; get; } /// <summary> - /// 鐢熶骇杞︽暟锛岄�鍙峰垎鍓�+ /// 鐢熶骇杞︽暟,閫楀彿鍒嗗壊 /// </summary> public string S_CAR_CODE { set; get; } public string S_B_STATE { set; get; }//鐘舵� diff --git a/models/TN_CG_Detail.cs b/models/TN_CG_Detail.cs index 959c3a6..9993e0f 100644 --- a/models/TN_CG_Detail.cs +++ b/models/TN_CG_Detail.cs @@ -28,12 +28,12 @@ public string S_CNTR_CODE { get; set; } = string.Empty; /// <summary> - /// 璐у搧鐘舵�锛�鍚堟牸 1寰呮 2涓嶅悎鏍�3鎶芥涓紱涓嬬嚎鍗冲緟妫�+ /// 璐у搧鐘舵�:0鍚堟牸 1寰呮 2涓嶅悎鏍�3鎶芥涓�涓嬬嚎鍗冲緟妫� /// </summary> public string S_ITEM_STATE { get; set; } = "寰呮"; /// <summary> - /// 璐у搧鐘舵�锛�鍚堟牸 1寰呮 2涓嶅悎鏍�3姝e湪妫�獙锛涗笅绾垮嵆寰呮 + /// 璐у搧鐘舵�:0鍚堟牸 1寰呮 2涓嶅悎鏍�3姝e湪妫�獙;涓嬬嚎鍗冲緟妫� /// </summary> public int N_ITEM_STATE { get; set; } = 1; @@ -74,7 +74,7 @@ ///// <summary> ///// 浜х嚎鍙� ///// </summary> - //public int N_PRODUCT_LINE { get; set; } = 0; // NOTE 鍚庣画MES鍙兘浼氭彁渚涳紝鍏堝垱寤� + //public int N_PRODUCT_LINE { get; set; } = 0; // NOTE 鍚庣画MES鍙兘浼氭彁渚�鍏堝垱寤� // ---------------- diff --git a/models/TN_Container.cs b/models/TN_Container.cs index d39ed3d..2168a56 100644 --- a/models/TN_Container.cs +++ b/models/TN_Container.cs @@ -14,11 +14,11 @@ /// </summary> public string S_TYPE { get; set; } = string.Empty; /// <summary> - /// 瑙勬牸锛堢敤浜庤褰曞鍣ㄩ�鐢ㄧ殑鐗╂枡缂栧彿锛�+ /// 瑙勬牸 (鐢ㄤ簬璁板綍瀹瑰櫒閫傜敤鐨勭墿鏂欑紪鍙� /// </summary> public string S_SPEC { get; set; } = string.Empty; /// <summary> - /// 鏉ユ簮锛堣繖閲岃褰曚负鍒涘缓璇ュ鍣ㄧ殑涓讳綋锛歁obox鎴栧叿浣撶殑浠诲姟锛�+ /// 鏉ユ簮 (杩欓噷璁板綍涓哄垱寤鸿瀹瑰櫒鐨勪富浣�Mobox鎴栧叿浣撶殑浠诲姟) /// </summary> public string S_SOURCE { get; set; } = string.Empty; diff --git a/models/TN_Location.cs b/models/TN_Location.cs index 9141ff1..e9c844d 100644 --- a/models/TN_Location.cs +++ b/models/TN_Location.cs @@ -27,7 +27,7 @@ /// <summary> /// 鍥借嚜 AGV 瀵瑰簲鐨勫簱浣嶅悕绉� /// </summary> - public string S_AGV_SITE { get; set; } = ""; + public string S_AGV_SITE { get; set; } = "0"; /// <summary> /// 璐т綅瀹瑰櫒瀹归噺 @@ -65,22 +65,22 @@ // END /// <summary> - /// 涓婇攣鐘舵�鍙凤細0鏃�1鍏ュ簱閿�2鍑哄簱閿�3鍏跺畠閿�+ /// 涓婇攣鐘舵�鍙�0鏃�1鍏ュ簱閿�2鍑哄簱閿�3鍏跺畠閿� /// </summary> public int N_LOCK_STATE { get; set; } = 0; /// <summary> - /// 涓婇攣鐘舵�鍚嶇О锛�鏃�1鍏ュ簱閿�2鍑哄簱閿�3鍏跺畠閿�+ /// 涓婇攣鐘舵�鍚嶇О:0鏃�1鍏ュ簱閿�2鍑哄簱閿�3鍏跺畠閿� /// </summary> public string S_LOCK_STATE { get; set; } = "鏃�; /// <summary> - /// Lock Operator锛氫笂閿佺殑鎿嶄綔鏉ユ簮锛堥�甯告槸浠诲姟鍙凤級 + /// Lock Operator:涓婇攣鐨勬搷浣滄潵婧�(閫氬父鏄换鍔″彿) /// </summary> public string S_LOCK_OP { get; set; } = ""; /// <summary> - /// 璐т綅鏄惁鍚敤锛歒鍚敤 + /// 璐т綅鏄惁鍚敤:Y鍚敤 /// </summary> public string C_ENABLE { get; set; } = "Y"; @@ -88,7 +88,7 @@ /// 璐т綅-瀹瑰櫒 鍏崇郴鏄犲皠 /// </summary> /// <remarks> - /// 榛樿鏄竴瀵瑰锛岄�甯告儏鍐垫槸涓�涓�+ /// 榛樿鏄竴瀵瑰,閫氬父鎯呭喌鏄竴瀵逛竴 /// </remarks> [Navigate(NavigateType.OneToMany, nameof(TN_Loc_Container.S_LOC_CODE))] public List<TN_Loc_Container> LocCntrRels { get; set; } diff --git a/models/TN_Outbound_Detail.cs b/models/TN_Outbound_Detail.cs index aa1a7e1..90eff48 100644 --- a/models/TN_Outbound_Detail.cs +++ b/models/TN_Outbound_Detail.cs @@ -13,10 +13,10 @@ public string S_BS_TYPE { get; set; } = string.Empty; // ERP - public string S_BS_NO { get; set; } = string.Empty; // ERP 鍗曞彿锛堟潵婧愬崟鍙凤級 + public string S_BS_NO { get; set; } = string.Empty; // ERP 鍗曞彿 (鏉ユ簮鍗曞彿) /// <summary> - /// 涓氬姟鐘舵�锛�寰呮墽琛�1宸蹭笅鍙�2鎵ц涓�3宸插畬鎴�+ /// 涓氬姟鐘舵�:0寰呮墽琛�1宸蹭笅鍙�2鎵ц涓�3宸插畬鎴� /// </summary> public int N_B_STATE { get; set; } = 1; // 鍒涘缓鍗虫墽琛� @@ -33,12 +33,12 @@ public string S_BATCH_NO { get; set; } /// <summary> - /// 鍑哄簱璐у搧鏁伴噺锛堟暣鏁帮紝鐢ㄤ簬鐢熸垚浠诲姟鏁帮級 + /// 鍑哄簱璐у搧鏁伴噺 (鏁存暟,鐢ㄤ簬鐢熸垚浠诲姟鏁� /// </summary> public int N_COUNT { get; set; } /// <summary> - /// 缁堢偣搴撳尯锛堢敱WMS涓嬪彂浠诲姟鏃舵寚瀹氾級 + /// 缁堢偣搴撳尯 (鐢盬MS涓嬪彂浠诲姟鏃舵寚瀹� /// </summary> public string S_END_AREA { get; set; } diff --git a/models/TN_Outbound_Order.cs b/models/TN_Outbound_Order.cs index e40fb0e..87084e5 100644 --- a/models/TN_Outbound_Order.cs +++ b/models/TN_Outbound_Order.cs @@ -15,10 +15,10 @@ public string S_BS_TYPE { get; set; } = string.Empty; // ERP - public string S_BS_NO { get; set; } = string.Empty; // ERP 鍗曞彿锛堟潵婧愬崟鍙凤級 + public string S_BS_NO { get; set; } = string.Empty; // ERP 鍗曞彿 (鏉ユ簮鍗曞彿) /// <summary> - /// 涓氬姟鐘舵�锛�寰呮墽琛�1宸蹭笅鍙�2鎵ц涓�3宸插畬鎴�+ /// 涓氬姟鐘舵�:0寰呮墽琛�1宸蹭笅鍙�2鎵ц涓�3宸插畬鎴� /// </summary> public int N_B_STATE { get; set; } = 1; @@ -39,12 +39,12 @@ //public float F_OUT_QTY { get; set; } /// <summary> - /// 缁堢偣搴撳尯锛堢敱WMS涓嬪彂浠诲姟鏃舵寚瀹氾級 + /// 缁堢偣搴撳尯 (鐢盬MS涓嬪彂浠诲姟鏃舵寚瀹� /// </summary> public string S_END_AREA { get; set; } /// <summary> - /// 鏄惁寮哄埗鍑哄簱锛�涓嶅己鍒�1寮哄埗 + /// 鏄惁寮哄埗鍑哄簱:0涓嶅己鍒�1寮哄埗 /// </summary> public bool B_FORCE_OUT { get; set; } diff --git a/models/TN_Outbound_Plan.cs b/models/TN_Outbound_Plan.cs index f1ba861..945546b 100644 --- a/models/TN_Outbound_Plan.cs +++ b/models/TN_Outbound_Plan.cs @@ -13,7 +13,7 @@ [SugarTable("TN_Outbound_Plan")] public class TN_Outbound_Plan : BaseModel { /// <summary> - /// 璁″垝鍗曞彿锛堝敮涓�爣璇嗭級 + /// 璁″垝鍗曞彿 (鍞竴鏍囪瘑) /// </summary> public string JHDH { get; set; } diff --git a/models/TN_Record_Table.cs b/models/TN_Record_Table.cs index 2262000..32c4047 100644 --- a/models/TN_Record_Table.cs +++ b/models/TN_Record_Table.cs @@ -57,7 +57,7 @@ public int N_QTY { get; set; } = 0; /// <summary> - /// 璐т綅缂栫爜锛堝簱鍐呰揣浣嶏紝鍏ュ簱灏辨槸缁堢偣锛屽嚭搴撳氨鏄捣鐐癸級 + /// 璐т綅缂栫爜 (搴撳唴璐т綅,鍏ュ簱灏辨槸缁堢偣,鍑哄簱灏辨槸璧风偣) /// </summary> public string S_LOC_CODE { get; set; } diff --git a/models/TN_RelocationList_Detail.cs b/models/TN_RelocationList_Detail.cs index 98d7d8d..7f365a4 100644 --- a/models/TN_RelocationList_Detail.cs +++ b/models/TN_RelocationList_Detail.cs @@ -23,7 +23,7 @@ public string S_BATCH_NO { get; set; } public string S_END_AREA { get; set; } /// <summary> - /// 涓氬姟鐘舵�锛�绛夊緟鎵ц 1宸叉墽琛屽緟鐢熸垚浠诲姟 2浠诲姟鎵ц涓�3浠诲姟瀹屾垚 + /// 涓氬姟鐘舵�:0绛夊緟鎵ц 1宸叉墽琛屽緟鐢熸垚浠诲姟 2浠诲姟鎵ц涓�3浠诲姟瀹屾垚 /// </summary> public int N_B_STATE { get; set; } = 1; // 鍒涘缓鍗虫墽琛� } diff --git a/models/TN_Relocation_List.cs b/models/TN_Relocation_List.cs index abd4c43..076e995 100644 --- a/models/TN_Relocation_List.cs +++ b/models/TN_Relocation_List.cs @@ -19,7 +19,7 @@ //public int N_COUNT { get; set; } public string S_END_AREA { get; set; } /// <summary> - /// 涓氬姟鐘舵�锛�绛夊緟鎵ц 1宸叉墽琛屽緟鐢熸垚浠诲姟 2浠诲姟鎵ц涓�3浠诲姟瀹屾垚 + /// 涓氬姟鐘舵�:0绛夊緟鎵ц 1宸叉墽琛屽緟鐢熸垚浠诲姟 2浠诲姟鎵ц涓�3浠诲姟瀹屾垚 /// </summary> public int N_B_STATE { get; set; } = 0; // 鍒涘缓鍚庨渶瑕佺‘璁ゆ墽琛� } diff --git a/models/TN_SpotCheck_Detail.cs b/models/TN_SpotCheck_Detail.cs index 0765fc1..6a77e85 100644 --- a/models/TN_SpotCheck_Detail.cs +++ b/models/TN_SpotCheck_Detail.cs @@ -23,7 +23,7 @@ public string S_BATCH_NO { get; set; } public string S_END_AREA { get; set; } /// <summary> - /// 涓氬姟鐘舵�锛�绛夊緟鎵ц 1宸叉墽琛屽緟鐢熸垚浠诲姟 2浠诲姟鎵ц涓�3浠诲姟瀹屾垚 + /// 涓氬姟鐘舵�:0绛夊緟鎵ц 1宸叉墽琛屽緟鐢熸垚浠诲姟 2浠诲姟鎵ц涓�3浠诲姟瀹屾垚 /// </summary> public int N_B_STATE { get; set; } = 1; // 鍒涘缓鍗虫墽琛� } diff --git a/models/TN_Spot_Check.cs b/models/TN_Spot_Check.cs index 9c3302e..9eb21e8 100644 --- a/models/TN_Spot_Check.cs +++ b/models/TN_Spot_Check.cs @@ -19,7 +19,7 @@ //public int N_COUNT { get; set; } public string S_END_AREA { get; set; } /// <summary> - /// 涓氬姟鐘舵�锛�绛夊緟鎵ц 1宸叉墽琛屽緟鐢熸垚浠诲姟 2浠诲姟鎵ц涓�3浠诲姟瀹屾垚 + /// 涓氬姟鐘舵�:0绛夊緟鎵ц 1宸叉墽琛屽緟鐢熸垚浠诲姟 2浠诲姟鎵ц涓�3浠诲姟瀹屾垚 /// </summary> public int N_B_STATE { get; set; } = 0; // 鍒涘缓鍚庨渶瑕佺‘璁ゆ墽琛� } diff --git a/models/TN_Task.cs b/models/TN_Task.cs index bb533c2..540fce1 100644 --- a/models/TN_Task.cs +++ b/models/TN_Task.cs @@ -55,12 +55,12 @@ public string S_EQ_NO { get; set; } /// <summary> - /// 浠诲姟鐘舵�锛�绛夊緟 1宸叉帹閫�2鎵ц 3瀹屾垚 4閿欒 + /// 浠诲姟鐘舵�:0绛夊緟 1宸叉帹閫�2鎵ц 3瀹屾垚 4閿欒 /// </summary> public string S_B_STATE { get; set; } = "绛夊緟"; /// <summary> - /// 浠诲姟鐘舵�锛�绛夊緟 1宸叉帹閫�2鎵ц 3瀹屾垚 4閿欒 + /// 浠诲姟鐘舵�:0绛夊緟 1宸叉帹閫�2鎵ц 3瀹屾垚 4閿欒 /// </summary> public int N_B_STATE { get; set; } @@ -92,7 +92,7 @@ public string S_BS_TYPE { get; set; } = string.Empty; ///// <summary> - ///// 鏄惁寮哄埗鍑哄簱锛�涓嶅己鍒�1寮哄埗 + ///// 鏄惁寮哄埗鍑哄簱:0涓嶅己鍒�1寮哄埗 ///// </summary> //public int N_FORCE { get; set; } = 0; diff --git a/process/DeviceProcess.cs b/process/DeviceProcess.cs index 0aac18c..dfce112 100644 --- a/process/DeviceProcess.cs +++ b/process/DeviceProcess.cs @@ -9,7 +9,7 @@ namespace HH.WCS.Mobox3.DSZSH.process { /// <summary> - /// 璁惧淇″彿澶勭悊锛屼富瑕佹槸tcp淇″彿锛屾垜浠仛server琚姩鎺ユ敹淇″彿鏉ュ鐞嗭紝鏍规嵁椤圭洰瀹氬埗鐨�+ /// 璁惧淇″彿澶勭悊,涓昏鏄痶cp淇″彿,鎴戜滑鍋歴erver琚姩鎺ユ敹淇″彿鏉ュ鐞�鏍规嵁椤圭洰瀹氬埗鐨� /// </summary> internal class DeviceProcess { diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs index adca1cd..4151c3f 100644 --- a/process/TaskProcess.cs +++ b/process/TaskProcess.cs @@ -14,32 +14,32 @@ #region 浠诲姟鐩稿叧 //--------------------------------------------------浠诲姟鐩稿叧-------------------------------------------------- /// <summary> - /// 鍙栬揣鍗歌揣瀹屾垚锛岀紦瀛樹綅鐘舵�鏇存柊 + /// 鍙栬揣鍗歌揣瀹屾垚,缂撳瓨浣嶇姸鎬佹洿鏂� /// </summary> /// <param name="mst"></param> /// <param name="load"></param> internal static void BufferLocUpdate(TN_Task mst, bool load) { //var trayCarryCount = mst.N_CNTR_COUNT > 0 ? mst.N_CNTR_COUNT : 1; if (load) { - Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚锛岃捣鐐硅В缁戝鍣▄mst.S_CNTR_CODE}"); - LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚锛岃捣鐐硅В缁戝鍣▄mst.S_CNTR_CODE}"); + Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚,璧风偣瑙g粦瀹瑰櫒{mst.S_CNTR_CODE}"); + LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_START_LOC}鍙栬揣瀹屾垚,璧风偣瑙g粦瀹瑰櫒{mst.S_CNTR_CODE}"); LocationHelper.UnbindLocCntr(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList()); } else { - Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚锛岀粓鐐圭粦瀹氬鍣▄mst.S_CNTR_CODE}"); - LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚锛岀粓鐐圭粦瀹氬鍣▄mst.S_CNTR_CODE}"); + Console.WriteLine($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚,缁堢偣缁戝畾瀹瑰櫒{mst.S_CNTR_CODE}"); + LogHelper.Info($"浠诲姟{mst.S_CODE} 璐т綅{mst.S_END_LOC}鍗歌揣瀹屾垚,缁堢偣缁戝畾瀹瑰櫒{mst.S_CNTR_CODE}"); LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList()); } } /// <summary> - /// 浠诲姟鍙栨秷锛岀紦瀛樹綅鐘舵�鏇存柊 + /// 浠诲姟鍙栨秷,缂撳瓨浣嶇姸鎬佹洿鏂� /// </summary> /// <param name="mst"></param> internal static void BufferLocCancelUpdate(TN_Task mst) { - //浠诲姟鍙栨秷锛屽彇璐у畬鎴愬墠鐨勶紝璧风偣鐨刲oadingCount鍜岀粓鐐箄nLoadingCount閮芥竻闄わ紝鍙栬揣瀹屾垚鐨勫彧澶勭悊缁堢偣 + //浠诲姟鍙栨秷,鍙栬揣瀹屾垚鍓嶇殑,璧风偣鐨刲oadingCount鍜岀粓鐐箄nLoadingCount閮芥竻闄�鍙栬揣瀹屾垚鐨勫彧澶勭悊缁堢偣 if (WCSHelper.CheckActionRecordExist(mst.S_CODE, 4)) { - //鏍规嵁瀹㈡埛鐜板満瑕佹眰锛屽鏋滃彇璐у畬鎴愪换鍔″け璐ヤ汉宸ユ媺鍒扮粓鐐癸紝鎴戜滑灏卞綋鍗歌揣瀹屾垚澶勭悊锛涘鏋滄槸浜哄伐鎷夎蛋鍒板叾瀹冨尯鍩燂紝鎴戜滑灏辫В閿佺粓鐐癸紝鍒犻櫎鎵樼洏銆�+ //鏍规嵁瀹㈡埛鐜板満瑕佹眰,濡傛灉鍙栬揣瀹屾垚浠诲姟澶辫触浜哄伐鎷夊埌缁堢偣,鎴戜滑灏卞綋鍗歌揣瀹屾垚澶勭悊;濡傛灉鏄汉宸ユ媺璧板埌鍏跺畠鍖哄煙,鎴戜滑灏辫В閿佺粓鐐�鍒犻櫎鎵樼洏銆� //缁堢偣缁戝畾 BufferLocUpdate(mst, false); LocationHelper.UnLockLoc(mst.S_END_LOC); @@ -81,11 +81,11 @@ /// <param name="extData"></param> internal static void OperateReq(string no, int state, string forkliftNo, string extData = "") { if (state == 1101) { - //璇锋眰鍙栬揣锛�+ //璇锋眰鍙栬揣, } if (state == 1102) { - //璇锋眰鍗歌揣锛�- //鏍规嵁缁堢偣鍒ゆ柇锛屾槸cb02鐨勫叆鍙o紝鍒ゆ柇鍐呭瓨涓姸鎬侊紙瑕佺姸鎬佹椂闂达級锛屽厑璁稿嵏璐э紝閫氱煡agv鏀瑰弬鏁�+ //璇锋眰鍗歌揣, + //鏍规嵁缁堢偣鍒ゆ柇,鏄痗b02鐨勫叆鍙�鍒ゆ柇鍐呭瓨涓姸鎬�(瑕佺姸鎬佹椂闂� ,鍏佽鍗歌揣,閫氱煡agv鏀瑰弬鏁� var dic = new Dictionary<string, string>(); //< Req >< Order No = 'TN2302020002' ParamNo = '18' Param1 = '12' /></ Req > dic.Add("No", no); @@ -95,7 +95,7 @@ //鏀瑰畬鍙傛暟杞﹀瓙灏变細鑷繁鍗歌揣 } if (state == 1103) { - //澶ч搧妗嗗弶璧颁互鍚庨�鐭ワ紝鎴戜滑瑕侀�鐭ヨ緭閫佺嚎 + //澶ч搧妗嗗弶璧颁互鍚庨�鐭�鎴戜滑瑕侀�鐭ヨ緭閫佺嚎 } } @@ -109,7 +109,7 @@ internal static bool SendTask(TN_Task mst) { var result = false; switch (mst.N_SCHEDULE_TYPE) { - case 1: //閫氳繃NDC锛宧osttoagv璋冨害璁惧 + case 1: //閫氳繃NDC,hosttoagv璋冨害璁惧 return SendNDCTask(mst); case 5: //閫氳繃鏉ゥ璋冨害璁惧 return SendHanAoTask(mst); @@ -127,8 +127,8 @@ if (mst.N_B_STATE == 0) { start = LocationHelper.GetAgvSite(mst.S_START_LOC); end = LocationHelper.GetAgvSite(mst.S_END_LOC); + LogHelper.Info($"NDC鎺ㄩ�浠诲姟:{mst.S_CODE};start='{start}',end='{end}'"); - LogHelper.Info($"NDC鎺ㄩ�浠诲姟 {mst.S_CODE};" + "start=" + start + "end= " + end); var startLoc = LocationHelper.GetLoc(mst.S_START_LOC); var endLoc = LocationHelper.GetLoc(mst.S_END_LOC); var dic = new List<param>(); @@ -136,20 +136,19 @@ dic.Add(new param() { name = "From", value = start.ToString() }); dic.Add(new param() { name = "To", value = end.ToString() }); dic.Add(new param() { name = "FUNC", value = startLoc.N_LAYER.ToString() }); - dic.Add(new param() { name = "Ctype", value = "0" }); var res = NDCApi.AddOrderNew(1, 1, mst.S_CODE, dic);//娣诲姞鏂板懡浠� if (res != null && (res.err_code == 0 || res.err_code == 50009)) { - //鎺ㄩ�鎴愬姛锛屼慨鏀逛换鍔′紭鍏堢骇 + //鎺ㄩ�鎴愬姛,淇敼浠诲姟浼樺厛绾� mst.N_B_STATE = 1; mst.S_B_STATE = TN_Task.GetStateStr(1); WCSHelper.UpdateStatus(mst);//鏇存柊浠诲姟鐘舵� result = true; - LogHelper.Info($"NDC鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE}start= {mst.S_START_LOC} + end = {mst.S_END_LOC}"); + LogHelper.Info($"NDC鎺ㄩ�浠诲姟鎴愬姛:{mst.S_CODE};start='{mst.S_START_LOC}',end='{mst.S_END_LOC}'"); } else { - LogHelper.Info($"NDC鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};Res:" + JsonConvert.SerializeObject(res)); + LogHelper.Info($"NDC鎺ㄩ�浠诲姟澶辫触:{mst.S_CODE};Res:" + JsonConvert.SerializeObject(res)); } } return result; diff --git a/swagger.js b/swagger.js index aec2e15..54ad61a 100644 --- a/swagger.js +++ b/swagger.js @@ -48,7 +48,7 @@ dataType: "json", success: function(data) { var modelDesc = data.ModelDesc; - // 在模型展示区域添加描述 + // 鍦ㄦā鍨嬪睍绀哄尯鍩熸坊鍔犳弿杩� $(".model-box").each(function() { var modelName = $(this).find(".model-title").text(); if (modelDesc[modelName]) { @@ -75,54 +75,54 @@ /* jshint quotmark: float */ window.SwaggerTranslator.learn({ - "Warning: Deprecated": "警告:已过时", - "Implementation Notes": "实现备注", - "Response Class": "响应类", - "Status": "状态", - "Parameters": "参数", - "Parameter": "参数", - "Value": "值", - "Description": "描述", - "Parameter Type": "参数类型", - "Data Type": "数据类型", - "Response Messages": "响应消息", - "HTTP Status Code": "HTTP 状态码", - "Reason": "原因", - "Response Model": "响应模型", - "Request URL": "请求 URL", - "Response Body": "响应体", - "Response Code": "响应码", - "Response Headers": "响应头", - "Hide Response": "隐藏响应", - "Headers": "头", - "Try it out!": "试一下!", - "Show/Hide": "显示/隐藏", - "List Operations": "显示操作", - "Expand Operations": "展开操作", - "Raw": "原始", - "can't parse JSON. Raw result": "无法解析 JSON。原始结果", - "Model Schema": "模型架构", - "Model": "模型", - "apply": "应用", - "Username": "用户名", - "Password": "密码", - "Terms of service": "服务条款", - "Created by": "创建者", - "See more at": "查看更多:", - "Contact the developer": "联系开发者", - "api version": "api 版本", - "Response Content Type": "响应 Content Type", - "fetching resource": "正在获取资源", - "fetching resource list": "正在获取资源列表", - "Explore": "浏览", - "Show Swagger Petstore Example Apis": "显示 Swagger Petstore 示例 Apis", - "Can't read from server. It may not have the appropriate access-control-origin settings.": "无法从服务器读取。可能没有正确设置 access-control-origin。", - "Please specify the protocol for": "请指定协议:", - "Can't read swagger JSON from": "无法读取 swagger JSON于", - "Finished Loading Resource Information. Rendering Swagger UI": "已加载资源信息。正在渲染 Swagger UI", - "Unable to read api": "无法读取 api", - "from path": "从路径", - "server returned": "服务器返回" + "Warning: Deprecated": "璀﹀憡:宸茶繃鏃�, + "Implementation Notes": "瀹炵幇澶囨敞", + "Response Class": "鍝嶅簲绫�, + "Status": "鐘舵�", + "Parameters": "鍙傛暟", + "Parameter": "鍙傛暟", + "Value": "鍊�, + "Description": "鎻忚堪", + "Parameter Type": "鍙傛暟绫诲瀷", + "Data Type": "鏁版嵁绫诲瀷", + "Response Messages": "鍝嶅簲娑堟伅", + "HTTP Status Code": "HTTP 鐘舵�鐮�, + "Reason": "鍘熷洜", + "Response Model": "鍝嶅簲妯″瀷", + "Request URL": "璇锋眰 URL", + "Response Body": "鍝嶅簲浣�, + "Response Code": "鍝嶅簲鐮�, + "Response Headers": "鍝嶅簲澶�, + "Hide Response": "闅愯棌鍝嶅簲", + "Headers": "澶�, + "Try it out!": "璇曚竴涓�", + "Show/Hide": "鏄剧ず/闅愯棌", + "List Operations": "鏄剧ず鎿嶄綔", + "Expand Operations": "灞曞紑鎿嶄綔", + "Raw": "鍘熷", + "can't parse JSON. Raw result": "鏃犳硶瑙f瀽 JSON銆傚師濮嬬粨鏋�, + "Model Schema": "妯″瀷鏋舵瀯", + "Model": "妯″瀷", + "apply": "搴旂敤", + "Username": "鐢ㄦ埛鍚�, + "Password": "瀵嗙爜", + "Terms of service": "鏈嶅姟鏉℃", + "Created by": "鍒涘缓鑰�, + "See more at": "鏌ョ湅鏇村:", + "Contact the developer": "鑱旂郴寮�彂鑰�, + "api version": "api 鐗堟湰", + "Response Content Type": "鍝嶅簲 Content Type", + "fetching resource": "姝e湪鑾峰彇璧勬簮", + "fetching resource list": "姝e湪鑾峰彇璧勬簮鍒楄〃", + "Explore": "娴忚", + "Show Swagger Petstore Example Apis": "鏄剧ず Swagger Petstore 绀轰緥 Apis", + "Can't read from server. It may not have the appropriate access-control-origin settings.": "鏃犳硶浠庢湇鍔″櫒璇诲彇銆傚彲鑳芥病鏈夋纭缃�access-control-origin銆�, + "Please specify the protocol for": "璇锋寚瀹氬崗璁�", + "Can't read swagger JSON from": "鏃犳硶璇诲彇 swagger JSON浜�, + "Finished Loading Resource Information. Rendering Swagger UI": "宸插姞杞借祫婧愪俊鎭�姝e湪娓叉煋 Swagger UI", + "Unable to read api": "鏃犳硶璇诲彇 api", + "from path": "浠庤矾寰�, + "server returned": "鏈嶅姟鍣ㄨ繑鍥� }); $(function () { diff --git a/util/HttpHelper.cs b/util/HttpHelper.cs index 44c3df4..6efe80a 100644 --- a/util/HttpHelper.cs +++ b/util/HttpHelper.cs @@ -9,7 +9,7 @@ public class HttpHelper { public string WebPost(string url, string postData, string cotentType = "application/json") { - Console.WriteLine(url); + LogHelper.Info($"WebPost:璁块棶:{url}", "API"); WebRequest request = WebRequest.Create(url); request.Method = "POST"; //string postData = JsonConvert.SerializeObject(data); ; @@ -35,7 +35,7 @@ } catch (Exception e) { - LogHelper.Info($"WebPost res={e.Message}", "API"); + LogHelper.Info($"WebPost:寮傚父:{e.Message}\n\n{e.StackTrace}\n", "API"); return ""; } finally diff --git a/util/LogHelper.cs b/util/LogHelper.cs index 7621d26..b13aff4 100644 --- a/util/LogHelper.cs +++ b/util/LogHelper.cs @@ -1,6 +1,7 @@ 锘縰sing System; using System.Collections.Generic; using System.Linq; +using System.Xml.Linq; using Newtonsoft.Json; @@ -71,16 +72,20 @@ } #region 鑷畾涔夋柟娉�- public static void InfoEx(Exception ex) { - Info($"鍙戠敓浜嗗紓甯革細{ex.Message}\n{ex.StackTrace}"); + public static void Warn(string msg, string preLog = "") { + Info(preLog + $"鍑虹幇浜哰璀﹀憡]:{msg}", "Warn"); + } + + public static void InfoEx(Exception ex, string preLog = "") { + Info(preLog + $"鍙戠敓浜哰寮傚父]:{ex.Message}\n\n{ex.StackTrace}\n", "Exception"); } public static void InfoApi(string apiName, object model) { - Info($"瑙﹀彂API锛歿apiName} " + JsonConvert.SerializeObject(model), "API"); + Info($"瑙﹀彂API:{apiName} " + JsonConvert.SerializeObject(model), "API"); } public static void InfoHostToAGV(string taskName, object model) { - Info($"AGV浠诲姟锛歿taskName}" + JsonConvert.SerializeObject(model), "HosttoagvTask"); + Info($"AGV浠诲姟:{taskName}" + JsonConvert.SerializeObject(model), "HosttoagvTask"); } #endregion } @@ -91,7 +96,7 @@ /// 閫氳繃閰嶇疆鏂囦欢閰嶇疆鏃ュ織 /// </summary> static LogFactory() { - var loggerNames = new List<string>() { "HosttoagvTask", "HosttoagvCar", "NDC", "鏉ゥ", "PLC", "API", "OPC" }; + var loggerNames = new List<string>() { "HosttoagvTask", "HosttoagvCar", "NDC", "鏉ゥ", "PLC", "API", "OPC", "Warn", "Exception" }; LogManager.Configuration = DefaultConfig(loggerNames); } diff --git a/util/SqlHelper.cs b/util/SqlHelper.cs index f8327ed..e59332d 100644 --- a/util/SqlHelper.cs +++ b/util/SqlHelper.cs @@ -6,7 +6,7 @@ namespace HH.WCS.Mobox3.DSZSH.util { //https://www.donet5.com/Home/Doc public class SqlHelper<T> where T : class, new() { - // NOTE锛氬鏋滅敤Oracle鏁版嵁搴擄紝闇�鍖匫racle.ManagedDataAccess/21.15.0锛岀幆澧僴etframework 4.6.2锛堝お鏂颁簡4.8鏈夌殑鏈嶅姟鍣ㄥ畨瑁呬笉涓婂幓锛�+ // NOTE:濡傛灉鐢∣racle鏁版嵁搴�闇�鍖匫racle.ManagedDataAccess/21.15.0,鐜netframework 4.6.2 (澶柊浜�.8鏈夌殑鏈嶅姟鍣ㄥ畨瑁呬笉涓婂幓) public SqlSugarClient GetInstance(string url = "") { //鍒涘缓鏁版嵁搴撳璞�@@ -54,7 +54,7 @@ }); }; - //鎹浆鎹�(ExecuteCommand鎵嶄細鎷︽埅锛屾煡璇笉琛� + //鎹浆鎹�(ExecuteCommand鎵嶄細鎷︽埅,鏌ヨ涓嶈) //db.Aop.DataExecuting = (value, entity) => { // //var val=entity.EntityColumnInfo // Console.WriteLine(entity.EntityName); diff --git a/wms/LocationHelper.cs b/wms/LocationHelper.cs index 3ab86d1..fc9bf9f 100644 --- a/wms/LocationHelper.cs +++ b/wms/LocationHelper.cs @@ -11,7 +11,7 @@ namespace HH.WCS.Mobox3.DSZSH.wms { /// <summary> - /// 璐т綅甯姪绫伙紙鍖呭惈璐т綅-瀹瑰櫒鍏崇郴鐨勫鐞嗭級 + /// 璐т綅甯姪绫�(鍖呭惈璐т綅-瀹瑰櫒鍏崇郴鐨勫鐞� /// </summary> public class LocationHelper { @@ -111,7 +111,7 @@ } /// <summary> - /// 鍙栬揣瀹岃В閿佽捣鐐癸紝鍗歌揣瀹岃В閿佺粓鐐癸紝鍙楠岄攣鐨勬潵婧愶紝涔熷彲浠ヤ笉鏍¢獙 + /// 鍙栬揣瀹岃В閿佽捣鐐�鍗歌揣瀹岃В閿佺粓鐐�鍙楠岄攣鐨勬潵婧�涔熷彲浠ヤ笉鏍¢獙 /// </summary> /// <param name="loc"></param> /// <returns></returns> @@ -146,12 +146,12 @@ public static string UnbindLocCntr(string loc, List<string> cntrs) { var db = new SqlHelper<object>().GetInstance(); - var logs = $"璐т綅锛歿loc}锛屽鍣細{JsonConvert.SerializeObject(cntrs)}"; + var logs = $"璐т綅:{loc},瀹瑰櫒:{JsonConvert.SerializeObject(cntrs)}"; try { var lcrList = db.Queryable<TN_Loc_Container>().Where(a => cntrs.Contains(a.S_CNTR_CODE) && a.S_LOC_CODE == loc).ToList(); if (lcrList.Count == 0) { - LogHelper.Info($"璐т綅鏃犻渶瑙g粦瀹瑰櫒锛屽湪鏁版嵁搴撲腑鏈壘鍒皗JsonConvert.SerializeObject(cntrs)}鐩稿叧鐨勮揣浣嶅鍣ㄥ叧绯昏〃淇℃伅"); + LogHelper.Info($"璐т綅鏃犻渶瑙g粦瀹瑰櫒,鍦ㄦ暟鎹簱涓湭鎵惧埌{JsonConvert.SerializeObject(cntrs)}鐩稿叧鐨勮揣浣嶅鍣ㄥ叧绯昏〃淇℃伅"); } cntrs = lcrList.Select(a => a.S_CNTR_CODE).ToList(); @@ -167,42 +167,42 @@ { if (db.Deleteable<TN_Loc_Container>().Where(it => cntrs.Contains(it.S_CNTR_CODE) && it.S_LOC_CODE == loc).ExecuteCommand() > 0) { - LogHelper.Info($"鍒犻櫎璐т綅瀹瑰櫒鍏崇郴琛ㄦ垚鍔燂紝{log}"); + LogHelper.Info($"鍒犻櫎璐т綅瀹瑰櫒鍏崇郴琛ㄦ垚鍔�{log}"); } else { tran.RollbackTran(); - LogHelper.Info($"鍒犻櫎璐т綅瀹瑰櫒鍏崇郴琛ㄥけ璐ワ紝{log}"); + LogHelper.Info($"鍒犻櫎璐т綅瀹瑰櫒鍏崇郴琛ㄥけ璐�{log}"); - return "璐т綅瑙g粦瀹瑰櫒澶辫触锛� + logs; + return "璐т綅瑙g粦瀹瑰櫒澶辫触," + logs; } log = JsonConvert.SerializeObject(location); if (db.Updateable(location).UpdateColumns(it => new { it.N_CURRENT_NUM, it.S_LOCK_STATE, it.N_LOCK_STATE }).ExecuteCommand() > 0) { tran.CommitTran(); - LogHelper.Info($"鏇存柊璐т綅琛ㄦ垚鍔燂紝{log}"); + LogHelper.Info($"鏇存柊璐т綅琛ㄦ垚鍔�{log}"); } else { tran.RollbackTran(); - LogHelper.Info($"鏇存柊璐т綅琛ㄥけ璐ワ紝{log}"); + LogHelper.Info($"鏇存柊璐т綅琛ㄥけ璐�{log}"); - return "璐т綅瑙g粦瀹瑰櫒澶辫触锛� + logs; + return "璐т綅瑙g粦瀹瑰櫒澶辫触," + logs; } } } else { - LogHelper.Info($"鍦ㄦ暟鎹簱涓湭鎵惧埌璇ヨ揣浣嶏紝鏃犻渶鏇存柊锛岃揣浣嶏細{loc}"); + LogHelper.Info($"鍦ㄦ暟鎹簱涓湭鎵惧埌璇ヨ揣浣�鏃犻渶鏇存柊,璐т綅:{loc}"); } - return "璐т綅瑙g粦瀹瑰櫒鎴愬姛锛� + logs; + return "璐т綅瑙g粦瀹瑰櫒鎴愬姛," + logs; } catch (Exception ex) { - LogHelper.Info($"鍙戠敓浜嗗紓甯革紝璐т綅瑙g粦瀹瑰櫒澶辫触锛寋ex.Message}"); - return "璐т綅缁戝畾瀹瑰櫒澶辫触锛� + logs; + LogHelper.Info($"鍙戠敓浜嗗紓甯�璐т綅瑙g粦瀹瑰櫒澶辫触,{ex.Message}"); + return "璐т綅缁戝畾瀹瑰櫒澶辫触," + logs; } } @@ -215,7 +215,7 @@ public static string BindingLoc(string loc, List<string> cntrs) { var db = new SqlHelper<object>().GetInstance(); - var logs = $"璐т綅锛歿loc}锛屽鍣細{JsonConvert.SerializeObject(cntrs)}"; + var logs = $"璐т綅:{loc},瀹瑰櫒:{JsonConvert.SerializeObject(cntrs)}"; try { // 鍒犻櫎宸茬粡缁戝畾杩囩殑瀹瑰櫒璁板綍 @@ -230,7 +230,7 @@ var cntr = db.Queryable<TN_Container>().Where(c => c.S_CODE == item).First(); if (cntr == null) { - LogHelper.Info($"璐т綅瑙g粦鏃讹紝瀹瑰櫒{item}娌℃湁鍦ㄥ鍣ㄤ俊鎭〃涓煡鍒帮紝涓嶈褰曞鍣ㄧ被鍨�); + LogHelper.Info($"璐т綅瑙g粦鏃�瀹瑰櫒{item}娌℃湁鍦ㄥ鍣ㄤ俊鎭〃涓煡鍒�涓嶈褰曞鍣ㄧ被鍨�); bindLocCntList.Add(new TN_Loc_Container() { S_LOC_CODE = loc, S_CNTR_CODE = item }); } else { @@ -244,10 +244,10 @@ { if (db.Insertable(bindLocCntList).ExecuteCommand() <= 0) { db.RollbackTran(); - LogHelper.Info($"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄥけ璐ワ紝{log}"); - return "璐т綅缁戝畾瀹瑰櫒澶辫触锛� + logs; + LogHelper.Info($"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄥけ璐�{log}"); + return "璐т綅缁戝畾瀹瑰櫒澶辫触," + logs; } - LogHelper.Info($"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄦ垚鍔燂紝{log}"); + LogHelper.Info($"鎻掑叆璐т綅瀹瑰櫒鍏崇郴琛ㄦ垚鍔�{log}"); var location = db.Queryable<TN_Location>().First(a => a.S_CODE == loc); if (location != null) @@ -261,29 +261,29 @@ { db.CommitTran(); - LogHelper.Info($"鏇存柊璐т綅琛ㄦ垚鍔燂紝{log}"); + LogHelper.Info($"鏇存柊璐т綅琛ㄦ垚鍔�{log}"); } else { db.RollbackTran(); - LogHelper.Info($"鏇存柊璐т綅琛ㄥけ璐ワ紝{log}"); + LogHelper.Info($"鏇存柊璐т綅琛ㄥけ璐�{log}"); - return "璐т綅缁戝畾瀹瑰櫒澶辫触锛� + logs; + return "璐т綅缁戝畾瀹瑰櫒澶辫触," + logs; } } else { db.RollbackTran(); - LogHelper.Info($"鏈壘鍒拌璐т綅{loc}锛屾垨鑰呭凡閿佸畾锛寋log}"); + LogHelper.Info($"鏈壘鍒拌璐т綅{loc},鎴栬�宸查攣瀹�{log}"); } } - return "璐т綅缁戝畾瀹瑰櫒鎴愬姛锛� + logs; + return "璐т綅缁戝畾瀹瑰櫒鎴愬姛," + logs; } catch (Exception ex) { - LogHelper.Info($"鍙戠敓浜嗗紓甯革紝璐т綅缁戝畾瀹瑰櫒澶辫触锛�); - return "璐т綅缁戝畾瀹瑰櫒澶辫触锛� + ex.Message; + LogHelper.Info($"鍙戠敓浜嗗紓甯�璐т綅缁戝畾瀹瑰櫒澶辫触,"); + return "璐т綅缁戝畾瀹瑰櫒澶辫触," + ex.Message; } } } diff --git a/wms/WCSHelper.cs b/wms/WCSHelper.cs index 06549ea..d145c3a 100644 --- a/wms/WCSHelper.cs +++ b/wms/WCSHelper.cs @@ -53,11 +53,96 @@ } /// <summary> - /// 璧风偣鍑哄簱閿侊紙寮哄埗璧嬪�锛屼笉浼氭鏌oc!=null锛岄攣鐘舵�=鏃狅紝闇�浼犲弬鍓嶇‘璁わ級 + /// ![[寮冪敤|鐞嗙敱:涓嶇伒娲�娑夊強涓氬姟杩囦簬鍏蜂綋]]妫�煡瀹瑰櫒绫诲瀷鏄惁姝g‘ + /// </summary> + /// <param name="cntrCode"></param> + /// <param name="cntrType"></param> + /// <param name="errMsg"></param> + /// <returns></returns> + private static bool CheckCntrType(string cntrCode, string cntrType, out string errMsg) { + var db = new SqlHelper<object>().GetInstance(); + errMsg = string.Empty; + + var cntr = db.Queryable<TN_Container>().Where(c => c.S_CODE == cntrType).First(); + if (cntr == null) { + errMsg = $"瀹瑰櫒'{cntrCode}'鍦╗瀹瑰櫒琛╙涓笉瀛樺湪,璇峰湪鍓嶅彴椤甸潰涓淮鎶�"; + return false; + } + if (cntr.S_TYPE != cntrType) { + errMsg = $"瀹瑰櫒'{cntrCode}'鍦╗瀹瑰櫒琛╙涓殑绫诲瀷鏄�{cntr.S_TYPE},涓嶆槸'{cntrType}'!"; + return false; + } + + return true; + } + + /// <summary> + /// 鏍规嵁瀹瑰櫒鍙�鏌ヨ褰撳墠瀹瑰櫒鍏宠仈鐨刐璐т綅/瀹瑰櫒/鐗╂枡]淇℃伅(鍙煡璇�鏉� + /// </summary> + /// <param name="cntrCode">瀹瑰櫒鍙�/param> + /// <param name="skipCgDetail">鏄惁璺宠繃[鐗╂枡琛╙鐨勬煡璇�褰撳鍣ㄥ彿鏉ヨ嚜[鐗╂枡琛╙鏃�</param> + /// <returns></returns> + public static LocCntrCg GetLocCntrCg(string cntrCode, bool skipCgDetail = false) { + var db = new SqlHelper<object>().GetInstance(); + + TN_CG_Detail cgDetail = null; + if (!skipCgDetail) { + cgDetail = db.Queryable<TN_CG_Detail>().Where(d => d.S_CNTR_CODE == cntrCode).First(); + } + + var locCntrRel = db.Queryable<TN_Loc_Container>().Where(c => c.S_CNTR_CODE == cntrCode).First(); + + TN_Location location = null; + if (locCntrRel != null) { + location = db.Queryable<TN_Location>().Where(l => l.S_CODE == locCntrRel.S_LOC_CODE).First(); + if (location == null) { + LogHelper.Warn($""); + } + } + if (location != null) { + location.N_CURRENT_NUM = 0; + location.T_MODIFY = DateTime.Now; + } + + return new LocCntrCg { + CgDetail = cgDetail, + LocCntrRel = locCntrRel, + Location = location + }; + } + + /// <summary> + /// 缁戝畾[璐т綅-瀹瑰櫒]淇℃伅 + /// </summary> + /// <param name="startLoc"></param> + /// <param name="cntrCode"></param> + /// <returns></returns> + public static TN_Loc_Container BindLocCntr(ref TN_Location startLoc, string cntrCode) { + var locCntrRel = new TN_Loc_Container { + S_LOC_CODE = startLoc.S_CODE, + S_CNTR_CODE = cntrCode, + }; + + startLoc.N_CURRENT_NUM = 1; + startLoc.T_MODIFY = DateTime.Now; + + return locCntrRel; + } + + /// <summary> + /// 璧风偣鍑哄簱閿� /// </summary> /// <param name="loc"></param> /// <param name="lockSource"></param> public static void LockStartLoc(ref TN_Location loc, string lockSource = "") { + if (loc == null) { + throw new ArgumentNullException(); // 鎺ュ彈璐т綅loc涓虹┖鏃剁洿鎺ユ姏寮傚父(閫氬父涓嶄細鍙戠敓) + } + + if (loc.N_LOCK_STATE != 0 || loc.S_LOCK_STATE != "鏃�) { + LogHelper.Warn($"璧风偣鍑哄簱閿�绋嬪簭姝e湪灏濊瘯缁欏綋鍓峓閿佺姸鎬乚涓嶆槸'鏃�鐨勮揣浣嶄笂閿�璐т綅='{loc.S_CODE}',閿佺姸鎬�({loc.N_LOCK_STATE},{loc.S_LOCK_STATE})"); + } + loc.N_LOCK_STATE = 2; // 璧风偣鍑哄簱閿� loc.S_LOCK_STATE = TN_Location.GetLockStateStr(2); // 璧风偣鍑哄簱閿� loc.S_LOCK_OP = lockSource; @@ -65,17 +150,35 @@ } /// <summary> - /// 缁堢偣鍏ュ簱閿侊紙寮哄埗璧嬪�锛屼笉浼氭鏌oc!=null锛岄攣鐘舵�=鏃狅紝闇�浼犲弬鍓嶇‘璁わ級 + /// 缁堢偣鍏ュ簱閿� /// </summary> /// <param name="loc"></param> /// <param name="lockSource"></param> public static void LockEndLoc(ref TN_Location loc, string lockSource = "") { + if (loc == null) { + throw new ArgumentNullException(); // 鎺ュ彈璐т綅loc涓虹┖鏃剁洿鎺ユ姏寮傚父(閫氬父涓嶄細鍙戠敓) + } + + if (loc.N_LOCK_STATE != 0 || loc.S_LOCK_STATE != "鏃�) { + LogHelper.Warn($"璧风偣鍑哄簱閿�绋嬪簭姝e湪灏濊瘯缁欏綋鍓峓閿佺姸鎬乚涓嶆槸'鏃�鐨勮揣浣嶄笂閿�璐т綅='{loc.S_CODE}',閿佺姸鎬�({loc.N_LOCK_STATE},{loc.S_LOCK_STATE})"); + } + loc.N_LOCK_STATE = 1; // 缁堢偣鍑哄簱閿� loc.S_LOCK_STATE = TN_Location.GetLockStateStr(1); // 缁堢偣鍑哄簱閿� loc.S_LOCK_OP = lockSource; loc.T_MODIFY = System.DateTime.Now; } + /// <summary> + /// 鍒涘缓浠诲姟 + /// </summary> + /// <param name="startLoc">璧风偣璐т綅:鑷冲皯鎻愪緵:S_CODE,S_AREA_CODE</param> + /// <param name="endLoc">缁堢偣璐т綅:鑷冲皯鎻愪緵:S_CODE,S_AREA_CODE</param> + /// <param name="cntId">瀹瑰櫒鍙�/param> + /// <param name="type">浠诲姟绫诲瀷(鍚嶇О)</param> + /// <param name="pri">浼樺厛绾�/param> + /// <param name="agvType">AGV绫诲瀷</param> + /// <returns></returns> public static TN_Task BuildTask(TN_Location startLoc, TN_Location endLoc, string cntId, string type, int pri = 3, int agvType = 1) { TN_Task TN_Task = new TN_Task() { S_CODE = GenerateTaskNo(), @@ -86,12 +189,13 @@ S_TYPE = type, N_PRIORITY = pri, N_SCHEDULE_TYPE = agvType, - N_B_STATE = 0, // 浠诲姟鍒涘缓鏃讹紝榛樿绛夊緟 + N_B_STATE = 0, // 浠诲姟鍒涘缓鏃�榛樿绛夊緟 S_CNTR_CODE = cntId, }; return TN_Task; } + internal static bool CheckActionRecordExist(string no, int code) { var db = new SqlHelper<TN_Task_Action>().GetInstance(); @@ -122,7 +226,7 @@ internal static void Fail(TN_Task task) { var db = new SqlHelper<TN_Task>().GetInstance(); if (task != null) { - //鍒ゆ柇鏈夋病鏈夊彇璐у畬鎴愶紝娌℃湁灏卞彉鎴愬け璐ャ�鏈夊彇璐у畬鎴愰粯璁ゅ畬鎴愪簡锛堣窡鎹」鐩�瀹氾紝鏈変簺椤圭洰浜哄伐鎷夎蛋浜嗕篃娌℃湁鏀惧埌缁堢偣锛夈� + //鍒ゆ柇鏈夋病鏈夊彇璐у畬鎴�娌℃湁灏卞彉鎴愬け璐ャ�鏈夊彇璐у畬鎴愰粯璁ゅ畬鎴愪簡 (璺熸嵁椤圭洰鑰屽畾,鏈変簺椤圭洰浜哄伐鎷夎蛋浜嗕篃娌℃湁鏀惧埌缁堢偣) 銆� task.N_B_STATE = 4; task.S_B_STATE = TN_Task.GetStateStr(task.N_B_STATE); db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE }).ExecuteCommand(); @@ -146,4 +250,13 @@ return db.Queryable<TN_Task>().Where(a => a.N_B_STATE == 0 && (a.S_B_STATE == "绛夊緟" || a.S_B_STATE == "寰呮帹閫�)).ToList(); } } + + /// <summary> + /// [璐т綅/瀹瑰櫒/鐗╂枡]淇℃伅 + /// </summary> + public class LocCntrCg { + public TN_CG_Detail CgDetail { get; set; } = null; + public TN_Loc_Container LocCntrRel { get; set; } = null; + public TN_Location Location { get; set; } = null; + } } -- Gitblit v1.9.1