yq 4 роки тому
батько
коміт
d5091641f3

+ 1 - 1
fiveep-controller/src/main/java/com/bizmatics/controller/web/MybatisGeneratorUtils.java

@@ -70,7 +70,7 @@ public class MybatisGeneratorUtils {
         // strategy.setTablePrefix("t_"); // 表名前缀
         // strategy.setTablePrefix("t_"); // 表名前缀
         strategy.setEntityLombokModel(true); //使用lombok
         strategy.setEntityLombokModel(true); //使用lombok
         //修改自己想要生成的表
         //修改自己想要生成的表
-        strategy.setInclude("had_data_log");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
+        strategy.setInclude(new String[]{});  // 逆向工程使用的表   如果要生成多个,这里可以传入String[]
         mpg.setStrategy(strategy);
         mpg.setStrategy(strategy);
 
 
         // 关闭默认 xml 生成,调整生成 至 根目录
         // 关闭默认 xml 生成,调整生成 至 根目录

+ 5 - 3
fiveep-persistence/src/main/java/com/bizmatics/persistence/mapper/HtAnalogDataMapper.java

@@ -46,8 +46,10 @@ public interface HtAnalogDataMapper extends CrudMapper<HtAnalogData> {
                             @Param("deviceCode") String deviceCode);
                             @Param("deviceCode") String deviceCode);
 
 
 
 
-    Page<HtAnalogData> page(IPage<HtAnalogData> page,
+    List<HtAnalogData> page(@Param("current")Integer current,
+                            @Param("size")Integer size,
                           @Param("startTime") Date startTime,
                           @Param("startTime") Date startTime,
-                          @Param("endTime") Date endTime,
-                            @Param("id") Integer id);
+                          @Param("endTime") Date endTime);
+
+    Integer selectMaxId();
 }
 }

+ 6 - 4
fiveep-persistence/src/main/resources/mapper/mysql/HtAnalogDataMapper.xml

@@ -82,14 +82,16 @@
         left join device as d
         left join device as d
         on had.deviceName = d.device_code
         on had.deviceName = d.device_code
         <where>
         <where>
-            <if test="id != null and id != 0">
-                and had.id > #{id}
-            </if>
             <if test="endTime != null and startTime != null">
             <if test="endTime != null and startTime != null">
                 and dataTime BETWEEN #{startTime} and #{endTime}
                 and dataTime BETWEEN #{startTime} and #{endTime}
             </if>
             </if>
         </where>
         </where>
-        order by dataTime asc
+        order by had.id asc
+        limit #{current},#{size}
+    </select>
+    <select id="selectMaxId" resultType="java.lang.Integer">
+        select max(id)
+        from ht_analog_data
     </select>
     </select>
 
 
 </mapper>
 </mapper>

+ 12 - 1
fiveep-service/src/main/java/com/bizmatics/service/impl/HtAnalogDataServiceImpl.java

@@ -58,7 +58,7 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         //日
         //日
         List<HadDataLog> byToday = getByToday(dayStartTime, dayStartTime1);
         List<HadDataLog> byToday = getByToday(dayStartTime, dayStartTime1);
 //        List<HadDataLog> byToday = getByToday(DateUtils.getDayStartTime(date), date);
 //        List<HadDataLog> byToday = getByToday(DateUtils.getDayStartTime(date), date);
-        hadCountVO.setDayCount(getEpp(byToday, idList, null, null));
+        hadCountVO.setDayCount(test(byToday, idList, null, null));
         //月
         //月
         List<HadDataLog> byMonth = getByMonth(DateUtils.getFirstDayOfMonth(date), date);
         List<HadDataLog> byMonth = getByMonth(DateUtils.getFirstDayOfMonth(date), date);
         hadCountVO.setMonthCount(getEpp(byMonth, idList, null, null));
         hadCountVO.setMonthCount(getEpp(byMonth, idList, null, null));
@@ -69,6 +69,17 @@ public class HtAnalogDataServiceImpl extends AbstractCrudService<HtAnalogDataMap
         return hadCountVO;
         return hadCountVO;
     }
     }
 
 
