package com.zy.asrs.task.handler; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.common.Cools; import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.StaDesc; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.entity.param.EmptyPlateOutParam; import com.zy.asrs.service.BasDevpService; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.StaDescService; import com.zy.asrs.service.WorkService; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; import com.zy.system.entity.Config; import com.zy.system.service.ConfigService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.util.ArrayList; import java.util.List; @Slf4j @Service public class AutoEmptyOutHandler extends AbstractHandler { @Autowired private ConfigService configService; @Autowired private WrkMastService wrkMastService; @Autowired private LocMastService locMastService; @Autowired private WorkService workService; @Autowired private BasDevpService basDevpService; @Autowired private StaDescService staDescService; @Transactional public ReturnT start() { try { Config config = configService.selectConfigByCode("EmptyMax"); Integer max; if (Cools.isEmpty(config)) { max = 10; }else{ max = Integer.valueOf(config.getValue()); } for(Integer crnNo = 1; crnNo < 5; crnNo++){ List wrkMastList = wrkMastService.selectList(new EntityWrapper() .eq("crn_no", crnNo) .eq("io_type", 110) ); if(!wrkMastList.isEmpty()){continue;} Integer emptyLocCount = locMastService.selectCount(new EntityWrapper() .eq("crn_no", crnNo) .eq("loc_sts", "O") .eq("frozen", 0) .eq("deleted", 0) .eq("whs_type", 1)); if (emptyLocCount == null || emptyLocCount >= max) { continue; } List locMastDList = locMastService.selectPage( new Page<>(1, 3), //选三个空轴库位 new EntityWrapper() .eq("crn_no", crnNo) .eq("loc_sts", "D") .eq("frozen", 0) .eq("deleted", 0) .eq("whs_type", 1) .orderBy("lev1,bay1") ).getRecords(); if (Cools.isEmpty(locMastDList)) { continue; } List locNos = new ArrayList<>(); for (LocMast locMast : locMastDList) { locNos.add(locMast.getLocNo()); } EmptyPlateOutParam emptyPlateOutParam = new EmptyPlateOutParam(); emptyPlateOutParam.setOutSite(1076); emptyPlateOutParam.setLocNos(locNos); workService.emptyPlateOut(emptyPlateOutParam, 1L); } } catch (Exception e) { log.error("fail", e); e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg(e.getMessage()); } return SUCCESS; } }