瀏覽代碼

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	huimv-farm-video/src/main/resources/application-prod2.yml
zhuoning 3 年之前
父節點
當前提交
aefd0285ad
共有 94 個文件被更改,包括 1202 次插入1573 次删除
  1. 4 61
      huimv-farm-admin/pom.xml
  2. 2 0
      huimv-farm-admin/src/main/java/com/huimv/admin/HuimvAdminApplication.java
  3. 1 1
      huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/LoginController.java
  4. 6 0
      huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/SysAccountMultilevelController.java
  5. 1 0
      huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/Farm.java
  6. 0 34
      huimv-farm-admin/src/main/java/com/huimv/common/exception/ExceptionEnum.java
  7. 0 6
      huimv-farm-admin/src/main/java/com/huimv/common/exception/MExceptionEnum.java
  8. 0 20
      huimv-farm-admin/src/main/java/com/huimv/common/exception/MiException.java
  9. 0 20
      huimv-farm-admin/src/main/java/com/huimv/common/token/TokenConstant.java
  10. 0 128
      huimv-farm-admin/src/main/java/com/huimv/common/token/TokenSign.java
  11. 0 149
      huimv-farm-admin/src/main/java/com/huimv/common/utils/DataUill.java
  12. 0 133
      huimv-farm-admin/src/main/java/com/huimv/common/utils/GeneratorCodeConfig.java
  13. 0 27
      huimv-farm-admin/src/main/java/com/huimv/common/utils/GetMD5Str.java
  14. 0 58
      huimv-farm-admin/src/main/java/com/huimv/common/utils/HttpUtils.java
  15. 0 27
      huimv-farm-admin/src/main/java/com/huimv/common/utils/IpTools.java
  16. 0 18
      huimv-farm-admin/src/main/java/com/huimv/common/utils/NumberUtils.java
  17. 0 79
      huimv-farm-admin/src/main/java/com/huimv/common/utils/PageFactory.java
  18. 0 8
      huimv-farm-admin/src/main/java/com/huimv/common/utils/PageResult.java
  19. 0 29
      huimv-farm-admin/src/main/java/com/huimv/common/utils/PercentUtil.java
  20. 0 38
      huimv-farm-admin/src/main/java/com/huimv/common/utils/PlatformException.java
  21. 0 79
      huimv-farm-admin/src/main/java/com/huimv/common/utils/Result.java
  22. 0 41
      huimv-farm-admin/src/main/java/com/huimv/common/utils/ResultCode.java
  23. 0 202
      huimv-farm-admin/src/main/java/com/huimv/common/utils/SnowflakeSequence.java
  24. 0 44
      huimv-farm-admin/src/main/java/com/huimv/common/utils/StringUtilsWork.java
  25. 0 120
      huimv-farm-admin/src/main/java/com/huimv/common/utils/VerifyUtil.java
  26. 34 0
      huimv-farm-admin/src/main/resources/application-prod2.yml
  27. 1 0
      huimv-farm-admin/src/main/resources/application.properties
  28. 2 0
      huimv-farm-environ/src/main/java/com/huimv/environ/eco/controller/BaseRoomController.java
  29. 5 0
      huimv-farm-environ/src/main/java/com/huimv/environ/eco/controller/SysFodderController.java
  30. 7 0
      huimv-farm-environ/src/main/java/com/huimv/environ/eco/controller/SysTemperatureController.java
  31. 134 4
      huimv-farm-environ/src/main/java/com/huimv/environ/eco/controller/WeatherController.java
  32. 24 0
      huimv-farm-environ/src/main/java/com/huimv/environ/eco/entity/DayWeatherEntity.java
  33. 7 2
      huimv-farm-environ/src/main/java/com/huimv/environ/eco/entity/WeatherResultEntity.java
  34. 2 0
      huimv-farm-environ/src/main/java/com/huimv/environ/eco/entity/dto/AllWaterEnvPowerApp.java
  35. 1 1
      huimv-farm-environ/src/main/java/com/huimv/environ/eco/mapper/SysFodderMapper.java
  36. 1 0
      huimv-farm-environ/src/main/java/com/huimv/environ/eco/service/IBaseRoomService.java
  37. 1 0
      huimv-farm-environ/src/main/java/com/huimv/environ/eco/service/ISysFodderService.java
  38. 23 14
      huimv-farm-environ/src/main/java/com/huimv/environ/eco/service/impl/BaseRoomServiceImpl.java
  39. 16 12
      huimv-farm-environ/src/main/java/com/huimv/environ/eco/service/impl/SysDayWaterServiceImpl.java
  40. 39 5
      huimv-farm-environ/src/main/java/com/huimv/environ/eco/service/impl/SysFodderServiceImpl.java
  41. 34 0
      huimv-farm-environ/src/main/resources/application-prod2.yml
  42. 1 0
      huimv-farm-environ/src/main/resources/application.properties
  43. 1 4
      huimv-farm-environ/src/main/resources/com/huimv/environ/eco/mapper/BaseRoomMapper.xml
  44. 6 6
      huimv-farm-environ/src/main/resources/com/huimv/environ/eco/mapper/SysFodderMapper.xml
  45. 3 0
      huimv-farm-produce/src/main/java/com/huimv/produce/produce/repo/ProdWeightEntity.java
  46. 13 0
      huimv-farm-produce/src/main/java/com/huimv/produce/produce/service/impl/ProdSalesServiceImpl.java
  47. 2 0
      huimv-farm-produce/src/main/java/com/huimv/produce/warning/controller/BaseWarningInfoController.java
  48. 7 0
      huimv-farm-produce/src/main/java/com/huimv/produce/warning/controller/SysThresholdController.java
  49. 16 0
      huimv-farm-produce/src/main/java/com/huimv/produce/warning/entity/SysThreshold.java
  50. 2 0
      huimv-farm-produce/src/main/java/com/huimv/produce/warning/service/IBaseWarningInfoService.java
  51. 4 0
      huimv-farm-produce/src/main/java/com/huimv/produce/warning/service/ISysThresholdService.java
  52. 2 0
      huimv-farm-produce/src/main/java/com/huimv/produce/warning/service/impl/BaseWarningInfoServiceImpl.java
  53. 36 0
      huimv-farm-produce/src/main/java/com/huimv/produce/warning/service/impl/SysThresholdServiceImpl.java
  54. 34 0
      huimv-farm-produce/src/main/resources/application-prod2.yml
  55. 1 17
      huimv-farm-produce/src/main/resources/application.properties
  56. 10 1
      huimv-farm-receiver/src/main/java/com/huimv/receiver/eco/controller/EcoController.java
  57. 2 0
      huimv-farm-receiver/src/main/java/com/huimv/receiver/eco/entity/SysFodder.java
  58. 34 0
      huimv-farm-receiver/src/main/resources/application-prod2.yml
  59. 1 0
      huimv-farm-receiver/src/main/resources/application.properties
  60. 2 0
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/BaseController/SysTelecomEventController.java
  61. 8 25
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ClientController/ClientAllEventController.java
  62. 1 1
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ClientController/ClientCarManageController.java
  63. 24 4
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ClientController/ClientDoorController.java
  64. 27 60
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ClientController/ClientPersonManageController.java
  65. 2 16
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ClientController/ClientXixiaoController.java
  66. 0 2
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ClientController/GetToken.java
  67. 1 24
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/FaceAIController/AiFaceController.java
  68. 0 1
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ScreenController/ScreenAlarmCountByDay.java
  69. 1 2
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ScreenController/ScreenIndexDataController.java
  70. 8 11
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ScreenController/ScreenPersonController.java
  71. 4 6
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ScreenController/ScreenSiZhuController.java
  72. 102 0
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/entity/SysThreshold.java
  73. 1 0
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/entity/TelecomVo.java
  74. 17 0
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/mapper/SysThresholdMapper.java
  75. 17 0
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/service/ISysThresholdService.java
  76. 21 0
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/service/impl/SysThresholdServiceImpl.java
  77. 74 4
      huimv-farm-video/src/main/java/com/huimv/video/dhicc/timmer/SysTelcomEnentTimmer.java
  78. 68 0
      huimv-farm-video/src/main/java/com/huimv/video/video/controller/BaseSpecificVideoController.java
  79. 3 1
      huimv-farm-video/src/main/java/com/huimv/video/video/controller/CameraAreaController.java
  80. 1 1
      huimv-farm-video/src/main/java/com/huimv/video/video/controller/CameraBrandController.java
  81. 8 0
      huimv-farm-video/src/main/java/com/huimv/video/video/controller/CameraController.java
  82. 34 0
      huimv-farm-video/src/main/java/com/huimv/video/video/entity/BaseRoom.java
  83. 38 0
      huimv-farm-video/src/main/java/com/huimv/video/video/entity/BaseSpecificVideo.java
  84. 21 0
      huimv-farm-video/src/main/java/com/huimv/video/video/mapper/BaseRoomMapper.java
  85. 16 0
      huimv-farm-video/src/main/java/com/huimv/video/video/mapper/BaseSpecificVideoMapper.java
  86. 18 0
      huimv-farm-video/src/main/java/com/huimv/video/video/service/IBaseRoomService.java
  87. 19 0
      huimv-farm-video/src/main/java/com/huimv/video/video/service/IBaseSpecificVideoService.java
  88. 2 0
      huimv-farm-video/src/main/java/com/huimv/video/video/service/ICameraService.java
  89. 23 0
      huimv-farm-video/src/main/java/com/huimv/video/video/service/impl/BaseRoomServiceImpl.java
  90. 81 0
      huimv-farm-video/src/main/java/com/huimv/video/video/service/impl/BaseSpecificVideoServiceImpl.java
  91. 2 1
      huimv-farm-video/src/main/java/com/huimv/video/video/service/impl/CameraBrandServiceImpl.java
  92. 31 6
      huimv-farm-video/src/main/java/com/huimv/video/video/service/impl/CameraServiceImpl.java
  93. 6 3
      huimv-farm-video/src/main/resources/application-prod.yml
  94. 1 17
      huimv-farm-video/src/main/resources/application.properties

+ 4 - 61
huimv-farm-admin/pom.xml

@@ -3,27 +3,17 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
-        <groupId>org.springframework.boot</groupId>
-        <artifactId>spring-boot-starter-parent</artifactId>
-        <version>2.6.1</version>
-        <relativePath/> <!-- lookup parent from repository -->
+        <artifactId>huimv-farm-datacenter</artifactId>
+        <groupId>com.huimv</groupId>
+        <version>0.0.1-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>huimv-farm-admin</artifactId>
 
     <dependencies>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
 
         <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>cn.dustlight.captcha</groupId>
             <artifactId>redis-store</artifactId>
             <version>0.0.6</version>
@@ -44,65 +34,18 @@
             <version>0.9.1</version>
         </dependency>
         <!--CloseableHttpClient-->
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpclient</artifactId>
-            <version>4.5.2</version>
-        </dependency>
-        <dependency>
-            <groupId>cn.hutool</groupId>
-            <artifactId>hutool-all</artifactId>
-            <version>5.7.11</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.freemarker</groupId>
-            <artifactId>freemarker</artifactId>
-            <version>2.3.28</version>
-        </dependency>
 
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>mybatis-plus-boot-starter</artifactId>
-            <version>3.4.2</version>
-        </dependency>
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>mybatis-plus-extension</artifactId>
-            <version>3.4.2</version>
-        </dependency>
-        <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>mybatis-plus-generator</artifactId>
-            <version>3.2.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <optional>true</optional>
-        </dependency>
         <!-- JPA -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-jpa</artifactId>
         </dependency>
-        <!-- MySQL -->
-        <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-            <scope>runtime</scope>
-        </dependency>
         <dependency>
             <groupId>javax.xml.bind</groupId>
             <artifactId>jaxb-api</artifactId>
             <version>2.3.0</version>
         </dependency>
-        <!-- fastjson -->
-        <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>fastjson</artifactId>
-            <version>1.2.28</version>
-        </dependency>
+
     </dependencies>
 
     <build>

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

@@ -1,5 +1,6 @@
 package com.huimv.admin;
 
+import com.huimv.common.config.InterceptorConfig;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -16,6 +17,7 @@ import org.springframework.context.annotation.Import;
  **/
 @SpringBootApplication
 @MapperScan("com.huimv.admin.*.mapper")
