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