From 112c9bd20afed95d582b7eb227075ab8d10cdd12 Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期二, 24 六月 2025 17:29:28 +0800
Subject: [PATCH] 金坛优化

---
 process/TaskProcess.cs |  429 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 294 insertions(+), 135 deletions(-)

diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs
index f24870a..5006ef2 100644
--- a/process/TaskProcess.cs
+++ b/process/TaskProcess.cs
@@ -59,7 +59,7 @@
             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}");
+                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());
             }
 
@@ -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)
@@ -224,27 +227,32 @@
 
                         //鏌ユ壘缁欏畾缁堢偣
                         var end = LocationHelper.GetLoc(kt.Location_To);
-                        //LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鏀归亾缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "鏀归亾瀹夊叏浜や簰");
-                        //if (end == null || end.S_LOCK_STATE != "鏃�)
-                        //{
-                        //    LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鏀归亾缁堢偣澶辫触锛岀粓鐐�{kt.Location_To},娌℃壘鍒版垨鏈夐攣", "鏀归亾瀹夊叏浜や簰");
-                        //}
-                        TaskHelper.Fail(wcsTask);
-                        TaskProcess.OperateStatus(wcsTask, 7);
-                        LocationHelper.LockLoc(end.S_CODE, "鍏ュ簱閿�, 1);
-                        db.BeginTran();
-                        //鏀逛竴娈典换鍔$粓鐐�-                        task.S_END_LOC = end.S_CODE;
-                        task.S_END_AREA = end.S_AREA_CODE;
-                        db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC,it.S_END_AREA}).ExecuteCommand();
-                        kt.Status = "Y";
-                        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涓�", "鏀归亾瀹夊叏浜や簰");
-                        NDCApi.ChangeOrderParam(task.S_CODE, 2, site);
-                        NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
-                        return;
+                        if (end.S_LOCK_STATE=="鏃� && end.N_CURRENT_NUM==0)
+                        {
+                            //LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鏀归亾缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "鏀归亾瀹夊叏浜や簰");
+                            //if (end == null || end.S_LOCK_STATE != "鏃�)
+                            //{
+                            //    LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鏀归亾缁堢偣澶辫触锛岀粓鐐�{kt.Location_To},娌℃壘鍒版垨鏈夐攣", "鏀归亾瀹夊叏浜や簰");
+                            //}
+                            TaskHelper.Fail(wcsTask);
+                            TaskProcess.OperateStatus(wcsTask, 7);
+                            LocationHelper.LockLoc(end.S_CODE, "鍏ュ簱閿�, 1);
+                            db.BeginTran();
+                            //鏀逛竴娈典换鍔$粓鐐�+                            task.S_END_LOC = end.S_CODE;
+                            task.S_END_AREA = end.S_AREA_CODE;
+                            db.Updateable(task).UpdateColumns(it => new { it.S_END_LOC, it.S_END_AREA }).ExecuteCommand();
+                            kt.Status = "Y";
+                            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涓�锛�涓�", "鏀归亾瀹夊叏浜や簰");
+                            NDCApi.ChangeOrderParam(task.S_CODE, 2, site);
+                            NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
+                            NDCApi.ChangeOrderParam(task.S_CODE, 4, "0");
+                            return;
+                        }
+                       
                     }
                 }
 
@@ -255,16 +263,25 @@
                     var rowdwa = db.Queryable<RoadWayEnable>().Where(x => x.areaCode == wcsTask.S_END_AREA && x.status == "0" && x.roadWay == loc1.N_ROADWAY.ToString()).First();
                     if (rowdwa == null)
                     {
-                        LogHelper.Info($"鍒ゆ柇宸烽亾鍙敤,褰撳墠搴撳尯{wcsTask.S_END_AREA}褰撳墠宸烽亾{loc1.N_ROADWAY}鍙敤,涓嶉渶瑕佹敼閬�, "鏀归亾瀹夊叏浜や簰");
+                        LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鍒ゆ柇宸烽亾鍙敤,褰撳墠搴撳尯{wcsTask.S_END_AREA}褰撳墠宸烽亾{loc1.N_ROADWAY}鍙敤,涓嶉渶瑕佹敼閬�, "鏀归亾瀹夊叏浜や簰");
                     }
                     else
                     {
-                        LogHelper.Info($"褰撳墠宸烽亾涓嶅彲鐢紝闇�鏀归亾", "鏀归亾瀹夊叏浜や簰");
+                        LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}褰撳墠宸烽亾涓嶅彲鐢紝闇�鏀归亾", "鏀归亾瀹夊叏浜や簰");
                         var endLoc = LocationHelper.GetLocOne(wcsTask.S_END_LOC);
+                        List<Location> endList;
+                        if (!string.IsNullOrEmpty(workFlow.ZONECODE))
+                        {
+                            endList = LocationHelper.GetZoneLoc(workFlow.ZONECODE);
+                        }
+                        else
+                        {
+                            endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA);
+                        }
 
-                        var endList = LocationHelper.GetAllLocList1(workFlow.ENDAREA);
-                        var end = LocationHelper.FindEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
-                        LogHelper.Info($"褰撳墠宸烽亾涓嶅彲鐢紝闇�鏀归亾锛屾柊缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "鏀归亾瀹夊叏浜や簰");
+                      
+                        var end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ENDAREA, workFlow.ROADWAY);
+                        LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}锛屽綋鍓嶅贩閬撲笉鍙敤锛岄渶瑕佹敼閬擄紝鏂扮粓鐐逛俊鎭� + JsonConvert.SerializeObject(end), "鏀归亾瀹夊叏浜や簰");
                         if (end == null)
                         {
                             LogHelper.Info($"褰撳墠宸烽亾涓嶅彲鐢紝缁堢偣搴撳尯{workFlow.ENDAREA},娌℃壘鍒扮粓鐐�, "鏀归亾瀹夊叏浜や簰");
@@ -293,8 +310,9 @@
                             {
 
                                 flag = false;
-                                LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鎺ラ┏浣峽con.S_CODE}鍙敤锛屼笉闇�鏀归亾锛岀洿鎺ヤ慨鏀瑰弬鏁�涓�", "鏀归亾瀹夊叏浜や簰");
+                                LogHelper.Info($"褰撳墠浠诲姟{task.S_CODE}鎺ラ┏浣峽con.S_CODE}鍙敤锛屼笉闇�鏀归亾锛岀洿鎺ヤ慨鏀瑰弬鏁�涓�锛�涓�024", "鏀归亾瀹夊叏浜や簰");
                                 NDCApi.ChangeOrderParam(task.S_CODE, 6, "1");
+                                NDCApi.ChangeOrderParam(task.S_CODE, 4, "1024");
                                 break;
                             }
                         }
@@ -346,11 +364,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;
@@ -432,6 +450,23 @@
 
                 LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}", "NDC");
 
+
+                if (mst.S_TYPE.Contains("鍑哄簱"))
+                {
+                    var wcsTask = TaskHelper.GetTaskByWork("wcs", mst.S_OP_CODE);
+                    if (wcsTask == null) {
+                        LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屾病鎵惧埌浣滀笟:{mst.S_OP_CODE}瀵瑰簲鐨勫嚭搴撲换鍔�, "NDC");
+                        return false;
+                    }
+
+                    if (wcsTask.S_B_STATE=="鏈墽琛�)
+                    {
+                        LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屽搴旂殑Wcs鍑哄簱浠诲姟鏈墽琛岋紝鏆備笉鎺ㄩ�", "NDC");
+                        return false;
+                    }
+                }
+
+
                 start = LocationHelper.GetAgvSiteZc(mst.S_START_LOC);
                 end = LocationHelper.GetAgvSiteZc(mst.S_END_LOC);
 