+@Import(InterceptorConfig.class)
 public class HuimvAdminApplication {
     public static void main(String[] args) {
         ApplicationContext applicationContext = SpringApplication.run(HuimvAdminApplication.class, args);

+ 1 - 1
huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/LoginController.java

@@ -180,7 +180,7 @@ public class LoginController {
     @GetMapping("/xfarmList")
     public Result farmList(@RequestParam(name = "id")Integer id){
         QueryWrapper<BaseFarmX> wrapper = new QueryWrapper<>();
-        wrapper.eq("rowStatus",true);
+        wrapper.eq("row_status",true);
         if (id != null){
             wrapper.ne("id",id);
         }

+ 6 - 0
huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/SysAccountMultilevelController.java

@@ -3,8 +3,10 @@ package com.huimv.admin.system.controller;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.admin.system.entity.AccountGroup;
 import com.huimv.admin.system.entity.BaseScreenCameraAccount;
 import com.huimv.admin.system.entity.SysAccountMultilevel;
+import com.huimv.admin.system.service.IAccountGroupService;
 import com.huimv.admin.system.service.IBaseScreenCameraAccountService;
 import com.huimv.admin.system.service.ISysAccountMultilevelService;
 import com.huimv.common.token.TokenSign;
@@ -32,6 +34,9 @@ public class SysAccountMultilevelController {
     private ISysAccountMultilevelService accountMultilevelService;
 
     @Autowired
+    private IAccountGroupService accountGroupService;
+
+    @Autowired
     private IBaseScreenCameraAccountService baseScreenCameraAccountService;
 
 
@@ -76,6 +81,7 @@ public class SysAccountMultilevelController {
     @GetMapping("/remove")
     public Result remove(@RequestParam(name ="userIds") List<Integer> userIds){
 
+        accountGroupService.remove(new QueryWrapper<AccountGroup>().in("account_id",userIds));
         accountMultilevelService.removeByIds(userIds);
 
         return new Result(10000,"删除成功",true);

+ 1 - 0
huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/Farm.java

@@ -34,4 +34,5 @@ public class Farm extends Model {
     private String frontLocation;
 
 
+    private Boolean rowStatus;
 }

+ 0 - 34
huimv-farm-admin/src/main/java/com/huimv/common/exception/ExceptionEnum.java

@@ -1,34 +0,0 @@
-package com.huimv.common.exception;
-
-public enum ExceptionEnum implements MExceptionEnum{
-   //自定义的状态码
-   TOKEN_NULL("401","token为空"),
-   TOKEN_OVERDUE("403","token过期"),
-   VERIFCATION_FAID("410","验证码获取失败"),
-   VERIFCATION_OVERDUE("411","验证码获取失败");
-
-
-   //错误码
-   public String code;
-   //提示信息
-   public String message;
-
-   //构造函数
-   ExceptionEnum(String code,String message){
-      this.code = code;
-      this.message = message;
-   }
-
-   //获取状态码
-   @Override
-   public String getCode(){
-      return code;
-   }
-   
-   //获取提示信息
-   @Override
-   public String getMessage(){
-      return message;
-   }
- 
-}

+ 0 - 6
huimv-farm-admin/src/main/java/com/huimv/common/exception/MExceptionEnum.java

@@ -1,6 +0,0 @@
-package com.huimv.common.exception;
-
-public interface MExceptionEnum{
-    public String getCode();
-    public String getMessage();
-}

+ 0 - 20
huimv-farm-admin/src/main/java/com/huimv/common/exception/MiException.java

@@ -1,20 +0,0 @@
-package com.huimv.common.exception;
-
-
-public class MiException extends RuntimeException{
-    private ExceptionEnum exceptionEnum;
-
-    public MiException(ExceptionEnum exceptionEnum){
-        this.exceptionEnum = exceptionEnum;
-    }
-
-    public ExceptionEnum getExceptionEnum(){
-        return exceptionEnum;
-    }
-
-    //用来输出异常信息和状态码
-    public void printException(MiException e){
-        ExceptionEnum exceptionEnum = e.getExceptionEnum();
-        System.out.println("异常代码:" + exceptionEnum.getCode() + ",异常信息:" + exceptionEnum.getMessage());
-    }
-}

+ 0 - 20
huimv-farm-admin/src/main/java/com/huimv/common/token/TokenConstant.java

@@ -1,20 +0,0 @@
-package com.huimv.common.token;
- 
-import java.util.HashMap;
-import java.util.Map;
-
-public class TokenConstant {
- 
-    private static Map<String, String> map=new HashMap();
- 
- 
-    public static String getToken(){
-            return map.get("token");
-    }
- 
-    public static void updateTokenMap(String token){
-        map.put("token",token);
-    }
- 
- 
-}

+ 0 - 128
huimv-farm-admin/src/main/java/com/huimv/common/token/TokenSign.java

@@ -1,128 +0,0 @@
-package com.huimv.common.token;
-
-import io.jsonwebtoken.*;
-import org.springframework.util.StringUtils;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Date;
-
-public class TokenSign {
-
-    /**
-     * 过期时间60分钟
-     */
-    private static final long EXPIRE_TIME= 24 * 60 * 60 * 1000;
-
-    /**
-     * 私钥,使用它生成token,最好进行下加密
-     */
-    private static final String TOKEN_SECRET="Token";
-    private static final String APP_SECRET = "ukc8BDbRigUDaY6pZFfWus2jZWLPHO";
-    private static final int REFRESH_TIME = 300;
-
-
-    /**
-     * 产生token
-     * @return
-     */
-    public static String sign(String userName, Integer id){
-
-        String JwtToken = Jwts.builder()
-                //头部信息
-                .setHeaderParam("typ", "JWT")
-                .setHeaderParam("alg", "HS256")
-                .setSubject("hm-user")
-                .setIssuedAt(new Date())
-                //过期时间
-                .setExpiration(new Date(System.currentTimeMillis() + EXPIRE_TIME))
-                //token主体部分,存储用户信息
-                .claim("userName", userName)
-                .claim("id",id)
-                .signWith(SignatureAlgorithm.HS256, APP_SECRET)
-                .compact();
-
-        return JwtToken;
-    }
-
-
-    /**
-     * token校验是否正确
-     * @param token
-     * @return
-     */
-
-    public static boolean verify(String token){
-
-        if (StringUtils.isEmpty(token)) {
-            return false;
-        }
-        try {
-            Jwts.parser().setSigningKey(APP_SECRET).parseClaimsJws(token);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-        return true;
-
-    }
-
-
-    /**
-     * 根据token获取会员id
-     *
-     * @param request
-     * @return
-     */
-    public static Integer getMemberIdByJwtToken(HttpServletRequest request) {
-        String jwtToken = request.getHeader("accessToken");
-        if (StringUtils.isEmpty(jwtToken)) {
-            return null;
-        }
-        Claims claims = getClaims(jwtToken);
-        return (Integer) claims.get("id");
-    }
-
-    /**
-     * 获取claims对象
-     *
-     * @param jwtToken
-     * @return
-     */
-    public static Claims getClaims(String jwtToken) {
-        try {
-            Jws<Claims> claimsJws = Jwts.parser().setSigningKey(APP_SECRET).parseClaimsJws(jwtToken);
-            return claimsJws.getBody();
-        }catch (ExpiredJwtException e){
-            return null;
-        }
-
-
-    }
-    /**
-     * 是否过期
-     *
-     * @param claims
-     * @return -1:有效,0:有效,1:过期,2:被篡改
-     */
-    public static int verifyToken(Claims claims) {
-        if (claims == null) {
-            return 1;
-        }
-        try {
-            claims.getExpiration()
-                    .before(new Date());
-            // 需要自动刷新TOKEN
-            if ((claims.getExpiration().getTime() - System.currentTimeMillis()) < REFRESH_TIME * 1000) {
-                return -1;
-            } else {
-                return 0;
-            }
-        } catch (ExpiredJwtException ex) {
-            return 1;
-        } catch (Exception e) {
-            return 2;
-        }
-    }
-
-
-}

+ 0 - 149
huimv-farm-admin/src/main/java/com/huimv/common/utils/DataUill.java

@@ -1,149 +0,0 @@
-package com.huimv.common.utils;
-  
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-
-public class DataUill {
-  
-
-  
-    // 获得当天0点时间
-    public static Date getTimesmorning() {
-        Calendar cal = Calendar.getInstance();
-        cal.set(Calendar.HOUR_OF_DAY, 0);
-        cal.set(Calendar.SECOND, 0);
-        cal.set(Calendar.MINUTE, 0);
-        cal.set(Calendar.MILLISECOND, 0);
-        return cal.getTime();
-  
-  
-    }
-    // 获得昨天0点时间
-    public static Date getYesterdaymorning() {
-        Calendar cal = Calendar.getInstance();
-        cal.setTimeInMillis(getTimesmorning().getTime()-3600*24*1000);
-        return cal.getTime();
-    }
-    // 获得当天近7天时间
-    public static Date getWeekFromNow() {
-        Calendar cal = Calendar.getInstance();
-        cal.setTimeInMillis( getTimesmorning().getTime()-3600*24*1000*7);
-        return cal.getTime();
-    }
-  
-    // 获得当天24点时间
-    public static Date getTimesnight() {
-        Calendar cal = Calendar.getInstance();
-        cal.set(Calendar.HOUR_OF_DAY, 24);
-        cal.set(Calendar.SECOND, 0);
-        cal.set(Calendar.MINUTE, 0);
-        cal.set(Calendar.MILLISECOND, 0);
-        return cal.getTime();
-    }
-  
-    // 获得本周一0点时间
-    public static Date getTimesWeekmorning() {
-        Calendar cal = Calendar.getInstance();
-        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
-        cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
-        return cal.getTime();
-    }
-  
-    // 获得本周日24点时间
-    public static Date getTimesWeeknight() {
-        Calendar cal = Calendar.getInstance();
-        cal.setTime(getTimesWeekmorning());
-        cal.add(Calendar.DAY_OF_WEEK, 7);
-        return cal.getTime();
-    }
-  
-    // 获得本月第一天0点时间
-    public static Date getTimesMonthmorning() {
-        Calendar cal = Calendar.getInstance();
-        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
-        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
-        return cal.getTime();
-    }
-  
-    // 获得本月最后一天24点时间
-    public static Date getTimesMonthnight() {
-        Calendar cal = Calendar.getInstance();
-        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
-        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
-        cal.set(Calendar.HOUR_OF_DAY, 24);
-        return cal.getTime();
-    }
-  
-    public static Date getLastMonthStartMorning() {
-        Calendar cal = Calendar.getInstance();
-        cal.setTime(getTimesMonthmorning());
-        cal.add(Calendar.MONTH, -1);
-        return cal.getTime();
-    }
-
-    public static Date getTwoLastMonthStartMorning() {
-        Calendar cal = Calendar.getInstance();
-        cal.setTime(getTimesMonthmorning());
-        cal.add(Calendar.MONTH, -2);
-        return cal.getTime();
-    }
-  
-    public static Date getCurrentQuarterStartTime() {
-        Calendar c = Calendar.getInstance();
-        int currentMonth = c.get(Calendar.MONTH) + 1;
-        SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
-        Date now = null;
-        try {
-            if (currentMonth >= 1 && currentMonth <= 3)
-                c.set(Calendar.MONTH, 0);
-            else if (currentMonth >= 4 && currentMonth <= 6)
-                c.set(Calendar.MONTH, 3);
-            else if (currentMonth >= 7 && currentMonth <= 9)
-                c.set(Calendar.MONTH, 4);
-            else if (currentMonth >= 10 && currentMonth <= 12)
-                c.set(Calendar.MONTH, 9);
-            c.set(Calendar.DATE, 1);
-            now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return now;
-    }
-  
-    /**
-     * 当前季度的结束时间,即2012-03-31 23:59:59
-     *
-     * @return
-     */
-    public static Date getCurrentQuarterEndTime() {
-        Calendar cal = Calendar.getInstance();
-        cal.setTime(getCurrentQuarterStartTime());
-        cal.add(Calendar.MONTH, 3);
-        return cal.getTime();
-    }
-  
-  
-    public static Date getCurrentYearStartTime() {
-        Calendar cal = Calendar.getInstance();
-        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
-        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.YEAR));
-        return cal.getTime();
-    }
-  
-    public static Date getCurrentYearEndTime() {
-        Calendar cal = Calendar.getInstance();
-        cal.setTime(getCurrentYearStartTime());
-        cal.add(Calendar.YEAR, 1);
-        return cal.getTime();
-    }
-  
-    public static Date getLastYearStartTime() {
-        Calendar cal = Calendar.getInstance();
-        cal.setTime(getCurrentYearStartTime());
-        cal.add(Calendar.YEAR, -1);
-        return cal.getTime();
-    }
-  
-}

+ 0 - 133
huimv-farm-admin/src/main/java/com/huimv/common/utils/GeneratorCodeConfig.java

@@ -1,133 +0,0 @@
-package com.huimv.common.utils;
-
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import com.baomidou.mybatisplus.generator.AutoGenerator;
-import com.baomidou.mybatisplus.generator.config.*;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
-
-import java.util.Scanner;
-
-/**
- * 自动生成mybatisplus的相关代码
- */
-public class GeneratorCodeConfig {
-
-    public static String scanner(String tip) {
-        Scanner scanner = new Scanner(System.in);
-        StringBuilder help = new StringBuilder();
-        help.append("请输入" + tip + ":");
-        System.out.println(help.toString());
-        if (scanner.hasNext()) {
-            String ipt = scanner.next();
-            if (StringUtils.isNotBlank(ipt)) {
-                return ipt;
-            }
-        }
-        throw new MybatisPlusException("请输入正确的" + tip + "!");
-    }
-
-    public static void main(String[] args) {
-        // 代码生成器
-        AutoGenerator mpg = new AutoGenerator();
-
-        // 全局配置
-        GlobalConfig gc = new GlobalConfig();
-        String projectPath = System.getProperty("user.dir");
-        gc.setOutputDir(projectPath + "/huimv-common/src/main/java");
-        gc.setAuthor("astupidcoder");
-        gc.setOpen(false);
-        //实体属性 Swagger2 注解
-        gc.setSwagger2(false);
-        mpg.setGlobalConfig(gc);
-
-        // 数据源配置
-        DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://192.168.1.7:3306/huimv_farm_v2?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true");
-        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
-        dsc.setUsername("root");
-        dsc.setPassword("hm123465");
-        mpg.setDataSource(dsc);
-
-        // 包配置
-        PackageConfig pc = new PackageConfig();
-//        pc.setModuleName(scanner("模块名"));
-        pc.setParent("com.huimv.common.template");
-        pc.setEntity("entity");
-        pc.setMapper("mapper");
-        pc.setService("service");
-        pc.setServiceImpl("service.impl");
-        mpg.setPackageInfo(pc);
-
-        // 自定义配置
-//        InjectionConfig cfg = new InjectionConfig() {
-//            @Override
-//            public void initMap() {
-//                // to do nothing
-//            }
-//        };
-
-        // 如果模板引擎是 freemarker
-//        String templatePath = "/templates/mapper.xml.ftl";
-        // 如果模板引擎是 velocity
-        // String templatePath = "/templates/mapper.xml.vm";
-
-        // 自定义输出配置
-//        List<FileOutConfig> focList = new ArrayList<>();
-        // 自定义配置会被优先输出
-//        focList.add(new FileOutConfig(templatePath) {
-//            @Override
-//            public String outputFile(TableInfo tableInfo) {
-//                // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
-//                return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
-//                        + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
-//            }
-//        });
-        /*
-        cfg.setFileCreate(new IFileCreate() {
-            @Override
-            public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {
-                // 判断自定义文件夹是否需要创建
-                checkDir("调用默认方法创建的目录");
-                return false;
-            }
-        });
-        */
-//        cfg.setFileOutConfigList(focList);
-//        mpg.setCfg(cfg);
-
-        // 配置模板
-        TemplateConfig templateConfig = new TemplateConfig();
-
-        // 配置自定义输出模板
-        //指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
-        // templateConfig.setEntity("templates/entity2.java");
-        // templateConfig.setService();
-        // templateConfig.setController();
-
-        templateConfig.setXml(null);
-        mpg.setTemplate(templateConfig);
-
-        // 策略配置
-        StrategyConfig strategy = new StrategyConfig();
-        strategy.setNaming(NamingStrategy.underline_to_camel);
-        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
-        strategy.setSuperEntityClass("com.baomidou.mybatisplus.extension.activerecord.Model");
-        strategy.setEntityLombokModel(true);
-        strategy.setRestControllerStyle(true);
-
-        strategy.setEntityLombokModel(true);
-        // 公共父类
-//        strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController");
-        // 写于父类中的公共字段
-//        strategy.setSuperEntityColumns("id");
-        strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
-        strategy.setControllerMappingHyphenStyle(true);
-        strategy.setTablePrefix(pc.getModuleName() + "_");
-//        strategy.setTablePrefix("base_");
-        mpg.setStrategy(strategy);
-        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
-        mpg.execute();
-    }
-}

+ 0 - 27
huimv-farm-admin/src/main/java/com/huimv/common/utils/GetMD5Str.java

@@ -1,27 +0,0 @@
-package com.huimv.common.utils;
-
-import java.math.BigInteger;
-import java.security.MessageDigest;
-
-public class GetMD5Str {
-    /**
-     * 对字符串md5加密
-     *
-     * @param str
-     * @return
-     * @throws Exception
-     */
-    public static String getMD5Str(String str) throws Exception {
-        try {
-            // 生成一个MD5加密计算摘要
-            MessageDigest md = MessageDigest.getInstance("MD5");
-            // 计算md5函数
-            md.update(str.getBytes());
-            // digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符
-            // BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值
-            return new BigInteger(1, md.digest()).toString(16);
-        } catch (Exception e) {
-            throw new Exception("MD5加密出现错误,"+e.toString());
-        }
-    }
-}

+ 0 - 58
huimv-farm-admin/src/main/java/com/huimv/common/utils/HttpUtils.java

@@ -1,58 +0,0 @@
-package com.huimv.common.utils;
-
-import java.io.BufferedReader;
-import java.io.DataOutputStream;
-import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-
-/**
- * http 工具类
- */
-public class HttpUtils {
-
-    public static String post(String requestUrl, String accessToken, String params) throws Exception {
-        String generalUrl = requestUrl + "?access_token=" + accessToken;
-        URL url = new URL(generalUrl);
-        // 打开和URL之间的连接
-        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
-        connection.setRequestMethod("POST");
-        // 设置通用的请求属性
-        connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
-        connection.setRequestProperty("Connection", "Keep-Alive");
-        connection.setUseCaches(false);
-        connection.setDoOutput(true);
-        connection.setDoInput(true);
-
-        // 得到请求的输出流对象
-        DataOutputStream out = new DataOutputStream(connection.getOutputStream());
-        out.writeBytes(params);
-        out.flush();
-        out.close();
-
-        // 建立实际的连接
-        connection.connect();
-        // 获取所有响应头字段
-        Map<String, List<String>> headers = connection.getHeaderFields();
-        // 遍历所有的响应头字段
-        for (String key : headers.keySet()) {
-            System.out.println(key + "--->" + headers.get(key));
-        }
-        // 定义 BufferedReader输入流来读取URL的响应
-        BufferedReader in = null;
-        if (requestUrl.contains("nlp"))
-            in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "GBK"));
-        else
-            in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
-        String result = "";
-        String getLine;
-        while ((getLine = in.readLine()) != null) {
-            result += getLine;
-        }
-        in.close();
-        System.out.println("result:" + result);
-        return result;
-    }
-}

+ 0 - 27
huimv-farm-admin/src/main/java/com/huimv/common/utils/IpTools.java

@@ -1,27 +0,0 @@
-package com.huimv.common.utils;
-
-import org.springframework.stereotype.Component;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * @author yejijie
- * @created 2020年7月17日 上午11:24:20
-*/
-@Component
-public class IpTools {
-
-    public static String getRemoteHost(HttpServletRequest request){
-        String ip = request.getHeader("x-forwarded-for");
-        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
-            ip = request.getHeader("Proxy-Client-IP");
-        }
-        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
-            ip = request.getHeader("WL-Proxy-Client-IP");
-        }
-        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
-            ip = request.getRemoteAddr();
-        }
-        return ip.equals("0:0:0:0:0:0:0:1")?"127.0.0.1":ip;
-    }
-}

+ 0 - 18
huimv-farm-admin/src/main/java/com/huimv/common/utils/NumberUtils.java

@@ -1,18 +0,0 @@
-package com.huimv.common.utils;
-
-
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-
-import java.text.DecimalFormat;
-
-public class NumberUtils {
-
-    public static DecimalFormat df = new DecimalFormat("#,##0.00");
-    public static String format(String str) {
-        if (StringUtils.isBlank(str)){
-            return "0.00";
-        }
-        return df.format(Double.valueOf(str));
-    }
-
-}

+ 0 - 79
huimv-farm-admin/src/main/java/com/huimv/common/utils/PageFactory.java

@@ -1,79 +0,0 @@
-/*
-Copyright [2020] [https://www.xiaonuo.vip]
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
-
-1.请不要删除和修改根目录下的LICENSE文件。
-2.请不要删除和修改Snowy源码头部的版权声明。
-3.请保留源码和相关描述文件的项目出处,作者声明等。
-4.分发源码时候,请注明软件出处 https://gitee.com/xiaonuobase/snowy
-5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/xiaonuobase/snowy
-6.若您的项目无法满足以上几点,可申请商业授权,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
- */
-package com.huimv.common.utils;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-
-
-/**
- * 默认分页参数构建
- *
- * @author yubaoshan
- * @date 2017/11/15 13:52
- */
-public class PageFactory {
-
-    /**
-     * 每页大小(默认20)
-     */
-    private static final String PAGE_SIZE_PARAM_NAME = "pageSize";
-
-    /**
-     * 第几页(从1开始)
-     */
-    private static final String PAGE_NO_PARAM_NAME = "pageNo";
-
-    /**
-     * 默认分页,在使用时PageFactory.defaultPage会自动获取pageSize和pageNo参数
-     *
-     * @author xuyuxiang
-     * @date 2020/3/30 16:42
-     */
-    public static <T> Page<T> defaultPage() {
-
-        int pageSize = 20;
-        int pageNo = 1;
-
-
-        return new Page<>(pageNo, pageSize);
-    }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

+ 0 - 8
huimv-farm-admin/src/main/java/com/huimv/common/utils/PageResult.java

@@ -1,8 +0,0 @@
-package com.huimv.common.utils;
-
-import java.util.List;
-
-public class PageResult<T> {
-    private Long total;
-    private List<T> rows;
-}

+ 0 - 29
huimv-farm-admin/src/main/java/com/huimv/common/utils/PercentUtil.java

@@ -1,29 +0,0 @@
-package com.huimv.common.utils;
-
-import java.text.DecimalFormat;
-
-/**
- * @Author : yuxuexuan
- * @Create : 2021/11/29 0029 10:52
- **/
-public class PercentUtil {
-
-    public static String getGrowth(Double lastMonth, Double lastTwoMonth){
-        if (lastMonth.equals( lastTwoMonth)){
-            return "0";
-        }
-        if (lastMonth == 0.0){
-            return "-100";
-        }
-
-        if (lastTwoMonth == 0.0){
-            return "100";
-        }
-        DecimalFormat df = new DecimalFormat("0.00");
-
-        return df.format((lastMonth - lastTwoMonth)/ lastTwoMonth *100);
-    }
-
-
-
-}

+ 0 - 38
huimv-farm-admin/src/main/java/com/huimv/common/utils/PlatformException.java

@@ -1,38 +0,0 @@
-/**
- * @Copyright (C), 2014-2020, 杭州慧牧科技有限公司
- * @ClassName: RobotException
- * @Author: yejijie
- * @E-mail: yejijie@huimv.com
- * @Date: 2020年4月23日
- * @Version: V1.0
- * @Description:
- */
-package com.huimv.common.utils;
-
-/**
- * @author yejijie
- *
- */
-public class PlatformException extends RuntimeException {
-
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 6529181147584750288L;
-	private String errCode;
-	private String errMsg;
-	public PlatformException() {
-		super();
-	}
-	public PlatformException(String code, String msg) {
-		super(msg);
-		this.errCode = code;
-		this.errMsg = msg;
-	}
-	public String getErrCode() {
-		return errCode;
-	}
-	public String getErrMsg() {
-		return errMsg;
-	}
-}

+ 0 - 79
huimv-farm-admin/src/main/java/com/huimv/common/utils/Result.java

@@ -1,79 +0,0 @@
-package com.huimv.common.utils;
-
-import java.io.Serializable;
-
-public class Result implements Serializable {
-
-    private boolean success;
-    private Integer code;
-    private String message;
-
-    public boolean isSuccess() {
-        return success;
-    }
-
-    public void setSuccess(boolean success) {
-        this.success = success;
-    }
-
-    public Integer getCode() {
-        return code;
-    }
-
-    public void setCode(Integer code) {
-        this.code = code;
-    }
-
-    public String getMessage() {
-        return message;
-    }
-
-    public void setMessage(String message) {
-        this.message = message;
-    }
-
-    public Object getData() {
-        return data;
-    }
-
-    public void setData(Object data) {
-        this.data = data;
-    }
-
-    private Object data;
-
-    //不需要返回数据时使用
-    public Result(ResultCode code) {
-        this.success = code.success;
-        this.code = code.code;
-        this.message = code.message;
-    }
-
-    public Result(ResultCode code, Object data) {
-        this.success = code.success;
-        this.code = code.code;
-        this.message = code.message;
-        this.data = data;
-    }
-
-    public Result(Integer code, String message, boolean success) {
-        this.code = code;
-        this.message = message;
-        this.success = success;
-    }
-
-    /*
-     * 调用ResultCode类封装常用的返回数据
-     */
-    public static Result SUCCESS(){
-        return new Result(ResultCode.SUCCESS);
-    }
-
-    public static Result ERROR(){
-        return new Result(ResultCode.SERVER_ERROR);
-    }
-
-    public static Result FAIL(){
-        return new Result(ResultCode.FAIL);
-    }
-}

+ 0 - 41
huimv-farm-admin/src/main/java/com/huimv/common/utils/ResultCode.java

@@ -1,41 +0,0 @@
-package com.huimv.common.utils;
-
-public enum ResultCode {
-    SUCCESS(true,10000,"操作成功!"),
-    //---系统错误返回码-----
-    FAIL(false,10001,"操作失败"),
-    UNAUTHENTICATED(false,10002,"您还未登录"),
-    UNAUTHORISE(false,10003,"权限不足"),
-    SERVER_ERROR(false,99999,"抱歉,系统繁忙,请稍后重试!"),
-
-    //---用户操作返回码  2xxxx----
-    MOBILEORPASSWORDERROR(false,20001,"用户名或密码错误");
-    //---企业操作返回码  3xxxx----
-    //---权限操作返回码----
-    //---其他操作返回码----
-
-    //操作是否成功
-    boolean success;
-    //操作代码
-    int code;
-    //提示信息
-    String message;
-
-    ResultCode(boolean success,int code, String message){
-        this.success = success;
-        this.code = code;
-        this.message = message;
-    }
-
-    public boolean success() {
-        return success;
-    }
-
-    public int code() {
-        return code;
-    }
-
-    public String message() {
-        return message;
-    }
-}

+ 0 - 202
huimv-farm-admin/src/main/java/com/huimv/common/utils/SnowflakeSequence.java

@@ -1,202 +0,0 @@
-package com.huimv.common.utils;
-
-import java.lang.management.ManagementFactory;
-import java.net.InetAddress;
-import java.net.NetworkInterface;
-
-/**
- * Twitter_Snowflake<br>
- * SnowFlake的结构如下(每部分用-分开):<br>
- * 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000 <br>
- * 1位标识,由于long基本类型在Java中是带符号的,最高位是符号位,正数是0,负数是1,所以id一般是正数,最高位是0<br>
- * 41位时间截(毫秒级),注意,41位时间截不是存储当前时间的时间截,而是存储时间截的差值(当前时间截 - 开始时间截)
- * 得到的值),这里的的开始时间截,一般是我们的id生成器开始使用的时间,由我们程序来指定的(如下下面程序IdWorker类的startTime属性)。41位的时间截,可以使用69年,年T = (1L << 41) / (1000L * 60 * 60 * 24 * 365) = 69<br>
- * 10位的数据机器位,可以部署在1024个节点,包括5位datacenterId和5位workerId<br>
- * 12位序列,毫秒内的计数,12位的计数顺序号支持每个节点每毫秒(同一机器,同一时间截)产生4096个ID序号<br>
- * 加起来刚好64位,为一个Long型。<br>
- * SnowFlake的优点是,整体上按照时间自增排序,并且整个分布式系统内不会产生ID碰撞(由数据中心ID和机器ID作区分),并且效率较高,经测试,SnowFlake每秒能够产生26万ID左右。
- */
-public class SnowflakeSequence {
-    // ==============================Fields===========================================
-    /** 开始时间截 (2017/11/29 18:25:29) */
-    private final long twepoch = 1511951129000L;
-
-    /** 机器id所占的位数 */
-    private final long workerIdBits = 5L;
-
-    /** 数据标识id所占的位数 */
-    private final long datacenterIdBits = 5L;
-
-    /** 支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数) */
-    private final long maxWorkerId = -1L ^ (-1L << workerIdBits);
-
-    /** 支持的最大数据标识id,结果是31 */
-    private final long maxDatacenterId = -1L ^ (-1L << datacenterIdBits);
-
-    /** 序列在id中占的位数 */
-    private final long sequenceBits = 12L;
-
-    /** 机器ID向左移12位 */
-    private final long workerIdShift = sequenceBits;
-
-    /** 数据标识id向左移17位(12+5) */
-    private final long datacenterIdShift = sequenceBits + workerIdBits;
-
-    /** 时间截向左移22位(5+5+12) */
-    private final long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
-
-    /** 生成序列的掩码,这里为4095 (0b111111111111=0xfff=4095) */
-    private final long sequenceMask = -1L ^ (-1L << sequenceBits);
-
-    /** 工作机器ID(0~31) */
-    private long workerId;
-
-    /** 数据中心ID(0~31) */
-    private long datacenterId;
-
-    /** 毫秒内序列(0~4095) */
-    private long sequence = 0L;
-
-    /** 上次生成ID的时间截 */
-    private long lastTimestamp = -1L;
-
-    //==============================构造函数=====================================
-    //根据mac地址产生datacenterid
-    public SnowflakeSequence() {
-        datacenterId = getDatacenterId(maxDatacenterId);
-        workerId = getMaxWorkerId(datacenterId, maxWorkerId);
-//        System.out.println("datacenterId:" + datacenterId + ",workerId:" + workerId);
-    }
-
-    /**
-     * 构造函数
-     * @param workerId 工作ID (0~31)
-     * @param datacenterId 数据中心ID (0~31)
-     */
-    public SnowflakeSequence(long workerId, long datacenterId) {
-        if (workerId > maxWorkerId || workerId < 0) {
-            throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId));
-        }
-        if (datacenterId > maxDatacenterId || datacenterId < 0) {
-            throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId));
-        }
-        this.workerId = workerId;
-        this.datacenterId = datacenterId;
-    }
-
-    // ==============================Methods==========================================
-    /**
-     * 获得下一个ID (该方法是线程安全的)
-     * @return SnowflakeId
-     */
-    public synchronized long nextId() {
-        long timestamp = timeGen();
-
-        //如果当前时间小于上一次ID生成的时间戳,说明系统时钟回退过这个时候应当抛出异常
-        if (timestamp < lastTimestamp) {
-            throw new RuntimeException(
-                    String.format("Clock moved backwards.  Refusing to generate id for %d milliseconds", lastTimestamp - timestamp));
-        }
-
-        //如果是同一时间生成的,则进行毫秒内序列
-        if (lastTimestamp == timestamp) {
-            sequence = (sequence + 1) & sequenceMask;
-            //毫秒内序列溢出
-            if (sequence == 0) {
-                //阻塞到下一个毫秒,获得新的时间戳
-                timestamp = tilNextMillis(lastTimestamp);
-            }
-        }
-        //时间戳改变,毫秒内序列重置
-        else {
-            sequence = 0L;
-        }
-
-        //上次生成ID的时间截
-        lastTimestamp = timestamp;
-
-        //移位并通过或运算拼到一起组成64位的ID
-        return ((timestamp - twepoch) << timestampLeftShift) //
-                | (datacenterId << datacenterIdShift) //
-                | (workerId << workerIdShift) //
-                | sequence;
-    }
-
-    /**
-     * 阻塞到下一个毫秒,直到获得新的时间戳
-     * @param lastTimestamp 上次生成ID的时间截
-     * @return 当前时间戳
-     */
-    protected long tilNextMillis(long lastTimestamp) {
-        long timestamp = timeGen();
-        while (timestamp <= lastTimestamp) {
-            timestamp = timeGen();
-        }
-        return timestamp;
-    }
-
-    /**
-     * 返回以毫秒为单位的当前时间
-     * @return 当前时间(毫秒)
-     */
-    protected long timeGen() {
-        return System.currentTimeMillis();
-    }
-
-    /**
-     * <p>
-     * 数据标识id部分
-     * </p>
-     * @param maxDatacenterId
-     * @return
-     */
-    protected static long getDatacenterId(long maxDatacenterId) {
-        long id = 0L;
-        try {
-            InetAddress ip = InetAddress.getLocalHost();
-            NetworkInterface network = NetworkInterface.getByInetAddress(ip);
-            if (network == null) {
-                id = 1L;
-            } else {
-                byte[] mac = network.getHardwareAddress();
-                if (null != mac) {
-                    id = ((0x000000FF & (long) mac[mac.length - 1]) | (0x0000FF00 & (((long) mac[mac.length - 2]) << 8))) >> 6;
-                    id = id % (maxDatacenterId + 1);
-                }
-            }
-        } catch (Exception e) {
-            System.err.println(" getDatacenterId: " + e.getMessage());
-        }
-        return id;
-    }
-
-    /**
-     * 获取 maxWorkerId
-     * @param datacenterId   数据中心id
-     * @param maxWorkerId    机器id
-     * @return  maxWorkerId
-     */
-    protected static long getMaxWorkerId(long datacenterId, long maxWorkerId) {
-        StringBuilder mpid = new StringBuilder();
-        mpid.append(datacenterId);
-        String name = ManagementFactory.getRuntimeMXBean().getName();
-        if (name != null && "".equals(name)) {
-            // GET jvmPid
-            mpid.append(name.split("@")[0]);
-        }
-        //MAC + PID 的 hashcode 获取16个低位
-        return (mpid.toString().hashCode() & 0xffff) % (maxWorkerId + 1);
-    }
-
-    //==============================Test=============================================
-    /** 测试 */
-    public static void main(String[] args) {
-//        SnowflakeIdWorker idWorker = new SnowflakeIdWorker(0, 0);
-        SnowflakeSequence idWorker = new SnowflakeSequence();
-        for (int i = 0; i < 10; i++) {
-            long id = idWorker.nextId();
-//            System.out.println(Long.toBinaryString(id));
-            System.out.println(id);
-        }
-    }
-}

