Security/Yuebon.Security.Services/SequenceService.cs
(开头部分) 12KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using Yuebon.Commons.Helpers;
using Yuebon.Commons.Log;
namespace Yuebon.Security.Services;
/// <summary>
/// 单据编码服务接口实现
/// </summary>
public class SequenceService : BaseService<Sequence, SequenceOutputDto>, ISequenceService
{
private readonly IRepository<SequenceRule> _repositoryRule;
/// <summary>
///
/// </summary>
/// <param name="sequenceRepository"></param>
/// <param name="repositoryRule"></param>
public SequenceService(IRepository<Sequence> sequenceRepository, IRepository<SequenceRule> repositoryRule)
{
repository= sequenceRepository;
_repositoryRule = repositoryRule;
}
/// <summary>
/// 获取最新业务单据编码
/// </summary>
/// <param name="sequenceName">业务单据编码名称</param>
/// <returns></returns>
public async Task<string> GetSequenceNextTask(string sequenceName)
{
CommonResult result = new CommonResult();
//生成编号
string sequenceNewNo = "";
#region 获取序号生成器属性
if (string.IsNullOrWhiteSpace(sequenceName))
{
return "参数错误:业务编码编号";
}
//获取序号生成器属性
Sequence sequence = repository.GetWhere("SequenceName='" + sequenceName + "'");
if (sequence != null)
{
IEnumerable<SequenceRule> list = _repositoryRule.GetListWhere("SequenceName='" + sequenceName + "' order by RuleOrder asc");
if (list.Any())
{
int delimiterNum = 0;
foreach (SequenceRule item in list)
{
delimiterNum++;
switch (item.RuleType)
{
case "const"://常量方式
sequenceNewNo += item.RuleValue;
break;
case "shortdate"://短日期 年2位月2位日期2位
sequenceNewNo += DateTime.Now.ToString("yyyyMMdd").Substring(2);
break;
case "date"://日期,年4位
sequenceNewNo += DateTime.Now.ToString("yyyyMMdd");
后面还有 258 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。