chen.llin
9 小时以前 348cb1901f202eec59d9c5200186f2aa03773569
重复工作档验证
1个文件已修改
41 ■■■■■ 已修改文件
src/main/java/com/zy/service/impl/MainServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -161,13 +161,12 @@
                // 退回
                if (back   && staProtocol.isInEnable() && staProtocol.isLoading() && staProtocol.isPakMk()  && !staProtocol.isEmptyMk()  ) {
                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg));
                    staProtocol.setWorkNo(wrkNo);
                    wrkNo++;
                    News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg,wrkNo);
                    News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg, staProtocol.getWorkNo());
                    staProtocol.setWorkNo(9999);
                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
                    devpThread.setPakMk(staProtocol.getSiteId(), false);
                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                    log.error("输送线下发1:"+wrkNo+","+inSta.getBackSta());
                    log.error("输送线下发1:"+staProtocol.getWorkNo()+","+inSta.getBackSta());
                    return;
                }
@@ -222,13 +221,12 @@
                                ledThread.errorReset();
                            }
                        } else {
                            staProtocol.setWorkNo(wrkNo);
                            wrkNo++;
                            staProtocol.setWorkNo(9999);
                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            String errorMsg = jsonObject.getString("msg");
                            log.error("全版入库回退,"+wrkNo+","+errorMsg);
                            log.error("全版入库回退,"+staProtocol.getWorkNo()+","+errorMsg);
                            if (!Cools.isEmpty(errorMsg)) {
                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
                            }
@@ -296,12 +294,11 @@
                    StaDesc staDesc = staDescService.selectOne(wrapper);
                    if (Cools.isEmpty(staDesc)) {
                        News.error(""+mark+" - 2"+" - 入库路径不存在!type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
                        staProtocol.setWorkNo(wrkNo);
                        wrkNo++;
                        staProtocol.setWorkNo(9999);
                        staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                        log.error("输送线下发4:"+wrkNo+","+(pickSta.getStaNo().shortValue()-(short)1));
                        log.error("输送线下发4:"+staProtocol.getWorkNo()+","+(pickSta.getStaNo().shortValue()-(short)1));
                        //LED
                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
                        // led 异常显示
@@ -1086,6 +1083,23 @@
                        && staProtocol.isPakMk() //防止重复下发信号 站点无物 无任务号会自动变成true
                ) {
                    // 判断重复工作档
                    WrkMast wrkMast = null;
                    if (!Cools.isEmpty(barcode)) {
                        // 有条码时,检查是否有相同站点和条码的空板入库工作档
                        wrkMast = wrkMastMapper.selectPakInStep1(emptyInSta.getStaNo(), barcode);
                    } else {
                        // 无条码时,检查是否有相同站点且工作状态为2的空板入库工作档
                        wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                                .eq("source_sta_no", emptyInSta.getStaNo())
                                .eq("wrk_sts", 2)
                                .eq("io_type", 10));
                    }
                    if (wrkMast != null) {
                        News.info("{}空板入库重复工作档检查:已存在工作档,工作号:{},条码:{}", emptyInSta.getStaNo(), wrkMast.getWrkNo(), barcode);
                        continue;
                    }
                    News.warnNoLog(""+mark+" - 0"+" - 开始执行:空栈板初始化入库,叉车入库站放货,条码:{}", barcode);
                    try {
@@ -1140,15 +1154,14 @@
                            String errorMsg = jsonObject.getString("msg");
                            // 如果任务回退,并且站点不是自动状态,则不触发回退
                            if (!staProtocol.isAutoing()) {
                                log.error("空板入库回退"+wrkNo+","+errorMsg+",站点不是自动状态,不触发回退");
                                log.error("空板入库回退"+staProtocol.getWorkNo()+","+errorMsg+",站点不是自动状态,不触发回退");
                                continue;
                            }
                            staProtocol.setWorkNo(wrkNo);
                            wrkNo++;
                            log.error("空板入库回退"+staProtocol.getWorkNo()+","+errorMsg);
                            staProtocol.setWorkNo(9999);
                            staProtocol.setStaNo(emptyInSta.getBackSta().shortValue());
                            devpThread.setPakMk(staProtocol.getSiteId(), false);
                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            log.error("空板入库回退"+wrkNo+","+errorMsg);
                            if (!result) {
                                News.errorNoLog(""+mark+" - 2"+" - 更新plc站点信息失败");
                                throw new CoolException("更新plc站点信息失败");