From d0a265713fd18162f3a82bdcd22e267df7298c7b Mon Sep 17 00:00:00 2001
From: 杨前锦 <1010338399@qq.com>
Date: 星期一, 26 五月 2025 08:59:52 +0800
Subject: [PATCH] 印尼佳通-半制品代码逻辑优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WMSHelper.cs |  121 +++++++++++++++++++++-------------------
 1 files changed, 64 insertions(+), 57 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WMSHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WMSHelper.cs
index f3dcc70..e7e2009 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WMSHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WMSHelper.cs
@@ -753,12 +753,16 @@
             try
             {
                 db.BeginTran();
-                itemBarcodeInfos.ForEach(a => {
-                    var bo = db.Insertable<ItemBarcodeInfo>(a).ExecuteCommand() > 0;
-                    if (!bo)
+                itemBarcodeInfos.ForEach(item => {
+                    var itemBarcodeInfo = db.Queryable<ItemBarcodeInfo>().Where(a => a.S_BC_ENTRIED == item.S_BC_ENTRIED).First();
+                    if (itemBarcodeInfo == null) 
                     {
-                        result = false;
-                        LogHelper.Info($"娣诲姞鐗╂枡鏉$爜淇℃伅澶辫触锛岀墿鏂欐潯鐮佷俊鎭細{JsonConvert.SerializeObject(a)}", "GT");
+                        var bo = db.Insertable<ItemBarcodeInfo>(item).ExecuteCommand() > 0;
+                        if (!bo)
+                        {
+                            result = false;
+                            LogHelper.Info($"娣诲姞鐗╂枡鏉$爜淇℃伅澶辫触锛岀墿鏂欐潯鐮佷俊鎭細{JsonConvert.SerializeObject(item)}", "GT");
+                        }
                     }
                 });
                 if (result)
@@ -790,26 +794,34 @@
             {
                 db.BeginTran();
                 updateMatlStatuses.ForEach(update => {
-                    var bo = db.Updateable<CntrItemRel>().SetColumns(a => new CntrItemRel() { S_ITEM_STATE = update.jdge }).Where(a => a.S_CG_ID == update.bc_entried).ExecuteCommand() > 0;
-                    if (!bo)
+                    var itemBarcodeInfo = db.Queryable<ItemBarcodeInfo>().Where(a => a.S_BC_ENTRIED == update.bc_entried).First();
+                    if (itemBarcodeInfo != null) 
                     {
-                        result = false;
-                        LogHelper.Info($"鎵归噺鏇存柊鐗╂枡鐘舵�澶辫触锛岀墿鏂欐潯鐮佷俊鎭細{JsonConvert.SerializeObject(update)}", "GT");
+                        itemBarcodeInfo.S_JDGE = update.jdge;
+                        db.Updateable(itemBarcodeInfo).ExecuteCommand();
+                        var cntrItemRel = db.Queryable<CntrItemRel>().Where(a => a.S_CG_ID == update.bc_entried).First();
+                        if (cntrItemRel != null) 
+                        {
+                            // 灏哅ES鐨勭墿鏂欑姸鎬佽浆鍖栨垚WMS鍙瘑鍒殑鐗╂枡鐘舵�
+                            if (update.jdge == "" || update.jdge == null)
+                            {
+                                update.jdge = "OK";
+                            }
+                            else if (update.jdge != "OK")
+                            {
+                                update.jdge = "HOLD";
+                            }
+                            db.Updateable<CntrItemRel>().SetColumns(a => new CntrItemRel() { S_ITEM_STATE = update.jdge }).Where(a => a.S_CG_ID == update.bc_entried).ExecuteCommand();
+                        }
                     }
                 });
-                if (result)
-                {
-                    db.CommitTran();
-                }
-                else
-                {
-                    db.RollbackTran();
-                }
+                db.CommitTran();
             }
             catch (Exception ex)
             {
                 LogHelper.Info($"鎵归噺鏇存柊鐗╂枡鐘舵�閿欒锛岄敊璇俊鎭細{ex.Message}", "GT");
                 db.RollbackTran();
+                result = false;
             }
             return result;
         }
@@ -827,48 +839,28 @@
                 db.BeginTran();
                 foreach (Overage overage in overages) 
                 {
-                    bool bo = false;
-                    var overage1 = db.Queryable<Overage>().Where(a => a.MCNGRP == overage.MCNGRP && a.ITEMPATT == overage.ITEMPATT).First();
+                    var overage1 = db.Queryable<Overage>().Where(a => a.RECID == overage.RECID).First();
                     if (overage1 != null)
                     {
+                        overage1.MCNGRP = overage.MCNGRP;
+                        overage1.ITEMPATT = overage.ITEMPATT;
                         overage1.OVERAGE = overage.OVERAGE;
                         overage1.MINHOUR = overage.MINHOUR;
                         overage1.FLAG_STS = overage.FLAG_STS;
-                        bo = db.Updateable(overage1).ExecuteCommand() > 0;
+                        db.Updateable(overage1).ExecuteCommand();
                     }
                     else 
                     {
-                        overage1 = new Overage()
-                        {
-                            MCNGRP = overage.MCNGRP,
-                            ITEMPATT = overage.ITEMPATT,
-                            OVERAGE = overage.OVERAGE,
-                            MINHOUR = overage.MINHOUR,
-                            FLAG_STS = overage.FLAG_STS
-                        };
-                        bo = db.Insertable(overage1).ExecuteCommand() > 0;
-                    }
-                    if (!bo)
-                    {
-                        result = false;
-                        LogHelper.Info($"鎵归噺鏇存柊鐗╂枡瀛樻斁鏃堕棿閰嶇疆淇℃伅澶辫触锛岄厤缃俊鎭細{JsonConvert.SerializeObject(overage)}", "GT");
-                        break;
+                        db.Insertable(overage).ExecuteCommand();
                     }
                 }
-               
-                if (result)
-                {
-                    db.CommitTran();
-                }
-                else
-                {
-                    db.RollbackTran();
-                }
+                db.CommitTran();
             }
             catch (Exception ex)
             {
                 LogHelper.Info($"鎵归噺鏇存柊鐗╂枡瀛樻斁鏃堕棿閰嶇疆淇℃伅閿欒锛岄敊璇俊鎭細{ex.Message}", "GT");
                 db.RollbackTran();
+                result = false;
             }
             return result;
         }
