#
Junjie
2025-11-11 bfe469c7fa604a6431d58ea5e5143c959d76bd86
src/main/java/com/zy/asrs/controller/CrnController.java
@@ -2,7 +2,9 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.Cools;
import com.core.common.R;
import com.zy.asrs.domain.param.CrnCommandTakeParam;
import com.zy.asrs.domain.vo.CrnStateTableVo;
import com.zy.asrs.entity.BasCrnp;
import com.zy.asrs.entity.BasCrnpErr;
@@ -10,15 +12,19 @@
import com.zy.asrs.service.BasCrnpErrService;
import com.zy.asrs.service.BasCrnpService;
import com.zy.asrs.service.WrkMastService;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.CrnModeType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.Task;
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.thread.CrnThread;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -114,4 +120,60 @@
        return R.ok().add(str.toString());
    }
    @PostMapping("/command/take")
    public R crnCommandTake(@RequestBody CrnCommandTakeParam param) {
        if (Cools.isEmpty(param)) {
            return R.error("缺少参数");
        }
        Integer crnNo = param.getCrnNo();
        String sourceLocNo = param.getSourceLocNo();
        String targetLocNo = param.getTargetLocNo();
        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnNo);
        if (crnThread == null) {
            return R.error("线程不存在");
        }
        CrnCommand command = crnThread.getPickAndPutCommand(sourceLocNo, targetLocNo, 9999, crnNo);
        MessageQueue.offer(SlaveType.Crn, crnNo, new Task(2, command));
        return R.ok();
    }
    @PostMapping("/command/move")
    public R crnCommandMove(@RequestBody CrnCommandTakeParam param) {
        if (Cools.isEmpty(param)) {
            return R.error("缺少参数");
        }
        Integer crnNo = param.getCrnNo();
        String targetLocNo = param.getTargetLocNo();
        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnNo);
        if (crnThread == null) {
            return R.error("线程不存在");
        }
        CrnCommand command = crnThread.getMoveCommand(targetLocNo, 9999, crnNo);
        MessageQueue.offer(SlaveType.Crn, crnNo, new Task(2, command));
        return R.ok();
    }
    @PostMapping("/command/taskComplete")
    public R crnCommandTaskComplete(@RequestBody CrnCommandTakeParam param) {
        if (Cools.isEmpty(param)) {
            return R.error("缺少参数");
        }
        Integer crnNo = param.getCrnNo();
        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnNo);
        if (crnThread == null) {
            return R.error("线程不存在");
        }
        CrnCommand command = crnThread.getResetCommand(crnNo);
        MessageQueue.offer(SlaveType.Crn, crnNo, new Task(2, command));
        return R.ok();
    }
}