From 8cb4f66c6cf5639280a27e0ef28360cd46842197 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期二, 17 六月 2025 17:34:06 +0800
Subject: [PATCH] 111

---
 HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs |  167 +++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 125 insertions(+), 42 deletions(-)

diff --git a/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs b/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
index a6b6881..81846c5 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
@@ -4,6 +4,7 @@
 using HH.WCS.Mobox3.NFLZ.wms;
 using System;
 using System.Collections.Generic;
+using System.Configuration;
 using System.Linq;
 using System.Text;
 using System.Threading;
@@ -46,33 +47,81 @@
         }
 
         /// <summary>
-        /// 鐡剁洊杞繍
+        /// 杞繍浠诲姟
         /// </summary>
         internal static void BottleBlankTransportation()
         {
             var db = new SqlHelper<object>().GetInstance();
-            var jbwInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊鍏ュ簱鎺ラ┏浣� && a.enable == 1).FirstOrDefault();
-            if(jbwInfo != null)
+            #region 鐡剁洊婊℃墭鍏ュ簱
+            var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊鍏ュ簱鎺ラ┏" && a.enable == 1).FirstOrDefault();
+            if (areaInfo != null)
             {
-                var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == jbwInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First();
-                if(locInfo != null)
+                var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM > 0 && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First();
+                if (locInfo != null)
                 {
-                    LogHelper.Info($"銆愮摱鐩栬浆杩愩�鐡跺澂鎺ラ┏浣嶆煡璇㈠埌闇�叆搴撶殑鐡跺澂锛岃揣浣嶇紪鐮侊細{locInfo.S_CODE}");
-                    if(locInfo.LocCntrRel != null)
+                    LogHelper.Info($"銆愮摱鐩栨弧鎵樿浆杩愩�鐡跺澂鎺ラ┏浣嶆煡璇㈠埌闇�叆搴撶殑鐡跺澂锛岃揣浣嶇紪鐮侊細{locInfo.S_CODE}");
+                    if (locInfo.LocCntrRel != null)
                     {
                         //鍒涘缓浣滀笟
-                        WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鐡剁洊杞繍", locInfo.LocCntrRel.S_CNTR_CODE,"鐡剁洊");
+                        WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, locInfo.LocCntrRel.S_CNTR_CODE, "鐡剁洊");
                     }
                     else
                     {
-                        LogHelper.Info($"銆愮摱鐩栬浆杩愩�褰撳墠璐т綅鏈粦瀹氭墭鐩樼爜锛岃揣浣嶇紪鐮侊細{locInfo.S_CODE}");
+                        LogHelper.Info($"銆愮摱鐩栨弧鎵樿浆杩愩�褰撳墠璐т綅鏈粦瀹氭墭鐩樼爜锛岃揣浣嶇紪鐮侊細{locInfo.S_CODE}");
                     }
                 }
             }
             else
             {
-                LogHelper.Info("銆愮摱鐩栬浆杩愩�鐡跺澂鎺ラ┏浣嶆湭閰嶇疆");
+                LogHelper.Info("銆愮摱鐩栨弧鎵樿浆杩愩�鐡剁洊鍏ュ簱鎺ラ┏ 鏈厤缃�);
             }
+            #endregion
+
+            #region 鐡跺澂绌烘墭鍏ュ簱
+            areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡剁洊闈炲嵆浜х┖妗� && a.enable == 1).FirstOrDefault();
+            if(areaInfo != null)
+            {
+                var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).Includes(a => a.LocCntrRel).First();
+                if(locInfo != null && locInfo.LocCntrRel != null)
+                {
+                    //鍒涘缓浣滀笟
+                    WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鐡剁洊绌烘墭鍏ュ簱", locInfo.LocCntrRel.S_CNTR_CODE, "鐡剁洊");
+                }
+            }
+            else
+            {
+                LogHelper.Info("銆愮摱鐩栫┖鎵樿浆杩愩�鐡剁洊闈炲嵆浜х┖妗�鏈厤缃�);
+            }
+            #endregion
+
+            #region 鐡跺澂婊℃墭鍏ュ簱
+            areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦鍏ュ簱鎺ラ┏" && a.enable == 1).FirstOrDefault();
+            if (areaInfo != null)
+            {
+                var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).First();
+                if (locInfo != null)
+                {
+                    string cntr = "";
+                    var cntrList = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == locInfo.S_CODE).ToList();
+                    if (cntrList.Count > 0)
+                    {
+                        foreach (var a in cntrList)
+                        {
+                            cntr = cntr + a.S_CNTR_CODE + ",";
+                        }
+                    }
+                    cntr = cntr.TrimEnd(',');
+                    //鍒涘缓浣滀笟
+                    WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntr, "鐡跺澂");
+                }
+            }
+            else
+            {
+                LogHelper.Info("銆愮摱鍧弧鎵樿浆杩愩�鐡惰儦鍏ュ簱鎺ラ┏ 鏈厤缃�);
+            }
+
+            #endregion
+
         }
 
         /// <summary>
