zhuoning před 3 roky
rodič
revize
03dc23b024
100 změnil soubory, kde provedl 5152 přidání a 0 odebrání
  1. 84 0
      huimv-farm-datacenter-egg/huimv-farm-admin/pom.xml
  2. 24 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/HuimvAdminApplication.java
  3. 77 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/controller/DeviceController.java
  4. 200 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/dao/entity/FarmDeviceEntity.java
  5. 19 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/dao/repo/FarmDeviceRepo.java
  6. 24 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/service/IDevice.java
  7. 306 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/service/impl/DeviceImpl.java
  8. 321 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/utils/DateUtil.java
  9. 518 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/utils/HttpTemplete.java
  10. 68 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/utils/MathUtil.java
  11. 214 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/utils/SnowflakeIdWorker.java
  12. 36 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/utils/TextUtil.java
  13. 26 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/config/MybatisPlusConfig.java
  14. 65 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/AccountController.java
  15. 92 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/AppAuthorizeController.java
  16. 46 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/AppMenuController.java
  17. 57 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/AppSysGroupController.java
  18. 92 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/AuthorizeController.java
  19. 49 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/ClientConfigController.java
  20. 71 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/FarmController.java
  21. 192 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/LoginController.java
  22. 46 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/MenuController.java
  23. 56 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/ProdFarmNameController.java
  24. 92 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/ScreenAuthorizeController.java
  25. 46 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/ScreenMenuController.java
  26. 57 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/ScreenSysGroupController.java
  27. 167 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/SysAccountMultilevelController.java
  28. 57 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/SysGroupController.java
  29. 46 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/SysUserController.java
  30. 47 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/Account.java
  31. 35 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/AccountGroup.java
  32. 33 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/AppSysAccountGroup.java
  33. 35 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/AppSysGroup.java
  34. 33 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/AppSysGroupMenu.java
  35. 43 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/AppSysMenu.java
  36. 35 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/BaseFarmX.java
  37. 35 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/BaseScreenCameraAccount.java
  38. 37 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/ClientConfig.java
  39. 38 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/Farm.java
  40. 37 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/Group.java
  41. 35 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/GroupMenu.java
  42. 50 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/Menu.java
  43. 39 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/ProdFarmName.java
  44. 33 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/ScreenSysAccountGroup.java
  45. 35 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/ScreenSysGroup.java
  46. 33 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/ScreenSysGroupMenu.java
  47. 43 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/ScreenSysMenu.java
  48. 50 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/SysAccountMultilevel.java
  49. 47 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/User.java
  50. 106 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/dto/MenuDto.java
  51. 50 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/dto/SysAccountMultilevelDto.java
  52. 47 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/dto/SysAccountMultilevelVo.java
  53. 17 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/dto/UpdateAccountDto.java
  54. 29 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/dto/UserAccountDto.java
  55. 28 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/dto/UserAndAccountGroup.java
  56. 20 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/AccountGroupMapper.java
  57. 18 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/AccountMapper.java
  58. 17 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/AppAccountGroupMapper.java
  59. 16 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/AppGroupMapper.java
  60. 17 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/AppGroupMenuMapper.java
  61. 24 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/AppMenuMapper.java
  62. 16 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/BaseFarmXMapper.java
  63. 16 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/BaseScreenCameraAccountMapper.java
  64. 19 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/ClientConfigMapper.java
  65. 18 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/FarmMapper.java
  66. 18 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/GroupMapper.java
  67. 20 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/GroupMenuMapper.java
  68. 26 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/MenuMapper.java
  69. 23 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/ProdFarmNameMapper.java
  70. 17 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/ScreenAccountGroupMapper.java
  71. 16 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/ScreenGroupMapper.java
  72. 17 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/ScreenGroupMenuMapper.java
  73. 24 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/ScreenMenuMapper.java
  74. 18 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/SysAccountMultilevelMapper.java
  75. 25 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/UserMapper.java
  76. 16 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAccountGroupService.java
  77. 27 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAccountService.java
  78. 29 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAppAuthorizeService.java
  79. 16 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAppSysAccountGroupService.java
  80. 16 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAppSysGroupMenuService.java
  81. 27 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAppSysGroupService.java
  82. 35 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAppSysMenuService.java
  83. 29 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAuthorizeService.java
  84. 16 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IBaseFarmXService.java
  85. 16 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IBaseScreenCameraAccountService.java
  86. 16 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IClientConfigService.java
  87. 22 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IFarmService.java
  88. 16 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IGroupMenuService.java
  89. 28 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IGroupService.java
  90. 13 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/ILoginService.java
  91. 35 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IMenuService.java
  92. 23 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IProdFarmNameService.java
  93. 29 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IScreenAuthorizeService.java
  94. 16 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IScreenSysAccountGroupService.java
  95. 16 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IScreenSysGroupMenuService.java
  96. 27 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IScreenSysGroupService.java
  97. 35 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IScreenSysMenuService.java
  98. 35 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/ISysAccountMultilevelService.java
  99. 31 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IUserService.java
  100. 0 0
      huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/impl/AccountGroupServiceImpl.java

+ 84 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/pom.xml

