schangxiang@126.com
2024-04-25 dd18485d5e6a7605b58d667bab2e315fc33a3d4a
编号自动生成 公共 方法
已添加7个文件
已修改3个文件
已删除1个文件
28523 ■■■■■ 文件已修改
.gitignore 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DBScript/01_DDL/01_DDL_TABLE.sql 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DBScript/02_DML/01_InitData.sql 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Admin.NET.Application.xml 27987 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/CommonHelper/SerialSN/EnumSerialSourceType.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/CommonHelper/SerialSN/EnumSerialType.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/CommonHelper/SerialSN/SerialUtil.cs 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/WmsCommon/IWmsCommonService.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/WmsCommon/WmsCommonService.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/SerialSN/BaseSerialRuleDetail.cs 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/SerialSN/BaseSerialSN.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
@@ -393,3 +393,4 @@
/使用文档/PDManer文件/.back_My_Admin
/iWare_RawMaterialWarehouse_Wms/Admin.NET.Database.Migrations/Migrations
/使用文档/PDManer文件/.back_原材料库标准化
/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Admin.NET.Application.xml
DBScript/01_DDL/01_DDL_TABLE.sql
@@ -1 +1,124 @@
/* è¿™é‡Œå†™åˆ›å»ºæ•°æ®åº“的脚本 */
/* è¿™é‡Œå†™åˆ›å»ºæ•°æ®åº“的脚本 */
-- ç¼–号生成表 ã€Editby shaocx,2023-07-27】
/****** Object:  Table [dbo].[Base_SerialRuleDetail]    Script Date: 2023/7/27 14:34:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Base_SerialRuleDetail](
    [Id] [bigint] NOT NULL,
    [SerialRuleNo] [nvarchar](50) NOT NULL,
    [SerialType] [int] NOT NULL,
    [ItemNo] [int] NOT NULL,
    [SourceType] [nvarchar](50) NOT NULL,
    [SerialLength] [int] NOT NULL,
    [SearchStart] [int] NULL,
    [DecimalType] [int] NULL,
    [UserDefine] [nvarchar](50) NULL,
    [SerialCodeFlag] [int] NULL,
    [Description] [nvarchar](250) NULL,
    [SerialTypeNo] [nvarchar](max) NULL,
    [GetData] [int] NULL,
    [PadLeft] [int] NOT NULL,
    [IssueStatus] [int] NULL,
    [CreatedTime] [datetimeoffset](7) NULL,
    [UpdatedTime] [datetimeoffset](7) NULL,
    [CreatedUserId] [bigint] NULL,
    [CreatedUserName] [nvarchar](50) NULL,
    [UpdatedUserId] [bigint] NULL,
    [UpdatedUserName] [nvarchar](50) NULL,
    [IsDeleted] [bit] NOT NULL,
 CONSTRAINT [PK_Base_SerialRuleDetail] PRIMARY KEY CLUSTERED
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Base_SerialSN]    Script Date: 2023/7/27 14:34:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Base_SerialSN](
    [Id] [bigint] NOT NULL,
    [CurrentDate] [datetime2](7) NOT NULL,
    [Sn] [int] NOT NULL,
    [SerialType] [int] NOT NULL,
    [CreatedTime] [datetimeoffset](7) NULL,
    [UpdatedTime] [datetimeoffset](7) NULL,
    [CreatedUserId] [bigint] NULL,
    [CreatedUserName] [nvarchar](50) NULL,
    [UpdatedUserId] [bigint] NULL,
    [UpdatedUserName] [nvarchar](50) NULL,
    [IsDeleted] [bit] NOT NULL,
 CONSTRAINT [PK_Base_SerialSN] PRIMARY KEY CLUSTERED
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Id主键' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'Id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据号编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'SerialRuleNo'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据号类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'SerialType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'生成顺序号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'ItemNo'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'组合类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'SourceType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'组合类型长度' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'SerialLength'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'字符串内容' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'UserDefine'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'类型描述' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'Description'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'文本靠边方向' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'PadLeft'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'CreatedTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'更新时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'UpdatedTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建者Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'CreatedUserId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建者名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'CreatedUserName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改者Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'UpdatedUserId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改者名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'UpdatedUserName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'软删除标记' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail', @level2type=N'COLUMN',@level2name=N'IsDeleted'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据号生成规则配置表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialRuleDetail'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Id主键' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialSN', @level2type=N'COLUMN',@level2name=N'Id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'流水号时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialSN', @level2type=N'COLUMN',@level2name=N'CurrentDate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'流水号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialSN', @level2type=N'COLUMN',@level2name=N'Sn'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据号类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialSN', @level2type=N'COLUMN',@level2name=N'SerialType'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialSN', @level2type=N'COLUMN',@level2name=N'CreatedTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'更新时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialSN', @level2type=N'COLUMN',@level2name=N'UpdatedTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建者Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialSN', @level2type=N'COLUMN',@level2name=N'CreatedUserId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建者名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialSN', @level2type=N'COLUMN',@level2name=N'CreatedUserName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改者Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialSN', @level2type=N'COLUMN',@level2name=N'UpdatedUserId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改者名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialSN', @level2type=N'COLUMN',@level2name=N'UpdatedUserName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'软删除标记' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialSN', @level2type=N'COLUMN',@level2name=N'IsDeleted'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单据号流水号履历表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Base_SerialSN'
GO
DBScript/02_DML/01_InitData.sql
@@ -1 +1,22 @@
/* è¿™é‡Œå†™ åˆå§‹åŒ–的数据 */
/* è¿™é‡Œå†™ åˆå§‹åŒ–的数据 */
-- åˆå§‹åŒ–  ç¼–号 ã€Editby shaocx,2023-08-18】
    DELETE Base_SerialRuleDetail where SerialType =10;
    GO
        INSERT INTO dbo.Base_SerialRuleDetail
