yang преди 3 години
родител
ревизия
51d467b55a
променени са 23 файла, в които са добавени 650 реда и са изтрити 42 реда
  1. 7 0
      huimv-farm-video/pom.xml
  2. 3 2
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/BaseController/SysTelecomController.java
  3. 13 3
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/BaseController/SysTelecomEventController.java
  4. 10 2
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/BaseController/VideoRecorController.java
  5. 5 3
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/ClientAllEventController.java
  6. 15 3
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/ClientCarManageController.java
  7. 8 1
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/ClientDoorController.java
  8. 28 1
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/ClientPersonManageController.java
  9. 13 1
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/ClientXixiaoController.java
  10. 5 3
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/GetPicture.java
  11. 1 1
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/GetToken.java
  12. 55 0
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/FaceAIController/AiFaceController.java
  13. 8 4
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/ScreenController/ScreenAlarmCountByDay.java
  14. 9 3
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/ScreenController/ScreenCarController.java
  15. 9 3
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/ScreenController/ScreenIndexDataController.java
  16. 16 4
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/ScreenController/ScreenPersonController.java
  17. 14 4
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/ScreenController/ScreenSiZhuController.java
  18. 7 1
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/entity/IccEventRecord.java
  19. 0 1
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/service/ISysTelecomEventService.java
  20. 220 0
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/timmer/GetRecordFromIcc.java
  21. 3 2
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/timmer/SysTelcomEnentTimmer.java
  22. 106 0
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/util/ImageByteUtil.java
  23. 95 0
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/util/ImageUploadUtils.java

+ 7 - 0
huimv-farm-video/pom.xml

@@ -44,6 +44,13 @@
             <artifactId>httpmime</artifactId>
             <version>4.5.12</version>
         </dependency>
+
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.8.0</version>
+        </dependency>
+
     </dependencies>
 
 

+ 3 - 2
huimv-farm-video/src/main/java/com/huimv/video/dhicc/BaseController/SysTelecomController.java

@@ -1,4 +1,4 @@
-package com.huimv.video.dhicc.BaseController;
+package com.huimv.video.dhicc.controller.BaseController;
 
 
 import com.huimv.common.utils.Result;
@@ -15,7 +15,8 @@ import java.util.Map;
 
 /**
  * <p>
- *  前端控制器
+ *  前端控制器   牧场文件不同  配置文件不同 麻烦啊  不能通过简单配置来处理
+ *  理论上来说可以通过复写多个tokenSingle来实现文件的选择
  * </p>
  *
  * @author astupidcoder

+ 13 - 3
huimv-farm-video/src/main/java/com/huimv/video/dhicc/BaseController/SysTelecomEventController.java

@@ -1,4 +1,4 @@
-package com.huimv.video.dhicc.BaseController;
+package com.huimv.video.dhicc.controller.BaseController;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huimv.common.utils.Result;
 import com.huimv.common.utils.ResultCode;
 import com.huimv.common.utils.StringUtilsWork;
-
 import com.huimv.video.dhicc.entity.BaseTelecomRoom;
 import com.huimv.video.dhicc.entity.SysTelecom;
 import com.huimv.video.dhicc.entity.SysTelecomEvent;
@@ -49,6 +48,9 @@ public class SysTelecomEventController {
 
     ) throws ParseException {
         //如果传入的开始时间是默认的今天的 就返回最近三天的 --前端说改起来比较麻烦
+        if(farmId!=1){
+            return new Result(10000,"当前牧场无设备",true);
+        }
 
         DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Date date = new Date();
@@ -89,8 +91,12 @@ public class SysTelecomEventController {
 
     @GetMapping("/listeventdetail")
     public Result listeventdetail(@RequestParam(name = "deviceId", required = false) String deviceId ,
+                                  @RequestParam(name = "farmId") Integer farmId,  //分页大小
                                   @RequestParam(name = "eventTimeString", required = false) String eventTimeString
     ) throws ParseException {
+        if(farmId!=1){
+            return new Result(10000,"当前牧场无设备",true);
+        }
         DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Date eventTime = fmt.parse(eventTimeString);
@@ -121,7 +127,11 @@ public class SysTelecomEventController {
 
     //过去几个小时的车辆烘干次数的----后面可以做成定时任务存表  防止断网就没数据
     @GetMapping("/listeventByHoure")
-    public Result listeventByHoure( ) throws ParseException {
+    public Result listeventByHoure(   @RequestParam(name = "farmId") Integer farmId   ) throws ParseException {
+        if(farmId!=1){
+            return new Result(10000,"当前牧场无设备",true);
+        }
+
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Calendar c = Calendar.getInstance();
         Date date = new Date();

+ 10 - 2
huimv-farm-video/src/main/java/com/huimv/video/dhicc/BaseController/VideoRecorController.java

@@ -1,4 +1,4 @@
-package com.huimv.video.dhicc.BaseController;
+package com.huimv.video.dhicc.controller.BaseController;
 
 //拿视频回放
 
@@ -11,7 +11,6 @@ import com.dahuatech.icc.oauth.http.DefaultClient;
 import com.dahuatech.icc.oauth.http.IClient;
 import com.dahuatech.icc.oauth.model.v202010.GeneralRequest;
 import com.dahuatech.icc.oauth.model.v202010.GeneralResponse;
-
 import com.huimv.video.dhicc.entity.IccChannel;
 import com.huimv.video.dhicc.mapper.IccChannelMapper;
 import com.huimv.video.dhicc.result.R;
@@ -45,6 +44,12 @@ public class VideoRecorController {
     public R getVideoRecord(@RequestBody Map<String, Object> params1) throws ClientException, ParseException {
         String happendTime = (String) params1.get("happendTime");
         String channelNmae = (String) params1.get("channelName");
+        Integer farmId= (int) params1.get("farmId");
+
+        if(farmId!=1){
+            return  R.ok("当前牧场无设备").put("URL",null );
+        }
+
         LambdaQueryWrapper<IccChannel> wrapper3 = Wrappers.lambdaQuery();
         wrapper3.eq(IccChannel::getChannelName, channelNmae);
         IccChannel iccChannel = iccChannelMapper.selectOne(wrapper3);
@@ -91,4 +96,7 @@ public class VideoRecorController {
         String recordUrl = sourceStrArray[1]+"?token="+token+"&trackID=701";
         return  R.ok("请求成功").put("URL",recordUrl );
     }
+
+
+
 }

+ 5 - 3
huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/ClientAllEventController.java

@@ -1,4 +1,4 @@
-package com.huimv.video.dhicc.ClientController;
+package com.huimv.video.dhicc.controller.ClientController;
 
 
 import com.alibaba.fastjson.JSON;
@@ -9,13 +9,11 @@ import com.dahuatech.icc.oauth.http.IClient;
 import com.dahuatech.icc.oauth.model.v202010.GeneralRequest;
 import com.dahuatech.icc.oauth.model.v202010.GeneralResponse;
 import com.huimv.common.utils.StringUtilsWork;
-
 import com.huimv.video.dhicc.icc.CommonConstant;
 import com.huimv.video.dhicc.result.R;
 import com.huimv.video.dhicc.service.ISysTelecomEventService;
 import net.sf.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -39,6 +37,10 @@ public class ClientAllEventController {
      //
     @RequestMapping("/ListAllEvent")
     public R SiZhuList(@RequestBody Map<String, Object> params1) throws ClientException, ParseException {
+        Integer farmId= (int) params1.get("farmId");
+        if(farmId!=1){
+            return R.ok("当前牧场无设备").put("data",null  );
+        }
         return R.ok("请求成功").put("data", getEventList( params1  )).put("total" , CountTimes(params1));
     }
 

+ 15 - 3
huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/ClientCarManageController.java

@@ -1,4 +1,4 @@
-package com.huimv.video.dhicc.ClientController;
+package com.huimv.video.dhicc.controller.ClientController;
 
 import com.dahuatech.hutool.http.Method;
 import com.dahuatech.icc.exception.ClientException;
@@ -8,8 +8,9 @@ import com.dahuatech.icc.oauth.model.v202010.GeneralRequest;
 import com.dahuatech.icc.oauth.model.v202010.GeneralResponse;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
-
+import com.huimv.common.utils.Result;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 
@@ -22,7 +23,12 @@ public class ClientCarManageController {
          * 保存ntamade
          */
         @RequestMapping("/get_car_record")
