#
野心家
2023-11-24 271bc9e0b596ff73e887bbd7389e90e71670668d
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -765,9 +765,11 @@
            crnCommand.setDestinationPosY(locMast.getBay1().shortValue());     // 目标库位列
            crnCommand.setDestinationPosZ(locMast.getLev1().shortValue());     // 目标库位层\
            crnCommand.setBarcode(wrkMast.getBarcode());//托盘码
            log.error("768 堆垛机命令下发"+crnCommand);
            if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
                log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
            } else {
                log.error("772 堆垛机命令下发成功"+crnCommand);
//                long startTime = System.currentTimeMillis();
//                while ((System.currentTimeMillis() - startTime) < COMMAND_TIMEOUT) {
@@ -782,6 +784,7 @@
//                }
                // 修改工作档状态 2.设备上走 => 3.吊车入库中
                log.error("787 修改工作档状态2.设备上走 => 3.吊车入库中 "+wrkMast);
                Date now = new Date();
                wrkMast.setWrkSts(3L);
                wrkMast.setCrnStrTime(now);
@@ -789,6 +792,7 @@
                if (wrkMastMapper.updateById(wrkMast) == 0) {
                    log.error("修改工作档状态 2.设备上走 => 3.吊车入库中 失败!!,工作号={}", wrkMast.getWrkNo());
                }
                log.error("795 修改工作档状态成功2.设备上走 => 3.吊车入库中"+wrkMast);
            }
        }
    }
@@ -1063,6 +1067,7 @@
     * 库位移转
     */
    public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol){
        log.info("开始移库任务程序");
        //获取所有移库任务
        List<WrkMast> wrkMasts=wrkMastMapper.selectLocMoves(slave.getId());
        // 获取工作档信息
@@ -1147,6 +1152,7 @@
                log.error("【库位移转】 修改工作档状态 11.生成出库ID => 12.吊车出库中 失败!!,工作号={}", wrkMast.getWrkNo());
            }
        }
        log.info("结束移库任务程序");
    }
@@ -2360,19 +2366,24 @@
        try {
            // 根据输送线plc遍历
            for (DevpSlave devp : slaveProperties.getDevp()) {
                log.info("2363行程序开始运行");
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                if(null != devpThread){
                    for (int i = 0; i < 48; i++){
                        log.info("2367行程序开始运行,第"+i+"次");
                        boolean fig=false;
                        //查询在库和预约出库
                        LocMast locMast=locMastService.selectztgx("F","R",i);
                        if(!Cools.isEmpty(locMast)){
                            log.info("2372行程序开始运行,查询测试档");
                            TestMast testMast=testMastService.selectOne(new EntityWrapper<TestMast>()
                                    .eq("loc_no",locMast.getLocNo())
                                    .eq("user_id",locMast.getBarcode()));
                            if(Cools.isEmpty(testMast)){
                                log.info("2377行程序开始运行,测试档为空,跳过");
                                continue;
                            }
                            log.info("2380行程序开始运行,测试档不为空,下一步");
                            //devpThread.startSignal[i][0]
                            //0:空,1:启动中,2:工作中,3:自动暂停,4:正常完成(OK),5:异常停止(NG),6:在线,7:离线,8:空闲
@@ -2382,35 +2393,45 @@
                            //testMast.setStatus
                            //"状态 0: 待申请  1: 申请中  2: 已复核 3:测试中 4:完成 5:移库 6:火警"
                            if(devpThread.startSignal[i][0]==8){
                                log.info("2390行程序开始运行,修改测试档状态为 1、申请中,开始修改前:"+testMast);
                                testMast.setStatus(1);
                                locMast.setPackStatus(1);
                                testMast.setModiTime(new Date());
                                log.info("2394行程序开始运行,修改测试档状态为 1、申请中,修改数据后、未更新"+testMast);
                            }else if(devpThread.startSignal[i][0]==2 && locMast.getPackStatus()!=2){
                                log.info("2396行程序开始运行,修改测试档状态为 3、测试中,开始修改前:"+testMast);
                                testMast.setStatus(3);
                                locMast.setPackStatus(2);
                                testMast.setModiTime(new Date());
                                log.info("2400,修改测试档状态为 3、测试中,修改数据后、未更新"+testMast);
                                //NG转OK需要还原源库位和目标库位状态,OK转NG 删除任务档
                                WrkMast wrkMast=wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                                        .eq("source_loc_no",locMast.getLocNo())
                                        .eq("wrk_sts",11));
                                log.info("2405,查询状态为生成出库id的测试完成(NG或OK)任务档,"+wrkMast);
                                if(!Cools.isEmpty(wrkMast)){
                                    if(wrkMast.getWrkSts()==11){
                                    if(wrkMast.getIoType()==11){
                                        LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",wrkMast.getLocNo()));
                                        locMast1.setLocSts("O");
                                        locMastService.update(locMast1,new EntityWrapper<LocMast>().eq("loc_no",wrkMast.getLocNo()));
                                        if(wrkMast.getIoType()==11){
                                            log.info("2409,删除任务档为移库的,"+wrkMast);
                                            LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no",wrkMast.getLocNo()));
                                            locMast1.setLocSts("O");
                                            locMastService.update(locMast1,new EntityWrapper<LocMast>().eq("loc_no",wrkMast.getLocNo()));
                                        }
                                        wrkMastMapper.deleteById(wrkMast);
                                        log.info("2415,删除工作档"+wrkMast);
                                        locMast.setLocSts("F");
                                        log.info("2417,删除工作档"+wrkMast);
                                        wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no",wrkMast.getWrkNo()));
                                        log.info("2419,删除工作明细"+wrkMast.getWrkNo());
                                        if(!locMastService.update(locMast,new EntityWrapper<LocMast>()
                                                .eq("channel",i+1))){
                                            log.error("2422修改测试库位状态失败"+locMast.getLocNo(),locMast);
                                        }else{
                                            log.error("2424"+locMast.getLocNo(),locMast);
                                            fig=true;
                                        }
                                    }
                                    wrkMastMapper.delete(new EntityWrapper<WrkMast>()
                                                .eq("wrk_no",wrkMast.getWrkNo()));
                                    locMast.setLocSts("F");
                                    wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no",wrkMast.getWrkNo()));
                                    if(!locMastService.update(locMast,new EntityWrapper<LocMast>()
                                            .eq("channel",i+1))){
                                        log.error("修改测试库位状态失败"+locMast.getLocNo(),locMast);
                                    }else{
                                        fig=true;
                                    }
                                }}
                                }
                            }else if(devpThread.startSignal[i][0]==3){
                                locMast.setPackStatus(7);
                                testMast.setModiTime(new Date());