From 33b84a02e80c24e2106c67a388d9a3c1fa5f5603 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期二, 17 六月 2025 16:58:15 +0800
Subject: [PATCH] 完善ERP下发任务接口、创建任务与取货完成的信息回报功能

---
 core/WCSCore.cs |  320 +++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 213 insertions(+), 107 deletions(-)

diff --git a/core/WCSCore.cs b/core/WCSCore.cs
index 5fbf07f..e7b3f66 100644
--- a/core/WCSCore.cs
+++ b/core/WCSCore.cs
@@ -4,6 +4,7 @@
 using System.Text;
 using System.Threading.Tasks;
 
+using HH.WCS.Mobox3.DSZSH.api;
 using HH.WCS.Mobox3.DSZSH.device;
 using HH.WCS.Mobox3.DSZSH.models;
 using HH.WCS.Mobox3.DSZSH.process;
@@ -19,27 +20,15 @@
         public static ReturnResult OperateAgvTaskStatus(AgvTaskState model) {
             var result = new ReturnResult();
             try {
-                switch (model.state) {
-                    case 1023:
-                        break;
-                    case 1025:
-                        break;
-                    case 1012:
-                        break;
-                    case 1004:
-                        break;
-                    case 1103:
-                        break;
-                    default:
-                        // AGV 鎵ц浠诲姟鐨勯�杈戝鐞�-                        if (!AgvTaskProcessOk(model)) {
-                            // 鎵ц涓峅K锛岃鏄庢病鏈夋壘鍒颁换鍔�-                            result.ResultCode = 1;
-                            result.ResultMsg = $"鏍规嵁Model.No鏈壘鍒板搴旂殑浠诲姟锛寋model.task_no}";
-                            LogHelper.Info(result.ResultMsg, "API");
-                            return result;
-                        }
-                        break;
+                if (model.state > 0) {
+                    // AGV 鎵ц浠诲姟鐨勯�杈戝鐞�+                    if (!AgvTaskProcessOk(model)) {
+                        // 鎵ц涓峅K锛岃鏄庢病鏈夋壘鍒颁换鍔�+                        result.ResultCode = 1;
+                        result.ResultMsg = $"鏍规嵁Model.No鏈壘鍒板搴旂殑浠诲姟锛寋model.task_no}";
+                        LogHelper.Info(result.ResultMsg, "API");
+                        return result;
+                    }
                 }
 
                 result.ResultCode = 0;
@@ -49,7 +38,7 @@
             }
             catch (Exception ex) {
                 result.ResultCode = -1;
-                result.ResultMsg = $"鍙戠敓浜嗗紓甯革細+{ex.Message}";
+                result.ResultMsg = $"鍙戠敓浜嗗紓甯革細{ex.Message}";
                 LogHelper.Info(result.ResultMsg, "Error");
                 return result;
             }
@@ -83,9 +72,12 @@
                     WCSHelper.UpdateStatus(TN_Task, "鍙栬揣瀹屾垚"); // 浠诲姟鐘舵�鏀规垚鍙栬揣瀹屾垚
                     TaskProcess.OperateStatus(TN_Task, 4); // 璧风偣瀹瑰櫒璐т綅瑙g粦,瑙i攣璧风偣
 
-                    if (TN_Task.S_TYPE == TaskName.鎴愬搧鑳跺嚭搴� {
+                    if (TN_Task.S_TYPE == TaskName.C鎴愬搧鑳跺嚭搴� {
                         var nextOutboundTask = Task.Run(() => {
                             UpdateOutboundTaskState(3);
+                        });
+                        var pickUpReturnErpTask = Task.Run(() => {
+                            PickUpReturnErp(TN_Task);
                         });
                     }
 
@@ -106,6 +98,10 @@
                     //    });
                     //}
 
+                    var recordTask = Task.Run(() => {
+                        RecordTaskTable(TN_Task);
+                    });
+
                     break;
                 case 7: // 寮傚父
                     TaskProcess.OperateStatus(TN_Task, 7); // 寮傚父澶勭悊
@@ -120,6 +116,88 @@
             return true;
         }
 
+        private static void RecordTaskTable(TN_Task task) {
+            var db = new SqlHelper<object>().GetInstance();
+            var info = "";
+
+            try {
+                var cgDetail = new TN_CG_Detail(); // 濡傛灉娌℃湁淇℃伅锛岄粯璁ゅ氨鏄┖鍊硷紝鍙互鐩存帴濉叆锛屼笉闇�鍒ゆ柇
+                
+                //var emptyTask = false; // 绌烘墭/绌虹浠诲姟
+                if (task.S_TYPE != TaskName.H濂借繍绠盻绌虹涓婄嚎 && task.S_TYPE != TaskName.H濂借繍绠盻绌虹鍏ュ簱 &&
+                    task.S_TYPE != TaskName.T鎵樼洏_绌烘墭涓婄嚎 && task.S_TYPE != TaskName.T鎵樼洏_绌烘墭鍏ュ簱) {
+                    // 闈炵┖鎵�绌虹浠诲姟锛堢┖鎵�绌虹浠诲姟鏃犳硶鍦–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}瀵瑰簲鐨勭墿鏂�;
+                        LogHelper.Info(info);
+                        //return;
+                        cgDetail = new TN_CG_Detail() ;
+                        cgDetail.S_ITEM_CODE = "寮傚父";
+                    }
+                }
+
+                var isInbound = false; // 鍏ュ簱绫诲瀷鐨勪换鍔★紙鍖呮嫭绉诲簱绫讳换鍔★級
+                var inboundTasks = new List<string> {
+                    TaskName.H濂借繍绠盻婊$涓嬬嚎鍏ュ簱, TaskName.H濂借繍绠盻绌虹鍏ュ簱, TaskName.T鎵樼洏_婊℃墭涓嬬嚎鍏ュ簱, TaskName.T鎵樼洏_绌烘墭鍏ュ簱,
+                    TaskName.C鎶芥_鍚堟牸鍥炲簱, TaskName.C鎶芥_涓嶅悎鏍肩Щ搴� TaskName.Y绉诲簱
+                };
+                if (inboundTasks.Contains(task.S_TYPE)) {
+                    isInbound= true;
+                }
+
+                //var needUpdateRecordTable = false;
+                var record = db.Queryable<TN_Record_Table>()
+                    .Where(r => r.S_TASK_NO == task.S_CODE).First();
+                if (record != null) {
+                    //needUpdateRecordTable = true;
+                    info = $"鍑哄叆搴撹褰曡〃涓凡缁忓瓨鍦ㄤ换鍔″彿{task.S_CODE}"; // 闃叉娴嬭瘯鏃跺弽澶嶈皟鐢�34562瀵艰嚧閲嶅璁板綍
+                    LogHelper.Info(info);
+                    return;
+                }
+
+                record = new TN_Record_Table {
+                    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_CNTR_CODE = task.S_CNTR_CODE,
+                    S_ITEM_SPEC = cgDetail.S_ITEM_SPEC,
+                    S_NET_WEIGHT = cgDetail.S_NET_WEIGHT,
+                    S_QUALITY_GRADE = cgDetail.S_QUALITY_GRADE,
+                    S_STANDARD = cgDetail.S_STANDARD,
+                    S_TASK_NO = task.S_CODE,
+                    T_RECORD_TIME = DateTime.Now,
+                    S_TYPE = task.S_TYPE,
+                    S_BS_CODE = task.S_BS_NO, // ERP鍗曞彿锛岄粯璁や负绌�+                    N_QTY = cgDetail.N_ITEM_NUM,
+                    S_NO = task.S_OP_CODE, // 鍑哄簱/鎶芥/绉诲簱鍗�+                };
+
+                // 鏁版嵁搴撴搷浣�+                if (db.Insertable<TN_Record_Table>(record).ExecuteCommand() <= 0) {
+                    info = "鎻掑叆鍑哄叆搴撹褰曡〃澶辫触锛� + JsonConvert.SerializeObject(record);
+                    LogHelper.Info(info);
+                    return;
+                }
+
+                info = "鎻掑叆鍑哄叆搴撹褰曡〃鎴愬姛";
+                LogHelper.Info(info);
+            }
+            catch (Exception ex) {
+                LogHelper.InfoEx(ex);
+            }
+        }
+
+        /// <summary>
+        /// AGV浜х嚎瀹夊叏浜や簰閫昏緫瀹炵幇
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
         public static ReturnResult SafetyInteraction(SafetyInteractionInfo model) {
             var db = new SqlHelper<object>().GetInstance();
             var info = "";
@@ -127,9 +205,19 @@
             try {
                 ModbusHelper.Relink();
 
-                var prodLineInfo = Settings.ProductionLines[0];
+                //var loc = db.Queryable<TN_Location>()
+                //    .Where(l => l.S_AGV_SITE == model.station_name && Settings.AreaMap[AreaName.鍖呰鍖篯.Contains(l.S_AREA_CODE))
+                //    .First();
 
-                var prodLineDevice = new ProductionLineDevice(prodLineInfo.PlcIp, prodLineInfo.PlcPort);
+                if (!Settings.AgvSite_ProdLineCodeMap.TryGetValue(model.station_name, out int prodIndex)) {
+                    info = $"AGV 绔欑偣{model.station_name}涓嶆槸鍚堟硶鐨勪骇绾挎帴椹充綅绔欑偣";
+                    LogHelper.Info(info);
+                    return NewReturnResult(1, info);
+                }
+
+                var prodLineInfo = Settings.ProductionLines[prodIndex];
+
+                var prodLineDevice = new ProductionLineDevice(prodLineInfo);
                 if (!prodLineDevice.LoadDeviceStateOk()) {
                     info = "涓庝骇绾胯澶囬�璁け璐�;
                     LogHelper.Info(info);
@@ -155,7 +243,7 @@
                     return NewReturnResult(3, info);
                 }
 
-                if (model.apply_code == "5") {
+                if (model.apply_code == "5") { // 璇锋眰鍙栬揣
                     if (prodLineDevice.FullOffline != 1) {
                         info = $"褰撳墠杈撻�绾挎弧鏂欎笅绾夸俊鍙蜂笉涓�锛屾棤娉曞彇璐�;
                         LogHelper.Info(info);
@@ -171,9 +259,8 @@
                     info = $"鍚戣緭閫佺嚎鍐欏叆鍏佽鍙栬揣淇″彿鎴愬姛";
                     LogHelper.Info(info);
                     return NewReturnResult(0, info);
-
                 }
-                else if (model.apply_code == "1") {
+                else if (model.apply_code == "1") { // 璇锋眰鍗歌揣
                     if (prodLineDevice.AllowAgvPlacePallet != 1) {
                         info = $"褰撳墠杈撻�绾垮厑璁告斁鎵樼洏淇″彿涓嶄负1锛屾棤娉曟斁璐�;
                         LogHelper.Info(info);
@@ -191,7 +278,7 @@
                     return NewReturnResult(0, info);
                 }
                 else {
-                    info = $"褰撳墠杈撻�绾垮厑璁�;
+                    info = $"褰撳墠AGV璇锋眰鐮佷笉涓�5鍙栬揣 鎴�1鍗歌揣";
                     LogHelper.Info(info);
                     return NewReturnResult(8, info);
                 }
@@ -205,13 +292,14 @@
         }
 
         public static void UpdateOutboundTaskState(int spotStateCode) {
+            var taskName = TaskName.C鎴愬搧鑳跺嚭搴�
             var db = new SqlHelper<object>().GetInstance();
 
             var detail = db.Queryable<TN_Outbound_Detail>()
                 .First(d => d.N_B_STATE == 2);
 
             if (detail == null) {
-                LogHelper.Info("鍑哄簱--AGV鍙栬揣--鏌ヨDetail锛氬綋鍓嶆病鏈�鎵ц涓�鐨凞etail琛紒");
+                LogHelper.Info($"{taskName}锛欰GV鍙栬揣锛氭煡璇㈡槑缁嗗崟锛氬綋鍓嶆病鏈夋墽琛屼腑鐨勬槑缁嗗崟");
                 return;
             }
 
@@ -219,14 +307,14 @@
                 detail.N_B_STATE = spotStateCode;
                 if (db.Updateable<TN_Outbound_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) {
                     tran.RollbackTran();
-                    LogHelper.Info("鍑哄簱--AGV鍙栬揣锛氫慨鏀笵etail鐘舵� N_B_STATE 涓�3浠诲姟鎵ц瀹屾垚 澶辫触锛�);
+                    LogHelper.Info($"{taskName}锛欰GV鍙栬揣锛氫慨鏀规槑缁嗗崟鐘舵�涓恒�3浠诲姟鎵ц瀹屾垚銆戝け璐ワ紒");
                     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($"鍑哄簱--AGV鍙栬揣--缁熻浠诲姟宸插畬鎴愶細{finishedCount} / {allCount}");
+                LogHelper.Info($"{taskName}锛欰GV鍙栬揣锛氱粺璁′换鍔″凡瀹屾垚锛歿finishedCount}/{allCount}");
 
                 if (finishedCount == allCount) { // 褰撳墠鍑哄簱鍗曚笅鐨勬墍鏈夋槑缁嗗崟锛屼换鍔¢兘宸茬粡瀹屾垚
 
@@ -235,7 +323,7 @@
                         .ExecuteCommand() <= 0) {
 
                         tran.RollbackTran();
-                        LogHelper.Info("鍑哄簱--AGV鍙栬揣--鎵�湁浠诲姟瀹屾垚鏃讹細淇敼Order鐘舵� N_B_STATE 涓�3浠诲姟鎵ц瀹屾垚 澶辫触锛�);
+                        LogHelper.Info($"{taskName}锛欰GV鍙栬揣锛氭墍鏈変换鍔″畬鎴愭椂锛氫慨鏀瑰崟鎹姸鎬佷负3浠诲姟鎵ц瀹屾垚--澶辫触锛�);
                         return;
                     }
                 }
@@ -244,83 +332,102 @@
             }
         }
 
-        public static void UpdateCheckTaskState(int spotStateCode) {
+        public static void PickUpReturnErp(TN_Task task) {
             var db = new SqlHelper<object>().GetInstance();
+            var info = "";
+            var httpH = new HttpHelper();
+            
+            try {
+                var plan = db.Queryable<TN_Outbound_Plan>()
+                    .Where(p => p.JHDH == task.S_BS_NO)
+                    .First();
 
-            var detail = db.Queryable<TN_Check_Detail>()
-                .First(d => d.N_B_STATE == 2);
+                if (plan == null) {
+                    info = $"璁″垝鍗曞彿{task.S_BS_NO}涓嶅瓨鍦紒";
+                    LogHelper.Info(info);
+                }
 
-            if (detail == null) {
-                LogHelper.Info("鎶芥--AGV浠诲姟瀹屾垚--鏌ヨDetail锛氬綋鍓嶆病鏈�鎵ц涓�鐨凞etail琛紒");
-                return;
+                var cgDetail = db.Queryable<TN_CG_Detail>()
+                    .Where(d => d.S_CNTR_CODE == task.S_CNTR_CODE)
+                    .First();
+
+                if (cgDetail == null) {
+                    info = $"鐗╂枡缂栫爜涓嶅瓨鍦紒";
+                    LogHelper.Info(info);
+                }
+
+                var model = new OtherModel.PickUpReturnErpInfo {
+                    jhdh = plan.JHDH, // 璁″垝鍗曞彿锛堝敮涓�爣璇嗭級
+                    ckzt = plan.CKZT, // 鍑哄簱鐘舵�锛堥渶瑕佽繑鍥烇級
+                    jhlb = plan.JHLB, // 璁″垝绫诲埆
+                    ckdh = plan.CKDH, // 鍙傝�鍗曞彿
+                    cph = plan.CPH, // 杞︾墝鍙�+                    ysfs = plan.YSFS, // 杩愯緭鏂瑰紡
+                    cpzt = plan.CPZT, // 浜у搧鐘舵�
+                    mddw = plan.MDDW, // 涔版柇鍗曚綅
+                    cpdm = plan.CPDM, // 浜у搧浠g爜
+                    cplb = plan.CPLB, // 浜у搧绫诲埆
+                    cplbmx = plan.CPLBMX, // 浜у搧绫诲埆鏄庣粏
+                    pp = plan.PP, // 鍝佺墝
+                    dj = plan.DJ, // 绛夌骇锛堥渶瑕佽繑鍥烇級
+                    gh = plan.GH, // 缃愬彿
+                    ph = plan.PH, // 鎵瑰彿锛堥渶瑕佽繑鍥烇級
+                    bzlx = plan.BZLX, // 鍖呰绫诲瀷
+                    pzdh = plan.PZDH, // 娲捐鍗曞彿
+                    pzd_dw = plan.PZD_DW, // 娲捐鍗曞崟浣�+                    pzd_dybh = plan.PZD_DYBH, // 娲捐鍗曡皟杩愮紪鍙�+                    pzjs = plan.PZJS, // 娲捐浠舵暟
+                    pzsl = plan.PZSL, // 娲捐鏁伴噺
+                    pz_rq = plan.PZ_RQ, // 娲捐鏃ユ湡(yyyy-mm-dd)
+                    pz_czrq = plan.PZ_CZRQ, // 娲捐鎿嶄綔鏃ユ湡
+                    pz_zfbj = plan.PZ_ZFBJ, // 娲捐浣滃簾鏍囪
+                    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 , // 鎿嶄綔鍛橈紙闇�杩斿洖锛�+                    shr_username = plan.SHR_USERNAME, // 瀹℃牳浜�+                    shrq = plan.SHRQ, // 瀹℃牳鏃ユ湡
+                    zfbj = plan.ZFBJ, // 浣滃簾鏍囪
+                    zfrq = plan.ZFRQ, // 浣滃簾鏃ユ湡
+                    jsdw = plan.JSDW, // 缁撶畻鍗曚綅
+                    shdw = plan.SHDW, // 鏀惰揣鍗曚綅
+                    ysdw = plan.YSDW, // 杩愯緭鍗曚綅
+                    lxr = plan.LXR, // 鑱旂郴浜�+                    //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 // 璐т綅鐘舵�锛堥渶瑕佽繑鍥烇級
+                };
+                model.sfjs = cgDetail.N_ITEM_NUM;
+                model.sfsl = (decimal) cgDetail.F_QTY; // TEMP
+                model.hwzt = "宸插嚭搴�;
+
+                var jsonInfo = JsonConvert.SerializeObject(model);
+                var result = httpH.WebPost(Settings.ErpApiUrl + "PickUpReturn", jsonInfo);
+
+                LogHelper.InfoApi($"鍙栬揣瀹屾垚鍙嶉ERP鎺ュ彛锛岀粨鏋�{result}锛岃皟鐢ㄥ弬鏁帮細", model);
+
+                plan.SFJS = model.sfjs;
+                plan.SFSL = model.sfsl;
+                plan.HWZT = model.hwzt;
+                var success = db.Updateable<TN_Outbound_Plan>(plan).UpdateColumns(p => new { p.SFJS, p.SFSL, p.HWZT }).ExecuteCommand() > 0;
+                info = "鏇存柊鍑哄簱璁″垝鍗曡褰曡〃" + (success ? "鎴愬姛" : "澶辫触");
+                LogHelper.Info(info);
             }
-
-            using (var tran = db.Ado.UseTran()) {
-                detail.N_B_STATE = spotStateCode;
-                if (db.Updateable<TN_Check_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) {
-                    tran.RollbackTran();
-                    LogHelper.Info("鎶芥--AGV浠诲姟瀹屾垚锛氫慨鏀笵etail鐘舵� N_B_STATE 涓�3浠诲姟鎵ц瀹屾垚 澶辫触锛�);
-                    return;
-                }
-
-                var finishedCount = db.Queryable<TN_Check_Detail>().Count(d => d.S_NO == detail.S_NO && d.N_B_STATE == 3);
-                var allCount = db.Queryable<TN_Check_Detail>().Count(d => d.S_NO == detail.S_NO);
-
-                LogHelper.Info($"鎶芥--AGV浠诲姟瀹屾垚锛氱粺璁′换鍔″凡瀹屾垚锛歿finishedCount} / {allCount}");
-
-                if (finishedCount == allCount) { // 褰撳墠order涓嬬殑detail锛屼换鍔¢兘宸茬粡瀹屾垚
-
-                    if (db.Updateable<TN_Check_Order>().SetColumns(it => it.N_B_STATE == 3)
-                        .Where(it => it.S_NO == detail.S_NO)
-                        .ExecuteCommand() <= 0) {
-
-                        tran.RollbackTran();
-                        LogHelper.Info("鎶芥--AGV浠诲姟瀹屾垚--鎵�湁浠诲姟瀹屾垚鏃讹細淇敼Order鐘舵� N_B_STATE 涓�3浠诲姟鎵ц瀹屾垚 澶辫触锛�);
-                        return;
-                    }
-                }
-
-                tran.CommitTran();
-            }
-        }
-
-        public static void UpdateShiftTaskState(int spotStateCode) {
-            var db = new SqlHelper<object>().GetInstance();
-
-            var detail = db.Queryable<TN_Shift_Detail>()
-                .First(d => d.N_B_STATE == 2);
-
-            if (detail == null) {
-                LogHelper.Info("绉诲簱--AGV浠诲姟瀹屾垚--鏌ヨDetail锛氬綋鍓嶆病鏈�鎵ц涓�鐨凞etail琛紒");
-                return;
-            }
-
-            detail.N_B_STATE = spotStateCode;
-
-            var finishedCount = db.Queryable<TN_Shift_Detail>().Count(d => d.S_NO == detail.S_NO && d.N_B_STATE == 3);
-            var allCount = db.Queryable<TN_Shift_Detail>().Count(d => d.S_NO == detail.S_NO);
-
-            LogHelper.Info($"绉诲簱--AGV浠诲姟瀹屾垚锛氱粺璁′换鍔″凡瀹屾垚锛歿finishedCount} / {allCount}");
-
-            using (var tran = db.Ado.UseTran()) {
-                if (db.Updateable<TN_Shift_Detail>(detail).UpdateColumns(it => it.N_B_STATE).ExecuteCommand() <= 0) {
-                    tran.RollbackTran();
-                    LogHelper.Info("绉诲簱--AGV浠诲姟瀹屾垚锛氫慨鏀笵etail鐘舵� N_B_STATE 涓�3浠诲姟鎵ц瀹屾垚 澶辫触锛�);
-                    return;
-                }
-
-                if (finishedCount == allCount) { // 褰撳墠order涓嬬殑detail锛屼换鍔¢兘宸茬粡瀹屾垚
-                    if (db.Updateable<TN_Shift_Order>().SetColumns(it => it.N_B_STATE == 3)
-                        .Where(it => it.S_NO == detail.S_NO)
-                        .ExecuteCommand() <= 0) {
-
-                        tran.RollbackTran();
-                        LogHelper.Info("绉诲簱--AGV浠诲姟瀹屾垚--鎵�湁浠诲姟瀹屾垚鏃讹細淇敼Order鐘舵� N_B_STATE 涓�3浠诲姟鎵ц瀹屾垚 澶辫触锛�);
-                        return;
-                    }
-                }
-
-                tran.CommitTran();
+            catch (Exception ex) {
+                LogHelper.InfoEx(ex);
             }
         }
 
@@ -337,7 +444,6 @@
                     //浣跨敤鑷畾涔変换鍔℃帹閫�                     TaskProcess.SendTask(task);//璋冨害NDC鎴栨澀濂ユ垨鍥借嚜璁惧
                     //TaskProcess.SendGZTask(task);///璋冨害鍥借嚜璁惧
-
                 });
             }
             else {

--
Gitblit v1.9.1