From a9406b6b18ee5a8e29cad3248f46320a36ac9749 Mon Sep 17 00:00:00 2001 From: yyt <306727702@qq.com> Date: 星期三, 21 二月 2024 00:19:44 +0800 Subject: [PATCH] 批量数据采集方法更新 --- jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java | 129 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 128 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..fe4d082 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; /** * 鏌ヨ浜у搧杩囩珯閲囬泦 @@ -47,6 +68,96 @@ public List<DaPassingStationCollection> selectDaPassingStationCollectionList(DaPassingStationCollection daPassingStationCollection) { 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); } /** @@ -111,4 +222,20 @@ rmRepairRecordMapper.insertRmRepairRecord(rmRepairRecord); } } + @Override + public String SelectSN(String SNcode){ + return "1"; + +// --璁㈠崟鎺掍骇 +// select * from bs_order_scheduling where engine_no='2V91Y-F RA182118' +// +// --宸ヨ壓璺嚎瀛愯〃淇℃伅 +// select * from bs_technology_route_child_info where route_code='H_191S' +// +// --杩斾慨鏁版嵁 +// select * from rm_repair_record where box_code='2V91Y-F RA182118' +// +// --杩囩珯閲囬泦 +// select * from da_passing_station_collection --where sfc_code='2V91Y-F RA182118' + } } -- Gitblit v1.9.3