@@ -440,6 +475,29 @@
                 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" });
+
+
+                var work = TaskHelper.GetWmsWork(mst.S_OP_CODE);
+                if (work==null)
+                {
+                    LogHelper.Info($"鎺ㄩ�浠诲姟{mst.S_CODE}锛屾病鎵惧埌浣滀笟:{mst.S_OP_CODE}", "NDC");
+                    return false;
+                }
+
+                if (string.IsNullOrEmpty(work.CONNECTION))
+                {
+                    ndcParme.Add(new param() { name = "DATA", value = "0" });
+                }
+                else {
+                    ndcParme.Add(new param() { name = "DATA", value = "768" });
+                }
+              
+
+
+
+                ndcParme.Add(new param() { name = "Ctype", value = "0" });
+
 
                 var res =  NDCApi.AddOrderNew(1, mst.N_PRIORITY, mst.S_CODE, ndcParme);
 
@@ -761,6 +819,10 @@
                     }
                     db.CommitTran();
                     LogHelper.Info("缁戝畾瑙g粦", "缁撴潫");
+                    result.errMsg = "瑙g粦瀹屾垚";
+                    result.errCode = 0;
+                    result.success = true;
+                    return result;
                     }
                 }
             catch (Exception e)
@@ -769,6 +831,7 @@
                 LogHelper.Info("鐗╂枡缁戝畾瑙g粦寮傚父:" + e.Message, "鐗╂枡缁戝畾瑙g粦");
                 result.errMsg = "鐗╂枡缁戝畾瑙g粦寮傚父";
                 result.errCode = 1;
+                result.success = false;
                 return result;
             }
             return result;
@@ -1085,7 +1148,7 @@
                     result.success = false;
                     return result;
                 }
