diff --git a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue index f97ea36..35efc2c 100644 --- a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue +++ b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue @@ -717,6 +717,15 @@ export default { this.$message.warning('所选数据非同库区'); return; } + const isInList = this.selectRecord.some(row => { + if (row.zoneType != "L") { + return true + } + }) + if(isInList) { + this.$message.warning('所选数据非立库区类型'); + return; + } this.$refs.quickShipmentDetailModal.edit(this.selectRecord); this.$refs.quickShipmentDetailModal.title = '快速出库'; } @@ -772,6 +781,15 @@ export default { return; } } + const isInList = this.selectRecord.some(row => { + if (row.zoneType != "P") { + return true + } + }) + if(isInList) { + this.$message.warning('所选数据非平库区类型'); + return; + } this.loading = true; queryInventoryDetailListByMainIds(this.selectRecord).then((res) => { this.loading = false; diff --git a/ant-design-vue-jeecg/src/views/system/shipment/modules/QuickShipmentDetailModal.vue b/ant-design-vue-jeecg/src/views/system/shipment/modules/QuickShipmentDetailModal.vue index a37164b..8e2b020 100644 --- a/ant-design-vue-jeecg/src/views/system/shipment/modules/QuickShipmentDetailModal.vue +++ b/ant-design-vue-jeecg/src/views/system/shipment/modules/QuickShipmentDetailModal.vue @@ -46,7 +46,7 @@ </template> <script> -import { getZoneList, selectOutPort, shipmentInventoryDetail } from '@/api/api' +import { getZoneList, selectPickPort, shipmentInventoryDetail } from '@/api/api' import {getAction} from "@api/manage"; export default { @@ -146,7 +146,7 @@ export default { }, getPortList() { this.querySource.containerCode = this.model.containerCode - selectOutPort(this.querySource).then(res => { + selectPickPort(this.querySource).then(res => { if (res.success) { this.portList = res.result this.visible = true diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java index 61bd6d7..ccfa89e 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/entity/InventoryDetail.java @@ -48,6 +48,10 @@ public class InventoryDetail implements Serializable { @Excel(name = "库区", width = 15) @ApiModelProperty(value = "库区") private String zoneCode; + /** 库区类型 */ + @Excel(name = "库区类型", width = 15) + @ApiModelProperty(value = "库区类型") + private String zoneType; /** 容器编码 */ @Excel(name = "容器编码", width = 15) @ApiModelProperty(value = "容器编码") @@ -162,7 +166,6 @@ public class InventoryDetail implements Serializable { @TableField(exist = false) private BigDecimal shipmentQty; - public void setQty(BigDecimal qty) { if (qty.compareTo(BigDecimal.ZERO) < 0) { throw new JeecgBootException("库存数量必须大于0"); 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 a9bed60..899aa98 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 @@ -15,6 +15,8 @@ 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.entity.Location; import org.jeecg.modules.wms.config.location.service.ILocationService; +import org.jeecg.modules.wms.config.zone.entity.Zone; +import org.jeecg.modules.wms.config.zone.service.IZoneService; import org.jeecg.modules.wms.framework.service.IHuahengMultiHandlerService; import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail; import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryHeader; @@ -84,6 +86,8 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe private ITaskHeaderService taskHeaderService; @Resource private IInventoryTransactionService inventoryTransactionService; + @Resource + private IZoneService zoneService; @Override @Transactional @@ -482,6 +486,14 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe return false; } String zoneCode = toLocation.getZoneCode(); + if (StringUtils.isEmpty(zoneCode)) { + return false; + } + Zone zone = zoneService.getZoneByCode(zoneCode, warehouseCode); + if (zone == null) { + return false; + } + String zoneType = zone.getType(); boolean success = inventoryHeaderService.updateInventoryContainerLocationZoneById(containerCode, locationCode, zoneCode, toLocation.getRoadWay(), inventoryHeader.getId()); if (!success) { @@ -494,6 +506,7 @@ public class InventoryHeaderServiceImpl extends ServiceImpl<InventoryHeaderMappe inventoryDetail1.setContainerCode(containerCode); inventoryDetail1.setLocationCode(locationCode); inventoryDetail1.setZoneCode(zoneCode); + inventoryDetail1.setZoneType(zoneType); inventoryDetail1.setRoadWay(toLocation.getRoadWay()); updateInventoryDetailList.add(inventoryDetail1); } 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 cf4fdd0..26158d9 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 @@ -602,6 +602,7 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl inventoryDetail.setWarehouseCode(warehouseCode); inventoryDetail.setCompanyCode(receiptContainerDetail.getCompanyCode()); inventoryDetail.setZoneCode(zoneCode); + inventoryDetail.setZoneType(zone.getType()); inventoryDetail.setContainerCode(receiptContainerDetail.getContainerCode()); inventoryDetail.setContainerStatus(QuantityConstant.STATUS_CONTAINER_EMPTY); inventoryDetail.setLocationCode(toLocationCode); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailChildServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailChildServiceImpl.java index 94bec6e..0c0b5b8 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailChildServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailChildServiceImpl.java @@ -11,6 +11,8 @@ import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.wms.config.zone.entity.Zone; +import org.jeecg.modules.wms.config.zone.service.IZoneService; import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail; import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryHeader; import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService; @@ -82,6 +84,8 @@ public class CycleCountDetailChildServiceImpl extends ServiceImpl<CycleCountDeta private IShipmentDetailService shipmentDetailService; @Resource private ITaskHeaderService taskHeaderService; + @Resource + private IZoneService zoneService; @Override @Transactional @@ -176,7 +180,7 @@ public class CycleCountDetailChildServiceImpl extends ServiceImpl<CycleCountDeta throw new JeecgBootException("更新盘点表单头失败"); } - if (zoneType.equals("P")) { + if (zoneType.equals(QuantityConstant.ZONE_TYPE_FLAT)) { Result result = cycleCountDetailChildService.completePingkuConfirmGapQty(id, countedQty); if (!result.isSuccess()) { throw new JeecgBootException("调整平库库存失败"); @@ -241,7 +245,16 @@ public class CycleCountDetailChildServiceImpl extends ServiceImpl<CycleCountDeta // continue; // } String toLocationCode = inventoryHeader.getLocationCode(); - String warehouseCode = cycleCountHeader.getWarehouseCode(); + String zoneCode = inventoryHeader.getZoneCode(); + if (StringUtils.isEmpty(zoneCode)) { + return Result.error("完成盘点任务时, 库区编码为空"); + } + String warehouseCode = inventoryHeader.getWarehouseCode(); + Zone zone = zoneService.getZoneByCode(zoneCode, warehouseCode); + if (zone == null) { + return Result.error("完成盘点任务时, 库区为空"); + } + String zoneType = zone.getType(); String companyCode = cycleCountHeader.getCompanyCode(); if (child.getInventoryDetaiId() != null) { InventoryDetail inventoryDetail = inventoryDetailService.getById(child.getInventoryDetaiId()); @@ -257,7 +270,8 @@ public class CycleCountDetailChildServiceImpl extends ServiceImpl<CycleCountDeta inventoryDetail.setInventoryHeaderId(inventoryHeader.getId()); inventoryDetail.setWarehouseCode(warehouseCode); inventoryDetail.setCompanyCode(companyCode); - inventoryDetail.setZoneCode(inventoryHeader.getZoneCode()); + inventoryDetail.setZoneCode(zoneCode); + inventoryDetail.setZoneType(zoneType); inventoryDetail.setContainerCode(inventoryHeader.getContainerCode()); inventoryDetail.setLocationCode(toLocationCode); inventoryDetail.setMaterialCode(child.getMaterialCode()); 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 ed113d0..47a6d6b 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 @@ -1428,6 +1428,14 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if (toLocation == null) { return Result.error("完成入库任务时,没有找到目的库位"); } + if (StringUtils.isEmpty(zoneCode)) { + return Result.error("完成入库任务时,没有找到目的库区编码"); + } + Zone zone = zoneService.getZoneByCode(zoneCode, warehouseCode); + if (zone == null) { + return Result.error("完成入库任务时,没有找到库区"); + } + String zoneType = zone.getType(); InventoryHeader inventoryHeader = inventoryHeaderService.getInventoryHeaderByContainerCode(containerCode, warehouseCode); if (inventoryHeader == null) { inventoryHeader = new InventoryHeader(); @@ -1483,6 +1491,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea inventoryDetail.setWarehouseCode(warehouseCode); inventoryDetail.setCompanyCode(taskDetail.getCompanyCode()); inventoryDetail.setZoneCode(zoneCode); + inventoryDetail.setZoneType(zoneType); inventoryDetail.setContainerCode(taskHeader.getContainerCode()); inventoryDetail.setLocationCode(toLocationCode); inventoryDetail.setMaterialCode(taskDetail.getMaterialCode()); @@ -2650,6 +2659,14 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if (inventoryHeader == null) { return Result.error("完成盘点任务时,没有找到库存头" + cycleCountDetail.getInventoryHeaderId()); } + if (StringUtils.isEmpty(zoneCode)) { + return Result.error("完成盘点任务时, 库区编码为空"); + } + Zone zone = zoneService.getZoneByCode(zoneCode, warehouseCode); + if (zone == null) { + return Result.error("完成盘点任务时, 库区为空"); + } + String zoneType = zone.getType(); int outboundOrderId = 0; String outboundOrderCode = null; int warehousingOrderId = 0; @@ -2673,6 +2690,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea inventoryDetail.setWarehouseCode(inventoryHeader.getWarehouseCode()); inventoryDetail.setCompanyCode(inventoryHeader.getCompanyCode()); inventoryDetail.setZoneCode(inventoryHeader.getZoneCode()); + inventoryDetail.setZoneType(zoneType); inventoryDetail.setContainerCode(inventoryHeader.getContainerCode()); inventoryDetail.setLocationCode(toLocationCode); inventoryDetail.setMaterialCode(child.getMaterialCode());