代码更新:

1. 增加库存更新功能
2. 增加任务状态修改功能
This commit is contained in:
梁州 2024-09-12 16:55:05 +08:00
parent fdfebcd544
commit e6e8e0217e
11 changed files with 28582 additions and 1007 deletions

View File

@ -9,8 +9,6 @@ public enum WmsTaskStatus {
NEW(0, "任务新建,待下发"), NEW(0, "任务新建,待下发"),
WAIT(1, "任务已下发"), WAIT(1, "任务已下发"),
RUN(2, "任务开始执行"), RUN(2, "任务开始执行"),
OUT_FINISHED(3, "出库完成"),
TRANS(4, "环线运输"),
PICKING(8, "拣选中"), PICKING(8, "拣选中"),
INVENTORY(9, "盘点中"), INVENTORY(9, "盘点中"),
FINISH(100, "任务完成"), FINISH(100, "任务完成"),

View File

@ -3,17 +3,23 @@ package com.wms.controller;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wms.annotation.MyLog; import com.wms.annotation.MyLog;
import com.wms.constants.enums.ResponseCode; import com.wms.constants.enums.ResponseCode;
import com.wms.entity.app.ResponseEntity; import com.wms.entity.app.ResponseEntity;
import com.wms.entity.app.dto.PageDto; import com.wms.entity.app.dto.PageDto;
import com.wms.entity.app.dto.StockDto; import com.wms.entity.app.dto.StockDto;
import com.wms.entity.app.dto.extend.StockDetailInfo;
import com.wms.entity.app.request.StockQuery; import com.wms.entity.app.request.StockQuery;
import com.wms.entity.app.vo.StockVo; import com.wms.entity.app.vo.StockVo;
import com.wms.entity.table.Location;
import com.wms.entity.table.Stock; import com.wms.entity.table.Stock;
import com.wms.entity.table.Vehicle;
import com.wms.service.IStockUpdateRecordService; import com.wms.service.IStockUpdateRecordService;
import com.wms.service.LocationService;
import com.wms.service.StockService; import com.wms.service.StockService;
import com.wms.service.VehicleService;
import com.wms.utils.HttpUtils; import com.wms.utils.HttpUtils;
import com.wms.utils.StringUtils; import com.wms.utils.StringUtils;
import com.wms.utils.WmsUtils; import com.wms.utils.WmsUtils;
@ -30,6 +36,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -57,6 +64,14 @@ public class StockController {
* 库存更新记录服务 * 库存更新记录服务
*/ */
private final IStockUpdateRecordService stockUpdateRecordService; private final IStockUpdateRecordService stockUpdateRecordService;
/**
* 库位服务
*/
private final LocationService locationService;
/**
* 料箱服务
*/
private final VehicleService vehicleService;
/** /**
* 请求头部信息 * 请求头部信息
*/ */
@ -148,29 +163,39 @@ public class StockController {
/** /**
* 更新库存信息 * 更新库存信息
* *
* @param stock 库存 * @param stockQuery 库存
* @return 结果 * @return 结果
*/ */
@PostMapping("/updateStockInfo") @PostMapping("/updateStockInfo")
@ResponseBody @ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
@MyLog(logTitle = "更新库存信息", logMethod = "updateStockInfo") @MyLog(logTitle = "更新库存信息", logMethod = "updateStockInfo")
public String updateStockInfo(@RequestBody StockDto stock) { public String updateStockInfo(@RequestBody StockQuery stockQuery) {
logger.info("接收到更新库存信息请求:{}请求ip{}", convertJsonString(stock), HttpUtils.getIpAddr(servletRequest)); logger.info("接收到更新库存信息请求:{}请求ip{}", convertJsonString(stockQuery), HttpUtils.getIpAddr(servletRequest));
// 创建响应信息 // 创建响应信息
ResponseEntity rsp = new ResponseEntity(); ResponseEntity rsp = new ResponseEntity();
try { try {
if (StringUtils.isEmpty(stock.getStockId())) {// 库存编号为空不允许执行 if (StringUtils.isEmpty(stockQuery.getStockId())) {// 库存编号为空不允许执行
logger.error("请求的库存编号为空,不允许修改"); logger.error("请求的库存编号为空,不允许修改");
rsp.setCode(ResponseCode.ERROR.getCode()); rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("请求的库存编号为空,不允许修改"); rsp.setMessage("请求的库存编号为空,不允许修改");
return convertJsonString(rsp); return convertJsonString(rsp);
} }
Stock stockBefore = stockService.getOne(new LambdaQueryWrapper<Stock>().eq(Stock::getStockId, stock.getStockId())); LambdaQueryWrapper<Stock> stockLambdaQueryWrapper = new LambdaQueryWrapper<Stock>().eq(Stock::getStockId, stockQuery.getStockId());
LambdaQueryWrapper<Stock> stockLambdaQueryWrapper = new LambdaQueryWrapper<Stock>().eq(Stock::getStockId, stock.getStockId()); // 查询原有库存
if (stock.getGoodsRelated().getRemainNum().compareTo(BigDecimal.ZERO) <= 0) { Stock stockBefore = stockService.getOne(stockLambdaQueryWrapper);
if (stockQuery.getRemainNum().compareTo(BigDecimal.ZERO) <= 0) {
if (stockService.remove(stockLambdaQueryWrapper)) { if (stockService.remove(stockLambdaQueryWrapper)) {
stockUpdateRecordService.addStockUpdateRecord(stockBefore, null, "删除库存", "前端界面"); // 判断这个箱子是否变成空箱
if (!stockService.exists(new LambdaQueryWrapper<Stock>()
.eq(Stock::getVehicleId, stockBefore.getVehicleId())
.ne(Stock::getStockId, stockBefore.getStockId()))) {
vehicleService.update(new LambdaUpdateWrapper<Vehicle>()
.set(Vehicle::getIsEmpty, 1)
.eq(Vehicle::getVehicleId, stockBefore.getVehicleId())
.eq(Vehicle::getIsEmpty, 0));
}
stockUpdateRecordService.addStockUpdateRecord(stockBefore, null, "删除库存", stockQuery.getUserName());
// 返回成功 // 返回成功
logger.info("数量为0删除库存成功"); logger.info("数量为0删除库存成功");
rsp.setCode(ResponseCode.OK.getCode()); rsp.setCode(ResponseCode.OK.getCode());
@ -182,8 +207,23 @@ public class StockController {
rsp.setMessage("数量为0删除库存失败"); rsp.setMessage("数量为0删除库存失败");
} }
} else { } else {
if (stockService.update(BeanUtil.copyProperties(stock, Stock.class), stockLambdaQueryWrapper)) { // 更新库存---只能更新一部分列
stockUpdateRecordService.addStockUpdateRecord(stockBefore, BeanUtil.copyProperties(stock, Stock.class), "修改库存", "前端界面"); Stock updatingStock = BeanUtil.copyProperties(stockBefore, Stock.class);
updatingStock.setStockStatus(stockQuery.getStockStatus());
if (StringUtils.isNotEmpty(stockQuery.getLocationId()) && locationService.exists(new LambdaQueryWrapper<Location>().eq(Location::getLocationId, stockQuery.getLocationId()))) {
updatingStock.setLocationId(stockQuery.getLocationId());
}
updatingStock.setLastUpdateTime(LocalDateTime.now());
updatingStock.setLastUpdateUser(stockQuery.getUserName());
if (StringUtils.isNotEmpty(stockQuery.getGoodsId())) {
StockDetailInfo goodsRelated = updatingStock.getGoodsRelated();
goodsRelated.setRemainNum(stockQuery.getRemainNum());
goodsRelated.setGoodsStatus(stockQuery.getGoodsStatus());
updatingStock.setGoodsRelated(goodsRelated);
}
// 更新库存
if (stockService.update(updatingStock, stockLambdaQueryWrapper)) {
stockUpdateRecordService.addStockUpdateRecord(stockBefore, updatingStock, "修改库存", stockQuery.getUserName());
// 返回成功 // 返回成功
logger.info("更新库存信息成功"); logger.info("更新库存信息成功");
rsp.setCode(ResponseCode.OK.getCode()); rsp.setCode(ResponseCode.OK.getCode());
@ -210,22 +250,29 @@ public class StockController {
/** /**
* 新增库存 * 新增库存
* *
* @param stock 库存 * @param stockQuery 库存
* @return 结果 * @return 结果
*/ */
@PostMapping("/addNewStock") @PostMapping("/addNewStock")
@ResponseBody @ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED) @Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
@MyLog(logTitle = "添加库存信息", logMethod = "addNewStock") @MyLog(logTitle = "添加库存信息", logMethod = "addNewStock")
public String addNewStock(@RequestBody StockDto stock) { public String addNewStock(@RequestBody StockQuery stockQuery) {
logger.info("接收到添加信息请求:{}请求ip{}", convertJsonString(stock), HttpUtils.getIpAddr(servletRequest)); logger.info("接收到添加信息请求:{}请求ip{}", convertJsonString(stockQuery), HttpUtils.getIpAddr(servletRequest));
// 创建响应信息 // 创建响应信息
ResponseEntity rsp = new ResponseEntity(); ResponseEntity rsp = new ResponseEntity();
try { try {
StockDto tempStock = new StockDto(); Stock stockPo = stockQuery.toStockPo();
tempStock.setStockId(WmsUtils.generateId("ST")); stockPo.setStockId(WmsUtils.generateId("ST"));
if (stockService.save(BeanUtil.copyProperties(stock, Stock.class))) { stockPo.setCreateTime(LocalDateTime.now());
stockUpdateRecordService.addStockUpdateRecord(null, BeanUtil.copyProperties(stock, Stock.class), "新增库存", "前端界面"); stockPo.setLastUpdateUser(stockQuery.getUserName());
if (stockService.save(stockPo)) {
// 如果这个箱子本来是空箱那么设置为非空箱
vehicleService.update(new LambdaUpdateWrapper<Vehicle>()
.set(Vehicle::getIsEmpty, 0)
.eq(Vehicle::getVehicleId, stockPo.getVehicleId())
.eq(Vehicle::getIsEmpty, 1));
stockUpdateRecordService.addStockUpdateRecord(null, stockPo, "新增库存", stockQuery.getUserName());
// 返回成功 // 返回成功
logger.info("添加库存信息成功"); logger.info("添加库存信息成功");
rsp.setCode(ResponseCode.OK.getCode()); rsp.setCode(ResponseCode.OK.getCode());
@ -240,7 +287,7 @@ public class StockController {
} catch (Exception e) { } catch (Exception e) {
// 回滚事务 // 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("发生异常:{}", e.getMessage()); logger.info("新增库存发生异常:{}", e.getMessage());
// 返回其他异常 // 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode()); rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(e.getMessage()); rsp.setMessage(e.getMessage());

View File

@ -1908,6 +1908,14 @@ public class TaskController {
boolean hasPickTasks = pickTaskService.exists(new LambdaQueryWrapper<PickTask>() boolean hasPickTasks = pickTaskService.exists(new LambdaQueryWrapper<PickTask>()
.eq(PickTask::getVehicleId, requestBackQuery.getVehicleId())); .eq(PickTask::getVehicleId, requestBackQuery.getVehicleId()));
if (!hasPickTasks) { if (!hasPickTasks) {
// 验证载具号是否重复入库
if (vehicleService.exists(new LambdaQueryWrapper<Vehicle>().eq(Vehicle::getVehicleId, requestBackQuery.getVehicleId())
.and(wrapper -> wrapper.eq(Vehicle::getVehicleStatus, VehicleStatus.ON.getCode())))) {
logger.error("当前箱子{}已在库中,无法回库。", requestBackQuery.getVehicleId());
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("当前箱子" + requestBackQuery.getVehicleId() + "已在库中,无法回库。");
return convertJsonString(response);
}
// 判断当前载具是否有回库任务 // 判断当前载具是否有回库任务
boolean hasBackTask = taskService.exists(new LambdaQueryWrapper<Task>() boolean hasBackTask = taskService.exists(new LambdaQueryWrapper<Task>()
.eq(Task::getVehicleId, requestBackQuery.getVehicleId()) .eq(Task::getVehicleId, requestBackQuery.getVehicleId())
@ -2479,7 +2487,6 @@ public class TaskController {
logger.info("直接物料非计划领料确认回库:{}ip地址{}", convertJsonString(pickNumQuery), HttpUtils.getIpAddr(servletRequest)); logger.info("直接物料非计划领料确认回库:{}ip地址{}", convertJsonString(pickNumQuery), HttpUtils.getIpAddr(servletRequest));
ResponseEntity response = new ResponseEntity(); ResponseEntity response = new ResponseEntity();
try { try {
// TODO 确认拣货完成回库
// 判断信息是否完备 // 判断信息是否完备
if (StringUtils.isEmpty(pickNumQuery.getGoodsId()) if (StringUtils.isEmpty(pickNumQuery.getGoodsId())
|| StringUtils.isEmpty(pickNumQuery.getVehicleId()) || StringUtils.isEmpty(pickNumQuery.getVehicleId())
@ -2513,6 +2520,14 @@ public class TaskController {
.eq(Task::getTaskType, TaskType.IN.getCode()) .eq(Task::getTaskType, TaskType.IN.getCode())
.likeRight(Task::getTaskId, "HK_")); .likeRight(Task::getTaskId, "HK_"));
if (!hasBackTask) { if (!hasBackTask) {
// 验证载具号是否重复入库
if (vehicleService.exists(new LambdaQueryWrapper<Vehicle>().eq(Vehicle::getVehicleId, pickNumQuery.getVehicleId())
.and(wrapper -> wrapper.eq(Vehicle::getVehicleStatus, VehicleStatus.ON.getCode())))) {
logger.error("当前箱子{}已在库中,无法回库。", pickNumQuery.getVehicleId());
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("当前箱子" + pickNumQuery.getVehicleId() + "已在库中,无法回库。");
return convertJsonString(response);
}
// 判断当前载具是否有入库任务 // 判断当前载具是否有入库任务
boolean hasInTask = taskService.exists(new LambdaQueryWrapper<Task>() boolean hasInTask = taskService.exists(new LambdaQueryWrapper<Task>()
.eq(Task::getVehicleId, pickNumQuery.getVehicleId()) .eq(Task::getVehicleId, pickNumQuery.getVehicleId())

View File

@ -3,20 +3,21 @@ package com.wms.controller;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wms.annotation.MyLog; import com.wms.annotation.MyLog;
import com.wms.constants.enums.ResponseCode; import com.wms.constants.enums.ResponseCode;
import com.wms.constants.enums.WmsTaskStatus;
import com.wms.entity.app.ResponseEntity; import com.wms.entity.app.ResponseEntity;
import com.wms.entity.app.dto.PageDto; import com.wms.entity.app.dto.PageDto;
import com.wms.entity.app.request.PickTaskQuery; import com.wms.entity.app.request.PickTaskQuery;
import com.wms.entity.app.request.TaskQuery; import com.wms.entity.app.request.TaskQuery;
import com.wms.entity.app.request.VehicleQuery;
import com.wms.entity.app.vo.PickTaskVo; import com.wms.entity.app.vo.PickTaskVo;
import com.wms.entity.app.vo.TaskVO; import com.wms.entity.app.wcs.WcsTaskResultRequest;
import com.wms.entity.table.PickTask; import com.wms.entity.table.PickTask;
import com.wms.entity.table.Task; import com.wms.entity.table.Task;
import com.wms.entity.table.Vehicle;
import com.wms.service.PickTaskService; import com.wms.service.PickTaskService;
import com.wms.service.TaskService;
import com.wms.utils.HttpUtils; import com.wms.utils.HttpUtils;
import com.wms.utils.StringUtils; import com.wms.utils.StringUtils;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
@ -31,6 +32,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Objects;
import static com.wms.utils.StringUtils.convertJsonString; import static com.wms.utils.StringUtils.convertJsonString;
/** /**
@ -50,6 +53,14 @@ public class TaskMonitorController {
* 拣选任务服务 * 拣选任务服务
*/ */
private final PickTaskService pickTaskService; private final PickTaskService pickTaskService;
/**
* 任务服务
*/
private final TaskService taskService;
/**
* 任务控制类
*/
private final TaskController taskController;
/** /**
* 查询拣选任务---分页 * 查询拣选任务---分页
@ -133,4 +144,95 @@ public class TaskMonitorController {
return JSON.toJSONString(rsp); return JSON.toJSONString(rsp);
} }
} }
/**
* 修改任务信息
*
* @param taskQuery 任务信息
* @return 结果
*/
@PostMapping("/updateTaskInfo")
@ResponseBody
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
@MyLog(logTitle = "修改任务信息", logMethod = "updateTaskInfo")
public String updateTaskInfo(@RequestBody TaskQuery taskQuery) {
logger.info("接收到修改任务信息请求:{}请求ip{}", convertJsonString(taskQuery), HttpUtils.getIpAddr(servletRequest));
// 创建响应信息
ResponseEntity rsp = new ResponseEntity();
try {
if (StringUtils.isEmpty(taskQuery.getTaskId())) {// 任务号为空
logger.error("缺少任务号。");
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("缺少任务号。");
return convertJsonString(rsp);
}
// 只支持修改任务状态
if (taskQuery.getTaskStatus() != null) {
// 查询对应的任务
Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskId, taskQuery.getTaskId()).last("limit 1"));
if (task == null) {
logger.error("任务号错误:没有任务。");
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("任务号错误:没有任务。");
return convertJsonString(rsp);
}
if (!Objects.equals(task.getTaskStatus(), taskQuery.getTaskStatus())) {
if (Objects.equals(taskQuery.getTaskStatus(), WmsTaskStatus.TEMP.getCode())
|| Objects.equals(taskQuery.getTaskStatus(), WmsTaskStatus.NEW.getCode())
|| Objects.equals(taskQuery.getTaskStatus(), WmsTaskStatus.PICKING.getCode())
|| Objects.equals(taskQuery.getTaskStatus(), WmsTaskStatus.INVENTORY.getCode())) {
if (taskService.update(new LambdaUpdateWrapper<Task>()
.set(Task::getTaskStatus, taskQuery.getTaskStatus())
.eq(Task::getTaskGroup, task.getTaskGroup())
.ne(Task::getTaskStatus, taskQuery.getTaskStatus()))) {
// 返回成功
logger.info("修改任务信息成功。");
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("修改任务信息成功。");
} else {
// 返回失败
logger.error("修改任务信息失败。");
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("修改任务信息失败。");
}
} else {
WcsTaskResultRequest taskResultRequest = new WcsTaskResultRequest();
taskResultRequest.setTaskId(task.getTaskGroup());
taskResultRequest.setTaskStatus(taskQuery.getTaskStatus());
taskResultRequest.setMessage("任务状态修改");
taskResultRequest.setUserName(taskQuery.getUserName());
taskResultRequest.setVehicleId(task.getVehicleId());
taskResultRequest.setDestination(task.getDestination());
ResponseEntity result = JSON.parseObject(taskController.receiveTaskResult(taskResultRequest), ResponseEntity.class);
if (result == null || !Objects.equals(result.getCode(), ResponseCode.OK.getCode())) {
logger.error("修改任务信息失败。");
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage(result == null ? "修改任务信息失败" : "修改任务信息失败:" + result.getMessage());
} else {
logger.info("修改任务信息成功。");
rsp.setCode(ResponseCode.OK.getCode());
rsp.setMessage("修改任务信息成功。");
}
}
} else {
logger.error("任务状态没有变化。");
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("任务状态没有变化。");
}
} else {
logger.error("缺少任务状态。");
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("缺少任务状态。");
}
return convertJsonString(rsp);
} catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.info("修改任务发生异常:{}", convertJsonString(e));
// 返回其他异常
rsp.setCode(ResponseCode.ERROR.getCode());
rsp.setMessage("修改任务发生异常");
return JSON.toJSONString(rsp);
}
}
} }

View File

@ -70,8 +70,6 @@ public class WmsLogController {
response.setReturnData(pageDto); response.setReturnData(pageDto);
return convertJsonString(response); return convertJsonString(response);
} catch (Exception e) { } catch (Exception e) {
// 回滚事务
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
logger.error("查询日志信息发生异常:{}", convertJsonString(e)); logger.error("查询日志信息发生异常:{}", convertJsonString(e));
response.setCode(ResponseCode.ERROR.getCode()); response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("查询日志信息发生异常"); response.setMessage("查询日志信息发生异常");

View File

@ -10,7 +10,7 @@ import java.time.LocalDateTime;
* 库存 * 库存
*/ */
@Data @Data
public class StockDto { public class StockDto{
/** /**
* 库存编号 * 库存编号
*/ */

View File

@ -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.StockDetailInfo; import com.wms.entity.app.dto.extend.StockDetailInfo;
import com.wms.entity.table.Stock; import com.wms.entity.table.Stock;
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.math.BigDecimal;
import java.time.LocalDateTime;
/** /**
* 库存查询请求 * 库存查询请求
@ -14,25 +18,65 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class StockQuery extends PageQuery { public class StockQuery extends PageQuery {
/** /**
* 库存状态 * 库存编号
*/ */
@JsonProperty("stockStatus") @JsonProperty("stockId")
private Integer stockStatus; private String stockId;
/** /**
* 物料状态 * 库位ID
*/
@JsonProperty("goodsStatus")
private Integer goodsStatus;
/**
* 库位
*/ */
@JsonProperty("locationId") @JsonProperty("locationId")
private String locationId; private String locationId;
/** /**
* 载具 * 托盘号
*/ */
@JsonProperty("vehicleId") @JsonProperty("vehicleId")
private String vehicleId; private String vehicleId;
/**
* 重量
*/
@JsonProperty("weight")
private BigDecimal weight;
/**
* 库存状态
* 正常出库中锁定
*/
@JsonProperty("stockStatus")
private Integer stockStatus;
/**
* 创建时间
*/
@JsonProperty("createTime")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/**
* 最后更新时间
*/
@JsonProperty("lastUpdateTime")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime lastUpdateTime;
/**
* 最后更新用户
*/
@JsonProperty("lastUpdateUser")
private String lastUpdateUser;
/**
* 是否盘点
*/
@JsonProperty("isInventory")
private Integer isInventory;
/**
* 盘点任务号 盘点出库和盘点入库同样
*/
@JsonProperty("inventoryTaskId")
private String inventoryTaskId;
/**
* 呆滞天数
*/
@JsonProperty("noUseDays")
private Integer noUseDays;
/** /**
* 物料编号 * 物料编号
*/ */
@ -43,24 +87,46 @@ public class StockQuery extends PageQuery {
*/ */
@JsonProperty("goodsName") @JsonProperty("goodsName")
private String goodsName; private String goodsName;
/**
* 物料状态
*/
@JsonProperty("goodsStatus")
private Integer goodsStatus;
/**
* 剩余数量
*/
@JsonProperty("remainNum")
private BigDecimal remainNum;
/**
* 入库库存总数
*/
@JsonProperty("totalNum")
private BigDecimal totalNum;
/** /**
* 根据客户端查询生成数据库查询条件 * 转化为库存Po
* @return 数据库PO * @return 转化结果
*/ */
public Stock toStockPO() { public Stock toStockPo() {
Stock stockPO = new Stock(); Stock stockPo = new Stock();
stockPO.setLocationId(locationId);// 库位号 stockPo.setStockId(this.stockId);
stockPO.setStockStatus(stockStatus);// 库存状态 stockPo.setLocationId(this.locationId);
stockPO.setVehicleId(vehicleId);// 载具号 stockPo.setVehicleId(this.vehicleId);
if (StringUtils.isNotEmpty(goodsId) || StringUtils.isNotEmpty(goodsName) || goodsStatus != null) {// 包含物料详细信息 stockPo.setWeight(this.weight);
StockDetailInfo goodsRelatedPO = new StockDetailInfo(); stockPo.setStockStatus(this.stockStatus);
goodsRelatedPO.setGoodsId(goodsId); stockPo.setCreateTime(this.createTime);
goodsRelatedPO.setGoodsName(goodsName); stockPo.setLastUpdateTime(this.lastUpdateTime);
goodsRelatedPO.setGoodsStatus(goodsStatus); stockPo.setLastUpdateUser(this.lastUpdateUser);
stockPO.setGoodsRelated(goodsRelatedPO); stockPo.setIsInventory(this.isInventory);
} stockPo.setInventoryTaskId(this.inventoryTaskId);
stockPo.setNoUseDays(this.noUseDays);
return stockPO; StockDetailInfo goodsRelated = new StockDetailInfo();
goodsRelated.setGoodsId(this.goodsId);
goodsRelated.setGoodsName(this.goodsName);
goodsRelated.setGoodsStatus(this.goodsStatus);
goodsRelated.setRemainNum(this.remainNum);
goodsRelated.setTotalNum(this.totalNum);
stockPo.setGoodsRelated(goodsRelated);
return stockPo;
} }
} }

View File

@ -10,6 +10,10 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class TaskQuery extends PageQuery { public class TaskQuery extends PageQuery {
@JsonProperty("taskId")
private String taskId;
@JsonProperty("taskGroup")
private String taskGroup;
@JsonProperty("taskType") @JsonProperty("taskType")
private Integer taskType; private Integer taskType;
@JsonProperty("vehicleId") @JsonProperty("vehicleId")
@ -29,9 +33,12 @@ public class TaskQuery extends PageQuery {
*/ */
public Task toTaskPO() { public Task toTaskPO() {
Task taskPO = new Task(); Task taskPO = new Task();
taskPO.setTaskId(taskId);
taskPO.setTaskGroup(taskGroup);
taskPO.setTaskType(taskType);// 任务类型 taskPO.setTaskType(taskType);// 任务类型
taskPO.setVehicleId(vehicleId);// 载具号 taskPO.setVehicleId(vehicleId);// 载具号
taskPO.setIsPicking(isPicking); taskPO.setIsPicking(isPicking);
taskPO.setTaskStatus(taskStatus);
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);

View File

@ -1,5 +1,6 @@
package com.wms.entity.app.vo; package com.wms.entity.app.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.wms.entity.app.dto.extend.TaskDetailInfo; import com.wms.entity.app.dto.extend.TaskDetailInfo;
import lombok.Data; import lombok.Data;
@ -14,69 +15,86 @@ public class TaskVO {
/** /**
* 任务号 * 任务号
*/ */
@JsonProperty("taskId")
private String taskId; private String taskId;
/** /**
* 任务类型 * 任务类型
*/ */
@JsonProperty("taskType")
private Integer taskType; private Integer taskType;
/** /**
* 任务状态 * 任务状态
*/ */
@JsonProperty("taskStatus")
private Integer taskStatus; private Integer taskStatus;
/** /**
* 起点 * 起点
*/ */
@JsonProperty("origin")
private String origin; private String origin;
/** /**
* 终点 * 终点
*/ */
@JsonProperty("destination")
private String destination; private String destination;
/** /**
* 任务优先级 * 任务优先级
*/ */
@JsonProperty("taskPriority")
private Integer taskPriority; private Integer taskPriority;
/** /**
* 任务组 * 任务组
*/ */
@JsonProperty("taskGroup")
private String taskGroup; private String taskGroup;
/** /**
* 载具号 * 载具号
*/ */
@JsonProperty("vehicleId")
private String vehicleId; private String vehicleId;
/** /**
* 重量 * 重量
*/ */
@JsonProperty("weight")
private BigDecimal weight; private BigDecimal weight;
/** /**
* 载具尺寸 * 载具尺寸
*/ */
@JsonProperty("vehicleSize")
private Integer vehicleSize; private Integer vehicleSize;
/** /**
* 创建时间 * 创建时间
*/ */
@JsonProperty("createTime")
private LocalDateTime createTime; private LocalDateTime createTime;
/** /**
* 完成时间 * 完成时间
*/ */
@JsonProperty("finishTime")
private LocalDateTime finishTime; private LocalDateTime finishTime;
/** /**
* 用户名 * 用户名
*/ */
@JsonProperty("userName")
private String userName; private String userName;
/** /**
* 物料相关 * 物料相关
*/ */
@JsonProperty("goodsRelated")
private TaskDetailInfo goodsRelated; private TaskDetailInfo goodsRelated;
/** /**
* 前置任务号 * 前置任务号
*/ */
@JsonProperty("preTask")
private String preTask; private String preTask;
/** /**
* 是否拣选 * 是否拣选
*/ */
@JsonProperty("isPicking")
private Integer isPicking; private Integer isPicking;
/** /**
* 拣选站台 * 拣选站台
*/ */
@JsonProperty("pickStand")
private String pickStand; private String pickStand;
} }

View File

@ -1,7 +1,6 @@
package com.wms.service; package com.wms.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.wms.entity.app.dto.StockDto;
import com.wms.entity.app.dto.StockOfGoodsDto; import com.wms.entity.app.dto.StockOfGoodsDto;
import com.wms.entity.table.Stock; import com.wms.entity.table.Stock;

File diff suppressed because it is too large Load Diff