Pārlūkot izejas kodu

配电柜管理

lv.wenbin 11 mēneši atpakaļ
vecāks
revīzija
f68d369f08
29 mainītis faili ar 2613 papildinājumiem un 294 dzēšanām
  1. 105 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElecEqptTypeController.java
  2. 6 6
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElecValencyController.java
  3. 6 6
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElectricityController.java
  4. 5 5
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/MeterDeviceController.java
  5. 105 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/PowerBoxController.java
  6. 105 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/PowerBoxElecEqptController.java
  7. 105 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/PvPriceConfigController.java
  8. 65 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecEqptType.java
  9. 104 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecPvPriceConfig.java
  10. 171 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/PowerBox.java
  11. 161 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/PowerBoxElecEqpt.java
  12. 61 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/EleceqptTypeMapper.java
  13. 79 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/PowerBoxElecEqptMapper.java
  14. 61 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/PowerBoxMapper.java
  15. 61 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/PvPriceConfigMapper.java
  16. 61 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IElecEqptTypeService.java
  17. 79 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IPowerBoxElecEqptService.java
  18. 62 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IPowerBoxService.java
  19. 61 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IPvPriceConfigService.java
  20. 94 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/ElecEqptTypeServiceImpl.java
  21. 116 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/PowerBoxElecEqptServiceImpl.java
  22. 149 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/PowerBoxServiceImpl.java
  23. 94 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/PvPriceConfigServiceImpl.java
  24. 61 0
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/EleceqptTypeMapper.xml
  25. 118 0
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/PowerBoxElecEqptMapper.xml
  26. 91 0
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/PowerBoxMapper.xml
  27. 76 0
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/PvPriceConfigMapper.xml
  28. 72 2
      ems-cloud/sql/ems_server.sql
  29. 279 275
      ems-cloud/sql/ems_sys.sql

+ 105 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElecEqptTypeController.java

