From de8cd5585ba690902333cf4ce9aa5dbc7eb9acf6 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期三, 28 五月 2025 17:29:33 +0800
Subject: [PATCH] 根据业务重构库区,增加记录表,开始ERP下发反馈逻辑开发

---
 wms/SYSHelper.cs |   62 +++++++++++++++++++++++-------
 1 files changed, 47 insertions(+), 15 deletions(-)

diff --git a/wms/SYSHelper.cs b/wms/SYSHelper.cs
index b48f3fd..8044904 100644
--- a/wms/SYSHelper.cs
+++ b/wms/SYSHelper.cs
@@ -2,13 +2,14 @@
 
 using SqlSugar;
 
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
 namespace HH.WCS.Mobox3.DSZSH.wms {
-    /// <summary>
-    /// 鐢ㄤ簬鐢熸垚搴忓垪鍙凤紝骞剁鐞嗗簭鍒楀彿鍓嶇紑鐨勫伐鍏风被
-    /// </summary>
-    internal class SYSHelper
-    {
-        //浣跨敤闈欐� locker 瀵硅薄瀹炵幇绾跨▼鍚屾
+    internal class SYSHelper {
         private static object locker = new object();
         internal static int GetSerialNumber(string snType, string prefix) {
             int result = 0;
@@ -16,16 +17,47 @@
                 var db = new SqlHelper<object>().GetInstance();
                 var sId = db.Queryable<OI_SYS_MAXID>().Where(a => a.CN_S_TYPE.Trim() == snType && a.CN_S_PRE.Trim() == prefix).First();
                 if (sId != null) {
-                    sId.CN_N_MAX++;
-                    //if (db.Ado.ExecuteCommand($"update OI_SYS_MAXID set CN_N_MAX={sId.CN_N_MAX} where CN_S_TYPE='{snType}' and CN_S_PRE='{prefix}' ") > 0) {
+
+                    if (sId.CN_T_LAST < DateTime.Today) {
+                        sId.CN_N_MAX = 1;
+                    }
+                    else {
+                        sId.CN_N_MAX++;
+                    }
+
+                    sId.CN_T_LAST = DateTime.Now;
+                    if (db.Ado.ExecuteCommand($"update OI_SYS_MAXID set CN_N_MAX={sId.CN_N_MAX}, CN_T_LAST='{sId.CN_T_LAST}' where CN_S_TYPE='{snType}' and CN_S_PRE='{prefix}' ") > 0) {
+                        //LogHelper.Info($"set cn_n_max {sId.CN_N_MAX}");
+                        result = sId.CN_N_MAX;
+                    }
+
+                    //if (db.Updateable<OI_SYS_MAXID>(sId).UpdateColumns(it => new { it.CN_N_MAX, it.CN_T_LAST}).ExecuteCommand() > 0) {
                     //    result = sId.CN_N_MAX;
                     //}
 
-                    // 鍙傛暟鍖栨煡璇紝閬垮厤SQL娉ㄥ叆
-                    if (db.Updateable<OI_SYS_MAXID>().SetColumns(it => it.CN_N_MAX == sId.CN_N_MAX).Where(it => it.CN_S_TYPE == snType
-                        && it.CN_S_PRE == prefix).ExecuteCommand() > 0) {
-                        result = sId.CN_N_MAX;
-                    }
+                    //if (db.Updateable<OI_SYS_MAXID>()
+                    //    .SetColumns(it => it.CN_N_MAX == sId.CN_N_MAX && it.CN_T_LAST == sId.CN_T_LAST)
+                    //    .Where(it => it.CN_S_TYPE == sId.CN_S_TYPE && it.CN_S_PRE == sId.CN_S_TYPE)
+                    //    .ExecuteCommand() > 0) {
+                    //    result = sId.CN_N_MAX;
+                    //}
+
+                    //var parameters = new[] {
+                    //    new SugarParameter("@CN_N_MAX", sId.CN_N_MAX),
+                    //    new SugarParameter("@CN_T_LAST", sId.CN_T_LAST),
+                    //    new SugarParameter("@CN_S_TYPE", sId.CN_S_TYPE),
+                    //    new SugarParameter("@CN_S_PRE", sId.CN_S_TYPE)
+                    //};
+
+                    //var sql = @"UPDATE OI_SYS_MAXID 
+                    //    SET CN_N_MAX = @CN_N_MAX, CN_T_LAST = @CN_T_LAST 
+                    //    WHERE CN_S_TYPE = @CN_S_TYPE AND CN_S_PRE = @CN_S_PRE";
+
+                    //if (db.Ado.ExecuteCommand(sql, parameters) > 0) {
+                    //    result = sId.CN_N_MAX;
+                    //    LogHelper.Info($"set cn_n_max {sId.CN_N_MAX}");
+                    //}
+
 
                 }
                 else {
@@ -39,11 +71,11 @@
         }
 
         [SugarTable("dbo.OI_SYS_MAXID")]
-        public class OI_SYS_MAXID
-        {
+        public class OI_SYS_MAXID {
             public string CN_S_TYPE { get; set; }
             public string CN_S_PRE { get; set; }
             public int CN_N_MAX { get; set; }
+            public DateTime CN_T_LAST { get; set; }
         }
     }
 }

--
Gitblit v1.9.1