package com.zy.asrs.task; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.zy.asrs.entity.BasDevp; import com.zy.asrs.entity.RgvOneSign; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.entity.WrkMastSta; import com.zy.asrs.service.BasDevpService; import com.zy.asrs.service.RgvOneSignService; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.service.WrkMastStaService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.WrkMastStaInItHandler; 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 WrkMastStaInItScheduler { private static final Logger log = LoggerFactory.getLogger(WorkMastScheduler.class); @Autowired private WrkMastStaInItHandler wrkMastStaInItHandler; @Autowired private BasDevpService basDevpService; @Autowired private WrkMastService wrkMastService; @Autowired private RgvOneSignService rgvOneSignService; @Autowired private WrkMastStaService wrkMastStaService; public static final List STA_WORK_CU = new ArrayList() {{ add(101);add(102);add(104);add(105);add(107);add(108);add(110);add(111);add(113);add(114);add(116);add(117); }}; public static final List STA_WORK_CU_CAR = new ArrayList() {{ add(118);add(119);add(120);add(121); }}; public static final List STA_WORK_CU_CAR_TWO = new ArrayList() {{ add(120);add(121); }}; public static final List STA_WORK_RU = new ArrayList() {{ add(118);add(119);add(120);add(121);add(122);add(123); }}; @Scheduled(cron = "0/3 * * * * ? ") private void execute(){ for(Integer staNo : STA_WORK_CU){ BasDevp basDevp = basDevpService.selectById(staNo); if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper().eq("wrk_no", basDevp.getWrkNo())); if(Cools.isEmpty(wrkMast)){ continue; } if (wrkMast.getIoType()<100 || wrkMast.getIoType()==110){ if (!wrkMast.getStaNo().equals(122)){ continue; } } if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){ continue; } if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119 || wrkMast.getStaNo()==120 || wrkMast.getStaNo()==121){ continue; } boolean wrkTypeSign = fullKM(wrkMast); if (!Cools.isEmpty(wrkMast)){ if (wrkTypeSign) { ReturnT result = wrkMastStaInItHandler.start(wrkMast,basDevp,13);//3:取放 if (result.getCode()==200){ continue; }else { System.out.println(staNo+"失败!"); } } else { ReturnT result = wrkMastStaInItHandler.start(wrkMast,basDevp,23);//5:满取 if (result.getCode()==200){ continue; }else { System.out.println(staNo+"失败!"); } } } } } for(Integer staNo : STA_WORK_RU){ BasDevp basDevp = basDevpService.selectById(staNo); if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper().eq("wrk_no", basDevp.getWrkNo())); if (Cools.isEmpty(wrkMast)){ continue; } if (wrkMast.getWrkSts()!=2 || wrkMast.getIoType()==10){ continue; } // boolean wrkTypeSign = fullKM(wrkMast); if (!Cools.isEmpty(wrkMast)){ // if (wrkTypeSign){ ReturnT result = wrkMastStaInItHandler.start(wrkMast,basDevp,13); if (result.getCode()==200) { continue; } else { System.out.println(staNo+"失败!"); } } } } } @Scheduled(cron = "0/3 * * * * ? ") private void execute2(){ try{ for(Integer staNo : STA_WORK_CU){ BasDevp basDevp = basDevpService.selectById(staNo); if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper().eq("wrk_no", basDevp.getWrkNo())); if(Cools.isEmpty(wrkMast)){ continue; } if (wrkMast.getIoType()!=101 && wrkMast.getIoType()!=104){ continue; } if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){ continue; } if (wrkMast.getStaNo()<118 || wrkMast.getStaNo()>121){ continue; } int count = wrkMastStaService.selectCount(new EntityWrapper().eq("sta_start", wrkMast.getStaNo()).or().eq("sta_end", wrkMast.getStaNo())); if (count!=0){ continue; } BasDevp basDevpEnd = basDevpService.selectById(wrkMast.getStaNo()); if (!basDevpEnd.getLoading().equals("Y") || basDevpEnd.getWrkNo()!=0 || basDevpEnd.getLoading().equals("Y") || basDevpEnd.getReportSign()!=0){ continue; } if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){ RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper().eq("rgv_one_type","oneSign")); if (rgvOneSign.getRgvOneSign()==1){ continue; } } // boolean wrkTypeSign = fullKM(wrkMast); if (!Cools.isEmpty(wrkMast)){ if (wrkTypeSign) { ReturnT result = wrkMastStaInItHandler.start(wrkMast,basDevp,13);//3:取放 if (result.getCode()==200){ continue; }else { System.out.println(staNo+"失败!"); } } } } } for(Integer staNo : STA_WORK_CU){ BasDevp basDevp = basDevpService.selectById(staNo); if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){ List STA_WORK_CU_CAR_NOW = STA_WORK_CU_CAR; WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper().eq("wrk_no", basDevp.getWrkNo())); if(Cools.isEmpty(wrkMast)){ continue; } if (wrkMast.getIoType()!=101 && wrkMast.getIoType()!=104){ continue; } if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){ continue; } Integer wrkMastStaNo = wrkMast.getStaNo(); if (wrkMastStaNo<118 || wrkMastStaNo>121){ continue; } int count = wrkMastStaService.selectCount(new EntityWrapper().eq("sta_start", wrkMastStaNo).or().eq("sta_end", wrkMastStaNo)); if (count!=0){ continue; } RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper().eq("rgv_one_type","oneSign")); if (rgvOneSign.getRgvOneSign()==1){ STA_WORK_CU_CAR_NOW = STA_WORK_CU_CAR_TWO; } BasDevp basDevpEnd = basDevpService.selectById(wrkMastStaNo); if (!basDevpEnd.getLoading().equals("Y") || basDevpEnd.getWrkNo()!=0 || basDevpEnd.getLoading().equals("Y") || basDevpEnd.getReportSign()!=0) { for (Integer staNoOther : STA_WORK_CU_CAR_NOW) { if (staNoOther.equals(wrkMastStaNo)) continue; int countOther = wrkMastStaService.selectCount(new EntityWrapper().eq("sta_start", staNoOther).or().eq("sta_end", staNoOther)); if (countOther!=0){ continue; } BasDevp basDevpOther = basDevpService.selectById(staNoOther); if (!basDevpOther.getLoading().equals("Y") || basDevpOther.getWrkNo()!=0 || basDevpOther.getLoading().equals("Y") || basDevpOther.getReportSign()!=0) { continue; } wrkMast.setStaNo(staNoOther); wrkMastService.updateById(wrkMast); log.info("工作号"+wrkMast.getWrkNo()+"修改目标站为:"+staNoOther+";原目标站为:"+wrkMastStaNo); return; } } } } }catch (Exception e){ log.error("目标为拆垛位置的任务生成小车工作档案失败!!"+e); } } public boolean fullKM(WrkMast wrkMast){ if (wrkMast.getIoType()!=10 && wrkMast.getIoType()!=110){ return true; } return false; } }