#
zjj
9 天以前 fccf8364364c36d15de26aa699f91228a74b6e10
src/main/java/com/zy/asrs/controller/RgvController.java
@@ -14,10 +14,12 @@
import com.zy.asrs.entity.BasRgv;
import com.zy.asrs.entity.BasRgvErr;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.entity.WrkMastSta;
import com.zy.asrs.mapper.BasRgvErrMapper;
import com.zy.asrs.service.BasRgvService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.service.WrkMastStaService;
import com.zy.asrs.service.impl.MainServiceImpl;
import com.zy.core.CrnThread;
import com.zy.core.RgvThread;
@@ -70,6 +72,8 @@
    private MainServiceImpl mainService;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private WrkMastStaService wrkMastStaService;
    int wrkNo = 9990;
@@ -218,6 +222,9 @@
                   case 17://恢复联机任务
                       DB="6.0";
                       break;
                   case 18://清楚联机任务
                       DB="6.1";
                       break;
                   default:
                       return R.error("按钮不存在????!!!");
               }
@@ -294,6 +301,12 @@
        return rgvFetchSingleStepPut(param,3)?R.ok():R.error();
    }
    @ManagerAuth(memo = "取放")
    @PostMapping("/operator/single/step/four/put")
    public R rgvFetchSingleStepFourPut(RgvOperatorParam param){
        return rgvFetchSingleStepPut(param,4)?R.ok():R.error();
    }
    public boolean rgvFetchSingleStepPut(RgvOperatorParam param ,Integer type){
        wrkNo++;
        RgvCommand command = new RgvCommand();
@@ -309,6 +322,9 @@
                break;
            case 3:
                fetchPut = RgvTaskModeType.X_MOVE;
                break;
            case 4:
                fetchPut = RgvTaskModeType.FETCH_PUT;
                break;
            default:
                return false;
@@ -326,7 +342,7 @@
//        command.setDestinationStaNo2(param.getStaNo2());  // 目标站
        command.setCommand((short) 0);
        return rgvControl(command);
        return rgvControlD(command);
    }
@@ -429,15 +445,29 @@
            if (rgvProtocol == null) {
                continue;
            }
            if (rgvProtocol.getTaskNo1() != 0){
                WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>()
                        .setSqlSelect("TOP 1 wrk_no as wrkNo , wrk_sts as wrkSts, create_time as createTime")
                        .eq("wrk_No", rgvProtocol.getTaskNo1())
                        .orderBy("create_time", false)
                );
                if (!Cools.isEmpty(wrkMastSta)){
                    vo.setWrkSts(wrkMastSta.getWrkSts());
                }
            }
            vo.setStatusType(rgvProtocol.modeType.desc);   //  模式状态
            vo.setStatus(rgvProtocol.getStatusType1().desc);     //  状态
            vo.setWorkNo1(rgvProtocol.getTaskNo1());  //  工位1任务号
            vo.setRgvPos(rgvProtocol.getRgvPos());
            vo.setRgvPos(rgvProtocol.getCode());
            vo.setPakMk(rgvThread.isPakMk()?"无锁":"锁定");
            vo.setWalkPos(rgvProtocol.getAlarm() == 0?"正常":"报警");
            vo.setWarnCode(String.valueOf(rgvProtocol.getAlarm()));
//            vo.setStaNo(rgvProtocol.getSouSta().intValue());
//            vo.setSourceStaNo(rgvProtocol.getEndSta().intValue());
            vo.setList32(rgvProtocol.getList32());
            vo.setList33(rgvProtocol.getList33());
            vo.setList34(rgvProtocol.getList34());
            vo.setList35(rgvProtocol.getList35());
            if (rgvProtocol.getAlarm() > 0) {
                BasRgvErr rgvErr = basRgvErrMapper.selectById(rgvProtocol.getAlarm());
                vo.setAlarm(rgvErr==null?"未知异常":rgvErr.getErrName());
@@ -611,4 +641,34 @@
        return false;
    }
    private boolean rgvControlD(RgvCommand command){
        if (command.getRgvNo() == null) {
            throw new CoolException("请选择RGV");
        }
        for (RgvSlave rgv : slaveProperties.getRgv()) {
            // 获取RGV信息
            if (command.getRgvNo().equals(rgv.getId())) {
//                SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId());
//                if (rgvThread == null) {
//                    throw new CoolException("RGV不在线");
//                }
//                RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
//                if (rgvProtocol == null) {
//                    throw new CoolException("RGV不在线");
//                }
                try{
                    if (MessageQueue.offer(SlaveType.Rgv, rgv.getId(), new Task(11, command))) {
                        return true;
                    } else {
                        throw new CoolException("命令下发失败");
                    }
                }catch (Exception e){
                    log.error("单步任务下发失败,异常:"+e);
                    throw new CoolException("命令下发失败");
                }
            }
        }
        return false;
    }
}