|  |  | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.zy.asrs.entity.BasDevp; | 
 |  |  | import com.zy.asrs.entity.WrkMast; | 
 |  |  | import com.zy.asrs.entity.WrkMastSta; | 
 |  |  | import com.zy.asrs.service.BasDevpService; | 
 |  |  | import com.zy.asrs.service.WrkMastService; | 
 |  |  | import com.zy.asrs.entity.*; | 
 |  |  | import com.zy.asrs.service.*; | 
 |  |  | 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; | 
 |  |  | 
 |  |  | @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; | 
 |  |  |     @Autowired | 
 |  |  |     private WrkDetlService wrkDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private LocDetlService locDetlService; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public static final List<Integer> STA_WORK_CU = new ArrayList<Integer>() {{ | 
 |  |  |         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<Integer> STA_WORK_CU_CAR = new ArrayList<Integer>() {{ | 
 |  |  |         add(118);add(120);add(121); | 
 |  |  |     }}; | 
 |  |  |  | 
 |  |  |     public static final List<Integer> STA_WORK_CU_CAR_TWO = new ArrayList<Integer>() {{ | 
 |  |  |         add(120);add(121); | 
 |  |  |     }}; | 
 |  |  |     public static final List<Integer> STA_WORK_CU_CAR_THREE  = new ArrayList<Integer>() {{ | 
 |  |  |         add(118);add(120); | 
 |  |  |     }}; | 
 |  |  |     public static final List<Integer> STA_WORK_CU_CAR_FOUR  = new ArrayList<Integer>() {{ | 
 |  |  |         add(121); | 
 |  |  |     }}; | 
 |  |  |  | 
 |  |  |     public static final List<Integer> STA_WORK_RU = new ArrayList<Integer>() {{ | 
 |  |  |         add(118);add(119);add(120);add(121);add(122);add(123); | 
 |  |  |         add(118);add(120);add(121);add(122);add(123);add(171); | 
 |  |  |     }}; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Scheduled(cron = "0/3 * * * * ? ") | 
 |  |  |     private void execute(){ | 
 |  |  |         for(Integer staNo : STA_WORK_CU){ | 
 |  |  |             BasDevp basDevp = basDevpService.selectById(staNo); | 
 |  |  |             if (basDevp.getWrkNo()!=0){ | 
 |  |  |                 WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo())); | 
 |  |  |                 if (!Cools.isEmpty(wrkMast)){ | 
 |  |  |                     ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp); | 
 |  |  |                     if (result.getCode()==200){ | 
 |  |  |             try{ | 
 |  |  |                 BasDevp basDevp = basDevpService.selectById(staNo); | 
 |  |  |                 if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){ | 
 |  |  |                     if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){ | 
 |  |  |                         if (!basDevp.getLoadingSuper().equals("Y")){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo())); | 
 |  |  |                     if(Cools.isEmpty(wrkMast)){ | 
 |  |  |                         continue; | 
 |  |  |                     }else { | 
 |  |  |                         System.out.println(staNo+"失败!"); | 
 |  |  |                     } | 
 |  |  |                     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<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,13);//3:取放 | 
 |  |  |                             if (result.getCode()==200){ | 
 |  |  |                                 continue; | 
 |  |  |                             }else { | 
 |  |  |                                 System.out.println(staNo+"失败!"); | 
 |  |  |                             } | 
 |  |  |                         } else { | 
 |  |  |                             ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,23);//5:满取 | 
 |  |  |                             if (result.getCode()==200){ | 
 |  |  |                                 continue; | 
 |  |  |                             }else { | 
 |  |  |                                 System.out.println(staNo+"失败!"); | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             }catch (Exception e){ | 
 |  |  |                 log.error("自动补空板STA_WORK_CU处理失败,当前站点号:"+staNo+"异常信息"+e); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         for(Integer staNo : STA_WORK_RU){ | 
 |  |  |             BasDevp basDevp = basDevpService.selectById(staNo); | 
 |  |  |             if (basDevp.getWrkNo()!=0){ | 
 |  |  |                 WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo())); | 
 |  |  |                 if (!Cools.isEmpty(wrkMast)){ | 
 |  |  |                     ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp); | 
 |  |  |                     if (result.getCode()==200){ | 
 |  |  |             try{ | 
 |  |  |                 BasDevp basDevp = basDevpService.selectById(staNo); | 
 |  |  |                 if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getLoadingSuper().equals("Y") && basDevp.getAutoing().equals("Y")){ | 
 |  |  |                     WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo())); | 
 |  |  |                     if (Cools.isEmpty(wrkMast)){ | 
 |  |  |                         continue; | 
 |  |  |                     }else { | 
 |  |  |                         System.out.println(staNo+"失败!"); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     if (wrkMast.getWrkSts()!=2 || wrkMast.getIoType()==10){ | 
 |  |  |                         continue; | 
 |  |  |                     } | 
 |  |  | //                boolean wrkTypeSign = fullKM(wrkMast); | 
 |  |  |  | 
 |  |  |                     if (!Cools.isEmpty(wrkMast)){ | 
 |  |  | //                    if (wrkTypeSign){ | 
 |  |  |                         ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,13); | 
 |  |  |                         if (result.getCode()==200) { | 
 |  |  |                             continue; | 
 |  |  |                         } else { | 
 |  |  |                             System.out.println(staNo+"失败!"); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             }catch (Exception e){ | 
 |  |  |                 log.error("自动补空板STA_WORK_RU处理失败,当前站点号:"+staNo+"异常信息"+e); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Scheduled(cron = "0/3 * * * * ? ") | 
 |  |  |     private void execute2(){ | 
 |  |  |         try{ | 
 |  |  |             for(Integer staNo : STA_WORK_CU){ | 
 |  |  |                 try{ | 
 |  |  |                     BasDevp basDevp = basDevpService.selectById(staNo); | 
 |  |  |                     if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){ | 
 |  |  |                         if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){ | 
 |  |  |                             if (!basDevp.getLoadingSuper().equals("Y")){ | 
 |  |  |                                 continue; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo())); | 
 |  |  |                         if(Cools.isEmpty(wrkMast)){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         if (wrkMast.getIoType()!=101 && wrkMast.getIoType()!=103){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         if (wrkMast.getStaNo()<118 || wrkMast.getStaNo()>121){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         int count = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", wrkMast.getStaNo()).or().eq("sta_end", wrkMast.getStaNo())); | 
 |  |  |                         if (count!=0){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         int countStart = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", staNo).or().eq("sta_end", staNo).or().eq("wrk_no", wrkMast.getWrkNo())); | 
 |  |  |                         if (countStart!=0){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         BasDevp basDevpEnd = basDevpService.selectById(wrkMast.getStaNo()); | 
 |  |  |                         if (!basDevpEnd.getAutoing().equals("Y") || basDevpEnd.getWrkNo()!=0 || basDevpEnd.getLoading().equals("Y") || basDevpEnd.getReportSign()!=0){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         if (basDevpEnd.getDevNo()>117 && basDevpEnd.getDevNo()<124){ | 
 |  |  |                             if (basDevpEnd.getLoadingSuper().equals("Y")){ | 
 |  |  |                                 continue; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){ | 
 |  |  |                             RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","oneSign")); | 
 |  |  |                             if (rgvOneSign.getRgvOneSign()==1){ | 
 |  |  |                                 continue; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         if (wrkMast.getIoType()!=101){ | 
 |  |  |                             List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); | 
 |  |  |                             if (!Cools.isEmpty(wrkDetls) && !wrkDetls.isEmpty()){ | 
 |  |  |                                 String origin = wrkDetls.get(0).getOrigin(); | 
 |  |  |                                 if (origin.equals("1")){ | 
 |  |  |                                     if (!STA_WORK_CU_CAR_FOUR.contains(wrkMast.getStaNo())){ | 
 |  |  |                                         continue; | 
 |  |  |                                     } | 
 |  |  |                                 }else { | 
 |  |  |                                     if (!STA_WORK_CU_CAR_THREE.contains(wrkMast.getStaNo())){ | 
 |  |  |                                         continue; | 
 |  |  |                                     } | 
 |  |  |                                 } | 
 |  |  |                             }else { | 
 |  |  |                                 log.error("未查询到工作明细"); | 
 |  |  |                                 continue; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  | // | 
 |  |  |                         boolean wrkTypeSign = fullKM(wrkMast); | 
 |  |  |                         if (!Cools.isEmpty(wrkMast)){ | 
 |  |  |                             if (wrkTypeSign) { | 
 |  |  |                                 ReturnT<String> result = wrkMastStaInItHandler.start(wrkMast,basDevp,13);//3:取放 | 
 |  |  |                                 if (result.getCode()==200){ | 
 |  |  |                                     continue; | 
 |  |  |                                 }else { | 
 |  |  |                                     System.out.println(staNo+"失败!"); | 
 |  |  |                                 } | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 }catch (Exception e){ | 
 |  |  |                     log.error("STA_WORK_CU处理失败,当前站点号:"+staNo+"异常信息"+e); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             for(Integer staNo : STA_WORK_CU){ | 
 |  |  |                 try{ | 
 |  |  |                     BasDevp basDevp = basDevpService.selectById(staNo); | 
 |  |  |                     if (basDevp.getWrkNo()!=0 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y")){ | 
 |  |  |                         if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){ | 
 |  |  |                             if (!basDevp.getLoadingSuper().equals("Y")){ | 
 |  |  |                                 continue; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         List<Integer> STA_WORK_CU_CAR_NOW = STA_WORK_CU_CAR; | 
 |  |  |                         WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", basDevp.getWrkNo())); | 
 |  |  |                         if(Cools.isEmpty(wrkMast)){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         if (wrkMast.getIoType()!=101 && wrkMast.getIoType()!=103){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         if (wrkMast.getWrkSts()!=14 && wrkMast.getWrkSts()!=15){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         Integer wrkMastStaNo = wrkMast.getStaNo(); | 
 |  |  |                         if (wrkMastStaNo<118 || wrkMastStaNo>121){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         String origin = null; | 
 |  |  |                         boolean sign = false; | 
 |  |  |                         boolean sign101 = false; | 
 |  |  |                         if (wrkMast.getIoType()!=101){ | 
 |  |  |                             List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); | 
 |  |  |                             if (!Cools.isEmpty(wrkDetls) && !wrkDetls.isEmpty()){ | 
 |  |  |                                 origin = wrkDetls.get(0).getOrigin(); | 
 |  |  |                                 if (origin.equals("1")){ | 
 |  |  |                                     if (!STA_WORK_CU_CAR_FOUR.contains(wrkMastStaNo)){ | 
 |  |  |                                         sign = true; | 
 |  |  |                                     } | 
 |  |  |                                 }else { | 
 |  |  |                                     if (!STA_WORK_CU_CAR_THREE.contains(wrkMastStaNo)){ | 
 |  |  |                                         sign = true; | 
 |  |  |                                     } | 
 |  |  |                                 } | 
 |  |  |                             }else { | 
 |  |  |                                 log.error("未查询到工作明细"); | 
 |  |  |                                 continue; | 
 |  |  |                             } | 
 |  |  |                         }else { | 
 |  |  |                             sign101 = true; | 
 |  |  |                         } | 
 |  |  |                         int count = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", wrkMastStaNo).or().eq("sta_end", wrkMastStaNo)); | 
 |  |  |                         if (count!=0){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         int countStart = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", staNo).or().eq("sta_end", staNo).or().eq("wrk_no", wrkMast.getWrkNo())); | 
 |  |  |                         if (countStart!=0){ | 
 |  |  |                             continue; | 
 |  |  |                         } | 
 |  |  |                         RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().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 (Cools.isEmpty(basDevpEnd)){ | 
 |  |  |                             sign = true; | 
 |  |  |                         } | 
 |  |  |                         if (!sign && basDevpEnd.getDevNo()>117 && basDevpEnd.getDevNo()<124){ | 
 |  |  |                             if (basDevpEnd.getLoadingSuper().equals("Y")){ | 
 |  |  |                                 sign = true; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                         if (sign || !basDevpEnd.getAutoing().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; | 
 |  |  |  | 
 |  |  |                                 if (sign && !sign101){ | 
 |  |  |                                     if (Cools.isEmpty(origin)){ | 
 |  |  |                                         continue; | 
 |  |  |                                     } | 
 |  |  |                                     if (origin.equals("1")){ | 
 |  |  |                                         if (!STA_WORK_CU_CAR_FOUR.contains(staNoOther)){ | 
 |  |  |                                             continue; | 
 |  |  |                                         } | 
 |  |  |                                     }else { | 
 |  |  |                                         if (!STA_WORK_CU_CAR_THREE.contains(staNoOther)){ | 
 |  |  |                                             continue; | 
 |  |  |                                         } | 
 |  |  |                                     } | 
 |  |  |                                 } | 
 |  |  |  | 
 |  |  |                                 int countOther = wrkMastStaService.selectCount(new EntityWrapper<WrkMastSta>().eq("sta_start", staNoOther).or().eq("sta_end", staNoOther)); | 
 |  |  |                                 if (countOther!=0){ | 
 |  |  |                                     continue; | 
 |  |  |                                 } | 
 |  |  |                                 BasDevp basDevpOther = basDevpService.selectById(staNoOther); | 
 |  |  |                                 if (!basDevpOther.getAutoing().equals("Y") || basDevpOther.getWrkNo()!=0 || basDevpOther.getLoading().equals("Y") || basDevpOther.getReportSign()!=0) { | 
 |  |  |                                     continue; | 
 |  |  |                                 } | 
 |  |  |                                 if (basDevpOther.getDevNo()>117 && basDevpOther.getDevNo()<124){ | 
 |  |  |                                     if (basDevpOther.getLoadingSuper().equals("Y")){ | 
 |  |  |                                         continue; | 
 |  |  |                                     } | 
 |  |  |                                 } | 
 |  |  |                                 wrkMast.setStaNo(staNoOther); | 
 |  |  |                                 wrkMastService.updateById(wrkMast); | 
 |  |  |                                 log.info("工作号"+wrkMast.getWrkNo()+"修改目标站为:"+staNoOther+";原目标站为:"+wrkMastStaNo); | 
 |  |  |                                 return; | 
 |  |  |                             } | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 }catch (Exception e){ | 
 |  |  |                     log.error("STA_WORK_CU处理失败,当前站点号:"+staNo+"异常信息"+e); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }catch (Exception e){ | 
 |  |  |             log.error("目标为拆垛位置的任务生成小车工作档案失败!!"+e); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public boolean fullKM(WrkMast wrkMast){ | 
 |  |  |         if (wrkMast.getIoType()!=10 && wrkMast.getIoType()!=110){ | 
 |  |  |             return true; | 
 |  |  |         } | 
 |  |  |         return false; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |