| | |
| | | [Route("api")] |
| | | public class WmsControlRuleDetailService : IWmsControlRuleDetailService, IDynamicApiController, ITransient |
| | | { |
| | | private readonly IRepository<WmsControlRuleDetail,MasterDbContextLocator> _wmsControlRuleDetailRep; |
| | | private readonly IRepository<WmsControlRuleDetail, MasterDbContextLocator> _wmsControlRuleDetailRep; |
| | | private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; |
| | | private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; |
| | | private readonly ISysExcelTemplateService _sysExcelTemplateService; |
| | | private readonly static object _lock = new(); |
| | | |
| | | public WmsControlRuleDetailService( |
| | | IRepository<WmsControlRuleDetail,MasterDbContextLocator> wmsControlRuleDetailRep |
| | | ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep |
| | | ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep |
| | | ,ISysExcelTemplateService sysExcelTemplateService |
| | | IRepository<WmsControlRuleDetail, MasterDbContextLocator> wmsControlRuleDetailRep |
| | | , IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep |
| | | , IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep |
| | | , ISysExcelTemplateService sysExcelTemplateService |
| | | ) |
| | | { |
| | | _wmsControlRuleDetailRep = wmsControlRuleDetailRep; |
| | | _sysDictTypeRep = sysDictTypeRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | _sysDictTypeRep = sysDictTypeRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | 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) |
| | |
| | | .Where(input.IsNotChek != null, u => u.IsNotChek == input.IsNotChek) |
| | | .Where(input.ShelfLifeDays != null, u => u.ShelfLifeDays == input.ShelfLifeDays) |
| | | .Where(input.IsDisabled != null, u => u.IsDisabled == input.IsDisabled) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(input.CreatedTime != null, u => u.CreatedTime >= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime <= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime != null, u => u.UpdatedTime >= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime <= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(input.CreatedUserName), u => u.CreatedUserName == input.CreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(input.UpdatedUserName), u => u.UpdatedUserName == input.UpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderBuilder<WmsControlRuleDetailSearch>(input)) |
| | |
| | | [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; |
| | |
| | | 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) |
| | |
| | | .Where(pIsNotChek != null, u => u.IsNotChek == pIsNotChek) |
| | | .Where(pShelfLifeDays != null, u => u.ShelfLifeDays == pShelfLifeDays) |
| | | .Where(pIsDisabled != null, u => u.IsDisabled == pIsDisabled) |
| | | .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(input.CreatedTime != null, u => u.CreatedTime >= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime <= Convert.ToDateTime(input.CreatedTime[1])) |
| | | .Where(input.UpdatedTime != null, u => u.UpdatedTime >= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime <= Convert.ToDateTime(input.UpdatedTime[1])) |
| | | .Where(!string.IsNullOrEmpty(pCreatedUserName), u => u.CreatedUserName == pCreatedUserName) |
| | | .Where(!string.IsNullOrEmpty(pUpdatedUserName), u => u.UpdatedUserName == pUpdatedUserName) |
| | | .OrderBy(PageInputOrder.OrderNonPageBuilder(input)) |
| | |
| | | return wmsControlRuleDetails; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// <summary> |
| | | /// 获取控制属性规则明细 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | |
| | | public async Task<List<WmsControlRuleDetailOutput>> List([FromQuery] WmsControlRuleDetailInput input) |
| | | { |
| | | return await _wmsControlRuleDetailRep.DetachedEntities.ProjectToType<WmsControlRuleDetailOutput>().ToListAsync(); |
| | | } |
| | | } |
| | | |
| | | #region 增、删、改 |
| | | |
| | |
| | | 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(); |
| | |
| | | { |
| | | var wmsControlRuleDetail = await _wmsControlRuleDetailRep.FirstOrDefaultAsync(u => u.Id == input.Id); |
| | | await _wmsControlRuleDetailRep.DeleteAsync(wmsControlRuleDetail); |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | |
| | | var wmsControlRuleDetail = input.Adapt<WmsControlRuleDetail>(); |
| | | //验证 |
| | | await CheckExisit(wmsControlRuleDetail,true); |
| | | await CheckExisit(wmsControlRuleDetail, true); |
| | | |
| | | wmsControlRuleDetail.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsControlRuleDetail.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsControlRuleDetail.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsControlRuleDetailRep.UpdateAsync(wmsControlRuleDetail,ignoreNullValues:true); |
| | | await _wmsControlRuleDetailRep.UpdateAsync(wmsControlRuleDetail, ignoreNullValues: true); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | /// <returns>导入的记录数</returns> |
| | | [HttpPost("WmsControlRuleDetail/importExcel")] |
| | | public async Task<int> ImportExcelAsync(IFormFile file) |
| | | { |
| | | { |
| | | int _HeadStartLine = 2;//第1行是说明,第2行是列名 |
| | | int _DataStartLine = 3;//第3行开始是数据 |
| | | |
| | | DataTable importDataTable = ExcelUtil.ImportExcelToDataTable(file, _HeadStartLine, _DataStartLine); |
| | | var addList =await CommonImport(importDataTable, _DataStartLine); |
| | | var addList = await CommonImport(importDataTable, _DataStartLine); |
| | | |
| | | lock (_lock) |
| | | { |
| | | _wmsControlRuleDetailRep.InsertAsync(addList); |
| | | |
| | | |
| | | } |
| | | await Task.CompletedTask; |
| | | return addList.Count; |
| | |
| | | { |
| | | index++; |
| | | |
| | | //导入模版定制化代码(替换模版使用) |
| | | |
| | | var addItem = new WmsControlRuleDetail() |
| | | { |
| | | CreatedTime = SysHelper.GetNowTime(), |
| | | CreatedUserId = SysHelper.GetUserId(), |
| | | CreatedUserName = SysHelper.GetUserName(), |
| | | UpdatedTime = SysHelper.GetNowTime(), |
| | | UpdatedUserId = SysHelper.GetUserId(), |
| | | UpdatedUserName = SysHelper.GetUserName() |
| | | }; |
| | | #region 定义变量 |
| | | var _ControlRuleId = "";//控制属性规则ID |
| | | var _MaxImumqty = "";//最高库存 |
| | | var _MinImumqty = "";//最低库存 |
| | | var _SafeImumqty = "";//安全库存 |
| | | var _MinStorageAge = "";//最小库龄 |
| | | var _MaxStorageAge = "";//最大库龄 |
| | | var _IsNotChek = "";//是否免检 |
| | | var _ShelfLifeDays = "";//保质期天数 |
| | | var _IsDisabled = "";//是否禁用 |
| | | var _Id = "";//Id主键 |
| | | #endregion |
| | | |
| | | |
| | | #region 取值 |
| | | _ControlRuleId = row["控制属性规则ID"]?.ToString() ; |
| | | _MaxImumqty = row["最高库存"]?.ToString() ; |
| | | _MinImumqty = row["最低库存"]?.ToString() ; |
| | | _SafeImumqty = row["安全库存"]?.ToString() ; |
| | | _MinStorageAge = row["最小库龄"]?.ToString() ; |
| | | _MaxStorageAge = row["最大库龄"]?.ToString() ; |
| | | _IsNotChek = row["是否免检"]?.ToString() ; |
| | | _ShelfLifeDays = row["保质期天数"]?.ToString() ; |
| | | _IsDisabled = row["是否禁用"]?.ToString() ; |
| | | _Id = row["Id主键"]?.ToString() ; |
| | | #endregion |
| | | |
| | | |
| | | #region 验证 |
| | | |
| | | if (string.IsNullOrEmpty(_ControlRuleId)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[控制属性规则ID]{_ControlRuleId}不能为空!"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_ControlRuleId)) |
| | | { |
| | | 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}不能为空!"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_MaxImumqty)) |
| | | { |
| | | if (!decimal.TryParse(_MaxImumqty, out decimal outMaxImumqty)&&!string.IsNullOrEmpty(_MaxImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最高库存]{_MaxImumqty}值不正确!"); |
| | | } |
| | | if (outMaxImumqty <= 0&&!string.IsNullOrEmpty(_MaxImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最高库存]{_MaxImumqty}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.MaxImumqty = outMaxImumqty; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_MinImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最低库存]{_MinImumqty}不能为空!"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_MinImumqty)) |
| | | { |
| | | if (!decimal.TryParse(_MinImumqty, out decimal outMinImumqty)&&!string.IsNullOrEmpty(_MinImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最低库存]{_MinImumqty}值不正确!"); |
| | | } |
| | | if (outMinImumqty <= 0&&!string.IsNullOrEmpty(_MinImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最低库存]{_MinImumqty}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.MinImumqty = outMinImumqty; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_SafeImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[安全库存]{_SafeImumqty}不能为空!"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_SafeImumqty)) |
| | | { |
| | | if (!decimal.TryParse(_SafeImumqty, out decimal outSafeImumqty)&&!string.IsNullOrEmpty(_SafeImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[安全库存]{_SafeImumqty}值不正确!"); |
| | | } |
| | | if (outSafeImumqty <= 0&&!string.IsNullOrEmpty(_SafeImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[安全库存]{_SafeImumqty}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.SafeImumqty = outSafeImumqty; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_MinStorageAge)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最小库龄]{_MinStorageAge}不能为空!"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_MinStorageAge)) |
| | | { |
| | | if (!decimal.TryParse(_MinStorageAge, out decimal outMinStorageAge)&&!string.IsNullOrEmpty(_MinStorageAge)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最小库龄]{_MinStorageAge}值不正确!"); |
| | | } |
| | | if (outMinStorageAge <= 0&&!string.IsNullOrEmpty(_MinStorageAge)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最小库龄]{_MinStorageAge}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.MinStorageAge = outMinStorageAge; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_MaxStorageAge)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最大库龄]{_MaxStorageAge}不能为空!"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_MaxStorageAge)) |
| | | { |
| | | if (!decimal.TryParse(_MaxStorageAge, out decimal outMaxStorageAge)&&!string.IsNullOrEmpty(_MaxStorageAge)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最大库龄]{_MaxStorageAge}值不正确!"); |
| | | } |
| | | if (outMaxStorageAge <= 0&&!string.IsNullOrEmpty(_MaxStorageAge)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最大库龄]{_MaxStorageAge}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.MaxStorageAge = outMaxStorageAge; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_IsNotChek)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[是否免检]{_IsNotChek}不能为空!"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_IsNotChek)) |
| | | { |
| | | if(!_IsNotChek.Equals("是") && !_IsNotChek.Equals("否")) |
| | | { |
| | | throw Oops.Oh($"第{index}行[是否免检]{_IsNotChek}值不正确!"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsNotChek = _IsNotChek.Equals("是") ? true : false; |
| | | addItem.IsNotChek = outIsNotChek; |
| | | } |
| | | } |
| | | |
| | | |
| | | if (string.IsNullOrEmpty(_ShelfLifeDays)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[保质期天数]{_ShelfLifeDays}不能为空!"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_ShelfLifeDays)) |
| | | { |
| | | if (!decimal.TryParse(_ShelfLifeDays, out decimal outShelfLifeDays)&&!string.IsNullOrEmpty(_ShelfLifeDays)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[保质期天数]{_ShelfLifeDays}值不正确!"); |
| | | } |
| | | if (outShelfLifeDays <= 0&&!string.IsNullOrEmpty(_ShelfLifeDays)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[保质期天数]{_ShelfLifeDays}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.ShelfLifeDays = outShelfLifeDays; |
| | | } |
| | | |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_IsDisabled)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[是否禁用]{_IsDisabled}不能为空!"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_IsDisabled)) |
| | | { |
| | | if(!_IsDisabled.Equals("是") && !_IsDisabled.Equals("否")) |
| | | { |
| | | throw Oops.Oh($"第{index}行[是否禁用]{_IsDisabled}值不正确!"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsDisabled = _IsDisabled.Equals("是") ? true : false; |
| | | 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 |
| | | |
| | | //导入模版定制化代码(替换模版使用) |
| | | |
| | | |
| | | var addItem = new WmsControlRuleDetail() |
| | | { |
| | | CreatedTime = SysHelper.GetNowTime(), |
| | | CreatedUserId = SysHelper.GetUserId(), |
| | | CreatedUserName = SysHelper.GetUserName(), |
| | | UpdatedTime = SysHelper.GetNowTime(), |
| | | UpdatedUserId = SysHelper.GetUserId(), |
| | | UpdatedUserName = SysHelper.GetUserName() |
| | | }; |
| | | #region 定义变量 |
| | | var _RuleName = "";//控制属性规则名称 |
| | | var _MaxImumqty = "";//最高库存 |
| | | var _MinImumqty = "";//最低库存 |
| | | var _SafeImumqty = "";//安全库存 |
| | | var _MinStorageAge = "";//最小库龄 |
| | | var _MaxStorageAge = "";//最大库龄 |
| | | var _IsNotChek = "";//是否免检 |
| | | var _ShelfLifeDays = "";//保质期天数 |
| | | var _IsDisabled = "";//是否禁用 |
| | | #endregion |
| | | |
| | | |
| | | #region 取值 |
| | | _RuleName = row["控制属性规则名称"]?.ToString(); |
| | | _MaxImumqty = row["最高库存"]?.ToString(); |
| | | _MinImumqty = row["最低库存"]?.ToString(); |
| | | _SafeImumqty = row["安全库存"]?.ToString(); |
| | | _MinStorageAge = row["最小库龄"]?.ToString(); |
| | | _MaxStorageAge = row["最大库龄"]?.ToString(); |
| | | _IsNotChek = row["是否免检"]?.ToString(); |
| | | _ShelfLifeDays = row["保质期天数"]?.ToString(); |
| | | _IsDisabled = row["是否禁用"]?.ToString(); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | #region 验证 |
| | | |
| | | if (string.IsNullOrEmpty(_RuleName)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[控制属性规则名称]{_RuleName}不能为空!"); |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(_RuleName)) |
| | | { |
| | | addItem.RuleName = (string)_RuleName; |
| | | } |
| | | if (!string.IsNullOrEmpty(_MaxImumqty)) |
| | | { |
| | | if (!decimal.TryParse(_MaxImumqty, out decimal outMaxImumqty) && !string.IsNullOrEmpty(_MaxImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最高库存]{_MaxImumqty}值不正确!"); |
| | | } |
| | | if (outMaxImumqty <= 0 && !string.IsNullOrEmpty(_MaxImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最高库存]{_MaxImumqty}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.MaxImumqty = outMaxImumqty; |
| | | } |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty(_MinImumqty)) |
| | | { |
| | | if (!decimal.TryParse(_MinImumqty, out decimal outMinImumqty) && !string.IsNullOrEmpty(_MinImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最低库存]{_MinImumqty}值不正确!"); |
| | | } |
| | | if (outMinImumqty <= 0 && !string.IsNullOrEmpty(_MinImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最低库存]{_MinImumqty}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.MinImumqty = outMinImumqty; |
| | | } |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty(_SafeImumqty)) |
| | | { |
| | | if (!decimal.TryParse(_SafeImumqty, out decimal outSafeImumqty) && !string.IsNullOrEmpty(_SafeImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[安全库存]{_SafeImumqty}值不正确!"); |
| | | } |
| | | if (outSafeImumqty <= 0 && !string.IsNullOrEmpty(_SafeImumqty)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[安全库存]{_SafeImumqty}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.SafeImumqty = outSafeImumqty; |
| | | } |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty(_MinStorageAge)) |
| | | { |
| | | if (!decimal.TryParse(_MinStorageAge, out decimal outMinStorageAge) && !string.IsNullOrEmpty(_MinStorageAge)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最小库龄]{_MinStorageAge}值不正确!"); |
| | | } |
| | | if (outMinStorageAge <= 0 && !string.IsNullOrEmpty(_MinStorageAge)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最小库龄]{_MinStorageAge}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.MinStorageAge = outMinStorageAge; |
| | | } |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty(_MaxStorageAge)) |
| | | { |
| | | if (!decimal.TryParse(_MaxStorageAge, out decimal outMaxStorageAge) && !string.IsNullOrEmpty(_MaxStorageAge)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最大库龄]{_MaxStorageAge}值不正确!"); |
| | | } |
| | | if (outMaxStorageAge <= 0 && !string.IsNullOrEmpty(_MaxStorageAge)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[最大库龄]{_MaxStorageAge}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.MaxStorageAge = outMaxStorageAge; |
| | | } |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty(_IsNotChek)) |
| | | { |
| | | if (!_IsNotChek.Equals("是") && !_IsNotChek.Equals("否")) |
| | | { |
| | | throw Oops.Oh($"第{index}行[是否免检]{_IsNotChek}值不正确!"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsNotChek = _IsNotChek.Equals("是") ? true : false; |
| | | addItem.IsNotChek = outIsNotChek; |
| | | } |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(_ShelfLifeDays)) |
| | | { |
| | | if (!decimal.TryParse(_ShelfLifeDays, out decimal outShelfLifeDays) && !string.IsNullOrEmpty(_ShelfLifeDays)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[保质期天数]{_ShelfLifeDays}值不正确!"); |
| | | } |
| | | if (outShelfLifeDays <= 0 && !string.IsNullOrEmpty(_ShelfLifeDays)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[保质期天数]{_ShelfLifeDays}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.ShelfLifeDays = outShelfLifeDays; |
| | | } |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty(_IsDisabled)) |
| | | { |
| | | if (!_IsDisabled.Equals("是") && !_IsDisabled.Equals("否")) |
| | | { |
| | | throw Oops.Oh($"第{index}行[是否禁用]{_IsDisabled}值不正确!"); |
| | | } |
| | | else |
| | | { |
| | | bool outIsDisabled = _IsDisabled.Equals("是") ? true : false; |
| | | addItem.IsDisabled = outIsDisabled; |
| | | } |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | |
| | | |
| | | addItem.RuleCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 要调用生成 编号的方法 先用雪花ID |
| | | details.Add(addItem); |
| | | } |
| | | //验重 |
| | | await CheckExisitForImport(details); |
| | | |
| | | //验重 |
| | | await CheckExisitForImport(details); |
| | | |
| | | return details; |
| | | } |
| | | |
| | |
| | | /// <param name="input"></param> |
| | | /// <param name="isEdit"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisit( WmsControlRuleDetail input,bool isEdit=false) |
| | | private async Task CheckExisit(WmsControlRuleDetail input, bool isEdit = false) |
| | | { |
| | | |
| | | |
| | | |
| | | bool isExist = false; |
| | | if (!isEdit)//新增 |
| | | { |
| | | //数据是否存在重复 |
| | | isExist = await _wmsControlRuleDetailRep.AnyAsync(u => |
| | | u.ControlRuleId.Equals(input.ControlRuleId) |
| | | ,false); |
| | | } |
| | | else//编辑 |
| | | { |
| | | |
| | | |
| | | |
| | | //当前编辑数据以外是否存在重复 |
| | | isExist = await _wmsControlRuleDetailRep.AnyAsync(u => |
| | | u.Id != input.Id |
| | | &&u.ControlRuleId.Equals(input.ControlRuleId) |
| | | ,false); |
| | | } |
| | | |
| | | |
| | | |
| | | bool isExist = false; |
| | | if (!isEdit)//新增 |
| | | { |
| | | //数据是否存在重复 |
| | | isExist = await _wmsControlRuleDetailRep.AnyAsync(u => |
| | | u.RuleName.Equals(input.RuleName) |
| | | , false); |
| | | } |
| | | else//编辑 |
| | | { |
| | | |
| | | |
| | | |
| | | //当前编辑数据以外是否存在重复 |
| | | isExist = await _wmsControlRuleDetailRep.AnyAsync(u => |
| | | u.Id != input.Id |
| | | && u.RuleName.Equals(input.RuleName) |
| | | , false); |
| | | } |
| | | |
| | | |
| | | |
| | | if (isExist) throw Oops.Oh(ErrorCode.E0001); |
| | | } |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据联合主键验证数据是否已存在-导入时验证 |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<WmsControlRuleDetail> inputs) |
| | | { |
| | | { |
| | | //根据联合主键验证表格中中是否已存在相同数据 |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导入数据不能为空"); |
| | | } |
| | | //数据是否重复 |
| | | var existExcelItem = inputs.GroupBy(g => new { |
| | | g.ControlRuleId |
| | | }) |
| | | .Where(g => g.Count() > 1) |
| | | .Select(s => new { |
| | | s.Key.ControlRuleId |
| | | }).FirstOrDefault(); |
| | | if (existExcelItem != null) |
| | | { |
| | | var wmsControlRuleDetail = existExcelItem.Adapt<WmsControlRuleDetail>(); |
| | | var item= existExcelItem.Adapt<WmsControlRuleDetail>(); |
| | | throw Oops.Oh($"导入的表格中,控制属性规则ID[{item.ControlRuleId}]已存在"); |
| | | } |
| | | |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导入数据不能为空"); |
| | | } |
| | | //数据是否重复 |
| | | var existExcelItem = inputs.GroupBy(g => new |
| | | { |
| | | g.RuleName |
| | | }) |
| | | .Where(g => g.Count() > 1) |
| | | .Select(s => new |
| | | { |
| | | s.Key.RuleName |
| | | }).FirstOrDefault(); |
| | | if (existExcelItem != null) |
| | | { |
| | | var item = existExcelItem.Adapt<WmsControlRuleDetail>(); |
| | | throw Oops.Oh($"导入的表格中,控制属性规则名称[{item.RuleName}]已存在"); |
| | | } |
| | | |
| | | |
| | | |
| | | //根据联合主键验证数据库中是否已存在相同数据 |
| | | var existDBItem = await _wmsControlRuleDetailRep.DetachedEntities.FirstOrDefaultAsync(w=> |
| | | inputs.Select(s=>"" |
| | | +s.ControlRuleId |
| | | ) |
| | | .Contains("" |
| | | +w.ControlRuleId |
| | | )); |
| | | if (existDBItem != null) |
| | | { |
| | | var wmsControlRuleDetail = existExcelItem.Adapt<WmsControlRuleDetail>(); |
| | | var item= existExcelItem.Adapt<WmsControlRuleDetail>(); |
| | | throw Oops.Oh($"系统中,控制属性规则ID[{item.ControlRuleId}]已存在"); |
| | | } |
| | | |
| | | //根据联合主键验证数据库中是否已存在相同数据 |
| | | var existDBItem = await _wmsControlRuleDetailRep.DetachedEntities.FirstOrDefaultAsync(w => |
| | | inputs.Select(s => "" |
| | | + s.RuleName |
| | | ) |
| | | .Contains("" |
| | | + w.RuleName |
| | | )); |
| | | if (existDBItem != null) |
| | | { |
| | | var item = existDBItem.Adapt<WmsControlRuleDetail>(); |
| | | throw Oops.Oh($"系统中,控制属性规则名称[{item.RuleName}]已存在"); |
| | | } |
| | | } |
| | | |
| | | #endregion |