瀏覽代碼

楼宇运行 增加 实体类和部分字段, 修改同步接口和大屏接口
公务用车 增加 车辆排名json导入

zhanghao 1 月之前
父節點
當前提交
089b10938a

+ 9 - 0
project-zcustom/src/main/java/com/project/zcustom/controller/backManager/officialCar/LargeCarRankController.java

@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 @RestController
 @RequestMapping("/zcustom/carRank")
@@ -66,4 +67,12 @@ public class LargeCarRankController extends BaseController {
     public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(largeCarRankService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
     }
+
+    /**
+     * 上传json
+     * */
+    @PostMapping("/upload")
+    public AjaxResult upload(@RequestBody Map<String, Object> obj) {
+        return toAjax(largeCarRankService.upload(obj));
+    }
 }

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

@@ -58,6 +58,9 @@ public class LargePublicCarController extends BaseController {
         return toAjax(largePlatPublicCarService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
     }
 
+    /**
+     * 上传json
+     * */
     @PostMapping("/upload")
     public AjaxResult upload(@RequestParam("type") String type, @RequestBody Map<String, Object> obj) {
         return toAjax(largePlatPublicCarService.upload(type, obj));

+ 12 - 0
project-zcustom/src/main/java/com/project/zcustom/controller/crontab/PlatCrontabTaskController.java

@@ -83,6 +83,18 @@ public class PlatCrontabTaskController extends BaseController {
     }
 
     /**
+     * 楼宇运行监控(左:明细)
+     * 30分钟
+     */
+    public void leftBuildingDataDetail() {
+        synchronized (this) {
+            logger.info("开始楼宇运行获取接口数据");
+            buildingService.getLeftBuildingDataDetail();
+            logger.info("楼宇运行获取接口数据完成");
+        }
+    }
+
+    /**
      * 楼宇运行监控(右)
      */
     public void rightBuildingDataFirstHalf() {

+ 20 - 0
project-zcustom/src/main/java/com/project/zcustom/domain/addional/LargeBuildingControl.java

@@ -119,6 +119,26 @@ public class LargeBuildingControl {
 
     private String waterStateTwo;
 
+    /**
+     * 异常点位查看  电表
+     */
+    private String abnormalPointOne;
+
+    /**
+     * 异常点位查看  水浸
+     */
+    private String abnormalPointTwo;
+
+    /**
+     * 异常点位查看  烟雾
+     */
+    private String abnormalPointThree;
+
+    /**
+     * 异常点位查看  液位
+     */
+    private String abnormalPointFour;
+
 
     public LargeBuildingControl() {
     }

+ 35 - 0
project-zcustom/src/main/java/com/project/zcustom/domain/addional/LargeBuildingControlAmmeterDetail.java

@@ -0,0 +1,35 @@
+package com.project.zcustom.domain.addional;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+@Data
+@Accessors(chain = true)
+@ToString(callSuper = true)
+@EqualsAndHashCode(callSuper = false)
+@TableName("large_plat_building_ammeter_detail")
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class LargeBuildingControlAmmeterDetail {
+    /**
+     * id
+     */
+    @TableId(value = "id")
+    private Long id;
+
+    /**
+     * 专业所属电表明细json
+     */
+
+    private String ammeterDetail;
+
+    /**
+     * 类型
+     */
+    private String type;
+}

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

@@ -3,7 +3,9 @@ package com.project.zcustom.mapper.unit;
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.project.zcustom.domain.addional.LargeBuilding;
 import com.project.zcustom.domain.addional.LargeBuildingControl;
+import com.project.zcustom.domain.addional.LargeBuildingControlAmmeterDetail;
 
+import java.util.List;
 import java.util.Map;
 
 @InterceptorIgnore(blockAttack = "true")
@@ -38,10 +40,13 @@ public interface PlatBuildingMapper {
 
 
     LargeBuildingControl getThisWeekElectricity();
+    String getThisAmmeterDetail(String type);
     String getTodayElectricity();
     LargeBuildingControl getMonthElectricity();
     LargeBuildingControl getRoomLoad();
     LargeBuildingControl getWarnDevice();
+
+    LargeBuildingControl getAbnormalPoint();
     String getWarnEvent();
     LargeBuildingControl getWarnState();
 
@@ -79,5 +84,8 @@ public interface PlatBuildingMapper {
     public int updateAirNum(Long num);
     public Long getAirNum();
     public int addBuildingControl(LargeBuildingControl largeBuildingControl);
+
+    public void deleteAmmeterDetails();
+    public int addAmmeterDetails(List<LargeBuildingControlAmmeterDetail> list);
     public int updateBuildingControl(LargeBuildingControl largeBuildingControl);
 }

+ 1 - 0
project-zcustom/src/main/java/com/project/zcustom/service/service/basics/impl/PlatAppOrgServiceImpl.java

@@ -233,6 +233,7 @@ public class PlatAppOrgServiceImpl extends ServiceImpl<PlatAppOrgMapper, PlatApp
         LambdaQueryWrapper<PlatAppOrg> lqw = new LambdaQueryWrapper<PlatAppOrg>();
         lqw.select(
                 PlatAppOrg::getId,
+                PlatAppOrg::getAppEncode,
                 PlatAppOrg::getAppCode,
                 PlatAppOrg::getAppName
         );

+ 14 - 57
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.project.common.utils.StringUtils;
 import com.project.zcustom.domain.addional.LargeBuildingControl;
+import com.project.zcustom.domain.addional.LargeBuildingControlAmmeterDetail;
 import com.project.zcustom.mapper.unit.PlatBuildingMapper;
 import com.project.zcustom.service.service.smart.IPlatBuildingService;
 import com.project.zcustom.tools.ApiUrlConfig;
@@ -312,45 +313,11 @@ public class PlatBuildingServiceImpl implements IPlatBuildingService {
     }
 
     public JSONArray getThisAmmeterDetail(String type){
-        // TODO
-        String result = buildingService.repeat(ApiUrlConfig.getControlElectricityDetail(), "type=" + type);
+        String result = platBuildingMapper.getThisAmmeterDetail(type);
         if (StringUtils.isNotBlank(result)){
             return JSONArray.parseArray(result);
         }
         return new JSONArray();
-        /*String str = "[\n" +
-                "        {\n" +
-                "            \"number\": \"1# 1-3\",\n" +
-                "            \"EqName\": \"设备名称\",\n" +
-                "            \"type\": \"设备所属类别\",\n" +
-                "            \"Kwh\": \"56.2\",\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"number\": \"1# 1-3\",\n" +
-                "            \"EqName\": \"设备名称\",\n" +
-                "            \"type\": \"设备所属类别\",\n" +
-                "            \"Kwh\": \"56.2\",\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"number\": \"1# 1-3\",\n" +
-                "            \"EqName\": \"设备名称\",\n" +
-                "            \"type\": \"设备所属类别\",\n" +
-                "            \"Kwh\": \"56.2\",\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"number\": \"1# 1-3\",\n" +
-                "            \"EqName\": \"设备名称\",\n" +
-                "            \"type\": \"设备所属类别\",\n" +
-                "            \"Kwh\": \"56.2\",\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"number\": \"1# 1-3\",\n" +
-                "            \"EqName\": \"设备名称\",\n" +
-                "            \"type\": \"设备所属类别\",\n" +
-                "            \"Kwh\": \"56.2\",\n" +
-                "        },\n" +
-                "    ]";
-        return JSONArray.parseArray(str);*/
     }
 
     public List<Map<String, Object>> getTodayElectricity(){
@@ -420,29 +387,19 @@ public class PlatBuildingServiceImpl implements IPlatBuildingService {
     }
 
     public JSONArray getAbnormalPoint(String type){
-        // TODO
-        String result = buildingService.repeat(ApiUrlConfig.getControlAlertDetails(), "type=" + type);
-        if (StringUtils.isNotBlank(result)){
-            return JSONArray.parseArray(result);
+        LargeBuildingControl largeBuildingControl = platBuildingMapper.getAbnormalPoint();
+        switch (type){
+            case "1":
+                return JSONArray.parseArray(largeBuildingControl.getAbnormalPointOne());
+            case "2":
+                return JSONArray.parseArray(largeBuildingControl.getAbnormalPointTwo());
+            case "3":
+                return JSONArray.parseArray(largeBuildingControl.getAbnormalPointThree());
+            case "4":
+                return JSONArray.parseArray(largeBuildingControl.getAbnormalPointFour());
+            default:
+                return new JSONArray();
         }
-        return new JSONArray();
-        /*String str = "[\n" +
-                "        {\n" +
-                "            \"alertTime\": \"2025-01-01 15:12:11\",\n" +
-                "            \"alertName\": \"液位过低\",\n" +
-                "            \"alertValue\": \"1.11m\",\n" +
-                "            \"alertEquipment\": \"液位计编号(如电表的话:为1# 1-5等)\",\n" +
-                "            \"alertPosition\": \"B2层2号配电室\"\n" +
-                "        },\n" +
-                "        {\n" +
-                "            \"alertTime\": \"2025-01-01 15:12:11\",\n" +
-                "            \"alertName\": \"设备离线\",\n" +
-                "            \"alertValue\": \"0.00m\",\n" +
-                "            \"alertEquipment\": \"液位计编号(如电表的话:为1# 1-5等)\",\n" +
-                "            \"alertPosition\": \"B2层2号配电室\"\n" +
-                "        }\n" +
-                "    ]";
-        return JSONArray.parseArray(str);*/
     }
 
     public JSONArray getWarnEvent(){

+ 3 - 0
project-zcustom/src/main/java/com/project/zcustom/service/unit/ILargeCarRankService.java

@@ -7,6 +7,7 @@ import com.project.common.core.domain.search.PageParamVo;
 import com.project.zcustom.domain.addional.LargeCarRank;
 
 import java.util.List;
+import java.util.Map;
 
 public interface ILargeCarRankService extends IService<LargeCarRank> {
 
@@ -77,4 +78,6 @@ public interface ILargeCarRankService extends IService<LargeCarRank> {
      */
     public void checkFieldExist(String field, String filedValue,String tips,Long id);
 
+    int upload(Map<String, Object> json);
+
 }

+ 34 - 0
project-zcustom/src/main/java/com/project/zcustom/service/unit/impl/LargeCarRankServiceImpl.java

@@ -1,5 +1,6 @@
 package com.project.zcustom.service.unit.impl;
 
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -7,16 +8,25 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.project.common.core.domain.search.PageParamVo;
 import com.project.common.utils.StringUtils;
+import com.project.zcustom.domain.addional.LargeCar;
 import com.project.zcustom.domain.addional.LargeCarRank;
+import com.project.zcustom.domain.basics.PlatAppOrg;
 import com.project.zcustom.mapper.unit.LargeCarRankMapper;
+import com.project.zcustom.service.service.basics.IPlatAppOrgService;
 import com.project.zcustom.service.unit.ILargeCarRankService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 public class LargeCarRankServiceImpl extends ServiceImpl<LargeCarRankMapper, LargeCarRank> implements ILargeCarRankService {
 
+    @Autowired
+    private IPlatAppOrgService platAppOrgService;
+
     /**
      * 组装查询条件
      */
@@ -151,4 +161,28 @@ public class LargeCarRankServiceImpl extends ServiceImpl<LargeCarRankMapper, Lar
             throw new RuntimeException(tips + "已存在");
         }
     }
+
+    public int upload(Map<String, Object> json){
+        try {
+            List<PlatAppOrg> orgList = platAppOrgService.selectAppCodeList();
+            Map<String, String> orgMap = orgList.stream().collect(Collectors.toMap(PlatAppOrg::getAppEncode, PlatAppOrg::getAppName, (v1, v2) -> v1));
+            List<LargeCarRank> list = JSON.parseArray(JSON.toJSONString(json.get("data")), LargeCarRank.class);
+            for (LargeCarRank largeCarRank : list){
+                if (!orgMap.containsKey(largeCarRank.getAppEncode())){
+                    continue;
+                }
+                LargeCarRank car = this.getOne(new QueryWrapper<LargeCarRank>().eq("app_encode", largeCarRank.getAppEncode()));
+                if (car != null) {
+                    largeCarRank.setId(car.getId());
+                    this.updateById(largeCarRank);
+                } else {
+                    this.save(largeCarRank);
+                }
+            }
+            return 1;
+        }catch (Exception e){
+            e.printStackTrace();
+            return 0;
+        }
+    }
 }

+ 45 - 1
project-zcustom/src/main/java/com/project/zcustom/tools/BuildingService.java

@@ -5,7 +5,7 @@ import com.project.common.utils.StringUtils;
 import com.project.common.utils.http.HttpUtils;
 import com.project.zcustom.domain.addional.LargeBuilding;
 import com.project.zcustom.domain.addional.LargeBuildingControl;
-import com.project.zcustom.domain.addional.LargeCar;
+import com.project.zcustom.domain.addional.LargeBuildingControlAmmeterDetail;
 import com.project.zcustom.domain.plat.PlatApiRecord;
 import com.project.zcustom.mapper.unit.PlatBuildingMapper;
 import com.project.zcustom.service.plat.IPlatApiRecordService;
@@ -13,6 +13,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @Description 楼宇运行监控接口
@@ -60,6 +62,48 @@ public class BuildingService {
     }
 
     /**
+     * 电表、异常明细
+     */
+    public void getLeftBuildingDataDetail(){
+        LargeBuildingControl largeBuildingControl = new LargeBuildingControl();
+        largeBuildingControl.setAbnormalPointOne(repeat(ApiUrlConfig.getControlAlertDetails(), "type=电表"));
+        largeBuildingControl.setAbnormalPointTwo(repeat(ApiUrlConfig.getControlAlertDetails(), "type=水浸"));
+        largeBuildingControl.setAbnormalPointThree(repeat(ApiUrlConfig.getControlAlertDetails(), "type=烟雾"));
+        largeBuildingControl.setAbnormalPointFour(repeat(ApiUrlConfig.getControlAlertDetails(), "type=液位"));
+        if (platBuildingMapper.getExist() > 0){
+            platBuildingMapper.updateBuildingControl(largeBuildingControl);
+        }
+        else platBuildingMapper.addBuildingControl(largeBuildingControl);
+
+        platBuildingMapper.deleteAmmeterDetails();
+        String[] arr = {
+                "光伏",
+                "制冷机组",
+                "公共照明",
+                "生活水泵",
+                "楼外设备",
+                "消防",
+                "供热设备",
+                "冷源泵",
+                "充电桩",
+                "电梯",
+                "厨房",
+                "热源泵",
+                "地下室",
+                "办公",
+                "通信辅助设备"
+        };
+        List<LargeBuildingControlAmmeterDetail> list = new ArrayList<>();
+        for (int i=0; i<arr.length; i++){
+            LargeBuildingControlAmmeterDetail largeBuildingControlAmmeterDetail = new LargeBuildingControlAmmeterDetail();
+            largeBuildingControlAmmeterDetail.setAmmeterDetail(repeat(ApiUrlConfig.getControlElectricityDetail(), "type=" + arr[i]));
+            largeBuildingControlAmmeterDetail.setType(arr[i]);
+            list.add(largeBuildingControlAmmeterDetail);
+        }
+        platBuildingMapper.addAmmeterDetails(list);
+    }
+
+    /**
      *  办公能耗 / 大楼安防 接口数据同步
      */
     public void getRightBuildingDataFirstHalf(){

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

@@ -83,6 +83,10 @@
         select week_electricity, room_electricity from large_plat_building_control
     </select>
 
+    <select id="getThisAmmeterDetail" parameterType="String" resultType="String">
+        select ammeter_detail from large_plat_building_ammeter_detail
+    </select>
+
     <select id="getTodayElectricity" resultType="String">
         select today_electricity from large_plat_building_control
     </select>
@@ -99,6 +103,10 @@
         select warn_device, water_device_air_num, water_control_normal_num, water_control_abnormal_num from large_plat_building_control
     </select>
 
+    <select id="getAbnormalPoint" resultMap="LargeBuildingControlResult">
+        select abnormal_point_one, abnormal_point_two, abnormal_point_three, abnormal_point_four from large_plat_building_control
+    </select>
+
     <select id="getWarnEvent" resultType="String">
         select warn_event_statistics from large_plat_building_control
     </select>
@@ -293,4 +301,19 @@
             water_state_two = #{waterStateTwo}
     </update>
 
+    <delete id="deleteAmmeterDetails">
+        delete from large_plat_building_ammeter_detail
+    </delete>
+
+    <insert id="addAmmeterDetails" parameterType="com.project.zcustom.domain.addional.LargeBuildingControlAmmeterDetail">
+        insert into large_plat_building_ammeter_detail (ammeter_detail, type)
+        values
+        <foreach collection="list" item="item" separator="," close=";">
+            <trim prefix="(" suffix=")" suffixOverrides=",">
+                #{item.ammeterDetail},
+                #{item.type}
+            </trim>
+        </foreach>
+    </insert>
+
 </mapper>