自动化立体仓库 - WCS系统
#
Junjie
2023-12-15 fd69e79dd9861681e31893d7941b39571f49dca4
#
8个文件已修改
57 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/ConsoleController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/vo/SiteLatestDataVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/SearchLocParam.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/DevpSlave.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/StaProtocol.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -108,7 +108,6 @@
            vo.setSiteId(String.valueOf(entry.getKey())); // 站点编号
            vo.setWorkNo(staProtocol.getWorkNo()); // 工作号
            vo.setSiteStatus(SiteStatusType.process(staProtocol));  // 状态
            vo.setNearbySta(staProtocol.getNearbySta());
            vos.add(vo);
        }
        return R.ok().add(vos);
src/main/java/com/zy/asrs/domain/vo/SiteLatestDataVo.java
@@ -19,9 +19,6 @@
    // 站点状态
    private SiteStatusType siteStatus;
    // 隔壁站点(台车特性)
    private String nearbySta;
    public String getSiteStatus() {
        return siteStatus.toString().toLowerCase().replaceAll("_", "-");
    }
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -179,7 +179,6 @@
                        param.setIoType(1);
                        param.setSourceStaNo(inSta.getStaNo());
                        param.setLocType1(locTypeDto.getLocType1());
                        param.setFull(staProtocol.isFull());
                        String response = new HttpHandler.Builder()
                                .setUri(wmsUrl)
                                .setPath("/rpc/pakin/loc/v1")
@@ -2215,12 +2214,11 @@
     * 扫描碟盘机自动入库空托盘
     */
    public synchronized void autoEmptyIn() {
        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
            // 遍历空板入库口
            for (CrnSlave.CrnStn emptyInStn : crnSlave.getEmptyCrnInStn()) {
        for (DevpSlave slave : slaveProperties.getDevp()) {
            for (DevpSlave.Sta sta : slave.getAutoEmptyIn()) {
                // 获取空板入库站信息
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, emptyInStn.getDevpPlcId());
                StaProtocol staProtocol = devpThread.getStation().get(emptyInStn.getStaNo());
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, slave.getId());
                StaProtocol staProtocol = devpThread.getStation().get(sta.getStaNo());
                if (staProtocol == null) {
                    continue;
                } else {
@@ -2236,7 +2234,7 @@
                        SearchLocParam param = new SearchLocParam();
                        param.setIoType(10);
                        param.setSourceStaNo(emptyInStn.getStaNo());
                        param.setSourceStaNo(sta.getStaNo());
                        param.setLocType1(locTypeDto.getLocType1());
                        String response = new HttpHandler.Builder()
                                .setUri(wmsUrl)
@@ -2263,7 +2261,6 @@
                        e.printStackTrace();
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    }
                }
            }
        }
@@ -2273,10 +2270,10 @@
     * 扫描拆盘机自动出库空托盘
     */
    public synchronized void autoEmptyOut() {
        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
            for (CrnSlave.CrnStn emptyOutStn : crnSlave.getEmptyCrnOutStn()) {
                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, emptyOutStn.getDevpPlcId());
                StaProtocol staProtocol = devpThread.getStation().get(emptyOutStn.getStaNo());
        for (DevpSlave slave : slaveProperties.getDevp()) {
            for (DevpSlave.Sta sta : slave.getAutoEmptyOut()) {
                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, slave.getId());
                StaProtocol staProtocol = devpThread.getStation().get(sta.getStaNo());
                if (staProtocol == null) {
                    return;
                } else {
@@ -2285,16 +2282,16 @@
                if (staProtocol.isAutoing()  //自动
                        && !staProtocol.isLoading()  //无物
                        && staProtocol.isOutEnable()  //可出信号
                        && staProtocol.isEmptyPalletRequire()  //空托盘需求信号
                        && staProtocol.getWorkNo() == 0
                ) {
                    WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(emptyOutStn.getStaNo());
                    WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(sta.getStaNo());
                    if (null != pakoutEmpty) {
                        return;
                    }
                    try {
                        HashMap<String, Object> map = new HashMap<>();
                        map.put("crnNo", crnSlave.getId());
                        map.put("staNo", sta.getStaNo());//目标站
                        String response = new HttpHandler.Builder()
                                .setUri(wmsUrl)
                                .setParams(map)
@@ -2314,6 +2311,7 @@
                    }
                }
            }
        }
    }
src/main/java/com/zy/common/model/SearchLocParam.java
@@ -15,9 +15,6 @@
    private String barcode;
    // 托盘是可否整垛
    private boolean full;
    // 库位规格( 0:未知, 1:低库位, 2:中库位, 3:高库位 )
    private Short locType1;
src/main/java/com/zy/core/model/DevpSlave.java
@@ -27,6 +27,10 @@
    private List<Sta> pickSta = new ArrayList<>();
    private List<Sta> autoEmptyOut = new ArrayList<>();
    private List<Sta> autoEmptyIn = new ArrayList<>();
    @Data
    public static class Sta {
src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -55,14 +55,8 @@
    // 锁定标记
    private boolean pakMk = true;
    // 入库暂存数
    private Short inQty;
    // 隔壁站点(台车位置)
    private String nearbySta;
    // 托盘是可否整垛
    private boolean full;
    //空托盘需求信号
    private boolean emptyPalletRequire;
    public BasDevp toSqlModel(){
        BasDevp basDevp = new BasDevp();
@@ -77,7 +71,6 @@
        basDevp.setLocType3((short) 0);  // 轻重类型{0:未知,1:轻库位,2:重库位}
        basDevp.setLocType1(high != low && low ? (short) 1 : (short) 2);
//        basDevp.
        basDevp.setInQty(inQty !=null ?(int)inQty : 0);
        return basDevp;
    }
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -190,6 +190,7 @@
                staProtocol.setFullPlt(status[5]);  // 满托盘
                staProtocol.setHigh(status[6]);     // 高库位
                staProtocol.setLow(status[7]);      // 低库位
                staProtocol.setEmptyPalletRequire(status[8]);      // 空托盘需求信号
                if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
                    staProtocol.setPakMk(true);
src/main/resources/application.yml
@@ -178,6 +178,12 @@
      barcode: ${wcs-slave.barcode[2].id}
      backSta: 3012
      led: ${wcs-slave.led[5].id}
    # 拆盘机出空托
    autoEmptyOut[0]:
      staNo: 1007
    # 拆盘机入空托
    autoEmptyIn[0]:
      staNo: 1007
  # RGV1
  rgv[0]: