#
Junjie
7 天以前 1ae2f3acafa9d036dfe4f14f8dcc5c4b5815c46a
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -3,32 +3,23 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.R;
import com.zy.asrs.domain.ShuttleGatherResult;
import com.zy.asrs.domain.enums.NotifyMsgType;
import com.zy.asrs.domain.param.*;
import com.zy.asrs.entity.ApiLog;
import com.zy.asrs.entity.DeviceConfig;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.DeviceConfigService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.utils.NotifyUtils;
import com.zy.common.annotations.OpenApiLog;
import com.zy.common.service.CommonService;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.dispatcher.ShuttleDispatchUtils;
import com.zy.core.enums.SlaveType;
import com.zy.core.enums.WrkIoType;
import com.zy.core.model.protocol.ForkLiftProtocol;
import com.zy.core.model.protocol.LiftProtocol;
import com.zy.core.model.protocol.ShuttleProtocol;
import com.zy.core.thread.ForkLiftThread;
import com.zy.core.thread.LiftThread;
import com.zy.core.thread.ShuttleThread;
import com.zy.system.entity.Config;
import com.zy.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
@@ -41,10 +32,10 @@
@RequestMapping("/openapi")
public class OpenController {
    @Value("${mainProcessPlugin}")
    private String mainProcessPlugin;
    @Autowired
    private CommonService commonService;
    @Autowired
    private ShuttleDispatchUtils shuttleDispatchUtils;
    @Autowired
    private NotifyUtils notifyUtils;
    @Autowired
@@ -54,36 +45,7 @@
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private DeviceConfigService deviceConfigService;
    @PostMapping("/createMoveTask")
    @OpenApiLog(memo = "小车移动任务")
    public R createMoveTask(@RequestBody CreateMoveTaskParam param) {
        if (param == null) {
            return R.error("参数不能为空");
        }
        boolean dispatchShuttle = shuttleDispatchUtils.dispatchShuttle(null, param.getLocNo(), param.getShuttleNo());
        apiLogService.insert(new ApiLog(
                null
                , "小车移动任务"
                , "/createMoveTask"
                , null
                , null
                , null
                , JSON.toJSONString(param)
                , null
                , null
                , dispatchShuttle ? 1 : 0
                , 1
                , new Date()
                , null
                , null
        ));
        if (dispatchShuttle) {
            return R.ok();
        }
        return R.error("生成失败");
    }
    private ConfigService configService;
    //移库任务
    @PostMapping("/createLocMoveTask")
@@ -237,114 +199,60 @@
//    @OpenApiLog(memo = "获取设备状态")
    public R getDeviceStatus() {
        HashMap<String, Object> map = new HashMap<>();
        //获取小车数据
        ArrayList<ShuttleProtocol> shuttleProtocols = new ArrayList<>();
        List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
                .eq("device_type", String.valueOf(SlaveType.Shuttle)));
        for (DeviceConfig device : shuttleList) {
            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo());
            if (shuttleThread == null) {
                continue;
            }
            ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
            if (shuttleProtocol == null) {
                continue;
            }
            shuttleProtocols.add(shuttleProtocol);
        }
        //获取货叉提升机数据
        ArrayList<ForkLiftProtocol> forkLiftProtocols = new ArrayList<>();
        List<DeviceConfig> forkLiftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
                .eq("device_type", String.valueOf(SlaveType.ForkLift)));
        for (DeviceConfig device : forkLiftList) {
            ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, device.getDeviceNo());
            if (forkLiftThread == null) {
                continue;
            }
            ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
            if (forkLiftProtocol == null) {
                continue;
            }
            forkLiftProtocols.add(forkLiftProtocol);
        }
        //获取提升机数据
        ArrayList<LiftProtocol> liftProtocols = new ArrayList<>();
        List<DeviceConfig> liftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
                .eq("device_type", String.valueOf(SlaveType.Lift)));
        for (DeviceConfig device : liftList) {
            LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, device.getDeviceNo());
            if (liftThread == null) {
                continue;
            }
            LiftProtocol liftProtocol = liftThread.getStatus();
            if (liftProtocol == null) {
                continue;
            }
            liftProtocols.add(liftProtocol);
        }
        map.put("shuttle", shuttleProtocols);
        map.put("forkLift", forkLiftProtocols);
        map.put("lift", liftProtocols);
        apiLogService.insert(new ApiLog(
                null
                , "获取设备状态"
                , "/deviceStatus"
                , null
                , null
                , null
                , null
                , JSON.toJSONString(map)
                , null
                , null
                , 1
                , new Date()
                , null
                , null
        ));
        return R.ok().add(map);
    }
    @RequestMapping("/liftDeviceOriginData")
//    @OpenApiLog(memo = "获取提升机原始数据")
    public R getLiftDeviceOriginData() {
        HashMap<Integer, String> map = new HashMap<>();
        //获取提升机数据
        List<DeviceConfig> liftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
                .eq("device_type", String.valueOf(SlaveType.Lift)));
        for (DeviceConfig device : liftList) {
            LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, device.getDeviceNo());
            if (liftThread == null) {
                continue;
            }
            map.put(device.getDeviceNo(), liftThread.getRealtimeOriginData());
        }
        apiLogService.insert(new ApiLog(
                null
                , "获取提升机原始数据"
                , "/liftDeviceOriginData"
                , null
                , null
                , null
                , null
                , JSON.toJSONString(map)
                , null
                , null
                , 1
                , new Date()
                , null
                , null
        ));
