From 0ed390381862dea0c7fd0210d16017eb09f12da4 Mon Sep 17 00:00:00 2001 From: kazelee <1847801760@qq.com> Date: 星期三, 30 七月 2025 17:27:27 +0800 Subject: [PATCH] 封装插入容器表等业务代码, 修复部分底层旧框架方法问题 --- wms/SYSHelper.cs | 67 +++++++++++++++++++++++---------- 1 files changed, 47 insertions(+), 20 deletions(-) diff --git a/wms/SYSHelper.cs b/wms/SYSHelper.cs index b48f3fd..0cc3bfa 100644 --- a/wms/SYSHelper.cs +++ b/wms/SYSHelper.cs @@ -1,49 +1,76 @@ -锘縰sing HH.WCS.Mobox3.DSZSH.util; - +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using HH.WCS.Mobox3.DSZSH.util; using SqlSugar; namespace HH.WCS.Mobox3.DSZSH.wms { /// <summary> - /// 鐢ㄤ簬鐢熸垚搴忓垪鍙凤紝骞剁鐞嗗簭鍒楀彿鍓嶇紑鐨勫伐鍏风被 + /// [ 搴忓垪鍙风敓鎴�] 甯姪绫� /// </summary> - internal class SYSHelper - { - //浣跨敤闈欐� locker 瀵硅薄瀹炵幇绾跨▼鍚屾 + public class SYSHelper { private static object locker = new object(); - internal static int GetSerialNumber(string snType, string prefix) { + /// <summary> + /// <c>"{prefix}-{DateTime.Now.ToString(dateFormat)}-{id.ToString().PadLeft(length,'0')}"</c> + /// </summary> + /// <param name="snType"></param> + /// <param name="prefix"></param> + /// <param name="dateFormat"></param> + /// <param name="length"></param> + /// <example><code><![CDATA[ + /// private static string GenerateOrderNo(string snType, string prefix) { + /// //var id = SYSHelper.GetSerialNumber(snType, prefix); + /// //var date = DateTime.Now.ToString("yyMMdd"); + /// //return $"{prefix}{date}-{id.ToString().PadLeft(4, '0')}"; + /// return SYSHelper.GenerateSN(snType, prefix, "yyMMdd"); + /// } + /// ]]></code></example> + /// <returns></returns> + public static string GenerateSN(string snType, string prefix, string dateFormat = "yyMM", int length = 4) { + var header = $"{prefix}{DateTime.Now.ToString(dateFormat)}-"; + var res = GetSerialNumber(snType, header); + if (res == 0) return ""; + else { + return $"{header}{res.ToString().PadLeft(length, '0')}"; + } + } + //鍘熸鏋舵柟娉�涓嶄細鎸夋棩鏇存柊MAXID,鐜板湪璁句负绉佹湁闅愯棌,榛樿璋冪敤灏佽鍚庣殑GenerateSN鏂规硶 + private static int GetSerialNumber(string snType, string prefix) { int result = 0; lock (locker) { 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) { + //鍘熸鏋堕�杈�鏇存帴杩慚obox鐨勫簭鍒楀彿鐢熸垚鏂规硶) 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) { - // 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) { + 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) { result = sId.CN_N_MAX; } - + //鎸夋棩閲嶇疆MAXID鐨勯�杈�鐜颁笉鑰冭檻浣跨敤) + //sId.CN_N_MAX = sId.CN_T_LAST < DateTime.Today ? 1 : sId.CN_N_MAX + 1; + //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) { + // result = sId.CN_N_MAX; + //} } else { //鎻掑叆琛� sId = new OI_SYS_MAXID { CN_S_TYPE = snType, CN_S_PRE = prefix, CN_N_MAX = 1 }; - result = db.Insertable<OI_SYS_MAXID>(sId).ExecuteCommand() > 0 ? 1 : 0; - + result = db.Insertable(sId).ExecuteCommand() > 0 ? 1 : 0; } } return result; } - [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