From f84d9e69907cb678150eaa6393fd74cf042fcca4 Mon Sep 17 00:00:00 2001 From: zenglf <18502938215@163.com> Date: 星期四, 28 九月 2023 14:39:03 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' into develop --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 151 insertions(+), 0 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java new file mode 100644 index 0000000..23303ef --- /dev/null +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentAlarmAnalyzeServiceImpl.java @@ -0,0 +1,151 @@ +package org.jeecg.modules.mdc.service.impl; + +import org.apache.commons.lang3.StringUtils; +import org.jeecg.modules.mdc.dto.MdcAlarmAnalyzeDto; +import org.jeecg.modules.mdc.dto.MdcAlarmDto; +import org.jeecg.modules.mdc.dto.MdcAlarmTrendDto; +import org.jeecg.modules.mdc.entity.MdcEquipmentRunningSection; +import org.jeecg.modules.mdc.service.IMdcEquipmentRunningSectionService; +import org.jeecg.modules.mdc.service.IMdcEquipmentService; +import org.jeecg.modules.mdc.service.MdcEquipmentAlarmAnalyzeService; +import org.jeecg.modules.mdc.util.DateUtils; +import org.jeecg.modules.mdc.vo.MdcAlarmAnalyzeQueryVo; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.*; + +/** + * @author: LiuS + * @create: 2023-09-06 17:31 + */ +@Service +public class MdcEquipmentAlarmAnalyzeServiceImpl implements MdcEquipmentAlarmAnalyzeService { + + @Resource + private IMdcEquipmentRunningSectionService mdcEquipmentRunningSectionService; + + @Resource + private IMdcEquipmentService mdcEquipmentService; + + @Override + public List<MdcAlarmAnalyzeDto> alarmList(String userId, MdcAlarmAnalyzeQueryVo vo) { + List<MdcAlarmAnalyzeDto> result = new ArrayList<>(); + List<String> equipmentIds = new ArrayList<>(); + if (StringUtils.isNotEmpty(vo.getParentId()) && StringUtils.isEmpty(vo.getEquipmentId())) { + if ("2".equals(vo.getTypeTree())) { + // 閮ㄩ棬灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, vo.getParentId()); + } else { + // 浜х嚎灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, vo.getParentId()); + } + } else if (StringUtils.isNotEmpty(vo.getEquipmentId())) { + // 鍗曞彴璁惧淇℃伅 + vo.setEquipmentIdList(Collections.singletonList(vo.getEquipmentId())); + } else { + // 鏌ヨ鐢ㄦ埛鎷ユ湁鐨勬墍鏈夎澶囦俊鎭� + if ("2".equals(vo.getTypeTree())) { + // 閮ㄩ棬灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); + } else { + // 浜х嚎灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); + } + } + if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) { + vo.setEquipmentIdList(equipmentIds); + } + if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) { + return result; + } else { + vo.setStartDate(DateUtils.format(DateUtils.toDate(vo.getStartDate(), DateUtils.STRDATE), DateUtils.STR_DATE) + " 00:00:00"); + vo.setEndDate(DateUtils.format(DateUtils.addDays(DateUtils.toDate(vo.getEndDate(), DateUtils.STRDATE), 1), DateUtils.STR_DATE) + " 00:00:00"); + // 鏌ヨ + List<MdcEquipmentRunningSection> mdcEquipmentRunningSections = mdcEquipmentRunningSectionService.findAlarmList(vo); + Map<String, MdcAlarmAnalyzeDto> map = new HashMap<>(); + for (MdcEquipmentRunningSection mdcEquipmentRunningSection : mdcEquipmentRunningSections) { + if (map.containsKey(mdcEquipmentRunningSection.getAlarm())) { + MdcAlarmAnalyzeDto mdcAlarmAnalyzeDto = map.get(mdcEquipmentRunningSection.getAlarm()); + mdcAlarmAnalyzeDto.setCount(mdcAlarmAnalyzeDto.getCount() + 1); + mdcAlarmAnalyzeDto.setTimeCount(mdcAlarmAnalyzeDto.getTimeCount().add(new BigDecimal(mdcEquipmentRunningSection.getDuration()))); + map.put(mdcEquipmentRunningSection.getAlarm(), mdcAlarmAnalyzeDto); + } else { + MdcAlarmAnalyzeDto mdcAlarmAnalyzeDto = new MdcAlarmAnalyzeDto(); + mdcAlarmAnalyzeDto.setAlarmCode(mdcEquipmentRunningSection.getAlarm()); + mdcAlarmAnalyzeDto.setCount(1); + mdcAlarmAnalyzeDto.setTimeCount(new BigDecimal(mdcEquipmentRunningSection.getDuration())); + map.put(mdcEquipmentRunningSection.getAlarm(), mdcAlarmAnalyzeDto); + } + } + if (!map.isEmpty()) { + result = new ArrayList<>(map.values()); + } + } + return result; + } + + + @Override + public MdcAlarmTrendDto alarmTrend(String userId, MdcAlarmAnalyzeQueryVo vo) { + MdcAlarmTrendDto result = new MdcAlarmTrendDto(); + List<String> equipmentIds = new ArrayList<>(); + if (StringUtils.isNotEmpty(vo.getParentId()) && StringUtils.isEmpty(vo.getEquipmentId())) { + if ("2".equals(vo.getTypeTree())) { + // 閮ㄩ棬灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, vo.getParentId()); + } else { + // 浜х嚎灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, vo.getParentId()); + } + } else if (StringUtils.isNotEmpty(vo.getEquipmentId())) { + // 鍗曞彴璁惧淇℃伅 + vo.setEquipmentIdList(Collections.singletonList(vo.getEquipmentId())); + } else { + // 鏌ヨ鐢ㄦ埛鎷ユ湁鐨勬墍鏈夎澶囦俊鎭� + if ("2".equals(vo.getTypeTree())) { + // 閮ㄩ棬灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); + } else { + // 浜х嚎灞傜骇 + equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); + } + } + if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) { + vo.setEquipmentIdList(equipmentIds); + } + if (vo.getEquipmentIdList() != null && !vo.getEquipmentIdList().isEmpty()) { + result.setEquipmentList(vo.getEquipmentIdList()); + List<MdcAlarmDto> equipmentCountList = new ArrayList<>(); + String startDate = DateUtils.format(DateUtils.toDate(vo.getStartDate(), DateUtils.STRDATE), DateUtils.STR_DATE) + " 00:00:00"; + String endDate = DateUtils.format(DateUtils.addDays(DateUtils.toDate(vo.getEndDate(), DateUtils.STRDATE), 1), DateUtils.STR_DATE) + " 00:00:00"; + for (String equipmentId : result.getEquipmentList()) { + MdcAlarmDto mdcAlarmDto = new MdcAlarmDto(); + mdcAlarmDto.setKey(equipmentId); + Integer count = mdcEquipmentRunningSectionService.findAlarmCount(equipmentId, startDate, endDate, vo.getAlarmCode()); + mdcAlarmDto.setCount(count); + equipmentCountList.add(mdcAlarmDto); + } + result.setEquipmentCountList(equipmentCountList); + } + + Date start = DateUtils.toDate(vo.getStartDate(), DateUtils.STRDATE); + Date end = DateUtils.toDate(vo.getEndDate(), DateUtils.STRDATE); + List<String> dateList = DateUtils.getDatesStringLists(start, end); + result.setDateList(dateList); + List<String> datesStringList = DateUtils.getDatesStringList(start, end); + List<MdcAlarmDto> dateCountList = new ArrayList<>(); + for (String date : datesStringList) { + MdcAlarmDto mdcAlarmDto = new MdcAlarmDto(); + mdcAlarmDto.setKey(DateUtils.format(DateUtils.toDate(date, DateUtils.STR_DATE), DateUtils.STR_MMDD)); + String startDate = date + " 00:00:00"; + String endDate = DateUtils.format(DateUtils.addDays(DateUtils.toDate(date, DateUtils.STR_DATE), 1), DateUtils.STR_DATE) + " 00:00:00"; + Integer count = mdcEquipmentRunningSectionService.findAlarmCountByDate(startDate, endDate, vo); + mdcAlarmDto.setCount(count); + dateCountList.add(mdcAlarmDto); + } + result.setDateCountList(dateCountList); + return result; + } +} -- Gitblit v1.9.3