package com.zy.asrs.task; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.zy.asrs.entity.BasCrnp; import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.BasCrnpService; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.LocMoveAllHandler; import com.zy.asrs.utils.Utils; import com.zy.common.properties.SlaveProperties; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.Iterator; import java.util.List; /** * Created by vincent on 2020/7/7 */ @Slf4j @Component public class LocMoveAllScheduler { @Value("${loc-move.enable}") private boolean enable; @Value("${loc-move.crn1}") private boolean crn1; @Value("${loc-move.crn2}") private boolean crn2; @Value("${loc-move.crn3}") private boolean crn3; @Value("${loc-move.crn4}") private boolean crn4; @Autowired private LocMoveAllHandler locMoveAllHandler; @Autowired private WrkMastService wrkMastService; @Autowired private LocMastService locMastService; @Autowired private BasCrnpService basCrnpService; @Autowired private SlaveProperties slaveProperties; @Scheduled(cron = "0/3 * * * * ? ") private void execute() { if (!enable) return; List basCrnps = basCrnpService.selectList(new EntityWrapper()); if (basCrnps.isEmpty()) { return; } Iterator iterator = basCrnps.iterator(); while (iterator.hasNext()) { BasCrnp basCrnp = iterator.next(); if (basCrnp.getCrnNo() == 1 && !crn1) { iterator.remove(); } if (basCrnp.getCrnNo() == 2 && !crn2) { iterator.remove(); } if (basCrnp.getCrnNo() == 3 && !crn3) { iterator.remove(); } if (basCrnp.getCrnNo() == 4 && !crn4) { iterator.remove(); } if (basCrnp.getCrnNo() == 7) { iterator.remove(); } } if (basCrnps.isEmpty()) { return; } for (BasCrnp basCrnp : basCrnps) { if (basCrnp.getCrnSts() != 3) continue; if (!basCrnp.getInEnable().equals("N") || !basCrnp.getOutEnable().equals("Y")) continue; List wrkMasts = wrkMastService.selectList(new EntityWrapper().eq("crn_no", basCrnp.getCrnNo()).eq("io_type", 11)); if (Cools.isEmpty(wrkMasts) || wrkMasts.size() == 0) { LocMast locMastStart = locMastService.selectOne(new EntityWrapper().eq("loc_sts", "D").eq("crn_no", basCrnp.getCrnNo()).orderBy("appe_time", true));//空板所在 if (Cools.isEmpty(locMastStart)) { continue; } if (Utils.isShallowLoc(slaveProperties, locMastStart.getLocNo())) { String shallowLocNo = Utils.getShallowLoc(slaveProperties, locMastStart.getLocNo()); LocMast locNo = locMastService.selectOne(new EntityWrapper().eq("loc_no", shallowLocNo)); if (locNo != null && locNo.getLocSts().equals("D")) { locMastStart = locNo; } } LocMast locMastEnd = locMastService.selectOne(new EntityWrapper() .eq("loc_sts", "O") .eq("crn_no", basCrnp.getCrnNo()) //.eq("loc_type1", locMastStart.getLocType1()) .ne("modi_user", 77) .orderBy("lev1", true));//目标 if (Cools.isEmpty(locMastEnd)) { continue; } if (Utils.isShallowLoc(slaveProperties, locMastEnd.getLocNo())) { String shallowLocNo = Utils.getDeepLoc(slaveProperties, locMastEnd.getLocNo()); LocMast locNo = locMastService.selectOne(new EntityWrapper().eq("loc_no", shallowLocNo)); if (locNo != null && locNo.getModiUser() != 77L && locNo.getLocSts().equals("O")) { locMastEnd = locNo; } } // if (Cools.isEmpty(locMastStart) || Cools.isEmpty(locMastEnd)){ ReturnT result = locMoveAllHandler.start(locMastStart, locMastEnd, basCrnp.getCrnNo()); if (!result.isSuccess()) { log.error("处理失败"); } } } } }