From 747cfc84c88ad9f0cdf1732196019e34e867a77e Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期二, 27 五月 2025 17:29:39 +0800
Subject: [PATCH] 金坛mes接口修改

---
 process/TaskProcess.cs |  150 ++++++++++++++++++++++++++++++++++---------------
 1 files changed, 103 insertions(+), 47 deletions(-)

diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs
index b89a122..c847b92 100644
--- a/process/TaskProcess.cs
+++ b/process/TaskProcess.cs
@@ -114,7 +114,7 @@
                     LogHelper.Info($"娌℃壘鍒颁换鍔no}锛屼氦浜掕姹傚け璐�, "瀹夊叏浜や簰");
                 }
             }
-            else if (state == 1105)
+            else if (state == 1003)
             {
                 var workFlow = TaskHelper.selectWorkFlowByType(mst.N_TYPE.ToString(), mst.TOOLSTYPE);
 
@@ -138,11 +138,14 @@
                 //寮�叧鍏抽棬鐢宠
                 DeviceProcess.Door(mst, forkliftNo, state);
             }
-            else if (state == 1002) {
+            else if (state == 1004) {
                 LogHelper.Info($"绛夊緟浜や簰锛屼换鍔″彿={mst.S_CODE}", "瀹夊叏浜や簰");
 
+                var wcsCode = mst.S_CODE.Replace(@"_1", "_2");
+
+                LogHelper.Info($"绛夊緟浜や簰锛屾煡璇㈡牎楠屼换鍔″彿={wcsCode}", "瀹夊叏浜や簰");
                 //绛夊緟rfid鏍¢獙
-                var rfidFlag = TaskHelper.GetRfid(mst.S_CODE);
+                var rfidFlag = TaskHelper.GetRfid(wcsCode);
 
                 LogHelper.Info($"绛夊緟浜や簰锛屼换鍔″彿={mst.S_CODE}锛孯FID鏍¢獙淇℃伅"+JsonConvert.SerializeObject(rfidFlag), "瀹夊叏浜や簰");
                 if (rfidFlag!=null)
@@ -241,9 +244,10 @@
                         db.Updateable(kt).UpdateColumns(it => new { it.Status }).ExecuteCommand();
                         db.CommitTran();
                         var site = LocationHelper.GetAgvSiteZc(end.S_CODE);
-                        LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�", "鏀归亾瀹夊叏浜や簰");
+                        LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�锛�涓�", "鏀归亾瀹夊叏浜や簰");
                         NDCApi.ChangeOrderParam(task.S_CODE, 2, site);
                         NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
+                        NDCApi.ChangeOrderParam(task.S_CODE, 4, "0");
                         return;
                     }
                 }
@@ -263,7 +267,7 @@
                         var endLoc = LocationHelper.GetLocOne(wcsTask.S_END_LOC);
 
                         var endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA);
-                        var end = LocationHelper.FindEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
+                        var end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
                         LogHelper.Info($"褰撳墠宸烽亾涓嶅彲鐢紝闇�鏀归亾锛屾柊缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "鏀归亾瀹夊叏浜や簰");
                         if (end == null)
                         {
@@ -293,8 +297,9 @@
                             {
 
                                 flag = false;
-                                LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鎺ラ┏浣峽con.S_CODE}鍙敤锛屼笉闇�鏀归亾锛岀洿鎺ヤ慨鏀瑰弬鏁�涓�", "鏀归亾瀹夊叏浜や簰");
+                                LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鎺ラ┏浣峽con.S_CODE}鍙敤锛屼笉闇�鏀归亾锛岀洿鎺ヤ慨鏀瑰弬鏁�涓�锛�涓�", "鏀归亾瀹夊叏浜や簰");
                                 NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
+                                NDCApi.ChangeOrderParam(task.S_CODE, 4, "0");
                                 break;
                             }
                         }
@@ -346,11 +351,11 @@
                             db.CommitTran();
                             
                             var site = LocationHelper.GetAgvSiteZc(loc.S_CODE);
-                            LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�", "鏀归亾瀹夊叏浜や簰");
+                            LogHelper.Info($"浠诲姟{task.S_CODE}鏀归亾鎴愬姛锛屾敼鍙傛暟2涓簕site},鍙傛暟6涓�,4涓�024", "鏀归亾瀹夊叏浜や簰");
                             NDCApi.ChangeOrderParam(task.S_CODE, 2, site);
                             NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
-                           
-                        
+                            NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024");
+
                         //} else if (workFlow.FLOWNAME.Contains("鍑哄簱")) {
                         //    var endLoc = LocationHelper.GetLocOne(task.S_START_LOC);
                         //    endLoc.N_LOCK_STATE = 3;
@@ -440,6 +445,10 @@
                 var ndcParme = new List<param>();
                 ndcParme.Add(new param() { name = "From", value = start.ToString() });
                 ndcParme.Add(new param() { name = "To", value = end.ToString() });
+                ndcParme.Add(new param() { name = "FUNC", value = "0" });
+                ndcParme.Add(new param() { name = "DATA", value = "0" });
+                ndcParme.Add(new param() { name = "Ctype", value = "0" });
+
 
                 var res =  NDCApi.AddOrderNew(1, mst.N_PRIORITY, mst.S_CODE, ndcParme);
 
@@ -1179,7 +1188,36 @@
             /// </summary>
             internal static Result addMesTask(ZcInWorkAreaParme model) { 
             var result = new Result();
-
+            //淇濆瓨鍒癿es浠诲姟璁板綍
+            MesTask mesRes = new MesTask()
+            {
+                task_no = model.task_no,
+                Task_type = model.Task_type,
+                TurnCardNum = model.TurnCardNum,
+                PROD_NO = model.PROD_NO,
+                PROD_TECH = model.PROD_TECH,
+                PROD_SPEC = model.PROD_SPEC,
+                PROD_BOM = model.PROD_BOM,
+                PROD_Feature = model.PROD_Feature,
+                TOOLS_NO = model.TOOLS_NO,
+                ST_AMOUNT = model.ST_AMOUNT,
+                CURRENT_AMOUNT = model.CURRENT_AMOUNT,
+                Location_From = model.Location_From,
+                Location_To = model.Location_To,
+                PRODUCE_TIME = model.PRODUCE_TIME,
+                SHELF_LIFE_TIME = model.SHELF_LIFE_TIME,
+                EXPIRED_TIME = model.EXPIRED_TIME,
+                SHELF_REP = model.SHELF_REP,
+                EXPIRED_REP = model.EXPIRED_REP,
+                CHECK_CODE = model.CHECK_CODE,
+                CHECK_INFO = model.CHECK_INFO,
+                Priority = model.Priority,
+                Data_status = model.Data_status,
+                CreateDate = DateTime.Now,
+                standardWeight = model.standardWeight,
+                BUSI_TYPE = model.BUSI_TYPE,
+                TOOLS_TPYE = model.TOOLS_TPYE,
+            };
 
             try
             {
@@ -1223,6 +1261,9 @@
                         throw new Exception($"鎵樼洏{model.TOOLS_NO}宸茬粡鍒涘缓浣滀笟锛岃鍕块噸澶嶇敵璇�);
                     }
                 }
+
+
+              
 
 
                 //鎵樼洏鏄庣粏鏁伴噺
@@ -1335,15 +1376,22 @@
                     }
 
                     //鏌ユ壘缁堢偣
-                    var endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA);
+                    List<Location> endList ;
 
                     Location end = null;
 
+                    if (!string.IsNullOrEmpty(workFlow.ZONECODE))
+                    {
+                        endList = LocationHelper.GetZoneLoc(workFlow.ZONECODE);
+                    }
+                    else {
+                        endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA);
+                    }
 
                     if (workFlow.FLOWCODE == "1")
                     {
                         //婊℃墭鍏�-                        end = LocationHelper.FindEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
+                        end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
                     }
                     else if (workFlow.FLOWCODE == "3")
                     {
@@ -1356,7 +1404,7 @@
                         //if (end == null)
                         //{
                             LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟娌℃壘鍒扮┖鎵樼紦瀛樺尯缁堢偣,瀵绘壘绔嬪簱鍖虹┖璐т綅", "Mes浠诲姟涓嬪彂");
-                            end = LocationHelper.FindEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
+                            end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
                         //}
                         //else
                         //{
@@ -1374,7 +1422,7 @@
                         }
                         else
                         {
-                            end = LocationHelper.FindEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
+                            end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
                         }
                     }
                     else if (workFlow.FLOWCODE == "12")
@@ -1504,6 +1552,10 @@
                         result.errMsg = "鍏ュ簱浣滀笟鍒涘缓鎴愬姛";
                         result.errCode = 0;
                         result.success = true;
