代码更新:
1. 增加日期筛选功能 2. 增加站台拣选任务配置:每个站台最大箱子
This commit is contained in:
parent
da4074dcf9
commit
5175a8841f
|
|
@ -13,7 +13,8 @@ public enum ConfigMapKeyEnum {
|
||||||
SEND_TASK("SEND_TASK"),
|
SEND_TASK("SEND_TASK"),
|
||||||
ALLOW_EMPTY_BACK("ALLOW_EMPTY_BACK"),
|
ALLOW_EMPTY_BACK("ALLOW_EMPTY_BACK"),
|
||||||
SEND_PICK_OUT_TASK("SEND_PICK_OUT_TASK"),
|
SEND_PICK_OUT_TASK("SEND_PICK_OUT_TASK"),
|
||||||
MAX_VEHICLE_NUMS("MAX_VEHICLE_NUMS"),
|
MAX_VEHICLE_NUMS("MAX_VEHICLE_NUMS"),// 线体上最大箱子数
|
||||||
|
MAX_STAND_VEHICLE_NUMS("MAX_STAND_VEHICLE_NUMS"),// 每个站台最大箱子数
|
||||||
MAX_WCS_ACCEPT_NUMS("MAX_WCS_ACCEPT_NUMS"),
|
MAX_WCS_ACCEPT_NUMS("MAX_WCS_ACCEPT_NUMS"),
|
||||||
SLOC_FILTER_STRING("SLOC_FILTER_STRING"),
|
SLOC_FILTER_STRING("SLOC_FILTER_STRING"),
|
||||||
URL_WCS_CHANGE_TASK("URL_WCS_CHANGE_TASK"),
|
URL_WCS_CHANGE_TASK("URL_WCS_CHANGE_TASK"),
|
||||||
|
|
|
||||||
|
|
@ -507,12 +507,16 @@ public class ExcelController {
|
||||||
// 内容样式
|
// 内容样式
|
||||||
HorizontalCellStyleStrategy horizontalCellStyleStrategy = ExcelContentStyle.getContentStyle();
|
HorizontalCellStyleStrategy horizontalCellStyleStrategy = ExcelContentStyle.getContentStyle();
|
||||||
// 查询参数
|
// 查询参数
|
||||||
List<Stock> stockPoList = stockService.list(new LambdaQueryWrapper<Stock>()
|
LambdaQueryWrapper<Stock> queryWrapper = new LambdaQueryWrapper<Stock>()
|
||||||
.like(StringUtils.isNotEmpty(stockQuery.getVehicleId()), Stock::getVehicleId, stockQuery.getVehicleId())
|
.like(StringUtils.isNotEmpty(stockQuery.getVehicleId()), Stock::getVehicleId, stockQuery.getVehicleId())
|
||||||
.like(StringUtils.isNotEmpty(stockQuery.getLocationId()), Stock::getLocationId, stockQuery.getLocationId())
|
.like(StringUtils.isNotEmpty(stockQuery.getLocationId()), Stock::getLocationId, stockQuery.getLocationId())
|
||||||
.eq(stockQuery.getStockStatus() != null, Stock::getStockStatus, stockQuery.getStockStatus())
|
.eq(stockQuery.getStockStatus() != null, Stock::getStockStatus, stockQuery.getStockStatus())
|
||||||
.apply(StringUtils.isNotEmpty(stockQuery.getGoodsId()), "goods_related ->> '$.goodsId' like concat('%', {0}, '%')" + MYSQL_JSON_CI, stockQuery.getGoodsId())
|
.apply(StringUtils.isNotEmpty(stockQuery.getGoodsId()), "goods_related ->> '$.goodsId' like concat('%', {0}, '%')" + MYSQL_JSON_CI, stockQuery.getGoodsId())
|
||||||
.apply(StringUtils.isNotEmpty(stockQuery.getGoodsName()), "goods_related ->> '$.goodsName' like concat('%', {0}, '%')" + MYSQL_JSON_CI, stockQuery.getGoodsName()));
|
.apply(StringUtils.isNotEmpty(stockQuery.getGoodsName()), "goods_related ->> '$.goodsName' like concat('%', {0}, '%')" + MYSQL_JSON_CI, stockQuery.getGoodsName());
|
||||||
|
if (stockQuery.getCreateTime() != null) {
|
||||||
|
queryWrapper.between(Stock::getCreateTime, stockQuery.getCreateTime().toLocalDate().atStartOfDay(), stockQuery.getCreateTime().toLocalDate().plusDays(1).atStartOfDay().minusSeconds(1));
|
||||||
|
}
|
||||||
|
List<Stock> stockPoList = stockService.list(queryWrapper);
|
||||||
EasyExcel.write(response.getOutputStream(), StockExcelVo.class)
|
EasyExcel.write(response.getOutputStream(), StockExcelVo.class)
|
||||||
.excelType(ExcelTypeEnum.XLSX)
|
.excelType(ExcelTypeEnum.XLSX)
|
||||||
.registerWriteHandler(horizontalCellStyleStrategy)
|
.registerWriteHandler(horizontalCellStyleStrategy)
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,12 @@ public class RecordController {
|
||||||
.like(StringUtils.isNotEmpty(taskRecordQuery.getVehicleId()), TaskRecord::getVehicleId, taskRecordQuery.getVehicleId())
|
.like(StringUtils.isNotEmpty(taskRecordQuery.getVehicleId()), TaskRecord::getVehicleId, taskRecordQuery.getVehicleId())
|
||||||
.apply(StringUtils.isNotEmpty(taskRecordQuery.getGoodsId()), "goods_related ->> '$.goodsId' like concat('%', {0}, '%')" + MYSQL_JSON_CI, taskRecordQuery.getGoodsId())
|
.apply(StringUtils.isNotEmpty(taskRecordQuery.getGoodsId()), "goods_related ->> '$.goodsId' like concat('%', {0}, '%')" + MYSQL_JSON_CI, taskRecordQuery.getGoodsId())
|
||||||
.apply(StringUtils.isNotEmpty(taskRecordQuery.getGoodsName()), "goods_related ->> '$.goodsName' like concat('%', {0}, '%')" + MYSQL_JSON_CI, taskRecordQuery.getGoodsName());
|
.apply(StringUtils.isNotEmpty(taskRecordQuery.getGoodsName()), "goods_related ->> '$.goodsName' like concat('%', {0}, '%')" + MYSQL_JSON_CI, taskRecordQuery.getGoodsName());
|
||||||
|
if (taskRecordQuery.getCreateTime() != null) {
|
||||||
|
lambdaQueryWrapper.between(TaskRecord::getCreateTime, taskRecordQuery.getCreateTime().toLocalDate().atStartOfDay(), taskRecordQuery.getCreateTime().toLocalDate().plusDays(1).atStartOfDay().minusSeconds(1));
|
||||||
|
}
|
||||||
|
if (taskRecordQuery.getFinishTime() != null) {
|
||||||
|
lambdaQueryWrapper.between(TaskRecord::getFinishTime, taskRecordQuery.getFinishTime().toLocalDate().atStartOfDay(), taskRecordQuery.getFinishTime().toLocalDate().plusDays(1).atStartOfDay().minusSeconds(1));
|
||||||
|
}
|
||||||
Page<TaskRecord> taskRecordPage = taskRecordService.page(page, lambdaQueryWrapper);
|
Page<TaskRecord> taskRecordPage = taskRecordService.page(page, lambdaQueryWrapper);
|
||||||
// 生成数据
|
// 生成数据
|
||||||
PageDto<TaskRecordVO> pageDto = PageDto.of(taskRecordPage, records -> BeanUtil.copyProperties(records, TaskRecordVO.class));
|
PageDto<TaskRecordVO> pageDto = PageDto.of(taskRecordPage, records -> BeanUtil.copyProperties(records, TaskRecordVO.class));
|
||||||
|
|
|
||||||
|
|
@ -107,13 +107,17 @@ public class StockController {
|
||||||
ResponseEntity response = new ResponseEntity();
|
ResponseEntity response = new ResponseEntity();
|
||||||
try {
|
try {
|
||||||
Page<Stock> page = stockQuery.toMpPage();
|
Page<Stock> page = stockQuery.toMpPage();
|
||||||
Page<Stock> stockPage = stockService.page(page, new LambdaQueryWrapper<Stock>()
|
LambdaQueryWrapper<Stock> lambdaQueryWrapper = new LambdaQueryWrapper<Stock>()
|
||||||
.like(StringUtils.isNotEmpty(stockQuery.getVehicleId()), Stock::getVehicleId, stockQuery.getVehicleId())
|
.like(StringUtils.isNotEmpty(stockQuery.getVehicleId()), Stock::getVehicleId, stockQuery.getVehicleId())
|
||||||
.like(StringUtils.isNotEmpty(stockQuery.getLocationId()), Stock::getLocationId, stockQuery.getLocationId())
|
.like(StringUtils.isNotEmpty(stockQuery.getLocationId()), Stock::getLocationId, stockQuery.getLocationId())
|
||||||
.eq(stockQuery.getStockStatus() != null, Stock::getStockStatus, stockQuery.getStockStatus())
|
.eq(stockQuery.getStockStatus() != null, Stock::getStockStatus, stockQuery.getStockStatus())
|
||||||
.apply(StringUtils.isNotEmpty(stockQuery.getGoodsId()), "goods_related ->> '$.goodsId' like concat('%', {0}, '%')" + MYSQL_JSON_CI, stockQuery.getGoodsId())
|
.apply(StringUtils.isNotEmpty(stockQuery.getGoodsId()), "goods_related ->> '$.goodsId' like concat('%', {0}, '%')" + MYSQL_JSON_CI, stockQuery.getGoodsId())
|
||||||
.apply(StringUtils.isNotEmpty(stockQuery.getGoodsName()), "goods_related ->> '$.goodsName' like concat('%', {0}, '%')" + MYSQL_JSON_CI, stockQuery.getGoodsName())
|
.apply(StringUtils.isNotEmpty(stockQuery.getGoodsName()), "goods_related ->> '$.goodsName' like concat('%', {0}, '%')" + MYSQL_JSON_CI, stockQuery.getGoodsName())
|
||||||
.orderByDesc(Stock::getLastUpdateTime));
|
.orderByDesc(Stock::getLastUpdateTime);
|
||||||
|
if (stockQuery.getCreateTime() != null) {
|
||||||
|
lambdaQueryWrapper.between(Stock::getCreateTime, stockQuery.getCreateTime().toLocalDate().atStartOfDay(), stockQuery.getCreateTime().toLocalDate().plusDays(1).atStartOfDay().minusSeconds(1));
|
||||||
|
}
|
||||||
|
Page<Stock> stockPage = stockService.page(page, lambdaQueryWrapper);
|
||||||
|
|
||||||
PageDto<StockVo> pageDto = PageDto.of(stockPage, StockVo::of);
|
PageDto<StockVo> pageDto = PageDto.of(stockPage, StockVo::of);
|
||||||
response.setCode(ResponseCode.OK.getCode());
|
response.setCode(ResponseCode.OK.getCode());
|
||||||
|
|
@ -334,11 +338,15 @@ public class StockController {
|
||||||
ResponseEntity response = new ResponseEntity();
|
ResponseEntity response = new ResponseEntity();
|
||||||
try {
|
try {
|
||||||
Page<StockUpdateRecord> page = stockUpdateRecordQuery.toMpPage();
|
Page<StockUpdateRecord> page = stockUpdateRecordQuery.toMpPage();
|
||||||
Page<StockUpdateRecord> recordsPage = stockUpdateRecordService.page(page, new LambdaQueryWrapper<StockUpdateRecord>()
|
LambdaQueryWrapper<StockUpdateRecord> stockLambdaQueryWrapper = new LambdaQueryWrapper<StockUpdateRecord>()
|
||||||
.like(StringUtils.isNotEmpty(stockUpdateRecordQuery.getReason()), StockUpdateRecord::getReason, stockUpdateRecordQuery.getReason())
|
.like(StringUtils.isNotEmpty(stockUpdateRecordQuery.getReason()), StockUpdateRecord::getReason, stockUpdateRecordQuery.getReason())
|
||||||
.like(StringUtils.isNotEmpty(stockUpdateRecordQuery.getVehicleId()), StockUpdateRecord::getVehicleId, stockUpdateRecordQuery.getVehicleId())
|
.like(StringUtils.isNotEmpty(stockUpdateRecordQuery.getVehicleId()), StockUpdateRecord::getVehicleId, stockUpdateRecordQuery.getVehicleId())
|
||||||
.like(StringUtils.isNotEmpty(stockUpdateRecordQuery.getGoodsId()), StockUpdateRecord::getGoodsId, stockUpdateRecordQuery.getGoodsId())
|
.like(StringUtils.isNotEmpty(stockUpdateRecordQuery.getGoodsId()), StockUpdateRecord::getGoodsId, stockUpdateRecordQuery.getGoodsId())
|
||||||
.orderByDesc(StockUpdateRecord::getUpdateTime));
|
.orderByDesc(StockUpdateRecord::getUpdateTime);
|
||||||
|
if (stockUpdateRecordQuery.getUpdateTime() != null) {
|
||||||
|
stockLambdaQueryWrapper.between(StockUpdateRecord::getUpdateTime, stockUpdateRecordQuery.getUpdateTime().toLocalDate().atStartOfDay(), stockUpdateRecordQuery.getUpdateTime().toLocalDate().plusDays(1).atStartOfDay().minusSeconds(1));
|
||||||
|
}
|
||||||
|
Page<StockUpdateRecord> recordsPage = stockUpdateRecordService.page(page, stockLambdaQueryWrapper);
|
||||||
PageDto<StockUpdateRecordVo> pageDto = PageDto.of(recordsPage, updateRecord -> BeanUtil.copyProperties(updateRecord, StockUpdateRecordVo.class));
|
PageDto<StockUpdateRecordVo> pageDto = PageDto.of(recordsPage, updateRecord -> BeanUtil.copyProperties(updateRecord, StockUpdateRecordVo.class));
|
||||||
logger.info("查询库存更新记录成功。");
|
logger.info("查询库存更新记录成功。");
|
||||||
response.setCode(ResponseCode.OK.getCode());
|
response.setCode(ResponseCode.OK.getCode());
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
package com.wms.entity.app.request;
|
package com.wms.entity.app.request;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
@ -64,6 +66,8 @@ public class StockUpdateRecordQuery extends PageQuery {
|
||||||
* 更新时间
|
* 更新时间
|
||||||
*/
|
*/
|
||||||
@JsonProperty("updateTime")
|
@JsonProperty("updateTime")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private LocalDateTime updateTime;
|
private LocalDateTime updateTime;
|
||||||
/**
|
/**
|
||||||
* 更新用户
|
* 更新用户
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,15 @@
|
||||||
package com.wms.entity.app.request;
|
package com.wms.entity.app.request;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.wms.entity.app.dto.extend.TaskDetailInfo;
|
import com.wms.entity.app.dto.extend.TaskDetailInfo;
|
||||||
import com.wms.entity.table.TaskRecord;
|
import com.wms.entity.table.TaskRecord;
|
||||||
import com.wms.utils.StringUtils;
|
import com.wms.utils.StringUtils;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务记录查询
|
* 任务记录查询
|
||||||
|
|
@ -33,6 +37,18 @@ public class TaskRecordQuery extends PageQuery {
|
||||||
*/
|
*/
|
||||||
@JsonProperty("goodsName")
|
@JsonProperty("goodsName")
|
||||||
private String goodsName;
|
private String goodsName;
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
/**
|
||||||
|
* 完成时间
|
||||||
|
*/
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime finishTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据客户端查询生成数据库查询条件
|
* 根据客户端查询生成数据库查询条件
|
||||||
|
|
@ -42,6 +58,8 @@ public class TaskRecordQuery extends PageQuery {
|
||||||
TaskRecord recordPO = new TaskRecord();
|
TaskRecord recordPO = new TaskRecord();
|
||||||
recordPO.setTaskType(taskType);// 任务类型
|
recordPO.setTaskType(taskType);// 任务类型
|
||||||
recordPO.setVehicleId(vehicleId);// 载具号
|
recordPO.setVehicleId(vehicleId);// 载具号
|
||||||
|
recordPO.setCreateTime(createTime);
|
||||||
|
recordPO.setFinishTime(finishTime);
|
||||||
if (StringUtils.isNotEmpty(goodsId) || StringUtils.isNotEmpty(goodsName)) {// 包含物料详细信息
|
if (StringUtils.isNotEmpty(goodsId) || StringUtils.isNotEmpty(goodsName)) {// 包含物料详细信息
|
||||||
TaskDetailInfo goodsRelatedPO = new TaskDetailInfo();
|
TaskDetailInfo goodsRelatedPO = new TaskDetailInfo();
|
||||||
goodsRelatedPO.setGoodsId(goodsId);
|
goodsRelatedPO.setGoodsId(goodsId);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
package com.wms.entity.app.vo;
|
package com.wms.entity.app.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
@ -65,6 +67,8 @@ public class StockUpdateRecordVo {
|
||||||
* 更新时间
|
* 更新时间
|
||||||
*/
|
*/
|
||||||
@JsonProperty("updateTime")
|
@JsonProperty("updateTime")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private LocalDateTime updateTime;
|
private LocalDateTime updateTime;
|
||||||
/**
|
/**
|
||||||
* 更新用户
|
* 更新用户
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
package com.wms.entity.app.vo;
|
package com.wms.entity.app.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.wms.entity.app.dto.extend.TaskDetailInfo;
|
import com.wms.entity.app.dto.extend.TaskDetailInfo;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
@ -54,10 +56,14 @@ public class TaskRecordVO {
|
||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
/**
|
/**
|
||||||
* 完成时间
|
* 完成时间
|
||||||
*/
|
*/
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private LocalDateTime finishTime;
|
private LocalDateTime finishTime;
|
||||||
/**
|
/**
|
||||||
* 用户名
|
* 用户名
|
||||||
|
|
|
||||||
|
|
@ -169,12 +169,14 @@ public class WmsJobServiceImplements implements IWmsJobService {
|
||||||
if (!allTasks.isEmpty()) {
|
if (!allTasks.isEmpty()) {
|
||||||
String max_vehicle_nums = configMap.get(ConfigMapKeyEnum.MAX_VEHICLE_NUMS.getConfigKey());
|
String max_vehicle_nums = configMap.get(ConfigMapKeyEnum.MAX_VEHICLE_NUMS.getConfigKey());
|
||||||
String max_wcs_accept_nums = configMap.get(ConfigMapKeyEnum.MAX_WCS_ACCEPT_NUMS.getConfigKey());
|
String max_wcs_accept_nums = configMap.get(ConfigMapKeyEnum.MAX_WCS_ACCEPT_NUMS.getConfigKey());
|
||||||
if (StringUtils.isEmpty(max_vehicle_nums) || StringUtils.isEmpty(max_wcs_accept_nums)) {
|
String max_stand_vehicle_nums = configMap.get(ConfigMapKeyEnum.MAX_STAND_VEHICLE_NUMS.getConfigKey());
|
||||||
|
if (StringUtils.isEmpty(max_vehicle_nums) || StringUtils.isEmpty(max_wcs_accept_nums) || StringUtils.isEmpty(max_stand_vehicle_nums)) {
|
||||||
logger.error("配置未生成");
|
logger.error("配置未生成");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int maxVehicleNums = Integer.parseInt(max_vehicle_nums);
|
int maxVehicleNums = Integer.parseInt(max_vehicle_nums);// 线体最大箱子数量
|
||||||
int maxWcsAcceptNums = Integer.parseInt(max_wcs_accept_nums);// wcs最大一次性可接受任务数量
|
int maxWcsAcceptNums = Integer.parseInt(max_wcs_accept_nums);// wcs最大一次性可接受任务数量
|
||||||
|
int maxStandVehicleNums = Integer.parseInt(max_stand_vehicle_nums);// 每个站台最大箱子数量
|
||||||
List<String> outsideVehicles = outsideVehiclesService.selectDistinctVehicles();
|
List<String> outsideVehicles = outsideVehiclesService.selectDistinctVehicles();
|
||||||
if (outsideVehicles == null || outsideVehicles.isEmpty()) {
|
if (outsideVehicles == null || outsideVehicles.isEmpty()) {
|
||||||
outsideVehicles = Collections.emptyList();
|
outsideVehicles = Collections.emptyList();
|
||||||
|
|
@ -245,6 +247,10 @@ public class WmsJobServiceImplements implements IWmsJobService {
|
||||||
// 超过wcs一次可接受数量
|
// 超过wcs一次可接受数量
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (outPickTaskMap.isEmpty()) {
|
||||||
|
// 没有站台可以使用
|
||||||
|
break;
|
||||||
|
}
|
||||||
// 先找出目前数量最少的站台
|
// 先找出目前数量最少的站台
|
||||||
String standId = outPickTaskMap.entrySet().stream()
|
String standId = outPickTaskMap.entrySet().stream()
|
||||||
.min(Comparator.comparingInt(Map.Entry::getValue))
|
.min(Comparator.comparingInt(Map.Entry::getValue))
|
||||||
|
|
@ -252,6 +258,11 @@ public class WmsJobServiceImplements implements IWmsJobService {
|
||||||
.orElse("");
|
.orElse("");
|
||||||
List<String> vehicleIds;
|
List<String> vehicleIds;
|
||||||
if (StringUtils.isNotEmpty(standId)) {
|
if (StringUtils.isNotEmpty(standId)) {
|
||||||
|
// 如果这个站台箱子数量超过最大每个站台的箱子数量,则跳过
|
||||||
|
if (outPickTaskMap.get(standId) >= maxStandVehicleNums) {
|
||||||
|
outPickTaskMap.remove(standId);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// 查找这个站台未下发的料箱
|
// 查找这个站台未下发的料箱
|
||||||
vehicleIds = standPickTasks.stream()
|
vehicleIds = standPickTasks.stream()
|
||||||
.filter(pickTask -> pickTask.getStandId().equals(standId) && pickTask.getPickStatus().equals(PickTaskStatusEnum.TEMP.getCode())
|
.filter(pickTask -> pickTask.getStandId().equals(standId) && pickTask.getPickStatus().equals(PickTaskStatusEnum.TEMP.getCode())
|
||||||
|
|
@ -340,6 +351,7 @@ public class WmsJobServiceImplements implements IWmsJobService {
|
||||||
runningTaskNumToEquipmentMap.replace(equipmentId, runningTaskNumToEquipmentMap.get(equipmentId) + 1);
|
runningTaskNumToEquipmentMap.replace(equipmentId, runningTaskNumToEquipmentMap.get(equipmentId) + 1);
|
||||||
// 已经发送过的vehicleId
|
// 已经发送过的vehicleId
|
||||||
pickVehicleIds.add(maxVehicleId);
|
pickVehicleIds.add(maxVehicleId);
|
||||||
|
vehicleStandsMap.remove(maxVehicleId);
|
||||||
// 剩余线体可继续出库料箱数量
|
// 剩余线体可继续出库料箱数量
|
||||||
remainVehicleNums--;
|
remainVehicleNums--;
|
||||||
}
|
}
|
||||||
|
|
@ -410,6 +422,7 @@ public class WmsJobServiceImplements implements IWmsJobService {
|
||||||
runningTaskNumToEquipmentMap.replace(equipmentId, runningTaskNumToEquipmentMap.get(equipmentId) + 1);
|
runningTaskNumToEquipmentMap.replace(equipmentId, runningTaskNumToEquipmentMap.get(equipmentId) + 1);
|
||||||
// 已经发送过的vehicleId
|
// 已经发送过的vehicleId
|
||||||
pickVehicleIds.add(minVehicleId);
|
pickVehicleIds.add(minVehicleId);
|
||||||
|
vehicleStandsMap.remove(minVehicleId);
|
||||||
// 剩余线体可继续出库料箱数量
|
// 剩余线体可继续出库料箱数量
|
||||||
remainVehicleNums--;
|
remainVehicleNums--;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.wms.constants.enums.TaskType;
|
import com.wms.constants.enums.TaskType;
|
||||||
import com.wms.entity.app.dto.TaskRecordDto;
|
import com.wms.entity.app.dto.TaskRecordDto;
|
||||||
|
import com.wms.entity.table.Stock;
|
||||||
import com.wms.entity.table.TaskRecord;
|
import com.wms.entity.table.TaskRecord;
|
||||||
import com.wms.mapper.TaskRecordMapper;
|
import com.wms.mapper.TaskRecordMapper;
|
||||||
import com.wms.service.TaskRecordService;
|
import com.wms.service.TaskRecordService;
|
||||||
|
|
@ -53,6 +54,12 @@ public class TaskRecordServiceImplements extends ServiceImpl<TaskRecordMapper, T
|
||||||
// 物料名称/描述
|
// 物料名称/描述
|
||||||
.apply(StringUtils.isNotEmpty(query.getGoodsRelated().getGoodsName()), "goods_related ->> '$.goodsName' like concat('%', {0}, '%')" + MYSQL_JSON_CI, query.getGoodsRelated().getGoodsName());
|
.apply(StringUtils.isNotEmpty(query.getGoodsRelated().getGoodsName()), "goods_related ->> '$.goodsName' like concat('%', {0}, '%')" + MYSQL_JSON_CI, query.getGoodsRelated().getGoodsName());
|
||||||
}
|
}
|
||||||
|
if (query.getCreateTime() != null) {
|
||||||
|
queryWrapper.between(TaskRecord::getCreateTime, query.getCreateTime().toLocalDate().atStartOfDay(), query.getCreateTime().toLocalDate().plusDays(1).atStartOfDay().minusSeconds(1));
|
||||||
|
}
|
||||||
|
if (query.getFinishTime() != null) {
|
||||||
|
queryWrapper.between(TaskRecord::getFinishTime, query.getFinishTime().toLocalDate().atStartOfDay(), query.getFinishTime().toLocalDate().plusDays(1).atStartOfDay().minusSeconds(1));
|
||||||
|
}
|
||||||
return super.list(queryWrapper);
|
return super.list(queryWrapper);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user