Files
zszq-trs/YLErpDAL/CustomizedBizLogic/BizLogicSywg.cs
2024-05-09 14:06:26 +08:00

53 lines
1.8 KiB
C#

using YLErp.BLL;
namespace YLErp.CustomizedBizLogic
{
public class BizLogicSywg : BizLogicDefault
{
/// <summary>
/// 在交易确认前生成交易编号
/// </summary>
/// <returns></returns>
public override string GenerateTradeNumberBeforeConfirm(TradeNumberReqModel reqModel, YLContext db)
{
return null;
}
/// <summary>
/// 生成客户编号
/// 生成规则:例如 IAM7, IAM为固定字符,7是序列编号,每增加一个客户自动加1
/// </summary>
/// <param name="initialCode">客户创建时的初始编号,如果没有传null</param>
/// <param name="db"></param>
public override void GenerateClientCode(Client clentObj, IQueryable<Client> 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;
}
}
}