@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         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>
+        <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>cn.dustlight.captcha</groupId>
+            <artifactId>redis-store</artifactId>
+            <version>0.0.6</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.dustlight.captcha</groupId>
+            <artifactId>captcha-core</artifactId>
+            <version>0.0.6</version>
+        </dependency>
+        <dependency>
+            <groupId>com.auth0</groupId>
+            <artifactId>java-jwt</artifactId>
+            <version>3.3.0</version>
+        </dependency>
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt</artifactId>
+            <version>0.9.1</version>
+        </dependency>
+        <!--CloseableHttpClient-->
+        <!-- JPA -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jpa</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <version>2.3.0</version>
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.huimv</groupId>-->
+<!--            <artifactId>huimv-common</artifactId>-->
+<!--            <version>0.0.1</version>-->
+<!--        </dependency>-->
+        <!-- huimv.com -->
+        <dependency>
+            <groupId>com.huimv</groupId>
+            <artifactId>huimv-common</artifactId>
+            <version>0.0.1</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>2.6</version>
+            </plugin>
+        </plugins>
+<!--        <resources>-->
+<!--            <resource>-->
+<!--                <directory>src/main/java</directory>-->
+<!--                <includes>-->
+<!--                    <include>**/*.xml</include>-->
+<!--                </includes>-->
+<!--                <filtering>false</filtering>-->
+<!--            </resource>-->
+<!--        </resources>-->
+    </build>
+</project>

+ 24 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/HuimvAdminApplication.java

@@ -0,0 +1,24 @@
+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;
+import org.springframework.context.annotation.Import;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@SpringBootApplication
+@MapperScan("com.huimv.admin.*.mapper")
+@Import(InterceptorConfig.class)
+public class HuimvAdminApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(HuimvAdminApplication.class, args);
+    }
+}

+ 77 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/controller/DeviceController.java

@@ -0,0 +1,77 @@
+package com.huimv.admin.device.controller;
+
+import com.huimv.admin.device.service.IDevice;
+import com.huimv.admin.device.utils.DateUtil;
+import com.huimv.common.utils.Result;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.UnsupportedEncodingException;
+import java.text.ParseException;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@RestController
+@RequestMapping(value = "/farm/device")
+@Slf4j
+public class DeviceController {
+    @Autowired
+    private IDevice iDevice;
+    @Autowired
+    private DateUtil dateUtil;
+
+    //新建设备信息
+    @RequestMapping(value = "/newDevice",method = RequestMethod.GET)
+    public Result saveDevice(@RequestParam(value = "deviceName",required = true) String deviceName, @RequestParam(value = "deviceCode",required = true) String deviceCode, @RequestParam(value = "deviceType",required = true) String deviceType,
+                             @RequestParam(value = "factory",required = true) String factory, @RequestParam(value = "worker",required = true) String worker, @RequestParam(value = "mainParams",required = true) String mainParams,
+                             @RequestParam(value = "state",required = true) Integer state, @RequestParam(value = "record",required = true) String record, @RequestParam(value = "farmId",required = true) Integer farmId) throws UnsupportedEncodingException {
+        //
+        return iDevice.newDevice(deviceName,deviceCode,deviceType,factory,worker,mainParams,state,record,farmId);
+    }
+
+    //编辑设备信息
+    @RequestMapping(value = "/editDevice",method = RequestMethod.GET)
+    public Result editDevice(@RequestParam(value = "deviceName",required = true) String deviceName, @RequestParam(value = "deviceCode",required = true) String deviceCode, @RequestParam(value = "deviceType",required = true) String deviceType,
+                             @RequestParam(value = "factory",required = true) String factory, @RequestParam(value = "worker",required = true) String worker, @RequestParam(value = "mainParams",required = true) String mainParams,
+                             @RequestParam(value = "state",required = true) Integer state, @RequestParam(value = "record",required = true) String record, @RequestParam(value = "farmId",required = true) Integer farmId,
+                             @RequestParam(value = "id",required = true) Integer id) throws UnsupportedEncodingException {
+            //
+        return iDevice.editDevice(deviceName,deviceCode,deviceType,factory,worker,mainParams,state,record,farmId,id);
+    }
+
+    //删除设备信息
+    @RequestMapping(value = "/removeDevice",method = RequestMethod.GET)
+    public Result removeDevice(@RequestParam(value = "id",required = true) Integer id, @RequestParam(value = "farmId",required = true) Integer farmId) throws UnsupportedEncodingException {
+        //
+        return iDevice.removeDevice(id,farmId);
+    }
+
+    //列表展示设备
+    @RequestMapping(value = "/listDevice",method = RequestMethod.GET)
+    public Result listDevice(@RequestParam(value = "deviceName",required = false) String deviceName, @RequestParam(value = "deviceCode",required = false) String deviceCode, @RequestParam(value = "deviceType",required = false) String deviceType,
+                             @RequestParam(value = "factory",required = false) String factory, @RequestParam(value = "worker",required = false) String worker,
+                             @RequestParam(value = "state",required = false) Integer state, @RequestParam(value = "farmId",required = true) Integer farmId,
+                             @RequestParam(value = "startDate",required = false) String startDate, @RequestParam(value = "endDate",required = false) String endDate,
+                             @RequestParam(value = "pageNo",required = true) Integer pageNo, @RequestParam(value = "pageSize",required = true) Integer pageSize) throws ParseException {
+        //
+        return iDevice.listDevice(deviceName,deviceCode,deviceType,factory,worker,state,farmId,startDate,endDate,pageNo,pageSize);
+    }
+
+    //计算设备总数,设备故障数,故障率
+    @RequestMapping(value = "/getCountDeviceFailureRate",method = RequestMethod.GET)
+    public Result getCountDeviceFailureRate(@RequestParam(value = "farmId",required = true) Integer farmId, @RequestParam(value = "bit",required = true) Integer bit){
+        //
+        return iDevice.getCountDeviceFailureRate(farmId,bit);
+    }
+
+}

+ 200 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/dao/entity/FarmDeviceEntity.java

@@ -0,0 +1,200 @@
+package com.huimv.admin.device.dao.entity;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name = "farm_device")
+public class FarmDeviceEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id", nullable = false)
+    private Integer id;
+
+    @Column(name = "device_name")
+    private String deviceName;
+
+    @Column(name = "device_code")
+    private String deviceCode;
+
+    @Column(name = "device_type")
+    private String deviceType;
+
+    @Column(name = "factory")
+    private String factory;
+
+    @Column(name = "worker")
+    private String worker;
+
+    @Column(name = "main_params")
+    private String mainParams;
+
+    @Column(name = "state")
+    private Integer state;
+
+    @Column(name = "record")
+    private String record;
+
+    @Column(name = "last_time")
+    private Timestamp lastTime;
+
+    @Column(name = "up_time")
+    private Timestamp upTime;
+
+    @Column(name = "down_time")
+    private Timestamp downTime;
+
+    @Column(name = "lockin_state")
+    private Integer lockinState;
+
+    @Column(name = "farm_id")
+    private Integer farmId;
+
+    @Column(name = "data_id")
+    private Long dataId;
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setDeviceName(String deviceName) {
+        this.deviceName = deviceName;
+    }
+
+    public String getDeviceName() {
+        return deviceName;
+    }
+
+    public void setDeviceCode(String deviceCode) {
+        this.deviceCode = deviceCode;
+    }
+
+    public String getDeviceCode() {
+        return deviceCode;
+    }
+
+    public void setDeviceType(String deviceType) {
+        this.deviceType = deviceType;
+    }
+
+    public String getDeviceType() {
+        return deviceType;
+    }
+
+    public void setFactory(String factory) {
+        this.factory = factory;
+    }
+
+    public String getFactory() {
+        return factory;
+    }
+
+    public void setWorker(String worker) {
+        this.worker = worker;
+    }
+
+    public String getWorker() {
+        return worker;
+    }
+
+    public void setMainParams(String mainParams) {
+        this.mainParams = mainParams;
+    }
+
+    public String getMainParams() {
+        return mainParams;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setRecord(String record) {
+        this.record = record;
+    }
+
+    public String getRecord() {
+        return record;
+    }
+
+    public void setLastTime(Timestamp lastTime) {
+        this.lastTime = lastTime;
+    }
+
+    public Timestamp getLastTime() {
+        return lastTime;
+    }
+
+    public void setUpTime(Timestamp upTime) {
+        this.upTime = upTime;
+    }
+
+    public Timestamp getUpTime() {
+        return upTime;
+    }
+
+    public void setDownTime(Timestamp downTime) {
+        this.downTime = downTime;
+    }
+
+    public Timestamp getDownTime() {
+        return downTime;
+    }
+
+    public void setLockinState(Integer lockinState) {
+        this.lockinState = lockinState;
+    }
+
+    public Integer getLockinState() {
+        return lockinState;
+    }
+
+    public void setFarmId(Integer farmId) {
+        this.farmId = farmId;
+    }
+
+    public Integer getFarmId() {
+        return farmId;
+    }
+
+    public Long getDataId() {
+        return dataId;
+    }
+
+    public void setDataId(Long dataId) {
+        this.dataId = dataId;
+    }
+
+    @Override
+    public String toString() {
+        return "FarmDeviceEntity{" +
+                "id=" + id +
+                ", deviceName='" + deviceName + '\'' +
+                ", deviceCode='" + deviceCode + '\'' +
+                ", deviceType='" + deviceType + '\'' +
+                ", factory='" + factory + '\'' +
+                ", worker='" + worker + '\'' +
+                ", mainParams='" + mainParams + '\'' +
+                ", state=" + state +
+                ", record='" + record + '\'' +
+                ", lastTime=" + lastTime +
+                ", upTime=" + upTime +
+                ", downTime=" + downTime +
+                ", lockinState=" + lockinState +
+                ", farmId=" + farmId +
+                ", dataId=" + dataId +
+                '}';
+    }
+}

+ 19 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/dao/repo/FarmDeviceRepo.java

@@ -0,0 +1,19 @@
+package com.huimv.admin.device.dao.repo;
+
+import com.huimv.admin.device.dao.entity.FarmDeviceEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
+
+public interface FarmDeviceRepo extends JpaRepository<FarmDeviceEntity, Integer>, JpaSpecificationExecutor<FarmDeviceEntity> {
+
+    //
+    @Query(nativeQuery = true,value = "SELECT COUNT(*) AS total FROM farm_device WHERE farm_id=?1")
+    List<Object[]> findDeviceTotal(Integer farmId);
+
+    //
+    @Query(nativeQuery = true,value = "SELECT COUNT(*) AS num FROM farm_device WHERE farm_id=?1 AND state=?2")
+    List<Object[]> findFailureDeviceTotal(Integer farmId, Integer failureState);
+}

+ 24 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/service/IDevice.java

@@ -0,0 +1,24 @@
+package com.huimv.admin.device.service;
+
+import com.huimv.common.utils.Result;
+
+import java.io.UnsupportedEncodingException;
+
+public interface IDevice {
+    //
+    Result newDevice(String deviceName, String deviceCode, String deviceType, String factory, String worker, String mainParams, Integer state, String record, Integer farmId) throws UnsupportedEncodingException;
+
+    //
+    Result editDevice(String deviceName, String deviceCode, String deviceType, String factory, String worker, String mainParams, Integer state, String record, Integer farmId, Integer id) throws UnsupportedEncodingException;
+
+    //
+    Result removeDevice(Integer id, Integer farmId) throws UnsupportedEncodingException;
+
+    Result removeBatichDevice(String ids, Integer farmId);
+
+    //
+    Result listDevice(String deviceName, String deviceCode, String deviceType, String factory, String worker, Integer state, Integer farmId, String startDate, String endDate, Integer pageNo, Integer pageSize);
+
+    //
+    Result getCountDeviceFailureRate(Integer farmId, Integer bit);
+}

+ 306 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/service/impl/DeviceImpl.java

@@ -0,0 +1,306 @@
+package com.huimv.admin.device.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.admin.device.dao.entity.FarmDeviceEntity;
+import com.huimv.admin.device.dao.repo.FarmDeviceRepo;
+import com.huimv.admin.device.service.IDevice;
+import com.huimv.admin.device.utils.*;
+import com.huimv.common.utils.Result;
+import com.huimv.common.utils.ResultCode;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+
+import javax.persistence.criteria.Order;
+import javax.persistence.criteria.Predicate;
+import java.io.UnsupportedEncodingException;
+import java.sql.Timestamp;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Service
+@Slf4j
+public class DeviceImpl implements IDevice {
+    @Autowired
+    private FarmDeviceRepo deviceRepo;
+    @Autowired
+    private DateUtil dateUtil;
+    @Autowired
+    private MathUtil mathUtil;
+    @Autowired
+    private HttpTemplete httpTemplete;
+    @Autowired
+    private TextUtil textUtil;
+    @Value("${farm.device.sync}")
+    private boolean dataSync;
+    @Value("${farm.device.addService}")
+    private String deviceAddService;
+    @Value("${farm.device.editService}")
+    private String deviceEditService;
+    @Value("${farm.device.removeService}")
+    private String deviceRemoveService;
+
+    /**
+     * @Method : newDevice
+     * @Description : 添加设备
+     * @Params : [deviceName, deviceCode, deviceType, factory, worker, mainParams, state, record, farmId]
+     * @Return : com.huimv.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2021/12/8
+     * @Time : 22:03
+     */
+    @Override
+    public Result newDevice(String deviceName, String deviceCode, String deviceType, String factory, String worker, String mainParams, Integer state, String record, Integer farmId) throws UnsupportedEncodingException {
+        //
+        SnowflakeIdWorker idWorker = new SnowflakeIdWorker(0, 0);
+        FarmDeviceEntity deviceEntity = new FarmDeviceEntity();
+        deviceEntity.setDeviceCode(deviceCode);
+        deviceEntity.setDeviceName(deviceName);
+        deviceEntity.setDeviceType(deviceType);
+        deviceEntity.setFactory(factory);
+        deviceEntity.setFarmId(farmId);
+        deviceEntity.setMainParams(mainParams);
+        deviceEntity.setRecord(record);
+        deviceEntity.setWorker(worker);
+        deviceEntity.setState(state);
+        deviceEntity.setLastTime(new Timestamp(new Date().getTime()));
+        deviceEntity.setDataId(idWorker.newId());
+        deviceEntity.setDownTime(new Timestamp(new Date().getTime()));
+        deviceEntity.setLockinState(2);
+        FarmDeviceEntity outFarmDeviceEntity = deviceRepo.saveAndFlush(deviceEntity);
+        log.info("数据中心添加设备信息>>"+outFarmDeviceEntity);
+        //同步牧场端设备数据
+        if(dataSync){
+            log.info("同步牧场端设备数据。");
+            //从数据库查询出牧场id
+            String farmIp = _getFarmIP(farmId);
+            String serviceUrl = farmIp + deviceAddService;
+            log.info("serviceUrl>>"+serviceUrl);
+            String data = textUtil.encode(JSON.toJSONString(outFarmDeviceEntity));
+            log.info("base64密文>>"+data);
+            //提交请求
+            httpTemplete.doPostSimple(serviceUrl,data);
+        }
+        return new Result(ResultCode.SUCCESS, outFarmDeviceEntity);
+    }
+
+    //获取牧场
+    private String _getFarmIP(Integer farmId){
+        return  "http://192.168.1.49:8091";
+    }
+
+    /**
+     * @Method : editDevice
+     * @Description : 编辑设备
+     * @Params : [deviceName, deviceCode, deviceType, factory, worker, mainParams, state, record, farmId, id]
+     * @Return : com.huimv.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2021/12/8
+     * @Time : 22:03
+     */
+    @Override
+    public Result editDevice(String deviceName, String deviceCode, String deviceType, String factory, String worker, String mainParams, Integer state, String record, Integer farmId, Integer id) throws UnsupportedEncodingException {
+        //
+        Optional<FarmDeviceEntity> optional = deviceRepo.findById(id);
+        if (!optional.isPresent()) {
+            return new Result(10001, "该记录已不存在.", false);
+        }
+        FarmDeviceEntity deviceEntity = optional.get();
+//        deviceEntity.setId(id);
+        deviceEntity.setDeviceCode(deviceCode);
+        deviceEntity.setDeviceName(deviceName);
+        deviceEntity.setDeviceType(deviceType);
+        deviceEntity.setFactory(factory);
+        deviceEntity.setFarmId(farmId);
+        deviceEntity.setMainParams(mainParams);
+        deviceEntity.setRecord(record);
+        deviceEntity.setWorker(worker);
+        deviceEntity.setState(state);
+        deviceEntity.setLastTime(new Timestamp(new Date().getTime()));
+        deviceEntity.setDownTime(new Timestamp(new Date().getTime()));
+        deviceEntity.setLockinState(2);
+        FarmDeviceEntity outFarmDeviceEntity = deviceRepo.saveAndFlush(deviceEntity);
+        log.info("数据中心添加设备信息>>"+outFarmDeviceEntity);
+        //同步牧场端设备数据
+        if(dataSync){
+            log.info("同步牧场端设备数据。");
+            //从数据库查询出牧场id
+            String farmIp = _getFarmIP(farmId);
+            String serviceUrl = farmIp + deviceEditService;
+            log.info("serviceUrl>>"+serviceUrl);
+            String data = textUtil.encode(JSON.toJSONString(outFarmDeviceEntity));
+            log.info("base64密文>>"+data);
+            //提交请求
+            httpTemplete.doPostSimple(serviceUrl,data);
+        }
+        return new Result(ResultCode.SUCCESS, outFarmDeviceEntity);
+    }
+
+    /**
+     * @Method : removeDevice
+     * @Description : 删除设备
+     * @Params : [ids]
+     * @Return : com.huimv.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2021/12/8
+     * @Time : 22:02
+     */
+    @Override
+    public Result removeDevice(Integer id, Integer farmId) throws UnsupportedEncodingException {
+//        String[] idArray = ids.split(",");
+//        List idList = new ArrayList<>();
+//        for (int a = 0; a < idArray.length; a++) {
+//            idList.add(Integer.parseInt(idArray[a]));
+//        }
+//        deviceRepo.deleteAllByIdInBatch(idList);
+        Optional<FarmDeviceEntity> optional = deviceRepo.findById(id);
+        if (!optional.isPresent()) {
+            String ERROR_INFO = "该记录已不存在.";
+            log.error(ERROR_INFO);
+            return new Result(10001, ERROR_INFO, false);
+        }
+        //
+        deviceRepo.deleteById(id);
+        FarmDeviceEntity deviceEntity = optional.get();
+
+        //同步牧场端设备数据
+        if(dataSync){
+            log.info("同步牧场端设备数据。");
+            //从数据库查询出牧场id
+            String farmIp = _getFarmIP(farmId);
+            String serviceUrl = farmIp + deviceRemoveService;
+            log.info("serviceUrl>>"+serviceUrl);
+            String data = textUtil.encode(String.valueOf(deviceEntity.getDataId()));
+            log.info("base64密文>>"+data);
+            //提交请求
+            httpTemplete.doPostSimple(serviceUrl,data);
+        }
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    /**
+     * @Method      : removeBatichDevice
+     * @Description : 
+     * @Params      : [ids, farmId]
+     * @Return      : com.huimv.common.utils.Result
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/12/16       
+     * @Time        : 10:07
+     */
+    @Override
+    public Result removeBatichDevice(String ids, Integer farmId) {
+        String[] idArray = ids.split(",");
+        List idList = new ArrayList<>();
+        for (int a = 0; a < idArray.length; a++) {
+            idList.add(Integer.parseInt(idArray[a]));
+        }
+        deviceRepo.deleteAllByIdInBatch(idList);
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    /**
+     * @Method : listDevice
+     * @Description : 列表查询设备
+     * @Params : [deviceName, deviceCode, deviceType, factory, worker, state, farmId, startDate, endDate, pageNo, pageSize]
+     * @Return : com.huimv.common.utils.Result
+     * @Author : ZhuoNing
+     * @Date : 2021/12/8
+     * @Time : 22:02
+     */
+    @Override
+    public Result listDevice(String deviceName, String deviceCode, String deviceType, String factory, String worker, Integer state, Integer farmId, String startDateText, String endDateText, Integer pageNo, Integer pageSize) {
+        Specification<FarmDeviceEntity> sf = (Specification<FarmDeviceEntity>) (root, criteriaQuery, criteriaBuilder) -> {
+            //
+            List<Predicate> predList = new ArrayList<>();
+            if (null != farmId) {
+                predList.add(criteriaBuilder.equal(root.get("farmId").as(Integer.class), farmId));
+            }
+            if (null != deviceName) {
+                predList.add(criteriaBuilder.equal(root.get("deviceName").as(String.class), deviceName));
+            }
+            if (null != deviceCode) {
+                predList.add(criteriaBuilder.equal(root.get("deviceCode").as(String.class), deviceCode));
+            }
+            if (null != factory) {
+                predList.add(criteriaBuilder.equal(root.get("factory").as(String.class), factory));
+            }
+            if (null != worker) {
+                predList.add(criteriaBuilder.equal(root.get("worker").as(String.class), worker));
+            }
+            if (null != startDateText) {
+                Date startDate = dateUtil.parseDate(startDateText);
+                predList.add(criteriaBuilder.greaterThanOrEqualTo(root.get("lastTime").as(Date.class), startDate));
+            }
+            if (null != endDateText) {
+                Date endDate = dateUtil.parseDatePlus(endDateText);
+                predList.add(criteriaBuilder.lessThanOrEqualTo(root.get("lastTime").as(Date.class), endDate));
+            }
+            if (null != state) {
+                predList.add(criteriaBuilder.equal(root.get("state").as(Integer.class), state));
+            }
+            //
+            Predicate[] pred = new Predicate[predList.size()];
+            Predicate and = criteriaBuilder.and(predList.toArray(pred));
+            criteriaQuery.where(and);
+            //
+            List<Order> orders = new ArrayList<>();
+            orders.add(criteriaBuilder.desc(root.get("id")));
+            return criteriaQuery.orderBy(orders).getRestriction();
+        };
+        Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
+        return new Result(ResultCode.SUCCESS, deviceRepo.findAll(sf, pageable));
+    }
+
+    /**
+     * @Method      : getCountDeviceFailureRate
+     * @Description : 计算设备故障率
+     * @Params      : [farmId, bit]
+     * @Return      : com.huimv.common.utils.Result
+     *
+     * @Author      : ZhuoNing
+     * @Date        : 2021/12/8
+     * @Time        : 23:51
+     */
+    @Override
+    public Result getCountDeviceFailureRate(Integer farmId, Integer bit) {
+        if (bit == null || bit == 0) {
+            bit = 2;
+        }
+        //获取设备总数
+        List<Object[]> objList = deviceRepo.findDeviceTotal(farmId);
+        Object[] totalObj = (Object[]) objList.get(0);
+        int total = Integer.parseInt(totalObj[0].toString());
+        //获取有故障设备数
+        Integer failureState = 2;
+        List<Object[]> failureList = deviceRepo.findFailureDeviceTotal(farmId, failureState);
+        Object[] failureObj = (Object[]) failureList.get(0);
+        int num = Integer.parseInt(failureObj[0].toString());
+        if (total == 0) {
+            return new Result(10002, "当前该牧场无任何设备.", false);
+        }
+        String rate = mathUtil.countRate(num, total, bit);
+        JSONObject outJo = new JSONObject();
+        outJo.put("total",total+" 个");
+        outJo.put("num",num+" 个");
+        outJo.put("rate",rate+" %");
+        return new Result(ResultCode.SUCCESS,outJo);
+    }
+
+
+}

+ 321 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/utils/DateUtil.java

@@ -0,0 +1,321 @@
+package com.huimv.admin.device.utils;
+
+import cn.hutool.core.date.DateTime;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.sql.Timestamp;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+@Slf4j
+public class DateUtil {
+    /**
+     * 获取今天
+     *
+     * @return String
+     */
+    public String getToday() {
+        return new SimpleDateFormat("yyyy-MM-dd").format(new Date());
+    }
+
+    /**
+     * 获取昨天
+     *
+     * @return String
+     */
+    public String getYestoday() {
+        Calendar cal = Calendar.getInstance();
+        cal.add(Calendar.DATE, -1);
+        Date time = cal.getTime();
+        return new SimpleDateFormat("yyyy-MM-dd").format(time);
+    }
+
+    /**
+     * 获取本月开始日期
+     *
+     * @return String
+     **/
+    public String getMonthStart() {
+        Calendar cal = Calendar.getInstance();
+        cal.add(Calendar.MONTH, 0);
+        cal.set(Calendar.DAY_OF_MONTH, 1);
+        Date time = cal.getTime();
+        return new SimpleDateFormat("yyyy-MM-dd").format(time);
+    }
+
+    /**
+     * 获取本月最后一天
+     *
+     * @return String
+     **/
+    public String getMonthEnd() {
+        Calendar cal = Calendar.getInstance();
+        cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
+        Date time = cal.getTime();
+        return new SimpleDateFormat("yyyy-MM-dd").format(time);
+    }
+
+    /**
+     * 获取本周的第一天
+     *
+     * @return String
+     **/
+    public String getWeekStart() {
+        Calendar cal = Calendar.getInstance();
+        cal.add(Calendar.WEEK_OF_MONTH, 0);
+        cal.set(Calendar.DAY_OF_WEEK, 2);
+        Date time = cal.getTime();
+        return new SimpleDateFormat("yyyy-MM-dd").format(time);
+    }
+
+    /**
+     * 获取本周的最后一天
+     *
+     * @return String
+     **/
+    public String getWeekEnd() {
+        Calendar cal = Calendar.getInstance();
+        cal.set(Calendar.DAY_OF_WEEK, cal.getActualMaximum(Calendar.DAY_OF_WEEK));
+        cal.add(Calendar.DAY_OF_WEEK, 1);
+        Date time = cal.getTime();
+        return new SimpleDateFormat("yyyy-MM-dd").format(time);
+    }
+
+    /**
+     * 获取本年的第一天
+     *
+     * @return String
+     **/
+    public String getYearStart() {
+        return new SimpleDateFormat("yyyy").format(new Date()) + "-01-01";
+    }
+
+    /**
+     * 获取本年的最后一天
+     *
+     * @return String
+     **/
+    public String getYearEnd() {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.MONTH, calendar.getActualMaximum(Calendar.MONTH));
+        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+        Date currYearLast = calendar.getTime();
+        return new SimpleDateFormat("yyyy-MM-dd").format(currYearLast);
+    }
+
+    //Long转换为Date格式
+    public String fromLongToDate(Long time, String format) {
+        SimpleDateFormat sdf = new SimpleDateFormat(format);
+        Date date = new Date(time);
+        return sdf.format(date);
+    }
+
+    public String formatTimestampToDatetime(Timestamp timestamp) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.format(timestamp);
+    }
+
+    public String formatTimestampToDate(Timestamp timestamp) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(timestamp);
+    }
+
+    //格式化本年
+    public String getThisYear() {
+        Calendar cal = Calendar.getInstance();
+        int year = cal.get(Calendar.YEAR);
+        return String.valueOf(year);
+    }
+
+    //格式化本月
+    public String getThisMonth() {
+        Calendar cal = Calendar.getInstance();
+        int month = cal.get(Calendar.MONTH) + 1;
+        if (String.valueOf(month).length() == 1) {
+            return "0" + String.valueOf(month);
+        } else {
+            return String.valueOf(month);
+        }
+    }
+
+    //格式化日期时间
+    public String formatDateTime(String dateText) throws ParseException {
+        if (dateText.indexOf("T") != -1) {
+            dateText = dateText.replace("T", " ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = sdf.parse(dateText);
+        return sdf.format(date);
+    }
+
+    public String formatDateText(String dateText) throws ParseException {
+        if (dateText.indexOf("T") != -1) {
+            dateText = dateText.replace("T", " ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Date date = sdf.parse(dateText);
+        return sdf.format(date);
+    }
+
+    public String formatDateText(Date date) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(date);
+    }
+
+    public Date parseDateTime(String dateText) throws ParseException {
+        if (dateText.indexOf("T") != -1) {
+            dateText = dateText.replace("T", " ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.parse(dateText);
+    }
+
+    public Date parseDate(String dateText) {
+        if (dateText.indexOf("T") != -1) {
+            dateText = dateText.replace("T", " ");
+        }
+        try {
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            return sdf.parse(dateText);
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+
+    public Date parseDatePlus(String dateText) {
+        try {
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            Calendar cd = Calendar.getInstance();
+            cd.setTime(sdf.parse(dateText));
+            cd.add(Calendar.DATE, 1);//增加一天
+            //cd.add(Calendar.MONTH, n);//增加一个月
+            return sdf.parse(sdf.format(cd.getTime()));
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    public Date parseDate2(String dateText) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.parse(dateText);
+    }
+
+    public Long parseDateTimeLong(String dateText) throws ParseException {
+        if (dateText.indexOf("T") != -1) {
+            dateText = dateText.replace("T", " ");
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date date = sdf.parse(dateText);
+        return date.getTime();
+    }
+
+
+    //
+    public Date getTodayDate() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.parse(sdf.format(new Date()));
+    }
+
+    public String getTodayDateText() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(new Date());
+    }
+
+    public String getTodayText() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        return sdf.format(new Date());
+    }
+
+    public String getTodayMissionText() throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+        return sdf.format(new Date());
+    }
+
+    public String getStartDateInThisMonth() {
+        DateTime date = cn.hutool.core.date.DateUtil.date();
+        return (cn.hutool.core.date.DateUtil.beginOfMonth(date) + "").substring(0, 10);
+    }
+
+    public String getEndDateInThisMonth() {
+        DateTime date = cn.hutool.core.date.DateUtil.date();
+        return (date + "").substring(0, 10);
+    }
+
+    /**
+     * 获取过去或者未来 任意天内的日期数组
+     *
+     * @param intervals intervals天内
+     * @return 日期数组
+     */
+    public ArrayList<String> test(int intervals) {
+        ArrayList<String> pastDaysList = new ArrayList<>();
+        ArrayList<String> fetureDaysList = new ArrayList<>();
+        for (int i = 0; i < intervals; i++) {
+            pastDaysList.add(getPastDate(i));
+            fetureDaysList.add(getFetureDate(i));
+        }
+        return pastDaysList;
+    }
+
+    /**
+     * 获取过去第几天的日期
+     *
+     * @param past
+     * @return
+     */
+    public String getPastDate(int past) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
+        Date today = calendar.getTime();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String result = format.format(today);
+        return result;
+    }
+
+    /**
+     * 获取未来 第 past 天的日期
+     *
+     * @param past
+     * @return
+     */
+    public String getFetureDate(int past) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + past);
+        Date today = calendar.getTime();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String result = format.format(today);
+        return result;
+    }
+
+    //重新构建日期
+    public String rebuildDateTime(String text) {
+        return text.substring(0, 4) + "-" + text.substring(4, 6) + "-" + text.substring(6, 8) + " " + text.substring(8, 10) + ":" + text.substring(10, 12) + ":" + text.substring(12, 14);
+    }
+
+    public static void main(String[] args) {
+        DateUtil du = new DateUtil();
+        //
+        du.test1();
+    }
+
+    private void test1() {
+        String text = "20211201104300";
+//        String text = "1234567890abcd";
+        String date = text.substring(0, 4) + "-" + text.substring(4, 6) + "-" + text.substring(6, 8) + " " + text.substring(8, 10) + ":" + text.substring(10, 12) + ":" + text.substring(12, 14);
+        System.out.println("date=" + date);
+    }
+}

+ 518 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/utils/HttpTemplete.java

@@ -0,0 +1,518 @@
+package com.huimv.admin.device.utils;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.http.HttpEntity;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.*;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.util.EntityUtils;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.util.*;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+public class HttpTemplete {
+    private String testHttpIp = "http://localhost:9105";
+
+//    public static void main(String[] args) throws Exception {
+//        //
+//        HttpTemplete client = new HttpTemplete();
+////        client.testGetRequest1();
+//        client.testGetRequest2();
+//    }
+    private Integer connectTimeout = null;
+    private Integer requestTimeout = null;
+    private Integer socketTimeout = null;
+
+    static {
+    }
+
+    //发送简单数据
+    public void doPostSimple(String serviceUrl,String data){
+        System.out.println("推送数据地址:"+serviceUrl);
+        //
+        Map<String,String> paramsMap = new HashMap<String,String>();
+        paramsMap.put("data", data);
+        //
+        Map<String,Integer> timeoutMap = new HashMap<String,Integer>();
+        timeoutMap.put("connectTimeout", 5000);
+        timeoutMap.put("requestTimeout", 5000);
+        timeoutMap.put("socketTimeout", 5000);
+        try{
+            // 用Post方法推送接口数据
+            doPost(serviceUrl,paramsMap,timeoutMap);
+        } catch (IOException e) {
+            System.out.println("###错误信息:"+e.getMessage());
+            System.out.println("###错误信息:"+e.getLocalizedMessage());
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * @Method      : doPost
+     * @Description : post方式推送接口
+     * @Params      : [url, paramsMap, timeoutMap]
+     * @Return      : com.alibaba.fastjson.JSONObject
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/11/19       
+     * @Time        : 14:55
+     */
+    public JSONObject doPost(String url, Map<String, String> paramsMap, Map<String, Integer> timeoutMap) throws IOException {
+        // 创建默认的httpClient实例.
+        CloseableHttpClient httpClient = getHttpClientConnection();
+        //
+        int connectTimeout = timeoutMap.get("connectTimeout");
+        int requestTimeout = timeoutMap.get("requestTimeout");
+        int socketTimeout = timeoutMap.get("socketTimeout");
+        // 创建httpPost
+        HttpPost httpPost = new HttpPost(url);
+        RequestConfig requestConfig = RequestConfig.custom()
+                .setSocketTimeout(socketTimeout) //服务器响应超时时间
+                .setConnectTimeout(connectTimeout) //连接服务器超时时间
+                .setConnectionRequestTimeout(requestTimeout)
+                .build();
+        httpPost.setConfig(requestConfig);
+        // 创建参数队列
+        List<NameValuePair> paramsList = new ArrayList<NameValuePair>();
+        Set<Map.Entry<String, String>> entrySet = paramsMap.entrySet();
+        for (Map.Entry<String, String> e : entrySet) {
+            String name = e.getKey();
+            String value = e.getValue();
+            NameValuePair pair = new BasicNameValuePair(name, value);
+            paramsList.add(pair);
+        }
+        UrlEncodedFormEntity content = new UrlEncodedFormEntity(paramsList, "UTF-8");
+        //处理乱码
+//        StringEntity content = new StringEntity(paramsList.toString(), Charset.forName("UTF-8"));// 第二个参数,设置后才会对,内容进行编码
+//        content.setContentType("application/soap+xml; charset=UTF-8");
+//        content.setContentEncoding("UTF-8");
+        httpPost.setEntity(content);
+//        HttpUriRequest httpPost = RequestBuilder.post().setUri(url).setEntity(content).setConfig(requestConfig);
+        CloseableHttpResponse response = httpClient.execute(httpPost);
+        // 获取响应实体
+        HttpEntity entity = response.getEntity();
+        try {
+            if (response.getStatusLine().getStatusCode() == 200) {
+                // 打印响应内容
+                String text = EntityUtils.toString(entity, "utf-8");
+                JSONObject resultJo = new JSONObject();
+                resultJo.put("status", true);
+                resultJo.put("content", text);
+                return resultJo;
+            }else{
+                String text = EntityUtils.toString(entity, "utf-8");
+                JSONObject resultJo = new JSONObject();
+                resultJo.put("status", false);
+                resultJo.put("content", text);
+                return resultJo;
+            }
+        } finally {
+            //释放资源
+            if (response != null) {
+                response.close();
+            }
+            if (httpClient != null) {
+                httpClient.close();
+            }
+        }
+    }
+
+    /**
+     * @Method      : setTimeout
+     * @Description : 
+     * @Params      : [connectTimeout, requestTimeout, socketTimeout]
+     * @Return      : void
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/11/23       
+     * @Time        : 9:36
+     */
+    public Map<String, Integer> setTimeout(Integer connectTimeout, Integer requestTimeout, Integer socketTimeout){
+        //
+        if(connectTimeout == null){
+            this.connectTimeout = 3000;
+        }else{
+            this.connectTimeout = connectTimeout;
+        }
+        //
+        if(requestTimeout == null){
+            this.requestTimeout = 3000;
+        }else{
+            this.requestTimeout = requestTimeout;
+        }
+        //
+        if(socketTimeout == null){
+            this.socketTimeout = 3000;
+        }else{
+            this.socketTimeout = socketTimeout;
+        }
+        Map<String, Integer> timeoutMap = new HashMap<String, Integer>();
+        timeoutMap.put("connectTimeout", this.connectTimeout);
+        timeoutMap.put("requestTimeout", this.requestTimeout);
+        timeoutMap.put("socketTimeout", this.socketTimeout);
+        return timeoutMap;
+    }
+
+    /**
+     * @Method      : setTimeout
+     * @Description : 
+     * @Params      : [connectTimeout, requestTimeout, socketTimeout]
+     * @Return      : java.util.Map<java.lang.String,java.lang.Integer>
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/11/23       
+     * @Time        : 9:41
+     */
+    public Map<String, Integer> setTimeout(String connectTimeout, String requestTimeout, String socketTimeout){
+        //
+        if(connectTimeout == null){
+            this.connectTimeout = 3000;
+        }else{
+            this.connectTimeout = Integer.parseInt(connectTimeout);
+        }
+        //
+        if(requestTimeout == null){
+            this.requestTimeout = 3000;
+        }else{
+            this.requestTimeout = Integer.parseInt(requestTimeout);
+        }
+        //
+        if(socketTimeout == null){
+            this.socketTimeout = 3000;
+        }else{
+            this.socketTimeout = Integer.parseInt(socketTimeout);
+        }
+        Map<String, Integer> timeoutMap = new HashMap<String, Integer>();
+        timeoutMap.put("connectTimeout", this.connectTimeout);
+        timeoutMap.put("requestTimeout", this.requestTimeout);
+        timeoutMap.put("socketTimeout", this.socketTimeout);
+        return timeoutMap;
+    }
+
+    /**
+     * @Method      : doGet
+     * @Description : 
+     * @Params      : [url, paramsMap]
+     * @Return      : com.alibaba.fastjson.JSONObject
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/11/23       
+     * @Time        : 9:34
+     */
+    public JSONObject doGet(String url, Map<String, String> paramsMap) throws IOException {
+        //
+        if(this.connectTimeout == null){
+            this.connectTimeout = 3000;
+        }
+        //
+        if(this.requestTimeout == null)
+        {
+            this.requestTimeout = 3000;
+        }
+        //
+        if(this.socketTimeout == null){
+            this.socketTimeout = 3000;
+        }
+        Map<String, Integer> timeoutMap = new HashMap<String, Integer>();
+        timeoutMap.put("connectTimeout", this.connectTimeout);
+        timeoutMap.put("requestTimeout", this.requestTimeout);
+        timeoutMap.put("socketTimeout", this.socketTimeout);
+        //
+        CloseableHttpClient httpClient = getHttpClientConnection();
+        //执行//获取请求内容
+        CloseableHttpResponse response = httpClient.execute(getHttpRequest(url, paramsMap, timeoutMap));
+        try {
+            // 获取响应实体
+            HttpEntity entity = response.getEntity();
+            // 打印响应状态
+            if (response.getStatusLine().getStatusCode() == 200) {
+                // 打印响应内容
+                String text = EntityUtils.toString(entity, "utf-8");
+                JSONObject resultJo = new JSONObject();
+                resultJo.put("status", true);
+                resultJo.put("content", text);
+                return resultJo;
+            } else {
+                String text = EntityUtils.toString(entity, "utf-8");
+                JSONObject resultJo = new JSONObject();
+                resultJo.put("status", false);
+                resultJo.put("content", text);
+                return resultJo;
+            }
+        } finally {
+            //释放资源
+            if (response != null) {
+                response.close();
+            }
+            if (httpClient != null) {
+                httpClient.close();
+            }
+        }
+    }
+
+    private CloseableHttpClient httpClient = null;
+    private CloseableHttpResponse response = null;
+
+    public JSONObject doGetBatch(String url, Map<String, String> paramsMap) throws IOException {
+        //
+        if(this.connectTimeout == null){
+            this.connectTimeout = 3000;
+        }
+        //
+        if(this.requestTimeout == null)
+        {
+            this.requestTimeout = 3000;
+        }
+        //
+        if(this.socketTimeout == null){
+            this.socketTimeout = 3000;
+        }
+        Map<String, Integer> timeoutMap = new HashMap<String, Integer>();
+        timeoutMap.put("connectTimeout", this.connectTimeout);
+        timeoutMap.put("requestTimeout", this.requestTimeout);
+        timeoutMap.put("socketTimeout", this.socketTimeout);
+        //
+        httpClient = getHttpClientConnection();
+        //执行//获取请求内容
+        response = httpClient.execute(getHttpRequest(url, paramsMap, timeoutMap));
+        // 获取响应实体
+        HttpEntity entity = response.getEntity();
+        // 打印响应状态
+        if (response.getStatusLine().getStatusCode() == 200) {
+                // 打印响应内容
+                String text = EntityUtils.toString(entity, "utf-8");
+                JSONObject resultJo = new JSONObject();
+                resultJo.put("status", true);
+                resultJo.put("content", text);
+                return resultJo;
+        } else {
+                String text = EntityUtils.toString(entity, "utf-8");
+                JSONObject resultJo = new JSONObject();
+                resultJo.put("status", false);
+                resultJo.put("content", text);
+                return resultJo;
+        }
+    }
+
+    //关闭http连接
+    public void closeHttpConn() throws IOException {
+        System.out.println("开始释放http连接资源");
+        //释放资源
+        if (response != null) {
+            response.close();
+        }
+        if (httpClient != null) {
+            httpClient.close();
+        }
+    }
+
+    /**
+     * @Method : doGet
+     * @Description :get方式推送接口
+     * @Params : [url, paramsMap, timeoutMap]
+     * @Return : com.alibaba.fastjson.JSONObject
+     * @Author : ZhuoNing
+     * @Date : 2021/11/18
+     * @Time : 17:39
+     */
+    public JSONObject doGet(String url, Map<String, String> paramsMap, Map<String, Integer> timeoutMap) throws IOException {
+        if (timeoutMap == null) {
+            timeoutMap.put("connectTimeout", 5000);
+            timeoutMap.put("requestTimeout", 5000);
+            timeoutMap.put("socketTimeout", 5000);
+        }
+        //
+        CloseableHttpClient httpClient = getHttpClientConnection();
+        //执行//获取请求内容
+        CloseableHttpResponse response = httpClient.execute(getHttpRequest(url, paramsMap, timeoutMap));
+        try {
+            // 获取响应实体
+            HttpEntity entity = response.getEntity();
+            // 打印响应状态
+            if (response.getStatusLine().getStatusCode() == 200) {
+                // 打印响应内容
+                String text = EntityUtils.toString(entity, "utf-8");
+                JSONObject resultJo = new JSONObject();
+                resultJo.put("status", true);
+                resultJo.put("content", text);
+                return resultJo;
+            } else {
+                String text = EntityUtils.toString(entity, "utf-8");
+                JSONObject resultJo = new JSONObject();
+                resultJo.put("status", false);
+                resultJo.put("content", text);
+                return resultJo;
+            }
+        } finally {
+            //释放资源
+            if (response != null) {
+                response.close();
+            }
+            if (httpClient != null) {
+                httpClient.close();
+            }
+        }
+    }
+
+    private void testGetRequest1() throws IOException {
+        Map<String, Integer> timeoutMap = new HashMap<String, Integer>();
+        timeoutMap.put("connectTimeout", 5000);
+        timeoutMap.put("requestTimeout", 5000);
+        timeoutMap.put("socketTimeout", 5000);
+        String url = testHttpIp + "/token/getToken?userId=20210501&timestamp=45546546454&random=1156&sign=7fa431325504e01e9fa87ed0e274c40c";
+        // test error
+        url = testHttpIp + "/token/getToken?userId=20210501&timestamp=45546546454&random=1156&sign=7fa431325504e01e9fa87ed0e274c40c&userId=20210501&timestamp=45546546454&random=1156&sign=7fa431325504e01e9fa87ed0e274c40c";
+        CloseableHttpClient httpClient = getHttpClientConnection();
+        CloseableHttpResponse response = httpClient.execute(getHttpRequest(url, timeoutMap));
+        // 打印响应状态
+        System.out.println("响应状态1 =" + response.getStatusLine());
+        try {
+            if (response.getStatusLine().getStatusCode() == 200) {
+                // 获取响应实体
+                HttpEntity entity = response.getEntity();
+                // 打印响应内容
+                String text = EntityUtils.toString(entity, "utf-8");
+                System.out.println("响应内容=" + text);
+
+                JSONObject resultJo = JSONObject.parseObject(text);
+                System.out.println("accessToken=" + resultJo.getString("accessToken"));
+            } else {
+                System.out.println("请求失败");
+            }
+        } finally {
+            //释放资源
+            if (response != null) {
+                response.close();
+            }
+            if (httpClient != null) {
+                httpClient.close();
+            }
+        }
+    }
+
+    //
+    private CloseableHttpClient getHttpClientConnection() {
+        //创建默认实例
+        CloseableHttpClient httpclient = HttpClients.createDefault();
+        //
+//        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
+        return httpclient;
+    }
+    //
+    private HttpUriRequest getHttpRequest(String url, Map<String, String> map, Map<String, Integer> timeoutMap) {
+        int connectTimeout = timeoutMap.get("connectTimeout");
+        int requestTimeout = timeoutMap.get("requestTimeout");
+        int socketTimeout = timeoutMap.get("socketTimeout");
+//        System.out.println("core connectTimeout="+connectTimeout);
+//        System.out.println("core requestTimeout="+requestTimeout);
+//        System.out.println("core socketTimeout="+socketTimeout);
+
+        List<NameValuePair> params = new ArrayList<NameValuePair>();
+        Set<Map.Entry<String, String>> entrySet = map.entrySet();
+        for (Map.Entry<String, String> e : entrySet) {
+            String name = e.getKey();
+            String value = e.getValue();
+            NameValuePair pair = new BasicNameValuePair(name, value);
+            params.add(pair);
+        }
+        //
+        RequestConfig requestConfig = RequestConfig.custom()
+                .setConnectTimeout(connectTimeout).setConnectionRequestTimeout(requestTimeout)
+                .setSocketTimeout(socketTimeout).build();
+        HttpUriRequest httpGet = RequestBuilder.get().setUri(url)
+                .addParameters(params.toArray(new BasicNameValuePair[params.size()]))
+                .setConfig(requestConfig).build();
+        return httpGet;
+    }
+    //
+    private HttpGet getHttpRequest(String url, Map<String, Integer> timeoutMap) {
+        int connectTimeout = timeoutMap.get("connectTimeout");
+        int requestTimeout = timeoutMap.get("requestTimeout");
+        int socketTimeout = timeoutMap.get("socketTimeout");
+
+        HttpGet httpGet = new HttpGet(url);
+        //设置超时时间
+        RequestConfig requestConfig = RequestConfig.custom()
+                .setConnectTimeout(connectTimeout).setConnectionRequestTimeout(requestTimeout)
+                .setSocketTimeout(socketTimeout).build();
+        httpGet.setConfig(requestConfig);
+        return httpGet;
+    }
+
+    //test
+    private void get() {
+//        CloseableHttpClient httpclient = HttpClients.createDefault();
+//        try {
+//            // 创建httpget.
+//            HttpGet httpget = new HttpGet(httpIp + "/token/getToken?userId=20210501&timestamp=45546546454&random=1156&sign=7fa431325504e01e9fa87ed0e274c40c");
+//            System.out.println("executing request " + httpget.getURI());
+//            // 执行get请求.
+//            CloseableHttpResponse response = httpclient.execute(httpget);
+//            try {
+//                // 获取响应实体
+//                HttpEntity entity = response.getEntity();
+//                System.out.println("--------------------------------------");
+//                // 打印响应状态
+//                System.out.println(response.getStatusLine());
+//                if (entity != null) {
+//                    // 打印响应内容长度
+//                    System.out.println("Response content length: " + entity.getContentLength());
+//                    // 打印响应内容
+//                    System.out.println("Response content: " + EntityUtils.toString(entity));
+//                }
+//                System.out.println("------------------------------------");
+//            } finally {
+//                response.close();
+//            }
+//        } catch (ClientProtocolException e) {
+//            e.printStackTrace();
+//        } catch (ParseException e) {
+//            e.printStackTrace();
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//        } finally {
+//            // 关闭连接,释放资源
+//            try {
+//                httpclient.close();
+//            } catch (IOException e) {
+//                e.printStackTrace();
+//            }
+//        }
+    }
+
+
+    private void getRequest() throws IOException {
+//        //1.打开浏览器
+//        CloseableHttpClient httpClient = HttpClients.createDefault();
+//        //2.声明get请求
+//        HttpGet httpGet = new HttpGet(httpIp + "/token/getToken?userId=20210501&timestamp=45546546454&random=1156&sign=7fa431325504e01e9fa87ed0e274c40c");
+//        //3.发送请求
+//        CloseableHttpResponse response = httpClient.execute(httpGet);
+//        System.out.println("StatusCode=" + response.getStatusLine().getStatusCode());
+//        //4.判断状态码
+//        if (response.getStatusLine().getStatusCode() == 200) {
+//            HttpEntity entity = response.getEntity();
+//            //使用工具类EntityUtils,从响应中取出实体表示的内容并转换成字符串
+//            String string = EntityUtils.toString(entity, "utf-8");
+//            System.out.println(string);
+//        }
+//        //5.关闭资源
+//        response.close();
+//        httpClient.close();
+    }
+}

+ 68 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/utils/MathUtil.java

@@ -0,0 +1,68 @@
+package com.huimv.admin.device.utils;
+
+import org.springframework.stereotype.Component;
+
+import java.text.NumberFormat;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+public class MathUtil {
+
+    public String formatBit(float num, int bit) {
+        // 创建一个数值格式化对象
+        NumberFormat numberFormat = NumberFormat.getInstance();
+        // 设置精确到小数点后2位
+        numberFormat.setMaximumFractionDigits(bit);
+        return numberFormat.format(num);
+    }
+
+    public String formatBit(float num) {
+        return String.valueOf(num);
+    }
+
+    //计算比率
+    public String countRate(float num, int bit) {
+        // 创建一个数值格式化对象
+        NumberFormat numberFormat = NumberFormat.getInstance();
+        // 设置精确到小数点后2位
+        numberFormat.setMaximumFractionDigits(bit);
+        return numberFormat.format(num * 100);//所占百分比
+    }
+
+    //计算占比
+    public String countRate(float num, float total,int bit) {
+        // 创建一个数值格式化对象
+        NumberFormat numberFormat = NumberFormat.getInstance();
+        // 设置精确到小数点后2位
+        numberFormat.setMaximumFractionDigits(bit);
+        //所占百分比
+        return numberFormat.format((float)  num/ (float)total* 100);
+    }
+
+    //格式化
+    public String format(float num, int bit) {
+        // 创建一个数值格式化对象
+        NumberFormat numberFormat = NumberFormat.getInstance();
+        // 设置精确到小数点后2位
+        numberFormat.setMaximumFractionDigits(bit);
+        return numberFormat.format(num * 100);//所占百分比
+    }
+
+    //格式化
+    public String format(float num, float total,int bit) {
+        // 创建一个数值格式化对象
+        NumberFormat numberFormat = NumberFormat.getInstance();
+        // 设置精确到小数点后2位
+        numberFormat.setMaximumFractionDigits(bit);
+        //所占百分比
+        return numberFormat.format((float)  num/ (float)total* 100);
+    }
+
+}

+ 214 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/utils/SnowflakeIdWorker.java

@@ -0,0 +1,214 @@
+package com.huimv.admin.device.utils;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+public class SnowflakeIdWorker {
+    // ==============================Fields===========================================
+    /**
+     * 开始时间截 (2015-01-01)
+     */
+    private final long twepoch = 1420041600000L;
+    /**
+     * 机器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;
+    //==============================Constructors=====================================
+
+    /**
+     * 构造函数
+     *
+     * @param workerId     工作ID (0~31)
+     * @param datacenterId 数据中心ID (0~31)
+     */
+    public SnowflakeIdWorker(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;
+    }
+
+    /**
+     * @Method      : newId
+     * @Description : 
+     * @Params      : []
+     * @Return      : long
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2021/12/16       
+     * @Time        : 20:37
+     */
+    public synchronized long newId() {
+        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();
+    }
+
+    //==============================Test=============================================
+
+    /**
+     * 测试
+     */
+    public static void main(String[] args) {
+        SnowflakeIdWorker idWorker = new SnowflakeIdWorker(0, 0);
+        for (int i = 0; i < 5; i++) {
+            long id = idWorker.nextId();
+            System.out.println(Long.toBinaryString(id));
+            System.out.println(id);
+        }
+        System.out.println("");
+        SnowflakeIdWorker idWorker1 = new SnowflakeIdWorker(1, 0);
+        for (int i = 0; i < 5; i++) {
+            long id = idWorker1.nextId();
+            System.out.println(Long.toBinaryString(id));
+            System.out.println(id);
+        }
+        long abc = 921133285172576260L;
+        System.out.println("abc>>"+abc);
+    }
+}

+ 36 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/device/utils/TextUtil.java

@@ -0,0 +1,36 @@
+package com.huimv.admin.device.utils;
+
+import org.springframework.stereotype.Component;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Base64;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+public class TextUtil {
+
+    //转义符处理
+    public String translateSymbol(String data) throws UnsupportedEncodingException {
+        return decode(data.replace("data=","").replace("%3D","="));
+    }
+
+    //base64编码
+    public String encode(String text) throws UnsupportedEncodingException {
+        final Base64.Encoder encoder = Base64.getEncoder();
+        final byte[] textByte = text.replaceAll(" ", "").getBytes("UTF-8");
+        return encoder.encodeToString(textByte);
+    }
+
+    //base64解码
+    public String decode(String encodedText) throws UnsupportedEncodingException {
+        final Base64.Decoder decoder = Base64.getDecoder();
+        return new String(decoder.decode(encodedText.toString().replace("\r\n", "")), "UTF-8");
+    }
+}

+ 26 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/config/MybatisPlusConfig.java

@@ -0,0 +1,26 @@
+package com.huimv.admin.system.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class MybatisPlusConfig {
+
+    /**
+     * 分页插件
+     */
+//    @Bean
+//    public PaginationInterceptor paginationInterceptor() {
+//        return new PaginationInterceptor();
+//    }
+
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+        return interceptor;
+    }
+}

+ 65 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/AccountController.java

@@ -0,0 +1,65 @@
+package com.huimv.admin.system.controller;
+
+
+import com.huimv.admin.system.entity.Account;
+import com.huimv.admin.system.service.IAccountService;
+import com.huimv.common.utils.Result;
+import com.huimv.common.utils.ResultCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@RestController
+@RequestMapping("/account")
+public class AccountController {
+    @Autowired
+    private IAccountService iAccountService;
+
+    @RequestMapping("/new")
+    public Result newAccount(@RequestParam(name = "userId") Integer userId){
+        return iAccountService.newAccount(userId);
+    }
+
+    @RequestMapping("/cancel")
+    public Result cancelAccount(@RequestParam(name = "id") Integer id,
+                                @RequestParam(name = "accountStatus") Integer accountStatus){
+        return iAccountService.cancelAccount(id,accountStatus);
+    }
+
+    @RequestMapping("/remove")
+    public Result removeAccount(@RequestParam(name = "ids") List<Integer> ids){
+        return  iAccountService.removeAccount(ids);
+    }
+
+
+    @RequestMapping("/list")
+    public Result listAccount(){
+        return iAccountService.findAll();
+    }
+
+    @RequestMapping("/setAccountStatus")
+    public Result setAccountStatus(@RequestParam(name = "ids") List<Integer> ids, @RequestParam(name = "status") Integer status){
+        /* 设置账号状态 */
+        return iAccountService.setAccountStatus(ids,status);
+    }
+
+    @PostMapping("/update")
+    public Result update(@RequestBody Account account){
+        /* 设置账号状态 */
+        return new Result(ResultCode.SUCCESS, iAccountService.updateById(account));
+    }
+
+
+    @GetMapping("/findOne")
+    public Result findOne(Integer id){
+        return new Result(ResultCode.SUCCESS, iAccountService.getById(id));
+    }
+
+
+
+}

+ 92 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/AppAuthorizeController.java

@@ -0,0 +1,92 @@
+package com.huimv.admin.system.controller;
+
+import com.huimv.admin.system.entity.AppSysMenu;
+import com.huimv.admin.system.service.IAppAuthorizeService;
+import com.huimv.admin.system.service.IAppSysMenuService;
+import com.huimv.common.utils.Result;
+import com.huimv.common.utils.ResultCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping(value = "/app/auth")
+public class AppAuthorizeController {
+
+    @Autowired
+    IAppAuthorizeService iAuthorizeService;
+    @Autowired
+    IAppSysMenuService iMenuService;
+
+    @PostMapping("/saveAccountGroup")
+    public Result saveAccountGroup(@RequestBody Map<String, String> map){
+        /*
+         * 保存账号关联权限组数据
+         */
+        String accountId = map.get("accountId");
+        String groupIds = map.get("groupIds");
+        return iAuthorizeService.saveAccountGroup(accountId,groupIds);
+    }
+
+    @PostMapping("/saveGroupMenu")
+    public Result saveGroupMenu(@RequestBody Map<String, String> map){
+        /*
+         * 保存权限组关联菜单数据
+         */
+        String groupId = map.get("groupId");
+        String menuIds = map.get("menuIds");
+        return iAuthorizeService.saveGroupMenu(groupId,menuIds);
+    }
+
+    @RequestMapping("/getGroupByAccount")
+    public Result getGroupByAccount(@RequestParam(name = "accountId", required = true) String accountId){
+        /*
+         * 根据账号获取权限组
+         */
+        return iAuthorizeService.getGroupByAccount (accountId);
+    }
+
+    @GetMapping("/getMenuByGroup")
+    public Result getMenuByGroup(String groupId){
+        /*
+         * 根据权限组获取菜单
+         */
+        return iAuthorizeService.getMenuByGroup(groupId);
+    }
+
+    @RequestMapping("/getMyMenu")
+    public Result getMyMenuAndButton(@RequestParam(name = "userId", required = true) String userId){
+        /*
+         * 获取用户的菜单数据
+         */
+        List<AppSysMenu> myMenu = iAuthorizeService.getMyMenuAll(userId);
+        List<Map> list = iMenuService.optimizeListUtil(0,myMenu);
+        return new Result(ResultCode.SUCCESS,list);
+    }
+//    //获取菜单-多级
+//    @RequestMapping("/getMyMenuMultilevel")
+//    public Result getMyMenuMultilevel(@RequestParam(name = "userId", required = true) String userId){
+//        return new Result(ResultCode.SUCCESS,iAuthorizeService.getMyMenuMultilevel(userId));
+//    }
+
+
+    @GetMapping("/getMyButton")
+    public Result getMyButton(@RequestParam(name = "userId", required = true) Integer userId){
+        /*
+         * 获取用户的菜单数据
+         */
+      List list = iAuthorizeService.getMyButton(userId);
+        return new Result(ResultCode.SUCCESS,list);
+    }
+
+
+    @GetMapping("/getAcountByGroup")
+    public Result getAccountByGroup(String groupId){
+        /*
+         * 根据权限组获取菜单
+         */
+        return iAuthorizeService.getAccountByGroup(groupId);
+    }
+}

+ 46 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/AppMenuController.java

@@ -0,0 +1,46 @@
+package com.huimv.admin.system.controller;
+
+import com.huimv.admin.system.entity.AppSysMenu;
+import com.huimv.admin.system.service.IAppSysMenuService;
+import com.huimv.common.token.TokenSign;
+import com.huimv.common.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+@RequestMapping("/app/menu")
+public class AppMenuController {
+    @Autowired
+    private IAppSysMenuService menuService;
+
+    @PostMapping("/add")
+    public Result addMenu(@RequestBody AppSysMenu menu , HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+
+        return menuService.addMenu(menu,userId);
+    }
+
+
+    @PostMapping("/edit")
+    public Result editMenu(@RequestBody AppSysMenu menu){
+        return menuService.editMenu(menu);
+    }
+
+
+    @RequestMapping("/remove")
+    public Result removeMenu(@RequestParam(name = "menuId") Integer menuId){
+        return menuService.removeMenu(menuId);
+    }
+
+    @PostMapping("/list")
+    public Result optimizeList() {
+        return menuService.optimizeList();
+    }
+
+    @PostMapping("/list1")
+    public Result list1() {
+        return menuService.list1();
+    }
+}

+ 57 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/AppSysGroupController.java

@@ -0,0 +1,57 @@
+package com.huimv.admin.system.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huimv.admin.system.entity.AppSysAccountGroup;
+import com.huimv.admin.system.entity.AppSysGroup;
+import com.huimv.admin.system.service.IAppSysAccountGroupService;
+import com.huimv.admin.system.service.IAppSysGroupService;
+import com.huimv.admin.system.service.ISysAccountMultilevelService;
+import com.huimv.common.token.TokenSign;
+import com.huimv.common.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+
+@RestController
+@RequestMapping("/app/group")
+public class AppSysGroupController {
+
+    @Autowired
+    private IAppSysGroupService groupService;
+
+    @Autowired
+    private IAppSysAccountGroupService accountGroupService;
+    @Autowired
+    private ISysAccountMultilevelService accountMultilevelService;
+
+    @PostMapping("/add")
+    public Result addGroup (@RequestBody AppSysGroup group, HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        return groupService.addGroup(group,userId);
+    }
+
+
+    @PostMapping("/edit")
+    public Result updateGroup(@RequestBody AppSysGroup group ){
+        return groupService.updateGroup( group);
+    }
+
+    @RequestMapping("/remove")
+    public Result removeGroup(@RequestParam("groupId") Integer groupId) {
+
+        accountGroupService.remove(new QueryWrapper<AppSysAccountGroup>().in("group_id",groupId));
+        return groupService.removeGroup(groupId);
+    }
+
+    @PostMapping("/list")
+    public IPage<AppSysGroup> listGroup(@RequestBody Map map , HttpServletRequest request) {
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        List<Integer> allChildId = accountMultilevelService.getAllChildId(userId);
+        return groupService.listGroup(map,allChildId);
+    }
+}

+ 92 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/AuthorizeController.java

@@ -0,0 +1,92 @@
+package com.huimv.admin.system.controller;
+
+import com.huimv.admin.system.entity.Menu;
+import com.huimv.admin.system.service.IAuthorizeService;
+import com.huimv.admin.system.service.IMenuService;
+import com.huimv.common.utils.Result;
+import com.huimv.common.utils.ResultCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping(value = "/auth")
+public class AuthorizeController {
+
+    @Autowired
+    IAuthorizeService iAuthorizeService;
+    @Autowired
+    IMenuService iMenuService;
+
+    @PostMapping("/saveAccountGroup")
+    public Result saveAccountGroup(@RequestBody Map<String, String> map){
+        /*
+         * 保存账号关联权限组数据
+         */
+        String accountId = map.get("accountId");
+        String groupIds = map.get("groupIds");
+        return iAuthorizeService.saveAccountGroup(accountId,groupIds);
+    }
+
+    @PostMapping("/saveGroupMenu")
+    public Result saveGroupMenu(@RequestBody Map<String, String> map){
+        /*
+         * 保存权限组关联菜单数据
+         */
+        String groupId = map.get("groupId");
+        String menuIds = map.get("menuIds");
+        return iAuthorizeService.saveGroupMenu(groupId,menuIds);
+    }
+
+    @RequestMapping("/getGroupByAccount")
+    public Result getGroupByAccount(@RequestParam(name = "accountId", required = true) String accountId){
+        /*
+         * 根据账号获取权限组
+         */
+        return iAuthorizeService.getGroupByAccount (accountId);
+    }
+
+    @GetMapping("/getMenuByGroup")
+    public Result getMenuByGroup(String groupId){
+        /*
+         * 根据权限组获取菜单
+         */
+        return iAuthorizeService.getMenuByGroup(groupId);
+    }
+
+    @RequestMapping("/getMyMenu")
+    public Result getMyMenuAndButton(@RequestParam(name = "userId", required = true) String userId){
+        /*
+         * 获取用户的菜单数据
+         */
+        List<Menu> myMenu = iAuthorizeService.getMyMenuAll(userId);
+        List<Map> list = iMenuService.optimizeListUtil(0,myMenu);
+        return new Result(ResultCode.SUCCESS,list);
+    }
+//    //获取菜单-多级
+//    @RequestMapping("/getMyMenuMultilevel")
+//    public Result getMyMenuMultilevel(@RequestParam(name = "userId", required = true) String userId){
+//        return new Result(ResultCode.SUCCESS,iAuthorizeService.getMyMenuMultilevel(userId));
+//    }
+
+
+    @GetMapping("/getMyButton")
+    public Result getMyButton(@RequestParam(name = "userId", required = true) Integer userId){
+        /*
+         * 获取用户的菜单数据
+         */
+      List list = iAuthorizeService.getMyButton(userId);
+        return new Result(ResultCode.SUCCESS,list);
+    }
+
+
+    @GetMapping("/getAcountByGroup")
+    public Result getAccountByGroup(String groupId){
+        /*
+         * 根据权限组获取菜单
+         */
+        return iAuthorizeService.getAccountByGroup(groupId);
+    }
+}

+ 49 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/ClientConfigController.java

@@ -0,0 +1,49 @@
+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.ClientConfig;
+import com.huimv.admin.system.service.IClientConfigService;
+import com.huimv.common.utils.Result;
+import com.huimv.common.utils.ResultCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/clientConfig")
+public class ClientConfigController {
+    @Autowired
+    private IClientConfigService clientConfigService;
+
+    @PostMapping("/add")
+    public Result add(@RequestBody ClientConfig clientConfig){
+        clientConfigService.save(clientConfig);
+        return new Result(10000,"添加成功",true);
+    }
+
+    @PostMapping("/update")
+    public Result update(@RequestBody ClientConfig clientConfig){
+        QueryWrapper<ClientConfig> farmId = new QueryWrapper<ClientConfig>().eq("farm_id", clientConfig.getFarmId());
+        ClientConfig one = clientConfigService.getOne(farmId);
+        if (ObjectUtil.isEmpty(one)){
+            clientConfigService.save(clientConfig);
+
+        }else {
+            clientConfigService.update(clientConfig,farmId);
+        }
+
+        return new Result(10000,"修改成功",true);
+    }
+
+    @GetMapping("/remove")
+    public Result remove(@RequestParam(name = "id") Integer id){
+        clientConfigService.removeById(id);
+        return new Result(10000,"删除成功",true);
+    }
+
+    @GetMapping("/list")
+    public Result list(@RequestParam(name = "farmId") Integer farmId){
+
+        return new Result(ResultCode.SUCCESS,  clientConfigService.getOne(new QueryWrapper<ClientConfig>().eq("farm_id", farmId)));
+    }
+}

+ 71 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/FarmController.java

@@ -0,0 +1,71 @@
+package com.huimv.admin.system.controller;
+
+
+import com.huimv.admin.system.entity.Farm;
+import com.huimv.admin.system.service.IFarmService;
+import com.huimv.common.token.TokenSign;
+import com.huimv.common.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+@RestController
+@RequestMapping("/farm")
+public class FarmController {
+
+
+    @Autowired
+    private IFarmService farmService;
+
+    @GetMapping("/getFarm")
+    public Result getFarm(HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        return  farmService.getFarm(userId);
+    }
+
+    @GetMapping("/getFarm2")
+    public Result getFarm2(HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        return  farmService.getFarm2(userId);
+    }
+
+
+    @PostMapping("/add")
+    public Result add(@RequestBody Farm farm, HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        if (userId != 1){
+            return new Result(10001,"该账号不能操作牧场",false);
+        }
+        return  farmService.add(farm);
+    }
+
+    @PostMapping("/edit")
+    public Result edit(@RequestBody Farm farm, HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        if (userId != 1){
+            return new Result(10001,"该账号不能操作牧场",false);
+        }
+        farmService.updateById(farm);
+        return new Result(10000,"修改成功",true);
+    }
+
+    @GetMapping("/remove")
+    public Result remove(@RequestParam(name = "ids") List<Integer> ids, HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        if (userId != 1){
+            return new Result(10001,"该账号不能操作牧场",false);
+        }
+        farmService.removeByIds(ids);
+        return new Result(10000,"删除成功",true);
+    }
+}

+ 192 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/LoginController.java

@@ -0,0 +1,192 @@
+package com.huimv.admin.system.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.admin.system.entity.Account;
+import com.huimv.admin.system.entity.BaseFarmX;
+import com.huimv.admin.system.entity.SysAccountMultilevel;
+import com.huimv.admin.system.service.IBaseFarmXService;
+import com.huimv.admin.system.service.ILoginService;
+import com.huimv.admin.system.session.AccessToken;
+import com.huimv.common.exception.ExceptionEnum;
+import com.huimv.common.exception.MiException;
+import com.huimv.common.token.TokenSign;
+import com.huimv.common.utils.Result;
+import com.huimv.common.utils.ResultCode;
+import com.huimv.common.utils.VerifyUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+@RestController
+@RequestMapping(value = "/my")
+public class LoginController {
+
+
+    @Autowired
+    ILoginService iLoginService;
+
+//    @Autowired
+//    RedisTemplate redisTemplate;
+
+    @RequestMapping(value = "/login", method = RequestMethod.POST)
+    public Result login(HttpServletRequest req, @RequestBody Map<String, String> map)  {
+
+
+        // 对密码加密
+//        Result result = iLoginService.login(accountName,         .getMD5Str(password));
+        String accountName = map.get("accountName");
+        String password = map.get("password");
+       /* String code = map.get("code");
+
+        String remoteHost = req.getRemoteHost();
+        String redisCode = redisTemplate.opsForValue().get(remoteHost);
+        if (redisCode == null) {
+            return  new Result(10005,"验证码过期,点击刷新",false);
+        }
+        if (!redisCode.equals(code.toUpperCase())) {
+            return  new Result(10006,"验证码错误,登录失败",false);
+        }*/
+        // 未对密码加密
+        Result result = iLoginService.login(accountName, password);
+        if(result.getCode() == 10000){
+
+            Account accountEntity = (Account) result.getData();
+            AccessToken accessToken = new AccessToken();
+            accessToken.setCreated(new Date());
+            accessToken.setAccountName(accountName);
+            accessToken.setCode(result.getCode());
+            accessToken.setMessage(result.getMessage());
+            String token = TokenSign.sign(accountName,accountEntity.getId());
+            accessToken.setToken(token);
+
+            accessToken.setId( accountEntity.getId());
+//            accessToken.setLoginIp(remoteHost);
+            return new Result(ResultCode.SUCCESS,accessToken);
+        }
+        return  result;
+    }
+
+    @RequestMapping("/logout")
+    public Result logout(@RequestParam(name = "accountName", required = true) String accountName, @RequestParam(name = "password", required = true) String password) {
+        return iLoginService.logout();
+    }
+
+
+    @Autowired
+    private RedisTemplate<String, String> redisTemplate;
+
+    @GetMapping("/send")
+    public void createImg(HttpServletRequest request, HttpServletResponse response)  {
+        try {
+            //设置响应类型,告诉浏览器输出的内容为图片
+            response.setContentType("image/jpeg");
+            //设置响应头信息,告诉浏览器不要缓存此内容
+            response.setHeader("Pragma", "No-cache");
+            response.setHeader("Cache-Control", "no-cache");
+            response.setDateHeader("Expire", 0);
+            VerifyUtil randomValidateCode = new VerifyUtil();
+            //输出验证码图片
+            String code = randomValidateCode.getRandcode(request, response);
+            System.out.println(code);
+            //将生成的随机验证码存放到redis中
+            String remoteHost = request.getRemoteHost();
+            redisTemplate.opsForValue().set(remoteHost,code,300, TimeUnit.SECONDS);
+        } catch (Exception e) {
+            System.out.println("获取验证码异常:"+e);
+            throw new MiException(ExceptionEnum.VERIFCATION_FAID);
+        }
+    }
+
+    //登录-多牧场
+    @PostMapping(value = "/loginMultilevel")
+    public Result loginMultilevel(HttpServletRequest req, @RequestBody Map<String, String> map)  {
+
+
+        String accountName = map.get("accountName");
+        String password = map.get("password");
+        String code = map.get("code");
+
+        String remoteHost = req.getRemoteHost();
+//        String redisCode = redisTemplate.opsForValue().get(remoteHost);
+//        if (redisCode == null) {
+//            return  new Result(10005,"验证码过期,点击刷新",false);
+//        }
+//        if (!redisCode.equals(code.toUpperCase())) {
+//            return  new Result(10006,"验证码错误,登录失败",false);
+//        }
+        // 未对密码加密
+        Result result = iLoginService.loginMultilevel(accountName, password);
+        if(result.getCode() == 10000){
+
+            SysAccountMultilevel accountEntity = (SysAccountMultilevel) result.getData();
+            Integer id = accountEntity.getId();
+
+            AccessToken accessToken = new AccessToken();
+            accessToken.setCreated(new Date());
+            accessToken.setAccountName(accountName);
+            accessToken.setCode(result.getCode());
+            accessToken.setMessage(result.getMessage());
+            String token = TokenSign.sign(accountName,id);
+            accessToken.setToken(token);
+
+            accessToken.setId(id);
+            accessToken.setLoginIp(remoteHost);
+            return new Result(ResultCode.SUCCESS,accessToken);
+        }
+        return  result;
+    }
+
+    //测试-token
+    @PostMapping(value = "/getToken")
+    public String getToken(HttpServletRequest req)  {
+        String token =  TokenSign.sign("superadmin",1);
+        return  token;
+    }
+
+    @Autowired
+    IBaseFarmXService baseFarmXService;
+
+    @PostMapping("/xadd")
+    public Result add(@RequestBody BaseFarmX baseFarmX){
+        baseFarmXService.save(baseFarmX);
+        return new Result(ResultCode.SUCCESS);
+    }
+
+
+    @GetMapping("/xremove")
+    public Result remove(@RequestParam(name = "id")Integer id){
+        baseFarmXService.removeById(id);
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    @PostMapping("/xupdate")
+    public Result update(@RequestBody BaseFarmX baseFarmX){
+        baseFarmXService.updateById(baseFarmX);
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    @GetMapping("/xlist")
+    public Result list(){
+
+        return new Result(ResultCode.SUCCESS,baseFarmXService.list());
+    }
+
+    @GetMapping("/xfarmList")
+    public Result farmList(@RequestParam(name = "id")Integer id){
+        QueryWrapper<BaseFarmX> wrapper = new QueryWrapper<>();
+        wrapper.eq("row_status",true);
+        if (id != null){
+            wrapper.ne("id",id);
+        }
+
+        return new Result(ResultCode.SUCCESS,baseFarmXService.list(wrapper));
+    }
+
+
+}

+ 46 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/MenuController.java

@@ -0,0 +1,46 @@
+package com.huimv.admin.system.controller;
+
+import com.huimv.admin.system.entity.Menu;
+import com.huimv.admin.system.service.IMenuService;
+import com.huimv.common.token.TokenSign;
+import com.huimv.common.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+@RequestMapping("/menu")
+public class MenuController {
+    @Autowired
+    private IMenuService menuService;
+
+    @PostMapping("/add")
+    public Result addMenu(@RequestBody Menu menu , HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+
+        return menuService.addMenu(menu,userId);
+    }
+
+
+    @PostMapping("/edit")
+    public Result editMenu(@RequestBody Menu menu){
+        return menuService.editMenu(menu);
+    }
+
+
+    @RequestMapping("/remove")
+    public Result removeMenu(@RequestParam(name = "menuId") Integer menuId){
+        return menuService.removeMenu(menuId);
+    }
+
+    @PostMapping("/list")
+    public Result optimizeList() {
+        return menuService.optimizeList();
+    }
+
+    @PostMapping("/list1")
+    public Result list1() {
+        return menuService.list1();
+    }
+}

+ 56 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/ProdFarmNameController.java

@@ -0,0 +1,56 @@
+package com.huimv.admin.system.controller;
+
+
+import com.huimv.admin.system.entity.ProdFarmName;
+import com.huimv.admin.system.service.IProdFarmNameService;
+import com.huimv.common.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-11-20
+ */
+@RestController
+@RequestMapping("/prodFarmName")
+public class ProdFarmNameController {
+    @Autowired
+    IProdFarmNameService farmNameService;
+
+    @GetMapping("/updatName")
+    public Result updatName(){
+        farmNameService.updatName();
+        return new Result(10000,"同步成功",true);
+    }
+
+   /* @PostMapping("/add")
+    public Result add(@RequestBody ProdFarmName farm){
+        farmNameService.save(farm);
+        return new Result(10000,"添加成功",true);
+    }*/
+
+    @PostMapping("/edit")
+    public Result edit(@RequestBody ProdFarmName farm){
+
+        farmNameService.updateById(farm);
+        return new Result(10000,"修改成功",true);
+    }
+
+    @GetMapping("/remove")
+    public Result remove(@RequestParam(name = "ids") List<Integer> ids){
+        farmNameService.removeByIds(ids);
+        return new Result(10000,"删除成功",true);
+    }
+
+    @PostMapping("/listFarmName")
+    public Result listFarmName(@RequestBody Map map){
+        return farmNameService.listPage(map);
+    }
+}

+ 92 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/ScreenAuthorizeController.java

@@ -0,0 +1,92 @@
+package com.huimv.admin.system.controller;
+
+import com.huimv.admin.system.entity.ScreenSysMenu;
+import com.huimv.admin.system.service.IScreenAuthorizeService;
+import com.huimv.admin.system.service.IScreenSysMenuService;
+import com.huimv.common.utils.Result;
+import com.huimv.common.utils.ResultCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping(value = "/screen/auth")
+public class ScreenAuthorizeController {
+
+    @Autowired
+    IScreenAuthorizeService iAuthorizeService;
+    @Autowired
+    IScreenSysMenuService iMenuService;
+
+    @PostMapping("/saveAccountGroup")
+    public Result saveAccountGroup(@RequestBody Map<String, String> map){
+        /*
+         * 保存账号关联权限组数据
+         */
+        String accountId = map.get("accountId");
+        String groupIds = map.get("groupIds");
+        return iAuthorizeService.saveAccountGroup(accountId,groupIds);
+    }
+
+    @PostMapping("/saveGroupMenu")
+    public Result saveGroupMenu(@RequestBody Map<String, String> map){
+        /*
+         * 保存权限组关联菜单数据
+         */
+        String groupId = map.get("groupId");
+        String menuIds = map.get("menuIds");
+        return iAuthorizeService.saveGroupMenu(groupId,menuIds);
+    }
+
+    @RequestMapping("/getGroupByAccount")
+    public Result getGroupByAccount(@RequestParam(name = "accountId", required = true) String accountId){
+        /*
+         * 根据账号获取权限组
+         */
+        return iAuthorizeService.getGroupByAccount (accountId);
+    }
+
+    @GetMapping("/getMenuByGroup")
+    public Result getMenuByGroup(String groupId){
+        /*
+         * 根据权限组获取菜单
+         */
+        return iAuthorizeService.getMenuByGroup(groupId);
+    }
+
+    @RequestMapping("/getMyMenu")
+    public Result getMyMenuAndButton(@RequestParam(name = "userId", required = true) String userId){
+        /*
+         * 获取用户的菜单数据
+         */
+        List<ScreenSysMenu> myMenu = iAuthorizeService.getMyMenuAll(userId);
+        List<Map> list = iMenuService.optimizeListUtil(0,myMenu);
+        return new Result(ResultCode.SUCCESS,list);
+    }
+//    //获取菜单-多级
+//    @RequestMScreening("/getMyMenuMultilevel")
+//    public Result getMyMenuMultilevel(@RequestParam(name = "userId", required = true) String userId){
+//        return new Result(ResultCode.SUCCESS,iAuthorizeService.getMyMenuMultilevel(userId));
+//    }
+
+
+    @GetMapping("/getMyButton")
+    public Result getMyButton(@RequestParam(name = "userId", required = true) Integer userId){
+        /*
+         * 获取用户的菜单数据
+         */
+      List list = iAuthorizeService.getMyButton(userId);
+        return new Result(ResultCode.SUCCESS,list);
+    }
+
+
+    @GetMapping("/getAcountByGroup")
+    public Result getAccountByGroup(String groupId){
+        /*
+         * 根据权限组获取菜单
+         */
+        return iAuthorizeService.getAccountByGroup(groupId);
+    }
+}

+ 46 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/ScreenMenuController.java

@@ -0,0 +1,46 @@
+package com.huimv.admin.system.controller;
+
+import com.huimv.admin.system.entity.ScreenSysMenu;
+import com.huimv.admin.system.service.IScreenSysMenuService;
+import com.huimv.common.token.TokenSign;
+import com.huimv.common.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+@RequestMapping("/screen/menu")
+public class ScreenMenuController {
+    @Autowired
+    private IScreenSysMenuService menuService;
+
+    @PostMapping("/add")
+    public Result addMenu(@RequestBody ScreenSysMenu menu , HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+
+        return menuService.addMenu(menu,userId);
+    }
+
+
+    @PostMapping("/edit")
+    public Result editMenu(@RequestBody ScreenSysMenu menu){
+        return menuService.editMenu(menu);
+    }
+
+
+    @RequestMapping("/remove")
+    public Result removeMenu(@RequestParam(name = "menuId") Integer menuId){
+        return menuService.removeMenu(menuId);
+    }
+
+    @PostMapping("/list")
+    public Result optimizeList() {
+        return menuService.optimizeList();
+    }
+
+    @PostMapping("/list1")
+    public Result list1() {
+        return menuService.list1();
+    }
+}

+ 57 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/ScreenSysGroupController.java

@@ -0,0 +1,57 @@
+package com.huimv.admin.system.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huimv.admin.system.entity.ScreenSysAccountGroup;
+import com.huimv.admin.system.entity.ScreenSysGroup;
+import com.huimv.admin.system.service.IScreenSysAccountGroupService;
+import com.huimv.admin.system.service.IScreenSysGroupService;
+import com.huimv.admin.system.service.ISysAccountMultilevelService;
+import com.huimv.common.token.TokenSign;
+import com.huimv.common.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+
+@RestController
+@RequestMapping("/screen/group")
+public class ScreenSysGroupController {
+
+    @Autowired
+    private IScreenSysGroupService groupService;
+
+    @Autowired
+    private IScreenSysAccountGroupService accountGroupService;
+    @Autowired
+    private ISysAccountMultilevelService accountMultilevelService;
+
+    @PostMapping("/add")
+    public Result addGroup (@RequestBody ScreenSysGroup group, HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        return groupService.addGroup(group,userId);
+    }
+
+
+    @PostMapping("/edit")
+    public Result updateGroup(@RequestBody ScreenSysGroup group ){
+        return groupService.updateGroup( group);
+    }
+
+    @RequestMapping("/remove")
+    public Result removeGroup(@RequestParam("groupId") Integer groupId) {
+
+        accountGroupService.remove(new QueryWrapper<ScreenSysAccountGroup>().in("group_id",groupId));
+        return groupService.removeGroup(groupId);
+    }
+
+    @PostMapping("/list")
+    public IPage<ScreenSysGroup> listGroup(@RequestBody Map map , HttpServletRequest request) {
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        List<Integer> allChildId = accountMultilevelService.getAllChildId(userId);
+        return groupService.listGroup(map,allChildId);
+    }
+}

+ 167 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/SysAccountMultilevelController.java

@@ -0,0 +1,167 @@
+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.entity.dto.SysAccountMultilevelDto;
+import com.huimv.admin.system.entity.dto.UpdateAccountDto;
+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;
+import com.huimv.common.utils.Result;
+import com.huimv.common.utils.ResultCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+@RestController
+@RequestMapping("/accountMultilevel")
+public class SysAccountMultilevelController {
+    @Autowired
+    private ISysAccountMultilevelService accountMultilevelService;
+
+    @Autowired
+    private IAccountGroupService accountGroupService;
+
+    @Autowired
+    private IBaseScreenCameraAccountService baseScreenCameraAccountService;
+
+
+    @PostMapping("/list")
+    public Result list(@RequestBody Map map , HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        int pageNum = (Integer)map.get("pageNum");
+        int pageSize = (Integer)map.get("pageSize");
+        String searchStr = (String)map.get("searchStr");
+
+        return accountMultilevelService.findUserAccount(searchStr,pageNum,pageSize,userId);
+
+    }
+
+    @PostMapping("/listSubordinate")
+    public Result listSubordinate(@RequestBody Map map , HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        int pageNum = (Integer)map.get("pageNum");
+        int pageSize = (Integer)map.get("pageSize");
+        String searchStr = (String)map.get("searchStr");
+
+        return accountMultilevelService.listSubordinate(searchStr,pageNum,pageSize,userId);
+
+    }
+
+    @PostMapping("/add")
+    public Result add(@RequestBody SysAccountMultilevel sysAccountMultilevel , HttpServletRequest request){
+
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        return accountMultilevelService.add(sysAccountMultilevel,userId);
+
+    }
+
+    @PostMapping("/addApp")
+    public Result addApp(@RequestBody SysAccountMultilevelDto sysAccountMultilevel , HttpServletRequest request){
+
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        return accountMultilevelService.addApp(sysAccountMultilevel,userId);
+
+    }
+    @PostMapping("/updateApp")
+    public Result updateApp(@RequestBody SysAccountMultilevelDto sysAccountMultilevel){
+        accountMultilevelService.updateApp(sysAccountMultilevel);
+
+        return new Result(10000,"修改成功",true);
+
+    }
+
+    @PostMapping("/update")
+    public Result update(@RequestBody SysAccountMultilevel sysAccountMultilevel){
+        accountMultilevelService.updateById(sysAccountMultilevel);
+
+        return new Result(10000,"修改成功",true);
+
+    }
+
+    @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);
+
+    }
+
+    @GetMapping("/setAccountStatus")
+    public Result setAccountStatus(@RequestParam(name = "ids") List<Integer> ids, @RequestParam(name = "status") Integer status){
+        /* 设置账号状态 */
+        return accountMultilevelService.setAccountStatus(ids,status);
+    }
+
+    @GetMapping("/findOne")
+    public Result findOne(Integer id){
+        return new Result(ResultCode.SUCCESS, accountMultilevelService.getById(id));
+    }
+
+
+    @GetMapping("/getLastFarmId")
+    public Result getLastFarmId(HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        return  accountMultilevelService.getLastFarmId(userId);
+    }
+
+    @GetMapping("/updateVideoId")
+    public Result updateVideoId(@RequestParam(name = "cameraId") Integer cameraId ,
+                                @RequestParam(name = "farmId") Integer farmId ,
+                                HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        BaseScreenCameraAccount cameraAccount = baseScreenCameraAccountService.getOne(new QueryWrapper<BaseScreenCameraAccount>().eq("farm_id", farmId).eq("account_id",userId));
+
+        if (ObjectUtil.isEmpty(cameraAccount)){
+            BaseScreenCameraAccount cameraAccount1 = new BaseScreenCameraAccount();
+            cameraAccount1.setAccountId(userId);
+            cameraAccount1.setCameraId(cameraId);
+            cameraAccount1.setFarmId(farmId);
+            baseScreenCameraAccountService.save(cameraAccount1);
+        }else {
+            cameraAccount.setCameraId(cameraId);
+            baseScreenCameraAccountService.updateById(cameraAccount);
+        }
+
+
+        return new Result(10000,"修改成功",true);
+    }
+
+    //修改密码
+    @PostMapping("/updatePassword")
+    public Result updatePassword(@RequestBody UpdateAccountDto account){
+
+        SysAccountMultilevel accountMultilevel = accountMultilevelService.getOne(new QueryWrapper<SysAccountMultilevel>().eq("account", account.getAccount()).eq("password", account.getPassword()));
+
+        if (ObjectUtil.isEmpty(accountMultilevel)){
+            return new Result(10001,"账号或密码有误,请检查",false);
+        }
+        if (accountMultilevel.getPassword().equals(account.getNewPassword())){
+            return new Result(10001,"新密码与旧密码相同,请检查",false);
+        }
+
+        accountMultilevel.setPassword(account.getNewPassword());
+        accountMultilevelService.updateById(accountMultilevel);
+        return new Result(10000,"修改成功",true);
+    }
+
+
+}

+ 57 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/SysGroupController.java

@@ -0,0 +1,57 @@
+package com.huimv.admin.system.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.huimv.admin.system.entity.AccountGroup;
+import com.huimv.admin.system.entity.Group;
+import com.huimv.admin.system.service.IAccountGroupService;
+import com.huimv.admin.system.service.IGroupService;
+import com.huimv.admin.system.service.ISysAccountMultilevelService;
+import com.huimv.common.token.TokenSign;
+import com.huimv.common.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+
+@RestController
+@RequestMapping("/group")
+public class SysGroupController {
+
+    @Autowired
+    private IGroupService groupService;
+
+    @Autowired
+    private IAccountGroupService accountGroupService;
+    @Autowired
+    private ISysAccountMultilevelService accountMultilevelService;
+
+    @PostMapping("/add")
+    public Result addGroup (@RequestBody Group group, HttpServletRequest request){
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        return groupService.addGroup(group,userId);
+    }
+
+
+    @PostMapping("/edit")
+    public Result updateGroup(@RequestBody Group group ){
+        return groupService.updateGroup( group);
+    }
+
+    @RequestMapping("/remove")
+    public Result removeGroup(@RequestParam("groupId") Integer groupId) {
+
+        accountGroupService.remove(new QueryWrapper<AccountGroup>().in("group_id",groupId));
+        return groupService.removeGroup(groupId);
+    }
+
+    @PostMapping("/list")
+    public IPage<Group> listGroup(@RequestBody Map map , HttpServletRequest request) {
+        Integer userId = TokenSign.getMemberIdByJwtToken(request);
+        List<Integer> allChildId = accountMultilevelService.getAllChildId(userId);
+        return groupService.listGroup(map,allChildId);
+    }
+}

+ 46 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/controller/SysUserController.java

@@ -0,0 +1,46 @@
+package com.huimv.admin.system.controller;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.admin.system.entity.User;
+import com.huimv.admin.system.service.IUserService;
+import com.huimv.common.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/user")
+public class SysUserController {
+    @Autowired
+    private IUserService iUserService;
+
+    @PostMapping("/add")
+    public Result addUser(@RequestBody User user){
+        return  iUserService.addUser(user);
+    }
+
+    @PostMapping("/edit")
+    public Result updateUser(@RequestBody User user){
+        return iUserService.updateUser(user);
+    }
+
+    @RequestMapping("/remove")
+    public Result removeUser(@RequestParam("userIds") List<Integer> userIds) {
+
+        return iUserService.removeUser(userIds);
+    }
+
+
+
+    @PostMapping("/list")
+    public JSONObject listUser(@RequestBody Map map) {
+        int pageNum = (Integer)map.get("pageNum");
+        int pageSize = (Integer)map.get("pageSize");
+        String searchStr = (String)map.get("searchStr");
+        return iUserService.findUserAccount(searchStr,pageNum,pageSize);
+    }
+
+}

+ 47 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/Account.java

@@ -0,0 +1,47 @@
+package com.huimv.admin.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("sys_account")
+public class Account extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String accountName;
+
+    private String password;
+
+    private Integer accountStatus;
+
+    private String remark;
+
+    private String userId;
+
+    private String mobile;
+
+    private String color;
+
+    private Boolean mode;
+
+
+}

+ 35 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/AccountGroup.java

@@ -0,0 +1,35 @@
+package com.huimv.admin.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("sys_account_group")
+public class AccountGroup extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private Integer accountId;
+
+    private Integer groupId;
+
+
+}