@@ -0,0 +1,105 @@
+package com.ruoyi.ems.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.ems.domain.ElecEqptType;
+import com.ruoyi.ems.service.IElecEqptTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 动力柜电器设备类型Controller
+ * 
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+@RestController
+@RequestMapping("/elecEqpt/type")
+public class ElecEqptTypeController extends BaseController
+{
+    @Autowired
+    private IElecEqptTypeService elecEqptTypeService;
+
+    /**
+     * 查询动力柜电器设备类型列表
+     */
+    @RequiresPermissions("ems:eqptType:list")
+    @GetMapping("/list")
+    public TableDataInfo list(ElecEqptType eleceqptType)
+    {
+        startPage();
+        List<ElecEqptType> list = elecEqptTypeService.selectElecEqptTypeList(eleceqptType);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出动力柜电器设备类型列表
+     */
+    @RequiresPermissions("ems:eqptType:export")
+    @Log(title = "动力柜电器设备类型", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ElecEqptType eleceqptType)
+    {
+        List<ElecEqptType> list = elecEqptTypeService.selectElecEqptTypeList(eleceqptType);
+        ExcelUtil<ElecEqptType> util = new ExcelUtil<ElecEqptType>(ElecEqptType.class);
+        util.exportExcel(response, list, "动力柜电器设备类型数据");
+    }
+
+    /**
+     * 获取动力柜电器设备类型详细信息
+     */
+    @RequiresPermissions("ems:eqptType:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(elecEqptTypeService.selectElecEqptTypeById(id));
+    }
+
+    /**
+     * 新增动力柜电器设备类型
+     */
+    @RequiresPermissions("ems:eqptType:add")
+    @Log(title = "动力柜电器设备类型", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ElecEqptType eleceqptType)
+    {
+        return toAjax(elecEqptTypeService.insertElecEqptType(eleceqptType));
+    }
+
+    /**
+     * 修改动力柜电器设备类型
+     */
+    @RequiresPermissions("ems:eqptType:edit")
+    @Log(title = "动力柜电器设备类型", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ElecEqptType eleceqptType)
+    {
+        return toAjax(elecEqptTypeService.updateElecEqptType(eleceqptType));
+    }
+
+    /**
+     * 删除动力柜电器设备类型
+     */
+    @RequiresPermissions("ems:eqptType:remove")
+    @Log(title = "动力柜电器设备类型", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(elecEqptTypeService.deleteElecEqptTypeByIds(ids));
+    }
+}

+ 6 - 6
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElecValencyController.java

@@ -37,7 +37,7 @@ public class ElecValencyController extends BaseController {
     /**
      * 查询电价配置列表
      */
-    @RequiresPermissions("basecfg:electricity:list")
+    @RequiresPermissions("basecfg:price:list")
     @GetMapping("/list")
     public TableDataInfo list(ElecValencyConfig elecValencyConfig) {
         startPage();
@@ -48,7 +48,7 @@ public class ElecValencyController extends BaseController {
     /**
      * 导出电价配置列表
      */
-    @RequiresPermissions("basecfg:electricity:export")
+    @RequiresPermissions("basecfg:price:export")
     @Log(title = "电价配置", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, ElecValencyConfig elecValencyConfig) {
@@ -60,7 +60,7 @@ public class ElecValencyController extends BaseController {
     /**
      * 获取电价配置详细信息
      */
-    @RequiresPermissions("basecfg:electricity:query")
+    @RequiresPermissions("basecfg:price:query")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(configService.selectElecValencyConfigById(id));
@@ -69,7 +69,7 @@ public class ElecValencyController extends BaseController {
     /**
      * 新增电价配置
      */
-    @RequiresPermissions("basecfg:electricity:add")
+    @RequiresPermissions("basecfg:price:add")
     @Log(title = "电价配置", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody ElecValencyConfig elecValencyConfig) {
@@ -79,7 +79,7 @@ public class ElecValencyController extends BaseController {
     /**
      * 修改电价配置
      */
-    @RequiresPermissions("basecfg:electricity:edit")
+    @RequiresPermissions("basecfg:price:edit")
     @Log(title = "电价配置", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody ElecValencyConfig elecValencyConfig) {
@@ -89,7 +89,7 @@ public class ElecValencyController extends BaseController {
     /**
      * 删除电价配置
      */
-    @RequiresPermissions("basecfg:electricity:remove")
+    @RequiresPermissions("basecfg:price:remove")
     @Log(title = "电价配置", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids) {

+ 6 - 6
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElectricityController.java

@@ -44,7 +44,7 @@ public class ElectricityController extends BaseController {
     /**
      * 查询服务区用电属性列表
      */
-    @RequiresPermissions("basecfg:electricity:list")
+    @RequiresPermissions("basecfg:price:list")
     @GetMapping("/attr/list")
     public TableDataInfo list(AreaElectricityAttr areaElectricityAttr) {
         startPage();
@@ -55,7 +55,7 @@ public class ElectricityController extends BaseController {
     /**
      * 导出服务区用电属性列表
      */
-    @RequiresPermissions("basecfg:electricity:export")
+    @RequiresPermissions("basecfg:price:export")
     @Log(title = "服务区用电属性", businessType = BusinessType.EXPORT)
     @PostMapping("/attr/export")
     public void export(HttpServletResponse response, AreaElectricityAttr areaElectricityAttr) {
@@ -67,7 +67,7 @@ public class ElectricityController extends BaseController {
     /**
      * 获取服务区用电属性详细信息
      */
-    @RequiresPermissions("basecfg:electricity:query")
+    @RequiresPermissions("basecfg:price:query")
     @GetMapping(value = "/attr/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(attrService.selectAreaElectricityAttrById(id));
@@ -76,7 +76,7 @@ public class ElectricityController extends BaseController {
     /**
      * 新增服务区用电属性
      */
-    @RequiresPermissions("basecfg:electricity:add")
+    @RequiresPermissions("basecfg:price:add")
     @Log(title = "服务区用电属性", businessType = BusinessType.INSERT)
     @PostMapping(value = "/attr")
     public AjaxResult add(@RequestBody AreaElectricityAttr areaElectricityAttr) {
@@ -86,7 +86,7 @@ public class ElectricityController extends BaseController {
     /**
      * 修改服务区用电属性
      */
-    @RequiresPermissions("basecfg:electricity:edit")
+    @RequiresPermissions("basecfg:price:edit")
     @Log(title = "服务区用电属性", businessType = BusinessType.UPDATE)
     @PutMapping(value = "/attr")
     public AjaxResult edit(@RequestBody AreaElectricityAttr areaElectricityAttr) {
@@ -96,7 +96,7 @@ public class ElectricityController extends BaseController {
     /**
      * 删除服务区用电属性
      */
-    @RequiresPermissions("basecfg:electricity:remove")
+    @RequiresPermissions("basecfg:price:remove")
     @Log(title = "服务区用电属性", businessType = BusinessType.DELETE)
     @DeleteMapping("/attr/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids) {

+ 5 - 5
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/MeterDeviceController.java

@@ -48,7 +48,7 @@ public class MeterDeviceController extends BaseController {
     /**
      * 导出计量设备列表
      */
-    @RequiresPermissions("ems:device:export")
+    @RequiresPermissions("ems:meterdevc:export")
     @Log(title = "计量设备", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     public void export(HttpServletResponse response, MeterDevice meterDevice) {
@@ -60,7 +60,7 @@ public class MeterDeviceController extends BaseController {
     /**
      * 获取计量设备详细信息
      */
-    @RequiresPermissions("ems:device:query")
+    @RequiresPermissions("ems:meterdevc:query")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(meterDeviceService.selectMeterDeviceById(id));
@@ -69,7 +69,7 @@ public class MeterDeviceController extends BaseController {
     /**
      * 新增计量设备
      */
-    @RequiresPermissions("ems:device:add")
+    @RequiresPermissions("ems:meterdevc:add")
     @Log(title = "计量设备", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody MeterDevice meterDevice) {
@@ -79,7 +79,7 @@ public class MeterDeviceController extends BaseController {
     /**
      * 修改计量设备
      */
-    @RequiresPermissions("ems:device:edit")
+    @RequiresPermissions("ems:meterdevc:edit")
     @Log(title = "计量设备", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody MeterDevice meterDevice) {
@@ -89,7 +89,7 @@ public class MeterDeviceController extends BaseController {
     /**
      * 删除计量设备
      */
-    @RequiresPermissions("ems:device:remove")
+    @RequiresPermissions("ems:meterdevc:remove")
     @Log(title = "计量设备", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Long[] ids) {

+ 105 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/PowerBoxController.java

@@ -0,0 +1,105 @@
+package com.ruoyi.ems.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.ems.domain.PowerBox;
+import com.ruoyi.ems.service.IPowerBoxService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 动力箱柜Controller
+ * 
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+@RestController
+@RequestMapping("/powerBox")
+public class PowerBoxController extends BaseController
+{
+    @Autowired
+    private IPowerBoxService admPowerBoxService;
+
+    /**
+     * 查询动力箱柜列表
+     */
+    @RequiresPermissions("ems:powerBox:list")
+    @GetMapping("/list")
+    public TableDataInfo list(PowerBox powerBox)
+    {
+        startPage();
+        List<PowerBox> list = admPowerBoxService.selectPowerBoxList(powerBox);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出动力箱柜列表
+     */
+    @RequiresPermissions("ems:powerBox:export")
+    @Log(title = "动力箱柜", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, PowerBox admPowerBox)
+    {
+        List<PowerBox> list = admPowerBoxService.selectPowerBoxList(admPowerBox);
+        ExcelUtil<PowerBox> util = new ExcelUtil<PowerBox>(PowerBox.class);
+        util.exportExcel(response, list, "动力箱柜数据");
+    }
+
+    /**
+     * 获取动力箱柜详细信息
+     */
+    @RequiresPermissions("ems:powerBox:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(admPowerBoxService.selectPowerBoxById(id));
+    }
+
+    /**
+     * 新增动力箱柜
+     */
+    @RequiresPermissions("ems:powerBox:add")
+    @Log(title = "动力箱柜", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody PowerBox admPowerBox)
+    {
+        return toAjax(admPowerBoxService.insertPowerBox(admPowerBox));
+    }
+
+    /**
+     * 修改动力箱柜
+     */
+    @RequiresPermissions("ems:powerBox:edit")
+    @Log(title = "动力箱柜", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody PowerBox admPowerBox)
+    {
+        return toAjax(admPowerBoxService.updatePowerBox(admPowerBox));
+    }
+
+    /**
+     * 删除动力箱柜
+     */
+    @RequiresPermissions("ems:powerBox:remove")
+    @Log(title = "动力箱柜", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(admPowerBoxService.deletePowerBoxByIds(ids));
+    }
+}

+ 105 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/PowerBoxElecEqptController.java

@@ -0,0 +1,105 @@
+package com.ruoyi.ems.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.ems.domain.PowerBoxElecEqpt;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.ems.service.IPowerBoxElecEqptService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 动力箱柜电气设备Controller
+ * 
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+@RestController
+@RequestMapping("/powerBox/elecEqpt")
+public class PowerBoxElecEqptController extends BaseController
+{
+    @Autowired
+    private IPowerBoxElecEqptService admBoxElecEqptService;
+
+    /**
+     * 查询动力箱柜电气设备列表
+     */
+    @RequiresPermissions("ems:powerBox:list")
+    @GetMapping("/list")
+    public TableDataInfo list(PowerBoxElecEqpt boxElecEqpt)
+    {
+        startPage();
+        List<PowerBoxElecEqpt> list = admBoxElecEqptService.selectBoxElecEqptList(boxElecEqpt);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出动力箱柜电气设备列表
+     */
+    @RequiresPermissions("ems:powerBox:export")
+    @Log(title = "动力箱柜电气设备", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, PowerBoxElecEqpt boxElecEqpt)
+    {
+        List<PowerBoxElecEqpt> list = admBoxElecEqptService.selectBoxElecEqptList(boxElecEqpt);
+        ExcelUtil<PowerBoxElecEqpt> util = new ExcelUtil<PowerBoxElecEqpt>(PowerBoxElecEqpt.class);
+        util.exportExcel(response, list, "动力箱柜电气设备数据");
+    }
+
+    /**
+     * 获取动力箱柜电气设备详细信息
+     */
+    @RequiresPermissions("ems:powerBox:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(admBoxElecEqptService.selectBoxElecEqptById(id));
+    }
+
+    /**
+     * 新增动力箱柜电气设备
+     */
+    @RequiresPermissions("ems:powerBox:add")
+    @Log(title = "动力箱柜电气设备", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody PowerBoxElecEqpt boxElecEqpt)
+    {
+        return toAjax(admBoxElecEqptService.insertBoxElecEqpt(boxElecEqpt));
+    }
+
+    /**
+     * 修改动力箱柜电气设备
+     */
+    @RequiresPermissions("ems:powerBox:edit")
+    @Log(title = "动力箱柜电气设备", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody PowerBoxElecEqpt boxElecEqpt)
+    {
+        return toAjax(admBoxElecEqptService.updateBoxElecEqpt(boxElecEqpt));
+    }
+
+    /**
+     * 删除动力箱柜电气设备
+     */
+    @RequiresPermissions("ems:powerBox:remove")
+    @Log(title = "动力箱柜电气设备", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(admBoxElecEqptService.deleteBoxElecEqptByIds(ids));
+    }
+}

+ 105 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/PvPriceConfigController.java

@@ -0,0 +1,105 @@
+package com.ruoyi.ems.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.ems.domain.ElecPvPriceConfig;
+import com.ruoyi.ems.service.IPvPriceConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 光伏电价配置Controller
+ * 
+ * @author ruoyi
+ * @date 2024-08-19
+ */
+@RestController
+@RequestMapping("/basecfg/pvprice")
+public class PvPriceConfigController extends BaseController
+{
+    @Autowired
+    private IPvPriceConfigService sysPvPriceConfigService;
+
+    /**
+     * 查询光伏电价配置列表
+     */
+    @RequiresPermissions("basecfg:price:list")
+    @GetMapping("/list")
+    public TableDataInfo list(ElecPvPriceConfig pvPriceConfig)
+    {
+        startPage();
+        List<ElecPvPriceConfig> list = sysPvPriceConfigService.selectPvPriceConfigList(pvPriceConfig);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出光伏电价配置列表
+     */
+    @RequiresPermissions("basecfg:price:export")
+    @Log(title = "光伏电价配置", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ElecPvPriceConfig pvPriceConfig)
+    {
+        List<ElecPvPriceConfig> list = sysPvPriceConfigService.selectPvPriceConfigList(pvPriceConfig);
+        ExcelUtil<ElecPvPriceConfig> util = new ExcelUtil<>(ElecPvPriceConfig.class);
+        util.exportExcel(response, list, "光伏电价配置数据");
+    }
+
+    /**
+     * 获取光伏电价配置详细信息
+     */
+    @RequiresPermissions("basecfg:price:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(sysPvPriceConfigService.selectPvPriceConfigById(id));
+    }
+
+    /**
+     * 新增光伏电价配置
+     */
+    @RequiresPermissions("basecfg:price:add")
+    @Log(title = "光伏电价配置", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ElecPvPriceConfig pvPriceConfig)
+    {
+        return toAjax(sysPvPriceConfigService.insertPvPriceConfig(pvPriceConfig));
+    }
+
+    /**
+     * 修改光伏电价配置
+     */
+    @RequiresPermissions("basecfg:price:edit")
+    @Log(title = "光伏电价配置", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ElecPvPriceConfig pvPriceConfig)
+    {
+        return toAjax(sysPvPriceConfigService.updatePvPriceConfig(pvPriceConfig));
+    }
+
+    /**
+     * 删除光伏电价配置
+     */
+    @RequiresPermissions("basecfg:price:remove")
+    @Log(title = "光伏电价配置", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(sysPvPriceConfigService.deletePvPriceConfigByIds(ids));
+    }
+}

+ 65 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecEqptType.java

@@ -0,0 +1,65 @@
+package com.ruoyi.ems.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 动力柜电器设备类型对象 dim_box_eleceqpt_type
+ * 
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+public class ElecEqptType extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 序号 */
+    private Long id;
+
+    /** 类型代码 */
+    @Excel(name = "类型代码")
+    private String typeCode;
+
+    /** 类型名称 */
+    @Excel(name = "类型名称")
+    private String typeName;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setTypeCode(String typeCode) 
+    {
+        this.typeCode = typeCode;
+    }
+
+    public String getTypeCode() 
+    {
+        return typeCode;
+    }
+    public void setTypeName(String typeName) 
+    {
+        this.typeName = typeName;
+    }
+
+    public String getTypeName() 
+    {
+        return typeName;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("typeCode", getTypeCode())
+            .append("typeName", getTypeName())
+            .toString();
+    }
+}

+ 104 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecPvPriceConfig.java

@@ -0,0 +1,104 @@
+package com.ruoyi.ems.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 光伏电价配置对象 sys_pv_price_config
+ * 
+ * @author ruoyi
+ * @date 2024-08-19
+ */
+public class ElecPvPriceConfig extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 序号 */
+    private Long id;
+
+    /** 配置代码 */
+    @Excel(name = "配置代码")
+    private String cfgCode;
+
+    /** 价格名称 */
+    @Excel(name = "价格名称")
+    private String priceName;
+
+    /** 对象价格 */
+    @Excel(name = "对象价格")
+    private Double objPrice;
+
+    /** 国家补贴 */
+    @Excel(name = "国家补贴")
+    private Double stateSubsidy;
+
+    /** 地方补贴 */
+    @Excel(name = "地方补贴")
+    private Double localSubsidy;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setCfgCode(String cfgCode) 
+    {
+        this.cfgCode = cfgCode;
+    }
+
+    public String getCfgCode() 
+    {
+        return cfgCode;
+    }
+    public void setPriceName(String priceName) 
+    {
+        this.priceName = priceName;
+    }
+
+    public String getPriceName() 
+    {
+        return priceName;
+    }
+
+    public Double getObjPrice() {
+        return objPrice;
+    }
+
+    public void setObjPrice(Double objPrice) {
+        this.objPrice = objPrice;
+    }
+
+    public Double getStateSubsidy() {
+        return stateSubsidy;
+    }
+
+    public void setStateSubsidy(Double stateSubsidy) {
+        this.stateSubsidy = stateSubsidy;
+    }
+
+    public Double getLocalSubsidy() {
+        return localSubsidy;
+    }
+
+    public void setLocalSubsidy(Double localSubsidy) {
+        this.localSubsidy = localSubsidy;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("cfgCode", getCfgCode())
+            .append("priceName", getPriceName())
+            .append("objPrice", getObjPrice())
+            .append("stateSubsidy", getStateSubsidy())
+            .append("localSubsidy", getLocalSubsidy())
+            .toString();
+    }
+}

+ 171 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/PowerBox.java

@@ -0,0 +1,171 @@
+package com.ruoyi.ems.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+import java.util.List;
+
+/**
+ * 动力箱柜对象 adm_power_box
+ * 
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+public class PowerBox extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 序号 */
+    private Long id;
+
+    /** 箱柜代码 */
+    @Excel(name = "箱柜代码")
+    private String boxCode;
+
+    /** 箱体类型 */
+    @Excel(name = "箱体类型")
+    private Long boxType;
+
+    /** 服务区代码 */
+    private String areaCode;
+
+    /** 服务区名称 */
+    @Excel(name = "服务区名称")
+    private String areaName;
+
+    /** 服务区简称 */
+    private String areaShortName;
+
+    /** 安装位置 */
+    @Excel(name = "安装位置")
+    private String location;
+
+    /** 箱体尺寸 */
+    @Excel(name = "箱体尺寸")
+    private String boxSize;
+
+    /** 网关地址 */
+    @Excel(name = "网关地址")
+    private String gatewayAddr;
+
+    /** 网关端口 */
+    @Excel(name = "网关端口")
+    private Long gatewayPort;
+
+    /** 电气件信息 */
+    private List<PowerBoxElecEqpt> elecEqptList;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setBoxCode(String boxCode) 
+    {
+        this.boxCode = boxCode;
+    }
+
+    public String getBoxCode() 
+    {
+        return boxCode;
+    }
+    public void setBoxType(Long boxType) 
+    {
+        this.boxType = boxType;
+    }
+
+    public Long getBoxType() 
+    {
+        return boxType;
+    }
+    public void setAreaCode(String areaCode) 
+    {
+        this.areaCode = areaCode;
+    }
+
+    public String getAreaCode() 
+    {
+        return areaCode;
+    }
+
+    public String getAreaName() {
+        return areaName;
+    }
+
+    public void setAreaName(String areaName) {
+        this.areaName = areaName;
+    }
+
+    public String getAreaShortName() {
+        return areaShortName;
+    }
+
+    public void setAreaShortName(String areaShortName) {
+        this.areaShortName = areaShortName;
+    }
+
+    public void setLocation(String location)
+    {
+        this.location = location;
+    }
+
+    public String getLocation() 
+    {
+        return location;
+    }
+    public void setBoxSize(String boxSize) 
+    {
+        this.boxSize = boxSize;
+    }
+
+    public String getBoxSize() 
+    {
+        return boxSize;
+    }
+    public void setGatewayAddr(String gatewayAddr) 
+    {
+        this.gatewayAddr = gatewayAddr;
+    }
+
+    public String getGatewayAddr() 
+    {
+        return gatewayAddr;
+    }
+    public void setGatewayPort(Long gatewayPort) 
+    {
+        this.gatewayPort = gatewayPort;
+    }
+
+    public Long getGatewayPort() 
+    {
+        return gatewayPort;
+    }
+
+    public List<PowerBoxElecEqpt> getElecEqptList() {
+        return elecEqptList;
+    }
+
+    public void setElecEqptList(List<PowerBoxElecEqpt> elecEqptList) {
+        this.elecEqptList = elecEqptList;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("boxCode", getBoxCode())
+            .append("boxType", getBoxType())
+            .append("areaCode", getAreaCode())
+            .append("location", getLocation())
+            .append("boxSize", getBoxSize())
+            .append("gatewayAddr", getGatewayAddr())
+            .append("gatewayPort", getGatewayPort())
+            .toString();
+    }
+}

+ 161 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/PowerBoxElecEqpt.java

@@ -0,0 +1,161 @@
+package com.ruoyi.ems.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 动力箱柜电气设备对象 adm_box_elec_eqpt
+ * 
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+public class PowerBoxElecEqpt extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 序号 */
+    private Long id;
+
+    /** 箱柜代码 */
+    @Excel(name = "箱柜代码")
+    private String boxCode;
+
+    /** 电气编码 */
+    @Excel(name = "电气编码")
+    private String eqptCode;
+
+    /** 外部系统编码 */
+    @Excel(name = "外部系统编码")
+    private String extEqptCode;
+
+    private String eqptType;
+
+    @Excel(name = "电气件名称")
+    private String eqptName;
+
+    /** 电气型号 */
+    @Excel(name = "电气型号")
+    private String eqptSpec;
+
+    /** 额定电压 */
+    @Excel(name = "额定电压")
+    private Long ratedVoltage;
+
+    /** 额定电流 */
+    @Excel(name = "额定电流")
+    private Long ratedCurrent;
+
+    /** 上级电气件 */
+    @Excel(name = "上级电气件")
+    private String parentEqpt;
+
+    /** 计量设备 */
+    @Excel(name = "计量设备")
+    private String meterDevice;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getBoxCode() {
+        return boxCode;
+    }
+
+    public void setBoxCode(String boxCode) {
+        this.boxCode = boxCode;
+    }
+
+    public String getEqptCode() {
+        return eqptCode;
+    }
+
+    public void setEqptCode(String eqptCode) {
+        this.eqptCode = eqptCode;
+    }
+
+    public String getExtEqptCode() {
+        return extEqptCode;
+    }
+
+    public void setExtEqptCode(String extEqptCode) {
+        this.extEqptCode = extEqptCode;
+    }
+
+    public String getEqptType() {
+        return eqptType;
+    }
+
+    public void setEqptType(String eqptType) {
+        this.eqptType = eqptType;
+    }
+
+    public String getEqptName() {
+        return eqptName;
+    }
+
+    public void setEqptName(String eqptName) {
+        this.eqptName = eqptName;
+    }
+
+    public String getEqptSpec() {
+        return eqptSpec;
+    }
+
+    public void setEqptSpec(String eqptSpec) {
+        this.eqptSpec = eqptSpec;
+    }
+
+    public Long getRatedVoltage() {
+        return ratedVoltage;
+    }
+
+    public void setRatedVoltage(Long ratedVoltage) {
+        this.ratedVoltage = ratedVoltage;
+    }
+
+    public Long getRatedCurrent() {
+        return ratedCurrent;
+    }
+
+    public void setRatedCurrent(Long ratedCurrent) {
+        this.ratedCurrent = ratedCurrent;
+    }
+
+    public String getParentEqpt() {
+        return parentEqpt;
+    }
+
+    public void setParentEqpt(String parentEqpt) {
+        this.parentEqpt = parentEqpt;
+    }
+
+    public String getMeterDevice() {
+        return meterDevice;
+    }
+
+    public void setMeterDevice(String meterDevice) {
+        this.meterDevice = meterDevice;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("boxCode", getBoxCode())
+            .append("eqptCode", getEqptCode())
+            .append("extEqptCode", getExtEqptCode())
+            .append("eqptType", getEqptType())
+            .append("eqptSpec", getEqptSpec())
+            .append("ratedVoltage", getRatedVoltage())
+            .append("ratedCurrent", getRatedCurrent())
+            .append("parentEqpt", getParentEqpt())
+            .append("meterDevice", getMeterDevice())
+            .toString();
+    }
+}

+ 61 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/EleceqptTypeMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.ems.mapper;
+
+import java.util.List;
+import com.ruoyi.ems.domain.ElecEqptType;
+
+/**
+ * 动力柜电器设备类型Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+public interface EleceqptTypeMapper
+{
+    /**
+     * 查询动力柜电器设备类型
+     * 
+     * @param id 动力柜电器设备类型主键
+     * @return 动力柜电器设备类型
+     */
+     ElecEqptType selectElecEqptTypeById(Long id);
+
+    /**
+     * 查询动力柜电器设备类型列表
+     * 
+     * @param boxEleceqptType 动力柜电器设备类型
+     * @return 动力柜电器设备类型集合
+     */
+     List<ElecEqptType> selectElecEqptTypeList(ElecEqptType boxEleceqptType);
+
+    /**
+     * 新增动力柜电器设备类型
+     * 
+     * @param boxEleceqptType 动力柜电器设备类型
+     * @return 结果
+     */
+     int insertElecEqptType(ElecEqptType boxEleceqptType);
+
+    /**
+     * 修改动力柜电器设备类型
+     * 
+     * @param boxEleceqptType 动力柜电器设备类型
+     * @return 结果
+     */
+     int updateElecEqptType(ElecEqptType boxEleceqptType);
+
+    /**
+     * 删除动力柜电器设备类型
+     * 
+     * @param id 动力柜电器设备类型主键
+     * @return 结果
+     */
+     int deleteElecEqptTypeById(Long id);
+
+    /**
+     * 批量删除动力柜电器设备类型
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+     int deleteElecEqptTypeByIds(Long[] ids);
+}

+ 79 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/PowerBoxElecEqptMapper.java

@@ -0,0 +1,79 @@
+package com.ruoyi.ems.mapper;
+
+import com.ruoyi.ems.domain.PowerBoxElecEqpt;
+
+import java.util.List;
+
+/**
+ * 动力箱柜电气设备Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+public interface PowerBoxElecEqptMapper {
+    /**
+     * 查询动力箱柜电气设备
+     *
+     * @param id 动力箱柜电气设备主键
+     * @return 动力箱柜电气设备
+     */
+    PowerBoxElecEqpt selectBoxElecEqptById(Long id);
+
+    /**
+     * 查询动力箱柜电气设备列表
+     *
+     * @param boxElecEqpt 动力箱柜电气设备
+     * @return 动力箱柜电气设备集合
+     */
+    List<PowerBoxElecEqpt> selectBoxElecEqptList(PowerBoxElecEqpt boxElecEqpt);
+
+    /**
+     * 查询动力箱柜电气设备列表
+     *
+     * @param boxCode 动力箱柜编码
+     * @return 动力箱柜电气设备集合
+     */
+    List<PowerBoxElecEqpt> selectByBoxCode(String boxCode);
+
+    /**
+     * 新增动力箱柜电气设备
+     *
+     * @param boxElecEqpt 动力箱柜电气设备
+     * @return 结果
+     */
+    int insertBoxElecEqpt(PowerBoxElecEqpt boxElecEqpt);
+
+    /**
+     * 批量-新增动力箱柜电气设备
+     *
+     * @param list 动力箱柜电气设备列表
+     * @return 结果
+     */
+    int insertBatch(List<PowerBoxElecEqpt> list);
+
+    /**
+     * 修改动力箱柜电气设备
+     *
+     * @param boxElecEqpt 动力箱柜电气设备
+     * @return 结果
+     */
+    int updateBoxElecEqpt(PowerBoxElecEqpt boxElecEqpt);
+
+    /**
+     * 删除动力箱柜电气设备
+     *
+     * @param id 动力箱柜电气设备主键
+     * @return 结果
+     */
+    int deleteBoxElecEqptById(Long id);
+
+    int deleteByBoxCode(String boxCode);
+
+    /**
+     * 批量删除动力箱柜电气设备
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteBoxElecEqptByIds(Long[] ids);
+}

+ 61 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/PowerBoxMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.ems.mapper;
+
+import java.util.List;
+import com.ruoyi.ems.domain.PowerBox;
+
+/**
+ * 动力箱柜Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+public interface PowerBoxMapper
+{
+    /**
+     * 查询动力箱柜
+     * 
+     * @param id 动力箱柜主键
+     * @return 动力箱柜
+     */
+     PowerBox selectPowerBoxById(Long id);
+
+    /**
+     * 查询动力箱柜列表
+     * 
+     * @param powerBox 动力箱柜
+     * @return 动力箱柜集合
+     */
+     List<PowerBox> selectPowerBoxList(PowerBox powerBox);
+
+    /**
+     * 新增动力箱柜
+     * 
+     * @param powerBox 动力箱柜
+     * @return 结果
+     */
+     int insertPowerBox(PowerBox powerBox);
+
+    /**
+     * 修改动力箱柜
+     * 
+     * @param powerBox 动力箱柜
+     * @return 结果
+     */
+     int updatePowerBox(PowerBox powerBox);
+
+    /**
+     * 删除动力箱柜
+     * 
+     * @param id 动力箱柜主键
+     * @return 结果
+     */
+     int deletePowerBoxById(Long id);
+
+    /**
+     * 批量删除动力箱柜
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+     int deletePowerBoxByIds(Long[] ids);
+}

+ 61 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/PvPriceConfigMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.ems.mapper;
+
+import com.ruoyi.ems.domain.ElecPvPriceConfig;
+
+import java.util.List;
+
+/**
+ * 光伏电价配置Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-08-19
+ */
+public interface PvPriceConfigMapper {
+    /**
+     * 查询光伏电价配置
+     *
+     * @param id 光伏电价配置主键
+     * @return 光伏电价配置
+     */
+    ElecPvPriceConfig selectPvPriceConfigById(Long id);
+
+    /**
+     * 查询光伏电价配置列表
+     *
+     * @param pvPriceConfig 光伏电价配置
+     * @return 光伏电价配置集合
+     */
+    List<ElecPvPriceConfig> selectPvPriceConfigList(ElecPvPriceConfig pvPriceConfig);
+
+    /**
+     * 新增光伏电价配置
+     *
+     * @param pvPriceConfig 光伏电价配置
+     * @return 结果
+     */
+    int insertPvPriceConfig(ElecPvPriceConfig pvPriceConfig);
+
+    /**
+     * 修改光伏电价配置
+     *
+     * @param pvPriceConfig 光伏电价配置
+     * @return 结果
+     */
+    int updatePvPriceConfig(ElecPvPriceConfig pvPriceConfig);
+
+    /**
+     * 删除光伏电价配置
+     *
+     * @param id 光伏电价配置主键
+     * @return 结果
+     */
+    int deletePvPriceConfigById(Long id);
+
+    /**
+     * 批量删除光伏电价配置
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deletePvPriceConfigByIds(Long[] ids);
+}

+ 61 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IElecEqptTypeService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.ems.service;
+
+import java.util.List;
+import com.ruoyi.ems.domain.ElecEqptType;
+
+/**
+ * 动力柜电器设备类型Service接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+public interface IElecEqptTypeService
+{
+    /**
+     * 查询动力柜电器设备类型
+     * 
+     * @param id 动力柜电器设备类型主键
+     * @return 动力柜电器设备类型
+     */
+     ElecEqptType selectElecEqptTypeById(Long id);
+
+    /**
+     * 查询动力柜电器设备类型列表
+     * 
+     * @param eleceqptType 动力柜电器设备类型
+     * @return 动力柜电器设备类型集合
+     */
+     List<ElecEqptType> selectElecEqptTypeList(ElecEqptType eleceqptType);
+
+    /**
+     * 新增动力柜电器设备类型
+     * 
+     * @param eleceqptType 动力柜电器设备类型
+     * @return 结果
+     */
+     int insertElecEqptType(ElecEqptType eleceqptType);
+
+    /**
+     * 修改动力柜电器设备类型
+     * 
+     * @param eleceqptType 动力柜电器设备类型
+     * @return 结果
+     */
+     int updateElecEqptType(ElecEqptType eleceqptType);
+
+    /**
+     * 批量删除动力柜电器设备类型
+     * 
+     * @param ids 需要删除的动力柜电器设备类型主键集合
+     * @return 结果
+     */
+     int deleteElecEqptTypeByIds(Long[] ids);
+
+    /**
+     * 删除动力柜电器设备类型信息
+     * 
+     * @param id 动力柜电器设备类型主键
+     * @return 结果
+     */
+     int deleteElecEqptTypeById(Long id);
+}

+ 79 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IPowerBoxElecEqptService.java

@@ -0,0 +1,79 @@
+package com.ruoyi.ems.service;
+
+import java.util.List;
+
+import com.ruoyi.ems.domain.PowerBoxElecEqpt;
+
+/**
+ * 动力箱柜电气设备Service接口
+ *
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+public interface IPowerBoxElecEqptService {
+    /**
+     * 查询动力箱柜电气设备
+     *
+     * @param id 动力箱柜电气设备主键
+     * @return 动力箱柜电气设备
+     */
+    PowerBoxElecEqpt selectBoxElecEqptById(Long id);
+
+    /**
+     * 查询动力箱柜电气设备列表
+     *
+     * @param boxCode 动力箱编码
+     * @return 动力箱柜电气设备集合
+     */
+    List<PowerBoxElecEqpt> selectByBoxCode(String boxCode);
+
+    /**
+     * 查询动力箱柜电气设备列表
+     *
+     * @param boxElecEqpt 动力箱柜电气设备
+     * @return 动力箱柜电气设备集合
+     */
+    List<PowerBoxElecEqpt> selectBoxElecEqptList(PowerBoxElecEqpt boxElecEqpt);
+
+    /**
+     * 新增动力箱柜电气设备
+     *
+     * @param boxElecEqpt 动力箱柜电气设备
+     * @return 结果
+     */
+    int insertBoxElecEqpt(PowerBoxElecEqpt boxElecEqpt);
+
+    /**
+     * 批量-新增动力箱柜电气设备
+     *
+     * @param boxElecEqpts 动力箱柜电气设备列表
+     * @return 结果
+     */
+    int insertBatch(List<PowerBoxElecEqpt> boxElecEqpts);
+
+    /**
+     * 修改动力箱柜电气设备
+     *
+     * @param boxElecEqpt 动力箱柜电气设备
+     * @return 结果
+     */
+    int updateBoxElecEqpt(PowerBoxElecEqpt boxElecEqpt);
+
+    /**
+     * 批量删除动力箱柜电气设备
+     *
+     * @param ids 需要删除的动力箱柜电气设备主键集合
+     * @return 结果
+     */
+    int deleteBoxElecEqptByIds(Long[] ids);
+
+    /**
+     * 删除动力箱柜电气设备信息
+     *
+     * @param id 动力箱柜电气设备主键
+     * @return 结果
+     */
+    int deleteBoxElecEqptById(Long id);
+
+    int deleteByBoxCode(String boxCode);
+}

+ 62 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IPowerBoxService.java

@@ -0,0 +1,62 @@
+package com.ruoyi.ems.service;
+
+import java.util.List;
+
+import com.ruoyi.ems.domain.PowerBox;
+
+/**
+ * 动力箱柜Service接口
+ * 
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+public interface IPowerBoxService
+{
+    /**
+     * 查询动力箱柜
+     * 
+     * @param id 动力箱柜主键
+     * @return 动力箱柜
+     */
+     PowerBox selectPowerBoxById(Long id);
+
+    /**
+     * 查询动力箱柜列表
+     * 
+     * @param powerBox 动力箱柜
+     * @return 动力箱柜集合
+     */
+     List<PowerBox> selectPowerBoxList(PowerBox powerBox);
+
+    /**
+     * 新增动力箱柜
+     * 
+     * @param powerBox 动力箱柜
+     * @return 结果
+     */
+     int insertPowerBox(PowerBox powerBox);
+
+    /**
+     * 修改动力箱柜
+     * 
+     * @param powerBox 动力箱柜
+     * @return 结果
+     */
+     int updatePowerBox(PowerBox powerBox);
+
+    /**
+     * 批量删除动力箱柜
+     * 
+     * @param ids 需要删除的动力箱柜主键集合
+     * @return 结果
+     */
+     int deletePowerBoxByIds(Long[] ids);
+
+    /**
+     * 删除动力箱柜信息
+     * 
+     * @param id 动力箱柜主键
+     * @return 结果
+     */
+     int deletePowerBoxById(Long id);
+}

+ 61 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IPvPriceConfigService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.ems.service;
+
+import com.ruoyi.ems.domain.ElecPvPriceConfig;
+
+import java.util.List;
+
+/**
+ * 光伏电价配置Service接口
+ *
+ * @author ruoyi
+ * @date 2024-08-19
+ */
+public interface IPvPriceConfigService {
+    /**
+     * 查询光伏电价配置
+     *
+     * @param id 光伏电价配置主键
+     * @return 光伏电价配置
+     */
+    ElecPvPriceConfig selectPvPriceConfigById(Long id);
+
+    /**
+     * 查询光伏电价配置列表
+     *
+     * @param elecPvPriceConfig 光伏电价配置
+     * @return 光伏电价配置集合
+     */
+    List<ElecPvPriceConfig> selectPvPriceConfigList(ElecPvPriceConfig elecPvPriceConfig);
+
+    /**
+     * 新增光伏电价配置
+     *
+     * @param elecPvPriceConfig 光伏电价配置
+     * @return 结果
+     */
+    int insertPvPriceConfig(ElecPvPriceConfig elecPvPriceConfig);
+
+    /**
+     * 修改光伏电价配置
+     *
+     * @param elecPvPriceConfig 光伏电价配置
+     * @return 结果
+     */
+    int updatePvPriceConfig(ElecPvPriceConfig elecPvPriceConfig);
+
+    /**
+     * 批量删除光伏电价配置
+     *
+     * @param ids 需要删除的光伏电价配置主键集合
+     * @return 结果
+     */
+    int deletePvPriceConfigByIds(Long[] ids);
+
+    /**
+     * 删除光伏电价配置信息
+     *
+     * @param id 光伏电价配置主键
+     * @return 结果
+     */
+    int deletePvPriceConfigById(Long id);
+}

+ 94 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/ElecEqptTypeServiceImpl.java

@@ -0,0 +1,94 @@
+package com.ruoyi.ems.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.ems.domain.ElecEqptType;
+import com.ruoyi.ems.mapper.EleceqptTypeMapper;
+import com.ruoyi.ems.service.IElecEqptTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 动力柜电器设备类型Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+@Service
+public class ElecEqptTypeServiceImpl implements IElecEqptTypeService
+{
+    @Autowired
+    private EleceqptTypeMapper elecEqptTypeMapper;
+
+    /**
+     * 查询动力柜电器设备类型
+     * 
+     * @param id 动力柜电器设备类型主键
+     * @return 动力柜电器设备类型
+     */
+    @Override
+    public ElecEqptType selectElecEqptTypeById(Long id)
+    {
+        return elecEqptTypeMapper.selectElecEqptTypeById(id);
+    }
+
+    /**
+     * 查询动力柜电器设备类型列表
+     * 
+     * @param eleceqptType 动力柜电器设备类型
+     * @return 动力柜电器设备类型
+     */
+    @Override
+    public List<ElecEqptType> selectElecEqptTypeList(ElecEqptType eleceqptType)
+    {
+        return elecEqptTypeMapper.selectElecEqptTypeList(eleceqptType);
+    }
+
+    /**
+     * 新增动力柜电器设备类型
+     * 
+     * @param eleceqptType 动力柜电器设备类型
+     * @return 结果
+     */
+    @Override
+    public int insertElecEqptType(ElecEqptType eleceqptType)
+    {
+        return elecEqptTypeMapper.insertElecEqptType(eleceqptType);
+    }
+
+    /**
+     * 修改动力柜电器设备类型
+     * 
+     * @param eleceqptType 动力柜电器设备类型
+     * @return 结果
+     */
+    @Override
+    public int updateElecEqptType(ElecEqptType eleceqptType)
+    {
+        return elecEqptTypeMapper.updateElecEqptType(eleceqptType);
+    }
+
+    /**
+     * 批量删除动力柜电器设备类型
+     * 
+     * @param ids 需要删除的动力柜电器设备类型主键
+     * @return 结果
+     */
+    @Override
+    public int deleteElecEqptTypeByIds(Long[] ids)
+    {
+        return elecEqptTypeMapper.deleteElecEqptTypeByIds(ids);
+    }
+
+    /**
+     * 删除动力柜电器设备类型信息
+     * 
+     * @param id 动力柜电器设备类型主键
+     * @return 结果
+     */
+    @Override
+    public int deleteElecEqptTypeById(Long id)
+    {
+        return elecEqptTypeMapper.deleteElecEqptTypeById(id);
+    }
+}

+ 116 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/PowerBoxElecEqptServiceImpl.java

@@ -0,0 +1,116 @@
+package com.ruoyi.ems.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.ems.domain.PowerBoxElecEqpt;
+import com.ruoyi.ems.mapper.PowerBoxElecEqptMapper;
+import com.ruoyi.ems.service.IPowerBoxElecEqptService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 动力箱柜电气设备Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+@Service
+public class PowerBoxElecEqptServiceImpl implements IPowerBoxElecEqptService
+{
+    @Autowired
+    private PowerBoxElecEqptMapper boxElecEqptMapper;
+
+    /**
+     * 查询动力箱柜电气设备
+     * 
+     * @param id 动力箱柜电气设备主键
+     * @return 动力箱柜电气设备
+     */
+    @Override
+    public PowerBoxElecEqpt selectBoxElecEqptById(Long id)
+    {
+        return boxElecEqptMapper.selectBoxElecEqptById(id);
+    }
+
+    @Override
+    public List<PowerBoxElecEqpt> selectByBoxCode(String boxCode) {
+        return boxElecEqptMapper.selectByBoxCode(boxCode);
+    }
+
+    /**
+     * 查询动力箱柜电气设备列表
+     * 
+     * @param boxElecEqpt 动力箱柜电气设备
+     * @return 动力箱柜电气设备
+     */
+    @Override
+    public List<PowerBoxElecEqpt> selectBoxElecEqptList(PowerBoxElecEqpt boxElecEqpt)
+    {
+        return boxElecEqptMapper.selectBoxElecEqptList(boxElecEqpt);
+    }
+
+    /**
+     * 新增动力箱柜电气设备
+     * 
+     * @param boxElecEqpt 动力箱柜电气设备
+     * @return 结果
+     */
+    @Override
+    public int insertBoxElecEqpt(PowerBoxElecEqpt boxElecEqpt)
+    {
+        return boxElecEqptMapper.insertBoxElecEqpt(boxElecEqpt);
+    }
+
+    /**
+     * 批量-新增动力箱柜电气设备
+     *
+     * @param boxElecEqpts 动力箱柜电气设备列表
+     * @return 结果
+     */
+    @Override
+    public int insertBatch(List<PowerBoxElecEqpt> boxElecEqpts) {
+        return boxElecEqptMapper.insertBatch(boxElecEqpts);
+    }
+
+    /**
+     * 修改动力箱柜电气设备
+     * 
+     * @param boxElecEqpt 动力箱柜电气设备
+     * @return 结果
+     */
+    @Override
+    public int updateBoxElecEqpt(PowerBoxElecEqpt boxElecEqpt)
+    {
+        return boxElecEqptMapper.updateBoxElecEqpt(boxElecEqpt);
+    }
+
+    /**
+     * 批量删除动力箱柜电气设备
+     * 
+     * @param ids 需要删除的动力箱柜电气设备主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBoxElecEqptByIds(Long[] ids)
+    {
+        return boxElecEqptMapper.deleteBoxElecEqptByIds(ids);
+    }
+
+    /**
+     * 删除动力箱柜电气设备信息
+     * 
+     * @param id 动力箱柜电气设备主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBoxElecEqptById(Long id)
+    {
+        return boxElecEqptMapper.deleteBoxElecEqptById(id);
+    }
+
+    @Override
+    public int deleteByBoxCode(String boxCode)
+    {
+        return boxElecEqptMapper.deleteByBoxCode(boxCode);
+    }
+}

+ 149 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/PowerBoxServiceImpl.java

@@ -0,0 +1,149 @@
+package com.ruoyi.ems.service.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import com.ruoyi.ems.domain.EmsCls;
+import com.ruoyi.ems.domain.PowerBox;
+import com.ruoyi.ems.domain.PowerBoxElecEqpt;
+import com.ruoyi.ems.mapper.PowerBoxMapper;
+import com.ruoyi.ems.service.IPowerBoxElecEqptService;
+import com.ruoyi.ems.service.IPowerBoxService;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 动力箱柜Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-08-20
+ */
+@Service
+public class PowerBoxServiceImpl implements IPowerBoxService {
+    @Autowired
+    private PowerBoxMapper powerBoxMapper;
+
+    @Autowired
+    private IPowerBoxElecEqptService elecEqptService;
+
+    /**
+     * 查询动力箱柜
+     *
+     * @param id 动力箱柜主键
+     * @return 动力箱柜
+     */
+    @Override
+    public PowerBox selectPowerBoxById(Long id) {
+        PowerBox powerBox = powerBoxMapper.selectPowerBoxById(id);
+
+        // 查询箱体内部电气设备
+        if (null != powerBox) {
+            List<PowerBoxElecEqpt> eqptList = elecEqptService.selectByBoxCode(powerBox.getBoxCode());
+            powerBox.setElecEqptList(eqptList);
+        }
+
+        return powerBox;
+    }
+
+    /**
+     * 查询动力箱柜列表
+     *
+     * @param powerBox 动力箱柜
+     * @return 动力箱柜
+     */
+    @Override
+    public List<PowerBox> selectPowerBoxList(PowerBox param) {
+        List<PowerBox> retList = powerBoxMapper.selectPowerBoxList(param);
+
+        if (CollectionUtils.isNotEmpty(retList)) {
+            List<PowerBoxElecEqpt> eqptList = elecEqptService.selectBoxElecEqptList(new PowerBoxElecEqpt());
+            Map<String, List<PowerBoxElecEqpt>> groupedByParent = eqptList.stream()
+                .collect(Collectors.groupingBy(PowerBoxElecEqpt::getBoxCode));
+
+            for (PowerBox powerBox : retList) {
+                if (groupedByParent.containsKey(powerBox.getBoxCode())) {
+                    powerBox.setElecEqptList(groupedByParent.get(powerBox.getBoxCode()));
+                }
+                else {
+                    powerBox.setElecEqptList(new ArrayList<>());
+                }
+            }
+        }
+
+        return retList;
+    }
+
+    /**
+     * 新增动力箱柜
+     *
+     * @param powerBox 动力箱柜
+     * @return 结果
+     */
+    @Override
+    public int insertPowerBox(PowerBox powerBox) {
+        elecEqptService.deleteByBoxCode(powerBox.getBoxCode());
+        elecEqptService.insertBatch(powerBox.getElecEqptList());
+        return powerBoxMapper.insertPowerBox(powerBox);
+    }
+
+    /**
+     * 修改动力箱柜
+     *
+     * @param powerBox 动力箱柜
+     * @return 结果
+     */
+    @Override
+    public int updatePowerBox(PowerBox powerBox) {
+        List<PowerBoxElecEqpt> eqptList = powerBox.getElecEqptList();
+
+        if (CollectionUtils.isNotEmpty(eqptList)) {
+            elecEqptService.deleteByBoxCode(powerBox.getBoxCode());
+            elecEqptService.insertBatch(eqptList);
+        }
+        else {
+            elecEqptService.deleteByBoxCode(powerBox.getBoxCode());
+        }
+
+        return powerBoxMapper.updatePowerBox(powerBox);
+    }
+
+    /**
+     * 批量删除动力箱柜
+     *
+     * @param ids 需要删除的动力箱柜主键
+     * @return 结果
+     */
+    @Override
+    public int deletePowerBoxByIds(Long[] ids) {
+        for (Long id : ids) {
+            PowerBox powerBox = powerBoxMapper.selectPowerBoxById(id);
+
+            if (null != powerBox) {
+                elecEqptService.deleteByBoxCode(powerBox.getBoxCode());
+            }
+        }
+
+        return powerBoxMapper.deletePowerBoxByIds(ids);
+    }
+
+    /**
+     * 删除动力箱柜信息
+     *
+     * @param id 动力箱柜主键
+     * @return 结果
+     */
+    @Override
+    public int deletePowerBoxById(Long id) {
+        PowerBox powerBox = powerBoxMapper.selectPowerBoxById(id);
+
+        if (null != powerBox) {
+            elecEqptService.deleteByBoxCode(powerBox.getBoxCode());
+        }
+
+        return powerBoxMapper.deletePowerBoxById(id);
+    }
+}

+ 94 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/PvPriceConfigServiceImpl.java

@@ -0,0 +1,94 @@
+package com.ruoyi.ems.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.ems.domain.ElecPvPriceConfig;
+import com.ruoyi.ems.mapper.PvPriceConfigMapper;
+import com.ruoyi.ems.service.IPvPriceConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 光伏电价配置Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-08-19
+ */
+@Service
+public class PvPriceConfigServiceImpl implements IPvPriceConfigService
+{
+    @Autowired
+    private PvPriceConfigMapper pvPriceConfigMapper;
+
+    /**
+     * 查询光伏电价配置
+     * 
+     * @param id 光伏电价配置主键
+     * @return 光伏电价配置
+     */
+    @Override
+    public ElecPvPriceConfig selectPvPriceConfigById(Long id)
+    {
+        return pvPriceConfigMapper.selectPvPriceConfigById(id);
+    }
+
+    /**
+     * 查询光伏电价配置列表
+     * 
+     * @param elecPvPriceConfig 光伏电价配置
+     * @return 光伏电价配置
+     */
+    @Override
+    public List<ElecPvPriceConfig> selectPvPriceConfigList(ElecPvPriceConfig elecPvPriceConfig)
+    {
+        return pvPriceConfigMapper.selectPvPriceConfigList(elecPvPriceConfig);
+    }
+
+    /**
+     * 新增光伏电价配置
+     * 
+     * @param elecPvPriceConfig 光伏电价配置
+     * @return 结果
+     */
+    @Override
+    public int insertPvPriceConfig(ElecPvPriceConfig elecPvPriceConfig)
+    {
+        return pvPriceConfigMapper.insertPvPriceConfig(elecPvPriceConfig);
+    }
+
+    /**
+     * 修改光伏电价配置
+     * 
+     * @param elecPvPriceConfig 光伏电价配置
+     * @return 结果
+     */
+    @Override
+    public int updatePvPriceConfig(ElecPvPriceConfig elecPvPriceConfig)
+    {
+        return pvPriceConfigMapper.updatePvPriceConfig(elecPvPriceConfig);
+    }
+
+    /**
+     * 批量删除光伏电价配置
+     * 
+     * @param ids 需要删除的光伏电价配置主键
+     * @return 结果
+     */
+    @Override
+    public int deletePvPriceConfigByIds(Long[] ids)
+    {
+        return pvPriceConfigMapper.deletePvPriceConfigByIds(ids);
+    }
+
+    /**
+     * 删除光伏电价配置信息
+     * 
+     * @param id 光伏电价配置主键
+     * @return 结果
+     */
+    @Override
+    public int deletePvPriceConfigById(Long id)
+    {
+        return pvPriceConfigMapper.deletePvPriceConfigById(id);
+    }
+}

+ 61 - 0
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/EleceqptTypeMapper.xml

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.ems.mapper.EleceqptTypeMapper">
+    
+    <resultMap type="com.ruoyi.ems.domain.ElecEqptType" id="elecEqptTypeResult">
+        <result property="id"    column="id"    />
+        <result property="typeCode"    column="type_code"    />
+        <result property="typeName"    column="type_name"    />
+    </resultMap>
+
+    <sql id="selectBoxEleceqptTypeVo">
+        select id, type_code, type_name from dim_box_eleceqpt_type
+    </sql>
+
+    <select id="selectElecEqptTypeList" parameterType="com.ruoyi.ems.domain.ElecEqptType" resultMap="elecEqptTypeResult">
+        <include refid="selectBoxEleceqptTypeVo"/>
+        <where>  
+            <if test="typeCode != null  and typeCode != ''"> and type_code = #{typeCode}</if>
+            <if test="typeName != null  and typeName != ''"> and type_name like concat('%', #{typeName}, '%')</if>
+        </where>
+    </select>
+    
+    <select id="selectElecEqptTypeById" parameterType="Long" resultMap="elecEqptTypeResult">
+        <include refid="selectBoxEleceqptTypeVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertElecEqptType" parameterType="com.ruoyi.ems.domain.ElecEqptType" useGeneratedKeys="true" keyProperty="id">
+        insert into dim_box_eleceqpt_type
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="typeCode != null and typeCode != ''">type_code,</if>
+            <if test="typeName != null and typeName != ''">type_name,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="typeCode != null and typeCode != ''">#{typeCode},</if>
+            <if test="typeName != null and typeName != ''">#{typeName},</if>
+         </trim>
+    </insert>
+
+    <update id="updateElecEqptType" parameterType="com.ruoyi.ems.domain.ElecEqptType">
+        update dim_box_eleceqpt_type
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="typeCode != null and typeCode != ''">type_code = #{typeCode},</if>
+            <if test="typeName != null and typeName != ''">type_name = #{typeName},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteElecEqptTypeById" parameterType="Long">
+        delete from dim_box_eleceqpt_type where id = #{id}
+    </delete>
+
+    <delete id="deleteElecEqptTypeByIds" parameterType="String">
+        delete from dim_box_eleceqpt_type where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 118 - 0
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/PowerBoxElecEqptMapper.xml

@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.ems.mapper.PowerBoxElecEqptMapper">
+    
+    <resultMap type="com.ruoyi.ems.domain.PowerBoxElecEqpt" id="boxElecEqptResult">
+        <result property="id"           column="id"    />
+        <result property="boxCode"      column="box_code"    />
+        <result property="eqptCode"     column="eqpt_code"    />
+        <result property="eqptName"     column="eqpt_name"    />
+        <result property="extEqptCode"  column="ext_eqpt_code"    />
+        <result property="eqptType"     column="eqpt_type"    />
+        <result property="eqptName"     column="eqpt_name"    />
+        <result property="eqptSpec"     column="eqpt_spec"    />
+        <result property="ratedVoltage" column="rated_voltage"    />
+        <result property="ratedCurrent" column="rated_current"    />
+        <result property="parentEqpt"   column="parent_eqpt"    />
+        <result property="meterDevice"  column="meter_device"    />
+    </resultMap>
+
+    <sql id="selectBoxElecEqptVo">
+        select
+            bee.id, bee.box_code, bee.eqpt_code, bee.ext_eqpt_code, bee.eqpt_type, bet.type_name as eqpt_name, bee.eqpt_spec, bee.rated_voltage, bee.rated_current, bee.parent_eqpt, bee.meter_device
+        from adm_box_elec_eqpt bee
+            LEFT JOIN dim_box_eleceqpt_type bet ON bee.eqpt_type = bet.type_code
+    </sql>
+
+    <select id="selectBoxElecEqptList" parameterType="com.ruoyi.ems.domain.PowerBoxElecEqpt" resultMap="boxElecEqptResult">
+        <include refid="selectBoxElecEqptVo"/>
+        <where>  
+            <if test="boxCode != null  and boxCode != ''"> and bee.box_code = #{boxCode}</if>
+            <if test="eqptCode != null  and eqptCode != ''"> and bee.eqpt_code = #{eqptCode}</if>
+            <if test="extEqptCode != null  and extEqptCode != ''"> and bee.ext_eqpt_code = #{extEqptCode}</if>
+            <if test="eqptType != null  and eqptType != ''"> and bee.eqpt_type = #{eqptType}</if>
+            <if test="eqptSpec != null  and eqptSpec != ''"> and bee.eqpt_spec = #{eqptSpec}</if>
+            <if test="ratedVoltage != null "> and bee.rated_voltage = #{ratedVoltage}</if>
+            <if test="ratedCurrent != null "> and bee.rated_current = #{ratedCurrent}</if>
+            <if test="parentEqpt != null  and parentEqpt != ''"> and bee.parent_eqpt = #{parentEqpt}</if>
+            <if test="meterDevice != null  and meterDevice != ''"> and bee.meter_device = #{meterDevice}</if>
+        </where>
+    </select>
+
+    <select id="selectByBoxCode" parameterType="java.lang.String" resultMap="boxElecEqptResult">
+        <include refid="selectBoxElecEqptVo"/>
+        where bee.box_code = #{code}
+    </select>
+    
+    <select id="selectBoxElecEqptById" parameterType="Long" resultMap="boxElecEqptResult">
+        <include refid="selectBoxElecEqptVo"/>
+        where bee.id = #{id}
+    </select>
+        
+    <insert id="insertBoxElecEqpt" parameterType="com.ruoyi.ems.domain.PowerBoxElecEqpt" useGeneratedKeys="true" keyProperty="id">
+        insert into adm_box_elec_eqpt
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="boxCode != null and boxCode != ''">box_code,</if>
+            <if test="eqptCode != null and eqptCode != ''">eqpt_code,</if>
+            <if test="extEqptCode != null">ext_eqpt_code,</if>
+            <if test="eqptType != null and eqptType != ''">eqpt_type,</if>
+            <if test="eqptSpec != null">eqpt_spec,</if>
+            <if test="ratedVoltage != null">rated_voltage,</if>
+            <if test="ratedCurrent != null">rated_current,</if>
+            <if test="parentEqpt != null">parent_eqpt,</if>
+            <if test="meterDevice != null">meter_device,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="boxCode != null and boxCode != ''">#{boxCode},</if>
+            <if test="eqptCode != null and eqptCode != ''">#{eqptCode},</if>
+            <if test="extEqptCode != null">#{extEqptCode},</if>
+            <if test="eqptType != null and eqptType != ''">#{eqptType},</if>
+            <if test="eqptSpec != null">#{eqptSpec},</if>
+            <if test="ratedVoltage != null">#{ratedVoltage},</if>
+            <if test="ratedCurrent != null">#{ratedCurrent},</if>
+            <if test="parentEqpt != null">#{parentEqpt},</if>
+            <if test="meterDevice != null">#{meterDevice},</if>
+         </trim>
+    </insert>
+
+    <insert id="insertBatch" parameterType="java.util.List" >
+        insert into adm_box_elec_eqpt (box_code, eqpt_code, ext_eqpt_code, eqpt_type, eqpt_spec, rated_voltage, rated_current, parent_eqpt, meter_device)
+        values
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.boxCode}, #{item.eqptCode}, #{item.extEqptCode}, #{item.eqptType}, #{item.eqptSpec}, #{item.ratedVoltage}, #{item.ratedCurrent}, #{item.parentEqpt}, #{item.meterDevice})
+        </foreach>
+    </insert>
+
+    <update id="updateBoxElecEqpt" parameterType="com.ruoyi.ems.domain.PowerBoxElecEqpt">
+        update adm_box_elec_eqpt
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="boxCode != null and boxCode != ''">box_code = #{boxCode},</if>
+            <if test="eqptCode != null and eqptCode != ''">eqpt_code = #{eqptCode},</if>
+            <if test="extEqptCode != null">ext_eqpt_code = #{extEqptCode},</if>
+            <if test="eqptType != null and eqptType != ''">eqpt_type = #{eqptType},</if>
+            <if test="eqptSpec != null">eqpt_spec = #{eqptSpec},</if>
+            <if test="ratedVoltage != null">rated_voltage = #{ratedVoltage},</if>
+            <if test="ratedCurrent != null">rated_current = #{ratedCurrent},</if>
+            <if test="parentEqpt != null">parent_eqpt = #{parentEqpt},</if>
+            <if test="meterDevice != null">meter_device = #{meterDevice},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBoxElecEqptById" parameterType="Long">
+        delete from adm_box_elec_eqpt where id = #{id}
+    </delete>
+
+    <delete id="deleteByBoxCode" parameterType="String">
+        delete from adm_box_elec_eqpt where box_code = #{code}
+    </delete>
+
+    <delete id="deleteBoxElecEqptByIds" parameterType="String">
+        delete from adm_box_elec_eqpt where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 91 - 0
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/PowerBoxMapper.xml

@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.ems.mapper.PowerBoxMapper">
+    
+    <resultMap type="com.ruoyi.ems.domain.PowerBox" id="powerBoxResult">
+        <result property="id"    column="id"    />
+        <result property="boxCode"    column="box_code"    />
+        <result property="boxType"    column="box_type"    />
+        <result property="areaCode"    column="area_code"    />
+        <result property="areaName"    column="area_name"    />
+        <result property="areaShortName"    column="area_short_name"    />
+        <result property="location"    column="location"    />
+        <result property="boxSize"    column="box_size"    />
+        <result property="gatewayAddr"    column="gateway_addr"    />
+        <result property="gatewayPort"    column="gateway_port"    />
+    </resultMap>
+
+    <sql id="selectPowerBoxVo">
+        select
+            pb.id, pb.box_code, pb.box_type, pb.area_code, sa.area_name, sa.short_name as area_short_name, pb.location, pb.box_size, pb.gateway_addr, pb.gateway_port
+        from adm_power_box pb
+          LEFT JOIN adm_service_area sa on pb.area_code = sa.area_code
+    </sql>
+
+    <select id="selectPowerBoxList" parameterType="com.ruoyi.ems.domain.PowerBox" resultMap="powerBoxResult">
+        <include refid="selectPowerBoxVo"/>
+        <where>  
+            <if test="boxCode != null  and boxCode != ''"> and pb.box_code = #{boxCode}</if>
+            <if test="boxType != null "> and pb.box_type = #{boxType}</if>
+            <if test="areaCode != null  and areaCode != ''"> and pb.area_code = #{areaCode}</if>
+            <if test="location != null  and location != ''"> and pb.location = #{location}</if>
+            <if test="boxSize != null  and boxSize != ''"> and pb.box_size = #{boxSize}</if>
+            <if test="gatewayAddr != null  and gatewayAddr != ''"> and pb.gateway_addr = #{gatewayAddr}</if>
+            <if test="gatewayPort != null "> and pb.gateway_port = #{gatewayPort}</if>
+        </where>
+    </select>
+    
+    <select id="selectPowerBoxById" parameterType="Long" resultMap="powerBoxResult">
+        <include refid="selectPowerBoxVo"/>
+        where pb.id = #{id}
+    </select>
+        
+    <insert id="insertPowerBox" parameterType="com.ruoyi.ems.domain.PowerBox" useGeneratedKeys="true" keyProperty="id">
+        insert into adm_power_box
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="boxCode != null and boxCode != ''">box_code,</if>
+            <if test="boxType != null">box_type,</if>
+            <if test="areaCode != null">area_code,</if>
+            <if test="location != null">location,</if>
+            <if test="boxSize != null">box_size,</if>
+            <if test="gatewayAddr != null">gateway_addr,</if>
+            <if test="gatewayPort != null">gateway_port,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="boxCode != null and boxCode != ''">#{boxCode},</if>
+            <if test="boxType != null">#{boxType},</if>
+            <if test="areaCode != null">#{areaCode},</if>
+            <if test="location != null">#{location},</if>
+            <if test="boxSize != null">#{boxSize},</if>
+            <if test="gatewayAddr != null">#{gatewayAddr},</if>
+            <if test="gatewayPort != null">#{gatewayPort},</if>
+         </trim>
+    </insert>
+
+    <update id="updatePowerBox" parameterType="com.ruoyi.ems.domain.PowerBox">
+        update adm_power_box
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="boxCode != null and boxCode != ''">box_code = #{boxCode},</if>
+            <if test="boxType != null">box_type = #{boxType},</if>
+            <if test="areaCode != null">area_code = #{areaCode},</if>
+            <if test="location != null">location = #{location},</if>
+            <if test="boxSize != null">box_size = #{boxSize},</if>
+            <if test="gatewayAddr != null">gateway_addr = #{gatewayAddr},</if>
+            <if test="gatewayPort != null">gateway_port = #{gatewayPort},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deletePowerBoxById" parameterType="Long">
+        delete from adm_power_box where id = #{id}
+    </delete>
+
+    <delete id="deletePowerBoxByIds" parameterType="String">
+        delete from adm_power_box where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 76 - 0
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/PvPriceConfigMapper.xml

@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.ems.mapper.PvPriceConfigMapper">
+    
+    <resultMap type="com.ruoyi.ems.domain.ElecPvPriceConfig" id="pvPriceConfigResult">
+        <result property="id"    column="id"    />
+        <result property="cfgCode"    column="cfg_code"    />
+        <result property="priceName"    column="price_name"    />
+        <result property="objPrice"    column="obj_price"    />
+        <result property="stateSubsidy"    column="state_subsidy"    />
+        <result property="localSubsidy"    column="local_subsidy"    />
+    </resultMap>
+
+    <sql id="selectPvPriceConfigVo">
+        select id, cfg_code, price_name, obj_price, state_subsidy, local_subsidy from sys_pv_price_config
+    </sql>
+
+    <select id="selectPvPriceConfigList" parameterType="com.ruoyi.ems.domain.ElecPvPriceConfig" resultMap="pvPriceConfigResult">
+        <include refid="selectPvPriceConfigVo"/>
+        <where>  
+            <if test="cfgCode != null  and cfgCode != ''"> and cfg_code = #{cfgCode}</if>
+            <if test="priceName != null  and priceName != ''"> and price_name like concat('%', #{priceName}, '%')</if>
+            <if test="objPrice != null "> and obj_price = #{objPrice}</if>
+            <if test="stateSubsidy != null "> and state_subsidy = #{stateSubsidy}</if>
+            <if test="localSubsidy != null "> and local_subsidy = #{localSubsidy}</if>
+        </where>
+    </select>
+    
+    <select id="selectPvPriceConfigById" parameterType="Long" resultMap="pvPriceConfigResult">
+        <include refid="selectPvPriceConfigVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertPvPriceConfig" parameterType="com.ruoyi.ems.domain.ElecPvPriceConfig" useGeneratedKeys="true" keyProperty="id">
+        insert into sys_pv_price_config
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="cfgCode != null and cfgCode != ''">cfg_code,</if>
+            <if test="priceName != null and priceName != ''">price_name,</if>
+            <if test="objPrice != null">obj_price,</if>
+            <if test="stateSubsidy != null">state_subsidy,</if>
+            <if test="localSubsidy != null">local_subsidy,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="cfgCode != null and cfgCode != ''">#{cfgCode},</if>
+            <if test="priceName != null and priceName != ''">#{priceName},</if>
+            <if test="objPrice != null">#{objPrice},</if>
+            <if test="stateSubsidy != null">#{stateSubsidy},</if>
+            <if test="localSubsidy != null">#{localSubsidy},</if>
+         </trim>
+    </insert>
+
+    <update id="updatePvPriceConfig" parameterType="com.ruoyi.ems.domain.ElecPvPriceConfig">
+        update sys_pv_price_config
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="cfgCode != null and cfgCode != ''">cfg_code = #{cfgCode},</if>
+            <if test="priceName != null and priceName != ''">price_name = #{priceName},</if>
+            <if test="objPrice != null">obj_price = #{objPrice},</if>
+            <if test="stateSubsidy != null">state_subsidy = #{stateSubsidy},</if>
+            <if test="localSubsidy != null">local_subsidy = #{localSubsidy},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deletePvPriceConfigById" parameterType="Long">
+        delete from sys_pv_price_config where id = #{id}
+    </delete>
+
+    <delete id="deletePvPriceConfigByIds" parameterType="String">
+        delete from sys_pv_price_config where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 72 - 2
ems-cloud/sql/ems_server.sql

@@ -266,8 +266,8 @@ INSERT INTO `dim_ems_tag` (`tag_model`, `tag_code`, `tag_name`) VALUES ('Area',
 drop table if exists dim_devc_type;
 create table dim_devc_type (
   `id`            bigint(20)      not null auto_increment    comment '序号',
-  `type_code`     int             not null                   comment '标签代码',
-  `type_name`     varchar(128)    not null                   comment '标签名称',
+  `type_code`     int             not null                   comment '类型代码',
+  `type_name`     varchar(128)    not null                   comment '类型名称',
   primary key (`id`),
   unique key ux_devc_type(`type_code`)
 ) engine=innodb auto_increment=1 comment = '设备类型';
@@ -282,6 +282,22 @@ INSERT INTO `dim_devc_type` (`type_code`, `type_name`) VALUES (6, '服务设备'
 INSERT INTO `dim_devc_type` (`type_code`, `type_name`) VALUES (7, '运输设备');
 
 -- ----------------------------
+-- 动力柜电器设备符号
+-- ----------------------------
+drop table if exists dim_box_eleceqpt_type;
+create table dim_box_eleceqpt_type (
+    `id`               bigint(20)      not null auto_increment    comment '序号',
+    `type_code`     varchar(16)     not null                   comment '类型代码',
+    `type_name`     varchar(64)     not null                   comment '类型名称',
+    primary key (`id`),
+    unique key ux_eleceqpt_type(`type_code`)
+) engine=innodb auto_increment=1 comment = '动力柜电器设备类型';
+
+INSERT INTO `dim_box_eleceqpt_type` (`type_code`, `type_name`) VALUES ('QF', '空气开关');
+INSERT INTO `dim_box_eleceqpt_type` (`type_code`, `type_name`) VALUES ('RCD', '漏电保护');
+INSERT INTO `dim_box_eleceqpt_type` (`type_code`, `type_name`) VALUES ('K', '继电器');
+
+-- ----------------------------
 -- 电价计量分类
 -- ----------------------------
 drop table if exists dim_ems_electrovalency_type;
@@ -616,6 +632,44 @@ create table adm_meter_device  (
 
 
 -- ----------------------------
+-- 动力箱柜表
+-- ----------------------------
+drop table if exists adm_power_box;
+create table adm_power_box  (
+  `id`              bigint(20)      not null auto_increment      comment '序号',
+  `box_code`        varchar(32)     not null                     comment '箱柜代码',
+  `box_type`        int             not null                     comment '箱体类型',
+  `area_code`       varchar(32)     default null                 comment '归属园区',
+  `location`        varchar(200)    default null                 comment '安装位置',
+  `box_size`        varchar(128)    default null                 comment '箱体尺寸',
+  `gateway_addr`    varchar(128)    default null                 comment '网关地址',
+  `gateway_port`    int             default null                 comment '网关端口',
+  primary key (`id`),
+  unique key ux_power_box(`box_code`)
+) engine=innodb auto_increment=1 comment = '动力箱柜表';
+
+
+-- ----------------------------
+-- 动力箱柜电气设备表
+-- ----------------------------
+drop table if exists adm_box_elec_eqpt;
+create table adm_box_elec_eqpt  (
+  `id`              bigint(20)      not null auto_increment      comment '序号',
+  `box_code`        varchar(32)     not null                     comment '箱柜代码',
+  `eqpt_code`       varchar(32)     not null                     comment '电气编码',
+  `ext_eqpt_code`   varchar(64)     default null                 comment '外部系统编码',
+  `eqpt_type`       varchar(16)     not null                     comment '电气符号代码',
+  `eqpt_spec`       varchar(64)     default null                 comment '电气型号',
+  `rated_voltage`   int             default null                 comment '额定电压',
+  `rated_current`   int             default null                 comment '额定电流',
+  `parent_eqpt`     varchar(32)     default null                 comment '上级电气件',
+  `meter_device`    varchar(16)     default null                 comment '计量设备',
+  primary key (`id`),
+  unique key ux_box_elec_eqpt(`box_code`,`eqpt_code`)
+) engine=innodb auto_increment=1 comment = '动力箱柜电气设备表';
+
+
+-- ----------------------------
 -- 能源策略表
 -- ----------------------------
 drop table if exists adm_op_energy_strategy;
@@ -828,6 +882,22 @@ INSERT INTO sys_electrovalency_config (`cfg_code`, `elec_type`, `voltage_level`,
 INSERT INTO sys_electrovalency_config (`cfg_code`, `elec_type`, `voltage_level`, `degree_price`, `fs_peak_degree_price`, `fs_high_degree_price`, `fs_flat_degree_price`, `fs_low_degree_price`, `max_req_price`, `trans_capacity_price`) VALUES ('4004', 4, '220千伏及以上', 0.5827, 1.2024, 1.002, 0.5827, 0.2439, 41.6, 26);
 
 -- ----------------------------
+-- 光伏电价配置表
+-- ----------------------------
+drop table if exists sys_pv_price_config;
+create table sys_pv_price_config (
+  `id`                    bigint(20)      not null auto_increment      comment '序号',
+  `cfg_code`              varchar(4)      not null                     comment '配置代码',
+  `price_name`            varchar(32)     not null                     comment '价格名称',
+  `obj_price`             double          default null                 comment '对象价格',
+  `state_subsidy`         double          default null                 comment '国家补贴',
+  `local_subsidy`         double          default null                 comment '地方补贴',
+  primary key (`id`),
+  unique key ux_electrovalency_config(`price_name`)
+) engine=innodb auto_increment=1 comment = '光伏电价配置表';
+
+
+-- ----------------------------
 -- 电价策略表
 -- ----------------------------
 drop table if exists sys_electrovalency_strategy;

+ 279 - 275
ems-cloud/sql/ems_sys.sql

@@ -174,32 +174,33 @@ insert into sys_menu values ('101',  '主路光伏',       '1',   '2',   'hp-vie
 
 insert into sys_menu values ('102',  '源网',            '2',    '1',  'strategy-pg',        'mgr/powergrid',             '', 1, 0, 'C', '0', '0',   'power-mgr:pg',           'powergrid',      'admin', sysdate(), '', null, '源网协调');
 insert into sys_menu values ('103',  '储能',            '2',    '2',  'strategy-gs',        'mgr/powerstore',            '', 1, 0, 'C', '0', '0',   'power-mgr:gs',           'powerstore',     'admin', sysdate(), '', null, '网储互动');
-insert into sys_menu values ('104',  '负荷',            '2',    '3',  'strategy-use',       'mgr/poweruse',              '', 1, 0, 'C', '0', '0',   'power-mgr:use',           'powerload',      'admin', sysdate(), '', null, '源荷互动');
-insert into sys_menu values ('105',  '调度',           '2',    '4',  'strategy-mgr',       'mgr/strategy',              '', 1, 0, 'C', '0', '0',   'power-mgr:strategy',     'strategy',       'admin', sysdate(), '', null, '管能策略');
-
-insert into sys_menu values ('106',  '产能分析',       '3',    '1',  'power-prod',         'analysis/power/prod',       '', 1, 0, 'C', '0', '0',    'analysis:power:prod',    'energyprod',     'admin', sysdate(), '', null, '产能分析');
-insert into sys_menu values ('107',  '储能分析',       '3',    '2',  'power-store',        'analysis/power/store',      '', 1, 0, 'C', '0', '0',    'analysis:power:store',   'energystore',    'admin', sysdate(), '', null, '储能分析');
-insert into sys_menu values ('108',  '用能分析',       '3',    '3',  'power-consume',      'analysis/power/consume',    '', 1, 0, 'C', '0', '0',    'analysis:power:consume', 'energyconsume',  'admin', sysdate(), '', null, '用能分析');
-insert into sys_menu values ('109',  '节能分析',       '3',    '4',  'power-save',         'analysis/power/save',       '', 1, 0, 'C', '0', '0',    'analysis:power:save',    'energysave',     'admin', sysdate(), '', null, '节能分析');
-insert into sys_menu values ('110',  '趋势预测',       '3',    '5',  'prediction',         '',                          '', 1, 0, 'M', '0', '0',    '',                       'prediction',     'admin', sysdate(), '', null, '趋势预测');
-insert into sys_menu values ('111',  '数据报表',       '3',    '6',  'analysis-statement', '',                          '', 1, 0, 'M', '0', '0',    'analysis:statement',     'statement',      'admin', sysdate(), '', null, '数据报表');
-
-insert into sys_menu values ('112',  '碳排计量',       '4',    '1',  'ca-emission',        'ca/emission',            '', 1, 0, 'C', '0', '0',   'ca-analysis:emission',   'caemission',     'admin', sysdate(), '', null, '碳排分析');
-insert into sys_menu values ('113',  '碳汇测算',       '4',    '2',  'ca-sink',            'ca/sink',                '', 1, 0, 'C', '0', '0',   'ca-analysis:sink',       'casink',         'admin', sysdate(), '', null, '碳汇分析');
-
-insert into sys_menu values ('114',  '设备状态',       '5',    '1',  'device-state',        'devmgr/state',           '', 1, 0, 'C', '0', '0',  'device:status',          'devicestatus',   'admin', sysdate(), '', null, '设备状态');
-insert into sys_menu values ('115',  '设备台账',       '5',    '2',  'device-el',          'device/el',              '', 1, 0, 'C', '0', '0',   'device:el',              'excel',       'admin', sysdate(), '', null, '设备台账');
-insert into sys_menu values ('116',  '设备告警',       '5',    '3',  'analysis-warn',      'analysis/device/warn',   '', 1, 0, 'C', '0', '0',   'analysis:device',        'deviceanalyze',  'admin', sysdate(), '', null, '设备分析');
-
-insert into sys_menu values ('117',  '告警策略',       '6',    '1',  'warn-strategy',      'warn/strategy',          '', 1, 0, 'C', '0', '0',   'warn:strategy',          'warnstrategy',   'admin', sysdate(), '', null, '告警策略');
-insert into sys_menu values ('118',  '告警列表',       '6',    '2',  'warn-list',          'warn/list',              '', 1, 0, 'C', '0', '0',   'warn:list',              'warnmsg',        'admin', sysdate(), '', null, '告警策略');
-insert into sys_menu values ('119',  '巡检任务',       '6',    '3',  'oper-task',          'oper-mgr/task',          '', 1, 0, 'C', '0', '0',   'oper-mgr:task',          'task',           'admin', sysdate(), '', null, '巡检任务');
-insert into sys_menu values ('120',  '巡检报告',       '6',    '4',  'oper-report',        'oper-mgr/report',        '', 1, 0, 'C', '0', '0',   'oper-mgr:report',        'note',           'admin', sysdate(), '', null, '巡检报告');
-
-insert into sys_menu values ('121',  '建筑区块',       '7',    '1',  'buildingcfg',        '',                       '', 1, 0, 'M', '0', '0',   'basecfg:building',       'building',       'admin', sysdate(), '', null, '建筑区块菜单');
-insert into sys_menu values ('122',  '设备设施',       '7',    '2',  'devicecfg',          '',                       '', 1, 0, 'M', '0', '0',   'basecfg:device',         'devicemgr',      'admin', sysdate(), '', null, '设备设施菜单');
-insert into sys_menu values ('123',  '能源计量',       '7',    '3',  'energycfg',          '',                       '', 1, 0, 'M', '0', '0',   'basecfg:energy',         'energy',         'admin', sysdate(), '', null, '能源计量菜单');
-insert into sys_menu values ('124',  '标签管理',       '7',    '4',  'emstag',             'basecfg/tag',            '', 1, 0, 'C', '0', '0',   'basecfg:tag:list',       'tree',           'admin', sysdate(), '', null, '标签菜单');
+insert into sys_menu values ('104',  '负荷',            '2',    '3',  'strategy-use',       'mgr/poweruse',              '', 1, 0, 'C', '0', '0',   'power-mgr:use',          'powerload',      'admin', sysdate(), '', null, '源荷互动');
+insert into sys_menu values ('105',  '配电',            '2',    '4',  'strategy-dist',      'mgr/powerdist',             '', 1, 0, 'C', '0', '0',   'power-mgr:dist',         'powerdist',      'admin', sysdate(), '', null, '配电监控');
+insert into sys_menu values ('106',  '调度',            '2',    '5',  'strategy-mgr',       'mgr/strategy',              '', 1, 0, 'C', '0', '0',   'power-mgr:strategy',     'strategy',       'admin', sysdate(), '', null, '管能策略');
+
+insert into sys_menu values ('107',  '产能分析',       '3',    '1',  'power-prod',         'analysis/power/prod',       '', 1, 0, 'C', '0', '0',    'analysis:power:prod',    'energyprod',     'admin', sysdate(), '', null, '产能分析');
+insert into sys_menu values ('108',  '储能分析',       '3',    '2',  'power-store',        'analysis/power/store',      '', 1, 0, 'C', '0', '0',    'analysis:power:store',   'energystore',    'admin', sysdate(), '', null, '储能分析');
+insert into sys_menu values ('109',  '用能分析',       '3',    '3',  'power-consume',      'analysis/power/consume',    '', 1, 0, 'C', '0', '0',    'analysis:power:consume', 'energyconsume',  'admin', sysdate(), '', null, '用能分析');
+insert into sys_menu values ('110',  '节能分析',       '3',    '4',  'power-save',         'analysis/power/save',       '', 1, 0, 'C', '0', '0',    'analysis:power:save',    'energysave',     'admin', sysdate(), '', null, '节能分析');
+insert into sys_menu values ('111',  '趋势预测',       '3',    '5',  'prediction',         '',                          '', 1, 0, 'M', '0', '0',    '',                       'prediction',     'admin', sysdate(), '', null, '趋势预测');
+insert into sys_menu values ('112',  '数据报表',       '3',    '6',  'analysis-statement', '',                          '', 1, 0, 'M', '0', '0',    'analysis:statement',     'statement',      'admin', sysdate(), '', null, '数据报表');
+
+insert into sys_menu values ('113',  '碳排计量',       '4',    '1',  'ca-emission',        'ca/emission',            '', 1, 0, 'C', '0', '0',   'ca-analysis:emission',   'caemission',     'admin', sysdate(), '', null, '碳排分析');
+insert into sys_menu values ('114',  '碳汇测算',       '4',    '2',  'ca-sink',            'ca/sink',                '', 1, 0, 'C', '0', '0',   'ca-analysis:sink',       'casink',         'admin', sysdate(), '', null, '碳汇分析');
+
+insert into sys_menu values ('115',  '设备状态',       '5',    '1',  'device-state',        'devmgr/state',           '', 1, 0, 'C', '0', '0',  'device:status',          'devicestatus',   'admin', sysdate(), '', null, '设备状态');
+insert into sys_menu values ('116',  '设备台账',       '5',    '2',  'device-el',          'device/el',              '', 1, 0, 'C', '0', '0',   'device:el',              'excel',       'admin', sysdate(), '', null, '设备台账');
+insert into sys_menu values ('117',  '设备告警',       '5',    '3',  'analysis-warn',      'analysis/device/warn',   '', 1, 0, 'C', '0', '0',   'analysis:device',        'deviceanalyze',  'admin', sysdate(), '', null, '设备分析');
+
+insert into sys_menu values ('118',  '告警策略',       '6',    '1',  'warn-strategy',      'warn/strategy',          '', 1, 0, 'C', '0', '0',   'warn:strategy',          'warnstrategy',   'admin', sysdate(), '', null, '告警策略');
+insert into sys_menu values ('119',  '告警列表',       '6',    '2',  'warn-list',          'warn/list',              '', 1, 0, 'C', '0', '0',   'warn:list',              'warnmsg',        'admin', sysdate(), '', null, '告警策略');
+insert into sys_menu values ('120',  '巡检任务',       '6',    '3',  'oper-task',          'oper-mgr/task',          '', 1, 0, 'C', '0', '0',   'oper-mgr:task',          'task',           'admin', sysdate(), '', null, '巡检任务');
+insert into sys_menu values ('121',  '巡检报告',       '6',    '4',  'oper-report',        'oper-mgr/report',        '', 1, 0, 'C', '0', '0',   'oper-mgr:report',        'note',           'admin', sysdate(), '', null, '巡检报告');
+
+insert into sys_menu values ('122',  '建筑区块',       '7',    '1',  'buildingcfg',        '',                       '', 1, 0, 'M', '0', '0',   'basecfg:building',       'building',       'admin', sysdate(), '', null, '建筑区块菜单');
+insert into sys_menu values ('123',  '设备设施',       '7',    '2',  'devicecfg',          '',                       '', 1, 0, 'M', '0', '0',   'basecfg:device',         'devicemgr',      'admin', sysdate(), '', null, '设备设施菜单');
+insert into sys_menu values ('124',  '能源计量',       '7',    '3',  'energycfg',          '',                       '', 1, 0, 'M', '0', '0',   'basecfg:energy',         'energy',         'admin', sysdate(), '', null, '能源计量菜单');
+insert into sys_menu values ('125',  '标签管理',       '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, '角色管理菜单');
@@ -215,38 +216,39 @@ insert into sys_menu values ('179',  '在线用户',       '8',   '10', 'online'
 insert into sys_menu values ('180',  '系统信息',       '9',   '1',  'adapter-subsystem',  'adapter/subsystem/index',  '', 1, 0, 'C', '0', '0',   'adapter:subsystem:list',  'note',           'admin', sysdate(), '', null, '光伏');
 insert into sys_menu values ('181',  '光伏',          '9',   '2',  'adapter-pv',         'adapter/pv/index',         '', 1, 0, 'C', '0', '0',   'adapter:pv:list',         'photovoltaic',   'admin', sysdate(), '', null, '光伏');
 insert into sys_menu values ('182',  '光储直柔',       '9',   '3',  'adapter-gczr',       'adapter/gczr/index',       '', 1, 0, 'C', '0', '0',   'adapter:gczr:list',       'deviceaccess',   'admin', sysdate(), '', null, '光储直柔');
-insert into sys_menu values ('183',  '光储充',         '9',   '4',  'adapter-gcc',        'adapter/gcc/index',        '', 1, 0, 'C', '0', '0',   'adapter:gcc:list',       'energyconsume',  'admin', sysdate(), '', null, '光储充');
-insert into sys_menu values ('184',  '充电桩',         '9',   '5',  'adapter-cdz',        'adapter/cdz/index',        '', 1, 0, 'C', '0', '0',   'adapter:cdz:list',       'powerstore',     'admin', sysdate(), '', null, '充电桩');
-insert into sys_menu values ('185',  '智慧照明',       '9',   '6',  'adapter-zm',         'adapter/zm/index',         '', 1, 0, 'C', '0', '0',   'adapter:zm:list',       'system',         'admin', sysdate(), '', null, '智慧照明');
-insert into sys_menu values ('186',  '智慧海绵',       '9',   '7',  'adapter-hm',         'adapter/hm/index',         '', 1, 0, 'C', '0', '0',   'adapter:hm:list',       'system',         'admin', sysdate(), '', null, '智慧海绵');
-insert into sys_menu values ('187',  '垃圾厨余',       '9',   '8',  'adapter-ljcy',       'adapter/ljcy/index',       '', 1, 0, 'C', '0', '0',   'adapter:ljcy:list',     'system',         'admin', sysdate(), '', null, '垃圾厨余');
-insert into sys_menu values ('188',  '能耗监测',       '9',   '9',  'adapter-nhjc',       'adapter/nhjc/index',       '', 1, 0, 'C', '0', '0',   'adapter:nhjc:list',     'system',         'admin', sysdate(), '', null, '能耗监测');
-insert into sys_menu values ('189',  '设备管理',       '9',   '10',  'adapter-devc',      'adapter/devc/index',       '', 1, 0, 'M', '0', '0',   'adapter:devc:list',       'system',         'admin', sysdate(), '', null, '设备管理');
+insert into sys_menu values ('183',  '光储充',         '9',   '4',  'adapter-gcc',        'adapter/gcc/index',        '', 1, 0, 'C', '0', '0',   'adapter:gcc:list',       'energyconsume',   'admin', sysdate(), '', null, '光储充');
+insert into sys_menu values ('184',  '充电桩',         '9',   '5',  'adapter-cdz',        'adapter/cdz/index',        '', 1, 0, 'C', '0', '0',   'adapter:cdz:list',       'powerstore',      'admin', sysdate(), '', null, '充电桩');
+insert into sys_menu values ('185',  '智慧照明',       '9',   '6',  'adapter-zm',         'adapter/zm/index',         '', 1, 0, 'C', '0', '0',   'adapter:zm:list',        'illumination',    'admin', sysdate(), '', null, '智慧照明');
+insert into sys_menu values ('186',  '智慧海绵',       '9',   '7',  'adapter-hm',         'adapter/hm/index',         '', 1, 0, 'C', '0', '0',   'adapter:hm:list',        'sponge',          'admin', sysdate(), '', null, '智慧海绵');
+insert into sys_menu values ('187',  '垃圾厨余',       '9',   '8',  'adapter-ljcy',       'adapter/ljcy/index',       '', 1, 0, 'C', '0', '0',   'adapter:ljcy:list',      'foodwaste',       'admin', sysdate(), '', null, '垃圾厨余');
+insert into sys_menu values ('188',  '能耗监测',       '9',   '9',  'adapter-nhjc',       'adapter/nhjc/index',       '', 1, 0, 'C', '0', '0',   'adapter:nhjc:list',      'econsumption',    'admin', sysdate(), '', null, '能耗监测');
+insert into sys_menu values ('189',  '设备管理',       '9',   '10', 'adapter-devc',       'adapter/devc/index',       '', 1, 0, 'M', '0', '0',   'adapter:devc:list',      'devicemgr',         'admin', sysdate(), '', null, '设备管理');
 
 insert into sys_menu values ('998',  '表单构建',       '99',   '1',  'build',              'tool/build/index',       '', 1, 0, 'C', '0', '0',   'tool:build:list',        'build',          'admin', sysdate(), '', null, '表单构建菜单');
 insert into sys_menu values ('999',  '代码生成',       '99',   '2',  'gen',                'tool/gen/index',         '', 1, 0, 'C', '0', '0',   'tool:gen:list',          'code',           'admin', sysdate(), '', null, '代码生成菜单');
 
 -- 三级菜单
 -- 预测菜单
-insert into sys_menu values ('1100',  '产能预测', '110', '1',  'prediction-prod',    'prediction/prod',        '', 1, 0, 'C', '0', '0',   'prediction:prod',        'energyprod',     'admin', sysdate(), '', null, '产能预测');
-insert into sys_menu values ('1101',  '用能预测', '110', '2',  'prediction-consume', 'prediction/consume',     '', 1, 0, 'C', '0', '0',   'prediction:consume',     'energyconsume',  'admin', sysdate(), '', null, '用能预测');
-insert into sys_menu values ('1102',  '碳排预测', '110', '3',  'prediction-ca',      'prediction/ca',          '', 1, 0, 'C', '0', '0',   'prediction:ca',          'caemission',     'admin', sysdate(), '', null, '碳排预测');
+insert into sys_menu values ('1110',  '产能预测', '111', '1',  'prediction-prod',    'prediction/prod',        '', 1, 0, 'C', '0', '0',   'prediction:prod',        'energyprod',     'admin', sysdate(), '', null, '产能预测');
+insert into sys_menu values ('1111',  '用能预测', '111', '2',  'prediction-consume', 'prediction/consume',     '', 1, 0, 'C', '0', '0',   'prediction:consume',     'energyconsume',  'admin', sysdate(), '', null, '用能预测');
+insert into sys_menu values ('1112',  '碳排预测', '111', '3',  'prediction-ca',      'prediction/ca',          '', 1, 0, 'C', '0', '0',   'prediction:ca',          'caemission',     'admin', sysdate(), '', null, '碳排预测');
 -- 报表菜单
-insert into sys_menu values ('1110',  '产能报表',   '111', '1',  'statement-prod',    'analysis/statement/prod',     '', 1, 0, 'C', '0', '0',    'analysis:statement:prod',      'energyprod',     'admin', sysdate(), '', null, '产能报表');
-insert into sys_menu values ('1111',  '用能报表',   '111', '2',  'statement-consume', 'analysis/statement/consume',  '', 1, 0, 'C', '0', '0',    'analysis:statement:consume',   'energyconsume',  'admin', sysdate(), '', null, '用能报表');
-insert into sys_menu values ('1112',  '告警报表',   '111', '3',  'statement-warn',    'analysis/statement/warn',     '', 1, 0, 'C', '0', '0',    'analysis:statement:warn',      'warn',     'admin', sysdate(), '', null, '告警报表');
-insert into sys_menu values ('1113',  '自定义',     '111', '4',  'statement-warn',    'analysis/statement/custom',   '', 1, 0, 'C', '0', '0',   'analysis:statement:custom',    'statement-zdy',   'admin', sysdate(), '', null, '自定义报表');
+insert into sys_menu values ('1120',  '产能报表',   '112', '1',  'statement-prod',    'analysis/statement/prod',     '', 1, 0, 'C', '0', '0',    'analysis:statement:prod',      'energyprod',     'admin', sysdate(), '', null, '产能报表');
+insert into sys_menu values ('1121',  '用能报表',   '112', '2',  'statement-consume', 'analysis/statement/consume',  '', 1, 0, 'C', '0', '0',    'analysis:statement:consume',   'energyconsume',  'admin', sysdate(), '', null, '用能报表');
+insert into sys_menu values ('1122',  '告警报表',   '112', '3',  'statement-warn',    'analysis/statement/warn',     '', 1, 0, 'C', '0', '0',    'analysis:statement:warn',      'warn',     'admin', sysdate(), '', null, '告警报表');
+insert into sys_menu values ('1123',  '自定义',     '112', '4',  'statement-warn',    'analysis/statement/custom',   '', 1, 0, 'C', '0', '0',   'analysis:statement:custom',    'statement-zdy',   'admin', sysdate(), '', null, '自定义报表');
 -- 业务配置菜单
-insert into sys_menu values ('1210',  '地块划分',   '121', '1',  'basecfg-servicearea',    'basecfg/area/index',         '', 1, 0, 'C', '0', '0',   'basecfg:area:list',           'cfgwrite',   'admin', sysdate(), '', null, '服务区配置');
-insert into sys_menu values ('1211',  '建筑配置',   '121', '2',  'basecfg-building',       'basecfg/building/index',     '', 1, 0, 'C', '0', '0',   'basecfg:building:list',        'cfgwrite',   'admin', sysdate(), '', null, '楼宇建筑配置');
-insert into sys_menu values ('1212',  '功能分区',   '121', '3',  'basecfg-zoning',         'basecfg/zoning/index',       '', 1, 0, 'C', '0', '0',   'basecfg:zoning:list',          'cfgwrite',   'admin', sysdate(), '', null, '区块配置');
-insert into sys_menu values ('1220',  '设施分类',   '122', '1',  'basecfg-facstype',       'basecfg/facstype/index',     '', 1, 0, 'C', '0', '0',   'basecfg:facstype:list',        'cfgwrite',   'admin', sysdate(), '', null, '设施配置');
-insert into sys_menu values ('1221',  '能源设施',   '122', '2',  'basecfg-facscfg',        'basecfg/emsfacs/index',      '', 1, 0, 'C', '0', '0',   'basecfg:emsfacs:list',         'cfgwrite',   'admin', sysdate(), '', null, '设施配置');
-insert into sys_menu values ('1222',  '能流关系',   '122', '3',  'basecfg-flowrel',        'basecfg/flowrel/index',      '', 1, 0, 'C', '0', '0',   'basecfg:flowrel:list',         'cfgwrite',   'admin', sysdate(), '', null, '设备配置');
-insert into sys_menu values ('1223',  '能源设备',   '122', '4',  'basecfg-devccfg',        'basecfg/device/index',       '', 1, 0, 'C', '0', '0',   'basecfg:device:list',          'cfgwrite',   'admin', sysdate(), '', null, '设备配置');
-insert into sys_menu values ('1230',  '国网电价',   '123', '1',  'basecfg-electricity',    'basecfg/electricity/index',   '', 1, 0, 'C', '0', '0',  'basecfg:electricity:list',     'cfgwrite',   'admin', sysdate(), '', null, '电价属性');
-insert into sys_menu values ('1231',  '计量设备',   '123', '2',  'basecfg-meterdevc',      'basecfg/meterdevc/index',     '', 1, 0, 'C', '0', '0',  'ems:meterdevc:list',           'cfgwrite',   'admin', sysdate(), '', null, '计量设备');
-insert into sys_menu values ('1232',  '碳核算',     '123', '3',  'basecfg-cacfg',          'basecfg/cacfg/index',        '', 1, 0, 'C', '0', '0',   'basecfg:cacfg:list',           'cfgwrite',   'admin', sysdate(), '', null, '碳排因子');
+insert into sys_menu values ('1220',  '地块划分',   '122', '1',  'basecfg-servicearea',    'basecfg/area/index',         '', 1, 0, 'C', '0', '0',   'basecfg:area:list',           'cfgwrite',   'admin', sysdate(), '', null, '地块划分');
+insert into sys_menu values ('1221',  '建筑配置',   '122', '2',  'basecfg-building',       'basecfg/building/index',     '', 1, 0, 'C', '0', '0',   'basecfg:building:list',        'cfgwrite',   'admin', sysdate(), '', null, '建筑配置');
+insert into sys_menu values ('1222',  '功能分区',   '122', '3',  'basecfg-zoning',         'basecfg/zoning/index',       '', 1, 0, 'C', '0', '0',   'basecfg:zoning:list',          'cfgwrite',   'admin', sysdate(), '', null, '功能分区');
+insert into sys_menu values ('1230',  '设施分类',   '123', '1',  'basecfg-facstype',       'basecfg/facstype/index',     '', 1, 0, 'C', '0', '0',   'basecfg:facstype:list',        'cfgwrite',   'admin', sysdate(), '', null, '设施分类');
+insert into sys_menu values ('1231',  '能源设施',   '123', '2',  'basecfg-facscfg',        'basecfg/emsfacs/index',      '', 1, 0, 'C', '0', '0',   'basecfg:emsfacs:list',         'cfgwrite',   'admin', sysdate(), '', null, '能源设施');
+insert into sys_menu values ('1232',  '能流关系',   '123', '3',  'basecfg-flowrel',        'basecfg/flowrel/index',      '', 1, 0, 'C', '0', '0',   'basecfg:flowrel:list',         'cfgwrite',   'admin', sysdate(), '', null, '能流关系');
+insert into sys_menu values ('1233',  '能源设备',   '123', '4',  'basecfg-devccfg',        'basecfg/device/index',       '', 1, 0, 'C', '0', '0',   'basecfg:device:list',          'cfgwrite',   'admin', sysdate(), '', null, '能源设备');
+insert into sys_menu values ('1234',  '配电设施',   '123', '5',  'basecfg-powerbox',       'basecfg/powerbox/index',     '', 1, 0, 'C', '0', '0',   'ems:powerbox:list',            'cfgwrite',   'admin', sysdate(), '', null, '配电设施');
+insert into sys_menu values ('1240',  '价格策略',   '124', '1',  'basecfg-electricity',    'basecfg/price/index',        '', 1, 0, 'C', '0', '0',   'basecfg:price:list',           'cfgwrite',   'admin', sysdate(), '', null, '价格策略');
+insert into sys_menu values ('1241',  '计量设备',   '124', '2',  'basecfg-meterdevc',      'basecfg/meterdevc/index',     '', 1, 0, 'C', '0', '0',  'ems:meterdevc:list',           'cfgwrite',   'admin', sysdate(), '', null, '计量设备');
+insert into sys_menu values ('1242',  '碳核算',     '124', '3',  'basecfg-cacfg',          'basecfg/cacfg/index',        '', 1, 0, 'C', '0', '0',   'basecfg:cacfg:list',           'cfgwrite',   'admin', sysdate(), '', null, '碳排因子');
 
 -- 用户管理按钮
 insert into sys_menu values ('1700', '用户查询', '170', '1',  '', '', '', 1, 0, 'F', '0', '0', 'system:user:query',          '#', 'admin', sysdate(), '', null, '');
@@ -312,38 +314,38 @@ insert into sys_menu values ('1790', '在线查询', '179', '1', '#', '', '', 1,
 insert into sys_menu values ('1791', '批量强退', '179', '2', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:batchLogout', '#', 'admin', sysdate(), '', null, '');
 insert into sys_menu values ('1792', '单条强退', '179', '3', '#', '', '', 1, 0, 'F', '0', '0', 'monitor:online:forceLogout', '#', 'admin', sysdate(), '', null, '');
 -- 服务区配置按钮
-insert into sys_menu values ('12100', '服务区新增', '1210', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:area:add',   '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12101', '服务区修改', '1210', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:area:edit',  '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12102', '服务区删除', '1210', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:area:remove','#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12103', '服务区导出', '1210', '4', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:area:export','#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12200', '地块新增', '1220', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:area:add',   '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12201', '地块修改', '1220', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:area:edit',  '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12202', '地块删除', '1220', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:area:remove','#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12203', '地块导出', '1220', '4', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:area:export','#', 'admin', sysdate(), '', null, '');
 -- 服务区建筑配置按钮
-insert into sys_menu values ('12110', '建筑新增', '1211', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:building:add',   '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12111', '建筑修改', '1211', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:building:edit',  '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12112', '建筑删除', '1211', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:building:remove','#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12113', '建筑导出', '1211', '4', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:building:export','#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12210', '建筑新增', '1221', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:building:add',   '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12211', '建筑修改', '1221', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:building:edit',  '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12212', '建筑删除', '1221', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:building:remove','#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12213', '建筑导出', '1221', '4', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:building:export','#', 'admin', sysdate(), '', null, '');
 -- 服务区建筑区块配置按钮
-insert into sys_menu values ('12120', '区块新增', '1212', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:zoning:add',   '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12121', '区块修改', '1212', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:zoning:edit',  '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12122', '区块删除', '1212', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:zoning:remove','#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12123', '区块导出', '1212', '4', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:zoning:export','#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12220', '区块新增', '1222', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:zoning:add',   '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12221', '区块修改', '1222', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:zoning:edit',  '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12222', '区块删除', '1222', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:zoning:remove','#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12223', '区块导出', '1222', '4', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:zoning:export','#', 'admin', sysdate(), '', null, '');
 -- 能源设施分类配置按钮
-insert into sys_menu values ('12200', '分类新增', '1220', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:facstype:add',   '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12201', '分类修改', '1220', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:facstype:edit',  '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12202', '分类删除', '1220', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:facstype:remove','#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12300', '分类新增', '1230', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:facstype:add',   '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12301', '分类修改', '1230', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:facstype:edit',  '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12302', '分类删除', '1230', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:facstype:remove','#', 'admin', sysdate(), '', null, '');
 -- 服务区能源设施配置按钮
-insert into sys_menu values ('12210', '设施新增', '1221', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:emsfacs:add',   '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12211', '设施修改', '1221', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:emsfacs:edit',  '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12212', '设施删除', '1221', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:emsfacs:remove','#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12213', '设施导出', '1221', '4', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:emsfacs:export','#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12310', '设施新增', '1231', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:emsfacs:add',   '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12311', '设施修改', '1231', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:emsfacs:edit',  '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12312', '设施删除', '1231', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:emsfacs:remove','#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12313', '设施导出', '1231', '4', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:emsfacs:export','#', 'admin', sysdate(), '', null, '');
 -- 服务区能流关系配置按钮
-insert into sys_menu values ('12220', '关系新增', '1222', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:add',   '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12221', '关系修改', '1222', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:edit',  '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12222', '关系删除', '1222', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:remove','#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12320', '关系新增', '1232', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:add',   '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12321', '关系修改', '1232', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:edit',  '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12322', '关系删除', '1232', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:remove','#', 'admin', sysdate(), '', null, '');
 -- 服务区设备配置按钮
-insert into sys_menu values ('12230', '设备新增', '1223', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:add',   '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12231', '设备修改', '1223', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:edit',  '#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12232', '设备删除', '1223', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:remove','#', 'admin', sysdate(), '', null, '');
-insert into sys_menu values ('12233', '设备导出', '1223', '4', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:export','#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12330', '设备新增', '1233', '1', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:add',   '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12331', '设备修改', '1233', '2', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:edit',  '#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12332', '设备删除', '1233', '3', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:remove','#', 'admin', sysdate(), '', null, '');
+insert into sys_menu values ('12333', '设备导出', '1233', '4', '#', '', '', 1, 0, 'F', '0', '0', 'basecfg:flowrel:export','#', 'admin', sysdate(), '', null, '');
 
 -- 能源策略按钮
 INSERT INTO sys_menu VALUES (2000, 'list', 103, 1, '', NULL, NULL, 1, 0, 'F', '0', '0', 'power-mgr:strategy:list', '#', 'admin', sysdate(), '', NULL, '');
@@ -438,205 +440,207 @@ create table sys_role_menu (
 -- ----------------------------
 -- 初始化-角色和菜单关联表数据
 -- ----------------------------
-insert into sys_role_menu values ('2', 1);
-insert into sys_role_menu values ('2', 2);
-insert into sys_role_menu values ('2', 3);
-insert into sys_role_menu values ('2', 4);
-insert into sys_role_menu values ('2', 5);
-insert into sys_role_menu values ('2', 6);
-insert into sys_role_menu values ('2', 7);
-insert into sys_role_menu values ('2', 8);
-insert into sys_role_menu values ('2', 9);
-insert into sys_role_menu values ('2', 99);
-insert into sys_role_menu values ('2', 100);
-insert into sys_role_menu values ('2', 101);
-insert into sys_role_menu values ('2', 102);
-insert into sys_role_menu values ('2', 103);
-insert into sys_role_menu values ('2', 104);
-insert into sys_role_menu values ('2', 105);
-insert into sys_role_menu values ('2', 106);
-insert into sys_role_menu values ('2', 107);
-insert into sys_role_menu values ('2', 108);
-insert into sys_role_menu values ('2', 109);
-insert into sys_role_menu values ('2', 110);
-insert into sys_role_menu values ('2', 111);
-insert into sys_role_menu values ('2', 112);
-insert into sys_role_menu values ('2', 113);
-insert into sys_role_menu values ('2', 114);
-insert into sys_role_menu values ('2', 115);
-insert into sys_role_menu values ('2', 116);
-insert into sys_role_menu values ('2', 117);
-insert into sys_role_menu values ('2', 118);
-insert into sys_role_menu values ('2', 119);
-insert into sys_role_menu values ('2', 120);
-insert into sys_role_menu values ('2', 121);
-insert into sys_role_menu values ('2', 122);
-insert into sys_role_menu values ('2', 123);
-insert into sys_role_menu values ('2', 124);
-insert into sys_role_menu values ('2', 170);
-insert into sys_role_menu values ('2', 171);
-insert into sys_role_menu values ('2', 172);
-insert into sys_role_menu values ('2', 173);
-insert into sys_role_menu values ('2', 174);
-insert into sys_role_menu values ('2', 175);
-insert into sys_role_menu values ('2', 176);
-insert into sys_role_menu values ('2', 177);
-insert into sys_role_menu values ('2', 178);
-insert into sys_role_menu values ('2', 179);
-insert into sys_role_menu values ('2', 180);
-insert into sys_role_menu values ('2', 181);
-insert into sys_role_menu values ('2', 182);
-insert into sys_role_menu values ('2', 183);
-insert into sys_role_menu values ('2', 184);
-insert into sys_role_menu values ('2', 185);
-insert into sys_role_menu values ('2', 186);
-insert into sys_role_menu values ('2', 187);
-insert into sys_role_menu values ('2', 188);
-insert into sys_role_menu values ('2', 189);
-insert into sys_role_menu values ('2', 998);
-insert into sys_role_menu values ('2', 999);
-insert into sys_role_menu values ('2', 1100);
-insert into sys_role_menu values ('2', 1101);
-insert into sys_role_menu values ('2', 1102);
-insert into sys_role_menu values ('2', 1110);
-insert into sys_role_menu values ('2', 1111);
-insert into sys_role_menu values ('2', 1112);
-insert into sys_role_menu values ('2', 1113);
-insert into sys_role_menu values ('2', 1210);
-insert into sys_role_menu values ('2', 1211);
-insert into sys_role_menu values ('2', 1212);
-insert into sys_role_menu values ('2', 1220);
-insert into sys_role_menu values ('2', 1221);
-insert into sys_role_menu values ('2', 1222);
-insert into sys_role_menu values ('2', 1223);
-insert into sys_role_menu values ('2', 1230);
-insert into sys_role_menu values ('2', 1231);
-insert into sys_role_menu values ('2', 1232);
-insert into sys_role_menu values ('2', 1700);
-insert into sys_role_menu values ('2', 1701);
-insert into sys_role_menu values ('2', 1702);
-insert into sys_role_menu values ('2', 1703);
-insert into sys_role_menu values ('2', 1704);
-insert into sys_role_menu values ('2', 1705);
-insert into sys_role_menu values ('2', 1706);
-insert into sys_role_menu values ('2', 1710);
-insert into sys_role_menu values ('2', 1711);
-insert into sys_role_menu values ('2', 1712);
-insert into sys_role_menu values ('2', 1713);
-insert into sys_role_menu values ('2', 1714);
-insert into sys_role_menu values ('2', 1720);
-insert into sys_role_menu values ('2', 1721);
-insert into sys_role_menu values ('2', 1722);
-insert into sys_role_menu values ('2', 1723);
-insert into sys_role_menu values ('2', 1730);
-insert into sys_role_menu values ('2', 1731);
-insert into sys_role_menu values ('2', 1732);
-insert into sys_role_menu values ('2', 1733);
-insert into sys_role_menu values ('2', 1740);
-insert into sys_role_menu values ('2', 1741);
-insert into sys_role_menu values ('2', 1742);
-insert into sys_role_menu values ('2', 1743);
-insert into sys_role_menu values ('2', 1744);
-insert into sys_role_menu values ('2', 1750);
-insert into sys_role_menu values ('2', 1751);
-insert into sys_role_menu values ('2', 1752);
-insert into sys_role_menu values ('2', 1753);
-insert into sys_role_menu values ('2', 1754);
-insert into sys_role_menu values ('2', 1760);
-insert into sys_role_menu values ('2', 1761);
-insert into sys_role_menu values ('2', 1762);
-insert into sys_role_menu values ('2', 1763);
-insert into sys_role_menu values ('2', 1764);
-insert into sys_role_menu values ('2', 1770);
-insert into sys_role_menu values ('2', 1771);
-insert into sys_role_menu values ('2', 1772);
-insert into sys_role_menu values ('2', 1773);
-insert into sys_role_menu values ('2', 1780);
-insert into sys_role_menu values ('2', 1781);
-insert into sys_role_menu values ('2', 1790);
-insert into sys_role_menu values ('2', 1791);
-insert into sys_role_menu values ('2', 1792);
-insert into sys_role_menu values ('2', 2000);
-insert into sys_role_menu values ('2', 2001);
-insert into sys_role_menu values ('2', 2002);
-insert into sys_role_menu values ('2', 2003);
-insert into sys_role_menu values ('2', 2004);
-insert into sys_role_menu values ('2', 2005);
-insert into sys_role_menu values ('2', 2006);
-insert into sys_role_menu values ('2', 2007);
-insert into sys_role_menu values ('2', 2008);
-insert into sys_role_menu values ('2', 2009);
-insert into sys_role_menu values ('2', 2010);
-insert into sys_role_menu values ('2', 2011);
-insert into sys_role_menu values ('2', 2012);
-insert into sys_role_menu values ('2', 2013);
-insert into sys_role_menu values ('2', 2014);
-insert into sys_role_menu values ('2', 2015);
-insert into sys_role_menu values ('2', 2016);
-insert into sys_role_menu values ('2', 2017);
-insert into sys_role_menu values ('2', 2018);
-insert into sys_role_menu values ('2', 2019);
-insert into sys_role_menu values ('2', 2020);
-insert into sys_role_menu values ('2', 2021);
-insert into sys_role_menu values ('2', 2022);
-insert into sys_role_menu values ('2', 2023);
-insert into sys_role_menu values ('2', 2024);
-insert into sys_role_menu values ('2', 2025);
-insert into sys_role_menu values ('2', 2026);
-insert into sys_role_menu values ('2', 2027);
-insert into sys_role_menu values ('2', 2028);
-insert into sys_role_menu values ('2', 2029);
-insert into sys_role_menu values ('2', 2030);
-insert into sys_role_menu values ('2', 2031);
-insert into sys_role_menu values ('2', 2032);
-insert into sys_role_menu values ('2', 2033);
-insert into sys_role_menu values ('2', 2034);
-insert into sys_role_menu values ('2', 2035);
-insert into sys_role_menu values ('2', 2036);
-insert into sys_role_menu values ('2', 2037);
-insert into sys_role_menu values ('2', 2038);
-insert into sys_role_menu values ('2', 2039);
-insert into sys_role_menu values ('2', 2040);
-insert into sys_role_menu values ('2', 2041);
-insert into sys_role_menu values ('2', 2042);
-insert into sys_role_menu values ('2', 2043);
-insert into sys_role_menu values ('2', 2044);
-insert into sys_role_menu values ('2', 2045);
-insert into sys_role_menu values ('2', 2046);
-insert into sys_role_menu values ('2', 2047);
-insert into sys_role_menu values ('2', 12100);
-insert into sys_role_menu values ('2', 12101);
-insert into sys_role_menu values ('2', 12102);
-insert into sys_role_menu values ('2', 12103);
-insert into sys_role_menu values ('2', 12110);
-insert into sys_role_menu values ('2', 12111);
-insert into sys_role_menu values ('2', 12112);
-insert into sys_role_menu values ('2', 12113);
-insert into sys_role_menu values ('2', 12120);
-insert into sys_role_menu values ('2', 12121);
-insert into sys_role_menu values ('2', 12122);
-insert into sys_role_menu values ('2', 12123);
-insert into sys_role_menu values ('2', 12200);
-insert into sys_role_menu values ('2', 12201);
-insert into sys_role_menu values ('2', 12202);
-insert into sys_role_menu values ('2', 12210);
-insert into sys_role_menu values ('2', 12211);
-insert into sys_role_menu values ('2', 12212);
-insert into sys_role_menu values ('2', 12213);
-insert into sys_role_menu values ('2', 12220);
-insert into sys_role_menu values ('2', 12221);
-insert into sys_role_menu values ('2', 12222);
-insert into sys_role_menu values ('2', 12230);
-insert into sys_role_menu values ('2', 12231);
-insert into sys_role_menu values ('2', 12232);
-insert into sys_role_menu values ('2', 12233);
-insert into sys_role_menu values ('2', 17800);
-insert into sys_role_menu values ('2', 17801);
-insert into sys_role_menu values ('2', 17802);
-insert into sys_role_menu values ('2', 17810);
-insert into sys_role_menu values ('2', 17811);
-insert into sys_role_menu values ('2', 17812);
-insert into sys_role_menu values ('2', 17813);
+insert into sys_role_menu values ('2',1);
+insert into sys_role_menu values ('2',2);
+insert into sys_role_menu values ('2',3);
+insert into sys_role_menu values ('2',4);
+insert into sys_role_menu values ('2',5);
+insert into sys_role_menu values ('2',6);
+insert into sys_role_menu values ('2',7);
+insert into sys_role_menu values ('2',8);
+insert into sys_role_menu values ('2',9);
+insert into sys_role_menu values ('2',99);
+insert into sys_role_menu values ('2',100);
+insert into sys_role_menu values ('2',101);
+insert into sys_role_menu values ('2',102);
+insert into sys_role_menu values ('2',103);
+insert into sys_role_menu values ('2',104);
+insert into sys_role_menu values ('2',105);
+insert into sys_role_menu values ('2',106);
+insert into sys_role_menu values ('2',107);
+insert into sys_role_menu values ('2',108);
+insert into sys_role_menu values ('2',109);
+insert into sys_role_menu values ('2',110);
+insert into sys_role_menu values ('2',111);
+insert into sys_role_menu values ('2',112);
+insert into sys_role_menu values ('2',113);
+insert into sys_role_menu values ('2',114);
+insert into sys_role_menu values ('2',115);
+insert into sys_role_menu values ('2',116);
+insert into sys_role_menu values ('2',117);
+insert into sys_role_menu values ('2',118);
+insert into sys_role_menu values ('2',119);
+insert into sys_role_menu values ('2',120);
+insert into sys_role_menu values ('2',121);
+insert into sys_role_menu values ('2',122);
+insert into sys_role_menu values ('2',123);
+insert into sys_role_menu values ('2',124);
+insert into sys_role_menu values ('2',125);
+insert into sys_role_menu values ('2',170);
+insert into sys_role_menu values ('2',171);
+insert into sys_role_menu values ('2',172);
+insert into sys_role_menu values ('2',173);
+insert into sys_role_menu values ('2',174);
+insert into sys_role_menu values ('2',175);
+insert into sys_role_menu values ('2',176);
+insert into sys_role_menu values ('2',177);
+insert into sys_role_menu values ('2',178);
+insert into sys_role_menu values ('2',179);
+insert into sys_role_menu values ('2',180);
+insert into sys_role_menu values ('2',181);
+insert into sys_role_menu values ('2',182);
+insert into sys_role_menu values ('2',183);
+insert into sys_role_menu values ('2',184);
+insert into sys_role_menu values ('2',185);
+insert into sys_role_menu values ('2',186);
+insert into sys_role_menu values ('2',187);
+insert into sys_role_menu values ('2',188);
+insert into sys_role_menu values ('2',189);
+insert into sys_role_menu values ('2',998);
+insert into sys_role_menu values ('2',999);
+insert into sys_role_menu values ('2',1110);
+insert into sys_role_menu values ('2',1111);
+insert into sys_role_menu values ('2',1112);
+insert into sys_role_menu values ('2',1120);
+insert into sys_role_menu values ('2',1121);
+insert into sys_role_menu values ('2',1122);
+insert into sys_role_menu values ('2',1123);
+insert into sys_role_menu values ('2',1220);
+insert into sys_role_menu values ('2',1221);
+insert into sys_role_menu values ('2',1222);
+insert into sys_role_menu values ('2',1230);
+insert into sys_role_menu values ('2',1231);
+insert into sys_role_menu values ('2',1232);
+insert into sys_role_menu values ('2',1233);
+insert into sys_role_menu values ('2',1234);
+insert into sys_role_menu values ('2',1240);
+insert into sys_role_menu values ('2',1241);
+insert into sys_role_menu values ('2',1242);
+insert into sys_role_menu values ('2',1700);
+insert into sys_role_menu values ('2',1701);
+insert into sys_role_menu values ('2',1702);
+insert into sys_role_menu values ('2',1703);
+insert into sys_role_menu values ('2',1704);
+insert into sys_role_menu values ('2',1705);
+insert into sys_role_menu values ('2',1706);
+insert into sys_role_menu values ('2',1710);
+insert into sys_role_menu values ('2',1711);
+insert into sys_role_menu values ('2',1712);
+insert into sys_role_menu values ('2',1713);
+insert into sys_role_menu values ('2',1714);
+insert into sys_role_menu values ('2',1720);
+insert into sys_role_menu values ('2',1721);
+insert into sys_role_menu values ('2',1722);
+insert into sys_role_menu values ('2',1723);
+insert into sys_role_menu values ('2',1730);
+insert into sys_role_menu values ('2',1731);
+insert into sys_role_menu values ('2',1732);
+insert into sys_role_menu values ('2',1733);
+insert into sys_role_menu values ('2',1740);
+insert into sys_role_menu values ('2',1741);
+insert into sys_role_menu values ('2',1742);
+insert into sys_role_menu values ('2',1743);
+insert into sys_role_menu values ('2',1744);
+insert into sys_role_menu values ('2',1750);
+insert into sys_role_menu values ('2',1751);
+insert into sys_role_menu values ('2',1752);
+insert into sys_role_menu values ('2',1753);
+insert into sys_role_menu values ('2',1754);
+insert into sys_role_menu values ('2',1760);
+insert into sys_role_menu values ('2',1761);
+insert into sys_role_menu values ('2',1762);
+insert into sys_role_menu values ('2',1763);
+insert into sys_role_menu values ('2',1764);
+insert into sys_role_menu values ('2',1770);
+insert into sys_role_menu values ('2',1771);
+insert into sys_role_menu values ('2',1772);
+insert into sys_role_menu values ('2',1773);
+insert into sys_role_menu values ('2',1780);
+insert into sys_role_menu values ('2',1781);
+insert into sys_role_menu values ('2',1790);
+insert into sys_role_menu values ('2',1791);
+insert into sys_role_menu values ('2',1792);
+insert into sys_role_menu values ('2',2000);
+insert into sys_role_menu values ('2',2001);
+insert into sys_role_menu values ('2',2002);
+insert into sys_role_menu values ('2',2003);
+insert into sys_role_menu values ('2',2004);
+insert into sys_role_menu values ('2',2005);
+insert into sys_role_menu values ('2',2006);
+insert into sys_role_menu values ('2',2007);
+insert into sys_role_menu values ('2',2008);
+insert into sys_role_menu values ('2',2009);
+insert into sys_role_menu values ('2',2010);
+insert into sys_role_menu values ('2',2011);
+insert into sys_role_menu values ('2',2012);
+insert into sys_role_menu values ('2',2013);
+insert into sys_role_menu values ('2',2014);
+insert into sys_role_menu values ('2',2015);
+insert into sys_role_menu values ('2',2016);
+insert into sys_role_menu values ('2',2017);
+insert into sys_role_menu values ('2',2018);
+insert into sys_role_menu values ('2',2019);
+insert into sys_role_menu values ('2',2020);
+insert into sys_role_menu values ('2',2021);
+insert into sys_role_menu values ('2',2022);
+insert into sys_role_menu values ('2',2023);
+insert into sys_role_menu values ('2',2024);
+insert into sys_role_menu values ('2',2025);
+insert into sys_role_menu values ('2',2026);
+insert into sys_role_menu values ('2',2027);
+insert into sys_role_menu values ('2',2028);
+insert into sys_role_menu values ('2',2029);
+insert into sys_role_menu values ('2',2030);
+insert into sys_role_menu values ('2',2031);
+insert into sys_role_menu values ('2',2032);
+insert into sys_role_menu values ('2',2033);
+insert into sys_role_menu values ('2',2034);
+insert into sys_role_menu values ('2',2035);
+insert into sys_role_menu values ('2',2036);
+insert into sys_role_menu values ('2',2037);
+insert into sys_role_menu values ('2',2038);
+insert into sys_role_menu values ('2',2039);
+insert into sys_role_menu values ('2',2040);
+insert into sys_role_menu values ('2',2041);
+insert into sys_role_menu values ('2',2042);
+insert into sys_role_menu values ('2',2043);
+insert into sys_role_menu values ('2',2044);
+insert into sys_role_menu values ('2',2045);
+insert into sys_role_menu values ('2',2046);
+insert into sys_role_menu values ('2',2047);
+insert into sys_role_menu values ('2',12200);
+insert into sys_role_menu values ('2',12201);
+insert into sys_role_menu values ('2',12202);
+insert into sys_role_menu values ('2',12203);
+insert into sys_role_menu values ('2',12210);
+insert into sys_role_menu values ('2',12211);
+insert into sys_role_menu values ('2',12212);
+insert into sys_role_menu values ('2',12213);
+insert into sys_role_menu values ('2',12220);
+insert into sys_role_menu values ('2',12221);
+insert into sys_role_menu values ('2',12222);
+insert into sys_role_menu values ('2',12223);
+insert into sys_role_menu values ('2',12300);
+insert into sys_role_menu values ('2',12301);
+insert into sys_role_menu values ('2',12302);
+insert into sys_role_menu values ('2',12310);
+insert into sys_role_menu values ('2',12311);
+insert into sys_role_menu values ('2',12312);
+insert into sys_role_menu values ('2',12313);
+insert into sys_role_menu values ('2',12320);
+insert into sys_role_menu values ('2',12321);
+insert into sys_role_menu values ('2',12322);
+insert into sys_role_menu values ('2',12330);
+insert into sys_role_menu values ('2',12331);
+insert into sys_role_menu values ('2',12332);
+insert into sys_role_menu values ('2',12333);
+insert into sys_role_menu values ('2',17800);
+insert into sys_role_menu values ('2',17801);
+insert into sys_role_menu values ('2',17802);
+insert into sys_role_menu values ('2',17810);
+insert into sys_role_menu values ('2',17811);
+insert into sys_role_menu values ('2',17812);
+insert into sys_role_menu values ('2',17813);
 
 -- ----------------------------
 -- 8、角色和部门关联表  角色1-N部门