| | |
| | | [Route("api")] |
| | | public class WmsWarehouseService : IWmsWarehouseService, IDynamicApiController, ITransient |
| | | { |
| | | private readonly IRepository<WmsWarehouse,MasterDbContextLocator> _wmsWarehouseRep; |
| | | private readonly IRepository<WmsWarehouse, MasterDbContextLocator> _wmsWarehouseRep; |
| | | private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; |
| | | private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; |
| | | private readonly ISysExcelTemplateService _sysExcelTemplateService; |
| | | private readonly static object _lock = new(); |
| | | |
| | | public WmsWarehouseService( |
| | | IRepository<WmsWarehouse,MasterDbContextLocator> wmsWarehouseRep |
| | | ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep |
| | | ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep |
| | | ,ISysExcelTemplateService sysExcelTemplateService |
| | | IRepository<WmsWarehouse, MasterDbContextLocator> wmsWarehouseRep |
| | | , IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep |
| | | , IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep |
| | | , ISysExcelTemplateService sysExcelTemplateService |
| | | ) |
| | | { |
| | | _wmsWarehouseRep = wmsWarehouseRep; |
| | | _sysDictTypeRep = sysDictTypeRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | _sysDictTypeRep = sysDictTypeRep; |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | .Where(!string.IsNullOrEmpty(input.Position), u => u.Position == input.Position) |
| | | .Where(input.IsDisabled != null, u => u.IsDisabled == input.IsDisabled) |
| | | .Where(!string.IsNullOrEmpty(input.Remarks), u => u.Remarks == input.Remarks) |
| | | .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<WmsWarehouseSearch>(input)) |
| | |
| | | .Where(!string.IsNullOrEmpty(pPosition), u => u.Position == pPosition) |
| | | .Where(pIsDisabled != null, u => u.IsDisabled == pIsDisabled) |
| | | .Where(!string.IsNullOrEmpty(pRemarks), u => u.Remarks == pRemarks) |
| | | .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 wmsWarehouses; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// <summary> |
| | | /// 获取仓库信息 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | |
| | | public async Task<List<WmsWarehouseOutput>> List([FromQuery] WmsWarehouseInput input) |
| | | { |
| | | return await _wmsWarehouseRep.DetachedEntities.ProjectToType<WmsWarehouseOutput>().ToListAsync(); |
| | | } |
| | | } |
| | | |
| | | #region 增、删、改 |
| | | |
| | |
| | | public async Task Add(AddWmsWarehouseInput input) |
| | | { |
| | | var wmsWarehouse = input.Adapt<WmsWarehouse>(); |
| | | //验证 |
| | | //验证 |
| | | await CheckExisit(wmsWarehouse); |
| | | |
| | | wmsWarehouse.CreatedUserId = wmsWarehouse.UpdatedUserId = SysHelper.GetUserId(); |
| | |
| | | { |
| | | var wmsWarehouse = await _wmsWarehouseRep.FirstOrDefaultAsync(u => u.Id == input.Id); |
| | | await _wmsWarehouseRep.DeleteAsync(wmsWarehouse); |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | |
| | | var wmsWarehouse = input.Adapt<WmsWarehouse>(); |
| | | //验证 |
| | | await CheckExisit(wmsWarehouse,true); |
| | | await CheckExisit(wmsWarehouse, true); |
| | | |
| | | wmsWarehouse.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsWarehouse.UpdatedUserName = SysHelper.GetUserName(); |
| | | wmsWarehouse.UpdatedTime = SysHelper.GetNowTime(); |
| | | await _wmsWarehouseRep.UpdateAsync(wmsWarehouse,ignoreNullValues:true); |
| | | await _wmsWarehouseRep.UpdateAsync(wmsWarehouse, ignoreNullValues: true); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | /// <returns>导入的记录数</returns> |
| | | [HttpPost("WmsWarehouse/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) |
| | | { |
| | | _wmsWarehouseRep.InsertAsync(addList); |
| | | |
| | | |
| | | } |
| | | await Task.CompletedTask; |
| | | return addList.Count; |
| | |
| | | { |
| | | index++; |
| | | |
| | | //导入模版定制化代码(替换模版使用) |
| | | |
| | | var addItem = new WmsWarehouse() |
| | | { |
| | | CreatedTime = SysHelper.GetNowTime(), |
| | | CreatedUserId = SysHelper.GetUserId(), |
| | | CreatedUserName = SysHelper.GetUserName(), |
| | | UpdatedTime = SysHelper.GetNowTime(), |
| | | UpdatedUserId = SysHelper.GetUserId(), |
| | | UpdatedUserName = SysHelper.GetUserName() |
| | | }; |
| | | #region 定义变量 |
| | | var _Code = "";//仓库编号 |
| | | var _Name = "";//仓库名称 |
| | | var _Address = "";//仓库地址 |
| | | var _FactoryCode = "";//工厂编号 |
| | | var _Length = "";//长 |
| | | var _Width = "";//宽 |
| | | var _Height = "";//高 |
| | | var _BaseUnit = "";//基本单元 |
| | | var _Position = "";//定位 |
| | | var _IsDisabled = "";//是否禁用 |
| | | var _Remarks = "";//备注 |
| | | var _Id = "";//Id主键 |
| | | #endregion |
| | | |
| | | |
| | | #region 取值 |
| | | _Code = row["仓库编号"]?.ToString() ; |
| | | _Name = row["仓库名称"]?.ToString() ; |
| | | _Address = row["仓库地址"]?.ToString() ; |
| | | _FactoryCode = row["工厂编号"]?.ToString() ; |
| | | _Length = row["长"]?.ToString() ; |
| | | _Width = row["宽"]?.ToString() ; |
| | | _Height = row["高"]?.ToString() ; |
| | | _BaseUnit = row["基本单元"]?.ToString() ; |
| | | _Position = row["定位"]?.ToString() ; |
| | | _IsDisabled = row["是否禁用"]?.ToString() ; |
| | | _Remarks = row["备注"]?.ToString() ; |
| | | _Id = row["Id主键"]?.ToString() ; |
| | | #endregion |
| | | |
| | | |
| | | #region 验证 |
| | | |
| | | if (string.IsNullOrEmpty(_Code)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[仓库编号]{_Code}不能为空!"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_Code)) |
| | | { |
| | | addItem.Code = (string)_Code; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_Name)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[仓库名称]{_Name}不能为空!"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_Name)) |
| | | { |
| | | addItem.Name = (string)_Name; |
| | | } |
| | | if(!string.IsNullOrEmpty(_Address)) |
| | | { |
| | | addItem.Address = (string)_Address; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_FactoryCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[工厂编号]{_FactoryCode}不能为空!"); |
| | | } |
| | | |
| | | if(!string.IsNullOrEmpty(_FactoryCode)) |
| | | { |
| | | addItem.FactoryCode = (string)_FactoryCode; |
| | | } |
| | | if(!string.IsNullOrEmpty(_Length)) |
| | | { |
| | | if (!decimal.TryParse(_Length, out decimal outLength)&&!string.IsNullOrEmpty(_Length)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[长]{_Length}值不正确!"); |
| | | } |
| | | if (outLength <= 0&&!string.IsNullOrEmpty(_Length)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[长]{_Length}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Length = outLength; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_Width)) |
| | | { |
| | | if (!decimal.TryParse(_Width, out decimal outWidth)&&!string.IsNullOrEmpty(_Width)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[宽]{_Width}值不正确!"); |
| | | } |
| | | if (outWidth <= 0&&!string.IsNullOrEmpty(_Width)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[宽]{_Width}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Width = outWidth; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_Height)) |
| | | { |
| | | if (!decimal.TryParse(_Height, out decimal outHeight)&&!string.IsNullOrEmpty(_Height)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[高]{_Height}值不正确!"); |
| | | } |
| | | if (outHeight <= 0&&!string.IsNullOrEmpty(_Height)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[高]{_Height}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Height = outHeight; |
| | | } |
| | | |
| | | } |
| | | if(!string.IsNullOrEmpty(_BaseUnit)) |
| | | { |
| | | addItem.BaseUnit = (string)_BaseUnit; |
| | | } |
| | | if(!string.IsNullOrEmpty(_Position)) |
| | | { |
| | | addItem.Position = (string)_Position; |
| | | } |
| | | 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(_Remarks)) |
| | | { |
| | | addItem.Remarks = (string)_Remarks; |
| | | } |
| | | 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 WmsWarehouse() |
| | | { |
| | | CreatedTime = SysHelper.GetNowTime(), |
| | | CreatedUserId = SysHelper.GetUserId(), |
| | | CreatedUserName = SysHelper.GetUserName(), |
| | | UpdatedTime = SysHelper.GetNowTime(), |
| | | UpdatedUserId = SysHelper.GetUserId(), |
| | | UpdatedUserName = SysHelper.GetUserName() |
| | | }; |
| | | #region 定义变量 |
| | | var _Code = "";//仓库编号 |
| | | var _Name = "";//仓库名称 |
| | | var _Address = "";//仓库地址 |
| | | var _FactoryCode = "";//工厂编号 |
| | | var _Length = "";//长 |
| | | var _Width = "";//宽 |
| | | var _Height = "";//高 |
| | | var _BaseUnit = "";//基本单元 |
| | | var _Position = "";//定位 |
| | | var _IsDisabled = "";//是否禁用 |
| | | var _Remarks = "";//备注 |
| | | #endregion |
| | | |
| | | |
| | | #region 取值 |
| | | _Code = row["仓库编号"]?.ToString(); |
| | | _Name = row["仓库名称"]?.ToString(); |
| | | _Address = row["仓库地址"]?.ToString(); |
| | | _FactoryCode = row["工厂编号"]?.ToString(); |
| | | _Length = row["长"]?.ToString(); |
| | | _Width = row["宽"]?.ToString(); |
| | | _Height = row["高"]?.ToString(); |
| | | _BaseUnit = row["基本单元"]?.ToString(); |
| | | _Position = row["定位"]?.ToString(); |
| | | _IsDisabled = row["是否禁用"]?.ToString(); |
| | | _Remarks = row["备注"]?.ToString(); |
| | | #endregion |
| | | |
| | | |
| | | #region 验证 |
| | | |
| | | if (string.IsNullOrEmpty(_Code)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[仓库编号]{_Code}不能为空!"); |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(_Code)) |
| | | { |
| | | addItem.Code = (string)_Code; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_Name)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[仓库名称]{_Name}不能为空!"); |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(_Name)) |
| | | { |
| | | addItem.Name = (string)_Name; |
| | | } |
| | | if (!string.IsNullOrEmpty(_Address)) |
| | | { |
| | | addItem.Address = (string)_Address; |
| | | } |
| | | |
| | | if (string.IsNullOrEmpty(_FactoryCode)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[工厂编号]{_FactoryCode}不能为空!"); |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(_FactoryCode)) |
| | | { |
| | | addItem.FactoryCode = (string)_FactoryCode; |
| | | } |
| | | if (!string.IsNullOrEmpty(_Length)) |
| | | { |
| | | if (!decimal.TryParse(_Length, out decimal outLength) && !string.IsNullOrEmpty(_Length)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[长]{_Length}值不正确!"); |
| | | } |
| | | if (outLength <= 0 && !string.IsNullOrEmpty(_Length)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[长]{_Length}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Length = outLength; |
| | | } |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty(_Width)) |
| | | { |
| | | if (!decimal.TryParse(_Width, out decimal outWidth) && !string.IsNullOrEmpty(_Width)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[宽]{_Width}值不正确!"); |
| | | } |
| | | if (outWidth <= 0 && !string.IsNullOrEmpty(_Width)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[宽]{_Width}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Width = outWidth; |
| | | } |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty(_Height)) |
| | | { |
| | | if (!decimal.TryParse(_Height, out decimal outHeight) && !string.IsNullOrEmpty(_Height)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[高]{_Height}值不正确!"); |
| | | } |
| | | if (outHeight <= 0 && !string.IsNullOrEmpty(_Height)) |
| | | { |
| | | throw Oops.Oh($"第{index}行[高]{_Height}值不能小于等于0!"); |
| | | } |
| | | else |
| | | { |
| | | addItem.Height = outHeight; |
| | | } |
| | | |
| | | } |
| | | if (!string.IsNullOrEmpty(_BaseUnit)) |
| | | { |
| | | addItem.BaseUnit = (string)_BaseUnit; |
| | | } |
| | | if (!string.IsNullOrEmpty(_Position)) |
| | | { |
| | | addItem.Position = (string)_Position; |
| | | } |
| | | 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(_Remarks)) |
| | | { |
| | | addItem.Remarks = (string)_Remarks; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | 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( WmsWarehouse input,bool isEdit=false) |
| | | private async Task CheckExisit(WmsWarehouse input, bool isEdit = false) |
| | | { |
| | | |
| | | |
| | | |
| | | bool isExist = false; |
| | | if (!isEdit)//新增 |
| | | { |
| | | //数据是否存在重复 |
| | | isExist = await _wmsWarehouseRep.AnyAsync(u => |
| | | u.Code.Equals(input.Code) |
| | | ,false); |
| | | } |
| | | else//编辑 |
| | | { |
| | | |
| | | |
| | | |
| | | //当前编辑数据以外是否存在重复 |
| | | isExist = await _wmsWarehouseRep.AnyAsync(u => |
| | | u.Id != input.Id |
| | | &&u.Code.Equals(input.Code) |
| | | ,false); |
| | | } |
| | | |
| | | |
| | | string erorMsg = string.Empty; |
| | | bool isExist = false; |
| | | if (!isEdit)//新增 |
| | | { |
| | | //数据是否存在重复 |
| | | isExist = await _wmsWarehouseRep.AnyAsync(u => |
| | | u.Code.Equals(input.Code) |
| | | , false); |
| | | if (isExist) |
| | | { |
| | | erorMsg = $"系统中,仓库编号[{input.Code}]已存在"; |
| | | throw Oops.Oh(erorMsg); |
| | | } |
| | | //数据是否存在重复 |
| | | isExist = await _wmsWarehouseRep.AnyAsync(u => |
| | | u.Name.Equals(input.Name) |
| | | , false); |
| | | if (isExist) |
| | | { |
| | | erorMsg = $"系统中,仓库名称[{input.Name}]已存在"; |
| | | throw Oops.Oh(erorMsg); |
| | | } |
| | | } |
| | | else//编辑 |
| | | { |
| | | |
| | | if (isExist) throw Oops.Oh(ErrorCode.E0001); |
| | | } |
| | | |
| | | |
| | | |
| | | //当前编辑数据以外是否存在重复 |
| | | isExist = await _wmsWarehouseRep.AnyAsync(u => |
| | | u.Id != input.Id |
| | | && u.Code.Equals(input.Code) |
| | | , false); |
| | | if (isExist) |
| | | { |
| | | erorMsg = $"系统中,仓库编号[{input.Code}]已存在"; |
| | | throw Oops.Oh(erorMsg); |
| | | } |
| | | |
| | | isExist = await _wmsWarehouseRep.AnyAsync(u => |
| | | u.Id != input.Id |
| | | && u.Name.Equals(input.Name) |
| | | , false); |
| | | if (isExist) |
| | | { |
| | | erorMsg = $"系统中,仓库名称[{input.Name}]已存在"; |
| | | throw Oops.Oh(erorMsg); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据联合主键验证数据是否已存在-导入时验证 |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<WmsWarehouse> inputs) |
| | | { |
| | | { |
| | | //根据联合主键验证表格中中是否已存在相同数据 |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导入数据不能为空"); |
| | | } |
| | | //数据是否重复 |
| | | var existExcelItem = inputs.GroupBy(g => new { |
| | | g.Code |
| | | }) |
| | | .Where(g => g.Count() > 1) |
| | | .Select(s => new { |
| | | s.Key.Code |
| | | }).FirstOrDefault(); |
| | | if (existExcelItem != null) |
| | | { |
| | | var wmsWarehouse = existExcelItem.Adapt<WmsWarehouse>(); |
| | | var item= existExcelItem.Adapt<WmsWarehouse>(); |
| | | throw Oops.Oh($"导入的表格中,仓库编号[{item.Code}]已存在"); |
| | | } |
| | | |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导入数据不能为空"); |
| | | } |
| | | //数据是否重复 |
| | | var existExcelItem = inputs.GroupBy(g => new |
| | | { |
| | | g.Code |
| | | }) |
| | | .Where(g => g.Count() > 1) |
| | | .Select(s => new |
| | | { |
| | | s.Key.Code |
| | | }).FirstOrDefault(); |
| | | if (existExcelItem != null) |
| | | { |
| | | var item = existExcelItem.Adapt<WmsWarehouse>(); |
| | | throw Oops.Oh($"导入的表格中,仓库编号[{item.Code}]已存在"); |
| | | } |
| | | |
| | | var existExcelItem2 = inputs.GroupBy(g => new |
| | | { |
| | | g.Name |
| | | }) |
| | | .Where(g => g.Count() > 1) |
| | | .Select(s => new |
| | | { |
| | | s.Key.Name |
| | | }).FirstOrDefault(); |
| | | if (existExcelItem2 != null) |
| | | { |
| | | var item = existExcelItem2.Adapt<WmsWarehouse>(); |
| | | throw Oops.Oh($"导入的表格中,仓库名称[{item.Name}]已存在"); |
| | | } |
| | | |
| | | |
| | | |
| | | //根据联合主键验证数据库中是否已存在相同数据 |
| | | var existDBItem = await _wmsWarehouseRep.DetachedEntities.FirstOrDefaultAsync(w=> |
| | | inputs.Select(s=>"" |
| | | +s.Code |
| | | //根据联合主键验证数据库中是否已存在相同数据 |
| | | var existDBItem = await _wmsWarehouseRep.DetachedEntities.FirstOrDefaultAsync(w => |
| | | inputs.Select(s => "" |
| | | + s.Code |
| | | ) |
| | | .Contains("" |
| | | +w.Code |
| | | + w.Code |
| | | )); |
| | | if (existDBItem != null) |
| | | { |
| | | var wmsWarehouse = existExcelItem.Adapt<WmsWarehouse>(); |
| | | var item= existExcelItem.Adapt<WmsWarehouse>(); |
| | | throw Oops.Oh($"系统中,仓库编号[{item.Code}]已存在"); |
| | | } |
| | | if (existDBItem != null) |
| | | { |
| | | var item = existDBItem.Adapt<WmsWarehouse>(); |
| | | throw Oops.Oh($"系统中,仓库编号[{item.Code}]已存在"); |
| | | } |
| | | |
| | | var existDBItem2 = await _wmsWarehouseRep.DetachedEntities.FirstOrDefaultAsync(w => |
| | | inputs.Select(s => "" |
| | | + s.Name |
| | | ) |
| | | .Contains("" |
| | | + w.Name |
| | | )); |
| | | if (existDBItem2 != null) |
| | | { |
| | | var item = existDBItem2.Adapt<WmsWarehouse>(); |
| | | throw Oops.Oh($"系统中,仓库名称[{item.Name}]已存在"); |
| | | } |
| | | } |
| | | |
| | | #endregion |