diff --git a/ant-design-vue-jeecg/src/views/system/config/ContainerList.vue b/ant-design-vue-jeecg/src/views/system/config/ContainerList.vue index 623db06..ac83874 100644 --- a/ant-design-vue-jeecg/src/views/system/config/ContainerList.vue +++ b/ant-design-vue-jeecg/src/views/system/config/ContainerList.vue @@ -20,8 +20,7 @@ show-search placeholder="请选择容器类型" option-filter-prop="children" - v-model="queryParam.containerTypeCode" - > + v-model="queryParam.containerTypeCode"> <a-select-option v-for="item in containerTypeList" :key="item.name" :value="item.code" >{{ item.name }} </a-select-option> @@ -252,6 +251,13 @@ export default { scopedSlots: {customRender: 'fillStatus_dictText'} }, { + title: '库区', + align: "center", + dataIndex: 'zoneCode', + key: 'zoneCode', + scopedSlots: {customRender: 'zoneCode'} + }, + { title: '创建人', align: 'center', dataIndex: 'createBy' diff --git a/ant-design-vue-jeecg/src/views/system/config/LocationHighList.vue b/ant-design-vue-jeecg/src/views/system/config/LocationHighList.vue index 8b23bdb..86d4edb 100644 --- a/ant-design-vue-jeecg/src/views/system/config/LocationHighList.vue +++ b/ant-design-vue-jeecg/src/views/system/config/LocationHighList.vue @@ -5,6 +5,19 @@ <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-select + show-search + placeholder="请选择库区" + option-filter-prop="children" + v-model="queryParam.zoneCode"> + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code"> + {{ item.name }} + </a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="编码"> <a-input placeholder="请输入编码" v-model="queryParam.code"></a-input> </a-form-item> @@ -68,6 +81,13 @@ class="j-table-force-nowrap" @change="handleTableChange"> + + <span slot="zoneCode" slot-scope="zoneCode"> + <a-tag :key="zoneCode" color=blue> + {{ solutionZoneCode(zoneCode) }} + </a-tag> + </span> + <span slot="locationTypeCode" slot-scope="locationTypeCode"> <a-tag :key="locationTypeCode" color=pink> {{ solutionLocationType(locationTypeCode) }} @@ -125,7 +145,7 @@ import '@/assets/less/TableExpand.less' import {mixinDevice} from '@/utils/mixin' import {JeecgListMixin} from '@/mixins/JeecgListMixin' import LocationHighModal from './modules/LocationHighModal' -import {getLocationTypeList} from '@/api/api' +import {getLocationTypeList, getZoneList} from '@/api/api' export default { name: 'LocationHighList', @@ -167,6 +187,13 @@ export default { scopedSlots: {customRender: 'locationTypeCode'} }, { + title: '库区', + align: "center", + dataIndex: 'zoneCode', + key: 'zoneCode', + scopedSlots: {customRender: 'zoneCode'} + }, + { title: '高低位', align: "center", dataIndex: 'high_dictText' @@ -246,7 +273,23 @@ export default { if (res.success) { this.locationTypeList = res.result } + }), + getZoneList().then((res) => { + if (res.success) { + this.zoneList = res.result + } + }); + }, + solutionZoneCode(value) { + var actions = [] + console.log("solutionZoneCode " + this.zoneList); + Object.keys(this.zoneList).some((key) => { + if (this.zoneList[key].code == ('' + value)) { + actions.push(this.zoneList[key].name) + return true + } }) + return actions.join('') }, solutionLocationType(value) { var actions = [] diff --git a/ant-design-vue-jeecg/src/views/system/config/ParameterConfigurationList.vue b/ant-design-vue-jeecg/src/views/system/config/ParameterConfigurationList.vue index c3fe1af..8406d99 100644 --- a/ant-design-vue-jeecg/src/views/system/config/ParameterConfigurationList.vue +++ b/ant-design-vue-jeecg/src/views/system/config/ParameterConfigurationList.vue @@ -14,6 +14,20 @@ <a-input placeholder="请输入参数键名" v-model="queryParam.code"></a-input> </a-form-item> </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="库区"> + <a-select + show-search + placeholder="请选择库区" + option-filter-prop="children" + v-model="queryParam.zoneCode"> + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">{{ + item.name + }} + </a-select-option> + </a-select> + </a-form-item> + </a-col> <template v-if="toggleSearchStatus"> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="参数键值"> @@ -79,6 +93,12 @@ class="j-table-force-nowrap" @change="handleTableChange"> + <span slot="zoneCode" slot-scope="zoneCode"> + <a-tag :key="zoneCode" color=blue> + {{ solutionZoneCode(zoneCode) }} + </a-tag> + </span> + <template slot="htmlSlot" slot-scope="text"> <div v-html="text"></div> </template> @@ -132,6 +152,7 @@ import '@/assets/less/TableExpand.less' import {mixinDevice} from '@/utils/mixin' import {JeecgListMixin} from '@/mixins/JeecgListMixin' import ParameterConfigurationModal from './modules/ParameterConfigurationModal' +import {getZoneList} from "@api/api"; export default { name: 'ParameterConfigurationList', @@ -142,6 +163,7 @@ export default { data() { return { description: '参数配置管理页面', + zoneList: [], // 表头 columns: [ { @@ -155,6 +177,13 @@ export default { } }, { + title: '库区', + align: "center", + dataIndex: 'zoneCode', + key: 'zoneCode', + scopedSlots: {customRender: 'zoneCode'} + }, + { title: '参数名称', align: "center", dataIndex: 'name' @@ -217,6 +246,7 @@ export default { }, created() { this.getSuperFieldList(); + this.loadFrom(); }, computed: { importExcelUrl: function () { @@ -226,6 +256,24 @@ export default { methods: { initDictConfig() { }, + loadFrom() { + getZoneList().then((res) => { + if (res.success) { + this.zoneList = res.result + } + }); + }, + solutionZoneCode(value) { + var actions = [] + console.log("solutionZoneCode " + this.zoneList); + Object.keys(this.zoneList).some((key) => { + if (this.zoneList[key].code == ('' + value)) { + actions.push(this.zoneList[key].name) + return true + } + }) + return actions.join('') + }, getSuperFieldList() { let fieldList = []; fieldList.push({type: 'string', value: 'name', text: '参数名称', dictCode: ''}) diff --git a/ant-design-vue-jeecg/src/views/system/config/modules/ContainerForm.vue b/ant-design-vue-jeecg/src/views/system/config/modules/ContainerForm.vue index 9e9a18c..ef8f9d9 100644 --- a/ant-design-vue-jeecg/src/views/system/config/modules/ContainerForm.vue +++ b/ant-design-vue-jeecg/src/views/system/config/modules/ContainerForm.vue @@ -17,6 +17,20 @@ </a-form-model-item> </a-col> <a-col :span="24"> + <a-form-model-item label="库区" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="zoneCode"> + <a-select + show-search + placeholder="请选择库区" + option-filter-prop="children" + v-model="model.zoneCode"> + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">{{ + item.name + }} + </a-select-option> + </a-select> + </a-form-model-item> + </a-col> + <a-col :span="24"> <a-form-model-item label="数量" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userdef1"> <a-input v-model="model.userdef1" placeholder="请输入数量"></a-input> </a-form-model-item> diff --git a/ant-design-vue-jeecg/src/views/system/config/modules/ContainerModal.vue b/ant-design-vue-jeecg/src/views/system/config/modules/ContainerModal.vue index 0168dfd..b3f7410 100644 --- a/ant-design-vue-jeecg/src/views/system/config/modules/ContainerModal.vue +++ b/ant-design-vue-jeecg/src/views/system/config/modules/ContainerModal.vue @@ -15,6 +15,7 @@ <script> import ContainerForm from './ContainerForm' +import {getZoneList} from "@api/api"; export default { name: 'ContainerModal', diff --git a/ant-design-vue-jeecg/src/views/system/config/modules/LocationHighForm.vue b/ant-design-vue-jeecg/src/views/system/config/modules/LocationHighForm.vue index c3dc0d5..7ac6a3d 100644 --- a/ant-design-vue-jeecg/src/views/system/config/modules/LocationHighForm.vue +++ b/ant-design-vue-jeecg/src/views/system/config/modules/LocationHighForm.vue @@ -19,6 +19,20 @@ </a-form-model-item> </a-col> <a-col :span="24"> + <a-form-model-item label="库区" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="zoneCode"> + <a-select + show-search + placeholder="请选择库区" + option-filter-prop="children" + v-model="model.zoneCode"> + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">{{ + item.name + }} + </a-select-option> + </a-select> + </a-form-model-item> + </a-col> + <a-col :span="24"> <a-form-model-item label="高低位" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="high"> <j-dict-select-tag type="list" v-model="model.high" dictCode="high_status" placeholder="请选择高低位"/> </a-form-model-item> @@ -38,6 +52,7 @@ import {httpAction, getAction} from '@/api/manage' import {validateDuplicateValue} from '@/utils/util' +import {getContainerTypeList, getZoneList} from "@api/api"; export default { name: 'LocationHighForm', @@ -53,6 +68,7 @@ export default { data() { return { model: {}, + zoneList: [], labelCol: { xs: {span: 24}, sm: {span: 5}, @@ -91,6 +107,7 @@ export default { created() { //备份model原始值 this.modelDefault = JSON.parse(JSON.stringify(this.model)); + this.loadFrom(); }, methods: { add() { @@ -100,6 +117,13 @@ export default { this.model = Object.assign({}, record); this.visible = true; }, + loadFrom() { + getZoneList().then((res) => { + if (res.success) { + this.zoneList = res.result + } + }); + }, submitForm() { const that = this; // 触发表单验证 diff --git a/ant-design-vue-jeecg/src/views/system/config/modules/ParameterConfigurationForm.vue b/ant-design-vue-jeecg/src/views/system/config/modules/ParameterConfigurationForm.vue index c82b297..00638c0 100644 --- a/ant-design-vue-jeecg/src/views/system/config/modules/ParameterConfigurationForm.vue +++ b/ant-design-vue-jeecg/src/views/system/config/modules/ParameterConfigurationForm.vue @@ -14,6 +14,20 @@ </a-form-model-item> </a-col> <a-col :span="24"> + <a-form-model-item label="库区" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="zoneCode"> + <a-select + show-search + placeholder="请选择库区" + option-filter-prop="children" + v-model="model.zoneCode"> + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">{{ + item.name + }} + </a-select-option> + </a-select> + </a-form-model-item> + </a-col> + <a-col :span="24"> <a-form-model-item label="参数键值" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="value"> <a-input v-model="model.value" placeholder="请输入参数键值"></a-input> </a-form-model-item> @@ -33,6 +47,7 @@ import {httpAction, getAction} from '@/api/manage' import {validateDuplicateValue} from '@/utils/util' +import {getZoneList} from "@api/api"; export default { name: 'ParameterConfigurationForm', @@ -48,6 +63,7 @@ export default { data() { return { model: {}, + zoneList: [], labelCol: { xs: {span: 24}, sm: {span: 5}, @@ -73,6 +89,7 @@ export default { created() { //备份model原始值 this.modelDefault = JSON.parse(JSON.stringify(this.model)); + this.loadFrom(); }, methods: { add() { @@ -82,6 +99,13 @@ export default { this.model = Object.assign({}, record); this.visible = true; }, + loadFrom() { + getZoneList().then((res) => { + if (res.success) { + this.zoneList = res.result + } + }); + }, submitForm() { const that = this; // 触发表单验证 diff --git a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentDetailList.vue b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentDetailList.vue index 8484194..a19800e 100644 --- a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentDetailList.vue +++ b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentDetailList.vue @@ -157,11 +157,16 @@ export default { dataIndex: 'qty' }, { - title: '已出数量', + title: '配盘数量', align: "center", dataIndex: 'taskQty' }, { + title: '已出数量', + align: "center", + dataIndex: 'shipmentQty' + }, + { title: '可出数量', align: "center", dataIndex: 'availableQty' diff --git a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue index c9e1d62..a2efa50 100644 --- a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue +++ b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentHeaderList.vue @@ -5,6 +5,20 @@ <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-select + show-search + placeholder="请选择库区" + option-filter-prop="children" + v-model="queryParam.zoneCode"> + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">{{ + item.name + }} + </a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="出库单编码"> <a-input placeholder="请输入出库单编码" v-model="queryParam.code"></a-input> </a-form-item> @@ -158,6 +172,12 @@ </a-tag> </span> + <span slot="zoneCode" slot-scope="zoneCode"> + <a-tag :key="zoneCode" color=blue> + {{ solutionZoneCode(zoneCode) }} + </a-tag> + </span> + <span slot="type" slot-scope="type"> <a-tag :key="type" color=pink> {{ solutionShipmentType(type) }} @@ -197,8 +217,8 @@ </a-popconfirm> <a v-if="((record.firstStatus >= 15 && record.firstStatus != '20' && record.lastStatus <= 200)) || (flowOff == '0' && record.lastStatus <= 200)" @click="autoShipmentCombine(record)" v-has="'shipmentHeader:autoShipmentCombine'"><a-button type="primary">自动配盘</a-button><a-divider type="vertical"/></a> - <a v-if="((record.firstStatus >= 15 && record.firstStatus != '20' && record.lastStatus < 800)) - || (flowOff == '0' && record.lastStatus < 800)" @click="openAutoShipmentCombine(record)" v-has="'shipmentHeader:autoShipment'"><a-button type="primary">自动出库</a-button></a> + <a v-if="((record.firstStatus >= 15 && record.firstStatus != '20' && record.lastStatus <= 200)) + || (flowOff == '0' && record.lastStatus <= 200)" @click="openAutoShipmentCombine(record)" v-has="'shipmentHeader:autoShipment'"><a-button type="primary">自动出库</a-button></a> <a-dropdown v-if="(record.firstStatus > 0 && record.firstStatus <= 20 && flowOff=='1') || (record.firstStatus == 0 && record.lastStatus == 0 && record.referCode == null)"> <a class="ant-dropdown-link"><a-divider type="vertical"/>更多 <a-icon type="down"/></a> <a-menu slot="overlay"> @@ -240,7 +260,7 @@ import {getAction} from '@/api/manage' import ShipmentDetailList from './ShipmentDetailList' import {initDictOptions, filterMultiDictText} from '@/components/dict/JDictSelectUtil' import '@/assets/less/TableExpand.less' -import {getCompanyList, backErpShipment} from '@/api/api' +import {getCompanyList, backErpShipment, getZoneList} from '@/api/api' import {getShipmentTypeList} from '@/api/api' import {getCustomerList} from '@/api/api' import {autoCombination} from '@/api/api' @@ -266,6 +286,7 @@ export default { selectIndex: null, description: '出库单管理页面', companyList: [], + zoneList: [], shipmentTypeList: [], customerList: [], username: '', @@ -285,6 +306,13 @@ export default { dataIndex: 'code' }, { + title: '库区', + align: "center", + dataIndex: 'zoneCode', + key: 'zoneCode', + scopedSlots: {customRender: 'zoneCode'} + }, + { title: '货主', align: "center", dataIndex: 'companyCode', @@ -528,6 +556,11 @@ export default { this.customerList = res.result } }); + getZoneList().then((res) => { + if (res.success) { + this.zoneList = res.result + } + }); }, batchPrint() { if (this.selectedRowKeys.length <= 0) { @@ -549,6 +582,17 @@ export default { }) return actions.join('') }, + solutionZoneCode(value) { + var actions = [] + console.log("solutionZoneCode " + this.zoneList); + Object.keys(this.zoneList).some((key) => { + if (this.zoneList[key].code == ('' + value)) { + actions.push(this.zoneList[key].name) + return true + } + }) + return actions.join('') + }, solutionShipmentType(value) { var actions = [] Object.keys(this.shipmentTypeList).some((key) => { @@ -624,6 +668,7 @@ export default { let fieldList = []; fieldList.push({type: 'string', value: 'code', text: '出库单编码', dictCode: ''}) fieldList.push({type: 'string', value: 'companyCode', text: '货主', dictCode: ''}) + fieldList.push({type: 'string', value: 'zoneCode', text: '库区', dictCode: ''}) fieldList.push({type: 'string', value: 'type', text: '出库单类型', dictCode: ''}) fieldList.push({type: 'int', value: 'firstStatus', text: '头状态', dictCode: 'shipment_status'}) fieldList.push({type: 'int', value: 'lastStatus', text: '尾状态', dictCode: 'shipment_status'}) diff --git a/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentHeaderModal.vue b/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentHeaderModal.vue index 8e47e56..798dde0 100644 --- a/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentHeaderModal.vue +++ b/ant-design-vue-jeecg/src/views/system/shipment/modules/ShipmentHeaderModal.vue @@ -42,6 +42,21 @@ </a-col> <a-col :span="24"> + <a-form-model-item label="库区" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="zoneCode"> + <a-select + show-search + placeholder="请选择库区" + option-filter-prop="children" + v-model="model.zoneCode"> + <a-select-option v-for="item in zoneList" :key="item.name" :value="item.code">{{ + item.name + }} + </a-select-option> + </a-select> + </a-form-model-item> + </a-col> + + <a-col :span="24"> <a-form-model-item label="客户编码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="customerCode"> <a-select show-search @@ -71,7 +86,7 @@ import {httpAction} from '@/api/manage' import {validateDuplicateValue} from '@/utils/util' -import {getCompanyList} from '@/api/api' +import {getCompanyList, getZoneList} from '@/api/api' import {getShipmentTypeList} from '@/api/api' import {getCustomerList} from '@/api/api' @@ -83,6 +98,7 @@ export default { companyList: [], shipmentTypeList: [], customerList: [], + zoneList: [], title: "操作", width: 800, visible: false, @@ -178,6 +194,11 @@ export default { this.customerList = res.result } }); + getZoneList().then((res) => { + if (res.success) { + this.zoneList = res.result + } + }); }, } diff --git a/huaheng-wms-core/pom.xml b/huaheng-wms-core/pom.xml index b288905..aba8680 100644 --- a/huaheng-wms-core/pom.xml +++ b/huaheng-wms-core/pom.xml @@ -209,8 +209,8 @@ <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> - <!-- 启动jar包命令:包含引入lib包,开启远程调试端口7080,启动环境选择 - java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=7080,suspend=n -jar -Dloader.path=./lib -Dspring.profiles.active=prod huaheng-wms-core.jar --> + <!-- 启动jar包命令:包含引入lib包,开启远程调试端口7080,启动环境选择 java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=7080,suspend=n -jar -Dloader.path=./lib + -Dspring.profiles.active=prod huaheng-wms-core.jar --> <configuration> <mainClass>org.jeecg.JeecgSystemApplication</mainClass> <layout>ZIP</layout> diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/impl/MobileService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/impl/MobileService.java index 38f52a7..ce3a28e 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/impl/MobileService.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/mobile/service/impl/MobileService.java @@ -74,7 +74,7 @@ public class MobileService implements IMobileService { String fromLocationCode = container.getLocationCode(); String toLocationCode = QuantityConstant.EMPTY_STRING; - String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION); + String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION, container.getZoneCode()); int taskLocationRule = Integer.parseInt(value); if (taskLocationRule == QuantityConstant.RULE_TASK_SET_LOCATION) { toLocationCode = fromLocationCode; diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/LocationAllocationServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/LocationAllocationServiceImpl.java index 3893892..597348a 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/LocationAllocationServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/LocationAllocationServiceImpl.java @@ -241,7 +241,7 @@ public class LocationAllocationServiceImpl implements LocationAllocationService if (StringUtils.isEmpty(roadWays)) { return roadWay; } - roadWay = getRoadWayByMaxFreeLocation(roadWays, warehouseCode); + roadWay = locationAllocationService.getRoadWayByMaxFreeLocation(roadWays, warehouseCode); return roadWay; } @@ -278,7 +278,12 @@ public class LocationAllocationServiceImpl implements LocationAllocationService @Override @Transactional(rollbackFor = Exception.class) public List<Integer> removeRoadWaysByPreLocations(List<Integer> roadWays, String warehouseCode) { + String value = parameterConfigurationService.getValueByCode(QuantityConstant.MAX_ROADWAY_RECEIPT); // 同巷道分配的库位大于等于2时,这个巷道就不能再分了 + int maxRoadReceipt = 2; + if (StringUtils.isNotEmpty(value)) { + maxRoadReceipt = Integer.parseInt(value); + } LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); taskHeaderLambdaQueryWrapper.lt(TaskHeader::getStatus, QuantityConstant.TASK_STATUS_COMPLETED).ne(TaskHeader::getToLocationCode, QuantityConstant.EMPTY_STRING); @@ -288,7 +293,8 @@ public class LocationAllocationServiceImpl implements LocationAllocationService List<Integer> removeRoadWayList = new ArrayList<>(); for (Integer roadWay : roadWays) { int i = Collections.frequency(roadWayList, roadWay); - if (i >= 2) { + // 同巷道分配的库位大于等于2时,这个巷道就不能再分了 + if (i >= maxRoadReceipt) { removeRoadWayList.add(roadWay); } } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java index 2a87d9b..f85ca29 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/api/wcs/service/WcsServiceImpl.java @@ -109,8 +109,7 @@ public class WcsServiceImpl implements WcsService { @Transactional(rollbackFor = Exception.class) @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'详情分配库位'", extra = "#extraJsonString", msg = "'任务ID:' + #warecellDomain.getTaskNo() + ',库位编码:' + #locationCode", recordReturnValue = true) - @OperationLog(bizId = "#taskHeader == null ? '' : #taskHeader.getId()", bizType = "'任务追踪'", tag = "'分配库位'", - msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()", + @OperationLog(bizId = "#taskHeader == null ? '' : #taskHeader.getId()", bizType = "'任务追踪'", tag = "'分配库位'", msg = "'目标库位:' + #taskHeader.getToLocationCode()", recordReturnValue = true) public Result warecellAllocation(WarecellDomain warecellDomain) { log.info("开始分配库位"); @@ -159,7 +158,7 @@ public class WcsServiceImpl implements WcsService { if (containerType == null) { return Result.error("分配库位时,托盘类型为空,托盘类型值为" + containerTypeCode); } - String locationTypeCodes = containerType.getLocationType(); + List<String> locationTypeCodes = containerType.getLocationTypes(); // 查询满足条件的库位类型 LambdaQueryWrapper<LocationType> locationTypeLambdaQueryWrapper = Wrappers.lambdaQuery(); locationTypeLambdaQueryWrapper.in(LocationType::getCode, locationTypeCodes).eq(LocationType::getWarehouseCode, warehouseCode); @@ -170,13 +169,14 @@ public class WcsServiceImpl implements WcsService { int highHeight = Float.valueOf(height).intValue(); List<String> locationTypeCodeList = locationTypeList.stream().map(t -> t.getCode()).collect(Collectors.toList()); LambdaQueryWrapper<LocationHigh> locationHighLambdaQueryWrapper = Wrappers.lambdaQuery(); - locationHighLambdaQueryWrapper.eq(LocationHigh::getHighLevel, highHeight).in(LocationHigh::getLocationTypeCode, locationTypeCodeList); + locationHighLambdaQueryWrapper.eq(LocationHigh::getHighLevel, highHeight).in(LocationHigh::getLocationTypeCode, locationTypeCodeList) + .eq(LocationHigh::getZoneCode, zoneCode); LocationHigh locationHigh = locationHighService.getOne(locationHighLambdaQueryWrapper); if (locationHigh == null) { return Result.error("分配库位时,高度不匹配,WCS给的高度值" + highHeight + "不在WMS系统配置范围内"); } int high = locationHigh.getHigh(); - String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_ALLOCATION); + String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_ALLOCATION, zoneCode); if (StringUtils.isEmpty(value)) { return Result.error("分配库位时, 未绑定定位规则"); } @@ -289,7 +289,7 @@ public class WcsServiceImpl implements WcsService { @Override @Transactional(rollbackFor = Exception.class) @OperationLog(bizId = "#taskHeader == null ? '' : #taskHeader.getId()", bizType = "'任务追踪'", tag = "'任务下发'", extra = "''", - msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()", + msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',容器编码:' + #taskHeader.getContainerCode()", recordReturnValue = true) public Result wcsTaskAssign(TaskHeader taskHeader) { if (taskHeader == null) { @@ -425,13 +425,13 @@ public class WcsServiceImpl implements WcsService { throw new JeecgBootException("下发任务时,容器没有找到"); } - String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_CONNECT_WCS); + String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_CONNECT_WCS, container.getZoneCode()); if (StringUtils.isEmpty(value)) { throw new JeecgBootException("下发任务时,没有找到连接WCS的数据配置"); } int connectWCS = Integer.parseInt(value); if (connectWCS == QuantityConstant.RULE_WCS_CONNECT) { - String url = addressService.getUrlByParam(QuantityConstant.ADDRESS_WCS_TASK_ASSIGN); + String url = addressService.getUrlByParam(QuantityConstant.ADDRESS_WCS_TASK_ASSIGN, warehouseCode, container.getZoneCode()); wcsTask = switchTaskTypeToWcs(wcsTask); String jsonParam = JSON.toJSONString(wcsTask); System.out.println(jsonParam); @@ -702,8 +702,7 @@ public class WcsServiceImpl implements WcsService { @Override @Transactional(rollbackFor = Exception.class) @OperationLog(bizId = "#taskHeader == null ? '' : #taskHeader.getId()", bizType = "'任务追踪'", tag = "'到达站台'", extra = "''", - msg = "'任务类型:' + #taskHeader.getTaskType() + ',起始库位:' + #taskHeader.getFromLocationCode() + ',目标库位:' + #taskHeader.getToLocationCode() + ',容器编码:' + #taskHeader.getContainerCode() + ',目标出入口:' + #taskHeader.getToPortCode()", - recordReturnValue = true) + msg = "'目标出入口:' + #taskHeader.getToPortCode()", recordReturnValue = true) public Result arrivedNotice(String taskNo, String port) { TaskHeader taskHeader = taskHeaderService.getById(taskNo); if (taskHeader == null) { diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/address/service/impl/AddressServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/address/service/impl/AddressServiceImpl.java index 8ab0738..9fa1ceb 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/address/service/impl/AddressServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/address/service/impl/AddressServiceImpl.java @@ -36,7 +36,7 @@ public class AddressServiceImpl extends ServiceImpl<AddressMapper, Address> impl .eq(!StringUtils.isEmpty(zoneCode), Address::getZoneCode, zoneCode); Address address = getOne(addressLambdaQueryWrapper); if (address == null) { - return null; + return getUrlByParam(param); } return address.getUrl(); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java index 71453eb..0bd6629 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java @@ -53,6 +53,7 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container public Result<?> batchAddContainers(Container container, int number) { String containerTypeCode = container.getContainerTypeCode(); String warehouseCode = container.getWarehouseCode(); + String zoneCode = container.getZoneCode(); int startNumber = getStartNumber(containerTypeCode, container.getWarehouseCode()); List<Container> containerList = new ArrayList<>(); for (int i = 0; i < number; i++) { @@ -61,6 +62,7 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container addcontainer.setContainerTypeCode(containerTypeCode); String code = String.format("%s%05d", containerTypeCode, startNumber); addcontainer.setCode(code); + addcontainer.setZoneCode(zoneCode); addcontainer.setStatus(QuantityConstant.STATUS_CONTAINER_EMPTY); addcontainer.setFillStatus(QuantityConstant.STATUS_CONTAINER_FILL_EMPTY); addcontainer.setWarehouseCode(warehouseCode); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationHigh/entity/LocationHigh.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationHigh/entity/LocationHigh.java index 4ce203f..18dd2f5 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationHigh/entity/LocationHigh.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/locationHigh/entity/LocationHigh.java @@ -1,19 +1,18 @@ package org.jeecg.modules.wms.config.locationHigh.entity; import java.io.Serializable; -import java.io.UnsupportedEncodingException; import java.util.Date; -import java.math.BigDecimal; + +import org.jeecg.common.aspect.annotation.Dict; +import org.jeecgframework.poi.excel.annotation.Excel; + import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.springframework.format.annotation.DateTimeFormat; -import org.jeecgframework.poi.excel.annotation.Excel; -import org.jeecg.common.aspect.annotation.Dict; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -60,6 +59,9 @@ public class LocationHigh implements Serializable { @ApiModelProperty(value = "高低位") @Dict(dicCode = "high_status") private Integer high; + @Excel(name = "库区编码", width = 15) + @ApiModelProperty(value = "库区编码") + private String zoneCode; /** 备用字段 */ @Excel(name = "备用字段", width = 15) @ApiModelProperty(value = "备用字段") diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/materialWarning/entity/MaterialLevelAlarm.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/materialWarning/entity/MaterialLevelAlarm.java index ce30fd4..e8516f8 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/materialWarning/entity/MaterialLevelAlarm.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/materialWarning/entity/MaterialLevelAlarm.java @@ -48,17 +48,16 @@ public class MaterialLevelAlarm extends MaterialWarning { @Override public String toString() { - String str = getMaterialName() + " " + getMaterialCode() + " 库存数=" + qtySum + " "; + String str = "<ul>"; if (inLower) { - str = str + " < " + getLower(); + str = str + "<li><b>" + getMaterialName() + "</b> " + getMaterialCode() + " 库存数" + getQtySum() + " 低于下限预警值" + getLower() + "</li>"; } else if (inUpper) { - str = str + " > " + getUpper(); + str = str + "<li><b>" + getMaterialName() + "</b> " + getMaterialCode() + " 库存数" + getQtySum() + " 高于上限预警值" + getUpper() + "</li>"; } else if (inMin) { - str = str + " < " + getMin(); + str = str + "<li><b>" + getMaterialName() + "</b> " + getMaterialCode() + " 库存数" + getQtySum() + " 低于最低值" + getMin() + "</li>"; } else if (inMax) { - str = str + " > " + getMax(); + str = str + "<li><b>" + getMaterialName() + "</b> " + getMaterialCode() + " 库存数" + getQtySum() + " 超过最高值" + getMax() + "</li>"; } - - return str; + return str + "</ul>"; } } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/materialWarning/entity/MaterialWarning.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/materialWarning/entity/MaterialWarning.java index a9ed765..d42aabd 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/materialWarning/entity/MaterialWarning.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/materialWarning/entity/MaterialWarning.java @@ -74,11 +74,11 @@ public class MaterialWarning implements Serializable { /** 上限预警值 */ @Excel(name = "上限预警值", width = 15) @ApiModelProperty(value = "上限预警值") - private Integer upper; + private int upper; /** 下限预警值 */ @Excel(name = "下限预警值", width = 15) @ApiModelProperty(value = "下限预警值") - private Integer lower; + private int lower; /** 备注 */ @Excel(name = "备注", width = 15) @ApiModelProperty(value = "备注") diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/parameterConfiguration/entity/ParameterConfiguration.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/parameterConfiguration/entity/ParameterConfiguration.java index 39c98b2..e488696 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/parameterConfiguration/entity/ParameterConfiguration.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/parameterConfiguration/entity/ParameterConfiguration.java @@ -1,19 +1,17 @@ package org.jeecg.modules.wms.config.parameterConfiguration.entity; import java.io.Serializable; -import java.io.UnsupportedEncodingException; import java.util.Date; -import java.math.BigDecimal; + +import org.jeecgframework.poi.excel.annotation.Excel; + import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.springframework.format.annotation.DateTimeFormat; -import org.jeecgframework.poi.excel.annotation.Excel; -import org.jeecg.common.aspect.annotation.Dict; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -47,6 +45,10 @@ public class ParameterConfiguration implements Serializable { @Excel(name = "参数键值", width = 15) @ApiModelProperty(value = "参数键值") private String value; + /** 库区 */ + @Excel(name = "库区", width = 15) + @ApiModelProperty(value = "库区") + private String zoneCode; /** 备注 */ @Excel(name = "备注", width = 15) @ApiModelProperty(value = "备注") diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/parameterConfiguration/service/IParameterConfigurationService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/parameterConfiguration/service/IParameterConfigurationService.java index 02711c0..3a26f53 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/parameterConfiguration/service/IParameterConfigurationService.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/parameterConfiguration/service/IParameterConfigurationService.java @@ -14,5 +14,7 @@ public interface IParameterConfigurationService extends IService<ParameterConfig String getValueByCode(String code); + String getValueByCode(String code, String zoneCode); + int getValueIntByCode(String code); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/parameterConfiguration/service/impl/ParameterConfigurationServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/parameterConfiguration/service/impl/ParameterConfigurationServiceImpl.java index e00d270..a8ee222 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/parameterConfiguration/service/impl/ParameterConfigurationServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/parameterConfiguration/service/impl/ParameterConfigurationServiceImpl.java @@ -1,8 +1,11 @@ package org.jeecg.modules.wms.config.parameterConfiguration.service.impl; +import javax.annotation.Resource; + import org.jeecg.modules.wms.config.parameterConfiguration.entity.ParameterConfiguration; import org.jeecg.modules.wms.config.parameterConfiguration.mapper.ParameterConfigurationMapper; import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService; +import org.jeecg.utils.constant.QuantityConstant; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -18,10 +21,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @Service public class ParameterConfigurationServiceImpl extends ServiceImpl<ParameterConfigurationMapper, ParameterConfiguration> implements IParameterConfigurationService { + @Resource + IParameterConfigurationService parameterConfigurationService; + @Override public String getValueByCode(String code) { LambdaQueryWrapper<ParameterConfiguration> parameterConfigurationLambdaQueryWrapper = Wrappers.lambdaQuery(); - parameterConfigurationLambdaQueryWrapper.eq(ParameterConfiguration::getCode, code); + parameterConfigurationLambdaQueryWrapper.eq(ParameterConfiguration::getCode, code).eq(ParameterConfiguration::getZoneCode, QuantityConstant.EMPTY_STRING); ParameterConfiguration parameterConfiguration = getOne(parameterConfigurationLambdaQueryWrapper); if (parameterConfiguration == null) { return null; @@ -31,6 +37,18 @@ public class ParameterConfigurationServiceImpl extends ServiceImpl<ParameterConf } @Override + public String getValueByCode(String code, String zoneCode) { + LambdaQueryWrapper<ParameterConfiguration> parameterConfigurationLambdaQueryWrapper = Wrappers.lambdaQuery(); + parameterConfigurationLambdaQueryWrapper.eq(ParameterConfiguration::getCode, code).eq(ParameterConfiguration::getZoneCode, zoneCode); + ParameterConfiguration parameterConfiguration = getOne(parameterConfigurationLambdaQueryWrapper); + if (parameterConfiguration == null) { + return parameterConfigurationService.getValueByCode(code); + } + String value = parameterConfiguration.getValue(); + return value; + } + + @Override public int getValueIntByCode(String code) { LambdaQueryWrapper<ParameterConfiguration> parameterConfigurationLambdaQueryWrapper = Wrappers.lambdaQuery(); parameterConfigurationLambdaQueryWrapper.eq(ParameterConfiguration::getCode, code); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java index 28f1a93..a954f5c 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryHeaderServiceImpl.java @@ -250,7 +250,7 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe } List<Integer> shipmentContainerHeaderIdList = - shipmentContainerDetailList.stream().map(ShipmentContainerDetail::getShipmentContainerId).collect(Collectors.toList()); + shipmentContainerDetailList.stream().map(ShipmentContainerDetail::getShipmentContainerId).distinct().collect(Collectors.toList()); long shipmentOrder = System.currentTimeMillis(); int sequenceNumber = shipmentContainerHeaderIdList.size(); int sequence = 0; @@ -336,7 +336,7 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe } List<Integer> shipmentContainerHeaderIdList = - shipmentContainerDetailList.stream().map(ShipmentContainerDetail::getShipmentContainerId).collect(Collectors.toList()); + shipmentContainerDetailList.stream().map(ShipmentContainerDetail::getShipmentContainerId).distinct().collect(Collectors.toList()); long shipmentOrder = System.currentTimeMillis(); int sequenceNumber = shipmentContainerHeaderIdList.size(); int sequence = 0; diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/MaterialLevelAlarmTask.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/MaterialLevelAlarmTask.java index 32f7d72..c106e6f 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/MaterialLevelAlarmTask.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/MaterialLevelAlarmTask.java @@ -77,7 +77,7 @@ public class MaterialLevelAlarmTask implements Job { String msg = String.join("\n", list); SysAnnouncement sysAnnouncement = new SysAnnouncement(); - String title = "物料水位预警" + DateUtils.now(); + String title = "物料水位预警"; sysAnnouncement.setTitile(title); sysAnnouncement.setMsgContent(msg); sysAnnouncement.setEndTime(DateUtil.offsetDay(new Date(), 1)); @@ -86,6 +86,7 @@ public class MaterialLevelAlarmTask implements Job { sysAnnouncement.setMsgCategory(CommonConstant.MSG_CATEGORY_2); sysAnnouncement.setMsgType(CommonConstant.MSG_TYPE_ALL); sysAnnouncement.setMsgAbstract(title); + sysAnnouncement.setSender("WMS"); sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0.toString()); sysAnnouncement.setSendStatus(CommonSendStatus.PUBLISHED_STATUS_1); sysAnnouncementService.saveAnnouncement(sysAnnouncement); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java index 802a106..eb70b13 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java @@ -11,6 +11,7 @@ import javax.annotation.Resource; import org.jeecg.common.api.vo.Result; import org.jeecg.common.exception.JeecgBootException; +import org.jeecg.modules.wms.config.container.entity.Container; import org.jeecg.modules.wms.config.container.service.IContainerService; import org.jeecg.modules.wms.config.location.service.ILocationService; import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService; @@ -331,7 +332,19 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai if (receiptContainerStatus != QuantityConstant.RECEIPT_CONTAINER_TASK) { throw new JeecgBootException("取消入库任务时, 任务状态不为生成任务状态"); } - String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION); + String containerCode = taskHeader.getContainerCode(); + String warehouseCode = taskHeader.getWarehouseCode(); + if (StringUtils.isEmpty(containerCode)) { + throw new JeecgBootException("取消入库任务时, 容器编码为空"); + } + if (StringUtils.isEmpty(warehouseCode)) { + throw new JeecgBootException("取消入库任务时, 仓库编码为空"); + } + Container container = containerService.getContainerByCode(containerCode, warehouseCode); + if (container == null) { + throw new JeecgBootException("取消入库任务时, 容器为空"); + } + String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION, container.getZoneCode()); if (StringUtils.isEmpty(value)) { throw new JeecgBootException("取消入库任务时, 没有获取到配置属性"); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java index 38f6c03..d85cb5f 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiving/service/impl/ReceiveServiceImpl.java @@ -174,7 +174,7 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl receiptContainerHeader.setTaskType(taskType); receiptContainerHeader.setFromLocationCode(fromLocationCode); if (taskType == QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT) { - String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION); + String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION, container.getZoneCode()); int taskLocationRule = Integer.parseInt(value); if (taskLocationRule == QuantityConstant.RULE_TASK_SET_LOCATION) { receiptContainerHeader.setToLocationCode(fromLocationCode); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java index ca983e0..95fffb1 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/impl/ShipmentCombinationServiceImpl.java @@ -98,6 +98,7 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi String companyCode = shipmentDetail.getCompanyCode(); String materialCode = shipmentDetail.getMaterialCode(); String inventoryStatus = shipmentDetail.getInventoryStatus(); + String zoneCode = shipmentDetail.getZoneCode(); if (StringUtils.isEmpty(warehouseCode)) { throw new JeecgBootException("寻找库存详情时,出库详情没有仓库编码"); } @@ -114,6 +115,7 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getWarehouseCode, warehouseCode).eq(InventoryDetail::getCompanyCode, companyCode) .eq(InventoryDetail::getMaterialCode, materialCode).eq(InventoryDetail::getInventoryStatus, inventoryStatus) .eq(InventoryDetail::getEnable, QuantityConstant.INVENTORY_DETAIL_STATUS_ENABLE) + .eq(StringUtils.isNotEmpty(zoneCode), InventoryDetail::getZoneCode, zoneCode) .eq(InventoryDetail::getContainerStatus, QuantityConstant.STATUS_CONTAINER_EMPTY); List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper); return inventoryDetailList; @@ -394,7 +396,7 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi } } } else { - String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION); + String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION, container.getZoneCode()); if (StringUtils.isEmpty(value)) { throw new JeecgBootException("取消入库任务时, 没有获取到配置属性"); } @@ -514,6 +516,10 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi if (location == null) { return Result.error("生成出库任务时, 库位编码" + fromLocationCode + "没有找到库位"); } + Container container = containerService.getContainerByCode(containerCode, warehouseCode); + if (container == null) { + throw new JeecgBootException("生成出库任务时, 容器为空"); + } if (location.getRowFlag() == QuantityConstant.ROW_OUT) { Location location1 = locationService.getNear(location); if (location1 != null) { @@ -542,7 +548,7 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi } else if (inventoryTotal.compareTo(shipmentTotal) > 0) { taskType = QuantityConstant.TASK_TYPE_SORTINGSHIPMENT; } - String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_SHIPMENT_TASK); + String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_SHIPMENT_TASK, container.getZoneCode()); int shipmentTaskRule = Integer.parseInt(value); if (shipmentTaskRule == QuantityConstant.RULE_TASK_PICK_SHIPMENT) { taskType = QuantityConstant.TASK_TYPE_SORTINGSHIPMENT; @@ -618,7 +624,7 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi if (!success) { throw new JeecgBootException("生成出库任务时, 创建任务详情失败"); } - value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION); + value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION, container.getZoneCode()); int taskLocationRule = Integer.parseInt(value); int shipmentContainerHeaderId = shipmentContainerHeader.getId(); shipmentContainerHeader = new ShipmentContainerHeader(); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/entity/ShipmentDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/entity/ShipmentDetail.java index ed33cfd..5e4ba57 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/entity/ShipmentDetail.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/entity/ShipmentDetail.java @@ -48,6 +48,10 @@ public class ShipmentDetail implements Serializable { @Excel(name = "仓库编码", width = 15) @ApiModelProperty(value = "仓库编码") private String warehouseCode; + /** 库区 */ + @Excel(name = "库区", width = 15) + @ApiModelProperty(value = "库区") + private String zoneCode; /** 货主编码 */ @Excel(name = "货主编码", width = 15) @ApiModelProperty(value = "货主编码") @@ -72,10 +76,14 @@ public class ShipmentDetail implements Serializable { @Excel(name = "单据数量", width = 15) @ApiModelProperty(value = "单据数量") private java.math.BigDecimal qty; - /** 已出数量 */ - @Excel(name = "已出数量", width = 15) - @ApiModelProperty(value = "已出数量") + /** 配盘数量 */ + @Excel(name = "配盘数量", width = 15) + @ApiModelProperty(value = "配盘数量") private java.math.BigDecimal taskQty; + /** 出库数量 */ + @Excel(name = "出库数量", width = 15) + @ApiModelProperty(value = "出库数量") + private java.math.BigDecimal shipmentQty; /** 可出数量 */ @ApiModelProperty(value = "可出数量") @TableField(exist = false) diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/entity/ShipmentHeader.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/entity/ShipmentHeader.java index 76e9618..ae97ae9 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/entity/ShipmentHeader.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/entity/ShipmentHeader.java @@ -43,6 +43,10 @@ public class ShipmentHeader implements Serializable { @Excel(name = "仓库编码", width = 15) @ApiModelProperty(value = "仓库编码") private String warehouseCode; + /** 库区 */ + @Excel(name = "库区", width = 15) + @ApiModelProperty(value = "库区") + private String zoneCode; /** 货主编码 */ @Excel(name = "货主编码", width = 15) @ApiModelProperty(value = "货主编码") diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentDetailServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentDetailServiceImpl.java index 315de77..24ef246 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentDetailServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentDetailServiceImpl.java @@ -71,6 +71,7 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, String warehouseCode = shipmentHeader.getWarehouseCode(); String companyCode = shipmentHeader.getCompanyCode(); String materialCode = shipmentDetail.getMaterialCode(); + String zoneCode = shipmentHeader.getZoneCode(); Material material = materialService.getMaterialByCode(materialCode); if (material == null) { return Result.error("添加失败,没有找到物料信息," + materialCode); @@ -85,6 +86,7 @@ public class ShipmentDetailServiceImpl extends ServiceImpl<ShipmentDetailMapper, shipmentDetail.setMaterialSpec(materialSpec); shipmentDetail.setMaterialUnit(materialUnit); shipmentDetail.setStatus(QuantityConstant.RECEIPT_HEADER_BUILD); + shipmentDetail.setZoneCode(zoneCode); boolean success = shipmentDetailService.save(shipmentDetail); if (!success) { throw new JeecgBootException("添加失败, 保存出库单详情的时候报错"); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java index 4661a15..6a06e1a 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java @@ -317,7 +317,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } String fromLocationCode = container.getLocationCode(); String toLocationCode = QuantityConstant.EMPTY_STRING; - String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION); + String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION, container.getZoneCode()); int taskLocationRule = Integer.parseInt(value); if (taskLocationRule == QuantityConstant.RULE_TASK_SET_LOCATION) { toLocationCode = fromLocationCode; @@ -873,6 +873,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } // 保存历史任务表 taskHeaderHistoryService.saveById(taskHeader.getId()); + if (!taskHeaderService.removeById(taskId)) { throw new JeecgBootException("取消任务失败, 删除任务失败"); } @@ -1258,7 +1259,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if (StringUtils.isEmpty(fromLocationCode)) { return Result.error("完成出库任务" + taskHeader.getId() + "没有起始库位,执行中止"); } - if (StringUtils.isEmpty(toLocationCode) && taskType == QuantityConstant.TASK_TYPE_SORTINGSHIPMENT) { + if (StringUtils.isEmpty(toLocationCode) && (taskType == QuantityConstant.TASK_TYPE_SORTINGSHIPMENT)) { return Result.error("完成出库任务,任务" + taskHeader.getId() + "没有目的库位,执行中止"); } InventoryHeader inventoryHeader = inventoryHeaderService.getInventoryHeaderByContainerCode(containerCode, warehouseCode); @@ -1284,18 +1285,21 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } taskDetail.setShipmentCode(shipmentDetail.getShipmentCode()); int shipmentDetailId = shipmentDetail.getId(); + BigDecimal shipmentQty = shipmentDetail.getShipmentQty(); + shipmentQty = shipmentQty.add(taskDetail.getQty()); int status = QuantityConstant.SHIPMENT_HEADER_COMPLETED; - if (shipmentDetail.getQty().compareTo(shipmentDetail.getTaskQty()) == 0) { + if (shipmentDetail.getQty().compareTo(shipmentQty) == 0) { status = QuantityConstant.SHIPMENT_HEADER_COMPLETED; - } else if (shipmentDetail.getQty().compareTo(shipmentDetail.getTaskQty()) > 0) { + } else if (shipmentDetail.getQty().compareTo(shipmentQty) > 0) { status = QuantityConstant.SHIPMENT_HEADER_OFF_SHELF; - } else if (shipmentDetail.getQty().compareTo(shipmentDetail.getTaskQty()) < 0) { - throw new JeecgBootException("完成出库任务时, 出库单 单据数量不能小于配盘数量"); + } else if (shipmentDetail.getQty().compareTo(shipmentQty) < 0) { + throw new JeecgBootException("完成出库任务时, 出库单 单据数量不能小于出库数量"); } shipmentDetailList.add(shipmentDetail); ShipmentDetail updateStatusShipmentDetail = new ShipmentDetail(); updateStatusShipmentDetail.setId(shipmentDetailId); updateStatusShipmentDetail.setStatus(status); + updateStatusShipmentDetail.setShipmentQty(shipmentQty); updateStatusShipmentDetailList.add(updateStatusShipmentDetail); InventoryDetail inventoryDetail = inventoryDetailService.getById(taskDetail.getFromInventoryDetailId()); if (inventoryDetail == null) { diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeaderHistory/service/impl/TaskHeaderHistoryServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeaderHistory/service/impl/TaskHeaderHistoryServiceImpl.java index 305806b..ec281f7 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeaderHistory/service/impl/TaskHeaderHistoryServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeaderHistory/service/impl/TaskHeaderHistoryServiceImpl.java @@ -1,9 +1,12 @@ package org.jeecg.modules.wms.task.taskHeaderHistory.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.io.Serializable; +import java.util.Collection; +import java.util.List; + +import javax.annotation.Resource; + import org.jeecg.common.exception.JeecgBootException; -import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail; -import org.jeecg.modules.wms.receipt.receiptHeaderHistory.entity.ReceiptDetailHistory; import org.jeecg.modules.wms.task.taskHeader.entity.TaskDetail; import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; import org.jeecg.modules.wms.task.taskHeader.service.ITaskDetailService; @@ -15,100 +18,98 @@ import org.jeecg.modules.wms.task.taskHeaderHistory.mapper.TaskHeaderHistoryMapp import org.jeecg.modules.wms.task.taskHeaderHistory.service.ITaskDetailHistoryService; import org.jeecg.modules.wms.task.taskHeaderHistory.service.ITaskHeaderHistoryService; import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; -import javax.annotation.Resource; -import java.io.Serializable; -import java.util.List; -import java.util.Collection; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; /** * @Description: task_header_history - * @Author: jeecg-boot - * @Date: 2023-09-14 - * @Version: V1.0 + * @Author: jeecg-boot + * @Date: 2023-09-14 + * @Version: V1.0 */ @Service public class TaskHeaderHistoryServiceImpl extends ServiceImpl<TaskHeaderHistoryMapper, TaskHeaderHistory> implements ITaskHeaderHistoryService { - @Autowired - private TaskHeaderHistoryMapper taskHeaderHistoryMapper; - @Autowired - private TaskDetailHistoryMapper taskDetailHistoryMapper; - @Resource - private ITaskHeaderService taskHeaderService; - @Resource - private ITaskDetailService taskDetailService; - @Resource - private ITaskDetailHistoryService taskDetailHistoryService; - + @Autowired + private TaskHeaderHistoryMapper taskHeaderHistoryMapper; + @Autowired + private TaskDetailHistoryMapper taskDetailHistoryMapper; + @Resource + private ITaskHeaderService taskHeaderService; + @Resource + private ITaskDetailService taskDetailService; + @Resource + private ITaskDetailHistoryService taskDetailHistoryService; - @Override - @Transactional - public void saveMain(TaskHeaderHistory taskHeaderHistory, List<TaskDetailHistory> taskDetailHistoryList) { - taskHeaderHistoryMapper.insert(taskHeaderHistory); - if(taskDetailHistoryList!=null && taskDetailHistoryList.size()>0) { - for(TaskDetailHistory entity:taskDetailHistoryList) { - //外键设置 - entity.setTaskHeaderId(taskHeaderHistory.getId()); - taskDetailHistoryMapper.insert(entity); - } - } - } + @Override + @Transactional + public void saveMain(TaskHeaderHistory taskHeaderHistory, List<TaskDetailHistory> taskDetailHistoryList) { + taskHeaderHistoryMapper.insert(taskHeaderHistory); + if (taskDetailHistoryList != null && taskDetailHistoryList.size() > 0) { + for (TaskDetailHistory entity : taskDetailHistoryList) { + // 外键设置 + entity.setTaskHeaderId(taskHeaderHistory.getId()); + taskDetailHistoryMapper.insert(entity); + } + } + } - @Override - @Transactional - public void updateMain(TaskHeaderHistory taskHeaderHistory,List<TaskDetailHistory> taskDetailHistoryList) { - taskHeaderHistoryMapper.updateById(taskHeaderHistory); + @Override + @Transactional + public void updateMain(TaskHeaderHistory taskHeaderHistory, List<TaskDetailHistory> taskDetailHistoryList) { + taskHeaderHistoryMapper.updateById(taskHeaderHistory); - //1.先删除子表数据 - //taskDetailHistoryMapper.deleteByMainId(taskHeaderHistory.getId()); + // 1.先删除子表数据 + // taskDetailHistoryMapper.deleteByMainId(taskHeaderHistory.getId()); - //2.子表数据重新插入 - if(taskDetailHistoryList!=null && taskDetailHistoryList.size()>0) { - for(TaskDetailHistory entity:taskDetailHistoryList) { - //外键设置 - entity.setTaskHeaderId(taskHeaderHistory.getId()); - taskDetailHistoryMapper.insert(entity); - } - } - } + // 2.子表数据重新插入 + if (taskDetailHistoryList != null && taskDetailHistoryList.size() > 0) { + for (TaskDetailHistory entity : taskDetailHistoryList) { + // 外键设置 + entity.setTaskHeaderId(taskHeaderHistory.getId()); + taskDetailHistoryMapper.insert(entity); + } + } + } - @Override - @Transactional - public void delMain(String id) { - taskDetailHistoryMapper.deleteByMainId(id); - taskHeaderHistoryMapper.deleteById(id); - } + @Override + @Transactional + public void delMain(String id) { + taskDetailHistoryMapper.deleteByMainId(id); + taskHeaderHistoryMapper.deleteById(id); + } - @Override - @Transactional - public void delBatchMain(Collection<? extends Serializable> idList) { - for(Serializable id:idList) { - taskDetailHistoryMapper.deleteByMainId(id.toString()); - taskHeaderHistoryMapper.deleteById(id); - } - } + @Override + @Transactional + public void delBatchMain(Collection<? extends Serializable> idList) { + for (Serializable id : idList) { + taskDetailHistoryMapper.deleteByMainId(id.toString()); + taskHeaderHistoryMapper.deleteById(id); + } + } - @Override - public void saveById(Integer id) { - TaskHeader taskHeader=taskHeaderService.getById(id); - TaskHeaderHistory taskHeaderHistory=new TaskHeaderHistory(); - BeanUtils.copyProperties(taskHeader,taskHeaderHistory); - taskHeaderHistoryMapper.insert(taskHeaderHistory); - List<TaskDetail>taskDetailList=taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getTaskHeaderId, taskHeader.getId())); - if (!CollectionUtils.isEmpty(taskDetailList)) { - for (TaskDetail detail : taskDetailList) { - TaskDetailHistory taskDetailHistory = new TaskDetailHistory(); - BeanUtils.copyProperties(detail, taskDetailHistory); - if (!taskDetailHistoryService.save(taskDetailHistory)) { - throw new JeecgBootException("批量新增失败"); - } - } - } + @Override + @Transactional + public void saveById(Integer id) { + TaskHeader taskHeader = taskHeaderService.getById(id); + TaskHeaderHistory taskHeaderHistory = new TaskHeaderHistory(); + BeanUtils.copyProperties(taskHeader, taskHeaderHistory); + taskHeaderHistoryMapper.insert(taskHeaderHistory); + List<TaskDetail> taskDetailList = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getTaskHeaderId, taskHeader.getId())); + if (!CollectionUtils.isEmpty(taskDetailList)) { + for (TaskDetail detail : taskDetailList) { + TaskDetailHistory taskDetailHistory = new TaskDetailHistory(); + BeanUtils.copyProperties(detail, taskDetailHistory); + if (!taskDetailHistoryService.save(taskDetailHistory)) { + throw new JeecgBootException("批量新增失败"); + } + } + } - } + } } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java index cbdda51..8b7c4b4 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java @@ -484,6 +484,7 @@ public class QuantityConstant { public static final String RULE_CALL_BOX_ALLOW_EMPTY = "callBoxAllowEmpty"; public static final String DOUBLE_FORK_RESERVE_LOCATION = "doubleForkReserveLocation"; public static final String DOUBLE_FORK_SEARCH_LOCATION = "doubleForkSearchLocation"; + public static final String MAX_ROADWAY_RECEIPT = "maxRoadWayReceipt"; public static final String WAREHOUSING_WEIGHING = "warehousingWeighing"; public static final String EXCEPTION_TO_CACHE = "exceptionToCache"; public static final String CONTAINER_SPEC = "containerSpec"; diff --git a/pom.xml b/pom.xml index e0ce40c..cd46248 100644 --- a/pom.xml +++ b/pom.xml @@ -12,17 +12,16 @@ <groupId>com.huaheng.wms</groupId> <artifactId>huaheng-wms4</artifactId> <version>4.0.1</version> - + <packaging>pom</packaging> <name>huaheng-wms4</name> <description>huaheng wms project for Spring Boot</description> <modules> - <module>huaheng-wms-core</module> <module>ant-design-vue-jeecg</module> + <module>huaheng-wms-core</module> </modules> - <repositories> <repository> <id>aliyun</id>