@@ -81,48 +130,82 @@
         /// <exception cref="NotImplementedException"></exception>
         internal static void BCPWorkSurveillance()
         {
-            //鍒ゆ柇褰撳墠鍗婃垚鍝佸伐鍗曟槸鍚︽湁鎵ц涓殑浠诲姟锛屽鏋滄病鏈夛紝鍒欒绾胯竟搴撶殑鐗╂枡鍏ュ簱
+            //鐡剁洊缈绘枟鏈哄伐鍗�+            //寮�惎锛屾煡璇�鐡剁洊闈炴�浜ф�鐢�鐗╂枡鏄惁婊★紝涓嶆弧鍒欒ˉ鍏呯墿鏂�+            //鍏抽棴锛�1銆佹煡璇�鐡剁洊绌烘墭 鏄惁杩樻湁鎵樼洏锛屾湁鍒欏叆搴� 2銆佹煡璇㈢摱鐩栭潪鍗充骇鍗崇敤 鏄惁鏈夌墿鏂欙紝 鏈夊垯鍏ュ簱
+            //鐡跺澂缈绘枟鏈�+            //寮�惎锛屾煡璇㈡槸鍚︿负闈炲嵆浜у嵆鐢紝濡傛灉涓洪潪鍗充骇鍗崇敤锛屽垯鍒ゆ柇鐡跺澂闈炲嵆浜у嵆鐢ㄥ簱鍖烘槸鍚︽弧锛�涓嶆弧鍒欒ˉ绌虹墿鏂�+            //鍏抽棴锛屾煡璇�鐡跺澂闈炲嵆浜у嵆鐢�鐡跺澂鍗充骇鍗崇敤A 鐡跺澂鍗充骇鍗崇敤B 鏄惁鏈夌墿鏂欙紝鏈夊垯鍏ュ簱
+            //鐡跺澂娉ㄥ鏈�+            //寮�惎锛屾煡璇�鐡跺澂绌烘墭 鏄惁绌烘墭鏁伴噺澶т簬3鎵橈紝濡傛灉涓嶅ぇ浜庯紝鍒欒ˉ绌烘墭
+            //鍏抽棴锛屾煡璇�鐡跺澂绌烘墭 鏄惁鏈夌┖鎵橈紝鏈夊垯鍏ュ簱
+
+
+
+            //鍒ゆ柇褰撳墠鍗婃垚鍝佸伐鍗曟槸鍚︽湁鎵ц涓殑浠诲姟
+            //宸ュ崟绫诲瀷锛�1銆佸啘澶灄鑺�鐡跺澂鏈�2銆佸啘澶灄鑺�鐡剁洊缈绘枟鏈�3銆佸啘澶灄鑺�鐡跺澂缈绘枟鏈�+            bool PPZUUSE = false; //鐡跺澂鏈烘槸鍚︿娇鐢�+            bool PPFDUSE = false; //鐡跺澂缈绘枟鏈烘槸鍚︿娇鐢�+            bool PGFDUSE = false; //鐡剁洊缈绘枟鏈烘槸鍚︿娇鐢�+
             var db = new SqlHelper<object>().GetInstance();
             var workList = db.Queryable<LinZhiBCPWorkOrder>().Where(a => a.S_WorkState == "鎵ц涓�).ToList();
-            if(workList.Count == 0)
+            if (workList.Count > 0)
             {
-                var taskInfo = db.Queryable<WCSTask>().Where(a => a.S_TYPE == "鎺ラ┏浣嶇Щ搴� && a.S_B_STATE != "瀹屾垚" && a.S_B_STATE != "鍙栨秷" && a.S_B_STATE != "鍗歌揣瀹屾垚" && a.S_B_STATE != "寮�鍗歌揣" && a.S_B_STATE != "鍙栬揣瀹屾垚").First();
-                if(taskInfo == null)
+                foreach (var a in workList)
                 {
-                    var areaInfo = Settings.areaInfos.Where(a => (a.areaName == "鐡跺澂闈炲嵆浜у嵆鐢� || a.areaName == "鐡跺澂鍗充骇鍗崇敤A") && a.enable == 1).ToList();
-                    if (areaInfo.Count > 0)
+                    if (a.S_PLineNo == "鍐滃か鏋楄姖-鐡跺澂鏈�)
                     {
-                        foreach (var a in areaInfo)
-                        {
-                            var locInfo = db.Queryable<Location>().Where(b => b.S_AREA_CODE == a.areaCode && b.N_CURRENT_NUM > 0 && b.S_LOCK_STATE == "鏃�).Includes(b => b.LocCntrRel).First();
-                            if (locInfo != null)
-                            {
-                                //鍒涘缓浣滀笟
-                                WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶇Щ搴�, locInfo.LocCntrRel.S_CNTR_CODE);
-                            }
-
-                        }
+                        PPZUUSE = true;
                     }
-
-                    var areaInfoTwo = Settings.areaInfos.Where(a => a.areaName == "鐡跺澂鍗充骇鍗崇敤B" && a.enable == 1).First();
-                    if (areaInfoTwo != null)
+                    else if (a.S_PLineNo == "鍐滃か鏋楄姖-鐡剁洊缈绘枟鏈�)
                     {
-                        var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfoTwo.areaCode && a.N_CURRENT_NUM > 0).OrderBy(a => a.N_ROW).OrderByDescending(a => a.N_COL).Take(1).PartitionBy(a => a.N_ROW).Includes(a => a.LocCntrRel).ToList();
-                        if(locInfo.Count > 0)
-                        {
-                            foreach(var a in locInfo)
-                            {
-                                if(a.S_LOCK_STATE == "鏃�)
-                                {
-                                    //鍒涘缓浣滀笟
-                                    WMSHelper.CreateOpTask(a.S_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶇Щ搴�, a.LocCntrRel.S_CNTR_CODE,"鐡跺澂");
-                                    break;
-                                }
-                            }
-                        }
+                        PGFDUSE = true;
+                    }
+                    else
+                    {
+                        PPFDUSE = true;
                     }
                 }
             }
+
+            //鐡跺澂鏈轰娇鐢紝鍒欎粠 鐡跺澂搴撳尯 琛ュ厖绌烘墭鍒�鐡跺澂绌烘墭 锛屾湭浣跨敤锛屽垯灏�鐡跺澂绌烘墭 鐨勭┖鎵�绉诲埌 鐡跺澂搴撳尯
+            //鐡跺澂缈绘枟鏈轰娇鐢紝鍒欎粠 鐡跺澂搴撳尯 琛ュ厖绌烘墭鍒�鐡跺澂鍗充骇鍗崇敤/鐡跺澂闈炲嵆浜у嵆鐢�锛屾湭浣跨敤锛屽垯灏�鐡跺澂鍗充骇鍗崇敤/鐡跺澂闈炲嵆浜у嵆鐢�鐨勭┖鎵�绉诲埌 鐡跺澂搴撳尯
+            //鐡剁洊缈绘枟鏈轰娇鐢紝鍒欎粠 鐡剁洊搴撳尯 琛ュ厖绌烘墭鍒�鐡跺澂闈炲嵆浜у嵆鐢�锛屾湭浣跨敤锛屽垯灏�鐡跺澂闈炲嵆浜у嵆鐢�鐨勭┖鎵�绉诲埌 鐡剁洊搴撳尯
+
+            TaskProcess.BCPYiKu(PPZUUSE, "鐡跺澂娉ㄥ鏈�);
+            TaskProcess.BCPYiKu(PPFDUSE, "鐡跺澂缈绘枟鏈�);
+            TaskProcess.BCPYiKu(PGFDUSE, "鐡剁洊缈绘枟鏈�);
+
+        }
+
+        internal static void JBDEIN()
+        {
+            var db = new SqlHelper<object>().GetInstance();
+            var areaInfo = Settings.areaInfos.Where(a => a.areaName == "鐡惰儦鍏ュ簱鎺ラ┏" && a.enable == 1).FirstOrDefault();
+            if(areaInfo != null)
+            {
+                var locInfo = db.Queryable<Location>().Where(a => a.S_AREA_CODE == areaInfo.areaCode && a.N_CURRENT_NUM == a.N_CAPACITY && a.S_LOCK_STATE == "鏃�).First();
+                if(locInfo != null)
+                {
+                    string cntr = "";
+                    var cntrList = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE == locInfo.S_CODE).ToList();
+                    if(cntrList.Count > 0)
+                    {
+                        foreach(var a in cntrList)
+                        {
+                            cntr = cntr + a.S_CNTR_CODE + ",";
+                        }
+                    }
+                    cntr = cntr.TrimEnd(',');
+                    //鍒涘缓浣滀笟
+                    WMSHelper.CreateOpTask(locInfo.S_CODE, "", "鍏ュ簱", "鎺ラ┏浣嶅叆搴�, cntr, "鐡跺澂");
+                }
+            }
+            else
+            {
+                LogHelper.Info("鐡惰儦鍏ュ簱鎺ラ┏ 鏈厤缃�);
+            }
         }
     }
 }

--
Gitblit v1.9.1