野心家
2023-06-01 297aaba86ef2c39dc6b8e9160365b8d3c026d5b8
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2029,7 +2029,7 @@
                            case 3://测试完成
                                olsStatus = 4;//测试完成
                                newStatus = 4;//测试完成
                                newSingle = 4;//测试完成,寄存器地址,3===>>4
                                newSingle = 4;//(NG:4\OK:41)测试完成,寄存器地址,3===>>4\41
                                break;
                            case 5://NG测试信号
                            case 6://完成测试信号
@@ -2063,8 +2063,8 @@
                                newSingle = 0;//复位,寄存器地址,12===>>0
                                break;
                            default:
                                log.error("读取测试库位信号出错");
                                break;
                                log.info("读取通道"+(i+1)+"测试库位按钮信号:为"+devpThread.startSignal[i][0]);
                                continue;
                        }
                        TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>()
@@ -2073,11 +2073,26 @@
                        boolean sign=false;
                        switch (devpThread.startSignal[i][0]){
                            case 0:
                                if (!Cools.isEmpty(testMast)){
                                    locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel",(i+1)));
                                    if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("F")){
                                        sign=true;
                                    }
                                }
                                break;
                            case 3:
                                if (!Cools.isEmpty(testMast)){
                                    locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel",(i+1)));
                                    if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("F")){
                                        sign=true;
                                        if (locMast.getPackStatus()==3){
                                            newSingle=41;
                                        }else if (locMast.getPackStatus()==4){
                                            newSingle=4;
                                        }else {
                                            log.info("读取通道"+(i+1)+"测试库位按钮信号:为"+devpThread.startSignal[i][0]+"通道库位pack状态信息异常"+locMast.getPackStatus());
                                            sign=false;
                                        }
                                    }
                                }
                                break;
@@ -2182,7 +2197,7 @@
                                sign=true;
                                break;
                            default:
                                log.error("读取测试库位信号出错");
                                log.info("读取通道"+(i+1)+"测试库位按钮信号:为"+devpThread.startSignal[i][0]);
                                continue;
                        }
                        if (sign){
@@ -2192,6 +2207,12 @@
                            } else {
                                devpThread.startSignal[i][0]  = newSingle;
                            }
                        }
                        try{
                            locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel",(i+1)));
                            messageQueueOffer2(i,(short)((int)locMast.getFireStatus()),SlaveType.Devp, devp.getId());
                        }catch (Exception e){
                            log.error("火警  ===>> 给输送线发送警报失败,通道号:", i+1);
                        }
                    }
@@ -2211,6 +2232,14 @@
        staProtocol.setSiteId(i*2);//寄存器地址
        staProtocol.setStaNo(newSingle);//修改PLC寄存器地址值,8==>0
        return MessageQueue.offer(devp, id, new Task(3, staProtocol));
    }
    public boolean messageQueueOffer2(int i ,short newSingle,SlaveType devp,Integer id){
        //复位PLC信号,借用输送站点实体类
        StaProtocol staProtocol = new StaProtocol();
        staProtocol.setSiteId(i*2);//寄存器地址
        staProtocol.setStaNo(newSingle);//修改PLC寄存器地址值,8==>0
        return MessageQueue.offer(devp, id, new Task(5, staProtocol));
    }
    /**
@@ -2243,4 +2272,30 @@
        }
    }
    /**
     * 103站点有物下发pack码
     */
    @Transactional
    public void packDevp() {
        try {
            // 根据输送线plc遍历
            for (DevpSlave devp : slaveProperties.getDevp()) {
                BasDevp basDevp = basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("bas_devp",103));
                if (Cools.isEmpty(basDevp)){
                    log.error("103站点查询失败-MainServiceImpl.java-2255行");
                }
                if (basDevp.getAutoing().equals("Y") && basDevp.getWrkNo()>0 && basDevp.getLoading().equals("Y") ){
                    WrkDetl wrkDetl = wrkDetlService.devpPackNo(basDevp.getWrkNo());
                    if (Cools.isEmpty(wrkDetl)){
                        log.error("103站点查询失败-MainServiceImpl.java-2255行");
                    }
                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4,wrkDetl.getMatnr()));
                }
            }
        } catch (Exception e) {
            log.error("103  ===>> 给输送线发送Pack码失败", e);
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }
    }
}