-                var endTask = TaskHelper.GetTaskByStartLoc(zd);
+                var endTask = TaskHelper.GetTaskByEndLoc(zd);
                 if (endTask != null)
                 {
                     result.errMsg = "缁堢偣鏈夋墽琛屼腑浠诲姟";
@@ -1179,7 +1242,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
             {
@@ -1286,23 +1378,6 @@
                     //濡傛灉闇�涓嬪彂wcs绔嬪簱锛屽垯闇�瀵绘壘鍙敤鎺ラ┏浣�                     if (workFlow.SENDWCS == "Y") {
 
-                        //娴嬭瘯榛樿鍙栦竴涓帴椹充綅
-                        //var connectionList = LocationHelper.GetAllLocList1(workFlow.CONNECTION);
-                        //foreach (var item in connectionList)
-                        //{
-                        //    if (item.S_LOCK_STATE == "鏃� && item.N_CURRENT_NUM < 2)
-                        //    {
-                        //        connection = item.S_CODE;
-                        //        LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂");
-                        //    }
-                        //}
-
-                        //if (connection=="")
-                        //{
-                        //    LogHelper.Info($"ZCSendTask浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠诲姟涓嬪彂");
-                        //    throw new Exception($"ZCSendTask浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�);
-                        //}
-
                         //姝e紡浠g爜锛岃皟鐢ㄦ帴鍙e鎵惧彲鐢ㄦ帴椹充綅
                         var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION);
                         var usableConnectionList = WcsTask.WcsPositionAvailable(model.task_no, connectionList);
@@ -1335,15 +1410,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")
                     {
@@ -1374,7 +1456,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 +1586,10 @@
                         result.errMsg = "鍏ュ簱浣滀笟鍒涘缓鎴愬姛";
                         result.errCode = 0;
                         result.success = true;
+                        mesRes.errCode = result.errCode;
+                        mesRes.errMsg = result.errMsg;
+                        //淇濆瓨mes璁板綍
+                        CreatMesRes(mesRes);
                         return result;
                     }
                     else {
@@ -1529,16 +1615,57 @@
                     LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "Mes浠诲姟涓嬪彂");
 
 
-                    if (end == null || end.S_LOCK_STATE != "鏃�)
+                    if (end == null)
                     {
-                        LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂澶辫触锛岀粓鐐�{model.Location_To},娌℃壘鍒版垨鏈夐攣", "Mes浠诲姟涓嬪彂");
-                        throw new Exception($"缁堢偣:{model.Location_To},娌℃壘鍒版垨鏈夐攣");
+                        LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂澶辫触锛岀粓鐐�{model.Location_To},娌℃壘鍒�, "Mes浠诲姟涓嬪彂");
+                        throw new Exception($"缁堢偣:{model.Location_To},娌℃壘鍒�);
                     }
 
 
+                    var unlimitedLocation = TaskHelper.GetMesKtLoc();
+
+                    //鏍囪缁堢偣璐т綅鏄惁鍙互鏃犻檺鍒朵笅浠诲姟
+                    var endLocFlag = true;
+
+                    foreach (var item in unlimitedLocation)
+                    {
+                        //鍑哄簱缁堢偣璐т綅鍦ㄩ厤缃噷 鍙互鏃犻檺鍒朵笅浠诲姟
+                        if (item.Loc.Contains(model.Location_To))
+                        {
+                            endLocFlag = false;
+                            break;
+                        }
+                    }
+
+                    if (endLocFlag)
+                    {
+                        var endTask = TaskHelper.GetTaskByEndLoc(model.Location_To);
+                        if (endTask != null)
+                        {
+                            LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂澶辫触锛岀粓鐐�{model.Location_To}鏈変换鍔℃墽琛屼腑锛屼换鍔″彿:{endTask.S_CODE}", "Mes浠诲姟涓嬪彂");
+                            throw new Exception($"缁堢偣:{model.Location_To}鏈変换鍔℃墽琛屼腑锛屼换鍔″彿:{endTask.S_CODE}");
+                        }
+                    }
+                   
+
+
                     //鏌ユ壘璧风偣
-                    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")
@@ -1559,6 +1686,10 @@
                                     result.errMsg = "婊℃墭鍑哄簱浣滀笟鏈夊簱瀛樹絾璁惧鎶ヨ";
                                     result.errCode = 2001;
                                     result.success = true;
+                                    mesRes.errCode = result.errCode;
+                                    mesRes.errMsg = result.errMsg;
+                                    //淇濆瓨mes璁板綍
+                                    CreatMesRes(mesRes);
                                     return result;
                                 }
                             }
@@ -1568,29 +1699,36 @@
                     }
                     else if (workFlow.FLOWCODE == "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浠诲姟涓嬪彂");
+                        //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浠诲姟涓嬪彂");
 
-                            if (itemFlag)
+                        //    if (itemFlag)
+                        //    {
+                        //        result.errMsg = "绌烘墭鍑哄簱浣滀笟鏈夊簱瀛樹絾璁惧鎶ヨ";
+                        //        result.errCode = 2001;
+                        //        result.success = true;
+                        //        return result;
+                        //    }
+                        //}
+
+                        //绌烘墭鍑哄厛缂撳瓨鍒扮┖鎵樿〃
+
+                        //鍏堟煡璇㈡湁娌℃湁鍚岀粓鐐圭紦瀛樼殑璁板綍
+
+                        if (endLocFlag) {
+                            var ktTask = TaskHelper.GetMesKtTask(end.S_CODE);
+                            if (ktTask != null)
                             {
-                                result.errMsg = "绌烘墭鍑哄簱浣滀笟鏈夊簱瀛樹絾璁惧鎶ヨ";
-                                result.errCode = 2001;
-                                result.success = true;
-                                return result;
+                                LogHelper.Info($"ZCSendTask绌烘墭鍑虹紦瀛樺け璐�缁堢偣{end.S_CODE}宸叉湁缂撳瓨", "Mes浠诲姟涓嬪彂");
+                                throw new Exception($"ZCSendTask绌烘墭鍑虹紦瀛樺け璐�缁堢偣{end.S_CODE}宸叉湁缂撳瓨");
                             }
                         }
