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 positionCodePath = new ArrayList(); @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().eq(column, value)); if (record != null && record.getAgvLocNo() != null) { return record.getAgvLocNo(); } // 查询不到就返回原值,但必须转换成 String return String.valueOf(value); } }