wangfei
2024-11-29 c377d90fe2a01c2118f6c69c3c177f75be7c318b
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
@@ -70,39 +70,29 @@
        //将确认字置为0
        plcControl.writeWord(plcParameterObject.getPlcParameter("confirmationWord").getAddress(), 0);
        //可能有几炉玻璃同时在钢,需要获取钢化小片表中的数据信息状态为2(旋转台玻璃已送出未钢化,正在钢化)
        List<TemperingGlassInfo> temperingGlassInfoList = temporaryGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>()
                .eq(TemperingGlassInfo::getState, Const.TEMPERING_START));
        List<TemperingGlassInfo> temperingGlassInfoList = temporaryGlassInfoService.list(
                new LambdaQueryWrapper<TemperingGlassInfo>()
                        .inSql(TemperingGlassInfo::getTemperingLayoutId, "select distinct tempering_layout_id from tempering_glass_info where state=1")
                        .lt(TemperingGlassInfo::getState, Const.TEMPERING_START)
        );
        if (CollectionUtils.isEmpty(temperingGlassInfoList)) {
            log.info("当前系统没有需要钢化的玻璃信息");
            return;
        }
        TemperingGlassInfo maxGlassInfo = temperingGlassInfoList.stream().max(Comparator.comparingLong(TemperingGlassInfo::getId)).get();
        TemperingGlassInfo minGlassInfo = temperingGlassInfoList.stream().min(Comparator.comparingLong(TemperingGlassInfo::getState)).get();
        if (minGlassInfo.getState() < Const.TEMPERING_DROP) {
            log.info("当前炉玻璃未到齐,稍后在执行");
            return;
        }
        //拿到工程id及炉号
//        List<EngineerTemperingDTO> engineerTemperingList = temperingGlassInfoList.stream().map(e -> {
//            EngineerTemperingDTO engineerTemperingDTO = new EngineerTemperingDTO();
//            BeanUtils.copyProperties(e, engineerTemperingDTO);
//            return engineerTemperingDTO;
//        }).distinct().collect(Collectors.toList());
        //将正在钢化的炉号过滤掉,仅获取待钢化的玻璃
//        List<TemperingRecord> temperingRecords = temperingRecordService.list(new LambdaQueryWrapper<TemperingRecord>().and(i -> i.isNull(TemperingRecord::getCoolEnergy).or().eq(TemperingRecord::getCoolEnergy, "")));
//        List<EngineerTemperingDTO> temperingList = new ArrayList<>();
//        if (CollectionUtils.isNotEmpty(temperingRecords)) {
//            temperingList = temperingRecords.stream().map(e -> {
//                EngineerTemperingDTO engineerTemperingDTO = new EngineerTemperingDTO();
//                BeanUtils.copyProperties(e, engineerTemperingDTO);
//                return engineerTemperingDTO;
//            }).collect(Collectors.toList());
//        }
//        engineerTemperingList.removeAll(temperingList);
//        if (CollectionUtils.isEmpty(engineerTemperingList)) {
//            log.info("没有待钢化的任务,结束");
//            return;
//        }
//        if (engineerTemperingList.size() > 1) {
//            log.info("存在多炉待钢化的任务,请检查现场是否有异常数据未处理");
//            return;
//        }
//        EngineerTemperingDTO temperingDTO = engineerTemperingList.get(0);
        TemperingGlassInfo maxGlassInfo = temperingGlassInfoList.stream().max(Comparator.comparingLong(TemperingGlassInfo::getId)).get();
        //将正在钢化的炉号过滤掉,仅获取待钢化的玻璃:判断待钢的玻璃是否已发送对接数据
        List<TemperingRecord> temperingRecordList = temperingRecordService.list(new LambdaQueryWrapper<TemperingRecord>().eq(TemperingRecord::getEngineerId, maxGlassInfo.getEngineerId())
                .eq(TemperingRecord::getTemperingLayoutId, maxGlassInfo.getTemperingLayoutId()));
        if (CollectionUtils.isNotEmpty(temperingRecordList)) {
            log.info("没有待钢化的任务,结束");
            return;
        }
        //获取待钢化的所有玻璃信息
        List<TemperingGlassInfo> temperingGlassList = temperingGlassInfoList.stream()
                .filter(e -> e.getEngineerId().equals(maxGlassInfo.getEngineerId())
@@ -162,7 +152,7 @@
                damage.setLine(Const.TEMPERING_OUT_TARGET_POSITION);
                damage.setWorkingProcedure("钢化");
                damage.setRemark("钢化");
                damage.setStatus(0);
                damage.setStatus(1);
                damage.setType(e.getState());
                return damage;
            }).collect(Collectors.toList());