+ 33 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/AppSysAccountGroup.java

@@ -0,0 +1,33 @@
+package com.huimv.admin.system.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 2022-03-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class AppSysAccountGroup extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private Integer accountId;
+
+    private Integer groupId;
+
+
+}

+ 35 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/AppSysGroup.java

@@ -0,0 +1,35 @@
+package com.huimv.admin.system.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 2022-03-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class AppSysGroup extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String groupName;
+
+    private String remark;
+
+    private Integer accountId;
+
+
+}

+ 33 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/AppSysGroupMenu.java

@@ -0,0 +1,33 @@
+package com.huimv.admin.system.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 2022-03-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class AppSysGroupMenu extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private Integer groupId;
+
+    private Integer menuId;
+
+
+}

+ 43 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/AppSysMenu.java

@@ -0,0 +1,43 @@
+package com.huimv.admin.system.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 2022-03-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class AppSysMenu extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String title;
+
+    private String url;
+
+    private String remark;
+
+    private Integer parentId;
+
+    private Integer sort;
+
+    private Integer weight;
+
+    private String permission;
+
+
+}

+ 35 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/BaseFarmX.java

@@ -0,0 +1,35 @@
+package com.huimv.admin.system.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-12-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class BaseFarmX extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String name;
+
+    private String url;
+
+    private Boolean rowStatus;
+
+
+}

