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 | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 112 insertions(+), 1 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 550b86d..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,13 +1,28 @@ package com.jcdm.main.da.passingStationCollection.service.impl; -import java.util.List; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +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; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Service; /** @@ -24,6 +39,12 @@ @Autowired private RmRepairRecordMapper rmRepairRecordMapper; + + @Autowired + private BsOrderSchedulingMapper bsOrderSchedulingMapper; + + @Autowired + private IBsOrderSchedulingService bsOrderSchedulingService; /** * 鏌ヨ浜у搧杩囩珯閲囬泦 @@ -49,6 +70,96 @@ 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 + * @return list + */ + @Override + public Integer getProduceNumToday(String fieldName) { + + BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); + bsOrderScheduling.setQueryField(fieldName); + 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); + bsOrderScheduling.setStartTime(s1); + bsOrderScheduling.setEndTime(s2); + return bsOrderSchedulingMapper.getProduceNumToday(bsOrderScheduling); + } + /** * 鏂板浜у搧杩囩珯閲囬泦 * -- Gitblit v1.9.3