From 9862f9e1237c3d360cb4fb5547d8b11e33578d39 Mon Sep 17 00:00:00 2001
From: czw <selecti@yeah.net>
Date: 星期三, 18 六月 2025 22:49:38 +0800
Subject: [PATCH] qx

---
 HH.WCS.QingXiNongfu/wms/TaskHelper.cs |   83 +++++++++++++++++++++++++++++++++++------
 1 files changed, 70 insertions(+), 13 deletions(-)

diff --git a/HH.WCS.QingXiNongfu/wms/TaskHelper.cs b/HH.WCS.QingXiNongfu/wms/TaskHelper.cs
index 889efdc..76c1125 100644
--- a/HH.WCS.QingXiNongfu/wms/TaskHelper.cs
+++ b/HH.WCS.QingXiNongfu/wms/TaskHelper.cs
@@ -1,11 +1,14 @@
-锘縰sing HH.WCS.QingXigongchang.process;
+锘縰sing HH.WCS.QingXigongchang.dispatch;
+using HH.WCS.QingXigongchang.process;
 using HH.WCS.QingXigongchang.util;
 using Newtonsoft.Json;
+using NLog.Fluent;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Linq.Expressions;
+using System.Threading.Tasks;
 
 namespace HH.WCS.QingXigongchang.wms
 {
@@ -82,10 +85,14 @@
             var db = new SqlHelper<WMSTask>().GetInstance();
             return db.Queryable<WMSTask>().Where(a => a.S_TYPE.Trim() == taskType).ToList();
         }
-        internal static bool CreateTask(string no, string from, string to, string taskType, int pri, string cntrInfo, int cntrCount = 1, int startLayer = 1, int endLayer = 1, string note = "", bool lockLoc = false)
+        internal static bool CreateTask(string no, string from, string to, string taskType, int pri, string cntrInfo, int cntrCount = 1, int startLayer = 1, int endLayer = 1, string note = "", bool lockLoc = false, string TwoEndLoc = "")
         {
             var fromLoc = LocationHelper.GetLoc(from);
             var endLoc = LocationHelper.GetLoc(to);
+
+            //NDCHelper.ChangeParam(taskNo, agvsite, 2);
+            //NDCHelper.ChangeParam(taskNo, 2, 6);
+
             if (fromLoc.S_AREA_CODE == "YWLRGDD")
             {
                 //鏌ヨ浠诲姟琛� 瑕佹眰鏄彧鑳界敓鎴愪袱涓换鍔�璧风偣搴撳尯涓篩WLRGDD  hh_plg  2025骞�鏈�鏃�
@@ -94,6 +101,17 @@
                 if (TaskListNum.Count() >= 2)
                 {
                     LogHelper.Info($"CreateTransport-  CreateTask Error" + $"璧风偣搴撳尯涓篩WLRGDD 鍒欐渶澶氬彧鑳界敓鎴愪袱涓换鍔�);
+                    return false;
+                }
+            }
+            else if (endLoc.S_AREA_CODE == "YWLWJJB")
+            {
+                //鏌ヨ浠诲姟琛� 瑕佹眰鏄彧鑳界敓鎴愪袱涓换鍔�璧风偣搴撳尯涓篩WLWJJB  hh_plg  2025骞�鏈�鏃�
+                List<string> TaskState = new List<string>() { "瀹屾垚", "鍙栨秷" };
+                var TaskListNum = LocationHelper.GetList<WMSTask>(x => x.S_END_LAREA == "YWLWJJB" && !TaskState.Contains(x.S_B_STATE));
+                if (TaskListNum.Count() >= 2)
+                {
+                    LogHelper.Info($"CreateTransport-  CreateTask Error" + $"缁堢偣搴撳尯涓篩WLWJJB 鍒欐渶澶氬彧鑳界敓鎴愪袱涓换鍔�);
                     return false;
                 }
             }
@@ -112,6 +130,12 @@
                         return false;
                     }
                 }
+                if (!taskType.Contains("鎴愬搧婊℃-鍏ュ簱"))
+                    if (endLoc.N_CURRENT_NUM >= endLayer || fromLoc.N_CURRENT_NUM < startLayer)
+                    {
+                        LogHelper.Info($"CreateTransport-  CreateTask Error" + $"璧风偣鏁伴噺{fromLoc.N_CURRENT_NUM}<{startLayer}鎴栬�{endLoc.N_CURRENT_NUM}>={endLayer} ");
+                        return false;
+                    }
             }
             WMSTask wmsTask = new WMSTask()
             {
@@ -125,6 +149,7 @@
                 S_SRC_NO = no,
                 N_PRIORITY = pri,
                 S_NOTE = note,
+                S_TWO_END_LOC = TwoEndLoc,
                 S_WORK_MODE = "agv",
                 S_B_STATE = "鏈墽琛�,
                 S_CNTRS = cntrInfo,
@@ -134,6 +159,8 @@
             };
 
             LogHelper.Info($"CreateTransport-  CreateTask" + $"{JsonConvert.SerializeObject(wmsTask)}");
