Ver Fonte

接收服务

523096025 há 2 anos atrás
pai
commit
beef63b321
54 ficheiros alterados com 1522 adições e 539 exclusões
  1. 9 1
      huimv-admin/pom.xml
  2. 8 0
      huimv-admin/src/main/java/com/huimv/admin/HuimvAdminApplication.java
  3. 12 0
      huimv-admin/src/main/java/com/huimv/admin/common/utils/ResultUtil.java
  4. 1 0
      huimv-admin/src/main/java/com/huimv/admin/controller/CameraAreaController.java
  5. 3 80
      huimv-admin/src/main/java/com/huimv/admin/controller/CameraBaseController.java
  6. 1 0
      huimv-admin/src/main/java/com/huimv/admin/controller/CameraBrandController.java
  7. 79 0
      huimv-admin/src/main/java/com/huimv/admin/controller/CameraFunctionAreaController.java
  8. 78 0
      huimv-admin/src/main/java/com/huimv/admin/controller/CameraFunctionController.java
  9. 245 67
      huimv-admin/src/main/java/com/huimv/admin/controller/CameraHKVSSync.java
  10. 26 0
      huimv-admin/src/main/java/com/huimv/admin/controller/EnvDeviceSync.java
  11. 14 0
      huimv-admin/src/main/java/com/huimv/admin/entity/CameraArea.java
  12. 14 20
      huimv-admin/src/main/java/com/huimv/admin/entity/CameraBase.java
  13. 45 0
      huimv-admin/src/main/java/com/huimv/admin/entity/CameraFunction.java
  14. 45 0
      huimv-admin/src/main/java/com/huimv/admin/entity/CameraFunctionArea.java
  15. 1 1
      huimv-admin/src/main/java/com/huimv/admin/entity/EnvData.java
  16. 14 0
      huimv-admin/src/main/java/com/huimv/admin/entity/hkwsdto/CameraDto.java
  17. 24 0
      huimv-admin/src/main/java/com/huimv/admin/entity/hkwsdto/CameraDto1.java
  18. 11 0
      huimv-admin/src/main/java/com/huimv/admin/entity/hkwsdto/HkvsCameraDto.java
  19. 10 0
      huimv-admin/src/main/java/com/huimv/admin/entity/hkwsdto/HkvsUnitDto.java
  20. 13 0
      huimv-admin/src/main/java/com/huimv/admin/entity/hkwsdto/UnitDto.java
  21. 17 0
      huimv-admin/src/main/java/com/huimv/admin/entity/hkwsdto/UnitDto1.java
  22. 1 1
      huimv-admin/src/main/java/com/huimv/admin/entity/vo/CameraListVo.java
  23. 0 2
      huimv-admin/src/main/java/com/huimv/admin/entity/vo/CameraListsVo.java
  24. 4 7
      huimv-admin/src/main/java/com/huimv/admin/entity/vo/CameraVo.java
  25. 10 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/DataShacks.java
  26. 9 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/DataToken.java
  27. 11 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/LoginDto.java
  28. 11 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/LoginOnlyDto.java
  29. 13 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/LonginDtoData.java
  30. 9 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/LonginOnlyDtoData.java
  31. 9 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/LonginOnlyDtoToken.java
  32. 21 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackConfigData.java
  33. 11 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackConfigDataController.java
  34. 12 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackConfigDataSensors.java
  35. 11 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackConfigDto.java
  36. 10 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackDatasCotroller.java
  37. 17 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackDatasDataDto.java
  38. 10 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackDatasDto.java
  39. 10 0
      huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackDatasSensor.java
  40. 16 0
      huimv-admin/src/main/java/com/huimv/admin/mapper/CameraFunctionAreaMapper.java
  41. 16 0
      huimv-admin/src/main/java/com/huimv/admin/mapper/CameraFunctionMapper.java
  42. 3 0
      huimv-admin/src/main/java/com/huimv/admin/service/ICameraAreaService.java
  43. 4 19
      huimv-admin/src/main/java/com/huimv/admin/service/ICameraBaseService.java
  44. 24 0
      huimv-admin/src/main/java/com/huimv/admin/service/ICameraFunctionAreaService.java
  45. 30 0
      huimv-admin/src/main/java/com/huimv/admin/service/ICameraFunctionService.java
  46. 2 0
      huimv-admin/src/main/java/com/huimv/admin/service/IEnvDeviceService.java
  47. 22 0
      huimv-admin/src/main/java/com/huimv/admin/service/impl/CameraAreaServiceImpl.java
  48. 48 341
      huimv-admin/src/main/java/com/huimv/admin/service/impl/CameraBaseServiceImpl.java
  49. 71 0
      huimv-admin/src/main/java/com/huimv/admin/service/impl/CameraFunctionAreaServiceImpl.java
  50. 148 0
      huimv-admin/src/main/java/com/huimv/admin/service/impl/CameraFunctionServiceImpl.java
  51. 60 0
      huimv-admin/src/main/java/com/huimv/admin/service/impl/EnvDeviceServiceImpl.java
  52. 201 0
      huimv-admin/src/main/java/com/huimv/admin/timer/CarmeraTimer.java
  53. 14 0
      huimv-admin/src/main/resources/mapper/CameraFunctionAreaMapper.xml
  54. 14 0
      huimv-admin/src/main/resources/mapper/CameraFunctionMapper.xml

+ 9 - 1
huimv-admin/pom.xml

@@ -85,7 +85,14 @@
             <artifactId>mybatis-plus-generator</artifactId>
             <version>3.2.0</version>
         </dependency>
-
+        <!--       引用外部包-->
+        <dependency>
+            <groupId>Ice</groupId>
+            <artifactId>Ice</artifactId>
+            <version>1.0</version>
+            <scope>system</scope>
+            <systemPath>${basedir}/lib/httpcore-4.4.3.jar</systemPath>
+        </dependency>
 
         <!--暂时不用nacos-->
      <!--   <dependency>
@@ -122,5 +129,6 @@
             </plugin>
             <!---->
         </plugins>
+
     </build>
 </project>

+ 8 - 0
huimv-admin/src/main/java/com/huimv/admin/HuimvAdminApplication.java

@@ -3,6 +3,9 @@ package com.huimv.admin;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.web.client.RestTemplate;
 
 /**
  * @Package : com.huimv.biosafety.uface.controller
@@ -13,9 +16,14 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
  **/
 @SpringBootApplication
 @MapperScan("com.huimv.admin.mapper")
+@EnableScheduling
 //@EnableDiscoveryClient
 public class HuimvAdminApplication {
     public static void main(String[] args) {
         SpringApplication.run(HuimvAdminApplication.class, args);
     }
+    @Bean
+    public static RestTemplate getRestTemplate(){
+        return new RestTemplate();
+    }
 }

+ 12 - 0
huimv-admin/src/main/java/com/huimv/admin/common/utils/ResultUtil.java

@@ -1,7 +1,11 @@
 package com.huimv.admin.common.utils;
 
+import cn.hutool.core.util.ObjectUtil;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @Project : huimv-breed
  * @Package : IntelliJ IDEA
@@ -20,6 +24,14 @@ public class ResultUtil {
             return new Result(ResultCode.SUCCESS,"处理成功.");
         }
     }
+
+    public static Result list(List o){
+        if(ObjectUtil.isNotEmpty(o) ){
+            return new Result(ResultCode.SUCCESS,o);
+        }else{
+            return new Result(ResultCode.FAIL,new ArrayList<>());
+        }
+    }
     public static Result getResult(Integer rows){
         if(rows > 0){
             return new Result(ResultCode.SUCCESS);

+ 1 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/CameraAreaController.java

@@ -24,6 +24,7 @@ import java.util.Map;
  * @author author
  * @since 2023-02-16
  */
+@CrossOrigin
 @RestController
 @RequestMapping("/cameraArea")
 public class CameraAreaController {

+ 3 - 80
huimv-admin/src/main/java/com/huimv/admin/controller/CameraBaseController.java

@@ -1,18 +1,14 @@
 package com.huimv.admin.controller;
 
 
-import com.huimv.admin.common.token.TokenSign;
 import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.common.utils.ResultCode;
-import com.huimv.admin.entity.CameraBase;
 import com.huimv.admin.entity.vo.CameraListVo;
 import com.huimv.admin.entity.vo.CameraListsVo;
-import com.huimv.admin.entity.vo.CameraVo;
 import com.huimv.admin.service.ICameraBaseService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 
 /**
@@ -23,92 +19,19 @@ import java.util.List;
  * @author author
  * @since 2023-02-16
  */
+@CrossOrigin
 @RestController
-@RequestMapping("/cameraBase")
+@RequestMapping("/admin/cameraBase")
 public class CameraBaseController {
     @Autowired
     private ICameraBaseService cameraService;
 
-
     @PostMapping("/list")
     public Result list(@RequestBody CameraListVo cameraListVo) {
         return cameraService.listPage(cameraListVo);
     }
-
-    @PostMapping("/add")
-    public Result add(@RequestBody CameraBase camera) {
-        if (camera == null) {
-            return new Result(ResultCode.FAIL, "添加失败");
-        }
-        return cameraService.add(camera);
-    }
-
-    @PostMapping("/update")
-    public Result update(@RequestBody CameraBase camera) {
-        return cameraService.updates(camera);
-    }
-
-    @GetMapping("/remove")
-    public Result remove(@RequestParam(value = "ids") List<Integer> ids) {
-        cameraService.removeByIds(ids);
-        return new Result(ResultCode.SUCCESS, "删除成功");
-    }
-
     @PostMapping("/getCameraDetails")
     private Result getCameraDetails(@RequestBody CameraListsVo cameraListsVo) {
-
-        List list = cameraService.getCameraDetails(cameraListsVo);
-        return new Result(ResultCode.SUCCESS, list);
-    }
-
-    //返回苹果手机看监控视频地址
-//    @PostMapping("/getCameraDetails2")
-//    private Result getCameraDetails2(@RequestBody CameraListsVo cameraListsVo){
-//        //
-//        List list =  cameraService.getCameraDetails2(cameraListsVo);
-//        return new Result(ResultCode.SUCCESS,list);
-//    }
-
-    @GetMapping("/getCameraDetailsByRoomId")
-    private Result getCameraDetailsByRoomId(@RequestParam(name = "roomId") Integer roomId) {
-
-        CameraVo list = cameraService.getCameraDetailsByRoomId(roomId);
-        return new Result(ResultCode.SUCCESS, list);
-    }
-
-    @GetMapping("/updateStatus")
-    private Result updateStatus(@RequestParam(value = "id") Integer id) {
-
-        return cameraService.updateStatus(id);
-    }
-
-
-    @RequestMapping("/getByAreaId")
-    private Result getByAreaId(Integer areaId, HttpServletRequest request) {
-
-        List list = cameraService.getByAreaId(areaId);
-        return new Result(ResultCode.SUCCESS, list);
-    }
-
-
-//    @GetMapping("/initCamera")
-//    private Result initCamera(@RequestParam(name = "farmId") Integer farmId, HttpServletRequest request) {
-//        Integer userId = TokenSign.getMemberIdByJwtToken(request);
-//
-//        return cameraService.initCamera(farmId, userId);
-//    }
-
-
-    @GetMapping("/listScreenCamera")
-    private Result listScreenCamera(@RequestParam(name = "farmId") Integer farmId) {
-
-        return cameraService.listScreenCamera(farmId);
+       return cameraService.getCameraDetails(cameraListsVo);
     }
-
-//    @GetMapping("/screenCamera")
-//    private Result screenCamera(@RequestParam(name = "farmId") Integer farmId) {
-//
-//        return cameraService.screenCamera(farmId);
-//    }
-
 }

+ 1 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/CameraBrandController.java

@@ -25,6 +25,7 @@ import java.util.Map;
  * @author author
  * @since 2023-02-16
  */
+@CrossOrigin
 @RestController
 @RequestMapping("/cameraBrand")
 public class CameraBrandController {

+ 79 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/CameraFunctionAreaController.java

@@ -0,0 +1,79 @@
+package com.huimv.admin.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.CameraFunctionArea;
+import com.huimv.admin.service.ICameraFunctionAreaService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-13
+ */
+@CrossOrigin
+@RestController
+@RequestMapping("/admin/cameraFunctionArea")
+public class CameraFunctionAreaController {
+    @Autowired
+    private ICameraFunctionAreaService cameraFuntcionAreaService;
+
+    @PostMapping("/list")
+    public Result list(@RequestBody Map<String, Object> params) {
+        return cameraFuntcionAreaService.cameraList(params);
+    }
+
+    @PostMapping("/add")
+    public Result add(@RequestBody CameraFunctionArea cameraFunctionArea) {
+        int brandName = cameraFuntcionAreaService.count(new QueryWrapper<CameraFunctionArea>().eq("function_name", cameraFunctionArea.getFunctionName()).eq("farm_id", cameraFunctionArea.getFarmId()));
+        if (brandName > 0) {
+            return new Result(100001, "区域名称重复", false);
+        }
+        cameraFuntcionAreaService.save(cameraFunctionArea);
+        return new Result(10000, "添加成功", true);
+    }
+
+    @PostMapping("/update")
+    public Result update(@RequestBody CameraFunctionArea cameraFunctionArea) {
+        cameraFuntcionAreaService.updateById(cameraFunctionArea);
+        int brandName = cameraFuntcionAreaService.count(new QueryWrapper<CameraFunctionArea>().eq("function_name", cameraFunctionArea.getFunctionName()));
+        if (brandName > 1) {
+            return new Result(100001, "区域名称重复", false);
+        }
+
+        return new Result(10000, "修改成功", true);
+    }
+
+    @GetMapping("/remove")
+    public Result remove(@RequestParam(value = "ids") List<Integer> ids) {
+        return cameraFuntcionAreaService.removeIds(ids);
+    }
+
+    @PostMapping("/addFunction")
+    public Result addFunction(@RequestBody Map<String, String> params) {
+        return cameraFuntcionAreaService.addFunction(params);
+    }
+
+    @PostMapping("/getFunctionById")
+    public Result getFunctionByid(@RequestBody Map<String, String> params) {
+        String id = params.get("id");
+        CameraFunctionArea byId = cameraFuntcionAreaService.getById(id);
+        String functionIds = byId.getFunctionIds();
+        if (StringUtils.isNotBlank(functionIds)){
+            return new Result(ResultCode.SUCCESS,functionIds.split(","));
+        }
+        return new Result(ResultCode.SUCCESS,null);
+    }
+
+
+}

+ 78 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/CameraFunctionController.java

@@ -0,0 +1,78 @@
+package com.huimv.admin.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.CameraFunction;
+import com.huimv.admin.service.ICameraFunctionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 前端控制器
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-13
+ */
+@CrossOrigin
+@RestController
+@RequestMapping("/admin/cameraFunction")
+public class CameraFunctionController {
+    @Autowired
+    private ICameraFunctionService cameraFuntcionService;
+
+
+    @PostMapping("/list")
+    public Result list(@RequestBody Map<String, Object> params) {
+        return cameraFuntcionService.cameraList(params);
+    }
+
+    @PostMapping("/add")
+    public Result add(@RequestBody CameraFunction cameraFunction) {
+        int brandName = cameraFuntcionService.count(new QueryWrapper<CameraFunction>().eq("function_name", cameraFunction.getFunctionName()).eq("farm_id", cameraFunction.getFarmId()));
+        if (brandName > 0) {
+            return new Result(100001, "区域名称重复", false);
+        }
+        cameraFuntcionService.save(cameraFunction);
+        return new Result(10000, "添加成功", true);
+    }
+
+    @PostMapping("/update")
+    public Result update(@RequestBody CameraFunction cameraArea) {
+        cameraFuntcionService.updateById(cameraArea);
+        int brandName = cameraFuntcionService.count(new QueryWrapper<CameraFunction>().eq("function_name", cameraArea.getFunctionName()));
+        if (brandName > 1) {
+            return new Result(100001, "区域名称重复", false);
+        }
+
+        return new Result(10000, "修改成功", true);
+    }
+
+    @GetMapping("/remove")
+    public Result remove(@RequestParam(value = "ids") List<Integer> ids) {
+        return cameraFuntcionService.removeIds(ids);
+    }
+
+    @GetMapping("/lsitAndCamera")
+    public Result lsitAndCamera(@RequestParam(value = "farmId") Integer farmId) {
+        return cameraFuntcionService.lsitAndCamera(farmId);
+    }
+    @PostMapping("/addCamera")
+    public Result addCamera(@RequestBody Map<String, String> params) {
+        return cameraFuntcionService.addCamera(params);
+    }
+    @PostMapping("/listCamera")
+    public Result listCamera(@RequestBody Map<String, String> params) {
+        return cameraFuntcionService.listCamera(params);
+    }
+
+    @PostMapping("/deleteCamera")
+    public Result deleteCamera(@RequestBody Map<String, String> params) {
+        return cameraFuntcionService.deleteCamera(params);
+    }
+}

+ 245 - 67
huimv-admin/src/main/java/com/huimv/admin/controller/CameraHKVSSync.java

@@ -1,13 +1,22 @@
-/*
 package com.huimv.admin.controller;
 
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.hikvision.cms.api.common.util.Digests;
 import com.hikvision.cms.api.common.util.HttpClientSSLUtils;
 import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.CameraArea;
+import com.huimv.admin.entity.hkwsdto.*;
+import com.huimv.admin.service.ICameraAreaService;
+import com.huimv.admin.service.ICameraBaseService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @CrossOrigin
@@ -15,13 +24,44 @@ import java.util.Map;
 @RequestMapping("/admin/cameraHKVSSync")
 public class CameraHKVSSync {
 
-    @GetMapping("/sync")
-    public Result sync() {
-    return null;
+    @Autowired
+    private ICameraAreaService cameraAreaService;
+
+    @Autowired
+    private ICameraBaseService cameraBaseService;
+
+    @PostMapping("/sync")
+    @Transactional
+    public Result sync(@RequestBody Map<String, Integer> params) throws Exception {
+        //获取默认控制中心  正康区域 的上级,暂时不用
+//        System.out.println(testGetDefaultUnit());
+
+        //根据中心UUID分页获取下级区  正康猪业id:1048576
+        String unitUuid = testGetRegionsByUnitUuid(1048576);
+        HkvsUnitDto hkvsUnitDto = JSONUtil.toBean(unitUuid, HkvsUnitDto.class);
+        if (ObjectUtil.isNotEmpty(hkvsUnitDto) && hkvsUnitDto.getErrorCode() ==0 ){
+            List<UnitDto1> list = hkvsUnitDto.getData().getList();
+            if (ObjectUtil.isNotEmpty(list)){
+                cameraAreaService.sync(params,list);
+            }
+        }else {
+            return new Result(10001,hkvsUnitDto.getErrorMessage(),false);
+        }
+        //获取监控点
+        String cameras = testGetCameras();
+        HkvsCameraDto hkvsCameraDto = JSONUtil.toBean(cameras, HkvsCameraDto.class);
+        if (ObjectUtil.isNotEmpty(hkvsCameraDto) && hkvsCameraDto.getErrorCode() ==0 ){
+            List<CameraDto1> list = hkvsCameraDto.getData().getList();
+            if (ObjectUtil.isNotEmpty(list)){
+                cameraBaseService.sync(params,list);
+            }
+        }else {
+            return new Result(10001,hkvsUnitDto.getErrorMessage(),false);
+        }
+        return new Result(10000,"同步成功",false);
     }
 
-    */
-/**
+    /**
      * APPKEY需要到部署的平台服务器上生成。
      * <p>
      * 调用Openpai的操作码,需要去平台上生成,详见《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》中[获取AppKey和Secret]章节说明
@@ -29,12 +69,10 @@ public class CameraHKVSSync {
      * <p>
      * 《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》 该文档请找技术支持或者交付的同事提供
      * </p>
-     *//*
+     */
+    private static final String APPKEY = "1c9ee657";
 
-    private static final String APPKEY = "27546900";
-
-    */
-/**
+    /**
      * SECRET需要到部署的平台服务器上生成。
      * <p>
      * 调用Openpai的操作码,需要去平台上生成,详见《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》中[获取AppKey和Secret]章节说明
@@ -42,85 +80,188 @@ public class CameraHKVSSync {
      * <p>
      * 《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》 该文档请找技术支持或者交付的同事提供
      * </p>
-     *//*
-
-    private static final String SECRET = "S5qgrKdBd75MONZRzGAh";
+     */
+    private static final String SECRET = "a5d723941c804a429447e71db2707ce8";
 
 
-    */
-/**
+    /**
      * http请求地址
      * <p>openapi的地址,默认情况下openapi的IP端口与基础应用的IP端口是一致的</p>
      * <p>请将地址配置正确.</p>
      * <p>默认情况下是127.0.0.1:80 ,如果地址不通请根据实际情况修改IP端口</p>
-     *//*
-
-    private static final String OPENAPI_IP_PORT_HTTP = "http://61.153.248.106:80";
+     */
+    private static final String OPENAPI_IP_PORT_HTTP = "http://61.153.248.106:100";
 //    private static final String OPENAPI_IP_PORT_HTTP = "http://172.21.90:80";
 
-    */
-/**
+    /**
      * https请求地址
      * <p>openapi的地址,默认情况下openapi的IP端口与基础应用的IP端口是一致的</p>
      * <p>请将地址配置正确.</p>
      * <p>默认情况下是127.0.0.1:443 ,如果地址不通请根据实际情况修改IP端口</p>
-     *//*
-
-    private static final String OPENAPI_IP_PORT_HTTPS = "https://61.153.248.106:443";
+     */
+    private static final String OPENAPI_IP_PORT_HTTPS = "https://61.153.248.106:4430";
 //    private static final String OPENAPI_IP_PORT_HTTPS = "https://172.21.90:443";
 
-    */
-/**
+    /**
      * 获取默认用户UUID的接口地址,此地址可以从《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》中具体的接口说明上获取
-     *//*
-
+     */
     private static final String ITF_ADDRESS_GET_DEFAULT_USER_UUID = "/openapi/service/base/user/getDefaultUserUuid";
 
-    */
-/**
+    /**
      * 分页获取监控点信息的接口地址,此地址可以从《海康威视iVMS-8700平台SDKV2.*.* HTTP-OpenAPI使用说明书.chm》中具体的接口说明上获取
-     *//*
-
+     */
     private static final String ITF_ADDRESS_GET_CAMERAS = "/openapi/service/vss/res/getCameras";
 
-    */
-/**
+    /**
+     * 获取部门
+     */
+    private static final String ITF_ADDRESS_GET_DEPTINFOS = "/openapi/service/base/dept/getDeptInfos";
+
+    /**
+     * 获取网域
+     */
+    private static final String ITF_ADDRESS_GET_NETZONES = "/openapi/service/base/netZone/getNetZones";
+
+    /**
+     * 获取默认控制中心
+     */
+    private static final String ITF_ADDRESS_GET_DEFAULT_UNIT = "/openapi/service/base/org/getDefaultUnit";
+
+    /**
+     * 获取子系统
+     */
+    private static final String ITF_ADDRESS_GET_PLAT_SUBSYTEM = "/openapi/service/base/res/getPlatSubsytem";
+
+    /**
+     * 根据中心UUID分页获取下级区域
+     */
+    private static final String ITF_ADDRESS_GET_REGIONS_BY_UNIT_UUID = "/openapi/service/base/org/getRegionsByUnitUuid";
+
+    /**
      * <p>操作用户UUID,即用户UUID,首次使用操作用户UUID可以通过接口 [获取默认用户UUID]来获取</p>
      * <p>也可以通过接口[分页获取用户]来获取</p>
-     *//*
+     */
+    private static final String OP_USER_UUID = "5b2eb534696b11e89c2e438f92627767";
 
-    private static final String OP_USER_UUID = "0be83d40695011e7981e0f190ed6d2e7";
-
-    */
-/**
+    /**
      * 测试方法
      * @param args
      * @throws Exception
-     *//*
-
+     */
     public static void main(String[] args) throws Exception {
 
-        */
-/***http方式调用***//*
+        /***http方式调用***/
+        //获取 默认用户id 初始化用
+//        System.out.println(testGetDefaultUserUUID());
+
+        //获取部门
+//        System.out.println(testGetDeptInfos());
+        //获取网域
+//        System.out.println(testGetNetZones());
+        //获取子系统
+//        System.out.println(testGetPlatSubsytem());
+        //获取默认控制中心
+//        System.out.println(testGetDefaultUnit());
+        //根据中心UUID分页获取下级区
+//        System.out.println(testGetRegionsByUnitUuid(1048576));
+        //获取监控点
+//        System.out.println(testGetCameras());
+//        /***https方式调用***/
+//        System.out.println(testGetDefaultUserUUID_Https());
+//        System.out.println(testGetCameras_Https());
+    }
+
+    /**
+     * HTTP方式
+     * 获取子系统
+     * @return
+     * @throws Exception
+     */
+    private static String testGetRegionsByUnitUuid(Integer unitUuid) throws Exception{
+        String url = OPENAPI_IP_PORT_HTTP + ITF_ADDRESS_GET_REGIONS_BY_UNIT_UUID;
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("appkey", APPKEY);//设置APPKEY
+        map.put("time", System.currentTimeMillis());//设置时间参数
+        map.put("pageNo", 1);//设置分页参数
+        map.put("pageSize", 1000);//设置分页参数
+        map.put("opUserUuid", OP_USER_UUID);//设置操作用户UUID
+        map.put("parentUuid", unitUuid);// 根据父id查下面栋舍
+        map.put("allChildren", 1);//获取子系统
+        String params = JSON.toJSONString(map);
+        System.out.println(" ====== getCameras请求参数:【" + params + "】");
+        String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, null, SECRET), params);
+        System.out.println(" ====== getCameras请求返回结果:【{" + data + "}】");
 
-        System.out.println(testGetDefaultUserUUID());
-        System.out.println(testGetCameras());
+        return data;
+    }
 
-        */
-/***https方式调用***//*
+    /**
+     * HTTP方式
+     * 获取默认控制中心
+     * @return
+     * @throws Exception
+     */
+    private static String testGetDefaultUnit() throws Exception{
+        String url = OPENAPI_IP_PORT_HTTP + ITF_ADDRESS_GET_DEFAULT_UNIT;
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("appkey", APPKEY);//设置APPKEY
+        map.put("time", System.currentTimeMillis());//设置时间参数
+        map.put("pageNo", 1);//设置分页参数
+        map.put("pageSize", 1000);//设置分页参数
+        map.put("opUserUuid", OP_USER_UUID);//设置操作用户UUID
+        map.put("subSystemCode", 1048576);//设置子系统编码  (视频)
+        String params = JSON.toJSONString(map);
+        System.out.println(" ====== getCameras请求参数:【" + params + "】");
+        String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, null, SECRET), params);
+        System.out.println(" ====== getCameras请求返回结果:【{" + data + "}】");
 
-//        System.out.println(testGetDefaultUserUUID_Https());
-//        System.out.println(testGetCameras_Https());
+        return data;
     }
 
