schangxiang@126.com
2024-04-25 1eb08ced0ef966804e96c9b792bba45ca6eb6601
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsControlRuleDetail/WmsControlRuleDetailService.cs
@@ -50,7 +50,8 @@
        public async Task<PageResult<WmsControlRuleDetailOutput>> Page([FromQuery] WmsControlRuleDetailSearch input)
        {
            var wmsControlRuleDetails = await _wmsControlRuleDetailRep.DetachedEntities
                                     .Where(input.ControlRuleId != null, u => u.ControlRuleId == input.ControlRuleId)
                                     .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)
@@ -77,7 +78,8 @@
        [HttpGet("WmsControlRuleDetail/listNonPage")]
        public async Task<List<WmsControlRuleDetailOutput>> ListNonPageAsync([FromQuery] WmsControlRuleDetailSearchNonPage input)
        {
            var pControlRuleId = input.ControlRuleId;
            var pRuleCode = input.RuleCode?.Trim() ?? "";
            var pRuleName = input.RuleName?.Trim() ?? "";
            var pMaxImumqty = input.MaxImumqty;
            var pMinImumqty = input.MinImumqty;
            var pSafeImumqty = input.SafeImumqty;
@@ -91,7 +93,8 @@
            var pCreatedUserName = input.CreatedUserName?.Trim() ?? "";
            var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? "";
            var wmsControlRuleDetails = await _wmsControlRuleDetailRep.DetachedEntities
                .Where(pControlRuleId != null, u => u.ControlRuleId == pControlRuleId)
                .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,7 +146,8 @@
        public async Task Add(AddWmsControlRuleDetailInput input)
        {
            var wmsControlRuleDetail = input.Adapt<WmsControlRuleDetail>();
                        //验证
            wmsControlRuleDetail.RuleCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 要调用生成 编号的方法 先用雪花ID
                                                                                       //验证
            await CheckExisit(wmsControlRuleDetail);
            wmsControlRuleDetail.CreatedUserId = wmsControlRuleDetail.UpdatedUserId = SysHelper.GetUserId();
@@ -240,7 +244,7 @@
                               UpdatedUserName = SysHelper.GetUserName()
                             };
                          #region 定义变量
                           var _ControlRuleId = "";//控制属性规则ID
                           var _RuleName = "";//控制属性规则名称
                           var _MaxImumqty = "";//最高库存
                           var _MinImumqty = "";//最低库存
                           var _SafeImumqty = "";//安全库存
@@ -249,12 +253,11 @@
                           var _IsNotChek = "";//是否免检
                           var _ShelfLifeDays = "";//保质期天数
                           var _IsDisabled = "";//是否禁用
                           var _Id = "";//Id主键
                          #endregion
                          
                          
                          #region 取值
                           _ControlRuleId = row["控制属性规则ID"]?.ToString() ;
                           _RuleName = row["控制属性规则名称"]?.ToString() ;
                           _MaxImumqty = row["最高库存"]?.ToString() ;
                           _MinImumqty = row["最低库存"]?.ToString() ;
                           _SafeImumqty = row["安全库存"]?.ToString() ;
@@ -263,39 +266,21 @@
                           _IsNotChek = row["是否免检"]?.ToString() ;
                           _ShelfLifeDays = row["保质期天数"]?.ToString() ;
                           _IsDisabled = row["是否禁用"]?.ToString() ;
                           _Id = row["Id主键"]?.ToString() ;
                          #endregion
                          #region 验证
                          if (string.IsNullOrEmpty(_ControlRuleId))
                #endregion
                #region 验证
                if (string.IsNullOrEmpty(_RuleName))
                          {
                            throw Oops.Oh($"第{index}行[控制属性规则ID]{_ControlRuleId}不能为空!");
                            throw Oops.Oh($"第{index}行[控制属性规则名称]{_RuleName}不能为空!");
                          }
                          
                          if(!string.IsNullOrEmpty(_ControlRuleId))
                          if(!string.IsNullOrEmpty(_RuleName))
                          {
                              if (!long.TryParse(_ControlRuleId, out long outControlRuleId)&&!string.IsNullOrEmpty(_ControlRuleId))
                              {
                                 throw Oops.Oh($"第{index}行[控制属性规则ID]{_ControlRuleId}值不正确!");
                              }
                              if (outControlRuleId <= 0&&!string.IsNullOrEmpty(_ControlRuleId))
                              {
                                 throw Oops.Oh($"第{index}行[控制属性规则ID]{_ControlRuleId}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.ControlRuleId = outControlRuleId;
                              }
                          }
                          if (string.IsNullOrEmpty(_MaxImumqty))
                          {
                            throw Oops.Oh($"第{index}行[最高库存]{_MaxImumqty}不能为空!");
                          }
                                addItem.RuleName = (string)_RuleName;
                           }
                          if(!string.IsNullOrEmpty(_MaxImumqty))
                          {
                              if (!decimal.TryParse(_MaxImumqty, out decimal outMaxImumqty)&&!string.IsNullOrEmpty(_MaxImumqty))
@@ -312,12 +297,6 @@
                              }
                          
                          }
                          if (string.IsNullOrEmpty(_MinImumqty))
                          {
                            throw Oops.Oh($"第{index}行[最低库存]{_MinImumqty}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_MinImumqty))
                          {
                              if (!decimal.TryParse(_MinImumqty, out decimal outMinImumqty)&&!string.IsNullOrEmpty(_MinImumqty))
@@ -334,12 +313,6 @@
                              }
                          
                          }
                          if (string.IsNullOrEmpty(_SafeImumqty))
                          {
                            throw Oops.Oh($"第{index}行[安全库存]{_SafeImumqty}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_SafeImumqty))
                          {
                              if (!decimal.TryParse(_SafeImumqty, out decimal outSafeImumqty)&&!string.IsNullOrEmpty(_SafeImumqty))
@@ -356,12 +329,6 @@
                              }
                          
                          }
                          if (string.IsNullOrEmpty(_MinStorageAge))
                          {
                            throw Oops.Oh($"第{index}行[最小库龄]{_MinStorageAge}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_MinStorageAge))
                          {
                              if (!decimal.TryParse(_MinStorageAge, out decimal outMinStorageAge)&&!string.IsNullOrEmpty(_MinStorageAge))
@@ -378,12 +345,6 @@
                              }
                          
                          }
                          if (string.IsNullOrEmpty(_MaxStorageAge))
                          {
                            throw Oops.Oh($"第{index}行[最大库龄]{_MaxStorageAge}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_MaxStorageAge))
                          {
                              if (!decimal.TryParse(_MaxStorageAge, out decimal outMaxStorageAge)&&!string.IsNullOrEmpty(_MaxStorageAge))
@@ -400,12 +361,6 @@
                              }
                          
                          }
                          if (string.IsNullOrEmpty(_IsNotChek))
                          {
                            throw Oops.Oh($"第{index}行[是否免检]{_IsNotChek}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_IsNotChek))
                          {
                            if(!_IsNotChek.Equals("是") && !_IsNotChek.Equals("否"))
@@ -417,13 +372,7 @@
                               bool outIsNotChek = _IsNotChek.Equals("是") ? true : false;
                               addItem.IsNotChek = outIsNotChek;
                             }
                             }
                          if (string.IsNullOrEmpty(_ShelfLifeDays))
                          {
                            throw Oops.Oh($"第{index}行[保质期天数]{_ShelfLifeDays}不能为空!");
                          }
                           }
                          
                          if(!string.IsNullOrEmpty(_ShelfLifeDays))
                          {
@@ -441,12 +390,6 @@
                              }
                          
                          }
                          if (string.IsNullOrEmpty(_IsDisabled))
                          {
                            throw Oops.Oh($"第{index}行[是否禁用]{_IsDisabled}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_IsDisabled))
                          {
                            if(!_IsDisabled.Equals("是") && !_IsDisabled.Equals("否"))
@@ -459,27 +402,12 @@
                               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
                #endregion
                addItem.RuleCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 要调用生成 编号的方法 先用雪花ID
                details.Add(addItem);
            }
              //验重
@@ -521,7 +449,7 @@
           {
                   //数据是否存在重复
                   isExist = await _wmsControlRuleDetailRep.AnyAsync(u =>
                                   u.ControlRuleId.Equals(input.ControlRuleId)
                                   u.RuleName.Equals(input.RuleName)
                   ,false);
          }
           else//编辑 
@@ -532,7 +460,7 @@
                 //当前编辑数据以外是否存在重复
                  isExist = await _wmsControlRuleDetailRep.AnyAsync(u => 
                                    u.Id != input.Id
                                    &&u.ControlRuleId.Equals(input.ControlRuleId)
                                    &&u.RuleName.Equals(input.RuleName)
                    ,false);
               }
               
@@ -555,17 +483,16 @@
                 }
                 //数据是否重复
                 var existExcelItem = inputs.GroupBy(g => new {
                                               g.ControlRuleId
                                               g.RuleName
                                               })
                                               .Where(g => g.Count() > 1)
                                               .Select(s => new {
                                               s.Key.ControlRuleId
                                               s.Key.RuleName
                                               }).FirstOrDefault();
                 if (existExcelItem != null)
                 {
                   var wmsControlRuleDetail = existExcelItem.Adapt<WmsControlRuleDetail>();
                   var item= existExcelItem.Adapt<WmsControlRuleDetail>();
                   throw Oops.Oh($"导入的表格中,控制属性规则ID[{item.ControlRuleId}]已存在");
                   throw Oops.Oh($"导入的表格中,控制属性规则名称[{item.RuleName}]已存在");
                 }
                      
@@ -574,16 +501,15 @@
    //根据联合主键验证数据库中是否已存在相同数据
                 var existDBItem = await _wmsControlRuleDetailRep.DetachedEntities.FirstOrDefaultAsync(w=> 
                                                                         inputs.Select(s=>""
                                                                           +s.ControlRuleId
                                                                           +s.RuleName
                                                                        )
                                                                        .Contains(""
                                                                         +w.ControlRuleId
                                                                         +w.RuleName
                  ));
                  if (existDBItem != null)
                 {
                   var wmsControlRuleDetail = existExcelItem.Adapt<WmsControlRuleDetail>();
                   var item= existExcelItem.Adapt<WmsControlRuleDetail>();
                   throw Oops.Oh($"系统中,控制属性规则ID[{item.ControlRuleId}]已存在");
                   var item= existDBItem.Adapt<WmsControlRuleDetail>();
                   throw Oops.Oh($"系统中,控制属性规则名称[{item.RuleName}]已存在");
                 }
        }