@@ -879,22 +871,26 @@
         /// <returns></returns>
         public static Overage getOverage(string bc_entried)
         {
-            Overage overage = null;
+           
             var db = new SqlHelper<object>().GetInstance();
-            overage = db.Queryable<Overage>().Where(a => a.ITEMPATT == bc_entried && a.MCNGRP == "1").First();
 
-            if (overage == null)
-            {
-                string sub = bc_entried.Substring(0, 3);
-                overage = db.Queryable<Overage>().Where(a => a.ITEMPATT.Contains(sub) && a.MCNGRP == "1").First();
-            }
+            // 鐩存帴鎵ц SQL锛堝弬鏁板寲鏌ヨ锛�+            var sql = "SELECT get_ovg_bar(@barcode, @mcngrp) AS overage_value";
+            var sql1 = "SELECT get_minhour_bar(@barcode, @mcngrp) AS overage_value";
 
-            if (overage == null)
+            // 浣跨敤鍖垮悕瀵硅薄浼犻�鍙傛暟
+            var ovg_bar = db.Ado.SqlQuery<int>(sql, new { barcode = bc_entried, mcngrp = "1"});
+            var minhour_bar = db.Ado.SqlQuery<float>(sql1, new { barcode = bc_entried, mcngrp = "1"});
+            if (ovg_bar.Count > 0 && minhour_bar.Count > 0) 
             {
-                string sub = bc_entried.Substring(0, 7);
-                overage = db.Queryable<Overage>().Where(a => a.ITEMPATT.Contains(sub) && a.MCNGRP == "1").First();
+                Overage overage = new Overage()
+                {
+                    MINHOUR = minhour_bar[0],
+                    OVERAGE = ovg_bar[0]
+                };
+                return overage;
             }
-            return overage;
+            return null;
         }
 
         /// <summary>
@@ -909,7 +905,18 @@
             try
             {
                 db.BeginTran();
-                result = db.Insertable(record).ExecuteCommand()> 0;
+                var synDataTimeRecord = db.Queryable<SynDataTimeRecord>().Where(a => a.S_SYN_TIME == record.S_SYN_TIME && a.RECORD_TABLE == record.RECORD_TABLE).First();
+                if (synDataTimeRecord == null)
+                {
+                    result = db.Insertable(record).ExecuteCommand() > 0;
+                }
+                else 
+                {
+                    synDataTimeRecord.N_SYN_NUM = record.N_SYN_NUM;
+                    synDataTimeRecord.S_SYN_TIME = record.S_SYN_TIME;
+                    result = db.Updateable(synDataTimeRecord).ExecuteCommand() > 0;
+                }
+                
                 if (result)
                 {
                     db.CommitTran();
@@ -921,7 +928,7 @@
             }
             catch (Exception ex)
             {
-                LogHelper.Info($"娣诲姞鍚屾鏁版嵁鏃堕棿璁板綍閿欒锛岄敊璇俊鎭細{ex.Message}", "GT");
+                LogHelper.Info($"娣诲姞鏁版嵁鍚屾鏃堕棿璁板綍閿欒锛岄敊璇俊鎭細{ex.Message}", "GT");
                 db.RollbackTran();
             }
             return result;

--
Gitblit v1.9.1