自动化立体仓库 - WMS系统
dubin
1 天以前 dd76858f35bb4fdd76d5976465e9bd96267b0f0b
初始化
10个文件已修改
127 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/BasDevpController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/AgvAskOpenParam.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/CombParam.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocMastMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocMastMapper.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/BasDevpController.java
@@ -109,7 +109,7 @@
    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<>();
src/main/java/com/zy/asrs/entity/param/AgvAskOpenParam.java
@@ -14,4 +14,6 @@
    private String batch; // 批号
    private Integer staNo; // 需要开、关门的站点
}
src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -53,6 +53,9 @@
        // 卷面积
        private Double volume;
        // 入库站点
        private Integer inStaNo;
    }
}
src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -61,4 +61,6 @@
     * @return 库位集合
     */
    List<LocMast> selectAllLocNotEmpty(@Param("groupLoc") List<String> groupOuterLoc);
    List<LocMast> selectLocToSecond(@Param("locType2") short locType2);
}
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -160,7 +160,9 @@
            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));
@@ -233,7 +235,9 @@
    @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());
@@ -259,7 +263,8 @@
                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());
src/main/java/com/zy/asrs/utils/Utils.java
@@ -9,6 +9,7 @@
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;
@@ -33,6 +34,12 @@
    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);
@@ -53,8 +60,19 @@
                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));
src/main/java/com/zy/common/service/CommonService.java
@@ -134,7 +134,15 @@
    @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);
@@ -242,15 +250,19 @@
        }
        // 如果是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) {
@@ -300,6 +312,48 @@
        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;
    }
    /**
     * 检索库位号
     *
src/main/java/com/zy/common/web/WcsController.java
@@ -87,7 +87,11 @@
        // 长度>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);
src/main/resources/application.yml
@@ -10,8 +10,8 @@
    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:
src/main/resources/mapper/LocMastMapper.xml
@@ -124,7 +124,7 @@
            <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>
@@ -137,4 +137,17 @@
        </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>