| | |
| | | private readonly ISysExcelTemplateService _sysExcelTemplateService; |
| | | private readonly static object _lock = new(); |
| | | private readonly IRepository<WmsMaterialCustomer, MasterDbContextLocator> _wmsMaterialCustomerRep; |
| | | private readonly IRepository<BaseCustomer, MasterDbContextLocator> _baseCustomerRep; |
| | | private readonly IRepository<WmsSubstituteGood, MasterDbContextLocator> _wmsSubstituteGoodRep; |
| | | private readonly IRepository<WmsControlRuleDetail, MasterDbContextLocator> _wmsControlRuleDetailRep; |
| | | public WmsMaterialService( |
| | | IRepository<WmsMaterial,MasterDbContextLocator> wmsMaterialRep |
| | | ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep |
| | | ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep |
| | | ,ISysExcelTemplateService sysExcelTemplateService |
| | | , IRepository<WmsMaterialCustomer, MasterDbContextLocator> wmsMaterialCustomerRep |
| | | , IRepository<BaseCustomer, MasterDbContextLocator> baseCustomerRep |
| | | , IRepository<WmsSubstituteGood, MasterDbContextLocator> wmsSubstituteGoodRep |
| | | , IRepository<WmsControlRuleDetail, MasterDbContextLocator> wmsControlRuleDetailRep |
| | | ) |
| | | { |
| | | _wmsMaterialRep = wmsMaterialRep; |
| | |
| | | _sysDictDataRep = sysDictDataRep; |
| | | _sysExcelTemplateService = sysExcelTemplateService; |
| | | _wmsMaterialCustomerRep = wmsMaterialCustomerRep; |
| | | _baseCustomerRep = baseCustomerRep; |
| | | _wmsSubstituteGoodRep = wmsSubstituteGoodRep; |
| | | _wmsControlRuleDetailRep = wmsControlRuleDetailRep; |
| | | } |
| | | /// <summary> |
| | | /// 分页查询物料信息 |
| | |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpGet("WmsMaterial/detail")] |
| | | public async Task<WmsMaterialOutput> Get([FromQuery] QueryeWmsMaterialInput input) |
| | | public async Task<WmsMaterialInfoOutput> Get([FromQuery] QueryeWmsMaterialInput input) |
| | | { |
| | | return (await _wmsMaterialRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WmsMaterialOutput>(); |
| | | WmsMaterialInfoOutput resultInfo = new WmsMaterialInfoOutput(); |
| | | //获取物料信息 |
| | | var wmsMaterialInfo =(await _wmsMaterialRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WmsMaterialOutput>(); |
| | | //获取替换物料信息 |
| | | var wmsSubstituteGoods = await _wmsSubstituteGoodRep.DetachedEntities |
| | | .Where(u => u.MaterialCode == wmsMaterialInfo.MaterialName) |
| | | .Where(u => u.IsDeleted == false) |
| | | .Where(u => u.IsDisabled == false) |
| | | .OrderBy(o => o.CreatedTime) |
| | | .ProjectToType<WmsSubstituteGoodOutput>() |
| | | .ToListAsync(); |
| | | //获取控制属性规则 |
| | | var wmsControlRuleDetails = await _wmsControlRuleDetailRep.DetachedEntities |
| | | .Where(u => u.Id == wmsMaterialInfo.ControlRuleId) |
| | | .Where(u => u.IsDeleted == false) |
| | | .Where(u => u.IsDisabled == false) |
| | | .OrderBy(o=>o.CreatedTime) |
| | | .ProjectToType<WmsControlRuleDetailOutput>() |
| | | .ToListAsync(); |
| | | |
| | | //根据物料客户关联表获取往来信息 |
| | | var baseCustomers = await _baseCustomerRep.DetachedEntities.Join(_wmsMaterialCustomerRep.DetachedEntities, bc => bc.Id, mc => mc.CustId, (bc, mc) => new { bc, mc }) |
| | | .Where(p =>p.mc.MaterialId== wmsMaterialInfo.Id) |
| | | .OrderBy(o => o.mc.CreatedTime) |
| | | .ProjectToType<BaseCustomerOutput>() |
| | | .ToListAsync(); |
| | | |
| | | resultInfo.MaterialInfo = wmsMaterialInfo; |
| | | resultInfo.SubstituteGoodList = wmsSubstituteGoods; |
| | | resultInfo.ControlRuleDetailList = wmsControlRuleDetails; |
| | | return resultInfo; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | |
| | | //替代品信息 |
| | | var substituteGoodList = input.SubstituteGoodList.Adapt<List<WmsSubstituteGood>>(); |
| | | foreach (var item in substituteGoodList) |
| | | { |
| | | item.SubstituteCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 要调用生成 编号的方法 先用雪花ID |
| | | } |
| | | |
| | | wmsMaterial.UpdatedUserId = SysHelper.GetUserId(); |
| | | wmsMaterial.UpdatedUserName = SysHelper.GetUserName(); |
| | |
| | | |
| | | //替代品信息 |
| | | var substituteGoodList = input.SubstituteGoodList.Adapt<List<WmsSubstituteGood>>(); |
| | | foreach (var item in substituteGoodList) |
| | | { |
| | | item.SubstituteCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 要调用生成 编号的方法 先用雪花ID |
| | | } |
| | | |
| | | if (materialCustomerList?.Count > 0) |
| | | { |