payne
2024-04-25 46af5a3a488e06c2eb4844a2dd72ad9ddcd7cdbd
物料详情接口
控制规则明细页面增加字段
已修改9个文件
123 ■■■■■ 文件已修改
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/addForm.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/editForm.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/index.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsControlRuleDetail/WmsControlRuleDetailService.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialOutput.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/IWmsMaterialService.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsControlRuleDetail.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>