From b9a2d4b9e5a75a6b5b4e18ab74c1a908b28892a1 Mon Sep 17 00:00:00 2001 From: youjie <272855983@qq.com> Date: Wed, 7 Jun 2023 16:08:25 +0800 Subject: [PATCH] 一个库位 不能有多个容器 --- huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/container/service/impl/ContainerServiceImpl.java | 10 ++++++++++ huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/service/impl/LocationServiceImpl.java | 43 +++++++++++++++++++++---------------------- huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/IReceiptContainerHeaderService.java | 2 +- 3 files changed, 32 insertions(+), 23 deletions(-) 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 1622dad..72bd349 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 @@ -13,6 +13,7 @@ import org.jeecg.modules.wms.config.container.entity.Container; import org.jeecg.modules.wms.config.container.mapper.ContainerMapper; import org.jeecg.modules.wms.config.container.service.IContainerService; import org.jeecg.modules.wms.config.containerType.service.IContainerTypeService; +import org.jeecg.utils.StringUtils; import org.jeecg.utils.constant.QuantityConstant; import org.springframework.stereotype.Service; @@ -77,6 +78,15 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container @Override public boolean updateLocationCodeAndStatus(String containerCode, String locationCode, String status, String warehouseCode) { + if (StringUtils.isNotEmpty(locationCode)) { + LambdaQueryWrapper<Container> containerLambdaQueryWrapper = Wrappers.lambdaQuery(); + containerLambdaQueryWrapper.eq(Container::getLocationCode, locationCode).ne(Container::getCode, containerCode).eq(Container::getWarehouseCode, + warehouseCode); + Container container = getOne(containerLambdaQueryWrapper); + if (container != null) { + throw new JeecgBootException("容器已经存在于库位上" + container); + } + } LambdaUpdateWrapper<Container> updateWrapper = Wrappers.lambdaUpdate(); updateWrapper.ne(Container::getStatus, status).eq(Container::getCode, containerCode).eq(Container::getWarehouseCode, warehouseCode) .set(Container::getLocationCode, locationCode).set(Container::getStatus, status); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/service/impl/LocationServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/service/impl/LocationServiceImpl.java index d0cd069..cfec542 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/service/impl/LocationServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/service/impl/LocationServiceImpl.java @@ -1,15 +1,7 @@ package org.jeecg.modules.wms.config.location.service.impl; import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -21,15 +13,7 @@ import org.jeecg.common.exception.JeecgBootException; import org.jeecg.modules.wms.config.address.service.IAddressService; 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.dto.CompareContainerTaskDto; -import org.jeecg.modules.wms.config.location.dto.CompareLocationDto; -import org.jeecg.modules.wms.config.location.dto.CompareLocationTaskDto; -import org.jeecg.modules.wms.config.location.dto.QueryCompareContainerTaskDto; -import org.jeecg.modules.wms.config.location.dto.QueryCompareLocationDto; -import org.jeecg.modules.wms.config.location.dto.QueryCompareLocationTaskDto; -import org.jeecg.modules.wms.config.location.dto.WcsLocationDto; -import org.jeecg.modules.wms.config.location.dto.WcsResultDto; -import org.jeecg.modules.wms.config.location.dto.WcsTaskDto; +import org.jeecg.modules.wms.config.location.dto.*; import org.jeecg.modules.wms.config.location.entity.BatchLocation; import org.jeecg.modules.wms.config.location.entity.Location; import org.jeecg.modules.wms.config.location.entity.LocationInfo; @@ -128,11 +112,24 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i return update(updateWrapper); } + /** + * 首先判断容器没有重复写入 + * 更新库位时,先判断库位状态是不一致的才能更新 + */ @Override public boolean updateContainerCodeAndStatus(String locationCode, String containerCode, String status, String warehouseCode) { + if (StringUtils.isNotEmpty(containerCode)) { + LambdaQueryWrapper<Location> locationLambdaQueryWrapper = Wrappers.lambdaQuery(); + locationLambdaQueryWrapper.eq(Location::getContainerCode, containerCode).ne(Location::getCode, locationCode).eq(Location::getWarehouseCode, + warehouseCode); + Location location = getOne(locationLambdaQueryWrapper); + if (location != null) { + throw new JeecgBootException("容器已经存在于库位上" + location); + } + } LambdaUpdateWrapper<Location> updateWrapper = Wrappers.lambdaUpdate(); - updateWrapper.ne(Location::getStatus, status).eq(Location::getCode, locationCode) - .eq(Location::getWarehouseCode, warehouseCode).set(Location::getContainerCode, containerCode).set(Location::getStatus, status); + updateWrapper.ne(Location::getStatus, status).eq(Location::getCode, locationCode).eq(Location::getWarehouseCode, warehouseCode) + .set(Location::getContainerCode, containerCode).set(Location::getStatus, status); return update(updateWrapper); } @@ -551,8 +548,10 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i .select(TaskHeader::getId, TaskHeader::getWarehouseCode, TaskHeader::getTaskType, TaskHeader::getFromLocationCode, TaskHeader::getToLocationCode, TaskHeader::getContainerCode, TaskHeader::getStatus, TaskHeader::getCreateTime) .eq(TaskHeader::getWarehouseCode, queryCompareLocationTaskDto.getWarehouseCode()) - .gt(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getTaskCreateTimeBegin()), TaskHeader::getCreateTime, queryCompareLocationTaskDto.getTaskCreateTimeBegin()) - .lt(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getTaskCreateTimeEnd()),TaskHeader::getCreateTime, queryCompareLocationTaskDto.getTaskCreateTimeEnd()); + .gt(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getTaskCreateTimeBegin()), TaskHeader::getCreateTime, + queryCompareLocationTaskDto.getTaskCreateTimeBegin()) + .lt(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getTaskCreateTimeEnd()), TaskHeader::getCreateTime, + queryCompareLocationTaskDto.getTaskCreateTimeEnd()); // .ge(TaskHeader::getCreateTime, queryCreateTime) if (StringUtils.isNotEmpty(queryCompareLocationTaskDto.getLocationCode())) { taskHeaderLambdaQueryWrapper.and(t -> t.eq(TaskHeader::getFromLocationCode, queryCompareLocationTaskDto.getLocationCode()).or() diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/IReceiptContainerHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/IReceiptContainerHeaderService.java index 2aedbe1..b700566 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/IReceiptContainerHeaderService.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/IReceiptContainerHeaderService.java @@ -62,7 +62,7 @@ public interface IReceiptContainerHeaderService extends IService<ReceiptContaine Result cancelReceiving(List<Integer> ids); /** - * 更新去向port + * 更新去向toPort */ boolean updateToPortById(String toPort, int id); } -- libgit2 0.22.2