From c8f338feee0b6003d8f069b1d37fd9b90dd1b7f4 Mon Sep 17 00:00:00 2001
From: 杨前锦 <1010338399@qq.com>
Date: 星期一, 07 七月 2025 17:31:38 +0800
Subject: [PATCH] 印尼佳通优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs |  236 ++++++++++++++++++++++------------------------------------
 1 files changed, 89 insertions(+), 147 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 4a352b9..4b65c2b 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
@@ -28,6 +28,7 @@
 
         }
 
+
         /// <summary>
         /// 1.鍒涘缓鍏ュ簱浠诲姟
         /// </summary>
@@ -36,7 +37,7 @@
             ReturnResult result = new ReturnResult();
             try
             {
-                if (model.taskType == "鏈哄彴鍗婂埗鍝佸叆搴� || model.taskType == "鎴愬瀷鏈轰綑鏂欏洖搴�) 
+                if (model.taskType.Contains("鏈哄彴鍗婂埗鍝佸叆搴�) || model.taskType.Contains("鎴愬瀷鏈轰綑鏂欏叆搴�)) 
                 {
                     var itemInfos = model.itemInfo;
                     if (itemInfos == null || itemInfos.Count == 0)
@@ -44,38 +45,6 @@
                         result.ResultCode = 1;
                         result.ResultMsg = "鐗╂枡淇℃伅涓嶈兘涓虹┖";
                         return result;
-                    }
-                    else 
-                    {
-                        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)
-                            {
-                                DateTime txndate = DateTime.Parse(item.txndate);
-                                DateTime minTime = txndate.AddHours(overage.MINHOUR);
-                                DateTime maxTime = txndate.AddDays(overage.OVERAGE);
-                                item.effective_time = minTime.ToString("yyyy-MM-dd HH:mm:ss");
-                                item.expiration_time = maxTime.ToString("yyyy-MM-dd HH:mm:ss");
-                            }
-                            else 
-                            {
-                                result.ResultCode = 1;
-                                result.ResultMsg = $"鏈煡璇㈠埌鐗╂枡瀛樻斁鏃堕棿閰嶇疆淇℃伅锛屾潯褰㈢爜锛歿item.bc_entried}";
-                                return result;
-                            }
-                        }
                     }
                 }
 
@@ -223,9 +192,10 @@
             try
             {
                 Location endLoc = LocationHelper.GetLoc(model.endLoc);
-                if (endLoc.N_CURRENT_NUM == 0) 
+                if (endLoc.N_CURRENT_NUM == 0)
                 {
-                    for (int i = 0; i < endLoc.N_CAPACITY; i++) 
+                    int taskNum = 0;
+                    for (int i = 0; i < endLoc.N_CAPACITY; i++)
                     {
                         Location startLoc = WMSHelper.GetoutStockStartLoc(model.itemCode);
                         Location middleLoc = null;
@@ -258,14 +228,20 @@
                         }
                         else
                         {
-                            result.ResultCode = 1;
-                            result.ResultMsg = "搴撳唴娌℃湁婊¤冻鏉′欢鐨勭墿鏂�;
-                            return result;
+                            LogHelper.Info($"搴撳唴娌℃湁鐗╂枡:{model.itemCode}", "WMS");
+                            break;
                         }
 
-                        
+
                         if (endLoc != null)
                         {
+                            string taskType = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�;
+                            if (model.taskType == 2) 
+                            {
+                                taskType = "鎶芥鍙枡鍑哄簱浠诲姟";
+                            }
+
+
                             var wmsTask = new WMSTask()
                             {
                                 S_CNTR_CODE = descCntrCode,
@@ -274,9 +250,9 @@
                                 S_START_AREA = startLoc.S_AREA_CODE,
                                 S_END_LOC = endLoc.S_CODE,
                                 S_END_AREA = endLoc.S_AREA_CODE,
-                                S_TYPE = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�,
+                                S_TYPE = taskType,
                                 S_OP_DEF_CODE = model.taskNo,
-                                S_OP_DEF_NAME = "鎴愬瀷鏈哄彨鏂欏嚭搴撲换鍔�,
+                                S_OP_DEF_NAME = "鍙枡鍑哄簱浠诲姟",
                                 N_PRIORITY = model.priority,
                                 T_START_TIME = DateTime.Now,
                             };
@@ -309,10 +285,22 @@
                                     // 鏇存柊浣滀笟浠诲姟鐘舵�
                                     wmsTask.N_B_STATE = 1;
                                     WMSHelper.UpdateTaskState(wmsTask);
+                                    taskNum++;
                                 }
                             }
                         }
                     }
