Commit b9a2d4b9e5a75a6b5b4e18ab74c1a908b28892a1

Authored by 肖超群
1 parent a1076d99

一个库位 不能有多个容器

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&lt;LocationMapper, Location&gt; 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&lt;LocationMapper, Location&gt; 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
... ... @@ -62,7 +62,7 @@ public interface IReceiptContainerHeaderService extends IService&lt;ReceiptContaine
62 62 Result cancelReceiving(List<Integer> ids);
63 63  
64 64 /**
65   - * 更新去向port
  65 + * 更新去向toPort
66 66 */
67 67 boolean updateToPortById(String toPort, int id);
68 68 }
... ...