操作记录
This commit is contained in:
parent
f39b075104
commit
06fd682e48
@ -1,6 +1,7 @@
|
||||
package cn.iocoder.yudao.module.system.api.robot;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
|
||||
import cn.iocoder.yudao.module.infra.api.websocket.WebSocketSenderApi;
|
||||
@ -11,6 +12,7 @@ import cn.iocoder.yudao.module.system.api.robot.dto.RobotCompleteTaskDTO;
|
||||
import cn.iocoder.yudao.module.system.constant.path.PathPlanningTopicConstant;
|
||||
import cn.iocoder.yudao.module.system.constant.robot.RobotExecutionStateConstant;
|
||||
import cn.iocoder.yudao.module.system.constant.robot.RobotTaskChcheConstant;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.log.vo.RobotTaskDetailActionLogSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.log.RobotTaskDetailActionLogDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.houselocation.WareHouseLocationDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.*;
|
||||
@ -29,6 +31,7 @@ import cn.iocoder.yudao.module.system.enums.robot.task.RobotStatusCodeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.task.RobotTaskStageEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.wait.WaitStatusEnum;
|
||||
import cn.iocoder.yudao.module.system.service.information.DeviceInformationService;
|
||||
import cn.iocoder.yudao.module.system.service.log.RobotTaskDetailActionLogService;
|
||||
import cn.iocoder.yudao.module.system.service.path.PathPlanningService;
|
||||
import cn.iocoder.yudao.module.system.service.robot.RobotInformationService;
|
||||
import cn.iocoder.yudao.module.system.service.robot.RobotTaskDetailService;
|
||||
@ -67,6 +70,9 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
@Resource
|
||||
private RobotTaskDetailActionLogMapper taskDetailActionLogMapper;
|
||||
|
||||
@Resource
|
||||
private RobotTaskDetailActionLogService taskDetailActionLogService;
|
||||
|
||||
@Autowired
|
||||
private RobotInformationService robotInformationService;
|
||||
|
||||
@ -134,17 +140,37 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 上一条明细设置为完成
|
||||
* @param mac
|
||||
* @return
|
||||
*/
|
||||
public RobotTaskDetailActionLogDO setLastLogDone(String mac){
|
||||
String robotNo = robotInformationService.getRobotNoByMac(mac);
|
||||
RobotTaskDetailActionLogDO lastLog = taskDetailActionLogService.getLastTaskByRobotNo(robotNo);
|
||||
if (ObjectUtil.isNotEmpty(lastLog)) {
|
||||
lastLog.setEndTime(LocalDateTime.now());
|
||||
lastLog.setActionStatus(ActionStatusEnum.DONE.getType());
|
||||
RobotTaskDetailActionLogSaveReqVO updateObj = BeanUtils.toBean(lastLog, RobotTaskDetailActionLogSaveReqVO.class);
|
||||
taskDetailActionLogService.updateTaskDetailActionLog(updateObj);
|
||||
}
|
||||
return lastLog;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param robotCompleteTaskDTO
|
||||
*/
|
||||
private void robotTaskDoing(RobotCompleteTaskDTO robotCompleteTaskDTO, String robotDoingActionKey) {
|
||||
String robotNo = robotInformationService.getRobotNoByMac(robotCompleteTaskDTO.getMac());
|
||||
RobotTaskDetailActionLogDO lastLog = setLastLogDone(robotCompleteTaskDTO.getMac());
|
||||
|
||||
if (PathTaskTypeEnum.AUTO_CHARGE.getType().equals(robotCompleteTaskDTO.getOrderType())) {
|
||||
chargeDoing(robotCompleteTaskDTO, robotDoingActionKey);
|
||||
chargeDoing(robotCompleteTaskDTO, robotDoingActionKey,lastLog);
|
||||
} else if (PathTaskTypeEnum.MOVE_TO_WAIT.getType().equals(robotCompleteTaskDTO.getOrderType())) {
|
||||
RobotTaskDetailActionLogDO logOne = new RobotTaskDetailActionLogDO();
|
||||
logOne.setActionMsg("车辆正在前往等待点");
|
||||
String robotNo = robotInformationService.getRobotNoByMac(robotCompleteTaskDTO.getMac());
|
||||
logOne.setRobotNo(robotNo);
|
||||
logOne.setStartTime(LocalDateTime.now());
|
||||
logOne.setTaskDetailId(robotCompleteTaskDTO.getOrderId());
|
||||
taskDetailActionLogMapper.insert(logOne);
|
||||
redisUtil.set(robotDoingActionKey, logOne.getActionMsg(), doingActionCacheTime);
|
||||
@ -191,6 +217,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
* @param robotCompleteTaskDTO
|
||||
*/
|
||||
private void robotTaskDone(RobotCompleteTaskDTO robotCompleteTaskDTO) {
|
||||
setLastLogDone(robotCompleteTaskDTO.getMac());
|
||||
//todo 后面考虑下充电,车机目前对充电的逻辑未定义
|
||||
if (PathTaskTypeEnum.MOVE.getType().equals(robotCompleteTaskDTO.getOrderType())
|
||||
|| PathTaskTypeEnum.MOVE_TO_WAIT_STOP.getType().equals(robotCompleteTaskDTO.getOrderType())
|
||||
@ -302,21 +329,27 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
*
|
||||
* @param robotCompleteTaskDTO
|
||||
*/
|
||||
private void chargeDoing(RobotCompleteTaskDTO robotCompleteTaskDTO, String robotDoingActionKey) {
|
||||
private void chargeDoing(RobotCompleteTaskDTO robotCompleteTaskDTO, String robotDoingActionKey,RobotTaskDetailActionLogDO lastLog) {
|
||||
RobotTaskDetailActionLogDO logOne = new RobotTaskDetailActionLogDO();
|
||||
RobotCommandStateDTO commandStatus = robotCompleteTaskDTO.getCommandStatus();
|
||||
Integer taskStatus = ChargeTaskStatusEnum.CHARGEING.getType();
|
||||
if (ObjectUtil.isNotEmpty(commandStatus) && CommandTypeEnum.MOVE_POSES.getType().equals(commandStatus.getCommandType())) {
|
||||
RobotChargeLogDO robotChargeLogDO = chargeLogMapper.selectById(robotCompleteTaskDTO.getOrderId());
|
||||
logOne.setActionMsg("车辆正在前往充电点" + robotChargeLogDO.getDeviceNo());
|
||||
logOne.setTaskStage(RobotTaskStageEnum.MOVE.getType());
|
||||
taskStatus = ChargeTaskStatusEnum.DOING.getType();
|
||||
} else if (ObjectUtil.isNotEmpty(commandStatus)) {
|
||||
logOne.setActionMsg("车辆正在充电");
|
||||
logOne.setTaskStage(RobotTaskStageEnum.CHARGEING.getType());
|
||||
}
|
||||
|
||||
String robotNo = robotInformationService.getRobotNoByMac(robotCompleteTaskDTO.getMac());
|
||||
logOne.setRobotNo(robotNo);
|
||||
logOne.setTaskDetailId(robotCompleteTaskDTO.getOrderId());
|
||||
|
||||
logOne.setCommandType(lastLog.getCommandType());
|
||||
logOne.setTaskNo(lastLog.getTaskNo());
|
||||
logOne.setStartTime(LocalDateTime.now());
|
||||
taskDetailActionLogMapper.insert(logOne);
|
||||
redisUtil.set(robotDoingActionKey, logOne.getActionMsg(), doingActionCacheTime);
|
||||
RobotChargeLogDO build = RobotChargeLogDO
|
||||
@ -380,6 +413,8 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
RobotTaskDetailDO robotTaskDetailDO = robotTaskDetailMapper.selectById(robotCompleteTaskDTO.getOrderId());
|
||||
Long taskStage = robotTaskDetailDO.getTaskStage();
|
||||
|
||||
RobotTaskDO robotTask = robotTaskMapper.selectById(robotTaskDetailDO.getRobotTaskId());
|
||||
|
||||
RobotCommandStateDTO commandStatus = robotCompleteTaskDTO.getCommandStatus();
|
||||
String commandType = commandStatus.getCommandType();
|
||||
|
||||
@ -441,6 +476,10 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
String robotNo = robotInformationService.getRobotNoByMac(robotCompleteTaskDTO.getMac());
|
||||
logOne.setRobotNo(robotNo);
|
||||
logOne.setTaskDetailId(robotCompleteTaskDTO.getOrderId());
|
||||
logOne.setTaskStage(robotTaskDetailDO.getTaskStage());
|
||||
logOne.setCommandType(PathTaskTypeEnum.getTaskType(robotTaskDetailDO.getTaskType()));
|
||||
logOne.setTaskNo(robotTask.getTaskNo());
|
||||
logOne.setStartTime(LocalDateTime.now());
|
||||
taskDetailActionLogMapper.insert(logOne);
|
||||
redisUtil.set(robotDoingActionKey, logOne.getActionMsg(), doingActionCacheTime);
|
||||
robotTaskDetailMapper.updateById(robotTaskDetailDO);
|
||||
|
@ -26,7 +26,7 @@ public class RobotTaskDetailActionLogPageReqVO extends PageParam {
|
||||
@Schema(description = "车辆当前正在做的动作")
|
||||
private String actionMsg;
|
||||
|
||||
@Schema(description = "动作状态(0:未开始、1:正在进行、2:完成)", example = "2")
|
||||
@Schema(description = "动作状态(0:未开始、1:执行中、2:已完成、3:已取消、4:异常)", example = "2")
|
||||
private Integer actionStatus;
|
||||
|
||||
@Schema(description = "AGV编号")
|
||||
@ -39,4 +39,16 @@ public class RobotTaskDetailActionLogPageReqVO extends PageParam {
|
||||
@Schema(description = "robot_task_detail的id")
|
||||
private Long taskDetailId;
|
||||
|
||||
@Schema(description = "任务阶段(0:待执行、1:前往取货、2:取货中、3:前往放货、4:放货中、5:结束、6:移动中、7:正在充电、8:取消、9:人工完成、10:异常)")
|
||||
private Long taskStage;
|
||||
|
||||
@Schema(description = "任务号")
|
||||
private String taskNo;
|
||||
|
||||
@Schema(description = "开始时间")
|
||||
private LocalDateTime startTime;
|
||||
|
||||
@Schema(description = "结束时间")
|
||||
private LocalDateTime endTime;
|
||||
|
||||
}
|
@ -31,8 +31,8 @@ public class RobotTaskDetailActionLogRespVO {
|
||||
@ExcelProperty("车辆当前正在做的动作")
|
||||
private String actionMsg;
|
||||
|
||||
@Schema(description = "动作状态(0:未开始、1:正在进行、2:完成)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@ExcelProperty("动作状态(0:未开始、1:正在进行、2:完成)")
|
||||
@Schema(description = "动作状态(动作状态(0:未开始、1:执行中、2:已完成、3:已取消、4:异常))", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@ExcelProperty("动作状态(动作状态(0:未开始、1:执行中、2:已完成、3:已取消、4:异常))")
|
||||
private Integer actionStatus;
|
||||
|
||||
@Schema(description = "AGV编号")
|
||||
@ -46,4 +46,19 @@ public class RobotTaskDetailActionLogRespVO {
|
||||
@Schema(description = "robot_task_detail的id")
|
||||
private Long taskDetailId;
|
||||
|
||||
@Schema(description = "任务阶段(0:待执行、1:前往取货、2:取货中、3:前往放货、4:放货中、5:结束、6:移动中、7:正在充电、8:取消、9:人工完成、10:异常)")
|
||||
private Long taskStage;
|
||||
|
||||
@Schema(description = "任务号")
|
||||
@ExcelProperty("任务号")
|
||||
private String taskNo;
|
||||
|
||||
@Schema(description = "开始时间")
|
||||
@ExcelProperty("开始时间")
|
||||
private LocalDateTime startTime;
|
||||
|
||||
@Schema(description = "结束时间")
|
||||
@ExcelProperty("结束时间")
|
||||
private LocalDateTime endTime;
|
||||
|
||||
}
|
@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
import javax.validation.constraints.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 车辆动作记录新增/修改 Request VO")
|
||||
@Data
|
||||
@ -24,8 +25,8 @@ public class RobotTaskDetailActionLogSaveReqVO {
|
||||
@Schema(description = "车辆当前正在做的动作")
|
||||
private String actionMsg;
|
||||
|
||||
@Schema(description = "动作状态(0:未开始、1:正在进行、2:完成)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@NotNull(message = "动作状态(0:未开始、1:正在进行、2:完成)不能为空")
|
||||
@Schema(description = "动作状态(0:未开始、1:执行中、2:已完成、3:已取消、4:异常)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@NotNull(message = "动作状态(0:未开始、1:执行中、2:已完成、3:已取消、4:异常)不能为空")
|
||||
private Integer actionStatus;
|
||||
|
||||
@Schema(description = "AGV编号")
|
||||
@ -34,4 +35,13 @@ public class RobotTaskDetailActionLogSaveReqVO {
|
||||
@Schema(description = "robot_task_detail的id")
|
||||
private Long taskDetailId;
|
||||
|
||||
@Schema(description = "任务号")
|
||||
private String taskNo;
|
||||
|
||||
@Schema(description = "开始时间")
|
||||
private LocalDateTime startTime;
|
||||
|
||||
@Schema(description = "结束时间")
|
||||
private LocalDateTime endTime;
|
||||
|
||||
}
|
@ -5,6 +5,8 @@ import lombok.*;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 车辆动作记录 DO
|
||||
*
|
||||
@ -42,7 +44,7 @@ public class RobotTaskDetailActionLogDO extends BaseDO {
|
||||
*/
|
||||
private String actionMsg;
|
||||
/**
|
||||
* 动作状态(0:未开始、1:正在进行、2:完成)
|
||||
* 动作状态(0:未开始、1:执行中、2:已完成、3:已取消、4:异常)
|
||||
*/
|
||||
private Integer actionStatus;
|
||||
/**
|
||||
@ -59,4 +61,19 @@ public class RobotTaskDetailActionLogDO extends BaseDO {
|
||||
*/
|
||||
private Long taskStage;
|
||||
|
||||
/**
|
||||
* 任务号
|
||||
*/
|
||||
private String taskNo;
|
||||
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private LocalDateTime startTime;
|
||||
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private LocalDateTime endTime;
|
||||
|
||||
}
|
@ -22,10 +22,12 @@ public interface RobotTaskDetailActionLogMapper extends BaseMapperX<RobotTaskDet
|
||||
.eqIfPresent(RobotTaskDetailActionLogDO::getCommandType, reqVO.getCommandType())
|
||||
.eqIfPresent(RobotTaskDetailActionLogDO::getCommandMsg, reqVO.getCommandMsg())
|
||||
.likeIfPresent(RobotTaskDetailActionLogDO::getActionMsg, reqVO.getActionMsg())
|
||||
.likeIfPresent(RobotTaskDetailActionLogDO::getTaskNo, reqVO.getTaskNo())
|
||||
.eqIfPresent(RobotTaskDetailActionLogDO::getTaskStage, reqVO.getTaskStage())
|
||||
.eqIfPresent(RobotTaskDetailActionLogDO::getActionStatus, reqVO.getActionStatus())
|
||||
.eqIfPresent(RobotTaskDetailActionLogDO::getRobotNo, reqVO.getRobotNo())
|
||||
.betweenIfPresent(RobotTaskDetailActionLogDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(RobotTaskDetailActionLogDO::getId));
|
||||
.orderByDesc(RobotTaskDetailActionLogDO::getCreateTime));
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user