+ 35 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/BaseScreenCameraAccount.java

@@ -0,0 +1,35 @@
+package com.huimv.admin.system.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-12-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class BaseScreenCameraAccount extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private Integer farmId;
+
+    private Integer cameraId;
+
+    private Integer accountId;
+
+
+}

+ 37 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/ClientConfig.java

@@ -0,0 +1,37 @@
+package com.huimv.admin.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("base_client_config")
+public class ClientConfig extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private Integer farmId;
+
+    private String topName;
+
+    private String bottomName;
+
+
+}

+ 38 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/Farm.java

@@ -0,0 +1,38 @@
+package com.huimv.admin.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("base_farm")
+public class Farm extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String farmName;
+
+    private String location;
+
+    private String frontLocation;
+
+
+    private Boolean rowStatus;
+}

+ 37 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/Group.java

@@ -0,0 +1,37 @@
+package com.huimv.admin.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("sys_group")
+public class Group extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String groupName;
+
+    private String remark;
+
+    private Integer accountId;
+
+
+}

+ 35 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/GroupMenu.java

@@ -0,0 +1,35 @@
+package com.huimv.admin.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("sys_group_menu")
+public class GroupMenu extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private Integer groupId;
+
+    private Integer menuId;
+
+
+}

+ 50 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/Menu.java

