Parcourir la source

电厂大屏数据抓取test

Wang Zi Wen il y a 3 ans
Parent
commit
0114e95abb
1 fichiers modifiés avec 290 ajouts et 0 suppressions
  1. 290 0
      src/main/java/io/renren/modules/test/TestPullDataCsv.java

+ 290 - 0
src/main/java/io/renren/modules/test/TestPullDataCsv.java

@@ -0,0 +1,290 @@
+package io.renren.modules.test;
+
+import com.opencsv.CSVReader;
+import io.renren.modules.aspen.entity.TDashboarddayelecEntity;
+import io.renren.modules.aspen.service.TDashboarddayelecService;
+import io.renren.modules.sys.controller.AbstractController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.io.FileReader;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * 电厂大屏抓取数据测试类(.csv文件)
+ *
+ * @author Wang Zi Wen
+ * @email wangggziwen@163.com
+ * @date 2022/04/15 11:09:02
+ */
+@Component
+@Configuration      //1.主要用于标记配置类,兼备Component的效果。
+@EnableScheduling   // 2.开启定时任务
+public class TestPullDataCsv extends AbstractController {
+
+    @Autowired
+    private TDashboarddayelecService tDashboarddayelecService;
+
+    public static void main(String[] args) {
+//        TestPullDataCsv testPullDataCsv = new TestPullDataCsv();
+//        testPullDataCsv.getCsvData();
+    }
+
+//    @Scheduled(cron = "9,19,29,39,49,59 * * * * ?" )
+    public void getCsvData(){
+        logger.info("实时获取数据");
+//        String csvFile = "D://ssyFile/物料.csv";
+        String csvFile = "D://elecdashboardaspen/elecDashboardData1.csv";
+        TDashboarddayelecEntity tDashboarddayelecEntity = new TDashboarddayelecEntity();
+        CSVReader reader = null;
+        try {
+            reader = new CSVReader(new FileReader(csvFile));
+            String[] line;
+            //定义行数
+            int i = 0;
+            while ((line = reader.readNext()) != null) {
+                i++;
+                if (i == 2) {
+                    logger.info("第" + i + "行");
+                    for (int j = 2; j < 7; j++) {
+                        logger.info("读数:" + line[j]);
+                        if (line[j].equals("")) {
+                            line[j] = "0.0";
+                        }else {
+                            if (!Character.isDigit(line[j].charAt(0))) {
+                                line[j] = "0.0";
+                            }else {
+                                BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
+                                double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                                line[j] = String.valueOf(f);
+                            }
+                        }
+                        logger.info(line[j]);
+                    }
+                    tDashboarddayelecEntity.setGtg1Lv(line[2]);
+                    tDashboarddayelecEntity.setGtg2Lv(line[3]);
+                    tDashboarddayelecEntity.setGtg3Lv(line[4]);
+                    tDashboarddayelecEntity.setStg1Lv(line[5]);
+                    tDashboarddayelecEntity.setMwhLv(line[6]);
+                }
+                if (i == 3) {
+                    logger.info("第" + i + "行");
+                    for (int j = 0; j < 6; j++) {
+                        logger.info("读数:" + line[j]);
+                        if (line[j].equals("")) {
+                            line[j] = "0.0";
+                        }else {
+                            if (!Character.isDigit(line[j].charAt(0))) {
+                                line[j] = "0.0";
+                            }else {
+                                BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
+                                double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                                line[j] = String.valueOf(f);
+                            }
+                        }
+                        logger.info(line[j]);
+                    }
+                    tDashboarddayelecEntity.setGtg1Wr(line[2]);
+                    tDashboarddayelecEntity.setGtg2Wr(line[3]);
+                    tDashboarddayelecEntity.setGtg3Wr(line[4]);
+                    tDashboarddayelecEntity.setStg1Wr(line[5]);
+                }
+                if (i == 4) {
+                    logger.info("第" + i + "行");
+                    for (int j = 0; j < 6; j++) {
+                        logger.info("读数:" + line[j]);
+                        if (line[j].equals("")) {
+                            line[j] = "0.0";
+                        }else {
+                            if (!Character.isDigit(line[j].charAt(0))) {
+                                line[j] = "0.0";
+                            }else {
+                                BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
+                                double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                                line[j] = String.valueOf(f);
+                            }
+                        }
+                        logger.info(line[j]);
+                    }
+                    tDashboarddayelecEntity.setMwhWr(line[6]);
+                }
+                if (i == 6) {
+                    logger.info("第" + i + "行");
+                    for (int j = 2; j < 7; j++) {
+                        logger.info("读数:" + line[j]);
+                        if (line[j].equals("")) {
+                            line[j] = "0";
+                        }else {
+                            if (!Character.isDigit(line[j].charAt(0))) {
+                                line[j] = "0";
+                            }else {
+                                BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
+                                double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                                line[j] = String.valueOf(f);
+                            }
+                        }
+                        logger.info(line[j]);
+                    }
+                    tDashboarddayelecEntity.setHhp(line[2]);
+                    tDashboarddayelecEntity.setHp(line[3]);
+                    tDashboarddayelecEntity.setLp(line[4]);
+                    tDashboarddayelecEntity.setMp(line[5]);
+                    tDashboarddayelecEntity.setTotalConsumption(line[6]);
+                }
+                if (i == 9) {
+                    logger.info("第" + i + "行");
+                    for (int j = 2; j < 6; j++) {
+                        logger.info("读数:" + line[j]);
+                        if (line[j].equals("")) {
+                            line[j] = "0.0";
+                        }else {
+                            if (!Character.isDigit(line[j].charAt(0))) {
+                                line[j] = "0.0";
+                            }else {
+                                BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
+                                double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                                line[j] = String.valueOf(f);
+                            }
+                        }
+                        logger.info(line[j]);
+                    }
+//                    Integer HhpNum=new Integer(line[2]).intValue();
+//                    Integer HpNum=new Integer(line[3]).intValue();
+//                    Integer LpNum=new Integer(line[4]).intValue();
+//                    Integer MpNum=new Integer(line[5]).intValue();
+                    tDashboarddayelecEntity.setHhpNum(line[2]);
+                    tDashboarddayelecEntity.setHpNum(line[3]);
+                    tDashboarddayelecEntity.setLpNum(line[4]);
+                    tDashboarddayelecEntity.setMpNum(line[5]);
+
+                }
+                if (i == 10) {
+                    logger.info("第" + i + "行");
+                    for (int j = 2; j < 6; j++) {
+                        logger.info("读数:" + line[j]);
+                        if (line[j].equals("")) {
+                            line[j] = "0";
+                        }else {
+                            if (!Character.isDigit(line[j].charAt(0))) {
+                                line[j] = "0";
+                            }else {
+                                BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
+                                double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                                line[j] = String.valueOf(f);
+                            }
+                        }
+                        logger.info(line[j]);
+                    }
+                    tDashboarddayelecEntity.setHhpTemp(line[2]);
+                    tDashboarddayelecEntity.setHpTemp(line[3]);
+                    tDashboarddayelecEntity.setLpTemp(line[4]);
+                    tDashboarddayelecEntity.setMpTemp(line[5]);
+                }
+                /* SS */
+                if (i == 13) {
+                    logger.info("第" + i + "行");
+                    for(int j=2;j<5;j++){
+                        if (line[j].equals("")) {
+                            line[j] = "0.0";
+                        }else {
+                            if (!Character.isDigit(line[j].charAt(0))) {
+                                line[j] = "0.0";
+                            }else {
+                                BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
+                                double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                                line[j] = String.valueOf(f);
+                            }
+                        }
+                        logger.info(line[j]);
+                    }
+                    tDashboarddayelecEntity.setShihua(line[2]);
+                    tDashboarddayelecEntity.setShiyou(line[3]);
+                    tDashboarddayelecEntity.setShunshiliang(line[4]);
+                }
+                if (i == 18) {
+                    logger.info("第" + i + "行");
+                    for(int j=2;j<6;j++){
+                        if (line[j].equals("")) {
+                            line[j] = "0.0";
+                        }else {
+                            if (!Character.isDigit(line[j].charAt(0))) {
+                                line[j] = "0.0";
+                            }else {
+                                BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
+                                double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                                line[j] = String.valueOf(f);
+                            }
+                        }
+                        logger.info(line[j]);
+                    }
+                    tDashboarddayelecEntity.setYpg(line[2]);
+                    tDashboarddayelecEntity.setDaodianliang(line[3]);
+                    tDashboarddayelecEntity.setEveLec(line[4]);
+                    tDashboarddayelecEntity.setFenggucha(rounding(line[5]));
+                }
+                if (i == 20) {
+                    logger.info("第" + i + "行");
+                    for(int j=2;j<4;j++){
+                        if (line[j].equals("")) {
+                            line[j] = "0.0";
+                        }else {
+                            if (!Character.isDigit(line[j].charAt(0))) {
+                                line[j] = "0.0";
+                            }else {
+                                BigDecimal b = new BigDecimal(Double.parseDouble(line[j]));
+                                double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                                line[j] = String.valueOf(f);
+                            }
+                        }
+                        logger.info(line[j]);
+                    }
+                    tDashboarddayelecEntity.setBycElec(line[2]);
+                    tDashboarddayelecEntity.setBocElec(line[3]);
+                }
+            }
+            tDashboarddayelecEntity.setCreatedate(new Date());
+            tDashboarddayelecEntity.setDataDate(new Date());
+            Calendar now = Calendar.getInstance();
+            tDashboarddayelecEntity.setDateDay(String.valueOf(now.get(Calendar.DAY_OF_MONTH)));
+            logger.info("dashboardData:" + tDashboarddayelecEntity);
+            tDashboarddayelecService.save(tDashboarddayelecEntity);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public String rounding(String lineNum) {
+        try {
+            logger.info("读数:" + lineNum);
+            if (lineNum.equals("")) {
+                lineNum = "0.0";
+            }else {
+                if (!Character.isDigit(lineNum.charAt(0))) {
+                    if ("-".equals(lineNum.substring(0,1))){
+                        BigDecimal b = new BigDecimal(Double.parseDouble(lineNum));
+                        double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                        lineNum = String.valueOf(f);
+                    }else {
+                        lineNum = "0.0";
+                    }
+                }else {
+                    BigDecimal b = new BigDecimal(Double.parseDouble(lineNum));
+                    double f = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                    lineNum = String.valueOf(f);
+                }
+            }
+            logger.info(lineNum);
+            return lineNum;
+        }catch (Exception e) {
+            logger.error(String.valueOf(e));
+            return "0.0";
+        }
+    }
+
+}