Browse Source

楼宇 公务用车 接口修改

zhanghao 1 month ago
parent
commit
dd0c06ce66

+ 4 - 0
project-admin/src/main/resources/application-dev.yml

@@ -42,6 +42,8 @@ apiurl:
   controlMonthSum: /monthly/sum
   controlMonthSum: /monthly/sum
   # 楼宇中控 配电室重要回路负荷情况
   # 楼宇中控 配电室重要回路负荷情况
   controlImportantSum: /important/sum
   controlImportantSum: /important/sum
+  # 楼宇中控 配电室重要回路负荷明细
+  controlImportantDetails: /important/details
   # 楼宇中控 楼宇中当前告警的设备
   # 楼宇中控 楼宇中当前告警的设备
   controlEquipment: /equipment/state
   controlEquipment: /equipment/state
   # 楼宇中控 楼宇中异常点位查看
   # 楼宇中控 楼宇中异常点位查看
@@ -50,6 +52,8 @@ apiurl:
   controlAlarm: /alarm/count
   controlAlarm: /alarm/count
   # 楼宇中控 水箱水位情况
   # 楼宇中控 水箱水位情况
   controlWater: /water/state
   controlWater: /water/state
+  # 楼宇中控 光伏发电
+  photovoltaicPower: /electricity/gf
 
 
 
 
   # 楼宇运行监控右半部 接口前缀
   # 楼宇运行监控右半部 接口前缀

+ 2 - 2
project-zcustom/src/main/java/com/project/zcustom/controller/backManager/officialCar/LargePublicCarController.java

@@ -62,7 +62,7 @@ public class LargePublicCarController extends BaseController {
      * 上传json
      * 上传json
      * */
      * */
     @PostMapping("/upload")
     @PostMapping("/upload")
-    public AjaxResult upload(@RequestParam("type") String type, @RequestBody Map<String, Object> obj) {
-        return toAjax(largePlatPublicCarService.upload(type, obj));
+    public AjaxResult upload(@RequestBody Map<String, Object> obj) {
+        return toAjax(largePlatPublicCarService.upload(obj));
     }
     }
 }
 }

+ 12 - 0
project-zcustom/src/main/java/com/project/zcustom/controller/building/PlatBuildControlController.java

@@ -59,6 +59,12 @@ public class PlatBuildControlController {
         return AjaxResult.success("查询成功", platBuildingService.getRoomLoad());
         return AjaxResult.success("查询成功", platBuildingService.getRoomLoad());
     }
     }
 
 
