1
payne
2024-04-25 73e52dd9e61cabc5c05da94e7f4c024078f0be31
1
已修改7个文件
152 ■■■■■ 文件已修改
DBScript/02_DML/01_InitData.sql 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsPlace/addForm.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsPlace/editForm.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingInput.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsPlace/Dto/WmsPlaceInput.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsPlace/WmsPlaceService.cs 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DBScript/02_DML/01_InitData.sql
@@ -71,17 +71,17 @@
    
        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(40, N'1', 40, 1, N'UD', 15, 0, 1, N'BC_', 0, N'客户编号-前缀', NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);
VALUES(40, N'1', 40, 1, N'UD', 15, 0, 1, N'PL_', 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(41, N'1', 40, 2, N'Y4', 4, 0, 1, NULL, 0, N'客户编号-年份', NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);
VALUES(41, N'1', 40, 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(42, N'1', 40, 3, N'M2', 4, 0, 1, NULL, 0, N'客户编号-月份', NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);
VALUES(42, N'1', 40, 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(43, N'1', 40, 4, N'D2', 4, 0, 1, NULL, 0, N'客户编号-日', NULL, 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);
VALUES(43, N'1', 40, 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(44, N'1', 40, 5, N'SN', 3, 0, 1, NULL, 0, N'客户编号-流水号', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);
VALUES(44, N'1', 40, 5, N'SN', 3, 0, 1, NULL, 0, N'库位编号-流水号', NULL, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsPlace/addForm.vue
@@ -3,10 +3,10 @@
    @cancel="handleCancel">
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <!-- <a-form-item label="库位编码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
        <a-form-item label="库位编码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入库位编码"
            v-decorator="['placeCode', { rules: [{ required: true, message: '请输入库位编码!' }] }]" />
        </a-form-item> -->
        </a-form-item>
        <a-form-item label="库位名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入库位名称"
            v-decorator="['placeName', { rules: [{ required: true, message: '请输入库位名称!' }] }]" />
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsPlace/editForm.vue
@@ -3,10 +3,10 @@
    @cancel="handleCancel">
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <!-- <a-form-item label="库位编码" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
        <a-form-item  label="库位编码"  :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入库位编码"
            v-decorator="['placeCode', { rules: [{ required: true, message: '请输入库位编码!' }] }]" />
        </a-form-item> -->
        </a-form-item>
        <a-form-item label="库位名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
          <a-input placeholder="请输入库位名称"
            v-decorator="['placeName', { rules: [{ required: true, message: '请输入库位名称!' }] }]" />
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingInput.cs
@@ -133,7 +133,6 @@
        /// <summary>
        /// 容器类型名称
        /// </summary>
        [Required(ErrorMessage = "容器类型名称不能为空")]
        public virtual string ContainerTypeName { get; set; }
        
        /// <summary>
@@ -145,13 +144,11 @@
        /// <summary>
        /// 物料类型编号
        /// </summary>
        [Required(ErrorMessage = "物料类型编号不能为空")]
        public virtual string MaterialTypeCode { get; set; }
        
        /// <summary>
        /// 物料类型名称
        /// </summary>
        [Required(ErrorMessage = "物料类型名称不能为空")]
        public virtual string MaterialTypeName { get; set; }
        
        /// <summary>
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs
@@ -13,6 +13,8 @@
using System.Web;
using System.ComponentModel;
using System.Data;
using NetTopologySuite.Algorithm;
using Pipelines.Sockets.Unofficial.Arenas;
namespace Admin.NET.Application
{
    /// <summary>
@@ -27,18 +29,23 @@
        private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep;
        private readonly ISysExcelTemplateService _sysExcelTemplateService;
        private readonly static object _lock = new();
        private readonly IRepository<WmsMaterialType, MasterDbContextLocator> _wmsMaterialTypeRep;
        private readonly IRepository<WmsContainerType, MasterDbContextLocator> _wmsContainerTypeRep;
        public WmsContainerPackagingService(
            IRepository<WmsContainerPackaging,MasterDbContextLocator> wmsContainerPackagingRep
            ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep
            ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep
            ,ISysExcelTemplateService sysExcelTemplateService
            , IRepository<WmsMaterialType, MasterDbContextLocator> wmsMaterialTypeRep
            , IRepository<WmsContainerType, MasterDbContextLocator> wmsContainerTypeRep
        )
        {
            _wmsContainerPackagingRep = wmsContainerPackagingRep;
         _sysDictTypeRep = sysDictTypeRep;
         _sysDictDataRep = sysDictDataRep;
         _sysExcelTemplateService = sysExcelTemplateService;
            _wmsMaterialTypeRep = wmsMaterialTypeRep;
            _wmsContainerTypeRep = wmsContainerTypeRep;
        }
        /// <summary>
@@ -134,7 +141,29 @@
        public async Task Add(AddWmsContainerPackagingInput input)
        {
            var wmsContainerPackaging = input.Adapt<WmsContainerPackaging>();
                        //验证
           var wmsMaterialType=(await _wmsMaterialTypeRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.MaterialTypeId&&u.IsDeleted==false)).Adapt<WmsMaterialTypeOutput>();
            if (wmsMaterialType == null)
            {
                throw Oops.Oh($"物料类型不存在");
            }
            if (wmsMaterialType.IsDisabled == true)
            {
                throw Oops.Oh($"物料类型已禁用");
            }
            var wmsContainerType=(await _wmsContainerTypeRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.ContainerTypeId&& u.IsDeleted == false)).Adapt<WmsContainerTypeOutput>();
            if (wmsContainerType == null)
            {
                throw Oops.Oh($"容器类型不存在");
            }
            if (wmsContainerType.IsDisabled == true)
            {
                throw Oops.Oh($"容器类型已禁用");
            }
            wmsContainerPackaging.ContainerTypeName = wmsContainerType.TypeName;
            wmsContainerPackaging.MaterialTypeName= wmsMaterialType.MaterialTypeName;
            wmsContainerPackaging.MaterialTypeCode = wmsMaterialType.MaterialTypeCode;
            //验证
            await CheckExisit(wmsContainerPackaging);
            wmsContainerPackaging.CreatedUserId = wmsContainerPackaging.UpdatedUserId = SysHelper.GetUserId();
@@ -237,7 +266,6 @@
                           var _MaterialTypeCode = "";//物料类型编号
                           var _MaterialTypeName = "";//物料类型名称
                           var _BoxQty = "";//物料容器容量
                           var _Id = "";//Id主键
                          #endregion
                          
                          
@@ -248,7 +276,6 @@
                           _MaterialTypeCode = row["物料类型编号"]?.ToString() ;
                           _MaterialTypeName = row["物料类型名称"]?.ToString() ;
                           _BoxQty = row["物料容器容量"]?.ToString() ;
                           _Id = row["Id主键"]?.ToString() ;
                          #endregion
                          
                          
@@ -349,22 +376,7 @@
                              }
                          
                          }
                          if(!string.IsNullOrEmpty(_Id))
                          {
                              if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id))
                              {
                                 throw Oops.Oh($"第{index}行[Id主键]{_Id}值不正确!");
                              }
                              if (outId <= 0&&!string.IsNullOrEmpty(_Id))
                              {
                                 throw Oops.Oh($"第{index}行[Id主键]{_Id}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.Id = outId;
                              }
                          }
                          #endregion
                          
@@ -402,17 +414,23 @@
        /// <returns></returns>
        private async Task CheckExisit( WmsContainerPackaging input,bool isEdit=false)
        {
           bool isExist = false;
            string erorMsg = string.Empty;
            bool isExist = false;
           if (!isEdit)//新增
           {
                   //数据是否存在重复
                   isExist = await _wmsContainerPackagingRep.AnyAsync(u =>
                                   u.ContainerTypeId.Equals(input.ContainerTypeId)
                                   &&u.MaterialTypeId.Equals(input.MaterialTypeId)
                   ,false);
          }
                if (isExist)
                {
                    erorMsg = $"系统中,容器类型[{input.ContainerTypeName}]-物料类型[{input.MaterialTypeName}]关系已存在";
                    throw Oops.Oh(erorMsg);
                }
            }
           else//编辑 
          {
@@ -421,13 +439,18 @@
                 //当前编辑数据以外是否存在重复
                  isExist = await _wmsContainerPackagingRep.AnyAsync(u => 
                                    u.Id != input.Id
                                    &&u.ContainerTypeId.Equals(input.ContainerTypeId)
                    ,false);
               }
                                   &&u.ContainerTypeId.Equals(input.ContainerTypeId)
                                   && u.MaterialTypeId.Equals(input.MaterialTypeId)
                    , false);
                if (isExist)
                {
                    erorMsg = $"系统中,容器类型[{input.ContainerTypeName}]-物料类型[{input.MaterialTypeName}]关系已存在";
                    throw Oops.Oh(erorMsg);
                }
            }
               
        
            if (isExist) throw Oops.Oh(ErrorCode.E0001);
       }
        
        /// <summary>
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsPlace/Dto/WmsPlaceInput.cs
@@ -351,6 +351,7 @@
        /// <summary>
        /// 库位编码
        /// </summary>
        [Required(ErrorMessage = "库位编码不能为空")]
        public virtual string PlaceCode { get; set; }
        
        /// <summary>
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsPlace/WmsPlaceService.cs
@@ -199,8 +199,6 @@
        public async Task Add(AddWmsPlaceInput input)
        {
            var wmsPlace = input.Adapt<WmsPlace>();
            wmsPlace.PlaceCode =await SerialUtil.GetSerial(EnumSerialType.库位编号);
            var area = (await _wmsAreaRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.AreaId&&u.IsDeleted==false)).Adapt<WmsAreaOutput>();
            if (area == null)
            {
@@ -358,7 +356,6 @@
                           var _OutSequence = "";//出库顺序
                           var _IsVirtually = "";//是否虚拟
                           var _IsDisabled = "";//是否禁用
                           var _Id = "";//Id主键
                          #endregion
                          
                          
@@ -367,20 +364,12 @@
                           _PlaceName = row["库位名称"]?.ToString() ;
                           _PlaceAlias = row["库位别名"]?.ToString() ;
                           _PlaceType = row["库位类型"]?.ToString() ;
                           _PlaceTypeName = row["库位类型名称"]?.ToString() ;
                           _PlaceStatus = row["库位属性"]?.ToString() ;
                           _IsSrmPlace = row["是否堆垛机库位"]?.ToString() ;
                           _SrmPlaceNo = row["堆垛机库位号"]?.ToString() ;
                           _IsRgvPlace = row["是否RGV库位"]?.ToString() ;
                           _RgvPlaceNo = row["RGV库位号"]?.ToString() ;
                           _IsAgvPlace = row["是否AGV库位"]?.ToString() ;
                           _AgvPlaceNo = row["AGV库位号"]?.ToString() ;
                           _IsTransPlace = row["是否输送线库位"]?.ToString() ;
                           _TransPlaceNo = row["输送线库位号"]?.ToString() ;
                           _IsActivateWCS = row["是否激活与任务调度"]?.ToString() ;
                           _Environment = row["库存环境"]?.ToString() ;
                           _AreaCode = row["库区编号"]?.ToString() ;
                           _AreaId = row["所在库区"]?.ToString() ;
                           //_AreaId = row["所在库区"]?.ToString() ;
                           _AreaName = row["库区名称"]?.ToString() ;
                           _VerificationCode = row["检验码"]?.ToString() ;
                           _RowNo = row["排"]?.ToString() ;
@@ -398,7 +387,6 @@
                           _OutSequence = row["出库顺序"]?.ToString() ;
                           _IsVirtually = row["是否虚拟"]?.ToString() ;
                           _IsDisabled = row["是否禁用"]?.ToString() ;
                           _Id = row["Id主键"]?.ToString() ;
                          #endregion
                          
                          
@@ -505,22 +493,7 @@
                            throw Oops.Oh($"第{index}行[所在库区]{_AreaId}不能为空!");
                          }
                          
                          if(!string.IsNullOrEmpty(_AreaId))
                          {
                              if (!long.TryParse(_AreaId, out long outAreaId)&&!string.IsNullOrEmpty(_AreaId))
                              {
                                 throw Oops.Oh($"第{index}行[所在库区]{_AreaId}值不正确!");
                              }
                              if (outAreaId <= 0&&!string.IsNullOrEmpty(_AreaId))
                              {
                                 throw Oops.Oh($"第{index}行[所在库区]{_AreaId}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.AreaId = outAreaId;
                              }
                          }
                          if(!string.IsNullOrEmpty(_AreaName))
                          {
                                addItem.AreaName = (string)_AreaName;
@@ -726,23 +699,7 @@
                               addItem.IsDisabled = outIsDisabled;
                             }
                             }
                          if(!string.IsNullOrEmpty(_Id))
                          {
                              if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id))
                              {
                                 throw Oops.Oh($"第{index}行[Id主键]{_Id}值不正确!");
                              }
                              if (outId <= 0&&!string.IsNullOrEmpty(_Id))
                              {
                                 throw Oops.Oh($"第{index}行[Id主键]{_Id}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.Id = outId;
                              }
                          }
                          #endregion