@@ -0,0 +1,50 @@
+package com.huimv.admin.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("sys_menu")
+public class Menu extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String title;
+
+    private String url;
+
+    private String remark;
+
+    private Integer parentId;
+
+    private Integer sort;
+
+    private Integer weight;
+
+    private String permission;
+
+
+
+//    private List<Menu> children;
+
+
+
+}

+ 39 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/ProdFarmName.java

@@ -0,0 +1,39 @@
+package com.huimv.admin.system.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-20
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class ProdFarmName extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String farmName;
+
+    private Integer farmId;
+
+    private String erpFarmName;
+
+    private String erpShortName;
+
+
+    private String erpFarmId;
+
+}

+ 33 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/ScreenSysAccountGroup.java

@@ -0,0 +1,33 @@
+package com.huimv.admin.system.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 2022-03-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class ScreenSysAccountGroup extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private Integer accountId;
+
+    private Integer groupId;
+
+
+}

+ 35 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/ScreenSysGroup.java

@@ -0,0 +1,35 @@
+package com.huimv.admin.system.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 2022-03-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class ScreenSysGroup extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String groupName;
+
+    private String remark;
+
+    private Integer accountId;
+
+
+}

+ 33 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/ScreenSysGroupMenu.java

@@ -0,0 +1,33 @@
+package com.huimv.admin.system.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 2022-03-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class ScreenSysGroupMenu extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private Integer groupId;
+
+    private Integer menuId;
+
+
+}

