From 9e6d86cfea30f99668cde150b49abae780239a55 Mon Sep 17 00:00:00 2001 From: wujian <14790700720@163.com> Date: 星期五, 22 三月 2024 08:38:20 +0800 Subject: [PATCH] change 通信逻辑 fix 相关问题修改 --- jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/service/impl/BsOrderSchedulingServiceImpl.java | 145 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 133 insertions(+), 12 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/service/impl/BsOrderSchedulingServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/service/impl/BsOrderSchedulingServiceImpl.java index 60bbb70..5f19de3 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/service/impl/BsOrderSchedulingServiceImpl.java +++ b/jcdm-main/src/main/java/com/jcdm/main/bs/orderScheduling/service/impl/BsOrderSchedulingServiceImpl.java @@ -1,14 +1,34 @@ package com.jcdm.main.bs.orderScheduling.service.impl; -import java.util.List; - -import cn.hutool.core.util.StrUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.jcdm.common.utils.DateUtils; +import com.jcdm.common.utils.StringUtils; +import com.jcdm.main.bs.orderScheduling.Query.PrepareOnlineQuery; +import com.jcdm.main.bs.orderScheduling.common.Constants; +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.bs.orderScheduling.vo.FollowReportVO; +import com.jcdm.main.bs.orderScheduling.vo.LineChartVO; +import com.jcdm.main.da.paramCollection.domain.DaParamCollection; +import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper; +import com.jcdm.main.da.paramCollection.service.impl.DaParamCollectionServiceImpl; +import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; +import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper; -import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; -import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 璁㈠崟鎺掍骇Service涓氬姟灞傚鐞� @@ -17,10 +37,16 @@ * @date 2024-01-13 */ @Service -public class BsOrderSchedulingServiceImpl implements IBsOrderSchedulingService +public class BsOrderSchedulingServiceImpl implements IBsOrderSchedulingService { @Autowired private BsOrderSchedulingMapper bsOrderSchedulingMapper; + + @Resource + private DaParamCollectionMapper daParamCollectionMapper; + + @Resource + private DaPassingStationCollectionMapper daPassingStationCollectionMapper; /** * 鏌ヨ璁㈠崟鎺掍骇 @@ -43,14 +69,109 @@ @Override public List<BsOrderScheduling> selectBsOrderSchedulingList(BsOrderScheduling bsOrderScheduling) { - -// if(StrUtil.isNotBlank(bsOrderScheduling.getOperateTime())){ -//// String[] dateArray = gson.fromJson(jsonString, String[].class); -// -// } + if(bsOrderScheduling.getDateConditions()!=null){ + String[] conditions = bsOrderScheduling.getDateConditions(); + bsOrderScheduling.setStartTime(conditions[0]); + bsOrderScheduling.setEndTime(conditions[1]); + } return bsOrderSchedulingMapper.selectBsOrderSchedulingList(bsOrderScheduling); } + @Override + public FollowReportVO getFollowReportList(BsOrderScheduling bsOrderScheduling) + { + FollowReportVO vo = new FollowReportVO(); + if(bsOrderScheduling.getDateConditions()!=null){ + String[] conditions = bsOrderScheduling.getDateConditions(); + bsOrderScheduling.setStartTime(conditions[0]); + bsOrderScheduling.setEndTime(conditions[1]); + } + //涓昏〃鏁版嵁 + List<BsOrderScheduling> mainList = bsOrderSchedulingMapper.selectBsOrderSchedulingList(bsOrderScheduling); + vo.setMainList(mainList); + List<String> engineNoList = mainList.stream().map(BsOrderScheduling::getEngineNo).distinct().collect(Collectors.toList()); + List<DaParamCollection> allChildList = new ArrayList<>(); + List<DaPassingStationCollection> collect5 = new ArrayList<>(); + if (CollUtil.isNotEmpty(engineNoList)){ + allChildList = daParamCollectionMapper.getListBySfcCode(engineNoList); + collect5 = daPassingStationCollectionMapper.getListBySfcCode(engineNoList); + } + if (CollUtil.isNotEmpty(allChildList)){ + //鎷垮埌鎵�鏈夊瓙鏁版嵁 + List<DaParamCollection> collect1 = allChildList.stream().filter(x -> Constants.DATA1.equals(x.getType())).collect(Collectors.toList()); + List<DaParamCollection> collect2 = allChildList.stream().filter(x -> Constants.DATA2.equals(x.getType())).collect(Collectors.toList()); + List<DaParamCollection> collect3 = allChildList.stream().filter(x -> Constants.DATA3.equals(x.getType())).collect(Collectors.toList()); + List<DaParamCollection> collect4 = allChildList.stream().filter(x -> Constants.DATA4.equals(x.getType())).collect(Collectors.toList()); + vo.setList1(collect1); + vo.setList2(collect2); + vo.setList3(collect3); + vo.setList4(collect4); + } + vo.setList5(collect5); + return vo; + + } + + @Override + public List<LineChartVO> getOffLineNum() + { + List<LineChartVO> result = new ArrayList<>(); + BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime now = LocalDateTime.now(); + LocalDateTime startTime = LocalDateTime.of(now.getYear(),now.getMonthValue(),now.getDayOfMonth(),8,0,0); + LocalDateTime endTime = LocalDateTime.of(now.getYear(),now.getMonthValue(),now.plusDays(1).getDayOfMonth(),22,0,0); + String s1 = startTime.format(formatter); + String s2 = endTime.format(formatter); + bsOrderScheduling.setStartTime(s1); + bsOrderScheduling.setEndTime(s2); + List<BsOrderScheduling> todayList = bsOrderSchedulingMapper.selectBsOrderSchedulingList(bsOrderScheduling); + todayList = todayList.stream().filter(x -> ObjectUtil.isNotEmpty(x.getCvtOfflineTime())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(todayList)){ + List<String> allModel = todayList.stream().map(BsOrderScheduling::getModel).distinct().collect(Collectors.toList()); + Map<String, List<BsOrderScheduling>> collect = new HashMap<>(); + for (String s : allModel) { + LineChartVO vo = new LineChartVO(); + List<Integer> arr = new ArrayList<>(); + vo.setName(s); + collect = todayList.stream().filter(x -> s.equals(x.getModel())).collect(Collectors.groupingBy(item -> new SimpleDateFormat("yyyy-MM-dd HH").format(item + .getCvtOfflineTime()))); + Map<Integer,Integer> temp = new HashMap<>(); + if (CollUtil.isNotEmpty(collect)){ + for (String string : collect.keySet()) { + int size = collect.get(string).size(); + String s3 = string.split(StringUtils.SPACE)[1]; + if (StringUtils.isNotEmpty(s3)){ + int i = Integer.parseInt(s3); + temp.put(i+1,size); + } + } + } + for (int i = 8; i < 23; i++) { + if (i==8){ + arr.add(0); + }else { + arr.add(temp.getOrDefault(i, 0)); + } + } + vo.setData(arr); + vo.setType("line"); + result.add(vo); + } + + } + return result; + } + + + /** + * 鏌ヨ鍚堢涓婄嚎鍒楄〃 + * @param prepareOnlineQuery + * @return list + */ + public List<BsOrderScheduling> getPrepareOnlineList(PrepareOnlineQuery prepareOnlineQuery){ + return bsOrderSchedulingMapper.getPrepareOnlineList(prepareOnlineQuery); + } /** * 鏂板璁㈠崟鎺掍骇 * -- Gitblit v1.9.3