From c74dcb8dca7b9e3eded0d20299f19a26a6b70974 Mon Sep 17 00:00:00 2001 From: wujian <14790700720@163.com> Date: 星期三, 31 一月 2024 12:48:45 +0800 Subject: [PATCH] add 追溯报表 --- jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java | 79 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 77 insertions(+), 2 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java index 3b5fbe4..77f4c0b 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java @@ -1,19 +1,24 @@ package com.jcdm.main.da.passingStationCollection.service.impl; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; +import cn.hutool.core.collection.CollUtil; import com.jcdm.common.constant.Constants; import com.jcdm.common.utils.DateUtils; +import com.jcdm.common.utils.StringUtils; import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; import com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper; import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper; import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService; +import com.jcdm.main.da.passingStationCollection.vo.DaPassingStationVO; import com.jcdm.main.rm.repairRecord.domain.RmRepairRecord; import com.jcdm.main.rm.repairRecord.mapper.RmRepairRecordMapper; import org.springframework.beans.factory.annotation.Autowired; @@ -65,6 +70,76 @@ return daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection); } + @Override + public List<DaPassingStationVO> getTopProcess(DaPassingStationCollection daPassingStationCollection) + { + + List<DaPassingStationVO> result = new ArrayList<>(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + LocalDateTime startTime = LocalDate.now().atStartOfDay(); + LocalDateTime endTime = LocalDate.now().plusDays(1).atStartOfDay(); + String s1 = startTime.format(formatter); + String s2 = endTime.format(formatter); + daPassingStationCollection.setStartTime(s1); + daPassingStationCollection.setEndTime(s2); + List<DaPassingStationCollection> list = daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection); + //绛涢櫎鑺傛媿涓虹┖鐨勬暟鎹� + list = list.stream().filter(x -> StringUtils.isNotEmpty(x.getBeatTime())).collect(Collectors.toList()); + //鍋氱瓫閫夋搷浣� + if (CollUtil.isNotEmpty(list)){ + for (DaPassingStationCollection passingStationCollection : list) { + if (StringUtils.isNotEmpty(passingStationCollection.getBeatTime())){ + Long aLong = Long.valueOf(passingStationCollection.getBeatTime()); + passingStationCollection.setBeatTimeLong(aLong); + }else { + passingStationCollection.setBeatTimeLong(0L); + } + } + Map<String, Double> collect = list.stream().collect(Collectors.groupingBy(DaPassingStationCollection::getLocationCode, Collectors.averagingLong(DaPassingStationCollection::getBeatTimeLong))); + //鎺掑簭 + List<Map.Entry<String,Double>> entryList = new ArrayList<>(collect.entrySet()); + Collections.sort(entryList, new Comparator<Map.Entry<String, Double>>() { + @Override + public int compare(Map.Entry<String, Double> o1, Map.Entry<String, Double> o2) { + double v = o2.getValue() - o1.getValue(); + return (int) v; + } + }); + LinkedHashMap<String, Double> linkedHashMap = new LinkedHashMap<String, Double>(); + int i = 1; + double sum = 0; + for (Map.Entry<String,Double> e : entryList + ) { + if (i<6){ + sum = sum + e.getValue(); + linkedHashMap.put(e.getKey(),e.getValue()); + i++; + } + + } + //璁$畻鏁版嵁 + if (CollUtil.isNotEmpty(linkedHashMap)){ + for (String s : linkedHashMap.keySet()) { + DaPassingStationVO vo = new DaPassingStationVO(); + BigDecimal divide = BigDecimal.valueOf(linkedHashMap.get(s)).divide(BigDecimal.valueOf(sum),4, RoundingMode.HALF_UP); + vo.setName(s); + vo.setValue(divide); + result.add(vo); + } + } + +// Map<String, List<DaPassingStationCollection>> collect = list.stream().collect(Collectors.groupingBy(DaPassingStationCollection::getLocationCode)); +// for (String key:collect.keySet()){ +// List<DaPassingStationCollection> list1 = collect.get(key); +// if (CollUtil.isNotEmpty(list1)) { +// Double collect1 = list1.stream().collect(Collectors.averagingLong(DaPassingStationCollection::getBeatTimeLong)); +// } +// } + } + return result; + } + /** * 鑾峰彇棣栭〉鍗曟棩绱閲忎骇鏁版嵁 * @param fieldName bs -- Gitblit v1.9.3