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