From e935889261ef38c8eaef31e54cbfc466d63d2ef4 Mon Sep 17 00:00:00 2001 From: hyingbo <1363390067@qq.com> Date: 星期四, 17 七月 2025 09:42:28 +0800 Subject: [PATCH] fanuc获取程序名、获取报警描述 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java | 145 ++++++++++------------------------------------- 1 files changed, 32 insertions(+), 113 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java index 158aca7..e35d444 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java @@ -13,20 +13,15 @@ import org.jeecg.modules.mdc.service.*; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.util.TimeFieldUtils; -import org.jeecg.modules.mdc.vo.EquFaultRecord; import org.jeecg.modules.mdc.vo.MdcAlarmAnalyzeQueryVo; import org.jeecg.modules.mdc.vo.MdcEquipmentRunningSectionVo; -import org.jeecg.modules.mdc.vo.TimeInterval; import org.jeecg.modules.system.service.ISysDictService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.time.LocalDate; -import java.time.LocalDateTime; import java.util.*; -import java.util.stream.Collectors; /** * @Description: 璁惧杩愯鏃舵鐘舵�佽〃 @@ -69,8 +64,6 @@ List<MdcEquipmentRunningSection> running = loadEquipmentRunningTrace(equipmentRunningSectionVo.getEquipmentId(), equipmentRunningSectionVo.getCollectTimeStr()); //鏌ヨ鎶ヨ鏁版嵁 List<MdcEquipmentRunningSection> errs = loadEquipmentErrorTrace(equipmentRunningSectionVo.getEquipmentId(), equipmentRunningSectionVo.getCollectTimeStr()); - //鏌ヨ鏁呴殰鏁版嵁 - List<MdcEquipmentRunningSection> faults = loadEquipmentFaultTrace(equipmentRunningSectionVo.getEquipmentId(), equipmentRunningSectionVo.getCollectTimeStr()); Equipment equip = equipmentService.getOne(new LambdaQueryWrapper<Equipment>().eq(Equipment::getEquipmentid, equipmentRunningSectionVo.getEquipmentId())); if (!running.isEmpty()) { MdcEquipmentRunningSectionDto dto; @@ -86,9 +79,18 @@ dto = new MdcEquipmentRunningSectionDto(); BeanUtils.copyProperties(entity, dto); if (entity.getStatus() == 3 && StringUtils.isBlank(entity.getSequenceNumber()) && isTableExist && !"ZUOLAN".equals(equip.getDrivetype())) { - List<EquipmentMachingDto> esList = equipmentWorkLineService.getEquipmentSequencenumber(tableName, entity.getStartTime(), entity.getEndTime()); - if (esList != null && esList.size() > 1) { - dto.setSequenceNumber(esList.get(0).getSequencenumber()); + //FANUC鑾峰彇绋嬪簭鍚嶇壒娈婂鐞� + if (equip.getDrivetype().startsWith("FANUC")) { + List<EquipmentMachingDto> esList = equipmentWorkLineService.getEquipProgramNum(equip.getDrivetype(), equip.getEquipmentid(), + entity.getStartTime(), entity.getEndTime()); + if (esList != null && esList.size() > 1) { + dto.setSequenceNumber(esList.get(0).getProductName()); + } + }else { + List<EquipmentMachingDto> esList = equipmentWorkLineService.getEquipmentSequencenumber(tableName, entity.getStartTime(), entity.getEndTime()); + if (esList != null && esList.size() > 1) { + dto.setSequenceNumber(esList.get(0).getSequencenumber()); + } } } dtos.add(dto); @@ -107,12 +109,22 @@ } } } +// 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); } } List<MdcEquipmentRunningSectionDto> result = new ArrayList<>(); - //鍚堝苟鐩稿悓鐘舵�佹暟鎹� for (int i = 0; i < dtos.size() - 1; i++) { MdcEquipmentRunningSectionDto mdcEquipmentRunningSectionDto = dtos.get(i); @@ -138,105 +150,7 @@ result.addAll(dtos); } - if (faults != null && !faults.isEmpty()) { - MdcEquipmentRunningSectionDto dto; - for (MdcEquipmentRunningSection entity : faults) { - dto = new MdcEquipmentRunningSectionDto(); - BeanUtils.copyProperties(entity, dto); - result.add(dto); - } - } - return result; - } - - private List<MdcEquipmentRunningSection> loadEquipmentFaultTrace(String equipmentId, String collectTimeStr) { - List<MdcEquipmentRunningSection> result = new ArrayList<>(); - Date startTime = DateUtils.getShortDate(collectTimeStr); - Date now = DateUtils.removeTime(DateUtils.getNow()); - long second = DateUtils.differentSecond(startTime, now); - Date endTime = DateUtils.plusTime(startTime, 1); - if (collectTimeStr.equals(LocalDate.now().toString())) { - endTime = DateUtils.getNow(); - } - if (second < 0) { - return Collections.emptyList(); - } else { - List<EquFaultRecord> equFaultRecordList = this.baseMapper.findFaultList(equipmentId, startTime, endTime); - if (equFaultRecordList != null && !equFaultRecordList.isEmpty()) { - - // 淇璁板綍鏃堕棿 - List<EquFaultRecord> correctedRecords = correctRecordTimes(equFaultRecordList, DateUtils.convertToLocalDateTime(startTime), DateUtils.convertToLocalDateTime(endTime)); - - // 鎸夊紑濮嬫椂闂存帓搴� - correctedRecords.sort(Comparator.comparing(EquFaultRecord::getStartTime)); - - // 鍚堝苟閲嶅彔鏃堕棿娈� - List<TimeInterval> mergedIntervals = mergeIntervals(correctedRecords); - - for (TimeInterval mergedInterval : mergedIntervals) { - MdcEquipmentRunningSection mdcEquipmentRunningSection = new MdcEquipmentRunningSection(25, equipmentId, DateUtils.convertToDate(mergedInterval.getStart()), DateUtils.convertToDate(mergedInterval.getEnd()), DateUtils.convertToDate(mergedInterval.getStart()).getTime(), DateUtils.convertToDate(mergedInterval.getEnd()).getTime()); - mdcEquipmentRunningSection.setDuration(DateUtils.differentSecond(mdcEquipmentRunningSection.getStartTime(), mdcEquipmentRunningSection.getEndTime())); - result.add(mdcEquipmentRunningSection); - } - } - } - return result; - } - - private static List<EquFaultRecord> correctRecordTimes(List<EquFaultRecord> records, LocalDateTime startTime, LocalDateTime endTime) { - return records.stream() - .map(record -> { - LocalDateTime recordStart = DateUtils.convertToLocalDateTime(record.getStartTime()); - LocalDateTime recordEnd = record.getEndTime() != null ? - DateUtils.convertToLocalDateTime(record.getEndTime()) : null; - - // 淇寮�濮嬫椂闂� - LocalDateTime correctedStart = recordStart.isBefore(startTime) ? - startTime : recordStart; - - // 淇缁撴潫鏃堕棿 - LocalDateTime correctedEnd = recordEnd == null || recordEnd.isAfter(endTime) ? - endTime : recordEnd; - - // 鍒涘缓淇鍚庣殑璁板綍 - return new EquFaultRecord( - record.getEquipmentId(), - DateUtils.convertToDate(correctedStart), - DateUtils.convertToDate(correctedEnd) - ); - }) - .collect(Collectors.toList()); - } - - private static List<TimeInterval> mergeIntervals(List<EquFaultRecord> records) { - List<TimeInterval> intervals = records.stream() - .map(record -> new TimeInterval( - DateUtils.convertToLocalDateTime(record.getStartTime()), - DateUtils.convertToLocalDateTime(record.getEndTime()))) - .collect(Collectors.toList()); - - if (intervals.isEmpty()) { - return Collections.emptyList(); - } - - List<TimeInterval> merged = new ArrayList<>(); - TimeInterval current = intervals.get(0); - - for (int i = 1; i < intervals.size(); i++) { - TimeInterval next = intervals.get(i); - if (next.getStart().isBefore(current.getEnd()) || next.getStart().equals(current.getEnd())) { - // 鏈夐噸鍙狅紝鍚堝苟鍖洪棿 - current.setEnd(current.getEnd().isAfter(next.getEnd()) ? current.getEnd() : next.getEnd()); - } else { - // 鏃犻噸鍙狅紝娣诲姞褰撳墠鍖洪棿骞舵洿鏂板綋鍓嶅尯闂� - merged.add(current); - current = next; - } - } - merged.add(current); // 娣诲姞鏈�鍚庝竴涓尯闂� - - return merged; } /** @@ -615,9 +529,9 @@ //鑾峰彇running杩愯鐨勬棩蹇楄褰� List<MdcEquipmentRunningSection> list = this.equipmentRunningTracesLog(equipment.getEquipmentid()); if (list != null && !list.isEmpty()) { -// List<MdcEquipmentRunningSection> equipList = addSequenceNumber(list); //娣诲姞绋嬪簭鍙� - this.ergodicTrim(list); - super.saveBatch(list); + List<MdcEquipmentRunningSection> equipList = addSequenceNumber(list); //娣诲姞绋嬪簭鍙� + this.ergodicTrim(equipList); + super.saveBatch(equipList); } //鑾峰彇鎶ヨ鐨勬棩蹇楄褰� List<MdcEquipmentRunningSection> errorList = this.equipmentRunningTracesErrorLog(equipment.getEquipmentid()); @@ -651,7 +565,7 @@ List<EquipmentMachingDto> esList = equipmentWorkLineService.getEquipProgramNum(equip.getDrivetype(), equip.getEquipmentid(), e.getStartTime(), e.getEndTime()); if (esList != null && esList.size() > 1) { - e.setSequenceNumber(esList.get(0).getProgramnumber()); + e.setSequenceNumber(esList.get(0).getProductName()); } } else if (StringUtils.isNotBlank(equip.getDrivetype()) && equip.getDrivetype().startsWith("SIEMENS")) { List<EquipmentMachingDto> esList = equipmentWorkLineService.getEquipmentSequencenumber(equip.getDrivetype() + "_" + equip.getEquipmentid(), e.getStartTime(), e.getEndTime()); @@ -841,6 +755,11 @@ return this.baseMapper.findWaitList(date); } + @Override + public MdcEquipmentRunningSection getFirstRecord() { + return this.baseMapper.getFirstRecord(); + } + private Map<String, List<MdcEquipmentRunningSectionDto>> logCharts(MdcEquipmentRunningSectionVo equipmentRunningSectionVo, String date) { Map<String, List<MdcEquipmentRunningSectionDto>> map = new HashMap<>(); List<MdcEquipmentRunningSectionDto> normal = new ArrayList<>(); -- Gitblit v1.9.3