From adbeeccfcddddbba49718136a1ebb3429ab3b7ae Mon Sep 17 00:00:00 2001
From: lss <Lss@HanInfo>
Date: 星期三, 04 六月 2025 08:35:50 +0800
Subject: [PATCH] 电梯流程开发

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs |  219 ++++++++++++++++++++++++++++--------------------------
 1 files changed, 113 insertions(+), 106 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs
index 2246125..cd60f55 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/api/ApiHelper.cs
@@ -273,7 +273,7 @@
                             LogHelper.Info("鍒涘缓浠诲姟锛� + JsonConvert.SerializeObject(wcsTask), "CreateTask");
                             if (WCSHelper.CreateTask(wcsTask))
                             {
-                                LocationHelper.LockLoc(Start, 2);
+                                LocationHelper.LockLoc(End, 2);
 
                                 LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
                             }
@@ -281,61 +281,65 @@
                         else if (startArea.N_FLOOR != endArea.N_FLOOR)
                         {
                             //妤煎眰鐢垫鍒嗛厤
-                            var endloc1 = Settings.elevatorLoc.Find(a => a.Floor == startArea.N_FLOOR);
-                            var startloc1 = Settings.elevatorLoc.Find(a => a.Floor == endArea.N_FLOOR);
+                            var elevatorLoc = LocationHelper.GetElevatorLoc();
 
-                            //鍒涘缓wcs鍒嗘浠诲姟
-                            var wcsTask = new WCSTask
-                            {
-                                S_CODE = WCSHelper.GenerateTaskNo(),
-                                S_TYPE = "鐢垫1",
-                                S_EQ_NO = taskData.taskNum,
-                                S_START_LOC = Start,
-                                S_END_LOC = endloc1.Location[0],
-                                N_CNTR_COUNT = 1,
-                                S_START_WH = startloc.S_WH_CODE,
-                                S_START_AREA = startloc.S_AREA_CODE,
-                                S_END_WH = endloc.S_WH_CODE,
-                                S_END_AREA = endloc.S_AREA_CODE,
-                                N_SCHEDULE_TYPE = 1,
-                                S_CNTR_CODE = CntrCode,
-                                N_PRIORITY = taskData.priority,
-                                N_START_LAYER = 1,
-                                N_END_LAYER = 1,
-                                S_WMS_NO = taskData.wmsTaskNo,
-                                Z_TYPE = n_type,
-                                S_MES_NO = taskData.mesTaskNo
-                            };
-                            var wcsTask1 = new WCSTask
-                            {
-                                S_CODE = WCSHelper.GenerateTaskNo(),
-                                S_TYPE = "鐢垫2",
-                                S_EQ_NO = taskData.taskNum,
-                                S_START_LOC = startloc1.Location[0],
-                                S_END_LOC = End,
-                                N_CNTR_COUNT = 1,
-                                S_START_WH = startloc.S_WH_CODE,
-                                S_START_AREA = startloc.S_AREA_CODE,
-                                S_END_WH = endloc.S_WH_CODE,
-                                S_END_AREA = endloc.S_AREA_CODE,
-                                N_SCHEDULE_TYPE = 1,
-                                S_CNTR_CODE = CntrCode,
-                                N_PRIORITY = taskData.priority,
-                                S_WMS_NO = taskData.wmsTaskNo,
-                                N_START_LAYER = 1,
-                                N_END_LAYER = 1,
-                                Z_TYPE = n_type,
-                                S_MES_NO = taskData.mesTaskNo
+                            if (elevatorLoc != null)
+                            {  //鍒涘缓wcs鍒嗘浠诲姟
+                                var wcsTask = new WCSTask
+                                {
+                                    S_CODE = WCSHelper.GenerateTaskNo(),
+                                    S_TYPE = "鐢垫1",
+                                    S_EQ_NO = taskData.taskNum,
+                                    S_START_LOC = Start,
+                                    S_END_LOC = elevatorLoc.S_CODE,
+                                    N_CNTR_COUNT = 1,
+                                    S_START_WH = startloc.S_WH_CODE,
+                                    S_START_AREA = startloc.S_AREA_CODE,
+                                    S_END_WH = elevatorLoc.S_WH_CODE,
+                                    S_END_AREA = elevatorLoc.S_AREA_CODE,
+                                    N_SCHEDULE_TYPE = 1,
+                                    S_CNTR_CODE = CntrCode,
+                                    N_PRIORITY = taskData.priority,
+                                    N_START_LAYER = 1,
+                                    N_END_LAYER = 1,
+                                    S_WMS_NO = taskData.wmsTaskNo,
+                                    Z_TYPE = n_type,
+                                    S_MES_NO = taskData.mesTaskNo
+                                };
+                                var wcsTask1 = new WCSTask
+                                {
+                                    S_CODE = WCSHelper.GenerateTaskNo(),
+                                    S_TYPE = "鐢垫2",
+                                    S_EQ_NO = taskData.taskNum,
+                                    S_START_LOC = elevatorLoc.S_CODE,
+                                    S_END_LOC = End,
+                                    N_CNTR_COUNT = 1,
+                                    S_START_WH = elevatorLoc.S_WH_CODE,
+                                    S_START_AREA = elevatorLoc.S_AREA_CODE,
+                                    S_END_WH = endloc.S_WH_CODE,
+                                    S_END_AREA = endloc.S_AREA_CODE,
+                                    N_SCHEDULE_TYPE = 1,
+                                    S_CNTR_CODE = CntrCode,
+                                    N_PRIORITY = taskData.priority,
+                                    S_WMS_NO = taskData.wmsTaskNo,
+                                    N_START_LAYER = 1,
+                                    N_END_LAYER = 1,
+                                    Z_TYPE = n_type,
+                                    S_MES_NO = taskData.mesTaskNo
 
-                            };
+                                };
+                                LogHelper.Info("鍒涘缓浠诲姟锛� + JsonConvert.SerializeObject(wcsTask), "CreateTask");
+                                if (WCSHelper.CreateTask(wcsTask) && WCSHelper.CreateTask(wcsTask1))
+                                {
 
-                            LogHelper.Info("鍒涘缓浠诲姟锛� + JsonConvert.SerializeObject(wcsTask), "CreateTask");
-                            if (WCSHelper.CreateTask(wcsTask) && WCSHelper.CreateTask(wcsTask1))
-                            {
-
-                                LocationHelper.LockLoc(endloc.S_CODE, 1);
-                                LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                                    // LocationHelper.LockLoc(Start, 1);
+                                    LocationHelper.LockLoc(End, 2);
+                                    LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                                }
                             }
+
+
+
                         }
                     }
                     else
@@ -740,6 +744,18 @@
             string areacode = "";
             try
             {
+
+                #region 鍏ュ簱妫�煡鎵樼洏鐗╂枡琛ㄦ湁鏃犳暟鎹�+                var cntritem = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).First();
+                if (cntritem == null)
+                {
+                    result.code = "1";
+                    result.msg = $"鍒涘缓浠诲姟澶辫触锛屾墭鐩�{model.Rfid}鏃犵粦瀹氱墿鏂欐暟鎹�;
+                    LogHelper.Info($"ItemBack锛歿result.msg}");
+                    AddErrorInfo("鎵樼洏缁戝畾鐗╂枡鏁版嵁涓虹┖", result.msg, Source);
+                    return result;
+                }
+                #endregion
 
                 #region 鍒ゆ柇鎵樼洏缁戝畾璐т綅鏄惁鍜屼笅鍙戠粦瀹氳捣鐐圭浉鍚�濡傛灉娌$粦瀹氭墭鐩樺垯缁戝畾鎵樼洏
                 var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE.Trim() == model.Rfid).First();
@@ -1476,8 +1492,6 @@
 
             try
             {
-
-
                 #region 浣欐枡杩斿洖鏍规嵁鎵樼洏鎵惧嚭搴撲换鍔�                 //浣欐枡杩斿洖鏍规嵁鎵樼洏鎵惧嚭搴撲换鍔�                 //msts = WCSHelper.GetTaskBycntrcode(model.Rfid);
@@ -1515,10 +1529,11 @@
                     if (whcode != null)
                     {
                         //绮夋枡鐩存帴鍥炲簱锛屽叾浠栫墿鏂欓渶瑕佸幓瀵瑰簲鐨勬殏瀛樺尯
+                        #region 鏍规嵁鐗╂枡鍒ゆ柇鍥炲簱搴撳尯
                         if (model.PartNumber.StartsWith("4X"))
                         {
                             areacode = whcode.PMK;
-                            loc = StorageCompute(itemcode, areacode);
+                            //loc = StorageCompute(itemcode, areacode);
                             //if (loc == null)
                             //{
                             //    loc = emptyRow(areacode);
@@ -1564,49 +1579,41 @@
                                 AddErrorInfo("鐗╂枡缂栫爜鏍煎紡閿欒", result.msg, Source);
                                 return result;
                             }
-                            var EndLocs = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == areacode).ToList();
-                            if (EndLocs.Count > 0)
-                            {
-                                //loc =  EndLocs.Find(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0);
-                                loc = FindEndcolByLocList(EndLocs);
-                                if (loc != null)
-                                {
-                                    End = loc.S_CODE;
-                                }
-                                else
-                                {
-                                    result.code = "1";
-                                    result.msg = $"缁堢偣搴撳尯锛歿areacode}鏃犲彲鐢ㄨ揣浣�;
-                                    AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source);
-                                    return result;
-                                }
 
-                            }
-                            else
-                            {
-                                result.code = "1";
-                                result.msg = $"鏍规嵁缁堢偣搴撳尯锛歿areacode},鏈壘鍒板搴旇揣浣�;
-                                AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source);
-                                return result;
-                            }
-                            //loc = StorageCompute(itemcode, areacode);
-                            //if (loc == null)
-                            //{
-                            //    loc = emptyRow(areacode);
-                            //}
+
                         }
+                        #endregion
+
+
+                        var EndLocs = db.Queryable<Location>().Where(a => a.S_AREA_CODE.Trim() == areacode).ToList();
+                        //鏌ユ壘璐т綅搴撳尯
+                        if (EndLocs.Count > 0)
+                        {
+                            //loc =  EndLocs.Find(a => a.N_CURRENT_NUM == 0 && a.N_LOCK_STATE == 0);
+                            loc = FindEndcolByLocList(EndLocs);
+
+
+                        }
+                        else
+                        {
+                            result.code = "1";
+                            result.msg = $"鏍规嵁缁堢偣搴撳尯锛歿areacode},鏈壘鍒板搴旇揣浣�;
+                            AddErrorInfo("鏌ユ壘搴撳尯澶辫触", result.msg, Source);
+                            return result;
+                        }
+
                         if (loc != null)
                         {
                             End = loc.S_CODE;
                         }
                         else
                         {
-
                             result.code = "1";
                             result.msg = $"搴撳尯:{areacode}鏃犲彲鐢ㄨ揣浣�;
                             AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg, Source);
                             return result;
                         }
