53 lines
1.8 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|