| | |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.zy.asrs.entity.BasCrnp; |
| | | import com.zy.asrs.entity.BasDevp; |
| | | import com.zy.asrs.entity.WrkMast; |
| | | import com.zy.asrs.entity.WrkMastSplitTwin; |
| | | import com.zy.asrs.service.BasCrnpService; |
| | | import com.zy.asrs.service.BasDevpService; |
| | | import com.zy.asrs.service.WrkMastService; |
| | | import com.zy.asrs.service.WrkMastSplitTwinService; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.task.handler.WrkMastSplitTwinInItHandler; |
| | | import com.zy.common.model.enums.CrnStnType; |
| | | import com.zy.common.model.enums.WrkMastExecuteType; |
| | |
| | | private BasDevpService basDevpService; |
| | | @Autowired |
| | | private WrkMastService wrkMastService; |
| | | @Autowired |
| | | private RgvOneSignService rgvOneSignService; |
| | | |
| | | public static final List<Integer> SplitTwin_CRN_NO = new ArrayList<Integer>() {{ |
| | | add(3); |
| | |
| | | break; |
| | | }else { |
| | | for (WrkMast wrkMast:wrkMasts){ |
| | | if (wrkMast.getStaNo()>309){ |
| | | int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 110).gt("sta_no", 309).lt("sta_no", 314).gt("wrk_sts",11L)); |
| | | if (wrkCount>=12){ |
| | | continue; |
| | | } |
| | | RgvOneSign bigTurn = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","bigTurn")); |
| | | if (Cools.isEmpty(bigTurn)){ |
| | | continue; |
| | | } |
| | | if (bigTurn.getRgvOneSign()>13){ |
| | | continue; |
| | | } |
| | | BasDevp basDevp = basDevpService.selectById(212); |
| | | if (basDevp.getLoading().equals("Y") |
| | | || !basDevp.getAutoing().equals("Y") |
| | | || (!Cools.isEmpty(basDevp.getWrkNo()) && basDevp.getWrkNo()!=0) ){ |
| | | continue; |
| | | } |
| | | } |
| | | wrkMastSplitTwinInItHandler.start(wrkMastSplitTwin,wrkMast,2); |
| | | break; |
| | | } |
| | |
| | | try { |
| | | BasCrnp basCrnp = basCrnpService.selectById(crnNo); |
| | | if (!Cools.isEmpty(basCrnp)) { |
| | | if (basCrnp.getWrkNo() == 0 && basCrnp.getCrnSts() != 3) { |
| | | if (basCrnp.getWrkNo() != 0 || basCrnp.getWrkNoTwo()!=0 || basCrnp.getCrnSts() != 3) { |
| | | continue; |
| | | } |
| | | if (basCrnp.getCrnStatusOne() == 20 && basCrnp.getCrnStatusTwo() == 20) {//堆垛机工位1有物待作业 工位2有物待作业 |
| | |
| | | } |
| | | } |
| | | |
| | | @Scheduled(cron = "0/3 * * * * ? ") |
| | | private void executeThree() { |
| | | for (Integer crnNo : SplitTwin_CRN_NO) { |
| | | try { |
| | | BasCrnp basCrnp = basCrnpService.selectById(crnNo); |
| | | if (!Cools.isEmpty(basCrnp)) { |
| | | if (basCrnp.getWrkNo() != 0 || basCrnp.getWrkNoTwo()!=0 || basCrnp.getCrnSts() != 3) { |
| | | continue; |
| | | } |
| | | if (basCrnp.getCrnStatusOne() == 0 && basCrnp.getCrnStatusTwo() == 20) {//堆垛机工位1空闲 工位2有物待作业 |
| | | List<WrkMastSplitTwin> wrkMastSplitTwinListTwo = wrkMastSplitTwinService.getWrkMastSplitTwinNoComplete(crnNo, 2, null, null, 4); |
| | | if (wrkMastSplitTwinListTwo.isEmpty()){ |
| | | continue; |
| | | } |
| | | if (wrkMastSplitTwinListTwo.size() > 1){ |
| | | log.error("前后双工位拆分堆垛机执行作业生成,堆垛机号={},异常信息={},工位号={}",crnNo,"不存在或者存在多笔可执行作业,请维护执行作业!!!",2); |
| | | continue; |
| | | } |
| | | WrkMastSplitTwin wrkMastSplitTwinTwo = wrkMastSplitTwinListTwo.get(0); |
| | | if (wrkMastSplitTwinTwo.getWrkType()!=1 || wrkMastSplitTwinTwo.getWrkSts()!=2){//工作类型 0: 未知 1: 取 2: 放 3: 取放 4: 完成 //工作状态 0: 初始 1: 等待取货完成 2: 取货完成待作业 3: 等待放货完成 4: 完成 |
| | | continue; |
| | | } |
| | | wrkMastSplitTwinInItHandler.start(wrkMastSplitTwinTwo); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("前后双工位拆分堆垛机执行作业生成失败,堆垛机号={},异常原因={}", crnNo, e.getMessage()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |