package com.zy.asrs.task.handler; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.entity.rcs.RcsReturn; import com.zy.asrs.entity.rcs.RcsTaskSubmit; import com.zy.asrs.entity.rcs.RcsTaskTargetRoute; import com.zy.asrs.service.RcsService; import com.zy.asrs.service.WrkMastService; 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.Date; import java.util.List; /** * @author pang.jiabao * @description 济南二机床刀具库相关定时任务 * @createDate 2025/12/10 14:25 */ @Slf4j @Service public class JlerHandler { @Resource private WrkMastService wrkMastService; @Resource private RcsService rcsService; @Transactional public void callAgvToWarehouse(WrkMast wrkMast) { // 下发给RCS RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit(); // 模板名 rcsTaskSubmit.setTaskType("CTU1"); rcsTaskSubmit.setRobotTaskCode(String.valueOf(new Date().getTime())); rcsTaskSubmit.setInitPriority(10); //默认10 List targetRouteList = new ArrayList<>(); RcsTaskTargetRoute startRoute = new RcsTaskTargetRoute(); startRoute.setSeq(0); startRoute.setCode("106"); startRoute.setOperation("COLLECT"); startRoute.setType("SITE"); targetRouteList.add(startRoute); RcsTaskTargetRoute endRoute = new RcsTaskTargetRoute(); endRoute.setSeq(1); endRoute.setCode(wrkMast.getLocNo()); endRoute.setOperation("DELIVERY"); endRoute.setType("STORAGE"); targetRouteList.add(endRoute); rcsTaskSubmit.setTargetRoute(targetRouteList); // 转发给海康或华晓RCS RcsReturn rcsReturn = rcsService.submitTask(rcsTaskSubmit, 1); if (rcsReturn.getCode().equals("SUCCESS")) { wrkMast.setWrkSts(3L); wrkMast.setModiTime(new Date()); wrkMast.setTaskNo(rcsTaskSubmit.getRobotTaskCode()); wrkMastService.updateById(wrkMast); log.info("入库给料箱机器人发送命令成功,工作号:{},任务号:{}",wrkMast.getWrkNo(),rcsTaskSubmit.getRobotTaskCode()); } else { log.error("入库给料箱机器人发送命令失败,工作号:{},任务号:{}",wrkMast.getWrkNo(),rcsTaskSubmit.getRobotTaskCode()); } } }