任务日志添加原始执行车辆编号
This commit is contained in:
parent
febd063152
commit
e8419a002f
@ -16,6 +16,8 @@ public class RobotStatusDataPoseDTO {
|
||||
public String floor;
|
||||
//区域
|
||||
public String area;
|
||||
//货叉高度
|
||||
public Double forkHeight;
|
||||
//电池剩余容量 废弃 从ROBOT_INFORMATION_SOC 获取电量
|
||||
// public String batSoc;
|
||||
}
|
||||
|
@ -224,6 +224,7 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode TASK_CREATE_FAIL = new ErrorCode(1-002-035-110, "任务创建失败:");
|
||||
ErrorCode ROBOT_DO_TASK_FAIL = new ErrorCode(1-002-035-112, "车机反馈不能接任务");
|
||||
ErrorCode TASK_COMMONG_FAIL = new ErrorCode(1-002-035-113, "下发失败");
|
||||
ErrorCode TASK_ASSIGN_OTHER_ROBOT = new ErrorCode(1-002-035-114, "此任务已经转移给其他车辆");
|
||||
|
||||
// ========== 机器人任务明细 1-002-036-000 ==========
|
||||
ErrorCode TASK_DETAIL_NOT_EXISTS = new ErrorCode(1-002-036-001, "车辆任务明细不存在");
|
||||
|
@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.mqtt.api.common.CommonApi;
|
||||
import cn.iocoder.yudao.module.system.api.robot.dto.*;
|
||||
import cn.iocoder.yudao.module.system.api.robot.processor.RequestProcessor;
|
||||
import cn.iocoder.yudao.module.system.api.robot.vo.RobotInformationVO;
|
||||
import cn.iocoder.yudao.module.system.api.robot.vo.RobotReactiveStatusDTO;
|
||||
import cn.iocoder.yudao.module.system.config.ratelimiter.SystemRateLimiter;
|
||||
import cn.iocoder.yudao.module.system.constant.area.FloorAreaConstant;
|
||||
import cn.iocoder.yudao.module.system.constant.path.PathPlanningTopicConstant;
|
||||
@ -87,6 +88,14 @@ public class RobotStatusApiImpl implements RobotStatusApi {
|
||||
robotStatusDataPoseDTO.setRobotNo(robotNo);
|
||||
robotStatusDataPoseDTO.setFloor(floorZoneDTO.getFloor());
|
||||
robotStatusDataPoseDTO.setArea(floorZoneDTO.getArea());
|
||||
|
||||
String speedKey = RobotTaskChcheConstant.ROBOT_SPEED_FORK_HEIGHT + robotNo;
|
||||
Object speedObject = redisUtil.get(speedKey);
|
||||
if (ObjectUtil.isNotEmpty(speedObject)) {
|
||||
RobotReactiveStatusDTO data = JSON.parseObject(speedObject.toString(), RobotReactiveStatusDTO.class);
|
||||
robotStatusDataPoseDTO.setForkHeight(data.getForkHeight());
|
||||
}
|
||||
|
||||
redisUtil.set(pose2dKey, JSON.toJSONString(robotStatusDataPoseDTO), robotPositionCacheTime);
|
||||
|
||||
//机器人身上是否有货
|
||||
|
@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.system.api.robot.dto.RobotCommandStateDTO;
|
||||
import cn.iocoder.yudao.module.system.api.robot.dto.RobotCompleteTaskDTO;
|
||||
import cn.iocoder.yudao.module.system.api.robot.vo.RobotSkuInfoDTO;
|
||||
import cn.iocoder.yudao.module.system.constant.CommonConstant;
|
||||
import cn.iocoder.yudao.module.system.constant.path.PathPlanningChcheConstant;
|
||||
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;
|
||||
@ -111,6 +112,9 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
@Value("${zn.robot_doing_action.doing_action_cache_time:2*24*60*60}")
|
||||
private Long doingActionCacheTime;
|
||||
|
||||
@Value("${zn.is_simulation:false}")
|
||||
private Boolean isSimulation;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void doRobotDoneTask(RobotCompleteTaskDTO robotCompleteTaskDTO) {
|
||||
log.info("机器人完成任务上报 :{}", JSON.toJSONString(robotCompleteTaskDTO));
|
||||
@ -492,6 +496,11 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
//同步任务完成给PP
|
||||
pathPlanningService.updateBehavior(String.valueOf(robotCompleteTaskDTO.getOrderId()), robotTaskDetailDO.getRobotNo()
|
||||
, "", PathIsReachEnum.END_WORK.getType());
|
||||
|
||||
if (!isSimulation) {
|
||||
String plantingKey = PathPlanningChcheConstant.PATH_PLANNING_TASK + robotCompleteTaskDTO.getOrderId();
|
||||
redisUtil.del(plantingKey);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -579,6 +588,7 @@ public class RobotTaskStatusApiImpl implements RobotTaskStatusApi {
|
||||
|
||||
String robotNo = robotInformationService.getRobotNoByMac(robotCompleteTaskDTO.getMac());
|
||||
logOne.setRobotNo(robotNo);
|
||||
logOne.setOriginalRobotNo(robotNo);
|
||||
logOne.setTaskDetailId(robotCompleteTaskDTO.getOrderId());
|
||||
logOne.setTaskStage(robotTaskDetailDO.getTaskStage());
|
||||
logOne.setCommandType(PathTaskTypeEnum.getTaskType(robotTaskDetailDO.getTaskType()));
|
||||
|
@ -57,4 +57,6 @@ public class RobotTaskDetailActionLogPageReqVO extends PageParam {
|
||||
@Schema(description = "是否已经统计(0:未统计、1:已经统计)")
|
||||
private Integer alreadyCounted;
|
||||
|
||||
@Schema(description = "这条任务第一次执行的AGV编号")
|
||||
private String originalRobotNo;
|
||||
}
|
@ -69,4 +69,7 @@ public class RobotTaskDetailActionLogRespVO {
|
||||
@ExcelProperty("是否已经统计(0:未统计、1:已经统计)")
|
||||
private Integer alreadyCounted;
|
||||
|
||||
@Schema(description = "这条任务第一次执行的AGV编号")
|
||||
@ExcelProperty("这条任务第一次执行的AGV编号")
|
||||
private String originalRobotNo;
|
||||
}
|
@ -52,4 +52,7 @@ public class RobotTaskDetailActionLogSaveReqVO {
|
||||
|
||||
@Schema(description = "是否已经统计(0:未统计、1:已经统计)")
|
||||
private Integer alreadyCounted;
|
||||
|
||||
@Schema(description = "这条任务第一次执行的AGV编号")
|
||||
private String originalRobotNo;
|
||||
}
|
@ -87,5 +87,9 @@ public class RobotTaskDetailActionLogDO extends BaseDO {
|
||||
* 时长,单位分钟
|
||||
*/
|
||||
private Long duration;
|
||||
/**
|
||||
* 这条任务第一次执行的AGV编号
|
||||
*/
|
||||
private String originalRobotNo;
|
||||
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package cn.iocoder.yudao.module.system.api.robot.schedul;
|
||||
package cn.iocoder.yudao.module.system.schedul;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
|
||||
@ -7,7 +7,6 @@ import cn.iocoder.yudao.module.system.api.robot.vo.RobotInformationVO;
|
||||
import cn.iocoder.yudao.module.system.constant.area.FloorAreaConstant;
|
||||
import cn.iocoder.yudao.module.system.constant.robot.RobotTaskChcheConstant;
|
||||
import cn.iocoder.yudao.module.system.constant.webSocket.WebSocketConstant;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.robot.task.TaskAssignDTO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.positionmap.PositionMapDO;
|
||||
import cn.iocoder.yudao.module.system.service.positionmap.PositionMapService;
|
||||
import cn.iocoder.yudao.module.system.util.redis.RedisUtil;
|
@ -60,7 +60,7 @@ public interface RobotTaskDetailActionLogService {
|
||||
RobotTaskDetailActionLogDO setPreviousTaskDoneByOrderId(Long orderId);
|
||||
|
||||
/**
|
||||
* 获取车辆的最后一条任务
|
||||
* 获取车辆的最后一条任务(限处理中的任务使用)
|
||||
* @param robotNo
|
||||
* @return
|
||||
*/
|
||||
@ -84,4 +84,10 @@ public interface RobotTaskDetailActionLogService {
|
||||
*/
|
||||
List<RobotTaskDetailActionLogDO> getUnStatisticsDurationLog();
|
||||
|
||||
/**
|
||||
* 获取这台车最后一次执行的任务(查真实的分配记录)
|
||||
* @param robotNo
|
||||
* @return
|
||||
*/
|
||||
RobotTaskDetailActionLogDO getOriginalLastTaskByRobotNo(String robotNo);
|
||||
}
|
@ -2,19 +2,12 @@ package cn.iocoder.yudao.module.system.service.log;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.system.constant.robot.RobotTaskChcheConstant;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.log.vo.RobotTaskDetailActionLogPageReqVO;
|
||||
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.robot.RobotChargeLogDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.robot.RobotTaskDetailDO;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.log.RobotTaskDetailActionLogMapper;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.RobotTaskStatusEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.actionlog.ActionStatusEnum;
|
||||
import cn.iocoder.yudao.module.system.util.redis.RedisUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.actionlog.CommandIdEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -134,4 +127,18 @@ public class RobotTaskDetailActionLogServiceImpl implements RobotTaskDetailActio
|
||||
return taskDetailActionLogMapper.getUnStatisticsDurationLog();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查这台车最后一次分配的任务
|
||||
* @param robotNo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public RobotTaskDetailActionLogDO getOriginalLastTaskByRobotNo(String robotNo) {
|
||||
return taskDetailActionLogMapper.selectOne(new LambdaQueryWrapperX<RobotTaskDetailActionLogDO>()
|
||||
.eq(RobotTaskDetailActionLogDO::getOriginalRobotNo, robotNo)
|
||||
.eq(RobotTaskDetailActionLogDO::getCommandId, CommandIdEnum.TASK.getType())
|
||||
.orderByDesc(RobotTaskDetailActionLogDO::getCreateTime)
|
||||
.last("limit 1"));
|
||||
}
|
||||
|
||||
}
|
@ -546,7 +546,7 @@ public class PathPlanningServiceImpl implements PathPlanningService {
|
||||
}
|
||||
|
||||
List<PositionMapItemDO> itemDOList = new ArrayList<>();
|
||||
List<PositionMapItemDO> items = positionMapItemService.getPositionMapItemByMapAndType(positionMap.getId(), PositionMapItemEnum.WAIT.getType());
|
||||
List<PositionMapItemDO> items = positionMapItemService.getPositionMapItemByMapAndType(positionMap.getId(), PositionMapItemEnum.STOP.getType());
|
||||
if (ObjectUtil.isEmpty(items) || items.size() < robots.size()) {
|
||||
List<PositionMapItemDO> itemPoses = positionMapItemService.getPositionMapItemByMapAndType(positionMap.getId(), PositionMapItemEnum.PATH.getType());
|
||||
itemDOList.addAll(itemPoses);
|
||||
|
@ -57,6 +57,8 @@ import cn.iocoder.yudao.module.system.enums.item.UseStatusEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.path.PathTaskTypeEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.path.PathTaskTypeToRobotEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.redis.RobotCacheLockEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.LocationLockEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.LocationUseStatusEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.RobotStatusEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.RobotTaskDetailStatusEnum;
|
||||
import cn.iocoder.yudao.module.system.enums.robot.RobotTaskModelEnum;
|
||||
@ -92,6 +94,7 @@ import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0;
|
||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
@ -162,6 +165,9 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
@Value("${zn.full_electricity:95}")
|
||||
private String fullElectricity;
|
||||
|
||||
@Value("${zn.path_planning.task_chche_time:604800}")
|
||||
private Long taskChcheTime;
|
||||
|
||||
@Resource
|
||||
private RobotCameraService cameraService;
|
||||
|
||||
@ -313,6 +319,7 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
|
||||
/**
|
||||
* 查询车辆所在的地图id
|
||||
*
|
||||
* @param robotNo
|
||||
* @return
|
||||
*/
|
||||
@ -1073,10 +1080,16 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void doTaskContinue(String robotNo) {
|
||||
|
||||
RobotTaskDetailActionLogDO actionLog = taskDetailActionLogService.getLastTaskByRobotNo(robotNo,CommandIdEnum.TASK.getType());
|
||||
RobotTaskDetailActionLogDO actionLog = taskDetailActionLogService.getOriginalLastTaskByRobotNo(robotNo);
|
||||
if (ObjectUtil.isEmpty(actionLog)) {
|
||||
throw exception(ROBOT_LAST_TASK_NO_EXISTS);
|
||||
}
|
||||
|
||||
if (!actionLog.getRobotNo().equals(actionLog.getOriginalRobotNo())) {
|
||||
throw exception0(TASK_ASSIGN_OTHER_ROBOT.getCode(), TASK_ASSIGN_OTHER_ROBOT.getMsg() + actionLog.getRobotNo(),
|
||||
TASK_ASSIGN_OTHER_ROBOT.getMsg() + actionLog.getRobotNo());
|
||||
}
|
||||
|
||||
String mac = getMacByRobotNo(robotNo);
|
||||
robotCloseTaskDetail(actionLog.getTaskDetailId() + "", mac, actionLog.getCommandType());
|
||||
|
||||
@ -1158,6 +1171,10 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
|
||||
List<TaskToPathPlanningDTO> pathPlanningList = new ArrayList<>();
|
||||
pathPlanningList.add(pathPlanning);
|
||||
|
||||
String plantingKey = PathPlanningChcheConstant.PATH_PLANNING_TASK + pathPlanning.getOrderId();
|
||||
redisUtil.set(plantingKey, JSON.toJSONString(pathPlanning), taskChcheTime);
|
||||
|
||||
log.info("任务下发给PP :{}", JSON.toJSONString(pathPlanningList));
|
||||
commonApi.commonMethod(pathPlanningList, PathPlanningTopicConstant.TASK_ASSIGNMENT_REQUEST);
|
||||
}
|
||||
@ -1175,7 +1192,8 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
takeTask(pathPlanning, isRemote);
|
||||
} else if (PathTaskTypeEnum.RELEASE.getType().equals(actionLog.getCommandType())) {
|
||||
releaseTask(pathPlanning);
|
||||
} else if (PathTaskTypeEnum.MOVE.getType().equals(actionLog.getCommandType())) {
|
||||
} else if (PathTaskTypeEnum.MOVE.getType().equals(actionLog.getCommandType())
|
||||
|| PathTaskTypeEnum.MOVE_TO_POINT.getType().equals(actionLog.getCommandType())) {
|
||||
|
||||
}
|
||||
}
|
||||
@ -1214,11 +1232,14 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
* @param pathPlanning
|
||||
*/
|
||||
private void takeReleaseTask(TaskToPathPlanningDTO pathPlanning, Boolean isRemote) {
|
||||
|
||||
RobotTaskDetailDO robotTaskDetail = checkTaskDone(pathPlanning.getOrderId());
|
||||
if (!RobotTaskStageEnum.TAKEING.getType().equals(robotTaskDetail.getTaskStage())
|
||||
&& !RobotTaskStageEnum.GO_TAKE.getType().equals(robotTaskDetail.getTaskStage())
|
||||
&& !RobotTaskStageEnum.UN_START.getType().equals(robotTaskDetail.getTaskStage())) {
|
||||
//只要放货
|
||||
String robotNo = pathPlanning.getRobotNoLimitationAreaDTOS().get(0).getRobotNo();
|
||||
String mac = getMacByRobotNo(robotNo);
|
||||
String cargoDetectedKey = RobotTaskChcheConstant.ROBOT_CARGO_DETECTED + mac;
|
||||
Object cargoDetected = redisUtil.get(cargoDetectedKey);
|
||||
if (ObjectUtil.isNotEmpty(cargoDetected) && RobotStatusCodeConstant.CARGO_DETECTED.equals(Boolean.parseBoolean(String.valueOf(cargoDetected)))) {
|
||||
//说明取货完成
|
||||
pathPlanning.setTakeLevel(null);
|
||||
pathPlanning.setTakeGroupId(null);
|
||||
pathPlanning.setTakeLocationNumber(null);
|
||||
@ -1226,7 +1247,15 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
pathPlanning.setTakeOffsetHeight(null);
|
||||
pathPlanning.setTakeOffsetHeight(null);
|
||||
pathPlanning.setTaskType(PathTaskTypeToRobotEnum.DROP_OFF_GOODS.getType());
|
||||
} else {
|
||||
WareHouseLocationDO wareHouseLocation = wareHouseLocationMapper.selectById(robotTaskDetail.getFromLocationId());
|
||||
if (wareHouseLocation.getTaskId().equals(robotTaskDetail.getTakeId()) && LocationLockEnum.NO.getType().equals(wareHouseLocation.getLocationLock())) {
|
||||
wareHouseLocation.setSkuInfo(null);
|
||||
wareHouseLocation.setSkuNumber(0L);
|
||||
wareHouseLocation.setLocationLock(LocationLockEnum.YES.getType());
|
||||
wareHouseLocation.setLocationUseStatus(LocationUseStatusEnum.NO.getType());
|
||||
wareHouseLocationMapper.updateById(wareHouseLocation);
|
||||
}
|
||||
}else {
|
||||
takeCheck(robotTaskDetail.getFromLocationId(), robotTaskDetail.getRobotTaskId(), isRemote);
|
||||
}
|
||||
releaseCheck(robotTaskDetail.getToLocationId(), robotTaskDetail.getRobotTaskId());
|
||||
@ -1511,14 +1540,15 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void rmoteTransferTaskToNewFreeRobo(String oldRobotNo, Long id, String robotNo) {
|
||||
RobotTaskDetailActionLogDO actionLog = taskDetailActionLogService.getLastTaskByRobotNo(robotNo,CommandIdEnum.TASK.getType());
|
||||
RobotTaskDetailActionLogDO actionLog = taskDetailActionLogService.getOriginalLastTaskByRobotNo(oldRobotNo);
|
||||
if (ObjectUtil.isEmpty(actionLog)) {
|
||||
log.info("车辆前一个任务不存在或已经完成");
|
||||
throw exception(ROBOT_LAST_TASK_NO_EXISTS);
|
||||
}
|
||||
if (!actionLog.getTaskDetailId().equals(id)) {
|
||||
log.info("车辆最新的任务id是 :{}, 车辆的前一个任务是 :{}", id, actionLog.getTaskDetailId());
|
||||
throw exception(ROBOT_LAST_TASK_NO_EXISTS);
|
||||
if (!oldRobotNo.equals(actionLog.getRobotNo())) {
|
||||
log.info("此任务已经被转移到车辆 :{}", actionLog.getRobotNo());
|
||||
throw exception0(TASK_ASSIGN_OTHER_ROBOT.getCode(), TASK_ASSIGN_OTHER_ROBOT.getMsg() + actionLog.getRobotNo(),
|
||||
TASK_ASSIGN_OTHER_ROBOT.getMsg() + actionLog.getRobotNo());
|
||||
}
|
||||
|
||||
if (ActionStatusEnum.DONE.getType().equals(actionLog.getActionStatus())) {
|
||||
@ -1562,6 +1592,9 @@ public class RobotInformationServiceImpl extends ServiceImpl<RobotInformationMap
|
||||
|
||||
resendToPPData(pathPlanning, actionLog, robotInformationDO, true);
|
||||
|
||||
String plantingKey = PathPlanningChcheConstant.PATH_PLANNING_TASK + pathPlanning.getOrderId();
|
||||
redisUtil.set(plantingKey, JSON.toJSONString(pathPlanning), taskChcheTime);
|
||||
|
||||
List<TaskToPathPlanningDTO> pathPlanningList = new ArrayList<>();
|
||||
pathPlanningList.add(pathPlanning);
|
||||
log.info("远遥任务转移, 任务下发给PP :{}", JSON.toJSONString(pathPlanningList));
|
||||
|
@ -585,6 +585,7 @@ public class RobotTaskServiceImpl extends ServiceImpl<RobotTaskMapper, RobotTask
|
||||
String actionMsg = taskAssignDTO.getRobotActionMsg() + robotTaskDO.getTaskNo();
|
||||
logOne.setActionMsg(actionMsg);
|
||||
logOne.setRobotNo(taskAssignDTO.getRobotNo());
|
||||
logOne.setOriginalRobotNo(taskAssignDTO.getRobotNo());
|
||||
logOne.setStartTime(LocalDateTime.now());
|
||||
logOne.setTaskNo(robotTaskDO.getTaskNo());
|
||||
logOne.setCommandId(-1L);
|
||||
|
@ -177,13 +177,26 @@ public class RobotWarnMsgServiceImpl extends ServiceImpl<RobotWarnMsgMapper, Rob
|
||||
@Override
|
||||
public Map<String, List<RobotWarnMsgClassificationDTO>> robotWarnMsgClassification(String type) {
|
||||
|
||||
|
||||
if (TimeTypeEnum.WEEK.getType().equals(type)) {
|
||||
List<RobotWarnMsgClassificationDTO> data = warnMsgMapper.getRobotWarnMsgClassification(type);
|
||||
if (ObjectUtil.isEmpty(data)) {
|
||||
return null;
|
||||
}
|
||||
return data.stream().collect(Collectors.groupingBy(RobotWarnMsgClassificationDTO::getWarnTime));
|
||||
|
||||
Map<String, List<RobotWarnMsgClassificationDTO>> map =
|
||||
data.stream().collect(Collectors.groupingBy(RobotWarnMsgClassificationDTO::getWarnTime));
|
||||
|
||||
Calendar now = Calendar.getInstance();
|
||||
now.setTime(new Date());
|
||||
for (int i = 0; i < 7; i++) {
|
||||
String timeStr = DateUtils.getYYYMMDD(now.getTime());
|
||||
if (!map.containsKey(timeStr)) {
|
||||
map.put(timeStr,new ArrayList<>());
|
||||
}
|
||||
now.set(Calendar.DATE, now.get(Calendar.DATE) - 1);
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
//季度是90天,分成10份,是9. getMonthData已经扣了1,所以是8
|
||||
@ -198,7 +211,7 @@ public class RobotWarnMsgServiceImpl extends ServiceImpl<RobotWarnMsgMapper, Rob
|
||||
/**
|
||||
* 按月查询
|
||||
*
|
||||
* @param data
|
||||
* @param day
|
||||
* @return
|
||||
*/
|
||||
private LinkedHashMap<String, List<RobotWarnMsgClassificationDTO>> getMonthData(int day) {
|
||||
|
@ -55,12 +55,6 @@
|
||||
<when test="type == 1">
|
||||
AND DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(create_time)
|
||||
</when>
|
||||
<when test="type == 2">
|
||||
AND DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(create_time)
|
||||
</when>
|
||||
<when test="type == 3">
|
||||
AND DATE_SUB(CURDATE(), INTERVAL 90 DAY) <= date(create_time)
|
||||
</when>
|
||||
</choose>
|
||||
</where>
|
||||
GROUP BY warnTime ,warn_level
|
||||
|
Loading…
Reference in New Issue
Block a user