package org.jeecg.modules.mdc.service.impl; import io.swagger.models.auth.In; import org.apache.commons.lang3.StringUtils; import org.checkerframework.checker.units.qual.A; import org.jeecg.modules.mdc.dto.MdcAlarmAnalyzeDto; 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.DayUtilizationRateContrastQueryVo; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; import java.util.logging.Handler; /** * @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 alarmList(String userId, DayUtilizationRateContrastQueryVo vo) { List result = new ArrayList<>(); List 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 mdcEquipmentRunningSections = mdcEquipmentRunningSectionService.findAlarmList(vo); Map 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; } }