luxiaotao1123
2020-08-28 f89ca17a1a365f5cd349bca3ebf6b2c80f0e534d
#v2.1
7个文件已修改
89 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/CrnController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/console.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/CrnController.java
@@ -117,7 +117,7 @@
            vo.setXLocation(crnProtocol.getWalkPos() == 1?"是":"否");      // 走行定位
            vo.setYLocation(crnProtocol.getLiftPosType().equals(CrnLiftPosType.NONE)?"否":"是");      // 升降定位
            vo.setStop(crnProtocol.getCrnTemp1().stop?"是":"否");       //  急停
            vo.setWorkNo(crnProtocol.getAlarm());  //  异常码
            vo.setWarnCode(String.valueOf(crnProtocol.getAlarm()));  //  异常码
            list.add(vo);
        }
        return R.ok().add(list);
@@ -141,7 +141,7 @@
            CrnMsgTableVo vo = new CrnMsgTableVo();
            vo.setCrnNo(crn.getId());   //  堆垛机号
            vo.setWorkNo(crnProtocol.getTaskNo());  //  任务号
            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
            if (null != crnError) {
                vo.setError(crnError.getErrorCode() + crnError.getErrName());
            }
src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -21,6 +21,8 @@
//    @Select("select top 1 * from asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=2 and barcode=#{barcode} and (io_type=1 or io_type=10) order by io_pri desc,io_time,wrk_no ASC")
    WrkMast selectPakInStep1(@Param("sourceStaNo")Integer sourceStaNo, @Param("barcode")String barcode);
    WrkMast selectPakInStep11(@Param("sourceStaNo")Integer sourceStaNo);
    // 入库第二步,当托盘物料在堆垛机入库站时时查询
//    @Select("select top 1 * from dbo.asr_wrk_mast where wrk_sts=2 and crn_no=#{crnNo} and wrk_no=#{workNo} and (io_type=1 or io_type=10 or io_type=53 or io_type=54 or io_type=57) order by io_pri desc,io_time,wrk_no ASC")
    WrkMast selectPakInStep2(@Param("crnNo")Integer crnNo, @Param("workNo")Integer workNo);
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -163,6 +163,54 @@
    }
    /**
     * 入库站,根据条码扫描生成入库工作档,工作状态 1 ==>> 2
     */
    @Async
    public void generateStoreWrkFile2() {
        // 根据输送线plc遍历
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 遍历入库口
            for (DevpSlave.Sta inSta : devp.getInSta()) {
                // 获取入库站信息
                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
                // 判断是否满足入库条件
                if (staProtocol.isAutoing() && staProtocol.isLoading()
                        && !staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0
                        && staProtocol.isPakMk()) {
                    // 判断重复工作档
                    WrkMast wrkMast = wrkMastMapper.selectPakInStep11(inSta.getStaNo());
                    if (wrkMast == null) {
                        continue;
                    }
                    // 更新工作主档
                    wrkMast.setWrkSts(2L); // 工作状态:2.设备上走
                    wrkMast.setModiTime(new Date());
                    Integer update = wrkMastMapper.updateById(wrkMast);
                    if (update == 0) {
                        throw new CoolException("更新工作档失败");
                    }
                    // 命令下发区 --------------------------------------------------------------------------
                    // 更新站点信息 且 下发plc命令
                    staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
                    staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                    if (!result) {
                        throw new CoolException("更新plc站点信息失败");
                    }
                    staProtocol.setPakMk(false);
                }
            }
        }
    }
    /**
     * 拣料、并板、盘点再入库
@@ -518,6 +566,15 @@
        crnCommand.setDestinationPosZ(sta.getLev1().shortValue());     // 目标库位层
        if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
            log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
        } else {
            // 修改工作档状态 11.生成出库ID => 12.吊车出库中
            Date now = new Date();
            wrkMast.setWrkSts(12L);
            wrkMast.setCrnStrTime(now);
            wrkMast.setModiTime(now);
            if (wrkMastMapper.updateById(wrkMast) == 0) {
                log.error("【库位移转】 修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", wrkMast.getWrkNo());
            }
        }
    }
@@ -564,9 +621,9 @@
                }
                // 完成通知档
                if (wrkMastMapper.updateWaitPakInStep2(wrkMast.getBarcode()) == 0) {
                    log.error("入库通知档修改结束状态失败,workNo=[{}]", wrkMast.getWrkNo());
                }
//                if (wrkMastMapper.updateWaitPakInStep2(wrkMast.getBarcode()) == 0) {
//                    log.error("入库通知档修改结束状态失败,workNo=[{}]", wrkMast.getWrkNo());
//                }
            }
        }
src/main/java/com/zy/core/MainProcess.java
@@ -40,7 +40,8 @@
//                    log.info("WCS 工作中 .....................");
                    // 入库  ===>> 入库站到堆垛机站,根据条码扫描生成入库工作档
                    mainService.generateStoreWrkFile();
//                    mainService.generateStoreWrkFile();
                    mainService.generateStoreWrkFile2();
                    // 拣料、并板、盘点再入库
                    mainService.stnToCrnStnPick();
                    // 出库  ===>>  堆垛机出库站到出库站
src/main/resources/application.yml
@@ -43,8 +43,8 @@
    port: 5015
    rack: 0
    slot: 0
    # 偏移量,当堆垛机站点列号=1时,偏移量=0
    offset: 1
    # 偏移量,当堆垛机站点列号=1时,偏移量=2
    offset: 2
    # 堆垛机入库站点
    crnInStn[0]:
      devpPlcId: ${wcs-slave.devp[0].id}
@@ -60,7 +60,7 @@
      bay: 1
      lev: 1
    # 堆垛机2
    #crn[1]:
    crn[1]:
      id: 1
      ip: 192.168.3.40
      port: 5015
src/main/resources/mapper/WrkMastMapper.xml
@@ -79,6 +79,10 @@
        select top 1 * from asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=2 and barcode=#{barcode} and (io_type=1 or io_type=10) order by io_pri desc,io_time,wrk_no ASC
    </select>
    <select id="selectPakInStep11" resultMap="BaseResultMap">
        select top 1 * from asr_wrk_mast where source_sta_no=#{sourceStaNo} and wrk_sts=1 and (io_type=1 or io_type=10) order by io_pri desc,io_time,wrk_no ASC
    </select>
    <select id="selectPakInStep2" resultMap="BaseResultMap">
        select top 1 * from dbo.asr_wrk_mast where wrk_sts=2 and crn_no=#{crnNo} and wrk_no=#{workNo} and (io_type=1 or io_type=10 or io_type=53 or io_type=54 or io_type=57) order by io_pri desc,io_time,wrk_no ASC
    </select>
src/main/webapp/views/console.html
@@ -108,7 +108,6 @@
            <!-- 货架 -->
            <div class="stock-group">
                <div id="site-2" class="site" style="">2</div>
                <button class="item">1</button>
                <button class="item">2</button>
                <button class="item">3</button>
                <button class="item">4</button>
@@ -169,7 +168,6 @@
            <!-- 货架 -->
            <div class="stock-group">
                <div id="site-4" class="site" style="">4</div>
                <button class="item">1</button>
                <button class="item">2</button>
                <button class="item">3</button>
                <button class="item">4</button>
@@ -227,7 +225,6 @@
            <!-- 货架 -->
            <div class="stock-group">
                <div id="site-6" class="site" style="">6</div>
                <button class="item">1</button>
                <button class="item">2</button>
                <button class="item">3</button>
                <button class="item">4</button>
@@ -288,7 +285,6 @@
            <!-- 货架 -->
            <div class="stock-group">
                <div id="site-8" class="site" style="">8</div>
                <button class="item">1</button>
                <button class="item">2</button>
                <button class="item">3</button>
                <button class="item">4</button>
@@ -683,7 +679,8 @@
                        var crnEl = $("#crn-"+crns[i].crnId);
                        crnEl.attr("class", "machine " + crns[i].crnStatus);
                        // crnAnimate(crns[i].crnId, crns[i].offset);
                        crnEl.animate({left: (crns[i].bay * ($('.item').eq(0).width()+4)) +'px'}, 1000);
                        var unit = $('.item').eq(0).width()+4;
                        crnEl.animate({left: (crns[i].bay * unit + 20) +'px'}, 1000);
                    }
                } else if (res.code === 403){
                    window.location.href = baseUrl+"/login";