| | |
| | | |
| | | 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; |
| | |
| | | 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) { |
| | | // 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 (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) { |
| | | result = sId.CN_N_MAX; |
| | | } |
| | | } |
| | | else { |
| | | //插入表 |
| | |
| | | } |
| | | |
| | | [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; } |
| | | } |
| | | } |
| | | } |