自动化立体仓库 - WCS系统
Junjie
2023-07-26 14cf00a11479cb1696eec55e10208490bd4aa09d
src/main/java/com/zy/asrs/controller/SiteController.java
@@ -63,69 +63,16 @@
            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
            Map<String, Object> map1 = new HashMap<>();
            map1.put("floor", 1);
            map1.put("modeVal", devpThread.charge0);
            map1.put("modeDesc", devpThread.charge0?"充电中":"关闭");
            map1.put("modeVal", !devpThread.charge0);
            map1.put("modeDesc", !devpThread.charge0?"充电中":"关闭");
            res.add(map1);
            Map<String, Object> map2 = new HashMap<>();
            map2.put("floor", 2);
            map2.put("modeVal", devpThread.charge1);
            map2.put("modeDesc", devpThread.charge1?"充电中":"关闭");
            res.add(map2);
            Map<String, Object> map3 = new HashMap<>();
            map3.put("floor", 3);
            map3.put("modeVal", devpThread.charge2);
            map3.put("modeDesc", devpThread.charge2?"充电中":"关闭");
            res.add(map3);
        }
        return R.ok().add(res);
    }
    @PostMapping("/io/mode/action/site")
    @ManagerAuth(memo = "充电控制")
    public R ioModeAction(@RequestParam("floor") Integer floor, @RequestParam("charge") Boolean charge){
        if (null != wrkChargeService.selectWorking(null, WrkChargeType.charge)) {
            return R.error("目前存在小车充电任务,请稍后再试");
        }
        if (null != wrkChargeService.selectWorking(null, WrkChargeType.reset)) {
            return R.error("目前存在小车复位任务,请稍后再试");
        }
        if (charge) {
            return R.ok();
        }
        SteChargeType steCharge = SteChargeType.get(floor);
        assert steCharge != null;
        Integer steNo = basSteService.hasCarOfLocNo(steCharge.locNo);
        if (Cools.isEmpty(steNo)) {
            return R.error(steNo + "号小车不在" + floor + "号充电桩,请检查小车定位");
        }
        SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
        SteProtocol steProtocol = steThread.getSteProtocol();
        BasSte basSte = basSteService.selectById(steNo);
        if (steProtocol.getMode() == 0) {
            return R.error(steNo + "号小车离线,无法操作");
        }
        if (!steProtocol.getStatusType().equals(SteStatusType.IDLE)) {
            return R.error(steNo + "号小车不是空闲,无法操作");
        }
        WrkCharge wrkCharge = wrkChargeService.selectWorking(steNo, WrkChargeType.reset);
        if (wrkCharge == null) {
            // 开始穿梭车复位任务
            wrkCharge = new WrkCharge();
            wrkCharge.setSteNo(steNo);
            wrkCharge.setWrkNo(commonService.getChargeWorkNo(6));
            wrkCharge.setWrkSts(41L);   // 41.小车准备复位
            wrkCharge.setCrnNo(2);  // 固定2号堆垛机
            wrkCharge.setIoPri((double) 10);
            wrkCharge.setSourceLocNo(steCharge.locNo);
            wrkCharge.setLocNo(basSte.getIdleLoc());
            wrkCharge.setMemo("reset");
            wrkCharge.setAppeTime(new Date());
            if (!wrkChargeService.insert(wrkCharge)) {
                News.error("保存{}号穿梭车复位任务失败!!!", steNo);
            }
        }
        return R.ok(steNo + "号小车准备离开" + floor + "号充电桩");
    }
    @PostMapping("/table/site")
@@ -151,6 +98,8 @@
            vo.setLoading(staProtocol.isLoading()?"Y":"N");     // 有物
            vo.setInEnable(staProtocol.isInEnable()?"Y":"N");   // 可入
            vo.setOutEnable(staProtocol.isOutEnable()?"Y":"N"); // 可出
            vo.setLiftArrival(staProtocol.isLiftArrival()?"Y":"N"); // 提升机到位信号
            vo.setShuttleTakeEnable(staProtocol.isShuttleTakeEnable()?"Y":"N"); // 穿梭车可取信号
            vo.setPakMk(staProtocol.isPakMk()?"Y":"N");       // 入库标记
            vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N");     // 空板信号
            vo.setStaNo(staProtocol.getStaNo());                // 目标站