Junjie
2023-05-24 38db3a419d0b794b8a2bab98d2fc15d4bb4c8b31
src/main/java/com/zy/asrs/controller/CrnController.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.R;
@@ -12,10 +13,7 @@
import com.zy.asrs.domain.vo.CommandLogVo;
import com.zy.asrs.domain.vo.CrnMsgTableVo;
import com.zy.asrs.domain.vo.CrnStateTableVo;
import com.zy.asrs.entity.BasCrnError;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.BasCrnErrorMapper;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.LocMastService;
@@ -37,10 +35,7 @@
import com.zy.core.properties.SystemProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
@@ -53,7 +48,6 @@
 */
@Slf4j
@RestController
@RequestMapping("/crn")
public class CrnController {
    @Autowired
@@ -71,7 +65,7 @@
    @ManagerAuth(memo = "进行中的命令")
    @PostMapping("/command/ongoing")
    @PostMapping("/crn/command/ongoing")
    public R ongoingCommand(){
        List<CommandLogVo> list = new ArrayList<>();
        for (CrnSlave crn : slaveProperties.getCrn()) {
@@ -97,7 +91,7 @@
        return R.ok().add(list);
    }
    @PostMapping("/table/crn/state")
    @PostMapping("/crn/table/crn/state")
    @ManagerAuth(memo = "堆垛机信息表")
    public R crnStateTable(){
        List<CrnStateTableVo> list = new ArrayList<>();
@@ -135,7 +129,41 @@
        return R.ok().add(list);
    }
    @PostMapping("/table/crn/msg")
    @PostMapping("/crn/table/crn/{id}/state")
    @ManagerAuth(memo = "堆垛机信息表")
    public R crnStateTable(@PathVariable("id") Integer id){
        BasCrnp basCrnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", id).orderBy("crn_no"));
        // 表格行
        CrnStateTableVo vo = new CrnStateTableVo();
        vo.setCrnNo(basCrnp.getCrnNo());   //  堆垛机号
        // 获取堆垛机信息
        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, basCrnp.getCrnNo());
        if (crnThread == null) {
            return R.error();
        }
        CrnProtocol crnProtocol = crnThread.getCrnProtocol();
        if (crnProtocol == null) {
            return R.error();
        }
        vo.setWorkNo(crnProtocol.getTaskNo());  //  任务号
        vo.setStatusType(crnProtocol.modeType.desc);   //  模式状态
        vo.setStatus(crnProtocol.getStatusType().desc);     //  状态
        vo.setLoading((crnProtocol.getLoaded() != null && crnProtocol.getLoaded() == 1) ? "有物" : "无物");  //  有物
        vo.setBay(crnProtocol.getBay());    //  列
        vo.setLev(crnProtocol.getLevel());  //  层
        vo.setForkOffset(crnProtocol.getForkPosType().desc);    // 货叉位置
        vo.setLiftPos(crnProtocol.getLiftPosType().desc);
        vo.setWalkPos(crnProtocol.getWalkPos()==1?"不在定位":"在定位");
        vo.setWarnCode(String.valueOf(crnProtocol.getAlarm1()));
        if (crnProtocol.getAlarm1() > 0) {
            BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
            vo.setAlarm(crnError==null?"未知异常":crnError.getErrName());
        }
        return R.ok().add(vo);
    }
    @PostMapping("/crn/table/crn/msg")
    @ManagerAuth(memo = "堆垛机数据表")
    public R crnMsgTable(){
        List<CrnMsgTableVo> list = new ArrayList<>();
@@ -179,7 +207,7 @@
        return R.ok().add(list);
    }
    @PostMapping("/output/site")
    @PostMapping("/crn/output/site")
    @ManagerAuth(memo = "堆垛机报文日志输出")
    public R crnOutput(){
        StringBuilder str = new StringBuilder();
@@ -193,7 +221,7 @@
    }
    @GetMapping("/demo/status")
    @GetMapping("/crn/demo/status")
    public R demoStatus(){
        List<Map<String, Object>> res = new ArrayList<>();
        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
@@ -206,7 +234,7 @@
    }
    @PostMapping("/demo/switch")
    @PostMapping("/crn/demo/switch")
    @ManagerAuth(memo = "堆垛机演示")
    public R crnDemo(CrnDemoParam param) throws InterruptedException {
        if (Cools.isEmpty(param.getCrnId())){
@@ -235,7 +263,7 @@
    /****************************************************************/
    @ManagerAuth(memo = "入库")
    @PostMapping("/operator/put")
    @PostMapping("/crn/operator/put")
    public R crnPut(CrnOperatorParam param){
        CrnCommand command = new CrnCommand();
        command.setCrnNo(param.getCrnNo()); // 堆垛机编号
@@ -252,7 +280,7 @@
    }
    @ManagerAuth(memo = "出库")
    @PostMapping("/operator/take")
    @PostMapping("/crn/operator/take")
    public R crnTake(CrnOperatorParam param){
        CrnCommand command = new CrnCommand();
        command.setCrnNo(param.getCrnNo()); // 堆垛机编号
@@ -269,7 +297,7 @@
    }
    @ManagerAuth(memo = "库位转移")
    @PostMapping("/operator/stockMove")
    @PostMapping("/crn/operator/stockMove")
    public R crnStockMove(CrnOperatorParam param){
        CrnCommand command = new CrnCommand();
        command.setCrnNo(param.getCrnNo()); // 堆垛机编号
@@ -291,7 +319,7 @@
    }
    @ManagerAuth(memo = "站到站")
    @PostMapping("/operator/siteMove")
    @PostMapping("/crn/operator/siteMove")
    public R crnSiteMove(CrnOperatorParam param){
        CrnCommand command = new CrnCommand();
        command.setCrnNo(param.getCrnNo()); // 堆垛机编号
@@ -308,7 +336,7 @@
    }
    @ManagerAuth(memo = "回原点")
    @PostMapping("/operator/bacOrigin")
    @PostMapping("/crn/operator/bacOrigin")
    public R crnBacOrigin(CrnOperatorParam param){
        CrnCommand command = new CrnCommand();
        command.setCrnNo(param.getCrnNo()); // 堆垛机编号
@@ -325,7 +353,7 @@
    }
    @ManagerAuth(memo = "反原点")
    @PostMapping("/operator/reverseOrigin")
    @PostMapping("/crn/operator/reverseOrigin")
    public R reverseOrigin(CrnOperatorParam param){
        CrnCommand command = new CrnCommand();
        command.setCrnNo(param.getCrnNo()); // 堆垛机编号
@@ -360,7 +388,7 @@
//    }
    @ManagerAuth(memo = "任务完成")
    @PostMapping("/operator/taskComplete")
    @PostMapping("/crn/operator/taskComplete")
    public R crnTaskComplete(CrnOperatorParam param){
        CrnCommand command = new CrnCommand();
        command.setCrnNo(param.getCrnNo()); // 堆垛机编号
@@ -389,7 +417,7 @@
//    }
    @ManagerAuth(memo = "清除命令")
    @PostMapping("/operator/clearCommand")
    @PostMapping("/crn/operator/clearCommand")
    public R crnClearCommand(CrnOperatorParam param){
        if (param.getCrnNo() == null) {
            throw new CoolException("请选择堆垛机");
@@ -409,7 +437,7 @@
    }
    @ManagerAuth(memo = "手动复位")
    @PostMapping("/operator/handleReset")
    @PostMapping("/crn/operator/handleReset")
    public R handleReset(CrnOperatorParam param) throws Exception {
        if (param.getCrnNo() == null) {
            throw new CoolException("请选择堆垛机");
@@ -501,5 +529,33 @@
        }
    }
    // /crn/list/auth
    @RequestMapping(value = "/crnListQuery/auth")
    @ManagerAuth
    public R listQuery(String condition){
        ArrayList<HashMap<String, Object>> list = new ArrayList<>();
        for (CrnSlave crn : slaveProperties.getCrn()) {
            // 获取堆垛机信息
            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
            if (crnThread == null) {
                continue;
            }
            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
            if (crnProtocol == null) {
                continue;
            }
            HashMap<String, Object> map = new HashMap<>();
            map.put("id", crn.getId());
            map.put("value", "堆垛机" + crn.getId() + "号");
            if (condition != "" && !condition.equals(crn.getId().toString())) {
                continue;
            }
            list.add(map);
        }
        return R.ok().add(list);
    }
}