-        public GeneralResponse getCarRecord(HttpServletRequest request ) throws ClientException {
+        public GeneralResponse getCarRecord(HttpServletRequest request  , @RequestParam(name = "farmId") Integer farmId  ) throws ClientException {
+            if(farmId!=1){
+                //返回为空数据
+              return  new GeneralResponse() ;
+            }
+
             System.out.println(request.getRequestURL()   );
             System.out.println(request.getQueryString());
             String queryString = request.getQueryString();
@@ -44,6 +50,12 @@ public class ClientCarManageController {
 
         @RequestMapping("/get_person_detail")
         public GeneralResponse getPersonDetail( @RequestBody Map<String, Object> params ) throws ClientException {
+
+            Integer  farmId= (int) params.get("farmId");
+            if(farmId!=1){
+                //返回为空数据
+                return  new GeneralResponse() ;
+            }
             String URL = "/evo-apigw/evo-accesscontrol/${version}/card/accessControl/swingCardRecord/19241";  //获取事件URL    post请求
             IClient iClient = new DefaultClient();
             System.out.println("开始执行");

+ 8 - 1
huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/ClientDoorController.java

@@ -1,4 +1,4 @@
-package com.huimv.video.dhicc.ClientController;
+package com.huimv.video.dhicc.controller.ClientController;
 
 
 import com.alibaba.fastjson.JSON;
@@ -33,6 +33,11 @@ public class ClientDoorController {
     //
     @RequestMapping("/ListDoorEvent")
     public R ListDoorEvent(@RequestBody Map<String, Object> params1) throws ClientException, ParseException {
+        Integer farmId= (int) params1.get("farmId");
+        if(farmId!=1){
+            //返回为空数据
+            return  R.ok("当前牧场无设备").put("data",null);
+        }
         return R.ok("请求成功").put("data", getAllKindEventList( params1  )).put("total" , CountTimes(params1));
     }
     //返回所有的事件 的集合  包括死猪和洗消和大门 --分页参数
@@ -78,6 +83,8 @@ public class ClientDoorController {
 
 
     public String CountTimes(Map<String, Object> params1 ) throws ClientException {
+
+
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Calendar c = Calendar.getInstance();
         Date date = new Date();

+ 28 - 1
huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/ClientPersonManageController.java

@@ -1,4 +1,4 @@
-package com.huimv.video.dhicc.ClientController;
+package com.huimv.video.dhicc.controller.ClientController;
 
 
 import com.alibaba.fastjson.JSON;
@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Date;
 import java.util.Map;
+
 //门禁是不一样的
 @RestController
 @RequestMapping("person")
@@ -30,6 +31,12 @@ public class ClientPersonManageController {
          */
     @RequestMapping("/ge_person_list")
     public GeneralResponse ge_person_list ( @RequestBody Map<String, Object> params ) throws ClientException {
+        Integer farmId= (int) params.get("farmId");
+        if(farmId!=1){
+            //返回为空数据
+            return  null;
+        }
+
         String URL = "/evo-apigw/evo-brm/1.2.0/person/page; "  ;  // 人员列表的接口
         IClient iClient = new DefaultClient();
         System.out.println("开始执行");
@@ -67,6 +74,13 @@ public class ClientPersonManageController {
 
     @RequestMapping("/get_person_record")
     public GeneralResponse getAccidentRecord( @RequestBody Map<String, Object> params ) throws ClientException {
+
+        Integer  farmId= (int) params.get("farmId");
+        if(farmId!=1){
+            //返回为空数据
+            return  new GeneralResponse() ;
+        }
+
         String URL = "/evo-apigw/evo-accesscontrol/1.0.0/card/accessControl/swingCardRecord/bycondition/combined";  //获取事件URL    post请求
         IClient iClient = new DefaultClient();
         System.out.println("开始执行");
@@ -84,6 +98,13 @@ public class ClientPersonManageController {
    //总页数
     @RequestMapping("/get_person_record_totalpage")
     public GeneralResponse get_person_record_totalpage( @RequestBody Map<String, Object> params ) throws ClientException {
+        Integer  farmId= (int) params.get("farmId");
+        if(farmId!=1){
+            //返回为空数据
+            return  new GeneralResponse() ;
+        }
+
+
         String URL = "/evo-apigw/evo-accesscontrol/1.0.0/card/accessControl/swingCardRecord/bycondition/combinedCount?systime=";  //获取事件URL    post请求
         IClient iClient = new DefaultClient();
         String timestamp = String.valueOf((new Date()).getTime());
@@ -105,6 +126,12 @@ public class ClientPersonManageController {
 
     @RequestMapping("/get_person_detail")
     public GeneralResponse getPersonDetail( @RequestBody Map<String, Object> params ) throws ClientException {
+
+        Integer  farmId= (int) params.get("farmId");
+        if(farmId!=1){
+            //返回为空数据
+            return  new GeneralResponse() ;
+        }
         String URL = "/evo-apigw/evo-accesscontrol/${version}/card/accessControl/swingCardRecord/19241";  //获取事件URL    post请求
         IClient iClient = new DefaultClient();
         System.out.println("开始执行");

+ 13 - 1
huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/ClientXixiaoController.java

@@ -1,4 +1,4 @@
-package com.huimv.video.dhicc.ClientController;
+package com.huimv.video.dhicc.controller.ClientController;
 
 import com.alibaba.fastjson.JSON;
 import com.dahuatech.hutool.http.Method;
@@ -27,6 +27,12 @@ public class ClientXixiaoController {
      */
     @RequestMapping("/accident_record_xixiao")
     public GeneralResponse getAccidentRecord(@RequestBody Map<String, Object> params) throws ClientException {
+        Integer  farmId= (int) params.get("farmId");
+        if(farmId!=1){
+            //返回为空数据
+            return  null ;
+        }
+
 
         String URL = "/evo-apigw/evo-event/1.2.0/alarm-record/page";  //获取事件URL    post请求
         IClient iClient = new DefaultClient();
@@ -53,6 +59,12 @@ public class ClientXixiaoController {
      */
     @RequestMapping("/accident_record_xixiao_totalpage")
     public GeneralResponse getAccidentRecordTotalPage(@RequestBody Map<String, Object> params) throws ClientException {
+        Integer  farmId= (int) params.get("farmId");
+        if(farmId!=1){
+            //返回为空数据
+            return  new GeneralResponse() ;
+        }
+
         String URL = "/evo-apigw/evo-event/1.0.0/alarm-record/count-num";  //获取事件URL    post请求
         IClient iClient = new DefaultClient();
         System.out.println("开始执行");

+ 5 - 3
huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/GetPicture.java

@@ -1,4 +1,4 @@
-package com.huimv.video.dhicc.ClientController;
+package com.huimv.video.dhicc.controller.ClientController;
 
 import com.dahuatech.icc.exception.ClientException;
 import com.dahuatech.icc.oauth.http.DefaultClient;
@@ -16,6 +16,7 @@ import org.apache.http.impl.client.HttpClients;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+
 import javax.net.ssl.SSLContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -24,8 +25,8 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
-import static com.huimv.video.dhicc.icc.CommonConstant.IPAndPort;
 
+import static com.huimv.video.dhicc.icc.CommonConstant.IPAndPort;
 
 
 @RestController
@@ -36,7 +37,8 @@ public class GetPicture {
                                @RequestParam(name = "fileUrl" ,required = false) String fileUrl,
                                @RequestParam(name = "alarmPicture", required = false) String alarmPicture,
                                @RequestParam(name = "path", required = false) String  path
-                          ) throws IOException, ClientException {
+    ) throws IOException, ClientException {
+
         String url;
         IClient iClient = new DefaultClient();
         //如果 fileURL不为空  就认为是拿摄像头抓拍图片

+ 1 - 1
huimv-farm-video/src/main/java/com/huimv/video/dhicc/ClientController/GetToken.java

@@ -1,4 +1,4 @@
-package com.huimv.video.dhicc.ClientController;
+package com.huimv.video.dhicc.controller.ClientController;
 
 
 import com.dahuatech.icc.exception.ClientException;

+ 55 - 0
huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/FaceAIController/AiFaceController.java

@@ -0,0 +1,55 @@
+package com.huimv.video.dhicc.controller.FaceAIController;
+
+
+//金铭的人脸识别数据的接口  放这个里面
+public class AiFaceController {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}

+ 8 - 4
huimv-farm-video/src/main/java/com/huimv/video/dhicc/ScreenController/ScreenAlarmCountByDay.java

@@ -1,14 +1,14 @@
-package com.huimv.video.dhicc.ScreenController;
+package com.huimv.video.dhicc.controller.ScreenController;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.dahuatech.icc.exception.ClientException;
-
 import com.huimv.video.dhicc.entity.SysTelecomEvent;
 import com.huimv.video.dhicc.result.R;
 import com.huimv.video.dhicc.service.ISysTelecomEventService;
 import com.huimv.video.dhicc.util.GetResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
@@ -24,10 +24,14 @@ public class ScreenAlarmCountByDay {
     @Autowired
     private ISysTelecomEventService sysTelecomEventService;
 
-
      //四种事件统计
     @RequestMapping("/CountByDay")
-    public R AlarmCountByDay(HttpServletRequest request) throws ClientException {
+    public R AlarmCountByDay(HttpServletRequest request,@RequestParam(name = "farmId") Integer farmId  ) throws ClientException {
+        if(farmId!=1){
+            //返回为空数据
+            return  R.ok("当前牧场无设备").put("data", null);
+        }
+
         GetResponse getResponse = new GetResponse();
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Calendar c = Calendar.getInstance();

+ 9 - 3
huimv-farm-video/src/main/java/com/huimv/video/dhicc/ScreenController/ScreenCarController.java

@@ -1,11 +1,11 @@
-package com.huimv.video.dhicc.ScreenController;
+package com.huimv.video.dhicc.controller.ScreenController;
 
 
 import com.dahuatech.icc.exception.ClientException;
-
 import com.huimv.video.dhicc.result.R;
 import com.huimv.video.dhicc.util.GetResponse;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
@@ -29,7 +29,13 @@ public class ScreenCarController {
      */
     // https://36.26.62.70:447/evo-apigw/ipms/carcapture/find/conditions?pageNum=1&pageSize=10&queryTimeBegin=2021-12-01+00%3A00%3A00&queryTimeEnd=2021-12-01+23%3A59%3A59&_=1638356246174
     @RequestMapping("/count_car_record")
-    public R ddgetCarRecord(HttpServletRequest request ) throws ClientException {
+    public R ddgetCarRecord(HttpServletRequest request,@RequestParam(name = "farmId") Integer farmId   ) throws ClientException {
+
+        if(farmId!=1){
+            //返回为空数据
+            return  R.ok("当前牧场无设备").put("data", null);
+        }
+
         GetResponse getResponse = new GetResponse();
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Calendar c = Calendar.getInstance();

+ 9 - 3
huimv-farm-video/src/main/java/com/huimv/video/dhicc/ScreenController/ScreenIndexDataController.java

@@ -1,11 +1,12 @@
-package com.huimv.video.dhicc.ScreenController;
+package com.huimv.video.dhicc.controller.ScreenController;
 
 
 import com.dahuatech.icc.exception.ClientException;
-
+import com.dahuatech.icc.oauth.model.v202010.GeneralResponse;
 import com.huimv.video.dhicc.result.R;
 import com.huimv.video.dhicc.util.GetResponse;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
@@ -22,7 +23,12 @@ public class ScreenIndexDataController {
 
  //返回大屏首页的数据
     @RequestMapping("/dataList")
-    public R indexDataList(HttpServletRequest request ) throws ClientException, ParseException {
+    public R indexDataList(HttpServletRequest request ,@RequestParam(name = "farmId") Integer farmId  ) throws ClientException, ParseException {
+        if(farmId!=1){
+            //返回为空数据
+            return  R.ok("当前牧场无设备").put("data", null ) ;
+        }
+
         GetResponse getResponse = new GetResponse();
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          Map map  = new HashMap<>();

+ 16 - 4
huimv-farm-video/src/main/java/com/huimv/video/dhicc/ScreenController/ScreenPersonController.java

@@ -1,11 +1,12 @@
-package com.huimv.video.dhicc.ScreenController;
+package com.huimv.video.dhicc.controller.ScreenController;
 
 
 import com.dahuatech.icc.exception.ClientException;
-
+import com.dahuatech.icc.oauth.model.v202010.GeneralResponse;
 import com.huimv.video.dhicc.result.R;
 import com.huimv.video.dhicc.util.GetResponse;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
@@ -18,7 +19,13 @@ import java.util.*;
 public class ScreenPersonController {
 
     @RequestMapping("/count_person_record")
-    public R ddgetCarRecord(HttpServletRequest request ) throws ClientException, ParseException {
+    public R ddgetCarRecord(HttpServletRequest request,@RequestParam(name = "farmId") Integer farmId   ) throws ClientException, ParseException {
+
+        if(farmId!=1){
+            //返回为空数据
+            return  R.ok("当前牧场无设备").put("data", null );
+        }
+
         GetResponse getResponse = new GetResponse();
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Calendar c = Calendar.getInstance();
@@ -106,7 +113,12 @@ public class ScreenPersonController {
 
      //人员正常通行与异常通行的数据
     @RequestMapping("/count_person_record_fail_success")
-    public  R  count_person_record_fail_success(HttpServletRequest request ) throws ClientException, ParseException {
+    public  R  count_person_record_fail_success(HttpServletRequest request,@RequestParam(name = "farmId") Integer farmId   ) throws ClientException, ParseException {
+
+        if(farmId!=1){
+            //返回为空数据
+            return  R.ok("当前牧场无设备").put("data", null );
+        }
         GetResponse getResponse = new GetResponse();
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Calendar c = Calendar.getInstance();

+ 14 - 4
huimv-farm-video/src/main/java/com/huimv/video/dhicc/ScreenController/ScreenSiZhuController.java

@@ -1,4 +1,4 @@
-package com.huimv.video.dhicc.ScreenController;
+package com.huimv.video.dhicc.controller.ScreenController;
 
 import com.alibaba.fastjson.JSON;
 import com.dahuatech.hutool.http.Method;
@@ -7,12 +7,12 @@ import com.dahuatech.icc.oauth.http.DefaultClient;
 import com.dahuatech.icc.oauth.http.IClient;
 import com.dahuatech.icc.oauth.model.v202010.GeneralRequest;
 import com.dahuatech.icc.oauth.model.v202010.GeneralResponse;
-
 import com.huimv.video.dhicc.icc.CommonConstant;
 import com.huimv.video.dhicc.result.R;
 import com.huimv.video.dhicc.util.GetResponse;
 import net.sf.json.JSONObject;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
@@ -33,7 +33,12 @@ public class ScreenSiZhuController {
          * @throws ParseException
          */
         @RequestMapping("/count_sizhu_record")
-        public R count_sizhu_record(HttpServletRequest request) throws ClientException, ParseException {
+        public R count_sizhu_record(HttpServletRequest request ,@RequestParam(name = "farmId") Integer farmId ) throws ClientException, ParseException {
+            if(farmId!=1){
+                return  R.ok("当前牧场无设备").put("data",null );
+            }
+
+
             List result = new ArrayList();
             Map map1 = new HashMap();
             map1.put("value1", getPastSevenDay());
@@ -53,7 +58,12 @@ public class ScreenSiZhuController {
      * 写一个查左右的  事件都拿过来 存起来 建新的表来处理
      */
     @RequestMapping("/SiZhuList")
-    public R SiZhuList(HttpServletRequest request) throws ClientException, ParseException {
+    public R SiZhuList(HttpServletRequest request,@RequestParam(name = "farmId") Integer farmId  ) throws ClientException, ParseException {
+
+        if(farmId!=1){
+            return  R.ok("当前牧场无设备").put("data", null);
+        }
+
         return R.ok("请求成功").put("data", getSiZhuList());
     }
 

+ 7 - 1
huimv-farm-video/src/main/java/com/huimv/video/dhicc/entity/IccEventRecord.java

@@ -14,6 +14,8 @@ import java.time.LocalDateTime;
  * <p>
  * 
  * </p>
+ *这个实体类里面存三种信息   ICC抓拍的周界事件    ICC抓拍的过车照片和信息   ICC抓拍的
+ *
  *
  * @author astupidcoder
  * @since 2021-12-06
@@ -23,19 +25,23 @@ import java.time.LocalDateTime;
 @Accessors(chain = true)
 public class IccEventRecord extends Model {
 
+
+
     private static final long serialVersionUID = 1L;
 
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
-
+   //事件的ID
     private Integer eventId;
 
     @TableField("alarmStat")
     private Integer alarmStat;
 
+    //类型要的
     @TableField("alarmTypeName")
     private String alarmTypeName;
 
+    //日期用这个
     @TableField("alarmDate")
     private LocalDateTime alarmDate;
 

+ 0 - 1
huimv-farm-video/src/main/java/com/huimv/video/dhicc/service/ISysTelecomEventService.java

@@ -9,7 +9,6 @@ import java.util.Map;
 
 
 public interface ISysTelecomEventService extends IService<SysTelecomEvent> {
-
     Result listByRoom(Map map);
 
 }

+ 220 - 0
huimv-farm-video/src/main/java/com/huimv/video/dhicc/timmer/GetRecordFromIcc.java

@@ -0,0 +1,220 @@
+//package com.huimv.video.dhicc.timmer;
+//
+//import com.alibaba.fastjson.JSON;
+//import com.dahuatech.hutool.http.Method;
+//import com.dahuatech.icc.exception.ClientException;
+//import com.dahuatech.icc.oauth.http.DefaultClient;
+//import com.dahuatech.icc.oauth.http.IClient;
+//import com.dahuatech.icc.oauth.model.v202010.GeneralRequest;
+//import com.dahuatech.icc.oauth.model.v202010.GeneralResponse;
+//import com.huimv.video.dhicc.entity.IccEventRecord;
+//import com.huimv.video.dhicc.icc.CommonConstant;
+//import com.huimv.video.dhicc.mapper.SysTelecomMapper;
+//import com.huimv.video.dhicc.service.IIccEventRecordService;
+//import com.huimv.video.dhicc.service.ISysTelecomEventService;
+//import net.sf.json.JSONObject;
+//import org.apache.commons.io.FileUtils;
+//import org.apache.http.HttpResponse;
+//import org.apache.http.client.methods.HttpGet;
+//import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+//import org.apache.http.conn.ssl.SSLContextBuilder;
+//import org.apache.http.conn.ssl.TrustStrategy;
+//import org.apache.http.impl.client.CloseableHttpClient;
+//import org.apache.http.impl.client.HttpClients;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.scheduling.annotation.Scheduled;
+//import org.springframework.stereotype.Component;
+//import javax.net.ssl.SSLContext;
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.File;
+//import java.io.IOException;
+//import java.io.InputStream;
+//import java.io.OutputStream;
+//import java.security.cert.CertificateException;
+//import java.security.cert.X509Certificate;
+//import java.text.SimpleDateFormat;
+//import java.util.*;
+//
+//
+//import static com.huimv.video.dhicc.icc.CommonConstant.IPAndPort;
+//
+///**
+// * Icc事件同步到这里
+// */
+//@Component
+//public class GetRecordFromIcc {
+//
+//
+//    //访问时间的接口 将数据存到本地  但是这张表需要存  人员信息图片   车辆通过图片   事件图片三种基本的信息
+//    //需要明白的是  事件来自于这里  但是 这里只存储时间在两天之内的数据 实际上来说这里可以存储的数据需要合理设计
+//    //前端访问的接口还是不能变  我们不对齐做任何的改变 只是通过传入的开始结束时间来判断是从本地拿数据  还是从牧场拿数据
+//   //首先拿三天的数据过来再说
+//
+//
+//    @Autowired
+//    private SysTelecomMapper sysTelecomMapper;
+//
+//    @Autowired
+//    private ISysTelecomEventService sysTelecomEventService;
+//
+//    @Autowired
+//    private IIccEventRecordService iccEventRecordService ;
+//
+//    //每小时执行一次
+//   // @Scheduled(cron = " 0 */59 * * * ? ")
+//    @Scheduled(cron = " 0/5 * * * * ? ")
+//    private void getDataFromLocalIcc() throws ClientException, IOException {
+//         //这个地方拿出EVENT 数组 进行数据的判断 后面for循环一旦存在就抛弃
+//
+//        //返回所有的事件 的集合  包括死猪和洗消和大门 --分页参数
+//            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//            Calendar c = Calendar.getInstance();
+//            Date date = new Date();
+//            c.setTime(date);
+//            c.set(Calendar.HOUR, 0);
+//            c.set(Calendar.MINUTE, 0);
+//            c.set(Calendar.SECOND, 0);
+//            Date A = c.getTime();
+//            String formatA = format.format(A);
+//            c.set(Calendar.HOUR, +24);
+//            Date d = c.getTime();
+//            String formatD = format.format(d);
+//            Map<String, Object> params = new HashMap<>();
+//            params.put("alarmStartDateString",formatA);
+//            params.put("alarmEndDateString",formatD);
+//            params.put("pageNum",1);
+//            params.put("pageSize",10000);//足够大 包含时间段内所有的事件
+//            params.put("alarmType",303);
+//            params.put("dbType",0);
+//            params.put("deviceCategory",1);
+//            String[]  nodeCodeList= CommonConstant.AllChannle;
+//            params.put("nodeCodeList",nodeCodeList);
+//            //String URL = "/evo-apigw/evo-event/1.2.0/alarm-record/page"; //获取事件URL    post请求
+//            String URL = "/evo-apigw/evo-event/1.2.0/alarm-record/page";  //获取事件URL    post请求
+//            IClient iClient = new DefaultClient();
+//            String NewUrl = URL;
+//            //这种已经在配置文件里面安排了账号ip以及密码
+//            GeneralRequest generalRequest = new GeneralRequest(NewUrl, Method.POST);
+//            System.out.println(NewUrl);
+//            generalRequest.header("Content-Type", " application/json");
+//            generalRequest.body(JSON.toJSONString(params));
+//            GeneralResponse generalResponse = iClient.doAction(generalRequest, generalRequest.getResponseClass());
+//              JSONObject jsonObject = JSONObject.fromObject(generalResponse.getResult());
+//        JSONObject jsonObject01     = (JSONObject) jsonObject.get("data");
+//        List<Map> ss1= (List<Map>) jsonObject01.get("pageData");
+////        JSONArray jsonArray = JSONArray.fromObject(pageData);
+////        List<IccEventRecord> ss  = JSONArray.toList(jsonArray) ;//处理   for循环 需要有对应
+//        System.out.println();
+//      /*  for (IccEventRecord s : ss) {
+//            System.out.println(s.getAlarmPicture());
+//        }
+//*/
+//        for (Object o : ss1) {
+//            System.out.println(o);
+//            IccEventRecord iccEventRecord = new IccEventRecord();
+//            iccEventRecord.setEventId )
+//
+//
+//            iccEventRecordService.save(iccEventRecord);
+//
+//        }
+//
+//    }
+//
+//
+//    public  static void   getAndSave(String access_token , String  alarmPicture ,String fileName  , HttpServletResponse response) throws  IOException {
+//        HttpResponse httpResponse = null;
+//        try {
+//            CloseableHttpClient buildSSLCloseableHttpClient = buildSSLCloseableHttpClient();
+//            System.setProperty("jsse.enableSNIExtension", "false");
+//            HttpGet httpGet = new HttpGet(
+//                    //事件的图片
+//           IPAndPort+"/evo-pic/"+alarmPicture+"?token="+access_token+"&oss_addr=172.16.3.223:8925" );
+//
+//                         httpResponse = buildSSLCloseableHttpClient.execute(httpGet);
+//        } catch (Exception e) {
+//            // TODO Auto-generated catch block
+//            e.printStackTrace();
+//        }
+//        System.out.println("返回图片");
+//        response.setContentLength(28539);
+//        response.setHeader("Content-Type"," image/jpeg");
+//        response.setHeader("Accept-Ranges","bytes");
+//        //流在这里
+//        //可以 图片存储成功//只要当前目录存在  就可以实现存储图片
+//        File outFile = new File( "D:\\test\\12.jpg");
+//        //拷贝文件到输出文件对象
+//        FileUtils.copyInputStreamToFile( httpResponse.getEntity().getContent(), outFile);
+//        InputStream content = httpResponse.getEntity().getContent();
+//
+//        OutputStream out = null;
+//        try {
+//            out = response.getOutputStream();
+//            int len = 0;
+//            byte[] b = new byte[1024];
+//            while ((len = content.read(b)) != -1) {
+//                out.write(b, 0, len);
+//            }
+//            out.flush();
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        } finally {
+//            try {
+//                if (out != null) {
+//                    out.close();
+//                }
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//            }
+//        }
+//    }
+//
+//
+//    private static CloseableHttpClient buildSSLCloseableHttpClient()
+//            throws Exception {
+//        SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null,
+//                new TrustStrategy() {
+//                    // 信任所有
+//                    public boolean isTrusted(X509Certificate[] chain,
+//                                             String authType) throws CertificateException {
+//                        return true;
+//                    }
+//                }).build();
+//        SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
+//                sslContext, new String[] { "TLSv1.2" }, null,
+//                SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
+//        return HttpClients.custom().setSSLSocketFactory(sslsf).build();
+//    }
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//    }
+//
+//
+//

+ 3 - 2
huimv-farm-video/src/main/java/com/huimv/video/dhicc/timmer/SysTelcomEnentTimmer.java

@@ -17,7 +17,7 @@ import java.util.List;
 import java.util.stream.Collectors;
 
 
-//主要用来生产烘干数据的 时间拿时间
+//主要用来生产烘干数据的 时间拿时间 --可以吧大华的代码赋值出来 自己改一改  应该是OK的
 @Component
 public class SysTelcomEnentTimmer {
     @Autowired
@@ -27,7 +27,8 @@ public class SysTelcomEnentTimmer {
     private ISysTelecomEventService sysTelecomEventService;
 
        //每小时执行一次
-       @Scheduled(cron = " 0 */59 * * * ? ")
+      // @Scheduled(cron = " 0 */59 * * * ? ")
+       //@Scheduled(cron = " 0/5 * * * * ? ")
        //@Scheduled(cron = " 0/50 * * * * ? ")
        private void updateBox() {
            //获得设备列表 查找烘干数据

+ 106 - 0
huimv-farm-video/src/main/java/com/huimv/video/dhicc/util/ImageByteUtil.java

@@ -0,0 +1,106 @@
+package com.huimv.video.dhicc.util;
+
+import javax.imageio.stream.FileImageInputStream;
+import javax.imageio.stream.FileImageOutputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+
+//存储图片到本地的工具类
+public class ImageByteUtil {
+    /**
+     * 实现图片与byte数组之间的互相转换
+     * @param args
+     */
+    public static void main(String[] args) {
+        //定义路径
+        String path = "C:\\Users\\yang\\Pictures\\Camera Roll\\123.jpg";
+        byte[] data = image2byte(path);
+        System.out.println(data.length);
+    }
+
+    /**
+     * 将图片转换为byte数组
+     * @param path 图片路径
+     * @return
+     */
+    public static byte[] image2byte(String path){
+        //定义byte数组
+        byte[] data = null;
+        //输入流
+        FileImageInputStream input = null;
+        try {
+            input = new FileImageInputStream(new File(path));
+            ByteArrayOutputStream output = new ByteArrayOutputStream();
+            byte[] buf = new byte[1024];
+            int numBytesRead = 0;
+            while ((numBytesRead = input.read(buf)) != -1) {
+                output.write(buf, 0, numBytesRead);
+            }
+            data = output.toByteArray();
+            output.close();
+            input.close();
+        }
+        catch (FileNotFoundException ex1) {
+            ex1.printStackTrace();
+        }
+        catch (IOException ex1) {
+            ex1.printStackTrace();
+        }
+        return data;
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+    //byte数组到图片
+    public void byte2image(byte[] data, String path){
+        if(data.length<3||path.equals("")){ return; }
+        try{
+            FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path));
+            imageOutput.write(data, 0, data.length);
+            imageOutput.close();
+            System.out.println("Make Picture success,Please find image in " + path);
+        } catch(Exception ex) {
+            System.out.println("Exception: " + ex);
+            ex.printStackTrace();
+        }
+    }
+
+    //byte数组到16进制字符串
+    public String byte2string(byte[] data){
+        if(data==null||data.length<=1){ return "0x"; }
+        if(data.length>200000){ return "0x"; }
+        StringBuffer sb = new StringBuffer();
+        int buf[] = new int[data.length];
+        //byte数组转化成十进制
+        for(int k=0;k<data.length;k++){
+            buf[k] = data[k]<0?(data[k]+256):(data[k]);
+        }
+        //十进制转化成十六进制
+        for(int k=0;k<buf.length;k++){
+            if(buf[k]<16){ sb.append("0"+ Integer.toHexString(buf[k])); }
+            else{ sb.append(Integer.toHexString(buf[k])); }
+        }
+        return "0x"+sb.toString().toUpperCase();
+    }
+}

+ 95 - 0
huimv-farm-video/src/main/java/com/huimv/video/dhicc/util/ImageUploadUtils.java

@@ -0,0 +1,95 @@
+package com.huimv.video.dhicc.util;
+
+import org.apache.commons.io.FileUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.util.UUID;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+//存储图片到本地的工具类
+public class ImageUploadUtils {
+    public static String Upload(MultipartFile files[], HttpServletRequest request) {
+        //ogger.info("图片批量上传,files[]=",files);
+        String uploadPath = request.getSession().getServletContext().getRealPath("/") + "/upload";
+        StringBuilder filefiles = new StringBuilder();
+        // String uploadPath = "C:\\test\\upload";
+        File uploadDirectory = new File(uploadPath);
+        if (uploadDirectory.exists()) {
+            if (!uploadDirectory.isDirectory()) {
+                uploadDirectory.delete();
+            }
+        } else {
+            uploadDirectory.mkdir();
+        }
+        //这里可以支持多文件上传
+        if (files != null && files.length >= 1) {
+            BufferedOutputStream bw = null;
+            try {
+                for (MultipartFile file : files) {
+
+                    String fileName = file.getOriginalFilename();
+                    //判断是否有文件且是否为图片文件
+                    if(fileName!=null && !"".equalsIgnoreCase(fileName.trim()) && isImageFile(fileName)) {
+                        filefiles.append(uploadPath + "/" + UUID.randomUUID().toString()+ getFileType(fileName));
+                        filefiles.append(":");
+                        //创建输出文件对象
+                        File outFile = new File(uploadPath + "/" + UUID.randomUUID().toString()+ getFileType(fileName));
+                        //拷贝文件到输出文件对象
+                        FileUtils.copyInputStreamToFile(file.getInputStream(), outFile);
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            } finally {
+                try {
+                    if (bw != null) {
+                        bw.close();
+                    }
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+//        return "upload successful";
+        return filefiles.toString();
+    }
+
+
+    private static Boolean isImageFile(String fileName) {
+        String[] img_type = new String[]{".jpg", ".jpeg", ".png", ".gif", ".bmp"};
+        if (fileName == null) {
+            return false;
+        }
+        fileName = fileName.toLowerCase();
+        for (String type : img_type) {
+            if (fileName.endsWith(type)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 获取文件后缀名
+     *
+     * @param fileName
+     * @return
+     */
+    private static String getFileType(String fileName) {
+        if (fileName != null && fileName.indexOf(".") >= 0) {
+            return fileName.substring(fileName.lastIndexOf("."), fileName.length());
+        }
+        return "";
+    }
+}