+            LogHelper.Info($"CreateTransport-  CreateTask {wmsTask.S_TASK_NO} 璧风偣:{JsonConvert.SerializeObject(from)}");
+            LogHelper.Info($"CreateTransport-  CreateTask {wmsTask.S_TASK_NO} 缁堢偣:{JsonConvert.SerializeObject(to)}");
             return CreateTask(wmsTask, lockLoc);
         }
         internal static string GetDeptName(string taskType)
@@ -215,15 +242,47 @@
         internal static void End(WMSTask task)
         {
             var db = new SqlHelper<WMSTask>().GetInstance();
+
+
+            //plg 2025骞�鏈�3鏃�10:42:24
+            if (task.S_END_LAREA == "YWLWJJB" && task.S_START_LAREA != "YWLRGDD")
+            {
+                var model = db.Queryable<Location>().Where(a => a.S_LOC_CODE == task.S_TWO_END_LOC).First();
+                if (model != null)
+                {
+                    //鍏堣В閿佺粓鐐�鍦ㄩ攣瀹�+                    db.Ado.BeginTran();
+                    try
+                    {
+                        model.S_LOCK_STATE = "鏃�;
+                        var res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0;
+                        LogHelper.Info(task.S_TWO_END_LOC + "LockLoc:閿佺粨鏋� + res);
+                        db.Ado.CommitTran();
+                    }
+                    catch (Exception ex)
+                    {
+                        db.Ado.RollbackTran();
+                        LogHelper.Info("CreateTask 澶辫触 " + ex.Message);
+                    }
+
+                    LogHelper.Info(task.S_TWO_END_LOC + "浜屾浠诲姟 寮�銆�");
+                    var b = TaskProcess.CreateTransport(task.S_SRC_NO, task.S_END_LOC, task.S_TWO_END_LOC, "鍘熺墿鏂欐惉杩�绾哥", task.S_CNTRS.Split(',').ToList(), task.N_START_LAYER, 1, task.N_CNTR_COUNT, task.N_PRIORITY);
+                    //if (b)
+                    //{
+                    //    if (task != null)
+                    //    {
+                    //        task.S_B_STATE = "瀹屾垚";
+                    //        task.T_END_TIME = DateTime.Now;
+                    //        db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_END_TIME }).ExecuteCommand();
+                    //    }
+                    //}
+                }
+            }
             if (task != null)
             {
                 task.S_B_STATE = "瀹屾垚";
                 task.T_END_TIME = DateTime.Now;
                 db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_END_TIME }).ExecuteCommand();
-            }
-            if (task.S_END_LAREA == "YWLWJJB")
-            {
-                var b = TaskProcess.CreateTransport(task.S_SRC_NO, task.S_END_LOC, task.S_NOTE, "鍘熺墿鏂欐惉杩�绾哥", task.S_CNTRS.Split(',').ToList(), task.N_START_LAYER, 1, task.N_CNTR_COUNT, task.N_PRIORITY);
             }
         }
         internal static void Fail(WMSTask task)
@@ -272,12 +331,10 @@
                     LogHelper.Info(wmsTask.S_START_LOC + "LockLoc:閿佺粨鏋� + res);
 
                     model = db.Queryable<Location>().Where(a => a.S_LOC_CODE == wmsTask.S_END_LOC).First();
-                    if (wmsTask.S_START_LAREA != "YWLWJJB")
-                    {
-                        model.S_LOCK_STATE = "鍏ュ簱閿�;
-                        res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0;
-                        LogHelper.Info(wmsTask.S_END_LOC + "LockLoc:閿佺粨鏋� + res);
-                    }
+                    model.S_LOCK_STATE = "鍏ュ簱閿�;
+                    res = db.Updateable(model).UpdateColumns(it => new { it.S_LOCK_STATE }).ExecuteCommand() > 0;
+                    LogHelper.Info(wmsTask.S_END_LOC + "LockLoc:閿佺粨鏋� + res);
+
                 }
                 db.Insertable(wmsTask).ExecuteCommand();
                 db.Ado.CommitTran();
@@ -302,7 +359,7 @@
         {
             var db = new SqlHelper<object>().GetInstance();
             //LogHelper.Info(DateTime.Now.ToLongTimeString() + "=====" + ShuiGaiTask.ToString());
-            return db.Queryable<WMSTask>().OrderBy(" N_PRIORITY DESC ").Where(a => a.S_B_STATE.Trim() == state).Take(10).ToList();
+            return db.Queryable<WMSTask>().OrderBy(" N_PRIORITY DESC ").Where(a => a.S_B_STATE.Trim() == state).ToList();
 
         }
 

--
Gitblit v1.9.1