-                    }
 
-
-                    LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂璧风偣淇℃伅" + JsonConvert.SerializeObject(start), "Mes浠诲姟涓嬪彂");
-
-                    if (workFlow.FLOWCODE == "7" && start == null)
-                    {
-                        //绌烘墭鍑烘病鎵惧埌璧风偣锛屽厛缂撳瓨鍒扮┖鎵樿〃
+                      
 
                         MesKtTask req = new MesKtTask()
                         {
@@ -1599,7 +1737,8 @@
                             Priority = model.Priority,
                             CreateDate = DateTime.Now,
                             BUSI_TYPE = model.BUSI_TYPE,
-                            TOOLS_TPYE = model.TOOLS_TPYE,
+                            TOOLS_TPYE = TOOLSTYPE,
+                            task_no=model.task_no,
                             Status = "N"
                         };
 
@@ -1609,6 +1748,10 @@
                             result.errMsg = "绌烘墭鍑哄簱缂撳瓨鎴愬姛";
                             result.errCode = 0;
                             result.success = true;
+                            mesRes.errCode = result.errCode;
+                            mesRes.errMsg = result.errMsg;
+                            //淇濆瓨mes璁板綍
+                            CreatMesRes(mesRes);
                             return result;
                         }
                         else
@@ -1616,17 +1759,17 @@
                             LogHelper.Info($"ZCSendTask绌烘墭鍑虹紦瀛樺け璐�, "Mes浠诲姟涓嬪彂");
                             throw new Exception($"ZCSendTask绌烘墭鍑虹紦瀛樺け璐�);
                         }
-                        
-                     
-
                     }
-                    else {
+
+
+                        LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂璧风偣淇℃伅" + JsonConvert.SerializeObject(start), "Mes浠诲姟涓嬪彂");
+
                         if (start == null)
                         {
                             LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂澶辫触锛岃捣鐐瑰簱鍖簕workFlow.STARTAREA},娌℃壘鍒拌捣鐐�, "Mes浠诲姟涓嬪彂");
                             throw new Exception($"璧风偣搴撳尯{workFlow.STARTAREA},娌℃壘鍒拌捣鐐�);
                         }
-                    }
+                    
 
                     
 
@@ -1635,23 +1778,6 @@
 
                     if (workFlow.SENDWCS == "Y")
                     {
-                        //娴嬭瘯榛樿鍙栦竴涓帴椹充綅
-                        //var connectionList = LocationHelper.GetAllLocList1(workFlow.CONNECTION);
-                        //foreach (var item in connectionList)
-                        //{
-                        //    if (item.S_LOCK_STATE == "鏃� && item.N_CURRENT_NUM < 2)
-                        //    {
-                        //        connection = item.S_CODE;
-                        //        LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂");
-                        //    }
-                        //}
-
-                        //if (connection == "")
-                        //{
-                        //    LogHelper.Info($"ZCSendTask浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠诲姟涓嬪彂");
-                        //    throw new Exception($"ZCSendTask浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�);
-                        //}
-
 
                         //姝e紡浠g爜锛岃皟鐢ㄦ帴鍙e鎵惧彲鐢ㄦ帴椹充綅
                         var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION);
