zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java
@@ -9,6 +9,7 @@ import com.zy.acs.framework.common.R; import com.zy.acs.framework.common.SnowflakeIdWorker; import com.zy.acs.manager.common.annotation.OperationLog; import com.zy.acs.manager.common.config.UplinkProperties; import com.zy.acs.manager.common.domain.param.HandlerPublishParam; import com.zy.acs.manager.common.exception.BusinessException; import com.zy.acs.manager.core.service.*; @@ -64,7 +65,7 @@ @Autowired private StaService staService; @Autowired private TrafficService trafficService; private UplinkProperties uplinkProperties; @Autowired private ThreadPoolRegulator threadPoolRegulator; @Autowired @@ -164,13 +165,13 @@ Task task = new Task(); task.setAgvId(agv.getId()); task.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); List<Task> lastTasks = taskService.list(new LambdaQueryWrapper<Task>().orderByDesc(Task::getId)); // List<Task> lastTasks = taskService.list(new LambdaQueryWrapper<Task>().orderByDesc(Task::getId)); // task.setSeqNum(Utils.generateSeqNum(Cools.isEmpty(lastTasks)?null:lastTasks.get(0).getSeqNum())); task.setSeqNum(Base62.encode(snowflakeIdWorker.nextId())); task.setTaskType(param.getTaskMode().val()); task.setTaskSts(TaskStsType.WAITING.val()); task.setUplinkSts(uplinkProperties.getEnabled() ? TaskUplinkStateType.PENDING.toString() : TaskUplinkStateType.SKIPPED.toString()); task.setPriority(999); task.setIoTime(now); task.setStartTime(now); zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java
@@ -3,9 +3,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.acs.common.enums.AgvStatusType; import com.zy.acs.common.utils.RedisSupport; import com.zy.acs.framework.common.Cools; import com.zy.acs.framework.common.DateUtils; import com.zy.acs.manager.common.config.UplinkProperties; import com.zy.acs.manager.core.integrate.wms.TaskReportService; import com.zy.acs.manager.core.service.MainLockWrapService; import com.zy.acs.manager.core.service.MainService; import com.zy.acs.manager.manager.entity.*; import com.zy.acs.manager.manager.enums.*; import com.zy.acs.manager.manager.service.*; @@ -36,7 +38,7 @@ @Autowired private FuncStaService funcStaService; @Autowired private MainService mainService; private UplinkProperties uplinkProperties; @Autowired private MainLockWrapService mainLockWrapService; @Autowired @@ -47,6 +49,8 @@ private AgvModelService agvModelService; @Autowired private SegmentService segmentService; @Autowired private TaskReportService taskReportService; @Scheduled(cron = "0/5 * * * * ? ") private synchronized void autoCharge(){ @@ -148,6 +152,27 @@ } } @Scheduled(cron = "0/3 * * * * ? ") private void reportTaskToUplink(){ if (!uplinkProperties.getEnabled()) { return; } List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>() .eq(Task::getUplinkSts, TaskUplinkStateType.PENDING.toString()) .eq(Task::getTaskSts, TaskStsType.COMPLETE.val()) ); if (Cools.isEmpty(taskList)) { return; } for (Task task : taskList) { boolean finished = taskReportService.reportFinished(task); if (finished) { task.setUplinkSts(TaskUplinkStateType.SUCCESS.toString()); } else { task.setUplinkSts(TaskUplinkStateType.FAILED.toString()); } } } @Scheduled(cron = "0/5 * * * * ? ") private synchronized void releaseFuncSta(){ List<FuncSta> funcStaList = funcStaService.list(new LambdaQueryWrapper<FuncSta>().eq(FuncSta::getState, FuncStaStateType.OCCUPIED.toString())); zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -791,6 +791,7 @@ task.setPriority(taskType.equals(TaskTypeType.TO_CHARGE)?2:1); task.setTaskSts(TaskStsType.ASSIGN.val()); task.setTaskType(taskType.val()); task.setUplinkSts(TaskUplinkStateType.SKIPPED.toString()); task.setIoTime(now); task.setStartTime(now); if (!taskService.save(task)) { zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/ValidService.java
@@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSON; import com.zy.acs.framework.common.Cools; import com.zy.acs.framework.common.SnowflakeIdWorker; import com.zy.acs.manager.common.config.UplinkProperties; import com.zy.acs.manager.common.domain.TaskDto; import com.zy.acs.manager.common.exception.BusinessException; import com.zy.acs.manager.manager.entity.Code; @@ -10,6 +11,7 @@ import com.zy.acs.manager.manager.entity.Sta; import com.zy.acs.manager.manager.entity.Task; import com.zy.acs.manager.manager.enums.TaskTypeType; import com.zy.acs.manager.manager.enums.TaskUplinkStateType; import com.zy.acs.manager.manager.service.CodeService; import com.zy.acs.manager.manager.service.LocService; import com.zy.acs.manager.manager.service.StaService; @@ -36,9 +38,12 @@ private MapService mapService; @Autowired private SnowflakeIdWorker snowflakeIdWorker; @Autowired private UplinkProperties uplinkProperties; public List<Task> validTaskDtoList(List<TaskDto> taskDtoList) { List<Task> taskList = new ArrayList<>(); String uplinkSts = uplinkProperties.getEnabled() ? TaskUplinkStateType.PENDING.toString() : TaskUplinkStateType.SKIPPED.toString(); for (TaskDto taskDto : taskDtoList) { if (Cools.isEmpty(taskDto.getSeqNum())) { throw new BusinessException("Task seqNum can't be empty!"); @@ -140,6 +145,7 @@ throw new BusinessException("seqNum:" + task.getSeqNum() + " is wrong,oriLoc:" + task.getOriLoc() + " is unable to reach destLoc" + task.getDestLoc()); } task.setPhase(JSON.toJSONString(pathList)); task.setUplinkSts(uplinkSts); break; case LOC_TO_STA: oriLoc = locService.getById(task.getOriLoc()); @@ -158,6 +164,7 @@ throw new BusinessException("seqNum:" + task.getSeqNum() + " is wrong,oriLoc:" + task.getOriLoc() + " can't move to destSta" + task.getDestSta()); } task.setPhase(JSON.toJSONString(pathList)); task.setUplinkSts(uplinkSts); break; case STA_TO_LOC: oriSta = staService.getById(task.getOriSta()); @@ -176,6 +183,7 @@ throw new BusinessException("seqNum:" + task.getSeqNum() + " is wrong,oriSta:" + task.getOriSta() + " is unable to react destLoc" + task.getDestLoc()); } task.setPhase(JSON.toJSONString(pathList)); task.setUplinkSts(uplinkSts); break; case STA_TO_STA: oriSta = staService.getById(task.getOriSta()); @@ -194,6 +202,7 @@ throw new BusinessException("seqNum:" + task.getSeqNum() + " is wrong,oriSta:" + task.getOriSta() + " can't move to destSta" + task.getDestSta()); } task.setPhase(JSON.toJSONString(pathList)); task.setUplinkSts(uplinkSts); break; default: throw new BusinessException("seqNum:" + task.getSeqNum() + " is wrong, cause this type not exist");