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,6 +13,7 @@ import org.jeecg.modules.wms.config.container.entity.Container;
13 import org.jeecg.modules.wms.config.container.mapper.ContainerMapper; 13 import org.jeecg.modules.wms.config.container.mapper.ContainerMapper;
14 import org.jeecg.modules.wms.config.container.service.IContainerService; 14 import org.jeecg.modules.wms.config.container.service.IContainerService;
15 import org.jeecg.modules.wms.config.containerType.service.IContainerTypeService; 15 import org.jeecg.modules.wms.config.containerType.service.IContainerTypeService;
  16 +import org.jeecg.utils.StringUtils;
16 import org.jeecg.utils.constant.QuantityConstant; 17 import org.jeecg.utils.constant.QuantityConstant;
17 import org.springframework.stereotype.Service; 18 import org.springframework.stereotype.Service;
18 19
@@ -77,6 +78,15 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container @@ -77,6 +78,15 @@ public class ContainerServiceImpl extends ServiceImpl<ContainerMapper, Container
77 78
78 @Override 79 @Override
79 public boolean updateLocationCodeAndStatus(String containerCode, String locationCode, String status, String warehouseCode) { 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 LambdaUpdateWrapper<Container> updateWrapper = Wrappers.lambdaUpdate(); 90 LambdaUpdateWrapper<Container> updateWrapper = Wrappers.lambdaUpdate();
81 updateWrapper.ne(Container::getStatus, status).eq(Container::getCode, containerCode).eq(Container::getWarehouseCode, warehouseCode) 91 updateWrapper.ne(Container::getStatus, status).eq(Container::getCode, containerCode).eq(Container::getWarehouseCode, warehouseCode)
82 .set(Container::getLocationCode, locationCode).set(Container::getStatus, status); 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 package org.jeecg.modules.wms.config.location.service.impl; 1 package org.jeecg.modules.wms.config.location.service.impl;
2 2
3 import java.text.MessageFormat; 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 import java.util.function.Function; 5 import java.util.function.Function;
14 import java.util.stream.Collectors; 6 import java.util.stream.Collectors;
15 7
@@ -21,15 +13,7 @@ import org.jeecg.common.exception.JeecgBootException; @@ -21,15 +13,7 @@ import org.jeecg.common.exception.JeecgBootException;
21 import org.jeecg.modules.wms.config.address.service.IAddressService; 13 import org.jeecg.modules.wms.config.address.service.IAddressService;
22 import org.jeecg.modules.wms.config.container.entity.Container; 14 import org.jeecg.modules.wms.config.container.entity.Container;
23 import org.jeecg.modules.wms.config.container.service.IContainerService; 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 import org.jeecg.modules.wms.config.location.entity.BatchLocation; 17 import org.jeecg.modules.wms.config.location.entity.BatchLocation;
34 import org.jeecg.modules.wms.config.location.entity.Location; 18 import org.jeecg.modules.wms.config.location.entity.Location;
35 import org.jeecg.modules.wms.config.location.entity.LocationInfo; 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,11 +112,24 @@ public class LocationServiceImpl extends ServiceImpl&lt;LocationMapper, Location&gt; i
128 return update(updateWrapper); 112 return update(updateWrapper);
129 } 113 }
130 114
  115 + /**
  116 + * 首先判断容器没有重复写入
  117 + * 更新库位时,先判断库位状态是不一致的才能更新
  118 + */
131 @Override 119 @Override
132 public boolean updateContainerCodeAndStatus(String locationCode, String containerCode, String status, String warehouseCode) { 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 LambdaUpdateWrapper<Location> updateWrapper = Wrappers.lambdaUpdate(); 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 return update(updateWrapper); 133 return update(updateWrapper);
137 } 134 }
138 135
@@ -551,8 +548,10 @@ public class LocationServiceImpl extends ServiceImpl&lt;LocationMapper, Location&gt; i @@ -551,8 +548,10 @@ public class LocationServiceImpl extends ServiceImpl&lt;LocationMapper, Location&gt; i
551 .select(TaskHeader::getId, TaskHeader::getWarehouseCode, TaskHeader::getTaskType, TaskHeader::getFromLocationCode, TaskHeader::getToLocationCode, 548 .select(TaskHeader::getId, TaskHeader::getWarehouseCode, TaskHeader::getTaskType, TaskHeader::getFromLocationCode, TaskHeader::getToLocationCode,
552 TaskHeader::getContainerCode, TaskHeader::getStatus, TaskHeader::getCreateTime) 549 TaskHeader::getContainerCode, TaskHeader::getStatus, TaskHeader::getCreateTime)
553 .eq(TaskHeader::getWarehouseCode, queryCompareLocationTaskDto.getWarehouseCode()) 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 // .ge(TaskHeader::getCreateTime, queryCreateTime) 555 // .ge(TaskHeader::getCreateTime, queryCreateTime)
557 if (StringUtils.isNotEmpty(queryCompareLocationTaskDto.getLocationCode())) { 556 if (StringUtils.isNotEmpty(queryCompareLocationTaskDto.getLocationCode())) {
558 taskHeaderLambdaQueryWrapper.and(t -> t.eq(TaskHeader::getFromLocationCode, queryCompareLocationTaskDto.getLocationCode()).or() 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,7 +62,7 @@ public interface IReceiptContainerHeaderService extends IService&lt;ReceiptContaine
62 Result cancelReceiving(List<Integer> ids); 62 Result cancelReceiving(List<Integer> ids);
63 63
64 /** 64 /**
65 - * 更新去向port 65 + * 更新去向toPort
66 */ 66 */
67 boolean updateToPortById(String toPort, int id); 67 boolean updateToPortById(String toPort, int id);
68 } 68 }