+                        mesRes.errCode = result.errCode;
+                        mesRes.errMsg = result.errMsg;
+                        //淇濆瓨mes璁板綍
+                        CreatMesRes(mesRes);
                         return result;
                     }
                     else {
@@ -1537,8 +1589,22 @@
 
 
                     //鏌ユ壘璧风偣
-                    var strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
+                    List<Location> strrtList;
+
                     Location start = null;
+
+
+                    if (!string.IsNullOrEmpty(workFlow.ZONECODE))
+                    {
+                        strrtList = LocationHelper.GetZoneLoc(workFlow.ZONECODE);
+                    }
+                    else
+                    {
+                        strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
+                    }
+
+
+
                     if (workFlow.FLOWCODE == "9")
                     {
                         if (TOOLSTYPE == "85" || TOOLSTYPE == "95")
@@ -1551,7 +1617,7 @@
                             start = LocationHelper.FindStartcolByLoclistAndItem(strrtList, model.PROD_NO, workFlow.STARTAREA, workFlow.ROADWAY);
                             if (start==null)
                             {
-
+                                strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
                                 var itemFlag = LocationHelper.FindStartcolByLoclistAndItemFlag(strrtList, model.PROD_NO, workFlow.STARTAREA);
                                 LogHelper.Info($"ZCSendTask婊℃墭鍑哄簱浠诲姟娌℃壘鍒拌捣鐐癸紝鏍¢獙鏄惁鏈夊簱瀛樹絾鏄澶囨姤璀itemFlag}", "Mes浠诲姟涓嬪彂");
                                 if (itemFlag)
@@ -1571,6 +1637,7 @@
                         start = LocationHelper.FindStartcolByLoclistAndcntr(strrtList, workFlow.STARTAREA);
                         if (start == null)
                         {
+                            strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
                             var itemFlag = LocationHelper.FindStartcolByLoclistAndcntrFlag(strrtList, workFlow.STARTAREA);
                             LogHelper.Info($"ZCSendTask绌烘墭鍑哄簱浠诲姟娌℃壘鍒拌捣鐐癸紝鏍¢獙鏄惁鏈夊簱瀛樹絾鏄澶囨姤璀itemFlag}", "Mes浠诲姟涓嬪彂");
 
@@ -1590,6 +1657,13 @@
                     if (workFlow.FLOWCODE == "7" && start == null)
                     {
                         //绌烘墭鍑烘病鎵惧埌璧风偣锛屽厛缂撳瓨鍒扮┖鎵樿〃
+
+                        //鍏堟煡璇㈡湁娌℃湁鍚岀粓鐐规湭缂撳瓨鐨勮褰�+
+                        var ktTask = TaskHelper.GetMesKtTask(end.S_CODE);
+                        if (ktTask != null) {
+                            throw new Exception($"ZCSendTask绌烘墭鍑虹紦瀛樺け璐�缁堢偣{end.S_CODE}宸叉湁缂撳瓨");
+                        }
 
                         MesKtTask req = new MesKtTask()
                         {
@@ -1740,6 +1814,10 @@
                         result.errMsg = "鍑哄簱浣滀笟鍒涘缓鎴愬姛";
                         result.errCode = 0;
                         result.success = true;
+                        mesRes.errCode = result.errCode;
+                        mesRes.errMsg = result.errMsg;
+                        //淇濆瓨mes璁板綍
+                        CreatMesRes(mesRes);
                         return result;
                     }
                     else {
@@ -1754,37 +1832,6 @@
                 }
 
 
-                //鍙傛暟鏍¢獙瀹屾垚淇濆瓨鍒癿es浠诲姟璁板綍
-                //MesTask req = new MesTask()
-                //{
-                //    task_no = model.task_no,
-                //    Task_type = model.Task_type,
-                //    TurnCardNum = model.TurnCardNum,
-                //    PROD_NO = model.PROD_NO,
-                //    PROD_TECH = model.PROD_TECH,
-                //    PROD_SPEC = model.PROD_SPEC,
-                //    PROD_BOM = model.PROD_BOM,
-                //    PROD_Feature = model.PROD_Feature,
-                //    TOOLS_NO = model.TOOLS_NO,
-                //    ST_AMOUNT = model.ST_AMOUNT,
-                //    CURRENT_AMOUNT = model.CURRENT_AMOUNT,
-                //    Location_From = model.Location_From,
-                //    Location_To = model.Location_To,
-                //    PRODUCE_TIME = model.PRODUCE_TIME,
-                //    SHELF_LIFE_TIME = model.SHELF_LIFE_TIME,
-                //    EXPIRED_TIME = model.EXPIRED_TIME,
-                //    SHELF_REP = model.SHELF_REP,
-                //    EXPIRED_REP = model.EXPIRED_REP,
-                //    CHECK_CODE = model.CHECK_CODE,
-                //    CHECK_INFO = model.CHECK_INFO,
-                //    Priority = model.Priority,
-                //    Data_status = model.Data_status,
-                //    CreateDate = DateTime.Now,
-                //    standardWeight = model.standardWeight,
-                //    BUSI_TYPE = model.BUSI_TYPE,
-                //    TOOLS_TPYE = model.TOOLS_TPYE,
-                //};
-
 
             }
             catch (Exception ex)
@@ -1793,6 +1840,10 @@
                 result.errMsg = "ZCSendTask浠诲姟涓嬪彂寮傚父"+ex.Message;
                 result.errCode = 1;
                 result.success = false;
+                mesRes.errCode = result.errCode;
+                mesRes.errMsg = result.errMsg;
+                //淇濆瓨mes璁板綍
+                CreatMesRes(mesRes);
                 return result;
             }
         }
@@ -1819,7 +1870,12 @@
 
 
 
+        internal static bool CreatMesRes(MesTask model)
+        {
+            var newDb = new SqlHelper<object>().GetInstance();
+            return newDb.Insertable(model).ExecuteCommand()>0;
 
+        }
 
 
 

--
Gitblit v1.9.1