+
+                    if (taskNum < endLoc.N_CAPACITY) 
+                    {
+                        result.ResultCode = 1;
+                        result.ResultMsg = $"搴撳唴鐗╂枡涓嶈冻锛屽凡鐢熸垚鍑哄簱浠诲姟鏁�{taskNum}";
+                    }
+                }
+                else 
+                {
+                    result.ResultCode = 1;
+                    result.ResultMsg = "缁堢偣璐т綅褰撳墠瀹归噺涓嶄负0锛屾棤娉曞彨鏂�;
                 }
             }
             catch (Exception ex)
@@ -334,40 +322,8 @@
             ReturnResult result = new ReturnResult();
             try
             {
-                if(model.itemInfo != null && model.itemInfo.Count > 0)
-                {
-                    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 && overage.OVERAGE != 0)
-                        {
-                            DateTime txndate = DateTime.Parse(item.txndate);
-                            DateTime minTime = txndate.AddHours(overage.MINHOUR);
-                            DateTime maxTime = txndate.AddDays(overage.OVERAGE);
-                            item.effective_time = minTime.ToString("yyyy-MM-dd HH:mm:ss");
-                            item.expiration_time = maxTime.ToString("yyyy-MM-dd HH:mm:ss");
-                        }
-                        else
-                        {
-                            result.ResultCode = 1;
-                            result.ResultMsg = $"鏈煡璇㈠埌鐗╂枡瀛樻斁鏃堕棿閰嶇疆淇℃伅锛屾潯褰㈢爜锛歿item.bc_entried}";
-                            return result;
-                        }
-                    }
-                }
-
                 var container = ContainerHelper.GetCntr(model.trayCode);
-                if (container != null) 
+                if (container != null)
                 {
                     Location startLoc = LocationHelper.GetLoc(model.startLoc);
                     Location endLoc = WMSHelper.GetInstockEndLoc(container.N_TYPE, model.startLoc, 2);
@@ -433,8 +389,13 @@
                     else
                     {
                         result.ResultCode = 1;
-                        result.ResultMsg = "娌℃湁绌轰綑鐨勮揣浣�;
+                        result.ResultMsg = "绔嬪簱娌℃湁绌轰綑鐨勮揣浣�;
                     }
+                }
+                else 
+                {
+                    result.ResultCode = 1;
+                    result.ResultMsg = "WMS绯荤粺涓病鏈夎瀹瑰櫒";
                 }
             }
             catch (Exception ex)
@@ -1077,19 +1038,15 @@
                 {
                     S_ITEM = matl.item,
                     S_BC_ENTRIED = matl.bc_entried,
+                    S_TOOLING_CODE = matl.toolineCode,
                     S_MCN = matl.mcn,
-                    S_OPR = matl.opr,
                     TXNDATE = DateTime.Parse(matl.txndate, enGB) ,
                     S_SHIFT = matl.shift,
                     N_QTY = matl.qty,
-                    N_STOCK = matl.stock,
-                    S_LOKASI = matl.lokasi,
-                    S_SARANA = matl.sarana,
-                    BOM1 = matl.bom1,
-                    BOM2 = matl.bom2,
-                    BOM3 = matl.bom3,
-                    S_FOVRAGE = matl.fovrage,
                     S_JDGE = matl.jdge,
+                    N_OVERAGE = matl.overagv,
+                    N_MINHOUR = matl.minhour,
+                    N_PRODUCT_TYPE_CODE = matl.productTypeCode,
                     LAST_MODIFY_TIME = matl.last_modify_time
                 };
                 itemBarcodeInfos.Add(itemBarcodeInfo);
@@ -1099,102 +1056,87 @@
             if (!bo) 
             {
                 responseResult.ResultCode = 1;
-                responseResult.ResultMsg = "鍚屾鐗╂枡鏉$爜淇℃伅澶辫触";
+                responseResult.ResultMsg = "鍚屾GT鏉$爜鐗╂枡淇℃伅澶辫触";
             }
             return responseResult;
         }
 
         /// <summary>