+    /*配电室重要回路负荷情况明细*/
+    @GetMapping("/roomLoadDetail")
+    public AjaxResult getRoomLoadDetail(@RequestParam("kind") Long kind, @RequestParam("state") Long state) {
+        return AjaxResult.success("查询成功", platBuildingService.getRoomLoadDetail(kind, state));
+    }
+
     /*楼宇中当前告警的设备*/
     /*楼宇中当前告警的设备*/
     @GetMapping("/warnDevice")
     @GetMapping("/warnDevice")
     public AjaxResult getWarnDevice() {
     public AjaxResult getWarnDevice() {
@@ -82,4 +88,10 @@ public class PlatBuildControlController {
     public AjaxResult getWarnState() {
     public AjaxResult getWarnState() {
         return AjaxResult.success("查询成功", platBuildingService.getWarnState());
         return AjaxResult.success("查询成功", platBuildingService.getWarnState());
     }
     }
+
+    /*光伏发电*/
+    @GetMapping("/photovoltaicPower")
+    public AjaxResult getPhotovoltaicPower() {
+        return AjaxResult.success("查询成功", platBuildingService.getPhotovoltaicPower());
+    }
 }
 }

+ 7 - 1
project-zcustom/src/main/java/com/project/zcustom/domain/addional/LargeBuildingControl.java

@@ -145,11 +145,16 @@ public class LargeBuildingControl {
      */
      */
     private String abnormalPointFour;
     private String abnormalPointFour;
 
 
+    /**
+     * 光伏发电
+     */
+    private String photovoltaicPower;
+
 
 
     public LargeBuildingControl() {
     public LargeBuildingControl() {
     }
     }
 
 
-    public LargeBuildingControl(String weekElectricity, String controlElevator, String roomElectricity, String todayElectricity, String monthElectricityOne, String monthElectricityTwo, String monthElectricityThree, String roomLoadOne, String roomLoadTwo, String roomLoadThree, String warnDevice, Long waterControlNormalNum, Long waterControlAbnormalNum, String warnEventStatistics, String waterStateOne, String waterStateTwo) {
+    public LargeBuildingControl(String weekElectricity, String controlElevator, String roomElectricity, String todayElectricity, String monthElectricityOne, String monthElectricityTwo, String monthElectricityThree, String roomLoadOne, String roomLoadTwo, String roomLoadThree, String warnDevice, Long waterControlNormalNum, Long waterControlAbnormalNum, String warnEventStatistics, String waterStateOne, String waterStateTwo, String photovoltaicPower) {
         this.weekElectricity = weekElectricity;
         this.weekElectricity = weekElectricity;
         this.controlElevator = controlElevator;
         this.controlElevator = controlElevator;
         this.roomElectricity = roomElectricity;
         this.roomElectricity = roomElectricity;
@@ -166,5 +171,6 @@ public class LargeBuildingControl {
         this.warnEventStatistics = warnEventStatistics;
         this.warnEventStatistics = warnEventStatistics;
         this.waterStateOne = waterStateOne;
         this.waterStateOne = waterStateOne;
         this.waterStateTwo = waterStateTwo;
         this.waterStateTwo = waterStateTwo;
+        this.photovoltaicPower = photovoltaicPower;
     }
     }
 }
 }

+ 58 - 0
project-zcustom/src/main/java/com/project/zcustom/domain/addional/LargeBuildingLoadDetail.java

@@ -0,0 +1,58 @@
+package com.project.zcustom.domain.addional;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.project.common.core.domain.CustomBaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+/**
+ * 【请填写功能名称】对象 large_plat_building_load_detail
+ *
+ * @author change
+ * @date 2025-03-11
+ */
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+@TableName("large_plat_building_load_detail")
+
+public class LargeBuildingLoadDetail extends CustomBaseEntity {
+
+    /**
+     * $column.columnComment
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 编号
+     */
+    private String number;
+
+    /**
+     * 名称
+     */
+    @JSONField(name = "EqName")
+    private String deviceName;
+
+    /**
+     * 类别
+     */
+    private String type;
+
+    /**
+     * 负载类型
+     */
+    private Integer state;
+
+    /**
+     * 所属配电室
+     */
+    private Integer kind;
+
+}

+ 8 - 0
project-zcustom/src/main/java/com/project/zcustom/mapper/unit/PlatBuildingMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.project.zcustom.domain.addional.LargeBuilding;
 import com.project.zcustom.domain.addional.LargeBuilding;
 import com.project.zcustom.domain.addional.LargeBuildingControl;
 import com.project.zcustom.domain.addional.LargeBuildingControl;
 import com.project.zcustom.domain.addional.LargeBuildingControlAmmeterDetail;
 import com.project.zcustom.domain.addional.LargeBuildingControlAmmeterDetail;
+import com.project.zcustom.domain.addional.LargeBuildingLoadDetail;
 
 
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -48,10 +49,14 @@ public interface PlatBuildingMapper {
     LargeBuildingControl getRoomLoad();
     LargeBuildingControl getRoomLoad();
     LargeBuildingControl getWarnDevice();
     LargeBuildingControl getWarnDevice();
 
 
+    List<LargeBuildingLoadDetail> getRoomLoadDetail(Long kind, Long state);
+
     LargeBuildingControl getAbnormalPoint();
     LargeBuildingControl getAbnormalPoint();
     String getWarnEvent();
     String getWarnEvent();
     LargeBuildingControl getWarnState();
     LargeBuildingControl getWarnState();
 
 
+    String getPhotovoltaicPower();
+
 
 
 
 
 
 
@@ -90,4 +95,7 @@ public interface PlatBuildingMapper {
     public void deleteAmmeterDetails();
     public void deleteAmmeterDetails();
     public int addAmmeterDetails(List<LargeBuildingControlAmmeterDetail> list);
     public int addAmmeterDetails(List<LargeBuildingControlAmmeterDetail> list);
     public int updateBuildingControl(LargeBuildingControl largeBuildingControl);
     public int updateBuildingControl(LargeBuildingControl largeBuildingControl);
+
+    public void deleteLoadDetails();
+    int addLoadDetails(List<LargeBuildingLoadDetail> list);
 }
 }

+ 5 - 0
project-zcustom/src/main/java/com/project/zcustom/service/service/smart/IPlatBuildingService.java

@@ -2,6 +2,7 @@ package com.project.zcustom.service.service.smart;
 
 
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.alibaba.fastjson2.JSONObject;
+import com.project.zcustom.domain.addional.LargeBuildingLoadDetail;
 
 
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -47,6 +48,8 @@ public interface IPlatBuildingService{
 
 
     Map<String, Object> getRoomLoad();
     Map<String, Object> getRoomLoad();
 
 
+    List<LargeBuildingLoadDetail> getRoomLoadDetail(Long kind, Long state);
+
     Map<String, Object> getWarnDevice();
     Map<String, Object> getWarnDevice();
 
 
     JSONArray getAbnormalPoint(String type);
     JSONArray getAbnormalPoint(String type);
@@ -54,4 +57,6 @@ public interface IPlatBuildingService{
     JSONArray getWarnEvent();
     JSONArray getWarnEvent();
 
 
     Map<String, Object> getWarnState();
     Map<String, Object> getWarnState();
+
+    JSONObject getPhotovoltaicPower();
 }
 }

+ 22 - 0
project-zcustom/src/main/java/com/project/zcustom/service/service/smart/impl/PlatBuildingServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.alibaba.fastjson2.JSONObject;
 import com.project.common.utils.StringUtils;
 import com.project.common.utils.StringUtils;
 import com.project.zcustom.domain.addional.LargeBuildingControl;
 import com.project.zcustom.domain.addional.LargeBuildingControl;
+import com.project.zcustom.domain.addional.LargeBuildingLoadDetail;
 import com.project.zcustom.mapper.unit.PlatBuildingMapper;
 import com.project.zcustom.mapper.unit.PlatBuildingMapper;
 import com.project.zcustom.service.service.smart.IPlatBuildingService;
 import com.project.zcustom.service.service.smart.IPlatBuildingService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -581,6 +582,10 @@ public class PlatBuildingServiceImpl implements IPlatBuildingService {
         return map;
         return map;
     }
     }
 
 
+    public List<LargeBuildingLoadDetail> getRoomLoadDetail(Long kind, Long state) {
+        return platBuildingMapper.getRoomLoadDetail(kind, state);
+    }
+
     public Map<String, Object> getWarnDevice(){
     public Map<String, Object> getWarnDevice(){
         LargeBuildingControl largeBuildingControl = platBuildingMapper.getWarnDevice();
         LargeBuildingControl largeBuildingControl = platBuildingMapper.getWarnDevice();
 
 
@@ -697,4 +702,21 @@ public class PlatBuildingServiceImpl implements IPlatBuildingService {
         }
         }
         return monthsArray;
         return monthsArray;
     }
     }
+
+    public JSONObject getPhotovoltaicPower(){
+        String result = platBuildingMapper.getPhotovoltaicPower();
+        if (StringUtils.isBlank(result)){
+            result = "{\n" +
+                    "    \"code\": 200,\n" +
+                    "    \"success\": true,\n" +
+                    "    \"data\": {\n" +
+                    "        \"sum\":\"0\",\n" +
+                    "        \"bm\":\"0\",\n" +
+                    "        \"gfb\":\"0\"\n" +
+                    "    },\n" +
+                    "    \"msg\": \"成功。\"\n" +
+                    "}";
+        }
+        return JSONObject.parseObject(result);
+    }
 }
 }

+ 1 - 1
project-zcustom/src/main/java/com/project/zcustom/service/unit/ILargePublicCarService.java

@@ -78,6 +78,6 @@ public interface ILargePublicCarService extends IService<LargeCar> {
      */
      */
     public void checkFieldExist(String field, String filedValue,String tips,Long id);
     public void checkFieldExist(String field, String filedValue,String tips,Long id);
 
 
-    int upload(String type, Map<String, Object> json);
+    int upload(Map<String, Object> json);
 
 
 }
 }

