heshaofeng
2025-12-29 266e4bf654c55ce2f7e9271048e4625f1b8b49f6
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_BasicService/BasicService.cs
@@ -40,50 +40,55 @@
        }
        #region
        static object lockObj = new object();
        public string CreateCodeByRule(string ruleCode)
        {
            string code = string.Empty;
            DateTime dataTime = DateTime.Now;
            DateTime now = DateTime.Now;
            try
            lock (lockObj)
            {
                Dt_CodeRuleConfig ruleConfig = _unitOfWorkManage.Db.Queryable<Dt_CodeRuleConfig>().Where(x => x.RuleCode == ruleCode).First();
                if (ruleConfig.ModifyDate != null)
                {
                    dataTime = ruleConfig.ModifyDate.Value;
                }
                else
                {
                    dataTime = ruleConfig.CreateDate;
                }
                string code = string.Empty;
                DateTime dataTime = DateTime.Now;
                DateTime now = DateTime.Now;
                if (now.Year == dataTime.Year && now.Month == dataTime.Month && now.Day == dataTime.Day)
                try
                {
                    now = dataTime;
                    ruleConfig.CurrentVal = Convert.ToInt32(ruleConfig.CurrentVal) + 1;
                    Dt_CodeRuleConfig ruleConfig = _unitOfWorkManage.Db.Queryable<Dt_CodeRuleConfig>().Where(x => x.RuleCode == ruleCode).First();
                    if (ruleConfig.ModifyDate != null)
                    {
                        dataTime = ruleConfig.ModifyDate.Value;
                    }
                    else
                    {
                        dataTime = ruleConfig.CreateDate;
                    }
                    if (now.Year == dataTime.Year && now.Month == dataTime.Month && now.Day == dataTime.Day)
                    {
                        now = dataTime;
                        ruleConfig.CurrentVal = Convert.ToInt32(ruleConfig.CurrentVal) + 1;
                    }
                    else
                    {
                        ruleConfig.CurrentVal = 1;
                    }
                    ruleConfig.ModifyDate = DateTime.Now;
                    code = ruleConfig.Format;
                    code = code.Replace($"[{CodeFormatTypeEnum.YYYY}]", now.Year.ToString().PadLeft(4, '0'));
                    code = code.Replace($"[{CodeFormatTypeEnum.MM}]", now.Month.ToString().PadLeft(2, '0'));
                    code = code.Replace($"[{CodeFormatTypeEnum.DD}]", now.Day.ToString().PadLeft(2, '0'));
                    code = code.Replace($"[{CodeFormatTypeEnum.ST}]", ruleConfig.StartStr.ToString());
                    code = code.Replace($"[{CodeFormatTypeEnum.NUM}]", ruleConfig.CurrentVal.ToString().PadLeft(ruleConfig.Length, '0'));
                    _unitOfWorkManage.Db.Updateable(ruleConfig).ExecuteCommand();
                }
                else
                catch (Exception ex)
                {
                    ruleConfig.CurrentVal = 1;
                    throw new Exception(ex.Message);
                }
                ruleConfig.ModifyDate = DateTime.Now;
                code = ruleConfig.Format;
                code = code.Replace($"[{CodeFormatTypeEnum.YYYY}]", now.Year.ToString().PadLeft(4, '0'));
                code = code.Replace($"[{CodeFormatTypeEnum.MM}]", now.Month.ToString().PadLeft(2, '0'));
                code = code.Replace($"[{CodeFormatTypeEnum.DD}]", now.Day.ToString().PadLeft(2, '0'));
                code = code.Replace($"[{CodeFormatTypeEnum.ST}]", ruleConfig.StartStr.ToString());
                code = code.Replace($"[{CodeFormatTypeEnum.NUM}]", ruleConfig.CurrentVal.ToString().PadLeft(ruleConfig.Length, '0'));
                _unitOfWorkManage.Db.Updateable(ruleConfig).ExecuteCommand();
                return code;
            }
            catch (Exception ex)
            {
            }
            return code;
        }
        #endregion