优化任务下发的更新顺序
This commit is contained in:
parent
39b34faa75
commit
e2f46b2978
@ -32,11 +32,6 @@ public interface RobotInformationMapper extends BaseMapperX<RobotInformationDO>
|
|||||||
.orderByDesc(RobotInformationDO::getId));
|
.orderByDesc(RobotInformationDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询空闲的机器人
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
List<RobotInformationDO> selectFreeRobot();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新机器人状态
|
* 更新机器人状态
|
||||||
|
@ -169,10 +169,11 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
// todo 更新数据库顺序 后续改为xxl-job一致
|
// todo 更新数据库顺序 后续改为xxl-job一致
|
||||||
|
|
||||||
//查找库位
|
//查找库位
|
||||||
|
List<Long> locationIds = new ArrayList<>();
|
||||||
if (MoveAllEnum.NO.getType().equals(createReqVO.getDoMoveAll())) {
|
if (MoveAllEnum.NO.getType().equals(createReqVO.getDoMoveAll())) {
|
||||||
setSingleLocationIdNo(createReqVO.getTaskDetailList(),task);
|
locationIds = setSingleLocationIdNo(createReqVO.getTaskDetailList(),task);
|
||||||
} else {
|
} else {
|
||||||
setAllLocationIdNo(createReqVO,task.getId());
|
locationIds = setAllLocationIdNo(createReqVO,task.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 插入
|
// 插入
|
||||||
@ -182,6 +183,11 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
});
|
});
|
||||||
robotTaskDetailService.insertRobotDetailList(createReqVO.getTaskDetailList());
|
robotTaskDetailService.insertRobotDetailList(createReqVO.getTaskDetailList());
|
||||||
|
|
||||||
|
List<List<Long>> fromPartition = Lists.partition(locationIds, 100);
|
||||||
|
fromPartition.forEach(list-> {
|
||||||
|
locationMapper.updateLocationLockList(list,task.getId(),LocationLockEnum.NO.getType());
|
||||||
|
});
|
||||||
|
|
||||||
return RESULT;
|
return RESULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,7 +197,7 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
* @param taskId
|
* @param taskId
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void setAllLocationIdNo(RobotTaskSaveReqVO createReqVO, Long taskId) {
|
public List<Long> setAllLocationIdNo(RobotTaskSaveReqVO createReqVO, Long taskId) {
|
||||||
List<RobotTaskDetailAddVO> taskDetailList = createReqVO.getTaskDetailList();
|
List<RobotTaskDetailAddVO> taskDetailList = createReqVO.getTaskDetailList();
|
||||||
|
|
||||||
List<RobotTaskDetailAddVO> newTaskDetailList = new ArrayList<>();
|
List<RobotTaskDetailAddVO> newTaskDetailList = new ArrayList<>();
|
||||||
@ -268,17 +274,11 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
createReqVO.setTaskDetailList(newTaskDetailList);
|
createReqVO.setTaskDetailList(newTaskDetailList);
|
||||||
//跟新库位状态为锁定
|
|
||||||
List<List<Long>> toPartition = Lists.partition(toLocationIds, 100);
|
|
||||||
toPartition.forEach(list-> {
|
|
||||||
locationMapper.updateLocationLockList(list,taskId,LocationLockEnum.NO.getType());
|
|
||||||
});
|
|
||||||
|
|
||||||
List<List<Long>> fromPartition = Lists.partition(fromLocationIds, 100);
|
|
||||||
fromPartition.forEach(list-> {
|
|
||||||
locationMapper.updateLocationLockList(list,taskId,LocationLockEnum.NO.getType());
|
|
||||||
});
|
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(fromLocationIds)) {
|
||||||
|
toLocationIds.addAll(fromLocationIds);
|
||||||
|
}
|
||||||
|
return toLocationIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -324,7 +324,7 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void setSingleLocationIdNo(List<RobotTaskDetailAddVO> taskDetailList, RobotTaskDO task){
|
public List<Long> setSingleLocationIdNo(List<RobotTaskDetailAddVO> taskDetailList, RobotTaskDO task){
|
||||||
List<Long> locationIds = new ArrayList<>();
|
List<Long> locationIds = new ArrayList<>();
|
||||||
for (RobotTaskDetailAddVO robotTaskVo : taskDetailList) {
|
for (RobotTaskDetailAddVO robotTaskVo : taskDetailList) {
|
||||||
robotTaskVo.setRobotTaskId(task.getId());
|
robotTaskVo.setRobotTaskId(task.getId());
|
||||||
@ -350,16 +350,17 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
doRelease(robotTaskVo,locationIds);
|
doRelease(robotTaskVo,locationIds);
|
||||||
break;
|
break;
|
||||||
case SCAN:
|
case SCAN:
|
||||||
doScan(robotTaskVo);
|
doScan(robotTaskVo,locationIds);
|
||||||
break;
|
break;
|
||||||
case DETECTING_TRAYS:
|
case DETECTING_TRAYS:
|
||||||
doDetectingTrays(robotTaskVo);
|
doDetectingTrays(robotTaskVo,locationIds);
|
||||||
break;
|
break;
|
||||||
default :
|
default :
|
||||||
log.error("任务类型不存在 ");
|
log.error("任务类型不存在 ");
|
||||||
throw new RuntimeException("任务类型不存在");
|
throw new RuntimeException("任务类型不存在");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return locationIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -367,9 +368,9 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
* @param robotTaskVo
|
* @param robotTaskVo
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void doDetectingTrays(RobotTaskDetailAddVO robotTaskVo) {
|
public void doDetectingTrays(RobotTaskDetailAddVO robotTaskVo, List<Long> locationIds) {
|
||||||
setToLocation(robotTaskVo,getMapIdsByRobotNo(robotTaskVo.getRobotNo()),new ArrayList<>());
|
setToLocation(robotTaskVo,getMapIdsByRobotNo(robotTaskVo.getRobotNo()),new ArrayList<>());
|
||||||
locationMapper.updateLocationLockStatus(robotTaskVo.getToLocationId(),0,robotTaskVo.getRobotTaskId());
|
locationIds.add(robotTaskVo.getToLocationId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -377,9 +378,9 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
* @param robotTaskVo
|
* @param robotTaskVo
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void doScan(RobotTaskDetailAddVO robotTaskVo) {
|
public void doScan(RobotTaskDetailAddVO robotTaskVo, List<Long> locationIds) {
|
||||||
setToLocation(robotTaskVo,getMapIdsByRobotNo(robotTaskVo.getRobotNo()),new ArrayList<>());
|
setToLocation(robotTaskVo,getMapIdsByRobotNo(robotTaskVo.getRobotNo()),new ArrayList<>());
|
||||||
locationMapper.updateLocationLockStatus(robotTaskVo.getToLocationId(),0,robotTaskVo.getRobotTaskId());
|
locationIds.add(robotTaskVo.getToLocationId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -389,7 +390,6 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void doRelease(RobotTaskDetailAddVO robotTaskVo, List<Long> locationIds) {
|
public void doRelease(RobotTaskDetailAddVO robotTaskVo, List<Long> locationIds) {
|
||||||
setToLocation(robotTaskVo,getMapIdsByRobotNo(robotTaskVo.getRobotNo()),locationIds);
|
setToLocation(robotTaskVo,getMapIdsByRobotNo(robotTaskVo.getRobotNo()),locationIds);
|
||||||
locationMapper.updateLocationLockStatus(robotTaskVo.getToLocationId(),0,robotTaskVo.getRobotTaskId());
|
|
||||||
locationIds.add(robotTaskVo.getToLocationId());
|
locationIds.add(robotTaskVo.getToLocationId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -539,9 +539,6 @@ public class RobotTaskServiceImpl implements RobotTaskService {
|
|||||||
throw new RuntimeException("取货库位,存在未完成的任务 ");
|
throw new RuntimeException("取货库位,存在未完成的任务 ");
|
||||||
}
|
}
|
||||||
|
|
||||||
//设置为锁定
|
|
||||||
locationMapper.updateLocationLockStatus(robotTaskVo.getToLocationId(),0,robotTaskVo.getRobotTaskId());
|
|
||||||
locationMapper.updateLocationLockStatus(robotTaskVo.getFromLocationId(),0,robotTaskVo.getRobotTaskId());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package cn.iocoder.yudao.module.system.service.robot.job;
|
package cn.iocoder.yudao.module.system.service.robot.job;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
|
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
|
||||||
import cn.iocoder.yudao.module.mqtt.api.task.RobotTaskApi;
|
import cn.iocoder.yudao.module.mqtt.api.task.RobotTaskApi;
|
||||||
import cn.iocoder.yudao.module.mqtt.api.task.dto.Pose2ds;
|
import cn.iocoder.yudao.module.mqtt.api.task.dto.Pose2ds;
|
||||||
@ -75,7 +76,11 @@ public class DistributeTasksServiceImpl implements DistributeTasksService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void distributeTasks() {
|
public void distributeTasks() {
|
||||||
TenantContextHolder.setTenantId(1L);
|
TenantContextHolder.setTenantId(1L);
|
||||||
List<RobotInformationDO> robots = robotInformationMapper.selectFreeRobot();
|
List<RobotInformationDO> robots = robotInformationMapper.selectList(new LambdaQueryWrapperX<RobotInformationDO>()
|
||||||
|
.eq(RobotInformationDO::getRobotStatus, (RobotStatusEnum.STAND_BY.getType()))
|
||||||
|
.eq(RobotInformationDO::getRobotTaskModel, RobotTaskModelEnum.NORMAL.getType())
|
||||||
|
.orderByDesc(RobotInformationDO::getUpdateTime));
|
||||||
|
|
||||||
if (robots.isEmpty()) {
|
if (robots.isEmpty()) {
|
||||||
log.info("暂无空闲的机器人");
|
log.info("暂无空闲的机器人");
|
||||||
return;
|
return;
|
||||||
@ -132,6 +137,12 @@ public class DistributeTasksServiceImpl implements DistributeTasksService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void distributeTasks(List<RobotInformationDO> robots, List<RobotTaskDetailDO> taskDetailDOS) {
|
public void distributeTasks(List<RobotInformationDO> robots, List<RobotTaskDetailDO> taskDetailDOS) {
|
||||||
List<RobotAcceptTaskDTO> robotTaskDOS = new ArrayList<>();
|
List<RobotAcceptTaskDTO> robotTaskDOS = new ArrayList<>();
|
||||||
|
//需要更新的任务明细id
|
||||||
|
List<RobotTaskDetailDO> updateTaskDetails = new ArrayList<>();
|
||||||
|
//需要更新的任务id
|
||||||
|
Set<Long> taskIds = new HashSet<>();
|
||||||
|
//需要更新的机器人编号
|
||||||
|
Set<String> robotNos = new HashSet<>();
|
||||||
for (RobotTaskDetailDO taskDetailDO : taskDetailDOS) {
|
for (RobotTaskDetailDO taskDetailDO : taskDetailDOS) {
|
||||||
if (ObjectUtil.isEmpty(robots)) {
|
if (ObjectUtil.isEmpty(robots)) {
|
||||||
break;
|
break;
|
||||||
@ -140,7 +151,7 @@ public class DistributeTasksServiceImpl implements DistributeTasksService {
|
|||||||
RobotTaskTypeEnum robotTaskType = RobotTaskTypeEnum.getRobotTaskType(taskDetailDO.getTaskType());
|
RobotTaskTypeEnum robotTaskType = RobotTaskTypeEnum.getRobotTaskType(taskDetailDO.getTaskType());
|
||||||
switch (robotTaskType) {
|
switch (robotTaskType) {
|
||||||
case TAKE_RELEASE:
|
case TAKE_RELEASE:
|
||||||
doTakeReleaseDistribute(taskDetailDO, robots,robotTaskDOS);
|
doTakeReleaseDistribute(taskDetailDO, robots,robotTaskDOS,taskIds,updateTaskDetails,robotNos);
|
||||||
break;
|
break;
|
||||||
/*case PARK:
|
/*case PARK:
|
||||||
doParkDistribute(taskDetailDO, robots,robotTaskDOS);
|
doParkDistribute(taskDetailDO, robots,robotTaskDOS);
|
||||||
@ -172,6 +183,27 @@ public class DistributeTasksServiceImpl implements DistributeTasksService {
|
|||||||
log.info("任务下发给车机 :{}", JSON.toJSONString(robotTaskDOS));
|
log.info("任务下发给车机 :{}", JSON.toJSONString(robotTaskDOS));
|
||||||
robotTaskApi.sendTaskToRobot(robotTaskDOS);
|
robotTaskApi.sendTaskToRobot(robotTaskDOS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ObjectUtil.isNotEmpty(taskIds)) {
|
||||||
|
List<RobotTaskDO> taskDOS = robotTaskMapper.selectBatchIds(taskIds);
|
||||||
|
for (RobotTaskDO taskDO : taskDOS) {
|
||||||
|
if (RobotTaskStatusEnum.NEW.getType().equals(taskDO.getTaskStatus())) {
|
||||||
|
taskDO.setTaskStatus(RobotTaskStatusEnum.DOING.getType());
|
||||||
|
taskDO.setStartTime(LocalDateTime.now());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
robotTaskMapper.updateBatch(taskDOS);
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(updateTaskDetails)) {
|
||||||
|
robotTaskDetailMapper.updateBatch(updateTaskDetails);
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotEmpty(robotNos)) {
|
||||||
|
List<RobotInformationDO> robotInformationDOS = robotInformationMapper.selectByRobotNos(robotNos);
|
||||||
|
robotInformationDOS.stream().forEach(robotInformationDO -> {
|
||||||
|
robotInformationDO.setRobotStatus(RobotStatusEnum.DOING.getType());
|
||||||
|
});
|
||||||
|
robotInformationMapper.updateBatch(robotInformationDOS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -346,7 +378,8 @@ public class DistributeTasksServiceImpl implements DistributeTasksService {
|
|||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void doTakeReleaseDistribute(RobotTaskDetailDO taskDetailDO, List<RobotInformationDO> robots,
|
public void doTakeReleaseDistribute(RobotTaskDetailDO taskDetailDO, List<RobotInformationDO> robots,
|
||||||
List<RobotAcceptTaskDTO> robotTaskDOS) {
|
List<RobotAcceptTaskDTO> robotTaskDOS,Set<Long> taskIdSet,
|
||||||
|
List<RobotTaskDetailDO> updateTaskDetail, Set<String> robotNos) {
|
||||||
WareHouseLocationDO query = WareHouseLocationDO.builder().id(taskDetailDO.getFromLocationId()).build();
|
WareHouseLocationDO query = WareHouseLocationDO.builder().id(taskDetailDO.getFromLocationId()).build();
|
||||||
WareHouseLocationDO fromLocation = locationMapper.queryAllByLimit(query);
|
WareHouseLocationDO fromLocation = locationMapper.queryAllByLimit(query);
|
||||||
|
|
||||||
@ -459,26 +492,6 @@ public class DistributeTasksServiceImpl implements DistributeTasksService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*Pose2ds poseOne = new Pose2ds();
|
|
||||||
poseOne.setX(-2.097);
|
|
||||||
poseOne.setY(-0.325);
|
|
||||||
poseOne.setYaw(1.571);
|
|
||||||
Pose2ds poseTwo = new Pose2ds();
|
|
||||||
poseTwo.setX(-0.856);
|
|
||||||
poseTwo.setY(1.622);
|
|
||||||
poseTwo.setYaw(0.034);
|
|
||||||
Pose2ds poseThree = new Pose2ds();
|
|
||||||
poseThree.setX(1.955);
|
|
||||||
poseThree.setY(-0.381);
|
|
||||||
poseThree.setYaw(-1.540);
|
|
||||||
Pose2ds poseFour = new Pose2ds();
|
|
||||||
poseFour.setX(3.046);
|
|
||||||
poseFour.setY(3.219);
|
|
||||||
poseFour.setYaw(-3.141);
|
|
||||||
pose2dsNight.add(poseOne);
|
|
||||||
pose2dsNight.add(poseTwo);
|
|
||||||
pose2dsNight.add(poseThree);
|
|
||||||
pose2dsNight.add(poseFour);*/
|
|
||||||
taskNigth.setPose2ds(pose2dsNight);
|
taskNigth.setPose2ds(pose2dsNight);
|
||||||
|
|
||||||
//10
|
//10
|
||||||
@ -561,7 +574,13 @@ public class DistributeTasksServiceImpl implements DistributeTasksService {
|
|||||||
final String mac = macAddress;
|
final String mac = macAddress;
|
||||||
robots.removeIf(v -> v.getMacAddress().equals(mac));
|
robots.removeIf(v -> v.getMacAddress().equals(mac));
|
||||||
|
|
||||||
updateTaskStatus(robotNo,taskDetailDO);
|
taskDetailDO.setRobotNo(robotNo);
|
||||||
|
taskDetailDO.setStartTime(LocalDateTime.now());
|
||||||
|
taskDetailDO.setTaskStatus(RobotTaskDetailStatusEnum.DOING.getType());
|
||||||
|
updateTaskDetail.add(taskDetailDO);
|
||||||
|
|
||||||
|
robotNos.add(robotNo);
|
||||||
|
taskIdSet.add(taskDetailDO.getRobotTaskId());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Pair<String, String> getMadAddressRobotNo(RobotTaskDetailDO taskDetailDO, List<RobotInformationDO> robots,
|
private Pair<String, String> getMadAddressRobotNo(RobotTaskDetailDO taskDetailDO, List<RobotInformationDO> robots,
|
||||||
@ -576,7 +595,9 @@ public class DistributeTasksServiceImpl implements DistributeTasksService {
|
|||||||
.orElse("");
|
.orElse("");
|
||||||
} else {
|
} else {
|
||||||
RobotInformationDO robotInformationDO = robots.stream()
|
RobotInformationDO robotInformationDO = robots.stream()
|
||||||
.filter(v -> v.getFloorAreaJson().contains(fromLocation.getAreaId())
|
.filter(v ->
|
||||||
|
ObjectUtil.isNotEmpty(v.getMacAddress())
|
||||||
|
&& v.getFloorAreaJson().contains(fromLocation.getAreaId())
|
||||||
&& v.getFloorAreaJson().contains(toLocation.getAreaId()))
|
&& v.getFloorAreaJson().contains(toLocation.getAreaId()))
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.orElse(new RobotInformationDO());
|
.orElse(new RobotInformationDO());
|
||||||
@ -589,18 +610,20 @@ public class DistributeTasksServiceImpl implements DistributeTasksService {
|
|||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateTaskStatus(String robotNo, RobotTaskDetailDO taskDetailDO) {
|
public void updateTaskStatus(String robotNo, RobotTaskDetailDO taskDetailDO) {
|
||||||
robotInformationMapper.updateRobotStatus(robotNo, RobotStatusEnum.DOING.getType());
|
|
||||||
RobotTaskDetailDO detailDO = new RobotTaskDetailDO();
|
|
||||||
detailDO.setId(taskDetailDO.getId());
|
|
||||||
detailDO.setStartTime(LocalDateTime.now());
|
|
||||||
detailDO.setTaskStatus(RobotTaskDetailStatusEnum.DOING.getType());
|
|
||||||
robotTaskDetailMapper.updateRobotDetailById(detailDO);
|
|
||||||
|
|
||||||
RobotTaskDO robotTaskDO = new RobotTaskDO();
|
RobotTaskDO robotTaskDO = new RobotTaskDO();
|
||||||
robotTaskDO.setId(taskDetailDO.getRobotTaskId());
|
robotTaskDO.setId(taskDetailDO.getRobotTaskId());
|
||||||
robotTaskDO.setStartTime(LocalDateTime.now());
|
robotTaskDO.setStartTime(LocalDateTime.now());
|
||||||
robotTaskDO.setTaskStatus(RobotTaskDetailStatusEnum.DOING.getType());
|
robotTaskDO.setTaskStatus(RobotTaskDetailStatusEnum.DOING.getType());
|
||||||
robotTaskMapper.updateRobot(robotTaskDO);
|
robotTaskMapper.updateRobot(robotTaskDO);
|
||||||
|
|
||||||
|
RobotTaskDetailDO detailDO = new RobotTaskDetailDO();
|
||||||
|
detailDO.setId(taskDetailDO.getId());
|
||||||
|
detailDO.setStartTime(LocalDateTime.now());
|
||||||
|
detailDO.setTaskStatus(RobotTaskDetailStatusEnum.DOING.getType());
|
||||||
|
robotTaskDetailMapper.updateRobotDetailById(detailDO);
|
||||||
|
|
||||||
|
robotInformationMapper.updateRobotStatus(robotNo, RobotStatusEnum.DOING.getType());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -271,17 +271,6 @@
|
|||||||
where id = #{id}
|
where id = #{id}
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<select id="selectFreeRobot" resultMap="BaseResultMap">
|
|
||||||
select
|
|
||||||
<include refid="base_sql"></include>
|
|
||||||
from
|
|
||||||
robot_information
|
|
||||||
where
|
|
||||||
robot_task_model = '1'
|
|
||||||
and deleted = '0'
|
|
||||||
and robot_status = '3'
|
|
||||||
order by update_time asc
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="statisticsInformation"
|
<select id="statisticsInformation"
|
||||||
resultType="cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationStatisticsVO">
|
resultType="cn.iocoder.yudao.module.system.controller.admin.robot.vo.RobotInformationStatisticsVO">
|
||||||
|
Loading…
Reference in New Issue
Block a user