package com.zy.asrs.entity.param;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.core.common.SnowflakeIdWorker;
|
import com.core.common.SpringUtils;
|
import com.zy.asrs.entity.BasAgvLocNo;
|
import com.zy.asrs.entity.BasAgvMast;
|
import com.zy.asrs.service.BasAgvLocNoService;
|
import lombok.Data;
|
|
import java.util.ArrayList;
|
|
/*
|
* Created by Monkey D. Luffy on 2025.09.09
|
* */
|
@Data
|
public class AgvTaskAssignmentParam {
|
|
private String reqCode;
|
private String taskCode;
|
private String taskTyp = "cs";
|
private String ctnrTyp = "1";
|
private ArrayList<PositionCodePathClass> positionCodePath = new ArrayList<PositionCodePathClass>();
|
|
@Data
|
public static class PositionCodePathClass {
|
private String positionCode;
|
private String type = "05";//放置位
|
}
|
|
public AgvTaskAssignmentParam() {
|
|
}
|
public AgvTaskAssignmentParam(BasAgvMast basAgvMast) {
|
switch (basAgvMast.getIoType()){
|
case 0:
|
getAgvTaskAssignmentParam0(basAgvMast);
|
if(basAgvMast.getFloorNo() == 1){
|
taskTyp = "1FQ3";
|
|
}else if(basAgvMast.getFloorNo() == 2){
|
taskTyp = "2FRK";
|
}else{
|
taskTyp = "4FRK";
|
}
|
ctnrTyp = "1";
|
return;
|
case 1:
|
getAgvTaskAssignmentParam1(basAgvMast);
|
taskTyp = basAgvMast.getDevpId()==1?"1FYK":"";
|
ctnrTyp = "1";
|
return;
|
case 2:
|
getAgvTaskAssignmentParam2(basAgvMast);
|
if(basAgvMast.getFloorNo() == 1){
|
taskTyp = "1FQ1";
|
}else if(basAgvMast.getFloorNo() == 2){
|
taskTyp = "2FCK";
|
}else{
|
taskTyp = "4FCK";
|
}
|
ctnrTyp = "1";
|
return;
|
case 3:
|
getAgvTaskAssignmentParam3(basAgvMast);
|
// taskTyp = "1FQ4";
|
ctnrTyp = "1";
|
return;
|
default:
|
return;
|
}
|
|
}
|
|
public void getAgvTaskAssignmentParam0(BasAgvMast basAgvMast) {
|
BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
|
this.reqCode = basAgvMast.getTaskNo() + "-" + basAgvMast.getTimestamp();
|
this.taskCode = basAgvMast.getTaskNo() + "-" + basAgvMast.getTimestamp();
|
String sourceAgvLoc = getAgvLocNoOrDefault(basAgvLocNoService, "loc_no", basAgvMast.getSourceLocNo());
|
PositionCodePathClass sou = new PositionCodePathClass();
|
sou.setPositionCode(sourceAgvLoc);
|
sou.setType(basAgvMast.getFloorNo()!=1?"00":"05");
|
this.positionCodePath.add(sou);
|
String endAgvLoc = getAgvLocNoOrDefault(basAgvLocNoService, "sta_no", basAgvMast.getStaNo());
|
PositionCodePathClass end = new PositionCodePathClass();
|
end.setType(basAgvMast.getFloorNo()!=1?"00":"05");
|
end.setPositionCode(endAgvLoc);
|
this.positionCodePath.add(end);
|
}
|
|
public void getAgvTaskAssignmentParam1(BasAgvMast basAgvMast) {
|
BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
|
this.reqCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
|
this.taskCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
|
String agvLocSou = getAgvLocNoOrDefault(basAgvLocNoService, "loc_no", basAgvMast.getSourceLocNo());
|
PositionCodePathClass sou = new PositionCodePathClass();
|
sou.setPositionCode(agvLocSou);
|
sou.setType(basAgvMast.getFloorNo()!=1?"00":"05");
|
this.positionCodePath.add(sou);
|
String agvLocEnd = getAgvLocNoOrDefault(basAgvLocNoService, "loc_no", basAgvMast.getLocNo());
|
PositionCodePathClass end = new PositionCodePathClass();
|
end.setType(basAgvMast.getFloorNo()!=1?"00":"05");
|
end.setPositionCode(agvLocEnd);
|
this.positionCodePath.add(end);
|
}
|
|
public void getAgvTaskAssignmentParam2(BasAgvMast basAgvMast) {
|
BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
|
this.reqCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
|
this.taskCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
|
String agvLocSou = getAgvLocNoOrDefault(basAgvLocNoService, "sta_no", basAgvMast.getSourceStaNo());
|
PositionCodePathClass sou = new PositionCodePathClass();
|
sou.setPositionCode(agvLocSou);
|
sou.setType(basAgvMast.getFloorNo()!=1?"00":"05");
|
this.positionCodePath.add(sou);
|
String agvLocEnd = getAgvLocNoOrDefault(basAgvLocNoService, "loc_no", basAgvMast.getLocNo());
|
PositionCodePathClass end = new PositionCodePathClass();
|
end.setType(basAgvMast.getFloorNo()!=1?"00":"05");
|
end.setPositionCode(agvLocEnd);
|
this.positionCodePath.add(end);
|
}
|
|
public void getAgvTaskAssignmentParam3(BasAgvMast basAgvMast) {
|
BasAgvLocNoService basAgvLocNoService = SpringUtils.getBean(BasAgvLocNoService.class);
|
this.reqCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
|
this.taskCode = basAgvMast.getTaskNo()+"-"+basAgvMast.getTimestamp();
|
String agvLocSou = getAgvLocNoOrDefault(basAgvLocNoService, "sta_no", basAgvMast.getSourceStaNo());
|
PositionCodePathClass sou = new PositionCodePathClass();
|
sou.setPositionCode(agvLocSou);
|
sou.setType(basAgvMast.getFloorNo()!=1?"00":"05");
|
this.positionCodePath.add(sou);
|
String agvLocEnd = getAgvLocNoOrDefault(basAgvLocNoService, "sta_no", basAgvMast.getStaNo());
|
PositionCodePathClass end = new PositionCodePathClass();
|
end.setType(basAgvMast.getFloorNo()!=1?"00":"05");
|
end.setPositionCode(agvLocEnd);
|
this.positionCodePath.add(end);
|
}
|
|
|
private String getAgvLocNoOrDefault(BasAgvLocNoService service, String column, Object value) {
|
if (value == null) {
|
return null;
|
}
|
BasAgvLocNo record = service.selectOne(new EntityWrapper<BasAgvLocNo>().eq(column, value));
|
|
if (record != null && record.getAgvLocNo() != null) {
|
return record.getAgvLocNo();
|
}
|
|
// 查询不到就返回原值,但必须转换成 String
|
return String.valueOf(value);
|
}
|
|
|
}
|