|  |  |  | 
|---|
|  |  |  | import com.core.common.Cools; | 
|---|
|  |  |  | import com.core.exception.CoolException; | 
|---|
|  |  |  | import com.zy.asrs.entity.*; | 
|---|
|  |  |  | import com.zy.asrs.service.LocMastService; | 
|---|
|  |  |  | import com.zy.asrs.service.WrkMastCrnService; | 
|---|
|  |  |  | import com.zy.asrs.service.WrkMastService; | 
|---|
|  |  |  | import com.zy.asrs.service.WrkMastStaService; | 
|---|
|  |  |  | import com.zy.asrs.service.*; | 
|---|
|  |  |  | import com.zy.asrs.task.AbstractHandler; | 
|---|
|  |  |  | import com.zy.asrs.task.core.ReturnT; | 
|---|
|  |  |  | import com.zy.asrs.utils.Utils; | 
|---|
|  |  |  | 
|---|
|  |  |  | private LocMastService locMastService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private WrkMastService wrkMastService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private RgvOneSignService rgvOneSignService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public ReturnT<String> start(WrkMast wrkMast,WrkMast wrkMastOther) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | 
|---|
|  |  |  | return FAIL; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String[] strings = staNoOther(locMast1.getLocNo()); | 
|---|
|  |  |  | if (Cools.isEmpty(strings)){ | 
|---|
|  |  |  | if (Cools.isEmpty(strings) || Cools.isEmpty(strings[0]) || Cools.isEmpty(strings[1])){ | 
|---|
|  |  |  | return FAIL; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrkMast.setLocNo(strings[0]); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | WrkMastCrn wrkMastCrn = new WrkMastCrn(wrkMast,wrkMastOther,now); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | wrkMastCrnService.insert(wrkMastCrn); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 更新目标库位状态 | 
|---|
|  |  |  | LocMast locMast = locMastService.selectById(wrkMast.getLocNo()); | 
|---|
|  |  |  | 
|---|
|  |  |  | throw new CoolException(locMast1.getLocNo()+"目标库位已被占用"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | wrkMastService.updateById(wrkMast); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 更新目标库位状态 | 
|---|
|  |  |  | LocMast locMastOther = locMastService.selectById(wrkMastOther.getLocNo()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | throw new CoolException(locMast1.getLocNo()+"目标库位已被占用"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrkMastService.updateById(wrkMast); | 
|---|
|  |  |  | wrkMastService.updateById(wrkMastOther); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | wrkMastCrnService.insert(wrkMastCrn); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | log.error("异常!!!"+e); | 
|---|
|  |  |  | return FAIL; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return SUCCESS; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ReturnT<String> start(WrkMast wrkMast,boolean sign) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | LocTypeDto locTypeDto = new LocTypeDto(); | 
|---|
|  |  |  | locTypeDto.setLocType1((short)1); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String deepLocOther = getDeepLoc2(wrkMast.getSourceLocNo(), Utils.getRow(wrkMast.getSourceLocNo())); | 
|---|
|  |  |  | if (Cools.isEmpty(deepLocOther)){ | 
|---|
|  |  |  | return FAIL; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | WrkMast wrkMastOther = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("source_loc_no", deepLocOther).eq("wrk_sts", 11L)); | 
|---|
|  |  |  | if (!Cools.isEmpty(wrkMastOther)){ | 
|---|
|  |  |  | if (!sign) { | 
|---|
|  |  |  | RgvOneSign trunSma = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","TrunSma"+wrkMast.getStaNo())); | 
|---|
|  |  |  | trunSma.setRgvOneSign(trunSma.getRgvOneSign()+1); | 
|---|
|  |  |  | rgvOneSignService.updateById(trunSma); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if ((wrkMastOther.getIoType()==101 || wrkMastOther.getIoType() == 110) && wrkMastOther.booleanStaNoSign() && wrkMastOther.booleanStaNoSignOther()){ | 
|---|
|  |  |  | if (sign){ | 
|---|
|  |  |  | RgvOneSign rgvOneSign = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","LineUp"+wrkMastOther.getStaNo())); | 
|---|
|  |  |  | if (Cools.isEmpty(rgvOneSign)){ | 
|---|
|  |  |  | return FAIL; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | RgvOneSign trunSma = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","TrunSma"+wrkMastOther.getStaNo())); | 
|---|
|  |  |  | if (Cools.isEmpty(trunSma)){ | 
|---|
|  |  |  | return FAIL; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wrkMastOther.getStaNo()).eq("wrk_sts",12L)); | 
|---|
|  |  |  | int wrkCountCrn = wrkMastCrnService.selectCount(new EntityWrapper<WrkMastCrn>().eq("sta_no", wrkMastOther.getStaNo())); | 
|---|
|  |  |  | if (wrkCountCrn*2+wrkCount+rgvOneSign.getRgvOneSign()+trunSma.getRgvOneSign()>1){ | 
|---|
|  |  |  | return FAIL; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int wrkCountGt = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("sta_no", wrkMastOther.getStaNo()).gt("wrk_sts",11L)); | 
|---|
|  |  |  | if (wrkCountGt > 1){ | 
|---|
|  |  |  | return FAIL; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | trunSma.setRgvOneSign(trunSma.getRgvOneSign()+1); | 
|---|
|  |  |  | rgvOneSignService.updateById(trunSma); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | RgvOneSign trunSma = rgvOneSignService.selectOne(new EntityWrapper<RgvOneSign>().eq("rgv_one_type","TrunSma"+wrkMastOther.getStaNo())); | 
|---|
|  |  |  | trunSma.setRgvOneSign(trunSma.getRgvOneSign()+1); | 
|---|
|  |  |  | rgvOneSignService.updateById(trunSma); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | WrkMastCrn wrkMastCrn = new WrkMastCrn(wrkMast,wrkMastOther,now); | 
|---|
|  |  |  | wrkMastCrnService.insert(wrkMastCrn); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | return FAIL; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | log.error("异常!!!"+e); | 
|---|
|  |  |  | return FAIL; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取 浅库位对应的深库位号 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static String getDeepLoc(String shallowLoc,int row) { | 
|---|
|  |  |  | if (row == 2 || row == 6) { | 
|---|
|  |  |  | return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2); | 
|---|
|  |  |  | } else if (row == 3 || row == 7) { | 
|---|
|  |  |  | return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | return shallowLoc; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //    /** | 
|---|
|  |  |  | //     * 获取 浅库位对应的深库位号 | 
|---|
|  |  |  | //     */ | 
|---|
|  |  |  | //    public static String getDeepLoc(String shallowLoc,int row) { | 
|---|
|  |  |  | //        if (row == 2 || row == 6) { | 
|---|
|  |  |  | //            return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2); | 
|---|
|  |  |  | //        } else if (row == 3 || row == 7) { | 
|---|
|  |  |  | //            return Utils.zerofill(String.valueOf(row+1), 2) + shallowLoc.substring(2); | 
|---|
|  |  |  | //        }else { | 
|---|
|  |  |  | //            return shallowLoc; | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //    } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取 深库位对应的浅库位号 | 
|---|
|  |  |  | 
|---|
|  |  |  | } else if (row == 4 || row == 8) { | 
|---|
|  |  |  | return Utils.zerofill(String.valueOf(row-1), 2) + shallowLoc.substring(2); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | return shallowLoc; | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|