-    */
-/**
+    /**
      * HTTP方式
-     * 获取默认用户UUID 测试
+     * 获取子系统
      * @return
      * @throws Exception
-     *//*
+     */
+    private static String testGetPlatSubsytem() throws Exception{
+        String url = OPENAPI_IP_PORT_HTTP + ITF_ADDRESS_GET_PLAT_SUBSYTEM;
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("appkey", APPKEY);//设置APPKEY
+        map.put("time", System.currentTimeMillis());//设置时间参数
+        map.put("pageNo", 1);//设置分页参数
+        map.put("pageSize", 1000);//设置分页参数
+        map.put("opUserUuid", OP_USER_UUID);//设置操作用户UUID
+        String params = JSON.toJSONString(map);
+        System.out.println(" ====== getCameras请求参数:【" + params + "】");
+        String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, null, SECRET), params);
+        System.out.println(" ====== getCameras请求返回结果:【{" + data + "}】");
+
+        return data;
+    }
+
+
+   /* private static String test() throws Exception{
+        String baseUrl = "test.htpig.cn";
+        String login = "/user/login";
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("user_name", APPKEY);//
+        map.put("password", APPKEY);//
+        String params = JSON.toJSONString(map);
+        System.out.println(" ====== getCameras请求参数:【" + params + "】");
+        String data = HttpClientSSLUtils.doGet("http://test.htpig.cn/rest/user/login?user_name=test&password=e10adc3949ba59abbe56e057f20f883e&db_name=MSSQL");
+        System.out.println(" ====== getCameras请求返回结果:【{" + data + "}】");
+
+        return data;
+    }*/
+
 
+    /**
+     * HTTP方式
+     * 获取默认用户UUID 测试
+     * @return
+     * @throws Exception
+     */
     private static String testGetDefaultUserUUID() throws Exception{
         String url = OPENAPI_IP_PORT_HTTP + ITF_ADDRESS_GET_DEFAULT_USER_UUID;
         Map<String, Object> map = new HashMap<String, Object>();
@@ -134,21 +275,41 @@ public class CameraHKVSSync {
         return data;
     }
 
-    */
-/**
+    /**
      * HTTP方式
      * 分页获取监控点信息 测试
      * @return
      * @throws Exception
-     *//*
-
+     */
     private static String testGetCameras() throws Exception{
         String url = OPENAPI_IP_PORT_HTTP + ITF_ADDRESS_GET_CAMERAS;
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("appkey", APPKEY);//设置APPKEY
         map.put("time", System.currentTimeMillis());//设置时间参数
         map.put("pageNo", 1);//设置分页参数
-        map.put("pageSize", 5);//设置分页参数
+        map.put("pageSize", 1000);//设置分页参数
+        map.put("opUserUuid", OP_USER_UUID);//设置操作用户UUID
+        String params = JSON.toJSONString(map);
+        System.out.println(" ====== getCameras请求参数:【" + params + "】");
+        String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, null, SECRET), params);
+        System.out.println(" ====== getCameras请求返回结果:【{" + data + "}】");
+
+        return data;
+    }
+
+    /**
+     * HTTP方式
+     * 分页获取部门 测试
+     * @return
+     * @throws Exception
+     */
+    private static String testGetDeptInfos() throws Exception{
+        String url = OPENAPI_IP_PORT_HTTP + ITF_ADDRESS_GET_DEPTINFOS;
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("appkey", APPKEY);//设置APPKEY
+        map.put("time", System.currentTimeMillis());//设置时间参数
+        map.put("pageNo", 1);//设置分页参数
+        map.put("pageSize", 1000);//设置分页参数
         map.put("opUserUuid", OP_USER_UUID);//设置操作用户UUID
         String params = JSON.toJSONString(map);
         System.out.println(" ====== getCameras请求参数:【" + params + "】");
@@ -158,14 +319,34 @@ public class CameraHKVSSync {
         return data;
     }
 
-    */
-/**
+    /**
+     * HTTP方式
+     * 分页获取网域 测试
+     * @return
+     * @throws Exception
+     */
+    private static String testGetNetZones() throws Exception{
+        String url = OPENAPI_IP_PORT_HTTP + ITF_ADDRESS_GET_NETZONES;
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("appkey", APPKEY);//设置APPKEY
+        map.put("time", System.currentTimeMillis());//设置时间参数
+        map.put("pageNo", 1);//设置分页参数
+        map.put("pageSize", 1000);//设置分页参数
+        map.put("opUserUuid", OP_USER_UUID);//设置操作用户UUID
+        String params = JSON.toJSONString(map);
+        System.out.println(" ====== getCameras请求参数:【" + params + "】");
+        String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, null, SECRET), params);
+        System.out.println(" ====== getCameras请求返回结果:【{" + data + "}】");
+
+        return data;
+    }
+
+    /**
      * HTTPS方式
      * 获取默认用户UUID 测试
      * @return
      * @throws Exception
-     *//*
-
+     */
     private static String testGetDefaultUserUUID_Https() throws Exception{
         String url = OPENAPI_IP_PORT_HTTPS + ITF_ADDRESS_GET_DEFAULT_USER_UUID;
         Map<String, Object> map = new HashMap<String, Object>();
@@ -179,14 +360,12 @@ public class CameraHKVSSync {
         return data;
     }
 
-    */
-/**
+    /**
      * HTTPS方式
      * 分页获取监控点信息 测试
      * @return
      * @throws Exception
-     *//*
-
+     */
     private static String testGetCameras_Https() throws Exception{
         String url = OPENAPI_IP_PORT_HTTPS + ITF_ADDRESS_GET_CAMERAS;
         Map<String, Object> map = new HashMap<String, Object>();
@@ -204,4 +383,3 @@ public class CameraHKVSSync {
     }
 
 }
-*/

+ 26 - 0
huimv-admin/src/main/java/com/huimv/admin/controller/EnvDeviceSync.java

@@ -0,0 +1,26 @@
+package com.huimv.admin.controller;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.service.ICameraAreaService;
+import com.huimv.admin.service.ICameraBaseService;
+import com.huimv.admin.service.IEnvDeviceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+@CrossOrigin
+@RestController
+@RequestMapping("/admin/envDeviceSync")
+public class EnvDeviceSync {
+    @Autowired
+    private IEnvDeviceService envDeviceService;
+
+    @PostMapping("/sync")
+    @Transactional
+    public Result sync(@RequestBody Map<String, Integer> params) throws Exception {
+        return  envDeviceService.sync(params);
+
+    }
+}

+ 14 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/CameraArea.java

@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -41,5 +44,16 @@ public class CameraArea implements Serializable {
 
     private String publicUrl;
 
+    private String parentUuid;
+    private String regionUuid;
+    private Integer parentNodeType;
+    private Integer isParent;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
+    private Date createTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
+    private Date updateTime;
+
+
 
 }

+ 14 - 20
huimv-admin/src/main/java/com/huimv/admin/entity/CameraBase.java

@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -48,11 +51,6 @@ public class CameraBase implements Serializable {
     private String areaName;
 
     /**
-     * 区域id
-     */
-    private Integer areaId;
-
-    /**
      * 摄像头ip
      */
     private String cameraIp;
@@ -77,26 +75,22 @@ public class CameraBase implements Serializable {
      */
     private Boolean runStatus;
 
-    private Integer sort;
+    private Integer orderNum;
 
     private Integer farmId;
-
-    private Integer roomId;
-
-    /**
-     * icc 通道
-     */
-    private String iccChannel;
-
-    /**
-     * 功能点id
-     */
-    private Integer functionId;
-
     /**
      * 1在线  0离线
      */
-    private Boolean isOnline;
+    private Boolean onLineStatus;
+
+    private String cameraUuid;
+    private Integer cameraType;
+    private Integer cameraChannelNum;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
+    private Date updateTime;
+    private String unitUuid;
+    private String regionUuid;
+    private Integer functionId;
 
 
 }

+ 45 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/CameraFunction.java

@@ -0,0 +1,45 @@
+package com.huimv.admin.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 2023-02-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("camera_function")
+public class CameraFunction implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 区域(单元)名称
+     */
+    private String functionName;
+
+    /**
+     * 不用管
+     */
+    private String remark;
+
+    private Integer farmId;
+
+    private String publicUrl;
+
+
+}

+ 45 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/CameraFunctionArea.java

@@ -0,0 +1,45 @@
+package com.huimv.admin.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 2023-02-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("camera_function_area")
+public class CameraFunctionArea implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 区域(单元)名称
+     */
+    private String functionName;
+
+    /**
+     * 不用管
+     */
+    private String remark;
+
+    private Integer farmId;
+
+    private String functionIds;
+
+
+}

