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 = 100000;
|
|
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<String, List<TaskPosDto>> 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<TaskPosDto> 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;
|
}
|
|
}
|