From 28e5551ac4525a12bf762b4836ef37a154ed56f5 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期二, 15 七月 2025 18:03:56 +0800
Subject: [PATCH] 111

---
 HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs |   66 +++++++++++++++++++--------------
 1 files changed, 38 insertions(+), 28 deletions(-)

diff --git a/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs b/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs
index bbd72ea..05454f0 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs
@@ -323,7 +323,6 @@
                             S_CNTR_CODE = task.S_CNTR_CODE,
                             S_BATCH_NO = item.S_BATCH_NO,
                             S_SERIAL_NO = item.S_SERIAL_NO,
-                            D_PRD_DATE = item.D_PRD_DATE,
                             F_QTY = item.F_QTY
                         };
                         db.Insertable(info).ExecuteCommand();
@@ -603,7 +602,7 @@
             //淇敼浣滀笟鐘舵� 閲嶆柊鍚姩
             wmsTask.N_B_STATE = 2;
             WMSHelper.UpdateTaskState(wmsTask);
-            WCSHelper.UpdateStorStatus(task.S_CNTR_CODE, 4);
+            //WCSHelper.UpdateStorStatus(task.S_CNTR_CODE, 4);
         }
 
 
@@ -631,7 +630,7 @@
             }
         }
 
-        public static bool CreateOpTask(string startLoc, string endLoc, string sType, string taskType, string trayCode,string note = "")
+        public static bool CreateOpTask(string startLoc, string endLoc, string sType, string taskType, string trayCode, string note = "", string trayType = "", string workNo = "", string itemCode = "")
         {
             bool result = false;
             int nType = sType == "鍏ュ簱" ? 1 : 2;
@@ -645,7 +644,10 @@
                 S_TYPE = sType,
                 S_OP_DEF_CODE = "",
                 S_OP_DEF_NAME = taskType,
-                S_NOTE = note
+                S_NOTE = note,
+                S_TRAY_TYPE = trayType,
+                S_WORK_NO = workNo,
+                S_ITEM_CODE = itemCode,
             };
             result = WMSHelper.CreateWmsTask(wmsTask);
             if (result)
@@ -695,44 +697,52 @@
                 if (a.N_TYPE == 2)
                 {
                     LogHelper.Info($"浣滀笟缁堢偣涓嶄负鎺ラ┏浣�鏌ユ壘搴撳尯{a.S_END_AREA} 鍙敤璐т綅");
-
-
+                    
                     //鍏朵粬搴撳尯
-                    var endlist = db.Queryable<Location>()
-                    .Where(it => it.S_AREA_CODE == a.S_END_AREA && it.N_CURRENT_NUM < it.N_CAPACITY)
-                    .OrderBy(it => it.N_COL)
-                    .PartitionBy(it => it.N_ROW)
-                    .Take(1)
-                    .ToList();
-                    LogHelper.Info($"绗﹀悎鏉′欢鐨勬暟閲弡endlist.Count}");
-                    foreach (var item in endlist)
-                    {
-                        var lockinfo = db.Queryable<Location>().Where(it => it.N_LOCK_STATE != 0 && it.S_AREA_CODE == item.S_AREA_CODE && it.N_ROW == item.N_ROW).First();
-                        if (lockinfo == null)
-                        {
-                            result = item;
-                            a.S_END_LOC = item.S_CODE;
-                            break;
-                        }
-                        else LogHelper.Info($"璐т綅{lockinfo.S_CODE} 鏈夐攣 褰撳墠鎺掍笉鍙娇鐢�);
-                    }
                 }
                 else
                 {
                     LogHelper.Info($"鍏ュ簱浠诲姟 璁$畻缁堢偣锛屼换鍔$被鍨嬶細{a.S_OP_DEF_NAME}");
-                    if (a.S_OP_DEF_NAME == "鐡剁洊杞繍" || a.S_OP_DEF_NAME == "鎺ラ┏浣嶇Щ搴�)
+                    if (a.S_OP_DEF_NAME == "鎺ラ┏浣嶅叆搴� || a.S_OP_DEF_NAME == "鐡剁洊绌烘墭鍏ュ簱" || a.S_OP_DEF_NAME == "鐡跺澂闈炲嵆浜х┖妗嗗叆搴� || a.S_OP_DEF_NAME == "鐡跺澂鎺ラ┏浣嶅叆搴�)
                     {
-                        result = TaskProcess.BCPInOrOut(db, true, a.S_START_LOC,a.S_NOTE + "搴撳尯");
+                        string itemCode = "";
+                        var cntrInfo = db.Queryable<LocCntrRel>().Where(b => b.S_LOC_CODE == a.S_START_LOC).First();
+                        if(cntrInfo != null)
+                        {
+                            var itemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == cntrInfo.S_CNTR_CODE).First();
+                            if(itemInfo != null)
+                            {
+                                itemCode = itemInfo.S_ITEM_CODE + itemInfo.S_BATCH_NO;
+                            }
+                        }
+                        if (a.S_NOTE.Contains("鎸囧畾搴撳尯"))
+                        {
+                            string areaName = a.S_NOTE.Split('-')[1];
+                            result = TaskProcess.BCPInOrOut(db, true, areaName, itemCode);
+                        }
+                        else
+                        {
+                            result = TaskProcess.BCPInOrOut(db, true, a.S_NOTE + "搴撳尯", itemCode);
+                        }
                     }
                     if (a.S_OP_DEF_NAME.Contains("娉ㄥ") && a.S_OP_DEF_NAME.Contains("婊℃墭涓嬬嚎锛堢摱鍧級"))
                     {
-                        result = TaskProcess.BCPFullOut(db,a.S_OP_DEF_NAME,a.S_START_LOC);
+                        var cntrInfo = db.Queryable<LocCntrRel>().Where(b => b.S_LOC_CODE == a.S_START_LOC).First();
+                        if (cntrInfo != null)
+                        {
+                            var itemInfo = db.Queryable<CntrItemRel>().Where(b => b.S_CNTR_CODE == cntrInfo.S_CNTR_CODE).First();
+                            if (itemInfo != null)
+                            {
+                                result = TaskProcess.BCPFullOut(db, a.S_OP_DEF_NAME, itemInfo.S_ITEM_CODE);
+                            }
+                        }
                     }
                     if (a.S_OP_DEF_NAME.Contains("绌烘墭涓嬬嚎"))
                     {
-                        result = TaskProcess.BCPEmptyOut(db,a.S_OP_DEF_NAME);
+                        result = TaskProcess.BCPEmptyOut(db, a.S_OP_DEF_NAME);
                     }
 
+
                     //鍏朵粬搴撳尯
                     //var endlist = db.Queryable<Location>()
                     //.Where(it => it.S_AREA_CODE == a.S_END_AREA && it.N_CURRENT_NUM < it.N_CAPACITY)

--
Gitblit v1.9.1