Browse Source

大屏接口,摄像头对接,成研数据对接

523096025 4 weeks ago
parent
commit
d3beba2a1b
37 changed files with 842 additions and 78 deletions
  1. 2 2
      app-admin/pom.xml
  2. 114 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/controller/MapLocationController.java
  3. 30 2
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/controller/QiXiangController.java
  4. 45 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/entity/MapLocation.java
  5. 1 1
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/entity/QiXiang.java
  6. 12 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/haikang/ShuiWeiData.java
  7. 21 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/haikang/ShuiWeiDataList.java
  8. 15 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/haikang/ShuiWeiResponseData.java
  9. 16 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/mapper/MapLocationMapper.java
  10. 11 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/mapper/QiXiangMapper.java
  11. 16 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/service/IMapLocationService.java
  12. 5 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/service/IQiXiangService.java
  13. 58 22
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/service/impl/HuiCunServiceImpl.java
  14. 20 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/service/impl/MapLocationServiceImpl.java
  15. 31 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/service/impl/QiXiangServiceImpl.java
  16. 78 22
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/timer/HaiKangTimer.java
  17. 76 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/timer/HttpGetCameraPreviewURL.java
  18. 1 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/timer/QiXiangTimer.java
  19. 18 0
      app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/vo/QiXiangVo.java
  20. 50 4
      app-admin/src/main/java/com/ruoyi/web/controller/system/EventController.java
  21. 0 1
      app-admin/src/main/java/com/ruoyi/web/controller/system/EventTypeAssigneeController.java
  22. 15 0
      app-admin/src/main/java/com/ruoyi/web/controller/system/GovernmentInfoController.java
  23. 64 13
      app-admin/src/main/java/com/ruoyi/web/controller/system/LotVideoController.java
  24. 2 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/event/EventAddRequest.java
  25. 1 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/event/EventQueryRequest.java
  26. 1 0
      app-admin/src/main/java/com/ruoyi/web/domain/dto/villageSpecial/VillageSpecialQueryRequest.java
  27. 1 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/HouseInfoVO.java
  28. 2 0
      app-admin/src/main/java/com/ruoyi/web/domain/vo/LotVideoVO.java
  29. 2 0
      app-admin/src/main/java/com/ruoyi/web/service/EventService.java
  30. 2 0
      app-admin/src/main/java/com/ruoyi/web/service/GovernmentInfoService.java
  31. 27 8
      app-admin/src/main/java/com/ruoyi/web/service/impl/EventServiceImpl.java
  32. 20 0
      app-admin/src/main/java/com/ruoyi/web/service/impl/GovernmentInfoServiceImpl.java
  33. 1 1
      app-admin/src/main/java/com/ruoyi/web/service/impl/HouseInfoServiceImpl.java
  34. 1 1
      app-admin/src/main/java/com/ruoyi/web/service/impl/LotEnvironmentServiceImpl.java
  35. 1 1
      app-admin/src/main/resources/application.yml
  36. 17 0
      app-admin/src/main/resources/mapper/MapLocationMapper.xml
  37. 65 0
      app-admin/src/main/resources/mapper/QiXiangMapper.xml

+ 2 - 2
app-admin/pom.xml

@@ -33,8 +33,8 @@
             <groupId>com.hikvision.ga</groupId>
             <artifactId>artemis-http-client</artifactId>
             <version>1.1.15.RELEASE</version>
-            <scope>system</scope>
-            <systemPath>${project.basedir}/libs/artemis-http-client-1.1.15.RELEASE.jar</systemPath>
+<!--            <scope>system</scope>-->
+<!--            <systemPath>${project.basedir}/libs/artemis-http-client-1.1.15.RELEASE.jar</systemPath>-->
         </dependency>
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>

+ 114 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/controller/MapLocationController.java

@@ -0,0 +1,114 @@
+package com.ruoyi.web.controller.chenyanlogin.controller;
+
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.web.controller.chenyanlogin.entity.MapLocation;
+import com.ruoyi.web.controller.chenyanlogin.service.IMapLocationService;
+import com.ruoyi.web.domain.dto.villageSpecial.VillageSpecialAddRequest;
+import com.ruoyi.web.domain.dto.villageSpecial.VillageSpecialEditRequest;
+import com.ruoyi.web.domain.dto.villageSpecial.VillageSpecialQueryRequest;
+import com.ruoyi.web.domain.entity.ProductionData;
+import com.ruoyi.web.domain.vo.VillageSpecial.BaseVillageSpecialVO;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.error;
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2025-10-11
+ */
+@RestController
+@RequestMapping("/map-location")
+public class MapLocationController {
+    @Autowired
+    private IMapLocationService mapLocationService;
+
+    @ApiOperation("添加")
+    @PostMapping("/add")
+    public AjaxResult addVillageSpecial(@RequestBody MapLocation mapLocation) {
+        return success( mapLocationService.save(mapLocation));
+    }
+
+    /**
+     * 删除特色产业
+     *
+     * @param paramsMap
+     * @return
+     */
+    @ApiOperation("删除")
+    @PostMapping("/delete")
+    @Transactional
+    public AjaxResult deleteVillageSpecial(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        if (StrUtil.isBlank(ids)) {
+            return error("请求参数为空");
+        }
+        for (String s :ids.split(",")) {
+            mapLocationService.removeById(s);
+        }
+        return error("删除失败");
+    }
+
+
+
+    @ApiOperation("编辑")
+    @PostMapping("/edit")
+    public AjaxResult editVillageSpecial(@RequestBody MapLocation mapLocation) {
+        if (mapLocation == null) {
+            return error("请求参数为空");
+        }
+        mapLocationService.updateById(mapLocation);
+        return AjaxResult.success();
+    }
+
+
+
+    @ApiOperation("根据id获取")
+    @GetMapping("/get")
+    public AjaxResult getVillageSpecialById(@RequestParam int id) {
+        if (ObjectUtil.isEmpty(id)) {
+            return error("请求参数为空");
+        }
+
+        return success(mapLocationService.getById(id));
+    }
+
+    @ApiOperation("分页获取")
+    @PostMapping("/list/page")
+    public AjaxResult listVillageSpecialByPage(@RequestBody VillageSpecialQueryRequest villageSpecialQueryRequest) {
+        if (villageSpecialQueryRequest == null) {
+            return error("请求参数为空");
+        }
+        Page<MapLocation> page = mapLocationService.page(new Page<MapLocation>(villageSpecialQueryRequest.getPageNum(), villageSpecialQueryRequest.getPageSize())
+        ,new QueryWrapper<MapLocation>()
+                        .eq(ObjectUtil.isNotNull(villageSpecialQueryRequest.getType()),"type",villageSpecialQueryRequest.getType())
+                        .like(StringUtils.isNotEmpty(villageSpecialQueryRequest.getName()),"name",villageSpecialQueryRequest.getName()));
+        return success(page);
+    }
+
+
+    @ApiOperation("获取全部")
+    @GetMapping("/list/list")
+    public AjaxResult getVillageSpecialProductList(@RequestBody VillageSpecialQueryRequest villageSpecialQueryRequest) {
+        return success( mapLocationService.list(new QueryWrapper<MapLocation>()
+                .eq(ObjectUtil.isNotNull(villageSpecialQueryRequest.getType()),"type",villageSpecialQueryRequest.getType())
+                .like(StringUtils.isNotEmpty(villageSpecialQueryRequest.getName()),"name",villageSpecialQueryRequest.getName())));
+    }
+
+}

