1
zhang
2025-05-05 d6403f0f39fb5dc6e440503b649be8a527d3d32c
src/main/java/com/zy/asrs/controller/DevopsController.java
@@ -1,12 +1,16 @@
package com.zy.asrs.controller;
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.devops.DevopsMessage;
import com.zy.asrs.domain.devops.ErrorType;
import com.zy.asrs.domain.vo.SiteTableVo;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.WrkMastService;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
@@ -16,15 +20,19 @@
import com.zy.core.enums.CrnStatusType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.CrnSlave;
import com.zy.core.model.DevpSlave;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.model.protocol.StaProtocol;
import com.zy.core.properties.SlaveProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/devops")
@@ -39,21 +47,26 @@
    @Autowired
    private WrkMastMapper wrkMastMapper;
    @Autowired
    private BasDevpService basDevpService;
    @RequestMapping("/wrkMast/list")
    public R list() {
        List<DevopsMessage> devopsMessages = new ArrayList<>();
        DevopsMessage devopsMessage;
        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", crnSlave.getId()).in("io_type", 101, 103, 107).orderBy("wrk_sts", false));
            //先查询堆垛机是否在工作
            WrkMast working = wrkMastMapper.selectWorking(crnSlave.getId());
            for (WrkMast wrkMast : wrkMasts) {
                devopsMessage = new DevopsMessage();
                devopsMessage.setWrkNo(wrkMast.getWrkNo());
                if (working != null) {
                    //在工作,则判断是否未当前这条
                    if (working.getWrkNo().equals(wrkMast.getWrkNo())) {
                        devopsMessage.setError("该工作档正在出库,请稍后");
                    } else {
                        devopsMessage.setError(working.getWrkNo() + "号工作档正在出库");
                        devopsMessage.setError(working.getWrkNo() + "号工作档正在出库,请稍后");
                    }
                    continue;
                }
@@ -74,8 +87,7 @@
                        devopsMessage.setMethod(devopsMessage.getMethod() + ";" + type.getMethod());
                    } else {
                        devopsMessage.setError(type.getDesc());
                        devopsMessage
                                .setMethod(type.getMethod());
                        devopsMessage.setMethod(type.getMethod());
                    }
                }
                devopsMessages.add(devopsMessage);
@@ -116,16 +128,16 @@
        CrnProtocol crnProtocol = crnThread.getCrnProtocol();
        if (crnProtocol.getStatusType() == CrnStatusType.IDLE) {
            types.add(ErrorType.CRN_NO_IDLE);
        }
        if (crnProtocol.getTaskNo() == 0) {
            types.add(ErrorType.WORKING);
        }
        if (crnProtocol.getModeType() == CrnModeType.AUTO) {
            types.add(ErrorType.CRN_FEIZIDONG);
        }
        if (crnProtocol.getLoaded() == 0) {
            types.add(ErrorType.LOAD);
        }
        if (crnProtocol.statusType == CrnStatusType.FETCHING) {
            types.add(ErrorType.WORKING);
@@ -142,11 +154,36 @@
        if (crnProtocol.modeType == CrnModeType.AUTO) {
            types.add(ErrorType.FEIZIDONG);
        }
//        if (crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue())) {
//            types.add(ErrorType.CRNGONGZUOHAO);
//        }
        return types;
    }
    @PostMapping("/site/list")
    @ManagerAuth(memo = "站点信息表")
    public R siteTable(){
        List<SiteTableVo> list = new ArrayList<>();
        // 内存数据
        Map<Integer, StaProtocol> station = new HashMap<>();
        for (DevpSlave devp : slaveProperties.getDevp()) {
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
            station.putAll(devpThread.getStation());
        }
        // 持久数据
        List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<BasDevp>().orderBy("dev_no"));
        for (BasDevp devp : basDevps) {
            StaProtocol staProtocol = station.get(devp.getDevNo());
            if (null == staProtocol) { continue; }
            SiteTableVo vo = new SiteTableVo();
            vo.setDevNo(devp.getDevNo());    // 站点编号
            vo.setWorkNo(staProtocol.getWorkNo());   //  工作号
            vo.setAutoing(staProtocol.isAutoing()?"Y":"N");     //  自动
            vo.setLoading(staProtocol.isLoading()?"Y":"N");     // 有物
            vo.setInEnable(staProtocol.isInEnable()?"Y":"N");   // 可入
            vo.setOutEnable(staProtocol.isOutEnable()?"Y":"N"); // 可出
            list.add(vo);
        }
        return R.ok().add(list);
    }
}