自动化立体仓库 - WCS系统
#
luxiaotao1123
2022-09-26 64da17c397d02f8b1d19b9c46134eb8469957c46
src/main/java/com/zy/asrs/controller/SiteController.java
@@ -1,5 +1,6 @@
package com.zy.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.R;
@@ -11,11 +12,15 @@
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.SlaveType;
import com.zy.core.enums.SteTaskModeType;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.SteCommand;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import com.zy.core.DevpThread;
import com.zy.core.thread.SiemensDevpThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -28,6 +33,7 @@
 * 输送设备接口
 * Created by vincent on 2020-06-01
 */
@Slf4j
@RestController
@RequestMapping("/site")
public class SiteController {
@@ -36,6 +42,54 @@
    private SlaveProperties slaveProperties;
    @Autowired
    private BasDevpService basDevpService;
    @GetMapping("/io/mode/info/site")
    @ManagerAuth(memo = "充电模式")
    public R ioMode(){
        List<Map<String, Object>> res = new ArrayList<>();
        for (DevpSlave devp : slaveProperties.getDevp()) {
            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?"充电中":"关闭");
            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){
        for (DevpSlave devp : slaveProperties.getDevp()) {
            // 输送线充电命令下发区 --------------------------------------------------------------------------
            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
            boolean res = devpThread.charge(floor - 1, charge);
            if (!charge && res) {
                // 穿梭车充电命令下发区 --------------------------------------------------------------------------
                int steNo = floor;
                SteCommand steCommand = new SteCommand();
                steCommand.setSteNo(steNo); // 穿梭车编号
                steCommand.setTaskNo(9999); // 工作号
                steCommand.setTaskMode(SteTaskModeType.CLOSE_CHARGE);
                if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
                    log.error("穿梭车命令下发失败,穿梭车号={},任务数据={}", steNo, JSON.toJSON(steCommand));
                }
            }
            return res?R.ok():R.error();
        }
        return R.ok();
    }
    @PostMapping("/table/site")
    @ManagerAuth(memo = "站点信息表")
@@ -156,6 +210,7 @@
            for (Map.Entry<Integer, StaProtocol> entry : station.entrySet()) {
                if (siteId.equals(entry.getKey())) {
                    StaProtocol staProtocol = entry.getValue();
                    staProtocol = staProtocol.clone();
                    if (workNo != null) {
                        staProtocol.setWorkNo(workNo);
                    }