//        //获取小车数据
//        ArrayList<ShuttleProtocol> shuttleProtocols = new ArrayList<>();
//        List<DeviceConfig> shuttleList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
//                .eq("device_type", String.valueOf(SlaveType.Shuttle)));
//        for (DeviceConfig device : shuttleList) {
//            ShuttleThread shuttleThread = (ShuttleThread) SlaveConnection.get(SlaveType.Shuttle, device.getDeviceNo());
//            if (shuttleThread == null) {
//                continue;
//            }
//
//            ShuttleProtocol shuttleProtocol = shuttleThread.getStatus();
//            if (shuttleProtocol == null) {
//                continue;
//            }
//            shuttleProtocols.add(shuttleProtocol);
//        }
//
//        //获取货叉提升机数据
//        ArrayList<ForkLiftProtocol> forkLiftProtocols = new ArrayList<>();
//        List<DeviceConfig> forkLiftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
//                .eq("device_type", String.valueOf(SlaveType.ForkLift)));
//        for (DeviceConfig device : forkLiftList) {
//            ForkLiftThread forkLiftThread = (ForkLiftThread) SlaveConnection.get(SlaveType.ForkLift, device.getDeviceNo());
//            if (forkLiftThread == null) {
//                continue;
//            }
//
//            ForkLiftProtocol forkLiftProtocol = forkLiftThread.getStatus();
//            if (forkLiftProtocol == null) {
//                continue;
//            }
//            forkLiftProtocols.add(forkLiftProtocol);
//        }
//
//        //获取提升机数据
//        ArrayList<LiftProtocol> liftProtocols = new ArrayList<>();
//        List<DeviceConfig> liftList = deviceConfigService.selectList(new EntityWrapper<DeviceConfig>()
//                .eq("device_type", String.valueOf(SlaveType.Lift)));
//        for (DeviceConfig device : liftList) {
//            LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, device.getDeviceNo());
//            if (liftThread == null) {
//                continue;
//            }
//
//            LiftProtocol liftProtocol = liftThread.getStatus();
//            if (liftProtocol == null) {
//                continue;
//            }
//            liftProtocols.add(liftProtocol);
//        }
//
//        map.put("shuttle", shuttleProtocols);
//        map.put("forkLift", forkLiftProtocols);
//        map.put("lift", liftProtocols);
        return R.ok().add(map);
    }
@@ -363,23 +271,6 @@
        HashMap<String, Object> map = new HashMap<>();
        map.put("locNo", locMast.getLocNo());
        map.put("locSts", locMast.getLocSts());
        apiLogService.insert(new ApiLog(
                null
                , "获取指定库位信息"
                , "/getLocInformation"
                , null
                , null
                , null
                , JSON.toJSONString(param)
                , JSON.toJSONString(map)
                , null
                , null
                , 1
                , new Date()
                , null
                , null
        ));
        return R.ok().add(map);
    }
@@ -400,74 +291,7 @@
            list.add(map);
        }
        apiLogService.insert(new ApiLog(
                null
                , "获取全部库位信息"
                , "/getAllLocInformation"
                , null
                , null
                , null
                , null
                , JSON.toJSONString(list)
                , null
                , null
                , 1
                , new Date()
                , null
                , null
        ));
        return R.ok().add(list);
    }
    @PostMapping("/shuttleGather")
    @OpenApiLog(memo = "小车集合")
    public R shuttleGather(@RequestBody ShuttleGatherParam param) {
        List<ShuttleGatherResult> shuttleGather = shuttleDispatchUtils.shuttleGather(param);
        apiLogService.insert(new ApiLog(
                null
                , "小车集合"
                , "/shuttleGather"
                , null
                , null
                , null
                , JSON.toJSONString(param)
                , JSON.toJSONString(shuttleGather)
                , null
                , null
                , 1
                , new Date()
                , null
                , null
        ));
        return R.ok().add(shuttleGather);
    }
    @PostMapping("/shuttleDemo")
    @OpenApiLog(memo = "小车演示")
    public R shuttleDemo(@RequestBody ShuttleDemoParam param) {
        shuttleDispatchUtils.shuttleDemo(param);
        apiLogService.insert(new ApiLog(
                null
                , "小车演示"
                , "/shuttleDemo"
                , null
                , null
                , null
                , JSON.toJSONString(param)
                , null
                , null
                , null
                , 1
                , new Date()
                , null
                , null
        ));
        return R.ok();
    }
    @PostMapping("/queryTask")
@@ -506,10 +330,48 @@
        return R.ok().add(wrkMasts);
    }
    @GetMapping("/test")
    public R test() {
        notifyUtils.notify("task", 1, "9999", "W9999", NotifyMsgType.SHUTTLE_MOVING, "data");
        notifyUtils.notify(String.valueOf(SlaveType.Shuttle), 2, "9999", "W9999", NotifyMsgType.SHUTTLE_MOVE_COMPLETE);
    @GetMapping("/systemStatus")
    public R systemStatus() {
        return R.ok();
    }
    @GetMapping("/getFakeSystemRunStatus")
    public R getFakeSystemRunStatus() {
        HashMap<String, Object> map = new HashMap<>();
        if(mainProcessPlugin.equals("FakeProcess")) {
            map.put("running", false);
            map.put("isFake", true);
            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "enableFake"));
            if(config != null) {
                if(config.getValue().equals("Y")) {
                    map.put("running", true);
                }
            }
        } else {
            map.put("isFake", false);
        }
        return R.ok().add(map);
    }
    @PostMapping("/startFakeSystem")
    @OpenApiLog(memo = "启动仿真模拟")
    public R startFakeSystem() {
        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "enableFake"));
        if(config != null) {
            config.setValue("Y");
            configService.updateById(config);
        }
        return R.ok();
    }
    @PostMapping("/stopFakeSystem")
    @OpenApiLog(memo = "停止仿真模拟")
    public R stopFakeSystem() {
        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "enableFake"));
        if(config != null) {
            config.setValue("N");
            configService.updateById(config);
        }
        return R.ok();
    }