diff --git a/ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue b/ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue index 2cc727d..c6268b3 100644 --- a/ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue +++ b/ant-design-vue-jeecg/src/views/system/inventory/InventoryDetailList.vue @@ -37,6 +37,13 @@ </a-tag> </span> + <span slot="controller_dictText" slot-scope="controller_dictText"> + <a-tag :key="controller_dictText" :color="getStatusColor(controller_dictText)"> + {{ controller_dictText }} + </a-tag> + </span> + + <span slot="companyCode" slot-scope="companyCode"> <a-tag :key="companyCode" color="blue"> {{ solutionCompany(companyCode) }} @@ -192,6 +199,12 @@ export default { scopedSlots: {customRender: 'inventoryStatus_dictText'} }, { + title: '受控状态', + align: 'center', + dataIndex: 'controller_dictText', + scopedSlots: {customRender: 'controller_dictText'} + }, + { title: '批次', align: 'center', dataIndex: 'batch' 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 58bdfc8..7bfa17c 100644 --- a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue +++ b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue @@ -49,6 +49,15 @@ </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.controller" + dictCode="inventory_controller" + /> + </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.materialCode"></a-input> </a-form-item> @@ -146,10 +155,10 @@ <!-- 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>--> + <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" @@ -161,9 +170,16 @@ :dataSource="dataSource" :pagination="ipagination" :loading="loading" + :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" class="j-table-force-nowrap" @change="handleTableChange" > + <span slot="controller_dictText" slot-scope="controller_dictText"> + <a-tag :key="controller_dictText" :color="getStatusColor(controller_dictText)"> + {{ controller_dictText }} + </a-tag> + </span> + <span slot="inventoryStatus_dictText" slot-scope="inventoryStatus_dictText"> <a-tag :key="inventoryStatus_dictText" :color="getStatusColor(inventoryStatus_dictText)"> {{ inventoryStatus_dictText }} @@ -218,7 +234,8 @@ import {mixinDevice} from '@/utils/mixin' import {JeecgListMixin} from '@/mixins/JeecgListMixin' import SimpleInventoryDetailModal from './modules/SimpleInventoryDetailModal' import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' -import {getCompanyList, getZoneList} from "@api/api"; +import {getCompanyList, getZoneList, } from "@api/api"; +import {postAction} from '@/api/manage' export default { name: 'InventoryDetailList', @@ -310,6 +327,12 @@ export default { scopedSlots: {customRender: 'inventoryStatus_dictText'} }, { + title: '受控状态', + align: 'center', + dataIndex: 'controller_dictText', + scopedSlots: {customRender: 'controller_dictText'} + }, + { title: '批次', align: 'center', dataIndex: 'batch' @@ -521,6 +544,7 @@ export default { fieldList.push({type: 'BigDecimal', value: 'qty', text: '数量', dictCode: ''}) fieldList.push({type: 'BigDecimal', value: 'taskQty', text: '任务锁定数量', dictCode: ''}) fieldList.push({type: 'string', value: 'inventoryStatus', text: '库存状态', dictCode: 'inventory_status'}) + fieldList.push({type: 'int', value: 'controller', text: '受控状态', dictCode: 'inventory_controller'}) fieldList.push({type: 'string', value: 'batch', text: '批次', dictCode: ''}) // fieldList.push({type:'string',value:'sn',text:'序列号',dictCode:''}) fieldList.push({type: 'datetime', value: 'receiptDate', text: '入库日期'}) 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 209ec74..202c1ab 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 @@ -243,6 +243,9 @@ public class WcsServiceImpl implements WcsService { // 如果是外侧库位,那么就要判断该库位对应的内侧库位是不是有托盘 if (rowFlag == QuantityConstant.ROW_OUT) { Location insideLocation = locationService.getInsideNear(location); + if (insideLocation == null) { + return Result.error("分配库位时" + locationCode + "没有找到对应的内侧库位"); + } if (StringUtils.isNotEmpty(insideLocation.getContainerCode())) { Location destinationLocation = locationService.getEmptyLocation(insideLocation); if (destinationLocation == null) { @@ -348,6 +351,9 @@ public class WcsServiceImpl implements WcsService { if (rowFlag == QuantityConstant.ROW_OUT) { // 找到对应内侧库位 Location insideLocation = locationService.getInsideNear(fromLocation); + if (insideLocation == null) { + return Result.error("分配库位时" + fromLocation + "没有找到对应的内侧库位"); + } String insideLocationCode = insideLocation.getCode(); // 如果对应内侧库位有托盘 if (StringUtils.isNotEmpty(insideLocation.getContainerCode())) { 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 0069712..f1bb1fa 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 @@ -127,6 +127,7 @@ public class InventoryDetail implements Serializable { private Integer inventoryAge; /** 受控 */ @Excel(name = "受控", width = 15) + @Dict(dicCode = "inventory_controller") @ApiModelProperty(value = "受控") private Integer controller; /** 备用字段1 */ diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryDetailService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryDetailService.java index a2c5083..d315926 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryDetailService.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/IInventoryDetailService.java @@ -69,7 +69,8 @@ public interface IInventoryDetailService extends IService<InventoryDetail> { Result controller(List<Integer> inventoryDetailIdList); /** - * @param + * 批量释放受控 + * @param inventoryDetailIdList 库存明细id * @return */ Result releaseController(List<Integer> inventoryDetailIdList); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryDetailServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryDetailServiceImpl.java index 451f617..50e6fbf 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryDetailServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryHeader/service/impl/InventoryDetailServiceImpl.java @@ -105,7 +105,9 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe .eq(StringUtils.isNotEmpty(inventoryDetail.getBatch()), InventoryDetail::getBatch, inventoryDetail.getBatch()) .eq(StringUtils.isNotEmpty(inventoryDetail.getLot()), InventoryDetail::getLot, inventoryDetail.getLot()) .eq(StringUtils.isNotEmpty(inventoryDetail.getProject()), InventoryDetail::getProject, inventoryDetail.getLot()) - .eq(InventoryDetail::getTaskQty, BigDecimal.ZERO).eq(InventoryDetail::getCompanyCode, inventoryDetail.getCompanyCode()); + .eq(InventoryDetail::getController, QuantityConstant.CONTROLLER_NOT_ENABLE) + .eq(InventoryDetail::getContainerStatus, QuantityConstant.STATUS_CONTAINER_EMPTY).eq(InventoryDetail::getTaskQty, BigDecimal.ZERO) + .eq(InventoryDetail::getCompanyCode, inventoryDetail.getCompanyCode()); List<InventoryDetail> inventoryDetailList = list(inventoryDetailLambdaQueryWrapper); if (inventoryDetailList.size() == 0) { return BigDecimal.ZERO; @@ -223,6 +225,21 @@ public class InventoryDetailServiceImpl extends ServiceImpl<InventoryDetailMappe @Override public Result releaseController(List<Integer> inventoryDetailIdList) { - return null; + List<InventoryDetail> inventoryDetailList = listByIds(inventoryDetailIdList); + if (StringUtils.isEmpty(inventoryDetailList)) { + return Result.error("没有找到库存详情"); + } + List<InventoryDetail> inventoryDetailUpdateList = new ArrayList<>(); + for (InventoryDetail inventoryDetail : inventoryDetailList) { + InventoryDetail inventoryDetail1 = new InventoryDetail(); + inventoryDetail1.setId(inventoryDetail.getId()); + inventoryDetail1.setController(QuantityConstant.CONTROLLER_NOT_ENABLE); + inventoryDetailUpdateList.add(inventoryDetail1); + } + boolean success = updateBatchById(inventoryDetailUpdateList); + if (success) { + return Result.ok("批量释放受控库存成功"); + } + return Result.ok("批量释放受控库存失败"); } } 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 152e7cd..f6fc148 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 @@ -27,6 +27,8 @@ import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptHeaderService import org.jeecg.modules.wms.receipt.receiving.domain.Receive; import org.jeecg.modules.wms.receipt.receiving.mapper.ReceiveMapper; import org.jeecg.modules.wms.receipt.receiving.service.IReceiveService; +import org.jeecg.modules.wms.shipment.shipmentContainerHeader.entity.ShipmentContainerHeader; +import org.jeecg.modules.wms.shipment.shipmentContainerHeader.service.IShipmentContainerHeaderService; import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; import org.jeecg.utils.StringUtils; import org.jeecg.utils.constant.QuantityConstant; @@ -75,6 +77,8 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl private IParameterConfigurationService parameterConfigurationService; @Resource private IReceiveService receiveService; + @Resource + private IShipmentContainerHeaderService shipmentContainerHeaderService; /** * 组盘后自动生成任务,返回任务实体 @@ -136,6 +140,10 @@ public class ReceiveServiceImpl extends ServiceImpl<ReceiveMapper, Receive> impl if (containerType == null) { return Result.error("入库组盘,容器类型为空" + containerCode); } + ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.getUnCompleteShipmentContainerByCode(containerCode, warehouseCode); + if (shipmentContainerHeader != null) { + throw new JeecgBootException("入库组盘,容器" + containerCode + "不能有出库配盘"); + } int taskType = QuantityConstant.TASK_TYPE_WHOLERECEIPT; String fromLocationCode = container.getLocationCode(); if (StringUtils.isNotEmpty(fromLocationCode)) { diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/controller/ShipmentCombinationController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/controller/ShipmentCombinationController.java index 0ced322..7ad163c 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/controller/ShipmentCombinationController.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/controller/ShipmentCombinationController.java @@ -112,7 +112,8 @@ public class ShipmentCombinationController { @ResponseBody public Result createShipmentTask(@RequestBody ShipmentContainerHeader shipmentContainerHeader, HttpServletRequest req) { String warehouseCode = HuahengJwtUtil.getWarehouseCodeByToken(req); - return huahengMultiHandlerService.createShipmentTask(shipmentContainerHeader, warehouseCode, 0, 0, 0); + Result result = huahengMultiHandlerService.createShipmentTask(shipmentContainerHeader, warehouseCode, 0, 0, 0); + return result; } /** diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/IShipmentCombinationService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/IShipmentCombinationService.java index 2e570c5..5a02c06 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/IShipmentCombinationService.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentCombination/service/IShipmentCombinationService.java @@ -15,17 +15,17 @@ import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentDetail; */ public interface IShipmentCombinationService { - public List<InventoryDetail> getInventorys(ShipmentDetail shipmentDetail); + List<InventoryDetail> getInventorys(ShipmentDetail shipmentDetail); - public Result autoCombination(String shipmentCode, String warehouseCode); + Result autoCombination(String shipmentCode, String warehouseCode); - public Result createShipmentTask(ShipmentContainerHeader shipmentContainerHeader, String warehouseCode, long shipmentOrder, int sequence, int sequenceNumber); + Result createShipmentTask(ShipmentContainerHeader shipmentContainerHeader, String warehouseCode, long shipmentOrder, int sequence, int sequenceNumber); - public Result getInventoryFromShipmentDetail(Integer shipmentDetailId); + Result getInventoryFromShipmentDetail(Integer shipmentDetailId); - public Result combination(CombinationModel combinationModel); + Result combination(CombinationModel combinationModel); - public Result autoCombinationDetail(ShipmentDetail shipmentDetail, BigDecimal shipQty); + Result autoCombinationDetail(ShipmentDetail shipmentDetail, BigDecimal shipQty); ShipmentContainerHeader addShipmentContainerHeader(InventoryDetail inventoryDetail, ShipmentDetail shipmentDetail); 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 e6b0176..f77a57c 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 @@ -97,6 +97,7 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi * @return */ @Override + @Transactional(rollbackFor = JeecgBootException.class) public List<InventoryDetail> getInventorys(ShipmentDetail shipmentDetail) { String warehouseCode = shipmentDetail.getWarehouseCode(); String companyCode = shipmentDetail.getCompanyCode(); @@ -116,7 +117,9 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi } LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); inventoryDetailLambdaQueryWrapper.eq(InventoryDetail::getWarehouseCode, warehouseCode).eq(InventoryDetail::getCompanyCode, companyCode) - .eq(InventoryDetail::getMaterialCode, materialCode).eq(InventoryDetail::getInventoryStatus, inventoryStatus); + .eq(InventoryDetail::getMaterialCode, materialCode).eq(InventoryDetail::getInventoryStatus, inventoryStatus) + .eq(InventoryDetail::getController, QuantityConstant.CONTROLLER_NOT_ENABLE) + .eq(InventoryDetail::getContainerStatus, QuantityConstant.STATUS_CONTAINER_EMPTY); List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper); return inventoryDetailList; } @@ -169,7 +172,7 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi if (shipQty != null) { shipmentQty = shipQty; } - List<InventoryDetail> inventoryList = getInventorys(shipmentDetail); + List<InventoryDetail> inventoryList = shipmentCombinationService.getInventorys(shipmentDetail); // 去除已锁的库存 ArrayList<InventoryDetail> removeInventoryList = new ArrayList<>(); List<ReceiptContainerHeader> receiptContainerHeaderList = receiptContainerHeaderService.getUnCompleteCombineList(); @@ -200,7 +203,7 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi } inventoryList.removeAll(removeInventoryList); if (inventoryList.size() < 1) { - return Result.error(shipmentDetail.getMaterialName() + "' 没有符合出库条件的库存"); + return Result.error(shipmentDetail.getMaterialName() + "没有符合出库条件的库存"); } for (InventoryDetail inventoryDetail : inventoryList) { @@ -268,6 +271,10 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi if (container.getStatus().equals(QuantityConstant.STATUS_CONTAINER_LOCK)) { return Result.error("配盘时, 容器已经锁定,不能再组盘"); } + ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getUnCompleteReceiptContainerByCode(containerCode, warehouseCode); + if (receiptContainerHeader != null) { + return Result.error("配盘时, 容器有入库组盘不能再组盘,容器编码" + containerCode); + } BigDecimal shipmentDetailQty = shipmentDetail.getQty(); BigDecimal shipmentDetailTaskQty = shipmentDetail.getTaskQty(); // 可出数量 @@ -590,13 +597,14 @@ public class ShipmentCombinationServiceImpl implements IShipmentCombinationServi } @Override + @Transactional(rollbackFor = JeecgBootException.class) public Result getInventoryFromShipmentDetail(Integer shipmentDetailId) { ShipmentDetail shipmentDetail = shipmentDetailService.getById(shipmentDetailId); if (shipmentDetail == null) { return Result.error("找不到出库单详情"); } String warehouseCode = shipmentDetail.getWarehouseCode(); - List<InventoryDetail> inventoryDetailList = getInventorys(shipmentDetail); + List<InventoryDetail> inventoryDetailList = shipmentCombinationService.getInventorys(shipmentDetail); if (inventoryDetailList.size() == 0) { return Result.error("该物料没有库存或没有符合出库规则的库存"); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailServiceImpl.java index 7f2045f..7dc8bf5 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailServiceImpl.java @@ -18,6 +18,8 @@ import org.jeecg.modules.wms.config.material.service.impl.MaterialServiceImpl; import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService; import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail; import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService; +import org.jeecg.modules.wms.receipt.receiptContainerHeader.service.IReceiptContainerHeaderService; +import org.jeecg.modules.wms.shipment.shipmentContainerHeader.service.IShipmentContainerHeaderService; import org.jeecg.modules.wms.stocktaking.cycleCountDetail.entity.CycleCountDetail; import org.jeecg.modules.wms.stocktaking.cycleCountDetail.entity.CycleCountDetailChild; import org.jeecg.modules.wms.stocktaking.cycleCountDetail.mapper.CycleCountDetailChildMapper; @@ -73,6 +75,10 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap private ContainerServiceImpl containerServiceImpl; @Resource private IParameterConfigurationService parameterConfigurationService; + @Resource + private IReceiptContainerHeaderService receiptContainerHeaderService; + @Resource + private IShipmentContainerHeaderService shipmentContainerHeaderService; @Override @Transactional @@ -224,6 +230,14 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap if (taskLocationRule == QuantityConstant.RULE_TASK_SET_LOCATION) { toLocationCode = fromLocationCode; } + // 校验入库组盘 + if (receiptContainerHeaderService.havaUnCompleteCombineByContainerCode(containerCode, warehouseCode)) { + return Result.error("创建出盘点任务时,容器:" + containerCode + "存在入库组盘,不能移库"); + } + // 校验出库组盘 + if (shipmentContainerHeaderService.havaUnCompleteCombineByContainerCode(containerCode, warehouseCode)) { + return Result.error("创建出盘点任务时, 容器:" + containerCode + "存在出库组盘,不能移库"); + } Result result = taskHeaderService.createTaskLockContainerAndLocation(QuantityConstant.TASK_TYPE_CYCLECOUNT, containerCode, fromLocationCode, toLocationCode, warehouseCode); if (!result.isSuccess()) { 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 6f18a45..92989cf 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 @@ -62,7 +62,6 @@ import org.jeecg.utils.StringUtils; import org.jeecg.utils.constant.QuantityConstant; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import com.alibaba.fastjson.JSON; @@ -298,6 +297,14 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if (container == null) { return Result.error("创建出库查看任务时,容器为空"); } + // 校验入库组盘 + if (receiptContainerHeaderService.havaUnCompleteCombineByContainerCode(containerCode, warehouseCode)) { + return Result.error("创建出库查看任务时,容器:" + containerCode + "存在入库组盘,不能移库"); + } + // 校验出库组盘 + if (shipmentContainerHeaderService.havaUnCompleteCombineByContainerCode(containerCode, warehouseCode)) { + return Result.error("创建出库查看任务时, 容器:" + containerCode + "存在出库组盘,不能移库"); + } String fromLocationCode = container.getLocationCode(); String toLocationCode = QuantityConstant.EMPTY_STRING; String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION);