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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。