From 23b4700a5a8555684de58b5d80ff06ae387432f2 Mon Sep 17 00:00:00 2001
From: lss <Lss@HanInfo>
Date: 星期五, 16 五月 2025 17:24:49 +0800
Subject: [PATCH] 流程开发

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs |  178 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 161 insertions(+), 17 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs
index 46fa97f..5f8b1bc 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/api/ApiHelper.cs
@@ -140,7 +140,7 @@
             return result;
         }
 
-      
+
 
         private static object lockObj = new object();
         /// <summary>
@@ -268,7 +268,7 @@
         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
-        internal static Result EquipmentInfo(EquipmentInfoModel model)
+        internal static Result NotifyDeviceSignal(NotifyDeviceSignalModel model)
         {
             Result result = new Result { resultCode = 0, resultMsg = "鍒涘缓鎴愬姛" };
             if (model == null)
@@ -282,28 +282,29 @@
             string cntrcode = model.CntrNo;
             var db = new SqlHelper<object>().GetInstance();
 
-            if (model.DeviceNo=="1")//鍙犵洏鏈�+            if (model.DeviceNo == "1")//鍙犵洏鏈�             {
-
-            }
-            else //鍏ュ簱绌�-            {
-                #region 鑾峰彇璧风偣淇℃伅
-                //鏍规嵁鎵樼洏鑾峰彇璧风偣淇℃伅
-                var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrcode).First();
-                if (CntrLoc == null)
+                #region 鑾峰彇璧风偣淇℃伅锛屽苟鍒ゆ柇绌烘墭鏄惁鍙犳弧
+                //鏍规嵁璧风偣 鑾峰彇缁戝畾鎵樼洏鏁伴噺
+                var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == model.Loc).ToList();
+                if (CntrLoc.Count < 4)
                 {
                     result.resultCode = -1;
-                    result.resultMsg = $"鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�;
-                    LogHelper.Info($"creattask:鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�);
+                    result.resultMsg = $"鏍规嵁璐т綅:{model.Loc}鑾峰彇鎵樼洏鏁伴噺灏忎簬4";
+                    LogHelper.Info($"EquipmentInfo:鏍规嵁璐т綅:{model.Loc}鑾峰彇鎵樼洏鏁伴噺灏忎簬4");
                     return result;
                 }
-                startloc = LocationHelper.GetLoc(CntrLoc.S_LOC_CODE);
+                else
+                {
+                    //鎷兼帴鎵樼洏鍙�+                    cntrcode = CntrLoc.Select(a => a.S_CNTR_CODE).ToString();
+                }
+                startloc = LocationHelper.GetLoc(model.Loc);
                 if (startloc == null)
                 {
                     result.resultCode = -1;
-                    result.resultMsg = $"鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�;
-                    LogHelper.Info($"creattask:鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�);
+                    result.resultMsg = $"鏍规嵁璧风偣:{model.Loc}鏈壘鍒拌揣浣嶄俊鎭�;
+                    LogHelper.Info($"EquipmentInfo:鏍规嵁璧风偣:{model.Loc}鏈壘鍒拌揣浣嶄俊鎭�);
                     return result;
                 }
 
@@ -315,9 +316,10 @@
                 {
                     result.resultCode = -1;
                     result.resultMsg = $"鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌";
-                    LogHelper.Info($"creattask:鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌");
+                    LogHelper.Info($"EquipmentInfo:鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌");
                     return result;
                 }
+
                 #endregion
 
                 #region 鍒涘缓浠诲姟
@@ -347,6 +349,148 @@
                 }
                 #endregion
             }
+            else //鍏ュ簱绌�+            {
+                //鍏ュ簱鍙g敵璇峰叆搴�+                if (model.SignalType == 1)
+                {
+                    #region 鑾峰彇璧风偣淇℃伅
+                    //鏍规嵁鎵樼洏鑾峰彇璧风偣淇℃伅
+                    var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrcode).First();
+                    if (CntrLoc == null)
+                    {
+                        result.resultCode = -1;
+                        result.resultMsg = $"鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�;
+                        LogHelper.Info($"EquipmentInfo:鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�);
+                        return result;
+                    }
+                    startloc = LocationHelper.GetLoc(CntrLoc.S_LOC_CODE);
+                    if (startloc == null)
+                    {
+                        result.resultCode = -1;
+                        result.resultMsg = $"鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�;
+                        LogHelper.Info($"EquipmentInfo:鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�);
+                        return result;
+                    }
+
+                    #endregion
+
+                    #region 璁$畻绔嬪簱缁堢偣
+                    endloc = LocationHelper.InStorage(startloc);
+                    if (endloc == null)
+                    {
+                        result.resultCode = -1;
+                        result.resultMsg = $"鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌";
+                        LogHelper.Info($"EquipmentInfo:鏈绠楀埌绔嬪簱缁堢偣璐т綅锛岃妫�煡璐т綅鎯呭喌");
+                        return result;
+                    }
+                    #endregion
+
+                    #region 鍒涘缓浠诲姟
+                    if (startloc != null && endloc != null)
+                    {
+                        var wcsTask = new WCSTask
+                        {
+                            S_CODE = WCSHelper.GenerateTaskNo(),
+                            S_TYPE = "鍏ュ簱",
+                            S_START_LOC = startloc.S_CODE,
+                            S_END_LOC = endloc.S_CODE,
+                            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_CNTR_COUNT = 1,
+                            N_SCHEDULE_TYPE = 2,
+                            S_CNTR_CODE = cntrcode
+                        };
+                        LogHelper.Info("鍒涘缓鍏ュ钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask));
+                        if (WCSHelper.CreateTask(wcsTask))
+                        {
+                            LocationHelper.LockLoc(startloc.S_CODE, 2);
+                            LocationHelper.LockLoc(endloc.S_CODE, 1);
+                            LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                        }
+                    }
+                    #endregion
+                }
+                //鍏ュ簱绌虹敵璇峰彔鐩�+                else
+                {
+                    //鍒ゆ柇璁惧鐘舵�鏄惁灞炰簬鍙犵洏鐘舵�
+                    var DeviceStatu = db.Queryable<EquipmentStatus>().Where(a => a.deviceNo == model.DeviceNo).First();
+                    if (DeviceStatu != null && DeviceStatu.Status == "1")
+                    {
+                        #region 鑾峰彇璧风偣淇℃伅
+                        //鏍规嵁鎵樼洏鑾峰彇璧风偣淇℃伅
+                        var CntrLoc = db.Queryable<LocCntrRel>().Where(a => a.S_CNTR_CODE == cntrcode).First();
+                        if (CntrLoc == null)
+                        {
+                            result.resultCode = -1;
+                            result.resultMsg = $"鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�;
+                            LogHelper.Info($"EquipmentInfo:鏍规嵁鎵樼洏:{cntrcode}鏈壘鍒扮粦瀹氭墭鐩�);
+                            return result;
+                        }
+                        startloc = LocationHelper.GetLoc(CntrLoc.S_LOC_CODE);
+                        if (startloc == null)
+                        {
+                            result.resultCode = -1;
+                            result.resultMsg = $"鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�;
+                            LogHelper.Info($"EquipmentInfo:鏍规嵁璧风偣:{CntrLoc.S_LOC_CODE}鏈壘鍒拌揣浣嶄俊鎭�);
+                            return result;
+                        }
+
+                        #endregion
+
+                        #region 鑾峰彇缁堢偣淇℃伅
+                        string DiePanLoc = "";
+                        //鏍规嵁鎵樼洏鑾峰彇璧风偣淇℃伅
+                        endloc = db.Queryable<Location>().Where(a => a.S_CODE == DiePanLoc).First();
+                        if (endloc == null)
+                        {
+                            result.resultCode = -1;
+                            result.resultMsg = $"鏍规嵁璐т綅缂栫爜锛歿DiePanLoc}鏈壘鍒板彔鐩樿揣浣�;
+                            LogHelper.Info($"EquipmentInfo:鏍规嵁璐т綅缂栫爜锛歿DiePanLoc}鏈壘鍒板彔鐩樿揣浣�);
+                            return result;
+                        }
+                        #endregion
+
+                        #region 鍒涘缓浠诲姟
+                        if (startloc != null && endloc != null)
+                        {
+                            var wcsTask = new WCSTask
+                            {
+                                S_CODE = WCSHelper.GenerateTaskNo(),
+                                S_TYPE = "鍏ュ簱",
+                                S_START_LOC = startloc.S_CODE,
+                                S_END_LOC = endloc.S_CODE,
+                                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_CNTR_COUNT = 1,
+                                N_SCHEDULE_TYPE = 2,
+                                S_CNTR_CODE = cntrcode
+                            };
+                            LogHelper.Info("鍒涘缓鍏ュ钩搴撲换鍔★細" + JsonConvert.SerializeObject(wcsTask));
+                            if (WCSHelper.CreateTask(wcsTask))
+                            {
+                                LocationHelper.LockLoc(startloc.S_CODE, 2);
+                                LocationHelper.LockLoc(endloc.S_CODE, 1);
+                                LogHelper.Info("鍒涘缓浠诲姟鎴愬姛");
+                            }
+                        }
+                        
+                        #endregion
+                    }
+                    else
+                    {
+                        result.resultCode = -1;
+                        result.resultMsg = $"褰撳墠鍙犵洏鏈虹姸鎬佷笉灞炰簬鍙犵洏鐘舵�锛屼笉鍏佽绌烘墭鍙犳墭";
+                        LogHelper.Info($"EquipmentInfo:褰撳墠鍙犵洏鏈虹姸鎬佷笉灞炰簬鍙犵洏鐘舵�锛屼笉鍏佽绌烘墭鍙犳墭");
+                        return result;
+                    }
+                }
+            }
 
 
             return result;

--
Gitblit v1.9.1