From 46af5a3a488e06c2eb4844a2dd72ad9ddcd7cdbd Mon Sep 17 00:00:00 2001 From: payne <bzrlw2012@163.com> Date: 周四, 25 4月 2024 13:21:18 +0800 Subject: [PATCH] 物料详情接口 控制规则明细页面增加字段 --- iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsControlRuleDetail/WmsControlRuleDetailService.cs | 492 ++++++++++++++++++++++---------------------- iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs | 1 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/IWmsMaterialService.cs | 2 iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/editForm.vue | 6 iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/index.vue | 29 ++ iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsControlRuleDetail.cs | 2 iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/addForm.vue | 4 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs | 48 ++++ iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialOutput.cs | 27 ++ 9 files changed, 355 insertions(+), 256 deletions(-) diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/addForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/addForm.vue index 43dc396..63b05f4 100644 --- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/addForm.vue +++ b/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']" /> diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/editForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/editForm.vue index bbadedf..ab4062c 100644 --- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/editForm.vue +++ b/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, diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/index.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/index.vue index 627d961..31ca90c 100644 --- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsControlRuleDetail/index.vue +++ b/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.maxImumqty" allow-clear placeholder="璇疯緭鍏ユ渶楂樺簱瀛�"/> + <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> <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: () => { diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsControlRuleDetail/WmsControlRuleDetailService.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsControlRuleDetail/WmsControlRuleDetailService.cs index 5f4405c..9037c71 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsControlRuleDetail/WmsControlRuleDetailService.cs +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsControlRuleDetail/WmsControlRuleDetailService.cs @@ -22,23 +22,23 @@ [Route("api")] public class WmsControlRuleDetailService : IWmsControlRuleDetailService, IDynamicApiController, ITransient { - private readonly IRepository<WmsControlRuleDetail,MasterDbContextLocator> _wmsControlRuleDetailRep; + private readonly IRepository<WmsControlRuleDetail, MasterDbContextLocator> _wmsControlRuleDetailRep; private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; private readonly ISysExcelTemplateService _sysExcelTemplateService; private readonly static object _lock = new(); public WmsControlRuleDetailService( - IRepository<WmsControlRuleDetail,MasterDbContextLocator> wmsControlRuleDetailRep - ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep - ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep - ,ISysExcelTemplateService sysExcelTemplateService + IRepository<WmsControlRuleDetail, MasterDbContextLocator> wmsControlRuleDetailRep + , IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep + , IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep + , ISysExcelTemplateService sysExcelTemplateService ) { _wmsControlRuleDetailRep = wmsControlRuleDetailRep; - _sysDictTypeRep = sysDictTypeRep; - _sysDictDataRep = sysDictDataRep; - _sysExcelTemplateService = sysExcelTemplateService; + _sysDictTypeRep = sysDictTypeRep; + _sysDictDataRep = sysDictDataRep; + _sysExcelTemplateService = sysExcelTemplateService; } /// <summary> @@ -60,8 +60,8 @@ .Where(input.IsNotChek != null, u => u.IsNotChek == input.IsNotChek) .Where(input.ShelfLifeDays != null, u => u.ShelfLifeDays == input.ShelfLifeDays) .Where(input.IsDisabled != null, u => u.IsDisabled == input.IsDisabled) - .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) - .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) + .Where(input.CreatedTime != null, u => u.CreatedTime >= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime <= Convert.ToDateTime(input.CreatedTime[1])) + .Where(input.UpdatedTime != null, u => u.UpdatedTime >= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime <= Convert.ToDateTime(input.UpdatedTime[1])) .Where(!string.IsNullOrEmpty(input.CreatedUserName), u => u.CreatedUserName == input.CreatedUserName) .Where(!string.IsNullOrEmpty(input.UpdatedUserName), u => u.UpdatedUserName == input.UpdatedUserName) .OrderBy(PageInputOrder.OrderBuilder<WmsControlRuleDetailSearch>(input)) @@ -103,8 +103,8 @@ .Where(pIsNotChek != null, u => u.IsNotChek == pIsNotChek) .Where(pShelfLifeDays != null, u => u.ShelfLifeDays == pShelfLifeDays) .Where(pIsDisabled != null, u => u.IsDisabled == pIsDisabled) - .Where(input.CreatedTime!=null, u => u.CreatedTime>= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1])) - .Where(input.UpdatedTime!=null, u => u.UpdatedTime>= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1])) + .Where(input.CreatedTime != null, u => u.CreatedTime >= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime <= Convert.ToDateTime(input.CreatedTime[1])) + .Where(input.UpdatedTime != null, u => u.UpdatedTime >= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime <= Convert.ToDateTime(input.UpdatedTime[1])) .Where(!string.IsNullOrEmpty(pCreatedUserName), u => u.CreatedUserName == pCreatedUserName) .Where(!string.IsNullOrEmpty(pUpdatedUserName), u => u.UpdatedUserName == pUpdatedUserName) .OrderBy(PageInputOrder.OrderNonPageBuilder(input)) @@ -113,7 +113,7 @@ return wmsControlRuleDetails; } - /// <summary> + /// <summary> /// 鑾峰彇鎺у埗灞炴�ц鍒欐槑缁� /// </summary> /// <param name="input"></param> @@ -133,7 +133,7 @@ public async Task<List<WmsControlRuleDetailOutput>> List([FromQuery] WmsControlRuleDetailInput input) { return await _wmsControlRuleDetailRep.DetachedEntities.ProjectToType<WmsControlRuleDetailOutput>().ToListAsync(); - } + } #region 澧炪�佸垹銆佹敼 @@ -147,7 +147,7 @@ { var wmsControlRuleDetail = input.Adapt<WmsControlRuleDetail>(); wmsControlRuleDetail.RuleCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 瑕佽皟鐢ㄧ敓鎴� 缂栧彿鐨勬柟娉� 鍏堢敤闆姳ID - //楠岃瘉 + //楠岃瘉 await CheckExisit(wmsControlRuleDetail); wmsControlRuleDetail.CreatedUserId = wmsControlRuleDetail.UpdatedUserId = SysHelper.GetUserId(); @@ -166,7 +166,7 @@ { var wmsControlRuleDetail = await _wmsControlRuleDetailRep.FirstOrDefaultAsync(u => u.Id == input.Id); await _wmsControlRuleDetailRep.DeleteAsync(wmsControlRuleDetail); - + } /// <summary> @@ -182,12 +182,12 @@ var wmsControlRuleDetail = input.Adapt<WmsControlRuleDetail>(); //楠岃瘉 - await CheckExisit(wmsControlRuleDetail,true); + await CheckExisit(wmsControlRuleDetail, true); wmsControlRuleDetail.UpdatedUserId = SysHelper.GetUserId(); wmsControlRuleDetail.UpdatedUserName = SysHelper.GetUserName(); wmsControlRuleDetail.UpdatedTime = SysHelper.GetNowTime(); - await _wmsControlRuleDetailRep.UpdateAsync(wmsControlRuleDetail,ignoreNullValues:true); + await _wmsControlRuleDetailRep.UpdateAsync(wmsControlRuleDetail, ignoreNullValues: true); } #endregion @@ -201,17 +201,17 @@ /// <returns>瀵煎叆鐨勮褰曟暟</returns> [HttpPost("WmsControlRuleDetail/importExcel")] public async Task<int> ImportExcelAsync(IFormFile file) - { + { int _HeadStartLine = 2;//绗�1琛屾槸璇存槑,绗�2琛屾槸鍒楀悕 int _DataStartLine = 3;//绗�3琛屽紑濮嬫槸鏁版嵁 DataTable importDataTable = ExcelUtil.ImportExcelToDataTable(file, _HeadStartLine, _DataStartLine); - var addList =await CommonImport(importDataTable, _DataStartLine); + var addList = await CommonImport(importDataTable, _DataStartLine); lock (_lock) { _wmsControlRuleDetailRep.InsertAsync(addList); - + } await Task.CompletedTask; return addList.Count; @@ -232,176 +232,176 @@ { index++; - //瀵煎叆妯$増瀹氬埗鍖栦唬鐮侊紙鏇挎崲妯$増浣跨敤锛� - - var addItem = new WmsControlRuleDetail() - { - CreatedTime = SysHelper.GetNowTime(), - CreatedUserId = SysHelper.GetUserId(), - CreatedUserName = SysHelper.GetUserName(), - UpdatedTime = SysHelper.GetNowTime(), - UpdatedUserId = SysHelper.GetUserId(), - UpdatedUserName = SysHelper.GetUserName() - }; - #region 瀹氫箟鍙橀噺 - var _RuleName = "";//鎺у埗灞炴�ц鍒欏悕绉� - var _MaxImumqty = "";//鏈�楂樺簱瀛� - var _MinImumqty = "";//鏈�浣庡簱瀛� - var _SafeImumqty = "";//瀹夊叏搴撳瓨 - var _MinStorageAge = "";//鏈�灏忓簱榫� - var _MaxStorageAge = "";//鏈�澶у簱榫� - var _IsNotChek = "";//鏄惁鍏嶆 - var _ShelfLifeDays = "";//淇濊川鏈熷ぉ鏁� - var _IsDisabled = "";//鏄惁绂佺敤 - #endregion - - - #region 鍙栧�� - _RuleName = row["鎺у埗灞炴�ц鍒欏悕绉�"]?.ToString() ; - _MaxImumqty = row["鏈�楂樺簱瀛�"]?.ToString() ; - _MinImumqty = row["鏈�浣庡簱瀛�"]?.ToString() ; - _SafeImumqty = row["瀹夊叏搴撳瓨"]?.ToString() ; - _MinStorageAge = row["鏈�灏忓簱榫�"]?.ToString() ; - _MaxStorageAge = row["鏈�澶у簱榫�"]?.ToString() ; - _IsNotChek = row["鏄惁鍏嶆"]?.ToString() ; - _ShelfLifeDays = row["淇濊川鏈熷ぉ鏁�"]?.ToString() ; - _IsDisabled = row["鏄惁绂佺敤"]?.ToString() ; - + //瀵煎叆妯$増瀹氬埗鍖栦唬鐮侊紙鏇挎崲妯$増浣跨敤锛� + + var addItem = new WmsControlRuleDetail() + { + CreatedTime = SysHelper.GetNowTime(), + CreatedUserId = SysHelper.GetUserId(), + CreatedUserName = SysHelper.GetUserName(), + UpdatedTime = SysHelper.GetNowTime(), + UpdatedUserId = SysHelper.GetUserId(), + UpdatedUserName = SysHelper.GetUserName() + }; + #region 瀹氫箟鍙橀噺 + var _RuleName = "";//鎺у埗灞炴�ц鍒欏悕绉� + var _MaxImumqty = "";//鏈�楂樺簱瀛� + var _MinImumqty = "";//鏈�浣庡簱瀛� + var _SafeImumqty = "";//瀹夊叏搴撳瓨 + var _MinStorageAge = "";//鏈�灏忓簱榫� + var _MaxStorageAge = "";//鏈�澶у簱榫� + var _IsNotChek = "";//鏄惁鍏嶆 + var _ShelfLifeDays = "";//淇濊川鏈熷ぉ鏁� + var _IsDisabled = "";//鏄惁绂佺敤 + #endregion + + + #region 鍙栧�� + _RuleName = row["鎺у埗灞炴�ц鍒欏悕绉�"]?.ToString(); + _MaxImumqty = row["鏈�楂樺簱瀛�"]?.ToString(); + _MinImumqty = row["鏈�浣庡簱瀛�"]?.ToString(); + _SafeImumqty = row["瀹夊叏搴撳瓨"]?.ToString(); + _MinStorageAge = row["鏈�灏忓簱榫�"]?.ToString(); + _MaxStorageAge = row["鏈�澶у簱榫�"]?.ToString(); + _IsNotChek = row["鏄惁鍏嶆"]?.ToString(); + _ShelfLifeDays = row["淇濊川鏈熷ぉ鏁�"]?.ToString(); + _IsDisabled = row["鏄惁绂佺敤"]?.ToString(); + #endregion #region 楠岃瘉 if (string.IsNullOrEmpty(_RuleName)) - { - throw Oops.Oh($"绗瑊index}琛孾鎺у埗灞炴�ц鍒欏悕绉癩{_RuleName}涓嶈兘涓虹┖锛�"); - } - - if(!string.IsNullOrEmpty(_RuleName)) - { - addItem.RuleName = (string)_RuleName; - } - if(!string.IsNullOrEmpty(_MaxImumqty)) - { - if (!decimal.TryParse(_MaxImumqty, out decimal outMaxImumqty)&&!string.IsNullOrEmpty(_MaxImumqty)) - { - throw Oops.Oh($"绗瑊index}琛孾鏈�楂樺簱瀛榏{_MaxImumqty}鍊间笉姝g‘锛�"); - } - if (outMaxImumqty <= 0&&!string.IsNullOrEmpty(_MaxImumqty)) - { - throw Oops.Oh($"绗瑊index}琛孾鏈�楂樺簱瀛榏{_MaxImumqty}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); - } - else - { - addItem.MaxImumqty = outMaxImumqty; - } - - } - if(!string.IsNullOrEmpty(_MinImumqty)) - { - if (!decimal.TryParse(_MinImumqty, out decimal outMinImumqty)&&!string.IsNullOrEmpty(_MinImumqty)) - { - throw Oops.Oh($"绗瑊index}琛孾鏈�浣庡簱瀛榏{_MinImumqty}鍊间笉姝g‘锛�"); - } - if (outMinImumqty <= 0&&!string.IsNullOrEmpty(_MinImumqty)) - { - throw Oops.Oh($"绗瑊index}琛孾鏈�浣庡簱瀛榏{_MinImumqty}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); - } - else - { - addItem.MinImumqty = outMinImumqty; - } - - } - if(!string.IsNullOrEmpty(_SafeImumqty)) - { - if (!decimal.TryParse(_SafeImumqty, out decimal outSafeImumqty)&&!string.IsNullOrEmpty(_SafeImumqty)) - { - throw Oops.Oh($"绗瑊index}琛孾瀹夊叏搴撳瓨]{_SafeImumqty}鍊间笉姝g‘锛�"); - } - if (outSafeImumqty <= 0&&!string.IsNullOrEmpty(_SafeImumqty)) - { - throw Oops.Oh($"绗瑊index}琛孾瀹夊叏搴撳瓨]{_SafeImumqty}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); - } - else - { - addItem.SafeImumqty = outSafeImumqty; - } - - } - if(!string.IsNullOrEmpty(_MinStorageAge)) - { - if (!decimal.TryParse(_MinStorageAge, out decimal outMinStorageAge)&&!string.IsNullOrEmpty(_MinStorageAge)) - { - throw Oops.Oh($"绗瑊index}琛孾鏈�灏忓簱榫刔{_MinStorageAge}鍊间笉姝g‘锛�"); - } - if (outMinStorageAge <= 0&&!string.IsNullOrEmpty(_MinStorageAge)) - { - throw Oops.Oh($"绗瑊index}琛孾鏈�灏忓簱榫刔{_MinStorageAge}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); - } - else - { - addItem.MinStorageAge = outMinStorageAge; - } - - } - if(!string.IsNullOrEmpty(_MaxStorageAge)) - { - if (!decimal.TryParse(_MaxStorageAge, out decimal outMaxStorageAge)&&!string.IsNullOrEmpty(_MaxStorageAge)) - { - throw Oops.Oh($"绗瑊index}琛孾鏈�澶у簱榫刔{_MaxStorageAge}鍊间笉姝g‘锛�"); - } - if (outMaxStorageAge <= 0&&!string.IsNullOrEmpty(_MaxStorageAge)) - { - throw Oops.Oh($"绗瑊index}琛孾鏈�澶у簱榫刔{_MaxStorageAge}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); - } - else - { - addItem.MaxStorageAge = outMaxStorageAge; - } - - } - if(!string.IsNullOrEmpty(_IsNotChek)) - { - if(!_IsNotChek.Equals("鏄�") && !_IsNotChek.Equals("鍚�")) - { - throw Oops.Oh($"绗瑊index}琛孾鏄惁鍏嶆]{_IsNotChek}鍊间笉姝g‘锛�"); - } - else - { - bool outIsNotChek = _IsNotChek.Equals("鏄�") ? true : false; - addItem.IsNotChek = outIsNotChek; - } - } - - if(!string.IsNullOrEmpty(_ShelfLifeDays)) - { - if (!decimal.TryParse(_ShelfLifeDays, out decimal outShelfLifeDays)&&!string.IsNullOrEmpty(_ShelfLifeDays)) - { - throw Oops.Oh($"绗瑊index}琛孾淇濊川鏈熷ぉ鏁癩{_ShelfLifeDays}鍊间笉姝g‘锛�"); - } - if (outShelfLifeDays <= 0&&!string.IsNullOrEmpty(_ShelfLifeDays)) - { - throw Oops.Oh($"绗瑊index}琛孾淇濊川鏈熷ぉ鏁癩{_ShelfLifeDays}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); - } - else - { - addItem.ShelfLifeDays = outShelfLifeDays; - } - - } - if(!string.IsNullOrEmpty(_IsDisabled)) - { - if(!_IsDisabled.Equals("鏄�") && !_IsDisabled.Equals("鍚�")) - { - throw Oops.Oh($"绗瑊index}琛孾鏄惁绂佺敤]{_IsDisabled}鍊间笉姝g‘锛�"); - } - else - { - bool outIsDisabled = _IsDisabled.Equals("鏄�") ? true : false; - addItem.IsDisabled = outIsDisabled; - } - } + { + throw Oops.Oh($"绗瑊index}琛孾鎺у埗灞炴�ц鍒欏悕绉癩{_RuleName}涓嶈兘涓虹┖锛�"); + } + + if (!string.IsNullOrEmpty(_RuleName)) + { + addItem.RuleName = (string)_RuleName; + } + if (!string.IsNullOrEmpty(_MaxImumqty)) + { + if (!decimal.TryParse(_MaxImumqty, out decimal outMaxImumqty) && !string.IsNullOrEmpty(_MaxImumqty)) + { + throw Oops.Oh($"绗瑊index}琛孾鏈�楂樺簱瀛榏{_MaxImumqty}鍊间笉姝g‘锛�"); + } + if (outMaxImumqty <= 0 && !string.IsNullOrEmpty(_MaxImumqty)) + { + throw Oops.Oh($"绗瑊index}琛孾鏈�楂樺簱瀛榏{_MaxImumqty}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); + } + else + { + addItem.MaxImumqty = outMaxImumqty; + } + + } + if (!string.IsNullOrEmpty(_MinImumqty)) + { + if (!decimal.TryParse(_MinImumqty, out decimal outMinImumqty) && !string.IsNullOrEmpty(_MinImumqty)) + { + throw Oops.Oh($"绗瑊index}琛孾鏈�浣庡簱瀛榏{_MinImumqty}鍊间笉姝g‘锛�"); + } + if (outMinImumqty <= 0 && !string.IsNullOrEmpty(_MinImumqty)) + { + throw Oops.Oh($"绗瑊index}琛孾鏈�浣庡簱瀛榏{_MinImumqty}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); + } + else + { + addItem.MinImumqty = outMinImumqty; + } + + } + if (!string.IsNullOrEmpty(_SafeImumqty)) + { + if (!decimal.TryParse(_SafeImumqty, out decimal outSafeImumqty) && !string.IsNullOrEmpty(_SafeImumqty)) + { + throw Oops.Oh($"绗瑊index}琛孾瀹夊叏搴撳瓨]{_SafeImumqty}鍊间笉姝g‘锛�"); + } + if (outSafeImumqty <= 0 && !string.IsNullOrEmpty(_SafeImumqty)) + { + throw Oops.Oh($"绗瑊index}琛孾瀹夊叏搴撳瓨]{_SafeImumqty}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); + } + else + { + addItem.SafeImumqty = outSafeImumqty; + } + + } + if (!string.IsNullOrEmpty(_MinStorageAge)) + { + if (!decimal.TryParse(_MinStorageAge, out decimal outMinStorageAge) && !string.IsNullOrEmpty(_MinStorageAge)) + { + throw Oops.Oh($"绗瑊index}琛孾鏈�灏忓簱榫刔{_MinStorageAge}鍊间笉姝g‘锛�"); + } + if (outMinStorageAge <= 0 && !string.IsNullOrEmpty(_MinStorageAge)) + { + throw Oops.Oh($"绗瑊index}琛孾鏈�灏忓簱榫刔{_MinStorageAge}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); + } + else + { + addItem.MinStorageAge = outMinStorageAge; + } + + } + if (!string.IsNullOrEmpty(_MaxStorageAge)) + { + if (!decimal.TryParse(_MaxStorageAge, out decimal outMaxStorageAge) && !string.IsNullOrEmpty(_MaxStorageAge)) + { + throw Oops.Oh($"绗瑊index}琛孾鏈�澶у簱榫刔{_MaxStorageAge}鍊间笉姝g‘锛�"); + } + if (outMaxStorageAge <= 0 && !string.IsNullOrEmpty(_MaxStorageAge)) + { + throw Oops.Oh($"绗瑊index}琛孾鏈�澶у簱榫刔{_MaxStorageAge}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); + } + else + { + addItem.MaxStorageAge = outMaxStorageAge; + } + + } + if (!string.IsNullOrEmpty(_IsNotChek)) + { + if (!_IsNotChek.Equals("鏄�") && !_IsNotChek.Equals("鍚�")) + { + throw Oops.Oh($"绗瑊index}琛孾鏄惁鍏嶆]{_IsNotChek}鍊间笉姝g‘锛�"); + } + else + { + bool outIsNotChek = _IsNotChek.Equals("鏄�") ? true : false; + addItem.IsNotChek = outIsNotChek; + } + } + + if (!string.IsNullOrEmpty(_ShelfLifeDays)) + { + if (!decimal.TryParse(_ShelfLifeDays, out decimal outShelfLifeDays) && !string.IsNullOrEmpty(_ShelfLifeDays)) + { + throw Oops.Oh($"绗瑊index}琛孾淇濊川鏈熷ぉ鏁癩{_ShelfLifeDays}鍊间笉姝g‘锛�"); + } + if (outShelfLifeDays <= 0 && !string.IsNullOrEmpty(_ShelfLifeDays)) + { + throw Oops.Oh($"绗瑊index}琛孾淇濊川鏈熷ぉ鏁癩{_ShelfLifeDays}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); + } + else + { + addItem.ShelfLifeDays = outShelfLifeDays; + } + + } + if (!string.IsNullOrEmpty(_IsDisabled)) + { + if (!_IsDisabled.Equals("鏄�") && !_IsDisabled.Equals("鍚�")) + { + throw Oops.Oh($"绗瑊index}琛孾鏄惁绂佺敤]{_IsDisabled}鍊间笉姝g‘锛�"); + } + else + { + bool outIsDisabled = _IsDisabled.Equals("鏄�") ? true : false; + addItem.IsDisabled = outIsDisabled; + } + } #endregion @@ -410,9 +410,9 @@ addItem.RuleCode = Yitter.IdGenerator.YitIdHelper.NextId().ToString();//TODO 瑕佽皟鐢ㄧ敓鎴� 缂栧彿鐨勬柟娉� 鍏堢敤闆姳ID details.Add(addItem); } - //楠岄噸 - await CheckExisitForImport(details); - + //楠岄噸 + await CheckExisitForImport(details); + return details; } @@ -439,78 +439,80 @@ /// <param name="input"></param> /// <param name="isEdit"></param> /// <returns></returns> - private async Task CheckExisit( WmsControlRuleDetail input,bool isEdit=false) + private async Task CheckExisit(WmsControlRuleDetail input, bool isEdit = false) { - - - bool isExist = false; - if (!isEdit)//鏂板 - { - //鏁版嵁鏄惁瀛樺湪閲嶅 - isExist = await _wmsControlRuleDetailRep.AnyAsync(u => - u.RuleName.Equals(input.RuleName) - ,false); - } - else//缂栬緫 - { - - - //褰撳墠缂栬緫鏁版嵁浠ュ鏄惁瀛樺湪閲嶅 - isExist = await _wmsControlRuleDetailRep.AnyAsync(u => - u.Id != input.Id - &&u.RuleName.Equals(input.RuleName) - ,false); - } - - + + bool isExist = false; + if (!isEdit)//鏂板 + { + //鏁版嵁鏄惁瀛樺湪閲嶅 + isExist = await _wmsControlRuleDetailRep.AnyAsync(u => + u.RuleName.Equals(input.RuleName) + , false); + } + else//缂栬緫 + { + + + + //褰撳墠缂栬緫鏁版嵁浠ュ鏄惁瀛樺湪閲嶅 + isExist = await _wmsControlRuleDetailRep.AnyAsync(u => + u.Id != input.Id + && u.RuleName.Equals(input.RuleName) + , false); + } + + if (isExist) throw Oops.Oh(ErrorCode.E0001); - } - + } + /// <summary> /// 鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁鏄惁宸插瓨鍦�-瀵煎叆鏃堕獙璇� /// </summary> /// <param name="inputs"></param> /// <returns></returns> private async Task CheckExisitForImport(List<WmsControlRuleDetail> inputs) - { + { //鏍规嵁鑱斿悎涓婚敭楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹� - if (inputs?.Count <= 0) - { - throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖"); - } - //鏁版嵁鏄惁閲嶅 - var existExcelItem = inputs.GroupBy(g => new { - g.RuleName - }) - .Where(g => g.Count() > 1) - .Select(s => new { - s.Key.RuleName - }).FirstOrDefault(); - if (existExcelItem != null) - { - var item= existExcelItem.Adapt<WmsControlRuleDetail>(); - throw Oops.Oh($"瀵煎叆鐨勮〃鏍间腑,鎺у埗灞炴�ц鍒欏悕绉癧{item.RuleName}]宸插瓨鍦�"); - } - + if (inputs?.Count <= 0) + { + throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖"); + } + //鏁版嵁鏄惁閲嶅 + var existExcelItem = inputs.GroupBy(g => new + { + g.RuleName + }) + .Where(g => g.Count() > 1) + .Select(s => new + { + s.Key.RuleName + }).FirstOrDefault(); + if (existExcelItem != null) + { + var item = existExcelItem.Adapt<WmsControlRuleDetail>(); + throw Oops.Oh($"瀵煎叆鐨勮〃鏍间腑,鎺у埗灞炴�ц鍒欏悕绉癧{item.RuleName}]宸插瓨鍦�"); + } - //鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁搴撲腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹� - var existDBItem = await _wmsControlRuleDetailRep.DetachedEntities.FirstOrDefaultAsync(w=> - inputs.Select(s=>"" - +s.RuleName - ) - .Contains("" - +w.RuleName - )); - if (existDBItem != null) - { - var item= existDBItem.Adapt<WmsControlRuleDetail>(); - throw Oops.Oh($"绯荤粺涓�,鎺у埗灞炴�ц鍒欏悕绉癧{item.RuleName}]宸插瓨鍦�"); - } + + //鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁搴撲腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹� + var existDBItem = await _wmsControlRuleDetailRep.DetachedEntities.FirstOrDefaultAsync(w => + inputs.Select(s => "" + + s.RuleName + ) + .Contains("" + + w.RuleName + )); + if (existDBItem != null) + { + var item = existDBItem.Adapt<WmsControlRuleDetail>(); + throw Oops.Oh($"绯荤粺涓�,鎺у埗灞炴�ц鍒欏悕绉癧{item.RuleName}]宸插瓨鍦�"); + } } #endregion diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs index 95ef2c7..a6c6aec 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs @@ -458,4 +458,5 @@ public List<BaseCustomerInput> BaseCustomerList { get; set; } } + } diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialOutput.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialOutput.cs index 8b40223..a9f7638 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialOutput.cs +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialOutput.cs @@ -139,4 +139,31 @@ public string UpdatedUserName { get; set; } } + + + /// <summary> + /// 鐗╂枡涓氬姟淇℃伅瀹炰綋鍑哄弬--鍖呭惈鐗╂枡銆佺墿鏂欏鎴峰叧绯汇�佹帶鍒跺睘鎬с�佹浛浠e搧 + /// </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; } + } } diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/IWmsMaterialService.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/IWmsMaterialService.cs index 2b885b8..ad86d92 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/IWmsMaterialService.cs +++ b/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); diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs index 7e2b3d6..7b882f7 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs +++ b/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) { diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsControlRuleDetail.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsControlRuleDetail.cs index 89903e4..9f94880 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsControlRuleDetail.cs +++ b/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> -- Gitblit v1.9.3