+ 30 - 2
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/controller/QiXiangController.java

@@ -1,9 +1,18 @@
 package com.ruoyi.web.controller.chenyanlogin.controller;
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.web.controller.chenyanlogin.entity.QiXiang;
+import com.ruoyi.web.controller.chenyanlogin.service.HuiCunService;
+import com.ruoyi.web.controller.chenyanlogin.service.IQiXiangService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
 
 /**
  * <p>
@@ -16,5 +25,24 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/qi-xiang")
 public class QiXiangController {
+    @Autowired
+    private IQiXiangService qiXiangService;
+
+    @ApiOperation("获取最近气象接口")
+    @GetMapping("/getLastQiXiang")
+    public AjaxResult getBasicData(){
+
+        return success(qiXiangService.getOne(new QueryWrapper<QiXiang>().orderByDesc("id").last("limit 1")));
+
+    }
+
+
+    @ApiOperation("获取温湿度曲线")
+    @PostMapping("/getListQiXiang")
+    public AjaxResult getListQiXiang(@RequestBody Map<String,String> map){
+
+        return success(qiXiangService.getListQiXiang(map));
+
+    }
 
 }

+ 45 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/entity/MapLocation.java

@@ -0,0 +1,45 @@
+package com.ruoyi.web.controller.chenyanlogin.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2025-10-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("map_location")
+public class MapLocation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String longitude;
+
+    private String latitude;
+
+    private String name;
+
+    private String geoData;
+
+    private Integer type;
+
+    private Integer otherId;
+
+    private String iconUrl;
+
+
+}

+ 1 - 1
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/entity/QiXiang.java

@@ -37,7 +37,7 @@ public class QiXiang implements Serializable {
 
     private String windSpeed;
 
-    private String windDirectionstr;
+    private String windDirectionStr;
 
     private String windDirection;
 

+ 12 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/haikang/ShuiWeiData.java

@@ -0,0 +1,12 @@
+package com.ruoyi.web.controller.chenyanlogin.haikang;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ShuiWeiData {
+    private Integer pageNo;
+    private Integer pageSize;
+    private List<ShuiWeiDataList> list;
+}

+ 21 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/haikang/ShuiWeiDataList.java

@@ -0,0 +1,21 @@
+package com.ruoyi.web.controller.chenyanlogin.haikang;
+
+import lombok.Data;
+
+@Data
+public class ShuiWeiDataList {
+     private  String regionIndexCode;
+     private  boolean latestIsAlarm;
+     private  Double measureHigh;
+     private  int channelNo;
+     private  double alarmHigh;
+     private  String indexCode;
+     private  int defenseFlag;
+     private  double alarmLow;
+     private  double measureLow;
+     private  String sensorType;
+     private  String name;
+     private  String latestValue;
+     private  String parentIndexCode;
+
+}

+ 15 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/haikang/ShuiWeiResponseData.java

@@ -0,0 +1,15 @@
+package com.ruoyi.web.controller.chenyanlogin.haikang;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ShuiWeiResponseData {
+    private String msg;
+    private int code;
+
+    private ShuiWeiData data;
+ 
+    // getters and setters
+}

+ 16 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/mapper/MapLocationMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.controller.chenyanlogin.mapper;
+
+import com.ruoyi.web.controller.chenyanlogin.entity.MapLocation;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2025-10-11
+ */
+public interface MapLocationMapper extends BaseMapper<MapLocation> {
+
+}

+ 11 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/mapper/QiXiangMapper.java

@@ -1,7 +1,13 @@
 package com.ruoyi.web.controller.chenyanlogin.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.ruoyi.web.controller.chenyanlogin.entity.QiXiang;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.web.controller.chenyanlogin.vo.QiXiangVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +19,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface QiXiangMapper extends BaseMapper<QiXiang> {
 
+    List<QiXiangVo> getListQiXiangDay(@Param(Constants.WRAPPER) QueryWrapper<QiXiang> qiXiangQueryWrapper);
+
+    List<QiXiangVo> getListQiXiangMonth(@Param(Constants.WRAPPER)QueryWrapper<QiXiang> qiXiangQueryWrapper);
+
+    List<QiXiangVo> getListQiXiangWeek(@Param(Constants.WRAPPER)QueryWrapper<QiXiang> qiXiangQueryWrapper);
 }

+ 16 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/service/IMapLocationService.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.controller.chenyanlogin.service;
+
+import com.ruoyi.web.controller.chenyanlogin.entity.MapLocation;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2025-10-11
+ */
+public interface IMapLocationService extends IService<MapLocation> {
+
+}

+ 5 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/service/IQiXiangService.java

@@ -2,6 +2,10 @@ package com.ruoyi.web.controller.chenyanlogin.service;
 
 import com.ruoyi.web.controller.chenyanlogin.entity.QiXiang;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.web.controller.chenyanlogin.vo.QiXiangVo;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IQiXiangService extends IService<QiXiang> {
 
+    List<QiXiangVo> getListQiXiang(Map<String,String> map);
 }

+ 58 - 22
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/service/impl/HuiCunServiceImpl.java

@@ -8,6 +8,7 @@ import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.web.controller.chenyanlogin.ChengYanAesUtil;
 import com.ruoyi.web.controller.chenyanlogin.dto.*;
 import com.ruoyi.web.controller.chenyanlogin.dto.HouseVillagerRelation;
