Lius
2024-06-04 dc4d5cb49cba56d843f72c5244a04e8efd0beb40
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java
@@ -49,6 +49,9 @@
    @Resource
    private IEquipmentRunningTraceService equipmentRunningTraceService;
    @Resource
    private IMdcAlarmInfoService mdcAlarmInfoService;
    @Override
    public List<MdcEquipmentRunningSectionDto> logList(MdcEquipmentRunningSectionVo equipmentRunningSectionVo) {
@@ -60,9 +63,9 @@
        List<MdcEquipmentRunningSection> running = loadEquipmentRunningTrace(equipmentRunningSectionVo.getEquipmentId(), equipmentRunningSectionVo.getCollectTimeStr());
        //查询报警数据
        List<MdcEquipmentRunningSection> errs = loadEquipmentErrorTrace(equipmentRunningSectionVo.getEquipmentId(), equipmentRunningSectionVo.getCollectTimeStr());
        Equipment equip = equipmentService.getOne(new LambdaQueryWrapper<Equipment>().eq(Equipment::getEquipmentid, equipmentRunningSectionVo.getEquipmentId()));
        if (!running.isEmpty()) {
            MdcEquipmentRunningSectionDto dto;
            Equipment equip = equipmentService.getOne(new LambdaQueryWrapper<Equipment>().eq(Equipment::getEquipmentid, equipmentRunningSectionVo.getEquipmentId()));
            String tableName = "";
            Boolean isTableExist = false;
            if (equip != null) {
@@ -88,21 +91,56 @@
            for (MdcEquipmentRunningSection entity : errs) {
                dto = new MdcEquipmentRunningSectionDto();
                BeanUtils.copyProperties(entity, dto);
                Set<TmpEquipmentAlarm> set = entity.getTmpEquipmentAlarmSet();
                if (entity.getStatus() == 22 && set != null && !set.isEmpty()) {
                    Iterator<TmpEquipmentAlarm> iterator = entity.getTmpEquipmentAlarmSet().iterator();
                    //获取报警编号相同的报警信息
                    while (iterator.hasNext()) {
                        TmpEquipmentAlarm next = iterator.next();
                        if (StringUtils.isNotBlank(next.getAlarmNo()) && next.getAlarmNo().equals(entity.getStatus())) {
                            dto.setAlarmContent(next.getAlarmContent());
                if (entity.getStatus() == 22) {
                    if (equip != null) {
                        List<MdcAlarmInfo> mdcAlarmInfo = mdcAlarmInfoService.list(new LambdaQueryWrapper<MdcAlarmInfo>().eq(MdcAlarmInfo::getDriveType, equip.getDrivetype()).eq(MdcAlarmInfo::getAlarmCode, entity.getAlarm()).eq(MdcAlarmInfo::getIsUse, 0));
                        if (mdcAlarmInfo != null && !mdcAlarmInfo.isEmpty()) {
                            dto.setAlarmContent(mdcAlarmInfo.get(0).getAlarmContent());
                        }
                    }
                }
//                Set<TmpEquipmentAlarm> set = entity.getTmpEquipmentAlarmSet();
//                if (entity.getStatus() == 22 && set != null && !set.isEmpty()) {
//                    Iterator<TmpEquipmentAlarm> iterator = entity.getTmpEquipmentAlarmSet().iterator();
//                    //获取报警编号相同的报警信息
//                    while (iterator.hasNext()) {
//                        TmpEquipmentAlarm next = iterator.next();
//                        if (StringUtils.isNotBlank(next.getAlarmNo()) && next.getAlarmNo().equals(entity.getStatus())) {
//                            dto.setAlarmContent(next.getAlarmContent());
//                        }
//                    }
//                }
                dtos.add(dto);
            }
        }
        return dtos;
        List<MdcEquipmentRunningSectionDto> result = new ArrayList<>();
        //合并相同状态数据
        for (int i = 0; i < dtos.size() - 1; i++) {
            MdcEquipmentRunningSectionDto mdcEquipmentRunningSectionDto = dtos.get(i);
            MdcEquipmentRunningSectionDto next = dtos.get(i + 1);
            if (mdcEquipmentRunningSectionDto.getStatus().equals(next.getStatus()) && mdcEquipmentRunningSectionDto.getEndTime().equals(next.getStartTime())) {
                MdcEquipmentRunningSectionDto equipmentRunningSectionDto = new MdcEquipmentRunningSectionDto();
                BeanUtils.copyProperties(mdcEquipmentRunningSectionDto, equipmentRunningSectionDto);
                equipmentRunningSectionDto.setEndTime(next.getEndTime());
                equipmentRunningSectionDto.setDuration(mdcEquipmentRunningSectionDto.getDuration() + next.getDuration());
                result.add(equipmentRunningSectionDto);
                i++;
            } else {
                result.add(mdcEquipmentRunningSectionDto);
            }
        }
        if (dtos.size() > 1) {
            MdcEquipmentRunningSectionDto a = dtos.get(dtos.size() - 2);
            MdcEquipmentRunningSectionDto b = dtos.get(dtos.size() - 1);
            if (!a.getStatus().equals(b.getStatus()) && a.getEndTime().equals(b.getStartTime())) {
                result.add(dtos.get(dtos.size() - 1));
            }
        } else if (dtos.size() == 1){
            result.addAll(dtos);
        }
        return result;
    }
    /**