| | |
| | | import com.zy.asrs.service.WorkService; |
| | | import com.zy.asrs.task.AbstractHandler; |
| | | import com.zy.asrs.task.core.ReturnT; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.model.StartupDto; |
| | | import com.zy.common.properties.SlaveProperties; |
| | | import com.zy.common.service.CommonService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | |
| | | |
| | | /** |
| | |
| | | @Autowired |
| | | private WorkService workService; |
| | | |
| | | @Autowired |
| | | private SlaveProperties slaveProperties; |
| | | |
| | | @Transactional(isolation = Isolation.REPEATABLE_READ) |
| | | public ReturnT<String> start(Integer crnNo, Integer ioType) { |
| | | try { |
| | | //11 穿梭移单边 |
| | | if (ioType==11){ |
| | | for (int bay = 1;bay < 27;bay++){ |
| | | for (int lev = 1 ; lev <6 ; lev++){ |
| | | List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay,lev,crnNo); |
| | | if (!Cools.isEmpty(locMasts) && locMasts.size()<4){ |
| | | for (LocMast locMast:locMasts){ |
| | | LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); |
| | | // StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 6 : 5, ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), null); |
| | | FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(locDetl); |
| | | if (ioType == 11) { |
| | | for (int bay = 2; bay < 141; bay++) { |
| | | for (int lev = 1; lev < 22; lev++) { |
| | | List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay, lev, crnNo); |
| | | if (!Cools.isEmpty(locMasts) && locMasts.size() < 4) { |
| | | for (LocMast locMast : locMasts) { |
| | | if (Utils.isDeepLoc(slaveProperties, locMast.getLocNo())) { |
| | | String shallowLoc = Utils.getShallowLoc(slaveProperties, locMast.getLocNo()); |
| | | LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc)); |
| | | if (!Objects.isNull(locNo)) { |
| | | StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 109 : 126, 1, null, null); |
| | | workService.locMove(locNo.getLocNo(), startupDto.getLocNo(), 9527L); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | StartupDto startupDto = commonService.getLocNo( ioType, crnNo == 1 ? 917 : 918, findLocNoAttributeVo, null); |
| | | workService.locMove(locMast.getLocNo(), startupDto.getLocNo(),9527L); |
| | | StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 109 : 126, 1, null, null); |
| | | workService.locMove(locMast.getLocNo(), startupDto.getLocNo(), 9527L); |
| | | break; |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | } |
| | | } |
| | | } else if (ioType == 12) { |
| | | for (int bay = 2; bay < 61; bay++) { |
| | | for (int lev = 1; lev < 7; lev++) { |
| | | List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay, lev, crnNo ); |
| | | if (!Cools.isEmpty(locMasts) && locMasts.size() < 4) { |
| | | for (LocMast locMast : locMasts) { |
| | | // if (Utils.isDeepLoc(slaveProperties, locMast.getLocNo())) { |
| | | // String shallowLoc = Utils.getShallowLoc(slaveProperties, locMast.getLocNo()); |
| | | // LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>() |
| | | // .eq("crn_no", crnNo) |
| | | // .eq("loc_no", shallowLoc)); |
| | | // if (!Objects.isNull(locNo)) { |
| | | // StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 205 : 215, 3, null, null); |
| | | // workService.locMove(locNo.getLocNo(), startupDto.getLocNo(), 9527L); |
| | | // break; |
| | | // } |
| | | // } |
| | | |
| | | // LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo())); |
| | | // StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 6 : 5, ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), null); |
| | | // FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(locDetl); |
| | | StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 205 : 215, 3, null, null); |
| | | workService.locMove(locMast.getLocNo(), startupDto.getLocNo(), 9527L); |
| | | break; |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | } |
| | | } |
| | | |
| | | }else {//11 单边移穿梭 |
| | | List<Map<String, Object>> list = locDetlService.selectLocDetlUnilateralMoveShuttleMap(crnNo);//111 单边移穿梭 |
| | | for (Map<String, Object> map : list) { |
| | | String matnr = map.getOrDefault("matnr","").toString();//物料号 |
| | | String batch = map.getOrDefault("batch","").toString();//批号 |
| | | String grade = map.getOrDefault("brand","").toString();//等级 |
| | | String matnr = map.getOrDefault("matnr", "").toString();//物料号 |
| | | String batch = map.getOrDefault("batch", "").toString();//批号 |
| | | String grade = map.getOrDefault("brand", "").toString();//等级 |
| | | int count = Integer.parseInt(map.get("count").toString());//单边库数量 |
| | | if (count < 4) { |
| | | continue; |
| | |
| | | // StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 4 : 3, ioType, crnNo == 1 ? 901 : 932, locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), null); |
| | | FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(locDetl); |
| | | |
| | | StartupDto startupDto = commonService.getLocNo( ioType, crnNo == 1 ? 901 : 932, findLocNoAttributeVo, null); |
| | | StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 901 : 932, null, findLocNoAttributeVo, null); |
| | | workService.locMove(locDetl.getLocNo(), startupDto.getLocNo(), 9527L); |
| | | } |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("自动移库出错,堆垛机号{},工作类型{}",crnNo,ioType); |
| | | } catch (Exception e) { |
| | | log.error("自动移库出错,堆垛机号{},工作类型{}", crnNo, ioType); |
| | | } |
| | | return SUCCESS; |
| | | } |