1
1 天以前 cd32ca13746729913e72ffe021a3aee24ee01c67
lsh#
6个文件已修改
1个文件已添加
114 ■■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskLog.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskStsType.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/system/entity/TaskPathTemplate.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/resources/lib/RouteUtils.jar 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java
@@ -207,6 +207,18 @@
    @ApiModelProperty(value= "路径ID")
    private Long deviceSiteId;
    /**
     * 步序起点
     */
    @ApiModelProperty(value= "步序起点")
    private String souStep;
    /**
     * 步序终点
     */
    @ApiModelProperty(value= "步序终点")
    private String endStep;
    public Task() {}
    public Task(String taskCode,Integer taskStatus,Integer taskType,String orgLoc,String targLoc,String barcode,String robotCode,Short exceStatus,String expDesc,Integer sort,String expCode,Date startTime,Date endTime,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskLog.java
@@ -191,6 +191,18 @@
    @ApiModelProperty(value= "路径ID")
    private Long deviceSiteId;
    /**
     * 步序起点
     */
    @ApiModelProperty(value= "步序起点")
    private String souStep;
    /**
     * 步序终点
     */
    @ApiModelProperty(value= "步序终点")
    private String endStep;
    public TaskLog() {}
    public TaskLog(Long taskId,String taskCode,Integer taskStatus,Integer taskType,String orgLoc,String targLoc,String barcode,String robotCode,Short exceStatus,String expDesc,Short sort,String expCode,Date startTime,Date endTime,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskStsType.java
@@ -2,6 +2,8 @@
public enum TaskStsType {
    //任务状态
    MISSION_INITIAL("0", "路径规划中"),
    GENERATE_IN("1", "创建入库任务"),
    WCS_EXECUTE_IN("2", "WCS、RCS任务已下发"),
    WCS_CONTAINER_RECEIVE("3", "WCS、RCS容器到达"),
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/TaskType.java
@@ -9,7 +9,6 @@
 */
public enum TaskType {
    TASK_TYPE_INITIAL("0", "路径规划中"),
    TASK_TYPE_IN("1", "入库"),
    TASK_TYPE_EMPTY_IN("10", "空板入库"),
    TASK_TYPE_LOC_MOVE("11", "库格移载"),
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java
@@ -2,19 +2,22 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.manager.controller.params.LocToTaskParams;
import com.vincent.rsf.server.manager.entity.BasContainer;
import com.vincent.rsf.server.manager.entity.Loc;
import com.vincent.rsf.server.manager.entity.WarehouseAreas;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.enums.LocStsType;
import com.vincent.rsf.server.manager.enums.StationTypeEnum;
import com.vincent.rsf.server.manager.enums.TaskStsType;
import com.vincent.rsf.server.manager.enums.TaskType;
import com.vincent.rsf.server.manager.service.LocItemService;
import com.vincent.rsf.server.manager.service.LocService;
import com.vincent.rsf.server.manager.service.TaskService;
import com.vincent.rsf.server.manager.service.impl.BasContainerServiceImpl;
import com.vincent.rsf.server.manager.service.impl.WarehouseAreasServiceImpl;
import com.vincent.rsf.server.system.constant.GlobalConfigCode;
import com.vincent.rsf.server.system.entity.Config;
import com.vincent.rsf.server.system.entity.*;
import com.vincent.rsf.server.system.service.ConfigService;
import com.vincent.rsf.server.system.service.impl.*;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -22,6 +25,7 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import routeR.calculationR.RouteWmsStepFlow;
import java.util.ArrayList;
import java.util.List;
@@ -50,6 +54,24 @@
    private LocItemService locItemService;
    @Autowired
    private BasContainerServiceImpl basContainerService;
    @Autowired
    private TaskPathTemplateServiceImpl taskPathTemplateService;
    @Autowired
    private TaskPathTemplateNodeServiceImpl taskPathTemplateNodeService;
    @Autowired
    private TaskInstanceServiceImpl taskInstanceService;
    @Autowired
    private TaskInstanceNodeServiceImpl taskInstanceNodeService;
    @Autowired
    private SubsystemFlowTemplateServiceImpl subsystemFlowTemplateService;
    @Autowired
    private FlowStepLogServiceImpl flowStepLogService;
    @Autowired
    private FlowStepTemplateServiceImpl flowStepTemplateService;
    @Autowired
    private FlowStepInstanceServiceImpl flowStepInstanceService;
    @Autowired
    private FlowInstanceServiceImpl flowInstanceService;
    /**
     * @author Munch D. Luffy
@@ -65,6 +87,51 @@
            return;
        }
        List<Task> taskList = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskStatus, TaskStsType.MISSION_INITIAL.id));
        if (Objects.isNull(taskList)) {
            return;
        }
        taskList.forEach(task -> {
            String sou = null;
            String end = null;
            if (task.getTaskType().equals(TaskType.TASK_TYPE_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_IN.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_LOC_MOVE.type)) {
                sou = task.getOrgSite();
                Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getTargLoc()));
                end = loc.getAreaId().toString();
            } else if (task.getTaskType().equals(TaskType.TASK_TYPE_OUT.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_MERGE_OUT.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_OUT.type)
                    || task.getTaskType().equals(TaskType.TASK_TYPE_EMPTY_OUT.type)) {
                Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()));
                sou = loc.getAreaId().toString();
                end = task.getTargSite();
            }
            List<TaskPathTemplate> taskPathTemplates = taskPathTemplateService.list(new LambdaQueryWrapper<TaskPathTemplate>().eq(TaskPathTemplate::getSourceType, sou).eq(TaskPathTemplate::getTargetType, end));
            if (Objects.isNull(taskPathTemplates) || taskPathTemplates.isEmpty()) {
                List<TaskPathTemplate> list = taskPathTemplateService.list(new LambdaQueryWrapper<>());
                if (!Cools.isEmpty(list)) {
                    List<String[]> stationList = new ArrayList<>();
                    list.forEach(taskPathTemplate -> {
                        stationList.add(taskPathTemplate.route());
                    });
                    List<Long> longs = RouteWmsStepFlow.routeGet(stationList, sou, end);
                    if (longs != null && !longs.isEmpty()) {
                        TaskPathTemplate taskPathTemplate = new TaskPathTemplate();
                        taskPathTemplate.setTemplateCode(sou+"===>"+end);
                        taskPathTemplate.setTemplateName(sou+"===>"+end);
                        taskPathTemplate.setSourceType(sou);
                        taskPathTemplate.setTargetType(end);
                        taskPathTemplateService.save(taskPathTemplate);
                    }
                    System.out.println("任务:"+task.getTaskCode()+"查询步序为:"+longs);
                }
            }
        });
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/system/entity/TaskPathTemplate.java
@@ -112,6 +112,12 @@
    private Integer timeoutMinutes;
    /**
     * 步序长度
     */
    @ApiModelProperty(value= "步序长度")
    private Integer stepSize;
    /**
     * 最大重试次数
     */
    @ApiModelProperty(value= "最大重试次数")
@@ -251,4 +257,8 @@
        }
    }
    public String[] route(){
        return new String[]{this.sourceType, this.targetType, this.stepSize.toString(), this.id.toString()};
    }
}
rsf-server/src/main/resources/lib/RouteUtils.jar
Binary files differ