#
zjj
2024-09-06 f9a4e6ce9b400a30aeac6d91831e8785368ea839
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2082,7 +2082,7 @@
                                && basDevp.getWrkNo() == 0 && basDevp.getCanining().equals("Y")){
//                             更新站点信息 且 下发plc命令
                            staProtocol.setWorkNo((short) 9997);
                            staProtocol.setStaNo(basDevp.getDevNo().shortValue());
                            staProtocol.setStaNo((short) (basDevp.getDevNo()==1004?1003:1013));
//                            staProtocol.setStaNo((short) 1013);
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol));
@@ -2152,11 +2152,19 @@
//                        && staProtocol.isEmptyMk()
                        && staProtocol.getWorkNo() == 0
                ) {
                    WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(sta.getStaNo());
                    Integer staNo = sta.getStaNo();
                    switch (staProtocol.getSiteId()){
                        case 4007:
                            staNo = 4002;break;
                        case 4016:
                            staNo = 4011;break;
                    }
                    WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(staNo);
                    if (null != pakoutEmpty) {
                        return;
                    }
                    List<StaDesc> staDescs = staDescService.selectList(new EntityWrapper<StaDesc>().eq("stn_no", sta.getStaNo()));
                    List<StaDesc> staDescs = staDescService.selectList(new EntityWrapper<StaDesc>().eq("stn_no", staNo));
                    for (StaDesc staDesc: staDescs){
                        BasCrnp basCrnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", staDesc.getCrnNo()));
                        if (!basCrnp.getCrnSts().equals(3) || basCrnp.getCrnErr() != 0){
@@ -2165,6 +2173,7 @@
                        try {
                            HashMap<String, Object> map = new HashMap<>();
                            map.put("crnNo", staDesc.getCrnNo());//目标站
                            map.put("staNo",staDesc.getStnNo());
                            String response = new HttpHandler.Builder()
                                    .setUri(wmsUrl)
                                    .setParams(map)
@@ -2194,9 +2203,6 @@
    public synchronized void crn5InTask(){
        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
            if (crnSlave.getId() != 5){
                continue;
            }
            // 获取堆垛机信息
            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId());
            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
@@ -2271,10 +2277,10 @@
            crnCommand.setSourcePosX(crnStn.getRow().shortValue());     // 源库位排
            crnCommand.setSourcePosY(crnStn.getBay().shortValue());     // 源库位列
            crnCommand.setSourcePosZ(crnStn.getLev().shortValue());     // 源库位层
            crnCommand.setDestinationPosX(locMast.getRow1().shortValue());     // 目标库位排
            crnCommand.setDestinationPosX((short) (locMast.getRow1()+slave.getOffset()));     // 目标库位排
            crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 目标库位列
            crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 目标库位层
            crnCommand.setLocType1(locMast.getLocType1().shortValue());     // 货物类型
            crnCommand.setLocType1(locMast.getLocType1());     // 货物类型
            if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
                log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
            } else {
@@ -2297,9 +2303,6 @@
    public synchronized void crn5StnToOutStn() {
        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
            if (crnSlave.getId() != 5){
                continue;
            }
            // 遍历堆垛机出库站
            for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
                // 获取堆垛机出库站信息
@@ -2416,13 +2419,13 @@
                    crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 工作号
                    crnCommand.setAckFinish((short) 0);  // 任务完成确认位
                    crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 任务模式:  库位移转
                    crnCommand.setSourcePosX(locMast.getRow1().shortValue());     // 源库位排
                    crnCommand.setSourcePosX((short)(locMast.getRow1()+slave.getOffset()));     // 源库位排
                    crnCommand.setSourcePosY(locMast.getBay1().shortValue());     // 源库位列
                    crnCommand.setSourcePosZ(locMast.getLev1().shortValue());     // 源库位层
                    crnCommand.setDestinationPosX(crnStn.getRow().shortValue());     // 目标库位排
                    crnCommand.setDestinationPosY(crnStn.getBay().shortValue());     // 目标库位列
                    crnCommand.setDestinationPosZ(crnStn.getLev().shortValue());     // 目标库位层
                    crnCommand.setLocType1(locMast.getLocType1().shortValue());     // 货物类型
                    crnCommand.setLocType1(locMast.getLocType1());     // 货物类型
                    if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
                        log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
                    } else {
@@ -2443,9 +2446,6 @@
    public synchronized void crn5TaskCreate() throws IOException {
        for (CrnSlave crnSlave : slaveProperties.getCrn()) {
            if (crnSlave.getId() != 5){
                continue;
            }
            for (CrnSlave.CrnStn crnStn : crnSlave.getCrnInStn()) {
                // 获取堆垛机出库站信息
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
@@ -2560,6 +2560,9 @@
                    } else if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && (staProtocol.getWorkNo()>=9900 || staProtocol.getWorkNo()==0)) {
                        if (rgvSlave.getId() != 2 ){
                            continue;
                        }
                        workNo1 = workNo++;
                        souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getSourceStaNo());
                        if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 1){
@@ -2576,7 +2579,7 @@
                            type = 1;
                        }
                        if(inStn.getSourceStaNo() == 2102){
                            weight = staProtocol.getWeight().doubleValue();
                            weight = staProtocol.getWeight().doubleValue()/10;
                        }
                        work1 = true;
@@ -2620,6 +2623,9 @@
                                devpThread.setPakMk(inStn.getSourceStaNo(),false);
                                break;
                        } else if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && (staProtocol.getWorkNo()>=9900 || staProtocol.getWorkNo()==0)) {
                            if (rgvSlave.getId() != 2 ){
                                continue;
                            }
                            workNo2 = workNo++;
                            souSta2 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getSourceStaNo());
                            if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 1){
@@ -2637,7 +2643,7 @@
                            }
                            if(inStn.getSourceStaNo() == 2102){
                                weight2 = staProtocol.getWeight().doubleValue();
                                weight2 = staProtocol.getWeight().doubleValue()/10;
                            }
                            work2 = true;
@@ -2725,10 +2731,10 @@
                    log.info("{}号rgv工位一工作完成复位,工作号:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1());
                    if (offer){
                        //完成rgv任务
                        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1());
                        Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvSlave.getId()).eq("wrk_no", rgvProtocol.getTaskNo1());
                        WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper);
                        if (Cools.isEmpty(wrkMastSta1)){
                            log.error("完成{}号车工位一任务未找到对应rgv任务,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
                            log.error("完成{}号车工位一任务未找到对应rgv任务,{}",rgvSlave.getId(),rgvProtocol.getTaskNo1());
                        }else {
                            if (wrkMastSta1.getWrkType() == 8 ){
                                wrkMastSta1.setWrkSts(3);
@@ -2831,7 +2837,7 @@
                WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvSlave.getId(), rgvProtocol.getTaskNo1());
                WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1());
                if (Cools.isEmpty(wrkMastSta)){
                    log.error("未查询到rgv工作任务,rgv编号{},工作号{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1());
                    log.error("未查询到rgv工作任务,rgv编号{},工作号{}",rgvSlave.getId(),rgvProtocol.getTaskNo1());
                    continue;
                }
                for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){