-        /// 鍚屾鐗╂枡鐘舵�淇℃伅
+        /// 鍚屾鏉$爜鐘舵�淇℃伅
         /// </summary>
         /// <param name="updateMatlStatuses"></param>
         /// <returns></returns>
-        public static ReturnResult synUpdateMatlStatus(List<UpdateMatlStatus> updateMatlStatuses)
+        public static ReturnResult synBarcodeStatus(List<UpdateMatlStatus> updateMatlStatuses)
         {
             ReturnResult responseResult = new ReturnResult();
-            var bo = WMSHelper.batchUpdateItemStatus(updateMatlStatuses);
-            if (!bo)
+            List<iWMS_semi_bld_BCstatus> list = new List<iWMS_semi_bld_BCstatus> ();
+            if (updateMatlStatuses.Count > 0) 
             {
-                responseResult.ResultCode = 1;
-                responseResult.ResultMsg = "鍚屾鐗╂枡鐘舵�淇℃伅澶辫触";
-            }
-            return responseResult;
-        }
-
-        /// <summary>
-        /// 鍚屾鏇存柊鐗╂枡瀛樻斁鏃堕棿閰嶇疆淇℃伅
-        /// </summary>
-        /// <param name="overages"></param>
-        /// <returns></returns>
-        public static ReturnResult synUpdateMatlTimeConfig(List<MatlOverage> overages)
-        {
-            ReturnResult responseResult = new ReturnResult();
-            if (overages != null && overages.Count > 0) 
-            {
-                List<Overage> overageList = new List<Overage>();
-                foreach (var item in overages)
+                foreach (var item in updateMatlStatuses)
                 {
-                    Overage overage = new Overage
+                    iWMS_semi_bld_BCstatus bCstatus = new iWMS_semi_bld_BCstatus() 
                     {
-                        MCNGRP = item.mcngrp,
-                        ITEMPATT = item.itempatt,
-                        OVERAGE = item.overage,
-                        MINHOUR = float.Parse(item.minhour.ToString()),
-                        FLAG_STS = item.flag_sts,
-                        RECID = item.recid,
+                        S_BC_ENTRIED = item.bc_entried,
+                        S_MCNGRP = item.mcngrp,
+                        S_JDGE = item.jdge,
+                        LAST_MODIFY_TIME = item.last_modify_time
                     };
-                    overageList.Add(overage);
+                    list.Add(bCstatus);
                 }
-                var bo = WMSHelper.batchUpdateMatlTimeConfig(overageList);
+
+                var bo = WMSHelper.synBarcodeStatus(list);
                 if (!bo)
                 {
                     responseResult.ResultCode = 1;
-                    responseResult.ResultMsg = "鍚屾鐗╂枡鐘舵�淇℃伅澶辫触";
+                    responseResult.ResultMsg = "鍚屾鏉$爜鐘舵�淇℃伅澶辫触";
                 }
             }
             return responseResult;
         }
 
         /// <summary>
-        /// 璁板綍鏁版嵁鍚屾鏃堕棿
+        /// 鍚屾鏉$爜鐘舵�淇℃伅
         /// </summary>
-        /// <param name="model"></param>
+        /// <param name="updateMatlStatuses"></param>
         /// <returns></returns>
-        public static ReturnResult recordDataSynTime(RecordDataSynTimeModel model)
+        public static ReturnResult synSamplingStatus(List<UpdateMatlStatus> updateMatlStatuses)
         {
             ReturnResult responseResult = new ReturnResult();
-            SynDataTimeRecord record = new SynDataTimeRecord() 
+            List<iWMS_semi_bld_BCsample> list = new List<iWMS_semi_bld_BCsample>();
+            if (updateMatlStatuses.Count > 0)
             {
-                S_SYN_TIME = model.sysTime,
-                N_SYN_NUM = model.synNum,
-                RECORD_TABLE = model.recordTable
-            }; 
-            var bo = WMSHelper.addSynDataTimeReord(record);
-            if (!bo)
-            {
-                responseResult.ResultCode = 1;
-                responseResult.ResultMsg = "璁板綍鏁版嵁鍚屾鏃堕棿澶辫触";
+                foreach (var item in updateMatlStatuses)
+                {
+                    iWMS_semi_bld_BCsample bCstatus = new iWMS_semi_bld_BCsample()
+                    {
+                        S_BC_ENTRIED = item.bc_entried,
+                        S_MCNGRP = item.mcngrp,
+                        S_JDGE = item.jdge,
+                        LAST_MODIFY_TIME = item.last_modify_time
+                    };
+                    list.Add(bCstatus);
+                }
+
+                var bo = WMSHelper.synSamplingStatus(list);
+                if (!bo)
+                {
+                    responseResult.ResultCode = 1;
+                    responseResult.ResultMsg = "鍚屾鏉$爜鐘舵�淇℃伅澶辫触";
+                }
             }
             return responseResult;
         }
