using YLErp.BLL; namespace YLErp.CustomizedBizLogic { public class BizLogicSywg : BizLogicDefault { /// /// 在交易确认前生成交易编号 /// /// public override string GenerateTradeNumberBeforeConfirm(TradeNumberReqModel reqModel, YLContext db) { return null; } /// /// 生成客户编号 /// 生成规则:例如 IAM7, IAM为固定字符,7是序列编号,每增加一个客户自动加1 /// /// 客户创建时的初始编号,如果没有传null /// public override void GenerateClientCode(Client clentObj, IQueryable clientDbQuery) { if (string.IsNullOrWhiteSpace(clentObj.Number)) { const string PREFIX = "IAM"; lock (_clientCodeLock) { var existingClientCodes = clientDbQuery.Where(x => x.Number.Contains(PREFIX)).Select(x => x.Number).ToList(); //如果当前没有IAM开头的,从1开始计数 if (existingClientCodes.Count == 0) { clentObj.Number = "IAM1"; } else { var maxNumber = existingClientCodes.Max(x => parseNumber(x.Substring(PREFIX.Length))); var nextNum = maxNumber + 1; clentObj.Number = PREFIX + nextNum.ToString(); } } } } private int parseNumber(string clientNumber) { var number = 0; int.TryParse(clientNumber, out number); return number; } } }