package com.zy.acs.manager.core.domain; import com.zy.acs.framework.common.Cools; import com.zy.acs.manager.manager.entity.Code; import com.zy.acs.manager.manager.entity.Task; import lombok.Data; import java.util.*; /** * Created by vincent on 2023/6/19 */ @Data public class TaskPosDto { public static final Integer INF = 999999999; private Long taskId; private Long codeId; private Double[] xy = new Double[2]; private PosType posType; public TaskPosDto(Long taskId, Double[] xy, PosType posType) { this.taskId = taskId; this.xy = xy; this.posType = posType; } public enum PosType { MOVE(0), ORI_LOC(0), ORI_STA(0), DEST_LOC(INF), DEST_STA(INF), TO_CHARGE(INF * 10), TO_STANDBY(INF * 10), ; public int compOffset; PosType(int compOffset) { this.compOffset = compOffset; } } public static void packagePosGroup(Map> groups, Task task, Code code, PosType posType, String sameGroupXy) { String key = ("Y".equals(sameGroupXy) ? code.getY() : code.getX()) + posType.toString(); Long taskId = task == null ? 0L : task.getId(); TaskPosDto taskPosDto = new TaskPosDto(taskId, new Double[]{code.getX(), code.getY()}, posType); taskPosDto.setCodeId(code.getId()); if (groups.containsKey(key)) { groups.get(key).add(taskPosDto); } else { List list = new ArrayList<>(); list.add(taskPosDto); groups.put(key, list); } } public Double getFirstWeight(String sameGroupXy) { return ("Y".equals(sameGroupXy) ? this.getXy()[1] : this.getXy()[0]); } public Double getSecondWeight(String sameGroupXy) { return ("Y".equals(sameGroupXy) ? this.getXy()[0] : this.getXy()[1]); } public static PosType queryPosType(String el) { if (Cools.isEmpty(el)) { return null; } for (PosType posType : PosType.values()) { if (posType.toString().equals(el)) { return posType; } } return null; } }