+
                     }
                     else
                     {
@@ -1968,18 +1975,19 @@
                     // var startArea = db.Queryable<Area>().Where(a => a.S_CODE.Trim() == startloc.S_AREA_CODE).First();
                     //var endArea = db.Queryable<Area>().Where(a => a.S_CODE.Trim() == endloc.S_AREA_CODE).First();
 
-                    string dtcode = "DT-01";
-                    //妤煎眰鐢垫鍒嗛厤
-                    var Diantiloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == dtcode).First();
-                    if (Diantiloc == null)
-                    {
-                        result.code = "1";
-                        result.msg = $"鍒涘缓浠诲姟澶辫触锛屾牴鎹揣浣嶇紪鐮�{dtcode}鏈壘鍒扮數姊揣浣�;
-                        AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg, Source);
-                        return result;
-                    }
+                    //string dtcode = "DT-01";
+                    ////妤煎眰鐢垫鍒嗛厤
+                    //var Diantiloc = db.Queryable<Location>().Where(a => a.S_CODE.Trim() == dtcode).First();
+                    //if (Diantiloc == null)
+                    //{
+                    //    result.code = "1";
+                    //    result.msg = $"鍒涘缓浠诲姟澶辫触锛屾牴鎹揣浣嶇紪鐮�{dtcode}鏈壘鍒扮數姊揣浣�;
+                    //    AddErrorInfo("鏌ユ壘璐т綅澶辫触", result.msg, Source);
+                    //    return result;
+                    //}
 
