自动化立体仓库 - WCS系统
zc
3 天以前 61dbf118522a9ac98027b624b5d46761fe536bbe
src/main/java/com/zy/asrs/controller/TVController.java
@@ -10,7 +10,6 @@
import com.zy.asrs.domain.dto.AxisBean;
import com.zy.asrs.domain.dto.WorkChartAxis;
import com.zy.asrs.domain.dto.LocChartPie;
import com.zy.asrs.domain.dto.WrkDetl;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.BasShuttle;
import com.zy.asrs.entity.BasShuttleErr;
@@ -26,11 +25,14 @@
import com.zy.common.utils.HttpHandler;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.LedSlave;
import com.zy.core.model.ShuttleSlave;
import com.zy.core.model.command.LedCommand;
import com.zy.core.model.protocol.ShuttleProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.thread.LedThread;
import com.zy.core.thread.ShuttleThread;
import com.zy.core.thread.impl.NormalLedThread;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
@@ -223,83 +225,44 @@
     */
    @GetMapping("/led")
    public R monitorLed(@RequestParam("ledId") Integer ledId) {
        BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", ledId));
        int dev_no = 1011;
        if (ledId == 1) {
            dev_no = 1011;
        } else if (ledId == 2) {
            dev_no = 1014;
        } else if (ledId == 3) {
            dev_no = 1021;
        } else if (ledId == 4) {
            dev_no = 1025;
        }
        BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", dev_no));
        if (Cools.isEmpty(basDevp)) {
            return R.ok();
        }
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wms_wrk_no", basDevp.getWrkNo()));
        if (Cools.isEmpty(wrkMast)) {
        if (Cools.isEmpty(basDevp.getWrkNo1())) {
            return R.ok();
        }
        List<LedCommand> commands = new ArrayList<>();
        // 组装命令
        LedCommand ledCommand = new LedCommand();
        ledCommand.setWorkNo(wrkMast.getWmsWrkNo());
        ledCommand.setIoType(wrkMast.getIoType());
        // 出库模式
        switch (wrkMast.getIoType()) {
            case 1:
                ledCommand.setTitle("全板入库");
                break;
            case 10:
                ledCommand.setTitle("空板入库");
                break;
            case 101:
                ledCommand.setTitle("全板出库");
                break;
            case 103:
                ledCommand.setTitle("拣料出库");
                break;
            case 104:
                ledCommand.setTitle("并板出库");
                break;
            case 107:
                ledCommand.setTitle("盘点出库");
                break;
            case 110:
                ledCommand.setTitle("空板出库");
                ledCommand.setEmptyMk(true);
                break;
            case 53:
                ledCommand.setTitle("拣料入库");
                break;
            case 57:
                ledCommand.setTitle("盘点入库");
                break;
            case 54:
                ledCommand.setTitle("并板入库");
                break;
            default:
                break;
        Map<String, Object> param = new HashMap<>();
        param.put("taskNo", basDevp.getWrkNo1());
        String response = null;
        try {
            response = new HttpHandler.Builder()
                    .setUri(wmsUrl)
                    .setPath("/rpc/led/getTask2")
                    .setJson(JSON.toJSONString(param))
                    .build()
                    .doPost();
        } catch (IOException e) {
            e.printStackTrace();
        }
        ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
        ledCommand.setLocNo(wrkMast.getLocNo());
        ledCommand.setStaNo(wrkMast.getStaNo());
        if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
            Map<String, Object> param = new HashMap<>();
            param.put("taskNo", wrkMast.getWmsWrkNo());
            param.put("sta", wrkMast.getStaNo());
            String response = null;
            try {
                response = new HttpHandler.Builder()
                        .setUri(wmsUrl)
                        .setPath("/rpc/led/getTask2")
                        .setJson(JSON.toJSONString(param))
                        .build()
                        .doPost();
            } catch (IOException e) {
                e.printStackTrace();
            }
            JSONObject jsonObject = JSON.parseObject(response);
            Integer code = jsonObject.getInteger("code");
            if (code.equals(200)) {
                String data = jsonObject.getString("data");
                List<LedCommand> wrkDetls = JSONArray.parseArray(data, LedCommand.class);
                commands.addAll(wrkDetls);
            }
        JSONObject jsonObject = JSON.parseObject(response);
        Integer code = jsonObject.getInteger("code");
        if (code.equals(200)) {
            String data = jsonObject.getString("data");
            List<LedCommand> wrkDetls = JSONArray.parseArray(data, LedCommand.class);
            commands.addAll(wrkDetls);
        }
        return R.ok().add(commands);
    }
@@ -308,22 +271,48 @@
     */
    @GetMapping("/led/error")
    public R monitorLedError(@RequestParam("ledId") Integer ledId) {
        BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", ledId));
        if (Cools.isEmpty(basDevp)) {
            return R.ok();
        String errorMsg = "";
        for (LedSlave slave : slaveProperties.getLed()) {
            if (slave.getId() == ledId) {
                NormalLedThread ledThread = (NormalLedThread) SlaveConnection.get(SlaveType.Led, slave.getId());
                if (null != ledThread) {
                    errorMsg = ledThread.getErrorMsg().toString();
                }
            }
        }
        if (Cools.isEmpty(basDevp.getArea())) {
            return R.ok();
        }
        if (basDevp.getLoading().equals("N")) {
            basDevp.setArea("");
            basDevpService.updateById(basDevp);
            return R.ok();
        }
        String errorMsg = basDevp.getArea();
        return R.ok().add(errorMsg);
    }
    /**
     * 异常通知
     */
//    @GetMapping("/led/error")
//    public R monitorLedError(@RequestParam("ledId") Integer ledId) {
//        int dev_no = 1012;
//        if (ledId == 1) {
//            dev_no = 1012;
//        } else if (ledId == 2) {
//            dev_no = 1014;
//        } else if (ledId == 3) {
//            dev_no = 1022;
//        } else if (ledId == 4) {
//            dev_no = 1025;
//        }
//        BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no", dev_no));
//        if (Cools.isEmpty(basDevp)) {
//            return R.ok();
//        }
//        if (Cools.isEmpty(basDevp.getArea())) {
//            return R.ok();
//        }
//        if (basDevp.getLoading().equals("N")) {
//            basDevp.setArea("");
//            basDevpService.updateById(basDevp);
//            return R.ok();
//        }
//        String errorMsg = basDevp.getArea();
//
//        return R.ok().add(errorMsg);
//    }
    /**
     * 设备异常通知
@@ -343,6 +332,9 @@
                continue;
            }
            HashMap<String, Object> map = new HashMap<>();
            if (Cools.isEmpty(shuttleProtocol.getErrorCode())) {
                continue;
            }
            int i = Integer.parseInt(shuttleProtocol.getErrorCode());
            if (i > 0) {
                BasShuttleErr basShuttleErr = basShuttleErrService.queryByCode(i);