| | |
| | | using System.Data; |
| | | using System.Web; |
| | | using System.Text; |
| | | using NPOI.OpenXmlFormats.Dml; |
| | | |
| | | namespace Admin.NET.Application; |
| | | /// <summary> |
| | | /// 打印配置表服务 |
| | |
| | | public async Task<SqlSugarPagedList<WmsConfigPrintOutput>> Page(WmsConfigPrintInput input) |
| | | { |
| | | var query = CommonPageFilter(input); |
| | | var list = await query.OrderBuilder(input, "", "Id").ToPagedListAsync(input.Page, input.PageSize); |
| | | foreach (var item in list.Items) |
| | | { |
| | | //单独处理按钮 【Editby shaocx,2024-05-27】 |
| | | if (!string.IsNullOrEmpty(item.PrinterList)) |
| | | { |
| | | item.PrinterListList = item.PrinterList.Split(",").ToList(); |
| | | } |
| | | } |
| | | return list; |
| | | return await query.OrderBuilder(input, "", "Id").ToPagedListAsync(input.Page, input.PageSize); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | public async Task<List<WmsConfigPrintOutput>> List([FromQuery] WmsConfigPrintInput input) |
| | | { |
| | | var query = CommonPageFilter(input); |
| | | var list = await query.OrderBuilder(input, "", "Id").Select<WmsConfigPrintOutput>().ToListAsync(); |
| | | foreach (var item in list) |
| | | { |
| | | //单独处理按钮 【Editby shaocx,2024-05-27】 |
| | | if (!string.IsNullOrEmpty(item.PrinterList)) |
| | | { |
| | | item.PrinterListList = item.PrinterList.Split(",").ToList(); |
| | | } |
| | | } |
| | | return list; |
| | | return await query.OrderBuilder(input, "", "Id").Select<WmsConfigPrintOutput>().ToListAsync(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | [Description("WmsConfigPrint/Add")] |
| | | public async Task<long> Add(AddWmsConfigPrintInput input) |
| | | { |
| | | |
| | | var entity = input.Adapt<WmsConfigPrint>(); |
| | | entity.PrintClassifyName = entity.PrintClassify.ToString(); |
| | | entity.PrinterList = string.Join(",", input.PrinterListList); |
| | | |
| | | //重复性验证 |
| | | await CheckExist(entity); |
| | |
| | | public async Task Update(UpdateWmsConfigPrintInput input) |
| | | { |
| | | var entity = input.Adapt<WmsConfigPrint>(); |
| | | entity.PrintClassifyName = entity.PrintClassify.ToString(); |
| | | entity.PrinterList = string.Join(",", input.PrinterListList); |
| | | |
| | | //重复性验证 |
| | | await CheckExist(entity, true); |
| | | await CheckExist(entity,true); |
| | | |
| | | await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); |
| | | } |
| | |
| | | [HttpGet] |
| | | [ApiDescriptionSettings(Name = "Detail")] |
| | | [Description("WmsConfigPrint/Detail")] |
| | | public async Task<WmsConfigPrintOutput> Detail([FromQuery] QueryByIdWmsConfigPrintInput input) |
| | | public async Task<WmsConfigPrint> Detail([FromQuery] QueryByIdWmsConfigPrintInput input) |
| | | { |
| | | var obj= await _rep.GetFirstAsync(u => u.Id == input.Id); |
| | | var entity = obj.Adapt<WmsConfigPrintOutput>(); |
| | | if (!string.IsNullOrEmpty(entity.PrinterList)) |
| | | { |
| | | entity.PrinterListList = entity.PrinterList.Split(",").ToList(); |
| | | } |
| | | return entity; |
| | | return await _rep.GetFirstAsync(u => u.Id == input.Id); |
| | | } |
| | | |
| | | |
| | |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.PrinterList), u => u.PrinterList.Contains(input.PrinterList.Trim())) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.Remark), u => u.Remark.Contains(input.Remark.Trim())) |
| | | .Select<WmsConfigPrintOutput>(); |
| | | |
| | | return query; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 重复性验证 |
| | | /// </summary> |
| | | /// <param name="input">验证对象</param> |
| | | /// <param name="isEdit">是否是编辑</param> |
| | | /// <returns></returns> |
| | | private async Task CheckExist(WmsConfigPrint input, bool isEdit = false) |
| | | { |
| | | |
| | | |
| | | |
| | | //没有配置组合校验,不需要验重 |
| | | |
| | | |
| | | bool isExistForSingle_PrintTemplate = false; |
| | | if (!isEdit)//新增 |
| | | /// <summary> |
| | | /// 重复性验证 |
| | | /// </summary> |
| | | /// <param name="input">验证对象</param> |
| | | /// <param name="isEdit">是否是编辑</param> |
| | | /// <returns></returns> |
| | | private async Task CheckExist( WmsConfigPrint input,bool isEdit=false) |
| | | { |
| | | //数据是否单独存在重复-打印模板名 |
| | | isExistForSingle_PrintTemplate = await _rep.AsQueryable().AnyAsync(u => |
| | | u.PrintTemplate.Equals(input.PrintTemplate)); |
| | | |
| | | |
| | | |
| | | //没有配置组合校验,不需要验重 |
| | | |
| | | |
| | | //没有配置单独校验,不需要验重 |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据组合校验和单独校验验证数据是否已存在-导入时验证 |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<WmsConfigPrint> inputs) |
| | | { |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导入数据不能为空"); |
| | | } |
| | | //根据组合校验验证表格中中是否已存在相同数据 |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //根据单独校验验证表格中中是否已存在相同数据 |
| | | |
| | | |
| | | |
| | | } |
| | | else//编辑 |
| | | { |
| | | //当前编辑数据以外是否单独存在重复-打印模板名 |
| | | isExistForSingle_PrintTemplate = await _rep.AsQueryable().AnyAsync(u => |
| | | u.Id != input.Id |
| | | && u.PrintTemplate.Equals(input.PrintTemplate)); |
| | | } |
| | | if (isExistForSingle_PrintTemplate) throw Oops.Oh($"验证失败,打印模板名[" + input.PrintTemplate + "]已存在"); |
| | | |
| | | bool isExistForSingle_PrintTemplateAddr = false; |
| | | if (!isEdit)//新增 |
| | | { |
| | | //数据是否单独存在重复-打印模板地址 |
| | | isExistForSingle_PrintTemplateAddr = await _rep.AsQueryable().AnyAsync(u => |
| | | u.PrintTemplateAddr.Equals(input.PrintTemplateAddr)); |
| | | } |
| | | else//编辑 |
| | | { |
| | | //当前编辑数据以外是否单独存在重复-打印模板地址 |
| | | isExistForSingle_PrintTemplateAddr = await _rep.AsQueryable().AnyAsync(u => |
| | | u.Id != input.Id |
| | | && u.PrintTemplateAddr.Equals(input.PrintTemplateAddr)); |
| | | } |
| | | if (isExistForSingle_PrintTemplateAddr) throw Oops.Oh($"验证失败,打印模板地址[" + input.PrintTemplateAddr + "]已存在"); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据组合校验和单独校验验证数据是否已存在-导入时验证 |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<WmsConfigPrint> inputs) |
| | | { |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导入数据不能为空"); |
| | | } |
| | | //根据组合校验验证表格中中是否已存在相同数据 |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //根据单独校验验证表格中中是否已存在相同数据 |
| | | var existExcelItemForSingle_PrintTemplate = inputs.GroupBy(g => new { g.PrintTemplate }).Where(g => g.Count() > 1).ToList(); |
| | | if (existExcelItemForSingle_PrintTemplate != null && existExcelItemForSingle_PrintTemplate.Count > 0) |
| | | { |
| | | var item = existExcelItemForSingle_PrintTemplate.First().ToList().First(); |
| | | throw Oops.Oh($"验证失败,导入的表格中,打印模板名[" + item.PrintTemplate + "]已重复存在"); |
| | | } |
| | | var existExcelItemForSingle_PrintTemplateAddr = inputs.GroupBy(g => new { g.PrintTemplateAddr }).Where(g => g.Count() > 1).ToList(); |
| | | if (existExcelItemForSingle_PrintTemplateAddr != null && existExcelItemForSingle_PrintTemplateAddr.Count > 0) |
| | | { |
| | | var item = existExcelItemForSingle_PrintTemplateAddr.First().ToList().First(); |
| | | throw Oops.Oh($"验证失败,导入的表格中,打印模板地址[" + item.PrintTemplateAddr + "]已重复存在"); |
| | | } |
| | | |
| | | //根据单独校验验证数据库中是否已存在相同数据 |
| | | var existDBItemList = await _rep.GetListAsync(w => |
| | | inputs.Select(s => s.PrintTemplate).ToList().Contains(w.PrintTemplate) || |
| | | inputs.Select(s => s.PrintTemplateAddr).ToList().Contains(w.PrintTemplateAddr) |
| | | ); |
| | | var db_ForSingle_PrintTemplate = existDBItemList.FirstOrDefault(g => inputs.Select(s => s.PrintTemplate).ToList().Contains(g.PrintTemplate)); |
| | | if (db_ForSingle_PrintTemplate != null) throw Oops.Oh($"验证失败,系统中,打印模板名[" + db_ForSingle_PrintTemplate.PrintTemplate + "]已重复存在"); |
| | | |
| | | var db_ForSingle_PrintTemplateAddr = existDBItemList.FirstOrDefault(g => inputs.Select(s => s.PrintTemplateAddr).ToList().Contains(g.PrintTemplateAddr)); |
| | | if (db_ForSingle_PrintTemplateAddr != null) throw Oops.Oh($"验证失败,系统中,打印模板地址[" + db_ForSingle_PrintTemplateAddr.PrintTemplateAddr + "]已重复存在"); |
| | | |
| | | |
| | | |
| | | } |
| | | #endregion |
| | | #endregion |
| | | |
| | | } |
| | | |