+
+    public Double test(List<HadDataLog> list, List<Integer> siteIdList,Date startTime,Date endTime){
+        List<HadDataLogVO> hadDateList = new ArrayList<>();
+        for (HadDataLog hadDataLog:list) {
+            hadDateList.addAll(getHadDateList(hadDataLog, siteIdList,startTime,endTime));
+        }
+        Map<Integer, DoubleSummaryStatistics> collect = hadDateList.stream()
+                .collect(Collectors.groupingBy(HadDataLogVO::getSiteId, Collectors.summarizingDouble(HadDataLogVO::getEpp)));
+        return 0.00;
+    }
+
     /**
     /**
      * 获取epp计算结果
      * 获取epp计算结果
      * @param list
      * @param list

+ 73 - 55
fiveep-service/src/main/java/com/bizmatics/service/job/RatAnalogTask.java

@@ -44,52 +44,76 @@ public class RatAnalogTask {
     private HadDataLogMapper hadDataLogMapper;
     private HadDataLogMapper hadDataLogMapper;
 
 
     public void addAll(){
     public void addAll(){
-        List<HtAnalogData> list = null;
-        Integer id = 0;
-        Integer index = 1;
-        Date startTime = null;
-        Date endTime = null;
-        List<HadDataLogVO> hadVoList = new ArrayList<>();
-        do {
-            Page<HtAnalogData> page = new Page<>(index, 2000);
-            page = htAnalogDataMapper.page(page, null,null,id);
-            list = page.getRecords();
-            if (!CollectionUtils.isEmpty(list)){
-                if (id == 0){
-                    startTime = DateUtils.getDayStartTime(list.get(0).getDataTime());
-                    endTime = DateUtils.getDayEndTime(list.get(0).getDataTime());
+        Integer index = 0;
+        Date date = new Date();
+        date = DateUtils.setDays(date,27);
+        date = DateUtils.setMonths(date,4);
+        Date dayStartTime = DateUtils.getDayStartTime(date);
+        Date dayStartTime1 = DateUtils.getDayEndTime(date);
+        Date startTime = dayStartTime;
+        Date endTime = dayStartTime1;
+        Integer integer = htAnalogDataMapper.selectMaxId();
+        Integer maxId = integer;
+        boolean flag = true;
+        while (flag){
+            List<HadDataLogVO> hadVoList = new ArrayList<>();
+            List<HtAnalogData> htAnalogDatas = htAnalogDataMapper.page(index, 500, startTime, endTime);
+            if (!CollectionUtils.isEmpty(htAnalogDatas)){
+                for (HtAnalogData htAnalogData:htAnalogDatas) {
+                    hadVoList.add(insertList(htAnalogData));
                 }
                 }
-                id = list.get(list.size()-1).getId();
-                index++;
-                for (HtAnalogData htAnalogData:list) {
-                    if (htAnalogData.getDataTime().after(startTime) && htAnalogData.getDataTime().before(endTime)){
-                        insertList(hadVoList,htAnalogData,startTime);
-                    }else {
-                        List<HadDataLogVO> collect = hadVoList.stream().sorted(Comparator.comparing(HadDataLogVO::getSiteId)).collect(Collectors.toList());
-                        List<List<HadDataLogVO>> rsList = Lists.partition(collect, 2000);
-                        for (List<HadDataLogVO> logVOS:rsList) {
-                            ArrayList<HadDataLogVO> distant = logVOS.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(HadDataLogVO::getSiteId))), ArrayList::new));
-                            List<Integer> siteList = distant.stream().map(HadDataLogVO::getSiteId).collect(Collectors.toList());
-                            HadDataLog hadDataLog = new HadDataLog();
-                            hadDataLog.setDataTime(startTime);
-                            hadDataLog.setSiteIdList(JsonUtils.toJson(siteList));
-                            hadDataLog.setHadData(JsonUtils.toJson(logVOS));
-                            hadDataLogMapper.insert(hadDataLog);
-                        }
-                        startTime = DateUtils.getDayStartTime(htAnalogData.getDataTime());
-                        endTime = DateUtils.getDayEndTime(htAnalogData.getDataTime());
-                        hadVoList = new ArrayList<>();
-                        insertList(hadVoList,htAnalogData,startTime);
-                    }
+                insertHadDateLog(hadVoList,startTime);
+                if (htAnalogDatas.size() < 500){
+                    //要进行下个天数的查询
+                    startTime = DateUtils.addDays(startTime,1);
+                    endTime = DateUtils.addDays(endTime,1);
+                    index = 0;
+                }else {
+                    index+=500;
                 }
                 }
+                if (htAnalogDatas.get(htAnalogDatas.size()-1).getId() >= maxId){
+                    flag = false;
+                }
+            }else {
+                //要进行下个天数的查询
+                startTime = DateUtils.addDays(startTime,1);
+                endTime = DateUtils.addDays(endTime,1);
+                index = 0;
             }
             }
-            log.info("处理到最大id"+id);
-        }while (!CollectionUtils.isEmpty(list));
+        }
+        log.info("批量导入数据处理完成");
     }
     }
 
 
-    public void insertList(List<HadDataLogVO> hadVoList,HtAnalogData htAnalogData,Date startTime){
+
+    public static boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) {
+        Calendar date = Calendar.getInstance();
+        date.setTime(nowTime);
+        Calendar begin = Calendar.getInstance();
+        begin.setTime(beginTime);
+        Calendar end = Calendar.getInstance();
+        end.setTime(endTime);
+        if (date.after(begin) && date.before(end)) {
+            return true;
+        } else if (nowTime.compareTo(beginTime) == 0 || nowTime.compareTo(endTime) == 0) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    public void insertHadDateLog(List<HadDataLogVO> hadVoList,Date startTime){
+        ArrayList<HadDataLogVO> distant = hadVoList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(HadDataLogVO::getSiteId))), ArrayList::new));
+        List<Integer> siteList = distant.stream().map(HadDataLogVO::getSiteId).collect(Collectors.toList());
+        HadDataLog hadDataLog = new HadDataLog();
+        hadDataLog.setDataTime(startTime);
+        hadDataLog.setSiteIdList(JsonUtils.toJson(siteList));
+        hadDataLog.setHadData(JsonUtils.toJson(hadVoList));
+        hadDataLogMapper.insert(hadDataLog);
+    }
+
+    public HadDataLogVO insertList(HtAnalogData htAnalogData){
         HadDataLogVO hadDataLogVO = HadDataLogVO.builder()
         HadDataLogVO hadDataLogVO = HadDataLogVO.builder()
-                .dataTime(startTime)
+                .dataTime(htAnalogData.getDataTime())
                 .deviceCode(htAnalogData.getDeviceName())
                 .deviceCode(htAnalogData.getDeviceName())
                 .epp(htAnalogData.getEpp())
                 .epp(htAnalogData.getEpp())
                 .ia(htAnalogData.getIa())
                 .ia(htAnalogData.getIa())
@@ -101,31 +125,25 @@ public class RatAnalogTask {
                 .siteId(htAnalogData.getSiteId())
                 .siteId(htAnalogData.getSiteId())
                 .demand(htAnalogData.getDemand())
                 .demand(htAnalogData.getDemand())
                 .build();
                 .build();
-        hadVoList.add(hadDataLogVO);
+        return hadDataLogVO;
     }
     }
 
 
 //    @Scheduled(cron = "*/5 * * * * ?")
 //    @Scheduled(cron = "*/5 * * * * ?")
     @Scheduled(cron = "0 0 0 */1 * ?")
     @Scheduled(cron = "0 0 0 */1 * ?")
     public void addHadJob(){
     public void addHadJob(){
-        List<HtAnalogData> list = null;
         Integer index = 1;
         Integer index = 1;
         Date date = new Date();
         Date date = new Date();
+        List<HtAnalogData> list;
         do {
         do {
-            Page<HtAnalogData> page = new Page<>(index, 4000);
-            page = htAnalogDataMapper.page(page, DateUtils.getDayStartTime(date),DateUtils.getDayEndTime(date),null);
-            list = page.getRecords();
+            List<HadDataLogVO> hadVoList = new ArrayList<>();
+            Date dayStartTime = DateUtils.getDayStartTime(date);
+            list = htAnalogDataMapper.page(index, 2000, dayStartTime, DateUtils.getDayEndTime(date));
             if (!CollectionUtils.isEmpty(list)){
             if (!CollectionUtils.isEmpty(list)){
-                List<HtAnalogData> collect = list.stream().sorted(Comparator.comparing(HtAnalogData::getSiteId)).collect(Collectors.toList());
-                List<List<HtAnalogData>> rsList = Lists.partition(collect, 2000);
-                for (List<HtAnalogData> logVOS:rsList) {
-                    ArrayList<HtAnalogData> distant = logVOS.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(HtAnalogData::getSiteId))), ArrayList::new));
-                    List<Integer> siteList = distant.stream().map(HtAnalogData::getSiteId).collect(Collectors.toList());
-                    HadDataLog hadDataLog = new HadDataLog();
-                    hadDataLog.setDataTime(DateUtils.getDayStartTime(date));
-                    hadDataLog.setSiteIdList(JsonUtils.toJson(siteList));
-                    hadDataLog.setHadData(JsonUtils.toJson(logVOS));
-                    hadDataLogMapper.insert(hadDataLog);
+                for (HtAnalogData htAnalogData:list) {
+                    hadVoList.add(insertList(htAnalogData));
                 }
                 }
+                insertHadDateLog(hadVoList,dayStartTime);
+                index++;
             }
             }
         }while (!CollectionUtils.isEmpty(list));
         }while (!CollectionUtils.isEmpty(list));
         log.info("处理完成");
         log.info("处理完成");