package com.zy.asrs.task; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.zy.asrs.entity.*; import com.zy.asrs.service.*; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.WrkMastCrnHandler; import com.zy.asrs.task.handler.WrkMastStaInItHandler; import com.zy.asrs.utils.Utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; /** * Created by Monkey D. Luffy on 2023.07.25 * 亳州煜星..............以下.............亳州煜星.............左右双工位堆垛机执行任务生成 */ @Component public class WrkMastCrnScheduler { private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class); @Autowired private WrkMastCrnHandler wrkMastCrnHandler; @Autowired private BasDevpService basDevpService; @Autowired private WrkMastService wrkMastService; @Autowired private RgvOneSignService rgvOneSignService; @Autowired private WrkMastStaService wrkMastStaService; @Autowired private WrkDetlService wrkDetlService; @Autowired private LocDetlService locDetlService; @Autowired private WrkMastCrnService wrkMastCrnService; public static final List CRN_WORK_RU = new ArrayList() {{ add(153);add(145); }}; public static final List CRN_WORK_CU = new ArrayList() {{ add(100);add(148); }}; @Scheduled(cron = "0/3 * * * * ? ") private void execute(){ try{ for(Integer staNo : CRN_WORK_RU){ List wrkMastCrnList = wrkMastCrnService.selectList(new EntityWrapper().eq("sta_no", staNo)); if (Cools.isEmpty(wrkMastCrnList)){ BasDevp basDevp = basDevpService.selectById(staNo); if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y") && basDevp.getInEnable().equals("Y")){ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper().eq("wrk_no", basDevp.getWrkNo())); if(Cools.isEmpty(wrkMast)){ continue; } if (wrkMast.getWrkSts()!=2){ continue; } WrkMastCrn wrkMastCrn = wrkMastCrnService.selectOne(new EntityWrapper().eq("wrk_no", wrkMast.getWrkNo())); if (Cools.isEmpty(wrkMastCrn)){ BasDevp basDevpOther = basDevpService.selectById(staNoOther(staNo)); if (basDevpOther.getWrkNo()!=0 && basDevpOther.getLoading().equals("Y") && basDevpOther.getAutoing().equals("Y") && basDevpOther.getInEnable().equals("Y")){ WrkMast wrkMastOther = wrkMastService.selectOne(new EntityWrapper().eq("wrk_no", basDevpOther.getWrkNo())); if(Cools.isEmpty(wrkMastOther)){ continue; } if (wrkMastOther.getWrkSts()!=2){ continue; } if (!Cools.isEmpty(wrkMast)){ ReturnT result = wrkMastCrnHandler.start(wrkMast,wrkMastOther); if (result.getCode()!=200){ System.out.println(staNo+"失败!"); } } } } } } } }catch (Exception e){ log.error("左右双工位堆垛机执行任务生成====》入库任务生成异常:"+e.getMessage()); } } @Scheduled(cron = "0/3 * * * * ? ") private void execute2(){ for(Integer staNo : CRN_WORK_CU) { List wrkMastCrnList = wrkMastCrnService.selectList(new EntityWrapper().eq("source_sta_no",staNo)); if (Cools.isEmpty(wrkMastCrnList)){ List wrkMasts = wrkMastService.selectList(new EntityWrapper() .eq("source_sta_no", staNo).eq("wrk_sts", 11L) .orderBy("io_pri",false)); for (WrkMast wrkMast:wrkMasts){ if (wrkMast.getIoType()==101){ BasDevp basDevp = basDevpService.selectById(119); if (basDevp.getLoading().equals("Y") || !basDevp.getAutoing().equals("Y") || (!Cools.isEmpty(basDevp.getWrkNo()) && basDevp.getWrkNo()!=0) ){ continue; } int loadIngCount = basDevpService.selectCount(new EntityWrapper().ge("dev_no", 103).le("dev_no", 121).eq("loading", "Y")); if (loadIngCount>8){ continue; } } try{ int row = Utils.getRow(wrkMast.getSourceLocNo()); if (row == wrkMast.getCrnNo()*4 || row == wrkMast.getCrnNo()*4-3){ WrkMastCrn wrkMastCrn = wrkMastCrnService.selectOne(new EntityWrapper().eq("wrk_no", wrkMast.getWrkNo())); if (Cools.isEmpty(wrkMastCrn)){ ReturnT result = wrkMastCrnHandler.start(wrkMast); if (result.isSuccess()) { break; } } } }catch (Exception e){ log.error("左右双工位堆垛机执行任务生成====》出库任务生成异常:"+e.getMessage()); } } } } } public Integer staNoOther(Integer staNo){ return staNo-1; } }