payne
2024-04-25 b57a0b5d5f2712417d5777e01f8615f670d22584
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsControlRuleDetail/WmsControlRuleDetailService.cs
@@ -51,6 +51,7 @@
        {
            var wmsControlRuleDetails = await _wmsControlRuleDetailRep.DetachedEntities
                                     .Where(!string.IsNullOrEmpty(input.RuleCode), u => u.RuleCode == input.RuleCode)
                                     .Where(!string.IsNullOrEmpty(input.RuleName), u => u.RuleName == input.RuleName)
                                     .Where(input.MaxImumqty != null, u => u.MaxImumqty == input.MaxImumqty)
                                     .Where(input.MinImumqty != null, u => u.MinImumqty == input.MinImumqty)
                                     .Where(input.SafeImumqty != null, u => u.SafeImumqty == input.SafeImumqty)
@@ -78,6 +79,7 @@
        public async Task<List<WmsControlRuleDetailOutput>> ListNonPageAsync([FromQuery] WmsControlRuleDetailSearchNonPage input)
        {
            var pRuleCode = input.RuleCode?.Trim() ?? "";
            var pRuleName = input.RuleName?.Trim() ?? "";
            var pMaxImumqty = input.MaxImumqty;
            var pMinImumqty = input.MinImumqty;
            var pSafeImumqty = input.SafeImumqty;
@@ -92,6 +94,7 @@
            var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? "";
            var wmsControlRuleDetails = await _wmsControlRuleDetailRep.DetachedEntities
                .Where(!string.IsNullOrEmpty(pRuleCode), u => u.RuleCode == pRuleCode)
                .Where(!string.IsNullOrEmpty(pRuleName), u => u.RuleName == pRuleName)
                .Where(pMaxImumqty != null, u => u.MaxImumqty == pMaxImumqty)
                .Where(pMinImumqty != null, u => u.MinImumqty == pMinImumqty)
                .Where(pSafeImumqty != null, u => u.SafeImumqty == pSafeImumqty)
@@ -143,6 +146,7 @@
        public async Task Add(AddWmsControlRuleDetailInput input)
        {
            var wmsControlRuleDetail = input.Adapt<WmsControlRuleDetail>();
            wmsControlRuleDetail.RuleCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 要调用生成 编号的方法 先用雪花ID
                        //验证
            await CheckExisit(wmsControlRuleDetail);
@@ -240,7 +244,7 @@
                               UpdatedUserName = SysHelper.GetUserName()
                             };
                          #region 定义变量
                           var _RuleCode = "";//控制属性规则编号
                           var _RuleName = "";//控制属性规则名称
                           var _MaxImumqty = "";//最高库存
                           var _MinImumqty = "";//最低库存
                           var _SafeImumqty = "";//安全库存
@@ -249,12 +253,11 @@
                           var _IsNotChek = "";//是否免检
                           var _ShelfLifeDays = "";//保质期天数
                           var _IsDisabled = "";//是否禁用
                           var _Id = "";//Id主键
                          #endregion
                          
                          
                          #region 取值
                           _RuleCode = row["控制属性规则编号"]?.ToString() ;
                           _RuleName = row["控制属性规则名称"]?.ToString() ;
                           _MaxImumqty = row["最高库存"]?.ToString() ;
                           _MinImumqty = row["最低库存"]?.ToString() ;
                           _SafeImumqty = row["安全库存"]?.ToString() ;
@@ -263,20 +266,20 @@
                           _IsNotChek = row["是否免检"]?.ToString() ;
                           _ShelfLifeDays = row["保质期天数"]?.ToString() ;
                           _IsDisabled = row["是否禁用"]?.ToString() ;
                           _Id = row["Id主键"]?.ToString() ;
                          #endregion
                          
                          
                          #region 验证
                          
                          if (string.IsNullOrEmpty(_RuleCode))
                if (string.IsNullOrEmpty(_RuleName))
                          {
                            throw Oops.Oh($"第{index}行[控制属性规则编号]{_RuleCode}不能为空!");
                            throw Oops.Oh($"第{index}行[控制属性规则名称]{_RuleName}不能为空!");
                          }
                          
                          if(!string.IsNullOrEmpty(_RuleCode))
                          if(!string.IsNullOrEmpty(_RuleName))
                          {
                                addItem.RuleCode = (string)_RuleCode;
                                addItem.RuleName = (string)_RuleName;
                           }
                          if(!string.IsNullOrEmpty(_MaxImumqty))
                          {
@@ -400,26 +403,11 @@
                             }
                             }
                          
                          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
                          
                addItem.RuleCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 要调用生成 编号的方法 先用雪花ID
                details.Add(addItem);
            }
              //验重
@@ -461,7 +449,7 @@
           {
                   //数据是否存在重复
                   isExist = await _wmsControlRuleDetailRep.AnyAsync(u =>
                                   u.RuleCode.Equals(input.RuleCode)
                                   u.RuleName.Equals(input.RuleName)
                   ,false);
          }
           else//编辑 
@@ -472,7 +460,7 @@
                 //当前编辑数据以外是否存在重复
                  isExist = await _wmsControlRuleDetailRep.AnyAsync(u => 
                                    u.Id != input.Id
                                    &&u.RuleCode.Equals(input.RuleCode)
                                    &&u.RuleName.Equals(input.RuleName)
                    ,false);
               }
               
@@ -495,17 +483,16 @@
                 }
                 //数据是否重复
                 var existExcelItem = inputs.GroupBy(g => new {
                                               g.RuleCode
                                               g.RuleName
                                               })
                                               .Where(g => g.Count() > 1)
                                               .Select(s => new {
                                               s.Key.RuleCode
                                               s.Key.RuleName
                                               }).FirstOrDefault();
                 if (existExcelItem != null)
                 {
                   var wmsControlRuleDetail = existExcelItem.Adapt<WmsControlRuleDetail>();
                   var item= existExcelItem.Adapt<WmsControlRuleDetail>();
                   throw Oops.Oh($"导入的表格中,控制属性规则编号[{item.RuleCode}]已存在");
                   throw Oops.Oh($"导入的表格中,控制属性规则名称[{item.RuleName}]已存在");
                 }
                      
@@ -514,16 +501,15 @@
    //根据联合主键验证数据库中是否已存在相同数据
                 var existDBItem = await _wmsControlRuleDetailRep.DetachedEntities.FirstOrDefaultAsync(w=> 
                                                                         inputs.Select(s=>""
                                                                           +s.RuleCode
                                                                           +s.RuleName
                                                                        )
                                                                        .Contains(""
                                                                         +w.RuleCode
                                                                         +w.RuleName
                  ));
                  if (existDBItem != null)
                 {
                   var wmsControlRuleDetail = existExcelItem.Adapt<WmsControlRuleDetail>();
                   var item= existExcelItem.Adapt<WmsControlRuleDetail>();
                   throw Oops.Oh($"系统中,控制属性规则编号[{item.RuleCode}]已存在");
                   var item= existDBItem.Adapt<WmsControlRuleDetail>();
                   throw Oops.Oh($"系统中,控制属性规则名称[{item.RuleName}]已存在");
                 }
        }