Junjie
11 小时以前 f305e5244e059c5e43566412f69b180e2e790026
src/main/java/com/zy/asrs/controller/DualCrnController.java
@@ -5,11 +5,14 @@
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.domain.param.DualCrnCommandParam;
import com.zy.asrs.domain.param.DualCrnUpdateTaskNoParam;
import com.zy.asrs.domain.vo.DualCrnStateTableVo;
import com.zy.asrs.entity.BasDualCrnp;
import com.zy.asrs.service.BasDualCrnpService;
import com.zy.common.utils.RedisUtil;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.Task;
import com.zy.core.model.command.DualCrnCommand;
@@ -21,6 +24,7 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
@@ -30,6 +34,8 @@
    @Autowired
    private BasDualCrnpService basDualCrnpService;
    @Autowired
    private RedisUtil redisUtil;
    @PostMapping("/dualcrn/table/crn/state")
    @ManagerAuth(memo = "双工位堆垛机信息表")
@@ -50,6 +56,8 @@
            }
            vo.setTaskNo(p.getTaskNo());
            vo.setTaskNoTwo(p.getTaskNoTwo());
            vo.setDeviceTaskNo(p.getDeviceTaskNo());
            vo.setDeviceTaskNoTwo(p.getDeviceTaskNoTwo());
            vo.setMode(p.getModeType() == null ? "-" : p.getModeType().desc);
            vo.setStatus(p.getStatusType() == null ? "-" : p.getStatusType().desc);
            vo.setStatusTwo(p.getStatusTypeTwo() == null ? "-" : p.getStatusTypeTwo().desc);
@@ -61,15 +69,18 @@
            vo.setForkOffsetTwo(p.getForkPosTypeTwo() == null ? "-" : p.getForkPosTypeTwo().desc);
            vo.setLiftPos(p.getLiftPosType() == null ? "-" : p.getLiftPosType().desc);
            vo.setWalkPos(p.getWalkPos() != null && p.getWalkPos() == 0 ? "在定位" : "不在定位");
            vo.setTaskReceive(p.getTaskReceive() != null && p.getTaskReceive() == 1 ? "接收" : "无任务");
            vo.setTaskReceiveTwo(p.getTaskReceiveTwo() != null && p.getTaskReceiveTwo() == 1 ? "接收" : "无任务");
            vo.setXspeed(p.getXSpeed());
            vo.setYspeed(p.getYSpeed());
            vo.setZspeed(p.getZSpeed());
            vo.setXdistance(p.getXDistance());
            vo.setYdistance(p.getYDistance());
            vo.setXduration(p.getXDuration());
            vo.setYduration(p.getYDuration());
            vo.setTaskReceive(String.valueOf(p.getTaskReceive()));
            vo.setTaskReceiveTwo(String.valueOf(p.getTaskReceiveTwo()));
            vo.setTaskSend(String.valueOf(p.getTaskSend()));
            vo.setTaskSendTwo(String.valueOf(p.getTaskSendTwo()));
            vo.setXspeed(String.format("%.2f", p.getXSpeed()));
            vo.setYspeed(String.format("%.2f", p.getYSpeed()));
            vo.setZspeed(String.format("%.2f", p.getZSpeed()));
            vo.setXdistance(String.format("%.2f", p.getXDistance()));
            vo.setYdistance(String.format("%.2f", p.getYDistance()));
            vo.setXduration(String.format("%.2f", p.getXDuration()));
            vo.setYduration(String.format("%.2f", p.getYDuration()));
            vo.setWarnCode(p.getAlarm() == null ? "-" : String.valueOf(p.getAlarm()));
            if (p.getAlarm() != null && p.getAlarm() > 0) {
                vo.setDeviceStatus("ERROR");
@@ -173,8 +184,39 @@
        if (crnThread == null) {
            return R.error("线程不存在");
        }
        DualCrnCommand command = crnThread.getResetCommand(crnNo, station);
        DualCrnCommand command = crnThread.getResetCommand(9999, crnNo, station);
        MessageQueue.offer(SlaveType.DualCrn, crnNo, new Task(3, command));
        return R.ok();
    }
    @PostMapping("/dualcrn/command/updateTaskNo")
    @ManagerAuth(memo = "双工位堆垛机编辑任务号")
    public R dualCrnUpdateTaskNo(@RequestBody DualCrnUpdateTaskNoParam param) {
        if (Cools.isEmpty(param) || param.getCrnNo() == null || param.getStation() == null || param.getTaskNo() == null) {
            return R.error("缺少参数");
        }
        Integer station = param.getStation();
        if (station != 1 && station != 2) {
            return R.error("工位参数错误");
        }
        Integer taskNo = param.getTaskNo();
        if (taskNo < 0) {
            return R.error("任务号不能小于0");
        }
        Integer crnNo = param.getCrnNo();
        DualCrnThread crnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, crnNo);
        if (crnThread == null) {
            return R.error("线程不存在");
        }
        DualCrnProtocol protocol = crnThread.getStatus();
        if (protocol == null) {
            return R.error("设备状态不存在");
        }
        if (station == 1) {
            redisUtil.set(RedisKeyType.DUAL_CRN_STATION1_FLAG.key + crnNo, taskNo, 60 * 60 * 24);
        } else {
            redisUtil.set(RedisKeyType.DUAL_CRN_STATION2_FLAG.key + crnNo, taskNo, 60 * 60 * 24);
        }
        return R.ok();
    }
}