+ 43 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/ScreenSysMenu.java

@@ -0,0 +1,43 @@
+package com.huimv.admin.system.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 2022-03-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class ScreenSysMenu extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String title;
+
+    private String url;
+
+    private String remark;
+
+    private Integer parentId;
+
+    private Integer sort;
+
+    private Integer weight;
+
+    private String permission;
+
+
+}

+ 50 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/SysAccountMultilevel.java

@@ -0,0 +1,50 @@
+package com.huimv.admin.system.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-10-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class SysAccountMultilevel extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String account;
+
+    private String password;
+
+    private Integer pid;
+
+    private String pids;
+
+    private Integer accountStatus;
+
+    private String farmIds;
+
+    private String color;
+
+    private Boolean mode;
+
+    private Integer lastFarmId;
+
+    private String userName;
+
+    private Integer screenVideo;
+
+}

+ 47 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/User.java

@@ -0,0 +1,47 @@
+package com.huimv.admin.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("sys_user")
+public class User extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String userName;
+
+    private Integer male;
+
+    private String birthday;
+
+    private String mobile;
+
+    private String address;
+
+    private String job;
+
+    private String remark;
+
+    private String userId;
+
+
+}

+ 106 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/dto/MenuDto.java

@@ -0,0 +1,106 @@
+package com.huimv.admin.system.entity.dto;
+
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.huimv.admin.system.entity.Menu;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+public class MenuDto extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+
+    private String menuName;
+
+    private String url;
+
+    private String remark;
+
+    private Integer parentId;
+
+    private Integer sort;
+
+    private List<Menu> children;
+
+    public MenuDto() {
+    }
+
+    public MenuDto(Integer id, String menuName, String url, String remark, Integer parentId, Integer sort, List<Menu> children) {
+        this.id = id;
+        this.menuName = menuName;
+        this.url = url;
+        this.remark = remark;
+        this.parentId = parentId;
+        this.sort = sort;
+        this.children = children;
+    }
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getMenuName() {
+        return menuName;
+    }
+
+    public void setMenuName(String menuName) {
+        this.menuName = menuName;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Integer parentId) {
+        this.parentId = parentId;
+    }
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
+    public List<Menu> getChildren() {
+        return children;
+    }
+
+    public void setChildren(List<Menu> children) {
+        this.children = children;
+    }
+}