+ 1 - 1
project-zcustom/src/main/java/com/project/zcustom/service/unit/impl/LargePublicCarServiceImpl.java

@@ -231,7 +231,7 @@ public class LargePublicCarServiceImpl extends ServiceImpl<LargePublicCarMapper,
         }
         }
     }
     }
 
 
-    public int upload(String type, Map<String, Object> json){
+    public int upload(Map<String, Object> json){
         try {
         try {
             List<PlatAppOrg> orgList = platAppOrgService.selectAppCodeList();
             List<PlatAppOrg> orgList = platAppOrgService.selectAppCodeList();
             Map<String, String> orgMap = orgList.stream().collect(Collectors.toMap(PlatAppOrg::getAppEncode, PlatAppOrg::getAppParentOrg, (v1, v2) -> v1));
             Map<String, String> orgMap = orgList.stream().collect(Collectors.toMap(PlatAppOrg::getAppEncode, PlatAppOrg::getAppParentOrg, (v1, v2) -> v1));

+ 18 - 0
project-zcustom/src/main/java/com/project/zcustom/tools/ApiUrlConfig.java

@@ -89,6 +89,15 @@ public class ApiUrlConfig {
         ApiUrlConfig.controlImportantSum = controlImportantSum;
         ApiUrlConfig.controlImportantSum = controlImportantSum;
     }
     }
 
 
+    // 楼宇中控 配电室重要回路负荷情况
+    private static String controlImportantDetails;
+    public static String getControlImportantDetails() {
+        return ApiUrlConfig.controlApiUrl + controlImportantDetails;
+    }
+    public void setControlImportantDetails(String controlImportantDetails) {
+        ApiUrlConfig.controlImportantDetails = controlImportantDetails;
+    }
+
     // 楼宇中控 楼宇中当前告警的设备
     // 楼宇中控 楼宇中当前告警的设备
     private static String controlEquipment;
     private static String controlEquipment;
     public static String getControlEquipment() {
     public static String getControlEquipment() {
@@ -125,6 +134,15 @@ public class ApiUrlConfig {
         ApiUrlConfig.controlWater = controlWater;
         ApiUrlConfig.controlWater = controlWater;
     }
     }
 
 
+    // 楼宇中控 水箱水位情况
+    private static String photovoltaicPower;
+    public static String getPhotovoltaicPower() {
+        return ApiUrlConfig.controlApiUrl + photovoltaicPower;
+    }
+    public void setPhotovoltaicPower(String photovoltaicPower) {
+        ApiUrlConfig.photovoltaicPower = photovoltaicPower;
+    }
+
     // 楼宇运行监控右半部 接口前缀
     // 楼宇运行监控右半部 接口前缀
     private static String buildPrefix;
     private static String buildPrefix;
     public static String getBuildPrefix() {
     public static String getBuildPrefix() {

+ 29 - 2
project-zcustom/src/main/java/com/project/zcustom/tools/BuildingService.java

@@ -1,11 +1,14 @@
 package com.project.zcustom.tools;
 package com.project.zcustom.tools;
 
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.alibaba.fastjson2.JSONObject;
 import com.project.common.utils.StringUtils;
 import com.project.common.utils.StringUtils;
 import com.project.common.utils.http.HttpUtils;
 import com.project.common.utils.http.HttpUtils;
 import com.project.zcustom.domain.addional.LargeBuilding;
 import com.project.zcustom.domain.addional.LargeBuilding;
 import com.project.zcustom.domain.addional.LargeBuildingControl;
 import com.project.zcustom.domain.addional.LargeBuildingControl;
 import com.project.zcustom.domain.addional.LargeBuildingControlAmmeterDetail;
 import com.project.zcustom.domain.addional.LargeBuildingControlAmmeterDetail;
+import com.project.zcustom.domain.addional.LargeBuildingLoadDetail;
 import com.project.zcustom.domain.plat.PlatApiRecord;
 import com.project.zcustom.domain.plat.PlatApiRecord;
 import com.project.zcustom.mapper.unit.PlatBuildingMapper;
 import com.project.zcustom.mapper.unit.PlatBuildingMapper;
 import com.project.zcustom.service.plat.IPlatApiRecordService;
 import com.project.zcustom.service.plat.IPlatApiRecordService;
@@ -54,7 +57,8 @@ public class BuildingService {
                 abnormalNum,
                 abnormalNum,
                 repeat(ApiUrlConfig.getControlAlarm(), null),
                 repeat(ApiUrlConfig.getControlAlarm(), null),
                 repeat(ApiUrlConfig.getControlWater(), "position=23F"),
                 repeat(ApiUrlConfig.getControlWater(), "position=23F"),
-                repeat(ApiUrlConfig.getControlWater(), "position=负二")
+                repeat(ApiUrlConfig.getControlWater(), "position=负二"),
+                repeat(ApiUrlConfig.getPhotovoltaicPower(), null)
                 );
                 );
         if (platBuildingMapper.getExist() > 0){
         if (platBuildingMapper.getExist() > 0){
             platBuildingMapper.updateBuildingControl(largeBuildingControl);
             platBuildingMapper.updateBuildingControl(largeBuildingControl);
@@ -63,7 +67,7 @@ public class BuildingService {
     }
     }
 
 
     /**
     /**
-     * 电表、异常明细
+     * 电表、异常、负载明细
      */
      */
     public void getLeftBuildingDataDetail(){
     public void getLeftBuildingDataDetail(){
         LargeBuildingControl largeBuildingControl = new LargeBuildingControl();
         LargeBuildingControl largeBuildingControl = new LargeBuildingControl();
@@ -76,6 +80,7 @@ public class BuildingService {
         }
         }
         else platBuildingMapper.addBuildingControl(largeBuildingControl);
         else platBuildingMapper.addBuildingControl(largeBuildingControl);
 
 
+
         platBuildingMapper.deleteAmmeterDetails();
         platBuildingMapper.deleteAmmeterDetails();
         String[] arr = {
         String[] arr = {
                 "光伏",
                 "光伏",
@@ -102,6 +107,28 @@ public class BuildingService {
             list.add(largeBuildingControlAmmeterDetail);
             list.add(largeBuildingControlAmmeterDetail);
         }
         }
         platBuildingMapper.addAmmeterDetails(list);
         platBuildingMapper.addAmmeterDetails(list);
+
+
+        platBuildingMapper.deleteLoadDetails();
+        String[] type = {"一号配电室", "二号配电室", "三号配电室"};
+        String[] state = {"空载", "重载", "过载", "轻载", "正常"};
+        for (int i = 0; i < 3; i++){
+            for (int j = 0; i < 5; j++){
+                String res = repeat(ApiUrlConfig.getControlElectricityDetail(), "type=" + type[i] + "&" + "state=" + state[j]);
+                if (StringUtils.isBlank(res)){
+                    return;
+                }
+                List<LargeBuildingLoadDetail> load = JSON.parseArray(res, LargeBuildingLoadDetail.class);
+                for (LargeBuildingLoadDetail it : load){
+                    it.setState(j + 1);
+                    it.setKind(i + 1);
+                }
+                platBuildingMapper.addLoadDetails(load);
+            }
+        }
+
+
+
     }
     }
 
 
     /**
     /**

+ 6 - 3
project-zcustom/src/main/resources/mapper/zcustom/logistics/PlatHousingLandMapper.xml

@@ -18,7 +18,8 @@
             type
             type
         FROM
         FROM
             large_plat_housing_land
             large_plat_housing_land
-        <if test="appOrg != '0000'"> WHERE app_org = #{appOrg} </if>
+        WHERE del_flag = '0'
+        <if test="appOrg != '0000'"> AND app_org = #{appOrg} </if>
         GROUP BY
         GROUP BY
             type
             type
     </select>
     </select>
@@ -30,7 +31,8 @@
             COUNT( CASE WHEN ownership_flag = 1 THEN 1 END ) AS own
             COUNT( CASE WHEN ownership_flag = 1 THEN 1 END ) AS own
         FROM
         FROM
             large_plat_housing_land
             large_plat_housing_land
-        <if test="appOrg != '0000'"> WHERE app_org = #{appOrg} </if>
+        WHERE del_flag = '0'
+        <if test="appOrg != '0000'"> AND app_org = #{appOrg} </if>
     </select>
     </select>
 
 
     <select id="getInvestFinishState" parameterType="String" resultType="map">
     <select id="getInvestFinishState" parameterType="String" resultType="map">
@@ -39,7 +41,8 @@
             COUNT( CASE WHEN ( investment_plan_flag = 1 AND YEAR ( construction_time ) >= YEAR ( CURDATE())) THEN 1 END ) AS invest
             COUNT( CASE WHEN ( investment_plan_flag = 1 AND YEAR ( construction_time ) >= YEAR ( CURDATE())) THEN 1 END ) AS invest
         FROM
         FROM
             large_plat_housing_land
             large_plat_housing_land
-        <if test="appOrg != '0000'"> WHERE app_org = #{appOrg} </if>
+        WHERE del_flag = '0'
+        <if test="appOrg != '0000'"> AND app_org = #{appOrg} </if>
     </select>
     </select>
 
 
     <insert id="upload" parameterType="com.project.zcustom.domain.addional.LargeHousingLand">
     <insert id="upload" parameterType="com.project.zcustom.domain.addional.LargeHousingLand">

+ 37 - 0
project-zcustom/src/main/resources/mapper/zcustom/unit/PlatBuildingMapper.xml

@@ -24,6 +24,15 @@
         <result property="waterStateTwo"    column="water_state_two"    />
         <result property="waterStateTwo"    column="water_state_two"    />
     </resultMap>
     </resultMap>
 
 
+    <resultMap type="com.project.zcustom.domain.addional.LargeBuildingLoadDetail" id="LargePlatBuildingLoadDetailResult">
+        <result property="id"    column="id"    />
+        <result property="number"    column="number"    />
+        <result property="deviceName"    column="device_name"    />
+        <result property="type"    column="type"    />
+        <result property="state"    column="state"    />
+        <result property="kind"    column="kind"    />
+    </resultMap>
+
     <select id="getCount" resultType="int">
     <select id="getCount" resultType="int">
         select count(*) from large_plat_building
         select count(*) from large_plat_building
     </select>
     </select>
@@ -107,6 +116,12 @@
         select warn_device, water_device_air_num, water_control_normal_num, water_control_abnormal_num from large_plat_building_control
         select warn_device, water_device_air_num, water_control_normal_num, water_control_abnormal_num from large_plat_building_control
     </select>
     </select>
 
 
+    <select id="getRoomLoadDetail" resultMap="LargePlatBuildingLoadDetailResult">
+        select * from large_plat_building_load_detail
+        where state = #{arg1}
+        <if test="arg0 != 0"> and kind = #{arg0} </if>
+    </select>
+
     <select id="getAbnormalPoint" resultMap="LargeBuildingControlResult">
     <select id="getAbnormalPoint" resultMap="LargeBuildingControlResult">
         select abnormal_point_one, abnormal_point_two, abnormal_point_three, abnormal_point_four from large_plat_building_control
         select abnormal_point_one, abnormal_point_two, abnormal_point_three, abnormal_point_four from large_plat_building_control
     </select>
     </select>
@@ -119,6 +134,10 @@
         select water_state_one, water_state_two from large_plat_building_control
         select water_state_one, water_state_two from large_plat_building_control
     </select>
     </select>
 
 
+    <select id="getPhotovoltaicPower" resultType="String">
+        select photovoltaic_power from large_plat_building_control
+    </select>
+
 
 
 
 
 
 
@@ -323,4 +342,22 @@
         </foreach>
         </foreach>
     </insert>
     </insert>
 
 
+    <delete id="deleteLoadDetails">
+        delete from large_plat_building_load_detail
+    </delete>
+
+    <insert id="addLoadDetails" parameterType="com.project.zcustom.domain.addional.LargeBuildingLoadDetail">
+        insert into large_plat_building_load_detail (number, device_name, type, state, kind)
+        values
+        <foreach collection="list" item="item" separator="," close=";">
+            <trim prefix="(" suffix=")" suffixOverrides=",">
+                #{item.number},
+                #{item.deviceName},
+                #{item.type},
+                #{item.state},
+                #{item.kind}
+            </trim>
+        </foreach>
+    </insert>
+
 </mapper>
 </mapper>