| | |
| | | package com.qianwen.smartman.modules.mdc.service.impl; |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.google.common.collect.Lists; |
| | | import java.time.LocalDate; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.Comparator; |
| | | import java.util.HashMap; |
| | | import java.util.HashSet; |
| | |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import com.qianwen.smartman.common.constant.DateConstant; |
| | | import com.qianwen.smartman.common.constant.ExcelConstant; |
| | | import com.qianwen.smartman.common.utils.LocalDateTimeUtils; |
| | | import com.qianwen.smartman.common.utils.LocalDateUtil; |
| | | import com.qianwen.smartman.common.utils.MessageUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.google.common.collect.Lists; |
| | | import com.qianwen.core.excel.util.ExcelUtil; |
| | | import com.qianwen.core.mp.support.Condition; |
| | | import com.qianwen.core.mp.support.Query; |
| | |
| | | import com.qianwen.core.tool.utils.CollectionUtil; |
| | | import com.qianwen.core.tool.utils.DateUtil; |
| | | import com.qianwen.core.tool.utils.Func; |
| | | import com.qianwen.smartman.common.constant.DateConstant; |
| | | import com.qianwen.smartman.common.constant.ExcelConstant; |
| | | import com.qianwen.smartman.common.utils.LocalDateTimeUtils; |
| | | import com.qianwen.smartman.common.utils.LocalDateUtil; |
| | | import com.qianwen.smartman.common.utils.MessageUtils; |
| | | import com.qianwen.smartman.modules.cps.dto.ShiftInfoDTO; |
| | | import com.qianwen.smartman.modules.cps.mapper.WorkstationMapper; |
| | | import com.qianwen.smartman.modules.cps.service.IShiftDetailService; |
| | | import com.qianwen.smartman.modules.cps.vo.WorkstationVO; |
| | | import com.qianwen.smartman.modules.mdc.convert.AlarmConvert; |
| | | import com.qianwen.smartman.modules.mdc.entity.SuperAggregate; |
| | | import com.qianwen.smartman.modules.mdc.entity.SuperAlarm; |
| | | import com.qianwen.smartman.modules.mdc.enums.OpenTypeEnums; |
| | | import com.qianwen.smartman.modules.mdc.enums.StatisticalMethodEnum; |
| | |
| | | import com.qianwen.smartman.modules.mdc.vo.AlarmSummaryGraphVO; |
| | | import com.qianwen.smartman.modules.mdc.vo.SplitFilterListVO; |
| | | import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | |
| | | @Service |
| | | /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/mdc/service/impl/AlarmServiceImpl.class */ |
| | | public class AlarmServiceImpl implements IAlarmService { |
| | | private static final Logger log = LoggerFactory.getLogger(AlarmServiceImpl.class); |
| | | private final SuperAlarmMapper alarmMapper; |
| | |
| | | @Override // org.springblade.modules.mdc.service.IAlarmService |
| | | public IPage<AlarmDataSheetVO> pageAlarm(Query query, AlarmShiftSearchVO vo) { |
| | | if (Func.isNull(vo.getWorkstationId())) { |
| | | return new Page(); |
| | | return new Page<>(); |
| | | } |
| | | LocalDate queryTime = vo.getQueryTime(); |
| | | List<SuperAlarm> list = this.alarmMapper.selectListAlarm(vo, DateUtil.format(queryTime, "yyyyMMdd")); |
| | | Map<String, List<SuperAlarm>> map = (Map) FilterOffUtils.filterOffDay(list, OpenTypeEnums.ALARM_ANALYSIS).stream().collect(Collectors.groupingBy(c -> { |
| | | Map<String, List<SuperAlarm>> map = FilterOffUtils.filterOffDay(list, OpenTypeEnums.ALARM_ANALYSIS).stream().collect(Collectors.groupingBy(c -> { |
| | | return c.getCode() + c.getMessage(); |
| | | })); |
| | | Integer size = query.getSize(); |
| | | Integer current = query.getCurrent(); |
| | | Page page = new Page(current.intValue(), size.intValue(), map.size()); |
| | | Page<AlarmDataSheetVO> page = new Page<>(current.intValue(), size.intValue(), map.size()); |
| | | if (map.size() == 0) { |
| | | return page; |
| | | } |
| | | List<SuperAlarm> alarms = this.alarmMapper.selectListAlarm(vo, DateUtil.format(queryTime, "yyyyMMdd")); |
| | | List<AlarmDataSheetVO> res = AlarmConvert.INSTANCE.convert(FilterOffUtils.filterOffDay(alarms, OpenTypeEnums.ALARM_ANALYSIS)); |
| | | List<AlarmDataSheetVO> alarmDataSheetVOS = new ArrayList<>(); |
| | | Map<String, List<AlarmDataSheetVO>> resMap = (Map) res.stream().collect(Collectors.groupingBy(c2 -> { |
| | | Map<String, List<AlarmDataSheetVO>> resMap = res.stream().collect(Collectors.groupingBy(c2 -> { |
| | | return c2.getAlarmCode() + c2.getAlarmMsg(); |
| | | })); |
| | | resMap.values().forEach(alarmDataSheetVOList -> { |
| | |
| | | @Override // org.springblade.modules.mdc.service.IAlarmService |
| | | public BladeFile exportAlarm(AlarmShiftSearchExcelVO vo) { |
| | | BladeFile bladeFile; |
| | | List<SuperAlarm> superAlarms = (List) FilterOffUtils.filterOffDay(this.alarmMapper.selectListAlarmByShift(LocalDateTimeUtils.formatTimeLocalDate(vo.getStartTime(), "yyyyMMdd"), LocalDateTimeUtils.formatTimeLocalDate(vo.getEndTime(), "yyyyMMdd"), vo.getWorkstationId()), OpenTypeEnums.ALARM_ANALYSIS).stream().sorted(Comparator.comparing((v0) -> { |
| | | |
| | | List<SuperAlarm> superAlarms = this.alarmMapper.selectListAlarmByShift(LocalDateTimeUtils.formatTimeLocalDate(vo.getStartTime(), "yyyyMMdd"), LocalDateTimeUtils.formatTimeLocalDate(vo.getEndTime(), "yyyyMMdd"), vo.getWorkstationId()); |
| | | superAlarms = FilterOffUtils.filterOffDay(superAlarms, OpenTypeEnums.ALARM_ANALYSIS); |
| | | superAlarms.sort(Comparator.comparing(SuperAggregate::getFactoryDate)); |
| | | Collections.reverse(superAlarms); |
| | | //superAlarms = superAlarms.stream().collect(Collectors.toList()); |
| | | /* |
| | | List<SuperAlarm> superAlarms = FilterOffUtils.filterOffDay(this.alarmMapper.selectListAlarmByShift(LocalDateTimeUtils.formatTimeLocalDate(vo.getStartTime(), "yyyyMMdd"), LocalDateTimeUtils.formatTimeLocalDate(vo.getEndTime(), "yyyyMMdd"), vo.getWorkstationId()), OpenTypeEnums.ALARM_ANALYSIS).stream().sorted(Comparator.comparing((v0) -> { |
| | | return v0.getFactoryDate(); |
| | | }).reversed()).collect(Collectors.toList()); |
| | | }).reversed()).collect(Collectors.toList());*/ |
| | | WorkstationVO workstationVO = (WorkstationVO) this.workstationMapper.queryWorkstationAndGroup(Condition.getPage(new Query().setSize(-1)), Lists.newArrayList(new Long[]{vo.getWorkstationId()})).getRecords().get(0); |
| | | if (vo.getEnums().equals(StatisticalMethodEnum.SHIFT)) { |
| | | List<SuperAlarm> superAlarms2 = (List) superAlarms.stream().filter(s -> { |
| | | List<SuperAlarm> superAlarms2 = superAlarms.stream().filter(s -> { |
| | | return s.getShiftIndex().intValue() > 0; |
| | | }).collect(Collectors.toList()); |
| | | List<ShiftInfoDTO> shiftInfoDtoList = this.shiftDetailService.getShiftInfoDtoList(Lists.newArrayList(new Long[]{vo.getWorkstationId()}), vo.getStartTime(), vo.getEndTime()); |
| | |
| | | } |
| | | |
| | | private BladeFile exportShift(List<SuperAlarm> superAlarms, WorkstationVO workstationVO, List<ShiftInfoDTO> shiftInfoDtoList) { |
| | | Map<String, List<SuperAlarm>> mapGroupByShift = (Map) superAlarms.stream().collect(Collectors.groupingBy(s -> { |
| | | Map<String, List<SuperAlarm>> mapGroupByShift = superAlarms.stream().collect(Collectors.groupingBy(s -> { |
| | | return s.getFactoryDate() + "-" + s.getShiftIndex(); |
| | | })); |
| | | List<AlarmDataSheetExcel> alarmDataSheetExcelList = new ArrayList<>(); |
| | | String shift = MessageUtils.message("mdc.excel.alarm.shift", new Object[0]); |
| | | Map<String, String> shiftIndexToName = (Map) shiftInfoDtoList.stream().collect(Collectors.toMap(s2 -> { |
| | | Map<String, String> shiftIndexToName = shiftInfoDtoList.stream().collect(Collectors.toMap(s2 -> { |
| | | return s2.getDate().replace("-", "") + "-" + s2.getShiftIndex(); |
| | | }, (v0) -> { |
| | | return v0.getIndexName(); |
| | | })); |
| | | Map<String, List<SuperAlarm>> result = new LinkedHashMap<>(); |
| | | mapGroupByShift.entrySet().stream().sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())).forEachOrdered(x -> { |
| | | List list = (List) result.put(x.getKey(), x.getValue()); |
| | | List<SuperAlarm> list = result.put(x.getKey(), x.getValue()); |
| | | }); |
| | | result.forEach(k, v -> { |
| | | Map<String, List<SuperAlarm>> mapGroupByAlarmCodeAndMessage = (Map) v.stream().collect(Collectors.groupingBy(s3 -> { |
| | | result.forEach((k, v) -> { |
| | | Map<String, List<SuperAlarm>> mapGroupByAlarmCodeAndMessage = v.stream().collect(Collectors.groupingBy(s3 -> { |
| | | return s3.getCode() + "-" + s3.getMessage(); |
| | | })); |
| | | mapGroupByAlarmCodeAndMessage.forEach(key, value -> { |
| | | mapGroupByAlarmCodeAndMessage.forEach((key, value) -> { |
| | | String alarmMessage; |
| | | AlarmDataSheetExcel alarmDataSheetExcel = new AlarmDataSheetExcel(); |
| | | String[] split = k.split("-"); |
| | |
| | | String the = MessageUtils.message("mdc.efficiency.analysis.the", new Object[0]); |
| | | String week = MessageUtils.message("mdc.efficiency.analysis.week", new Object[0]); |
| | | if (statisticalMethodEnum.equals(StatisticalMethodEnum.DAY)) { |
| | | map = (Map) superAlarms.stream().collect(Collectors.groupingBy(s -> { |
| | | map = superAlarms.stream().collect(Collectors.groupingBy(s -> { |
| | | return String.valueOf(s.getFactoryDate()); |
| | | })); |
| | | } else if (statisticalMethodEnum.equals(StatisticalMethodEnum.WEEK)) { |
| | | map = (Map) superAlarms.stream().collect(Collectors.groupingBy(s2 -> { |
| | | map = superAlarms.stream().collect(Collectors.groupingBy(s2 -> { |
| | | return s2.getFactoryYear() + "-" + s2.getFactoryWeek(); |
| | | })); |
| | | } else { |
| | | map = (Map) superAlarms.stream().collect(Collectors.groupingBy(s3 -> { |
| | | map = superAlarms.stream().collect(Collectors.groupingBy(s3 -> { |
| | | return s3.getFactoryYear() + "-" + s3.getFactoryMonth(); |
| | | })); |
| | | } |
| | |
| | | map.entrySet().stream().sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())).forEachOrdered(x -> { |
| | | List list = (List) result.put(x.getKey(), x.getValue()); |
| | | }); |
| | | result.forEach(k, v -> { |
| | | Map<String, List<SuperAlarm>> mapGroupByAlarmCodeAndMessage = (Map) v.stream().collect(Collectors.groupingBy(s4 -> { |
| | | result.forEach((k, v) -> { |
| | | Map<String, List<SuperAlarm>> mapGroupByAlarmCodeAndMessage = v.stream().collect(Collectors.groupingBy(s4 -> { |
| | | return s4.getCode() + "-" + s4.getMessage(); |
| | | })); |
| | | mapGroupByAlarmCodeAndMessage.forEach(key, value -> { |
| | | mapGroupByAlarmCodeAndMessage.forEach((key, value) -> { |
| | | String alarmMessage; |
| | | String[] split = k.split("-"); |
| | | AlarmDataSheetExcelForOther alarmDataSheetExcelForOther = new AlarmDataSheetExcelForOther(); |
| | |
| | | return new AlarmSummaryGraphVO(); |
| | | } |
| | | List<SuperAlarm> alarms = this.alarmMapper.queryAlarm(null, vo, DateUtil.format(vo.getQueryTime(), "yyyyMMdd")); |
| | | Map<String, Integer> map = (Map) FilterOffUtils.filterOffDay(alarms, OpenTypeEnums.ALARM_ANALYSIS).stream().collect(Collectors.groupingBy((v0) -> { |
| | | Map<String, Integer> map = FilterOffUtils.filterOffDay(alarms, OpenTypeEnums.ALARM_ANALYSIS).stream().collect(Collectors.groupingBy((v0) -> { |
| | | return v0.getCode(); |
| | | }, Collectors.reducing(0, e -> { |
| | | return 1; |
| | |
| | | if (Func.isEmpty(shiftInfoDtoList)) { |
| | | return new ArrayList(); |
| | | } |
| | | return (List) shiftInfoDtoList.stream().map(shiftInfoDTO -> { |
| | | return shiftInfoDtoList.stream().map(shiftInfoDTO -> { |
| | | AlarmDataSheetShiftVO alarmDataSheetShiftVO = new AlarmDataSheetShiftVO(); |
| | | vo.setShiftIndex(shiftInfoDTO.getShiftIndex()); |
| | | Query query = new Query(); |
| | |
| | | String shift = MessageUtils.message("mdc.excel.alarm.shift", new Object[0]); |
| | | List<ShiftInfoDTO> shiftInfoDtoList = this.shiftDetailService.getShiftInfoDtoList(Lists.newArrayList(new Long[]{vo.getWorkstationId()}), vo.getQueryTime(), vo.getQueryTime()); |
| | | if (Func.isEmpty(shiftInfoDtoList)) { |
| | | return new ArrayList(); |
| | | return new ArrayList<>(); |
| | | } |
| | | return (List) shiftInfoDtoList.stream().map(shiftInfoDTO -> { |
| | | return shiftInfoDtoList.stream().map(shiftInfoDTO -> { |
| | | AlarmSummaryGraphShiftVO alarmSummaryGraphShiftVO = new AlarmSummaryGraphShiftVO(); |
| | | alarmSummaryGraphShiftVO.setShiftIndex(shiftInfoDTO.getShiftIndex()); |
| | | alarmSummaryGraphShiftVO.setShiftIndexName(Func.isNotEmpty(shiftInfoDTO.getIndexName()) ? shiftInfoDTO.getIndexName() : StrUtil.format("{}{}", new Object[]{shift, shiftInfoDTO.getShiftIndex()})); |
| | |
| | | set.add(i.getCode() + i.getMessage() + i.getFactoryDate()); |
| | | } |
| | | }); |
| | | Map<String, List<SuperAlarm>> countMap = (Map) tempList.stream().collect(Collectors.groupingBy(c -> { |
| | | Map<String, List<SuperAlarm>> countMap = tempList.stream().collect(Collectors.groupingBy(c -> { |
| | | return c.getFactoryDate() + c.getCode(); |
| | | })); |
| | | List<AlarmDataSheetExcelForOther> result = new ArrayList<>(); |
| | |
| | | }); |
| | | Map<String, List<SuperAlarm>> countMap = new HashMap<>(); |
| | | if (StatisticalMethodEnum.WEEK.equals(vo.getEnums())) { |
| | | countMap = (Map) tempList.stream().collect(Collectors.groupingBy(c -> { |
| | | countMap = tempList.stream().collect(Collectors.groupingBy(c -> { |
| | | return c.getFactoryYear() + "" + c.getFactoryWeek() + c.getCode(); |
| | | })); |
| | | } |
| | | if (StatisticalMethodEnum.MONTH.equals(vo.getEnums())) { |
| | | countMap = (Map) tempList.stream().collect(Collectors.groupingBy(c2 -> { |
| | | countMap = tempList.stream().collect(Collectors.groupingBy(c2 -> { |
| | | return c2.getFactoryYear() + "" + c2.getFactoryMonth() + c2.getCode(); |
| | | })); |
| | | } |
| | |
| | | splitFilterListVO.getItems().forEach(i -> { |
| | | if (map.containsKey(i.getYear())) { |
| | | if (StatisticalMethodEnum.WEEK.equals(vo.getEnums())) { |
| | | List<Integer> week = (List) map.get(i.getYear()); |
| | | List<Integer> week = map.get(i.getYear()); |
| | | week.add(i.getWeek()); |
| | | map.put(i.getYear(), week); |
| | | } |
| | | if (StatisticalMethodEnum.MONTH.equals(vo.getEnums())) { |
| | | List<Integer> month = (List) map.get(i.getYear()); |
| | | List<Integer> month = map.get(i.getYear()); |
| | | month.add(i.getMonth()); |
| | | map.put(i.getYear(), month); |
| | | return; |
| | |
| | | return; |
| | | } |
| | | if (StatisticalMethodEnum.WEEK.equals(vo.getEnums())) { |
| | | ArrayList arrayList = new ArrayList(); |
| | | List<Integer> arrayList = new ArrayList<>(); |
| | | arrayList.add(i.getWeek()); |
| | | map.put(i.getYear(), arrayList); |
| | | } |
| | | if (StatisticalMethodEnum.MONTH.equals(vo.getEnums())) { |
| | | ArrayList arrayList2 = new ArrayList(); |
| | | List<Integer> arrayList2 = new ArrayList<>(); |
| | | arrayList2.add(i.getMonth()); |
| | | map.put(i.getYear(), arrayList2); |
| | | } |