whycxzp
2021-10-08 3ca441018c216998d69d326d590009725ab2113f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package com.whyc.listener;
 
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.mapper.ApplicationConfigMapper;
import com.whyc.pojo.Application;
import com.whyc.constant.SqlConstant;
import com.whyc.mapper.ApplicationMapper;
import com.whyc.mapper.DBMapper;
import com.whyc.pojo.ApplicationConfig;
 
import javax.annotation.Resource;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import java.util.LinkedList;
import java.util.List;
 
@WebListener
public class ApplicationListener implements ServletContextListener {
 
    @Resource
    private DBMapper dbMapper;
 
    @Resource
    private ApplicationMapper appMapper;
 
    @Resource
    private ApplicationConfigMapper configMapper;
 
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        //检查及初始化电池数据统计表
        boolean dbExist = dbMapper.DBExist("db_analysis") != null;
        //初始化的时候,首批的分析表和分析库创建是一起的
        if(!dbExist){
            dbMapper.createDB("db_analysis");
            //单体电压
            dbMapper.createTable(SqlConstant.TB_MON_VOL);
            //单体电阻
            dbMapper.createTable(SqlConstant.TB_MON_RES);
            //单体温度
            dbMapper.createTable(SqlConstant.TB_MON_TEMP);
            //单体实际容量
            dbMapper.createTable(SqlConstant.TB_MON_CAP);
        }
        //初始化的时候,检查是否有大屏的默认应用-布局,如果没有的话,初始化默认数据
        boolean recordExist = appMapper.existDefaultApp()!=0;
        if(!recordExist){
            //添加默认应用
            Application application = new Application();
            //application.setId(0);
            application.setName("默认大屏展示");
            application.setScreenshot(null);
            application.setBgPic("bigScreenBG");
            application.setHeadPic("bigScreenTitle");
            application.setUserId(0);
            application.setActiveStatus(0);
            appMapper.insert(application);
            UpdateWrapper<Application> updateWrapper = Wrappers.update();
            updateWrapper.set("id",0).eq("id",application.getId());
            appMapper.update(null,updateWrapper);
            //添加默认布局
            List<ApplicationConfig> configList = new LinkedList<>();
 
            List<Object[]> dataList = new LinkedList<>();
            Object[] data1={14, 0, "地图", 0.30448717948717946, 0.4927536231884058, 0.44871794871794873, 0d, "chinaMap"};
            Object[] data2={1, 0, "放电和充电电流", 0.20032051282051283, 0.2478134110787172, 0d, 0d, "latticeBar"};
            Object[] data3={2, 0, "整流器", 0.20032051282051283, 0.2478134110787172, 0d, 0.2478134110787172, "imgPieChart"};
            Object[] data4={3, 0, "电池组", 0.20032051282051283, 0.2478134110787172, 0d, 0.4956268221574344, "triangleBarChart"};
            Object[] data5={4, 0, "电池状态", 0.20032051282051283, 0.2478134110787172, 0d, 0.7434402332361516, "abeamProChart"};
            Object[] data6={5, 0, "电源状态", 0.23237179487179488, 0.4927536231884058, 0.20833333333333334, 0d, "powerChart"};
            Object[] data7={11, 0, "交流ABC", 0.23237179487179488, 0.4927536231884058, 0.20833333333333334, 0.4927536231884058, "histogramAlternating"};
            Object[] data8={12, 0, "单体电压、内阻温度", 0.30448717948717946, 0.4927536231884058, 0.44871794871794873, 0.4927536231884058, "monomerVoltage"};
            Object[] data9={13, 0, "放电电流", 0.23237179487179488, 0.2478134110787172, 0.7612179487179487, 0d, "dischargeCircuit"};
            Object[] data10={23, 0, "在线电压和组端电压", 0.235, 0.25, 0.7612179487179487, 0.7391304347826086, "PictorialBar"};
            Object[] data11={6, 0, "机房续航能力", 0.235, 0.25, 0.7612179487179487, 0.2478134110787172, "RoseChartED"};
            Object[] data12={7, 0, "单体容量健康率", 0.235, 0.25, 0.7612179487179487, 0.4956268221574344, "RoseChartHea"};
 
            dataList.add(data1);
            dataList.add(data2);
            dataList.add(data3);
            dataList.add(data4);
            dataList.add(data5);
            dataList.add(data6);
            dataList.add(data7);
            dataList.add(data8);
            dataList.add(data9);
            dataList.add(data10);
            dataList.add(data11);
            dataList.add(data12);
 
            for (int i = 0; i < 12; i++) {
                ApplicationConfig config = new ApplicationConfig();
                config.setId((Integer) dataList.get(i)[0]);
                config.setAppId((Integer) dataList.get(i)[1]);
                config.setName((String) dataList.get(i)[2]);
                config.setW((Double) dataList.get(i)[3]);
                config.setH((Double) dataList.get(i)[4]);
                config.setX((Double) dataList.get(i)[5]);
                config.setY((Double) dataList.get(i)[6]);
                config.setType((String) dataList.get(i)[7]);
 
                configList.add(config);
            }
 
            configMapper.insertBatchSomeColumn(configList);
 
        }
 
    }
 
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
 
    }
}