From 1d5806bb69891d4045438b12c15cd42cc937e5a2 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周三, 24 4月 2024 11:14:24 +0800 Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/iWare_RawMaterialWarehouse --- iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/Dto/WmsMaterialCustomerInput.cs | 211 +++++ iWare_RawMaterialWarehouse_Web/src/api/modular/main/WmsBase/WmsMaterialCustomerManage.js | 114 ++ iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/WmsMaterialCustomerService.cs | 412 ++++++++++ iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingInput.cs | 14 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs | 26 iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsContainerPackaging.cs | 83 ++ iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/addFormContainerPackaging.vue | 6 iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/addForm.vue | 103 ++ iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Enum/Wms/WmsMaterialEnum.cs | 6 iWare_RawMaterialWarehouse_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/WmsMaterialCustomerImport.xlsx | 0 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/Dto/WmsMaterialInput.cs | 27 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/IWmsMaterialService.cs | 2 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/IWmsMaterialCustomerService.cs | 22 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/Dto/WmsMaterialCustomerOutput.cs | 72 + iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/excelForm.vue | 181 ++++ iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/index.vue | 523 +++++++++++++ iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsMaterialCustomer.cs | 104 +- iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/editForm.vue | 123 +++ iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue | 38 iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addForm.vue | 175 ++-- iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs | 18 iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addFormWmsSubstituteGood.vue | 22 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/Map/WmsMaterialCustomerMapper.cs | 18 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingOutput.cs | 2 24 files changed, 2,118 insertions(+), 184 deletions(-) diff --git a/iWare_RawMaterialWarehouse_Web/src/api/modular/main/WmsBase/WmsMaterialCustomerManage.js b/iWare_RawMaterialWarehouse_Web/src/api/modular/main/WmsBase/WmsMaterialCustomerManage.js new file mode 100644 index 0000000..9a4af03 --- /dev/null +++ b/iWare_RawMaterialWarehouse_Web/src/api/modular/main/WmsBase/WmsMaterialCustomerManage.js @@ -0,0 +1,114 @@ +锘縤mport { axios } from '@/utils/request' + +/** + * 鏌ヨ鐗╂枡瀹㈡埛鍏宠仈淇℃伅 + * + * @author ly + */ +export function WmsMaterialCustomerPage (parameter) { + return axios({ + url: '/WmsMaterialCustomer/page', + method: 'get', + params: parameter + }) +} + +/** + * 鐗╂枡瀹㈡埛鍏宠仈淇℃伅鍒楄〃 + * + * @author ly + */ +export function WmsMaterialCustomerList (parameter) { + return axios({ + url: '/WmsMaterialCustomer/list', + method: 'get', + params: parameter + }) +} + +/** + * 娣诲姞鐗╂枡瀹㈡埛鍏宠仈淇℃伅 + * + * @author ly + */ +export function WmsMaterialCustomerAdd (parameter) { + return axios({ + url: '/WmsMaterialCustomer/add', + method: 'post', + data: parameter + }) +} + +/** + * 缂栬緫鐗╂枡瀹㈡埛鍏宠仈淇℃伅 + * + * @author ly + */ +export function WmsMaterialCustomerEdit (parameter) { + return axios({ + url: '/WmsMaterialCustomer/edit', + method: 'post', + data: parameter + }) +} + +/** + * 鍒犻櫎鐗╂枡瀹㈡埛鍏宠仈淇℃伅 + * + * @author ly + */ +export function WmsMaterialCustomerDelete (parameter) { + return axios({ + url: '/WmsMaterialCustomer/delete', + method: 'post', + data: parameter + }) +} + + +/** + * 瀵煎嚭鐗╂枡瀹㈡埛鍏宠仈淇℃伅鐨凟xcel鏂囦欢 + * + * @author ly + */ +export function WmsMaterialCustomerToExcel (parameter) { + return axios({ + url: '/WmsMaterialCustomer/toExcel', + method: 'get', + params: parameter, + responseType: 'blob' + }) +} + +/** + * 瀵煎叆鐗╂枡瀹㈡埛鍏宠仈淇℃伅鐨凟xcel鏂囦欢 + * + * @author ly + */ +export function WmsMaterialCustomerImportExcel (data, parameter) { + return axios({ + url: '/WmsMaterialCustomer/importExcel', + method: 'post', + data: data, + params: parameter + + }) +} + + +/** + * 涓嬭浇鐗╂枡瀹㈡埛鍏宠仈淇℃伅鐨凟xcel瀵煎叆妯℃澘 + * + * @author ly + */ +export function WmsMaterialCustomerDownloadExcelTemplate(parameter) { + return axios({ + url: '/WmsMaterialCustomer/downloadExcelTemplate', + method: 'get', + params: parameter, + responseType: 'blob' + }) +} + + + diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue index 0abf95b..7e52bb9 100644 --- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue +++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue @@ -1,17 +1,11 @@ <template> - <a-modal - title="鏂板鐗╂枡淇℃伅" - :width="900" - :visible="visible" - :confirmLoading="confirmLoading" - @ok="handleSubmit" - @cancel="handleCancel" - > + <a-modal title="鏂板鐗╂枡淇℃伅" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" + @cancel="handleCancel"> <a-spin :spinning="confirmLoading"> <!-- tab @change="callback"--> - <a-tabs default-active-key="1" > + <a-tabs default-active-key="1"> <a-tab-pane key="1" tab="鍩烘湰淇℃伅"> - <add-form ref="addForm" @ok="handleOk" /> + <add-form ref="addForm" @ok="handleOk" /> </a-tab-pane> <a-tab-pane key="2" tab="鎺у埗灞炴��" force-render> <add-control-rule ref="WmsControlRule" @ok="handleOk" /> @@ -73,7 +67,7 @@ } }, methods: { - handleOk(){ + handleOk() { }, // 鍒濆鍖栨柟娉� @@ -125,7 +119,27 @@ }) values.stationNameParameter = values.stationNameParameterArr.join(',') } - WmsMaterialAdd(values) + console.log(6666666666666) + console.log() + console.log(6666666666666 + '鎺у埗灞炴��') + console.log(this.$refs.WmsControlRule.selectedRows) + var ControlRuleld = this.$refs.WmsControlRule.selectedRows[0].id; + + console.log(6666666666666 + '鏇夸唬鍝�') + console.log(this.$refs.addFormWmsSubstituteGood.list) + + console.log(6666666666666 + '瀹㈡埛妗f闆嗗悎') + console.log(this.$refs.addFormBaseCustomer.list) + + var param = { + value1: values, + ControlRuleld: ControlRuleld, //鎺у埗灞炴�� + BaseCustomerList: this.$refs.addFormBaseCustomer.list, //瀹㈡埛妗f闆嗗悎 + SubstituteGoodLis: this.$refs.addFormWmsSubstituteGood.list, //鏇夸唬鍝� + value5: {}, + value6: {}, + } + WmsMaterialAdd(param) .then(res => { if (res.success) { this.$message.success('鏂板鎴愬姛') diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/addFormContainerPackaging.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/addFormContainerPackaging.vue index 74d7399..880175d 100644 --- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/addFormContainerPackaging.vue +++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/addFormContainerPackaging.vue @@ -16,17 +16,17 @@ }}</a-tag> </span> - <span slot="action" slot-scope="text, record"> + <!-- <span slot="action" slot-scope="text, record"> <a-popconfirm v-if="hasPerm('BaseCustomer:delete')" placement="topRight" title="纭鍒犻櫎锛�" @confirm="() => itemDelete(record, index)"> <a>鍒犻櫎</a> </a-popconfirm> - </span> + </span> --> </a-table> </div> </div> - <p @click="visible = true">鏂板琛�</p> + <!-- <p @click="visible = true">鏂板琛�</p> --> <a-modal title="鍖呰鍏崇郴" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" @cancel="handleCancel"> diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addForm.vue index 23359a0..dd3f5fc 100644 --- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addForm.vue +++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addForm.vue @@ -1,5 +1,5 @@ 锘�<template> - <a-modal + <a-modal title="鏂板鏇夸唬鍝佺鐞�" :width="900" :visible="visible" @@ -7,97 +7,106 @@ @ok="handleSubmit" @cancel="handleCancel"> <a-spin :spinning="confirmLoading"> - <a-form :form="form"> - <a-form-item label="鏇夸唬缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> - <a-input placeholder="璇疯緭鍏ユ浛浠g紪鍙�" v-decorator="['substituteCode', {rules: [{required: true, message: '璇疯緭鍏ユ浛浠g紪鍙凤紒'}]}]" /> - </a-form-item> - <a-form-item label="鐗╂枡缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> - <a-input placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" v-decorator="['materialCode', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑紪鍙凤紒'}]}]" /> - </a-form-item> - <a-form-item label="鐗╂枡鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> - <a-input placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" v-decorator="['materialName', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欏悕绉帮紒'}]}]" /> - </a-form-item> - <a-form-item label="鏇夸唬鍝佺墿鏂欑紪鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> - <a-input placeholder="璇疯緭鍏ユ浛浠e搧鐗╂枡缂栧彿" v-decorator="['substituteMaterialCode', {rules: [{required: true, message: '璇疯緭鍏ユ浛浠e搧鐗╂枡缂栧彿锛�'}]}]" /> - </a-form-item> - <a-form-item label="鏇夸唬鍝佺墿鏂欏悕绉�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> - <a-input placeholder="璇疯緭鍏ユ浛浠e搧鐗╂枡鍚嶇О" v-decorator="['substituteMaterialName', {rules: [{required: true, message: '璇疯緭鍏ユ浛浠e搧鐗╂枡鍚嶇О锛�'}]}]" /> - </a-form-item> - <a-form-item label="鏇夸唬娆″簭" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> - <a-input-number placeholder="璇疯緭鍏ユ浛浠f搴�" style="width: 100%" v-decorator="['substituteIndex', {rules: [{required: true, message: '璇疯緭鍏ユ浛浠f搴忥紒'}]}]" /> - </a-form-item> - <a-form-item label="鏄惁绂佺敤" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + + </a-spin> <a-form :form="form"> + <a-form-item label="鏇夸唬缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ユ浛浠g紪鍙�" + v-decorator="['substituteCode', { rules: [{ required: true, message: '璇疯緭鍏ユ浛浠g紪鍙凤紒' }] }]" /> + </a-form-item> + <a-form-item label="鐗╂枡缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" v-decorator="['materialCode', { rules: [{ required: true, message: '璇疯緭鍏ョ墿鏂欑紪鍙凤紒' }] }]" /> + </a-form-item> + <a-form-item label="鐗╂枡鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" v-decorator="['materialName', { rules: [{ required: true, message: '璇疯緭鍏ョ墿鏂欏悕绉帮紒' }] }]" /> + </a-form-item> + <a-form-item label="鏇夸唬鍝佺墿鏂欑紪鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ユ浛浠e搧鐗╂枡缂栧彿" + v-decorator="['substituteMaterialCode', { rules: [{ required: true, message: '璇疯緭鍏ユ浛浠e搧鐗╂枡缂栧彿锛�' }] }]" /> + </a-form-item> + <a-form-item label="鏇夸唬鍝佺墿鏂欏悕绉�" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ユ浛浠e搧鐗╂枡鍚嶇О" + v-decorator="['substituteMaterialName', { rules: [{ required: true, message: '璇疯緭鍏ユ浛浠e搧鐗╂枡鍚嶇О锛�' }] }]" /> + </a-form-item> + <a-form-item label="鏇夸唬娆″簭" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input-number placeholder="璇疯緭鍏ユ浛浠f搴�" style="width: 100%" + v-decorator="['substituteIndex', { rules: [{ required: true, message: '璇疯緭鍏ユ浛浠f搴忥紒' }] }]" /> + </a-form-item> + <!-- <a-form-item label="鏄惁绂佺敤" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> <a-switch v-decorator="['isDisabled',{rules: [{ required: true, message: '璇烽�夋嫨鏄惁绂佺敤锛�' }], valuePropName: 'checked'}]" /> - </a-form-item> - </a-form> - </a-spin> - </a-modal> + </a-form-item> --> + </a-form> + </a-modal> </template> <script> - import moment from 'moment' - import { +import moment from 'moment' +import { WmsSubstituteGoodAdd - } from '@/api/modular/main/WmsBase/WmsSubstituteGoodManage' - export default { - data () { - return { - labelCol: { - xs: { span: 24 }, - sm: { span: 5 } +} from '@/api/modular/main/WmsBase/WmsSubstituteGoodManage' +export default { + data() { + return { + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 15 } + }, + visible: false, + confirmLoading: false, + form: this.$form.createForm(this) + } }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 15 } - }, - visible: false, - confirmLoading: false, - form: this.$form.createForm(this) - } - }, - methods: { - moment, - // 鍒濆鍖栨柟娉� - add (record) { - this.visible = true - this.$nextTick(() => { + methods: { + moment, + // 鍒濆鍖栨柟娉� + add(record) { + this.visible = true + this.$nextTick(() => { - }); - }, - /** - * 鎻愪氦琛ㄥ崟 - */ - handleSubmit () { - const { form: { validateFields } } = this - this.confirmLoading = true - validateFields((errors, values) => { - if (!errors) { - for (const key in values) { - if (typeof (values[key]) === 'object') { - values[key] = JSON.stringify(values[key]) - } + }); + }, + /** + * 鎻愪氦琛ㄥ崟 + */ + handleSubmit() { + const { form: { validateFields } } = this + this.confirmLoading = true + validateFields((errors, values) => { + if (!errors) { + for (const key in values) { + if (typeof (values[key]) === 'object') { + values[key] = JSON.stringify(values[key]) } - WmsSubstituteGoodAdd(values).then((res) => { - if (res.success) { - this.$message.success('鏂板鎴愬姛') - this.confirmLoading = false - this.$emit('ok', values) - this.handleCancel() - } else { - this.$message.error('鏂板澶辫触锛�' + JSON.stringify(res.message)) - } - }).finally((res) => { - this.confirmLoading = false - }) - } else { - this.confirmLoading = false } - }) - }, - handleCancel () { - this.form.resetFields() - this.visible = false - } + this.confirmLoading = false + this.$emit('ok', values) + this.handleCancel() + + + // WmsSubstituteGoodAdd(values).then((res) => { + // if (res.success) { + // this.$message.success('鏂板鎴愬姛') + // this.confirmLoading = false + // this.$emit('ok', values) + // this.handleCancel() + // } else { + // this.$message.error('鏂板澶辫触锛�' + JSON.stringify(res.message)) + // } + // }).finally((res) => { + // this.confirmLoading = false + // }) + } else { + this.confirmLoading = false + } + }) + }, + handleCancel() { + this.form.resetFields() + this.visible = false } } +} </script> diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addFormWmsSubstituteGood.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addFormWmsSubstituteGood.vue index a7029c1..8f87c49 100644 --- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addFormWmsSubstituteGood.vue +++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addFormWmsSubstituteGood.vue @@ -25,20 +25,17 @@ </div> </div> - <p @click="visible = true">鏂板琛�</p> + <p @click="$refs.showList.add()">鏂板琛�</p> - <a-modal title="鏇夸唬鍝佸垪琛�" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" - @cancel="handleCancel"> - <show-list ref="showList" @ok="handleOk" /> - <!-- <a-spin :spinning="confirmLoading"></a-spin> --> - </a-modal> + <show-list ref="showList" @ok="handleSubmit" /> + </div> </div> </template> <script> import { WmsOrderRukuDetail } from '@/api/modular/main/WmsOrderManage' -import showList from './index.vue' +import showList from './addForm.vue' export default { name: 'wmsOrderRukuManagementDetailDrawer', @@ -258,9 +255,11 @@ this.list = [] }, handleOk(param) { - this.list = param + }, - handleSubmit() { + handleSubmit(item) { + alert(1) + this.list.push(item) this.visible = false }, handleCancel() { @@ -268,6 +267,11 @@ }, itemDelete(record, index) { this.list.splice(index, 1) + }, + addLine(){ + this.list.push({ + + }) } } } diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/addForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/addForm.vue new file mode 100644 index 0000000..01be2bf --- /dev/null +++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/addForm.vue @@ -0,0 +1,103 @@ +锘�<template> + <a-modal + title="鏂板鐗╂枡瀹㈡埛鍏宠仈淇℃伅" + :width="900" + :visible="visible" + :confirmLoading="confirmLoading" + @ok="handleSubmit" + @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="鐗╂枡ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂橧D" v-decorator="['materialId', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂橧D锛�'}]}]" /> + </a-form-item> + <a-form-item label="鐗╂枡缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" v-decorator="['materialCode', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑紪鍙凤紒'}]}]" /> + </a-form-item> + <a-form-item label="鐗╂枡鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" v-decorator="['materialName', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欏悕绉帮紒'}]}]" /> + </a-form-item> + <a-form-item label="瀹㈡埛ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ュ鎴稩D" v-decorator="['custId']" /> + </a-form-item> + <a-form-item label="瀹㈡埛缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ュ鎴风紪鍙�" v-decorator="['custCode']" /> + </a-form-item> + <a-form-item label="瀹㈡埛鑻辨枃鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ュ鎴疯嫳鏂囧悕绉�" v-decorator="['custEnglishName']" /> + </a-form-item> + <a-form-item label="瀹㈡埛涓枃鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ュ鎴蜂腑鏂囧悕绉�" v-decorator="['custChinaName']" /> + </a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> + +<script> + import moment from 'moment' + import { + WmsMaterialCustomerAdd + } from '@/api/modular/main/WmsBase/WmsMaterialCustomerManage' + export default { + data () { + return { + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 15 } + }, + visible: false, + confirmLoading: false, + form: this.$form.createForm(this) + } + }, + methods: { + moment, + // 鍒濆鍖栨柟娉� + add (record) { + this.visible = true + this.$nextTick(() => { + + }); + }, + /** + * 鎻愪氦琛ㄥ崟 + */ + handleSubmit () { + const { form: { validateFields } } = this + this.confirmLoading = true + validateFields((errors, values) => { + if (!errors) { + for (const key in values) { + if (typeof (values[key]) === 'object') { + values[key] = JSON.stringify(values[key]) + } + } + WmsMaterialCustomerAdd(values).then((res) => { + if (res.success) { + this.$message.success('鏂板鎴愬姛') + this.confirmLoading = false + this.$emit('ok', values) + this.handleCancel() + } else { + this.$message.error('鏂板澶辫触锛�' + JSON.stringify(res.message)) + } + }).finally((res) => { + this.confirmLoading = false + }) + } else { + this.confirmLoading = false + } + }) + }, + handleCancel () { + this.form.resetFields() + this.visible = false + } + } + } +</script> diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/editForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/editForm.vue new file mode 100644 index 0000000..aeb5542 --- /dev/null +++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/editForm.vue @@ -0,0 +1,123 @@ +锘�<template> + <a-modal + title="缂栬緫鐗╂枡瀹㈡埛鍏宠仈淇℃伅" + :width="900" + :visible="visible" + :confirmLoading="confirmLoading" + @ok="handleSubmit" + @cancel="handleCancel"> + <a-spin :spinning="confirmLoading"> + <a-form :form="form"> + <a-form-item label="鐗╂枡ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂橧D" v-decorator="['materialId', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂橧D锛�'}]}]" /> + </a-form-item> + <a-form-item label="鐗╂枡缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" v-decorator="['materialCode', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑紪鍙凤紒'}]}]" /> + </a-form-item> + <a-form-item label="鐗╂枡鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" v-decorator="['materialName', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欏悕绉帮紒'}]}]" /> + </a-form-item> + <a-form-item label="瀹㈡埛ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ュ鎴稩D" v-decorator="['custId']" /> + </a-form-item> + <a-form-item label="瀹㈡埛缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ュ鎴风紪鍙�" v-decorator="['custCode']" /> + </a-form-item> + <a-form-item label="瀹㈡埛鑻辨枃鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ュ鎴疯嫳鏂囧悕绉�" v-decorator="['custEnglishName']" /> + </a-form-item> + <a-form-item label="瀹㈡埛涓枃鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> + <a-input placeholder="璇疯緭鍏ュ鎴蜂腑鏂囧悕绉�" v-decorator="['custChinaName']" /> + </a-form-item> + <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item> + </a-form> + </a-spin> + </a-modal> +</template> + +<script> +import moment from 'moment' + import { + WmsMaterialCustomerEdit + } from '@/api/modular/main/WmsBase/WmsMaterialCustomerManage' + export default { + data () { + return { + Id: 0, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 15 } + }, + record: {}, + visible: false, + confirmLoading: false, + form: this.$form.createForm(this) + } + }, + methods: { + moment, + // 鍒濆鍖栨柟娉� + edit (record) { + this.visible = true; + this.Id = record.id; + this.$nextTick(() => { + }); + //娣卞害鎷疯礉 绉婚櫎VUE鐨勭洃鍚紝闃叉INDEX椤甸潰鍊煎彉鍔� + this.record = JSON.parse(JSON.stringify(record)) + this.$nextTick(() => { + this.form.setFieldsValue( + { + id: record.id, + materialId: record.materialId, + materialCode: record.materialCode, + materialName: record.materialName, + custId: record.custId, + custCode: record.custCode, + custEnglishName: record.custEnglishName, + custChinaName: record.custChinaName + } + ) + }) + }, + handleSubmit () { + const { form: { validateFields } } = this + this.confirmLoading = true + validateFields((errors, values) => { + if (!errors) { + for (const key in values) { + if (values[key] == null) continue + if (typeof (values[key]) === 'object') { + values[key] = JSON.stringify(values[key]) + this.record[key] = values[key] + } else { + this.record[key] = values[key] + } + } + WmsMaterialCustomerEdit(this.record).then((res) => { + if (res.success) { + this.$message.success('缂栬緫鎴愬姛') + this.confirmLoading = false + this.$emit('ok', this.record) + this.handleCancel() + } else { + this.$message.error('缂栬緫澶辫触锛�' + JSON.stringify(res.message)) + } + }).finally((res) => { + this.confirmLoading = false + }) + }else{ + this.confirmLoading = false + } + }); + }, + handleCancel () { + this.form.resetFields() + this.visible = false + } + } + } +</script> diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/excelForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/excelForm.vue new file mode 100644 index 0000000..5952ae7 --- /dev/null +++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/excelForm.vue @@ -0,0 +1,181 @@ +锘�<template> + <a-modal + :width="850" + :destroyOnClose="true" + :visible="visible" + :forceRender="true" + title="鎵归噺瀵煎叆" + cancelText="鍙栨秷涓婁紶" + okText="寮�濮嬩笂浼�" + @cancel="handleCancel" + @ok="handleSubmit"> + <a-spin :spinning="confirmLoading"> + <a-row :span="24"> + <span>璇烽�夋嫨瑕佸鍏ョ殑鏁版嵁鏂囦欢锛圗xcel鏍煎紡锛�</span> + </a-row> + <p></p> + <a-row> + <a-col :span="16"> + <a-upload-dragger accept=".xlsx,.xls" :multiple="false" :customRequest="customRequest" @change="handleChange" :beforeUpload="beforeUpload"> + <a-icon style="font-size: 40px;" type="cloud-upload" /> + </a-upload-dragger> + </a-col> + <!--<a-col :span="8"> + <span>瀵煎叆妯″紡锛�</span> + <a-select + style="width: 130px" + placeholder="璇烽�夋嫨瀵煎叆妯″紡" + v-model="importExcelType"> + <a-select-option + v-for="(item,index) in importExcelTypeData" + :key="index" + :value="item.code">{{ item.name }} + </a-select-option> + </a-select> + </a-col>--> + </a-row> + <a-row :span="24"> + <!--<a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="!detailed"> + 鐐瑰嚮鏌ョ湅鏂囦欢涓婁紶瑕佹眰 + </a-button>--> + <span>銆�</span> + <a-button style="width: 90px;text-align: left;" @click="wmsMaterialCustomerDownloadExcelTemplate" type="link">涓嬭浇瀵煎叆妯℃澘</a-button>锛屽~鍐欏苟涓婁紶 + <span>銆�</span> + <a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="detailed"> + 鏀惰捣 + </a-button> + </a-row> + <a-row v-show="detailed" style="background: #fef4e8; height: 30px;" :span="24"> + <a-breadcrumb> + <a-breadcrumb-item style="line-height: 30px;color: #faad14;margin-left: 18px;">鏂囦欢涓婁紶瑕佹眰</a-breadcrumb-item> + </a-breadcrumb> + </a-row> + <pre v-show="detailed"> + <div v-html="demandText"></div> + </pre> + <a-table v-show="detailed" :columns="columns" :data-source="dataList" :rowKey="(record) => record.processID" :pagination="false"></a-table> + <pre v-show="detailed"> + <div v-html="columnText"></div> + </pre> + </a-spin> + </a-modal> +</template> + +<script> + import { downloadFile, checkFile, parseExcelFieldText, parseDemandText } from '@/utils/util' + + import { WmsMaterialCustomerImportExcel, WmsMaterialCustomerDownloadExcelTemplate} from '@/api/modular/main/WmsBase/WmsMaterialCustomerManage' + import { sysExcelTemplateGetColumnList } from '@/api/modular/system/excelTemplateManage' + export default { + components: { + }, + data() { + return { + visible: false, + detailed: false, + confirmLoading: false, + fileList: [], + importExcelTypeData: [], + importExcelType: '1', + uploadFile: null, + columns: [], + dataList: [], + demandText:'', + columnText: '' + } + }, + methods: { + index() { + this.visible = true; + this.importExcelTypeData = this.$options.filters['dictData']('import_excel_type') + this.demandText = parseDemandText("wmsMaterialCustomerDownloadExcelTemplate") + window.downloadFile = this.wmsMaterialCustomerDownloadExcelTemplate; + this.getTable(); + }, + showDemand() { + this.detailed = !this.detailed; + }, + customRequest(document) { + this.uploadFile = document + }, + getTable() { + sysExcelTemplateGetColumnList({className: "WmsMaterialCustomer"}).then(res => + { + if (res.success) { + this.columns =[]; + this.dataList = [{}]; + res.data.forEach(x => { + this.columns.push({ + dataIndex: x.columnName, + key: x.columnName, + title: x.columnComment + }); + this.dataList[0][x.columnName] = x.isRequired ? "蹇呭~" : "闈炲繀濉�" + }); + this.columnText = parseExcelFieldText(res.data); + } + }); + }, + beforeUpload(fileInfo) { + let res = checkFile(fileInfo, 1073741824, ['.xlsx', '.xls']); + if (!res.success) { + this.$message.warning(res.msg) + return false + } + setTimeout(() => {this.uploadFile.onSuccess(this.uploadFile.file)}, 1000) + }, + handleChange(fileInfo) { + if (fileInfo.file.status === 'error') { + fileInfo.fileList.splice(0, 1) + } + if (fileInfo.file.status === 'done') { + if (fileInfo.fileList.length > 1) { + fileInfo.fileList.splice(0, 1) + } + this.fileList = fileInfo.file + } + }, + handleSubmit() { + this.confirmLoading = true + const formData = new FormData() + formData.append('file', this.uploadFile.file) + WmsMaterialCustomerImportExcel(formData, {importExcelType: this.importExcelType}).then(res => { + this.$message.success('鎿嶄綔鎴愬姛') + this.confirmLoading = false + this.$emit('ok', []) + this.handleCancel() + }).finally((res)=>{this.confirmLoading = false}) + }, + handleCancel() { + this.visible = false + this.detailed = false + }, + wmsMaterialCustomerDownloadExcelTemplate() { + WmsMaterialCustomerDownloadExcelTemplate({version: "v2"}).then((res) => { + downloadFile(res); + }).catch((err) => { + this.$message.error('涓嬭浇閿欒锛氳幏鍙栨枃浠舵祦閿欒' + err) + }) + } + } + } +</script> + +<style scoped> +::v-deep .ant-upload.ant-upload-drag { + position: relative; + width: 140px; + height: 135px; + text-align: center; + background: #fafafa; + border: 1px dashed #d9d9d9; + border-radius: 2px; + cursor: pointer; + -webkit-transition: border-color 0.3s; + transition: border-color 0.3s; +} +::v-deep .ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), .ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger) { + color: #ffc53d; + border-color: white; +} +</style> \ No newline at end of file diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/index.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/index.vue new file mode 100644 index 0000000..9efe979 --- /dev/null +++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterialCustomer/index.vue @@ -0,0 +1,523 @@ +锘�<template> + <div ref="boxOutWrap" class="boxOutWrap"> + <div ref="boxForm" class="boxForm"> + <a-card :bordered="false" :bodyStyle="tstyle"> + + <div class="table-page-search-wrapper" v-if="hasPerm('WmsMaterialCustomer:page')"> + <a-form layout="inline"> + <a-row :gutter="48"> + <a-col :md="8" :sm="24"> + <a-form-item label="鐗╂枡ID"> + <a-input v-model="queryParam.materialId" allow-clear placeholder="璇疯緭鍏ョ墿鏂橧D"/> + </a-form-item> + </a-col> + <a-col :md="8" :sm="24"> + <a-form-item label="鐗╂枡缂栧彿"> + <a-input v-model="queryParam.materialCode" 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.materialName" allow-clear placeholder="璇疯緭鍏ョ墿鏂欏悕绉�"/> + </a-form-item> + </a-col> + <a-col :md="8" :sm="24"> + <a-form-item label="瀹㈡埛ID"> + <a-input v-model="queryParam.custId" allow-clear placeholder="璇疯緭鍏ュ鎴稩D"/> + </a-form-item> + </a-col> + <a-col :md="8" :sm="24"> + <a-form-item label="瀹㈡埛缂栧彿"> + <a-input v-model="queryParam.custCode" allow-clear placeholder="璇疯緭鍏ュ鎴风紪鍙�"/> + </a-form-item> + </a-col> + <a-col :md="8" :sm="24"> + <a-form-item label="瀹㈡埛鑻辨枃鍚嶇О"> + <a-input v-model="queryParam.custEnglishName" allow-clear placeholder="璇疯緭鍏ュ鎴疯嫳鏂囧悕绉�"/> + </a-form-item> + </a-col> + <a-col :md="8" :sm="24"> + <a-form-item label="瀹㈡埛涓枃鍚嶇О"> + <a-input v-model="queryParam.custChinaName" allow-clear placeholder="璇疯緭鍏ュ鎴蜂腑鏂囧悕绉�"/> + </a-form-item> + </a-col> <!--骞存湀鏃ユ椂鍒嗙--> + <!--鏃堕棿鑼冨洿--> + + <a-col :md="8" :sm="24"> + <a-form-item label="鍒涘缓鏃堕棿"> + <a-range-picker style="width: 100%" :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" :show-time="{ +format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.createdTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangecreatedTime"/> + + </a-form-item> + </a-col> + <!--骞存湀鏃ユ椂鍒嗙--> + <!--鏃堕棿鑼冨洿--> + + <a-col :md="8" :sm="24"> + <a-form-item label="鏇存柊鏃堕棿"> + <a-range-picker style="width: 100%" :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" :show-time="{ +format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.updatedTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangeupdatedTime"/> + + </a-form-item> + </a-col> + + <a-col :md="8" :sm="24"> + <a-form-item label="鍒涘缓鑰呭悕绉�"> + <a-input v-model="queryParam.createdUserName" allow-clear placeholder="璇疯緭鍏ュ垱寤鸿�呭悕绉�"/> + </a-form-item> + </a-col> + <a-col :md="8" :sm="24"> + <a-form-item label="淇敼鑰呭悕绉�"> + <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="璇疯緭鍏ヤ慨鏀硅�呭悕绉�"/> + </a-form-item> + </a-col> </template> + + <a-col :md="8" :sm="24" > + <span class="table-page-search-submitButtons"> + <a-button type="primary" @click="$refs.table.refresh(true)" >鏌ヨ</a-button> + <a-button style="margin-left: 8px" @click="() => queryParam = {}">閲嶇疆</a-button> + <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? '鏀惰捣' : '灞曞紑' }} + <a-icon :type="advanced ? 'up' : 'down'"/> + </a> + </span> + </a-col> + + </a-row> + </a-form> + </div> + </a-card> + </div> + <a-card :bordered="false"> + <s-table + ref="table" + :columns="columns" + :data="loadData" + :alert="true" + @changeTablePage="pageInfo = $event" + :scroll="{x: true,y:tableHeight}" + :rowKey="(record) => record.id" + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"> + <template class="table-operator" slot="operator" v-if="hasPerm('WmsMaterialCustomer:add')" > + <div ref="actionBar" class="actionBar"> + <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()"> + 瀵煎叆 + </a-button> + <a-button type="info" v-if="hasPerm('WmsMaterialCustomer:exportExcel')" icon="download" @click="WmsMaterialCustomerToExcel()"> + 瀵煎嚭 + </a-button> + <a-button type="primary" v-if="hasPerm('WmsMaterialCustomer:add')" icon="plus" @click="$refs.addForm.add()">鏂板鐗╂枡瀹㈡埛鍏宠仈淇℃伅</a-button> + </div> + </template> + <span slot="action" slot-scope="text, record"> + + <a v-if="hasPerm('WmsMaterialCustomer:edit')" @click="$refs.editForm.edit(record)">缂栬緫</a> + <a-divider type="vertical" v-if="hasPerm('WmsMaterialCustomer:edit') & hasPerm('WmsMaterialCustomer:delete')"/> + <a-popconfirm v-if="hasPerm('WmsMaterialCustomer:delete')" placement="topRight" title="纭鍒犻櫎锛�" @confirm="() => WmsMaterialCustomerDelete(record)"> + <a>鍒犻櫎</a> + </a-popconfirm> + </span> + </s-table> + <add-form ref="addForm" @ok="handleOk" /> + <edit-form ref="editForm" @ok="handleOk" /> + <excel-form ref="excelForm" @ok="handleOk" /> + </a-card> + </div> +</template> +<script> + import { STable } from '@/components' + import moment from 'moment' + import { WmsMaterialCustomerPage, WmsMaterialCustomerDelete, WmsMaterialCustomerToExcel } from '@/api/modular/main/WmsBase/WmsMaterialCustomerManage' + //鑷畾涔塼able楂樺害 + import setTableHtMixin from '@/mixins/handleTableHt.js' + import addForm from './addForm.vue' + import { exportExcel } from '@/utils/exportToExcel' + import { downloadFile } from '@/utils/util' + import editForm from './editForm.vue' + import excelForm from './excelForm.vue' + export default { + mixins: [setTableHtMixin], + components: { + STable, + addForm, + editForm, + excelForm + }, + data () { + return { + advanced: false, // 楂樼骇鎼滅储 灞曞紑/鍏抽棴 + queryParam: {}, + pageInfo: { + current: 1, + pageSize: 10 + }, + columns: [ + { + title:'搴忓彿', + width: '60px', + align: 'center', + customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}` + }, + { + title: '鐗╂枡ID', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'materialId' + }, + { + title: '鐗╂枡缂栧彿', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'materialCode' + }, + { + title: '鐗╂枡鍚嶇О', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'materialName' + }, + { + title: '瀹㈡埛ID', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'custId' + }, + { + title: '瀹㈡埛缂栧彿', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'custCode' + }, + { + title: '瀹㈡埛鑻辨枃鍚嶇О', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'custEnglishName' + }, + { + title: '瀹㈡埛涓枃鍚嶇О', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'custChinaName' + }, + { + title: '鍒涘缓鏃堕棿', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'createdTime' + }, + { + title: '鏇存柊鏃堕棿', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'updatedTime' + }, + { + title: '鍒涘缓鑰呭悕绉�', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'createdUserName' + }, + { + title: '淇敼鑰呭悕绉�', + align: 'center', + customHeaderCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + customCell: () => { + return { + style: { + 'min-width': '120px'//鏈�灏忓垪瀹借缃� + } + } + }, + sorter: true, + dataIndex: 'updatedUserName' + } + ], + tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' }, + // 鍔犺浇鏁版嵁鏂规硶 蹇呴』涓� Promise 瀵硅薄 + loadData: parameter => { + return WmsMaterialCustomerPage(Object.assign(parameter, this.switchingDate())).then((res) => { + return res.data + }) + }, + selectedRowKeys: [], + selectedRows: [] + } + }, + created () { + if (this.hasPerm('WmsMaterialCustomer:edit') || this.hasPerm('WmsMaterialCustomer:delete')) { + this.columns.push({ + title: '鎿嶄綔', + width: '150px', + dataIndex: 'action', + scopedSlots: { customRender: 'action' } + }) + } + const path = this.$route.path + const columnStr = window.localStorage.getItem(path) + if(columnStr) { + var _columns = JSON.parse(columnStr) + this.columns.forEach(element => { + var fObj = _columns.find((item, index) => { + return item.dataIndex === element.dataIndex; + }) + if(fObj!=undefined && fObj!=null){ + element.checked=fObj.checked; + } + }); + } + + this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害 + window.addEventListener( + 'resize', + () => { + this.handleTableHt() // 鐩戝惉灞忓箷澶у皬鏀瑰彉琛ㄦ牸楂樺害 + }, + false + ) + + }, + methods: { + moment, + /** + * 鏌ヨ鍙傛暟缁勮 + */ + switchingDate () { + const obj = JSON.parse(JSON.stringify(this.queryParam)) + return obj + }, + WmsMaterialCustomerDelete (record) { + WmsMaterialCustomerDelete(record).then((res) => { + if (res.success) { + this.$message.success('鍒犻櫎鎴愬姛') + this.$refs.table.refresh() + } else { + this.$message.error('鍒犻櫎澶辫触') // + res.message + } + }) + }, + + + WmsMaterialCustomerToExcel() { + this.loading = true + let entozh = {}; + const path = this.$route.path; + if (window.localStorage.getItem(path)) { + JSON.parse(window.localStorage.getItem(path)).forEach(item => { + if (item.dataIndex != 'action' && item.checked) { + entozh[item.dataIndex] = item.title + } + }) + } else { //鐩存帴鐐瑰鍑� + this.columns.forEach(item => { + if (item.dataIndex != 'action') { + entozh[item.dataIndex] = item.title + } + }) + } + WmsMaterialCustomerPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)).then((res) => { + this.loading = false; + //闇�瑕佹埅鍙栨棩鏈熺殑瀛楁 + var arrDataCutout = this.columns.filter(v => v.customCutout == true); + res.data.rows.forEach(item => { + var arrKeys = Object.keys(item); + arrKeys.forEach(key => { + var strFieldDic = key + 'Data'; + //鏋氫妇杞�� + if (this[strFieldDic] && this[strFieldDic].length > 0) { + let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key])); + if (arrFieldDic.length > 0) { + item[key] = arrFieldDic[0]?.name || '娌℃湁鏋氫妇鍊�'; + } + } + // 鏃ユ湡鎴彇 + if (arrDataCutout.length > 0) { + arrDataCutout.forEach(itemIn => { + if (key == itemIn.dataIndex && item[key]) { + item[key] = item[key].split(" ")[0] + } + }) + } + }); + }) + exportExcel(res.data.rows, entozh, "xlsx", `${this.$route.meta.title}`) + }).catch((err) => { + this.loading = false + this.$message.error('涓嬭浇閿欒锛氳幏鍙栨枃浠舵祦閿欒' + err) + }) + }, + + + toggleAdvanced () { + this.advanced = !this.advanced + this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害 + }, + onChangecreatedTime(date, dateString) { + this.queryParam.createdTime = dateString + }, + onChangeupdatedTime(date, dateString) { + this.queryParam.updatedTime = dateString + }, + handleOk () { + this.$refs.table.refresh() + }, + onSelectChange (selectedRowKeys, selectedRows) { + this.selectedRowKeys = selectedRowKeys + this.selectedRows = selectedRows + } + } + } +</script> +<style lang="less"> + .table-operator { + margin-bottom: 18px; + } + button { + margin-right: 8px; + } +</style> diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingInput.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingInput.cs index e969b70..2339e48 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingInput.cs +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingInput.cs @@ -6,7 +6,7 @@ { /// <summary> - /// 鍖呰鍏崇郴鍩虹琛ㄦ煡璇㈠弬鏁� + /// 瀹瑰櫒鍏崇郴鍩虹琛ㄦ煡璇㈠弬鏁� /// </summary> public class WmsContainerPackagingSearch : PageInputBase { @@ -63,7 +63,7 @@ } /// <summary> - /// 鍖呰鍏崇郴鍩虹琛ㄤ笉鍒嗛〉鏌ヨ鍙傛暟 + /// 瀹瑰櫒鍏崇郴鍩虹琛ㄤ笉鍒嗛〉鏌ヨ鍙傛暟 /// </summary> public class WmsContainerPackagingSearchNonPage : PageInputNonPageBase { @@ -120,7 +120,7 @@ } /// <summary> - /// 鍖呰鍏崇郴鍩虹琛ㄨ緭鍏ュ弬鏁� + /// 瀹瑰櫒鍏崇郴鍩虹琛ㄨ緭鍏ュ弬鏁� /// </summary> public class WmsContainerPackagingInput { @@ -163,21 +163,21 @@ } /// <summary> - /// 鍖呰鍏崇郴鍩虹琛ㄦ柊澧炲弬鏁� + /// 瀹瑰櫒鍏崇郴鍩虹琛ㄦ柊澧炲弬鏁� /// </summary> public class AddWmsContainerPackagingInput : WmsContainerPackagingInput { } /// <summary> - /// 鍖呰鍏崇郴鍩虹琛ㄥ垹闄ゅ弬鏁� + /// 瀹瑰櫒鍏崇郴鍩虹琛ㄥ垹闄ゅ弬鏁� /// </summary> public class DeleteWmsContainerPackagingInput : BaseId { } /// <summary> - /// 鍖呰鍏崇郴鍩虹琛ㄦ洿鏂板弬鏁� + /// 瀹瑰櫒鍏崇郴鍩虹琛ㄦ洿鏂板弬鏁� /// </summary> public class UpdateWmsContainerPackagingInput : WmsContainerPackagingInput { @@ -190,7 +190,7 @@ } /// <summary> - /// 鍖呰鍏崇郴鍩虹琛ㄨ幏鍙栧崟涓弬鏁� + /// 瀹瑰櫒鍏崇郴鍩虹琛ㄨ幏鍙栧崟涓弬鏁� /// </summary> public class QueryeWmsContainerPackagingInput : BaseId { diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingOutput.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingOutput.cs index e46ff7a..b52ee08 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingOutput.cs +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingOutput.cs @@ -4,7 +4,7 @@ namespace Admin.NET.Application { /// <summary> - /// 鍖呰鍏崇郴鍩虹琛ㄨ緭鍑哄弬鏁� + /// 瀹瑰櫒鍏崇郴鍩虹琛ㄨ緭鍑哄弬鏁� /// </summary> public class WmsContainerPackagingOutput { diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs index 75de536..b4ceca0 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs @@ -16,7 +16,7 @@ namespace Admin.NET.Application { /// <summary> - /// 鍖呰鍏崇郴鍩虹琛ㄦ湇鍔� + /// 瀹瑰櫒鍏崇郴鍩虹琛ㄦ湇鍔� /// </summary> [ApiDescriptionSettings("WmsBase", Name = "WmsContainerPackaging", Order = 100)] [Route("api")] @@ -42,7 +42,7 @@ } /// <summary> - /// 鍒嗛〉鏌ヨ鍖呰鍏崇郴鍩虹琛� + /// 鍒嗛〉鏌ヨ瀹瑰櫒鍏崇郴鍩虹琛� /// </summary> /// <param name="input"></param> /// <returns></returns> @@ -67,10 +67,10 @@ } /// <summary> - /// 涓嶅垎椤垫煡璇㈠寘瑁呭叧绯诲熀纭�琛ㄥ垪琛� + /// 涓嶅垎椤垫煡璇㈠鍣ㄥ叧绯诲熀纭�琛ㄥ垪琛� /// </summary> - /// <param name="input">鍖呰鍏崇郴鍩虹琛ㄦ煡璇㈠弬鏁�</param> - /// <returns>(鍖呰鍏崇郴鍩虹琛�)瀹炰緥鍒楄〃</returns> + /// <param name="input">瀹瑰櫒鍏崇郴鍩虹琛ㄦ煡璇㈠弬鏁�</param> + /// <returns>(瀹瑰櫒鍏崇郴鍩虹琛�)瀹炰緥鍒楄〃</returns> [HttpGet("WmsContainerPackaging/listNonPage")] public async Task<List<WmsContainerPackagingOutput>> ListNonPageAsync([FromQuery] WmsContainerPackagingSearchNonPage input) { @@ -102,7 +102,7 @@ } /// <summary> - /// 鑾峰彇鍖呰鍏崇郴鍩虹琛� + /// 鑾峰彇瀹瑰櫒鍏崇郴鍩虹琛� /// </summary> /// <param name="input"></param> /// <returns></returns> @@ -113,7 +113,7 @@ } /// <summary> - /// 鑾峰彇鍖呰鍏崇郴鍩虹琛ㄥ垪琛� + /// 鑾峰彇瀹瑰櫒鍏崇郴鍩虹琛ㄥ垪琛� /// </summary> /// <param name="input"></param> /// <returns></returns> @@ -126,7 +126,7 @@ #region 澧炪�佸垹銆佹敼 /// <summary> - /// 澧炲姞鍖呰鍏崇郴鍩虹琛� + /// 澧炲姞瀹瑰櫒鍏崇郴鍩虹琛� /// </summary> /// <param name="input"></param> /// <returns></returns> @@ -144,7 +144,7 @@ } /// <summary> - /// 鍒犻櫎鍖呰鍏崇郴鍩虹琛� + /// 鍒犻櫎瀹瑰櫒鍏崇郴鍩虹琛� /// </summary> /// <param name="input"></param> /// <returns></returns> @@ -157,7 +157,7 @@ } /// <summary> - /// 鏇存柊鍖呰鍏崇郴鍩虹琛� + /// 鏇存柊瀹瑰櫒鍏崇郴鍩虹琛� /// </summary> /// <param name="input"></param> /// <returns></returns> @@ -182,7 +182,7 @@ #region 瀵煎叆 /// <summary> - /// Excel妯℃澘瀵煎叆鍖呰鍏崇郴鍩虹琛ㄥ姛鑳� + /// Excel妯℃澘瀵煎叆瀹瑰櫒鍏崇郴鍩虹琛ㄥ姛鑳� /// </summary> /// <param name="file">Excel妯℃澘鏂囦欢</param> /// <returns>瀵煎叆鐨勮褰曟暟</returns> @@ -378,7 +378,7 @@ } /// <summary> - /// 鏍规嵁鐗堟湰涓嬭浇鍖呰鍏崇郴鍩虹琛ㄧ殑Excel瀵煎叆妯℃澘 + /// 鏍规嵁鐗堟湰涓嬭浇瀹瑰櫒鍏崇郴鍩虹琛ㄧ殑Excel瀵煎叆妯℃澘 /// </summary> /// <param name="version">妯℃澘鐗堟湰</param> /// <returns>涓嬭浇鐨勬ā鏉挎枃浠�</returns> @@ -386,7 +386,7 @@ public IActionResult DownloadExcelTemplate([FromQuery] string version) { string _path = TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増璺緞 + $"\\WmsContainerPackaging{TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増鍚嶇О鍚庣紑}.xlsx"; - var fileName = HttpUtility.UrlEncode($"瀵煎叆妯℃澘(鍖呰鍏崇郴鍩虹琛�).xlsx", Encoding.GetEncoding("UTF-8")); + var fileName = HttpUtility.UrlEncode($"瀵煎叆妯℃澘(瀹瑰櫒鍏崇郴鍩虹琛�).xlsx", Encoding.GetEncoding("UTF-8")); return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; } 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 71d1f55..3d673a4 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 @@ -417,4 +417,31 @@ { } + + /// <summary> + /// 鏂板鐗╂枡涓氬姟淇℃伅瀹炰綋鍏ュ弬--鍖呭惈鐗╂枡銆佺墿鏂欏鎴峰叧绯汇�佹帶鍒跺睘鎬с�佹浛浠e搧 + /// </summary> + public class AddWmsMaterialInfoInput + { + /// <summary> + /// 鐗╂枡鍩虹淇℃伅 + /// </summary> + public WmsMaterialInput MaterialInput { get; set; } + + /// <summary> + /// 鎺у埗灞炴�ц鍒橧D + /// </summary> + public long ControlRuleld { get; set; } + + /// <summary> + /// 鏇夸唬鍝� + /// </summary> + public List<WmsSubstituteGood> SubstituteGoodList { get; set; } + + /// <summary> + /// 鐗╂枡瀹㈡埛鍏崇郴琛� + /// </summary> + public List<WmsMaterialCustomer> MaterialCustomerList { 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 e9edf4a..7b873a7 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 @@ -13,7 +13,7 @@ Task<PageResult<WmsMaterialOutput>> Page([FromQuery] WmsMaterialSearch input); Task<List<WmsMaterialOutput>> ListNonPageAsync([FromQuery] WmsMaterialSearchNonPage input); - Task Add(AddWmsMaterialInput input); + Task Add(AddWmsMaterialInfoInput input); Task Update(UpdateWmsMaterialInput input); Task Delete(DeleteWmsMaterialInput input); Task<int> ImportExcelAsync(IFormFile file); 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 bc3e25c..ce56c81 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 @@ -166,9 +166,10 @@ public async Task<List<WmsMaterialOutput>> List([FromQuery] WmsMaterialInput input) { return await _wmsMaterialRep.DetachedEntities.ProjectToType<WmsMaterialOutput>().ToListAsync(); - } + } #region 澧炪�佸垹銆佹敼 + /// <summary> /// 澧炲姞鐗╂枡淇℃伅琛� @@ -176,10 +177,19 @@ /// <param name="input"></param> /// <returns></returns> [HttpPost("WmsMaterial/add")] - public async Task Add(AddWmsMaterialInput input) + public async Task Add(AddWmsMaterialInfoInput input) { - var wmsMaterial = input.Adapt<WmsMaterial>(); - //楠岃瘉 + + + //鐗╂枡淇℃伅 + var wmsMaterial = input.MaterialInput.Adapt<WmsMaterial>(); + //鎺у埗瑙勫垯淇℃伅 + var controlRuleld = input.ControlRuleld; + //鐗╂枡瀹㈡埛鍏宠仈淇℃伅 + var materialCustomerList = input.MaterialCustomerList.Adapt<WmsMaterialCustomer>(); + //鏇夸唬鍝佷俊鎭� + var substituteGoodList = input.SubstituteGoodList.Adapt<WmsSubstituteGood>(); + //楠岃瘉 await CheckExisit(wmsMaterial); wmsMaterial.CreatedUserId = wmsMaterial.UpdatedUserId = SysHelper.GetUserId(); diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/Dto/WmsMaterialCustomerInput.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/Dto/WmsMaterialCustomerInput.cs new file mode 100644 index 0000000..05e1d12 --- /dev/null +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/Dto/WmsMaterialCustomerInput.cs @@ -0,0 +1,211 @@ +锘縰sing Admin.NET.Core; +using Admin.NET.Core.Service; +using System.ComponentModel.DataAnnotations; + +namespace Admin.NET.Application +{ + + /// <summary> + /// 鐗╂枡瀹㈡埛鍏宠仈淇℃伅鏌ヨ鍙傛暟 + /// </summary> + public class WmsMaterialCustomerSearch : PageInputBase + { + /// <summary> + /// 鐗╂枡ID + /// </summary> + public virtual long? MaterialId { get; set; } + + /// <summary> + /// 鐗╂枡缂栧彿 + /// </summary> + public virtual string MaterialCode { get; set; } + + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public virtual string MaterialName { get; set; } + + /// <summary> + /// 瀹㈡埛ID + /// </summary> + public virtual long? CustId { get; set; } + + /// <summary> + /// 瀹㈡埛缂栧彿 + /// </summary> + public virtual string CustCode { get; set; } + + /// <summary> + /// 瀹㈡埛鑻辨枃鍚嶇О + /// </summary> + public virtual string CustEnglishName { get; set; } + + /// <summary> + /// 瀹㈡埛涓枃鍚嶇О + /// </summary> + public virtual string CustChinaName { get; set; } + + /// <summary> + /// 鍒涘缓鏃堕棿 + /// </summary> + public virtual List<string> CreatedTime { get; set; } + + /// <summary> + /// 鏇存柊鏃堕棿 + /// </summary> + public virtual List<string> UpdatedTime { get; set; } + + /// <summary> + /// 鍒涘缓鑰呭悕绉� + /// </summary> + public virtual string CreatedUserName { get; set; } + + /// <summary> + /// 淇敼鑰呭悕绉� + /// </summary> + public virtual string UpdatedUserName { get; set; } + + } + + /// <summary> + /// 鐗╂枡瀹㈡埛鍏宠仈淇℃伅涓嶅垎椤垫煡璇㈠弬鏁� + /// </summary> + public class WmsMaterialCustomerSearchNonPage : PageInputNonPageBase + { + /// <summary> + /// 鐗╂枡ID + /// </summary> + public virtual long? MaterialId { get; set; } + + /// <summary> + /// 鐗╂枡缂栧彿 + /// </summary> + public virtual string MaterialCode { get; set; } + + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public virtual string MaterialName { get; set; } + + /// <summary> + /// 瀹㈡埛ID + /// </summary> + public virtual long? CustId { get; set; } + + /// <summary> + /// 瀹㈡埛缂栧彿 + /// </summary> + public virtual string CustCode { get; set; } + + /// <summary> + /// 瀹㈡埛鑻辨枃鍚嶇О + /// </summary> + public virtual string CustEnglishName { get; set; } + + /// <summary> + /// 瀹㈡埛涓枃鍚嶇О + /// </summary> + public virtual string CustChinaName { get; set; } + + /// <summary> + /// 鍒涘缓鏃堕棿 + /// </summary> + public virtual List<DateTimeOffset>? CreatedTime { get; set; } + + /// <summary> + /// 鏇存柊鏃堕棿 + /// </summary> + public virtual List<DateTimeOffset>? UpdatedTime { get; set; } + + /// <summary> + /// 鍒涘缓鑰呭悕绉� + /// </summary> + public virtual string CreatedUserName { get; set; } + + /// <summary> + /// 淇敼鑰呭悕绉� + /// </summary> + public virtual string UpdatedUserName { get; set; } + + } + + /// <summary> + /// 鐗╂枡瀹㈡埛鍏宠仈淇℃伅杈撳叆鍙傛暟 + /// </summary> + public class WmsMaterialCustomerInput + { + /// <summary> + /// 鐗╂枡ID + /// </summary> + [Required(ErrorMessage = "鐗╂枡ID涓嶈兘涓虹┖")] + public virtual long MaterialId { get; set; } + + /// <summary> + /// 鐗╂枡缂栧彿 + /// </summary> + [Required(ErrorMessage = "鐗╂枡缂栧彿涓嶈兘涓虹┖")] + public virtual string MaterialCode { get; set; } + + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + [Required(ErrorMessage = "鐗╂枡鍚嶇О涓嶈兘涓虹┖")] + public virtual string MaterialName { get; set; } + + /// <summary> + /// 瀹㈡埛ID + /// </summary> + public virtual long? CustId { get; set; } + + /// <summary> + /// 瀹㈡埛缂栧彿 + /// </summary> + public virtual string CustCode { get; set; } + + /// <summary> + /// 瀹㈡埛鑻辨枃鍚嶇О + /// </summary> + public virtual string CustEnglishName { get; set; } + + /// <summary> + /// 瀹㈡埛涓枃鍚嶇О + /// </summary> + public virtual string CustChinaName { get; set; } + + } + + /// <summary> + /// 鐗╂枡瀹㈡埛鍏宠仈淇℃伅鏂板鍙傛暟 + /// </summary> + public class AddWmsMaterialCustomerInput : WmsMaterialCustomerInput + { + } + + /// <summary> + /// 鐗╂枡瀹㈡埛鍏宠仈淇℃伅鍒犻櫎鍙傛暟 + /// </summary> + public class DeleteWmsMaterialCustomerInput : BaseId + { + } + + /// <summary> + /// 鐗╂枡瀹㈡埛鍏宠仈淇℃伅鏇存柊鍙傛暟 + /// </summary> + public class UpdateWmsMaterialCustomerInput : WmsMaterialCustomerInput + { + /// <summary> + /// Id涓婚敭 + /// </summary> + [Required(ErrorMessage = "Id涓婚敭涓嶈兘涓虹┖")] + public long? Id { get; set; } + + } + + /// <summary> + /// 鐗╂枡瀹㈡埛鍏宠仈淇℃伅鑾峰彇鍗曚釜鍙傛暟 + /// </summary> + public class QueryeWmsMaterialCustomerInput : BaseId + { + + } +} diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/Dto/WmsMaterialCustomerOutput.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/Dto/WmsMaterialCustomerOutput.cs new file mode 100644 index 0000000..5753c7d --- /dev/null +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/Dto/WmsMaterialCustomerOutput.cs @@ -0,0 +1,72 @@ +锘縰sing Admin.NET.Core.Util.LowCode.Dto; +using System; + +namespace Admin.NET.Application +{ + /// <summary> + /// 鐗╂枡瀹㈡埛鍏宠仈淇℃伅杈撳嚭鍙傛暟 + /// </summary> + public class WmsMaterialCustomerOutput + { + /// <summary> + /// 鐗╂枡ID + /// </summary> + public long MaterialId { get; set; } + + /// <summary> + /// 鐗╂枡缂栧彿 + /// </summary> + public string MaterialCode { get; set; } + + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public string MaterialName { get; set; } + + /// <summary> + /// 瀹㈡埛ID + /// </summary> + public long? CustId { get; set; } + + /// <summary> + /// 瀹㈡埛缂栧彿 + /// </summary> + public string CustCode { get; set; } + + /// <summary> + /// 瀹㈡埛鑻辨枃鍚嶇О + /// </summary> + public string CustEnglishName { get; set; } + + /// <summary> + /// 瀹㈡埛涓枃鍚嶇О + /// </summary> + public string CustChinaName { get; set; } + + /// <summary> + /// Id涓婚敭 + /// </summary> + public long? Id { get; set; } + + /// <summary> + /// 鍒涘缓鏃堕棿 + /// </summary> + public DateTimeOffset? CreatedTime { get; set; } + + /// <summary> + /// 鏇存柊鏃堕棿 + /// </summary> + public DateTimeOffset? UpdatedTime { get; set; } + + /// <summary> + /// 鍒涘缓鑰呭悕绉� + /// </summary> + public string CreatedUserName { get; set; } + + /// <summary> + /// 淇敼鑰呭悕绉� + /// </summary> + public string UpdatedUserName { get; set; } + + } +} diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/IWmsMaterialCustomerService.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/IWmsMaterialCustomerService.cs new file mode 100644 index 0000000..e3c2a02 --- /dev/null +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/IWmsMaterialCustomerService.cs @@ -0,0 +1,22 @@ +锘縰sing Admin.NET.Core; +using Microsoft.AspNetCore.Mvc; +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; + +namespace Admin.NET.Application +{ + public interface IWmsMaterialCustomerService + { + Task<WmsMaterialCustomerOutput> Get([FromQuery] QueryeWmsMaterialCustomerInput input); + Task<List<WmsMaterialCustomerOutput>> List([FromQuery] WmsMaterialCustomerInput input); + Task<PageResult<WmsMaterialCustomerOutput>> Page([FromQuery] WmsMaterialCustomerSearch input); + Task<List<WmsMaterialCustomerOutput>> ListNonPageAsync([FromQuery] WmsMaterialCustomerSearchNonPage input); + + Task Add(AddWmsMaterialCustomerInput input); + Task Update(UpdateWmsMaterialCustomerInput input); + Task Delete(DeleteWmsMaterialCustomerInput input); + Task<int> ImportExcelAsync(IFormFile file); + IActionResult DownloadExcelTemplate(string version); + } +} \ No newline at end of file diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/Map/WmsMaterialCustomerMapper.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/Map/WmsMaterialCustomerMapper.cs new file mode 100644 index 0000000..f538c17 --- /dev/null +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/Map/WmsMaterialCustomerMapper.cs @@ -0,0 +1,18 @@ +锘縰sing Mapster; +using Admin.NET.Core; + +namespace Admin.NET.Application +{ + public class WmsMaterialCustomerMapper : IRegister + { + public void Register(TypeAdapterConfig config) + { + config.ForType<AddWmsMaterialCustomerInput, WmsMaterialCustomer>() + ; + config.ForType<UpdateWmsMaterialCustomerInput, WmsMaterialCustomer>() + ; + config.ForType<WmsMaterialCustomer, WmsMaterialCustomerOutput>() + ; + } + } +} diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/WmsMaterialCustomerService.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/WmsMaterialCustomerService.cs new file mode 100644 index 0000000..3ac8a76 --- /dev/null +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterialCustomer/WmsMaterialCustomerService.cs @@ -0,0 +1,412 @@ +锘縰sing Furion.DatabaseAccessor; +using Furion.DatabaseAccessor.Extensions; +using Furion.DependencyInjection; +using Furion.DynamicApiController; +using Furion.FriendlyException; +using Admin.NET.Core; +using Mapster; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using System.Linq.Dynamic.Core; +using Microsoft.AspNetCore.Http; +using System.Text; +using System.Web; +using System.ComponentModel; +using System.Data; +namespace Admin.NET.Application +{ + /// <summary> + /// 鐗╂枡瀹㈡埛鍏宠仈淇℃伅鏈嶅姟 + /// </summary> + [ApiDescriptionSettings("WmsBase", Name = "WmsMaterialCustomer", Order = 100)] + [Route("api")] + public class WmsMaterialCustomerService : IWmsMaterialCustomerService, IDynamicApiController, ITransient + { + private readonly IRepository<WmsMaterialCustomer,MasterDbContextLocator> _wmsMaterialCustomerRep; + private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep; + private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep; + private readonly ISysExcelTemplateService _sysExcelTemplateService; + private readonly static object _lock = new(); + + public WmsMaterialCustomerService( + IRepository<WmsMaterialCustomer,MasterDbContextLocator> wmsMaterialCustomerRep + ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep + ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep + ,ISysExcelTemplateService sysExcelTemplateService + ) + { + _wmsMaterialCustomerRep = wmsMaterialCustomerRep; + _sysDictTypeRep = sysDictTypeRep; + _sysDictDataRep = sysDictDataRep; + _sysExcelTemplateService = sysExcelTemplateService; + } + + /// <summary> + /// 鍒嗛〉鏌ヨ鐗╂枡瀹㈡埛鍏宠仈淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpGet("WmsMaterialCustomer/page")] + public async Task<PageResult<WmsMaterialCustomerOutput>> Page([FromQuery] WmsMaterialCustomerSearch input) + { + var wmsMaterialCustomers = await _wmsMaterialCustomerRep.DetachedEntities + .Where(input.MaterialId != null, u => u.MaterialId == input.MaterialId) + .Where(!string.IsNullOrEmpty(input.MaterialCode), u => u.MaterialCode == input.MaterialCode) + .Where(!string.IsNullOrEmpty(input.MaterialName), u => u.MaterialName == input.MaterialName) + .Where(input.CustId != null, u => u.CustId == input.CustId) + .Where(!string.IsNullOrEmpty(input.CustCode), u => u.CustCode == input.CustCode) + .Where(!string.IsNullOrEmpty(input.CustEnglishName), u => u.CustEnglishName == input.CustEnglishName) + .Where(!string.IsNullOrEmpty(input.CustChinaName), u => u.CustChinaName == input.CustChinaName) + .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<WmsMaterialCustomerSearch>(input)) + .ProjectToType<WmsMaterialCustomerOutput>() + .ToADPagedListAsync(input.PageNo, input.PageSize); + return wmsMaterialCustomers; + } + + /// <summary> + /// 涓嶅垎椤垫煡璇㈢墿鏂欏鎴峰叧鑱斾俊鎭垪琛� + /// </summary> + /// <param name="input">鐗╂枡瀹㈡埛鍏宠仈淇℃伅鏌ヨ鍙傛暟</param> + /// <returns>(鐗╂枡瀹㈡埛鍏宠仈淇℃伅)瀹炰緥鍒楄〃</returns> + [HttpGet("WmsMaterialCustomer/listNonPage")] + public async Task<List<WmsMaterialCustomerOutput>> ListNonPageAsync([FromQuery] WmsMaterialCustomerSearchNonPage input) + { + var pMaterialId = input.MaterialId; + var pMaterialCode = input.MaterialCode?.Trim() ?? ""; + var pMaterialName = input.MaterialName?.Trim() ?? ""; + var pCustId = input.CustId; + var pCustCode = input.CustCode?.Trim() ?? ""; + var pCustEnglishName = input.CustEnglishName?.Trim() ?? ""; + var pCustChinaName = input.CustChinaName?.Trim() ?? ""; + var pCreatedTime = input.CreatedTime; + var pUpdatedTime = input.UpdatedTime; + var pCreatedUserName = input.CreatedUserName?.Trim() ?? ""; + var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? ""; + var wmsMaterialCustomers = await _wmsMaterialCustomerRep.DetachedEntities + .Where(pMaterialId != null, u => u.MaterialId == pMaterialId) + .Where(!string.IsNullOrEmpty(pMaterialCode), u => u.MaterialCode == pMaterialCode) + .Where(!string.IsNullOrEmpty(pMaterialName), u => u.MaterialName == pMaterialName) + .Where(pCustId != null, u => u.CustId == pCustId) + .Where(!string.IsNullOrEmpty(pCustCode), u => u.CustCode == pCustCode) + .Where(!string.IsNullOrEmpty(pCustEnglishName), u => u.CustEnglishName == pCustEnglishName) + .Where(!string.IsNullOrEmpty(pCustChinaName), u => u.CustChinaName == pCustChinaName) + .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)) + .ProjectToType<WmsMaterialCustomerOutput>() + .ToListAsync(); + return wmsMaterialCustomers; + } + + /// <summary> + /// 鑾峰彇鐗╂枡瀹㈡埛鍏宠仈淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpGet("WmsMaterialCustomer/detail")] + public async Task<WmsMaterialCustomerOutput> Get([FromQuery] QueryeWmsMaterialCustomerInput input) + { + return (await _wmsMaterialCustomerRep.DetachedEntities.FirstOrDefaultAsync(u => u.Id == input.Id)).Adapt<WmsMaterialCustomerOutput>(); + } + + /// <summary> + /// 鑾峰彇鐗╂枡瀹㈡埛鍏宠仈淇℃伅鍒楄〃 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpGet("WmsMaterialCustomer/list")] + public async Task<List<WmsMaterialCustomerOutput>> List([FromQuery] WmsMaterialCustomerInput input) + { + return await _wmsMaterialCustomerRep.DetachedEntities.ProjectToType<WmsMaterialCustomerOutput>().ToListAsync(); + } + + #region 澧炪�佸垹銆佹敼 + + /// <summary> + /// 澧炲姞鐗╂枡瀹㈡埛鍏宠仈淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost("WmsMaterialCustomer/add")] + public async Task Add(AddWmsMaterialCustomerInput input) + { + var wmsMaterialCustomer = input.Adapt<WmsMaterialCustomer>(); + //楠岃瘉 + await CheckExisit(wmsMaterialCustomer); + + wmsMaterialCustomer.CreatedUserId = wmsMaterialCustomer.UpdatedUserId = SysHelper.GetUserId(); + wmsMaterialCustomer.CreatedUserName = wmsMaterialCustomer.UpdatedUserName = SysHelper.GetUserName(); + wmsMaterialCustomer.CreatedTime = wmsMaterialCustomer.UpdatedTime = SysHelper.GetNowTime(); + await _wmsMaterialCustomerRep.InsertAsync(wmsMaterialCustomer); + } + + /// <summary> + /// 鍒犻櫎鐗╂枡瀹㈡埛鍏宠仈淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost("WmsMaterialCustomer/delete")] + public async Task Delete(DeleteWmsMaterialCustomerInput input) + { + var wmsMaterialCustomer = await _wmsMaterialCustomerRep.FirstOrDefaultAsync(u => u.Id == input.Id); + await _wmsMaterialCustomerRep.DeleteAsync(wmsMaterialCustomer); + + } + + /// <summary> + /// 鏇存柊鐗╂枡瀹㈡埛鍏宠仈淇℃伅 + /// </summary> + /// <param name="input"></param> + /// <returns></returns> + [HttpPost("WmsMaterialCustomer/edit")] + public async Task Update(UpdateWmsMaterialCustomerInput input) + { + var isExist = await _wmsMaterialCustomerRep.AnyAsync(u => u.Id == input.Id, false); + if (!isExist) throw Oops.Oh(ErrorCode.D1002); + + var wmsMaterialCustomer = input.Adapt<WmsMaterialCustomer>(); + //楠岃瘉 + await CheckExisit(wmsMaterialCustomer,true); + + wmsMaterialCustomer.UpdatedUserId = SysHelper.GetUserId(); + wmsMaterialCustomer.UpdatedUserName = SysHelper.GetUserName(); + wmsMaterialCustomer.UpdatedTime = SysHelper.GetNowTime(); + await _wmsMaterialCustomerRep.UpdateAsync(wmsMaterialCustomer,ignoreNullValues:true); + } + + #endregion + + #region 瀵煎叆 + + /// <summary> + /// Excel妯℃澘瀵煎叆鐗╂枡瀹㈡埛鍏宠仈淇℃伅鍔熻兘 + /// </summary> + /// <param name="file">Excel妯℃澘鏂囦欢</param> + /// <returns>瀵煎叆鐨勮褰曟暟</returns> + [HttpPost("WmsMaterialCustomer/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); + + lock (_lock) + { + _wmsMaterialCustomerRep.InsertAsync(addList); + + } + await Task.CompletedTask; + return addList.Count; + } + + /// <summary> + /// DataTable杞崲瀹炰綋瀵硅薄鍒楄〃 + /// </summary> + /// <param name="dataTable"></param> + /// <param name="dataStartLine">妯$増鍒楀悕寮�濮嬭</param> + /// <returns></returns> + private async Task<List<WmsMaterialCustomer>> CommonImport(DataTable dataTable, int dataStartLine) + { + + var details = new List<WmsMaterialCustomer>(); + int index = dataStartLine;//妯$増鍒楀悕寮�濮嬭 + foreach (System.Data.DataRow row in dataTable.Rows) + { + index++; + + //瀵煎叆妯$増瀹氬埗鍖栦唬鐮侊紙鏇挎崲妯$増浣跨敤锛� + + var addItem = new WmsMaterialCustomer() + { + CreatedTime = SysHelper.GetNowTime(), + CreatedUserId = SysHelper.GetUserId(), + CreatedUserName = SysHelper.GetUserName(), + UpdatedTime = SysHelper.GetNowTime(), + UpdatedUserId = SysHelper.GetUserId(), + UpdatedUserName = SysHelper.GetUserName() + }; + #region 瀹氫箟鍙橀噺 + var _MaterialId = "";//鐗╂枡ID + var _MaterialCode = "";//鐗╂枡缂栧彿 + var _MaterialName = "";//鐗╂枡鍚嶇О + var _CustId = "";//瀹㈡埛ID + var _CustCode = "";//瀹㈡埛缂栧彿 + var _CustEnglishName = "";//瀹㈡埛鑻辨枃鍚嶇О + var _CustChinaName = "";//瀹㈡埛涓枃鍚嶇О + var _Id = "";//Id涓婚敭 + #endregion + + + #region 鍙栧�� + _MaterialId = row["鐗╂枡ID"]?.ToString() ; + _MaterialCode = row["鐗╂枡缂栧彿"]?.ToString() ; + _MaterialName = row["鐗╂枡鍚嶇О"]?.ToString() ; + _CustId = row["瀹㈡埛ID"]?.ToString() ; + _CustCode = row["瀹㈡埛缂栧彿"]?.ToString() ; + _CustEnglishName = row["瀹㈡埛鑻辨枃鍚嶇О"]?.ToString() ; + _CustChinaName = row["瀹㈡埛涓枃鍚嶇О"]?.ToString() ; + _Id = row["Id涓婚敭"]?.ToString() ; + #endregion + + + #region 楠岃瘉 + + if (string.IsNullOrEmpty(_MaterialId)) + { + throw Oops.Oh($"绗瑊index}琛孾鐗╂枡ID]{_MaterialId}涓嶈兘涓虹┖锛�"); + } + + if(!string.IsNullOrEmpty(_MaterialId)) + { + if (!long.TryParse(_MaterialId, out long outMaterialId)&&!string.IsNullOrEmpty(_MaterialId)) + { + throw Oops.Oh($"绗瑊index}琛孾鐗╂枡ID]{_MaterialId}鍊间笉姝g‘锛�"); + } + if (outMaterialId <= 0&&!string.IsNullOrEmpty(_MaterialId)) + { + throw Oops.Oh($"绗瑊index}琛孾鐗╂枡ID]{_MaterialId}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); + } + else + { + addItem.MaterialId = outMaterialId; + } + + } + + if (string.IsNullOrEmpty(_MaterialCode)) + { + throw Oops.Oh($"绗瑊index}琛孾鐗╂枡缂栧彿]{_MaterialCode}涓嶈兘涓虹┖锛�"); + } + + if(!string.IsNullOrEmpty(_MaterialCode)) + { + addItem.MaterialCode = (string)_MaterialCode; + } + + if (string.IsNullOrEmpty(_MaterialName)) + { + throw Oops.Oh($"绗瑊index}琛孾鐗╂枡鍚嶇О]{_MaterialName}涓嶈兘涓虹┖锛�"); + } + + if(!string.IsNullOrEmpty(_MaterialName)) + { + addItem.MaterialName = (string)_MaterialName; + } + if(!string.IsNullOrEmpty(_CustId)) + { + if (!long.TryParse(_CustId, out long outCustId)&&!string.IsNullOrEmpty(_CustId)) + { + throw Oops.Oh($"绗瑊index}琛孾瀹㈡埛ID]{_CustId}鍊间笉姝g‘锛�"); + } + if (outCustId <= 0&&!string.IsNullOrEmpty(_CustId)) + { + throw Oops.Oh($"绗瑊index}琛孾瀹㈡埛ID]{_CustId}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); + } + else + { + addItem.CustId = outCustId; + } + + } + if(!string.IsNullOrEmpty(_CustCode)) + { + addItem.CustCode = (string)_CustCode; + } + if(!string.IsNullOrEmpty(_CustEnglishName)) + { + addItem.CustEnglishName = (string)_CustEnglishName; + } + if(!string.IsNullOrEmpty(_CustChinaName)) + { + addItem.CustChinaName = (string)_CustChinaName; + } + if(!string.IsNullOrEmpty(_Id)) + { + if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id)) + { + throw Oops.Oh($"绗瑊index}琛孾Id涓婚敭]{_Id}鍊间笉姝g‘锛�"); + } + if (outId <= 0&&!string.IsNullOrEmpty(_Id)) + { + throw Oops.Oh($"绗瑊index}琛孾Id涓婚敭]{_Id}鍊间笉鑳藉皬浜庣瓑浜�0锛�"); + } + else + { + addItem.Id = outId; + } + + } + #endregion + + + + details.Add(addItem); + } + //楠岄噸 + await CheckExisitForImport(details); + + return details; + } + + /// <summary> + /// 鏍规嵁鐗堟湰涓嬭浇鐗╂枡瀹㈡埛鍏宠仈淇℃伅鐨凟xcel瀵煎叆妯℃澘 + /// </summary> + /// <param name="version">妯℃澘鐗堟湰</param> + /// <returns>涓嬭浇鐨勬ā鏉挎枃浠�</returns> + [HttpGet("WmsMaterialCustomer/downloadExcelTemplate")] + public IActionResult DownloadExcelTemplate([FromQuery] string version) + { + string _path = TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増璺緞 + $"\\WmsMaterialCustomer{TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増鍚嶇О鍚庣紑}.xlsx"; + var fileName = HttpUtility.UrlEncode($"瀵煎叆妯℃澘(鐗╂枡瀹㈡埛鍏宠仈淇℃伅).xlsx", Encoding.GetEncoding("UTF-8")); + return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName }; + } + + #endregion + + #region 绉佹湁鏂规硶 + + /// <summary> + /// 鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁鏄惁宸插瓨鍦�-鏁版嵁搴� + /// </summary> + /// <param name="input"></param> + /// <param name="isEdit"></param> + /// <returns></returns> + private async Task CheckExisit( WmsMaterialCustomer input,bool isEdit=false) + { + + + + + + + + + + //娌℃湁閰嶇疆鑱斿悎涓婚敭锛屼笉闇�瑕侀獙閲� + } + + /// <summary> + /// 鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁鏄惁宸插瓨鍦�-瀵煎叆鏃堕獙璇� + /// </summary> + /// <param name="inputs"></param> + /// <returns></returns> + private async Task CheckExisitForImport(List<WmsMaterialCustomer> inputs) + { + //鏍规嵁鑱斿悎涓婚敭楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹� + + + + + } + + #endregion + } +} diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsContainerPackaging.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsContainerPackaging.cs new file mode 100644 index 0000000..9f54f5c --- /dev/null +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsContainerPackaging.cs @@ -0,0 +1,83 @@ +锘縰sing Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +/* + * @author : 鍒樻枃濂� + * @date : 2024/4/23涓嬪崍4:29:28 + * @desc : 瀹瑰櫒鍏崇郴鍩虹琛� + */ +namespace Admin.NET.Core +{ + /// <summary> + /// 瀹瑰櫒鍏崇郴鍩虹琛� + /// </summary> + [Table("wms_container_packaging")] + [Comment("瀹瑰櫒鍏崇郴鍩虹琛�")] + public class WmsContainerPackaging : DEntityBase + { + + + /// <summary> + /// 瀹瑰櫒绫诲瀷ID + /// </summary> + [Comment("瀹瑰櫒绫诲瀷ID")] + [Required] + + public long ContainerTypeId { get; set; } + + + /// <summary> + /// 瀹瑰櫒绫诲瀷鍚嶇О + /// </summary> + [Comment("瀹瑰櫒绫诲瀷鍚嶇О")] + [Required] + [MaxLength(255)] + public string ContainerTypeName { get; set; } + + + /// <summary> + /// 鐗╂枡绫诲瀷ID + /// </summary> + [Comment("鐗╂枡绫诲瀷ID")] + [Required] + + public long MaterialTypeId { get; set; } + + + /// <summary> + /// 鐗╂枡绫诲瀷缂栧彿 + /// </summary> + [Comment("鐗╂枡绫诲瀷缂栧彿")] + [Required] + [MaxLength(255)] + public string MaterialTypeCode { get; set; } + + + /// <summary> + /// 鐗╂枡绫诲瀷鍚嶇О + /// </summary> + [Comment("鐗╂枡绫诲瀷鍚嶇О")] + [Required] + [MaxLength(255)] + public string MaterialTypeName { get; set; } + + + /// <summary> + /// 鐗╂枡瀹瑰櫒瀹归噺 + /// </summary> + [Comment("鐗╂枡瀹瑰櫒瀹归噺")] + + [Column("BoxQty", TypeName = "decimal(10,3)")] + public decimal? BoxQty { get; set; } + + + + + + + + + + } +} \ No newline at end of file diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsMaterialCustomer.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsMaterialCustomer.cs index 558cc86..461e0ba 100755 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsMaterialCustomer.cs +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Entity/WmsBase/WmsMaterialCustomer.cs @@ -4,72 +4,80 @@ /* * @author : 鍒樻枃濂� - * @date : 2024/4/23涓嬪崍4:29:28 - * @desc : 鍖呰鍏崇郴鍩虹琛� + * @date : 2024/4/24涓婂崍10:48:23 + * @desc : 鐗╂枡瀹㈡埛鍏宠仈琛� */ namespace Admin.NET.Core { /// <summary> - /// 鍖呰鍏崇郴鍩虹琛� + /// 鐗╂枡瀹㈡埛鍏宠仈琛� /// </summary> - [Table("wms_container_packaging")] - [Comment("鍖呰鍏崇郴鍩虹琛�")] - public class WmsContainerPackaging : DEntityBase + [Table("wms_material_customer")] + [Comment("鐗╂枡瀹㈡埛鍏宠仈琛�")] + public class WmsMaterialCustomer : DEntityBase { /// <summary> - /// 瀹瑰櫒绫诲瀷ID + /// 鐗╂枡ID /// </summary> - [Comment("瀹瑰櫒绫诲瀷ID")] + [Comment("鐗╂枡ID")] [Required] - public long ContainerTypeId { get; set; } + public long MaterialId { get; set; } /// <summary> - /// 瀹瑰櫒绫诲瀷鍚嶇О + /// 鐗╂枡缂栧彿 /// </summary> - [Comment("瀹瑰櫒绫诲瀷鍚嶇О")] + [Comment("鐗╂枡缂栧彿")] + [Required] + [MaxLength(50)] + public string MaterialCode { get; set; } + + + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + [Comment("鐗╂枡鍚嶇О")] + [Required] + [MaxLength(50)] + public string MaterialName { get; set; } + + + /// <summary> + /// 瀹㈡埛ID + /// </summary> + [Comment("瀹㈡埛ID")] + [Required] + + public long CustId { get; set; } + + + /// <summary> + /// 瀹㈡埛缂栧彿 + /// </summary> + [Comment("瀹㈡埛缂栧彿")] + [Required] + [MaxLength(50)] + public string CustCode { get; set; } + + + /// <summary> + /// 瀹㈡埛鑻辨枃鍚嶇О + /// </summary> + [Comment("瀹㈡埛鑻辨枃鍚嶇О")] + [MaxLength(255)] + public string CustEnglishName { get; set; } + + + /// <summary> + /// 瀹㈡埛涓枃鍚嶇О + /// </summary> + [Comment("瀹㈡埛涓枃鍚嶇О")] [Required] [MaxLength(255)] - public string ContainerTypeName { get; set; } - - - /// <summary> - /// 鐗╂枡绫诲瀷ID - /// </summary> - [Comment("鐗╂枡绫诲瀷ID")] - [Required] - - public long MaterialTypeId { get; set; } - - - /// <summary> - /// 鐗╂枡绫诲瀷缂栧彿 - /// </summary> - [Comment("鐗╂枡绫诲瀷缂栧彿")] - [Required] - [MaxLength(255)] - public string MaterialTypeCode { get; set; } - - - /// <summary> - /// 鐗╂枡绫诲瀷鍚嶇О - /// </summary> - [Comment("鐗╂枡绫诲瀷鍚嶇О")] - [Required] - [MaxLength(255)] - public string MaterialTypeName { get; set; } - - - /// <summary> - /// 鐗╂枡瀹瑰櫒瀹归噺 - /// </summary> - [Comment("鐗╂枡瀹瑰櫒瀹归噺")] - - [Column("BoxQty", TypeName = "decimal(10,3)")] - public decimal? BoxQty { get; set; } + public string CustChinaName { get; set; } diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Enum/Wms/WmsMaterialEnum.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Enum/Wms/WmsMaterialEnum.cs index 7ffd97b..3f73207 100644 --- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Enum/Wms/WmsMaterialEnum.cs +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Core/Enum/Wms/WmsMaterialEnum.cs @@ -50,15 +50,15 @@ BIAOZHUANCHANPIN = 4, /// <summary> - /// 鍖呰鏉愭枡 + /// 瀹瑰櫒鏉愭枡 /// </summary> - [Description("鍖呰鏉愭枡")] + [Description("瀹瑰櫒鏉愭枡")] BAOZHUANGCAILIAO = 5, /// <summary> /// 杈呭姪鏉愭枡 /// </summary> - [Description("鍖呰鏉愭枡")] + [Description("瀹瑰櫒鏉愭枡")] FUZHUCAILIAO = 6, /// <summary> diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/WmsMaterialCustomerImport.xlsx b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/WmsMaterialCustomerImport.xlsx new file mode 100644 index 0000000..0a3dc76 --- /dev/null +++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/WmsMaterialCustomerImport.xlsx Binary files differ -- Gitblit v1.9.3