| 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<String> { | 
|   | 
|     @Autowired | 
|     private WorkService workService; | 
|     @Autowired | 
|     private LocMastService locMastService; | 
|     private final Integer BAY = 28;//YINGTAN | 
|   | 
|   | 
|     @Transactional | 
|     public ReturnT<String> 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<9 && signInt<100){ | 
|                 signInt++; | 
|   | 
|                 bay1 = BAY+1-bay1; | 
|                 if ((bay1<BAY && bay1>0) || (bay1.equals(BAY) && lev1>3)){ | 
|   | 
|                 }else { | 
|                     bay1=1; | 
|                     lev1++; | 
|                 } | 
|                 locMastEndNew = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts","O").eq("row1",row1).eq("bay1",bay1).eq("lev1",lev1).ne("modi_user",66)); | 
|                 LocMast locMastEndNew2 = locMastService.selectOne(new EntityWrapper<LocMast>().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 ((bay1<BAY && bay1>0)){ | 
|                     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; | 
|     } | 
|   | 
| } |