iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/addForm.vue
@@ -8,8 +8,8 @@ @cancel="handleCancel"> <a-spin :spinning="confirmLoading"> <a-form :form="form"> <a-form-item label="控制属性规则编号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请输入控制属性规则编号" v-decorator="['ruleCode', {rules: [{required: true, message: '请输入控制属性规则编号!'}]}]" /> <a-form-item label="控制属性规则名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请输入控制属性规则名称" v-decorator="['ruleName', {rules: [{required: true, message: '请输入控制属性规则名称!'}]}]" /> </a-form-item> <a-form-item label="最高库存" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请输入最高库存" v-decorator="['maxImumqty']" /> iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/editForm.vue
@@ -8,8 +8,8 @@ @cancel="handleCancel"> <a-spin :spinning="confirmLoading"> <a-form :form="form"> <a-form-item label="控制属性规则编号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请输入控制属性规则编号" v-decorator="['ruleCode', {rules: [{required: true, message: '请输入控制属性规则编号!'}]}]" /> <a-form-item label="控制属性规则名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请输入控制属性规则名称" v-decorator="['ruleName', {rules: [{required: true, message: '请输入控制属性规则名称!'}]}]" /> </a-form-item> <a-form-item label="最高库存" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-input placeholder="请输入最高库存" v-decorator="['maxImumqty']" /> @@ -78,7 +78,7 @@ this.form.setFieldsValue( { id: record.id, ruleCode: record.ruleCode, ruleName: record.ruleName, maxImumqty: record.maxImumqty, minImumqty: record.minImumqty, safeImumqty: record.safeImumqty, iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/index.vue
@@ -12,10 +12,15 @@ </a-form-item> </a-col> <a-col :md="8" :sm="24"> <a-form-item label="控制属性规则名称"> <a-input v-model="queryParam.ruleName" allow-clear placeholder="请输入控制属性规则名称"/> </a-form-item> </a-col><template v-if="advanced"> <a-col :md="8" :sm="24"> <a-form-item label="最高库存"> <a-input v-model="queryParam.maxImumqty" allow-clear placeholder="请输入最高库存"/> </a-form-item> </a-col><template v-if="advanced"> </a-col> <a-col :md="8" :sm="24"> <a-form-item label="最低库存"> <a-input v-model="queryParam.minImumqty" allow-clear placeholder="请输入最低库存"/> @@ -212,6 +217,26 @@ dataIndex: 'ruleCode' }, { title: '控制属性规则名称', align: 'center', customHeaderCell: () => { return { style: { 'min-width': '120px'//最小列宽设置 } } }, customCell: () => { return { style: { 'min-width': '120px'//最小列宽设置 } } }, sorter: true, dataIndex: 'ruleName' }, { title: '最高库存', align: 'center', customHeaderCell: () => { iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsControlRuleDetail/WmsControlRuleDetailService.cs
@@ -482,11 +482,13 @@ throw Oops.Oh($"导入数据不能为空"); } //数据是否重复 var existExcelItem = inputs.GroupBy(g => new { var existExcelItem = inputs.GroupBy(g => new { g.RuleName }) .Where(g => g.Count() > 1) .Select(s => new { .Select(s => new { s.Key.RuleName }).FirstOrDefault(); if (existExcelItem != null) iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs
@@ -458,4 +458,5 @@ public List<BaseCustomerInput> BaseCustomerList { get; set; } } } iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialOutput.cs
@@ -139,4 +139,31 @@ public string UpdatedUserName { get; set; } } /// <summary> /// 物料业务信息实体出参--包含物料、物料客户关系、控制属性、替代品 /// </summary> public class WmsMaterialInfoOutput { /// <summary> /// 物料基础信息 /// </summary> public WmsMaterialOutput MaterialInfo { get; set; } /// <summary> /// 控制属性规则 /// </summary> public List<WmsControlRuleDetailOutput> ControlRuleDetailList { get; set; } /// <summary> /// 替代品 /// </summary> public List<WmsSubstituteGoodOutput> SubstituteGoodList { get; set; } /// <summary> /// 往来关系 /// </summary> public List<BaseCustomerOutput> BaseCustomerList { get; set; } } } iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/IWmsMaterialService.cs
@@ -8,7 +8,7 @@ { public interface IWmsMaterialService { Task<WmsMaterialOutput> Get([FromQuery] QueryeWmsMaterialInput input); Task<WmsMaterialInfoOutput> Get([FromQuery] QueryeWmsMaterialInput input); Task<List<WmsMaterialOutput>> List([FromQuery] WmsMaterialInput input); Task<PageResult<WmsMaterialOutput>> Page([FromQuery] WmsMaterialSearch input); Task<List<WmsMaterialOutput>> ListNonPageAsync([FromQuery] WmsMaterialSearchNonPage input); iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs
@@ -28,14 +28,18 @@ 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; @@ -43,7 +47,9 @@ _sysDictDataRep = sysDictDataRep; _sysExcelTemplateService = sysExcelTemplateService; _wmsMaterialCustomerRep = wmsMaterialCustomerRep; _baseCustomerRep = baseCustomerRep; _wmsSubstituteGoodRep = wmsSubstituteGoodRep; _wmsControlRuleDetailRep = wmsControlRuleDetailRep; } /// <summary> /// 分页查询物料信息 @@ -156,9 +162,39 @@ /// <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> @@ -220,6 +256,10 @@ //替代品信息 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(); @@ -314,6 +354,10 @@ //替代品信息 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) { iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsControlRuleDetail.cs
@@ -84,7 +84,7 @@ /// </summary> [Comment("是否免检")] public bool IsNotChek { get; set; } public bool? IsNotChek { get; set; } /// <summary>