-
 
         /// <summary>
         /// 鏌ヨ涓婁竴娆$殑鏁版嵁鍚屾鏃堕棿
         /// </summary>
-        /// <param name="recordTable"></param>
+        /// <param name="tableType"></param>
         /// <returns></returns>
-        public static ReturnResult findLastDataSynTime(string recordTable)
+        public static ReturnResult findDataLastSynTime(int tableType)
         {
             ReturnResult responseResult = new ReturnResult();
-            var synDataTime = WMSHelper.getLastDataSynTime(recordTable);
-            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;
-            }
+            var synDataTime = WMSHelper.getDataLastSynTime(tableType);
+            responseResult.data = synDataTime;
             return responseResult;
         }
 
@@ -1259,10 +1201,11 @@
         public class CreateOutOrderModel
         {
             public string taskNo { get; set; } // 浠诲姟鍙�-            public string trayCode { get; set; } // 浠诲姟鍙�+            public string trayCode { get; set; } // 鎵樼洏鍙�             public string itemCode { get; set; } // 鐗╂枡缂栫爜
             public string endLoc { get; set; } // 缁堢偣璐т綅
             public int priority { get; set; } = 0; // 浼樺厛绾�榛樿0
+            public int taskType { get; set; } = 1; // 1.鎴愬瀷鏈哄彨鏂欎换鍔�2.鎶芥鍑哄簱浠诲姟
         }
 
         public class EmptyTrayOutOrderModel
@@ -1287,16 +1230,15 @@
         {
             public string item { get; set; } // 鐗╁搧浠g爜
             public string bc_entried { get; set; } // 鏉″舰鐮佺紪鍙�+            public string toolineCode { get; set; } // 宸ヨ鏉$爜
             public string mcn { get; set; } // 鏈哄櫒浠g爜缂栧彿
-            public string opr { get; set; } // 鎿嶄綔鍛�             public string txndate { get; set; } // 鐢熶骇鏃堕棿
             public string shift { get; set; } // 宸ヤ綔鐝
             public int qty { get; set; } // 浜у搧鏁伴噺
-            public string sarana { get; set; } // 浜у搧鏉愭枡鐨勬墭鐩�鐩�鎺ㄨ溅/璐ц溅ID
-            public string fovrage { get; set; } // 鏄惁杩囨湡鐨勭姸鎬�Y=杩囨湡锛孨=鏈繃鏈�-            public string jdge { get; set; } // 璐ㄩ噺鐘舵� OK=浜у搧鍚堟牸锛孨G=浜у搧涓嶅悎鏍硷紝HLM=浜у搧寰呭畾
-            public string effective_time { get; set; } // 鐢熸晥鏃堕棿 (yyyy-MM-dd HH:mm:ss)
-            public string expiration_time { get; set; } // 澶辨晥鏃堕棿 (yyyy-MM-dd HH:mm:ss)
+            public string jdge { get; set; } // 璐ㄩ噺鐘舵� OK=浜у搧鍚堟牸锛孒OLD = 浜у搧寰呭畾
+            public int overage { get; set; } // 鐢熸晥鏃堕棿 (yyyy-MM-dd HH:mm:ss)
+            public int minhour { get; set; } // 澶辨晥鏃堕棿 (yyyy-MM-dd HH:mm:ss)
+            public int productTypeCode { get; set; } // 澶辨晥鏃堕棿 (yyyy-MM-dd HH:mm:ss)
         }
 
         

--
Gitblit v1.9.1