#
luxiaotao1123
2022-09-22 634f691354a519fbae4714b20dbc9e89030657b8
#
8个文件已修改
135 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/SteController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/domain/vo/SteStateTableVo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/enums/SteTaskModeType.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/model/protocol/SteProtocol.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SteThread.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkChargeMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/ste.html 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/SteController.java
@@ -95,6 +95,9 @@
            if (!Cools.isEmpty(steProtocol.getTrack())) {
                vo.setTrack(steProtocol.getTrack()==0?"✔":"×");
            }
            if (!Cools.isEmpty(steProtocol.getChargeStatus())) {
                vo.setChargeStatus(steProtocol.getChargeStatus()==1?"✔":"×");
            }
        }
        return R.ok().add(list);
    }
src/main/java/com/zy/asrs/domain/vo/SteStateTableVo.java
@@ -81,4 +81,9 @@
     */
    public String track = "-";
    /**
     * 充电状态
     */
    public String chargeStatus = "-";
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1362,11 +1362,11 @@
                        continue;
                    } else {
                        // 小车搬至指定库位完成
                        if (wrkCharge.getWrkSts() == 4) {
                            // 4.迁入小车 ===>> 6.小车待入
                            wrkCharge.setWrkSts(6L);
                        if (wrkCharge.getWrkSts() == 23) {
                            // 23.吊车搬运 ===>> 24.小车到达
                            wrkCharge.setWrkSts(24L);
                            if (!wrkChargeService.updateById(wrkCharge)) {
                                log.error("修改充电任务状态 4.迁入小车 ===>> 6.小车待入 失败!!,工作号={}", wrkCharge.getWrkNo());
                                log.error("修改充电任务状态 23.吊车搬运 ===>> 24.小车到达 失败!!,工作号={}", wrkCharge.getWrkNo());
                            } else {
                                // 堆垛机复位
                                crnThread.setResetFlag(true);
@@ -1627,7 +1627,7 @@
    /**
     * 执行对工作档的完成操作
     */
    public void carGenerateStore() {
    public synchronized void carGenerateStore() {
        Date now = new Date();
        for (SteSlave ste : slaveProperties.getSte()) {
            // 获取穿梭车信息
@@ -1646,21 +1646,55 @@
                        if (wrkCharge == null) {
                            continue;
                        } else {
                            if (wrkCharge.getWrkSts() == 11) {
                                // 11.生成出库ID ===>> 12.小车待搬
                                wrkCharge.setWrkSts(12L);
                            if (wrkCharge.getWrkSts() == 21) {
                                // 21.准备充电 ===>> 22.小车待搬
                                wrkCharge.setWrkSts(22L);
                                if (!wrkChargeService.updateById(wrkCharge)) {
                                    log.error("修改充电任务状态 11.生成出库ID ===>> 12.小车待搬 失败!!,工作号={}", wrkCharge.getWrkNo());
                                    log.error("修改充电任务状态 21.准备充电 ===>> 22.小车待搬 失败!!,工作号={}", wrkCharge.getWrkNo());
                                } else {
                                    steThread.setResetFlag(true);
                                }
                            } else if (wrkCharge.getWrkSts() == 8) {
                                // 8.小车搬入库 ===>> 9.入库完成
                                wrkCharge.setWrkSts(9L);
                            } else if (wrkCharge.getWrkSts() == 25) {
                                // 25.小车行驶 ===>> 26.等待充电
                                wrkCharge.setWrkSts(26L);
                                if (!wrkChargeService.updateById(wrkCharge)) {
                                    log.error("修改充电任务状态 8.小车搬入库 ===>> 9.入库完成 失败!!,工作号={}", wrkCharge.getWrkNo());
                                    log.error("修改充电任务状态 25.小车行驶 ===>> 26.等待充电 失败!!,工作号={}", wrkCharge.getWrkNo());
                                } else {
                                    steThread.setResetFlag(true);
                                }
                            } else if (wrkCharge.getWrkSts() == 26) {
                                if (steProtocol.getChargeStatus() == 0) { continue; }
                                // 穿梭车充电命令下发区 --------------------------------------------------------------------------
                                SteCommand steCommand = new SteCommand();
                                steCommand.setSteNo(wrkCharge.getSteNo()); // 穿梭车编号
                                steCommand.setTaskNo(wrkCharge.getWrkNo()); // 工作号
                                steCommand.setTaskMode(SteTaskModeType.CHARGE);
                                if (!MessageQueue.offer(SlaveType.Ste, wrkCharge.getSteNo(), new Task(2, steCommand))) {
                                    log.error("穿梭车命令下发失败,穿梭车号={},任务数据={}", wrkCharge.getSteNo(), JSON.toJSON(steCommand));
                                } else {
                                    // 修改工作档状态  26.等待充电 ===> 27.输送线上电
                                    wrkCharge.setWrkSts(27L);
                                    wrkCharge.setModiTime(now);
                                    if (!wrkChargeService.updateById(wrkCharge)) {
                                        log.error("修改充电任务状态 26.等待充电 ===> 27.输送线上电 失败!!,工作号={}", wrkCharge.getWrkNo());
                                    }
                                }
                            } else if (wrkCharge.getWrkSts() == 27) {
                                // 给输送线下发充电任务
                                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                                SteChargeType steChargeType = SteChargeType.get(wrkCharge.getLocNo());
                                if (null != steChargeType) {
                                    if (devpThread.charge(steChargeType.ssbm - 1, true)) {
                                        // 修改工作档状态 27.输送线上电 ===> 28.完成充电
                                        wrkCharge.setWrkSts(28L);
                                        if (!wrkChargeService.updateById(wrkCharge)) {
                                            log.error("修改充电任务状态 27.输送线上电 ===> 28.完成充电 失败!!,工作号={}", wrkCharge.getWrkNo());
                                        } else {
                                            steThread.setResetFlag(true);
                                        }
                                    }
                                } else {
                                    log.error("获取充电桩号失败,解析库位:{}", wrkCharge.getLocNo());
                                }
                            }
                        }
@@ -2057,7 +2091,8 @@
            BasSte basSte = basSteService.selectById(ste.getId());
            if (Cools.isEmpty(steProtocol, basSte)) { continue; }
            try {
                if (!steProtocol.statusType.equals(SteStatusType.IDLE) || basSte.getPakMk().equals("Y")) {
                // 空闲   无作业标记   不在充电
                if (!steProtocol.statusType.equals(SteStatusType.IDLE) || basSte.getPakMk().equals("Y") || steProtocol.getChargeStatus() == 1) {
                    continue;
                }
                if (steProtocol.getCharge() > Float.parseFloat(basSte.getChargeLine())) {
@@ -2070,7 +2105,7 @@
                    wrkCharge = new WrkCharge();
                    wrkCharge.setSteNo(ste.getId());
                    wrkCharge.setWrkNo(commonService.getChargeWorkNo(4));
                    wrkCharge.setWrkSts(11L);
                    wrkCharge.setWrkSts(21L);   // 21.准备充电
                    wrkCharge.setCrnNo(basSte.getCrnNo());
                    wrkCharge.setIoPri((double) 10);
                    wrkCharge.setLocNo(idleLoc);
@@ -2079,20 +2114,21 @@
                        continue;
                    }
                    // 处于充电库位组
                    if (Utils.getGroupRow(idleLoc).equals(Utils.getGroupRow(steProtocol.getRow().intValue())) && steProtocol.getBay() == Utils.getBay(idleLoc) && steProtocol.getLev() == Utils.getLev(idleLoc)) {
                        // 修改工作档状态 11.生成出库ID => 6.小车待入
                        wrkCharge.setWrkSts(6L);
                        // 修改工作档状态 21.准备充电 => 24.小车到达
                        wrkCharge.setWrkSts(24L);
                        wrkCharge.setModiTime(new Date());
                        if (!wrkChargeService.updateById(wrkCharge)) {
                            log.error("修改工作档状态 11.生成出库ID => 6.小车待入 失败!!,工作号={}", wrkCharge.getWrkNo());
                            log.error("修改充电任务状态 21.准备充电 => 24.小车到达 失败!!,工作号={}", wrkCharge.getWrkNo());
                        }
                    } else {
                        this.letCarBeWaiting(wrkCharge, ste.getId());
                    }
                } else {
                    // 12.小车待搬
                    if (wrkCharge.getWrkSts() == 12) {
                    // 22.小车待搬
                    if (wrkCharge.getWrkSts() == 22) {
                        // 搬小车至充电库位
                        LocMast locMast = locMastService.selectById(basSte.getIdleLoc());
@@ -2113,17 +2149,17 @@
                        } else {
                            // 修改穿梭车运行中排列层
                            steThread.modifyPos(Utils.getGroupRow(locMast.getLocNo()), locMast.getBay1(), locMast.getLev1());
                            // 修改工作档状态 12.小车待搬 => 4.迁入小车
                            // 修改工作档状态 22.小车待搬 => 23.吊车搬运
                            Date now = new Date();
                            wrkCharge.setWrkSts(4L);
                            wrkCharge.setWrkSts(23L);
                            wrkCharge.setCrnStrTime(now);
                            wrkCharge.setModiTime(now);
                            if (!wrkChargeService.updateById(wrkCharge)) {
                                log.error("修改工作档状态 12.小车待搬 => 4.迁入小车 失败!!,工作号={}", wrkCharge.getWrkNo());
                                log.error("修改工作档状态 22.小车待搬 => 23.吊车搬运 失败!!,工作号={}", wrkCharge.getWrkNo());
                            }
                        }
                    } else if (wrkCharge.getWrkSts() == 6L) {
                    } else if (wrkCharge.getWrkSts() == 24L) {
                        // 小车行驶至充电位
                        if (steProtocol.statusType.equals(SteStatusType.IDLE) && steProtocol.getPakMk().equals("N")) {
                            // 命令下发区 --------------------------------------------------------------------------
@@ -2134,30 +2170,15 @@
                            if (!MessageQueue.offer(SlaveType.Ste, wrkCharge.getSteNo(), new Task(2, steCommand))) {
                                log.error("穿梭车命令下发失败,穿梭车号={},任务数据={}", wrkCharge.getSteNo(), JSON.toJSON(steCommand));
                            } else {
                                // 修改工作档状态 6.小车待入 ===> 8.小车搬入库
                                wrkCharge.setWrkSts(8L);
                                // 修改工作档状态 24.小车到达 ===> 25.小车行驶
                                wrkCharge.setWrkSts(25L);
                                Date now = new Date();
                                wrkCharge.setCrnEndTime(now);
                                wrkCharge.setModiTime(now);
                                if (!wrkChargeService.updateById(wrkCharge)) {
                                    log.error("修改工作档状态 6.小车待入 ===> 8.小车搬入库 失败!!,工作号={}", wrkCharge.getWrkNo());
                                    log.error("修改充电任务状态 24.小车到达 ===> 25.小车行驶 失败!!,工作号={}", wrkCharge.getWrkNo());
                                }
                            }
                        }
                    } else if (wrkCharge.getWrkSts() == 9L) {
                        // 给输送线下发充电任务
                        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                        SteChargeType steChargeType = SteChargeType.get(wrkCharge.getLocNo());
                        if (null != steChargeType) {
                            if (devpThread.charge(steChargeType.ssbm - 1, true)) {
                                // 修改工作档状态 9.入库完成 ===> 10.库存更新完成
                                wrkCharge.setWrkSts(10L);
                                if (!wrkChargeService.updateById(wrkCharge)) {
                                    log.error("修改充电任务状态 9.入库完成 ===> 10.库存更新完成 失败!!,工作号={}", wrkCharge.getWrkNo());
                                }
                            }
                        } else {
                            log.error("获取充电桩号失败,解析库位:{}", wrkCharge.getLocNo());
                        }
                    }
                }
src/main/java/com/zy/core/enums/SteTaskModeType.java
@@ -22,6 +22,7 @@
    CHARGE(13, "充电"),         // 充电
//    CHECK_LEFT(14, "左盘点"),     // 左盘点
//    CHECK_RIGHT(15, "右盘点"),    // 右盘点
    CLOSE_CHARGE(17, "断开充电"),   // 断开充电
    ;
    public Integer id;
src/main/java/com/zy/core/model/protocol/SteProtocol.java
@@ -185,6 +185,11 @@
     */
    public Short crnAllowRun;
    /**
     * 充电状态  1:在充电;0:不在充电
     */
    private Short chargeStatus;
    public void setStatus(Short status){
        this.status = status;
        this.statusType = SteStatusType.get(status);
@@ -247,7 +252,8 @@
    public Boolean isIdle() {
        boolean res = this.statusType.equals(SteStatusType.IDLE)
                && this.pakMk.equals("N")
                && !isAlarm();
                && !isAlarm()
                && this.chargeStatus == 0;
        if (!res) {
            return res;
        } else {
src/main/java/com/zy/core/thread/SteThread.java
@@ -165,6 +165,7 @@
                steProtocol.setCrnStopRun(siemensS7Net.getByteTransform().TransInt16(result.Content, 38));
                steProtocol.setCrnStopFork(siemensS7Net.getByteTransform().TransInt16(result.Content, 40));
                steProtocol.setCrnAllowRun(siemensS7Net.getByteTransform().TransInt16(result.Content, 42));
                steProtocol.setChargeStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 44));
                OutputQueue.STE.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId()));
src/main/resources/mapper/WrkChargeMapper.xml
@@ -34,7 +34,7 @@
        from asr_wrk_charge
        where 1=1
        and ste_no = #{steNo}
        and wrk_sts != 10
        and wrk_sts != 28
    </select>
</mapper>
src/main/webapp/views/ste.html
@@ -50,6 +50,7 @@
                                <th>层</th>
                                <th>等待WCS确认</th>
                                <th>定位</th>
                                <th>充电状态</th>
                                <th>报警信息1</th>
                                <th>报警信息2</th>
                            </tr>
@@ -119,7 +120,8 @@
                            <button class="item" onclick="steOperator(9)">右待机</button>
<!--                            <button class="item" onclick="steOperator(11)">左搬移</button>-->
<!--                            <button class="item" onclick="steOperator(12)">右搬移</button>-->
                            <button class="item" onclick="steOperator(13)">充电</button>
                            <button class="item" onclick="steOperator(13)">开始充电</button>
                            <button class="item" onclick="steOperator(17)">断开充电</button>
<!--                            <button class="item" onclick="steOperator(14)">左盘点</button>-->
<!--                            <button class="item" onclick="steOperator(15)">右盘点</button>-->
                            <button class="item" onclick="steOperator(16)">任务完成</button>
@@ -309,8 +311,9 @@
                        setVal(tr.children("td").eq(8), table[i-1].lev);
                        setVal(tr.children("td").eq(9), table[i-1].waiting);
                        setVal(tr.children("td").eq(10), table[i-1].loca);
                        setVal(tr.children("td").eq(11), table[i-1].alarm1);
                        setVal(tr.children("td").eq(12), table[i-1].alarm2);
                        setVal(tr.children("td").eq(11), table[i-1].chargeStatus);
                        setVal(tr.children("td").eq(12), table[i-1].alarm1);
                        setVal(tr.children("td").eq(13), table[i-1].alarm2);
                    }
                } else if (res.code === 403){
                    window.location.href = baseUrl+"/login";
@@ -418,6 +421,7 @@
                "       <td></td>\n" +
                "       <td></td>\n" +
                "       <td></td>\n" +
                "       <td></td>\n" +
                "     </tr>\n";
        }
        $('#ste-state-table tbody').after(html);