+ 50 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/dto/SysAccountMultilevelDto.java

@@ -0,0 +1,50 @@
+package com.huimv.admin.system.entity.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+@Data
+public class SysAccountMultilevelDto  {
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+
+    private String account;
+
+    private String password;
+
+    private Integer pid;
+
+    private String pids;
+
+    private Integer accountStatus;
+
+    private String farmIds;
+
+    private String color;
+
+    private Boolean mode;
+
+    private Integer lastFarmId;
+
+    private String userName;
+
+    private List<Integer> pcGroupId;
+
+    private List<Integer> appGroupId;
+
+
+    private List<Integer> screenGroupId;
+
+
+}

+ 47 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/dto/SysAccountMultilevelVo.java

@@ -0,0 +1,47 @@
+package com.huimv.admin.system.entity.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+@Data
+public class SysAccountMultilevelVo {
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+
+    private String account;
+
+    private String password;
+
+    private Integer pid;
+
+    private String pids;
+
+    private Integer accountStatus;
+
+    private String farmIds;
+
+    private String color;
+
+    private Boolean mode;
+
+    private Integer lastFarmId;
+
+    private String userName;
+
+    private List<Integer> pcGroupId;
+
+    private List<Integer> appGroupId;
+
+    private List<Integer> screenGroupId;
+}

+ 17 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/dto/UpdateAccountDto.java

@@ -0,0 +1,17 @@
+package com.huimv.admin.system.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.admin.system.entity.dto
+ * @Description : TODO
+ * @Author : yuxuexuan
+ * @Create : 2022/6/2 0002 10:16
+ **/
+@Data
+public class UpdateAccountDto {
+    private String account;
+    private String password;
+    private String newPassword;
+}

+ 29 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/dto/UserAccountDto.java

@@ -0,0 +1,29 @@
+package com.huimv.admin.system.entity.dto;
+
+import lombok.Data;
+
+@Data
+public class UserAccountDto {
+
+     private Integer id;
+
+     private String userName;
+
+     private Integer male;
+
+     private String birthday;
+
+     private String mobile;
+
+     private String address;
+
+     private String job;
+
+     private String remark;
+
+     private String userId;
+
+     private String accountName;
+
+     private Integer accountStatus;
+}

+ 28 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/entity/dto/UserAndAccountGroup.java

@@ -0,0 +1,28 @@
+package com.huimv.admin.system.entity.dto;
+
+import lombok.Data;
+
+@Data
+public class UserAndAccountGroup {
+    private String accountName;
+
+    private Integer accountStatus;
+
+    private Integer id;
+
+    private String userName;
+
+    private Integer male;
+
+    private String birthday;
+
+    private String mobile;
+
+    private String address;
+
+    private String job;
+
+    private String remark;
+
+    private Long userId;
+}

+ 20 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/AccountGroupMapper.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.AccountGroup;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@Repository
+public interface AccountGroupMapper extends BaseMapper<AccountGroup> {
+
+    void removeAccountGroup(@Param("accountId") String accountId);
+}