@@ -83,9 +84,13 @@ public class HuiCunServiceImpl implements HuiCunService {
         requestParam.put("timestamp", System.currentTimeMillis());
         Map<String, Object> responseData = getMap(requestParam, BASIC_DATA);
         if (responseData.get("code").equals(200)) {
-            JSONObject dataStr = (JSONObject) responseData.get("data");
-            BasicDataDto basicDataDto = JSONUtil.toBean(dataStr, BasicDataDto.class);
-            return success(basicDataDto);
+            Object data = responseData.get("data");
+            if ( data instanceof  JSONObject) {
+                JSONObject dataStr = (JSONObject) responseData.get("data");
+                BasicDataDto basicDataDto = JSONUtil.toBean(dataStr, BasicDataDto.class);
+                return success(basicDataDto);
+            }
+            return success(null);
         } else {
             return error("同步失败" + responseData.get("message"));
         }
@@ -99,10 +104,21 @@ public class HuiCunServiceImpl implements HuiCunService {
         requestParam.put("nonce", UUID.randomUUID().toString());
         requestParam.put("timestamp", System.currentTimeMillis());
         Map<String, Object> responseData = getMap(requestParam, CARE_PEOPLE_DATA);
-        if (responseData.get("code").equals(200)) {
-            JSONObject dataStr = (JSONObject) responseData.get("data");
-            CarePeopleData carePeopleData = JSONUtil.toBean(dataStr, CarePeopleData.class);
-            return success(carePeopleData);
+        System.out.println(responseData);
+
+
+//        String data = (String)responseData.get("data");
+        Object data = responseData.get("data");
+        if (responseData.get("code").equals(200) ) {
+            if ( data instanceof  JSONObject){
+                JSONObject dataStr = (JSONObject) responseData.get("data");
+                CarePeopleData carePeopleData = JSONUtil.toBean(dataStr, CarePeopleData.class);
+                return success(carePeopleData);
+            }else {
+                return success(null);
+            }
+
+
         } else {
             return error("同步失败" + responseData.get("message"));
         }
@@ -116,9 +132,13 @@ public class HuiCunServiceImpl implements HuiCunService {
         requestParam.put("timestamp", System.currentTimeMillis());
         Map<String, Object> responseData = getMap(requestParam, SNAPSHOT_REPORT_DATA);
         if (responseData.get("code").equals(200)) {
-            JSONObject dataStr = (JSONObject) responseData.get("data");
-            SnapshotReportDto snapshotReportDto = JSONUtil.toBean(dataStr, SnapshotReportDto.class);
-            return success(snapshotReportDto);
+            Object data = responseData.get("data");
+            if ( data instanceof  JSONObject) {
+                JSONObject dataStr = (JSONObject) responseData.get("data");
+                SnapshotReportDto snapshotReportDto = JSONUtil.toBean(dataStr, SnapshotReportDto.class);
+                return success(snapshotReportDto);
+            }
+            return success(null);
         } else {
             return error("同步失败" + responseData.get("message"));
         }
@@ -133,9 +153,13 @@ public class HuiCunServiceImpl implements HuiCunService {
         requestParam.put("timestamp", System.currentTimeMillis());
         Map<String, Object> responseData = getMap(requestParam, ZHWL_DEVICE_DATA);
         if (responseData.get("code").equals(200)) {
-            JSONObject dataStr = (JSONObject) responseData.get("data");
-            ZhwlDeviceDataDto snapshotReportDto = JSONUtil.toBean(dataStr, ZhwlDeviceDataDto.class);
-            return success(snapshotReportDto);
+            Object data = responseData.get("data");
+            if ( data instanceof  JSONObject) {
+                JSONObject dataStr = (JSONObject) responseData.get("data");
+                ZhwlDeviceDataDto snapshotReportDto = JSONUtil.toBean(dataStr, ZhwlDeviceDataDto.class);
+                return success(snapshotReportDto);
+            }
+            return success(null);
         } else {
             return error("同步失败" + responseData.get("message"));
         }
@@ -173,8 +197,12 @@ public class HuiCunServiceImpl implements HuiCunService {
         requestParam.put("timestamp", System.currentTimeMillis());
         Map<String, Object> responseData = getMap(requestParam, POINT_RANK_DATA);
         if (responseData.get("code").equals(200)) {
-            List<JSONObject> dataStr = (List<JSONObject>) responseData.get("data");
-            return success(dataStr);
+            Object data = responseData.get("data");
+            if ( data instanceof  JSONObject) {
+                List<JSONObject> dataStr = (List<JSONObject>) responseData.get("data");
+                return success(dataStr);
+            }
+            return  success(null);
         } else {
             return error("同步失败" + responseData.get("message"));
         }
@@ -189,9 +217,13 @@ public class HuiCunServiceImpl implements HuiCunService {
         requestParam.put("timestamp", System.currentTimeMillis());
         Map<String, Object> responseData = getMap(requestParam, CIVILIZED_DATA);
         if (responseData.get("code").equals(200)) {
-            JSONObject dataStr = (JSONObject) responseData.get("data");
-            CivilizedDataDto civilizedDataDto = JSONUtil.toBean(dataStr, CivilizedDataDto.class);
-            return success(civilizedDataDto);
+            Object data = responseData.get("data");
+            if ( data instanceof  JSONObject) {
+                JSONObject dataStr = (JSONObject) responseData.get("data");
+                CivilizedDataDto civilizedDataDto = JSONUtil.toBean(dataStr, CivilizedDataDto.class);
+                return success(civilizedDataDto);
+            }
+            return success(null);
         } else {
             return error("同步失败" + responseData.get("message"));
         }
@@ -205,11 +237,15 @@ public class HuiCunServiceImpl implements HuiCunService {
         requestParam.put("timestamp", System.currentTimeMillis());
         Map<String, Object> responseData = getMap(requestParam, VILLAGE_NEWS_DATA);
         if (responseData.get("code").equals(200)) {
-            System.out.println(responseData);
+            Object data = responseData.get("data");
+            if ( data instanceof  JSONObject) {
+                System.out.println(responseData);
 //            List<VillageNewsDataDto> dataStr = (List<VillageNewsDataDto>) responseData.get("data");
-            List<VillageNewsDataDto> dataStr =   JSONUtil.toList( (JSONArray) responseData.get("data"), VillageNewsDataDto.class
-                     );
-            return success(dataStr);
+                List<VillageNewsDataDto> dataStr = JSONUtil.toList((JSONArray) responseData.get("data"), VillageNewsDataDto.class
+                );
+                return success(dataStr);
+            }
+           return success(null);
         } else {
             return error("同步失败" + responseData.get("message"));
         }

+ 20 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/service/impl/MapLocationServiceImpl.java

@@ -0,0 +1,20 @@
+package com.ruoyi.web.controller.chenyanlogin.service.impl;
+
+import com.ruoyi.web.controller.chenyanlogin.entity.MapLocation;
+import com.ruoyi.web.controller.chenyanlogin.mapper.MapLocationMapper;
+import com.ruoyi.web.controller.chenyanlogin.service.IMapLocationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2025-10-11
+ */
+@Service
+public class MapLocationServiceImpl extends ServiceImpl<MapLocationMapper, MapLocation> implements IMapLocationService {
+
+}

+ 31 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/service/impl/QiXiangServiceImpl.java

@@ -1,11 +1,20 @@
 package com.ruoyi.web.controller.chenyanlogin.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.web.controller.chenyanlogin.entity.QiXiang;
 import com.ruoyi.web.controller.chenyanlogin.mapper.QiXiangMapper;
 import com.ruoyi.web.controller.chenyanlogin.service.IQiXiangService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.web.controller.chenyanlogin.vo.QiXiangVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +26,26 @@ import org.springframework.stereotype.Service;
 @Service
 public class QiXiangServiceImpl extends ServiceImpl<QiXiangMapper, QiXiang> implements IQiXiangService {
 
+    @Autowired
+    private QiXiangMapper qiXiangMapper;
+
+    @Override
+    public List<QiXiangVo> getListQiXiang(Map<String,String> map) {
+        String startDate = map.get("startDate");
+        String endDate = map.get("endDate");
+        String type = map.get("type");
+
+        QueryWrapper<QiXiang> qiXiangQueryWrapper = new QueryWrapper<>();
+        qiXiangQueryWrapper.ge(StringUtils.isNotEmpty(startDate),"time",startDate);
+        qiXiangQueryWrapper.le(StringUtils.isNotEmpty(endDate),"time",endDate);
+        List<QiXiangVo> list  = new ArrayList<>();
+        if ("1".equals(type)){
+            list =   qiXiangMapper.getListQiXiangDay(qiXiangQueryWrapper);
+        }else if ("2".equals(type)){
+            list =   qiXiangMapper.getListQiXiangWeek(qiXiangQueryWrapper);
+        }else {
+            list =   qiXiangMapper.getListQiXiangMonth(qiXiangQueryWrapper);
+        }
+        return list;
+    }
 }

+ 78 - 22
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/timer/HaiKangTimer.java

@@ -5,11 +5,11 @@ package com.ruoyi.web.controller.chenyanlogin.timer;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
-import com.ruoyi.web.controller.chenyanlogin.haikang.CameraInfo;
-import com.ruoyi.web.controller.chenyanlogin.haikang.CameraResponse;
-import com.ruoyi.web.controller.chenyanlogin.haikang.CameraStatusData;
-import com.ruoyi.web.controller.chenyanlogin.haikang.CameraStatusResponse;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.web.controller.chenyanlogin.haikang.*;
+import com.ruoyi.web.domain.entity.LotEnvironment;
 import com.ruoyi.web.domain.entity.LotVideo;
+import com.ruoyi.web.service.LotEnvironmentService;
 import com.ruoyi.web.service.LotVideoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
@@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.CrossOrigin;
 
 import javax.xml.crypto.Data;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 @Configuration
@@ -30,12 +31,17 @@ public class HaiKangTimer {
 
     @Autowired
     private LotVideoService lotVideoService;
+    @Autowired
+    private LotEnvironmentService lotEnvironmentService;
 
    private  String camerList =  "/api/resource/v1/camera/advance/cameraList";
     private  String  cameras =  "/api/resource/v1/cameras/indexCode";
 //   private  String  =  "/api/resource/v1/camera/advance/cameraList";
     //获取传感器
-   private  String  search =  "/api/pems/v1/monitor/search";
+//   private  String  search =  "/api/pems/v1/monitor/search";
+    //查询传感器数据
+   private  String  search =  "/api/pems/v1/sensor/search";
+   private  String  indexCode =  "847110a50d54480cbdb64f6e0feb49e3";
 
     //获取所有监控
     @Transactional
@@ -52,18 +58,32 @@ public class HaiKangTimer {
         CameraResponse cameraResponse = JSON.parseObject(getCameraPreviewURL, CameraResponse.class);
         if (ObjectUtil.isNotEmpty(cameraResponse) && "0".equals(cameraResponse.getCode())){
             List<CameraInfo> list = cameraResponse.getData().getList();
-            lotVideoService.remove(null);
             for (CameraInfo cameraInfo : list) {
-                LotVideo video = new LotVideo();
-                video.setCreateTime(cameraInfo.getCreateTime());
-                video.setName(cameraInfo.getCameraName());
-                video.setLocation(cameraInfo.getCameraName());
-                video.setUpdateTime(cameraInfo.getUpdateTime());
-                video.setRegionIndexCode(cameraInfo.getRegionIndexCode());
-                video.setCameraIndexCode(cameraInfo.getCameraIndexCode());
-                video.setCapabilitySetName(cameraInfo.getCapabilitySetName());
-                video.setEncodeDevIndexCode(cameraInfo.getEncodeDevIndexCode());
-                lotVideoService.save(video);
+                LotVideo video = lotVideoService.getOne(new QueryWrapper<LotVideo>().eq("camera_index_code", cameraInfo.getCameraIndexCode()));
+                if (ObjectUtil.isEmpty(video)){
+                     video = new LotVideo();
+                    video.setCreateTime(cameraInfo.getCreateTime());
+                    video.setName(cameraInfo.getCameraName());
+                    video.setLocation(cameraInfo.getCameraName());
+                    video.setUpdateTime(cameraInfo.getUpdateTime());
+                    video.setRegionIndexCode(cameraInfo.getRegionIndexCode());
+                    video.setCameraIndexCode(cameraInfo.getCameraIndexCode());
+                    video.setCapabilitySetName(cameraInfo.getCapabilitySetName());
+                    video.setEncodeDevIndexCode(cameraInfo.getEncodeDevIndexCode());
+                    lotVideoService.save(video);
+                }else {
+                    video.setCreateTime(cameraInfo.getCreateTime());
+                    video.setName(cameraInfo.getCameraName());
+                    video.setLocation(cameraInfo.getCameraName());
+                    video.setUpdateTime(cameraInfo.getUpdateTime());
+                    video.setRegionIndexCode(cameraInfo.getRegionIndexCode());
+                    video.setCameraIndexCode(cameraInfo.getCameraIndexCode());
+                    video.setCapabilitySetName(cameraInfo.getCapabilitySetName());
+                    video.setEncodeDevIndexCode(cameraInfo.getEncodeDevIndexCode());
+                    lotVideoService.updateById(video);
+                }
+
+
             }
         }
 
@@ -92,18 +112,54 @@ public class HaiKangTimer {
     }
 
     //获取传感器
-    @Scheduled(cron = "0 0 0 * * ? ")
-//    @Scheduled(cron = "0 * * * * ? ")
+//    @Scheduled(cron = "0 0 0 * * ? ")
+    @Scheduled(cron = "0 0 * * * ? ")
     public  void search() throws Exception {
+        System.out.println("水位开始");
+
         JSONObject jsonBody = new JSONObject();
         jsonBody.put("pageNo",  1);
-        jsonBody.put("pageSize",  10000);
+        jsonBody.put("pageSize",  1000);
+        jsonBody.put("indexCode",  indexCode);
         String body = jsonBody.toJSONString();
         String getCameraPreviewURL = GetCameraPreviewURL.GetCameraPreviewURL(search, body);
-        CameraStatusResponse cameraResponse = JSON.parseObject(getCameraPreviewURL, CameraStatusResponse.class);
-        if (ObjectUtil.isNotEmpty(cameraResponse) && "0".equals(cameraResponse.getCode())){
-            System.out.println(cameraResponse);
+
+        ShuiWeiResponseData cameraResponse = JSON.parseObject(getCameraPreviewURL, ShuiWeiResponseData.class);
+        if (0 ==cameraResponse.getCode()){
+            ShuiWeiData data = cameraResponse.getData();
+            List<ShuiWeiDataList> list = data.getList();
+            LotEnvironment lotEnvironment = new LotEnvironment();
+            for (ShuiWeiDataList shuiWeiDataList : list) {
+                String latestValue = shuiWeiDataList.getLatestValue();
+                if ("wl".equals(shuiWeiDataList.getSensorType())){
+                    lotEnvironment.setWaterLevel(latestValue);
+                }
+                if ("precipitation".equals(shuiWeiDataList.getSensorType())){
+                    lotEnvironment.setRainfall(latestValue);
+                }
+            }
+            lotEnvironment.setDate(new Date());
+            lotEnvironment.setDate(new Date());
+            lotEnvironmentService.save(lotEnvironment);
         }
+
+    }
+
+    public static void main(String[] args) throws Exception {
+        JSONObject jsonBody = new JSONObject();
+        jsonBody.put("pageNo",  1);
+        jsonBody.put("pageSize",  1000);
+//        jsonBody.put("type",  "wl");
+        jsonBody.put("indexCode",  "847110a50d54480cbdb64f6e0feb49e3");
+//        jsonBody.put("parentIndexCode",  "7438a19b5dd3443ca9a9a67e45ad5c8a");
+        String body = jsonBody.toJSONString();
+        System.out.println("sssssss"+body);
+//        String getCameraPreviewURL = GetCameraPreviewURL.GetCameraPreviewURL("/api/pems/v1/monitor/search", body);
+        String getCameraPreviewURL = GetCameraPreviewURL.GetCameraPreviewURL("/api/pems/v1/sensor/search", body);
+
+        ShuiWeiResponseData cameraResponse = JSON.parseObject(getCameraPreviewURL, ShuiWeiResponseData.class);
+        System.out.println(cameraResponse);
+
     }
 
 

+ 76 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/timer/HttpGetCameraPreviewURL.java

@@ -0,0 +1,76 @@
+package com.ruoyi.web.controller.chenyanlogin.timer;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.hikvision.artemis.sdk.ArtemisHttpUtil;
+import com.hikvision.artemis.sdk.config.ArtemisConfig;
+
+import java.util.HashMap;
+import java.util.Map;
+
+
+public  class HttpGetCameraPreviewURL {
+
+    public   static   String GetCameraPreviewURL(String url,String body) throws Exception {
+
+        /**
+        * STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数.
+        */
+        ArtemisConfig artemisConfig = new ArtemisConfig("218.203.180.136:10043",
+                "29243872",
+                "RyS0Aihgt7jP4EaK0bJ5");
+
+
+            /**
+            * STEP2:设置OpenAPI接口的上下文
+            */
+            final String ARTEMIS_PATH = "/artemis";
+
+            /**
+            * STEP3:设置接口的URI地址
+            */
+             String previewURLsApi = ARTEMIS_PATH + url ;
+
+            Map <String, String> path = new HashMap <String, String>(2) {
+            {
+                put("http://", previewURLsApi);//根据现场环境部署确认是http还是https
+            }
+            };
+
+            /**
+            * STEP4:设置参数提交方式
+            */
+            String contentType = "application/json";
+
+            /**
+            * STEP5:组装请求参数
+            */
+
+
+            /**
+            * STEP6:调用接口
+            */
+
+            String result = ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path, body, null, null,
+            contentType , null);// post请求application/json类型参数
+            return result;
+        }
+
+        public static   void main(String[] args) throws Exception {
+
+
+            JSONObject jsonBody = new JSONObject();
+            jsonBody.put("cameraIndexCode", "cameraIndexCode");
+            jsonBody.put("streamType", 0);
+            jsonBody.put("protocol", "hls");
+            jsonBody.put("transmode", 0);
+            jsonBody.put("streamform", "ps");
+
+            String body = jsonBody.toJSONString();
+
+            String getCameraPreviewURL = HttpGetCameraPreviewURL.GetCameraPreviewURL("/api/video/v2/cameras/previewURLs", body);
+            Map<String,Object> cameraResponse = JSON.parseObject(getCameraPreviewURL, Map.class);
+
+
+        }
+}

+ 1 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/timer/QiXiangTimer.java

@@ -27,6 +27,7 @@ public class QiXiangTimer {
 
     //获取气象数据
     @Scheduled(cron = "0 0/10 * * * ? ")
+//    @Scheduled(cron = "0 * * * * ? ")
     public  void statusCamerList() throws Exception {
         ResponseEntity<QiXiangDto> forEntity = restTemplate.getForEntity("https://yun-api.bigdata5s.com/open-api/open/weather/getCurrentDeviceData?username=18802880368&password=123456&deviceId=1965660599109943299", QiXiangDto.class);
         if (forEntity.getBody().getCode() == 200){

+ 18 - 0
app-admin/src/main/java/com/ruoyi/web/controller/chenyanlogin/vo/QiXiangVo.java

@@ -0,0 +1,18 @@
+package com.ruoyi.web.controller.chenyanlogin.vo;
+
+import lombok.Data;
+
+@Data
+public class QiXiangVo {
+
+    private  String  dTime;
+    private  String  airTemperature;
+    private  String  airHumidity;
+    private  String  windSpeed;
+    private  String  windDirection;
+    private  String  lightIntensity;
+    private  String  rainfall;
+    private  String  airp;
+    private  String  airPm25;
+
+}

+ 50 - 4
app-admin/src/main/java/com/ruoyi/web/controller/system/EventController.java

@@ -1,7 +1,10 @@
 package com.ruoyi.web.controller.system;
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -9,16 +12,18 @@ import com.ruoyi.web.domain.dto.event.EventAddRequest;
 import com.ruoyi.web.domain.dto.event.EventHandleRequest;
 import com.ruoyi.web.domain.dto.event.EventQueryRequest;
 import com.ruoyi.web.domain.dto.event.EventReassignRequest;
-import com.ruoyi.web.domain.entity.Event;
+import com.ruoyi.web.domain.entity.*;
 import com.ruoyi.web.domain.vo.event.EventVO;
-import com.ruoyi.web.service.EventService;
+import com.ruoyi.web.service.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.aspectj.weaver.ast.Var;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -81,7 +86,7 @@ public class EventController extends BaseController {
      */
     @ApiOperation("根据ID查询事件详情(支持管理员和负责人查询)")
     @GetMapping("/get")
-    public AjaxResult getEventById(@RequestParam int id) {
+    public AjaxResult getEventById(@RequestParam Integer id) {
         if (ObjectUtil.isEmpty(id)) {
             return error("请求参数为空");
         }
@@ -102,6 +107,20 @@ public class EventController extends BaseController {
         return AjaxResult.success(listEventVOByPage);
     }
 
+    /**
+     * 分页查询事件列表(村民查询)
+     */
+    @ApiOperation("村民分页获取自己事件列表")
+    @PostMapping("/list/pageCunMin")
+    public AjaxResult pageCunMin(@RequestBody EventQueryRequest eventQueryRequest) {
+        if (eventQueryRequest == null) {
+            return error("请求参数为空");
+        }
+        Page<Event> listEventVOByPage = eventService.pageCunMin(eventQueryRequest);
+        return AjaxResult.success(listEventVOByPage);
+    }
+
+
 //    /**
 //     * 根据事件类型获取负责人列表(管理员)
 //     */
@@ -147,7 +166,6 @@ public class EventController extends BaseController {
      */
     @ApiOperation("重新派发事件")
     @PostMapping("/reassign")
-    @PreAuthorize("@ss.hasPermi('system:role:admin')")
     public AjaxResult reassignEvent(@RequestBody EventReassignRequest eventReassignRequest) {
         try {
             Integer eventId = eventReassignRequest.getEventId();
@@ -159,4 +177,32 @@ public class EventController extends BaseController {
         }
     }
 
+    @Autowired
+    private DrowningWarningService drowningWarningService;
+    @Autowired
+    private EarthquakeWarningService earthquakeWarningService;
+    @Autowired
+    private EnvironmentWarningService environmentWarningService;
+    @Autowired
+    private EmergencyService emergencyService;
+
+    @ApiOperation("事件数量等")
+    @GetMapping("/countEvent")
+    public AjaxResult countEvent() {
+        DateTime dateTime = DateUtil.beginOfDay(new Date());
+        Map map = new HashMap();
+        map.put("envetNum",   eventService.count(new QueryWrapper<Event>().ge("occur_time",dateTime)));
+        map.put("daiBanNum",   eventService.count(new QueryWrapper<Event>().eq("status",0)));
+
+        map.put("warningNum",
+                drowningWarningService.count(new QueryWrapper<DrowningWarning>().ge("create_time", dateTime))
+        +  earthquakeWarningService.count(new QueryWrapper<EarthquakeWarning>().ge("create_time", dateTime))
+        + environmentWarningService.count(new QueryWrapper<EnvironmentWarning>().ge("create_time", dateTime)));
+
+        map.put("emergencyNum",
+                emergencyService.count(new QueryWrapper<Emergency>().ge("create_time", dateTime))
+                        );
+        return success(map);
+    }
+
 } 

+ 0 - 1
app-admin/src/main/java/com/ruoyi/web/controller/system/EventTypeAssigneeController.java

@@ -102,7 +102,6 @@ public class EventTypeAssigneeController extends BaseController {
      */
     @ApiOperation("根据事件类型获取负责人列表(管理员)")
     @GetMapping("/list/user")
-    @PreAuthorize("@ss.hasPermi('system:role:admin')")
     public AjaxResult getListEventPersonInfoVOByType(@RequestParam Integer type) {
         if (type == null) {
             return error("请求参数为空");

+ 15 - 0
app-admin/src/main/java/com/ruoyi/web/controller/system/GovernmentInfoController.java

@@ -156,4 +156,19 @@ public class GovernmentInfoController {
         Page<GovernmentInfoVO> listGovernmentInfoByPageVO = governmentInfoService.getListGovernmentInfoByPage(governmentInfoQueryRequest);
         return success(listGovernmentInfoByPageVO);
     }
+    /**
+     * 分页获取政府信息列表
+     *
+     * @param governmentInfoQueryRequest
+     * @return
+     */
+    @ApiOperation("分页获取政府已发布信息列表")
+    @PostMapping("/list/pageFaBu")
+    public AjaxResult pageFaBu(@RequestBody GovernmentInfoQueryRequest governmentInfoQueryRequest) {
+        if (governmentInfoQueryRequest == null) {
+            return error("请求参数为空");
+        }
+        Page<GovernmentInfoVO> listGovernmentInfoByPageVO = governmentInfoService.pageFaBu(governmentInfoQueryRequest);
+        return success(listGovernmentInfoByPageVO);
+    }
 }

+ 64 - 13
app-admin/src/main/java/com/ruoyi/web/controller/system/LotVideoController.java

@@ -3,6 +3,7 @@ package com.ruoyi.web.controller.system;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.io.unit.DataUnit;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
@@ -50,6 +51,7 @@ public class LotVideoController {
     private  String  pictureInfos =  "/api/video/v1/pictureInfos";
     private  String  manualCapture =  "/api/video/v1/manualCapture";
     private  String  search =  "/api/pems/v1/monitor/search";
+    private  String  events =  "/api/els/v1/events/search";
     /**
      * 同步列表
      * @return
@@ -70,18 +72,31 @@ public class LotVideoController {
         if (ObjectUtil.isNotEmpty(cameraResponse) && "0".equals(cameraResponse.getCode())){
             List<CameraInfo> list = cameraResponse.getData().getList();
             System.out.println(list.toString());
-            lotVideoService.removeAll();
             for (CameraInfo cameraInfo : list) {
-                LotVideo video = new LotVideo();
-                video.setCreateTime(cameraInfo.getCreateTime());
-                video.setName(cameraInfo.getCameraName());
-                video.setLocation(cameraInfo.getCameraName());
-                video.setUpdateTime(cameraInfo.getUpdateTime());
-                video.setRegionIndexCode(cameraInfo.getRegionIndexCode());
-                video.setCameraIndexCode(cameraInfo.getCameraIndexCode());
-                video.setCapabilitySetName(cameraInfo.getCapabilitySetName());
-                video.setEncodeDevIndexCode(cameraInfo.getEncodeDevIndexCode());
-                lotVideoService.save(video);
+                LotVideo video = lotVideoService.getOne(new QueryWrapper<LotVideo>().eq("camera_index_code", cameraInfo.getCameraIndexCode()));
+                if (ObjectUtil.isEmpty(video)){
+                    video = new LotVideo();
+                    video.setCreateTime(cameraInfo.getCreateTime());
+                    video.setName(cameraInfo.getCameraName());
+                    video.setLocation(cameraInfo.getCameraName());
+                    video.setUpdateTime(cameraInfo.getUpdateTime());
+                    video.setRegionIndexCode(cameraInfo.getRegionIndexCode());
+                    video.setCameraIndexCode(cameraInfo.getCameraIndexCode());
+                    video.setCapabilitySetName(cameraInfo.getCapabilitySetName());
+                    video.setEncodeDevIndexCode(cameraInfo.getEncodeDevIndexCode());
+                    lotVideoService.save(video);
+                }else {
+                    video.setCreateTime(cameraInfo.getCreateTime());
+                    video.setName(cameraInfo.getCameraName());
+                    video.setLocation(cameraInfo.getCameraName());
+                    video.setUpdateTime(cameraInfo.getUpdateTime());
+                    video.setRegionIndexCode(cameraInfo.getRegionIndexCode());
+                    video.setCameraIndexCode(cameraInfo.getCameraIndexCode());
+                    video.setCapabilitySetName(cameraInfo.getCapabilitySetName());
+                    video.setEncodeDevIndexCode(cameraInfo.getEncodeDevIndexCode());
+                    lotVideoService.updateById(video);
+                }
+
             }
         }
         return success("同步成功");
@@ -102,7 +117,7 @@ public class LotVideoController {
         System.out.println("--->"+cameraResponse);
         return cameraResponse;
     }
-    private String getTime(DateTime dateTime ){
+    private  static  String getTime(DateTime dateTime ){
         TimeZone timeZone = TimeZone.getTimeZone("GMT+8");
         // 2. 设置为东八区时区
         dateTime.setTimeZone(timeZone);
@@ -114,6 +129,42 @@ public class LotVideoController {
 
     }
 
+    /**
+     * 获取流地址
+     */
+    @ApiOperation("获取事件列表")
+    @GetMapping("/events")
+    public Object events() throws Exception {
+        JSONObject jsonBody = new JSONObject();
+        jsonBody.put("startTime", getTime(DateUtil.beginOfDay(new Date())));
+        jsonBody.put("endTime",  getTime(DateUtil.endOfDay(new Date())));
+        jsonBody.put("pageSize", 1);
+        jsonBody.put("pageNo", 1000);
+        String body = jsonBody.toJSONString();
+        System.out.println(body);
+        String getCameraPreviewURL = GetCameraPreviewURL.GetCameraPreviewURL(events, body);
+        Map<String,Object> cameraResponse = JSON.parseObject(getCameraPreviewURL, Map.class);
+        System.out.println("--->"+cameraResponse);
+        return cameraResponse;
+    }
+
+    public static void main(String[] args) throws Exception {
+
+        JSONObject jsonBody = new JSONObject();
+        jsonBody.put("startTime", getTime(DateUtil.beginOfYear(new Date())));
+        jsonBody.put("endTime",  getTime(DateUtil.endOfDay(new Date())));
+        jsonBody.put("pageSize", 1000);
+        jsonBody.put("pageNo", 1);
+//        jsonBody.put("ability", "frs");
+        String body = jsonBody.toJSONString();
+        System.out.println(body);
+        String getCameraPreviewURL = GetCameraPreviewURL.GetCameraPreviewURL("/api/els/v1/events/search", body);
+        Map<String,Object> cameraResponse = JSON.parseObject(getCameraPreviewURL, Map.class);
+        System.out.println("--->"+cameraResponse);
+
+    }
+
+
 
     /**
      * 获取流地址
@@ -268,7 +319,7 @@ public class LotVideoController {
         return success();
     }
     @ApiOperation("获取摄像头详情接口")
-    @PutMapping("/getById")
+    @PostMapping("/getById")
     public AjaxResult getById(@RequestBody Map<String , Integer> map) {
         return success(lotVideoService.getById( map.get("id")));
     }

+ 2 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/event/EventAddRequest.java

@@ -1,5 +1,6 @@
 package com.ruoyi.web.domain.dto.event;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import lombok.Data;
 
@@ -18,6 +19,7 @@ public class EventAddRequest implements Serializable {
     /**
      * 事发时间
      */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date occurTime;
 
     /**

+ 1 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/event/EventQueryRequest.java

@@ -21,6 +21,7 @@ public class EventQueryRequest extends PageRequest implements Serializable {
      * 事件描述
      */
     private String description;
+    private String keyWord;
 
     /**
      * 事发开始时间

+ 1 - 0
app-admin/src/main/java/com/ruoyi/web/domain/dto/villageSpecial/VillageSpecialQueryRequest.java

@@ -21,6 +21,7 @@ public class VillageSpecialQueryRequest extends PageRequest implements Serializa
      * 产业类别(0-保安腰刀产业、1-农家乐产业、2-民宿产业)
      */
     private String category;
+    private Integer type;
 
     /**
      * 名称

+ 1 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/HouseInfoVO.java

@@ -105,6 +105,7 @@ public class HouseInfoVO implements Serializable {
      */
     @ApiModelProperty(value = "修改时间")
     private Date updateTime;
+    private String geoData;
 
     private static final long serialVersionUID = 1L;
 }

+ 2 - 0
app-admin/src/main/java/com/ruoyi/web/domain/vo/LotVideoVO.java

@@ -58,6 +58,8 @@ public class LotVideoVO implements Serializable {
     private String capabilitySetName;
     private String regionIndexCode;
     private String encodeDevIndexCode;
+    private String longitude;
+    private String latitude;
 
     private static final long serialVersionUID = 1L;
 }

+ 2 - 0
app-admin/src/main/java/com/ruoyi/web/service/EventService.java

@@ -42,4 +42,6 @@ public interface EventService extends IService<Event> {
 
     // 再次派发:将给定负责人设为未完结(存在则更新,不存在则插入);仅当事件未完结时允许
     void reassignEvent(Integer eventId, List<Integer> personIds);
+
+    Page<Event> pageCunMin(EventQueryRequest eventQueryRequest);
 }

+ 2 - 0
app-admin/src/main/java/com/ruoyi/web/service/GovernmentInfoService.java

@@ -63,4 +63,6 @@ public interface GovernmentInfoService extends IService<GovernmentInfo> {
      * @return
      */
     QueryWrapper<GovernmentInfo> getQueryWrapper(GovernmentInfoQueryRequest governmentInfoQueryRequest);
+
+    Page<GovernmentInfoVO> pageFaBu(GovernmentInfoQueryRequest governmentInfoQueryRequest);
 }

+ 27 - 8
app-admin/src/main/java/com/ruoyi/web/service/impl/EventServiceImpl.java

@@ -270,16 +270,16 @@ public class EventServiceImpl extends ServiceImpl<EventMapper, Event>
         Long userId = SecurityUtils.getUserId();
         Event event;
         // 若不是管理员 指定查询的 负责人id 为当前登录用户id (负责人只能查询自己的事件)
-        if (SecurityUtils.isAdmin(userId)) {
+//        if (SecurityUtils.isAdmin(userId)) {
             // 管理员查询
             event = this.getById(id);
-        } else {
-            // 负责人查询
-            QueryWrapper<Event> wrapper = new QueryWrapper<>();
-            wrapper.eq("id", id)
-                    .exists("SELECT 1 FROM event_assign ea WHERE ea.event_id = event.id AND ea.user_id = " + userId);
-            event = this.getOne(wrapper);
-        }
+//        } else {
+//            // 负责人查询
+//            QueryWrapper<Event> wrapper = new QueryWrapper<>();
+//            wrapper.eq("id", id)
+//                    .exists("SELECT 1 FROM event_assign ea WHERE ea.event_id = event.id AND ea.user_id = " + userId);
+//            event = this.getOne(wrapper);
+//        }
         return getEventVO(event);
     }
 
@@ -539,4 +539,23 @@ public class EventServiceImpl extends ServiceImpl<EventMapper, Event>
             }
         }
     }
+
+    @Override
+    public Page<Event> pageCunMin(EventQueryRequest eventQueryRequest) {
+        long current = eventQueryRequest.getPageNum();
+        long size = eventQueryRequest.getPageSize();
+        String keyWord = eventQueryRequest.getKeyWord();
+        // 获取登录用户id
+        Long userId = SecurityUtils.getUserId();
+        QueryWrapper<Event> wrapper = new QueryWrapper<Event>().eq("submitter_id", userId);
+        if (StringUtils.isNotBlank(keyWord)){
+            wrapper.and(i ->  i.like("location",keyWord).or().like("description",keyWord));
+
+        }
+       Page<Event>   page = this.page(new Page<>(current, size),
+                wrapper );
+
+
+        return page;
+    }
 }

+ 20 - 0
app-admin/src/main/java/com/ruoyi/web/service/impl/GovernmentInfoServiceImpl.java

@@ -303,6 +303,26 @@ public class GovernmentInfoServiceImpl extends ServiceImpl<GovernmentInfoMapper,
         queryWrapper.orderBy(StrUtil.isNotEmpty(sortField), "ascend".equals(sortOrder), sortField);
         return queryWrapper;
     }
+
+    @Override
+    public Page<GovernmentInfoVO> pageFaBu(GovernmentInfoQueryRequest governmentInfoQueryRequest) {
+        long current = governmentInfoQueryRequest.getPageNum();
+        long size = governmentInfoQueryRequest.getPageSize();
+        Page<GovernmentInfo> servicePage = this.page(new Page<>(current, size),
+                getQueryWrapper(governmentInfoQueryRequest));
+
+        // 创建VO分页对象
+        Page<GovernmentInfoVO> voPage = new Page<>(current, size, servicePage.getTotal());
+
+        // 转换为VO列表
+        List<GovernmentInfoVO> voList = new ArrayList<>();
+        for (GovernmentInfo service : servicePage.getRecords()) {
+            voList.add(getGovernmentInfoVO(service));
+        }
+
+        voPage.setRecords(voList);
+        return voPage;
+    }
 }
 
 

+ 1 - 1
app-admin/src/main/java/com/ruoyi/web/service/impl/HouseInfoServiceImpl.java

@@ -318,7 +318,7 @@ public class HouseInfoServiceImpl extends ServiceImpl<HouseInfoMapper, HouseInfo
             List<HouseDigitalNumber> houseDigitalNumbers = houseDigitalNumberService.list(new QueryWrapper<HouseDigitalNumber>().eq("house_id", id).eq("type",0));
             for (HouseDigitalNumber houseDigitalNumber : houseDigitalNumbers) {
                 if (ObjectUtil.isNotEmpty(houseDigitalNumber)){
-                    houseInfoVO.setHousePicture(houseDigitalNumber.getNumberPlateUrl());
+                    houseInfoVO.setQrCode(houseDigitalNumber.getNumberPlateUrl());
                 }
             }
 

+ 1 - 1
app-admin/src/main/java/com/ruoyi/web/service/impl/LotEnvironmentServiceImpl.java

@@ -241,7 +241,7 @@ public class LotEnvironmentServiceImpl extends ServiceImpl<LotEnvironmentMapper,
     @Override
     public List<LotEnvironment> heLiuQuXian() {
 
-        return this.list(new QueryWrapper<LotEnvironment>().orderByDesc("id").last("limit 50"));
+        return this.list(new QueryWrapper<LotEnvironment>().orderByAsc("id").last("limit 50"));
     }
 }
 

+ 1 - 1
app-admin/src/main/resources/application.yml

@@ -98,7 +98,7 @@ token:
   # 令牌密钥
   secret: abcdefghijklmnopqrstuvwxyz
   # 令牌有效期(默认30分钟)
-  expireTime: 30
+  expireTime: 300
 
 # MyBatis配置
 #mybatis:

+ 17 - 0
app-admin/src/main/resources/mapper/MapLocationMapper.xml

@@ -0,0 +1,17 @@
+<?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.web.controller.chenyanlogin.mapper.MapLocationMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.web.controller.chenyanlogin.entity.MapLocation">
+        <id column="id" property="id" />
+        <result column="longitude" property="longitude" />
+        <result column="latitude" property="latitude" />
+        <result column="name" property="name" />
+        <result column="geo_data" property="geoData" />
+        <result column="type" property="type" />
+        <result column="other_id" property="otherId" />
+        <result column="icon_url" property="iconUrl" />
+    </resultMap>
+
+</mapper>

+ 65 - 0
app-admin/src/main/resources/mapper/QiXiangMapper.xml

@@ -17,5 +17,70 @@
         <result column="device_id" property="deviceId" />
         <result column="time" property="time" />
     </resultMap>
+    <select id="getListQiXiangDay" resultType="com.ruoyi.web.controller.chenyanlogin.vo.QiXiangVo">
+
+SELECT
+    DATE_FORMAT(time,'%Y-%m-%d') AS dTime,
+    ROUND(AVG(air_temperature),2) AS air_temperature,
+     ROUND(AVG(air_humidity) ,2)AS air_humidity,
+     ROUND(AVG(wind_speed) ,2)AS wind_speed,
+
+     ROUND(AVG(wind_direction) ,2)AS wind_direction,
+     ROUND(AVG(light_intensity) ,2)AS light_intensity,
+     ROUND(AVG(rainfall) ,2)AS rainfall,
+     ROUND(AVG(airp) ,2)AS airp,
+     ROUND(AVG(air_pm25) ,2)AS air_pm25
+FROM
+    `qi_xiang`
+          ${ew.customSqlSegment}
+GROUP BY
+    DATE_FORMAT(time,'%Y-%m-%d')
+ORDER BY
+    id desc;
+
+    </select>
+    <select id="getListQiXiangMonth" resultType="com.ruoyi.web.controller.chenyanlogin.vo.QiXiangVo">
+        select
+    DATE_FORMAT(time,'%Y-%m') AS dTime,
+    ROUND(AVG(air_temperature),2) AS air_temperature,
+     ROUND(AVG(air_humidity) ,2)AS air_humidity,
+     ROUND(AVG(wind_speed) ,2)AS wind_speed,
+
+     ROUND(AVG(wind_direction) ,2)AS wind_direction,
+     ROUND(AVG(light_intensity) ,2)AS light_intensity,
+     ROUND(AVG(rainfall) ,2)AS rainfall,
+     ROUND(AVG(airp) ,2)AS airp,
+     ROUND(AVG(air_pm25) ,2)AS air_pm25
+FROM
+    `qi_xiang`
+          ${ew.customSqlSegment}
+GROUP BY
+    DATE_FORMAT(time,'%Y-%m')
+ORDER BY
+id desc;
+
+    </select>
+    <select id="getListQiXiangWeek" resultType="com.ruoyi.web.controller.chenyanlogin.vo.QiXiangVo">
+          select
+  YEAR(`time`) AS year,
+       WEEK(`time`) AS dTime,
+    ROUND(AVG(air_temperature),2) AS air_temperature,
+     ROUND(AVG(air_humidity) ,2)AS air_humidity,
+     ROUND(AVG(wind_speed) ,2)AS wind_speed,
+
+     ROUND(AVG(wind_direction) ,2)AS wind_direction,
+     ROUND(AVG(light_intensity) ,2)AS light_intensity,
+     ROUND(AVG(rainfall) ,2)AS rainfall,
+     ROUND(AVG(airp) ,2)AS airp,
+     ROUND(AVG(air_pm25) ,2)AS air_pm25
+FROM
+    `qi_xiang`
+          ${ew.customSqlSegment}
+GROUP BY
+  YEAR(`time`) ,
+       WEEK(`time`)
+ORDER BY
+id desc;
+    </select>
 
 </mapper>