| | |
| | | public R query(String condition) { |
| | | EntityWrapper<BasDevp> wrapper = new EntityWrapper<>(); |
| | | wrapper.like("dev_no", condition); |
| | | Page<BasDevp> page = basDevpService.selectPage(new Page<>(0, 10), wrapper); |
| | | Page<BasDevp> page = basDevpService.selectPage(new Page<>(0, 30), wrapper); |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | for (BasDevp basDevp : page.getRecords()){ |
| | | Map<String, Object> map = new HashMap<>(); |
| | |
| | | |
| | | private String batch; // 批号 |
| | | |
| | | private Integer staNo; // 需要开、关门的站点 |
| | | |
| | | } |
| | |
| | | |
| | | // 卷面积 |
| | | private Double volume; |
| | | |
| | | // 入库站点 |
| | | private Integer inStaNo; |
| | | } |
| | | |
| | | } |
| | |
| | | * @return 库位集合 |
| | | */ |
| | | List<LocMast> selectAllLocNotEmpty(@Param("groupLoc") List<String> groupOuterLoc); |
| | | |
| | | List<LocMast> selectLocToSecond(@Param("locType2") short locType2); |
| | | } |
| | |
| | | waitPakin.setModiTime(now); |
| | | |
| | | // 源站点状态检测 |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(305, true); |
| | | Integer inStaNo = combMat.getInStaNo(); // 入库站点 |
| | | // BasDevp sourceStaNo = basDevpService.checkSiteStatus(305, true); |
| | | BasDevp sourceStaNo = basDevpService.checkSiteStatus(inStaNo, true); |
| | | |
| | | // 长度>3500放宽库位 |
| | | sourceStaNo.setLocType2((short) (waitPakin.getLength() > 4600 ? 2 : 1)); |
| | |
| | | @Override |
| | | public R agvAskOpen(AgvAskOpenParam param) { |
| | | if (param.getFlag() == 0) { // 出库请求wms开门 |
| | | BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305)); |
| | | Integer staNo = param.getStaNo(); // 需要开、关门的站点 |
| | | // BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305)); |
| | | BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", staNo)); |
| | | if (basDevp.getWrkNo() > 6000 && basDevp.getWrkNo() <= 9000 && basDevp.getLoading().equals("Y") && basDevp.getAutoing().equals("Y") |
| | | && basDevp.getOutEnable().equals("Y")) { // 出库工作档 |
| | | WrkMast wrkMast = wrkMastService.selectById(basDevp.getWrkNo()); |
| | |
| | | return R.error("不满足出库条件"); |
| | | } |
| | | } else if(param.getFlag() == 1) { // 入库请求wms开门 |
| | | BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305)); |
| | | // BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305)); |
| | | BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", param.getStaNo())); |
| | | if (basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("Y") |
| | | && basDevp.getInEnable().equals("Y") && basDevp.getWrkNo() <= 3000) { // 入库底座 |
| | | WrkMast wrkMast = wrkMastService.selectById(basDevp.getWrkNo()); |
| | |
| | | import com.zy.asrs.entity.RowLastno; |
| | | import com.zy.asrs.service.RowLastnoService; |
| | | import com.zy.common.properties.SlaveProperties; |
| | | import org.openxmlformats.schemas.wordprocessingml.x2006.main.STString; |
| | | |
| | | import java.text.DecimalFormat; |
| | | import java.util.ArrayList; |
| | |
| | | public static final List<Integer> FOURTH_GROUP_ROW_LIST = new ArrayList<Integer>() {{ |
| | | add(7);add(8); |
| | | }}; |
| | | public static final List<Integer> FIFTH_GROUP_ROW_LIST = new ArrayList<Integer>(){{ |
| | | add(9); |
| | | }}; |
| | | public static final List<Integer> SIXTH_GROUP_ROW_LIST = new ArrayList<Integer>(){{ |
| | | add(10);add(11); |
| | | }}; |
| | | |
| | | public static List<String> getGroupLocNo(String locNo, Boolean pakIn) { |
| | | int row = getRow(locNo); |
| | |
| | | result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2)); |
| | | } |
| | | } else if (FOURTH_GROUP_ROW_LIST.contains(row)) { |
| | | List<Integer> clone = Arrays.asList(new Integer[FOURTH_GROUP_ROW_LIST.size()]); |
| | | Collections.copy(clone, FOURTH_GROUP_ROW_LIST); |
| | | // List<Integer> clone = Arrays.asList(new Integer[FOURTH_GROUP_ROW_LIST.size()]); |
| | | // Collections.copy(clone, FOURTH_GROUP_ROW_LIST); |
| | | // Collections.reverse(clone); |
| | | for (Integer groupRow : FOURTH_GROUP_ROW_LIST) { |
| | | result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2)); |
| | | } |
| | | }else if (FIFTH_GROUP_ROW_LIST.contains(row)) { |
| | | for (Integer groupRow : FIFTH_GROUP_ROW_LIST) { |
| | | result.add(zerofill(String.valueOf(groupRow), 2) + locNo.substring(2)); |
| | | } |
| | | }else if (SIXTH_GROUP_ROW_LIST.contains(row)) { |
| | | List<Integer> clone = Arrays.asList(new Integer[SIXTH_GROUP_ROW_LIST.size()]); |
| | | Collections.copy(clone, SIXTH_GROUP_ROW_LIST); |
| | | Collections.reverse(clone); |
| | | for (Integer integer : clone) { |
| | | result.add(zerofill(String.valueOf(integer), 2) + locNo.substring(2)); |
| | |
| | | @Transactional |
| | | public StartupDto getLocNo(BasDevp sourceStaNo, LocTypeDto locTypeDto,int inType){ |
| | | |
| | | LocMast locMast; |
| | | LocMast locMast = null; |
| | | |
| | | // 二期入库找库位 |
| | | if (sourceStaNo.getDevNo() == 1102 || sourceStaNo.getDevNo() == 2101 || sourceStaNo.getDevNo() == 2103){ |
| | | locMast = searchLocBySecond(locTypeDto, sourceStaNo.getDevNo(), inType); |
| | | } |
| | | if (locMast != null){ |
| | | return getLocNoReturn(locMast, sourceStaNo.getDevNo(), inType); |
| | | } |
| | | |
| | | // 空托入库找库位 |
| | | locMast = searchLocByEmpty(sourceStaNo, inType); |
| | |
| | | } |
| | | |
| | | // 如果是305入库,在一号堆垛机空闲的时候应先入一号巷道,确保出库效率 |
| | | if (sourceStaNo == 305) { |
| | | if (sourceStaNo == 305 || sourceStaNo == 1202) { |
| | | // 1号巷道可用库位 |
| | | List<LocMast> collect = locMasts.stream().filter(locMast1 -> locMast1.getCrnNo().equals(1)).collect(Collectors.toList()); |
| | | List<LocMast> collect2 = locMasts.stream().filter(locMast1 -> locMast1.getCrnNo().equals(2)).collect(Collectors.toList()); |
| | | List<LocMast> collect3 = locMasts.stream().filter(locMast1 -> locMast1.getCrnNo().equals(3)).collect(Collectors.toList()); |
| | | BasCrnp crnp = basCrnpService.selectById(1); |
| | | BasCrnp crnp2 = basCrnpService.selectById(2); |
| | | if (crnp.getCrnSts() == 3 && collect.size()>10 && crnp.getCrnErr() == 0) { |
| | | locMasts = collect; |
| | | } else { |
| | | } else if (crnp2.getCrnSts() == 3 && collect2.size()>10 && crnp.getCrnErr() == 0) { |
| | | locMasts = collect2; |
| | | }else { |
| | | locMasts = collect3; |
| | | } |
| | | // BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", 305)); |
| | | // if (basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("Y") && basDevp.getWrkNo() > 6000 && basDevp.getWrkNo() <= 9000) { |
| | |
| | | return locMast; |
| | | } |
| | | |
| | | private LocMast searchLocBySecond(LocTypeDto locTypeDto,int sourceStaNo, int inType) { |
| | | // 寻找到的库位 |
| | | LocMast locMast = null; |
| | | |
| | | // 不是入库 |
| | | if (inType != 1){ |
| | | return null; |
| | | } |
| | | |
| | | // 空库位集合 |
| | | List<LocMast> locMasts = new ArrayList<>(); |
| | | |
| | | locMasts = locMastMapper.selectLocToSecond(locTypeDto.getLocType2()); |
| | | |
| | | for (LocMast mast : locMasts) { |
| | | if (mast.getRow1() == 10 && mast.getBay1() <= 18){ |
| | | LocMast deep = locMastService.selectOne(new EntityWrapper<LocMast>() |
| | | .eq("row1", mast.getRow1() + 1) |
| | | .eq("bay1", mast.getBay1()) |
| | | .eq("lev1", mast.getLev1()) |
| | | .eq("crn_no", 3)); |
| | | if (deep.getLocSts().equals("O")) { |
| | | locMast = deep; |
| | | break; |
| | | } |
| | | } |
| | | locMast = mast; |
| | | break; |
| | | } |
| | | |
| | | // 预留空库位 |
| | | Integer count = locMastService.selectCount(new EntityWrapper<LocMast>() |
| | | .eq("loc_sts", "O") |
| | | .eq("crn_no", 3) |
| | | .in("row1",9, 10)); |
| | | |
| | | if (count <= 5){ |
| | | locMast = null; |
| | | } |
| | | |
| | | return locMast; |
| | | } |
| | | /** |
| | | * 检索库位号 |
| | | * |
| | |
| | | |
| | | // 长度>3500放宽库位 |
| | | if (param.getIoType() == 1) { |
| | | sourceStaNo.setLocType2((short) (waitPakins.get(0).getLength() >= 4600 ? 2 : 1)); |
| | | if (sourceStaNo.getDevNo() == 1102 || sourceStaNo.getDevNo() == 2101 || sourceStaNo.getDevNo() == 2103) { |
| | | sourceStaNo.setLocType2((short) (waitPakins.get(0).getWeight() >= 800 ? 2 :1)); |
| | | }else { |
| | | sourceStaNo.setLocType2((short) (waitPakins.get(0).getLength() >= 4600 ? 2 : 1)); |
| | | } |
| | | } |
| | | LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); |
| | | |
| | |
| | | enabled: false |
| | | datasource: |
| | | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| | | url: jdbc:sqlserver://10.10.10.243:1433;databasename=ghlnasrs |
| | | # url: jdbc:sqlserver://127.0.0.1:1433;databasename=ghlnasrs |
| | | # url: jdbc:sqlserver://10.10.10.243:1433;databasename=ghlnasrs |
| | | url: jdbc:sqlserver://127.0.0.1:1433;databasename=ghlnasrs |
| | | username: sa |
| | | password: sa@123 |
| | | mvc: |
| | |
| | | <when test="sourceStaNo == 103"> |
| | | AND crn_no = 1 order by lev1,bay1,row1 |
| | | </when > |
| | | <when test="sourceStaNo == 305"> |
| | | <when test="sourceStaNo == 305 or sourceStaNo == 1202"> |
| | | order by lev1 asc,bay1 desc,row1 asc |
| | | </when > |
| | | </choose> |
| | |
| | | </foreach> |
| | | </select> |
| | | |
| | | <select id="selectLocToSecond" resultType="com.zy.asrs.entity.LocMast"> |
| | | select loc_no as locNo,loc_type2 as locType2,crn_no as crnNo,row1 as row1,bay1 as bay1,lev1 as lev1 |
| | | from asr_loc_mast |
| | | where loc_sts = 'O' and crn_no = 3 and (row1 =9 or row1 = 10) |
| | | <if test="locType2 == 2"> |
| | | and lev1 in(1,2,3,4) |
| | | </if> |
| | | <if test="locType2 == 1"> |
| | | and lev1 in(5,6,7,8) |
| | | </if> |
| | | order by lev1 asc ,bay1 asc ,row1 asc |
| | | </select> |
| | | |
| | | </mapper> |