@@ -1737,10 +1863,22 @@
                     //鍒涘缓浣滀笟
                     if (WMSHelper.CreateWmsWork(operation))
                     {
+                        if (connection!="")
+                        {
+                            LocationHelper.LockLoc(operation.S_START_LOC, "鍑哄簱閿�, 2);
+                            LocationHelper.LockLoc(operation.S_END_LOC, "鍏ュ簱閿�, 1);
+                            LocationHelper.LockLoc(operation.CONNECTION, "鍏ュ簱閿�, 1);
+                        }
+
+
                         LogHelper.Info($"ZCSendTask鍑哄簱浣滀笟鍒涘缓鎴愬姛{operation.S_CODE}", "Mes浠诲姟涓嬪彂");
                         result.errMsg = "鍑哄簱浣滀笟鍒涘缓鎴愬姛";
                         result.errCode = 0;
                         result.success = true;
+                        mesRes.errCode = result.errCode;
+                        mesRes.errMsg = result.errMsg;
+                        //淇濆瓨mes璁板綍
+                        CreatMesRes(mesRes);
                         return result;
                     }
                     else {
@@ -1755,37 +1893,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)
@@ -1794,6 +1901,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;
             }
         }
@@ -1820,7 +1931,12 @@
 
 
 
+        internal static bool CreatMesRes(MesTask model)
+        {
+            var newDb = new SqlHelper<object>().GetInstance();
+            return newDb.Insertable(model).ExecuteCommand()>0;
 
+        }
 
 
 
@@ -2067,13 +2183,56 @@
         }
 
 
-      
 
-      
+
+        internal static void inPri(WMSTask mst)
+        {
+            LogHelper.Info($"浠诲姟{mst.S_CODE}杩涘叆inpri", "鍏ュ簱浼樺厛绾�);
+            var inprilist = TaskHelper.GetInPri();
+            var db = new SqlHelper<object>().GetInstance();
+          
+            foreach (var item in inprilist)
+            {
+                
+                LogHelper.Info("鍏ュ簱浼樺厛绾ц褰曚俊鎭�+JsonConvert.SerializeObject(item), "鍏ュ簱浼樺厛绾�);
+
+                if (item.Type=="0" && mst.S_TYPE.Contains("绌烘墭鍑�))
+                {
+                    if (mst.S_END_LOC.Contains(item.OutEndLoc))
+                    {
+                        
+                        var task = db.Queryable<WMSTask>().Where(a => a.S_B_STATE.Trim() == "宸叉帹閫� && a.S_SCHEDULE_TYPE.Contains("agv") && !a.S_TYPE.Contains("绌烘墭") && (a.S_TYPE.Contains("鍏ュ簱")|| a.S_TYPE.Contains("鍥炲簱")) && a.S_START_LOC.Contains(item.InStartLoc)).First();
+
+                        LogHelper.Info($"鏌ユ壘璧风偣{item.InStartLoc}婊℃墭鍏ュ簱浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task), "鍏ュ簱浼樺厛绾�);
+                        if (task != null)
+                        {
+                            NDCApi.ChangeOrderPri(task.S_CODE, item.Pri);
+                        }
+                       
+                    }
+                }
+
+
+                if (item.Type == "1"  && !mst.S_TYPE.Contains("绌烘墭") && mst.S_TYPE.Contains("鍑哄簱"))
+                {
+                    if (mst.S_END_LOC.Contains(item.OutEndLoc))
+                    {
+                        var task = db.Queryable<WMSTask>().Where(a => a.S_B_STATE.Trim() == "宸叉帹閫� && a.S_SCHEDULE_TYPE.Contains("agv") && a.S_TYPE.Contains("绌烘墭鍏ュ簱") && a.S_START_LOC.Contains(item.InStartLoc)).First();
+                        LogHelper.Info($"鏌ユ壘璧风偣{item.InStartLoc}绌烘墭鍏ュ簱浠诲姟淇℃伅锛� + JsonConvert.SerializeObject(task), "鍏ュ簱浼樺厛绾�);
+                        if (task != null)
+                        {
+                            NDCApi.ChangeOrderPri(task.S_CODE, item.Pri);
+                        }
+                    }
+                }
+
+            }
+            LogHelper.Info($"浠诲姟{mst.S_CODE}锛岀粨鏉焛npri", "鍏ュ簱浼樺厛绾�);
+        }
 
 
 
-        
+           
 
 
         public class signalInfo

--
Gitblit v1.9.1