From 351d0c46f037840fe01a237204812aed2caed757 Mon Sep 17 00:00:00 2001 From: TanYibin <5491541@qq.com> Date: Fri, 8 Dec 2023 10:47:04 +0800 Subject: [PATCH] 波次管理页面提交 --- ant-design-vue-jeecg/src/views/system/config/WaveConfigDetailList.vue | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ant-design-vue-jeecg/src/views/system/config/WaveConfigList.vue | 276 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ant-design-vue-jeecg/src/views/system/config/modules/WaveConfigDetailModal.vue | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ant-design-vue-jeecg/src/views/system/config/modules/WaveConfigModal.vue | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/controller/WaveConfigController.java | 305 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/entity/WaveConfig.java | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/entity/WaveConfigDetail.java | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/WaveConfigDetailMapper.java | 20 ++++++++++++++++++++ huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/WaveConfigMapper.java | 17 +++++++++++++++++ huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/xml/WaveConfigMapper.xml | 5 +++++ huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/IWaveConfigDetailService.java | 16 ++++++++++++++++ huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/IWaveConfigService.java | 29 +++++++++++++++++++++++++++++ huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/impl/WaveConfigDetailServiceImpl.java | 27 +++++++++++++++++++++++++++ huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/impl/WaveConfigServiceImpl.java | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 14 files changed, 1358 insertions(+), 0 deletions(-) create mode 100644 ant-design-vue-jeecg/src/views/system/config/WaveConfigDetailList.vue create mode 100644 ant-design-vue-jeecg/src/views/system/config/WaveConfigList.vue create mode 100644 ant-design-vue-jeecg/src/views/system/config/modules/WaveConfigDetailModal.vue create mode 100644 ant-design-vue-jeecg/src/views/system/config/modules/WaveConfigModal.vue create mode 100644 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/controller/WaveConfigController.java create mode 100644 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/entity/WaveConfig.java create mode 100644 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/entity/WaveConfigDetail.java create mode 100644 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/WaveConfigDetailMapper.java create mode 100644 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/WaveConfigMapper.java create mode 100644 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/xml/WaveConfigMapper.xml create mode 100644 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/IWaveConfigDetailService.java create mode 100644 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/IWaveConfigService.java create mode 100644 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/impl/WaveConfigDetailServiceImpl.java create mode 100644 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/impl/WaveConfigServiceImpl.java diff --git a/ant-design-vue-jeecg/src/views/system/config/WaveConfigDetailList.vue b/ant-design-vue-jeecg/src/views/system/config/WaveConfigDetailList.vue new file mode 100644 index 0000000..f1f567e --- /dev/null +++ b/ant-design-vue-jeecg/src/views/system/config/WaveConfigDetailList.vue @@ -0,0 +1,174 @@ +<template> + <a-card :bordered="false" :class="'cust-erp-sub-tab'"> + <!-- 操作按钮区域 --> + <div class="table-operator" v-if="mainId"> + <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> + <a-dropdown v-if="selectedRowKeys.length > 0"> + <a-menu slot="overlay"> + <a-menu-item key="1" @click="batchDel"><a-icon type="delete" />删除</a-menu-item> + </a-menu> + <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down"/></a-button> + </a-dropdown> + </div> + + <!-- table区域-begin --> + <div> + <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项 + <a style="margin-left: 24px" @click="onClearSelected">清空</a> + </div> + + <a-table + ref="table" + size="middle" + bordered + rowKey="id" + :scroll="{ x: true }" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" + @change="handleTableChange" + > + <span slot="action" slot-scope="text, record"> + <a @click="handleEdit(record)">编辑</a> + <a-divider type="vertical" /> + <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> + <a>删除</a> + </a-popconfirm> + </span> + </a-table> + </div> + + <waveConfigDetail-modal ref="modalForm" @ok="modalFormOk" :mainId="mainId"></waveConfigDetail-modal> + </a-card> +</template> + +<script> +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import WaveConfigDetailModal from './modules/WaveConfigDetailModal' + +export default { + name: 'WaveConfigDetailList', + mixins: [JeecgListMixin], + components: { WaveConfigDetailModal }, + props: { + mainId: { + type: String, + default: '', + required: false + } + }, + watch: { + mainId: { + immediate: true, + handler(val) { + if (!this.mainId) { + this.clearList() + } else { + this.queryParam['mainId'] = val + this.loadData(1) + } + } + } + }, + data() { + return { + description: '波次配置管理页面', + disableMixinCreated: true, + // 表头 + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '主表ID', + align: 'center', + dataIndex: 'mainId' + }, + { + title: '物料编码', + align: 'center', + dataIndex: 'materialCode' + }, + { + title: '物料名称', + align: 'center', + dataIndex: 'materialName' + }, + { + title: '装载数量', + align: 'center', + dataIndex: 'loadingCount' + }, + { + title: '排序优先级', + align: 'center', + dataIndex: 'sortingPriority' + }, + { + title: '创建人', + align: 'center', + dataIndex: 'createBy' + }, + { + title: '创建日期', + align: 'center', + dataIndex: 'createTime' + }, + { + title: '更新人', + align: 'center', + dataIndex: 'updateBy' + }, + { + title: '更新日期', + align: 'center', + dataIndex: 'updateTime' + }, + { + title: '操作', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 147, + scopedSlots: { customRender: 'action' } + } + ], + url: { + list: '/waveConfig/waveConfig/listWaveConfigDetailByMainId', + delete: '/waveConfig/waveConfig/deleteWaveConfigDetail', + deleteBatch: '/waveConfig/waveConfig/deleteBatchWaveConfigDetail', + exportXlsUrl: '/waveConfig/waveConfig/exportWaveConfigDetail', + importUrl: '/waveConfig/waveConfig/importWaveConfigDetail' + }, + dictOptions: {} + } + }, + created() {}, + computed: { + importExcelUrl() { + return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}` + } + }, + methods: { + clearList() { + this.dataSource = [] + this.selectedRowKeys = [] + this.ipagination.current = 1 + } + } +} +</script> +<style scoped> +@import '~@assets/less/common.less'; +</style> diff --git a/ant-design-vue-jeecg/src/views/system/config/WaveConfigList.vue b/ant-design-vue-jeecg/src/views/system/config/WaveConfigList.vue new file mode 100644 index 0000000..e6bea02 --- /dev/null +++ b/ant-design-vue-jeecg/src/views/system/config/WaveConfigList.vue @@ -0,0 +1,276 @@ +<template> + <a-card :bordered="false"> + <!-- 查询区域 --> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="波次名称"> + <a-input placeholder="请输入波次名称" v-model="queryParam.waveName"></a-input> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="波次模式"> + <j-dict-select-tag placeholder="请选择波次模式" v-model="queryParam.waveModel" dictCode="wave_model" /> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="是否启用"> + <j-dict-select-tag placeholder="请选择是否启用" v-model="queryParam.isEnable" dictCode="is_enable_status" /> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> + <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> + <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button> + </span> + </a-col> + </a-row> + </a-form> + </div> + <!-- 查询区域-END --> + + <!-- 操作按钮区域 --> + <div class="table-operator"> + <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> + <a-button type="primary" icon="download" @click="handleExportXls('波次配置')">导出</a-button> + <a-upload + name="file" + :showUploadList="false" + :multiple="false" + :headers="tokenHeader" + :action="importExcelUrl" + @change="handleImportExcel" + > + <a-button type="primary" icon="import">导入</a-button> + </a-upload> + <!-- 高级查询区域 --> + <j-super-query + :fieldList="superFieldList" + ref="superQueryModal" + @handleSuperQuery="handleSuperQuery" + ></j-super-query> + </div> + + <!-- table区域-begin --> + <div> + <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;"> + <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a> 项 + <a style="margin-left: 24px" @click="onClearSelected">清空</a> + </div> + + <a-table + ref="table" + size="middle" + bordered + rowKey="id" + class="j-table-force-nowrap" + :scroll="{ x: true }" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type: 'radio' }" + :customRow="clickThenSelect" + @change="handleTableChange" + > + + <span slot="action" slot-scope="text, record"> + <a @click="handleEdit(record)">编辑</a> + <a-divider type="vertical" /> + <a-dropdown> + <a class="ant-dropdown-link">更多 <a-icon type="down"/></a> + <a-menu slot="overlay"> + <a-menu-item> + <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> + <a>删除</a> + </a-popconfirm> + </a-menu-item> + </a-menu> + </a-dropdown> + </span> + + </a-table> + </div> + + <a-tabs defaultActiveKey="1"> + <a-tab-pane tab="波次配置详情" key="1"> + <WaveConfigDetailList :mainId="selectedMainId" /> + </a-tab-pane> + </a-tabs> + + <waveConfig-modal ref="modalForm" @ok="modalFormOk"></waveConfig-modal> + </a-card> +</template> + +<script> +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import WaveConfigModal from './modules/WaveConfigModal' +import { getAction } from '@/api/manage' +import WaveConfigDetailList from './WaveConfigDetailList' +import '@/assets/less/TableExpand.less' + +export default { + name: 'WaveConfigList', + mixins: [JeecgListMixin], + components: { + WaveConfigDetailList, + WaveConfigModal + }, + data() { + return { + description: '波次配置管理页面', + // 表头 + columns: [ + { + title: '波次名称', + align: 'center', + dataIndex: 'waveName' + }, + { + title: '波次大小', + align: 'center', + dataIndex: 'waveSize' + }, + { + title: '波次周期(秒)', + align: 'center', + dataIndex: 'waveCycle' + }, + { + title: '波次模式', + align: 'center', + dataIndex: 'waveModel_dictText', + scopedSlots: {customRender: 'waveModel_dictText'} + }, + { + title: '是否启用', + align: 'center', + dataIndex: 'isEnable_dictText', + scopedSlots: {customRender: 'isEnable_dictText'} + }, + { + title: '创建人', + align: 'center', + dataIndex: 'createBy' + }, + { + title: '创建日期', + align: 'center', + dataIndex: 'createTime' + }, + { + title: '更新人', + align: 'center', + dataIndex: 'updateBy' + }, + { + title: '更新日期', + align: 'center', + dataIndex: 'updateTime' + }, + { + title: '操作', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 147, + scopedSlots: { customRender: 'action' } + } + ], + url: { + list: '/waveConfig/waveConfig/list', + delete: '/waveConfig/waveConfig/delete', + deleteBatch: '/waveConfig/waveConfig/deleteBatch', + exportXlsUrl: '/waveConfig/waveConfig/exportXls', + importExcelUrl: 'waveConfig/waveConfig/importExcel' + }, + dictOptions: {}, + /* 分页参数 */ + ipagination: { + current: 1, + pageSize: 5, + pageSizeOptions: ['5', '10', '50'], + showTotal: (total, range) => { + return range[0] + '-' + range[1] + ' 共' + total + '条' + }, + showQuickJumper: true, + showSizeChanger: true, + total: 0 + }, + selectedMainId: '', + superFieldList: [] + } + }, + created() { + this.getSuperFieldList() + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + }, + methods: { + initDictConfig() {}, + clickThenSelect(record) { + return { + on: { + click: () => { + this.onSelectChange(record.id.split(','), [record]) + } + } + } + }, + onClearSelected() { + this.selectedRowKeys = [] + this.selectionRows = [] + this.selectedMainId = '' + }, + onSelectChange(selectedRowKeys, selectionRows) { + this.selectedMainId = selectedRowKeys[0] + this.selectedRowKeys = selectedRowKeys + this.selectionRows = selectionRows + }, + loadData(arg) { + if (!this.url.list) { + this.$message.error('请设置url.list属性!') + return + } + //加载数据 若传入参数1则加载第一页的内容 + if (arg === 1) { + this.ipagination.current = 1 + } + this.onClearSelected() + var params = this.getQueryParams() //查询条件 + this.loading = true + getAction(this.url.list, params).then(res => { + if (res.success) { + this.dataSource = res.result.records + this.ipagination.total = res.result.total + } + if (res.code === 510) { + this.$message.warning(res.message) + } + this.loading = false + }) + }, + getSuperFieldList() { + let fieldList = [] + fieldList.push({ type: 'string', value: 'waveName', text: '波次名称', dictCode: '' }) + fieldList.push({ type: 'int', value: 'waveSize', text: '波次大小', dictCode: '' }) + fieldList.push({ type: 'int', value: 'waveCycle', text: '波次周期(秒)', dictCode: '' }) + fieldList.push({ type: 'string', value: 'waveModel', text: '波次模式', dictCode: 'wave_model' }) + fieldList.push({ type: 'int', value: 'isEnable', text: '是否启用', dictCode: 'is_enable_status' }) + fieldList.push({ type: 'string', value: 'createBy', text: '创建人', dictCode: '' }) + fieldList.push({ type: 'datetime', value: 'createTime', text: '创建日期' }) + fieldList.push({ type: 'string', value: 'updateBy', text: '更新人', dictCode: '' }) + fieldList.push({ type: 'datetime', value: 'updateTime', text: '更新日期' }) + this.superFieldList = fieldList + } + } +} +</script> +<style scoped> +@import '~@assets/less/common.less'; +</style> \ No newline at end of file diff --git a/ant-design-vue-jeecg/src/views/system/config/modules/WaveConfigDetailModal.vue b/ant-design-vue-jeecg/src/views/system/config/modules/WaveConfigDetailModal.vue new file mode 100644 index 0000000..00b81be --- /dev/null +++ b/ant-design-vue-jeecg/src/views/system/config/modules/WaveConfigDetailModal.vue @@ -0,0 +1,147 @@ +<template> + <j-modal + :title="title" + :width="width" + :visible="visible" + :confirmLoading="confirmLoading" + switchFullscreen + @ok="handleOk" + @cancel="handleCancel" + cancelText="关闭" + > + <a-spin :spinning="confirmLoading"> + <a-form-model ref="form" :model="model" :rules="validatorRules"> + <a-row> + <a-col :span="24"> + <a-form-model-item label="物料" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="materialCode"> + <j-search-select-tag + v-model="model.materialCode" + dict="material,name,code" + placeholder="请选择物料编码" + :pageSize="10" + :async="true" + /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="装载数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="loadingCount"> + <a-input-number v-model="model.loadingCount" placeholder="请输入装载数量" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="排序优先级" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sortingPriority"> + <a-input-number v-model="model.sortingPriority" placeholder="请输入排序优先级" style="width: 100%" /> + </a-form-model-item> + </a-col> + </a-row> + </a-form-model> + </a-spin> + </j-modal> +</template> + +<script> +import { httpAction } from '@/api/manage' +import { validateDuplicateValue } from '@/utils/util' +import { searchMaterialByCode } from '@/api/api' + +export default { + name: 'WaveConfigDetailModal', + components: {}, + props: { + mainId: { + type: String, + required: false, + default: '' + } + }, + data() { + return { + title: '操作', + width: 800, + visible: false, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 } + }, + confirmLoading: false, + validatorRules: { + materialCode: [{ required: true, message: '请输入物料编码!' }], + loadingCount: [{ required: true, message: '请输入装载数量!' }], + sortingPriority: [{ required: true, message: '请输入排序优先级!' }] + }, + url: { + add: '/waveConfig/waveConfig/addWaveConfigDetail', + edit: '/waveConfig/waveConfig/editWaveConfigDetail' + } + } + }, + created() { + //备份model原始值 + this.modelDefault = JSON.parse(JSON.stringify(this.model)) + this.searchMaterial() + }, + methods: { + searchMaterial() { + const that = this + that.querySource.materialCode = that.model.materialCode + searchMaterialByCode(that.querySource).then(res => { + that.materialList = res.result + }) + }, + add() { + this.edit(this.modelDefault) + }, + edit(record) { + this.model = Object.assign({}, record) + this.visible = true + }, + close() { + this.$emit('close') + this.visible = false + this.$refs.form.clearValidate() + }, + handleOk() { + const that = this + // 触发表单验证 + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = true + let httpurl = '' + let method = '' + if (!this.model.id) { + httpurl += this.url.add + method = 'post' + } else { + httpurl += this.url.edit + method = 'put' + } + this.model['mainId'] = this.mainId + httpAction(httpurl, this.model, method) + .then(res => { + if (res.success) { + that.$message.success(res.message) + that.$emit('ok') + } else { + that.$message.warning(res.message) + } + }) + .finally(() => { + that.confirmLoading = false + that.close() + }) + } else { + return false + } + }) + }, + handleCancel() { + this.close() + } + } +} +</script> diff --git a/ant-design-vue-jeecg/src/views/system/config/modules/WaveConfigModal.vue b/ant-design-vue-jeecg/src/views/system/config/modules/WaveConfigModal.vue new file mode 100644 index 0000000..a0d2287 --- /dev/null +++ b/ant-design-vue-jeecg/src/views/system/config/modules/WaveConfigModal.vue @@ -0,0 +1,138 @@ +<template> + <j-modal + :title="title" + :width="width" + :visible="visible" + :confirmLoading="confirmLoading" + switchFullscreen + @ok="handleOk" + @cancel="handleCancel" + cancelText="关闭"> + <a-spin :spinning="confirmLoading"> + <a-form-model ref="form" :model="model" :rules="validatorRules"> + <a-row> + <a-col :span="24"> + <a-form-model-item label="波次名称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="waveName"> + <a-input v-model="model.waveName" placeholder="请输入波次名称" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="波次大小" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="waveSize"> + <a-input-number v-model="model.waveSize" placeholder="请输入波次大小" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="波次周期(秒)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="waveCycle"> + <a-input-number v-model="model.waveCycle" placeholder="请输入波次周期(秒)" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="波次模式(缺货,补货)" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="waveModel"> + <j-dict-select-tag v-model="model.waveModel" title="波次模式" dictCode="wave_model" placeholder="请输入波次模式"/> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="是否启用" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isEnable"> + <j-dict-select-tag v-model="model.isEnable" title="是否启用" dictCode="is_enable_status" placeholder="请输入是否启用"/> + </a-form-model-item> + </a-col> + </a-row> + </a-form-model> + </a-spin> + </j-modal> +</template> + +<script> + + import { httpAction } from '@/api/manage' + import { validateDuplicateValue } from '@/utils/util' + + export default { + name: "WaveConfigModal", + components: { + }, + data () { + return { + title:"操作", + width:800, + visible: false, + model:{ + }, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 }, + }, + + confirmLoading: false, +validatorRules: { + waveName: [ + { required: true, message: '请输入波次名称!'}, + ], +}, + url: { + add: "/waveConfig/waveConfig/add", + edit: "/waveConfig/waveConfig/edit", + } + + } + }, + created () { + //备份model原始值 + this.modelDefault = JSON.parse(JSON.stringify(this.model)); + }, + methods: { + add () { + this.edit(this.modelDefault); + }, + edit (record) { + this.model = Object.assign({}, record); + this.visible = true; + }, + close () { + this.$emit('close'); + this.visible = false; + this.$refs.form.clearValidate(); + }, + handleOk () { + const that = this; + // 触发表单验证 + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = true; + let httpurl = ''; + let method = ''; + if(!this.model.id){ + httpurl+=this.url.add; + method = 'post'; + }else{ + httpurl+=this.url.edit; + method = 'put'; + } + httpAction(httpurl,this.model,method).then((res)=>{ + if(res.success){ + that.$message.success(res.message); + that.$emit('ok'); + }else{ + that.$message.warning(res.message); + } + }).finally(() => { + that.confirmLoading = false; + that.close(); + }) + }else{ + return false + } + }) + }, + handleCancel () { + this.close() + }, + + + } + } +</script> \ No newline at end of file diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/controller/WaveConfigController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/controller/WaveConfigController.java new file mode 100644 index 0000000..e556fb3 --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/controller/WaveConfigController.java @@ -0,0 +1,305 @@ +package org.jeecg.modules.wms.config.waveConfig.controller; + +import java.io.IOException; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.wms.config.waveConfig.entity.WaveConfig; +import org.jeecg.modules.wms.config.waveConfig.entity.WaveConfigDetail; +import org.jeecg.modules.wms.config.waveConfig.service.IWaveConfigDetailService; +import org.jeecg.modules.wms.config.waveConfig.service.IWaveConfigService; +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; + +/** + * @Description: 波次配置 + * @Author: jeecg-boot + * @Date: 2023-12-07 + * @Version: V1.0 + */ +@Api(tags = "波次配置") +@RestController +@RequestMapping("/waveConfig/waveConfig") +@Slf4j +public class WaveConfigController extends JeecgController<WaveConfig, IWaveConfigService> { + + @Autowired + private IWaveConfigService waveConfigService; + + @Autowired + private IWaveConfigDetailService waveConfigDetailService; + + /*---------------------------------主表处理-begin-------------------------------------*/ + + /** + * 分页列表查询 + * @param waveConfig + * @param pageNo + * @param pageSize + * @param req + * @return + */ + // @AutoLog(value = "波次配置-分页列表查询") + @ApiOperation(value = "波次配置-分页列表查询", notes = "波次配置-分页列表查询") + @GetMapping(value = "/list") + public Result<IPage<WaveConfig>> queryPageList(WaveConfig waveConfig, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { + QueryWrapper<WaveConfig> queryWrapper = QueryGenerator.initQueryWrapper(waveConfig, req.getParameterMap()); + Page<WaveConfig> page = new Page<WaveConfig>(pageNo, pageSize); + IPage<WaveConfig> pageList = waveConfigService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * @param waveConfig + * @return + */ + @AutoLog(value = "波次配置-添加") + @ApiOperation(value = "波次配置-添加", notes = "波次配置-添加") + @RequiresPermissions("waveConfig:add") + @PostMapping(value = "/add") + public Result<String> add(@RequestBody WaveConfig waveConfig) { + waveConfigService.save(waveConfig); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * @param waveConfig + * @return + */ + @AutoLog(value = "波次配置-编辑") + @ApiOperation(value = "波次配置-编辑", notes = "波次配置-编辑") + @RequiresPermissions("waveConfig:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<String> edit(@RequestBody WaveConfig waveConfig) { + waveConfigService.updateById(waveConfig); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * @param id + * @return + */ + @AutoLog(value = "波次配置-通过id删除") + @ApiOperation(value = "波次配置-通过id删除", notes = "波次配置-通过id删除") + @RequiresPermissions("waveConfig:delete") + @DeleteMapping(value = "/delete") + public Result<String> delete(@RequestParam(name = "id", required = true) String id) { + waveConfigService.delMain(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * @param ids + * @return + */ + @AutoLog(value = "波次配置-批量删除") + @ApiOperation(value = "波次配置-批量删除", notes = "波次配置-批量删除") + @RequiresPermissions("waveConfig:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.waveConfigService.delBatchMain(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 导出 + * @return + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, WaveConfig waveConfig) { + return super.exportXls(request, waveConfig, WaveConfig.class, "波次配置"); + } + + /** + * 导入 + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, WaveConfig.class); + } + /*---------------------------------主表处理-end-------------------------------------*/ + + /*--------------------------------子表处理-波次配置详情-begin----------------------------------------------*/ + /** + * 通过主表ID查询 + * @return + */ + // @AutoLog(value = "波次配置详情-通过主表ID查询") + @ApiOperation(value = "波次配置详情-通过主表ID查询", notes = "波次配置详情-通过主表ID查询") + @GetMapping(value = "/listWaveConfigDetailByMainId") + public Result<IPage<WaveConfigDetail>> listWaveConfigDetailByMainId(WaveConfigDetail waveConfigDetail, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<WaveConfigDetail> queryWrapper = QueryGenerator.initQueryWrapper(waveConfigDetail, req.getParameterMap()); + Page<WaveConfigDetail> page = new Page<WaveConfigDetail>(pageNo, pageSize); + IPage<WaveConfigDetail> pageList = waveConfigDetailService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * @param waveConfigDetail + * @return + */ + @AutoLog(value = "波次配置详情-添加") + @ApiOperation(value = "波次配置详情-添加", notes = "波次配置详情-添加") + @PostMapping(value = "/addWaveConfigDetail") + public Result<String> addWaveConfigDetail(@RequestBody WaveConfigDetail waveConfigDetail) { + waveConfigDetailService.save(waveConfigDetail); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * @param waveConfigDetail + * @return + */ + @AutoLog(value = "波次配置详情-编辑") + @ApiOperation(value = "波次配置详情-编辑", notes = "波次配置详情-编辑") + @RequestMapping(value = "/editWaveConfigDetail", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result<String> editWaveConfigDetail(@RequestBody WaveConfigDetail waveConfigDetail) { + waveConfigDetailService.updateById(waveConfigDetail); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * @param id + * @return + */ + @AutoLog(value = "波次配置详情-通过id删除") + @ApiOperation(value = "波次配置详情-通过id删除", notes = "波次配置详情-通过id删除") + @DeleteMapping(value = "/deleteWaveConfigDetail") + public Result<String> deleteWaveConfigDetail(@RequestParam(name = "id", required = true) String id) { + waveConfigDetailService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * @param ids + * @return + */ + @AutoLog(value = "波次配置详情-批量删除") + @ApiOperation(value = "波次配置详情-批量删除", notes = "波次配置详情-批量删除") + @DeleteMapping(value = "/deleteBatchWaveConfigDetail") + public Result<String> deleteBatchWaveConfigDetail(@RequestParam(name = "ids", required = true) String ids) { + this.waveConfigDetailService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 导出 + * @return + */ + @RequestMapping(value = "/exportWaveConfigDetail") + public ModelAndView exportWaveConfigDetail(HttpServletRequest request, WaveConfigDetail waveConfigDetail) { + // Step.1 组装查询条件 + QueryWrapper<WaveConfigDetail> queryWrapper = QueryGenerator.initQueryWrapper(waveConfigDetail, request.getParameterMap()); + LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal(); + + // Step.2 获取导出数据 + List<WaveConfigDetail> pageList = waveConfigDetailService.list(queryWrapper); + List<WaveConfigDetail> exportList = null; + + // 过滤选中数据 + String selections = request.getParameter("selections"); + if (oConvertUtils.isNotEmpty(selections)) { + List<String> selectionList = Arrays.asList(selections.split(",")); + exportList = pageList.stream().filter(item -> selectionList.contains(item.getId().toString())).collect(Collectors.toList()); + } else { + exportList = pageList; + } + + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + mv.addObject(NormalExcelConstants.FILE_NAME, "波次配置详情"); // 此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(NormalExcelConstants.CLASS, WaveConfigDetail.class); + mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("波次配置详情报表", "导出人:" + sysUser.getRealname(), "波次配置详情")); + mv.addObject(NormalExcelConstants.DATA_LIST, exportList); + return mv; + } + + /** + * 导入 + * @return + */ + @RequestMapping(value = "/importWaveConfigDetail/{mainId}") + public Result<?> importWaveConfigDetail(HttpServletRequest request, HttpServletResponse response, @PathVariable("mainId") String mainId) { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request; + Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); + for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) { + MultipartFile file = entity.getValue();// 获取上传文件对象 + ImportParams params = new ImportParams(); + params.setTitleRows(2); + params.setHeadRows(1); + params.setNeedSave(true); + try { + List<WaveConfigDetail> list = ExcelImportUtil.importExcel(file.getInputStream(), WaveConfigDetail.class, params); + for (WaveConfigDetail temp : list) { + temp.setMainId(Integer.parseInt(mainId)); + } + long start = System.currentTimeMillis(); + waveConfigDetailService.saveBatch(list); + log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒"); + return Result.OK("文件导入成功!数据行数:" + list.size()); + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.error("文件导入失败:" + e.getMessage()); + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return Result.error("文件导入失败!"); + } + + /*--------------------------------子表处理-波次配置详情-end----------------------------------------------*/ + +} diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/entity/WaveConfig.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/entity/WaveConfig.java new file mode 100644 index 0000000..d33b978 --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/entity/WaveConfig.java @@ -0,0 +1,80 @@ +package org.jeecg.modules.wms.config.waveConfig.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import org.jeecgframework.poi.excel.annotation.Excel; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Description: 波次配置 + * @Author: jeecg-boot + * @Date: 2023-12-07 + * @Version: V1.0 + */ +@Data +@TableName("wave_config") +@ApiModel(value = "wave_config对象", description = "波次配置") +public class WaveConfig implements Serializable { + private static final long serialVersionUID = 1L; + + /** ID */ + @TableId(type = IdType.AUTO) + @ApiModelProperty(value = "ID") + private java.lang.Integer id; + + /** 波次名称 */ + @Excel(name = "波次名称", width = 15) + @ApiModelProperty(value = "波次名称") + private java.lang.String waveName; + + /** 波次大小 */ + @Excel(name = "波次大小", width = 15) + @ApiModelProperty(value = "波次大小") + private java.lang.Integer waveSize; + + /** 波次周期(秒) */ + @Excel(name = "波次周期(秒)", width = 15) + @ApiModelProperty(value = "波次周期(秒)") + private java.lang.Integer waveCycle; + + /** 波次模式(缺货,补货) */ + @Excel(name = "波次模式(缺货,补货)", width = 15, dicCode = "wave_model") + @ApiModelProperty(value = "波次模式(缺货,补货)") + @Dict(dicCode = "wave_model") + private java.lang.String waveModel; + + /** 是否启用 */ + @Excel(name = "是否启用", width = 15, dicCode = "is_enable_status") + @ApiModelProperty(value = "是否启用") + @Dict(dicCode = "is_enable_status") + private java.lang.Integer isEnable; + + /** 创建人 */ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + + /** 创建日期 */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + + /** 更新人 */ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + + /** 更新日期 */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; +} diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/entity/WaveConfigDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/entity/WaveConfigDetail.java new file mode 100644 index 0000000..15e55e6 --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/entity/WaveConfigDetail.java @@ -0,0 +1,77 @@ +package org.jeecg.modules.wms.config.waveConfig.entity; + +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import org.jeecg.common.aspect.annotation.Dict; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import java.util.Date; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.UnsupportedEncodingException; + +/** + * @Description: 波次配置详情 + * @Author: jeecg-boot + * @Date: 2023-12-07 + * @Version: V1.0 + */ +@Data +@TableName("wave_config_detail") +@ApiModel(value = "wave_config_detail对象", description = "波次配置详情") +public class WaveConfigDetail implements Serializable { + private static final long serialVersionUID = 1L; + + /** ID */ + @TableId(type = IdType.AUTO) + @ApiModelProperty(value = "ID") + private java.lang.Integer id; + + /** 主表ID */ + @ApiModelProperty(value = "主表ID") + private java.lang.Integer mainId; + + /** 物料编码 */ + @Excel(name = "物料编码", width = 15) + @ApiModelProperty(value = "物料编码") + private java.lang.String materialCode; + + /** 物料名称 */ + @Excel(name = "物料名称", width = 15) + @ApiModelProperty(value = "物料名称") + private java.lang.String materialName; + + /** 装载数量 */ + @Excel(name = "装载数量", width = 15) + @ApiModelProperty(value = "装载数量") + private java.lang.Integer loadingCount; + + /** 排序优先级 */ + @Excel(name = "排序优先级", width = 15) + @ApiModelProperty(value = "排序优先级") + private java.lang.Integer sortingPriority; + + /** 创建人 */ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + + /** 创建日期 */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + + /** 更新人 */ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + + /** 更新日期 */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; +} diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/WaveConfigDetailMapper.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/WaveConfigDetailMapper.java new file mode 100644 index 0000000..7d5a9cf --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/WaveConfigDetailMapper.java @@ -0,0 +1,20 @@ +package org.jeecg.modules.wms.config.waveConfig.mapper; + +import java.util.List; +import org.jeecg.modules.wms.config.waveConfig.entity.WaveConfigDetail; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +/** + * @Description: 波次配置详情 + * @Author: jeecg-boot + * @Date: 2023-12-07 + * @Version: V1.0 + */ +public interface WaveConfigDetailMapper extends BaseMapper<WaveConfigDetail> { + + public boolean deleteByMainId(@Param("mainId") String mainId); + + public List<WaveConfigDetail> selectByMainId(@Param("mainId") String mainId); + +} diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/WaveConfigMapper.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/WaveConfigMapper.java new file mode 100644 index 0000000..a821874 --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/WaveConfigMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.wms.config.waveConfig.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.wms.config.waveConfig.entity.WaveConfig; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 波次配置 + * @Author: jeecg-boot + * @Date: 2023-12-07 + * @Version: V1.0 + */ +public interface WaveConfigMapper extends BaseMapper<WaveConfig> { + +} diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/xml/WaveConfigMapper.xml b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/xml/WaveConfigMapper.xml new file mode 100644 index 0000000..12d9e0a --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/mapper/xml/WaveConfigMapper.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.wms.config.waveConfig.mapper.WaveConfigMapper"> + +</mapper> \ No newline at end of file diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/IWaveConfigDetailService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/IWaveConfigDetailService.java new file mode 100644 index 0000000..7cee43f --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/IWaveConfigDetailService.java @@ -0,0 +1,16 @@ +package org.jeecg.modules.wms.config.waveConfig.service; + +import org.jeecg.modules.wms.config.waveConfig.entity.WaveConfigDetail; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: 波次配置详情 + * @Author: jeecg-boot + * @Date: 2023-12-07 + * @Version: V1.0 + */ +public interface IWaveConfigDetailService extends IService<WaveConfigDetail> { + + public List<WaveConfigDetail> selectByMainId(String mainId); +} diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/IWaveConfigService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/IWaveConfigService.java new file mode 100644 index 0000000..b95adb6 --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/IWaveConfigService.java @@ -0,0 +1,29 @@ +package org.jeecg.modules.wms.config.waveConfig.service; + +import org.jeecg.modules.wms.config.waveConfig.entity.WaveConfigDetail; +import org.jeecg.modules.wms.config.waveConfig.entity.WaveConfig; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.beans.factory.annotation.Autowired; +import java.io.Serializable; +import java.util.Collection; +import java.util.List; + +/** + * @Description: 波次配置 + * @Author: jeecg-boot + * @Date: 2023-12-07 + * @Version: V1.0 + */ +public interface IWaveConfigService extends IService<WaveConfig> { + + /** + * 删除一对多 + */ + public void delMain(String id); + + /** + * 批量删除一对多 + */ + public void delBatchMain(Collection<? extends Serializable> idList); + +} diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/impl/WaveConfigDetailServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/impl/WaveConfigDetailServiceImpl.java new file mode 100644 index 0000000..9040c40 --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/impl/WaveConfigDetailServiceImpl.java @@ -0,0 +1,27 @@ +package org.jeecg.modules.wms.config.waveConfig.service.impl; + +import org.jeecg.modules.wms.config.waveConfig.entity.WaveConfigDetail; +import org.jeecg.modules.wms.config.waveConfig.mapper.WaveConfigDetailMapper; +import org.jeecg.modules.wms.config.waveConfig.service.IWaveConfigDetailService; +import org.springframework.stereotype.Service; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description: 波次配置详情 + * @Author: jeecg-boot + * @Date: 2023-12-07 + * @Version: V1.0 + */ +@Service +public class WaveConfigDetailServiceImpl extends ServiceImpl<WaveConfigDetailMapper, WaveConfigDetail> implements IWaveConfigDetailService { + + @Autowired + private WaveConfigDetailMapper waveConfigDetailMapper; + + @Override + public List<WaveConfigDetail> selectByMainId(String mainId) { + return waveConfigDetailMapper.selectByMainId(mainId); + } +} diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/impl/WaveConfigServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/impl/WaveConfigServiceImpl.java new file mode 100644 index 0000000..e2af313 --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/waveConfig/service/impl/WaveConfigServiceImpl.java @@ -0,0 +1,47 @@ +package org.jeecg.modules.wms.config.waveConfig.service.impl; + +import org.jeecg.modules.wms.config.waveConfig.entity.WaveConfig; +import org.jeecg.modules.wms.config.waveConfig.entity.WaveConfigDetail; +import org.jeecg.modules.wms.config.waveConfig.mapper.WaveConfigDetailMapper; +import org.jeecg.modules.wms.config.waveConfig.mapper.WaveConfigMapper; +import org.jeecg.modules.wms.config.waveConfig.service.IWaveConfigService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import java.io.Serializable; +import java.util.List; +import java.util.Collection; + +/** + * @Description: 波次配置 + * @Author: jeecg-boot + * @Date: 2023-12-07 + * @Version: V1.0 + */ +@Service +public class WaveConfigServiceImpl extends ServiceImpl<WaveConfigMapper, WaveConfig> implements IWaveConfigService { + + @Autowired + private WaveConfigMapper waveConfigMapper; + + @Autowired + private WaveConfigDetailMapper waveConfigDetailMapper; + + @Override + @Transactional + public void delMain(String id) { + waveConfigDetailMapper.deleteByMainId(id); + waveConfigMapper.deleteById(id); + } + + @Override + @Transactional + public void delBatchMain(Collection<? extends Serializable> idList) { + for (Serializable id : idList) { + waveConfigDetailMapper.deleteByMainId(id.toString()); + waveConfigMapper.deleteById(id); + } + } + +} -- libgit2 0.22.2