(Id, SerialRuleNo, SerialType, ItemNo, SourceType, SerialLength, SearchStart, DecimalType, UserDefine, SerialCodeFlag, Description, SerialTypeNo, GetData, PadLeft, IssueStatus, CreatedTime, UpdatedTime, CreatedUserId, CreatedUserName, UpdatedUserId, UpdatedUserName, IsDeleted)
VALUES(10, N'1', 10, 1, N'UD', 15, 0, 1, N'UndoStoRec_', 0, N'测试编号编号-前缀', NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO dbo.Base_SerialRuleDetail
(Id, SerialRuleNo, SerialType, ItemNo, SourceType, SerialLength, SearchStart, DecimalType, UserDefine, SerialCodeFlag, Description, SerialTypeNo, GetData, PadLeft, IssueStatus, CreatedTime, UpdatedTime, CreatedUserId, CreatedUserName, UpdatedUserId, UpdatedUserName, IsDeleted)
VALUES(11, N'1', 10, 2, N'Y4', 4, 0, 1, NULL, 0, N'测试编号编号-年份', NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO dbo.Base_SerialRuleDetail
(Id, SerialRuleNo, SerialType, ItemNo, SourceType, SerialLength, SearchStart, DecimalType, UserDefine, SerialCodeFlag, Description, SerialTypeNo, GetData, PadLeft, IssueStatus, CreatedTime, UpdatedTime, CreatedUserId, CreatedUserName, UpdatedUserId, UpdatedUserName, IsDeleted)
VALUES(12, N'1', 10, 3, N'M2', 4, 0, 1, NULL, 0, N'测试编号编号-月份', NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO dbo.Base_SerialRuleDetail
(Id, SerialRuleNo, SerialType, ItemNo, SourceType, SerialLength, SearchStart, DecimalType, UserDefine, SerialCodeFlag, Description, SerialTypeNo, GetData, PadLeft, IssueStatus, CreatedTime, UpdatedTime, CreatedUserId, CreatedUserName, UpdatedUserId, UpdatedUserName, IsDeleted)
VALUES(13, N'1', 10, 4, N'D2', 4, 0, 1, NULL, 0, N'测试编号编号-日', NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);
INSERT INTO dbo.Base_SerialRuleDetail
(Id, SerialRuleNo, SerialType, ItemNo, SourceType, SerialLength, SearchStart, DecimalType, UserDefine, SerialCodeFlag, Description, SerialTypeNo, GetData, PadLeft, IssueStatus, CreatedTime, UpdatedTime, CreatedUserId, CreatedUserName, UpdatedUserId, UpdatedUserName, IsDeleted)
VALUES(14, N'1', 10, 5, N'SN', 3, 0, 1, NULL, 0, N'测试编号编号-流水号', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Admin.NET.Application.xml
ÎļþÒÑɾ³ý
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/CommonHelper/SerialSN/EnumSerialSourceType.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
using System.ComponentModel;
namespace Admin.NET.Application
{
    /// <summary>
    /// ç»„合类型
    /// </summary>
    [Description("组合类型")]
    public enum EnumSerialSourceType
    {
        /// <summary>
        /// å­—符串描述
        /// </summary>
        [Description("字符串描述")]
        UD,
        /// <summary>
        /// 4位年份
        /// </summary>
        [Description("4位年份")]
        Y4,
        /// <summary>
        /// 2位年份
        /// </summary>
        [Description("2位年份")]
        Y2,
        /// <summary>
        /// 2位月份
        /// </summary>
        [Description("2位月份")]
        M2,
        /// <summary>
        /// 2位天
        /// </summary>
        [Description("2位天")]
        D2,
        /// <summary>
        /// æ˜ŸæœŸå‡ (W1)
        /// </summary>
        [Description("星期几")]
        W2,
        /// <summary>
        /// æµæ°´å·
        /// </summary>
        [Description("流水号")]
        SN,
    }
}
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/CommonHelper/SerialSN/EnumSerialType.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
using System.ComponentModel;
namespace Admin.NET.Application
{
    /// <summary>
    /// å•据号类型
    /// </summary>
    [Description("单据号类型")]
    public enum EnumSerialType
    {
        /// <summary>
        /// æµ‹è¯•编号
        /// </summary>
        [Description("测试编号")]
        æµ‹è¯•编号 = 10,
    }
}
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/CommonHelper/SerialSN/SerialUtil.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,140 @@
using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor.Extensions;
using Furion.FriendlyException;
using System.Globalization;
using System.Text;
using Admin.NET.Core;
namespace Admin.NET.Application
{
    /// <summary>
    /// å•据号生成帮助类
    /// </summary>
    public class SerialUtil
    {
        private readonly static object _lockTest = new();
        private readonly static object _lockPublic = new();
        /// <summary>
        /// ç”Ÿæˆç¼–号/单据号
        /// </summary>
        /// <param name="SerialType"></param>
        /// <returns></returns>
        public static async Task<string> GetSerial(EnumSerialType SerialType)
        {
            switch (SerialType)
            {
                case EnumSerialType.测试编号:
                    lock (_lockTest)
                    {
                        return GetSerialDetails(SerialType).Result;
                    };
                default:
                    lock (_lockPublic)
                    {//为了避免多线程出现编号一致的情况,加上锁,此处为公共锁,只用于不频繁生成编号的,若需要频繁生成,请参考上面Test设置单独锁
                        return GetSerialDetails(SerialType).Result;
                    }
            }
        }
        /// <summary>
        /// ç”Ÿæˆç¼–号/单据号
        /// </summary>
        /// <param name="SerialType"></param>
        /// <returns></returns>
        private static async Task<string> GetSerialDetails(EnumSerialType SerialType)
        {
            // æ³›åž‹ä»“储
            var repositoryBaseSerialRuleDetail = Db.GetRepository<BaseSerialRuleDetail>();
            var repositoryBaseSerialSN = Db.GetRepository<BaseSerialSN>();
            var lst = repositoryBaseSerialRuleDetail.Where(x => x.SerialType == (int)SerialType)
                .OrderBy(x => x.ItemNo).ToList();
            string[] strs = new string[lst.Count];
            BaseSerialSN sl = new BaseSerialSN();
            for (int i = 0; i < lst.Count; i++)
            {
                if (lst[i].SourceType.ToUpper() == EnumSerialSourceType.UD.ToString())
                {
                    strs[i] = lst[i].UserDefine ?? string.Empty;//如果数据源是自定义,则取自定义字段
                }
                if (lst[i].SourceType.ToUpper() == EnumSerialSourceType.Y4.ToString())
                {
                    strs[i] = DateTime.Now.Year.ToString();
                }
                if (lst[i].SourceType.ToUpper() == EnumSerialSourceType.Y2.ToString())
                {
                    strs[i] = DateTime.Now.Year.ToString().Substring(2, 2);
                }
                if (lst[i].SourceType.ToUpper() == EnumSerialSourceType.M2.ToString())
                {
                    strs[i] = DateTime.Now.Month.ToString("00");
                }
                if (lst[i].SourceType.ToUpper() == EnumSerialSourceType.D2.ToString())
                {
                    strs[i] = DateTime.Now.Day.ToString("00");
                }
                if (lst[i].SourceType.ToUpper() == EnumSerialSourceType.W2.ToString())
                {
                    GregorianCalendar gc = new GregorianCalendar();
                    int week = gc.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
                    strs[i] = "W" + week.ToString();
                }
                if (lst[i].SourceType.ToUpper() == EnumSerialSourceType.SN.ToString())
                {
                    int cout = lst[i].SerialLength;
                    string c = string.Empty;
                    for (int j = 0; j < cout; j++)
                    {
                        c += "0";
                    }
                    try
                    {
                        if (lst[i].GetData.HasValue && lst[i].GetData == 1)
                        {
                            var sn = repositoryBaseSerialSN.Where(x => x.SerialType == lst[i].SerialType && x.CurrentDate == DateTime.Now.Date)
                                            .OrderByDescending(x => x.Sn).First();
                            sl.Sn = sn.Sn + 1;
                        }
                        else
                        {
                            var sn = repositoryBaseSerialSN.Where(x => x.SerialType == lst[i].SerialType)
                                            .OrderByDescending(x => x.Sn).First();
                            sl.Sn = sn.Sn + 1;
                        }
                        strs[i] = sl.Sn.ToString(c);
                    }
                    catch (Exception ex)
                    {
                        strs[i] = 1.ToString(c);
                        sl.Sn = 1;
                    }
                    sl.CurrentDate = DateTime.Now.Date;
                    sl.SerialType = lst[i].SerialType;
                }
            }
            StringBuilder BaseSerialSN = new StringBuilder();
            foreach (var item in strs)
            {
                BaseSerialSN.Append(item.ToString());
            }
            await sl.InsertAsync();
            //await repositoryBaseSerialSN.Add(sl);
            //edm.SaveChanges();
            if (string.IsNullOrEmpty(BaseSerialSN.ToString()))
            {
                throw Oops.Oh("生成的编号为空");
            }
            return BaseSerialSN.ToString();
        }
    }
}
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/WmsCommon/IWmsCommonService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
using Admin.NET.Core;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
namespace Admin.NET.Application
{
    public interface IWmsCommonService
    {
        /// <summary>
        /// èŽ·å–é€šç”¨ç¼–å·
        /// </summary>
        /// <returns></returns>
        Task<string> GetSerial([FromQuery] EnumSerialType SerialType);
    }
}
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/Common/WmsCommon/WmsCommonService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
using Furion.DatabaseAccessor;
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Furion.FriendlyException;
using Mapster;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System.Linq.Dynamic.Core;
using Admin.NET.Core;
namespace Admin.NET.Application
{
    /// <summary>
    /// WMS公共服务
    /// </summary>
    [ApiDescriptionSettings("WMS公共服务", Name = "WmsCommon", Order = 100)]
    [Route("api")]
    public class WmsCommonService : IWmsCommonService, IDynamicApiController, ITransient
    {
        /// <summary>
        /// æž„造函数
        /// </summary>
        public WmsCommonService(
        )
        {
        }
        /// <summary>
        /// èŽ·å–é€šç”¨ç¼–å·
        /// </summary>
        /// <returns></returns>
        [HttpGet("WmsCommon/getSerial")]
        [AllowAnonymous]
        public async Task<string> GetSerial([FromQuery] EnumSerialType SerialType)
        {
            var returnstr = await SerialUtil.GetSerial(SerialType);
            return returnstr;
        }
    }
}
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/SerialSN/BaseSerialRuleDetail.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Admin.NET.Core
{
    [Table("base_SerialRuleDetail")]
    [Comment("单据号生成规则配置表")]
    public class BaseSerialRuleDetail : DEntityBase
    {
        /// <summary>
        /// å•据号编号,这个不是业务字段,纯粹是 æ ‡è®°ä¸‹ç¼–号
        /// </summary>
        [Comment("单据号编号")]
        [Required, MaxLength(50)]
        public string SerialRuleNo { get; set; } = null!;
        /// <summary>
        /// å•据号类型
        /// </summary>
        [Comment("单据号类型")]
        [Required]
        public int SerialType { get; set; }
        /// <summary>
        /// ç”Ÿæˆé¡ºåºå·
        /// </summary>
        [Comment("生成顺序号")]
        [Required]
        public int ItemNo { get; set; }
        /// <summary>
        /// ç»„合类型
        /// </summary>
        [Comment("组合类型")]
        [Required, MaxLength(50)]
        public string SourceType { get; set; } = null!;
        /// <summary>
        /// ç”Ÿæˆå†…容长度
        /// </summary>
        [Comment("组合类型长度")]
        [Required]
        public int SerialLength { get; set; }
        public int? SearchStart { get; set; }
        public int? DecimalType { get; set; }
        /// <summary>
        /// å•据号字符串内容
        /// </summary>
        [Comment("字符串内容")]
        [MaxLength(50)]
        public string? UserDefine { get; set; }
        public int? SerialCodeFlag { get; set; }
        /// <summary>
        /// ç±»åž‹æè¿°
        /// </summary>
        [Comment("类型描述")]
        [MaxLength(250)]
        public string? Description { get; set; }
        public string? SerialTypeNo { get; set; }
        /// <summary>
        /// æ˜¯å¦æ¯å¤©éƒ½é‡ç½®ï¼ˆ0:不重置,1:每天都重置)
        /// </summary>
        [Comment("是否每天都重置(0:不重置,1:每天都重置)")]
        public int? GetData { get; set; }
        /// <summary>
        /// ç”Ÿæˆå†…容长度
        /// </summary>
        [Comment("文本靠边方向")]
        [Required]
        public int PadLeft { get; set; }
        public int? IssueStatus { get; set; }
    }
}
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/SerialSN/BaseSerialSN.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Admin.NET.Core
{
    [Table("base_SerialSN")]
    [Comment("单据号流水号履历表")]
    public class BaseSerialSN : DEntityBase
    {
        /// <summary>
        /// æµæ°´å·æ—¶é—´
        /// </summary>
        [Comment("流水号时间")]
        [Required]
        public DateTime CurrentDate { get; set; }
        /// <summary>
        /// æµæ°´å·
        /// </summary>
        [Comment("流水号")]
        [Required]
        public int Sn { get; set; }
        /// <summary>
        /// å•据号类型
        /// </summary>
        [Comment("单据号类型")]
        [Required]
        public int SerialType { get; set; }
    }
}