zhang
2026-04-10 f7371a4a3413ec37931b26a95b7b0290a46219f2
zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/controller/WmsController.java
New file
@@ -0,0 +1,177 @@
package com.zy.acs.conveyor.controller;
import com.zy.acs.conveyor.common.web.BaseController;
import com.zy.acs.conveyor.controller.requestParam.StaParam;
import com.zy.acs.conveyor.controller.vo.PlcErrorTableVo;
import com.zy.acs.conveyor.core.model.StaProtocol;
import com.zy.acs.conveyor.core.service.StationService;
import com.zy.acs.conveyor.entity.Job;
import com.zy.acs.conveyor.service.JobService;
import com.zy.acs.framework.common.R;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * 对ctu系统的接口
 */
@Slf4j
@RestController
public class WmsController extends BaseController {
    @Autowired
    private JobService jobService;
    @Autowired
    private StationService stationService;
    /**
     * 站点查询
     */
    @ResponseBody
    @PostMapping("/station/getTaskNo")
    public R query(@RequestBody StaParam param) {
        log.info("根据站点查询staNo:{}", param);
        String staNo = param.getStaNo();
        Map<Integer, StaProtocol> station = stationService.getStationMap(param.getDevpId());
        StaProtocol staProtocol = station.get(Integer.parseInt(staNo));
        Integer workNo = staProtocol.getWorkNo();
        if (workNo != null) {
            Job jobByJobNo = jobService.getJobByJobNo(workNo);
            if (jobByJobNo != null) {
                return R.ok(jobByJobNo);
            }
        }
        return R.ok();
    }
    /**
     * 查询异常
     */
    @ResponseBody
    @PostMapping("/station/getError")
    public R getError(@RequestBody StaParam param) {
        log.info("根据站点查询staNo:{}", param);
        String staNo = param.getStaNo();
        Map<Integer, StaProtocol> station = stationService.getStationMap(param.getDevpId());
        StaProtocol staProtocol = station.get(Integer.parseInt(staNo));
        return R.ok(staPlcErr(staProtocol));
    }
    private List<PlcErrorTableVo> staPlcErr(StaProtocol staProtocol) {
        if (staProtocol == null) {
            return null;
        }
        List<PlcErrorTableVo> list = new ArrayList<>();
        if (staProtocol.getBreakerErr()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("断路器故障");
            vo.setError("断路器故障");
            list.add(vo);
        }
        if (staProtocol.getInfraredErr()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("光电异常");
            vo.setError("光电异常");
            list.add(vo);
        }
        if (staProtocol.getOutTimeErr()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("运行超时");
            vo.setError("运行超时");
            list.add(vo);
        }
        if (staProtocol.getSeizeSeatErr()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("占位超时");
            vo.setError("占位超时");
            list.add(vo);
        }
        if (staProtocol.getWrkYgoodsN()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("有任务无货故障");
            vo.setError("有任务无货故障");
            list.add(vo);
        }
        if (staProtocol.getInverterErr()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("变频器故障");
            vo.setError("变频器故障");
            list.add(vo);
        }
        if (staProtocol.getContactErr()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("电机接触器故障");
            vo.setError("电机接触器故障");
            list.add(vo);
        }
        if (staProtocol.getUpcontactErr()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("顶升电机接触器故障");
            vo.setError("顶升电机接触器故障");
            list.add(vo);
        }
        if (staProtocol.isFrontErr()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("前超限");
            vo.setError("前超限");
            list.add(vo);
        }
        if (staProtocol.isBackErr()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("后超限");
            vo.setError("后超限");
            list.add(vo);
        }
        if (staProtocol.isHighErr()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("高超限");
            vo.setError("高超限");
            list.add(vo);
        }
        if (staProtocol.isLeftErr()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("左超限");
            vo.setError("左超限");
            list.add(vo);
        }
        if (staProtocol.isRightErr()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("右超限");
            vo.setError("右超限");
            list.add(vo);
        }
        if (staProtocol.isBarcodeErr()) {
            PlcErrorTableVo vo = new PlcErrorTableVo();
            vo.setStaNo(staProtocol.getSiteId());
            vo.setPlcDesc("扫码失败");
            vo.setError("扫码失败");
            list.add(vo);
        }
        return list;
    }
}