1
This commit is contained in:
parent
b4cb27e7af
commit
75d7144ce7
|
|
@ -78,7 +78,7 @@ public class JobComponent extends BaseController {
|
||||||
private final VehicleMapper vehicleMapper;
|
private final VehicleMapper vehicleMapper;
|
||||||
|
|
||||||
|
|
||||||
@Scheduled(fixedDelay = 1000)
|
@Scheduled(fixedDelay = 2000)
|
||||||
public void sendTasksToWcs() {
|
public void sendTasksToWcs() {
|
||||||
try {
|
try {
|
||||||
// 查找待下发的任务
|
// 查找待下发的任务
|
||||||
|
|
@ -94,14 +94,14 @@ public class JobComponent extends BaseController {
|
||||||
sendTasksInToWcs(task);
|
sendTasksInToWcs(task);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(task.getTaskType().equals(TaskType.MOVE.getCode())){
|
||||||
|
sendTasksMoveToWcs(task);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if(task.getTaskType().equals(TaskType.OUT.getCode()) || task.getTaskType().equals(TaskType.INVENTORY.getCode())){
|
if(task.getTaskType().equals(TaskType.OUT.getCode()) || task.getTaskType().equals(TaskType.INVENTORY.getCode())){
|
||||||
sendTasksOutToWcs(task);
|
sendTasksOutToWcs(task);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(task.getTaskType().equals(TaskType.MOVE.getCode())){
|
|
||||||
sendTasksMoveToWcs(task);
|
|
||||||
// return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}catch (Exception exception){
|
}catch (Exception exception){
|
||||||
logger.error("定时器下发任务发生异常:{}", exception.toString());
|
logger.error("定时器下发任务发生异常:{}", exception.toString());
|
||||||
|
|
|
||||||
|
|
@ -145,7 +145,7 @@ public class TaskOperation {
|
||||||
addStock.setProviderId("");
|
addStock.setProviderId("");
|
||||||
addStock.setProviderName("");
|
addStock.setProviderName("");
|
||||||
addStock.setExpirationDate(null);
|
addStock.setExpirationDate(null);
|
||||||
addStock.setStockStatus(0);
|
addStock.setStockStatus(StockStatus.OK.getCode());
|
||||||
addStock.setGoodsStatus(null);
|
addStock.setGoodsStatus(null);
|
||||||
addStock.setCreateTime(new Date());
|
addStock.setCreateTime(new Date());
|
||||||
addStock.setLastUpdateTime(null);
|
addStock.setLastUpdateTime(null);
|
||||||
|
|
|
||||||
|
|
@ -31,11 +31,12 @@ public class OrderInImplement implements IOrderInService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询入库单
|
* 查询入库单
|
||||||
|
*
|
||||||
* @param request 查询参数
|
* @param request 查询参数
|
||||||
* @return 返回结果
|
* @return 返回结果
|
||||||
*/
|
*/
|
||||||
public WmsApiResponse<List<AppOrderIn>> queryOrderIn(queryOrderInRequest request) {
|
public WmsApiResponse<List<AppOrderIn>> queryOrderIn(queryOrderInRequest request) {
|
||||||
if(request.getOrderStatus() == null || request.getOrderStatus().isEmpty()) {
|
if (request.getOrderStatus() == null || request.getOrderStatus().isEmpty()) {
|
||||||
return new WmsApiResponse<>(0, "查询成功", new ArrayList<>()); // 没有查询参数,返回空
|
return new WmsApiResponse<>(0, "查询成功", new ArrayList<>()); // 没有查询参数,返回空
|
||||||
}
|
}
|
||||||
List<AppOrderIn> appOrderIns = appOrderInMapper.selectWithParams(request.getSearchStr(), request.getOrderStatus());
|
List<AppOrderIn> appOrderIns = appOrderInMapper.selectWithParams(request.getSearchStr(), request.getOrderStatus());
|
||||||
|
|
@ -43,14 +44,14 @@ public class OrderInImplement implements IOrderInService {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加入库单
|
* 添加入库单
|
||||||
|
*
|
||||||
* @param request 入库单参数
|
* @param request 入库单参数
|
||||||
* @return 返回结果
|
* @return 返回结果
|
||||||
*/
|
*/
|
||||||
public WmsApiResponse<Object> addOrderIn(downOrderInRequest request){
|
public WmsApiResponse<Object> addOrderIn(downOrderInRequest request) {
|
||||||
if (WmsConstants.EMPTY_STOCK_BATCH_NO.equals(request.getVehicleNo())){
|
if (WmsConstants.EMPTY_STOCK_BATCH_NO.equals(request.getVehicleNo())) {
|
||||||
log.info("托盘{}为空托盘入库", request.vehicleNo);
|
log.info("托盘{}为空托盘入库", request.vehicleNo);
|
||||||
AppOrderIn appOrderIn = new AppOrderIn();
|
AppOrderIn appOrderIn = new AppOrderIn();
|
||||||
appOrderIn.setRowId(UUID.randomUUID().toString());
|
appOrderIn.setRowId(UUID.randomUUID().toString());
|
||||||
|
|
@ -69,49 +70,45 @@ public class OrderInImplement implements IOrderInService {
|
||||||
//appOrderIn.setProductionDate(request.abcSelect);
|
//appOrderIn.setProductionDate(request.abcSelect);
|
||||||
appOrderInMapper.insert(appOrderIn);
|
appOrderInMapper.insert(appOrderIn);
|
||||||
return new WmsApiResponse<>(0, "添加成功", appOrderIn);
|
return new WmsApiResponse<>(0, "添加成功", appOrderIn);
|
||||||
}else{
|
}
|
||||||
AppOrderIn selectOrderIn = new AppOrderIn();
|
AppOrderIn selectOrderIn = new AppOrderIn();
|
||||||
selectOrderIn.setRemark("带物料托盘入库");
|
selectOrderIn.setRemark("带物料托盘入库");
|
||||||
selectOrderIn.setVehicleNo(request.vehicleNo);
|
selectOrderIn.setVehicleNo(request.vehicleNo);
|
||||||
List<AppOrderIn> selEmpty = appOrderInMapper.select(selectOrderIn);
|
List<AppOrderIn> selEmpty = appOrderInMapper.select(selectOrderIn);
|
||||||
if (selEmpty == null || selEmpty.isEmpty()){
|
if (selEmpty == null || selEmpty.isEmpty()) {
|
||||||
if (request.goodsNum <= 0){
|
if (request.goodsNum <= 0) {
|
||||||
return new WmsApiResponse<>(1, "数量必须大于0", null);
|
return new WmsApiResponse<>(1, "数量必须大于0", null);
|
||||||
}
|
|
||||||
/* 插入数据,插入记录表 */
|
|
||||||
//OrderOut orderOutList = new OrderOut();
|
|
||||||
AppOrderIn appOrderIn = new AppOrderIn();
|
|
||||||
appOrderIn.setRowId(UUID.randomUUID().toString());
|
|
||||||
appOrderIn.setGuid(UUID.randomUUID().toString());
|
|
||||||
appOrderIn.setInType(1);
|
|
||||||
appOrderIn.setBatchNo(null);
|
|
||||||
appOrderIn.setVehicleNo(request.vehicleNo);
|
|
||||||
appOrderIn.setGoodsId(request.goodsId);
|
|
||||||
appOrderIn.setGoodsNum(BigDecimal.valueOf(request.goodsNum));
|
|
||||||
appOrderIn.setWareHouse(request.abcSelect);
|
|
||||||
if (Objects.equals(request.efSelect, "E")){
|
|
||||||
appOrderIn.setOrderStatus(0);
|
|
||||||
}else {
|
|
||||||
appOrderIn.setOrderStatus(2);
|
|
||||||
}
|
|
||||||
appOrderIn.setCreateTime(LocalDateTime.now());
|
|
||||||
appOrderIn.setCreatePerson("WMS");
|
|
||||||
appOrderIn.setUpdateTime(LocalDateTime.now());
|
|
||||||
appOrderIn.setRemark("");
|
|
||||||
appOrderInMapper.insert(appOrderIn);
|
|
||||||
return new WmsApiResponse<>(0, "添加成功", appOrderIn);
|
|
||||||
}else {
|
|
||||||
return new WmsApiResponse<>(1, "必须先删除带物料托盘入库任务!", null);
|
|
||||||
}
|
}
|
||||||
|
/* 插入数据,插入记录表 */
|
||||||
|
//OrderOut orderOutList = new OrderOut();
|
||||||
|
AppOrderIn appOrderIn = new AppOrderIn();
|
||||||
|
appOrderIn.setRowId(UUID.randomUUID().toString());
|
||||||
|
appOrderIn.setGuid(UUID.randomUUID().toString());
|
||||||
|
appOrderIn.setInType(1);
|
||||||
|
appOrderIn.setBatchNo(null);
|
||||||
|
appOrderIn.setVehicleNo(request.vehicleNo);
|
||||||
|
appOrderIn.setGoodsId(request.goodsId);
|
||||||
|
appOrderIn.setGoodsNum(BigDecimal.valueOf(request.goodsNum));
|
||||||
|
appOrderIn.setWareHouse(request.abcSelect);
|
||||||
|
appOrderIn.setOrderStatus(OrderInStatusEnum.CREATE.getCode());
|
||||||
|
appOrderIn.setCreateTime(LocalDateTime.now());
|
||||||
|
appOrderIn.setCreatePerson("WMS");
|
||||||
|
appOrderIn.setUpdateTime(LocalDateTime.now());
|
||||||
|
appOrderIn.setRemark("");
|
||||||
|
appOrderInMapper.insert(appOrderIn);
|
||||||
|
return new WmsApiResponse<>(0, "添加成功", appOrderIn);
|
||||||
|
} else {
|
||||||
|
return new WmsApiResponse<>(1, "当前托盘已有任务!", null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改数量
|
* 修改数量
|
||||||
|
*
|
||||||
* @param request 修改数量参数
|
* @param request 修改数量参数
|
||||||
* @return 返回结果
|
* @return 返回结果
|
||||||
*/
|
*/
|
||||||
public WmsApiResponse<Object> updateForNum(updateNumRequest request){
|
public WmsApiResponse<Object> updateForNum(updateNumRequest request) {
|
||||||
// if (request.get){
|
// if (request.get){
|
||||||
//
|
//
|
||||||
// }
|
// }
|
||||||
|
|
@ -119,32 +116,33 @@ public class OrderInImplement implements IOrderInService {
|
||||||
AppOrderIn appOrderIn = new AppOrderIn();
|
AppOrderIn appOrderIn = new AppOrderIn();
|
||||||
appOrderIn.setRowId(request.getRowId());
|
appOrderIn.setRowId(request.getRowId());
|
||||||
List<AppOrderIn> appOrderIns = appOrderInMapper.select(appOrderIn);
|
List<AppOrderIn> appOrderIns = appOrderInMapper.select(appOrderIn);
|
||||||
if (appOrderIns.get(0).getGoodsId() == null || appOrderIns.get(0).getGoodsId().isEmpty()){
|
if (appOrderIns.get(0).getGoodsId() == null || appOrderIns.get(0).getGoodsId().isEmpty()) {
|
||||||
return new WmsApiResponse<>(999, "空托盘不允许修改物料数量,修改失败", null);
|
return new WmsApiResponse<>(999, "空托盘不允许修改物料数量,修改失败", null);
|
||||||
}
|
}
|
||||||
appOrderIn.setGoodsNum(request.getRealNum());
|
appOrderIn.setGoodsNum(request.getRealNum());
|
||||||
int i = appOrderInMapper.update(appOrderIn);
|
int i = appOrderInMapper.update(appOrderIn);
|
||||||
if(i > 0) {
|
if (i > 0) {
|
||||||
return new WmsApiResponse<>(0, "修改成功", null);
|
return new WmsApiResponse<>(0, "修改成功", null);
|
||||||
}else {
|
} else {
|
||||||
return new WmsApiResponse<>(999, "修改失败", null);
|
return new WmsApiResponse<>(999, "修改失败", null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 绑定载具
|
* 绑定载具
|
||||||
|
*
|
||||||
* @param request 绑定参数
|
* @param request 绑定参数
|
||||||
* @return 返回结果
|
* @return 返回结果
|
||||||
*/
|
*/
|
||||||
public WmsApiResponse<Object> bindingVehicle(bindingVehicleRequest request) {
|
public WmsApiResponse<Object> bindingVehicle(bindingVehicleRequest request) {
|
||||||
String vehicleNo = request.getVehicleNo();
|
String vehicleNo = request.getVehicleNo();
|
||||||
String code = request.getCode();
|
String code = request.getCode();
|
||||||
if(StringUtils.isEmpty(vehicleNo) || StringUtils.isEmpty(code)) {
|
if (StringUtils.isEmpty(vehicleNo) || StringUtils.isEmpty(code)) {
|
||||||
return new WmsApiResponse<>(999, "载具号或者条码为空", null);
|
return new WmsApiResponse<>(999, "载具号或者条码为空", null);
|
||||||
}
|
}
|
||||||
// 拆分条码
|
// 拆分条码
|
||||||
// 前八位是零件号,后面六位是批次,后面一位是班次,最后五位是数量
|
// 前八位是零件号,后面六位是批次,后面一位是班次,最后五位是数量
|
||||||
if(code.length() == 22) {
|
if (code.length() == 22) {
|
||||||
//return new WmsApiResponse<>(999, "条码长度错误", null);
|
//return new WmsApiResponse<>(999, "条码长度错误", null);
|
||||||
String goodsId = code.substring(0, 10); // 物料编码
|
String goodsId = code.substring(0, 10); // 物料编码
|
||||||
String productionDate = code.substring(10, 16); //生产日期
|
String productionDate = code.substring(10, 16); //生产日期
|
||||||
|
|
@ -159,12 +157,12 @@ public class OrderInImplement implements IOrderInService {
|
||||||
String batchNo = code.substring(0, 16); // 批次 ---- 这个批次应该是料号加中间六位
|
String batchNo = code.substring(0, 16); // 批次 ---- 这个批次应该是料号加中间六位
|
||||||
String shift = code.substring(17, 18); // 班次
|
String shift = code.substring(17, 18); // 班次
|
||||||
String goodsNumStr = code.substring(18, 22); // 数量字符串
|
String goodsNumStr = code.substring(18, 22); // 数量字符串
|
||||||
if(!goodsNumStr.matches("[0-9]+")) {
|
if (!goodsNumStr.matches("[0-9]+")) {
|
||||||
return new WmsApiResponse<>(999, "数量错误", null);
|
return new WmsApiResponse<>(999, "数量错误", null);
|
||||||
}
|
}
|
||||||
BigDecimal goodsNum = new BigDecimal(goodsNumStr); // 数量
|
BigDecimal goodsNum = new BigDecimal(goodsNumStr); // 数量
|
||||||
List<AppOrderIn> selectRows = appOrderInMapper.select(new AppOrderIn(batchNo, goodsNum, OrderInStatusEnum.CREATE.getCode()));
|
List<AppOrderIn> selectRows = appOrderInMapper.select(new AppOrderIn(batchNo, goodsNum, OrderInStatusEnum.CREATE.getCode()));
|
||||||
if(selectRows == null || selectRows.isEmpty()) {
|
if (selectRows == null || selectRows.isEmpty()) {
|
||||||
return new WmsApiResponse<>(999, String.format("条码找不到入库单,无法绑定,条码:%s, 批次: %s, 数量: %s", code, batchNo, goodsNum), null);
|
return new WmsApiResponse<>(999, String.format("条码找不到入库单,无法绑定,条码:%s, 批次: %s, 数量: %s", code, batchNo, goodsNum), null);
|
||||||
}
|
}
|
||||||
AppOrderIn orderIn = selectRows.get(0); // 这条数据
|
AppOrderIn orderIn = selectRows.get(0); // 这条数据
|
||||||
|
|
@ -176,7 +174,7 @@ public class OrderInImplement implements IOrderInService {
|
||||||
bindingOrderIn.setUpdateTime(java.time.LocalDateTime.now());
|
bindingOrderIn.setUpdateTime(java.time.LocalDateTime.now());
|
||||||
//bindingOrderIn.setProductionDate(date);
|
//bindingOrderIn.setProductionDate(date);
|
||||||
//bindingOrderIn.setUpdateTime(date);
|
//bindingOrderIn.setUpdateTime(date);
|
||||||
if(appOrderInMapper.update(bindingOrderIn) > 0) {
|
if (appOrderInMapper.update(bindingOrderIn) > 0) {
|
||||||
return new WmsApiResponse<>(0, "绑定成功", null);
|
return new WmsApiResponse<>(0, "绑定成功", null);
|
||||||
}
|
}
|
||||||
return new WmsApiResponse<>(999, "绑定失败,未知异常,请重试", null);
|
return new WmsApiResponse<>(999, "绑定失败,未知异常,请重试", null);
|
||||||
|
|
@ -194,12 +192,12 @@ public class OrderInImplement implements IOrderInService {
|
||||||
String batchNo = code.substring(0, 14); // 批次 ---- 这个批次应该是料号加中间六位
|
String batchNo = code.substring(0, 14); // 批次 ---- 这个批次应该是料号加中间六位
|
||||||
//String shift = code.substring(17, 18); // 班次
|
//String shift = code.substring(17, 18); // 班次
|
||||||
String goodsNumStr = code.substring(16, 20); // 数量字符串
|
String goodsNumStr = code.substring(16, 20); // 数量字符串
|
||||||
if(!goodsNumStr.matches("[0-9]+")) {
|
if (!goodsNumStr.matches("[0-9]+")) {
|
||||||
return new WmsApiResponse<>(999, "数量错误", null);
|
return new WmsApiResponse<>(999, "数量错误", null);
|
||||||
}
|
}
|
||||||
BigDecimal goodsNum = new BigDecimal(goodsNumStr); // 数量
|
BigDecimal goodsNum = new BigDecimal(goodsNumStr); // 数量
|
||||||
List<AppOrderIn> selectRows = appOrderInMapper.select(new AppOrderIn(batchNo, goodsNum, OrderInStatusEnum.CREATE.getCode()));
|
List<AppOrderIn> selectRows = appOrderInMapper.select(new AppOrderIn(batchNo, goodsNum, OrderInStatusEnum.CREATE.getCode()));
|
||||||
if(selectRows == null || selectRows.isEmpty()) {
|
if (selectRows == null || selectRows.isEmpty()) {
|
||||||
return new WmsApiResponse<>(999, String.format("条码找不到入库单,无法绑定,条码:%s, 批次: %s, 数量: %s", code, batchNo, goodsNum), null);
|
return new WmsApiResponse<>(999, String.format("条码找不到入库单,无法绑定,条码:%s, 批次: %s, 数量: %s", code, batchNo, goodsNum), null);
|
||||||
}
|
}
|
||||||
AppOrderIn orderIn = selectRows.get(0); // 这条数据
|
AppOrderIn orderIn = selectRows.get(0); // 这条数据
|
||||||
|
|
@ -211,7 +209,7 @@ public class OrderInImplement implements IOrderInService {
|
||||||
bindingOrderIn.setUpdateTime(java.time.LocalDateTime.now());
|
bindingOrderIn.setUpdateTime(java.time.LocalDateTime.now());
|
||||||
//bindingOrderIn.setProductionDate(date);
|
//bindingOrderIn.setProductionDate(date);
|
||||||
//bindingOrderIn.setUpdateTime(date);
|
//bindingOrderIn.setUpdateTime(date);
|
||||||
if(appOrderInMapper.update(bindingOrderIn) > 0) {
|
if (appOrderInMapper.update(bindingOrderIn) > 0) {
|
||||||
return new WmsApiResponse<>(0, "绑定成功", null);
|
return new WmsApiResponse<>(0, "绑定成功", null);
|
||||||
}
|
}
|
||||||
return new WmsApiResponse<>(999, "绑定失败,未知异常,请重试", null);
|
return new WmsApiResponse<>(999, "绑定失败,未知异常,请重试", null);
|
||||||
|
|
@ -221,22 +219,21 @@ public class OrderInImplement implements IOrderInService {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据载具号查询入库单
|
* 根据载具号查询入库单
|
||||||
|
*
|
||||||
* @param vehicleNo 载具号
|
* @param vehicleNo 载具号
|
||||||
* @return 返回结果
|
* @return 返回结果
|
||||||
*/
|
*/
|
||||||
public WmsApiResponse<List<AppOrderIn>> getOrderInWithVehicleNo(String vehicleNo) {
|
public WmsApiResponse<List<AppOrderIn>> getOrderInWithVehicleNo(String vehicleNo) {
|
||||||
if(vehicleNo == null || vehicleNo.isEmpty()) {
|
if (vehicleNo == null || vehicleNo.isEmpty()) {
|
||||||
return new WmsApiResponse<>(999, "载具号不能为空", null);
|
return new WmsApiResponse<>(999, "载具号不能为空", null);
|
||||||
}
|
}
|
||||||
AppOrderIn appOrderInQuery = new AppOrderIn();
|
AppOrderIn appOrderInQuery = new AppOrderIn();
|
||||||
appOrderInQuery.setVehicleNo(vehicleNo);
|
appOrderInQuery.setVehicleNo(vehicleNo);
|
||||||
appOrderInQuery.setOrderStatus(OrderInStatusEnum.BINDING.getCode());
|
appOrderInQuery.setOrderStatus(OrderInStatusEnum.BINDING.getCode());
|
||||||
List<AppOrderIn> appOrderIns = appOrderInMapper.select(appOrderInQuery);
|
List<AppOrderIn> appOrderIns = appOrderInMapper.select(appOrderInQuery);
|
||||||
if(appOrderIns == null) {
|
if (appOrderIns == null) {
|
||||||
return new WmsApiResponse<>(999, "查询失败,请重试", new ArrayList<>());
|
return new WmsApiResponse<>(999, "查询失败,请重试", new ArrayList<>());
|
||||||
}
|
}
|
||||||
return new WmsApiResponse<>(0, "查询成功", appOrderIns);
|
return new WmsApiResponse<>(0, "查询成功", appOrderIns);
|
||||||
|
|
@ -244,11 +241,12 @@ public class OrderInImplement implements IOrderInService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 解绑载具
|
* 解绑载具
|
||||||
|
*
|
||||||
* @param rowId 入库单行号
|
* @param rowId 入库单行号
|
||||||
* @return 返回结果
|
* @return 返回结果
|
||||||
*/
|
*/
|
||||||
public WmsApiResponse<Object> unBindingVehicle(String rowId) {
|
public WmsApiResponse<Object> unBindingVehicle(String rowId) {
|
||||||
if(rowId == null || rowId.isEmpty()) {
|
if (rowId == null || rowId.isEmpty()) {
|
||||||
return new WmsApiResponse<>(999, "入库单行号不能为空", null);
|
return new WmsApiResponse<>(999, "入库单行号不能为空", null);
|
||||||
}
|
}
|
||||||
AppOrderIn unBindingVehicle = new AppOrderIn();
|
AppOrderIn unBindingVehicle = new AppOrderIn();
|
||||||
|
|
@ -257,7 +255,7 @@ public class OrderInImplement implements IOrderInService {
|
||||||
unBindingVehicle.setVehicleNo("");
|
unBindingVehicle.setVehicleNo("");
|
||||||
unBindingVehicle.setUpdateTime(java.time.LocalDateTime.now());
|
unBindingVehicle.setUpdateTime(java.time.LocalDateTime.now());
|
||||||
int updateResult = appOrderInMapper.update(unBindingVehicle);
|
int updateResult = appOrderInMapper.update(unBindingVehicle);
|
||||||
if(updateResult > 0) {
|
if (updateResult > 0) {
|
||||||
return new WmsApiResponse<>(0, "解绑成功", null);
|
return new WmsApiResponse<>(0, "解绑成功", null);
|
||||||
}
|
}
|
||||||
return new WmsApiResponse<>(999, "解绑失败,请重试", null);
|
return new WmsApiResponse<>(999, "解绑失败,请重试", null);
|
||||||
|
|
@ -276,7 +274,8 @@ public class OrderInImplement implements IOrderInService {
|
||||||
return new WmsApiResponse<>(0, "删除成功", true);
|
return new WmsApiResponse<>(0, "删除成功", true);
|
||||||
} else {
|
} else {
|
||||||
return new WmsApiResponse<>(1, "订单不存在", false);
|
return new WmsApiResponse<>(1, "订单不存在", false);
|
||||||
} } catch (Exception e) {
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
// 记录异常
|
// 记录异常
|
||||||
return new WmsApiResponse<>(1, "删除失败", false);
|
return new WmsApiResponse<>(1, "删除失败", false);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,6 @@ public class ContainerImplement implements ContainerService {
|
||||||
* @param request 请求信息
|
* @param request 请求信息
|
||||||
* @return 响应信息
|
* @return 响应信息
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||||
public CreateInstoreTaskResponse createInstoreTask(CreateInstoreTaskRequest request) {
|
public CreateInstoreTaskResponse createInstoreTask(CreateInstoreTaskRequest request) {
|
||||||
|
|
@ -156,82 +155,81 @@ public class ContainerImplement implements ContainerService {
|
||||||
success.setPalletNo(virtualPalletId);
|
success.setPalletNo(virtualPalletId);
|
||||||
success.setFromCellNo(request.getFromCellNo());
|
success.setFromCellNo(request.getFromCellNo());
|
||||||
success.setToCellNo(useLocation.getLocationId());
|
success.setToCellNo(useLocation.getLocationId());
|
||||||
}else {
|
return success;
|
||||||
// 查询待入库的批次号
|
|
||||||
AppOrderIn waitInStockQuery = new AppOrderIn();
|
|
||||||
waitInStockQuery.setVehicleNo(request.getPalletNo());
|
|
||||||
List<AppOrderIn> waitInStockList = appOrderInMapper.select(waitInStockQuery); // 查找待入库的批次号
|
|
||||||
if(waitInStockList.isEmpty()) {
|
|
||||||
log.error("条码:{} 不存在待入库的任务", request.getPalletNo());
|
|
||||||
return new CreateInstoreTaskResponse("400", String.format("条码:%s 不存在待入库的任务", request.getPalletNo()));
|
|
||||||
}
|
|
||||||
AppOrderIn appOrderIn = waitInStockList.get(0);
|
|
||||||
/* 查找可用库位 */
|
|
||||||
List<Location> canUseLocations = locationUtils.getNewLocation(2,appOrderIn);
|
|
||||||
if(canUseLocations.isEmpty()){
|
|
||||||
return new CreateInstoreTaskResponse("400", "没有可用库位");
|
|
||||||
}
|
|
||||||
// 判断高度来决定物料去低层还是高层
|
|
||||||
if (WmsConstants.LOW_FLOOR.equals(request.getHeight())) {
|
|
||||||
canUseLocations = canUseLocations.stream().filter(l -> l.getLayer() == 1).toList();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (WmsConstants.HIGH_FLOOR.equals(request.getHeight())) {
|
|
||||||
canUseLocations = canUseLocations.stream().filter(l -> l.getLayer() != 1).toList();
|
|
||||||
}
|
|
||||||
|
|
||||||
Location useLocation = locationUtils.checkCanUseAndChange(canUseLocations);
|
|
||||||
if(useLocation == null) {
|
|
||||||
return new CreateInstoreTaskResponse("400", "暂没有可以直接使用的库位,因为存在互锁的库位,请等待当前任务都执行完成后再试");
|
|
||||||
}
|
|
||||||
/* 找到可用的库位 */ /* 生成任务(生成的任务直接运行中,因为此处会把任务直接回回去),更新库存表内状态为入库中 */
|
|
||||||
// 新建任务 插入任务表
|
|
||||||
Task newInTask = new Task();
|
|
||||||
newInTask.setTaskId(String.valueOf(Calendar.getInstance().getTimeInMillis()));
|
|
||||||
newInTask.setTaskGroup(UUID.randomUUID().toString());
|
|
||||||
newInTask.setTaskType(TaskType.IN.getCode());
|
|
||||||
newInTask.setTaskStatus(WmsTaskStatus.WAIT.getCode()); // 因为任务是直接返回去的,所以直接是已下发状态
|
|
||||||
newInTask.setOrigin(request.getFromCellNo());
|
|
||||||
newInTask.setDestination(useLocation.getLocationId());
|
|
||||||
if (!waitInStockList.isEmpty() && waitInStockList.get(0) != null) {
|
|
||||||
newInTask.setGoodsId(waitInStockList.get(0).getGoodsId());
|
|
||||||
} else {
|
|
||||||
newInTask.setGoodsId(null); // 或者你可以选择不设置
|
|
||||||
}
|
|
||||||
newInTask.setWeight(Double.valueOf(request.getWeight()));
|
|
||||||
newInTask.setCreateTime(new java.util.Date());
|
|
||||||
newInTask.setUserName("四向车API");
|
|
||||||
newInTask.setVehicleSize(Integer.valueOf(request.getHeight()));
|
|
||||||
newInTask.setVehicleNo(request.getPalletNo());
|
|
||||||
newInTask.setTaskPriority(1);
|
|
||||||
newInTask.setProductionDate(null);
|
|
||||||
int insertTaskResult = taskMapper.addTask(newInTask); // 添加入库任务
|
|
||||||
if(insertTaskResult < 1) {
|
|
||||||
log.error("生成任务失败,无法插入新的入库任务");
|
|
||||||
return new CreateInstoreTaskResponse("400", "生成任务失败,无法插入新的入库任务");
|
|
||||||
}
|
|
||||||
// 更新库存中的待入库记录为入库中,并将库位更新进去
|
|
||||||
for(AppOrderIn waitInStock : waitInStockList) {
|
|
||||||
AppOrderIn updateAppOrderIn = new AppOrderIn();
|
|
||||||
updateAppOrderIn.setRowId(waitInStock.getRowId());
|
|
||||||
updateAppOrderIn.setOrderStatus(OrderInStatusEnum.IN.getCode());
|
|
||||||
updateAppOrderIn.setUpdateTime(LocalDateTime.now());
|
|
||||||
appOrderInMapper.update(updateAppOrderIn);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 占用库位
|
|
||||||
Location location = new Location();
|
|
||||||
location.setLocationId(useLocation.getLocationId());
|
|
||||||
location.setLocationStatus(LocationStatus.OCCUPY.getCode());
|
|
||||||
location.setVehicleId(request.getPalletNo());
|
|
||||||
locationMapper.modifyLocation(location);
|
|
||||||
success.setCode("200");
|
|
||||||
success.setMessage("生成入库任务成功");
|
|
||||||
success.setWmsTaskId(newInTask.getTaskId());
|
|
||||||
success.setPalletNo(request.getPalletNo());
|
|
||||||
success.setFromCellNo(request.getFromCellNo());
|
|
||||||
success.setToCellNo(useLocation.getLocationId());
|
|
||||||
}
|
}
|
||||||
|
// 查询待入库的批次号
|
||||||
|
AppOrderIn waitInStockQuery = new AppOrderIn();
|
||||||
|
waitInStockQuery.setVehicleNo(request.getPalletNo());
|
||||||
|
List<AppOrderIn> waitInStockList = appOrderInMapper.select(waitInStockQuery); // 查找待入库的批次号
|
||||||
|
if(waitInStockList.isEmpty()) {
|
||||||
|
log.error("托盘:{} 不存在待入库的任务", request.getPalletNo());
|
||||||
|
return new CreateInstoreTaskResponse("400", String.format("条码:%s 不存在待入库的任务", request.getPalletNo()));
|
||||||
|
}
|
||||||
|
AppOrderIn appOrderIn = waitInStockList.get(0);
|
||||||
|
/* 查找可用库位 */
|
||||||
|
List<Location> canUseLocations = locationUtils.getNewLocation(2,appOrderIn);
|
||||||
|
if(canUseLocations.isEmpty()){
|
||||||
|
return new CreateInstoreTaskResponse("400", "没有可用库位");
|
||||||
|
}
|
||||||
|
// 判断高度来决定物料去低层还是高层
|
||||||
|
if (WmsConstants.LOW_FLOOR.equals(request.getHeight())) {
|
||||||
|
canUseLocations = canUseLocations.stream().filter(l -> l.getLayer() == 1).toList();
|
||||||
|
}
|
||||||
|
if (WmsConstants.HIGH_FLOOR.equals(request.getHeight())) {
|
||||||
|
canUseLocations = canUseLocations.stream().filter(l -> l.getLayer() != 1).toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
Location useLocation = locationUtils.checkCanUseAndChange(canUseLocations);
|
||||||
|
if(useLocation == null) {
|
||||||
|
return new CreateInstoreTaskResponse("400", "暂没有可以直接使用的库位,因为存在互锁的库位,请等待当前任务都执行完成后再试");
|
||||||
|
}
|
||||||
|
/* 找到可用的库位 */ /* 生成任务(生成的任务直接运行中,因为此处会把任务直接回回去),更新库存表内状态为入库中 */
|
||||||
|
// 新建任务 插入任务表
|
||||||
|
Task newInTask = new Task();
|
||||||
|
newInTask.setTaskId(String.valueOf(Calendar.getInstance().getTimeInMillis()));
|
||||||
|
newInTask.setTaskGroup(UUID.randomUUID().toString());
|
||||||
|
newInTask.setTaskType(TaskType.IN.getCode());
|
||||||
|
newInTask.setTaskStatus(WmsTaskStatus.WAIT.getCode()); // 因为任务是直接返回去的,所以直接是已下发状态
|
||||||
|
newInTask.setOrigin(request.getFromCellNo());
|
||||||
|
newInTask.setDestination(useLocation.getLocationId());
|
||||||
|
if (!waitInStockList.isEmpty() && waitInStockList.get(0) != null) {
|
||||||
|
newInTask.setGoodsId(waitInStockList.get(0).getGoodsId());
|
||||||
|
} else {
|
||||||
|
newInTask.setGoodsId(null); // 或者你可以选择不设置
|
||||||
|
}
|
||||||
|
newInTask.setWeight(Double.valueOf(request.getWeight()));
|
||||||
|
newInTask.setCreateTime(new java.util.Date());
|
||||||
|
newInTask.setUserName("四向车请求");
|
||||||
|
newInTask.setVehicleSize(Integer.valueOf(request.getHeight()));
|
||||||
|
newInTask.setVehicleNo(request.getPalletNo());
|
||||||
|
newInTask.setTaskPriority(1);
|
||||||
|
newInTask.setProductionDate(null);
|
||||||
|
int insertTaskResult = taskMapper.addTask(newInTask); // 添加入库任务
|
||||||
|
if(insertTaskResult < 1) {
|
||||||
|
log.error("生成任务失败,无法插入新的入库任务");
|
||||||
|
return new CreateInstoreTaskResponse("400", "生成任务失败,无法插入新的入库任务");
|
||||||
|
}
|
||||||
|
// 更新库存中的待入库记录为入库中,并将库位更新进去
|
||||||
|
for(AppOrderIn waitInStock : waitInStockList) {
|
||||||
|
AppOrderIn updateAppOrderIn = new AppOrderIn();
|
||||||
|
updateAppOrderIn.setRowId(waitInStock.getRowId());
|
||||||
|
updateAppOrderIn.setOrderStatus(OrderInStatusEnum.IN.getCode());
|
||||||
|
updateAppOrderIn.setUpdateTime(LocalDateTime.now());
|
||||||
|
appOrderInMapper.update(updateAppOrderIn);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 占用库位
|
||||||
|
Location location = new Location();
|
||||||
|
location.setLocationId(useLocation.getLocationId());
|
||||||
|
location.setLocationStatus(LocationStatus.OCCUPY.getCode());
|
||||||
|
location.setVehicleId(request.getPalletNo());
|
||||||
|
locationMapper.modifyLocation(location);
|
||||||
|
success.setCode("200");
|
||||||
|
success.setMessage("生成入库任务成功");
|
||||||
|
success.setWmsTaskId(newInTask.getTaskId());
|
||||||
|
success.setPalletNo(request.getPalletNo());
|
||||||
|
success.setFromCellNo(request.getFromCellNo());
|
||||||
|
success.setToCellNo(useLocation.getLocationId());
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user