payne
2024-04-24 f78f5686e934249f87bc07cb7bef3c3dbcd950c6
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs
@@ -27,18 +27,23 @@
        private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep;
        private readonly ISysExcelTemplateService _sysExcelTemplateService;
        private readonly static object _lock = new();
        private readonly IRepository<WmsMaterialCustomer, MasterDbContextLocator> _wmsMaterialCustomerRep;
        private readonly IRepository<WmsSubstituteGood, MasterDbContextLocator> _wmsSubstituteGoodRep;
        public WmsMaterialService(
            IRepository<WmsMaterial,MasterDbContextLocator> wmsMaterialRep
            ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep
            ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep
            ,ISysExcelTemplateService sysExcelTemplateService
            , IRepository<WmsMaterialCustomer, MasterDbContextLocator> wmsMaterialCustomerRep
            , IRepository<WmsSubstituteGood, MasterDbContextLocator> wmsSubstituteGoodRep
        )
        {
            _wmsMaterialRep = wmsMaterialRep;
         _sysDictTypeRep = sysDictTypeRep;
         _sysDictDataRep = sysDictDataRep;
         _sysExcelTemplateService = sysExcelTemplateService;
            _wmsMaterialCustomerRep = wmsMaterialCustomerRep;
            _wmsSubstituteGoodRep = wmsSubstituteGoodRep;
        }
        /// <summary>
@@ -166,9 +171,10 @@
        public async Task<List<WmsMaterialOutput>> List([FromQuery] WmsMaterialInput input)
        {
            return await _wmsMaterialRep.DetachedEntities.ProjectToType<WmsMaterialOutput>().ToListAsync();
        }
        }
        #region 增、删、改
        /// <summary>
        /// 增加物料信息表
@@ -176,16 +182,55 @@
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("WmsMaterial/add")]
        public async Task Add(AddWmsMaterialInput input)
        [UnitOfWork]
        public async Task Add(AddWmsMaterialInfoInput input)
        {
            var wmsMaterial = input.Adapt<WmsMaterial>();
                        //验证
            //物料信息
            var wmsMaterial = input.MaterialInput.Adapt<WmsMaterial>();
            //控制规则信息
            var controlRuleld = input.ControlRuleld;
            wmsMaterial.ControlRuleId = controlRuleld;
            //客户档案信息
            var baseCustomerList = input.BaseCustomerList.Adapt<List<BaseCustomer>>();
            //物料客户关联关系
            var materialCustomerList=new List<WmsMaterialCustomer>();
            foreach (var baseCustomer in baseCustomerList)
            {
                materialCustomerList.Add(new WmsMaterialCustomer()
                {
                    CreatedTime = DateTime.Now,
                    CreatedUserId = CurrentUserInfo.UserId,
                    CreatedUserName = CurrentUserInfo.Name,
                    CustChinaName = baseCustomer.CustChinaName,
                    CustCode = baseCustomer.CustCode,
                    CustEnglishName = baseCustomer.CustEnglishName,
                    CustId = baseCustomer.Id,
                    MaterialCode = wmsMaterial.MaterialCode,
                    MaterialId = wmsMaterial.Id,
                    MaterialName = wmsMaterial.MaterialName,
                    UpdatedTime = DateTime.Now,
                    UpdatedUserId = CurrentUserInfo.UserId,
                    UpdatedUserName = CurrentUserInfo.Name
                });
            }
            //验证
            await CheckExisit(wmsMaterial);
            //替代品信息
            var substituteGoodList = input.SubstituteGoodList.Adapt<List<WmsSubstituteGood>>();
            wmsMaterial.CreatedUserId = wmsMaterial.UpdatedUserId = SysHelper.GetUserId();
            wmsMaterial.CreatedUserName = wmsMaterial.UpdatedUserName = SysHelper.GetUserName();
            wmsMaterial.CreatedTime = wmsMaterial.UpdatedTime = SysHelper.GetNowTime();
            await _wmsMaterialRep.InsertAsync(wmsMaterial);
            await _wmsMaterialCustomerRep.InsertAsync(materialCustomerList);
            await _wmsSubstituteGoodRep.InsertAsync(substituteGoodList);
        }
        /// <summary>