From d34ea2a9fc2334d2bf7383cb64562f301ffbda84 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周四, 17 4月 2025 13:09:07 +0800
Subject: [PATCH] 包中只有一块板时,认定为 不齐包 【Editby shaocx,2025-04-01】

---
 CC/iWareSql/DataAccess/TaskHandler.cs |  110 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 101 insertions(+), 9 deletions(-)

diff --git a/CC/iWareSql/DataAccess/TaskHandler.cs b/CC/iWareSql/DataAccess/TaskHandler.cs
index ddf08dd..c1607a4 100644
--- a/CC/iWareSql/DataAccess/TaskHandler.cs
+++ b/CC/iWareSql/DataAccess/TaskHandler.cs
@@ -14,17 +14,70 @@
     public class TaskHandler
     {
         /// <summary>
+        /// 楠岃瘉 鏄惁瀛樺湪鏌愪釜UPI鐨勬湭缁撴潫鐨勭殑浠诲姟
+        /// </summary>
+        /// <param name="wmsDB"></param>
+        /// <returns></returns>
+        public static bool ValidateIssueTaskForNoFinishTaskByUpi(WmsDBModel.WmsDBModel wmsDB, string UPI, bool isNeedAutoFinishTak)
+        {
+            var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus != (int)TaskStatusEnum.宸插畬鎴�
+                 && x.TaskStatus != (int)TaskStatusEnum.宸插彇娑�
+                 && x.Upi == UPI
+              ).ToList();
+
+            if (isExist?.Count() > 0)
+            {
+                if (isNeedAutoFinishTak)
+                {
+                    using (WmsDBModel.WmsDBModel new_wmsDB = new WmsDBModel.WmsDBModel())
+                    {
+                        var updateTask = new_wmsDB.wms_rbline_task.Where(x => x.Id == isExist.First().Id).FirstOrDefault();
+                        if (updateTask != null)
+                        {
+                            updateTask.TaskStatus = (int)TaskStatusEnum.宸插畬鎴�;
+                            updateTask.TaskMsg = "浠诲姟琚郴缁熷湪鍚堝寘宸ヤ綅鑷姩瀹屾垚(1)";
+                            new_wmsDB.SaveChanges();
+                        }
+                    }
+                }
+                return false;
+            }
+            return true;
+        }
+
+        /// <summary>
         /// 楠岃瘉 鏈哄櫒浜虹紦瀛樺矝鏄惁瀛樺湪宸蹭笅鍙戠殑浠诲姟
         /// </summary>
         /// <param name="wmsDB"></param>
         /// <returns></returns>
-        public static bool ValidateIssueTaskForRobotBuffer(WmsDBModel.WmsDBModel wmsDB)
+        public static bool ValidateIssueTaskForRobotBuffer(WmsDBModel.WmsDBModel wmsDB, string UPI)
         {
             var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus == (int)TaskStatusEnum.宸蹭笅鍙�
                 && (
                   x.RbTaskType == (int)RbTaskTypeEnum.鍏ュ簱浠诲姟
                   ||
-                   x.RbTaskType == (int)RbTaskTypeEnum.鍑哄簱浠诲姟
+                  (x.RbTaskType == (int)RbTaskTypeEnum.榻愬寘鍑哄簱浠诲姟 || x.RbTaskType == (int)RbTaskTypeEnum.寮哄埗鍑哄簱浠诲姟)
+                ) && x.Upi == UPI
+              ).ToList();
+
+            if (isExist?.Count() > 0)
+            {
+                return false;
+            }
+            return true;
+        }
+        /// <summary>
+        /// 楠岃瘉 鏈哄櫒浜虹紦瀛樺矝鏄惁瀛樺湪宸蹭笅鍙戠殑浠诲姟
+        /// </summary>
+        /// <param name="wmsDB"></param>
+        /// <returns></returns>
+        public static bool ValidateIssueOutTaskForRobotBuffer(WmsDBModel.WmsDBModel wmsDB)
+        {
+            var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus == (int)TaskStatusEnum.宸蹭笅鍙�
+                && (
+                  x.RbTaskType == (int)RbTaskTypeEnum.鍏ュ簱浠诲姟
+                  ||
+                   (x.RbTaskType == (int)RbTaskTypeEnum.榻愬寘鍑哄簱浠诲姟 || x.RbTaskType == (int)RbTaskTypeEnum.寮哄埗鍑哄簱浠诲姟)
                 )
               ).ToList();
 
@@ -36,24 +89,46 @@
         }
 
         /// <summary>
-        /// 楠岃瘉 鐮佹澘鏄惁鏈夋墽琛屼腑浠诲姟
+        /// 楠岃瘉 鏄惁瀛樺湪鏈粨鏉熺殑 鍑哄簱 浠诲姟
         /// </summary>
         /// <param name="wmsDB"></param>
         /// <returns></returns>
-        public static bool ValidateIssueTaskForBZ12(WmsDBModel.WmsDBModel wmsDB,string str)
+        public static bool ValidateIssueTaskForNoFinishTaskByOutStore(WmsDBModel.WmsDBModel wmsDB)
         {
-            var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus == (int)TaskStatusEnum.宸蹭笅鍙�
-                && x.RbTaskType == (int)RbTaskTypeEnum.鐮佹澘浠诲姟).ToList();
+            var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus != (int)TaskStatusEnum.宸插畬鎴�
+                 && x.TaskStatus != (int)TaskStatusEnum.宸插彇娑�
+                  && (
+                   (x.RbTaskType == (int)RbTaskTypeEnum.榻愬寘鍑哄簱浠诲姟 || x.RbTaskType == (int)RbTaskTypeEnum.寮哄埗鍑哄簱浠诲姟)
+                )
+              ).ToList();
+
             if (isExist?.Count() > 0)
             {
                 return false;
             }
             return true;
         }
-        public static bool ValidateIssueTaskForBZ21(WmsDBModel.WmsDBModel wmsDB,string str)
+
+
+        /// <summary>
+        /// 楠岃瘉 鐮佹澘鏄惁鏈夋墽琛屼腑浠诲姟
+        /// </summary>
+        /// <param name="wmsDB"></param>
+        /// <returns></returns>
+        public static bool ValidateIssueTaskForBZ12(WmsDBModel.WmsDBModel wmsDB, string UPI)
         {
             var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus == (int)TaskStatusEnum.宸蹭笅鍙�
-                && x.RbTaskType == (int)RbTaskTypeEnum.澶规澘浠诲姟).ToList();
+                && x.RbTaskType == (int)RbTaskTypeEnum.鐮佹澘浠诲姟 && x.Upi == UPI).ToList();
+            if (isExist?.Count() > 0)
+            {
+                return false;
+            }
+            return true;
+        }
+        public static bool ValidateIssueTaskForBZ21(WmsDBModel.WmsDBModel wmsDB, string str)
+        {
+            var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus == (int)TaskStatusEnum.宸蹭笅鍙�
+                && x.RbTaskType == (int)RbTaskTypeEnum.鍚堝寘浠诲姟 && x.Upi == str).ToList();
             if (isExist?.Count() > 0)
             {
                 return false;
@@ -70,7 +145,7 @@
             var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus != (int)TaskStatusEnum.宸插畬鎴�
                 && x.TaskStatus != (int)TaskStatusEnum.宸插彇娑�
                 && (
-                   x.RbTaskType == (int)RbTaskTypeEnum.鍑哄簱浠诲姟
+                  (x.RbTaskType == (int)RbTaskTypeEnum.榻愬寘鍑哄簱浠诲姟 || x.RbTaskType == (int)RbTaskTypeEnum.寮哄埗鍑哄簱浠诲姟)
                 )
               ).ToList();
 
@@ -81,6 +156,23 @@
             return true;
         }
 
+        /// <summary>
+        /// 楠岃瘉 鐮佹澘浠诲姟鏄惁瀛樺湪 鏈粨鏉�  鐨勪换鍔�
+        /// </summary>
+        /// <param name="wmsDB"></param>
+        /// <returns>true:涓嶅瓨鍦� false锛氬瓨鍦�</returns>
+        public static bool ValidateNoFinishOutTaskFor鐮佹澘浠诲姟(WmsDBModel.WmsDBModel wmsDB)
+        {
+            var isExist = wmsDB.wms_rbline_task.Where(x => x.TaskStatus != (int)TaskStatusEnum.宸插畬鎴�
+                && x.TaskStatus != (int)TaskStatusEnum.宸插彇娑�
+                && x.RbTaskType == (int)RbTaskTypeEnum.鐮佹澘浠诲姟
+              ).ToList();
 
+            if (isExist?.Count() > 0)
+            {
+                return false;
+            }
+            return true;
+        }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3