+ 1 - 1
huimv-admin/src/main/java/com/huimv/admin/entity/EnvData.java

@@ -33,7 +33,7 @@ public class EnvData implements Serializable {
     /**
      * 设备id
      */
-    private Integer deviceId;
+    private String deviceId;
 
     /**
      * 温度

+ 14 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/hkwsdto/CameraDto.java

@@ -0,0 +1,14 @@
+package com.huimv.admin.entity.hkwsdto;
+
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class CameraDto {
+    private Integer total;
+    private Integer pageNo;
+    private Integer pageSize;
+    private List<CameraDto1> list ;
+}

+ 24 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/hkwsdto/CameraDto1.java

@@ -0,0 +1,24 @@
+package com.huimv.admin.entity.hkwsdto;
+
+import cn.hutool.core.date.DateTime;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class CameraDto1 {
+    private  String cameraUuid;
+    private  String cameraName ;
+    private  Integer cameraType;
+    private  Integer cameraChannelNum;
+    private  String smartType;
+    private  Integer smartSupport;
+    private  Integer onLineStatus;
+    private  String keyBoardCode;
+    private  Integer orderNum;
+    private  Date updateTime;
+    private  String unitUuid;
+    private  String regionUuid;
+    private  String encoderUuid;
+    private  String resAuths;
+}

+ 11 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/hkwsdto/HkvsCameraDto.java

@@ -0,0 +1,11 @@
+package com.huimv.admin.entity.hkwsdto;
+
+import javafx.scene.Camera;
+import lombok.Data;
+
+@Data
+public class HkvsCameraDto {
+    private Integer  errorCode;
+    private String  errorMessage;
+    private CameraDto data;
+}

+ 10 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/hkwsdto/HkvsUnitDto.java

@@ -0,0 +1,10 @@
+package com.huimv.admin.entity.hkwsdto;
+
+import lombok.Data;
+
+@Data
+public class HkvsUnitDto {
+    private Integer  errorCode;
+    private String  errorMessage;
+    private UnitDto data;
+}

+ 13 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/hkwsdto/UnitDto.java

@@ -0,0 +1,13 @@
+package com.huimv.admin.entity.hkwsdto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class UnitDto {
+    private Integer total;
+    private Integer pageNo;
+    private Integer pageSize;
+    private List<UnitDto1> list ;
+}

+ 17 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/hkwsdto/UnitDto1.java

@@ -0,0 +1,17 @@
+package com.huimv.admin.entity.hkwsdto;
+
+import cn.hutool.core.date.DateTime;
+import lombok.Data;
+
+@Data
+public class UnitDto1 {
+
+    private String regionUuid;
+    private String name;
+    private String parentUuid;
+    private String parentNodeType;
+    private String isParent;
+    private DateTime createTime;
+    private DateTime updateTime;
+    private String remark;
+}

+ 1 - 1
huimv-admin/src/main/java/com/huimv/admin/entity/vo/CameraListVo.java

@@ -12,5 +12,5 @@ public class CameraListVo {
     private Integer brandId;
     private Integer sort;
     private Integer farmId;
-    private Integer isOnline;
+    private Integer onLineStatus;
 }

+ 0 - 2
huimv-admin/src/main/java/com/huimv/admin/entity/vo/CameraListsVo.java

@@ -13,7 +13,5 @@ import java.util.List;
  **/
 @Data
 public class CameraListsVo extends CameraListVo {
-
-
     List<Integer> cameraIds;
 }

+ 4 - 7
huimv-admin/src/main/java/com/huimv/admin/entity/vo/CameraVo.java

@@ -11,13 +11,10 @@ import lombok.Data;
  **/
 @Data
 public class CameraVo {
-    private String wsUrl;
+    private String hlsUrl;
     private Integer id;
-    private String rtspUrl;
-    private Integer areaId;
     private String cameraName;
-    private Integer lastId;
-    private Integer nextId;
-    private String httpUrl;
-
+//    private Integer lastId;
+//    private Integer nextId;
+//    private String httpUrl;
 }

+ 10 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/DataShacks.java

@@ -0,0 +1,10 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+@Data
+public class DataShacks {
+    private String id;
+    private String version;
+    private String farmId;
+}

+ 9 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/DataToken.java

@@ -0,0 +1,9 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+@Data
+public class DataToken {
+    private String userId;
+    private String token;
+}

+ 11 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/LoginDto.java

@@ -0,0 +1,11 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+@Data
+public class LoginDto {
+
+    private Integer returnCode;
+    private String returnMessage;
+    private LonginDtoData data;
+}

+ 11 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/LoginOnlyDto.java

@@ -0,0 +1,11 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+@Data
+public class LoginOnlyDto {
+
+    private Integer returnCode;
+    private String returnMessage;
+    private LonginOnlyDtoData data;
+}

+ 13 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/LonginDtoData.java

@@ -0,0 +1,13 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class LonginDtoData {
+
+    private DataToken token;
+    private Integer count;
+    private List<DataShacks> shacks;
+}

+ 9 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/LonginOnlyDtoData.java

@@ -0,0 +1,9 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+@Data
+public class LonginOnlyDtoData {
+    private LonginOnlyDtoToken token;
+    private String userId;
+}

+ 9 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/LonginOnlyDtoToken.java

@@ -0,0 +1,9 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+@Data
+public class LonginOnlyDtoToken {
+    private String token;
+    private String userId;
+}

+ 21 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackConfigData.java

@@ -0,0 +1,21 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ShackConfigData {
+    private String id;
+    private String name;
+    private String version;
+    private String farmId;
+    private String code;
+    private String type;
+    private String poultryId;
+    private String ctrCode;
+    private String province;
+    private List<ShackConfigDataController> controllers;
+    private List<ShackConfigDataSensors> sensors;
+
+}

+ 11 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackConfigDataController.java

@@ -0,0 +1,11 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+@Data
+public class ShackConfigDataController {
+    private String type;
+    private String id;
+    private String name;
+    private String io;
+}

+ 12 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackConfigDataSensors.java

@@ -0,0 +1,12 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+@Data
+public class ShackConfigDataSensors {
+    private  String type;
+    private  String id;
+    private  String name;
+    private  String io;
+    private  String params;
+}

+ 11 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackConfigDto.java

@@ -0,0 +1,11 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+@Data
+public class ShackConfigDto {
+    private Integer returnCode;
+    private String returnMessage;
+    private ShackConfigData data;
+
+}

+ 10 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackDatasCotroller.java

@@ -0,0 +1,10 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+@Data
+public class ShackDatasCotroller {
+    private String Degree;
+    private String id;
+    private String val;
+}

+ 17 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackDatasDataDto.java

@@ -0,0 +1,17 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ShackDatasDataDto {
+    //Y 在线 N不在线
+    private String onLine;
+    private String runmMode;
+    private String days;
+    private String vLevel;
+    private String alarm;
+    private List<ShackDatasCotroller> controllerDatas;
+    private List<ShackDatasSensor> sensorDatas;
+}

+ 10 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackDatasDto.java

@@ -0,0 +1,10 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+@Data
+public class ShackDatasDto {
+    private Integer returnCode;
+    private String returnMessage;
+    private ShackDatasDataDto data;
+}

+ 10 - 0
huimv-admin/src/main/java/com/huimv/admin/entity/zengxindto/ShackDatasSensor.java

@@ -0,0 +1,10 @@
+package com.huimv.admin.entity.zengxindto;
+
+import lombok.Data;
+
+@Data
+public class ShackDatasSensor {
+    private String pamars;
+    private String id;
+    private String val;
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/CameraFunctionAreaMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.CameraFunctionArea;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-02-17
+ */
+public interface CameraFunctionAreaMapper extends BaseMapper<CameraFunctionArea> {
+
+}

+ 16 - 0
huimv-admin/src/main/java/com/huimv/admin/mapper/CameraFunctionMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.mapper;
+
+import com.huimv.admin.entity.CameraFunction;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-02-17
+ */
+public interface CameraFunctionMapper extends BaseMapper<CameraFunction> {
+
+}

+ 3 - 0
huimv-admin/src/main/java/com/huimv/admin/service/ICameraAreaService.java

@@ -3,6 +3,7 @@ package com.huimv.admin.service;
 import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.entity.CameraArea;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.entity.hkwsdto.UnitDto1;
 
 import java.util.List;
 import java.util.Map;
@@ -21,4 +22,6 @@ public interface ICameraAreaService extends IService<CameraArea> {
     Result removeIds(List<Integer> ids);
 
     Result lsitAndCamera(Integer farmId);
+
+    void sync(Map<String, Integer> params,List<UnitDto1> list);
 }

+ 4 - 19
huimv-admin/src/main/java/com/huimv/admin/service/ICameraBaseService.java

@@ -3,9 +3,9 @@ package com.huimv.admin.service;
 import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.entity.CameraBase;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.entity.hkwsdto.CameraDto1;
 import com.huimv.admin.entity.vo.CameraListVo;
 import com.huimv.admin.entity.vo.CameraListsVo;
-import com.huimv.admin.entity.vo.CameraVo;
 
 import java.util.List;
 import java.util.Map;
@@ -22,24 +22,9 @@ public interface ICameraBaseService extends IService<CameraBase> {
 
     Result listPage(CameraListVo cameraListVo);
 
-    List getCameraDetails(CameraListsVo cameraListsVo);
+    Result getCameraDetails(CameraListsVo cameraListsVo);
 
-    List getByAreaId(Integer areaId);
-
-    Result updateStatus(Integer id);
-
-    Result add(CameraBase camera);
-
-    Result updates(CameraBase camera);
-
-    CameraVo getCameraDetailsByRoomId(Integer roomId);
-
-//    Result initCamera(Integer farmId, Integer userId);
-
-    Result listScreenCamera(Integer farmId);
-
-//    Result screenCamera(Integer farmId);
-
-    List getCameraDetails2(CameraListsVo cameraListsVo);
+    void sync(Map<String, Integer> params, List<CameraDto1> list);
 
+    void updateCameraOnlin(List<CameraDto1> list);
 }

+ 24 - 0
huimv-admin/src/main/java/com/huimv/admin/service/ICameraFunctionAreaService.java

@@ -0,0 +1,24 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.CameraFunctionArea;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-02-17
+ */
+public interface ICameraFunctionAreaService extends IService<CameraFunctionArea> {
+    Result cameraList(Map<String, Object> params);
+
+    Result removeIds(List<Integer> ids);
+
+    Result addFunction(Map<String, String> params);
+}

+ 30 - 0
huimv-admin/src/main/java/com/huimv/admin/service/ICameraFunctionService.java

@@ -0,0 +1,30 @@
+package com.huimv.admin.service;
+
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.entity.CameraFunction;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-02-17
+ */
+public interface ICameraFunctionService extends IService<CameraFunction> {
+    Result cameraList(Map<String, Object> params);
+
+    Result removeIds(List<Integer> ids);
+
+    Result lsitAndCamera(Integer farmId);
+
+    Result addCamera(Map<String, String> params);
+
+    Result deleteCamera(Map<String, String> params);
+
+    Result listCamera(Map<String, String> params);
+}

+ 2 - 0
huimv-admin/src/main/java/com/huimv/admin/service/IEnvDeviceService.java

@@ -31,4 +31,6 @@ public interface IEnvDeviceService extends IService<EnvDevice> {
     Result listEnv(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
 
     Result listDeviceCount(HttpServletRequest httpServletRequest, Map<String, String> paramsMap);
+
+    Result sync(Map<String, Integer> params) throws Exception;
 }

+ 22 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/CameraAreaServiceImpl.java

@@ -1,5 +1,7 @@
 package com.huimv.admin.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -8,6 +10,7 @@ import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.common.utils.ResultCode;
 import com.huimv.admin.entity.CameraArea;
 import com.huimv.admin.entity.CameraBase;
+import com.huimv.admin.entity.hkwsdto.UnitDto1;
 import com.huimv.admin.mapper.CameraAreaMapper;
 import com.huimv.admin.mapper.CameraBaseMapper;
 import com.huimv.admin.service.ICameraAreaService;
@@ -78,4 +81,23 @@ public class CameraAreaServiceImpl extends ServiceImpl<CameraAreaMapper, CameraA
         return new Result(ResultCode.SUCCESS, endList);
     }
 
+    @Override
+    public void sync(Map<String, Integer> params,List<UnitDto1> list) {
+        Integer farmId = params.get("farmId");
+        //同步,先删除
+        QueryWrapper<CameraArea> wrapper = new QueryWrapper<>();
+        //TODO 正康猪业 先这样做
+        wrapper.eq("farm_id",farmId);
+        this.remove(wrapper);
+        for (UnitDto1 unitDto1 : list) {
+            CameraArea cameraArea  = new CameraArea();
+            BeanUtil.copyProperties(unitDto1,cameraArea);
+            cameraArea.setAreaName(unitDto1.getName());
+            cameraArea.setFarmId(farmId);
+            cameraArea.setPublicUrl("61.153.248.106:6713");
+            this.save(cameraArea);
+        }
+
+    }
+
 }

+ 48 - 341
huimv-admin/src/main/java/com/huimv/admin/service/impl/CameraBaseServiceImpl.java

@@ -1,5 +1,6 @@
 package com.huimv.admin.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.RandomUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -8,8 +9,11 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.common.utils.ResultUtil;
+import com.huimv.admin.entity.CameraArea;
 import com.huimv.admin.entity.CameraBase;
 import com.huimv.admin.entity.CameraBrand;
+import com.huimv.admin.entity.hkwsdto.CameraDto1;
 import com.huimv.admin.entity.vo.CameraListVo;
 import com.huimv.admin.entity.vo.CameraListsVo;
 import com.huimv.admin.entity.vo.CameraVo;
@@ -23,6 +27,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -34,11 +39,11 @@ import java.util.List;
  */
 @Service
 public class CameraBaseServiceImpl extends ServiceImpl<CameraBaseMapper, CameraBase> implements ICameraBaseService {
-    @Autowired
-    private CameraBrandMapper cameraBrandMapper;
 
     @Autowired
     private CameraAreaMapper cameraAreaMapper;
+    @Autowired
+    private CameraBrandMapper cameraBrandMapper;
 
     @Override
     public Result listPage(CameraListVo cameraListVo) {
@@ -46,10 +51,9 @@ public class CameraBaseServiceImpl extends ServiceImpl<CameraBaseMapper, CameraB
         String strchStr = cameraListVo.getStrchStr();
         Integer size = cameraListVo.getSize();
         Integer areaId = cameraListVo.getAreaId();
-        Integer brandId = cameraListVo.getBrandId();
         Integer sort = cameraListVo.getSort();
         Integer farmId = cameraListVo.getFarmId();
-        Integer isOnline = cameraListVo.getIsOnline();
+        Integer onLineStatus = cameraListVo.getOnLineStatus();
         QueryWrapper<CameraBase> wrapper = new QueryWrapper<>();
         if (farmId != null) {
             wrapper.eq("farm_id", farmId);
@@ -57,17 +61,11 @@ public class CameraBaseServiceImpl extends ServiceImpl<CameraBaseMapper, CameraB
         if (areaId != null) {
             wrapper.eq("area_id", areaId);
         }
-        if (brandId != null) {
-            wrapper.eq("brand_id", brandId);
-        }
-
-        if (isOnline != null) {
-            wrapper.eq("is_online", isOnline);
+        if (onLineStatus != null) {
+            wrapper.eq("is_online", onLineStatus);
         }
-
         if (StringUtils.isNotBlank(strchStr)) {
-            wrapper.and(i -> i.like("camera_name", strchStr)
-                    .or().like("camera_ip", strchStr));
+            wrapper.and(i -> i.like("camera_name", strchStr));
         }
         if (sort == null) {
             wrapper.orderByDesc("id");
@@ -81,347 +79,56 @@ public class CameraBaseServiceImpl extends ServiceImpl<CameraBaseMapper, CameraB
     }
 
     @Override
-    public List getCameraDetails(CameraListsVo cameraListsVo) {
+    public Result getCameraDetails(CameraListsVo cameraListsVo) {
         List<Integer> cameraIds = cameraListsVo.getCameraIds();
-        CameraListVo cameraListVo = new CameraListsVo();
-        cameraListVo.setCurrent(1);
-        cameraListVo.setSize(10000);
-        cameraListVo.setStrchStr(cameraListsVo.getStrchStr());
-        cameraListVo.setAreaId(cameraListsVo.getAreaId());
-        cameraListVo.setBrandId(cameraListsVo.getBrandId());
-        cameraListVo.setSort(cameraListsVo.getSort());
-
-        if (cameraIds == null || cameraIds.size() == 0){
-            return null;
-        }
-        List cameraDetailsList = new ArrayList();
-        IPage<CameraBase> page = (IPage<CameraBase>)this.listPage(cameraListVo).getData();
-        List<CameraBase> list = page.getRecords();
-        int i = 0;
-        final String farmAppPort = "8081";
-        final String farmVideoApp = "/appleVideo/play?";
-        final String hlsMediaPort= "85";
-        for (CameraBase camera : list) {
-            for (Integer cameraId : cameraIds) {
-                if (cameraId.equals( camera.getId())){
-
-                    String cameraAccount = camera.getAccount();
-                    String cameraPassword = camera.getPassword();
-                    String camerIp = camera.getCameraIp();
-                    String cameraName = camera.getCameraName();
-                    Integer areaId = camera.getAreaId();
-                    String url = cameraAreaMapper.selectById(areaId).getPublicUrl();
-                    String rtsp ;
-                    CameraBrand cameraBrand = cameraBrandMapper.selectById(camera.getBrandId());
-                    Integer type = cameraBrand.getStreamType();
-                    if (type == 0){
-                        rtsp = cameraBrand.getMainStream();
-                    }else {
-                        rtsp = cameraBrand.getAssistStream();
-                    }
-                    CameraVo cameraVo= new CameraVo();
-                    cameraVo.setId(camera.getId());
-                    cameraVo.setAreaId(areaId);
-
-                    cameraVo.setWsUrl("ws://" + url + "/camera_relay?tcpaddr=" + cameraAccount + "%3A" + cameraPassword + "%40" + camerIp);
-//                    cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + rtsp);
-                    //http://61.153.248.106:6713/mag/hls/6bf5d2cf30bb440cad3fc126512f5188/1/live.m3u8
-//                    cameraVo.setRtspUrl("http://" + ip + ":" + port + "/mag/hls/" + sysKey +"/1/live.m3u8");
-                    cameraVo.setRtspUrl("http://61.153.248.106:6713/mag/hls/6bf5d2cf30bb440cad3fc126512f5188/1/live.m3u8");
-                    cameraVo.setCameraName(cameraName);
-                    cameraVo.setHttpUrl(handleHlsHttpUrl(url,cameraAccount,cameraPassword,camerIp,farmAppPort,farmVideoApp,hlsMediaPort));
-                    if (i > 0){
-                        cameraVo.setLastId(list.get(i-1).getId());
-                    }
-                    if (i < list.size()-1 ){
-                        cameraVo.setNextId(list.get(i+1).getId());
-                    }
-                    cameraDetailsList.add(cameraVo);
-                }
-            }
-            i++;
-        }
-        return cameraDetailsList;
-    }
-
-    //构造HlsHttp地址
-    private String handleHlsHttpUrl(String url, String cameraAccount, String cameraPassword, String camerIp, String farmAppPort, String farmVideoApp, String hlsMediaPort) {
-        url = url.substring(0,url.indexOf(":"));
-        url="http://"+url;
-        //return url+":"+farmAppPort+farmVideoApp+"url="+cameraAccount + ":" + cameraPassword + "@" + camerIp+"&name="+"&dt=3000&targetUrl="+url+":"+hlsMediaPort;
-        return url+":"+farmAppPort+farmVideoApp+"url="+cameraAccount + ":" + cameraPassword + "@" + camerIp+"&dt=3000&targetUrl="+url+":"+hlsMediaPort;
-    }
-
-    //    @Override
-    public List getCameraDetails_yu(CameraListsVo cameraListsVo) {
-        List<Integer> cameraIds = cameraListsVo.getCameraIds();
-        CameraListVo cameraListVo = new CameraListsVo();
-        cameraListVo.setCurrent(1);
-        cameraListVo.setSize(10000);
-        cameraListVo.setStrchStr(cameraListsVo.getStrchStr());
-        cameraListVo.setAreaId(cameraListsVo.getAreaId());
-        cameraListVo.setBrandId(cameraListsVo.getBrandId());
-        cameraListVo.setSort(cameraListsVo.getSort());
-
-
-        if (cameraIds == null || cameraIds.size() == 0) {
-            return null;
-        }
-        List cameraDetailsList = new ArrayList();
-        IPage<CameraBase> page = (IPage<CameraBase>) this.listPage(cameraListVo).getData();
-        List<CameraBase> list = page.getRecords();
-        int i = 0;
-        for (CameraBase camera : list) {
-            for (Integer cameraId : cameraIds) {
-                if (cameraId.equals(camera.getId())) {
-
-                    String cameraAccount = camera.getAccount();
-                    String cameraPassword = camera.getPassword();
-                    String camerIp = camera.getCameraIp();
-                    String cameraName = camera.getCameraName();
-                    Integer areaId = camera.getAreaId();
-                    String url = cameraAreaMapper.selectById(areaId).getPublicUrl();
-
-                    String rtsp;
-                    CameraBrand cameraBrand = cameraBrandMapper.selectById(camera.getBrandId());
-                    Integer type = cameraBrand.getStreamType();
-                    if (type == 0) {
-                        rtsp = cameraBrand.getMainStream();
-                    } else {
-                        rtsp = cameraBrand.getAssistStream();
-                    }
-                    CameraVo cameraVo = new CameraVo();
-                    cameraVo.setAreaId(areaId);
-                    cameraVo.setWsUrl("ws://" + url + "/camera_relay?tcpaddr=" + cameraAccount + "%3A" + cameraPassword + "%40" + camerIp);
-                    cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + rtsp);
-                    cameraVo.setCameraName(cameraName);
-                    if (i > 0) {
-                        cameraVo.setLastId(list.get(i - 1).getId());
-                    }
-                    if (i < list.size() - 1) {
-                        cameraVo.setNextId(list.get(i + 1).getId());
-                    }
-                    cameraDetailsList.add(cameraVo);
-                }
-
-            }
-            i++;
-        }
-
-
-        return cameraDetailsList;
-    }
-
-    @Override
-    public Result updateStatus(Integer id) {
-        CameraBase byId = this.getById(id);
-
-        if (byId.getRunStatus()) {
-            byId.setRunStatus(false);
-            this.updateById(byId);
-            return new Result(10000, "已停用", true);
-        } else {
-            byId.setRunStatus(true);
-            this.updateById(byId);
-            return new Result(10000, "已启用", true);
-        }
-
-
-    }
-
-    @Override
-    public Result add(CameraBase camera) {
-        Integer areaId = camera.getAreaId();
-        Integer brandId = camera.getBrandId();
-
-        int brandName = this.count(new QueryWrapper<CameraBase>().eq("camera_name", camera.getCameraName()).eq("farm_id", camera.getFarmId()));
-        if (brandName > 0) {
-            return new Result(10001, "摄像头名称重复", false);
-        }
-        if (areaId != null) {
-            camera.setAreaName(cameraAreaMapper.selectById(areaId).getAreaName());
-        }
-        if (brandId != null) {
-            camera.setBrandName(cameraBrandMapper.selectById(brandId).getBrandName());
-        }
-        this.save(camera);
-
-        return new Result(10000, "添加成功", true);
-    }
-
-    @Override
-    public Result updates(CameraBase camera) {
-        Integer areaId = camera.getAreaId();
-        Integer brandId = camera.getBrandId();
-        this.updateById(camera);
-        int brandName = this.count(new QueryWrapper<CameraBase>().eq("camera_name", camera.getCameraName()));
-        if (brandName > 1) {
-            return new Result(10001, "摄像头名称重复", false);
-        }
-        if (areaId != null) {
-            camera.setAreaName(cameraAreaMapper.selectById(areaId).getAreaName());
-        }
-        if (brandId != null) {
-            camera.setBrandName(cameraBrandMapper.selectById(brandId).getBrandName());
-        }
-        this.updateById(camera);
-        return new Result(10000, "修改成功", true);
-    }
-
-    @Override
-    public CameraVo getCameraDetailsByRoomId(Integer roomId) {
-
-
-        CameraBase camera = this.getOne(new QueryWrapper<CameraBase>().eq("room_id", roomId));
-
-        return getCameraVo(camera);
-    }
-
-
-//    @Override
-//    public Result initCamera(Integer farmId, Integer userId) {
-//        BaseScreenCameraAccount cameraAccount = cameraAccountMapper.selectOne(new QueryWrapper<BaseScreenCameraAccount>().eq("farm_id", farmId).eq("account_id", userId));
-//        Integer cameraId;
-//        if (ObjectUtil.isEmpty(cameraAccount)) {
-//            cameraId = this.getOne(new QueryWrapper<Camera>().eq("run_status", 1).eq("farm_id", farmId).last("limit 1")).getId();
-//        } else {
-//            cameraId = cameraAccount.getCameraId();
-//        }
-//
-//
-//        Camera camera = this.getById(cameraId);
-//        if (!camera.getRunStatus()) {
-//            return new Result(10001, "该摄像头已经被禁用", false);
-//        }
-//
-//        return new Result(ResultCode.SUCCESS, getCameraVo(camera));
-//    }
-
-    @Override
-    public Result listScreenCamera(Integer farmId) {
-        List<CameraBase> cameras = this.list(new QueryWrapper<CameraBase>().eq("farm_id", farmId));
+        CameraBrand cameraBrand = cameraBrandMapper.selectById(18);
         List list = new ArrayList();
-        for (int i = 0; i < 6; i++) {
-            list.add(getCameraVo(cameras.get(RandomUtil.randomInt(0, cameras.size()))));
-        }
-
-        return new Result(ResultCode.SUCCESS, list);
+        for (Integer cameraId : cameraIds) {
+            CameraBase cameraBase = this.getById(cameraId);
+            String regionUuid = cameraBase.getRegionUuid();
+            CameraArea cameraArea = cameraAreaMapper.selectOne(new QueryWrapper<CameraArea>().eq("region_uuid", regionUuid));
+            // http://61.153.248.106:6713/mag/hls/6bf5d2cf30bb440cad3fc126512f5188/1/live.m3u8
+            String hls ="http://"+cameraArea.getPublicUrl()+cameraBrand.getStreamType()+cameraBase.getCameraUuid()+"/"+ cameraBrand.getMainStream()+"/"+"live.m3u8";
+            CameraVo cameraVo = new CameraVo();
+            cameraVo.setHlsUrl(hls);
+            cameraVo.setId(cameraBase.getId());
+            cameraVo.setCameraName(cameraBase.getCameraName());
+            list.add(cameraVo);
+        }
+        return ResultUtil.list(list);
     }
 
-//    @Override
-//    public Result screenCamera(Integer farmId) {
-//
-//        BaseRoom baseRoom = baseRoomMapper.selectOne(new QueryWrapper<BaseRoom>().eq("farm_id", farmId).last("limit 1"));
-//        Integer roomId;
-//        if (ObjectUtil.isNotEmpty(baseRoom)) {
-//
-//            roomId = baseRoom.getId();
-//        } else {
-//            return new Result(ResultCode.SUCCESS, null);
-//        }
-//        Camera room_id = this.getOne(new QueryWrapper<Camera>().eq("room_id", roomId));
-//        CameraVo cameraVo = getCameraVo(room_id);
-//
-//        return new Result(ResultCode.SUCCESS, cameraVo);
-//    }
 
     @Override
-    public List getCameraDetails2(CameraListsVo cameraListsVo) {
-        List<Integer> cameraIds = cameraListsVo.getCameraIds();
-        CameraListVo cameraListVo = new CameraListsVo();
-        cameraListVo.setCurrent(1);
-        cameraListVo.setSize(10000);
-        cameraListVo.setStrchStr(cameraListsVo.getStrchStr());
-        cameraListVo.setAreaId(cameraListsVo.getAreaId());
-        cameraListVo.setBrandId(cameraListsVo.getBrandId());
-        cameraListVo.setSort(cameraListsVo.getSort());
-
-        if (cameraIds == null || cameraIds.size() == 0){
-            return null;
-        }
-        List cameraDetailsList = new ArrayList();
-        IPage<CameraBase> page = (IPage<CameraBase>)this.listPage(cameraListVo).getData();
-        List<CameraBase> list = page.getRecords();
-        int i = 0;
-        final String farmAppPort = "8081";
-        final String farmVideoApp = "/appleVideo/play?";
-        final String hlsMediaPort= "85";
-        for (CameraBase camera : list) {
-            for (Integer cameraId : cameraIds) {
-                if (cameraId.equals( camera.getId())){
-                    String cameraAccount = camera.getAccount();
-                    String cameraPassword = camera.getPassword();
-                    String camerIp = camera.getCameraIp();
-                    String cameraName = camera.getCameraName();
-                    Integer areaId = camera.getAreaId();
-                    String url = cameraAreaMapper.selectById(areaId).getPublicUrl();
-                    url = url.substring(0,url.indexOf(":"));
-                    url="http://"+url;
-                    CameraVo cameraVo= new CameraVo();
-                    cameraVo.setAreaId(areaId);
-//                    cameraVo.setWsUrl("ws://" + url + "/camera_relay?tcpaddr=" + cameraAccount + "%3A" + cameraPassword + "%40" + camerIp);
-//                    cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + rtsp);
-                    //示例
-//                    cameraVo.setHttpUrl("http://183.249.204.153:8081/appleVideo/play?url=admin:hmkj6688@192.168.1.108&name=101&dt=3000&targetUrl=http://183.249.204.153:85");
-                    cameraVo.setHttpUrl(url+":"+farmAppPort+farmVideoApp+"url="+cameraAccount + ":" + cameraPassword + "@" + camerIp+"&name="+"&dt=3000&targetUrl="+url+":"+hlsMediaPort);
-                    cameraVo.setCameraName(cameraName);
-                    if (i > 0){
-                        cameraVo.setLastId(list.get(i-1).getId());
-                    }
-                    if (i < list.size()-1 ){
-                        cameraVo.setNextId(list.get(i+1).getId());
-                    }
-                    cameraDetailsList.add(cameraVo);
-                }
+    public void sync(Map<String, Integer> params, List<CameraDto1> list) {
+        Integer farmId = params.get("farmId");
+        //先删除
+        this.remove(new QueryWrapper<CameraBase>().eq("farm_id",farmId));
+        System.out.println(list.size());
+        //
+        for (CameraDto1 cameraDto1 : list) {
+            CameraBase cameraBase = new CameraBase();
+            BeanUtil.copyProperties(cameraDto1,cameraBase);
+            CameraArea cameraArea = cameraAreaMapper.selectOne(new QueryWrapper<CameraArea>().eq("region_uuid", cameraDto1.getRegionUuid()));
+            if (ObjectUtil.isNotEmpty(cameraArea)){
+                cameraBase.setAreaName(cameraArea.getAreaName());
             }
-            i++;
+            cameraBase.setBrandName("海康威视");
+            cameraBase.setFarmId(farmId);
+            this.save(cameraBase);
         }
-
-
-        return cameraDetailsList;
     }
 
-
-
+    //更新摄像头状态
     @Override
-    public List getByAreaId(Integer areaId) {
-        return null;
-    }
-
-
-    public CameraVo getCameraVo(CameraBase camera) {
-
-        String cameraAccount = camera.getAccount();
-        String cameraPassword = camera.getPassword();
-        String camerIp = camera.getCameraIp();
-        String cameraName = camera.getCameraName();
-        Integer areaId = camera.getAreaId();
-        String url = cameraAreaMapper.selectById(areaId).getPublicUrl();
-
-        String rtsp;
-        CameraBrand cameraBrand = cameraBrandMapper.selectById(camera.getBrandId());
-        Integer type = cameraBrand.getStreamType();
-        if (type == 0) {
-            rtsp = cameraBrand.getMainStream();
-        } else {
-            rtsp = cameraBrand.getAssistStream();
+    public void updateCameraOnlin(List<CameraDto1> list) {
+        for (CameraDto1 cameraDto1 : list) {
+            String cameraUuid = cameraDto1.getCameraUuid();
+            CameraBase one = this.getOne(new QueryWrapper<CameraBase>().eq("camera_uuid", cameraUuid));
+            one.setOnLineStatus(1 ==cameraDto1.getOnLineStatus());
         }
 
-
-        CameraVo cameraVo = new CameraVo();
-        cameraVo.setAreaId(areaId);
-
-        if (camera.getId() == 767){
-            cameraVo.setWsUrl("ws://" + url + "/camera_relay?tcpaddr=" + cameraAccount + "%3A" + cameraPassword + "%40" + camerIp);
-            cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + "/cam/realmonitor?channel=2&subtype=0");
-        }else {
-            cameraVo.setWsUrl("ws://" + url + "/camera_relay?tcpaddr=" + cameraAccount + "%3A" + cameraPassword + "%40" + camerIp);
-            cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + rtsp);
-        }
-//        cameraVo.setWsUrl("ws://" + url + "/camera_relay?tcpaddr=" + cameraAccount + "%3A" + cameraPassword + "%40" + camerIp);
-//        cameraVo.setRtspUrl("rtsp://" + cameraAccount + ":" + cameraPassword + "@" + camerIp + rtsp);
-        cameraVo.setCameraName(cameraName);
-        return cameraVo;
     }
 
+
 }

+ 71 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/CameraFunctionAreaServiceImpl.java

@@ -0,0 +1,71 @@
+package com.huimv.admin.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.entity.CameraFunctionArea;
+import com.huimv.admin.mapper.CameraFunctionAreaMapper;
+import com.huimv.admin.mapper.CameraFunctionMapper;
+import com.huimv.admin.service.ICameraFunctionAreaService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-02-17
+ */
+@Service
+public class CameraFunctionAreaServiceImpl extends ServiceImpl<CameraFunctionAreaMapper, CameraFunctionArea> implements ICameraFunctionAreaService {
+    @Autowired
+    private CameraFunctionAreaMapper cameraFunctionAreaMapper;
+
+    @Autowired
+    private CameraFunctionMapper cameraFunctionMapper;
+
+    @Override
+    public Result cameraList(Map<String, Object> params) {
+        Integer current = (Integer) params.get("current");
+        Integer size = (Integer) params.get("size");
+        String functionaName = (String) params.get("functionaName");
+        Integer farmId = (Integer) params.get("farmId");
+
+        IPage<CameraFunctionArea> list = page(new Page<>(current, size), new QueryWrapper<CameraFunctionArea>().like(StringUtils.isNotBlank(functionaName), "area_name", functionaName).eq("farm_id", farmId));
+        return new Result(ResultCode.SUCCESS, list);
+    }
+
+    @Override
+    @Transactional
+    public Result removeIds(List<Integer> ids) {
+        for (Integer id : ids) {
+            CameraFunctionArea byId = this.getById(id);
+            if (StringUtils.isNotBlank(byId.getFunctionIds()) ) {
+                return new Result(10001, "删除失败," + byId.getFunctionName() + "仍然存在区域", false);
+            }
+        }
+        this.removeByIds(ids);
+        return new Result(10000, "删除成功", true);
+    }
+
+    @Override
+    public Result addFunction(Map<String, String> params) {
+        String functionAreaId = params.get("functionAreaId");
+        String functionIds = params.get("functionIds");
+        CameraFunctionArea cameraFunctionArea = new CameraFunctionArea();
+        cameraFunctionArea.setId(Integer.parseInt(functionAreaId));
+        cameraFunctionArea.setFunctionIds(functionIds);
+        this.updateById(cameraFunctionArea);
+        return new Result(10000, "添加成功", true);
+    }
+}

+ 148 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/CameraFunctionServiceImpl.java

@@ -0,0 +1,148 @@
+package com.huimv.admin.service.impl;
+
+import cn.hutool.core.util.RandomUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.huimv.admin.common.utils.Result;
+import com.huimv.admin.common.utils.ResultCode;
+import com.huimv.admin.common.utils.ResultUtil;
+import com.huimv.admin.entity.CameraBase;
+import com.huimv.admin.entity.CameraFunction;
+import com.huimv.admin.entity.CameraFunctionArea;
+import com.huimv.admin.mapper.CameraBaseMapper;
+import com.huimv.admin.mapper.CameraFunctionAreaMapper;
+import com.huimv.admin.mapper.CameraFunctionMapper;
+import com.huimv.admin.service.ICameraFunctionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-02-17
+ */
+@Service
+public class CameraFunctionServiceImpl extends ServiceImpl<CameraFunctionMapper, CameraFunction> implements ICameraFunctionService {
+    @Autowired
+    private CameraBaseMapper cameraMapper;
+
+    @Autowired
+    private CameraFunctionAreaMapper cameraFunctionAreaMapper;
+
+    @Override
+    public Result cameraList(Map<String, Object> params) {
+        Integer current = (Integer) params.get("current");
+        Integer size = (Integer) params.get("size");
+        String functionaName = (String) params.get("functionaName");
+        Integer farmId = (Integer) params.get("farmId");
+        IPage<CameraFunction> list = page(new Page<>(current, size), new QueryWrapper<CameraFunction>().like(StringUtils.isNotBlank(functionaName), "area_name", functionaName).eq("farm_id", farmId));
+        return new Result(ResultCode.SUCCESS, list);
+    }
+
+    @Override
+    @Transactional
+    public Result removeIds(List<Integer> ids) {
+        for (Integer id : ids) {
+            CameraFunction byId = this.getById(id);
+            List<CameraFunctionArea> cameraFunctionAreas = cameraFunctionAreaMapper.selectList(new QueryWrapper<CameraFunctionArea>().like("function_ids", id));
+            for (CameraFunctionArea cameraFunctionArea : cameraFunctionAreas) {
+                String functionIds = cameraFunctionArea.getFunctionIds();
+                functionIds = functionIds.replaceAll(id+",","");
+                functionIds = functionIds.replaceAll("1"+id,"");
+                cameraFunctionArea.setFunctionIds(functionIds);
+                cameraFunctionAreaMapper.updateById(cameraFunctionArea);
+            }
+            Integer areaId = cameraMapper.selectCount(new QueryWrapper<CameraBase>().eq("function_id", id));
+            if (areaId > 0) {
+                return new Result(10001, "删除失败," + byId.getFunctionName() + "仍然存在摄像头", false);
+            }
+        }
+        this.removeByIds(ids);
+        return new Result(10000, "删除成功", true);
+    }
+
+    @Override
+    public Result lsitAndCamera(Integer farmId) {
+        List endList = new ArrayList();
+        List<CameraFunctionArea> cameraFunctionAreas = cameraFunctionAreaMapper.selectList(new QueryWrapper<CameraFunctionArea>().eq("farm_id", farmId));
+        for (CameraFunctionArea cameraFunctionArea : cameraFunctionAreas) {
+            String functionIds = cameraFunctionArea.getFunctionIds();
+            Map functionAreaMap = new HashMap();
+            functionAreaMap.put("cameraName", cameraFunctionArea.getFunctionName());
+            functionAreaMap.put("id", cameraFunctionArea.getId());
+            functionAreaMap.put("functionList", null);
+            if (StringUtils.isNotBlank(functionIds)){
+                List<CameraFunction> cameraFunctions = this.list(new QueryWrapper<CameraFunction>().in("id", functionIds.split(",")));
+                List functionList = new ArrayList();
+                for (CameraFunction cameraFunction : cameraFunctions) {
+                    Map functionMap = new HashMap<>();
+                    functionMap.put("cameraName", cameraFunction.getFunctionName());
+                    functionMap.put("id", cameraFunction.getId());
+                    functionMap.put("cameraList", cameraMapper.selectList(new QueryWrapper<CameraBase>().eq("function_id", cameraFunction.getId())));
+                    functionList.add(functionMap);
+
+                }
+                functionAreaMap.put("functionList", functionList);
+            }
+            endList.add(functionAreaMap);
+        }
+        return new Result(ResultCode.SUCCESS, endList);
+    }
+
+    @Override
+    @Transactional
+    public Result addCamera(Map<String, String> params) {
+        String functionId = params.get("functionId");
+        String carmeraId = params.get("carmeraId");
+        String[] split = carmeraId.split(",");
+        CameraBase camera1 = new CameraBase();
+        camera1.setFunctionId(0);
+        cameraMapper.update(camera1,new UpdateWrapper<CameraBase>().eq("function_id",functionId));
+        System.out.println(functionId);
+        for (String s : split) {
+            System.out.println(s);
+            CameraBase camera = new CameraBase();
+            camera.setId(Integer.parseInt(s));
+            camera.setFunctionId(Integer.parseInt(functionId));
+            cameraMapper.updateById(camera);
+        }
+
+        return new Result(10000, "修改成功", true);
+    }
+
+    @Override
+    public Result deleteCamera(Map<String, String> params) {
+        String carmeraId = params.get("carmeraId");
+        String[] split = carmeraId.split(",");
+        for (String s : split) {
+            CameraBase camera = new CameraBase();
+            camera.setFunctionId(0);
+            cameraMapper.updateById(camera);
+        }
+        return ResultUtil.deleteResult(1);
+    }
+
+    @Override
+    public Result listCamera(Map<String, String> params) {
+        String functionId = params.get("functionId");
+        List<CameraBase> function_id = cameraMapper.selectList(new QueryWrapper<CameraBase>().eq("function_id", functionId));
+        List list = new ArrayList();
+        for (CameraBase camera : function_id) {
+            list.add(camera.getId());
+        }
+        return new Result(ResultCode.SUCCESS, list);
+    }
+}

+ 60 - 0
huimv-admin/src/main/java/com/huimv/admin/service/impl/EnvDeviceServiceImpl.java

@@ -1,12 +1,16 @@
 package com.huimv.admin.service.impl;
 
+import cn.hutool.core.codec.Base64;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.hikvision.cms.api.common.util.HttpClientSSLUtils;
 import com.huimv.admin.common.utils.DataUill;
 import com.huimv.admin.common.utils.Result;
 import com.huimv.admin.common.utils.ResultCode;
@@ -14,6 +18,7 @@ import com.huimv.admin.entity.BasePigpen;
 import com.huimv.admin.entity.EnvData;
 import com.huimv.admin.entity.EnvDevice;
 import com.huimv.admin.entity.dto.DeviceDto;
+import com.huimv.admin.entity.zengxindto.*;
 import com.huimv.admin.mapper.BasePigpenMapper;
 import com.huimv.admin.mapper.EnvDataMapper;
 import com.huimv.admin.mapper.EnvDeviceMaintainMapper;
@@ -21,7 +26,13 @@ import com.huimv.admin.mapper.EnvDeviceMapper;
 import com.huimv.admin.service.IEnvDeviceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.client.RestTemplate;
 
 import javax.servlet.http.HttpServletRequest;
 import java.text.NumberFormat;
@@ -49,6 +60,8 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
     private BasePigpenMapper basePigpenMapper;
     @Autowired
     private EnvDataMapper dataMapper;
+    @Autowired
+    private RestTemplate restTemplate;
 
     @Override
     public Result count(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
@@ -290,5 +303,52 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
         return new Result(ResultCode.SUCCESS,jsonArray);
     }
 
+    @Override
+    @Transactional
+    public Result sync(Map<String, Integer> params) throws Exception {
+        Integer farmId = params.get("farmId");
+        this.remove(new QueryWrapper<EnvDevice>().eq("farm_id",farmId));
+        //获取所有栏舍
+        Map<String, Object> map = new HashMap<String, Object>();
+        String s = HttpClientSSLUtils.doPost("https://yzwlw.loongk.com/mobile/login?username=江西增鑫&password=21218cca77804d2ba1922c33e0151105", JSON.toJSONString(map));
+        System.out.println("登录带栏舍:"+s);
+        LoginDto loginDto = JSONUtil.toBean(s, LoginDto.class);
+        DataToken token = loginDto.getData().getToken();
+        String encode = Base64.encode(token.getUserId() + "_" + token.getToken());
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Authorization",encode);
+        HttpEntity<String> requestEntity = new HttpEntity<>(null, headers);
+        List<DataShacks> shacks = loginDto.getData().getShacks();
+        for (DataShacks shack : shacks) {
+            syncConfig(shack.getId(),requestEntity,farmId);
+        }
+        return new Result(10000,"同步成功",false);
+    }
+
+    private void syncConfig(String shackId,HttpEntity httpEntity,Integer farmId) {
+        ResponseEntity<String> exchangePeizhi = restTemplate.exchange("https://yzwlw.loongk.com/mobile/loadShackConfig/"+shackId, HttpMethod.GET, httpEntity, String.class);
+        String peizhibody = exchangePeizhi.getBody();
+        ShackConfigDto shackConfigDto = JSONUtil.toBean(peizhibody, ShackConfigDto.class);
+        ShackConfigData data = shackConfigDto.getData();
+        List<ShackConfigDataSensors> sensors = data.getSensors();
+        if (ObjectUtil.isNotEmpty(sensors)){
+            EnvDevice envDevice =new EnvDevice();
+            envDevice.setFarmId(farmId);
+            envDevice.setDeviceBrand("增鑫");
+            envDevice.setDeviceCode(data.getId());
+            envDevice.setDeviceName(data.getName());
+            for (ShackConfigDataSensors sensor : sensors) {
+                if ("TEMPERATURE".equals(sensor.getType())){
+                    envDevice.setOhter1(sensor.getId());
+                }
+                if ("HUMIDITY".equals(sensor.getType())){
+                    envDevice.setOhter2(sensor.getId());
+                }
+            }
+            envDeviceMapper.insert(envDevice);
+        }
+
+    }
+
 
 }

+ 201 - 0
huimv-admin/src/main/java/com/huimv/admin/timer/CarmeraTimer.java

@@ -0,0 +1,201 @@
+package com.huimv.admin.timer;
+
+import cn.hutool.core.codec.Base64;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.hikvision.cms.api.common.util.Digests;
+import com.hikvision.cms.api.common.util.HttpClientSSLUtils;
+import com.huimv.admin.entity.EnvData;
+import com.huimv.admin.entity.EnvDevice;
+import com.huimv.admin.entity.EnvWarningThreshold;
+import com.huimv.admin.entity.hkwsdto.CameraDto1;
+import com.huimv.admin.entity.hkwsdto.HkvsCameraDto;
+import com.huimv.admin.entity.zengxindto.*;
+import com.huimv.admin.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.IOException;
+import java.sql.Timestamp;
+import java.text.ParseException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Configuration
+@EnableScheduling
+public class CarmeraTimer {
+    private static final String APPKEY = "1c9ee657";
+    private static final String SECRET = "a5d723941c804a429447e71db2707ce8";
+    private static final String OPENAPI_IP_PORT_HTTP = "http://61.153.248.106:100";
+    private static final String OPENAPI_IP_PORT_HTTPS = "https://61.153.248.106:4430";
+    private static final String ITF_ADDRESS_GET_CAMERAS = "/openapi/service/vss/res/getCameras";
+    private static final String OP_USER_UUID = "5b2eb534696b11e89c2e438f92627767";
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Autowired
+    private ICameraBaseService cameraBaseService;
+
+    @Autowired
+    private IEnvDeviceService envDeviceService;
+
+    @Autowired
+    private IEnvDataService envDataService;
+    @Autowired
+    private IEnvWarningThresholdService envWarningThresholdService;
+
+    @Autowired
+    private IEnvWarningInfoService envWarningInfoService;
+
+    //更新摄像头状态
+    @Scheduled(cron = "0 0/10 * * * ? ")
+    private void updateCameraOnlin() throws Exception {
+        String cameras = testGetCameras();
+        HkvsCameraDto hkvsCameraDto = JSONUtil.toBean(cameras, HkvsCameraDto.class);
+        if (ObjectUtil.isNotEmpty(hkvsCameraDto) && hkvsCameraDto.getErrorCode() ==0 ){
+            List<CameraDto1> list = hkvsCameraDto.getData().getList();
+            if (ObjectUtil.isNotEmpty(list)){
+                cameraBaseService.updateCameraOnlin(list);
+            }
+            System.out.println("更新成功");
+        }else {
+            System.out.println("摄像头信息为空");
+        }
+    }
+    /**
+     * HTTP方式
+     * 分页获取监控点信息 测试
+     * @return
+     * @throws Exception
+     */
+    private static String testGetCameras() throws Exception{
+        String url = OPENAPI_IP_PORT_HTTP + ITF_ADDRESS_GET_CAMERAS;
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("appkey", APPKEY);//设置APPKEY
+        map.put("time", System.currentTimeMillis());//设置时间参数
+        map.put("pageNo", 1);//设置分页参数
+        map.put("pageSize", 1000);//设置分页参数
+        map.put("opUserUuid", OP_USER_UUID);//设置操作用户UUID
+        String params = JSON.toJSONString(map);
+        System.out.println(" ====== getCameras请求参数:【" + params + "】");
+        String data = HttpClientSSLUtils.doPost(url + "?token=" + Digests.buildToken(url + "?" + params, null, SECRET), params);
+        System.out.println(" ====== getCameras请求返回结果:【{" + data + "}】");
+
+        return data;
+    }
+
+
+    //环控数据
+    String username = "江西增鑫";
+    String password = "888888";
+    String passwordMD5 = "21218cca77804d2ba1922c33e0151105";
+    String baseurl ="https://yzwlw.loongk.com/";
+
+//    @Scheduled(cron = "0 * * * * ? ")
+//    @Transactional
+    private void getHuanKong() throws Exception {
+        //目前是这家
+        Integer farmId = 21;
+        String encode = loginOnly();
+        System.out.println("encode"+encode);
+        //获取阈值
+        EnvWarningThreshold envWarningThreshold = envWarningThresholdService.getOne(new QueryWrapper<EnvWarningThreshold>().eq("farm_id", farmId));
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Authorization",encode);
+        HttpEntity<String> requestEntity = new HttpEntity<>(null, headers);
+        //只有一家,先拿全部
+        List<EnvDevice> list = envDeviceService.list();
+        for (EnvDevice envDevice : list) {
+            ResponseEntity<String> exchange = restTemplate.exchange("https://yzwlw.loongk.com/mobile/loadShackDatas/" + envDevice.getDeviceCode(), HttpMethod.GET, requestEntity, String.class);
+            String shishiBody = exchange.getBody();
+            System.out.println(new Date() +"实时数据"+ shishiBody);
+            ShackDatasDto shackDatasDto = JSONUtil.toBean(shishiBody, ShackDatasDto.class);
+            List<ShackDatasSensor> sensorDatas = shackDatasDto.getData().getSensorDatas();
+            EnvData envData = new EnvData();
+            for (ShackDatasSensor sensorData : sensorDatas) {
+                if (sensorData.getId().equals(envDevice.getOhter1())){
+                    String val = sensorData.getVal();
+                    //TODO 预警
+                    saveTemWarning(val,envWarningThreshold);
+                    envData.setEnvTemp(val);
+                }
+                if (sensorData.getId().equals(envDevice.getOhter2())){
+                    String val = sensorData.getVal();
+                    //TODO 预警
+//                    saveWarning(val,);
+                    envData.setEnvHum(val);
+                }
+            }
+            envData.setCreateTime(new Date());
+            envData.setDeviceId(envDevice.getDeviceCode());
+            envData.setFarmId(farmId);
+            envData.setUnitId(envDevice.getUnitId());
+            envDataService.save(envData);
+        }
+    }
+
+    private void saveTemWarning(String val, EnvWarningThreshold envWarningThreshold) {
+        String maxTem ;
+        String minTem ;
+        if (ObjectUtil.isEmpty(envWarningThreshold) || StringUtils.isBlank(envWarningThreshold.getMaxTem())){
+            maxTem ="40";
+        }else {
+            maxTem = envWarningThreshold.getMaxTem();
+        }
+        if (ObjectUtil.isEmpty(envWarningThreshold) || StringUtils.isBlank(envWarningThreshold.getMinTem())){
+            minTem ="0";
+        }else {
+            minTem =envWarningThreshold.getMinTem();
+        }
+        if (Double.parseDouble(maxTem) >Double.parseDouble(val)){
+
+        }
+    }
+
+    private String loginOnly() throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String s = HttpClientSSLUtils.doPost(baseurl + "/mobile/login?username=" + username + "&password=" + passwordMD5,JSON.toJSONString(map));
+        LoginOnlyDto loginDto = JSONUtil.toBean(s, LoginOnlyDto.class);
+        LonginOnlyDtoToken token = loginDto.getData().getToken();
+        return Base64.encode(token.getUserId() + "_" + token.getToken());
+    }
+
+    public static void main(String[] args) throws Exception {
+        Map<String, Object> map = new HashMap<String, Object>();
+        String s = HttpClientSSLUtils.doPost("https://yzwlw.loongk.com/mobile/login?username=江西增鑫&password=21218cca77804d2ba1922c33e0151105",JSON.toJSONString(map));
+        LoginDto loginDto = JSONUtil.toBean(s, LoginDto.class);
+        DataToken token = loginDto.getData().getToken();
+        String encode = Base64.encode(token.getUserId() + "_" + token.getToken());
+
+        //获取配置
+        Map<String, Object> map2 = new HashMap<String, Object>();
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Authorization",encode);
+        HttpEntity<String> requestEntity = new HttpEntity<>(null, headers);
+        RestTemplate restTemplate = new RestTemplate();
+
+        ResponseEntity<String> exchangePeizhi = restTemplate.exchange("https://yzwlw.loongk.com/mobile/loadShackConfig/"+"2c92083a78910dbc0178e98c06080207", HttpMethod.GET, requestEntity, String.class);
+        System.out.println("peizhi"+exchangePeizhi.getBody());
+
+        ResponseEntity<String> exchangeShishi = restTemplate.exchange("https://yzwlw.loongk.com/mobile/loadShackDatas/"+"2c92083a78910dbc0178e98c06080207", HttpMethod.GET, requestEntity, String.class);
+        System.out.println("shishi"+exchangeShishi.getBody());
+
+        System.out.println(s);
+    }
+
+
+
+}

+ 14 - 0
huimv-admin/src/main/resources/mapper/CameraFunctionAreaMapper.xml

@@ -0,0 +1,14 @@
+<?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.huimv.admin.mapper.CameraFunctionAreaMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.admin.entity.CameraFunctionArea">
+        <id column="id" property="id" />
+        <result column="function_name" property="functionName" />
+        <result column="remark" property="remark" />
+        <result column="farm_id" property="farmId" />
+        <result column="function_ids" property="functionIds" />
+    </resultMap>
+
+</mapper>

+ 14 - 0
huimv-admin/src/main/resources/mapper/CameraFunctionMapper.xml

@@ -0,0 +1,14 @@
+<?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.huimv.admin.mapper.CameraFunctionMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.admin.entity.CameraFunction">
+        <id column="id" property="id" />
+        <result column="function_name" property="functionName" />
+        <result column="remark" property="remark" />
+        <result column="farm_id" property="farmId" />
+        <result column="public_url" property="publicUrl" />
+    </resultMap>
+
+</mapper>