Commit b9a2d4b9e5a75a6b5b4e18ab74c1a908b28892a1
1 parent
a1076d99
一个库位 不能有多个容器
Showing
3 changed files
with
32 additions
and
23 deletions
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; |
13 | 13 | import org.jeecg.modules.wms.config.container.mapper.ContainerMapper; |
14 | 14 | import org.jeecg.modules.wms.config.container.service.IContainerService; |
15 | 15 | import org.jeecg.modules.wms.config.containerType.service.IContainerTypeService; |
16 | +import org.jeecg.utils.StringUtils; | |
16 | 17 | import org.jeecg.utils.constant.QuantityConstant; |
17 | 18 | import org.springframework.stereotype.Service; |
18 | 19 | |
... | ... | @@ -77,6 +78,15 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container |
77 | 78 | |
78 | 79 | @Override |
79 | 80 | public boolean updateLocationCodeAndStatus(String containerCode, String locationCode, String status, String warehouseCode) { |
81 | + if (StringUtils.isNotEmpty(locationCode)) { | |
82 | + LambdaQueryWrapper<Container> containerLambdaQueryWrapper = Wrappers.lambdaQuery(); | |
83 | + containerLambdaQueryWrapper.eq(Container::getLocationCode, locationCode).ne(Container::getCode, containerCode).eq(Container::getWarehouseCode, | |
84 | + warehouseCode); | |
85 | + Container container = getOne(containerLambdaQueryWrapper); | |
86 | + if (container != null) { | |
87 | + throw new JeecgBootException("容器已经存在于库位上" + container); | |
88 | + } | |
89 | + } | |
80 | 90 | LambdaUpdateWrapper<Container> updateWrapper = Wrappers.lambdaUpdate(); |
81 | 91 | updateWrapper.ne(Container::getStatus, status).eq(Container::getCode, containerCode).eq(Container::getWarehouseCode, warehouseCode) |
82 | 92 | .set(Container::getLocationCode, locationCode).set(Container::getStatus, status); |
... | ... |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/location/service/impl/LocationServiceImpl.java
1 | 1 | package org.jeecg.modules.wms.config.location.service.impl; |
2 | 2 | |
3 | 3 | import java.text.MessageFormat; |
4 | -import java.util.ArrayList; | |
5 | -import java.util.Collections; | |
6 | -import java.util.Comparator; | |
7 | -import java.util.Date; | |
8 | -import java.util.HashMap; | |
9 | -import java.util.HashSet; | |
10 | -import java.util.List; | |
11 | -import java.util.Map; | |
12 | -import java.util.Set; | |
4 | +import java.util.*; | |
13 | 5 | import java.util.function.Function; |
14 | 6 | import java.util.stream.Collectors; |
15 | 7 | |
... | ... | @@ -21,15 +13,7 @@ import org.jeecg.common.exception.JeecgBootException; |
21 | 13 | import org.jeecg.modules.wms.config.address.service.IAddressService; |
22 | 14 | import org.jeecg.modules.wms.config.container.entity.Container; |
23 | 15 | import org.jeecg.modules.wms.config.container.service.IContainerService; |
24 | -import org.jeecg.modules.wms.config.location.dto.CompareContainerTaskDto; | |
25 | -import org.jeecg.modules.wms.config.location.dto.CompareLocationDto; | |
26 | -import org.jeecg.modules.wms.config.location.dto.CompareLocationTaskDto; | |
27 | -import org.jeecg.modules.wms.config.location.dto.QueryCompareContainerTaskDto; | |
28 | -import org.jeecg.modules.wms.config.location.dto.QueryCompareLocationDto; | |
29 | -import org.jeecg.modules.wms.config.location.dto.QueryCompareLocationTaskDto; | |
30 | -import org.jeecg.modules.wms.config.location.dto.WcsLocationDto; | |
31 | -import org.jeecg.modules.wms.config.location.dto.WcsResultDto; | |
32 | -import org.jeecg.modules.wms.config.location.dto.WcsTaskDto; | |
16 | +import org.jeecg.modules.wms.config.location.dto.*; | |
33 | 17 | import org.jeecg.modules.wms.config.location.entity.BatchLocation; |
34 | 18 | import org.jeecg.modules.wms.config.location.entity.Location; |
35 | 19 | import org.jeecg.modules.wms.config.location.entity.LocationInfo; |
... | ... | @@ -128,11 +112,24 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i |
128 | 112 | return update(updateWrapper); |
129 | 113 | } |
130 | 114 | |
115 | + /** | |
116 | + * 首先判断容器没有重复写入 | |
117 | + * 更新库位时,先判断库位状态是不一致的才能更新 | |
118 | + */ | |
131 | 119 | @Override |
132 | 120 | public boolean updateContainerCodeAndStatus(String locationCode, String containerCode, String status, String warehouseCode) { |
121 | + if (StringUtils.isNotEmpty(containerCode)) { | |
122 | + LambdaQueryWrapper<Location> locationLambdaQueryWrapper = Wrappers.lambdaQuery(); | |
123 | + locationLambdaQueryWrapper.eq(Location::getContainerCode, containerCode).ne(Location::getCode, locationCode).eq(Location::getWarehouseCode, | |
124 | + warehouseCode); | |
125 | + Location location = getOne(locationLambdaQueryWrapper); | |
126 | + if (location != null) { | |
127 | + throw new JeecgBootException("容器已经存在于库位上" + location); | |
128 | + } | |
129 | + } | |
133 | 130 | LambdaUpdateWrapper<Location> updateWrapper = Wrappers.lambdaUpdate(); |
134 | - updateWrapper.ne(Location::getStatus, status).eq(Location::getCode, locationCode) | |
135 | - .eq(Location::getWarehouseCode, warehouseCode).set(Location::getContainerCode, containerCode).set(Location::getStatus, status); | |
131 | + updateWrapper.ne(Location::getStatus, status).eq(Location::getCode, locationCode).eq(Location::getWarehouseCode, warehouseCode) | |
132 | + .set(Location::getContainerCode, containerCode).set(Location::getStatus, status); | |
136 | 133 | return update(updateWrapper); |
137 | 134 | } |
138 | 135 | |
... | ... | @@ -551,8 +548,10 @@ public class LocationServiceImpl extends ServiceImpl<LocationMapper, Location> i |
551 | 548 | .select(TaskHeader::getId, TaskHeader::getWarehouseCode, TaskHeader::getTaskType, TaskHeader::getFromLocationCode, TaskHeader::getToLocationCode, |
552 | 549 | TaskHeader::getContainerCode, TaskHeader::getStatus, TaskHeader::getCreateTime) |
553 | 550 | .eq(TaskHeader::getWarehouseCode, queryCompareLocationTaskDto.getWarehouseCode()) |
554 | - .gt(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getTaskCreateTimeBegin()), TaskHeader::getCreateTime, queryCompareLocationTaskDto.getTaskCreateTimeBegin()) | |
555 | - .lt(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getTaskCreateTimeEnd()),TaskHeader::getCreateTime, queryCompareLocationTaskDto.getTaskCreateTimeEnd()); | |
551 | + .gt(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getTaskCreateTimeBegin()), TaskHeader::getCreateTime, | |
552 | + queryCompareLocationTaskDto.getTaskCreateTimeBegin()) | |
553 | + .lt(StringUtils.isNotEmpty(queryCompareLocationTaskDto.getTaskCreateTimeEnd()), TaskHeader::getCreateTime, | |
554 | + queryCompareLocationTaskDto.getTaskCreateTimeEnd()); | |
556 | 555 | // .ge(TaskHeader::getCreateTime, queryCreateTime) |
557 | 556 | if (StringUtils.isNotEmpty(queryCompareLocationTaskDto.getLocationCode())) { |
558 | 557 | taskHeaderLambdaQueryWrapper.and(t -> t.eq(TaskHeader::getFromLocationCode, queryCompareLocationTaskDto.getLocationCode()).or() |
... | ... |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/IReceiptContainerHeaderService.java