+ 0 - 44
huimv-farm-admin/src/main/java/com/huimv/common/utils/StringUtilsWork.java

@@ -1,44 +0,0 @@
-package com.huimv.common.utils;
-
-/**
- * @Author Anchor
- * @Date 2021/7/30 13:17
- * @Version 1.0.1
- */
-public class StringUtilsWork {
-
-
-    public static boolean isEmpty(String str) {
-        return str == null || str.length() == 0;
-    }
-
-    public static boolean isNotEmpty(String str) {
-        return !isEmpty(str);
-    }
-
-    public static boolean isBlank(String str) {
-        int strLen;
-        if (str != null && (strLen = str.length()) != 0) {
-            for(int i = 0; i < strLen; ++i) {
-                if (!Character.isWhitespace(str.charAt(i))) {
-                    return false;
-                }
-            }
-
-            return true;
-        } else {
-            return true;
-        }
-    }
-
-    public static boolean isNotBlank(String str) {
-        return !isBlank(str);
-    }
-
-
-}
-
-
-
-
-

+ 0 - 120
huimv-farm-admin/src/main/java/com/huimv/common/utils/VerifyUtil.java

@@ -1,120 +0,0 @@
-package com.huimv.common.utils;
-
-
-import com.huimv.common.exception.ExceptionEnum;
-import com.huimv.common.exception.MiException;
-
-import javax.imageio.ImageIO;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.awt.*;
-import java.awt.image.BufferedImage;
-import java.util.Random;
-
-
-public class VerifyUtil {
-//    public static final String RANDOMCODEKEY = "RANDOMREDISKEY";//放到session中的key
-    private String randString = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//随机产生数字与字母组合的字符串
-    private int width = 95;// 图片宽
-    private int height = 50;// 图片高
-    private int lineSize = 40;// 干扰线数量
-    private int stringNum = 4;// 随机产生字符数量
-
-    private Random random = new Random();
-
-    /**
-     * 获得字体
-     */
-    private Font getFont() {
-        return new Font("Fixedsys", Font.CENTER_BASELINE, 25);
-    }
-
-    /**
-     * 获得颜色
-     */
-    private Color getRandColor(int fc, int bc) {
-        if (fc > 255) {
-            fc = 255;
-        }
-        if (bc > 255) {
-            bc = 255;
-        }
-        int r = fc + random.nextInt(bc - fc - 16);
-        int g = fc + random.nextInt(bc - fc - 14);
-        int b = fc + random.nextInt(bc - fc - 18);
-        return new Color(r, g, b);
-    }
-
-    /**
-     * 生成随机图片
-     */
-    public String getRandcode(HttpServletRequest request, HttpServletResponse response) {
-        // BufferedImage类是具有缓冲区的Image类,Image类是用于描述图像信息的类
-        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
-        // 产生Image对象的Graphics对象,改对象可以在图像上进行各种绘制操作
-        Graphics g = image.getGraphics();
-        //图片大小
-        g.fillRect(0, 0, width, height);
-        //字体大小
-        g.setFont(new Font("Times New Roman", Font.ROMAN_BASELINE, 50));
-        //字体颜色
-        g.setColor(getRandColor(110, 133));
-        // 绘制干扰线
-        for (int i = 0; i <= lineSize; i++) {
-            drowLine(g);
-        }
-        // 绘制随机字符
-        String randomString = "";
-        for (int i = 1; i <= stringNum; i++) {
-            randomString = drowString(g, randomString, i);
-        }
-        //将生成的随机字符串保存到session中
-//        session.removeAttribute(RANDOMCODEKEY);
-//        session.setAttribute(RANDOMCODEKEY, randomString);
-        //设置失效时间1分钟
-//        session.setMaxInactiveInterval(60);
-        g.dispose();
-        try {
-            // 将内存中的图片通过流动形式输出到客户端
-            ImageIO.write(image, "JPEG", response.getOutputStream());
-            return randomString;
-        } catch (Exception e) {
-            throw new MiException(ExceptionEnum.VERIFCATION_FAID);
-        }
-
-    }
-
-    /**
-     * 绘制字符串
-     */
-    private String drowString(Graphics g, String randomString, int i) {
-        g.setFont(getFont());
-        g.setColor(new Color(random.nextInt(101), random.nextInt(111), random
-                .nextInt(121)));
-        String rand = String.valueOf(getRandomString(random.nextInt(randString
-                .length())));
-        randomString += rand;
-        g.translate(random.nextInt(3), random.nextInt(3));
-        g.drawString(rand, 13 * i, 33);
-        return randomString;
-    }
-
-    /**
-     * 绘制干扰线
-     */
-    private void drowLine(Graphics g) {
-        int x = random.nextInt(width);
-        int y = random.nextInt(height);
-        int xl = random.nextInt(13);
-        int yl = random.nextInt(15);
-        g.drawLine(x, y, x + xl, y + yl);
-    }
-
-    /**
-     * 获取随机的字符
-     */
-    public String getRandomString(int num) {
-        return String.valueOf(randString.charAt(num));
-    }
-}
- 

+ 34 - 0
huimv-farm-admin/src/main/resources/application-prod2.yml

@@ -0,0 +1,34 @@
+server:
+  port: 8090
+spring:
+  application:
+    name: pigfarm-local-device
+  #------DataSource-----
+  datasource:
+    url: jdbc:mysql://115.238.57.190:3309/huimv-farm-center?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    username: root
+    password: root
+    driver-class-name: com.mysql.cj.jdbc.Driver
+  jpa:
+    hibernate:
+      ddl-auto: update
+    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
+  redis:
+    host: 122.112.224.199
+    port: 6379
+    password: hm123456
+# Socket配置
+#socket:
+  # 监听端口 9001
+#  listen:
+#    #ip: 192.168.16.3
+#    ip: 192.168.1.49
+#    port: 10020
+  # 线程池 - 保持线程数 20
+  #pool-keep: 20
+  # 线程池 - 核心线程数 10
+  #pool-core: 10
+  # 线程池 - 最大线程数 20
+  #pool-max: 30
+  # 线程队列容量 10
+  #pool-queue-init: 10

+ 1 - 0
huimv-farm-admin/src/main/resources/application.properties

@@ -1,5 +1,6 @@
 #spring.profiles.active=dev
 spring.profiles.active=prod
+#spring.profiles.active=prod2
 
 #ʱ¼ä¸ñʽÅäÖÃ
 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

+ 2 - 0
huimv-farm-environ/src/main/java/com/huimv/environ/eco/controller/BaseRoomController.java

@@ -57,4 +57,6 @@ public class BaseRoomController {
     public Result listAllWaterEnvPowerApp(@RequestBody Map<String, String> map){
         return baseRoomService.listAllWaterEnvPowerApp(map);
     }
+
+
 }

+ 5 - 0
huimv-farm-environ/src/main/java/com/huimv/environ/eco/controller/SysFodderController.java

@@ -35,6 +35,11 @@ public class SysFodderController {
         return fodderService.getFodder(map);
     }
 
+    @PostMapping("/getTodayAllFodderApp")
+    public Result getTodayAllFodderApp(@RequestBody Map map){
+        return fodderService.getTodayAllFodderApp(map);
+    }
+
 
 
 

+ 7 - 0
huimv-farm-environ/src/main/java/com/huimv/environ/eco/controller/SysTemperatureController.java

@@ -16,4 +16,11 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/temperature")
 public class SysTemperatureController {
 
+
+
+
+
+
+
+
 }

+ 134 - 4
huimv-farm-environ/src/main/java/com/huimv/environ/eco/controller/WeatherController.java

@@ -8,6 +8,7 @@ import com.dahuatech.icc.exception.ClientException;
 import com.huimv.common.utils.AirQualityIndexUtil;
 import com.huimv.common.utils.Result;
 import com.huimv.common.utils.ResultCode;
+import com.huimv.environ.eco.entity.DayWeatherEntity;
 import com.huimv.environ.eco.entity.Farm;
 import com.huimv.environ.eco.entity.WeatherResultEntity;
 import com.huimv.environ.eco.mapper.FarmMapper;
@@ -33,94 +34,223 @@ public class WeatherController {
 
 
     @RequestMapping("/info")
+
     public Result getAccidentRecord(@RequestParam Map<String, Object> params) throws ClientException {
+
         String farmId = (String) params.get("farmId");
+
         LambdaQueryWrapper<Farm> wrapper = Wrappers.lambdaQuery();
+
         wrapper.eq(Farm::getId, farmId);//未删除的阈值
+
         Farm farm = farmMapper.selectOne(wrapper);
+
         String[] location = farm.getFrontLocation().split(",");
+
         String province = location[0];
+
         String city = location[1];
+
         String county = location[2];
 
 
+
+
+
         // log.info("当前城市为=======>" +province+city+county);
+
         //直接通过它计算出24小时之内的温度同时以一个新的数组存入表中,数据的取出和比较值后面进行
+
         String url = "https://wis.qq.com/weather/common";
+
         String param = "source=xw&weather_type=observe|forecast_1h|forecast_24h|index|alarm|limit|tips&province=" + province + "&city=" + city + "&county=" + county;
+
         String result = HttpUtil.urlWithForm(url, param, Charset.defaultCharset(), true);
+
 //        System.out.println(result);
+
         String s = HttpUtil.get(result);
+
         //对S进行解析,首先获取当天24小时的温度情况
+
         JSONObject jsonObject = JSONObject.fromObject(s);
+
         Object data = jsonObject.get("data");
+
         JSONObject jsonData = JSONObject.fromObject(data);
+
 //        System.out.println(jsonData);
+
         Object forecastobject24hDetail = JSONObject.fromObject(jsonData.get("forecast_24h")).get("1"); //24小时天气预报的  “1”  为当天的天气预报
+
+
+
+        Object tomorrow = JSONObject.fromObject(jsonData.get("forecast_24h")).get("2"); //24小时天气预报的  “1”  为当天的天气预报
+
+        Object towTomorrow = JSONObject.fromObject(jsonData.get("forecast_24h")).get("3"); //24小时天气预报的  “1”  为当天的天气预报
+
+        Object threeTomorrow = JSONObject.fromObject(jsonData.get("forecast_24h")).get("4"); //24小时天气预报的  “1”  为当天的天气预报
+
+
+        DayWeatherEntity tomorrowEntity = new DayWeatherEntity();
+        tomorrowEntity.setMax_degree((String)JSONObject.fromObject(tomorrow).get("max_degree") );
+        tomorrowEntity.setMin_degree((String)JSONObject.fromObject(tomorrow).get("min_degree") );
+        tomorrowEntity.setDay_weather((String)JSONObject.fromObject(tomorrow).get("day_weather") );
+        tomorrowEntity.setDay_wind_direction((String)JSONObject.fromObject(tomorrow).get("day_wind_direction") );
+        tomorrowEntity.setDay_wind_power((String)JSONObject.fromObject(tomorrow).get("day_wind_power") );
+        tomorrowEntity.setWeather_time( ((String)JSONObject.fromObject(tomorrow).get("time")).substring(5,10) );
+
+
+
+
+        DayWeatherEntity towTomorrowEntity = new DayWeatherEntity();
+        towTomorrowEntity.setMax_degree((String)JSONObject.fromObject(towTomorrow).get("max_degree") );
+        towTomorrowEntity.setMin_degree((String)JSONObject.fromObject(towTomorrow).get("min_degree") );
+        towTomorrowEntity.setDay_weather((String)JSONObject.fromObject(towTomorrow).get("day_weather") );
+        towTomorrowEntity.setDay_wind_direction((String)JSONObject.fromObject(towTomorrow).get("day_wind_direction") );
+        towTomorrowEntity.setDay_wind_power((String)JSONObject.fromObject(towTomorrow).get("day_wind_power") );
+        towTomorrowEntity.setWeather_time( ((String)JSONObject.fromObject(towTomorrow).get("time")).substring(5,10) );
+
+
+
+        DayWeatherEntity threeTomorrowEntity = new DayWeatherEntity();
+        threeTomorrowEntity.setMax_degree((String)JSONObject.fromObject(threeTomorrow).get("max_degree") );
+        threeTomorrowEntity.setMin_degree((String)JSONObject.fromObject(threeTomorrow).get("min_degree") );
+        threeTomorrowEntity.setDay_weather((String)JSONObject.fromObject(threeTomorrow).get("day_weather") );
+        threeTomorrowEntity.setDay_wind_direction((String)JSONObject.fromObject(threeTomorrow).get("day_wind_direction") );
+        threeTomorrowEntity.setDay_wind_power((String)JSONObject.fromObject(threeTomorrow).get("day_wind_power") );
+        threeTomorrowEntity.setWeather_time( ((String)JSONObject.fromObject(threeTomorrow).get("time")).substring(5,10) );
+
+
         Object forecastobject01hDetail = JSONObject.fromObject(jsonData.get("forecast_1h")).get("0"); //24小时天气预报的  “1”  为当天的天气预报
 
 
+
+
+
         Object alarm = JSONObject.fromObject(jsonData).get("alarm");//报警信息
+
         Object degree = JSONObject.fromObject(forecastobject01hDetail).get("degree");//当前温度
 
 
+
+
+
         Object maxDegree = JSONObject.fromObject(forecastobject24hDetail).get("max_degree");//当天最高温
-        Object minDegree = JSONObject.fromObject(forecastobject24hDetail).get("min_degree");//当天最低温
+
+        Object minDegree = JSONObject.fromObject(forecastobject24hDetail).get("min_degree");//当天最 低温
+
+
+
 
 
         Object day_weather = JSONObject.fromObject(forecastobject24hDetail).get("day_weather");//百天天气
+
         Object day_wind_direction = JSONObject.fromObject(forecastobject24hDetail).get("day_wind_direction");//西风
+
         Object day_wind_power = JSONObject.fromObject(forecastobject24hDetail).get("day_wind_power");//风力
 
+
+
         Object night_weather = JSONObject.fromObject(forecastobject24hDetail).get("night_weather");//夜间天气
+
         Object night_wind_direction = JSONObject.fromObject(forecastobject24hDetail).get("night_wind_direction");//夜间风向
+
         Object night_wind_power = JSONObject.fromObject(forecastobject24hDetail).get("night_wind_power");//夜间风力
 
 
+
+
+
         Object humidityValu = JSONObject.fromObject(jsonData.get("observe")).get("humidity");//湿度
 
 
+
+
+
         String airQualityIndex = AirQualityIndexUtil.queryWeather(city.substring(0, city.length() - 1));
+
         // log.info("空气质量为====>" + airQualityIndex);
+
         JSONObject forecastByhour = JSONObject.fromObject(jsonData.get("forecast_1h"));  //获得逐小时数据并遍历
+
         List<String> TimeList = new ArrayList<>();
+
         List<String> TempList = new ArrayList<>();
 
+
+
         for (int i = 0; i <24; i++) {
+
             //现在需要将逐小时的气温数据存在表里面  //初步实现,裁剪
+
             JSONObject HoureDate = JSONObject.fromObject(forecastByhour.get(String.valueOf(i)));
+
             String timeString = (String)HoureDate.get("update_time");
+
             //时间为这种格式,进行格式化处理   20210714180000
+
             StringBuffer stringDate=new StringBuffer(timeString).insert(4,"-").insert(7,"-").insert(10," ").insert(13,":").insert(16,":");
+
             //存储第二天逐小时天气预报以及信息
+
             TimeList.add(stringDate.toString());
+
             TempList.add(HoureDate.get("degree").toString());
 
+
+
         }
 
+
+
         WeatherResultEntity weatherResultEntity = new WeatherResultEntity();
+
         weatherResultEntity.setAlarm( alarm.toString());
+
         weatherResultEntity.setDegree((String) degree);
+
         weatherResultEntity.setMax_degree((String) maxDegree);
+
         weatherResultEntity.setMin_degree((String) minDegree);
+
         weatherResultEntity.setDay_weather((String) day_weather);
+
         weatherResultEntity.setDay_wind_direction((String) day_wind_direction);
+
         weatherResultEntity.setDay_wind_power((String) day_wind_power);
+
         weatherResultEntity.setNight_weather((String) night_weather);
+
         weatherResultEntity.setNight_wind_direction((String)night_wind_direction);
+
         weatherResultEntity.setNight_wind_power((String) night_wind_power);
+
         weatherResultEntity.setHumidity((String) humidityValu);
+
         weatherResultEntity.setAirQuility( airQualityIndex);
+
         weatherResultEntity.setSendTime(new Date());
+
         weatherResultEntity.setTimeList(TimeList);
+
         weatherResultEntity.setTempList(TempList);
+
+        weatherResultEntity.setTomorrow(tomorrowEntity);//明天天气
+
+        weatherResultEntity.setTowTomorrow(towTomorrowEntity);//后天天气
+
+        weatherResultEntity.setThreeTomorrow(threeTomorrowEntity);//后天天气
+
         return new Result(ResultCode.SUCCESS, weatherResultEntity);
 
+
+
     }
 
 
-    /*public static void main(String[] args) {
-        // 浙江省,杭州市,余杭区,咯咯3
+
+    public static void main(String[] args) {
         String province = "浙江省";
         String city = "杭州市";
         String county = "余杭区";
@@ -175,6 +305,6 @@ public class WeatherController {
         System.out.println("canshu "+humidityValu);
 
 
-    }*/
+    }
 }
 

+ 24 - 0
huimv-farm-environ/src/main/java/com/huimv/environ/eco/entity/DayWeatherEntity.java

@@ -0,0 +1,24 @@
+package com.huimv.environ.eco.entity;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+@Data
+public class DayWeatherEntity {
+
+
+        //当日最高温
+        private String max_degree ;
+        //当日最低温
+        private String min_degree ;
+        //白天天气
+        private String day_weather ;
+        //白天风向
+        private String day_wind_direction ;
+        //白天风力
+        private String day_wind_power ;
+        //日期
+        private String weather_time ;
+
+}

+ 7 - 2
huimv-farm-environ/src/main/java/com/huimv/environ/eco/entity/WeatherResultEntity.java

