From e4b92180e4336d777ac323c0395a043bde1285d3 Mon Sep 17 00:00:00 2001
From: 杨前锦 <1010338399@qq.com>
Date: 星期五, 30 五月 2025 17:18:13 +0800
Subject: [PATCH] 印尼佳通-胚胎到硫化的出入库功能开发

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs |  109 +++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 83 insertions(+), 26 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs
index cb0e21e..834f081 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs
@@ -49,6 +49,17 @@
                     {
                         foreach (var item in itemInfos)
                         {
+                            // 灏哅ES鐨勭墿鏂欑姸鎬佽浆鍖栨垚WMS鍙瘑鍒殑鐗╂枡鐘舵�
+                            if (item.jdge == "" || item.jdge == null)
+                            {
+                                item.jdge = "OK";
+                            }
+                            else if(item.jdge != "OK")
+                            {
+                                item.jdge = "HOLD";
+                            }
+
+                            // 璁$畻鐢熸晥鏃堕棿銆佸け鏁堟椂闂�                             var overage = WMSHelper.getOverage(item.bc_entried);
                             if (overage != null)
                             {
@@ -120,6 +131,7 @@
                         S_END_AREA = endLoc.S_AREA_CODE,
                         S_TYPE = model.taskType,
                         S_OP_DEF_CODE = model.taskNo,
+                        S_OP_DEF_NAME = "鍗婂埗鍝�浣欐枡/绌烘墭涓嬪彂鍏ュ簱浠诲姟",
                         N_PRIORITY = model.priority,
                         T_START_TIME = DateTime.Now,
                     };
@@ -231,6 +243,7 @@
                         S_END_AREA = endLoc.S_AREA_CODE,
                         S_TYPE = "绌烘墭鍑哄簱浠诲姟",
                         S_OP_DEF_CODE = model.taskNo,
+                        S_OP_DEF_NAME = "绌烘墭鍑哄簱浠诲姟",
                         N_PRIORITY = model.priority,
                         T_START_TIME = DateTime.Now,
                     };
@@ -323,7 +336,7 @@
                 else 
                 {
                     result.ResultCode = 1;
-                    result.ResultMsg = "搴撳唴娌℃湁鏌ュ埌姝ょ墿鏂�;
+                    result.ResultMsg = "搴撳唴娌℃湁婊¤冻鏉′欢鐨勭墿鏂�;
                     return result;
                 }
 
@@ -340,6 +353,7 @@
                         S_END_AREA = endLoc.S_AREA_CODE,
                         S_TYPE = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�,
                         S_OP_DEF_CODE = model.taskNo,
+                        S_OP_DEF_NAME = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�,
                         N_PRIORITY = model.priority,
                         T_START_TIME = DateTime.Now,
                     };
@@ -399,8 +413,18 @@
                 {
                     foreach (var item in model.itemInfo)
                     {
+                        // 灏哅ES鐨勭墿鏂欑姸鎬佽浆鍖栨垚WMS鍙瘑鍒殑鐗╂枡鐘舵�
+                        if (item.jdge == "" || item.jdge == null)
+                        {
+                            item.jdge = "OK";
+                        }
+                        else if (item.jdge != "OK")
+                        {
+                            item.jdge = "HOLD";
+                        }
+
                         var overage = WMSHelper.getOverage(item.bc_entried);
-                        if (overage != null)
+                        if (overage != null && overage.OVERAGE != 0)
                         {
                             DateTime txndate = DateTime.Parse(item.txndate);
                             DateTime minTime = txndate.AddHours(overage.MINHOUR);
@@ -442,6 +466,7 @@
                             S_END_AREA = endLoc.S_AREA_CODE,
                             S_TYPE = "浜哄伐鍏ュ簱浠诲姟",
                             S_OP_DEF_CODE = model.taskNo,
+                            S_OP_DEF_NAME = "浜哄伐鍏ュ簱浠诲姟",
                             N_PRIORITY = model.priority,
                             T_START_TIME = DateTime.Now,
                         };
@@ -538,6 +563,7 @@
                         S_END_AREA = endLoc.S_AREA_CODE,
                         S_TYPE = "浜哄伐鍑哄簱浠诲姟",
                         S_OP_DEF_CODE = model.taskNo,
+                        S_OP_DEF_NAME = "浜哄伐鍑哄簱浠诲姟",
                         N_PRIORITY = model.priority,
                         T_START_TIME = DateTime.Now,
                     };
@@ -576,7 +602,7 @@
                 else
                 {
                     result.ResultCode = 1;
-                    result.ResultMsg = "搴撳唴娌℃湁姝ょ墿鏂�;
+                    result.ResultMsg = "搴撳唴娌℃湁婊¤冻鏉′欢鐨勭墿鏂�;
                 }
             }
             catch (Exception ex)
@@ -633,6 +659,7 @@
                             S_END_AREA = endLoc.S_AREA_CODE,
                             S_TYPE = "姣嶆嫋鍏ュ簱浠诲姟",
                             S_OP_DEF_CODE = taskNo,
+                            S_OP_DEF_NAME = "姣嶆嫋鍏ュ簱浠诲姟",
                             N_PRIORITY = 1,
                             T_START_TIME = DateTime.Now,
                         };
@@ -694,15 +721,15 @@
             ReturnResult result = new ReturnResult();
             try
             {
-                var mst = WMSHelper.GetWmsTask(wmsTaskNo);
-                if (mst != null && mst.N_B_STATE < 2) 
+                var cst = WCSHelper.GetTaskByStart(loc);
+                if (cst == null) 
                 {
                     Location startLoc = LocationHelper.GetLoc(loc);
                     Location endLoc = LocationHelper.GetLoc(Settings.baseTrayInBufferLoc);
-                    if (!(endLoc != null && endLoc.N_CURRENT_NUM == 0)) 
+                    if (!(endLoc != null && endLoc.N_CURRENT_NUM == 0))
                     {
                         endLoc = WMSHelper.GetInstockEndLoc(0, loc, 2);
-                    } 
+                    }
 
                     if (endLoc != null && startLoc != null)
                     {
@@ -727,8 +754,7 @@
                             // 鍒涘缓涓�鍏ュ簱浠诲姟
                             WCSTask wcsTask = new WCSTask()
                             {
-                                S_OP_NAME = mst.S_OP_DEF_NAME,
-                                S_OP_CODE = mst.S_CODE,
+                                S_OP_CODE = wmsTaskNo,
                                 S_CODE = WCSHelper.GenerateTaskNo(),
                                 S_CNTR_CODE = trayCode,
                                 S_TYPE = "姣嶆嫋鍏ュ簱浠诲姟",
@@ -771,13 +797,13 @@
         /// <param name="loc"></param>
         /// <param name="taskNo"></param>
         /// <returns></returns>
-        public static ReturnResult baseTrayOutStock(string loc ,string taskNo)
+        public static ReturnResult baseTrayOutStock(string loc ,string taskNo ,int exclude = 1)
         {
             LogHelper.Info("銆愭瘝鎷栧嚭搴撲换鍔°�寮�涓嬪彂姣嶆嫋鍑哄簱浠诲姟", "WMS");
             ReturnResult result = new ReturnResult();
             try
             {
-                Location startLoc = WMSHelper.GetEmptyTrayStartLoc(0, 1);
+                Location startLoc = WMSHelper.GetEmptyTrayStartLoc(0, exclude);
                 Location endLoc = LocationHelper.GetLoc(loc);
                 var agvJBLoc = Settings.getAgvJBLoc(loc);
 
@@ -801,6 +827,7 @@
                             S_END_AREA = endLoc.S_AREA_CODE,
                             S_TYPE = "姣嶆嫋鍑哄簱浠诲姟",
                             S_OP_DEF_CODE = taskNo,
+                            S_OP_DEF_NAME = "姣嶆嫋鍑哄簱浠诲姟",
                             N_PRIORITY = 1,
                             T_START_TIME = DateTime.Now,
                         };
@@ -864,10 +891,10 @@
             ReturnResult result = new ReturnResult();
             try
             {
-                var mst = WMSHelper.GetWmsTask(wmsTaskNo);
-                if (mst != null && mst.N_B_STATE < 2) 
+                var cst = WCSHelper.GetTaskByEnd(loc);
+                if (cst == null) 
                 {
-                    Location startLoc = WMSHelper.GetEmptyTrayStartLoc(0,0);
+                    Location startLoc = WMSHelper.GetEmptyTrayStartLoc(0, 0);
                     Location endLoc = LocationHelper.GetLoc(loc);
 
                     if (startLoc != null)
@@ -884,8 +911,7 @@
                             // 鍒涘缓鍏ュ簱浠诲姟
                             WCSTask wcsTask = new WCSTask()
                             {
-                                S_OP_NAME = mst.S_OP_DEF_NAME,
-                                S_OP_CODE = mst.S_CODE,
+                                S_OP_CODE = wmsTaskNo,
                                 S_CODE = WCSHelper.GenerateTaskNo(),
                                 S_CNTR_CODE = trayCode,
                                 S_TYPE = "姣嶆嫋鍑哄簱浠诲姟",
@@ -966,10 +992,9 @@
                                 TaskProcess.OperateStatus(cst, 6);
                                 break;
                             case 7:
-                                WCSHelper.UpdateStatus(cst, "寮傚父鍙栨秷");
+                                WCSHelper.Cancel(cst);
+                                WCSHelper.UpdateStatus(cst, "鍙栨秷");
                                 TaskProcess.OperateStatus(cst, 7);
-                                mst.N_B_STATE = 3;
-                                WMSHelper.UpdateTaskState(mst);
                                 break;
                             case 8:
                                 WCSHelper.UpdateStatus(cst, "寮哄埗瀹屾垚");
@@ -997,6 +1022,35 @@
                 }  
             }
             return responseResult;
+        }
+
+        /// <summary>
+        /// 璐т綅鐘舵�鍙嶉
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        public static bool locStateFeedBack(LocStateFeedBackModel model)
+        {
+            bool result = false;
+            var task = WCSHelper.GetTask(model.req_no);
+            if (task != null)
+            {
+                TaskAction taskAction = null;
+                if (model.type == "1")
+                {
+                    taskAction = WCSHelper.getActionRecord(task.S_CODE, 1101);
+                }
+                if (model.type == "2")
+                {
+                    taskAction = WCSHelper.getActionRecord(task.S_CODE, 1103);
+                }
+                if (taskAction != null)
+                {
+                    taskAction.N_S_STATUS = 1;
+                    result = WCSHelper.updateActionRecord(taskAction);
+                }
+            }
+            return result;
         }
 
         /// <summary>
@@ -1106,9 +1160,6 @@
                     BOM3 = matl.bom3,
                     S_FOVRAGE = matl.fovrage,
                     S_JDGE = matl.jdge,
-                    S_WMS_JDGE = matl.WMS_jdge,
-                    EFFECTIVE_TIME = matl.effective_time,
-                    EXPIRATION_TIME = matl.expiration_time,
                     LAST_MODIFY_TIME = matl.last_modify_time
                 };
                 itemBarcodeInfos.Add(itemBarcodeInfo);
@@ -1151,7 +1202,6 @@
             if (overages != null && overages.Count > 0) 
             {
                 List<Overage> overageList = new List<Overage>();
-
                 foreach (var item in overages)
                 {
                     Overage overage = new Overage
@@ -1159,8 +1209,9 @@
                         MCNGRP = item.mcngrp,
                         ITEMPATT = item.itempatt,
                         OVERAGE = item.overage,
-                        MINHOUR = int.Parse(item.minhour.ToString()) ,
+                        MINHOUR = float.Parse(item.minhour.ToString()),
                         FLAG_STS = item.flag_sts,
+                        RECID = item.recid,
                     };
                     overageList.Add(overage);
                 }
@@ -1192,7 +1243,7 @@
             if (!bo)
             {
                 responseResult.ResultCode = 1;
-                responseResult.ResultMsg = "鍚屾鐗╂枡鐘舵�淇℃伅澶辫触";
+                responseResult.ResultMsg = "璁板綍鏁版嵁鍚屾鏃堕棿澶辫触";
             }
             return responseResult;
         }
@@ -1207,7 +1258,13 @@
         {
             ReturnResult responseResult = new ReturnResult();
             var synDataTime = WMSHelper.getLastDataSynTime(recordTable);
-            responseResult.data = synDataTime;
+            if (synDataTime != null) 
+            {
+                Dictionary<string, string> map = new Dictionary<string, string>();
+                map.Add("S_SYN_TIME", synDataTime.S_SYN_TIME);
+                map.Add("RECORD_TABLE", synDataTime.RECORD_TABLE);
+                responseResult.data = map;
+            }
             return responseResult;
         }
 

--
Gitblit v1.9.1