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.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 = false; 
 | 
    //@Value("${loc-move.crn1}") 
 | 
    private boolean crn1 = false; 
 | 
    //@Value("${loc-move.crn2}") 
 | 
    private boolean crn2 = false; 
 | 
  
 | 
  
 | 
    @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<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>()); 
 | 
        if (basCrnps.isEmpty()) { 
 | 
            return; 
 | 
        } 
 | 
        Iterator<BasCrnp> 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 (basCrnps.isEmpty()) { 
 | 
            return; 
 | 
        } 
 | 
        for (BasCrnp basCrnp : basCrnps) { 
 | 
            if (basCrnp.getCrnSts() != 3) continue; 
 | 
            if (!basCrnp.getInEnable().equals("N") || !basCrnp.getOutEnable().equals("Y")) continue; 
 | 
            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", basCrnp.getCrnNo()).eq("io_type", 11)); 
 | 
            if (Cools.isEmpty(wrkMasts) || wrkMasts.size() == 0) { 
 | 
                LocMast locMastStart = locMastService.selectOne(new EntityWrapper<LocMast>().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<LocMast>().eq("loc_no", shallowLocNo)); 
 | 
                    if (locNo != null && locNo.getLocSts().equals("D")) { 
 | 
                        locMastStart = locNo; 
 | 
                    } 
 | 
                } 
 | 
                LocMast locMastEnd = locMastService.selectOne(new EntityWrapper<LocMast>() 
 | 
                        .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<LocMast>().eq("loc_no", shallowLocNo)); 
 | 
                    if (locNo != null && locNo.getModiUser() != 77L && locNo.getLocSts().equals("O")) { 
 | 
                        locMastEnd = locNo; 
 | 
                    } 
 | 
                } 
 | 
//                if (Cools.isEmpty(locMastStart) || Cools.isEmpty(locMastEnd)){ 
 | 
  
 | 
                ReturnT<String> result = locMoveAllHandler.start(locMastStart, locMastEnd, basCrnp.getCrnNo()); 
 | 
                if (!result.isSuccess()) { 
 | 
                    log.error("处理失败"); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |