From 8b43954926db6b4df6a61ab6e04d6cb11189069d Mon Sep 17 00:00:00 2001 From: 吴健 <14790700720@163.com> Date: 星期二, 15 四月 2025 08:54:08 +0800 Subject: [PATCH] add-415 --- jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java | 201 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 188 insertions(+), 13 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..dc2def0 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,24 +1,32 @@ package com.jcdm.main.da.passingStationCollection.service.impl; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.List; - -import com.jcdm.common.constant.Constants; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson2.JSONObject; +import com.jcdm.common.core.domain.R; 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.domain.ProductNumVO; 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 com.jcdm.main.websocket.WebSocketServer; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Service; + +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; /** * 浜у搧杩囩珯閲囬泦Service涓氬姟灞傚鐞� @@ -63,6 +71,81 @@ public List<DaPassingStationCollection> selectDaPassingStationCollectionList(DaPassingStationCollection daPassingStationCollection) { return daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection); + } + + @Override + public List<DaPassingStationCollection> selectDaPassingStationCollectionForSearch(DaPassingStationCollection daPassingStationCollection) { + return daPassingStationCollectionMapper.selectDaPassingStationCollectionForSearch(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; } /** @@ -138,13 +221,105 @@ @Override public void insertRepairRecordByIds(DaPassingStationCollection daPassingStationCollection) { Long[] conditions = daPassingStationCollection.getIds(); + String sfcCode = ""; + List<RmRepairRecord> save = new ArrayList<>(); + for (int i = 0; i < conditions.length; i++) { DaPassingStationCollection result = daPassingStationCollectionMapper.selectDaPassingStationCollectionById(conditions[i]); - RmRepairRecord rmRepairRecord = new RmRepairRecord(); - rmRepairRecord.setBoxCode(result.getSfcCode()); - rmRepairRecord.setProcessesCode(result.getLocationCode()); - rmRepairRecord.setOriginalResult(result.getOutRsSign()); - rmRepairRecordMapper.insertRmRepairRecord(rmRepairRecord); + if (i==0){ + if (ObjectUtil.isNotEmpty(result)){ + sfcCode = result.getSfcCode(); + rmRepairRecordMapper.deleteRmRepairRecordByCode(sfcCode); + } + } + if (ObjectUtil.isNotEmpty(result)){ + RmRepairRecord rmRepairRecord = new RmRepairRecord(); + rmRepairRecord.setBoxCode(result.getSfcCode()); + rmRepairRecord.setProcessesCode(result.getLocationCode()); + rmRepairRecord.setOriginalResult(result.getOutRsSign()); + rmRepairRecord.setCreateTime(new Date()); + rmRepairRecordMapper.insertRmRepairRecord(rmRepairRecord); + daPassingStationCollectionMapper.deleteDaPassingStationCollectionById(result.getId()); + } } + + } + @Override + public String SelectSN(String SNcode,String node) { + try { + Map<String, Object> params = new HashMap<>(); + params.put("SN_CODE",SNcode); + params.put("Node",node); + params.put("Success",""); + daPassingStationCollectionMapper.SelectSN(params); + return (String)params.get("Success"); + } catch (Exception e) { + return "鏁版嵁鏌ヨ澶辫触锛�"; + } + } + + @Override + public List<ProductNumVO> getProductNum(DaPassingStationCollection daPassingStationCollection) { + String queryMonth = daPassingStationCollection.getQueryMonth(); + LocalDate queryLocalDate = daPassingStationCollection.getQueryDate(); + if (ObjectUtil.isNotEmpty(queryLocalDate)){ + LocalDate addQueryLocalDate = queryLocalDate.plusDays(1); + String queryDate = queryLocalDate.toString(); + String addQueryDate = addQueryLocalDate.toString(); + List<ProductNumVO> productNum = bsOrderSchedulingMapper.getProductNum(queryDate, addQueryDate); + if (CollUtil.isNotEmpty(productNum)){ + productNum.forEach(x -> { + x.setQueryDate(queryDate); + }); + } + return productNum; + } else if (ObjectUtil.isNull(queryLocalDate) && ObjectUtil.isNotNull(queryMonth)){ + //鎸夋湀浠芥煡璇� + String s = queryMonth + "-01"; + LocalDate parse = LocalDate.parse(s); + LocalDate localDate = parse.plusMonths(1); + String queryDate = parse.toString(); + String addQueryDate = localDate.toString(); + List<ProductNumVO> productNum = bsOrderSchedulingMapper.getProductNum(queryDate, addQueryDate); + if (CollUtil.isNotEmpty(productNum)){ + productNum.forEach(x -> { + x.setQueryDate(queryMonth); + }); + } + return productNum; + } + return new ArrayList<ProductNumVO>(); + } + +// public String sendMessage(String message) throws Exception{ +// Map<String,Object> map = new HashMap<>(); +// +// // 鑾峰彇褰撳墠鏃ユ湡鍜屾椂闂� +// LocalDateTime nowDateTime = LocalDateTime.now(); +// DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); +// System.out.println(dateTimeFormatter.format(nowDateTime)); +// map.put("server_time",dateTimeFormatter.format(nowDateTime)); +// map.put("server_code","200"); +// +// map.put("server_message",message); +// JSONObject jsonObject = new JSONObject(map); +// WebSocketServer.sendAllMessage(jsonObject.toString()); +// return jsonObject.toString(); +// } + + public String sendMessage(String message,String userid) throws Exception{ + Map<String,Object> map = new HashMap<>(); + + // 鑾峰彇褰撳墠鏃ユ湡鍜屾椂闂� + LocalDateTime nowDateTime = LocalDateTime.now(); + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + System.out.println(dateTimeFormatter.format(nowDateTime)); + map.put("server_time",dateTimeFormatter.format(nowDateTime)); + map.put("server_code","200"); + + map.put("server_message",message); + JSONObject jsonObject = new JSONObject(map); + WebSocketServer.sendInfo(jsonObject.toString(),userid); + return jsonObject.toString(); } } -- Gitblit v1.9.3