+ 18 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/AccountMapper.java

@@ -0,0 +1,18 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.Account;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@Repository
+public interface AccountMapper extends BaseMapper<Account> {
+
+}

+ 17 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/AppAccountGroupMapper.java

@@ -0,0 +1,17 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.AppSysAccountGroup;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface AppAccountGroupMapper extends BaseMapper<AppSysAccountGroup> {
+    void removeAccountGroup(@Param("groupIds") String groupIds);
+}

+ 16 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/AppGroupMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.AppSysGroup;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface AppGroupMapper extends BaseMapper<AppSysGroup> {
+
+}

+ 17 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/AppGroupMenuMapper.java

@@ -0,0 +1,17 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.AppSysGroupMenu;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface AppGroupMenuMapper extends BaseMapper<AppSysGroupMenu> {
+    void removeGroupMenu(@Param("groupId") String groupId);
+}

+ 24 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/AppMenuMapper.java

@@ -0,0 +1,24 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.AppSysMenu;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+@Repository
+public interface AppMenuMapper extends BaseMapper<AppSysMenu> {
+
+    List<AppSysMenu> getMyMenuApp(@Param("accountName") String accountName);
+
+    List<String> getMyButton(@Param("userId") Integer userId);
+}

+ 16 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/BaseFarmXMapper.java

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

+ 16 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/BaseScreenCameraAccountMapper.java

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

+ 19 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/ClientConfigMapper.java

@@ -0,0 +1,19 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.ClientConfig;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@Repository
+public interface ClientConfigMapper extends BaseMapper<ClientConfig> {
+
+
+}

+ 18 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/FarmMapper.java

@@ -0,0 +1,18 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.Farm;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+@Repository
+public interface FarmMapper extends BaseMapper<Farm> {
+
+}

+ 18 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/GroupMapper.java

@@ -0,0 +1,18 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.Group;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@Repository
+public interface GroupMapper extends BaseMapper<Group> {
+
+}

+ 20 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/GroupMenuMapper.java

@@ -0,0 +1,20 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.GroupMenu;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@Repository
+public interface GroupMenuMapper extends BaseMapper<GroupMenu> {
+
+    void removeGroupMenu(@Param("groupId") String groupId);
+}

+ 26 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/MenuMapper.java

@@ -0,0 +1,26 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.Menu;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@Repository
+public interface MenuMapper extends BaseMapper<Menu> {
+
+
+
+    List<Menu> getMyMenu(@Param("accountName") String accountName);
+
+    List<String> getMyButton(@Param("userId") Integer userId);
+}

+ 23 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/ProdFarmNameMapper.java

@@ -0,0 +1,23 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.ProdFarmName;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-11-20
+ */
+@Repository
+public interface ProdFarmNameMapper extends BaseMapper<ProdFarmName> {
+
+
+
+    List<ProdFarmName> updatName();
+}

+ 17 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/ScreenAccountGroupMapper.java

@@ -0,0 +1,17 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.ScreenSysAccountGroup;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface ScreenAccountGroupMapper extends BaseMapper<ScreenSysAccountGroup> {
+    void removeAccountGroup(@Param("groupIds") String groupIds);
+}

+ 16 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/ScreenGroupMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.ScreenSysGroup;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface ScreenGroupMapper extends BaseMapper<ScreenSysGroup> {
+
+}

+ 17 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/ScreenGroupMenuMapper.java

@@ -0,0 +1,17 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.ScreenSysGroupMenu;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface ScreenGroupMenuMapper extends BaseMapper<ScreenSysGroupMenu> {
+    void removeGroupMenu(@Param("groupId") String groupId);
+}

+ 24 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/ScreenMenuMapper.java

@@ -0,0 +1,24 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.ScreenSysMenu;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+@Repository
+public interface ScreenMenuMapper extends BaseMapper<ScreenSysMenu> {
+
+    List<ScreenSysMenu> getMyMenuApp(@Param("accountName") String accountName);
+
+    List<String> getMyButton(@Param("userId") Integer userId);
+}

+ 18 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/SysAccountMultilevelMapper.java

@@ -0,0 +1,18 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.SysAccountMultilevel;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+@Repository
+public interface SysAccountMultilevelMapper extends BaseMapper<SysAccountMultilevel> {
+
+}

+ 25 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/mapper/UserMapper.java

@@ -0,0 +1,25 @@
+package com.huimv.admin.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.admin.system.entity.User;
+import com.huimv.admin.system.entity.dto.UserAccountDto;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+@Repository
+public interface UserMapper extends BaseMapper<User> {
+
+    List<UserAccountDto> findUserAndAccountByUserName(@Param("searchStr") String searchStr, @Param("start") int start, @Param("pageSize") int pageSize);
+
+    List<UserAccountDto> findUserAndAccount(@Param("start") int start, @Param("pageSize") int pageSize);
+}

+ 16 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAccountGroupService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.AccountGroup;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+public interface IAccountGroupService extends IService<AccountGroup> {
+
+}

+ 27 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAccountService.java

@@ -0,0 +1,27 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.Account;
+import com.huimv.common.utils.Result;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+public interface IAccountService extends IService<Account> {
+    Result setAccountStatus(List<Integer> ids, Integer status);
+
+    Result newAccount(Integer userId);
+
+    Result cancelAccount(Integer id, Integer accountStatus);
+
+    Result removeAccount(List<Integer> ids);
+
+    Result findAll();
+}

+ 29 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAppAuthorizeService.java

@@ -0,0 +1,29 @@
+package com.huimv.admin.system.service;
+
+
+import com.huimv.common.utils.Result;
+
+import java.util.List;
+
+public interface IAppAuthorizeService {
+
+    Result saveAccountGroup(String accountId, String groupIds);
+
+    Result saveGroupMenu(String groupId, String menuIds);
+
+
+    Result getMenuByGroup(String groupId);
+
+    Result getGroupByAccount(String accountId);
+
+    Result getAccountByGroup(String groupId);
+
+
+    List getMyMenuAll(String accountName);
+
+    List getMyButton(Integer userId);
+
+    List getMyMenuMultilevel(String userId);
+
+    void saveAccountGroupNew(Integer accountId, String collect1);
+}

+ 16 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAppSysAccountGroupService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.AppSysAccountGroup;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface IAppSysAccountGroupService extends IService<AppSysAccountGroup> {
+
+}

+ 16 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAppSysGroupMenuService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.AppSysGroupMenu;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface IAppSysGroupMenuService extends IService<AppSysGroupMenu> {
+
+}

+ 27 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAppSysGroupService.java

@@ -0,0 +1,27 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.AppSysGroup;
+import com.huimv.common.utils.Result;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface IAppSysGroupService extends IService<AppSysGroup> {
+    Result updateGroup(AppSysGroup group);
+
+    Result removeGroup(Integer groupId);
+
+    IPage<AppSysGroup> listGroup(Map map, List<Integer> allChildId);
+
+    Result addGroup(AppSysGroup group, Integer userId);
+}

+ 35 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAppSysMenuService.java

@@ -0,0 +1,35 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.AppSysMenu;
+import com.huimv.common.utils.Result;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface IAppSysMenuService extends IService<AppSysMenu> {
+    Result addMenu(AppSysMenu menu, Integer userId);
+    //修改菜单
+    Result editMenu(AppSysMenu menu);
+    //删除菜单(批量)
+    Result removeMenu(Integer menuId);
+   /* //查询所有
+    List<Map> listMenu();
+    //菜单递归
+    List listMenuUtil(List<Menu> list);*/
+
+    //优化查询所有
+    Result optimizeList();
+    //优化菜单递归
+    List<Map> optimizeListUtil(int parentId, List<AppSysMenu> menuEntityList);
+
+    Result list1();
+}

+ 29 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IAuthorizeService.java

@@ -0,0 +1,29 @@
+package com.huimv.admin.system.service;
+
+
+import com.huimv.common.utils.Result;
+
+import java.util.List;
+
+public interface IAuthorizeService {
+
+    Result saveAccountGroup(String accountId, String groupIds);
+
+    Result saveGroupMenu(String groupId, String menuIds);
+
+
+    Result getMenuByGroup(String groupId);
+
+    Result getGroupByAccount(String accountId);
+
+    Result getAccountByGroup(String groupId);
+
+
+    List getMyMenuAll(String accountName);
+
+    List getMyButton(Integer userId);
+
+    List getMyMenuMultilevel(String userId);
+
+    void saveAccountGroupNew(Integer accountId, String collect);
+}

+ 16 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IBaseFarmXService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.BaseFarmX;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-12-17
+ */
+public interface IBaseFarmXService extends IService<BaseFarmX> {
+
+}

+ 16 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IBaseScreenCameraAccountService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.BaseScreenCameraAccount;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-12-02
+ */
+public interface IBaseScreenCameraAccountService extends IService<BaseScreenCameraAccount> {
+
+}

+ 16 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IClientConfigService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.ClientConfig;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+public interface IClientConfigService extends IService<ClientConfig> {
+
+}

+ 22 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IFarmService.java

@@ -0,0 +1,22 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.Farm;
+import com.huimv.common.utils.Result;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+public interface IFarmService extends IService<Farm> {
+
+    Result getFarm(Integer userId);
+
+    Result add(Farm farm);
+
+    Result getFarm2(Integer userId);
+}

+ 16 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IGroupMenuService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.GroupMenu;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+public interface IGroupMenuService extends IService<GroupMenu> {
+
+}

+ 28 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IGroupService.java

@@ -0,0 +1,28 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.Group;
+import com.huimv.common.utils.Result;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+public interface IGroupService extends IService<Group> {
+
+    Result updateGroup(Group group);
+
+    Result removeGroup(Integer groupId);
+
+    IPage<Group> listGroup(Map map, List<Integer> allChildId);
+
+    Result addGroup(Group group, Integer userId);
+}

+ 13 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/ILoginService.java

@@ -0,0 +1,13 @@
+package com.huimv.admin.system.service;
+
+
+import com.huimv.common.utils.Result;
+
+public interface ILoginService {
+
+    Result login(String accountName, String password);
+
+    Result logout();
+
+    Result loginMultilevel(String accountName, String password);
+}

+ 35 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IMenuService.java

@@ -0,0 +1,35 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.Menu;
+import com.huimv.common.utils.Result;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+public interface IMenuService extends IService<Menu> {
+    Result addMenu(Menu menu, Integer userId);
+    //修改菜单
+    Result editMenu(Menu menu);
+    //删除菜单(批量)
+    Result removeMenu(Integer menuId);
+   /* //查询所有
+    List<Map> listMenu();
+    //菜单递归
+    List listMenuUtil(List<Menu> list);*/
+
+    //优化查询所有
+    Result optimizeList();
+    //优化菜单递归
+    List<Map> optimizeListUtil(int parentId, List<Menu> menuEntityList);
+
+    Result list1();
+}

+ 23 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IProdFarmNameService.java

@@ -0,0 +1,23 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.ProdFarmName;
+import com.huimv.common.utils.Result;
+
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-11-20
+ */
+public interface IProdFarmNameService extends IService<ProdFarmName> {
+
+    void updatName();
+
+
+    Result listPage(Map map);
+}

+ 29 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IScreenAuthorizeService.java

@@ -0,0 +1,29 @@
+package com.huimv.admin.system.service;
+
+
+import com.huimv.common.utils.Result;
+
+import java.util.List;
+
+public interface IScreenAuthorizeService {
+
+    Result saveAccountGroup(String accountId, String groupIds);
+
+    Result saveGroupMenu(String groupId, String menuIds);
+
+
+    Result getMenuByGroup(String groupId);
+
+    Result getGroupByAccount(String accountId);
+
+    Result getAccountByGroup(String groupId);
+
+
+    List getMyMenuAll(String accountName);
+
+    List getMyButton(Integer userId);
+
+    List getMyMenuMultilevel(String userId);
+
+    void saveAccountGroupNew(Integer accountId, String collect1);
+}

+ 16 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IScreenSysAccountGroupService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.ScreenSysAccountGroup;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface IScreenSysAccountGroupService extends IService<ScreenSysAccountGroup> {
+
+}

+ 16 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IScreenSysGroupMenuService.java

@@ -0,0 +1,16 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.ScreenSysGroupMenu;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface IScreenSysGroupMenuService extends IService<ScreenSysGroupMenu> {
+
+}

+ 27 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IScreenSysGroupService.java

@@ -0,0 +1,27 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.ScreenSysGroup;
+import com.huimv.common.utils.Result;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface IScreenSysGroupService extends IService<ScreenSysGroup> {
+    Result updateGroup(ScreenSysGroup group);
+
+    Result removeGroup(Integer groupId);
+
+    IPage<ScreenSysGroup> listGroup(Map map, List<Integer> allChildId);
+
+    Result addGroup(ScreenSysGroup group, Integer userId);
+}

+ 35 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IScreenSysMenuService.java

@@ -0,0 +1,35 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.ScreenSysMenu;
+import com.huimv.common.utils.Result;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2022-03-25
+ */
+public interface IScreenSysMenuService extends IService<ScreenSysMenu> {
+    Result addMenu(ScreenSysMenu menu, Integer userId);
+    //修改菜单
+    Result editMenu(ScreenSysMenu menu);
+    //删除菜单(批量)
+    Result removeMenu(Integer menuId);
+   /* //查询所有
+    List<Map> listMenu();
+    //菜单递归
+    List listMenuUtil(List<Menu> list);*/
+
+    //优化查询所有
+    Result optimizeList();
+    //优化菜单递归
+    List<Map> optimizeListUtil(int parentId, List<ScreenSysMenu> menuEntityList);
+
+    Result list1();
+}

+ 35 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/ISysAccountMultilevelService.java

@@ -0,0 +1,35 @@
+package com.huimv.admin.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.SysAccountMultilevel;
+import com.huimv.admin.system.entity.dto.SysAccountMultilevelDto;
+import com.huimv.common.utils.Result;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-10-14
+ */
+public interface ISysAccountMultilevelService extends IService<SysAccountMultilevel> {
+
+    Result findUserAccount(String searchStr, int pageNum, int pageSize, Integer userId);
+
+    Result add(SysAccountMultilevel sysAccountMultilevel, Integer userId);
+
+    Result setAccountStatus(List<Integer> ids, Integer status);
+
+    List<Integer> getAllChildId(Integer userId);
+
+    Result listSubordinate(String searchStr, int pageNum, int pageSize, Integer userId);
+
+    Result getLastFarmId(Integer userId);
+
+    Result addApp(SysAccountMultilevelDto sysAccountMultilevel, Integer userId);
+
+    void updateApp(SysAccountMultilevelDto sysAccountMultilevel);
+}

+ 31 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/IUserService.java

@@ -0,0 +1,31 @@
+package com.huimv.admin.system.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.huimv.admin.system.entity.User;
+import com.huimv.common.utils.Result;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author astupidcoder
+ * @since 2021-09-09
+ */
+public interface IUserService extends IService<User> {
+
+
+    JSONObject findUserAccount(String searchStr, int pageNum, int pageSize);
+
+
+//    List<UserAndAccountGroup> yxxList(String searchStr, int pageNum, int pageSize);
+
+    Result addUser(User user);
+
+    Result updateUser(User user);
+
+    Result removeUser(List<Integer> userIds);
+}

+ 0 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/impl/AccountGroupServiceImpl.java


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů