自动化立体仓库 - WCS系统
Junjie
2023-12-12 e6e5c8240df979e71167283b8749adea99fc5160
src/main/java/com/zy/asrs/controller/MonitorController.java
@@ -3,16 +3,29 @@
import com.core.common.Arith;
import com.core.common.Cools;
import com.core.common.R;
import com.core.common.SpringUtils;
import com.zy.asrs.domain.dto.AxisBean;
import com.zy.asrs.domain.dto.WorkChartAxis;
import com.zy.asrs.domain.vo.LocChartPie;
import com.zy.asrs.entity.BasShuttleErr;
import com.zy.asrs.mapper.ReportQueryMapper;
import com.zy.asrs.service.BasShuttleErrService;
import com.zy.common.service.CommonService;
import com.zy.core.CrnThread;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.LedSlave;
import com.zy.core.model.LiftSlave;
import com.zy.core.model.ShuttleSlave;
import com.zy.core.model.command.LedCommand;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.model.protocol.LiftProtocol;
import com.zy.core.model.protocol.NyShuttleProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.LedThread;
import com.zy.core.thread.LiftThread;
import com.zy.core.thread.NyShuttleThread;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -33,6 +46,8 @@
    @Autowired
    private ReportQueryMapper reportQueryMapper;
    @Autowired
    private SlaveProperties slaveProperties;
    /**
     * 获取当前时间
@@ -57,7 +72,17 @@
     * 获取其他信息
     */
    @GetMapping("/other")
    public R monitorOther(@RequestParam("crnId") Integer crnId, @RequestParam("ledId") Integer ledId) {
    public R monitorOther(@RequestParam("crnId") Integer crnId, @RequestParam("ledId") Integer sta) {
        Integer ledId = 0;
        for (LedSlave led : slaveProperties.getLed()) {
            for (Integer staNo : led.getStaArr()) {
                if (staNo.equals(sta)) {
                    ledId = led.getId();
                    break;
                }
            }
        }
        Double xSpeed = 0.0D;
        Double ySpeed = 0.0D;
        Double zSpeed = 0.0D;
@@ -99,8 +124,16 @@
        // 获取输送线plc线程
        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, ledId);
        String ledContent = ledThread.getStringBuffer().toString();
//        ledContent = "ask的模块萨满大算了萨满大了\n 是窘境到埃及嗲家嗲\n 萨达姆打开萨满大凯撒麦当劳萨满大老师";
        String ledContent = ledThread==null?"":ledThread.getWorkNos().toString();
        if (!(xSpeed<127)){
            xSpeed=0.0;
        }
        if (!(ySpeed<127)){
            ySpeed=0.0;
        }
        if (!(zSpeed<127)){
            zSpeed=0.0;
        }
        return R.ok(
                Cools.add("xSpeed", Arith.multiplys(1, Math.abs(xSpeed), 1)) // 行走速度
@@ -235,9 +268,104 @@
    /**
     * 获取其他信息
     */
    @GetMapping("/led")
    public R monitorLed(@RequestParam("ledId") Integer ledId) {
        String ledContent = "";
        List<LedCommand> commandList = null;
        for (LedSlave slave : slaveProperties.getLed()) {
            if (slave.getStaArr().contains(ledId)) {
                LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, slave.getId());
                if (null != ledThread) {
                    ledContent = ledThread.getStringBuffer().toString();
                    commandList = ledThread.getCommandList();
                }
            }
        }
        return R.ok().add(commandList);
    }
    /**
     * 异常通知
     */
    @GetMapping("/led/error")
    public R monitorLedError(@RequestParam("ledId") Integer ledId) {
        String errorMsg = "";
        for (LedSlave slave : slaveProperties.getLed()) {
            if (slave.getStaArr().contains(ledId)) {
                LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, slave.getId());
                if (null != ledThread) {
                    errorMsg = ledThread.getErrorMsg().toString();
                }
            }
        }
        return R.ok().add(errorMsg);
    }
    /**
     * 设备异常通知
     */
    @GetMapping("/device/error")
    public R monitorDeviceError() {
        ArrayList<HashMap<String, Object>> list = new ArrayList<>();
        for (ShuttleSlave slave : slaveProperties.getShuttle()) {
            NyShuttleThread shuttleThread = (NyShuttleThread) SlaveConnection.get(SlaveType.Shuttle, slave.getId());
            NyShuttleProtocol shuttleProtocol = shuttleThread.getShuttleProtocol();
            if (shuttleProtocol == null) {
                continue;
            }
            if (shuttleProtocol.getErrState() == 1) {
                //故障中
                HashMap<String, Object> map = new HashMap<>();
                map.put("deviceNo", shuttleProtocol.getShuttleNo());//设备号-小车号
                map.put("errorMsg", shuttleProtocol.getErrCode$());//异常信息
                map.put("device", "四向车");//异常信息
                list.add(map);
            }
        }
        for (LiftSlave slave : slaveProperties.getLift()) {
            LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, slave.getId());
            LiftProtocol liftProtocol = liftThread.getLiftProtocol();
            if (liftProtocol == null) {
                continue;
            }
            if (liftProtocol.getDeviceError()) {
                //故障中
                StringBuffer buffer = new StringBuffer();
                if (liftProtocol.getFrontOverrun()) {
                    buffer.append("前超限");
                }
                if (liftProtocol.getBackOverrun()) {
                    buffer.append("后超限");
                }
                if (liftProtocol.getLeftOverrun()) {
                    buffer.append("左超限");
                }
                if (liftProtocol.getRightOverrun()) {
                    buffer.append("右超限");
                }
                if (liftProtocol.getOverHeight()) {
                    buffer.append("超高");
                }
                if (liftProtocol.getOverWeight()) {
                    buffer.append("超重");
                }
                HashMap<String, Object> map = new HashMap<>();
                map.put("deviceNo", liftProtocol.getLiftNo());//设备号-提升机号
                map.put("errorMsg", buffer.toString());//异常信息
                map.put("device", "提升机");//异常信息
                list.add(map);
            }
        }
        return R.ok().add(list);
    }