代码更新

This commit is contained in:
梁州 2025-01-17 16:57:24 +08:00
parent ff6018a614
commit 3b49880332
13 changed files with 241 additions and 13 deletions

View File

@ -2,12 +2,9 @@ package com.ruoyi.web.controller.app;
import java.util.*;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.app.domain.AppLocation;
import com.ruoyi.app.domain.AppTask;
import com.ruoyi.app.domain.AppWcsTask;
import com.ruoyi.app.domain.AppWcsTaskBak;
import com.ruoyi.app.service.IAppLocationService;
import com.ruoyi.app.service.IAppTaskService;
import com.ruoyi.app.service.IAppWcsTaskBakService;
@ -186,24 +183,50 @@ public class AppTaskController extends BaseController
thisWmsTaskList.forEach(appTask -> appTask.setTaskStatus(2));// 执行中
appTaskService.batchUpdateAppTask(thisWmsTaskList);
}
return success("任务状态反馈成功。");
return success("反馈任务执行中成功。");
}
if (100 == feedBackRequest.getTaskStatus()) {
// 删除wcs任务并添加任务记录
thisFbWcsTask.setFinishTime(new Date());
thisFbWcsTask.setWcsTaskStatus(100);
// 任务完成更新对应的wms任务状态然后添加任务记录
appWcsTaskBakService.insertAppWcsTaskBak(thisFbWcsTask.toAppWcsTaskBak());
appWcsTaskService.deleteAppWcsTaskByWcsTaskId(feedBackRequest.getTaskId());
// 任务完成更新对应的wms任务状态
if (thisWmsTaskList != null && !thisWmsTaskList.isEmpty()) {
// 更新wms任务状态
thisWmsTaskList.forEach(appTask -> appTask.setTaskStatus(5));// 任务完成
appTaskService.batchUpdateAppTask(thisWmsTaskList);
}
return success("反正任务完成成功。");
}
if (998 == feedBackRequest.getTaskStatus()) {
// 任务取消
thisFbWcsTask.setFinishTime(new Date());
thisFbWcsTask.setWcsTaskStatus(998);
appWcsTaskBakService.insertAppWcsTaskBak(thisFbWcsTask.toAppWcsTaskBak());
appWcsTaskService.deleteAppWcsTaskByWcsTaskId(feedBackRequest.getTaskId());
// 任务取消更新对应的wms任务状态
if (thisWmsTaskList != null && !thisWmsTaskList.isEmpty()) {
// 更新wms任务状态
thisWmsTaskList.forEach(appTask -> appTask.setTaskStatus(8));// wcs取消任务
appTaskService.batchUpdateAppTask(thisWmsTaskList);
}
return success("反馈任务取消成功。");
}
if (999 == feedBackRequest.getTaskStatus()) {
// 任务异常
thisFbWcsTask.setFinishTime(new Date());
thisFbWcsTask.setWcsTaskStatus(999);
appWcsTaskService.updateAppWcsTask(thisFbWcsTask);
// 任务异常更新对应的wms任务状态
if (thisWmsTaskList != null && !thisWmsTaskList.isEmpty()) {
// 更新wms任务状态
thisWmsTaskList.forEach(appTask -> appTask.setTaskStatus(9));// 任务异常
appTaskService.batchUpdateAppTask(thisWmsTaskList);
}
return success("反馈任务异常成功。");
}
return success();
return error("处理任务反馈错误。");
}
}

View File

@ -122,6 +122,14 @@ public class BaseController
return AjaxResult.success(data);
}
/**
* 返回成功消息
*/
public AjaxResult success(String message, Object data)
{
return AjaxResult.success(message, data);
}
/**
* 返回失败消息
*/
@ -130,6 +138,14 @@ public class BaseController
return AjaxResult.error(message);
}
/**
* 返回失败消息
*/
public AjaxResult error(String message, Object data)
{
return AjaxResult.error(message, data);
}
/**
* 返回警告消息
*/

View File

@ -34,6 +34,10 @@
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
</dependency>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-system</artifactId>
</dependency>
</dependencies>

View File

@ -0,0 +1,87 @@
package com.ruoyi.quartz.task;
import com.ruoyi.app.domain.AppTask;
import com.ruoyi.app.domain.AppWcsTask;
import com.ruoyi.app.service.IAppTaskService;
import com.ruoyi.app.service.IAppWcsTaskService;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.stream.Collectors;
/**
* 任务执行器定时类
*/
@Component("taskExecutor")
public class TaskExecutor {
@Autowired
private IAppTaskService appTaskService;
@Autowired
private IAppWcsTaskService appWcsTaskService;
private final HashMap<Integer, Integer> taskTypeMap = new HashMap<Integer, Integer>() {{
put(1, 1);// 入库
put(2, 2);// 出库
put(3, 3);// 移库
}};
/**
* 解析wms任务
* 任务状态为0
*/
public void executeWmsTask() {
// 查询所有的任务
List<AppTask> wmsTaskList = appTaskService.selectAppTaskList(new AppTask());
if (wmsTaskList == null || wmsTaskList.isEmpty()) {
return;
}
// 筛选出待解析的任务
List<AppTask> executingWmsTaskList = wmsTaskList.stream().filter(task -> task.getTaskStatus() == 0).collect(Collectors.toList());
// 任务待下发列表
Map<String, AppWcsTask> wcsTaskMap = new HashMap<>();
for (AppTask appTask : executingWmsTaskList) {
if (StringUtils.isNotEmpty(appTask.getPreTask())) {
// 判断前置任务是否已经完成
List<AppTask> preTaskList = wmsTaskList.stream().filter(task -> Objects.equals(task.getTaskId(), appTask.getPreTask()) && task.getTaskStatus() != 5).collect(Collectors.toList());
if (!preTaskList.isEmpty()) {
continue;
}
// 判断这个箱子的任务是否已经下发过
if (wcsTaskMap.containsKey(appTask.getVehicleId())) {
appTask.setWcsTaskId(wcsTaskMap.get(appTask.getVehicleId()).getWcsTaskId());
appTask.setTaskStatus(1);
continue;
}
// 添加一个新wcs任务
AppWcsTask newWcsTask = new AppWcsTask();
newWcsTask.setWcsTaskId("WCS_" + IdUtils.fastUUID());
newWcsTask.setWcsTaskType(taskTypeMap.get(appTask.getTaskType()));
newWcsTask.setWcsTaskStatus(0);
newWcsTask.setTaskPriority(appTask.getTaskPriority());
newWcsTask.setVehicleId(appTask.getVehicleId());
newWcsTask.setOrigin(appTask.getOrigin());
newWcsTask.setDestination(appTask.getDestination());
newWcsTask.setCreateTime(new Date());
wcsTaskMap.put(appTask.getVehicleId(), newWcsTask);
// 更新wms任务信息
appTask.setWcsTaskId(wcsTaskMap.get(appTask.getVehicleId()).getWcsTaskId());
appTask.setTaskStatus(1);
}
// 更新wms任务
appTaskService.batchUpdateAppTask(executingWmsTaskList);
// 存储wcs任务
appWcsTaskService.batchInsertAppWcsTask(new ArrayList<>(wcsTaskMap.values()));
}
}
/**
* 发送wcs任务
* 任务状态为0
*/
public void sendWcsTask() {
}
}

View File

@ -70,6 +70,10 @@ public class AppTask extends BaseEntity
@Excel(name = "操作用户")
private String opUser;
/** 前置任务 */
@Excel(name = "前置任务")
private String preTask;
public void setTaskId(String taskId)
{
this.taskId = taskId;
@ -188,6 +192,14 @@ public class AppTask extends BaseEntity
return opUser;
}
public String getPreTask() {
return preTask;
}
public void setPreTask(String preTask) {
this.preTask = preTask;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -205,6 +217,7 @@ public class AppTask extends BaseEntity
.append("opNum", getOpNum())
.append("stockNum", getStockNum())
.append("opUser", getOpUser())
.append("preTask", getPreTask())
.toString();
}
@ -227,6 +240,7 @@ public class AppTask extends BaseEntity
appTaskBak.setOpNum(getOpNum());
appTaskBak.setStockNum(getStockNum());
appTaskBak.setOpUser(getOpUser());
appTaskBak.setPreTask(getPreTask());
return appTaskBak;
}
}

View File

@ -70,6 +70,10 @@ public class AppTaskBak extends BaseEntity
@Excel(name = "操作用户")
private String opUser;
/** 前置任务 */
@Excel(name = "前置任务")
private String preTask;
public void setTaskId(String taskId)
{
this.taskId = taskId;
@ -188,6 +192,14 @@ public class AppTaskBak extends BaseEntity
return opUser;
}
public String getPreTask() {
return preTask;
}
public void setPreTask(String preTask) {
this.preTask = preTask;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -205,6 +217,7 @@ public class AppTaskBak extends BaseEntity
.append("opNum", getOpNum())
.append("stockNum", getStockNum())
.append("opUser", getOpUser())
.append("preTask", getPreTask())
.toString();
}
}

View File

@ -157,7 +157,7 @@ public class AppWcsTask extends BaseEntity
* wcs任务类转化为记录类
* @return 记录
*/
public AppWcsTaskBak toAppWcsTask() {
public AppWcsTaskBak toAppWcsTaskBak() {
AppWcsTaskBak appWcsTaskBak = new AppWcsTaskBak();
appWcsTaskBak.setWcsTaskId(getWcsTaskId());
appWcsTaskBak.setWcsTaskStatus(getWcsTaskStatus());

View File

@ -36,6 +36,13 @@ public interface AppWcsTaskMapper
*/
public int insertAppWcsTask(AppWcsTask appWcsTask);
/**
* 批量新增
* @param appWcsTaskList 任务
* @return 结果
*/
int batchInsertAppWcsTask(List<AppWcsTask> appWcsTaskList);
/**
* 修改请填写功能名称
*

View File

@ -36,6 +36,13 @@ public interface IAppWcsTaskService
*/
public int insertAppWcsTask(AppWcsTask appWcsTask);
/**
* 批量新增
* @param appWcsTaskList 任务
* @return 结果
*/
int batchInsertAppWcsTask(List<AppWcsTask> appWcsTaskList);
/**
* 修改请填写功能名称
*

View File

@ -58,6 +58,11 @@ public class AppWcsTaskServiceImpl implements IAppWcsTaskService
return appWcsTaskMapper.insertAppWcsTask(appWcsTask);
}
@Override
public int batchInsertAppWcsTask(List<AppWcsTask> appWcsTaskList) {
return appWcsTaskMapper.batchInsertAppWcsTask(appWcsTaskList);
}
/**
* 修改请填写功能名称
*

View File

@ -19,10 +19,11 @@
<result property="opNum" column="op_num" />
<result property="stockNum" column="stock_num" />
<result property="opUser" column="op_user" />
<result property="preTask" column="pre_task" />
</resultMap>
<sql id="selectAppTaskBakVo">
select task_id, task_type, task_status, task_priority, vehicle_id, origin, destination, wcs_task_id, create_time, finish_time, goods_id, op_num, stock_num, op_user from app_task_bak
select task_id, task_type, task_status, task_priority, vehicle_id, origin, destination, wcs_task_id, create_time, finish_time, goods_id, op_num, stock_num, op_user, pre_task from app_task_bak
</sql>
<select id="selectAppTaskBakList" parameterType="AppTaskBak" resultMap="AppTaskBakResult">
@ -40,6 +41,7 @@
<if test="opNum != null "> and op_num = #{opNum}</if>
<if test="stockNum != null "> and stock_num = #{stockNum}</if>
<if test="opUser != null and opUser != ''"> and op_user = #{opUser}</if>
<if test="preTask != null and preTask != ''"> and pre_task = #{preTask}</if>
</where>
</select>
@ -65,6 +67,7 @@
<if test="opNum != null">op_num,</if>
<if test="stockNum != null">stock_num,</if>
<if test="opUser != null">op_user,</if>
<if test="preTask != null">pre_task,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="taskId != null">#{taskId},</if>
@ -81,6 +84,7 @@
<if test="opNum != null">#{opNum},</if>
<if test="stockNum != null">#{stockNum},</if>
<if test="opUser != null">#{opUser},</if>
<if test="preTask != null">#{preTask},</if>
</trim>
</insert>
@ -100,6 +104,7 @@
<if test="opNum != null">op_num = #{opNum},</if>
<if test="stockNum != null">stock_num = #{stockNum},</if>
<if test="opUser != null">op_user = #{opUser},</if>
<if test="preTask != null">pre_task = #{preTask},</if>
</trim>
where task_id = #{taskId}
</update>

View File

@ -19,10 +19,12 @@
<result property="opNum" column="op_num" />
<result property="stockNum" column="stock_num" />
<result property="opUser" column="op_user" />
<result property="opUser" column="op_user" />
<result property="preTask" column="pre_task" />
</resultMap>
<sql id="selectAppTaskVo">
select task_id, task_type, task_status, task_priority, vehicle_id, origin, destination, wcs_task_id, create_time, finish_time, goods_id, op_num, stock_num, op_user from app_task
select task_id, task_type, task_status, task_priority, vehicle_id, origin, destination, wcs_task_id, create_time, finish_time, goods_id, op_num, stock_num, op_user, pre_task from app_task
</sql>
<select id="selectAppTaskList" parameterType="AppTask" resultMap="AppTaskResult">
@ -40,6 +42,7 @@
<if test="opNum != null "> and op_num = #{opNum}</if>
<if test="stockNum != null "> and stock_num = #{stockNum}</if>
<if test="opUser != null and opUser != ''"> and op_user = #{opUser}</if>
<if test="preTask != null and preTask != ''"> and pre_task = #{preTask}</if>
</where>
</select>
@ -65,6 +68,7 @@
<if test="opNum != null">op_num,</if>
<if test="stockNum != null">stock_num,</if>
<if test="opUser != null">op_user,</if>
<if test="preTask != null">pre_task,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="taskId != null">#{taskId},</if>
@ -81,6 +85,7 @@
<if test="opNum != null">#{opNum},</if>
<if test="stockNum != null">#{stockNum},</if>
<if test="opUser != null">#{opUser},</if>
<if test="preTask != null">#{preTask},</if>
</trim>
</insert>
@ -103,6 +108,7 @@
<if test="appTask.opNum != null">op_num,</if>
<if test="appTask.stockNum != null">stock_num,</if>
<if test="appTask.opUser != null">op_user,</if>
<if test="appTask.preTask != null">pre_task,</if>
</trim>
)
values
@ -122,6 +128,7 @@
<if test="appTask.opNum != null">#{appTask.opNum},</if>
<if test="appTask.stockNum != null">#{appTask.stockNum},</if>
<if test="appTask.opUser != null">#{appTask.opUser},</if>
<if test="appTask.preTask != null">#{appTask.preTask},</if>
</trim>
)
</foreach>
@ -144,6 +151,7 @@
<if test="opNum != null">op_num = #{opNum},</if>
<if test="stockNum != null">stock_num = #{stockNum},</if>
<if test="opUser != null">op_user = #{opUser},</if>
<if test="preTask != null">pre_task = #{preTask},</if>
</trim>
where task_id = #{taskId}
</update>
@ -165,6 +173,7 @@
<if test="appTask.opNum != null">op_num = #{appTask.opNum},</if>
<if test="appTask.stockNum != null">stock_num = #{appTask.stockNum},</if>
<if test="appTask.opUser != null">op_user = #{appTask.opUser},</if>
<if test="appTask.preTask != null">pre_task = #{appTask.preTask},</if>
</trim>
where task_id = #{appTask.taskId}
</foreach>

View File

@ -71,6 +71,44 @@
</trim>
</insert>
<insert id="batchInsertAppWcsTask" parameterType="java.util.List">
insert into app_task
<foreach collection="list" item="appWcsTask" separator=",">
(
<trim prefixOverrides=",">
<if test="appWcsTask.wcsTaskId != null">wcs_task_id,</if>
<if test="appWcsTask.wcsTaskStatus != null">wcs_task_status,</if>
<if test="appWcsTask.wcsTaskType != null">wcs_task_type,</if>
<if test="appWcsTask.taskPriority != null">task_priority,</if>
<if test="appWcsTask.vehicleId != null">vehicle_id,</if>
<if test="appWcsTask.origin != null">origin,</if>
<if test="appWcsTask.destination != null">destination,</if>
<if test="appWcsTask.createTime != null">create_time,</if>
<if test="appWcsTask.sendTime != null">send_time,</if>
<if test="appWcsTask.finishTime != null">finish_time,</if>
<if test="appWcsTask.remark != null">remark,</if>
</trim>
)
values
(
<trim prefixOverrides=",">
<if test="appWcsTask.wcsTaskId != null">#{appWcsTask.wcsTaskId},</if>
<if test="appWcsTask.wcsTaskStatus != null">#{appWcsTask.wcsTaskStatus},</if>
<if test="appWcsTask.wcsTaskType != null">#{appWcsTask.wcsTaskType},</if>
<if test="appWcsTask.taskPriority != null">#{appWcsTask.taskPriority},</if>
<if test="appWcsTask.vehicleId != null">#{appWcsTask.vehicleId},</if>
<if test="appWcsTask.origin != null">#{appWcsTask.origin},</if>
<if test="appWcsTask.destination != null">#{appWcsTask.destination},</if>
<if test="appWcsTask.createTime != null">#{appWcsTask.createTime},</if>
<if test="appWcsTask.sendTime != null">#{appWcsTask.sendTime},</if>
<if test="appWcsTask.finishTime != null">#{appWcsTask.finishTime},</if>
<if test="appWcsTask.remark != null">#{appWcsTask.remark},</if>
</trim>
)
</foreach>
</insert>
<update id="updateAppWcsTask" parameterType="AppWcsTask">
update app_wcs_task
<trim prefix="SET" suffixOverrides=",">