添加出库捡选完成逻辑

This commit is contained in:
葛林强 2025-03-07 09:08:51 +08:00
parent eb73b6e445
commit 1df1a0b5d1
2 changed files with 274 additions and 167 deletions

View File

@ -1098,7 +1098,7 @@ public class AppTaskController extends BaseController
}
AppTask selectVehicleTask = new AppTask();
selectVehicleTask.setVehicleId(vehicleNo);
selectVehicleTask.setTaskStatus(4);
selectVehicleTask.setTaskStatus(5);
List<AppTask> selectedAppTaskList = appTaskService.selectAppTaskList(selectVehicleTask);
if (selectedAppTaskList == null) {
return error("数据服务异常,请重试");
@ -1133,7 +1133,7 @@ public class AppTaskController extends BaseController
AppTask updatePickNum = new AppTask();
updatePickNum.setTaskId(request.getTaskId());
updatePickNum.setOpNum(request.getPickNum());
updatePickNum.setTaskStatus(5);
updatePickNum.setTaskStatus(6);
updatePickNum.setOpUser(request.getPicker());
int updateAppTask = appTaskService.updateAppTask(updatePickNum);
if (updateAppTask == 0) {

View File

@ -17,6 +17,7 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@ -165,22 +166,24 @@ public class TaskExecutor {
@Transactional
public void completeWmsTask() {
completeNormalTask();
//completeNormalTask();
completeNormalInTask(); // 通常入库任务
completeNormalOutTask(); // 通常出库任务
completeNormalMoveTask(); // 通常移库任务
}
/**
* 完成通常任务
* 完成通常入库任务
*/
private void completeNormalTask() {
// 查找 Wms 任务
private void completeNormalInTask() {
AppTask appTask = new AppTask();
appTask.setTaskStatus(5);
appTask.setTaskType(1);
List<AppTask> appTasks = appTaskService.selectAppTaskList(appTask);
if (appTasks == null || appTasks.isEmpty()) {
return;
}
for (AppTask task : appTasks) {
if (task.getTaskType().compareTo(1) == 0) { // 入库任务
// 从码盘表内拉出数据
AppPendingStorage appPendingStorage = new AppPendingStorage();
appPendingStorage.setVehicleNo(task.getVehicleId());
@ -282,7 +285,20 @@ public class TaskExecutor {
appTaskService.deleteAppTaskByTaskId(task.getTaskId()); // 删除旧数据
return;
}
if (task.getTaskType().compareTo(2) == 0) { // 出库任务
}
/**
* 完成通常出库任务
*/
private void completeNormalOutTask() {
AppTask appTask = new AppTask();
appTask.setTaskStatus(5);
appTask.setTaskType(2);
List<AppTask> appTasks = appTaskService.selectAppTaskList(appTask);
if (appTasks == null || appTasks.isEmpty()) {
return;
}
for (AppTask task : appTasks) {
if(task.getOpNum().compareTo(task.getStockNum()) >= 0) {
// 整出
AppStock appStock = new AppStock();
@ -335,11 +351,105 @@ public class TaskExecutor {
location.setLocationStatus(0);
appLocationMapper.updateAppLocation(location);
}
} else {
// 如果小于的话就属于捡货任务
// 删除库存内的绑定的库位号释放库位
int updateNewLocation = appStockService.updateNewLocation(task.getOrigin(), "");
logger.info("捡选出库清除库存绑定的货位,数据:{},清除结果:{}", JSON.toJSONString(task), updateNewLocation);
AppLocation location = new AppLocation();
location.setLocationId(task.getOrigin());
location.setLocationStatus(0);
appLocationMapper.updateAppLocation(location);
}
// 如果小于的话就不做处理
return;
}
if (task.getTaskType().compareTo(9) == 0) { // 移库任务
}
private void completePickOutTask() {
AppTask appTask = new AppTask();
appTask.setTaskStatus(6);
appTask.setTaskType(2);
List<AppTask> appTasks = appTaskService.selectAppTaskList(appTask);
if (appTasks == null || appTasks.isEmpty()) {
return;
}
for (AppTask task : appTasks) {
// 更新库存
AppStock appStock = new AppStock();
appStock.setGoodsId(task.getGoodsId());
appStock.setVehicleId(task.getVehicleId());
List<AppStock> appStocks = appStockService.selectAppStockList(appStock);
if(appStocks == null) {
return;
}
BigDecimal opNum = task.getOpNum();
for (AppStock stock : appStocks) {
if(opNum.compareTo(stock.getRemainNum()) >= 0) { // 需求数量大于库存数量
int deleteAppStockByStockId = appStockService.deleteAppStockByStockId(stock.getStockId());
logger.info("出库捡选删除库存:{},删除结果:{}", JSON.toJSONString(stock), deleteAppStockByStockId);
// 调用 pms 接口
PmsOutFeedBack pmsOutFeedBack = new PmsOutFeedBack();
PmsOutFeedBackRecordList recordListItem = new PmsOutFeedBackRecordList();
recordListItem.setAmount(stock.getRemainNum().intValue());
recordListItem.setBusinessOrder(task.getOrderId());
recordListItem.setMaterialsNo(task.getGoodsId());
List<PmsOutFeedBackRecordList> recordList = new ArrayList<>();
recordList.add(recordListItem);
pmsOutFeedBack.setRecordList(recordList);
String url = sysConfigService.selectConfigByKey("pms.outComplete");
if (StringUtils.isEmpty(url)) {
continue;
}
PmsCommonRes pmsCommonRes = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, JSON.toJSONString(pmsOutFeedBack)), PmsCommonRes.class);
logger.info("pms出库反馈请求信息{},结果:{}", JSON.toJSONString(pmsOutFeedBack), JSON.toJSONString(pmsCommonRes));
opNum = opNum.subtract(stock.getRemainNum());
} else {
// 更新库存剩余数量
AppStock update = new AppStock();
update.setStockId(stock.getStockId());
update.setRemainNum(stock.getRemainNum().subtract(opNum));
appStockService.updateAppStock(update);
logger.info("出库捡选更新库存剩余数量:{},更新结果:{}", JSON.toJSONString(update), appStockService.updateAppStock(update));
// 调用 pms 接口
PmsOutFeedBack pmsOutFeedBack = new PmsOutFeedBack();
PmsOutFeedBackRecordList recordListItem = new PmsOutFeedBackRecordList();
recordListItem.setAmount(stock.getRemainNum().intValue());
recordListItem.setBusinessOrder(task.getOrderId());
recordListItem.setMaterialsNo(task.getGoodsId());
List<PmsOutFeedBackRecordList> recordList = new ArrayList<>();
recordList.add(recordListItem);
pmsOutFeedBack.setRecordList(recordList);
String url = sysConfigService.selectConfigByKey("pms.outComplete");
if (StringUtils.isEmpty(url)) {
continue;
}
PmsCommonRes pmsCommonRes = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, JSON.toJSONString(pmsOutFeedBack)), PmsCommonRes.class);
logger.info("pms出库反馈请求信息{},结果:{}", JSON.toJSONString(pmsOutFeedBack), JSON.toJSONString(pmsCommonRes));
}
// 归档旧数据
AppTaskBak appTaskBak = new AppTaskBak();
BeanUtils.copyProperties(task, appTaskBak);
appTaskBakService.insertAppTaskBak(appTaskBak); // 将任务数据归档
appTaskService.deleteAppTaskByTaskId(task.getTaskId()); // 删除旧数据
}
}
}
/**
* 完成通常移库任务
*/
private void completeNormalMoveTask() {
AppTask appTask = new AppTask();
appTask.setTaskStatus(5);
appTask.setTaskType(9);
List<AppTask> appTasks = appTaskService.selectAppTaskList(appTask);
if (appTasks == null || appTasks.isEmpty()) {
return;
}
for (AppTask task : appTasks) {
int updateNewLocation = appStockService.updateNewLocation(task.getOrigin(), task.getDestination());
if(updateNewLocation > 0) {
// 释放原库位
@ -360,9 +470,6 @@ public class TaskExecutor {
}
return;
}
}
}
/**
* 定时任务更新plcid