@@ -38,9 +38,14 @@ public class WeatherResultEntity {
     private Date sendTime ;
     //24 小时 时间
     private List timeList ;
-    //24小时 温度
+    //明天天气
     private List tempList ;
-
+    //24小时 温度
+    private DayWeatherEntity tomorrow ;
+    //后天天气
+    private DayWeatherEntity towTomorrow ;
+    //大后天天气
+    private DayWeatherEntity threeTomorrow ;
 
 
 

+ 2 - 0
huimv-farm-environ/src/main/java/com/huimv/environ/eco/entity/dto/AllWaterEnvPowerApp.java

@@ -26,5 +26,7 @@ public class AllWaterEnvPowerApp {
 
     private Integer floorId;
 
+    private String boxId;
+
 
 }

+ 1 - 1
huimv-farm-environ/src/main/java/com/huimv/environ/eco/mapper/SysFodderMapper.java

@@ -28,5 +28,5 @@ public interface SysFodderMapper extends BaseMapper<SysFodder> {
 
     Integer countAllValue(@Param(Constants.WRAPPER) QueryWrapper<SysFodder> wrapper);
 
-    ScreenDto fodderMapper();
+    ScreenDto fodderMapper(@Param("farmId")String farmId);
 }

+ 1 - 0
huimv-farm-environ/src/main/java/com/huimv/environ/eco/service/IBaseRoomService.java

@@ -23,4 +23,5 @@ public interface IBaseRoomService extends IService<BaseRoom> {
     Result listLargeScreen(String farmId);
 
     Result listAllWaterEnvPowerApp(Map<String, String> map);
+
 }

+ 1 - 0
huimv-farm-environ/src/main/java/com/huimv/environ/eco/service/ISysFodderService.java

@@ -21,4 +21,5 @@ public interface ISysFodderService extends IService<SysFodder> {
     Result getFodder(Map map);
 
 
+    Result getTodayAllFodderApp(Map map);
 }

+ 23 - 14
huimv-farm-environ/src/main/java/com/huimv/environ/eco/service/impl/BaseRoomServiceImpl.java

@@ -1,6 +1,7 @@
 package com.huimv.environ.eco.service.impl;
 
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -8,16 +9,14 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huimv.common.utils.DataUill;
 import com.huimv.common.utils.Result;
 import com.huimv.common.utils.ResultCode;
+import com.huimv.environ.eco.entity.BaseFloor;
 import com.huimv.environ.eco.entity.BaseRoom;
 import com.huimv.environ.eco.entity.SysHumidity;
 import com.huimv.environ.eco.entity.SysTemperature;
 import com.huimv.environ.eco.entity.dto.AllRoomEnvironment;
 import com.huimv.environ.eco.entity.dto.AllWaterEnvPowerApp;
 import com.huimv.environ.eco.entity.dto.ScreenDto;
-import com.huimv.environ.eco.mapper.BaseRoomMapper;
-import com.huimv.environ.eco.mapper.SysFodderMapper;
-import com.huimv.environ.eco.mapper.SysHumidityMapper;
-import com.huimv.environ.eco.mapper.SysTemperatureMapper;
+import com.huimv.environ.eco.mapper.*;
 import com.huimv.environ.eco.service.IBaseRoomService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -50,9 +49,13 @@ public class BaseRoomServiceImpl extends ServiceImpl<BaseRoomMapper, BaseRoom> i
     @Autowired
     private BaseRoomMapper baseRoomMapper;
 
+    @Autowired
+    private BaseFloorMapper floorMapper;
+
 
     @Override
     public Result getAllRoomEnvironment(Integer farmId) {
+        baseRoomMapper.setS();
 
         List<AllRoomEnvironment> list =  baseRoomMapper.getAllRoomEnvironment(farmId);
 
@@ -70,14 +73,18 @@ public class BaseRoomServiceImpl extends ServiceImpl<BaseRoomMapper, BaseRoom> i
         baseRoomMapper.setS();
         BaseRoom baseRoom = new BaseRoom();
         if (StrUtil.isBlank(roomId)){
-//            baseRoom =  this.getOne(new QueryWrapper<BaseRoom>().eq("farm_id",farmId).last("limit 1"));
-//            roomId = baseRoom.getId()+"";
-            roomId ="157";
-            baseRoom =this.getById(roomId);
-        }else {
-            baseRoom =this.getById(roomId);
+            baseRoom =  this.getOne(new QueryWrapper<BaseRoom>().eq("farm_id",farmId).last("limit 1"));
+            if (ObjectUtil.isNotEmpty(baseRoom)){
+                roomId = baseRoom.getId()+"";
+            }
+//            roomId ="157";
+
         }
+        baseRoom =this.getById(roomId);
 
+        if (ObjectUtil.isEmpty(baseRoom)){
+            return new Result(ResultCode.SUCCESS,null);
+        }
         QueryWrapper<SysHumidity> humidityWrapper = new QueryWrapper<>();
         QueryWrapper<SysTemperature> temperatureWrapper = new QueryWrapper<>();
         humidityWrapper.eq("room_id",roomId);
@@ -137,7 +144,7 @@ public class BaseRoomServiceImpl extends ServiceImpl<BaseRoomMapper, BaseRoom> i
 
     @Override
     public Result listLargeScreen(String farmId) {
-        ScreenDto screenDto =  fodderMapper.fodderMapper();
+        ScreenDto screenDto =  fodderMapper.fodderMapper(farmId);
         return new Result(ResultCode.SUCCESS,screenDto);
 
     }
@@ -145,13 +152,13 @@ public class BaseRoomServiceImpl extends ServiceImpl<BaseRoomMapper, BaseRoom> i
     @Override
     public Result listAllWaterEnvPowerApp(Map<String,String> map) {
         String farmId = map.get("farmId");
-        String roomName = map.get("roomName");
+        String boxId = map.get("boxId");
         QueryWrapper<BaseRoom> wrapper = new QueryWrapper<>();
         if (StringUtils.isNotBlank(farmId)){
             wrapper.last("where br.farm_id = " +farmId);
         }
-        if (StringUtils.isNotBlank(roomName)){
-            wrapper.last("where br.alias = '" +roomName+"'");
+        if (StringUtils.isNotBlank(boxId)){
+            wrapper.last("where br.box_id = '" +boxId+"'");
         }
         baseRoomMapper.setS();
         List<AllWaterEnvPowerApp> waterEnvPowerApps = baseRoomMapper.listAllWaterEnvPowerApp(wrapper);
@@ -159,4 +166,6 @@ public class BaseRoomServiceImpl extends ServiceImpl<BaseRoomMapper, BaseRoom> i
         return new Result(ResultCode.SUCCESS,waterEnvPowerApps);
     }
 
+
+
 }

+ 16 - 12
huimv-farm-environ/src/main/java/com/huimv/environ/eco/service/impl/SysDayWaterServiceImpl.java

@@ -53,17 +53,20 @@ public class SysDayWaterServiceImpl extends ServiceImpl<SysDayWaterMapper, SysDa
         String endDate = map.get("endDate");
         String roomId = map.get("roomId");
         String farmId = map.get("farmId");
-        DecimalFormat df = new DecimalFormat("#.00");
+        DecimalFormat df = new DecimalFormat("0.00");
         baseRoomMapper.setS();
         BaseRoom baseRoom ;
         if (roomId == null){
-            roomId ="157";
-            baseRoom =baseRoomMapper.selectById(roomId);
-        }else {
-            baseRoom = baseRoomMapper.selectById(roomId);
+            baseRoom =  baseRoomMapper.selectOne(new QueryWrapper<BaseRoom>().eq("farm_id",farmId).last("limit 1"));
+            if (ObjectUtil.isNotEmpty(baseRoom)){
+                roomId = baseRoom.getId()+"";
+            }
         }
+        baseRoom =baseRoomMapper.selectById(roomId);
 
-
+        if (ObjectUtil.isEmpty(baseRoom)){
+            return new Result(ResultCode.SUCCESS,null);
+        }
 
         QueryWrapper<SysDayWater> wrapper = new QueryWrapper<>();
         wrapper.eq(StringUtils.isNotBlank(roomId),"room_id",roomId);
@@ -78,7 +81,7 @@ public class SysDayWaterServiceImpl extends ServiceImpl<SysDayWaterMapper, SysDa
             List<SysDayWater> dayWater = dayWaterMapper.listDay(wrapper);
             endMap.put("data",dayWater);
             Double countWater = dayWaterMapper.countWater(wrapper);
-            endMap.put("countWater",countWater);
+            endMap.put("countWater",countWater+"");
         }
         //本月
         else if ("3".equals(type)) {
@@ -88,7 +91,7 @@ public class SysDayWaterServiceImpl extends ServiceImpl<SysDayWaterMapper, SysDa
 
 
             Double countWater = dayWaterMapper.countWater(wrapper);
-            endMap.put("countWater",countWater);
+            endMap.put("countWater",countWater+"");
         }
 
         //本周
@@ -97,7 +100,7 @@ public class SysDayWaterServiceImpl extends ServiceImpl<SysDayWaterMapper, SysDa
             List<SysDayWater> dayWater = dayWaterMapper.listDay(wrapper);
             endMap.put("data",dayWater);
             Double countWater = dayWaterMapper.countWater(wrapper);
-            endMap.put("countWater",countWater);
+            endMap.put("countWater",countWater+"");
         }
         //今日
         else  {
@@ -139,6 +142,7 @@ public class SysDayWaterServiceImpl extends ServiceImpl<SysDayWaterMapper, SysDa
 
     @Override
     public Result listAllWater(Map<String, String> map) {
+        baseRoomMapper.setS();
         String type = map.get("type");
         String startDate = map.get("startDate");
         String endDate = map.get("endDate");
@@ -160,7 +164,7 @@ public class SysDayWaterServiceImpl extends ServiceImpl<SysDayWaterMapper, SysDa
 
             Double countWater = dayWaterMapper.countWater(wrapper);
             if (ObjectUtil.isNotEmpty(countWater)){
-                endMap.put("countWater",countWater);
+                endMap.put("countWater",countWater+"");
             }else {
                 endMap.put("countWater",null);
             }
@@ -174,7 +178,7 @@ public class SysDayWaterServiceImpl extends ServiceImpl<SysDayWaterMapper, SysDa
 
 
             Double countWater = dayWaterMapper.countWater(wrapper);
-            endMap.put("countWater",countWater);
+            endMap.put("countWater",countWater+"");
         }
 
         //本周
@@ -183,7 +187,7 @@ public class SysDayWaterServiceImpl extends ServiceImpl<SysDayWaterMapper, SysDa
             List<SysDayWater> dayWater = dayWaterMapper.listAllWater(wrapper);
             endMap.put("data",dayWater);
             Double countWater = dayWaterMapper.countWater(wrapper);
-            endMap.put("countWater",countWater);
+            endMap.put("countWater",countWater+"");
         }
         //今日
         else  {

+ 39 - 5
huimv-farm-environ/src/main/java/com/huimv/environ/eco/service/impl/SysFodderServiceImpl.java

@@ -8,18 +8,17 @@ import com.huimv.common.utils.DataUill;
 import com.huimv.common.utils.Result;
 import com.huimv.common.utils.ResultCode;
 import com.huimv.environ.eco.entity.BaseFloor;
+import com.huimv.environ.eco.entity.BaseRoom;
 import com.huimv.environ.eco.entity.SysFodder;
 import com.huimv.environ.eco.entity.dto.FodderDto;
 import com.huimv.environ.eco.mapper.BaseFloorMapper;
+import com.huimv.environ.eco.mapper.BaseRoomMapper;
 import com.huimv.environ.eco.mapper.SysFodderMapper;
 import com.huimv.environ.eco.service.ISysFodderService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * <p>
@@ -38,6 +37,9 @@ public class SysFodderServiceImpl extends ServiceImpl<SysFodderMapper, SysFodder
     @Autowired
     private BaseFloorMapper floorMapper;
 
+    @Autowired
+    private BaseRoomMapper baseRoomMapper;
+
 
 
 
@@ -50,6 +52,7 @@ public class SysFodderServiceImpl extends ServiceImpl<SysFodderMapper, SysFodder
         QueryWrapper<SysFodder> wrapper = new QueryWrapper<>();
         wrapper.eq("farm_id",farmId);
         Map endMap = new HashMap();
+        baseRoomMapper.setS();
         //自定义
         if ("3".equals(type+"")){
             endDate = endDate +" 23:59:59";
@@ -87,8 +90,12 @@ public class SysFodderServiceImpl extends ServiceImpl<SysFodderMapper, SysFodder
         Integer type = (Integer) map.get("type");
         Integer floorId = (Integer)map.get("floorId");
         Integer farmId = (Integer)map.get("farmId");
+        baseRoomMapper.setS();
        if (ObjectUtil.isEmpty(floorId)){
-           floorId =floorMapper.selectOne(new QueryWrapper<BaseFloor>().eq("farm_id",farmId).last("limit 1")).getId();
+           BaseFloor baseFloor = floorMapper.selectOne(new QueryWrapper<BaseFloor>().eq("farm_id", farmId).last("limit 1"));
+           if (ObjectUtil.isNotEmpty(baseFloor)){
+               floorId = baseFloor.getId();
+           }
        }
 
         QueryWrapper<SysFodder> wrapper = new QueryWrapper<>();
@@ -124,5 +131,32 @@ public class SysFodderServiceImpl extends ServiceImpl<SysFodderMapper, SysFodder
         return new Result(ResultCode.SUCCESS,endMap);
     }
 
+    @Override
+    public Result getTodayAllFodderApp(Map map) {
+
+
+        Integer  farmId = (Integer)map.get("farmId");
+
+        List<BaseFloor> baseFloors = floorMapper.selectList(new QueryWrapper<BaseFloor>().eq("farm_id", farmId));
+
+
+        QueryWrapper<SysFodder> wrapper = new QueryWrapper<>();
+        wrapper.eq("farm_id",farmId);
+
+        wrapper.ge("create_time", DataUill.getTimesmorning());
+        List list = new ArrayList();
+        for (BaseFloor baseFloor : baseFloors) {
+            Map endMap = new HashMap();
+            wrapper.eq("floor_id",baseFloor.getId());
+            Integer value = fodderMapper.countAllValue(wrapper);
+            endMap.put("value",value);
+            endMap.put("floorName",baseFloor.getFloorName());
+            endMap.put("id",baseFloor.getId());
+            list.add(endMap);
+        }
+
+        return new Result(ResultCode.SUCCESS,list);
+    }
+
 
 }

+ 34 - 0
huimv-farm-environ/src/main/resources/application-prod2.yml

@@ -0,0 +1,34 @@
+server:
+  port: 8092
+spring:
+  application:
+    name: pigfarm-local-device
+  #------DataSource-----
+  datasource:
+    url: jdbc:mysql://115.238.57.190:3309/huimv-farm-center?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    username: root
+    password: root
+    driver-class-name: com.mysql.cj.jdbc.Driver
+  jpa:
+    hibernate:
+      ddl-auto: update
+    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
+  redis:
+    host: 122.112.224.199
+    port: 6379
+    password: hm123456
+# Socket配置
+#socket:
+  # 监听端口 9001
+#  listen:
+#    #ip: 192.168.16.3
+#    ip: 192.168.1.49
+#    port: 10020
+  # 线程池 - 保持线程数 20
+  #pool-keep: 20
+  # 线程池 - 核心线程数 10
+  #pool-core: 10
+  # 线程池 - 最大线程数 20
+  #pool-max: 30
+  # 线程队列容量 10
+  #pool-queue-init: 10

+ 1 - 0
huimv-farm-environ/src/main/resources/application.properties

@@ -1,3 +1,4 @@
 #spring.profiles.active=dev
 spring.profiles.active=prod
+#spring.profiles.active=prod2
 

+ 1 - 4
huimv-farm-environ/src/main/resources/com/huimv/environ/eco/mapper/BaseRoomMapper.xml

@@ -36,7 +36,6 @@
 
     </select>
     <select id="getAllDayWater" resultType="com.huimv.environ.eco.entity.dto.AllDayWater">
-
         SELECT CONCAT(br.alias ,br.room_name) room,  ROUND (IFNULL(water.`value` ,0),2) water
         FROM `base_room` br
          LEFT JOIN (
@@ -45,9 +44,7 @@
          WHERE br.farm_id = #{farmId}
     </select>
     <select id="listAllWaterEnvPowerApp" resultType="com.huimv.environ.eco.entity.dto.AllWaterEnvPowerApp">
-
-
-        SELECT CONCAT(br.alias ,br.room_name) room_name,br.id room_id ,  ROUND(IFNULL(tem.value,0) ,2)tem,  ROUND( IFNULL(hum.value,0) ,2)hum , ROUND(IFNULL(water.`value` ,0),2) water,bf.id floor_id
+        SELECT CONCAT(br.alias ,br.room_name) room_name,br.id room_id ,  ROUND(IFNULL(tem.value,0) ,2)tem,  ROUND( IFNULL(hum.value,0) ,2)hum , ROUND(IFNULL(water.`value` ,0),2) water,bf.id floor_id ,br.box_id box_id
         FROM
         `base_room` br
         LEFT JOIN  (

+ 6 - 6
huimv-farm-environ/src/main/resources/com/huimv/environ/eco/mapper/SysFodderMapper.xml

@@ -33,12 +33,12 @@
     </select>
     <select id="fodderMapper" resultType="com.huimv.environ.eco.entity.dto.ScreenDto">
       SELECT
- (SELECT MIN(`value`) FROM `sys_humidity`  WHERE TO_DAYS(`create_time`) = TO_DAYS(NOW())  )minHum ,
- (SELECT MAX(`value`) FROM `sys_humidity`  WHERE TO_DAYS(`create_time`) = TO_DAYS(NOW())  )maxHum,
-(SELECT MAX(`value`) FROM `sys_temperature` WHERE TO_DAYS(`create_time`) = TO_DAYS(NOW())  )maxTem,
- (SELECT MIN(`value`) FROM `sys_temperature` WHERE TO_DAYS(`create_time`) = TO_DAYS(NOW())  )minTem,
- (SELECT IFNULL(ROUND(SUM(`increase_value`),2),0) FROM`sys_month_water` WHERE TO_DAYS(`create_time`) = TO_DAYS(NOW()) ) dayWater,
- (SELECT IFNULL(ROUND(SUM(`increase_value`),2),0) FROM `sys_month_water` WHERE DATE_FORMAT( `create_time`, '%Y%m' ) =DATE_FORMAT( CURDATE( ) , '%Y%m' )   ) monthWater
+ (SELECT MIN(`value`) FROM `sys_humidity`  WHERE TO_DAYS(`create_time`) = TO_DAYS(NOW()) AND farm_id  = #{farmId} )minHum ,
+ (SELECT MAX(`value`) FROM `sys_humidity`  WHERE TO_DAYS(`create_time`) = TO_DAYS(NOW()) AND farm_id  = #{farmId}  )maxHum,
+(SELECT MAX(`value`) FROM `sys_temperature` WHERE TO_DAYS(`create_time`) = TO_DAYS(NOW())  AND farm_id  = #{farmId} )maxTem,
+ (SELECT MIN(`value`) FROM `sys_temperature` WHERE TO_DAYS(`create_time`) = TO_DAYS(NOW())  AND farm_id  = #{farmId} )minTem,
+ (SELECT ROUND(SUM(`increase_value`),2) FROM`sys_month_water` WHERE TO_DAYS(`create_time`) = TO_DAYS(NOW()) AND farm_id  = #{farmId}  ) dayWater,
+ (SELECT ROUND(SUM(`increase_value`),2) FROM `sys_month_water` WHERE DATE_FORMAT( `create_time`, '%Y%m' ) =DATE_FORMAT( CURDATE( ) , '%Y%m' )  AND farm_id  = #{farmId}   ) monthWater
     </select>
 
 

+ 3 - 0
huimv-farm-produce/src/main/java/com/huimv/produce/produce/repo/ProdWeightEntity.java

@@ -1,5 +1,7 @@
 package com.huimv.produce.produce.repo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+
 import javax.persistence.*;
 import java.io.Serializable;
 import java.sql.Timestamp;
@@ -16,6 +18,7 @@ public class ProdWeightEntity implements Serializable {
     private Integer id;
 
     @Column(name = "add_time")
+    @JsonFormat(pattern = "yy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
     private Timestamp addTime;
 
     /**

+ 13 - 0
huimv-farm-produce/src/main/java/com/huimv/produce/produce/service/impl/ProdSalesServiceImpl.java

@@ -85,6 +85,17 @@ public class ProdSalesServiceImpl extends ServiceImpl<ProdSalesMapper, ProdSales
             moneyList1.add( NumberUtils.format( prodSales.getTodayMoney()));
         }
 
+        wrapper.clear();
+        wrapper.eq("farm_id",farmId);
+        wrapper.ge("add_date",DateUtil.beginOfMonth(new Date()));
+        ProdSalesDto prodSalesDto = salesMapper.countMonth(wrapper);
+
+
+
+
+        endMap.put("nowMoney", prodSalesDto.getMoney());
+        endMap.put("nowQuantity", prodSalesDto.getQuantity());
+
         endMap.put("timeList",timeList);
         endMap.put("moneyList",moneyList);
         endMap.put("quantityList",quantityList);
@@ -94,6 +105,8 @@ public class ProdSalesServiceImpl extends ServiceImpl<ProdSalesMapper, ProdSales
         endMap.put("quantityPercent", PercentUtil.getGrowth(lastProdSales.getQuantity(),lastTwoProdSales.getQuantity()));
         endMap.put("money", NumberUtils.format(lastProdSales.getMoney()+""));
         endMap.put("moneyPercent", PercentUtil.getGrowth(lastProdSales.getMoney(),lastTwoProdSales.getMoney()));
+
+
         return new Result(ResultCode.SUCCESS,endMap);
     }
 

+ 2 - 0
huimv-farm-produce/src/main/java/com/huimv/produce/warning/controller/BaseWarningInfoController.java

@@ -40,4 +40,6 @@ public class BaseWarningInfoController {
     public Result listWarningInfo(@RequestBody Map<String, String> map ) {
         return warningInfoService.listWarningInfo(map);
     }
+
+
 }

+ 7 - 0
huimv-farm-produce/src/main/java/com/huimv/produce/warning/controller/SysThresholdController.java

@@ -9,6 +9,8 @@ import com.huimv.produce.warning.service.ISysThresholdService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Map;
+
 /**
  * <p>
  *  前端控制器
@@ -42,4 +44,9 @@ public class SysThresholdController {
     public Result getThreshold(@RequestParam(name = "farmId") String farmId){
         return new Result(ResultCode.SUCCESS,thresholdService.getById(farmId));
     }
+
+    @PostMapping("/listWarningInfoWeater")
+    public Result listWarningInfoWeater(@RequestBody Map<String, String> map ) {
+        return thresholdService.listWarningInfoWeater(map);
+    }
 }

+ 16 - 0
huimv-farm-produce/src/main/java/com/huimv/produce/warning/entity/SysThreshold.java

@@ -83,4 +83,20 @@ public class SysThreshold extends Model {
      */
     private String flow;
 
+    /**
+     * 天气高温阈值
+     */
+    private String weatherMaxTem;
+
+
+    /**
+     * 天气低温阈值
+     */
+    private String weatherMinTem;
+
+    private String benconValue;
+
+    private String benconTime;
+
+
 }

+ 2 - 0
huimv-farm-produce/src/main/java/com/huimv/produce/warning/service/IBaseWarningInfoService.java

@@ -21,4 +21,6 @@ public interface IBaseWarningInfoService extends IService<BaseWarningInfo> {
     Result listWarningInfoSewage(Map<String, String> map);
 
     Result listWarningInfo(Map<String, String> map);
+
+
 }

+ 4 - 0
huimv-farm-produce/src/main/java/com/huimv/produce/warning/service/ISysThresholdService.java

@@ -1,8 +1,11 @@
 package com.huimv.produce.warning.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.common.utils.Result;
 import com.huimv.produce.warning.entity.SysThreshold;
 
+import java.util.Map;
+
 /**
  * <p>
  *  服务类
@@ -13,4 +16,5 @@ import com.huimv.produce.warning.entity.SysThreshold;
  */
 public interface ISysThresholdService extends IService<SysThreshold> {
 
+    Result listWarningInfoWeater(Map<String, String> map);
 }

+ 2 - 0
huimv-farm-produce/src/main/java/com/huimv/produce/warning/service/impl/BaseWarningInfoServiceImpl.java

@@ -179,4 +179,6 @@ public class BaseWarningInfoServiceImpl extends ServiceImpl<BaseWarningInfoMappe
 
         return new Result(ResultCode.SUCCESS,page);
     }
+
+
 }

+ 36 - 0
huimv-farm-produce/src/main/java/com/huimv/produce/warning/service/impl/SysThresholdServiceImpl.java

@@ -1,11 +1,17 @@
 package com.huimv.produce.warning.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.common.utils.Result;
+import com.huimv.common.utils.ResultCode;
 import com.huimv.produce.warning.entity.SysThreshold;
 import com.huimv.produce.warning.mapper.SysThresholdMapper;
 import com.huimv.produce.warning.service.ISysThresholdService;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * <p>
  *  服务实现类
@@ -17,4 +23,34 @@ import org.springframework.stereotype.Service;
 @Service
 public class SysThresholdServiceImpl extends ServiceImpl<SysThresholdMapper, SysThreshold> implements ISysThresholdService {
 
+    @Override
+    public Result listWarningInfoWeater(Map<String, String> map) {
+        String farmId = map.get("farmId");
+        String maxTem = map.get("maxTem");
+        String minTem = map.get("minTem");
+        SysThreshold threshold = this.getById(farmId);
+        if(ObjectUtil.isEmpty(threshold)){
+             return new Result(10001,"该牧场未设置天气阈值",false);
+        }
+        String weatherMaxTem = threshold.getWeatherMaxTem();
+        String weatherMixTem = threshold.getWeatherMinTem();
+        Map endMap =new HashMap();
+        if (Double.parseDouble(maxTem) > Double.parseDouble(weatherMaxTem)){
+            endMap.put("maxTem",true);
+            endMap.put("maxTemStr","今日最高温度为"+maxTem+"℃,高于阈值"+weatherMaxTem+"℃");
+        }else {
+            endMap.put("maxTem",false);
+            endMap.put("maxTemStr",null);
+        }
+        if (Double.parseDouble(minTem) < Double.parseDouble(weatherMixTem)){
+            endMap.put("minTem",true);
+            endMap.put("minTemStr","今日最低温度为"+minTem+"℃,低于阈值"+weatherMixTem+"℃");
+        }else {
+            endMap.put("minTem",false);
+            endMap.put("minTemStr",null);
+        }
+
+
+        return new Result(ResultCode.SUCCESS,endMap);
+    }
 }

+ 34 - 0
huimv-farm-produce/src/main/resources/application-prod2.yml

@@ -0,0 +1,34 @@
+server:
+  port: 8094
+spring:
+  application:
+    name: pigfarm-local-device
+  #------DataSource-----
+  datasource:
+    url: jdbc:mysql://115.238.57.190:3309/huimv-farm-center?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    username: root
+    password: root
+    driver-class-name: com.mysql.cj.jdbc.Driver
+  jpa:
+    hibernate:
+      ddl-auto: update
+    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
+  redis:
+    host: 122.112.224.199
+    port: 6379
+    password: hm123456
+# Socket配置
+#socket:
+  # 监听端口 9001
+#  listen:
+#    #ip: 192.168.16.3
+#    ip: 192.168.1.49
+#    port: 10020
+  # 线程池 - 保持线程数 20
+  #pool-keep: 20
+  # 线程池 - 核心线程数 10
+  #pool-core: 10
+  # 线程池 - 最大线程数 20
+  #pool-max: 30
+  # 线程队列容量 10
+  #pool-queue-init: 10

+ 1 - 17
huimv-farm-produce/src/main/resources/application.properties

@@ -1,20 +1,4 @@
 #spring.profiles.active=dev
 spring.profiles.active=prod
+#spring.profiles.active=prod2
 
-#时间格式配置
-spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
-spring.jackson.time-zone=GMT+8
-
-# 数据中心数据推送地址
-dataCenter.ipAddr=http://115.238.57.190
-dataCenter.port=:10091
-# 日总称重数据服务
-dataCenter.service.dayWeight=/receiver/farm/weight/putDayWeight
-# 批次称重数据服务
-dataCenter.service.batchWeight=/receiver/farm/weight/putBatchWeight
-# 部署牧场ID(base_farm.id)
-local.farmID=1
-# 批次计算间隔
-weight.batch_interval=4
-weight.batch.prefix=W
-weight.batchCode.spacemark=-

+ 10 - 1
huimv-farm-receiver/src/main/java/com/huimv/receiver/eco/controller/EcoController.java

@@ -87,7 +87,16 @@ public class EcoController {
         List<SysFodder> fodders = humAndTemDto.getFodders();
         if (ObjectUtil.isNotEmpty(fodders)){
             try {
-                fodderService.saveBatch(fodders);
+                for (SysFodder fodder : fodders) {
+                    Integer fodderId = fodder.getFodderId();
+                    SysFodder byId = fodderService.getById(fodderId);
+                    if (ObjectUtil.isEmpty(byId)){
+                        fodderService.save(fodder);
+                    }else {
+                        fodderService.updateById(fodder);
+                    }
+                }
+
             }catch (Exception e){
                 System.out.println("用料存储失败");
             }

+ 2 - 0
huimv-farm-receiver/src/main/java/com/huimv/receiver/eco/entity/SysFodder.java

@@ -38,5 +38,7 @@ public class SysFodder extends Model {
 
     private Integer farmId;
 
+    private Date updateTime;
+
 
 }

+ 34 - 0
huimv-farm-receiver/src/main/resources/application-prod2.yml

@@ -0,0 +1,34 @@
+server:
+  port: 8098
+spring:
+  application:
+    name: pigfarm-local-device
+  #------DataSource-----
+  datasource:
+    url: jdbc:mysql://115.238.57.190:3309/huimv-farm-center?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    username: root
+    password: root
+    driver-class-name: com.mysql.cj.jdbc.Driver
+  jpa:
+    hibernate:
+      ddl-auto: update
+    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
+  redis:
+    host: 122.112.224.199
+    port: 6379
+    password: hm123456
+# Socket配置
+#socket:
+  # 监听端口 9001
+#  listen:
+#    #ip: 192.168.16.3
+#    ip: 192.168.1.49
+#    port: 10020
+  # 线程池 - 保持线程数 20
+  #pool-keep: 20
+  # 线程池 - 核心线程数 10
+  #pool-core: 10
+  # 线程池 - 最大线程数 20
+  #pool-max: 30
+  # 线程队列容量 10
+  #pool-queue-init: 10

+ 1 - 0
huimv-farm-receiver/src/main/resources/application.properties

@@ -1,5 +1,6 @@
 #spring.profiles.active=dev
 spring.profiles.active=prod
+#spring.profiles.active=prod2
 
 #ʱ¼ä¸ñʽÅäÖÃ
 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

+ 2 - 0
huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/BaseController/SysTelecomEventController.java

@@ -76,7 +76,9 @@ public class SysTelecomEventController {
             LambdaQueryWrapper<BaseTelecomRoom> wrapper3 = Wrappers.lambdaQuery();
             wrapper3.eq(BaseTelecomRoom::getDeviceId, record.getDeviceId());
             BaseTelecomRoom baseTelecomRoom = baseTelecomRoomMapper.selectOne(wrapper3);
+            //位置
             telecomVo.setLocation(baseTelecomRoom.getDeviceRoom());
+            telecomVo.setChekOk(record.getRemark());
             TelecomVoRecords.add(telecomVo);
         }
         return new Result(ResultCode.SUCCESS,page1.setRecords(TelecomVoRecords));

+ 8 - 25
huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ClientController/ClientAllEventController.java

@@ -33,8 +33,7 @@ public class ClientAllEventController {
 
     @Autowired
     private ISysTelecomEventService sysTelecomEventService;
-
-     //
+    //所有的事件接口
     @RequestMapping("/ListAllEvent")
     public R SiZhuList(@RequestBody Map<String, Object> params1) throws ClientException, ParseException {
         Integer farmId= (int) params1.get("farmId");
@@ -44,6 +43,7 @@ public class ClientAllEventController {
         return R.ok("请求成功").put("data", getEventList( params1  )).put("total" , CountTimes(params1));
     }
 
+
     //返回所有的事件 的集合  包括死猪和洗消和大门 --分页参数
     public GeneralResponse getEventList( Map<String, Object> params1) throws ClientException {
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -72,13 +72,9 @@ public class ClientAllEventController {
         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 generalRequest = new GeneralRequest(URL, Method.POST);
         generalRequest.header("Content-Type", " application/json");
         generalRequest.body(JSON.toJSONString(params));
         GeneralResponse generalResponse = iClient.doAction(generalRequest, generalRequest.getResponseClass());
@@ -103,34 +99,21 @@ public class ClientAllEventController {
         params.put("alarmStartDateString",formatA);
         params.put("alarmEndDateString",formatD);
         if (StringUtilsWork.isNotEmpty( (String) params1.get("alarmStartDateString"))){
-            params.put("alarmStartDateString",(String) params1.get("alarmStartDateString"));
-            params.put("alarmEndDateString",(String) params1.get("alarmEndDateString"));
+            params.put("alarmStartDateString", params1.get("alarmStartDateString"));
+            params.put("alarmEndDateString", params1.get("alarmEndDateString"));
         }
         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.0.0/alarm-record/count-num";  //获取事件URL    post请求
         IClient iClient = new DefaultClient();
-        String NewUrl = URL ;
-        System.out.println("开始执行");
-        //这种已经在配置文件里面安排了账号ip以及密码
-        GeneralRequest generalRequest = new GeneralRequest(NewUrl, Method.POST);
-        System.out.println(NewUrl);
+        GeneralRequest generalRequest = new GeneralRequest(URL, Method.POST);
         generalRequest.header("Content-Type", " application/json");
-        System.out.println(JSON.toJSONString(params));
-        //里面是
         generalRequest.body(JSON.toJSONString(params));
-        //发起请求处理应答
-        GeneralResponse generalResponse = iClient.doAction(generalRequest, generalRequest.getResponseClass());
-        System.out.println("执行结束");
-        JSONObject jsonObject = JSONObject.fromObject(generalResponse.getResult());
-        Object data = jsonObject.get("data");
-        JSONObject jsonObject1 = JSONObject.fromObject(data);
-        System.out.println(jsonObject1);
-        return jsonObject1.get("value").toString();
+        JSONObject jsonObject = JSONObject.fromObject(JSONObject.fromObject(iClient.doAction(generalRequest, generalRequest.getResponseClass()).getResult()).get("data"));
+        return jsonObject.get("value").toString();
     }
 
 

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

@@ -186,6 +186,7 @@ public class ClientCarManageController {
     }
 
 
+    
     //添加车辆进黑名单列表
     @RequestMapping("/addCarBlackList")
     public GeneralResponse addCarBlackList (@RequestBody Map<String, Object> params ) throws ClientException {
@@ -354,7 +355,6 @@ public class ClientCarManageController {
 
 
 
-
         @RequestMapping("/get_person_detail")
         public GeneralResponse getPersonDetail( @RequestBody Map<String, Object> params ) throws ClientException {
 

+ 24 - 4
huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ClientController/ClientDoorController.java

@@ -30,6 +30,26 @@ import java.util.Map;
 @RequestMapping("door")
 public class ClientDoorController {
 
+    public static void main(String[] args) {
+        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_OF_DAY, 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);
+        System.out.println(formatA+formatD);
+    }
+
+
+
+
+
     //
     @RequestMapping("/ListDoorEvent")
     public R ListDoorEvent(@RequestBody Map<String, Object> params1) throws ClientException, ParseException {
@@ -46,12 +66,12 @@ public class ClientDoorController {
         Calendar c = Calendar.getInstance();
         Date date = new Date();
         c.setTime(date);
-        c.set(Calendar.HOUR, 0);
+        c.set(Calendar.HOUR_OF_DAY, 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);
+        c.set(Calendar.HOUR_OF_DAY, +24);
         Date d = c.getTime();
         String formatD = format.format(d);
         Map<String, Object> params = new HashMap<>();
@@ -89,12 +109,12 @@ public class ClientDoorController {
         Calendar c = Calendar.getInstance();
         Date date = new Date();
         c.setTime(date);
-        c.set(Calendar.HOUR, 0);
+        c.set(Calendar.HOUR_OF_DAY, 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);
+        c.set(Calendar.HOUR_OF_DAY, +24);
         Date d = c.getTime();
         String formatD = format.format(d);
         Map<String, Object> params = new HashMap<>();

+ 27 - 60
huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ClientController/ClientPersonManageController.java

@@ -25,6 +25,26 @@ import java.util.Map;
 @RestController
 @RequestMapping("person")
 public class ClientPersonManageController {
+    /**
+     * 人员通行记录 ---测试通过  ---参数说明见大华官网 https://open-icc.dahuatech.com/#/
+     * 此处只做了代理
+     *pageNum              	是	Integer	当前页
+     * pageSize	            是	Integer	分页大小
+     * startSwingTime	    否	String	查询开始时间
+     * endSwingTime	        否	String	查询结束时间
+     * openType          	否	Integer	开门类型
+     * category	           否	String	卡片类型, null-全部, 0-IC卡, 1-有源RFID, 2-CPU卡
+     * personName          	否	String	人员名称
+     * personCode	        否	String	人员编号
+     * channelCode	       否	String	通道编码
+     * deptIds	           否	String	部门ID, 部门间”, “分隔
+     * cardNumber       	否	String	卡号
+     * enterOrExit       	否	String	事件类型, null-全部, 1-进门, 2出门, 3-进/出门
+     * openResult	        否	Integer	开门结果, null-全部, 1-成功, 0-失败
+     * @param params
+     * @return
+     * @throws ClientException
+     */
 
 
     //刷脸失败记录
@@ -53,25 +73,14 @@ public class ClientPersonManageController {
         }
         params1.put("containDomain","1");
         params1.put("openResult",0); //刷脸失败
-        String URL = "/evo-apigw/evo-accesscontrol/1.0.0/card/accessControl/swingCardRecord/bycondition/combined?";  //获取事件URL    post请求
+        String URL = "/evo-apigw/evo-accesscontrol/1.0.0/card/accessControl/swingCardRecord/bycondition/combined?";
     IClient iClient = new DefaultClient();
-    String timestamp = String.valueOf((new Date()).getTime());
-    Long aLong = Long.valueOf(timestamp);
-    String NewUrl = URL + aLong;
-        System.out.println("开始执行");
-    //这种已经在配置文件里面安排了账号ip以及密码
-    GeneralRequest generalRequest = new GeneralRequest(NewUrl, Method.POST);
-        System.out.println(NewUrl);
+    GeneralRequest generalRequest = new GeneralRequest(URL + Long.valueOf(String.valueOf((new Date()).getTime())), Method.POST);
         generalRequest.header("Content-Type", " application/json");
-        System.out.println(JSON.toJSONString(params1));
-    //里面是
         generalRequest.body(JSON.toJSONString(params1));
-    //发起请求处理应答
-    GeneralResponse generalResponse = iClient.doAction(generalRequest, generalRequest.getResponseClass());
-        System.out.println("执行结束");
-    JSONObject jsonObject = JSONObject.fromObject(generalResponse.getResult());
+        GeneralResponse generalResponse = iClient.doAction(generalRequest, generalRequest.getResponseClass());
+        JSONObject jsonObject = JSONObject.fromObject(generalResponse.getResult());
         GetResponse getResponse = new GetResponse();
-
         return  R.ok("请求成功").put("data", jsonObject ).put("total",  getResponse.SendMassageGetPagePersonAlarm((String) params1.get("startSwingTime"),(String) params1.get("endSwingTime")));
 }
 
@@ -92,51 +101,23 @@ public class ClientPersonManageController {
             //返回为空数据
             return  null;
         }
-
-        String URL = "/evo-apigw/evo-brm/1.2.0/person/page; "  ;  // 人员列表的接口
         IClient iClient = new DefaultClient();
-        System.out.println("开始执行");
-        GeneralRequest generalRequest = new GeneralRequest(URL, Method.POST);
+        GeneralRequest generalRequest = new GeneralRequest("/evo-apigw/evo-brm/1.2.0/person/page", Method.POST);
         generalRequest.header("Content-Type", " application/json");
-        System.out.println(JSON.toJSONString(params));
-        //里面是
         generalRequest.body(JSON.toJSONString(params));
-        //发起请求处理应答
         GeneralResponse generalResponse = iClient.doAction(generalRequest, generalRequest.getResponseClass());
         System.out.println("执行结束");
         return generalResponse;
     }
 
-    /**
-     * 人员通行记录 ---测试通过  ---参数说明见大华官网 https://open-icc.dahuatech.com/#/
-     * 此处只做了代理
-     *pageNum              	是	Integer	当前页
-     * pageSize	            是	Integer	分页大小
-     * startSwingTime	    否	String	查询开始时间
-     * endSwingTime	        否	String	查询结束时间
-     * openType          	否	Integer	开门类型
-     * category	           否	String	卡片类型, null-全部, 0-IC卡, 1-有源RFID, 2-CPU卡
-     * personName          	否	String	人员名称
-     * personCode	        否	String	人员编号
-     * channelCode	       否	String	通道编码
-     * deptIds	           否	String	部门ID, 部门间”, “分隔
-     * cardNumber       	否	String	卡号
-     * enterOrExit       	否	String	事件类型, null-全部, 1-进门, 2出门, 3-进/出门
-     * openResult	        否	Integer	开门结果, null-全部, 1-成功, 0-失败
-     * @param params
-     * @return
-     * @throws ClientException
-     */
 
     @RequestMapping("/get_person_record")
     public GeneralResponse getAccidentRecord1( @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("开始执行");
@@ -144,9 +125,7 @@ public class ClientPersonManageController {
         GeneralRequest generalRequest = new GeneralRequest(URL, Method.POST);
         generalRequest.header("Content-Type", " application/json");
         System.out.println(JSON.toJSONString(params));
-        //里面是
         generalRequest.body(JSON.toJSONString(params));
-        //发起请求处理应答
         GeneralResponse generalResponse = iClient.doAction(generalRequest, generalRequest.getResponseClass());
         System.out.println("执行结束");
         return generalResponse;
@@ -162,22 +141,14 @@ public class ClientPersonManageController {
             //返回为空数据
             return  new GeneralResponse() ;
         }
-        String URL = "/evo-apigw/evo-accesscontrol/1.0.0/card/accessControl/swingCardRecord/bycondition/combinedCount?systime=";  //获取事件URL    post请求
+        String URL = "/evo-apigw/evo-accesscontrol/1.0.0/card/accessControl/swingCardRecord/bycondition/combinedCount?systime=";
         IClient iClient = new DefaultClient();
         String timestamp = String.valueOf((new Date()).getTime());
         Long aLong = Long.valueOf(timestamp);
-        String NewUrl = URL + aLong;
-        System.out.println("开始执行");
-        //这种已经在配置文件里面安排了账号ip以及密码
-        GeneralRequest generalRequest = new GeneralRequest(NewUrl, Method.POST);
-        System.out.println(NewUrl);
+        GeneralRequest generalRequest = new GeneralRequest( URL + aLong, Method.POST);
         generalRequest.header("Content-Type", " application/json");
-        System.out.println(JSON.toJSONString(params));
-        //里面是
         generalRequest.body(JSON.toJSONString(params));
-        //发起请求处理应答
         GeneralResponse generalResponse = iClient.doAction(generalRequest, generalRequest.getResponseClass());
-        System.out.println("执行结束");
         return generalResponse;
     }
 
@@ -196,14 +167,10 @@ public class ClientPersonManageController {
         }
         String URL = "/evo-apigw/evo-accesscontrol/${version}/card/accessControl/swingCardRecord/19241";  //获取事件URL    post请求
         IClient iClient = new DefaultClient();
-        System.out.println("开始执行");
         String URL_id = URL + params.get("id");
-        //这种已经在配置文件里面安排了账号ip以及密码
         GeneralRequest generalRequest = new GeneralRequest(URL_id, Method.POST);
         generalRequest.header("Content-Type", " application/json");
-        //发起请求处理应答
         GeneralResponse generalResponse = iClient.doAction(generalRequest, generalRequest.getResponseClass());
-        System.out.println("执行结束");
         return generalResponse;
     }
 

+ 2 - 16
huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ClientController/ClientXixiaoController.java

@@ -32,26 +32,19 @@ public class ClientXixiaoController {
             //返回为空数据
             return  null ;
         }
-
-
         String URL = "/evo-apigw/evo-event/1.2.0/alarm-record/page";  //获取事件URL    post请求
         IClient iClient = new DefaultClient();
-        System.out.println("开始执行");
-        //这种已经在配置文件里面安排了账号ip以及密码
         GeneralRequest generalRequest = new GeneralRequest(URL, Method.POST);
         generalRequest.header("Content-Type", " application/json");
-        System.out.println(JSON.toJSONString(params));
-        //里面是
         generalRequest.body(JSON.toJSONString(params));
-        //发起请求处理应答
         GeneralResponse generalResponse = iClient.doAction(generalRequest, generalRequest.getResponseClass());
-        System.out.println("执行结束");
+
         return generalResponse;
 
     }
 
     /**
-     * 洗消数据查询的接口,三个洗消的摄像头是固定的
+     * 洗消数据查询的接口,三个洗消的摄像头是固定的--页数接口
      *
      * @param params
      * @return
@@ -64,19 +57,12 @@ public class ClientXixiaoController {
             //返回为空数据
             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("开始执行");
-        //这种已经在配置文件里面安排了账号ip以及密码
         GeneralRequest generalRequest = new GeneralRequest(URL, Method.POST);
         generalRequest.header("Content-Type", " application/json");
-        System.out.println(JSON.toJSONString(params));
-        //里面是
         generalRequest.body(JSON.toJSONString(params));
-        //发起请求处理应答
         GeneralResponse generalResponse = iClient.doAction(generalRequest, generalRequest.getResponseClass());
-        System.out.println("执行结束");
         return generalResponse;
     }
 }

+ 0 - 2
huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ClientController/GetToken.java

@@ -6,14 +6,12 @@ import com.huimv.video.dhicc.icc.IccUtil;
 import com.huimv.video.dhicc.result.R;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-
 import javax.servlet.http.HttpServletRequest;
 
 /**
  * 事件信息的最终端口*/
 @RestController
 @RequestMapping("token")
-
 public class GetToken {
         @RequestMapping("/getToken")
         public R getAccidentRecordPicture(HttpServletRequest request

+ 1 - 24
huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/FaceAIController/AiFaceController.java

@@ -5,29 +5,18 @@ package com.huimv.video.dhicc.controller.FaceAIController;
 
 
 import com.alibaba.fastjson.JSONObject;
-import com.dahuatech.icc.exception.ClientException;
-import com.dahuatech.icc.oauth.http.DefaultClient;
-import com.dahuatech.icc.oauth.http.IClient;
-import com.huimv.common.utils.Result;
-import com.huimv.common.utils.StringUtilsWork;
 import com.huimv.video.dhicc.result.R;
 import com.huimv.video.dhicc.util.GetResponse;
 import com.huimv.video.dhicc.util.HttpClient;
-import org.springframework.transaction.support.TransactionCallbackWithoutResult;
 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;
-import javax.servlet.http.HttpServletResponse;
-
 import java.io.IOException;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
-import static com.huimv.video.dhicc.icc.CommonConstant.IPAndPort;
-
 @RestController
 @RequestMapping("/AiFaceCount")
 public class AiFaceController {
@@ -53,35 +42,28 @@ public class AiFaceController {
 
         c.add(Calendar.HOUR, +2);
         Date A = c.getTime();
-        String formatA = format.format(A);
 
         c.add(Calendar.HOUR, -2);
         Date B = c.getTime();
-        String formatB = format.format(B);
 
         c.add(Calendar.HOUR, -2);
         Date C = c.getTime();
-        String formatC = format.format(C);
 
         c.add(Calendar.HOUR, -2);
         Date D = c.getTime();
-        String formatD = format.format(D);
 
         c.add(Calendar.HOUR, -2);
         Date E = c.getTime();
-        String formatE = format.format(E);
 
         c.add(Calendar.HOUR, -2);
         Date F = c.getTime();
-        String formatF = format.format(F);
 
         c.add(Calendar.HOUR, -2);
         Date G = c.getTime();
-        String formatG = format.format(G);
 
         c.add(Calendar.HOUR, -2);
         Date H = c.getTime();
-        String formatH = format.format(H);
+
 
         List result = new ArrayList();
 
@@ -126,15 +108,10 @@ public class AiFaceController {
         Collections.reverse(result);
         return  R.ok("请求成功").put("data", result ).put("namalCount",12).put("alarmCount",45);
     }
-
         public String   getCountByHoure(Date  startTime ,Date EndTime) throws IOException {
             long startTimes = startTime.getTime();
             long endTimes = EndTime.getTime();
-            //这儿直接写死了--只查那=南门口
-            //开始时间 结束时间
             String URL = "http://36.26.62.70:10080/api/pass_records?_t=1640069918983&start_page=1&page_count=3000&begin_time="+startTimes+"&end_time="+endTimes+"&camera_id=5";
-           // System.out.println(URL);
-            //发送请求
             HttpClient httpClient = new HttpClient(URL);
             httpClient.setHttps(false);
             httpClient.get();

+ 0 - 1
huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ScreenController/ScreenAlarmCountByDay.java

@@ -42,7 +42,6 @@ public class ScreenAlarmCountByDay {
         c.add(Calendar.DATE, -7);
         Date B = c.getTime();
         String formatB = format.format(B);
-
         List result = new ArrayList();
 
         //洗消 一周

+ 1 - 2
huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ScreenController/ScreenIndexDataController.java

@@ -21,7 +21,7 @@ import java.util.Map;
 @RequestMapping("/screen/index")
 public class ScreenIndexDataController {
 
- //返回大屏首页的数据
+    //返回大屏首页的数据
     @RequestMapping("/dataList")
     public R indexDataList(HttpServletRequest request ,@RequestParam(name = "farmId") Integer farmId  ) throws ClientException, ParseException {
         if(farmId!=1){
@@ -63,7 +63,6 @@ public class ScreenIndexDataController {
              map.put("SevenDayGate",getResponse.SendMassageGateCount(formatC , formatA));
              map.put("tadayGate",getResponse.SendMassageGateCount(formatB, formatA));
 
-         //车分一下  进和出
         return  R.ok("请求成功").put("data", map );
 
     }

+ 8 - 11
huimv-farm-video/src/main/java/com/huimv/video/dhicc/controller/ScreenController/ScreenPersonController.java

@@ -35,35 +35,35 @@ public class ScreenPersonController {
         c.set(Calendar.MINUTE, 0);
         c.set(Calendar.SECOND, 0);
 
-        c.add(Calendar.HOUR, +2);
+        c.add(Calendar.HOUR_OF_DAY, +2);
         Date A = c.getTime();
         String formatA = format.format(A);
 
-        c.add(Calendar.HOUR, -2);
+        c.add(Calendar.HOUR_OF_DAY, -2);
         Date B = c.getTime();
         String formatB = format.format(B);
 
-        c.add(Calendar.HOUR, -2);
+        c.add(Calendar.HOUR_OF_DAY, -2);
         Date C = c.getTime();
         String formatC = format.format(C);
 
-        c.add(Calendar.HOUR, -2);
+        c.add(Calendar.HOUR_OF_DAY, -2);
         Date D = c.getTime();
         String formatD = format.format(D);
 
-        c.add(Calendar.HOUR, -2);
+        c.add(Calendar.HOUR_OF_DAY, -2);
         Date E = c.getTime();
         String formatE = format.format(E);
 
-        c.add(Calendar.HOUR, -2);
+        c.add(Calendar.HOUR_OF_DAY, -2);
         Date F = c.getTime();
         String formatF = format.format(F);
 
-        c.add(Calendar.HOUR, -2);
+        c.add(Calendar.HOUR_OF_DAY, -2);
         Date G = c.getTime();
         String formatG = format.format(G);
 
-        c.add(Calendar.HOUR, -2);
+        c.add(Calendar.HOUR_OF_DAY, -2);
         Date H = c.getTime();
         String formatH = format.format(H);
 
@@ -85,7 +85,6 @@ public class ScreenPersonController {
         map4.put("time",splitTimeByHoure(E));
         map4.put("value",getResponse.SendMassageGetPage(formatE , formatD));
 
-
         Map map5  = new HashMap();
         map5.put("time",splitTimeByHoure(F));
         map5.put("value",getResponse.SendMassageGetPage( formatF , formatE));
@@ -137,8 +136,6 @@ public class ScreenPersonController {
         Date B = c.getTime();
         String formatB = format.format(B);
 
-        System.out.println(formatA+formatB);
-
         Map map1  = new HashMap();
         map1.put("value1",getResponse.SendMassageGetPagePerson( formatB , formatA ));
         map1.put("value2",getResponse.SendMassageGetPagePersonAlarm( formatB , formatA));

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

@@ -114,12 +114,12 @@ public class ScreenSiZhuController {
                  Calendar c = Calendar.getInstance();
                  Date date = new Date();
                  c.setTime(date);
-                 c.set(Calendar.HOUR, 0);
+                 c.set(Calendar.HOUR_OF_DAY, 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);
+                 c.set(Calendar.HOUR_OF_DAY, +24);
                  Date d = c.getTime();
                  String formatD = format.format(d);
                  Map<String, Object> params = new HashMap<>();
@@ -156,7 +156,7 @@ public class ScreenSiZhuController {
         Calendar c = Calendar.getInstance();
         Date date = new Date();
         c.setTime(date);
-        c.set(Calendar.HOUR, 0);
+        c.set(Calendar.HOUR_OF_DAY, 0);
         c.set(Calendar.MINUTE, 0);
         c.set(Calendar.SECOND, 0);
         Date A = c.getTime();
@@ -177,10 +177,8 @@ public class ScreenSiZhuController {
         params.put("nodeCodeList",nodeCodeList);
         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 generalRequest = new GeneralRequest(URL, Method.POST);
         generalRequest.header("Content-Type", " application/json");
         generalRequest.body(JSON.toJSONString(params));
         GeneralResponse generalResponse = iClient.doAction(generalRequest, generalRequest.getResponseClass());

+ 102 - 0
huimv-farm-video/src/main/java/com/huimv/video/dhicc/entity/SysThreshold.java

@@ -0,0 +1,102 @@
+package com.huimv.video.dhicc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-11-30
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class SysThreshold extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "farm_id")
+    private Integer farmId;
+
+    /**
+     * 高温
+     */
+    private String maxTem;
+
+    /**
+     * 低温
+     */
+    private String minTem;
+
+    /**
+     * 高湿度
+     */
+    private String maxHum;
+
+    /**
+     * 低湿度
+     */
+    private String minHum;
+
+    /**
+     * 累计流量
+     */
+    private String totalFlow;
+
+    /**
+     * 化学需氧量
+     */
+    @TableField("COD")
+    private String COD;
+
+    /**
+     * 氨氮
+     */
+    private String ammonia;
+
+    /**
+     * 氮
+     */
+    private String nitrogen;
+
+    /**
+     * 磷
+     */
+    private String phosphorus;
+
+
+    /**
+     * ph
+     */
+    private String ph;
+
+
+     /**
+     * 瞬时流量
+     */
+    private String flow;
+
+    /**
+     * 天气高温阈值
+     */
+    private String weatherMaxTem;
+
+
+    /**
+     * 天气低温阈值
+     */
+    private String weatherMinTem;
+
+    private String benconValue;
+
+    private String benconTime;
+
+
+}

+ 1 - 0
huimv-farm-video/src/main/java/com/huimv/video/dhicc/entity/TelecomVo.java

@@ -13,5 +13,6 @@ public class TelecomVo {
 
     private String deviceId;
 
+    private String  chekOk;
 
 }

+ 17 - 0
huimv-farm-video/src/main/java/com/huimv/video/dhicc/mapper/SysThresholdMapper.java

@@ -0,0 +1,17 @@
+package com.huimv.video.dhicc.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.video.dhicc.entity.SysThreshold;
+
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-11-30
+ */
+public interface SysThresholdMapper extends BaseMapper<SysThreshold> {
+
+}

+ 17 - 0
huimv-farm-video/src/main/java/com/huimv/video/dhicc/service/ISysThresholdService.java

@@ -0,0 +1,17 @@
+package com.huimv.video.dhicc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.video.dhicc.entity.SysThreshold;
+
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-11-30
+ */
+public interface ISysThresholdService extends IService<SysThreshold> {
+
+}

+ 21 - 0
huimv-farm-video/src/main/java/com/huimv/video/dhicc/service/impl/SysThresholdServiceImpl.java

@@ -0,0 +1,21 @@
+package com.huimv.video.dhicc.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import com.huimv.video.dhicc.entity.SysThreshold;
+import com.huimv.video.dhicc.mapper.SysThresholdMapper;
+import com.huimv.video.dhicc.service.ISysThresholdService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-11-30
+ */
+@Service
+public class SysThresholdServiceImpl extends ServiceImpl<SysThresholdMapper, SysThreshold> implements ISysThresholdService {
+
+}

+ 74 - 4
huimv-farm-video/src/main/java/com/huimv/video/dhicc/timmer/SysTelcomEnentTimmer.java

@@ -4,8 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.huimv.video.dhicc.entity.SysTelecom;
 import com.huimv.video.dhicc.entity.SysTelecomEvent;
+import com.huimv.video.dhicc.entity.SysThreshold;
+import com.huimv.video.dhicc.mapper.SysTelecomEventMapper;
 import com.huimv.video.dhicc.mapper.SysTelecomMapper;
+import com.huimv.video.dhicc.mapper.SysThresholdMapper;
 import com.huimv.video.dhicc.service.ISysTelecomEventService;
+import jdk.jfr.Threshold;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
@@ -22,14 +26,81 @@ import java.util.stream.Collectors;
 public class SysTelcomEnentTimmer {
     @Autowired
     private SysTelecomMapper sysTelecomMapper;
-
+    @Autowired
+    private SysTelecomEventMapper sysTelecomEventMapperMapper;
     @Autowired
     private ISysTelecomEventService sysTelecomEventService;
 
+    @Autowired
+    private SysThresholdMapper sysThresholdMapper ;
+    //检查烘干是否合格--找出时间 阈值直接计算
+   // @Scheduled(cron = " 0/10 * * * * ? ")
+    @Scheduled(cron = " 0 */59 * * * ? ")
+    private void checkOk() {
+
+        //拿对应牧场的阈值
+        LambdaQueryWrapper<SysThreshold> wrapper1 = Wrappers.lambdaQuery();
+        wrapper1.eq(SysThreshold::getFarmId, 1);
+        SysThreshold sysThreshold = sysThresholdMapper.selectOne(wrapper1);//System.out.println(sysTelecoms);
+       // System.out.println("yuzhi"+sysThreshold);
+
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Calendar TimeDeviceId = Calendar.getInstance();
+        TimeDeviceId.setTime(new Date());
+        TimeDeviceId.add(Calendar.HOUR_OF_DAY, -30);
+        Date began1time = TimeDeviceId.getTime();
+        String startTime1 = format.format(began1time);
+        String endTime1 = format.format(new Date());
+
+        //拿事件
+        LambdaQueryWrapper<SysTelecomEvent> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(SysTelecomEvent::getFarmId, 1);
+        wrapper.between(SysTelecomEvent::getEventTime, startTime1, endTime1);
+        List<SysTelecomEvent> SysTelecomEvent = sysTelecomEventMapperMapper.selectList(wrapper);//System.out.println(sysTelecoms);
+       // System.out.println("yuzhi"+SysTelecomEvent);
+
+        for (SysTelecomEvent sysTelecomEvent : SysTelecomEvent) {
+           // System.out.println("yuzhi"+sysTelecomEvent);
+            Calendar eventTime = Calendar.getInstance();
+            eventTime.setTime(sysTelecomEvent.getEventTime());
+            //事件时间就是开始时间
+            String EventStartTime = format.format(sysTelecomEvent.getEventTime());
+            //一次烘干50度以上一般在8次左右  就是说40分钟  这里取一小时
+            eventTime.add(Calendar.MINUTE, +60);
+            Date EventEndTime1 = eventTime.getTime();
+            String EventEndTime = format.format(EventEndTime1);
+
+            //查第一次五十度事件之后的数据  统计持续在设定温度之上的事件
+            LambdaQueryWrapper<SysTelecom> wrapper3 = Wrappers.lambdaQuery();
+            wrapper3.eq(SysTelecom::getDeviceId, sysTelecomEvent.getDeviceId());
+            wrapper3.eq(SysTelecom::getFarmId, 1);
+            wrapper3.between(SysTelecom::getTimestamp, EventStartTime, EventEndTime);
+            List<SysTelecom> sysTelecoms = sysTelecomMapper.selectList(wrapper3);//System.out.println(sysTelecoms);
+
+           Integer count  =0;
+            for (SysTelecom sysTelecom : sysTelecoms) {
+                if (Double.parseDouble(sysTelecom.getTemp())>Double.parseDouble(sysThreshold.getBenconValue())){
+                    count++;
+
+                }
+            }
+             if(   Double.parseDouble(sysThreshold.getBenconValue())<  count*5){
+                System.out.println("高于阈值温度时间"+count*5);
+                 //正确烘干为1
+
+                 sysTelecomEvent.setRemark("1");
+             }else { sysTelecomEvent.setRemark("0");}
+            System.out.println("存储"+sysTelecomEvent.getRemark());
+            sysTelecomEventService.updateById(sysTelecomEvent);
+
+            //System.out.println("事件时间=" + EventStartTime + sysTelecoms);
+        }
+    }
+
        //每小时执行一次
        //@Scheduled(cron = " 0 */59 * * * ? ")
        // @Scheduled(cron = " 0/5 * * * * ? ")
-       //@Scheduled(cron = " 0/50 * * * * ? ")
+      // @Scheduled(cron = " 0/50 * * * * ? ")
        private void updateBox() {
            //获得设备列表 查找烘干数据
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -83,7 +154,6 @@ public class SysTelcomEnentTimmer {
                     }
                }
            }
-       }
-
 
+       }
 }

+ 68 - 0
huimv-farm-video/src/main/java/com/huimv/video/video/controller/BaseSpecificVideoController.java

@@ -0,0 +1,68 @@
+package com.huimv.video.video.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.common.utils.Result;
+import com.huimv.common.utils.ResultCode;
+import com.huimv.video.video.entity.BaseSpecificVideo;
+import com.huimv.video.video.entity.Camera;
+import com.huimv.video.video.service.IBaseSpecificVideoService;
+import com.huimv.video.video.service.ICameraService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-12-20
+ */
+@RestController
+@RequestMapping("/baseSpecificVideo")
+public class BaseSpecificVideoController {
+    @Autowired
+    IBaseSpecificVideoService baseSpecificVideoService;
+
+    @Autowired
+    ICameraService cameraService;
+
+    @PostMapping("/add")
+    public Result add(@RequestBody BaseSpecificVideo baseFarmX){
+        Camera byId = cameraService.getById(baseFarmX.getVideoId());
+        baseFarmX.setVideoName(byId.getCameraName());
+        baseSpecificVideoService.save(baseFarmX);
+        return new Result(ResultCode.SUCCESS);
+    }
+
+
+    @GetMapping("/remove")
+    public Result remove(@RequestParam(name = "id")Integer id){
+        baseSpecificVideoService.removeById(id);
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    @PostMapping("/update")
+    public Result update(@RequestBody BaseSpecificVideo baseFarmX){
+        Camera byId = cameraService.getById(baseFarmX.getVideoId());
+        baseFarmX.setVideoName(byId.getCameraName());
+        baseSpecificVideoService.updateById(baseFarmX);
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    @GetMapping("/list")
+    public Result list(@RequestParam(name = "farmId")Integer farmId){
+
+        return new Result(ResultCode.SUCCESS,baseSpecificVideoService.list(new QueryWrapper<BaseSpecificVideo>().eq("farm_id",farmId)));
+    }
+    @GetMapping("/listSpecif")
+    public Result listSpecif(@RequestParam(name = "farmId")Integer farmId,
+                             @RequestParam(name = "type")Integer type){
+
+        return new Result(ResultCode.SUCCESS,baseSpecificVideoService.listSpecif(farmId,type));
+    }
+
+
+
+}

+ 3 - 1
huimv-farm-video/src/main/java/com/huimv/video/video/controller/CameraAreaController.java

@@ -41,7 +41,7 @@ public class CameraAreaController {
 
     @PostMapping("/add")
     public Result add(@RequestBody CameraArea cameraArea){
-        int brandName = cameraAreaService.count(new QueryWrapper<CameraArea>().eq("area_name", cameraArea.getAreaName()));
+        int brandName = cameraAreaService.count(new QueryWrapper<CameraArea>().eq("area_name", cameraArea.getAreaName()).eq("farm_id",cameraArea.getFarmId()));
         if (brandName >0){
             return new Result(100001,"区域名称重复",false);
         }
@@ -85,4 +85,6 @@ public class CameraAreaController {
 
     }
 
+
+
 }

+ 1 - 1
huimv-farm-video/src/main/java/com/huimv/video/video/controller/CameraBrandController.java

@@ -41,7 +41,7 @@ public class CameraBrandController {
 
     @PostMapping("/add")
     public Result add(@RequestBody CameraBrand cameraBrand){
-        int brandName = cameraBrandService.count(new QueryWrapper<CameraBrand>().eq("brand_name", cameraBrand.getBrandName()));
+        int brandName = cameraBrandService.count(new QueryWrapper<CameraBrand>().eq("brand_name", cameraBrand.getBrandName()).eq("farm_id",cameraBrand.getFarmId()));
         if (brandName >0){
             return new Result(10001,"品牌名称重复",false);
         }

+ 8 - 0
huimv-farm-video/src/main/java/com/huimv/video/video/controller/CameraController.java

@@ -99,5 +99,13 @@ public class CameraController {
         return  cameraService.listScreenCamera(farmId);
     }
 
+    @GetMapping("/screenCamera")
+    private Result screenCamera(@RequestParam(name = "farmId") Integer farmId){
+
+        return  cameraService.screenCamera(farmId);
+    }
+
+
+
 
 }

+ 34 - 0
huimv-farm-video/src/main/java/com/huimv/video/video/entity/BaseRoom.java

@@ -0,0 +1,34 @@
+package com.huimv.video.video.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-11-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class BaseRoom extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String boxId;
+
+    private String roomName;
+
+    private String alias;
+
+}

+ 38 - 0
huimv-farm-video/src/main/java/com/huimv/video/video/entity/BaseSpecificVideo.java

@@ -0,0 +1,38 @@
+package com.huimv.video.video.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-12-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class BaseSpecificVideo extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private Integer videoId;
+
+    private Integer type;
+
+    private Integer farmId;
+
+    private String videoName;
+
+    private String selectVideo;
+
+}

+ 21 - 0
huimv-farm-video/src/main/java/com/huimv/video/video/mapper/BaseRoomMapper.java

@@ -0,0 +1,21 @@
+package com.huimv.video.video.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.video.video.entity.BaseRoom;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-11-11
+ */
+@Repository
+public interface BaseRoomMapper extends BaseMapper<BaseRoom> {
+
+
+}

+ 16 - 0
huimv-farm-video/src/main/java/com/huimv/video/video/mapper/BaseSpecificVideoMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.video.video.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.video.video.entity.BaseSpecificVideo;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-12-20
+ */
+public interface BaseSpecificVideoMapper extends BaseMapper<BaseSpecificVideo> {
+
+}

+ 18 - 0
huimv-farm-video/src/main/java/com/huimv/video/video/service/IBaseRoomService.java

@@ -0,0 +1,18 @@
+package com.huimv.video.video.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.video.video.entity.BaseRoom;
+
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-11-11
+ */
+public interface IBaseRoomService extends IService<BaseRoom> {
+
+}

+ 19 - 0
huimv-farm-video/src/main/java/com/huimv/video/video/service/IBaseSpecificVideoService.java

@@ -0,0 +1,19 @@
+package com.huimv.video.video.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.video.video.entity.BaseSpecificVideo;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-12-20
+ */
+public interface IBaseSpecificVideoService extends IService<BaseSpecificVideo> {
+
+    List listSpecif(Integer farmId, Integer type);
+}

+ 2 - 0
huimv-farm-video/src/main/java/com/huimv/video/video/service/ICameraService.java

@@ -36,4 +36,6 @@ public interface ICameraService extends IService<Camera> {
     Result initCamera(Integer farmId, Integer userId);
 
     Result listScreenCamera(Integer farmId);
+
+    Result screenCamera(Integer farmId);
 }

+ 23 - 0
huimv-farm-video/src/main/java/com/huimv/video/video/service/impl/BaseRoomServiceImpl.java

@@ -0,0 +1,23 @@
+package com.huimv.video.video.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.video.video.entity.BaseRoom;
+import com.huimv.video.video.mapper.BaseRoomMapper;
+import com.huimv.video.video.service.IBaseRoomService;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-11-11
+ */
+@Service
+public class BaseRoomServiceImpl extends ServiceImpl<BaseRoomMapper, BaseRoom> implements IBaseRoomService {
+
+
+
+}

+ 81 - 0
huimv-farm-video/src/main/java/com/huimv/video/video/service/impl/BaseSpecificVideoServiceImpl.java

@@ -0,0 +1,81 @@
+package com.huimv.video.video.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.video.video.entity.BaseSpecificVideo;
+import com.huimv.video.video.entity.Camera;
+import com.huimv.video.video.entity.CameraBrand;
+import com.huimv.video.video.entity.vo.CameraVo;
+import com.huimv.video.video.mapper.BaseSpecificVideoMapper;
+import com.huimv.video.video.mapper.CameraAreaMapper;
+import com.huimv.video.video.mapper.CameraBrandMapper;
+import com.huimv.video.video.mapper.CameraMapper;
+import com.huimv.video.video.service.IBaseSpecificVideoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-12-20
+ */
+@Service
+public class BaseSpecificVideoServiceImpl extends ServiceImpl<BaseSpecificVideoMapper, BaseSpecificVideo> implements IBaseSpecificVideoService {
+    @Autowired
+    private CameraMapper cameraMapper;
+
+    @Autowired
+    private CameraAreaMapper cameraAreaMapper;
+
+    @Autowired
+    private CameraBrandMapper cameraBrandMapper;
+
+    @Override
+    public List listSpecif(Integer farmId, Integer type) {
+        List<BaseSpecificVideo> list = this.list(new QueryWrapper<BaseSpecificVideo>().eq("farm_id", farmId).eq("type", type));
+
+        List list1 = new ArrayList();
+        for (BaseSpecificVideo baseSpecificVideo : list) {
+
+            Camera camera = cameraMapper.selectById(baseSpecificVideo.getVideoId());
+
+            list1.add( getCameraVo(camera));
+        }
+
+        return list1;
+    }
+
+
+    public CameraVo getCameraVo(Camera 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();
+        }
+
+
+        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);
+        return cameraVo;
+    }
+}

+ 2 - 1
huimv-farm-video/src/main/java/com/huimv/video/video/service/impl/CameraBrandServiceImpl.java

@@ -2,6 +2,7 @@ package com.huimv.video.video.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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huimv.common.utils.Result;
@@ -37,7 +38,7 @@ public class CameraBrandServiceImpl extends ServiceImpl<CameraBrandMapper, Camer
         Integer size = (Integer) params.get("size");
         String brandName = (String) params.get("brandName");
         Integer farmId = (Integer) params.get("farmId");
-        IPage<CameraBrand> list = page(new Page<>(current, size), new QueryWrapper<CameraBrand>().like("brand_name", brandName).eq("farm_id",farmId));
+        IPage<CameraBrand> list = page(new Page<>(current, size), new QueryWrapper<CameraBrand>().like(StringUtils.isNotBlank(brandName),"brand_name", brandName).eq("farm_id",farmId));
         return new Result(ResultCode.SUCCESS,list);
     }
 

+ 31 - 6
huimv-farm-video/src/main/java/com/huimv/video/video/service/impl/CameraServiceImpl.java

@@ -2,6 +2,7 @@ package com.huimv.video.video.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -9,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huimv.common.utils.Result;
 import com.huimv.common.utils.ResultCode;
+import com.huimv.video.video.entity.BaseRoom;
 import com.huimv.video.video.entity.BaseScreenCameraAccount;
 import com.huimv.video.video.entity.Camera;
 import com.huimv.video.video.entity.CameraBrand;
@@ -46,6 +48,9 @@ public class CameraServiceImpl extends ServiceImpl<CameraMapper, Camera> impleme
     private BaseScreenCameraAccountMapper cameraAccountMapper;
 
 
+    @Autowired
+    private BaseRoomMapper baseRoomMapper;
+
 
     @Override
     public Result listPage(CameraListVo cameraListVo) {
@@ -58,6 +63,11 @@ public class CameraServiceImpl extends ServiceImpl<CameraMapper, Camera> impleme
         Integer farmId = cameraListVo.getFarmId();
 
         QueryWrapper<Camera> wrapper = new QueryWrapper<>();
+
+        if (farmId != null){
+            wrapper.eq("farm_id",farmId);
+        }
+
         if (areaId!=null){
             wrapper.eq("area_id",areaId);
         }
@@ -76,9 +86,7 @@ public class CameraServiceImpl extends ServiceImpl<CameraMapper, Camera> impleme
         }else {
             wrapper.orderByAsc("sort");
         }
-        if (farmId != null){
-            wrapper.eq("farm_id",farmId);
-        }
+
         wrapper.orderByDesc("id");
 
 
@@ -170,7 +178,7 @@ public class CameraServiceImpl extends ServiceImpl<CameraMapper, Camera> impleme
         Integer areaId = camera.getAreaId();
         Integer brandId = camera.getBrandId();
 
-        int brandName = this.count(new QueryWrapper<Camera>().eq("camera_name", camera.getCameraName()));
+        int brandName = this.count(new QueryWrapper<Camera>().eq("camera_name", camera.getCameraName()).eq("farm_id",camera.getFarmId()));
         if (brandName >0){
             return new Result(10001,"摄像头名称重复",false);
         }
@@ -200,7 +208,7 @@ public class CameraServiceImpl extends ServiceImpl<CameraMapper, Camera> impleme
         if ( brandId!= null){
             camera.setBrandName(cameraBrandMapper.selectById(brandId).getBrandName());
         }
-
+        this.updateById(camera);
         return new Result(10000,"修改成功",true);
     }
 
@@ -244,6 +252,23 @@ public class CameraServiceImpl extends ServiceImpl<CameraMapper, Camera> impleme
         return new Result(ResultCode.SUCCESS,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 getByAreaId(Integer areaId) {
@@ -251,7 +276,7 @@ public class CameraServiceImpl extends ServiceImpl<CameraMapper, Camera> impleme
     }
 
 
-    private CameraVo getCameraVo(Camera camera) {
+    public CameraVo getCameraVo(Camera camera) {
 
         String cameraAccount = camera.getAccount();
         String cameraPassword = camera.getPassword();

+ 6 - 3
huimv-farm-video/src/main/resources/application-prod.yml

@@ -5,9 +5,9 @@ spring:
     name: pigfarm-local-device
   #------DataSource-----
   datasource:
-    url: jdbc:mysql://192.168.1.75:3309/huimv-farm-center?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://47.96.4.54:10052/huimv-farm-center?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
     username: root
-    password: root
+    password: hm123456789
     driver-class-name: com.mysql.cj.jdbc.Driver
   jpa:
     hibernate:
@@ -31,4 +31,7 @@ spring:
   # 线程池 - 最大线程数 20
   #pool-max: 30
   # 线程队列容量 10
-  #pool-queue-init: 10
+  #pool-queue-init: 10
+#mybatis-plus:
+#  configuration:
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

+ 1 - 17
huimv-farm-video/src/main/resources/application.properties

@@ -1,20 +1,4 @@
 #spring.profiles.active=dev
 spring.profiles.active=prod
+#spring.profiles.active=prod2
 
-#时间格式配置
-spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
-spring.jackson.time-zone=GMT+8
-
-# 数据中心数据推送地址
-dataCenter.ipAddr=http://115.238.57.190
-dataCenter.port=:10091
-# 日总称重数据服务
-dataCenter.service.dayWeight=/receiver/farm/weight/putDayWeight
-# 批次称重数据服务
-dataCenter.service.batchWeight=/receiver/farm/weight/putBatchWeight
-# 部署牧场ID(base_farm.id)
-local.farmID=1
-# 批次计算间隔
-weight.batch_interval=4
-weight.batch.prefix=W
-weight.batchCode.spacemark=-