Browse Source

碳排数据

learshaw 1 month ago
parent
commit
87413d25ec

+ 1 - 1
ems/ems-cloud/ems-server/src/main/resources/application-local.yml

@@ -71,7 +71,7 @@ analysis-task:
     forecastDays: 5
     area-codes: 321283124S3001,321283124S3002
   carbon-calculation:
-    cron: 0 17 19 * * ?
+    cron: 0 0 2 * * ?
     area-codes: 321283124S3001,321283124S3002
 
 # 定时任务配置

+ 0 - 1
ems/ems-core/src/main/java/com/ruoyi/ems/domain/CaEmissionForecast.java

@@ -18,7 +18,6 @@ import java.util.Date;
  */
 @EqualsAndHashCode(callSuper = true)
 @Data
-
 public class CaEmissionForecast extends BaseEntity {
     private static final long serialVersionUID = 1L;
 

+ 1 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/mapper/ElecPgSupplyHMapper.java

@@ -62,6 +62,7 @@ public interface ElecPgSupplyHMapper {
      */
     int updatePgSupplyH(ElecPgSupplyH elecPgSupplyH);
 
+    ElecPgSupplyH calDaySupplyByH(QueryMeter param);
 
     List<ElecPgSupplyH> calMonthSupplyByH(ElecPgSupplyH param);
 

+ 2 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/IElecPgSupplyHService.java

@@ -38,6 +38,8 @@ public interface IElecPgSupplyHService {
      */
     List<ElecPgSupplyH> selectPgSupplyH(QueryMeter queryMeter);
 
+    ElecPgSupplyH calDaySupplyByH(QueryMeter param);
+
     /**
      * 新增电网供应计量-小时
      *

+ 13 - 8
ems/ems-core/src/main/java/com/ruoyi/ems/service/analysis/CarbonCalculationService.java

@@ -11,12 +11,14 @@
 package com.ruoyi.ems.service.analysis;
 
 import com.ruoyi.ems.domain.CaMeterD;
+import com.ruoyi.ems.domain.ElecPgSupplyH;
 import com.ruoyi.ems.domain.ElecPvSupplyH;
 import com.ruoyi.ems.domain.EmissionFactor;
 import com.ruoyi.ems.domain.EnergyMeter;
 import com.ruoyi.ems.mapper.CaMeterDMapper;
 import com.ruoyi.ems.model.QueryMeter;
 import com.ruoyi.ems.service.IElecMeterHService;
+import com.ruoyi.ems.service.IElecPgSupplyHService;
 import com.ruoyi.ems.service.IElecPvSupplyHService;
 import com.ruoyi.ems.service.IEmissionFactorService;
 import org.slf4j.Logger;
@@ -51,7 +53,7 @@ public class CarbonCalculationService {
     private CaMeterDMapper caMeterDMapper;
 
     @Resource
-    private IElecMeterHService elecMeterHService;
+    private IElecPgSupplyHService pgSupplyHService;
 
     @Resource
     private IElecPvSupplyHService pvSupplyHService;
@@ -72,8 +74,8 @@ public class CarbonCalculationService {
             caMeterD.setAreaCode(areaCode);
             caMeterD.setDate(Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant()));
 
-            // 计算碳排放量(基于用电数据)
-            EnergyMeter totalElectricity = getDailyElectricityConsumption(areaCode, date);
+            // 计算碳排放量(基于电网用电数据)
+            ElecPgSupplyH totalElectricity = getDailyElectricityConsumption(areaCode, date);
             Double emission = calculateCarbonEmission(totalElectricity);
             caMeterD.setCaEmissionQuantity(emission);
 
@@ -99,23 +101,26 @@ public class CarbonCalculationService {
         return res.isEmpty() ? null : res.get(0);
     }
 
-    private EnergyMeter getDailyElectricityConsumption(String areaCode, LocalDate date) {
-        return elecMeterHService.qryElecMeterByDate(date.format(dateForm), areaCode);
+    private ElecPgSupplyH getDailyElectricityConsumption(String areaCode, LocalDate date) {
+        QueryMeter queryMeter = new QueryMeter();
+        queryMeter.setAreaCode(areaCode);
+        queryMeter.setDate(date.format(dateForm));
+        return pgSupplyHService.calDaySupplyByH(queryMeter);
     }
 
     // 计算碳排放量
-    private Double calculateCarbonEmission(EnergyMeter totalElectricity) {
+    private Double calculateCarbonEmission(ElecPgSupplyH totalElectricity) {
         EmissionFactor factor = emissionFactorService.selectByRegion("CN", 1);
 
         if (null == factor || factor.getFactorValue() == null) {
             return null;
         }
 
-        if (totalElectricity == null || totalElectricity.getQuantity() == null) {
+        if (totalElectricity == null || totalElectricity.getUseElecQuantity() == null) {
             return null;
         }
 
-        return round(totalElectricity.getQuantity() * factor.getFactorValue(), 2);
+        return round(totalElectricity.getUseElecQuantity() * factor.getFactorValue(), 2);
     }
 
     private Double calculateCarbonSink(ElecPvSupplyH totalPVProduction) {

+ 5 - 2
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/ElecPgSupplyHServiceImpl.java

@@ -61,8 +61,6 @@ public class ElecPgSupplyHServiceImpl implements IElecPgSupplyHService {
         return pgSupplyHMapper.selectPgSupplyH(queryMeter);
     }
 
-
-
     /**
      * 新增电网供应计量-小时
      *
@@ -108,6 +106,11 @@ public class ElecPgSupplyHServiceImpl implements IElecPgSupplyHService {
     }
 
     @Override
+    public ElecPgSupplyH calDaySupplyByH(QueryMeter param) {
+        return pgSupplyHMapper.calDaySupplyByH(param);
+    }
+
+    @Override
     public List<ElecPgSupplyH> calMonthSupplyByH(ElecPgSupplyH param) {
         return pgSupplyHMapper.calMonthSupplyByH(param);
     }

+ 8 - 4
ems/ems-core/src/main/resources/mapper/ems/CaEmissionForecastMapper.xml

@@ -17,11 +17,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectCaEmissionForecastList" parameterType="com.ruoyi.ems.domain.CaEmissionForecast" resultMap="CaEmissionForecastResult">
         select d.id, d.area_code,area.area_name, date, ca_emission from adm_ems_ca_emission_forecast d
-        inner join adm_area area on area.area_code = d.area_code and area.parent_code = '0'
+        inner join adm_area area on area.area_code = d.area_code
         <where>
-            <if test="areaName != null  and areaName != ''">and area_name like concat('%', #{areaName}, '%')</if>
-            <if test="date != null "> and date = #{date}</if>
-            <if test="caEmission != null "> and ca_emission = #{caEmission}</if>
+            <if test="areaCode != null and areaCode != '' and areaCode !='-1'">and d.area_code = #{areaCode}</if>
+            <if test="startRecTime != null and startRecTime != '' ">
+                and d.`date` &gt;= #{startRecTime}
+            </if>
+            <if test="endRecTime != null and endRecTime !=''">
+                and d.`date` &lt;= #{endRecTime}
+            </if>
         </where>
     </select>
 

+ 8 - 4
ems/ems-core/src/main/resources/mapper/ems/CaMeterDMapper.xml

@@ -18,13 +18,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectCaMeterDList" parameterType="com.ruoyi.ems.domain.CaMeterD" resultMap="CaMeterDResult">
         select d.id, d.area_code,area.area_name, date, ca_emission_quantity, ca_sink_quantity from adm_ems_ca_meter_d d
-        inner join adm_area area on area.area_code = d.area_code and area.parent_code = '0'
+        inner join adm_area area on area.area_code = d.area_code
         <where>
             <if test="areaName != null  and areaName != ''">and area.area_name like concat('%', #{areaName}, '%')</if>
-            <if test="areaCode != null  and areaCode != ''"> and d.area_code = #{areaCode}</if>
+            <if test="areaCode != null  and areaCode != '' and areaCode !='-1'"> and d.area_code = #{areaCode}</if>
             <if test="date != null "> and date = #{date}</if>
-            <if test="caEmissionQuantity != null "> and ca_emission_quantity = #{caEmissionQuantity}</if>
-            <if test="caSinkQuantity != null "> and ca_sink_quantity = #{caSinkQuantity}</if>
+            <if test="startRecTime != null and startRecTime != '' ">
+                and d.`date` &gt;= #{startRecTime}
+            </if>
+            <if test="endRecTime != null and endRecTime !=''">
+                and d.`date` &lt;= #{endRecTime}
+            </if>
         </where>
         order by date desc
     </select>

+ 17 - 0
ems/ems-core/src/main/resources/mapper/ems/ElecPgSupplyHMapper.xml

@@ -102,6 +102,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             DATE, time_index
     </select>
 
+    <select id="calDaySupplyByH" parameterType="com.ruoyi.ems.model.QueryMeter" resultType="ElecPgSupplyH">
+        SELECT
+        sum(
+        COALESCE(CAST(use_elec_quantity AS DECIMAL(10, 2)), 0)) use_elec_quantity,
+        sum(
+        COALESCE(CAST(use_elec_cost AS DECIMAL(10, 2)), 0)) use_elec_cost,
+        `date`
+        FROM
+        adm_ems_pg_supply_h pg
+        <where>
+            <if test="areaCode != null and areaCode != '' and areaCode != '-1'">
+                and pg.area_code = #{areaCode}
+            </if>
+            <if test="date != null">and pg.`date` = #{date}</if>
+        </where>
+    </select>
+
     <select id="calMonthSupplyByH" parameterType="ElecPgSupplyH" resultType="ElecPgSupplyH">
         SELECT
         sum(

+ 17 - 0
ems/sql/ca.sql

@@ -0,0 +1,17 @@
+-- ----------------------------
+-- 碳排放配额交易数据表
+-- ----------------------------
+DROP TABLE IF EXISTS `adm_carbon_trading_cea`;
+CREATE TABLE `adm_carbon_trading_cea` (
+  `date`        VARCHAR(32) NOT NULL COMMENT '时间',
+  `kp`          double default NULL COMMENT '开盘',
+  `sp`          double default NULL COMMENT '收盘',
+  `zs`          double default NULL COMMENT '昨收',
+  `high`        double default NULL COMMENT '最高',
+  `low`         double default NULL COMMENT '最低',
+  `zf`          VARCHAR(16) default NULL COMMENT '涨幅',
+  `zd`          double default NULL COMMENT '涨跌',
+  `cjl`         VARCHAR(64) default NULL COMMENT '成交量',
+  `cje`         VARCHAR(64) default NULL COMMENT '成交额',
+  PRIMARY KEY (`date`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='碳排放配额交易数据表';

+ 75 - 68
ems/sql/ems_sys_data.sql

@@ -24,15 +24,13 @@ insert into sys_post values(4, 'user', '普通员工',  4, '0', 'admin', sysdate
 -- 初始化-菜单信息表数据
 -- ----------------------------
 -- 一级菜单
-insert into sys_menu values ('1',  '监控大屏', '0', '1', 'view',             null, '', 1, 0, 'M', '0', '0', '',  'eye-open',    'admin', sysdate(), '', null, '监控大屏');
-insert into sys_menu values ('2',  '能管态势', '0', '2', 'power-mgr',        null, '', 1, 0, 'M', '0', '0', '',  'energy',      'admin', sysdate(), '', null, '能流态势');
-insert into sys_menu values ('3',  '数据分析', '0', '3', 'analysis',         null, '', 1, 0, 'M', '0', '0', '',  'analysis',    'admin', sysdate(), '', null, '数据分析');
-insert into sys_menu values ('4',  '碳排监测', '0', '4', 'ca-analysis',      null, '', 1, 0, 'M', '0', '0', '',  'ca',          'admin', sysdate(), '', null, '碳排监测');
-insert into sys_menu values ('5',  '设备管理', '0', '5', 'device-mgr',       null, '', 1, 0, 'M', '0', '0', '',  'devicemgr',   'admin', sysdate(), '', null, '设备管理');
-insert into sys_menu values ('6',  '运维保障', '0', '6', 'oper-mgr',         null, '', 1, 0, 'M', '0', '0', '',  'opermgr',     'admin', sysdate(), '', null, '运维保障');
-insert into sys_menu values ('7',  '业务配置', '0', '7', 'param-cfg',        null, '', 1, 0, 'M', '0', '0', '',  'paramcfg',    'admin', sysdate(), '', null, '业务配置');
-insert into sys_menu values ('8',  '系统管理', '0', '8', 'system',           null, '', 1, 0, 'M', '0', '0', '',  'system',      'admin', sysdate(), '', null, '系统管理');
-insert into sys_menu values ('9',  '系统对接', '0', '9', 'adapter',          null, '', 1, 0, 'M', '0', '0', '',  'client',      'admin', sysdate(), '', null, '系统对接');
+insert into sys_menu values ('1',  '监控', '0', '1', 'view',             null, '', 1, 0, 'M', '0', '0', '',  'eye-open',    'admin', sysdate(), '', null, '监控大屏');
+insert into sys_menu values ('2',  '能管', '0', '2', 'power-mgr',        null, '', 1, 0, 'M', '0', '0', '',  'energy',      'admin', sysdate(), '', null, '能流态势');
+insert into sys_menu values ('3',  '数据', '0', '3', 'analysis',         null, '', 1, 0, 'M', '0', '0', '',  'analysis',    'admin', sysdate(), '', null, '数据分析');
+insert into sys_menu values ('4',  '设备', '0', '4', 'device-mgr',       null, '', 1, 0, 'M', '0', '0', '',  'devicemgr',   'admin', sysdate(), '', null, '设备管理');
+insert into sys_menu values ('5',  '运维', '0', '5', 'oper-mgr',         null, '', 1, 0, 'M', '0', '0', '',  'opermgr',     'admin', sysdate(), '', null, '运维保障');
+insert into sys_menu values ('6',  '设置', '0', '6', 'param-cfg',        null, '', 1, 0, 'M', '0', '0', '',  'paramcfg',    'admin', sysdate(), '', null, '业务配置');
+insert into sys_menu values ('7',  '系统', '0', '7', 'system',           null, '', 1, 0, 'M', '0', '0', '',  'system',      'admin', sysdate(), '', null, '系统管理');
 insert into sys_menu values ('99', '开发工具', '0', '99', 'tool',            null, '', 1, 0, 'M', '0', '0', '',  'tool',        'admin', sysdate(), '', null, '开发工具');
 
 -- 二级菜单
@@ -50,51 +48,49 @@ insert into sys_menu values ('117',  '策略',            '2',    '7',  'strateg
 insert into sys_menu values ('126',  '产能分析',       '3',    '1',  'power-prod',         'analysis/power/prod',       '', 1, 0, 'C', '0', '0',    'analysis:power:prod',    'energyprod',     'admin', sysdate(), '', null, '产能分析');
 insert into sys_menu values ('127',  '储能分析',       '3',    '2',  'power-store',        'analysis/power/store',      '', 1, 0, 'C', '0', '0',    'analysis:power:store',   'energystore',    'admin', sysdate(), '', null, '储能分析');
 insert into sys_menu values ('128',  '用能分析',       '3',    '3',  'power-consume',      'analysis/power/consume',    '', 1, 0, 'C', '0', '0',    'analysis:power:consume', 'energyconsume',  'admin', sysdate(), '', null, '用能分析');
-insert into sys_menu values ('129',  '节能分析',       '3',    '4',  'EmsEcoD',            'ems/EmsEcoD/index',         '',1, 0, 'C', '0', '0', 'ems:EmsEcoD:list',    'energysave',     'admin', sysdate(), '', null, '节能分析');
-insert into sys_menu values ('120',  '趋势预测',       '3',    '5',  'prediction',         '',                          '', 1, 0, 'M', '0', '0',    '',                       'prediction',     'admin', sysdate(), '', null, '趋势预测');
-insert into sys_menu values ('121',  '数据报表',       '3',    '6',  'analysis-statement', '',                          '', 1, 0, 'M', '0', '0',    'analysis:statement',     'statement',      'admin', sysdate(), '', null, '数据报表');
-
-insert into sys_menu values ('131',  '碳排计量',       '4',    '1',  'ca-emission',        'ca/emission',            '', 1, 0, 'C', '0', '0',   'ca-analysis:emission',   'caemission',     'admin', sysdate(), '', null, '碳排分析');
-insert into sys_menu values ('132',  '碳汇测算',       '4',    '2',  'ca-sink',            'ca/emissionCalc',                '', 1, 0, 'C', '0', '0',   'ca-analysis:sink',       'casink',         'admin', sysdate(), '', null, '碳汇分析');
-
-insert into sys_menu values ('141',  '设备列表',       '5',    '1',  'device-attr',         'devmgr/attr',           '', 1, 0, 'C', '0', '0',    'ems:device:list',        'deviceattr',     'admin', sysdate(), '', null, '设备属性');
-insert into sys_menu values ('142',  '设备台账',       '5',    '2',  'device-el',           'devmgr/el',              '', 1, 0, 'C', '0', '0',   'device:el',              'excel',          'admin', sysdate(), '', null, '设备台账');
-insert into sys_menu values ('143',  '设备告警',       '5',    '3',  'analysis-warn',       'analysis/device/warn',   '', 1, 0, 'C', '0', '0',   'analysis:device',        'deviceanalyze',  'admin', sysdate(), '', null, '设备分析');
-insert into sys_menu values ('144',  '抄表管理',       '5',    '4',  'deviceMeter',         '',                       '', 1, 0, 'M', '0', '0',   'device:meter',           'meterReading',   'admin', sysdate(), '', null, '抄表管理');
-
-INSERT INTO sys_menu VALUES ('151',  '告警策略',       '6',    '1',  'warn-strategy',       'alarm/index',            '', 1, 0, 'C', '0', '0',    'warn:strategy', 'warnstrategy', 'admin', '2024-08-29 15:40:27', 'admin', '2024-08-29 16:01:10', '告警策略');
-INSERT INTO sys_menu VALUES ('152',  '告警列表',       '6',    '2',  'warn-list',           'alarm/alarm-info/index', '', 1, 0, 'C', '0', '0',    'warn:list', 'warnmsg', 'admin', '2024-08-29 15:40:27', 'admin', '2024-08-29 16:01:36', '告警策略');
-INSERT INTO sys_menu VALUES ('153',  '巡检计划',       '6',    '3',  'oper-plan',           'task/index',             '', 1, 0, 'C', '0', '0',    'oper-mgr:task', 'task', 'admin', '2024-08-29 15:40:27', 'admin', '2024-08-29 16:02:38', '巡检任务');
-insert into sys_menu values ('154',  '巡检报告',       '6',    '4',  'oper-report',         'task/report/index',      '', 1, 0, 'C', '0', '0',    'oper-mgr:report',        'note',           'admin', sysdate(), '', null, '巡检报告');
-
-insert into sys_menu values ('161',  '区域配置',       '7',    '1',  'areacfg',            'basecfg/area/index',    '', 1, 0, 'C', '0', '0',   'basecfg:area:list',      'cfgwrite',       'admin', sysdate(), '', null, '区域配置');
-insert into sys_menu values ('162',  '设备设施',       '7',    '2',  'devicecfg',          '',                       '', 1, 0, 'M', '0', '0',   'basecfg:device',         'devicemgr',      'admin', sysdate(), '', null, '设备设施');
-insert into sys_menu values ('163',  '能源计量',       '7',    '3',  'energycfg',          '',                       '', 1, 0, 'M', '0', '0',   'basecfg:energy',         'energy',         'admin', sysdate(), '', null, '能源计量');
-insert into sys_menu values ('164',  '标签管理',       '7',    '4',  'emstag',             'basecfg/tag',            '', 1, 0, 'C', '0', '0',   'basecfg:tag:list',       'tree',           'admin', sysdate(), '', null, '标签菜单');
-
-insert into sys_menu values ('170',  '用户管理',       '8',   '1',  'user',               'system/user/index',      '', 1, 0, 'C', '0', '0',   'system:user:list',       'user',           'admin', sysdate(), '', null, '用户管理菜单');
-insert into sys_menu values ('171',  '角色管理',       '8',   '2',  'role',               'system/role/index',      '', 1, 0, 'C', '0', '0',   'system:role:list',       'peoples',        'admin', sysdate(), '', null, '角色管理菜单');
-insert into sys_menu values ('172',  '菜单管理',       '8',   '3',  'menu',               'system/menu/index',      '', 1, 0, 'C', '0', '0',   'system:menu:list',       'tree-table',     'admin', sysdate(), '', null, '菜单管理菜单');
-insert into sys_menu values ('173',  '部门管理',       '8',   '4',  'dept',               'system/dept/index',      '', 1, 0, 'C', '0', '0',   'system:dept:list',       'tree',           'admin', sysdate(), '', null, '部门管理菜单');
-insert into sys_menu values ('174',  '岗位管理',       '8',   '5',  'post',               'system/post/index',      '', 1, 0, 'C', '0', '0',   'system:post:list',       'post',           'admin', sysdate(), '', null, '岗位管理菜单');
-insert into sys_menu values ('175',  '字典管理',       '8',   '6',  'dict',               'system/dict/index',      '', 1, 0, 'C', '0', '0',   'system:dict:list',       'dict',           'admin', sysdate(), '', null, '字典管理菜单');
-insert into sys_menu values ('176',  '参数设置',       '8',   '7',  'config',             'system/config/index',    '', 1, 0, 'C', '0', '0',   'system:config:list',     'edit',           'admin', sysdate(), '', null, '参数设置菜单');
-insert into sys_menu values ('177',  '通知公告',       '8',   '8',  'notice',             'system/notice/index',    '', 1, 0, 'C', '0', '0',   'system:notice:list',     'message',        'admin', sysdate(), '', null, '通知公告菜单');
-insert into sys_menu values ('178',  '日志管理',       '8',   '9',  'log',                '',                       '', 1, 0, 'M', '0', '0',   '',                       'log',            'admin', sysdate(), '', null, '日志管理菜单');
-insert into sys_menu values ('179',  '在线用户',       '8',   '10', 'online',             'monitor/online/index',   '', 1, 0, 'C', '0', '0',   'monitor:online:list',    'online',         'admin', sysdate(), '', null, '在线用户菜单');
-INSERT INTO sys_menu VALUES ('180',  '任务调度',       '8',   '10', 'task/job',           'monitor/job/index',      '', 1, 0, 'C', '0', '0',   'monitor:job',            'date-range',     'admin', sysdate(), '', NULL, '任务调度');
-
-
-insert into sys_menu values ('190',  '系统信息',       '9',   '1',  'adapter-subsystem',  'adapter/subsystem/index',  '', 1, 0, 'C', '0', '0',   'adapter:subsystem:list',  'note',           'admin', sysdate(), '', null, '光伏');
-insert into sys_menu values ('191',  '光伏',          '9',   '2',  'adapter-pv',         'adapter/pv/index',      '', 1, 0, 'C', '0', '0',   'adapter:user:list',       'photovoltaic',        'admin', sysdate(), '', null, '光伏');
-insert into sys_menu values ('192',  '光储直柔',       '9',   '3',  'adapter-gczr',       'adapter/gczr/index',    '', 1, 0, 'C', '0', '0',   'adapter:role:list',       'deviceaccess',      'admin', sysdate(), '', null, '光储直柔');
-insert into sys_menu values ('193',  '光储充',         '9',   '4',  'adapter-gcc',        'adapter/gcc/index',     '', 1, 0, 'C', '0', '0',   'adapter:menu:list',       'energyconsume',       'admin', sysdate(), '', null, '光储充');
-insert into sys_menu values ('194',  '充电桩',         '9',   '5',  'adapter-cdz',        'adapter/cdz/index',     '', 1, 0, 'C', '0', '0',   'adapter:dept:list',       'powerstore',       'admin', sysdate(), '', null, '充电桩');
-insert into sys_menu values ('195',  '智慧照明',       '9',   '6',  'adapter-zm',         'adapter/zm/index',      '', 1, 0, 'C', '0', '0',   'adapter:post:list',       'system',        'admin', sysdate(), '', null, '智慧照明');
-insert into sys_menu values ('196',  '智慧海绵',       '9',   '7',  'adapter-hm',         'adapter/hm/index',      '', 1, 0, 'C', '0', '0',   'adapter:dict:list',       'system',        'admin', sysdate(), '', null, '智慧海绵');
-insert into sys_menu values ('197',  '垃圾厨余',       '9',   '8',  'adapter-ljcy',       'adapter/ljcy/index',    '', 1, 0, 'C', '0', '0',   'adapter:config:list',     'system',      'admin', sysdate(), '', null, '垃圾厨余');
-insert into sys_menu values ('198',  '能耗监测',       '9',   '9',  'adapter-nhjc',       'adapter/nhjc/index',    '', 1, 0, 'C', '0', '0',   'adapter:notice:list',     'system',      'admin', sysdate(), '', null, '能耗监测');
-insert into sys_menu values ('199',  '设备管理',       '9',   '10',  'adapter-devc',       'adapter/devc/index',    '', 1, 0, 'M', '0', '0',   'adapter:devc:list',       'system',      'admin', sysdate(), '', null, '设备管理');
+insert into sys_menu values ('129',  '节能分析',       '3',    '4',  'EmsEcoD',            'ems/EmsEcoD/index',         '', 1, 0, 'C', '0', '0', 'ems:EmsEcoD:list',    'energysave',     'admin', sysdate(), '', null, '节能分析');
+insert into sys_menu values ('123',  '碳排分析',       '3',    '5',  'ca-analysis',        null,                        '', 1, 0, 'M', '0', '0', '',  'ca',          'admin', sysdate(), '', null, '碳排监测');
+insert into sys_menu values ('120',  '趋势预测',       '3',    '6',  'prediction',         '',                          '', 1, 0, 'M', '0', '0',    '',                       'prediction',     'admin', sysdate(), '', null, '趋势预测');
+insert into sys_menu values ('121',  '数据报表',       '3',    '7',  'analysis-statement', '',                          '', 1, 0, 'M', '0', '0',    'analysis:statement',     'statement',      'admin', sysdate(), '', null, '数据报表');
+
+insert into sys_menu values ('141',  '设备列表',       '4',    '1',  'device-attr',         'devmgr/attr',           '', 1, 0, 'C', '0', '0',    'ems:device:list',        'deviceattr',     'admin', sysdate(), '', null, '设备属性');
+insert into sys_menu values ('142',  '设备台账',       '4',    '2',  'device-el',           'devmgr/el',              '', 1, 0, 'C', '0', '0',   'device:el',              'excel',          'admin', sysdate(), '', null, '设备台账');
+insert into sys_menu values ('143',  '设备告警',       '4',    '3',  'analysis-warn',       'analysis/device/warn',   '', 1, 0, 'C', '0', '0',   'analysis:device',        'deviceanalyze',  'admin', sysdate(), '', null, '设备分析');
+insert into sys_menu values ('144',  '抄表管理',       '4',    '4',  'deviceMeter',         '',                       '', 1, 0, 'M', '0', '0',   'device:meter',           'meterReading',   'admin', sysdate(), '', null, '抄表管理');
+
+INSERT INTO sys_menu VALUES ('151',  '告警策略',       '5',    '1',  'warn-strategy',       'alarm/index',            '', 1, 0, 'C', '0', '0',    'warn:strategy', 'warnstrategy', 'admin', '2024-08-29 15:40:27', 'admin', '2024-08-29 16:01:10', '告警策略');
+INSERT INTO sys_menu VALUES ('152',  '告警列表',       '5',    '2',  'warn-list',           'alarm/alarm-info/index', '', 1, 0, 'C', '0', '0',    'warn:list', 'warnmsg', 'admin', '2024-08-29 15:40:27', 'admin', '2024-08-29 16:01:36', '告警策略');
+INSERT INTO sys_menu VALUES ('153',  '巡检计划',       '5',    '3',  'oper-plan',           'task/index',             '', 1, 0, 'C', '0', '0',    'oper-mgr:task', 'task', 'admin', '2024-08-29 15:40:27', 'admin', '2024-08-29 16:02:38', '巡检任务');
+insert into sys_menu values ('154',  '巡检报告',       '5',    '4',  'oper-report',         'task/report/index',      '', 1, 0, 'C', '0', '0',    'oper-mgr:report',        'note',           'admin', sysdate(), '', null, '巡检报告');
+
+insert into sys_menu values ('161',  '区域配置',       '6',    '1',  'areacfg',            'basecfg/area/index',    '', 1, 0, 'C', '0', '0',   'basecfg:area:list',      'cfgwrite',       'admin', sysdate(), '', null, '区域配置');
+insert into sys_menu values ('162',  '设备设施',       '6',    '2',  'devicecfg',          '',                       '', 1, 0, 'M', '0', '0',   'basecfg:device',         'devicemgr',      'admin', sysdate(), '', null, '设备设施');
+insert into sys_menu values ('163',  '能源计量',       '6',    '3',  'energycfg',          '',                       '', 1, 0, 'M', '0', '0',   'basecfg:energy',         'energy',         'admin', sysdate(), '', null, '能源计量');
+insert into sys_menu values ('164',  '标签管理',       '6',    '4',  'emstag',             'basecfg/tag',            '', 1, 0, 'C', '0', '0',   'basecfg:tag:list',       'tree',           'admin', sysdate(), '', null, '标签菜单');
+insert into sys_menu values ('165',  '系统对接',       '6',    '5',  'adapter',          null, '', 1, 0, 'M', '0', '0', '',  'client',      'admin', sysdate(), '', null, '系统对接');
+
+insert into sys_menu values ('170',  '用户管理',       '7',   '1',  'user',               'system/user/index',      '', 1, 0, 'C', '0', '0',   'system:user:list',       'user',           'admin', sysdate(), '', null, '用户管理菜单');
+insert into sys_menu values ('171',  '角色管理',       '7',   '2',  'role',               'system/role/index',      '', 1, 0, 'C', '0', '0',   'system:role:list',       'peoples',        'admin', sysdate(), '', null, '角色管理菜单');
+insert into sys_menu values ('172',  '菜单管理',       '7',   '3',  'menu',               'system/menu/index',      '', 1, 0, 'C', '0', '0',   'system:menu:list',       'tree-table',     'admin', sysdate(), '', null, '菜单管理菜单');
+insert into sys_menu values ('173',  '部门管理',       '7',   '4',  'dept',               'system/dept/index',      '', 1, 0, 'C', '0', '0',   'system:dept:list',       'tree',           'admin', sysdate(), '', null, '部门管理菜单');
+insert into sys_menu values ('174',  '岗位管理',       '7',   '5',  'post',               'system/post/index',      '', 1, 0, 'C', '0', '0',   'system:post:list',       'post',           'admin', sysdate(), '', null, '岗位管理菜单');
+insert into sys_menu values ('175',  '字典管理',       '7',   '6',  'dict',               'system/dict/index',      '', 1, 0, 'C', '0', '0',   'system:dict:list',       'dict',           'admin', sysdate(), '', null, '字典管理菜单');
+insert into sys_menu values ('176',  '参数设置',       '7',   '7',  'config',             'system/config/index',    '', 1, 0, 'C', '0', '0',   'system:config:list',     'edit',           'admin', sysdate(), '', null, '参数设置菜单');
+insert into sys_menu values ('177',  '通知公告',       '7',   '8',  'notice',             'system/notice/index',    '', 1, 0, 'C', '0', '0',   'system:notice:list',     'message',        'admin', sysdate(), '', null, '通知公告菜单');
+insert into sys_menu values ('178',  '日志管理',       '7',   '9',  'log',                '',                       '', 1, 0, 'M', '0', '0',   '',                       'log',            'admin', sysdate(), '', null, '日志管理菜单');
+insert into sys_menu values ('179',  '在线用户',       '7',   '10', 'online',             'monitor/online/index',   '', 1, 0, 'C', '0', '0',   'monitor:online:list',    'online',         'admin', sysdate(), '', null, '在线用户菜单');
+INSERT INTO sys_menu VALUES ('180',  '任务调度',       '7',   '10', 'task/job',           'monitor/job/index',      '', 1, 0, 'C', '0', '0',   'monitor:job',            'date-range',     'admin', sysdate(), '', NULL, '任务调度');
+
+insert into sys_menu values ('1650',  '系统信息',       '165',   '1',  'adapter-subsystem',  'adapter/subsystem/index',  '', 1, 0, 'C', '0', '0',   'adapter:subsystem:list',  'note',           'admin', sysdate(), '', null, '光伏');
+insert into sys_menu values ('1651',  '光伏',          '165',   '2',  'adapter-pv',         'adapter/pv/index',      '', 1, 0, 'C', '0', '0',   'adapter:user:list',       'photovoltaic',        'admin', sysdate(), '', null, '光伏');
+insert into sys_menu values ('1652',  '光储直柔',       '165',   '3',  'adapter-gczr',       'adapter/gczr/index',    '', 1, 0, 'C', '0', '0',   'adapter:role:list',       'deviceaccess',      'admin', sysdate(), '', null, '光储直柔');
+insert into sys_menu values ('1653',  '光储充',         '165',   '4',  'adapter-gcc',        'adapter/gcc/index',     '', 1, 0, 'C', '0', '0',   'adapter:menu:list',       'energyconsume',       'admin', sysdate(), '', null, '光储充');
+insert into sys_menu values ('1654',  '充电桩',         '165',   '5',  'adapter-cdz',        'adapter/cdz/index',     '', 1, 0, 'C', '0', '0',   'adapter:dept:list',       'powerstore',       'admin', sysdate(), '', null, '充电桩');
+insert into sys_menu values ('1655',  '智慧照明',       '165',   '6',  'adapter-zm',         'adapter/zm/index',      '', 1, 0, 'C', '0', '0',   'adapter:post:list',       'system',        'admin', sysdate(), '', null, '智慧照明');
+insert into sys_menu values ('1656',  '智慧海绵',       '165',   '7',  'adapter-hm',         'adapter/hm/index',      '', 1, 0, 'C', '0', '0',   'adapter:dict:list',       'system',        'admin', sysdate(), '', null, '智慧海绵');
+insert into sys_menu values ('1657',  '垃圾厨余',       '165',   '8',  'adapter-ljcy',       'adapter/ljcy/index',    '', 1, 0, 'C', '0', '0',   'adapter:config:list',     'system',      'admin', sysdate(), '', null, '垃圾厨余');
+insert into sys_menu values ('1658',  '能耗监测',       '165',   '9',  'adapter-nhjc',       'adapter/nhjc/index',    '', 1, 0, 'C', '0', '0',   'adapter:notice:list',     'system',      'admin', sysdate(), '', null, '能耗监测');
+insert into sys_menu values ('1659',  '设备管理',       '165',   '10',  'adapter-devc',       'adapter/devc/index',    '', 1, 0, 'M', '0', '0',   'adapter:devc:list',       'system',      'admin', sysdate(), '', null, '设备管理');
 
 insert into sys_menu values ('997',  '表单构建',       '99',   '1',  'build',              'tool/build/index',       '', 1, 0, 'C', '0', '0',   'tool:build:list',        'build',          'admin', sysdate(), '', null, '表单构建菜单');
 insert into sys_menu values ('998',  '代码生成',       '99',   '2',  'gen',                'tool/gen/index',         '', 1, 0, 'C', '0', '0',   'tool:gen:list',          'code',           'admin', sysdate(), '', null, '代码生成菜单');
@@ -111,6 +107,10 @@ insert into sys_menu values ('1211',  '用能报表',   '121', '2',  'statement-
 insert into sys_menu values ('1212',  '告警报表',   '121', '3',  'statement-warn',    'analysis/statement/warn',     '', 1, 0, 'C', '0', '0',    'analysis:statement:warn',      'warn',     'admin', sysdate(), '', null, '告警报表');
 insert into sys_menu values ('1213',  '自定义',     '121', '4',  'statement-warn',    'analysis/statement/custom',   '', 1, 0, 'C', '0', '0',   'analysis:statement:custom',    'statement-zdy',   'admin', sysdate(), '', null, '自定义报表');
 
+-- 碳分析菜单
+insert into sys_menu values ('1231',  '碳排计量',       '123',    '1',  'ca-emission',        'ca/emission',            '', 1, 0, 'C', '0', '0',   'ca-analysis:emission',   'caemission',     'admin', sysdate(), '', null, '碳排分析');
+insert into sys_menu values ('1232',  '碳汇测算',       '123',    '2',  'ca-sink',            'ca/emissionCalc',                '', 1, 0, 'C', '0', '0',   'ca-analysis:sink',       'casink',         'admin', sysdate(), '', null, '碳汇分析');
+
 -- 抄表管理菜单
 insert into sys_menu values ('1440',  '手动抄表',   '144', '1',  'meterRead-manual',    'devmgr/meterRead',       '', 1, 0, 'C', '0', '0',   'ems:meterReading:list',  'meterReadManual',   'admin', sysdate(), '', null, '手动抄表');
 insert into sys_menu values ('1441',  '自动抄表',   '144', '2',  'meterRead-auto',      'devmgr/meterData',       '', 1, 0, 'C', '0', '0',   'ems:meterData:list',  'meterReadAuto',   'admin', sysdate(), '', null, '抄表数据');
@@ -342,11 +342,10 @@ INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 4);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 5);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 6);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 7);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 8);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 9);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 99);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 100);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 101);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 111);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 112);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 113);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 114);
@@ -355,12 +354,11 @@ INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 116);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 117);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 120);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 121);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 123);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 126);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 127);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 128);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 129);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 131);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 132);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 141);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 142);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 143);
@@ -373,6 +371,7 @@ INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 161);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 162);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 163);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 164);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 165);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 170);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 171);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 172);
@@ -384,16 +383,6 @@ INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 177);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 178);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 179);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 180);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 190);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 191);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 192);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 193);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 194);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 195);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 196);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 197);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 198);
-INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 199);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 997);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 998);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 999);
@@ -422,6 +411,8 @@ INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1210);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1211);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1212);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1213);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1231);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1232);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1310);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1311);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1312);
@@ -471,6 +462,17 @@ INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1630);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1631);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1632);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1633);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1634);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1650);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1651);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1652);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1653);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1654);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1655);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1656);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1657);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1658);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1659);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1700);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1701);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1702);
@@ -541,6 +543,11 @@ INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 12022);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 12023);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 12024);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 12025);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 12901);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 12902);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 12903);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 12904);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 12905);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 16200);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 16201);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 16202);