-                    //鏍规嵁鐢垫鏁伴噺鍒ゆ柇閫佸線鍝釜鐢垫 锛堝叿浣撶數姊祦绋嬫牴鎹幇鍦虹數姊暟閲忥級
+                    //鏍规嵁浠诲姟鏁伴噺鍒ゆ柇閫佸線鍝釜鐢垫 锛堝叿浣撶數姊祦绋嬫牴鎹幇鍦虹數姊暟閲忥級
+                    var elevatorLoc = LocationHelper.GetElevatorLoc();
 
                     //鍒涘缓wcs鍒嗘浠诲姟
                     var wcsTask = new WCSTask
@@ -1989,12 +1997,12 @@
                         S_TYPE = "鐢垫1",
                         S_EQ_NO = model.Data.task_no,
                         S_START_LOC = startloc.S_CODE,
-                        S_END_LOC = Diantiloc.S_CODE,
+                        S_END_LOC = elevatorLoc.S_CODE,
                         N_CNTR_COUNT = 1,
                         S_START_WH = startloc.S_WH_CODE,
                         S_START_AREA = startloc.S_AREA_CODE,
-                        S_END_WH = endloc.S_WH_CODE,
-                        S_END_AREA = endloc.S_AREA_CODE,
+                        S_END_WH = elevatorLoc.S_WH_CODE,
+                        S_END_AREA = elevatorLoc.S_AREA_CODE,
                         N_SCHEDULE_TYPE = 1,
                         S_CNTR_CODE = cntr.S_CNTR_CODE,
                         N_END_LAYER = 1,
@@ -2005,11 +2013,11 @@
                         S_CODE = WCSHelper.GenerateTaskNo(),
                         S_TYPE = "鐢垫2",
                         S_EQ_NO = model.Data.task_no,
-                        S_START_LOC = Diantiloc.S_CODE,
+                        S_START_LOC = elevatorLoc.S_CODE,
                         S_END_LOC = endloc.S_CODE,
                         N_CNTR_COUNT = 1,
-                        S_START_WH = startloc.S_WH_CODE,
-                        S_START_AREA = startloc.S_AREA_CODE,
+                        S_START_WH = elevatorLoc.S_WH_CODE,
+                        S_START_AREA = elevatorLoc.S_AREA_CODE,
                         S_END_WH = endloc.S_WH_CODE,
                         S_END_AREA = endloc.S_AREA_CODE,
                         N_SCHEDULE_TYPE = 1,
@@ -2117,7 +2125,6 @@
             return result;
         }
 
-
         /// <summary>
         /// 搴撲綅娓呯┖
         /// </summary>
@@ -2211,8 +2218,8 @@
             {
                 device.AgvQty = agvDeviceInfo.Count;
                 device.AgvErrorQty = agvDeviceInfo.FindAll(a => a.agvErrCode != "0" || a.agvErrCode != "0" || a.faildCode != "0").Count;
-                device.AgvChargeQty = agvDeviceInfo.FindAll(a =>  a.agvErrCode == "1").Count;
-                device.AgvRunQty = agvDeviceInfo.FindAll(a =>  a.agvErrCode == "1").Count;
+                device.AgvChargeQty = agvDeviceInfo.FindAll(a => a.agvErrCode == "1").Count;
+                device.AgvRunQty = agvDeviceInfo.FindAll(a => a.agvErrCode == "1").Count;
                 foreach (var agv in agvDeviceInfo)
                 {
                     string agvErrorInfo = GetAgvAlarmSendCodeTwo(agv.agvErrCode, agv.errCode2, agv.faildCode);
@@ -2546,7 +2553,7 @@
                         Location other = null;
                         //褰撳墠鎺掓病鏈夐攣骞朵笖鏈夌┖浣嶇疆
                         //鍏堟壘婊′綅锛岀劧鍚庡悗闈竴灞傝涔堟槸绌猴紝瑕佷箞涓嶅瓨鍦�-                        other = rowList.OrderByDescending(a => a.N_COL).Where(a => a.N_CURRENT_NUM == 0).FirstOrDefault();
+                        other = rowList.OrderBy(a => a.N_COL).Where(a => a.N_CURRENT_NUM == 0).FirstOrDefault();
                         //if (full == null)
                         //{
                         //    //娌℃湁婊′綅锛岄偅灏辨壘鏈�皬鐨勭┖浣�
--
Gitblit v1.9.1