package com.zy.asrs.task.handler; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.zy.asrs.entity.LocMast; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.WorkService; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; 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; /** * Created by vincent on 2020/7/6 */ @Slf4j @Service public class LocMoveAllHandler extends AbstractHandler { @Autowired private WorkService workService; @Autowired private LocMastService locMastService; private final Integer BAY = 20;//YINGTAN @Transactional public ReturnT start(LocMast locMastStart, LocMast locMastEnd, Integer crnNo) { try { LocMast locMastEndNew = null; Integer row1 = locMastStart.getRow1(); Integer row2 = 0; Integer bay1 = locMastStart.getBay1(); Integer lev1 = locMastStart.getLev1(); if (row1==crnNo*4){ row1 = crnNo*4-3; row2 = row1+1; }else { row1=crnNo*4; row2 = row1-1; } Integer signInt = 0; while (Cools.isEmpty(locMastEndNew) && lev1<10 && signInt<100){ signInt++; bay1 = BAY+1-bay1; if ((bay10) || (bay1.equals(BAY) && lev1>3)){ }else { bay1=1; lev1++; } locMastEndNew = locMastService.selectOne(new EntityWrapper().eq("loc_sts","O").eq("row1",row1).eq("bay1",bay1).eq("lev1",lev1).ne("modi_user",66)); LocMast locMastEndNew2 = locMastService.selectOne(new EntityWrapper().eq("loc_sts","O").eq("row1",row2).eq("bay1",bay1).eq("lev1",lev1).ne("modi_user",66)); if (!Cools.isEmpty(locMastEndNew) && !Cools.isEmpty(locMastEndNew2)){ locMastEnd = locMastEndNew; } if ((bay10)){ bay1++; } if (signInt==100){ bay1=1; lev1++; signInt=0; } } workService.locMove(locMastStart.getLocNo(), locMastEnd.getLocNo(), 66L); } catch (Exception e) { log.error("fail", e); e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg(e.getMessage()); } return SUCCESS; } }