zy-acs-manager/src/main/java/com/zy/acs/manager/common/domain/TaskDto.java
@@ -10,6 +10,8 @@ private String seqNum; private String taskType; private String oriLoc; private String oriSta; zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/AutoRunScheduler.java
@@ -202,7 +202,7 @@ taskDto.setOriSta(stockSta.getStaNo()); taskDto.setDestLoc(idleLoc.getLocNo()); taskDto.setPriority(100); taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19)); taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(11, 19)); param.getTaskList().add(taskDto); } @@ -254,7 +254,7 @@ taskDto.setOriSta(stockSta.getStaNo()); taskDto.setDestLoc(idleLoc.getLocNo()); taskDto.setPriority(99); taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19)); taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(11, 19)); param.getTaskList().add(taskDto); num--; @@ -306,7 +306,7 @@ taskDto.setOriLoc(stockLoc.getLocNo()); taskDto.setDestSta(idleSta.getStaNo()); taskDto.setPriority(100); taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19)); taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(11, 19)); param.getTaskList().add(taskDto); } @@ -359,7 +359,7 @@ taskDto.setOriLoc(stockLoc.getLocNo()); taskDto.setDestSta(idleSta.getStaNo()); taskDto.setPriority(100); taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19)); taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(11, 19)); param.getTaskList().add(taskDto); num++; @@ -425,7 +425,7 @@ TaskDto taskDto = new TaskDto(); taskDto.setOriLoc(stockLoc.getLocNo()); taskDto.setDestLoc(idleLoc.getLocNo()); taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(15, 19)); taskDto.setSeqNum(String.valueOf(snowflakeIdWorker.nextId()).substring(11, 19)); param.getTaskList().add(taskDto); } zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java
@@ -1686,6 +1686,7 @@ taskReport.setQrCode(qrCode); taskReport.setReportTimes(0); taskReport.setTaskSts(taskReportStsType.status); taskReport.setEventType(taskReportStsType.name); taskReport.setSeqNum(task.getSeqNum()); taskReport.setZpallet(task.getZpallet()); if (!taskReportService.save(taskReport)) { zy-acs-manager/src/main/java/com/zy/acs/manager/core/third/ReportThirdScheduler.java
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.acs.framework.common.Cools; import com.zy.acs.manager.core.third.dto.TaskEvent; import com.zy.acs.manager.core.utils.HttpHandler; import com.zy.acs.manager.manager.entity.TaskReport; import com.zy.acs.manager.manager.entity.TaskReportLog; @@ -43,10 +44,10 @@ if (report) { String wmsUrl = configService.getVal("WMS_URL", String.class); String wmsPath = configService.getVal("WMS_PATH", String.class); String codes = configService.getVal("CODES", String.class, "1457;1612"); List<TaskReport> list = taskReportService.list(new LambdaQueryWrapper<TaskReport>().eq(TaskReport::getCompleted, 0).le(TaskReport::getReportTimes, 3)); for (TaskReport taskReport : list) { if (report(taskReport, wmsUrl, wmsPath)) { log.info("开始上报:{}", taskReport); if (report(new TaskEvent(taskReport.getSeqNum(), taskReport.getEventType()), wmsUrl, wmsPath)) { taskReport.setReportTimes((Cools.isEmpty(taskReport.getReportTimes()) ? 0 : taskReport.getReportTimes()) + 1); taskReport.setUpdateTime(new Date()); taskReport.setCompleted(1); @@ -59,27 +60,33 @@ } } /** * 删除超过一天的上报历史记录 */ @Scheduled(fixedDelay = 3000) public void execute2() { Calendar instance = Calendar.getInstance(); instance.add(Calendar.DATE, 1); List<TaskReport> list = taskReportService.list(new LambdaQueryWrapper<TaskReport>().eq(TaskReport::getCompleted, 1).ge(TaskReport::getUpdateTime, instance.getTime())); Integer times = configService.getVal("REPORT_TIMES", Integer.class, 3); for (TaskReport taskReport : list) { if ((Cools.isEmpty(taskReport.getReportTimes()) ? 0 : taskReport.getReportTimes()) > times) { toLog(taskReport); Boolean report = configService.getVal("REPORT", Boolean.class, false); if (report) { Calendar instance = Calendar.getInstance(); instance.add(Calendar.DATE, 1); List<TaskReport> list = taskReportService.list(new LambdaQueryWrapper<TaskReport>().eq(TaskReport::getCompleted, 1).ge(TaskReport::getUpdateTime, instance.getTime())); Integer times = configService.getVal("REPORT_TIMES", Integer.class, 3); for (TaskReport taskReport : list) { if ((Cools.isEmpty(taskReport.getReportTimes()) ? 0 : taskReport.getReportTimes()) > times) { toLog(taskReport); } } } list = taskReportService.list(new LambdaQueryWrapper<TaskReport>().eq(TaskReport::getReportTimes, 4).ge(TaskReport::getUpdateTime, instance.getTime())); for (TaskReport taskReport : list) { if ((Cools.isEmpty(taskReport.getReportTimes()) ? 0 : taskReport.getReportTimes()) > times) { toLog(taskReport); list = taskReportService.list(new LambdaQueryWrapper<TaskReport>().eq(TaskReport::getReportTimes, 4).ge(TaskReport::getUpdateTime, instance.getTime())); for (TaskReport taskReport : list) { if ((Cools.isEmpty(taskReport.getReportTimes()) ? 0 : taskReport.getReportTimes()) > times) { toLog(taskReport); } } } } @Transactional public boolean report(TaskReport taskReport, String wmsUrl, String wmsPath) { public boolean report(TaskEvent taskReport, String wmsUrl, String wmsPath) { String response = null; try { response = new HttpHandler.Builder() @@ -95,7 +102,6 @@ } } catch (IOException e) { log.info("报错了,{}", e); taskReport.setMemo(e.getMessage()); e.printStackTrace(); } zy-acs-manager/src/main/java/com/zy/acs/manager/core/third/dto/TaskEvent.java
New file @@ -0,0 +1,23 @@ package com.zy.acs.manager.core.third.dto; import lombok.Data; import java.io.Serializable; @Data public class TaskEvent implements Serializable { /** * 任务号 */ private String seqNum; /** * 事件类型 */ private String eventType; public TaskEvent(String seqNum, String eventType) { this.seqNum = seqNum; this.eventType = eventType; } } zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/OpenController.java
@@ -14,6 +14,7 @@ import com.zy.acs.manager.manager.enums.StaStsType; import com.zy.acs.manager.manager.service.LocService; import com.zy.acs.manager.manager.service.StaService; import com.zy.acs.manager.manager.service.TaskService; import com.zy.acs.manager.system.controller.BaseController; import com.zy.acs.manager.system.service.ConfigService; import io.swagger.annotations.Api; @@ -23,6 +24,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -47,6 +49,11 @@ @Autowired private ConfigService configService; @Autowired private TaskService taskService; //@PreAuthorize("hasAuthority('open:bus:submit')") @PostMapping("/bus/submit") @OperationLog("generate task from open api") @@ -60,6 +67,21 @@ return R.error("generate tasks error"); } @OperationLog("Cancel Task") @PostMapping("/task/cancel") public R cancel(@RequestBody List<String> taskIds) { if (Cools.isEmpty(taskIds)) { return R.error("task cancel error"); } List<Boolean> data = new ArrayList<>(); for (String id : taskIds) { data.add(taskService.cancel(taskService.selectBySeqNum(id).getId(), 9527L)); } return R.ok().add(data); } @PostMapping("/sta/update") @OperationLog("sync sta") public R updateLoc(@RequestBody Map<String, Object> map) { zy-acs-manager/src/main/java/com/zy/acs/manager/manager/entity/TaskReport.java
@@ -35,6 +35,11 @@ @ApiModelProperty(value = "任务号") private String seqNum; /** * 事件类型 */ @ApiModelProperty(value = "事件类型") private String eventType; /** * 任务进度 zy-acs-manager/src/main/java/com/zy/acs/manager/manager/enums/TaskReportStsType.java
@@ -14,17 +14,19 @@ public enum TaskReportStsType implements DataFieldSortFunc { START(1), OTBIN(5), END(10), START(1,"START"), OTBIN(5,"OTBIN"), END(10, "END"), ; public int status; TaskReportStsType(int dataSort) { this.status = dataSort; } public String name; TaskReportStsType(int dataSort, String name) { this.status = dataSort; this.name = name; } zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/TaskService.java
@@ -22,6 +22,8 @@ Task selectByUuid(String uuid); Task selectBySeqNum(String seqNum); List<Task> selectBySts(TaskStsType taskStsType); List<Task> selectInSts(Long agvId, TaskStsType... taskStsTypes); zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/TaskServiceImpl.java
@@ -64,6 +64,12 @@ } @Override public Task selectBySeqNum(String seqNum) { return this.list(new LambdaQueryWrapper<Task>().eq(Task::getSeqNum, seqNum)).get(0); } @Override public List<Task> selectBySts(TaskStsType taskStsType) { LambdaQueryWrapper<Task> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Task::getTaskSts, taskStsType.val());