package com.zy.asrs.task.handler; import com.zy.asrs.entity.Task; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.entity.rcs.RcsTaskSubmit; import com.zy.asrs.entity.rcs.RcsTaskTargetRoute; import com.zy.asrs.service.RcsService; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @Slf4j @Service @Transactional public class AGVTaskReportHandler extends AbstractHandler { @Resource private RcsService rcsService; public ReturnT start(Task task) { String SourceStaNoType = "SITE"; String TargetStaNoType = "SITE"; //给agv下发的任务类型,默认站到站 //任务类型 4.站到区域 if(task.getIoType()==4){ TargetStaNoType = "ZONE"; //任务类型 5.区域到站 }else if(task.getIoType()==5){ SourceStaNoType = "ZONE"; } // 下发给RCS RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit(); rcsTaskSubmit.setRobotTaskCode(task.getTaskNo()); rcsTaskSubmit.setInitPriority(10); //默认10 List targetRouteList = new ArrayList<>(); RcsTaskTargetRoute startRoute = new RcsTaskTargetRoute(); startRoute.setSeq(0); startRoute.setType(SourceStaNoType); startRoute.setCode(task.getSourceStaNo()); startRoute.setOperation("COLLECT"); targetRouteList.add(startRoute); RcsTaskTargetRoute endRoute = new RcsTaskTargetRoute(); endRoute.setSeq(1); endRoute.setType(TargetStaNoType); endRoute.setCode(task.getStaNo()); endRoute.setOperation("DELIVERY"); targetRouteList.add(endRoute); rcsTaskSubmit.setTargetRoute(targetRouteList); // 转发给海康或华晓RCS int success = rcsService.submitTask(rcsTaskSubmit, task.getPltType()); if (success == 0){ return FAIL; } return SUCCESS; } }