Bladeren bron

项目结构调整

liubo 3 jaren geleden
bovenliggende
commit
67325db9cb
100 gewijzigde bestanden met toevoegingen van 2978 en 413 verwijderingen
  1. 20 0
      pom.xml
  2. 2 0
      zd-api/pom.xml
  3. 3 27
      zd-api/zd-algorithm-api/pom.xml
  4. 1 1
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/entity/AlarmEntrty.java
  5. 2 2
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/entity/AlarmLog.java
  6. 3 3
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/feign/RemoteAlarmService.java
  7. 1 1
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/feign/fallback/RemoteAlarmFallbackFactory.java
  8. 3 3
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/RemoteFaceService.java
  9. 1 1
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/fallback/RemoteFaceFallbackFactory.java
  10. 4 5
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/forward/feign/RemoteForwardService.java
  11. 2 3
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/forward/feign/fallback/RemoteForwardFallbackFactory.java
  12. 2 4
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/entity/SlApplyApproval.java
  13. 2 8
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/entity/SlOpendoorApply.java
  14. 2 10
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/entity/SlSubjectRelation.java
  15. 2 5
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/entity/SlUserRelation.java
  16. 5 5
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/feign/RemoteSmartlockService.java
  17. 1 1
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/feign/fallback/RemoteSmartlockFallbackFactory.java
  18. 1 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/vo/ParamVo.java
  19. 1 1
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/vo/PlayBatchVo.java
  20. 1 1
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/vo/PlayVo.java
  21. 3 3
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/feign/RemoteSpeakService.java
  22. 1 1
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/feign/fallback/RemoteSpeakFallbackFactory.java
  23. 15 0
      zd-api/zd-chemical-api/pom.xml
  24. 27 0
      zd-api/zd-chemical-api/src/main/java/com/zd/chemical/api/fegin/RemoteCabinetService.java
  25. 35 0
      zd-api/zd-chemical-api/src/main/java/com/zd/chemical/api/fegin/RemoteChemicalAlarmService.java
  26. 31 0
      zd-api/zd-chemical-api/src/main/java/com/zd/chemical/api/fegin/RemoteChemicalService.java
  27. 7 7
      zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/RemoteStockService.java
  28. 30 0
      zd-api/zd-chemical-api/src/main/java/com/zd/chemical/api/fegin/factory/RemoteCabinetFallbackFactory.java
  29. 36 0
      zd-api/zd-chemical-api/src/main/java/com/zd/chemical/api/fegin/factory/RemoteChemicalAlarmFallbackFactory.java
  30. 38 0
      zd-api/zd-chemical-api/src/main/java/com/zd/chemical/api/fegin/factory/RemoteChemicalFallbackFactory.java
  31. 10 10
      zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/factory/RemoteStockFallback.java
  32. 6 0
      zd-api/zd-chemical-api/src/main/resources/META-INF/spring.factories
  33. 20 18
      zd-api/zd-exam-api/src/main/java/com/zd/exam/api/feign/RemoteExamService.java
  34. 43 40
      zd-api/zd-exam-api/src/main/java/com/zd/exam/api/feign/fallback/RemoteExamFallback.java
  35. 5 1
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/RemoteLaboratoryService.java
  36. 2 1
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/RemoteSubQueryService.java
  37. 5 1
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/fallback/RemoteLaboratoryFallbackFactory.java
  38. 1 0
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/fallback/RemoteSubQueryFallbackFactory.java
  39. 2 1
      zd-model/src/main/java/com/zd/model/entity/InventoryTag.java
  40. 29 0
      zd-api/zd-system-api/src/main/java/com/zd/system/api/entity/CommonCount.java
  41. 225 0
      zd-api/zd-system-api/src/main/java/com/zd/system/api/entity/LabStudentsInfo.java
  42. 45 0
      zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/RemoteDeptService.java
  43. 3 3
      zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/RemoteLogService.java
  44. 32 25
      zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/RemoteUserService.java
  45. 49 0
      zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/factory/RemoteDeptFallbackFactory.java
  46. 4 4
      zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/factory/RemoteLogFallback.java
  47. 38 38
      zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/factory/RemoteUserFallback.java
  48. 0 2
      zd-auth/src/main/java/com/zd/auth/controller/TokenController.java
  49. 1 1
      zd-auth/src/main/java/com/zd/auth/service/SysLoginService.java
  50. 6 2
      zd-common/common-core/pom.xml
  51. 19 0
      zd-common/common-core/src/main/java/com/zd/common/core/annotation/DeviceID.java
  52. 42 0
      zd-common/common-core/src/main/java/com/zd/common/core/annotation/FunctionMapper.java
  53. 20 0
      zd-common/common-core/src/main/java/com/zd/common/core/annotation/NewFunctionMapper.java
  54. 108 0
      zd-common/common-core/src/main/java/com/zd/common/core/utils/Assert.java
  55. 72 0
      zd-common/common-core/src/main/java/com/zd/common/core/utils/EscapeUtils.java
  56. 23 0
      zd-common/common-core/src/main/java/com/zd/common/core/utils/PageHelperUtil.java
  57. 68 0
      zd-common/common-core/src/main/java/com/zd/common/core/utils/Pinyin4jUtil.java
  58. 157 0
      zd-common/common-core/src/main/java/com/zd/common/core/utils/ReUtil.java
  59. 49 0
      zd-common/common-core/src/main/java/com/zd/common/core/utils/TransferUtils.java
  60. 11 0
      zd-common/common-core/src/main/java/com/zd/common/core/utils/UrlFormatUtils.java
  61. 0 5
      zd-common/zd-common-core/pom.xml
  62. 2 1
      zd-common/zd-common-core/src/main/java/com/zd/common/core/web/controller/BaseController.java
  63. 2 2
      zd-common/zd-common-core/src/main/java/com/zd/common/core/web/domain/AjaxResult.java
  64. 1 0
      zd-common/zd-common-core/src/main/java/com/zd/common/core/web/domain/ResultData.java
  65. 1 1
      zd-common/zd-common-security/src/main/java/com/zd/common/security/handler/GlobalExceptionHandler.java
  66. 1 0
      zd-model/src/main/java/com/zd/model/constant/ApplicationConstants.java
  67. 61 0
      zd-model/src/main/java/com/zd/model/constant/CacheDevice.java
  68. 185 0
      zd-model/src/main/java/com/zd/model/constant/Constants.java
  69. 1 0
      zd-model/src/main/java/com/zd/model/domain/R.java
  70. 38 0
      zd-model/src/main/java/com/zd/model/echarts/Axis.java
  71. 124 0
      zd-model/src/main/java/com/zd/model/echarts/BarBuilder.java
  72. 28 0
      zd-model/src/main/java/com/zd/model/echarts/BarEchertsCommander.java
  73. 22 0
      zd-model/src/main/java/com/zd/model/echarts/Builder.java
  74. 39 0
      zd-model/src/main/java/com/zd/model/echarts/CommonEchartsData.java
  75. 39 0
      zd-model/src/main/java/com/zd/model/echarts/DataValue.java
  76. 54 0
      zd-model/src/main/java/com/zd/model/echarts/EchartConfig.java
  77. 158 0
      zd-model/src/main/java/com/zd/model/echarts/EchartsBuilder.java
  78. 17 0
      zd-model/src/main/java/com/zd/model/echarts/EchartsData.java
  79. 23 0
      zd-model/src/main/java/com/zd/model/echarts/Legend.java
  80. 32 0
      zd-model/src/main/java/com/zd/model/echarts/MapInList.java
  81. 79 0
      zd-model/src/main/java/com/zd/model/echarts/Option.java
  82. 54 0
      zd-model/src/main/java/com/zd/model/echarts/Serie.java
  83. 31 0
      zd-model/src/main/java/com/zd/model/echarts/Title.java
  84. 29 0
      zd-model/src/main/java/com/zd/model/echarts/enums/AxisType.java
  85. 30 0
      zd-model/src/main/java/com/zd/model/echarts/enums/SerieType.java
  86. 54 0
      zd-model/src/main/java/com/zd/model/entity/AlgorithmVO.java
  87. 0 163
      zd-model/src/main/java/com/zd/model/entity/RemoteLabHardware.java
  88. 2 2
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/vo/UrlVo.java
  89. 53 0
      zd-model/src/main/java/com/zd/model/enums/AuditStatusEnum.java
  90. 75 0
      zd-model/src/main/java/com/zd/model/enums/CodeToValueEnumTypeHandler.java
  91. 44 0
      zd-model/src/main/java/com/zd/model/enums/LockTypeEnum.java
  92. 39 0
      zd-model/src/main/java/com/zd/model/enums/PointRecordType.java
  93. 67 0
      zd-model/src/main/java/com/zd/model/enums/RiskHardwareTypeEnum.java
  94. 21 0
      zd-model/src/main/java/com/zd/model/enums/SignEnum.java
  95. 41 0
      zd-model/src/main/java/com/zd/model/enums/WarnMessageTypeEnum.java
  96. 41 0
      zd-model/src/main/java/com/zd/model/enums/WarnUserAttrEnum.java
  97. 47 0
      zd-model/src/main/java/com/zd/model/enums/WorkTypeEnum.java
  98. 55 0
      zd-model/src/main/java/com/zd/model/qc/Base64DecodeMultipartFile.java
  99. 11 0
      zd-model/src/main/java/com/zd/model/qc/QCInterface.java
  100. 0 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/controller/QpSupplierController.java

+ 20 - 0
pom.xml

@@ -20,6 +20,7 @@
         <module>zd-api</module>
         <module>zd-api</module>
         <module>zd-common</module>
         <module>zd-common</module>
         <module>zd-model</module>
         <module>zd-model</module>
+        <module>zd-chemical-api</module>
     </modules>
     </modules>
 
 
     <properties>
     <properties>
@@ -335,6 +336,25 @@
                 <artifactId>zd-laboratory-api</artifactId>
                 <artifactId>zd-laboratory-api</artifactId>
                 <version>${zd.version}</version>
                 <version>${zd.version}</version>
             </dependency>
             </dependency>
+
+            <dependency>
+                <groupId>com.zd.chemical</groupId>
+                <artifactId>zd-chemical-api</artifactId>
+                <version>${zd.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.zd.exam</groupId>
+                <artifactId>zd-exam-api</artifactId>
+                <version>${zd.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>com.zd.algorithm</groupId>
+                <artifactId>zd-algorithm-api</artifactId>
+                <version>${zd.version}</version>
+            </dependency>
+
         </dependencies>
         </dependencies>
     </dependencyManagement>
     </dependencyManagement>
 
 

+ 2 - 0
zd-api/pom.xml

@@ -17,6 +17,8 @@
         <module>zd-base-api</module>
         <module>zd-base-api</module>
         <module>zd-laboratory-api</module>
         <module>zd-laboratory-api</module>
         <module>zd-exam-api</module>
         <module>zd-exam-api</module>
+        <module>zd-chemical-api</module>
+        <module>zd-algorithm-api</module>
     </modules>
     </modules>
 
 
     <dependencies>
     <dependencies>

+ 3 - 27
zd-api/zd-algorithm-api/pom.xml

@@ -3,41 +3,17 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          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">
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
     <parent>
-        <artifactId>zd</artifactId>
+        <artifactId>zd-api</artifactId>
         <groupId>com.zd</groupId>
         <groupId>com.zd</groupId>
         <version>3.1.0</version>
         <version>3.1.0</version>
-        <relativePath>../../pom.xml</relativePath>
     </parent>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <modelVersion>4.0.0</modelVersion>
 
 
+    <groupId>com.zd.algorithm</groupId>
     <artifactId>zd-algorithm-api</artifactId>
     <artifactId>zd-algorithm-api</artifactId>
 
 
     <description>
     <description>
         zd-algorithm-api 算法接口模块
         zd-algorithm-api 算法接口模块
     </description>
     </description>
 
 
-    <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    </properties>
-
-    <dependencies>
-        <!-- zd Common Core-->
-        <dependency>
-            <groupId>com.zd</groupId>
-            <artifactId>zd-common-core</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.zd.base</groupId>
-            <artifactId>zd-base-api</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.zd</groupId>
-            <artifactId>zd-common-swagger</artifactId>
-        </dependency>
-    </dependencies>
-
-</project>
+</project>

+ 1 - 1
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/entity/AlarmEntrty.java

@@ -1,7 +1,7 @@
 package com.zd.algorithm.api.alarm.entity;
 package com.zd.algorithm.api.alarm.entity;
 
 
 import cn.hutool.json.JSONUtil;
 import cn.hutool.json.JSONUtil;
-import com.zd.common.core.constant.Constants;
+import com.zd.model.constant.Constants;
 
 
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
 
 

+ 2 - 2
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/entity/AlarmLog.java

@@ -1,8 +1,8 @@
 package com.zd.algorithm.api.alarm.entity;
 package com.zd.algorithm.api.alarm.entity;
 
 
 import cn.hutool.json.JSONUtil;
 import cn.hutool.json.JSONUtil;
-import com.zd.common.core.annotation.Excel;
-import com.zd.common.core.web.domain.BaseEntity;
+import com.zd.model.annotation.Excel;
+import com.zd.model.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 

+ 3 - 3
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/feign/RemoteAlarmService.java

@@ -2,8 +2,8 @@ package com.zd.algorithm.api.alarm.feign;
 
 
 import com.zd.algorithm.api.alarm.entity.AlarmEntrty;
 import com.zd.algorithm.api.alarm.entity.AlarmEntrty;
 import com.zd.algorithm.api.alarm.feign.fallback.RemoteAlarmFallbackFactory;
 import com.zd.algorithm.api.alarm.feign.fallback.RemoteAlarmFallbackFactory;
-import com.zd.common.core.constant.ServiceNameConstants;
-import com.zd.common.core.web.domain.AjaxResult;
+import com.zd.model.constant.ApplicationConstants;
+import com.zd.model.domain.AjaxResult;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RequestBody;
  *
  *
  * @Author: liubo
  * @Author: liubo
  */
  */
-@FeignClient(contextId = "remoteAlarmService", value = ServiceNameConstants.ALARM_SERVICE, fallbackFactory = RemoteAlarmFallbackFactory.class)
+@FeignClient(contextId = "remoteAlarmService", value = ApplicationConstants.ALGORITHM_SERVICE, fallbackFactory = RemoteAlarmFallbackFactory.class)
 public interface RemoteAlarmService {
 public interface RemoteAlarmService {
 
 
     @PostMapping("/alarm/send")
     @PostMapping("/alarm/send")

+ 1 - 1
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/alarm/feign/fallback/RemoteAlarmFallbackFactory.java

@@ -2,7 +2,7 @@ package com.zd.algorithm.api.alarm.feign.fallback;
 
 
 import com.zd.algorithm.api.alarm.entity.AlarmEntrty;
 import com.zd.algorithm.api.alarm.entity.AlarmEntrty;
 import com.zd.algorithm.api.alarm.feign.RemoteAlarmService;
 import com.zd.algorithm.api.alarm.feign.RemoteAlarmService;
-import com.zd.common.core.web.domain.AjaxResult;
+import com.zd.model.domain.AjaxResult;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;

+ 3 - 3
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/RemoteFaceService.java

@@ -1,8 +1,8 @@
 package com.zd.algorithm.api.face.feign;
 package com.zd.algorithm.api.face.feign;
 
 
 import com.zd.algorithm.api.face.feign.fallback.RemoteFaceFallbackFactory;
 import com.zd.algorithm.api.face.feign.fallback.RemoteFaceFallbackFactory;
-import com.zd.common.core.constant.ServiceNameConstants;
-import com.zd.common.core.domain.R;
+import com.zd.model.constant.ApplicationConstants;
+import com.zd.model.domain.R;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -15,7 +15,7 @@ import org.springframework.web.multipart.MultipartFile;
  *
  *
  * @author zd
  * @author zd
  */
  */
-@FeignClient(contextId = "remoteFaceService", value = ServiceNameConstants.FACE_SERVICE, fallbackFactory = RemoteFaceFallbackFactory.class)
+@FeignClient(contextId = "remoteFaceService", value = ApplicationConstants.ALGORITHM_SERVICE, fallbackFactory = RemoteFaceFallbackFactory.class)
 public interface RemoteFaceService {
 public interface RemoteFaceService {
     /**
     /**
      * 获取人脸特征-根据照片
      * 获取人脸特征-根据照片

+ 1 - 1
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/fallback/RemoteFaceFallbackFactory.java

@@ -2,7 +2,7 @@ package com.zd.algorithm.api.face.feign.fallback;
 
 
 import com.zd.algorithm.api.face.feign.FaceCompare;
 import com.zd.algorithm.api.face.feign.FaceCompare;
 import com.zd.algorithm.api.face.feign.RemoteFaceService;
 import com.zd.algorithm.api.face.feign.RemoteFaceService;
-import com.zd.common.core.domain.R;
+import com.zd.model.domain.R;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;

+ 4 - 5
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/forward/feign/RemoteForwardService.java

@@ -1,9 +1,8 @@
 package com.zd.algorithm.api.forward.feign;
 package com.zd.algorithm.api.forward.feign;
 
 
 import com.zd.algorithm.api.forward.feign.fallback.RemoteForwardFallbackFactory;
 import com.zd.algorithm.api.forward.feign.fallback.RemoteForwardFallbackFactory;
-import com.zd.base.api.entity.SysFile;
-import com.zd.common.core.constant.ServiceNameConstants;
-import com.zd.common.core.domain.R;
+import com.zd.model.constant.ApplicationConstants;
+import com.zd.model.domain.R;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -15,7 +14,7 @@ import java.util.Map;
 /**
 /**
  * 消息内容feign调用服务
  * 消息内容feign调用服务
  */
  */
-@FeignClient(contextId = "remoteForwardService", value = ServiceNameConstants.FORWARD_SERVICE, fallbackFactory = RemoteForwardFallbackFactory.class)
+@FeignClient(contextId = "remoteForwardService", value = ApplicationConstants.ALGORITHM_SERVICE, fallbackFactory = RemoteForwardFallbackFactory.class)
 public interface RemoteForwardService {
 public interface RemoteForwardService {
 
 
 
 
@@ -30,5 +29,5 @@ public interface RemoteForwardService {
     Object saveData(@RequestBody Map<String, Object> data);
     Object saveData(@RequestBody Map<String, Object> data);
 
 
     @GetMapping("/alarm/photograph")
     @GetMapping("/alarm/photograph")
-    R<SysFile> photograph(@RequestParam("streamUrl") String streamUrl);
+    R<Object> photograph(@RequestParam("streamUrl") String streamUrl);
 }
 }

+ 2 - 3
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/forward/feign/fallback/RemoteForwardFallbackFactory.java

@@ -1,8 +1,7 @@
 package com.zd.algorithm.api.forward.feign.fallback;
 package com.zd.algorithm.api.forward.feign.fallback;
 
 
 import com.zd.algorithm.api.forward.feign.RemoteForwardService;
 import com.zd.algorithm.api.forward.feign.RemoteForwardService;
-import com.zd.base.api.entity.SysFile;
-import com.zd.common.core.domain.R;
+import com.zd.model.domain.R;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -38,7 +37,7 @@ public class RemoteForwardFallbackFactory implements FallbackFactory<RemoteForwa
             }
             }
 
 
             @Override
             @Override
-            public R<SysFile> photograph(String streamUrl) {
+            public R<Object> photograph(String streamUrl) {
                 return R.fail("报警拍照服务调用失败:" + throwable.getMessage());
                 return R.fail("报警拍照服务调用失败:" + throwable.getMessage());
             }
             }
         };
         };

+ 2 - 4
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/entity/SlApplyApproval.java

@@ -1,11 +1,10 @@
 package com.zd.algorithm.api.smartlock.entity;
 package com.zd.algorithm.api.smartlock.entity;
 
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.zd.common.core.annotation.Excel;
-import com.zd.common.core.web.domain.BaseEntity;
+import com.zd.model.annotation.Excel;
+import com.zd.model.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
-import org.hibernate.validator.constraints.Length;
 
 
 import java.util.Date;
 import java.util.Date;
 
 
@@ -33,7 +32,6 @@ public class SlApplyApproval extends BaseEntity
     private Long approvaId;
     private Long approvaId;
     /** 审核人姓名 */
     /** 审核人姓名 */
     @Excel(name = "审核人姓名")
     @Excel(name = "审核人姓名")
-    @Length(message = "审核人姓名长度不能超过50")
     @ApiModelProperty(value = "审核人姓名")
     @ApiModelProperty(value = "审核人姓名")
     private String approvaName;
     private String approvaName;
     /** 1通过 2驳回 */
     /** 1通过 2驳回 */

+ 2 - 8
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/entity/SlOpendoorApply.java

@@ -1,11 +1,10 @@
 package com.zd.algorithm.api.smartlock.entity;
 package com.zd.algorithm.api.smartlock.entity;
 
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.zd.common.core.annotation.Excel;
-import com.zd.common.core.web.domain.BaseEntity;
+import com.zd.model.annotation.Excel;
+import com.zd.model.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
-import org.hibernate.validator.constraints.Length;
 
 
 import java.util.Date;
 import java.util.Date;
 
 
@@ -25,7 +24,6 @@ public class SlOpendoorApply extends BaseEntity
     private Long id;
     private Long id;
     /** 申请姓名 */
     /** 申请姓名 */
     @Excel(name = "申请姓名")
     @Excel(name = "申请姓名")
-    @Length(message = "申请姓名长度不能超过50")
     @ApiModelProperty(value = "申请姓名")
     @ApiModelProperty(value = "申请姓名")
     private String userName;
     private String userName;
     /** 人员2 id */
     /** 人员2 id */
@@ -34,7 +32,6 @@ public class SlOpendoorApply extends BaseEntity
     private Long userId2;
     private Long userId2;
     /** $column.columnComment */
     /** $column.columnComment */
     @Excel(name = "人员2 id")
     @Excel(name = "人员2 id")
-    @Length(message = "人员2 id长度不能超过50")
     @ApiModelProperty(value = "人员2 id")
     @ApiModelProperty(value = "人员2 id")
     private String userName2;
     private String userName2;
     /** 实验室id  */
     /** 实验室id  */
@@ -43,17 +40,14 @@ public class SlOpendoorApply extends BaseEntity
     private Long subjectId;
     private Long subjectId;
     /** 实验室名称  */
     /** 实验室名称  */
     @Excel(name = "实验室名称 ")
     @Excel(name = "实验室名称 ")
-    @Length(message = "实验室名称 长度不能超过50")
     @ApiModelProperty(value = "实验室名称 ")
     @ApiModelProperty(value = "实验室名称 ")
     private String subjectName;
     private String subjectName;
     /** 位置 */
     /** 位置 */
     @Excel(name = "位置")
     @Excel(name = "位置")
-    @Length(message = "位置长度不能超过255")
     @ApiModelProperty(value = "位置")
     @ApiModelProperty(value = "位置")
     private String position;
     private String position;
     /** 学院 */
     /** 学院 */
     @Excel(name = "学院")
     @Excel(name = "学院")
-    @Length(message = "学院长度不能超过255")
     @ApiModelProperty(value = "学院")
     @ApiModelProperty(value = "学院")
     private String college;
     private String college;
     /** 1审核中 2 通过 3驳回 */
     /** 1审核中 2 通过 3驳回 */

+ 2 - 10
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/entity/SlSubjectRelation.java

@@ -1,11 +1,10 @@
 package com.zd.algorithm.api.smartlock.entity;
 package com.zd.algorithm.api.smartlock.entity;
 
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.zd.common.core.annotation.Excel;
-import com.zd.common.core.web.domain.BaseEntity;
+import com.zd.model.annotation.Excel;
+import com.zd.model.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
-import org.hibernate.validator.constraints.Length;
 
 
 import java.util.Date;
 import java.util.Date;
 
 
@@ -29,17 +28,14 @@ public class SlSubjectRelation extends BaseEntity
     private Long subjectId;
     private Long subjectId;
     /** 实验室名称 */
     /** 实验室名称 */
     @Excel(name = "实验室名称")
     @Excel(name = "实验室名称")
-    @Length(message = "实验室名称长度不能超过50")
     @ApiModelProperty(value = "实验室名称")
     @ApiModelProperty(value = "实验室名称")
     private String subjectName;
     private String subjectName;
     /** 房间id */
     /** 房间id */
     @Excel(name = "房间id")
     @Excel(name = "房间id")
-    @Length(message = "房间id长度不能超过255")
     @ApiModelProperty(value = "房间id")
     @ApiModelProperty(value = "房间id")
     private String lockRoomId;
     private String lockRoomId;
     /** 门锁编号 */
     /** 门锁编号 */
     @Excel(name = "门锁编号")
     @Excel(name = "门锁编号")
-    @Length(message = "门锁编号长度不能超过255")
     @ApiModelProperty(value = "门锁编号")
     @ApiModelProperty(value = "门锁编号")
     private String lockCode;
     private String lockCode;
     /** 创建时间 */
     /** 创建时间 */
@@ -49,25 +45,21 @@ public class SlSubjectRelation extends BaseEntity
     private Date creatTime;
     private Date creatTime;
     /** 房间位置 */
     /** 房间位置 */
     @Excel(name = "房间位置")
     @Excel(name = "房间位置")
-    @Length(message = "房间位置长度不能超过255")
     @ApiModelProperty(value = "房间位置")
     @ApiModelProperty(value = "房间位置")
     private String roomLocation;
     private String roomLocation;
 
 
     /** 房间名称 */
     /** 房间名称 */
     @Excel(name = "房间名称")
     @Excel(name = "房间名称")
-    @Length(message = "房间名称长度不能超过255")
     @ApiModelProperty(value = "房间名称")
     @ApiModelProperty(value = "房间名称")
     private String roomName;
     private String roomName;
 
 
     /** 实验室位置 */
     /** 实验室位置 */
     @Excel(name = "实验室位置")
     @Excel(name = "实验室位置")
-    @Length(message = "实验室位置长度不能超过255")
     @ApiModelProperty(value = "实验室位置")
     @ApiModelProperty(value = "实验室位置")
     private String subjectLocation;
     private String subjectLocation;
 
 
     /** 学院 */
     /** 学院 */
     @Excel(name = "学院")
     @Excel(name = "学院")
-    @Length(message = "学院长度不能超过255")
     @ApiModelProperty(value = "学院")
     @ApiModelProperty(value = "学院")
     private String college;
     private String college;
 
 

+ 2 - 5
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/entity/SlUserRelation.java

@@ -1,11 +1,10 @@
 package com.zd.algorithm.api.smartlock.entity;
 package com.zd.algorithm.api.smartlock.entity;
 
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.zd.common.core.annotation.Excel;
-import com.zd.common.core.web.domain.BaseEntity;
+import com.zd.model.annotation.Excel;
+import com.zd.model.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
-import org.hibernate.validator.constraints.Length;
 
 
 import java.util.Date;
 import java.util.Date;
 
 
@@ -25,12 +24,10 @@ public class SlUserRelation extends BaseEntity
     private Long id;
     private Long id;
     /** 用户姓名 */
     /** 用户姓名 */
     @Excel(name = "用户姓名")
     @Excel(name = "用户姓名")
-    @Length(message = "用户姓名长度不能超过50")
     @ApiModelProperty(value = "用户姓名")
     @ApiModelProperty(value = "用户姓名")
     private String userName;
     private String userName;
     /** 门锁服务人员编号 */
     /** 门锁服务人员编号 */
     @Excel(name = "门锁服务人员编号")
     @Excel(name = "门锁服务人员编号")
-    @Length(message = "门锁服务人员编号长度不能超过50")
     @ApiModelProperty(value = "门锁服务人员编号")
     @ApiModelProperty(value = "门锁服务人员编号")
     private String lockUserCode;
     private String lockUserCode;
     /** $column.columnComment */
     /** $column.columnComment */

+ 5 - 5
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/feign/RemoteSmartlockService.java

@@ -1,8 +1,8 @@
 package com.zd.algorithm.api.smartlock.feign;
 package com.zd.algorithm.api.smartlock.feign;
 
 
 import com.zd.algorithm.api.speaker.feign.fallback.RemoteSpeakFallbackFactory;
 import com.zd.algorithm.api.speaker.feign.fallback.RemoteSpeakFallbackFactory;
-import com.zd.common.core.constant.ServiceNameConstants;
-import com.zd.common.core.domain.R;
+import com.zd.model.constant.ApplicationConstants;
+import com.zd.model.domain.R;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -12,11 +12,11 @@ import org.springframework.web.bind.annotation.RequestParam;
  *
  *
  * 智能锁远程调用
  * 智能锁远程调用
  */
  */
-@FeignClient(contextId = "remoteSmartlockService",value = ServiceNameConstants.SMARTLOCK_SERVICE,fallbackFactory = RemoteSpeakFallbackFactory.class)
+@FeignClient(contextId = "remoteSmartlockService",value = ApplicationConstants.ALGORITHM_SERVICE,fallbackFactory = RemoteSpeakFallbackFactory.class)
 public interface RemoteSmartlockService {
 public interface RemoteSmartlockService {
 
 
     @GetMapping(value = "/approval/sysMsgApprova")
     @GetMapping(value = "/approval/sysMsgApprova")
     public R sysMsgApprova(@RequestParam(value = "phone", required = true) String phone,
     public R sysMsgApprova(@RequestParam(value = "phone", required = true) String phone,
-                        @RequestParam(value = "content", required = true) String content,
-                        @RequestParam(value = "lockApplyId",required = true) Long lockApplyId);
+                           @RequestParam(value = "content", required = true) String content,
+                           @RequestParam(value = "lockApplyId",required = true) Long lockApplyId);
 }
 }

+ 1 - 1
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/smartlock/feign/fallback/RemoteSmartlockFallbackFactory.java

@@ -1,7 +1,7 @@
 package com.zd.algorithm.api.smartlock.feign.fallback;
 package com.zd.algorithm.api.smartlock.feign.fallback;
 
 
 import com.zd.algorithm.api.smartlock.feign.RemoteSmartlockService;
 import com.zd.algorithm.api.smartlock.feign.RemoteSmartlockService;
-import com.zd.common.core.domain.R;
+import com.zd.model.domain.R;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;

+ 1 - 0
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/vo/ParamVo.java

@@ -1,5 +1,6 @@
 package com.zd.algorithm.api.speaker.entity.vo;
 package com.zd.algorithm.api.speaker.entity.vo;
 
 
+import com.zd.model.entity.UrlVo;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 
 import java.util.List;
 import java.util.List;

+ 1 - 1
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/vo/PlayBatchVo.java

@@ -1,7 +1,7 @@
 package com.zd.algorithm.api.speaker.entity.vo;
 package com.zd.algorithm.api.speaker.entity.vo;
 
 
-import com.zd.common.core.utils.StringUtils;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 
 

+ 1 - 1
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/vo/PlayVo.java

@@ -1,7 +1,7 @@
 package com.zd.algorithm.api.speaker.entity.vo;
 package com.zd.algorithm.api.speaker.entity.vo;
 
 
-import com.zd.common.core.utils.StringUtils;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 
 

+ 3 - 3
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/feign/RemoteSpeakService.java

@@ -2,8 +2,8 @@ package com.zd.algorithm.api.speaker.feign;
 
 
 import com.zd.algorithm.api.speaker.entity.vo.PlayVo;
 import com.zd.algorithm.api.speaker.entity.vo.PlayVo;
 import com.zd.algorithm.api.speaker.feign.fallback.RemoteSpeakFallbackFactory;
 import com.zd.algorithm.api.speaker.feign.fallback.RemoteSpeakFallbackFactory;
-import com.zd.common.core.constant.ServiceNameConstants;
-import com.zd.common.core.domain.R;
+import com.zd.model.constant.ApplicationConstants;
+import com.zd.model.domain.R;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -14,7 +14,7 @@ import java.util.List;
 /**
 /**
  * 语音远程调用
  * 语音远程调用
  */
  */
-@FeignClient(contextId = "remoteSpeakService",value = ServiceNameConstants.SPEAK_SERVICE,fallbackFactory = RemoteSpeakFallbackFactory.class)
+@FeignClient(contextId = "remoteSpeakService",value = ApplicationConstants.ALGORITHM_SERVICE,fallbackFactory = RemoteSpeakFallbackFactory.class)
 public interface RemoteSpeakService {
 public interface RemoteSpeakService {
       @RequestMapping("/speaker/textParseVideo")
       @RequestMapping("/speaker/textParseVideo")
       String textParseUrl(@RequestParam("speed") Integer speed, @RequestParam("volume") Integer volume, @RequestParam("text") String text);
       String textParseUrl(@RequestParam("speed") Integer speed, @RequestParam("volume") Integer volume, @RequestParam("text") String text);

+ 1 - 1
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/feign/fallback/RemoteSpeakFallbackFactory.java

@@ -2,7 +2,7 @@ package com.zd.algorithm.api.speaker.feign.fallback;
 
 
 import com.zd.algorithm.api.speaker.entity.vo.PlayVo;
 import com.zd.algorithm.api.speaker.entity.vo.PlayVo;
 import com.zd.algorithm.api.speaker.feign.RemoteSpeakService;
 import com.zd.algorithm.api.speaker.feign.RemoteSpeakService;
-import com.zd.common.core.domain.R;
+import com.zd.model.domain.R;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;

+ 15 - 0
zd-api/zd-chemical-api/pom.xml

@@ -0,0 +1,15 @@
+<?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>zd-api</artifactId>
+        <groupId>com.zd</groupId>
+        <version>3.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>com.zd.chemical</groupId>
+    <artifactId>zd-chemical-api</artifactId>
+    <packaging>jar</packaging>
+    <description>chemical-api</description>
+</project>

+ 27 - 0
zd-api/zd-chemical-api/src/main/java/com/zd/chemical/api/fegin/RemoteCabinetService.java

@@ -0,0 +1,27 @@
+package com.zd.chemical.api.fegin;
+
+import com.zd.chemical.api.fegin.factory.RemoteCabinetFallbackFactory;
+import com.zd.model.constant.ApplicationConstants;
+import com.zd.model.domain.ResultData;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 化学品管理Feign调用接口
+ */
+@FeignClient(contextId = "remoteCabinetService", value = ApplicationConstants.CHEMICAL_SERVICE, fallbackFactory = RemoteCabinetFallbackFactory.class)
+public interface RemoteCabinetService {
+
+    /**
+     * 查询返回化学品机柜列表
+     */
+    @ApiOperation(value = "修改 化学品设备管理状态")
+    @PostMapping("/hxpCabinet/getCabinetList")
+    ResultData<List <LinkedHashMap <String,String>>> getCabinetList(@RequestBody Map subMap);
+}

+ 35 - 0
zd-api/zd-chemical-api/src/main/java/com/zd/chemical/api/fegin/RemoteChemicalAlarmService.java

@@ -0,0 +1,35 @@
+package com.zd.chemical.api.fegin;
+
+import com.zd.chemical.api.fegin.factory.RemoteChemicalAlarmFallbackFactory;
+import com.zd.model.constant.ApplicationConstants;
+import com.zd.model.domain.ResultData;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 化学品智能报警Feign调用接口
+ */
+@FeignClient(contextId = "remoteChemicalAlarmService", value = ApplicationConstants.CHEMICAL_SERVICE, fallbackFactory = RemoteChemicalAlarmFallbackFactory.class)
+public interface RemoteChemicalAlarmService {
+
+    /**
+     * 化学品智能报警日志列表
+     */
+    @ApiOperation(value = "查询化学品数据列表")
+    @PostMapping("/hxpAlarmRecord/getList")
+    ResultData<List <LinkedHashMap <String,String>>> getList(@RequestBody Map alarmMap);
+
+    /**
+     * 修改报警日志变为已处理
+     */
+    @ApiOperation(value = "修改 化学品设备管理状态")
+    @PutMapping("/hxpAlarmRecord/handle")
+    ResultData<Boolean> updateStatus(@RequestBody Map alarmMap);
+}

+ 31 - 0
zd-api/zd-chemical-api/src/main/java/com/zd/chemical/api/fegin/RemoteChemicalService.java

@@ -0,0 +1,31 @@
+package com.zd.chemical.api.fegin;
+
+import com.zd.chemical.api.fegin.factory.RemoteChemicalFallbackFactory;
+import com.zd.model.constant.ApplicationConstants;
+import com.zd.model.domain.ResultData;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 化学品管理Feign调用接口
+ */
+@FeignClient(contextId = "remoteChemicalService", value = ApplicationConstants.CHEMICAL_SERVICE, fallbackFactory = RemoteChemicalFallbackFactory.class)
+public interface RemoteChemicalService {
+
+    /**
+     * 修改 化学品设备管理状态
+     */
+    @ApiOperation(value = "修改 化学品设备管理状态")
+    @PutMapping("/hxpSmartTerminal/update/status")
+    ResultData<Boolean> updateStatus(@RequestParam("ipAddress") String ipAddress, @RequestParam("terminalStatus")Integer terminalStatus);
+
+    @ApiOperation(value = "查询实验室化学品临界量风险指标")
+    @GetMapping("/hxpChemical/queryCriticaliBySubId")
+    ResultData<List<Map<String, Object>>> queryCriticaliBySubId(@RequestParam("subIds") List<Long> subIds);
+}

+ 7 - 7
zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/RemoteStockService.java

@@ -1,25 +1,25 @@
-package com.zd.system.api.feign;
+package com.zd.chemical.api.fegin;
 
 
+import com.zd.chemical.api.fegin.factory.RemoteStockFallbackFactory;
 import com.zd.model.constant.ApplicationConstants;
 import com.zd.model.constant.ApplicationConstants;
-import com.zd.model.domain.R;
-import com.zd.model.entity.InventoryTag;
-import com.zd.system.api.feign.factory.RemoteStockFallback;
+import com.zd.model.domain.ResultData;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RequestParam;
+
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
 
 
 /**
 /**
  * 化学品库存
  * 化学品库存
  */
  */
-@FeignClient(contextId = "remoteStockService", value = ApplicationConstants.CHEMICAL_SERVICE, fallbackFactory = RemoteStockFallback.class)
+@FeignClient(contextId = "remoteStockService", value = ApplicationConstants.CHEMICAL_SERVICE, fallbackFactory = RemoteStockFallbackFactory.class)
 public interface RemoteStockService {
 public interface RemoteStockService {
 
 
 
 
     @PostMapping(value = "/hxpStock/RFIDCheck")
     @PostMapping(value = "/hxpStock/RFIDCheck")
-    public R<Boolean> rfidCheck(@RequestBody InventoryTag tag);
+    public ResultData<Boolean> rfidCheck(@RequestBody Object tag);
 
 
     @GetMapping(value = "/hxpStock/expireCheck")
     @GetMapping(value = "/hxpStock/expireCheck")
     public void expireCheck();
     public void expireCheck();
@@ -34,7 +34,7 @@ public interface RemoteStockService {
     public void queryUplinkResult();
     public void queryUplinkResult();
 
 
     @GetMapping(value = "/hxpStock/sendSydSms")
     @GetMapping(value = "/hxpStock/sendSydSms")
-    public R sendSydSms(@RequestParam(value = "content") String content,
+    public ResultData sendSydSms(@RequestParam(value = "content") String content,
                         @RequestParam(value = "purpose") Integer purpose,
                         @RequestParam(value = "purpose") Integer purpose,
                         @RequestParam(value = "lockApplyId", required = false) Long lockApplyId,
                         @RequestParam(value = "lockApplyId", required = false) Long lockApplyId,
                         @RequestParam(value = "phones") @NotNull String... phones);
                         @RequestParam(value = "phones") @NotNull String... phones);

+ 30 - 0
zd-api/zd-chemical-api/src/main/java/com/zd/chemical/api/fegin/factory/RemoteCabinetFallbackFactory.java

@@ -0,0 +1,30 @@
+package com.zd.chemical.api.fegin.factory;
+
+
+import com.zd.chemical.api.fegin.RemoteCabinetService;
+import com.zd.model.domain.ResultData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class RemoteCabinetFallbackFactory implements FallbackFactory<RemoteCabinetService> {
+    private final static Logger logger = LoggerFactory.getLogger(RemoteCabinetFallbackFactory.class);
+
+    @Override
+    public RemoteCabinetService create(Throwable throwable) {
+        logger.error("化学品服务调用失败:{}", throwable.getMessage());
+        return new RemoteCabinetService() {
+
+            @Override
+            public ResultData<List<LinkedHashMap <String, String>>> getCabinetList(Map subMap) {
+                return ResultData.fail("获取机柜列表失败:" + throwable.getMessage());
+            }
+        };
+    }
+}

+ 36 - 0
zd-api/zd-chemical-api/src/main/java/com/zd/chemical/api/fegin/factory/RemoteChemicalAlarmFallbackFactory.java

@@ -0,0 +1,36 @@
+package com.zd.chemical.api.fegin.factory;
+
+
+import com.zd.chemical.api.fegin.RemoteChemicalAlarmService;
+import com.zd.model.domain.ResultData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+@Component
+public class RemoteChemicalAlarmFallbackFactory implements FallbackFactory<RemoteChemicalAlarmService> {
+    private final static Logger logger = LoggerFactory.getLogger(RemoteChemicalAlarmFallbackFactory.class);
+
+    @Override
+    public RemoteChemicalAlarmService create(Throwable throwable) {
+        logger.error("化学品服务调用失败:{}", throwable.getMessage());
+        return new RemoteChemicalAlarmService() {
+
+            @Override
+            public ResultData<List<LinkedHashMap <String, String>>> getList(Map alarmMap) {
+                return ResultData.fail("获取智能报警列表失败:" + throwable.getMessage());
+            }
+
+            @Override
+            public ResultData <Boolean> updateStatus(Map alarmMap) {
+                return ResultData.fail("变更智能报警日志已处理失败:" + throwable.getMessage());
+            }
+
+        };
+    }
+}

+ 38 - 0
zd-api/zd-chemical-api/src/main/java/com/zd/chemical/api/fegin/factory/RemoteChemicalFallbackFactory.java

@@ -0,0 +1,38 @@
+package com.zd.chemical.api.fegin.factory;
+
+import com.zd.chemical.api.fegin.RemoteChemicalService;
+import com.zd.model.domain.ResultData;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 考试服务降级处理
+ *
+ * @author zhoupan
+ */
+@Component
+public class RemoteChemicalFallbackFactory implements FallbackFactory<RemoteChemicalService> {
+    private static final Logger log = LoggerFactory.getLogger(RemoteChemicalFallbackFactory.class);
+
+    @Override
+    public RemoteChemicalService create(Throwable throwable) {
+        log.error("化学品管理调用失败:{}", throwable.getMessage());
+        return new RemoteChemicalService() {
+            @Override
+            public ResultData<Boolean> updateStatus(String ipAddress, Integer terminalStatus) {
+                return ResultData.fail("化学品管理调用失败:" + throwable.getMessage());
+            }
+
+            @Override
+            public ResultData<List<Map<String, Object>>> queryCriticaliBySubId(List<Long> subIds) {
+
+                return ResultData.fail("查询实验室化学品临界量风险指标失败:" + throwable.getMessage());
+            }
+        };
+    }
+}

+ 10 - 10
zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/factory/RemoteStockFallback.java

@@ -1,30 +1,30 @@
-package com.zd.system.api.feign.factory;
+package com.zd.chemical.api.fegin.factory;
 
 
 
 
-import com.zd.model.domain.R;
-import com.zd.model.entity.InventoryTag;
-import com.zd.system.api.feign.RemoteStockService;
+import com.zd.chemical.api.fegin.RemoteStockService;
+import com.zd.model.domain.ResultData;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
+
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
 
 
 /**
 /**
  * @author Administrator
  * @author Administrator
  */
  */
 @Component
 @Component
-public class RemoteStockFallback implements FallbackFactory<RemoteStockService> {
-    private static final Logger logger = LoggerFactory.getLogger(RemoteStockFallback.class);
+public class RemoteStockFallbackFactory implements FallbackFactory<RemoteStockService> {
+    private static final Logger logger = LoggerFactory.getLogger(RemoteStockFallbackFactory.class);
 
 
     @Override
     @Override
     public RemoteStockService create(Throwable throwable) {
     public RemoteStockService create(Throwable throwable) {
         logger.error("化学品服务调用失败:{}", throwable.getMessage());
         logger.error("化学品服务调用失败:{}", throwable.getMessage());
         return new RemoteStockService() {
         return new RemoteStockService() {
             @Override
             @Override
-            public R<Boolean> rfidCheck(InventoryTag tag) {
+            public ResultData<Boolean> rfidCheck(Object tag) {
                 logger.error("保存调用失败:{}" ,throwable.getMessage());
                 logger.error("保存调用失败:{}" ,throwable.getMessage());
-                return R.fail("保存调用失败:" + throwable.getMessage());
+                return ResultData.fail("保存调用失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
@@ -48,9 +48,9 @@ public class RemoteStockFallback implements FallbackFactory<RemoteStockService>
             }
             }
 
 
             @Override
             @Override
-            public R sendSydSms(String content, Integer purpose, Long lockApplyId, @NotNull String... phones) {
+            public ResultData sendSydSms(String content, Integer purpose, Long lockApplyId, @NotNull String... phones) {
                 logger.error("四医大短信调用失败:{}" ,throwable.getMessage());
                 logger.error("四医大短信调用失败:{}" ,throwable.getMessage());
-                return R.fail("四医大短信调用失败:" + throwable.getMessage());
+                return ResultData.fail("四医大短信调用失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override

+ 6 - 0
zd-api/zd-chemical-api/src/main/resources/META-INF/spring.factories

@@ -0,0 +1,6 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+  com.zd.chemical.api.fegin.factory.RemoteCabinetFallbackFactory,\
+  com.zd.chemical.api.fegin.factory.RemoteChemicalAlarmFallbackFactory,\
+  com.zd.chemical.api.fegin.factory.RemoteChemicalFallbackFactory,\
+  com.zd.chemical.api.fegin.factory.RemoteStockFallbackFactory,\
+

+ 20 - 18
zd-api/zd-exam-api/src/main/java/com/zd/exam/api/feign/RemoteExamService.java

@@ -1,13 +1,15 @@
 package com.zd.exam.api.feign;
 package com.zd.exam.api.feign;
 
 
+import com.zd.exam.api.entity.ElResources;
 import com.zd.exam.api.feign.fallback.RemoteExamFallback;
 import com.zd.exam.api.feign.fallback.RemoteExamFallback;
 import com.zd.model.constant.ApplicationConstants;
 import com.zd.model.constant.ApplicationConstants;
 import com.zd.model.domain.R;
 import com.zd.model.domain.R;
-import com.zd.exam.api.entity.ElResources;
+import com.zd.model.domain.ResultData;
 import com.zd.model.page.TableDataInfo;
 import com.zd.model.page.TableDataInfo;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
+
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -33,21 +35,21 @@ public interface RemoteExamService {
      */
      */
     @ApiOperation(value = "去考试自动创建试卷")
     @ApiOperation(value = "去考试自动创建试卷")
     @PostMapping(value = "/paper/create-paper")
     @PostMapping(value = "/paper/create-paper")
-    public R<Object> createPaper(@RequestBody Map elPaper);
+    public ResultData<Object> createPaper(@RequestBody Map elPaper);
 
 
     /**
     /**
      * 交卷操作
      * 交卷操作
      */
      */
     @ApiOperation(value = "交卷操作")
     @ApiOperation(value = "交卷操作")
     @PostMapping(value = "/paper/handPaper")
     @PostMapping(value = "/paper/handPaper")
-    public R<Object> handPaper(@RequestBody Map id);
+    public ResultData<Object> handPaper(@RequestBody Map id);
 
 
     /**
     /**
      * 答题过程根据 paperId 和 quId 查询问题和选项
      * 答题过程根据 paperId 和 quId 查询问题和选项
      */
      */
     @ApiOperation(value = "查询问题和选项")
     @ApiOperation(value = "查询问题和选项")
     @PostMapping(value = "/paper/paperDetail")
     @PostMapping(value = "/paper/paperDetail")
-    public R<Object> queryQuDetail(@RequestBody Map paperQu);
+    public ResultData<Object> queryQuDetail(@RequestBody Map paperQu);
 
 
     /**
     /**
      * 填充答案 下一题实时保存上题答案
      * 填充答案 下一题实时保存上题答案
@@ -56,53 +58,53 @@ public interface RemoteExamService {
      */
      */
     @ApiOperation(value = "保存用户答案")
     @ApiOperation(value = "保存用户答案")
     @PostMapping(value = "/paper/fillAnswer")
     @PostMapping(value = "/paper/fillAnswer")
-    public R<Object> fillAnswer(@RequestBody Map<String,Object> paperQuMap);
+    public ResultData<Object> fillAnswer(@RequestBody Map<String,Object> paperQuMap);
 
 
     /**
     /**
      * 获取试卷管理详细信息(答题卡信息)
      * 获取试卷管理详细信息(答题卡信息)
      */
      */
     @GetMapping(value = "/paper/{id}")
     @GetMapping(value = "/paper/{id}")
-    public R<Object> getInfo(@PathVariable("id") Long id);
+    public ResultData<Object> getInfo(@PathVariable("id") Long id);
 
 
 
 
     /**
     /**
      * 根据用户id,修改积分内容
      * 根据用户id,修改积分内容
      */
      */
     @PostMapping(value = "/points/record/recoveryPoints")
     @PostMapping(value = "/points/record/recoveryPoints")
-    public R<Object> recoveryPoints(@RequestBody Map<String,Object> recovery);
+    public ResultData<Object> recoveryPoints(@RequestBody Map<String,Object> recovery);
 
 
     /**
     /**
      * 根据积分类型,扣除积分相关内容
      * 根据积分类型,扣除积分相关内容
      */
      */
     @PostMapping(value = "/points/record/deductionPoints")
     @PostMapping(value = "/points/record/deductionPoints")
-    public R<Object> deductionPoints(@RequestBody Map<String,Object> deductionPoint);
+    public ResultData<Object> deductionPoints(@RequestBody Map<String,Object> deductionPoint);
 
 
     /**
     /**
      * 获取积分配置表信息
      * 获取积分配置表信息
      */
      */
     @PostMapping(value = "/markconfig/getPointsConfig")
     @PostMapping(value = "/markconfig/getPointsConfig")
-    public R<Object> getPointsConfig(@RequestBody Map<String,Object> markconfig);
+    public ResultData<Object> getPointsConfig(@RequestBody Map<String,Object> markconfig);
 
 
 
 
     /**
     /**
      * 初始化奖励积分
      * 初始化奖励积分
      */
      */
     @PostMapping(value = "/points/record/initCreditPoints")
     @PostMapping(value = "/points/record/initCreditPoints")
-    public R<Object> initCreditPoints(@RequestBody Map<String,Object> initMap);
+    public ResultData<Object> initCreditPoints(@RequestBody Map<String,Object> initMap);
 
 
 
 
     /**
     /**
      * 获取奖励分接口
      * 获取奖励分接口
      */
      */
     @PostMapping(value = "/points/record/obtainBonusPoints")
     @PostMapping(value = "/points/record/obtainBonusPoints")
-    public R<Object> obtainBonusPoints(@RequestBody Map<String,Object> obtainMap);
+    public ResultData<Object> obtainBonusPoints(@RequestBody Map<String,Object> obtainMap);
 
 
 
 
     /**
     /**
      * 获取上月未违规记录接口
      * 获取上月未违规记录接口
      */
      */
     @PostMapping(value = "/points/record/getLastMonthViolation")
     @PostMapping(value = "/points/record/getLastMonthViolation")
-    public R<Object> getLastMonthViolation(@RequestBody Map<String,Object> obtainMap);
+    public ResultData<Object> getLastMonthViolation(@RequestBody Map<String,Object> obtainMap);
 
 
 
 
     /**
     /**
@@ -110,7 +112,7 @@ public interface RemoteExamService {
      */
      */
     @ApiOperation(value = "查询考试结果")
     @ApiOperation(value = "查询考试结果")
     @PostMapping(value = "/paper/paperResult")
     @PostMapping(value = "/paper/paperResult")
-    public R<Map> paperResult(Map elPaper);
+    public ResultData<Map> paperResult(Map elPaper);
 
 
     /**
     /**
      * 查询当前用户考试记录列表
      * 查询当前用户考试记录列表
@@ -128,7 +130,7 @@ public interface RemoteExamService {
      * 考试过程 查询当前考题的正确和错误数量
      * 考试过程 查询当前考题的正确和错误数量
      */
      */
     @GetMapping(value = "/paper/paperStatistics/{id}")
     @GetMapping(value = "/paper/paperStatistics/{id}")
-    public R<Object> getPaperStatistics(@PathVariable("id") Long id);
+    public ResultData<Object> getPaperStatistics(@PathVariable("id") Long id);
 
 
     /**
     /**
      * 超时弃考
      * 超时弃考
@@ -148,10 +150,10 @@ public interface RemoteExamService {
      * 根据登录用户查询 我的积分统计
      * 根据登录用户查询 我的积分统计
      */
      */
     @PostMapping("/points/record/count/myApp")
     @PostMapping("/points/record/count/myApp")
-    public R<Object> recordMyAppCount();
+    public ResultData<Object> recordMyAppCount();
 
 
     @PostMapping("/points/record/exits")
     @PostMapping("/points/record/exits")
-    public R<Object> findByUserId(@RequestBody Map<String, Object> map);
+    public ResultData<Object> findByUserId(@RequestBody Map<String, Object> map);
 
 
     /**
     /**
      * 进入/出加奖励分
      * 进入/出加奖励分
@@ -167,13 +169,13 @@ public interface RemoteExamService {
      * @return
      * @return
      */
      */
     @PostMapping("/rewardconfig/getBonusPointsConfig")
     @PostMapping("/rewardconfig/getBonusPointsConfig")
-    public R getBonusPointsConfig(@RequestBody Map map);
+    public ResultData getBonusPointsConfig(@RequestBody Map map);
 
 
     /**
     /**
      * 获取所有的学习资源
      * 获取所有的学习资源
      * @return
      * @return
      */
      */
     @RequestMapping("/el_resources/listAll")
     @RequestMapping("/el_resources/listAll")
-    public R<List<ElResources>> listAll();
+    public ResultData<List<ElResources>> listAll();
 
 
 }
 }

+ 43 - 40
zd-api/zd-exam-api/src/main/java/com/zd/exam/api/feign/fallback/RemoteExamFallback.java

@@ -1,8 +1,10 @@
 package com.zd.exam.api.feign.fallback;
 package com.zd.exam.api.feign.fallback;
 
 
+import com.zd.exam.api.entity.ElResources;
 import com.zd.exam.api.feign.RemoteExamService;
 import com.zd.exam.api.feign.RemoteExamService;
+import com.zd.model.constant.HttpStatus;
 import com.zd.model.domain.R;
 import com.zd.model.domain.R;
-import com.zd.exam.api.entity.ElResources;
+import com.zd.model.domain.ResultData;
 import com.zd.model.page.TableDataInfo;
 import com.zd.model.page.TableDataInfo;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
@@ -28,73 +30,73 @@ public class RemoteExamFallback implements FallbackFactory<RemoteExamService> {
             @Override
             @Override
             public TableDataInfo list(Map exam) {
             public TableDataInfo list(Map exam) {
                 TableDataInfo dataInfo = new TableDataInfo<>();
                 TableDataInfo dataInfo = new TableDataInfo<>();
-                dataInfo.setCode(R.FAIL);
+                dataInfo.setCode(HttpStatus.ERROR);
                 return dataInfo;
                 return dataInfo;
             }
             }
 
 
             @Override
             @Override
-            public R<Object> createPaper(Map elPaper) {
-                return R.fail("开始考试失败:" + throwable.getMessage());
+            public ResultData<Object> createPaper(Map elPaper) {
+                return ResultData.fail("开始考试失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Object> handPaper(Map elPaper) {
-                return R.fail("交卷失败:" + throwable.getMessage());
+            public ResultData<Object> handPaper(Map elPaper) {
+                return ResultData.fail("交卷失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Object> queryQuDetail(Map paperQu) {
-                return R.fail("调用答题过程失败:" + throwable.getMessage());
+            public ResultData<Object> queryQuDetail(Map paperQu) {
+                return ResultData.fail("调用答题过程失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Object> fillAnswer(Map<String,Object> paperQuMap) {
-                return R.fail("提交答案失败:" + throwable.getMessage());
+            public ResultData<Object> fillAnswer(Map<String,Object> paperQuMap) {
+                return ResultData.fail("提交答案失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Object> getInfo(Long id) {
-                return R.fail("获取试卷管理详细信息失败:" + throwable.getMessage());
+            public ResultData<Object> getInfo(Long id) {
+                return ResultData.fail("获取试卷管理详细信息失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Object> recoveryPoints(Map<String,Object> recovery) {
+            public ResultData<Object> recoveryPoints(Map<String,Object> recovery) {
                 if(recovery.get("pointsType")!=null && recovery.get("pointsType").equals("2")){
                 if(recovery.get("pointsType")!=null && recovery.get("pointsType").equals("2")){
-                    return R.fail("移除黑名单失败:" + throwable.getMessage());
+                    return ResultData.fail("移除黑名单失败:" + throwable.getMessage());
                 }else if(recovery.get("pointsType")!=null && recovery.get("pointsType").equals("1")){
                 }else if(recovery.get("pointsType")!=null && recovery.get("pointsType").equals("1")){
-                    return R.fail("移除负面清单失败:" + throwable.getMessage());
+                    return ResultData.fail("移除负面清单失败:" + throwable.getMessage());
                 }
                 }
-                return R.fail("移除失败:" + throwable.getMessage());
+                return ResultData.fail("移除失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Object> deductionPoints(Map<String,Object> deductionPoint) {
-                return R.fail("扣除积分失败:" + throwable.getMessage());
+            public ResultData<Object> deductionPoints(Map<String,Object> deductionPoint) {
+                return ResultData.fail("扣除积分失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Object> getPointsConfig(Map<String,Object> markconfig) {
-                return R.fail("获取积分列表失败:" + throwable.getMessage());
+            public ResultData<Object> getPointsConfig(Map<String,Object> markconfig) {
+                return ResultData.fail("获取积分列表失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Object> initCreditPoints(Map<String,Object> initMap) {
-                return R.fail("初始化积分失败:" + throwable.getMessage());
+            public ResultData<Object> initCreditPoints(Map<String,Object> initMap) {
+                return ResultData.fail("初始化积分失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Object> obtainBonusPoints(Map<String,Object> obtainMap) {
-                return R.fail("获取奖励积分失败:" + throwable.getMessage());
+            public ResultData<Object> obtainBonusPoints(Map<String,Object> obtainMap) {
+                return ResultData.fail("获取奖励积分失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Object> getLastMonthViolation(Map<String,Object> obtainMap) {
-                return R.fail("获取上月的违规记录列表失败:" + throwable.getMessage());
+            public ResultData<Object> getLastMonthViolation(Map<String,Object> obtainMap) {
+                return ResultData.fail("获取上月的违规记录列表失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Map> paperResult(Map elPaper) {
-                return R.fail("查询考试结果失败:" + throwable.getMessage());
+            public ResultData<Map> paperResult(Map elPaper) {
+                return ResultData.fail("查询考试结果失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
@@ -108,13 +110,14 @@ public class RemoteExamFallback implements FallbackFactory<RemoteExamService> {
             @Override
             @Override
             public TableDataInfo queryMyCert(Map<String, Object> userCert) {
             public TableDataInfo queryMyCert(Map<String, Object> userCert) {
                 TableDataInfo dataInfo = new TableDataInfo<>();
                 TableDataInfo dataInfo = new TableDataInfo<>();
-                dataInfo.setCode(R.FAIL);
+                dataInfo.setCode(HttpStatus.ERROR);
+
                 return dataInfo;
                 return dataInfo;
             }
             }
 
 
             @Override
             @Override
-            public R<Object> getPaperStatistics(Long id) {
-                return R.fail("查询当前考题的正确和错误数量失败:" + throwable.getMessage());
+            public ResultData<Object> getPaperStatistics(Long id) {
+                return ResultData.fail("查询当前考题的正确和错误数量失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
@@ -125,18 +128,18 @@ public class RemoteExamFallback implements FallbackFactory<RemoteExamService> {
             @Override
             @Override
             public TableDataInfo recordMyApp(Map<String, Object> myApp) {
             public TableDataInfo recordMyApp(Map<String, Object> myApp) {
                 TableDataInfo dataInfo = new TableDataInfo<>();
                 TableDataInfo dataInfo = new TableDataInfo<>();
-                dataInfo.setCode(R.FAIL);
+                dataInfo.setCode(HttpStatus.ERROR);
                 return dataInfo;
                 return dataInfo;
             }
             }
 
 
             @Override
             @Override
-            public R<Object> recordMyAppCount() {
-                return R.fail("查询我的积分统计失败:" + throwable.getMessage());
+            public ResultData<Object> recordMyAppCount() {
+                return ResultData.fail("查询我的积分统计失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Object> findByUserId(Map<String, Object> map) {
-               return R.fail("查询用户是否存在积分表失败:" + throwable.getMessage());
+            public ResultData<Object> findByUserId(Map<String, Object> map) {
+               return ResultData.fail("查询用户是否存在积分表失败:" + throwable.getMessage());
             }
             }
 
 
             /**
             /**
@@ -157,13 +160,13 @@ public class RemoteExamFallback implements FallbackFactory<RemoteExamService> {
              * @return
              * @return
              */
              */
             @Override
             @Override
-            public R getBonusPointsConfig(Map map) {
-                return R.fail("获取奖励分配置失败:" + throwable.getMessage());
+            public ResultData getBonusPointsConfig(Map map) {
+                return ResultData.fail("获取奖励分配置失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<List<ElResources>> listAll() {
-                return R.fail("获取学习资源列表失败:" + throwable.getMessage());
+            public ResultData<List<ElResources>> listAll() {
+                return ResultData.fail("获取学习资源列表失败:" + throwable.getMessage());
             }
             }
         };
         };
     }
     }

+ 5 - 1
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/RemoteLaboratoryService.java

@@ -1,6 +1,9 @@
 package com.zd.laboratory.api.feign;
 package com.zd.laboratory.api.feign;
 
 
-import com.zd.laboratory.api.entity.*;
+import com.zd.laboratory.api.entity.LabGradeManageRecord;
+import com.zd.laboratory.api.entity.LabMessageContent;
+import com.zd.laboratory.api.entity.LabSubjectVO;
+import com.zd.laboratory.api.entity.RemoteLabHardware;
 import com.zd.laboratory.api.feign.fallback.RemoteLaboratoryFallbackFactory;
 import com.zd.laboratory.api.feign.fallback.RemoteLaboratoryFallbackFactory;
 import com.zd.laboratory.api.vo.LabGradeManageWorkVO;
 import com.zd.laboratory.api.vo.LabGradeManageWorkVO;
 import com.zd.model.constant.ApplicationConstants;
 import com.zd.model.constant.ApplicationConstants;
@@ -15,6 +18,7 @@ import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
+
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.List;

+ 2 - 1
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/RemoteSubQueryService.java

@@ -11,6 +11,7 @@ import com.zd.model.entity.SubQueryConfig;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
+
 import javax.validation.Valid;
 import javax.validation.Valid;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -26,7 +27,7 @@ public interface RemoteSubQueryService {
      */
      */
     @ApiOperation(value = "查询实验室详情")
     @ApiOperation(value = "查询实验室详情")
     @PostMapping("/subject/manger/V2/diy/{id}/common")
     @PostMapping("/subject/manger/V2/diy/{id}/common")
-    R<Object> getSafeWarnCount(@PathVariable("id") Long id,@RequestBody SubQueryConfig subQueryConfig);
+    R<Object> getSafeWarnCount(@PathVariable("id") Long id, @RequestBody SubQueryConfig subQueryConfig);
 
 
 
 
 
 

+ 5 - 1
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/fallback/RemoteLaboratoryFallbackFactory.java

@@ -1,6 +1,9 @@
 package com.zd.laboratory.api.feign.fallback;
 package com.zd.laboratory.api.feign.fallback;
 
 
-import com.zd.laboratory.api.entity.*;
+import com.zd.laboratory.api.entity.LabGradeManageRecord;
+import com.zd.laboratory.api.entity.LabMessageContent;
+import com.zd.laboratory.api.entity.LabSubjectVO;
+import com.zd.laboratory.api.entity.RemoteLabHardware;
 import com.zd.laboratory.api.feign.RemoteLaboratoryService;
 import com.zd.laboratory.api.feign.RemoteLaboratoryService;
 import com.zd.laboratory.api.vo.LabGradeManageWorkVO;
 import com.zd.laboratory.api.vo.LabGradeManageWorkVO;
 import com.zd.model.domain.AjaxResult;
 import com.zd.model.domain.AjaxResult;
@@ -15,6 +18,7 @@ import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
+
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.List;

+ 1 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/fallback/RemoteSubQueryFallbackFactory.java

@@ -10,6 +10,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
+
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 

+ 2 - 1
zd-model/src/main/java/com/zd/model/entity/InventoryTag.java

@@ -1,5 +1,6 @@
-package com.zd.model.entity;
+package com.zd.laboratory.api.vo;
 
 
+import com.zd.laboratory.api.entity.RemoteLabHardware;
 import lombok.Data;
 import lombok.Data;
 import lombok.ToString;
 import lombok.ToString;
 
 

+ 29 - 0
zd-api/zd-system-api/src/main/java/com/zd/system/api/entity/CommonCount.java

@@ -0,0 +1,29 @@
+package com.zd.system.api.entity;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/11/18/16:00
+ * @Description:
+ */
+public class CommonCount {
+
+    int count;
+
+    Long id;
+
+    public int getCount() {
+        return count;
+    }
+
+    public void setCount(int count) {
+        this.count = count;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+}

+ 225 - 0
zd-api/zd-system-api/src/main/java/com/zd/system/api/entity/LabStudentsInfo.java

@@ -0,0 +1,225 @@
+package com.zd.system.api.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.zd.model.annotation.Excel;
+import com.zd.model.entity.BaseEntity;
+import com.zd.model.enums.AuditStatusEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+
+/**
+ * 学生信息对象 lab_students_info
+ *
+ * @author zhoupan
+ * @date 2021-09-10
+ */
+@ApiModel("学生卡审核信息")
+public class LabStudentsInfo extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 学生ID(userId)
+     */
+    @Excel(name = "学生ID", readConverterExp = "u=serId")
+    @ApiModelProperty(value = "学生ID")
+    private Long joinStudentsId;
+    /**
+     * 学生卡图片
+     */
+    @Excel(name = "学生卡图片")
+
+    @ApiModelProperty(value = "学生卡图片")
+    private String card;
+    /**
+     * 人脸信息图片
+     */
+    @Excel(name = "人脸信息图片")
+    @ApiModelProperty(value = "人脸信息图片")
+    private String faceImg;
+
+    /**
+     * 审核类型 不接收前端传值
+     */
+    @ApiModelProperty(value = "审核类型不接收前端传值")
+    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
+    private AuditStatusEnum auditStatus;
+
+    /**
+     * 审核人id 不接收前端传值
+     */
+    @ApiModelProperty(value = "审核人id不接收前端传值")
+    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
+    private Long auditUser;
+
+    /**
+     * 申请时间 不接收前端传值
+     */
+    @ApiModelProperty(value = "申请时间不接收前端传值")
+    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date commitTime;
+
+    /**
+     * 人脸特征
+     */
+    @ApiModelProperty(value = "人脸特征")
+    private byte[]  faceFeature;
+
+    private Boolean IfFaceFeature;
+
+    public Boolean getIfFaceFeature()
+    {
+        return IfFaceFeature;
+    }
+
+    public void setIfFaceFeature(Boolean ifFaceFeature) {
+        IfFaceFeature = ifFaceFeature;
+    }
+
+    public byte[] getFaceFeature() {
+        return faceFeature;
+    }
+
+    public void setFaceFeature(byte[] faceFeature) {
+        this.faceFeature = faceFeature;
+    }
+
+    public Date getCommitTime() {
+        return commitTime;
+    }
+
+    public void setCommitTime(Date commitTime) {
+        this.commitTime = commitTime;
+    }
+
+    public Long getAuditUser() {
+        return auditUser;
+    }
+
+    public void setAuditUser(Long auditUser) {
+        this.auditUser = auditUser;
+    }
+
+    public AuditStatusEnum getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(AuditStatusEnum auditStatus) {
+        this.auditStatus = auditStatus;
+    }
+
+    /**
+     * 部门id
+     */
+    @Excel(name = "部门id")
+    @ApiModelProperty(value = "部门id")
+    private Long deptId;
+    /**
+     * 部门名称
+     */
+    @Excel(name = "部门名称")
+    @ApiModelProperty(value = "部门名称")
+    private String deptName;
+    /**
+     * 创建人(用于数据权限)
+     */
+    @Excel(name = "创建人", readConverterExp = "用=于数据权限")
+    @ApiModelProperty(value = "创建人")
+    private Long userId;
+
+    @ApiModelProperty(value = "意见")
+    private String opinions;
+
+    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
+    @ApiModelProperty(value = "审核时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date auditTime;
+
+    public String getOpinions() {
+        return opinions;
+    }
+
+    public void setOpinions(String opinions) {
+        this.opinions = opinions;
+    }
+
+    public Date getAuditTime() {
+        return auditTime;
+    }
+
+    public void setAuditTime(Date auditTime) {
+        this.auditTime = auditTime;
+    }
+
+
+    public void setJoinStudentsId(Long joinStudentsId) {
+        this.joinStudentsId = joinStudentsId;
+    }
+
+    public Long getJoinStudentsId() {
+        return joinStudentsId;
+    }
+
+    public void setCard(String card) {
+        this.card = card;
+    }
+
+    public String getCard() {
+        return card;
+    }
+
+    public void setFaceImg(String faceImg) {
+        this.faceImg = faceImg;
+    }
+
+    public String getFaceImg() {
+        return faceImg;
+    }
+
+    public void setDeptId(Long deptId) {
+        this.deptId = deptId;
+    }
+
+    public Long getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("joinStudentsId", getJoinStudentsId())
+                .append("card", getCard())
+                .append("faceImg", getFaceImg())
+                .append("deptId", getDeptId())
+                .append("deptName", getDeptName())
+                .append("userId", getUserId())
+                .append("remark", getRemark())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .toString();
+    }
+}

+ 45 - 0
zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/RemoteDeptService.java

@@ -0,0 +1,45 @@
+package com.zd.system.api.feign;
+
+import com.zd.model.constant.ApplicationConstants;
+import com.zd.model.domain.AjaxResult;
+import com.zd.model.domain.R;
+import com.zd.model.entity.SysDept;
+import com.zd.system.api.feign.factory.RemoteDeptFallbackFactory;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 部门服务
+ *
+ * @author zd
+ */
+@FeignClient(contextId = "remoteDeptService", value = ApplicationConstants.SYSTEM_SERVICE, fallbackFactory = RemoteDeptFallbackFactory.class)
+public interface RemoteDeptService {
+    /**
+     * 查询部门列表
+     *
+     * @param sysDept 用户名
+     * @return 结果
+     */
+    @PostMapping("/dept/listOption")
+    public R<List<SysDept>> getDeptList(@RequestBody SysDept sysDept);
+
+    @ApiOperation("通过ids 查询所有的本节点和父节点ID集合")
+    @PostMapping("/dept/allParentId")
+    public AjaxResult allParentId(@RequestBody List<Long> deptIds);
+
+    @ApiOperation(value = "用户查询是否有电子签章")
+    @GetMapping("/dept/sign/queryDeptSignByUserId")
+    Map<String, Object> queryDeptSignByUserId();
+
+    @ApiOperation(value = "根据部门id查询部门信息")
+    @GetMapping("/dept/info/{id}")
+    AjaxResult getInfoById(@PathVariable("id") Long id);
+}

+ 3 - 3
zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/RemoteLogService.java

@@ -2,7 +2,7 @@ package com.zd.system.api.feign;
 
 
 import com.zd.model.constant.ApplicationConstants;
 import com.zd.model.constant.ApplicationConstants;
 import com.zd.model.constant.SecurityConstants;
 import com.zd.model.constant.SecurityConstants;
-import com.zd.model.domain.R;
+import com.zd.model.domain.ResultData;
 import com.zd.system.api.entity.SysLogininfor;
 import com.zd.system.api.entity.SysLogininfor;
 import com.zd.system.api.entity.SysOperLog;
 import com.zd.system.api.entity.SysOperLog;
 import com.zd.system.api.feign.factory.RemoteLogFallback;
 import com.zd.system.api.feign.factory.RemoteLogFallback;
@@ -26,7 +26,7 @@ public interface RemoteLogService {
      * @return 结果
      * @return 结果
      */
      */
     @PostMapping("/operlog")
     @PostMapping("/operlog")
-    public R<Boolean> saveLog(@RequestBody SysOperLog sysOperLog, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    public ResultData<Boolean> saveLog(@RequestBody SysOperLog sysOperLog, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
 
     /**
     /**
      * 保存访问记录
      * 保存访问记录
@@ -36,5 +36,5 @@ public interface RemoteLogService {
      * @return 结果
      * @return 结果
      */
      */
     @PostMapping("/logininfor")
     @PostMapping("/logininfor")
-    public R<Boolean> saveLogininfor(@RequestBody SysLogininfor sysLogininfor, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    public ResultData<Boolean> saveLogininfor(@RequestBody SysLogininfor sysLogininfor, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }
 }

+ 32 - 25
zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/RemoteUserService.java

@@ -3,7 +3,7 @@ package com.zd.system.api.feign;
 import com.zd.model.constant.ApplicationConstants;
 import com.zd.model.constant.ApplicationConstants;
 import com.zd.model.constant.SecurityConstants;
 import com.zd.model.constant.SecurityConstants;
 import com.zd.model.domain.AjaxResult;
 import com.zd.model.domain.AjaxResult;
-import com.zd.model.domain.R;
+import com.zd.model.domain.ResultData;
 import com.zd.model.entity.LoginUser;
 import com.zd.model.entity.LoginUser;
 import com.zd.model.entity.SysUser;
 import com.zd.model.entity.SysUser;
 import com.zd.system.api.feign.factory.RemoteUserFallback;
 import com.zd.system.api.feign.factory.RemoteUserFallback;
@@ -14,6 +14,7 @@ import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
+
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -31,7 +32,8 @@ public interface RemoteUserService {
      * @return 结果
      * @return 结果
      */
      */
     @GetMapping("/user/info/{username}")
     @GetMapping("/user/info/{username}")
-    R<LoginUser> getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    ResultData<LoginUser> getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
     /**
     /**
      * 通过用户名查询用户信息
      * 通过用户名查询用户信息
      *
      *
@@ -40,8 +42,8 @@ public interface RemoteUserService {
      * @return 结果
      * @return 结果
      */
      */
     @GetMapping("/user/info/{username}/{loginType}")
     @GetMapping("/user/info/{username}/{loginType}")
-     R<LoginUser> getUserInfo(@PathVariable("username") String username, @PathVariable("loginType") Integer loginType,
-                                    @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    ResultData<LoginUser> getUserInfo(@PathVariable("username") String username, @PathVariable("loginType") Integer loginType,
+                                      @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
 
     /**
     /**
      * 通过用户ID查询用户信息
      * 通过用户ID查询用户信息
@@ -51,7 +53,7 @@ public interface RemoteUserService {
      * @return 结果
      * @return 结果
      */
      */
     @GetMapping("/user/info/id/{id}")
     @GetMapping("/user/info/id/{id}")
-     R<SysUser> getUserInfoByUserId(@PathVariable("id") Long id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    ResultData<SysUser> getUserInfoByUserId(@PathVariable("id") Long id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
 
 
 
     /**
     /**
@@ -62,16 +64,17 @@ public interface RemoteUserService {
      * @return 结果
      * @return 结果
      */
      */
     @GetMapping("/user/info/username/{username}")
     @GetMapping("/user/info/username/{username}")
-     R<SysUser> getUserInfoByUserName(@PathVariable("username") String userName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    ResultData<SysUser> getUserInfoByUserName(@PathVariable("username") String userName, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
     /**
     /**
      * 通过用户卡号查询用户信息
      * 通过用户卡号查询用户信息
      *
      *
      * @param cardnum 用户账户
      * @param cardnum 用户账户
-     * @param source   请求来源
+     * @param source  请求来源
      * @return 结果
      * @return 结果
      */
      */
     @GetMapping("/user/info/cardnum/{cardnum}")
     @GetMapping("/user/info/cardnum/{cardnum}")
-     R<SysUser> getUserInfoByCardNum(@PathVariable("cardnum")String cardnum, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    ResultData<SysUser> getUserInfoByCardNum(@PathVariable("cardnum") String cardnum, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
 
     /**
     /**
      * 注册用户信息
      * 注册用户信息
@@ -81,18 +84,19 @@ public interface RemoteUserService {
      * @return 结果
      * @return 结果
      */
      */
     @PostMapping("/user/register")
     @PostMapping("/user/register")
-     R<Boolean> registerUserInfo(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    ResultData<Boolean> registerUserInfo(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
 
 
 
     @GetMapping("/user/my/info/Simple")
     @GetMapping("/user/my/info/Simple")
-     R<SimpleUserVO> myInfoSimple(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    ResultData<SimpleUserVO> myInfoSimple(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
     /**
     /**
      * 获取所有可用户IDS
      * 获取所有可用户IDS
      *
      *
      * @return 结果
      * @return 结果
      */
      */
     @GetMapping("/user/all")
     @GetMapping("/user/all")
-     R<List<Long>> userALLIDS(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    ResultData<List<Long>> userALLIDS(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
 
 
 
     /**
     /**
@@ -101,7 +105,8 @@ public interface RemoteUserService {
      * @return 结果
      * @return 结果
      */
      */
     @GetMapping("/user/phone/{ids}")
     @GetMapping("/user/phone/{ids}")
-     R<List<String>> getPhoneByUserIDS(@PathVariable("ids") String ids);
+    ResultData<List<String>> getPhoneByUserIDS(@PathVariable("ids") String ids);
+
     /**
     /**
      * 获取指定院系用户IDS
      * 获取指定院系用户IDS
      *
      *
@@ -109,7 +114,7 @@ public interface RemoteUserService {
      * @return 结果
      * @return 结果
      */
      */
     @GetMapping("/user/dept/{deptIds}")
     @GetMapping("/user/dept/{deptIds}")
-     R<List<Long>> userDeptIDS(@PathVariable("deptIds") String deptId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+    ResultData<List<Long>> userDeptIDS(@PathVariable("deptIds") String deptId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
 
 
 
     /**
     /**
@@ -117,7 +122,7 @@ public interface RemoteUserService {
      */
      */
     @ApiOperation(value = "小程序查询院系列表(用户端,管理端)")
     @ApiOperation(value = "小程序查询院系列表(用户端,管理端)")
     @GetMapping(value = "/dept/departments/list")
     @GetMapping(value = "/dept/departments/list")
-     R<Object> departmentsList();
+    ResultData<Object> departmentsList();
 
 
 
 
     /**
     /**
@@ -125,7 +130,7 @@ public interface RemoteUserService {
      */
      */
     @ApiOperation(value = "小程序查询院系下楼栋列表(用户端,管理端)")
     @ApiOperation(value = "小程序查询院系下楼栋列表(用户端,管理端)")
     @GetMapping(value = "/dept/{deptId}/building/list")
     @GetMapping(value = "/dept/{deptId}/building/list")
-     R<Object> building(@PathVariable("deptId") Long deptId);
+    ResultData<Object> building(@PathVariable("deptId") Long deptId);
 
 
     /**
     /**
      * 登录查询大屏用户的路由菜单
      * 登录查询大屏用户的路由菜单
@@ -137,56 +142,58 @@ public interface RemoteUserService {
      * 大屏用户权限判断
      * 大屏用户权限判断
      */
      */
     @GetMapping("/role/authUser/power")
     @GetMapping("/role/authUser/power")
-     AjaxResult selectAuthUserPower(@RequestParam("userId") Long userId);
+    AjaxResult selectAuthUserPower(@RequestParam("userId") Long userId);
 
 
     /**
     /**
      * 修改学生信息
      * 修改学生信息
      */
      */
     @PutMapping("/user/student")
     @PutMapping("/user/student")
-     AjaxResult editUser(@RequestBody SysUser user);
+    AjaxResult editUser(@RequestBody SysUser user);
 
 
     /**
     /**
      * 修改学生信息
      * 修改学生信息
      */
      */
     @PutMapping("/user/student/editStudent")
     @PutMapping("/user/student/editStudent")
-     AjaxResult editStudent(@RequestBody SysUser user);
+    ResultData editStudent(@RequestBody SysUser user);
 
 
     @PostMapping(value = "/user/updateSignature", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
     @PostMapping(value = "/user/updateSignature", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
-     R updateSignature(@RequestPart("file") MultipartFile file);
+    ResultData updateSignature(@RequestPart("file") MultipartFile file);
 
 
 
 
     /**
     /**
      * 获取用户默认密码
      * 获取用户默认密码
      */
      */
     @GetMapping("/config/configKey/{configKey}")
     @GetMapping("/config/configKey/{configKey}")
-     AjaxResult getConfigKey(@PathVariable("configKey") String configKey);
+    AjaxResult getConfigKey(@PathVariable("configKey") String configKey);
 
 
     @PostMapping("/user/querySignature")
     @PostMapping("/user/querySignature")
-    R querySignature();
+    ResultData querySignature();
 
 
 
 
     /**
     /**
      * 获取用户默认密码
      * 获取用户默认密码
      */
      */
     @GetMapping("/logo/config/getLogoInfo")
     @GetMapping("/logo/config/getLogoInfo")
-     R<SysLogoConfigVO> getConfigLogo();
+    ResultData<SysLogoConfigVO> getConfigLogo();
 
 
     @DeleteMapping("/user/{userIds}")
     @DeleteMapping("/user/{userIds}")
     AjaxResult remove(@PathVariable("userIds") Long[] userIds);
     AjaxResult remove(@PathVariable("userIds") Long[] userIds);
 
 
     /**
     /**
      * 获取当前登录用户所属学校以及院系id集合
      * 获取当前登录用户所属学校以及院系id集合
+     *
      * @return
      * @return
      */
      */
     @GetMapping("/user/getLogingUserDeptids")
     @GetMapping("/user/getLogingUserDeptids")
-    R<List<Long>> getLogingUserDeptids();
+    ResultData<List<Long>> getLogingUserDeptids();
 
 
     /**
     /**
      * 获取当前登录用户所属学校的deptid
      * 获取当前登录用户所属学校的deptid
+     *
      * @return
      * @return
      */
      */
     @GetMapping("/user/getLoginUserSchoolDeptid")
     @GetMapping("/user/getLoginUserSchoolDeptid")
-    R<Long> getLoginUserSchoolDeptid();
+    ResultData<Long> getLoginUserSchoolDeptid();
 
 
     /***
     /***
      * 根据电话查询用户信息
      * 根据电话查询用户信息
@@ -194,5 +201,5 @@ public interface RemoteUserService {
      * @return
      * @return
      */
      */
     @RequestMapping("/user/getUserByPhone/{phone}")
     @RequestMapping("/user/getUserByPhone/{phone}")
-    R<SysUser> getUserByPhone(@PathVariable("phone") String phone);
+    ResultData<SysUser> getUserByPhone(@PathVariable("phone") String phone);
 }
 }

+ 49 - 0
zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/factory/RemoteDeptFallbackFactory.java

@@ -0,0 +1,49 @@
+package com.zd.system.api.feign.factory;
+
+import com.zd.model.domain.AjaxResult;
+import com.zd.model.domain.R;
+import com.zd.model.entity.SysDept;
+import com.zd.system.api.feign.RemoteDeptService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 部门服务降级处理
+ *
+ * @author zd
+ */
+@Component
+public class RemoteDeptFallbackFactory implements FallbackFactory<RemoteDeptService> {
+    private static final Logger log = LoggerFactory.getLogger(RemoteDeptFallbackFactory.class);
+
+    @Override
+    public RemoteDeptService create(Throwable throwable) {
+        log.error("用户服务调用失败:{}", throwable.getMessage());
+        return new RemoteDeptService() {
+            @Override
+            public R<List<SysDept>> getDeptList(SysDept sysDept) {
+                return R.fail("获取部门失败:" + throwable.getMessage());
+            }
+
+            @Override
+            public AjaxResult allParentId(List<Long> deptIds) {
+                return AjaxResult.error("查询部门ID失败:" + throwable.getMessage());
+            }
+
+            @Override
+            public Map<String, Object> queryDeptSignByUserId() {
+                return AjaxResult.error("查询部门电子签章失败:" + throwable.getMessage());
+            }
+
+            @Override
+            public AjaxResult getInfoById(Long id) {
+                return AjaxResult.error("查询部门信息失败:" + throwable.getMessage());
+            }
+        };
+    }
+}

+ 4 - 4
zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/factory/RemoteLogFallback.java

@@ -1,6 +1,6 @@
 package com.zd.system.api.feign.factory;
 package com.zd.system.api.feign.factory;
 
 
-import com.zd.model.domain.R;
+import com.zd.model.domain.ResultData;
 import com.zd.system.api.entity.SysLogininfor;
 import com.zd.system.api.entity.SysLogininfor;
 import com.zd.system.api.entity.SysOperLog;
 import com.zd.system.api.entity.SysOperLog;
 import com.zd.system.api.feign.RemoteLogService;
 import com.zd.system.api.feign.RemoteLogService;
@@ -23,12 +23,12 @@ public class RemoteLogFallback implements FallbackFactory<RemoteLogService> {
         log.error("日志服务调用失败:{}", throwable.getMessage());
         log.error("日志服务调用失败:{}", throwable.getMessage());
         return new RemoteLogService() {
         return new RemoteLogService() {
             @Override
             @Override
-            public R<Boolean> saveLog(SysOperLog sysOperLog, String source) {
-                return R.fail("日志存储失败:"+throwable.getMessage());
+            public ResultData<Boolean> saveLog(SysOperLog sysOperLog, String source) {
+                return ResultData.fail("日志存储失败:"+throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Boolean> saveLogininfor(SysLogininfor sysLogininfor, String source) {
+            public ResultData<Boolean> saveLogininfor(SysLogininfor sysLogininfor, String source) {
                 return null;
                 return null;
             }
             }
         };
         };

+ 38 - 38
zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/factory/RemoteUserFallback.java

@@ -1,7 +1,7 @@
 package com.zd.system.api.feign.factory;
 package com.zd.system.api.feign.factory;
 
 
 import com.zd.model.domain.AjaxResult;
 import com.zd.model.domain.AjaxResult;
-import com.zd.model.domain.R;
+import com.zd.model.domain.ResultData;
 import com.zd.model.entity.LoginUser;
 import com.zd.model.entity.LoginUser;
 import com.zd.model.entity.SysUser;
 import com.zd.model.entity.SysUser;
 import com.zd.system.api.feign.RemoteUserService;
 import com.zd.system.api.feign.RemoteUserService;
@@ -31,13 +31,13 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
 
 
             private static final String MESSAGE_HEAD="获取用户失败:";
             private static final String MESSAGE_HEAD="获取用户失败:";
             @Override
             @Override
-            public R<LoginUser> getUserInfo(String username, String source) {
-                return R.fail(MESSAGE_HEAD + throwable.getMessage());
+            public ResultData<LoginUser> getUserInfo(String username, String source) {
+                return ResultData.fail(MESSAGE_HEAD + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<LoginUser> getUserInfo(String username, Integer loginType, String source) {
-                return R.fail(MESSAGE_HEAD + throwable.getMessage());
+            public ResultData<LoginUser> getUserInfo(String username, Integer loginType, String source) {
+                return ResultData.fail(MESSAGE_HEAD + throwable.getMessage());
             }
             }
 
 
             /**
             /**
@@ -48,8 +48,8 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
              * @return 结果
              * @return 结果
              */
              */
             @Override
             @Override
-            public R<SysUser> getUserInfoByUserId(Long id, String source) {
-                return R.fail(MESSAGE_HEAD + throwable.getMessage());
+            public ResultData<SysUser> getUserInfoByUserId(Long id, String source) {
+                return ResultData.fail(MESSAGE_HEAD + throwable.getMessage());
             }
             }
 
 
             /**
             /**
@@ -60,8 +60,8 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
              * @return 结果
              * @return 结果
              */
              */
             @Override
             @Override
-            public R<SysUser> getUserInfoByUserName(String userName, String source) {
-                return R.fail(MESSAGE_HEAD + throwable.getMessage());
+            public ResultData<SysUser> getUserInfoByUserName(String userName, String source) {
+                return ResultData.fail(MESSAGE_HEAD + throwable.getMessage());
             }
             }
             /**
             /**
              * 通过用户卡号查询用户信息
              * 通过用户卡号查询用户信息
@@ -71,25 +71,25 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
              * @return 结果
              * @return 结果
              */
              */
             @Override
             @Override
-            public R<SysUser> getUserInfoByCardNum(String userName, String source) {
-                return R.fail("通过用户卡号查询用户信息失败:" + throwable.getMessage());
+            public ResultData<SysUser> getUserInfoByCardNum(String userName, String source) {
+                return ResultData.fail("通过用户卡号查询用户信息失败:" + throwable.getMessage());
             }
             }
 
 
 
 
 
 
             @Override
             @Override
-            public R<Boolean> registerUserInfo(SysUser sysUser, String source) {
-                return R.fail("注册用户失败:" + throwable.getMessage());
+            public ResultData<Boolean> registerUserInfo(SysUser sysUser, String source) {
+                return ResultData.fail("注册用户失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<SimpleUserVO> myInfoSimple(String source) {
-                return R.fail("查询当前用户简略信息失败:" + throwable.getMessage());
+            public ResultData<SimpleUserVO> myInfoSimple(String source) {
+                return ResultData.fail("查询当前用户简略信息失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<List<Long>> userALLIDS(String source) {
-                return R.fail("获取所有用户ID失败:" + throwable.getMessage());
+            public ResultData<List<Long>> userALLIDS(String source) {
+                return ResultData.fail("获取所有用户ID失败:" + throwable.getMessage());
             }
             }
 
 
             /**
             /**
@@ -99,23 +99,23 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
              * @return 结果
              * @return 结果
              */
              */
             @Override
             @Override
-            public R<List<String>> getPhoneByUserIDS(String ids) {
-                return R.fail("获取所有用户手机号失败:" + throwable.getMessage());
+            public ResultData<List<String>> getPhoneByUserIDS(String ids) {
+                return ResultData.fail("获取所有用户手机号失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<List<Long>> userDeptIDS(String deptId, String source) {
-                return R.fail("获取院系下用户ID失败:" + throwable.getMessage());
+            public ResultData<List<Long>> userDeptIDS(String deptId, String source) {
+                return ResultData.fail("获取院系下用户ID失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Object> departmentsList() {
-                return R.fail("获取小程序查询院系列表失败:" + throwable.getMessage());
+            public ResultData<Object> departmentsList() {
+                return ResultData.fail("获取小程序查询院系列表失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R<Object> building(Long deptId) {
-                return R.fail("获取小程序查询院系下楼栋列表失败:" + throwable.getMessage());
+            public ResultData<Object> building(Long deptId) {
+                return ResultData.fail("获取小程序查询院系下楼栋列表失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
@@ -132,11 +132,11 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
             public AjaxResult editUser(SysUser user) { return AjaxResult.error("学生信息更新失败:" + throwable.getMessage()); }
             public AjaxResult editUser(SysUser user) { return AjaxResult.error("学生信息更新失败:" + throwable.getMessage()); }
 
 
             @Override
             @Override
-            public AjaxResult editStudent(SysUser user) { return AjaxResult.error("安全准入学生信息更新失败:" + throwable.getMessage()); }
+            public ResultData editStudent(SysUser user) { return ResultData.fail("安全准入学生信息更新失败:" + throwable.getMessage()); }
 
 
             @Override
             @Override
-            public R updateSignature(MultipartFile file) {
-                return R.fail("修改签名信息失败:" + throwable.getMessage());
+            public ResultData updateSignature(MultipartFile file) {
+                return ResultData.fail("修改签名信息失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
@@ -145,13 +145,13 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
             }
             }
 
 
             @Override
             @Override
-            public R querySignature() {
-                return R.fail("查询签名信息失败:" + throwable.getMessage());
+            public ResultData querySignature() {
+                return ResultData.fail("查询签名信息失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
-            public R <SysLogoConfigVO> getConfigLogo() {
-                return R.fail("查询一体机logo信息失败:" + throwable.getMessage());
+            public ResultData <SysLogoConfigVO> getConfigLogo() {
+                return ResultData.fail("查询一体机logo信息失败:" + throwable.getMessage());
             }
             }
 
 
             @Override
             @Override
@@ -165,8 +165,8 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
              * @return
              * @return
              */
              */
             @Override
             @Override
-            public R<List<Long>> getLogingUserDeptids() {
-                return R.fail("获取登录用户所属学校及院系失败:" + throwable.getMessage());
+            public ResultData<List<Long>> getLogingUserDeptids() {
+                return ResultData.fail("获取登录用户所属学校及院系失败:" + throwable.getMessage());
             }
             }
 
 
             /**
             /**
@@ -175,8 +175,8 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
              * @return
              * @return
              */
              */
             @Override
             @Override
-            public R<Long> getLoginUserSchoolDeptid() {
-                return R.fail("获取当前登录用户所属学校的deptid失败:" + throwable.getMessage());
+            public ResultData<Long> getLoginUserSchoolDeptid() {
+                return ResultData.fail("获取当前登录用户所属学校的deptid失败:" + throwable.getMessage());
             }
             }
 
 
             /***
             /***
@@ -185,8 +185,8 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
              * @return
              * @return
              */
              */
             @Override
             @Override
-            public R<SysUser> getUserByPhone(String phone) {
-                return R.fail("根据电话查询用户信息失败:" + throwable.getMessage());
+            public ResultData<SysUser> getUserByPhone(String phone) {
+                return ResultData.fail("根据电话查询用户信息失败:" + throwable.getMessage());
             }
             }
 
 
 
 

+ 0 - 2
zd-auth/src/main/java/com/zd/auth/controller/TokenController.java

@@ -11,10 +11,8 @@ import com.zd.common.core.utils.IdUtils;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.model.constant.*;
 import com.zd.model.constant.*;
 import com.zd.model.domain.AjaxResult;
 import com.zd.model.domain.AjaxResult;
-import com.zd.model.domain.R;
 import com.zd.model.entity.LoginUser;
 import com.zd.model.entity.LoginUser;
 import com.zd.model.entity.SysUser;
 import com.zd.model.entity.SysUser;
-import com.zd.system.api.feign.RemoteStockService;
 import com.zd.system.api.feign.RemoteUserService;
 import com.zd.system.api.feign.RemoteUserService;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;

+ 1 - 1
zd-auth/src/main/java/com/zd/auth/service/SysLoginService.java

@@ -6,7 +6,7 @@ import com.zd.model.constant.BaseConstants;
 import com.zd.model.constant.HttpStatus;
 import com.zd.model.constant.HttpStatus;
 import com.zd.model.constant.SecurityConstants;
 import com.zd.model.constant.SecurityConstants;
 import com.zd.model.constant.UserConstants;
 import com.zd.model.constant.UserConstants;
-import com.zd.model.domain.R;
+import com.zd.model.domain.ResultData;
 import com.zd.model.enums.UserStatus;
 import com.zd.model.enums.UserStatus;
 import com.zd.model.entity.LoginUser;
 import com.zd.model.entity.LoginUser;
 import com.zd.system.api.entity.SysLogininfor;
 import com.zd.system.api.entity.SysLogininfor;

+ 6 - 2
zd-common/common-core/pom.xml

@@ -62,12 +62,16 @@
             <version>3.1.0</version>
             <version>3.1.0</version>
         </dependency>
         </dependency>
 
 
-
         <!-- excel工具 -->
         <!-- excel工具 -->
         <dependency>
         <dependency>
             <groupId>org.apache.poi</groupId>
             <groupId>org.apache.poi</groupId>
             <artifactId>poi-ooxml</artifactId>
             <artifactId>poi-ooxml</artifactId>
         </dependency>
         </dependency>
+
+        <dependency>
+            <groupId>com.belerweb</groupId>
+            <artifactId>pinyin4j</artifactId>
+        </dependency>
     </dependencies>
     </dependencies>
 
 
-</project>
+</project>

+ 19 - 0
zd-common/common-core/src/main/java/com/zd/common/core/annotation/DeviceID.java

@@ -0,0 +1,19 @@
+package com.zd.common.core.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/10/08/8:32
+ * @Description:
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface DeviceID {
+
+
+
+}

+ 42 - 0
zd-common/common-core/src/main/java/com/zd/common/core/annotation/FunctionMapper.java

@@ -0,0 +1,42 @@
+package com.zd.common.core.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 功能映射
+ * @Author: zhoupan
+ * @Date: 2021/10/06/8:37
+ * @Description:
+ */
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface FunctionMapper {
+
+
+    String funNum() default "";
+
+    /**
+     * 是否带单位
+     * @return
+     */
+    boolean isUnit() default true;
+
+    /**
+     * 单位分隔符
+     * @return
+     */
+    String unitSpit() default " ";
+
+    /**
+     * 单位 手动指定单位
+     * @return
+     */
+    String unit()  default "";
+
+
+    
+}

+ 20 - 0
zd-common/common-core/src/main/java/com/zd/common/core/annotation/NewFunctionMapper.java

@@ -0,0 +1,20 @@
+package com.zd.common.core.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 功能映射
+ * @Author: zhoupan
+ * @Date: 2021/10/06/8:37
+ * @Description:
+ */
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface NewFunctionMapper {
+
+    String value() default "";
+}

+ 108 - 0
zd-common/common-core/src/main/java/com/zd/common/core/utils/Assert.java

@@ -0,0 +1,108 @@
+package com.zd.common.core.utils;
+
+import cn.hutool.core.collection.CollUtil;
+import com.zd.common.core.exception.ServiceException;
+import org.springframework.lang.Nullable;
+
+import java.util.Collection;
+import java.util.function.Supplier;
+
+/**
+ * 断言 抛出业务异常
+ *
+ * @Author: zhoupan
+ * @Date: 2021/09/09/9:10
+ * @Description:
+ */
+public class Assert {
+
+    /**
+     * 集合空断言
+     *
+     * @param collection
+     * @param messageSupplier
+     */
+    public static void isEmpty(@Nullable Collection<?> collection, Supplier<String> messageSupplier) {
+        if (!CollUtil.isEmpty(collection)) {
+            throw new ServiceException(messageSupplier.get());
+        }
+    }
+
+    public static void isEmpty(@Nullable Collection<?> collection, String message) {
+        if (!CollUtil.isEmpty(collection)) {
+            throw new ServiceException(message);
+        }
+    }
+
+    /**
+     * 空断言
+     *
+     * @param o
+     * @param messageSupplier
+     */
+    public static void isNull(Object o, Supplier<String> messageSupplier) {
+        if (o != null) {
+            throw new ServiceException(messageSupplier.get());
+        }
+    }
+
+    public static void isNull(Object o, String message) {
+        if (o != null) {
+            throw new ServiceException(message);
+        }
+    }
+
+    /**
+     * 空断言
+     *
+     * @param o
+     * @param messageSupplier
+     */
+    public static void isNotNull(Object o, Supplier<String> messageSupplier) {
+        if (o == null) {
+            throw new ServiceException(messageSupplier.get());
+        }
+    }
+
+    public static void isNotNull(Object o, String message) {
+        if (o == null) {
+            throw new ServiceException(message);
+        }
+    }
+
+    public static void notEmpty(@Nullable Collection<?> collection, Supplier<String> messageSupplier) {
+        if (CollUtil.isEmpty(collection)) {
+            throw new ServiceException(messageSupplier.get());
+        }
+    }
+
+    public static void notEmpty(@Nullable Collection<?> collection, String message) {
+        if (CollUtil.isEmpty(collection)) {
+            throw new ServiceException(message);
+        }
+    }
+
+    public static void isTrue(Boolean b, Supplier<String> messageSupplier) {
+        if (b == null || !b) {
+            throw new ServiceException(messageSupplier.get());
+        }
+    }
+
+    public static void isTrue(Boolean b, String message) {
+        if (b == null || !b) {
+            throw new ServiceException(message);
+        }
+    }
+
+    public static void isFalse(Boolean b, String message) {
+        if (b == null || b) {
+            throw new ServiceException(message);
+        }
+    }
+
+    public static void isFalse(Boolean b, Supplier<String> messageSupplier) {
+        if (b == null || b) {
+            throw new ServiceException(messageSupplier.get());
+        }
+    }
+}

+ 72 - 0
zd-common/common-core/src/main/java/com/zd/common/core/utils/EscapeUtils.java

@@ -0,0 +1,72 @@
+package com.zd.common.core.utils;
+
+/**
+ * url路径的加密解密
+ *
+ * @author dgs
+ */
+public class EscapeUtils {
+    /**
+     * Escape编码
+     * @param src 待加盐字符串
+     * @return 加盐字符串
+     */
+    public static String escape(String src) {
+        int i;
+        char j;
+        StringBuffer tmp = new StringBuffer();
+        tmp.ensureCapacity(src.length() * 6);
+        for (i = 0; i < src.length(); i++) {
+            j = src.charAt(i);
+            if (Character.isDigit(j) || Character.isLowerCase(j)
+                    || Character.isUpperCase(j))
+                tmp.append(j);
+            else if (j < 256) {
+                tmp.append("%");
+                if (j < 16)
+                    tmp.append("0");
+                tmp.append(Integer.toString(j, 16));
+            } else {
+                tmp.append("%u");
+                tmp.append(Integer.toString(j, 16));
+            }
+        }
+        return tmp.toString();
+    }
+    /**
+     * Escape解码
+     * @param src 加盐字符串
+     * @return 明文
+     */
+    public static String unescape(String src) {
+        StringBuffer tmp = new StringBuffer();
+        tmp.ensureCapacity(src.length());
+        int lastPos = 0, pos = 0;
+        char ch;
+        while (lastPos < src.length()) {
+            pos = src.indexOf("%", lastPos);
+            if (pos == lastPos) {
+                if (src.charAt(pos + 1) == 'u') {
+                    ch = (char) Integer.parseInt(src
+                            .substring(pos + 2, pos + 6), 16);
+                    tmp.append(ch);
+                    lastPos = pos + 6;
+                } else {
+                    ch = (char) Integer.parseInt(src
+                            .substring(pos + 1, pos + 3), 16);
+                    tmp.append(ch);
+                    lastPos = pos + 3;
+                }
+            } else {
+                if (pos == -1) {
+                    tmp.append(src.substring(lastPos));
+                    lastPos = src.length();
+                } else {
+                    tmp.append(src.substring(lastPos, pos));
+                    lastPos = pos;
+                }
+            }
+        }
+        return tmp.toString();
+    }
+}

+ 23 - 0
zd-common/common-core/src/main/java/com/zd/common/core/utils/PageHelperUtil.java

@@ -0,0 +1,23 @@
+package com.zd.common.core.utils;
+
+import com.github.pagehelper.PageHelper;
+import com.zd.common.core.utils.sql.SqlUtil;
+import com.zd.common.core.web.page.TableSupport;
+import com.zd.model.page.PageDomain;
+
+public class PageHelperUtil {
+
+
+    /**
+     * 设置请求分页数据
+     */
+    public static void startPage() {
+        PageDomain pageDomain = TableSupport.buildPageRequest();
+        Integer pageNum = pageDomain.getPageNum();
+        Integer pageSize = pageDomain.getPageSize();
+        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
+            String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
+            PageHelper.startPage(pageNum, pageSize, orderBy);
+        }
+    }
+}

+ 68 - 0
zd-common/common-core/src/main/java/com/zd/common/core/utils/Pinyin4jUtil.java

@@ -0,0 +1,68 @@
+package com.zd.common.core.utils;
+
+import net.sourceforge.pinyin4j.PinyinHelper;
+import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
+import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
+import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
+import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
+import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
+import org.apache.commons.lang3.StringUtils;
+
+public class Pinyin4jUtil {
+
+    /**
+     * 得到 全拼
+     *
+     */
+    public static String getPingYin(String str) {
+        if(StringUtils.isBlank(str)){
+            return "";
+        }
+        char[] t1;
+        t1 = str.toCharArray();
+        String[] t2 = new String[t1.length];
+        HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
+        t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
+        t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
+        t3.setVCharType(HanyuPinyinVCharType.WITH_V);
+        String t4 = "";
+        int t0 = t1.length;
+        try {
+            for (int i = 0; i < t0; i++) {
+                // 判断是否为汉字字符
+                if (Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
+                    t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
+                    t4 += t2[0];
+                } else {
+                    t4 += Character.toString(t1[i]);
+                }
+            }
+            return t4;
+        } catch (BadHanyuPinyinOutputFormatCombination e1) {
+            e1.printStackTrace();
+            return "";
+        }
+    }
+
+    /**
+     * 得到中文首字母
+     *
+     */
+    public static String getPinYinHeadChar(String str) {
+        if(StringUtils.isBlank(str)){
+            return "";
+        }
+        String convert = "";
+        for (int j = 0; j < str.length(); j++) {
+            char word = str.charAt(j);
+            String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
+            if (pinyinArray != null) {
+                convert += pinyinArray[0].charAt(0);
+            } else {
+                convert += word;
+            }
+        }
+        return convert;
+    }
+
+}

+ 157 - 0
zd-common/common-core/src/main/java/com/zd/common/core/utils/ReUtil.java

@@ -0,0 +1,157 @@
+package com.zd.common.core.utils;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class ReUtil {
+    public final static Pattern GROUP_VAR = Pattern.compile("\\$(\\d+)");
+
+    /**
+     * 正则中需要被转义的关键字
+     */
+    public final static Set<Character> RE_KEYS = new HashSet<>(
+            Arrays.asList('$', '(', ')', '*', '+', '.', '[', ']', '?', '\\', '^', '{', '}', '|'));
+    ;
+
+    /**
+     * 正则替换指定值<br>
+     * 通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串
+     *
+     * <p>
+     * 例如:原字符串是:中文1234,我想把1234换成(1234),则可以:
+     *
+     * <pre>
+     * ReUtil.replaceAll("中文1234", "(\\d+)", "($1)"))
+     *
+     * 结果:中文(1234)
+     * </pre>
+     *
+     * @param content             文本
+     * @param regex               正则
+     * @param replacementTemplate 替换的文本模板,可以使用$1类似的变量提取正则匹配出的内容
+     * @return 处理后的文本
+     */
+    public static String replaceAll(CharSequence content, String regex, String replacementTemplate) {
+        final Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
+        return replaceAll(content, pattern, replacementTemplate);
+    }
+
+    /**
+     * 正则替换指定值<br>
+     * 通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串
+     *
+     * @param content             文本
+     * @param pattern             {@link Pattern}
+     * @param replacementTemplate 替换的文本模板,可以使用$1类似的变量提取正则匹配出的内容
+     * @return 处理后的文本
+     * @since 3.0.4
+     */
+    public static String replaceAll(CharSequence content, Pattern pattern, String replacementTemplate) {
+        if (StringUtils.isEmpty(content)) {
+            return StringUtils.EMPTY;
+        }
+
+        final Matcher matcher = pattern.matcher(content);
+        boolean result = matcher.find();
+        if (result) {
+            final Set<String> varNums = findAll(GROUP_VAR, replacementTemplate, 1, new HashSet<>());
+            final StringBuffer sb = new StringBuffer();
+            do {
+                String replacement = replacementTemplate;
+                for (String var : varNums) {
+                    int group = Integer.parseInt(var);
+                    replacement = replacement.replace("$" + var, matcher.group(group));
+                }
+                matcher.appendReplacement(sb, escape(replacement));
+                result = matcher.find();
+            }
+            while (result);
+            matcher.appendTail(sb);
+            return sb.toString();
+        }
+        return Convert.toStr(content);
+    }
+
+    /**
+     * 取得内容中匹配的所有结果
+     *
+     * @param <T>        集合类型
+     * @param pattern    编译后的正则模式
+     * @param content    被查找的内容
+     * @param group      正则的分组
+     * @param collection 返回的集合类型
+     * @return 结果集
+     */
+    public static <T extends Collection<String>> T findAll(Pattern pattern, CharSequence content, int group,
+                                                           T collection) {
+        if (null == pattern || null == content) {
+            return null;
+        }
+
+        if (null == collection) {
+            throw new NullPointerException("Null collection param provided!");
+        }
+
+        final Matcher matcher = pattern.matcher(content);
+        while (matcher.find()) {
+            collection.add(matcher.group(group));
+        }
+        return collection;
+    }
+
+    /**
+     * 转义字符,将正则的关键字转义
+     *
+     * @param c 字符
+     * @return 转义后的文本
+     */
+    public static String escape(char c) {
+        final StringBuilder builder = new StringBuilder();
+        if (RE_KEYS.contains(c)) {
+            builder.append('\\');
+        }
+        builder.append(c);
+        return builder.toString();
+    }
+
+    /**
+     * 转义字符串,将正则的关键字转义
+     *
+     * @param content 文本
+     * @return 转义后的文本
+     */
+    public static String escape(CharSequence content) {
+        if (StringUtils.isBlank(content)) {
+            return StringUtils.EMPTY;
+        }
+
+        final StringBuilder builder = new StringBuilder();
+        int len = content.length();
+        char current;
+        for (int i = 0; i < len; i++) {
+            current = content.charAt(i);
+            if (RE_KEYS.contains(current)) {
+                builder.append('\\');
+            }
+            builder.append(current);
+        }
+        return builder.toString();
+    }
+
+    public static byte[] hexStringToByteArray(String hexString) {
+        hexString = hexString.replaceAll(" ", "");
+        int len = hexString.length();
+        byte[] bytes = new byte[len / 2];
+        for (int i = 0; i < len; i += 2) {
+            // 两位一组,表示一个字节,把这样表示的16进制字符串,还原成一个字节
+            bytes[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4) + Character
+                    .digit(hexString.charAt(i + 1), 16));
+        }
+        return bytes;
+    }
+
+}

+ 49 - 0
zd-common/common-core/src/main/java/com/zd/common/core/utils/TransferUtils.java

@@ -0,0 +1,49 @@
+package com.zd.common.core.utils;
+
+import com.zd.common.core.exception.ServiceException;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.BeanUtils;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 集合对象转换工具
+ */
+public class TransferUtils {
+
+    private TransferUtils() {
+    }
+
+    /**
+     * List 之间的转换
+     *
+     * @param tList 源数据
+     * @param clazz 目标对象类
+     * @param <T>   原对象
+     * @param <K>   目标对象
+     * @return 集合
+     */
+    public static <T, K> List<K> transferList(Collection<T> tList, Class<K> clazz) {
+        if (!CollectionUtils.isNotEmpty(tList)) {
+            return Collections.emptyList();
+        } else {
+            List<K> kList = new ArrayList<>();
+            for (T t : tList) {
+                K tk;
+                try {
+                    tk = clazz.newInstance();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    throw new ServiceException(e.getMessage());
+                }
+                BeanUtils.copyProperties(t,tk);
+                kList.add(tk);
+            }
+            return kList;
+        }
+    }
+
+}

+ 11 - 0
zd-common/common-core/src/main/java/com/zd/common/core/utils/UrlFormatUtils.java

@@ -0,0 +1,11 @@
+package com.zd.common.core.utils;
+
+/**
+ * 路径格式化
+ */
+public class UrlFormatUtils {
+    public static String getHttpsORHttpUrl(String url){
+       String parseUrl=url.replace("//","/").replace("///","/").replace("https:/","https://").replace("http:/","http://");
+        return parseUrl;
+    }
+}

+ 0 - 5
zd-common/zd-common-core/pom.xml

@@ -116,11 +116,6 @@
             <artifactId>bce-java-sdk</artifactId>
             <artifactId>bce-java-sdk</artifactId>
         </dependency>
         </dependency>
 
 
-        <dependency>
-            <groupId>com.belerweb</groupId>
-            <artifactId>pinyin4j</artifactId>
-        </dependency>
-
         <!--   引入lombok组件 使用@Getter @Setter 注解,避免手写get、set方法,使代码更简洁、清亮     -->
         <!--   引入lombok组件 使用@Getter @Setter 注解,避免手写get、set方法,使代码更简洁、清亮     -->
         <dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
             <groupId>org.projectlombok</groupId>

+ 2 - 1
zd-common/zd-common-core/src/main/java/com/zd/common/core/web/controller/BaseController.java

@@ -64,8 +64,9 @@ public class BaseController<T> {
         Integer pageSize = pageDomain.getPageSize();
         Integer pageSize = pageDomain.getPageSize();
         if (StringUtils.isEmpty(pageDomain.getOrderBy())) {
         if (StringUtils.isEmpty(pageDomain.getOrderBy())) {
             pageDomain.setOrderByColumn(orderByColumn);
             pageDomain.setOrderByColumn(orderByColumn);
-            if (StringUtils.isNotEmpty(asc))
+            if (StringUtils.isNotEmpty(asc)) {
                 pageDomain.setIsAsc(asc);
                 pageDomain.setIsAsc(asc);
+            }
         }
         }
         if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
         if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
             String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
             String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());

+ 2 - 2
zd-common/zd-common-core/src/main/java/com/zd/common/core/web/domain/AjaxResult.java

@@ -1,10 +1,10 @@
 package com.zd.common.core.web.domain;
 package com.zd.common.core.web.domain;
 
 
-import java.util.HashMap;
-
 import com.zd.common.core.constant.HttpStatus;
 import com.zd.common.core.constant.HttpStatus;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.common.core.utils.StringUtils;
 
 
+import java.util.HashMap;
+
 /**
 /**
  * 操作消息提醒
  * 操作消息提醒
  *
  *

+ 1 - 0
zd-common/zd-common-core/src/main/java/com/zd/common/core/web/domain/ResultData.java

@@ -1,5 +1,6 @@
 package com.zd.common.core.web.domain;
 package com.zd.common.core.web.domain;
 
 
+
 import com.zd.common.core.constant.HttpStatus;
 import com.zd.common.core.constant.HttpStatus;
 
 
 import java.util.function.Supplier;
 import java.util.function.Supplier;

+ 1 - 1
zd-common/zd-common-security/src/main/java/com/zd/common/security/handler/GlobalExceptionHandler.java

@@ -12,7 +12,7 @@ import org.springframework.web.HttpRequestMethodNotSupportedException;
 import org.springframework.web.bind.MethodArgumentNotValidException;
 import org.springframework.web.bind.MethodArgumentNotValidException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
-import com.zd.common.core.constant.HttpStatus;
+import com.zd.model.constant.HttpStatus;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.common.core.web.domain.AjaxResult;
 import com.zd.common.core.web.domain.AjaxResult;
 import org.springframework.web.multipart.MaxUploadSizeExceededException;
 import org.springframework.web.multipart.MaxUploadSizeExceededException;

+ 1 - 0
zd-model/src/main/java/com/zd/model/constant/ApplicationConstants.java

@@ -55,4 +55,5 @@ public interface ApplicationConstants {
      * 气瓶服务
      * 气瓶服务
      */
      */
     String BOTTLE_SERVICE = "zd-bottle";
     String BOTTLE_SERVICE = "zd-bottle";
+
 }
 }

+ 61 - 0
zd-model/src/main/java/com/zd/model/constant/CacheDevice.java

@@ -0,0 +1,61 @@
+package com.zd.model.constant;
+
+/**
+ * 硬件设备相关数据缓存前缀
+ * @author liubo
+ * @date 2022-06-21
+ */
+public enum CacheDevice {
+
+    /**
+     * 老传感器缓存前缀
+     */
+    SENSOR_KEY("sensor_fedc_01:", 5 * 60 * 60L),
+
+    /**
+     * 老传感器失效周期
+     */
+    SENSOR_LIFE("sensor_life:", 100L),
+
+    /**
+     * 继电器缓存前缀
+     */
+    RELAY_KEY("relay_fedc:", 300L),
+
+    /**
+     * 继电器失效周期
+     */
+    RELAY_LIFE("relay_life:", 10 * 60 * 60L);
+
+    /**
+     * redis 缓存
+     */
+    private String redisKey;
+
+    /**
+     * TimeUnit.SECONDS
+     * 缓存失效时间
+     */
+    private Long redisTime;
+
+    CacheDevice(String redisKey, Long redisTime) {
+        this.redisKey = redisKey;
+        this.redisTime = redisTime;
+    }
+
+    public String getRedisKey() {
+        return redisKey;
+    }
+
+    public void setRedisKey(String redisKey) {
+        this.redisKey = redisKey;
+    }
+
+    public Long getRedisTime() {
+        return redisTime;
+    }
+
+    public void setRedisTime(Long redisTime) {
+        this.redisTime = redisTime;
+    }
+}

+ 185 - 0
zd-model/src/main/java/com/zd/model/constant/Constants.java

@@ -0,0 +1,185 @@
+package com.zd.model.constant;
+
+/**
+ * 通用常量信息
+ *
+ * @author zd
+ */
+public class Constants {
+    /**
+     * UTF-8 字符集
+     */
+    public static final String UTF8 = "UTF-8";
+
+    /**
+     * GBK 字符集
+     */
+    public static final String GBK = "GBK";
+
+    /**
+     * RMI 远程方法调用
+     */
+    public static final String LOOKUP_RMI = "rmi://";
+
+    /**
+     * LDAP 远程方法调用
+     */
+    public static final String LOOKUP_LDAP = "ldap://";
+
+    /**
+     * http请求
+     */
+    public static final String HTTP = "http://";
+
+    /**
+     * https请求
+     */
+    public static final String HTTPS = "https://";
+
+    /**
+     * 成功标记
+     */
+    public static final Integer SUCCESS = 200;
+
+    /**
+     * 失败标记
+     */
+    public static final Integer FAIL = 500;
+
+    /**
+     * 登录成功
+     */
+    public static final String LOGIN_SUCCESS = "Success";
+
+    /**
+     * 注销
+     */
+    public static final String LOGOUT = "Logout";
+
+    /**
+     * 注册
+     */
+    public static final String REGISTER = "Register";
+
+    /**
+     * 登录失败
+     */
+    public static final String LOGIN_FAIL = "Error";
+
+    /**
+     * 当前记录起始索引
+     */
+    public static final String PAGE_NUM = "pageNum";
+
+    /**
+     * 每页显示记录数
+     */
+    public static final String PAGE_SIZE = "pageSize";
+
+    /**
+     * 排序列
+     */
+    public static final String ORDER_BY_COLUMN = "orderByColumn";
+
+    /**
+     * 排序的方向 "desc" 或者 "asc".
+     */
+    public static final String IS_ASC = "isAsc";
+
+    /**
+     * 验证码 redis key
+     */
+    public static final String CAPTCHA_CODE_KEY = "captcha_codes:";
+
+    /**
+     * 签到验证码 redis key
+     */
+    public static final String SINGIN_CAPTCHA_CODE_KEY = "captcha_signin_codes:";
+
+    /**
+     * 签到记录ID
+     */
+    public static final String SINGIN_id_KEY = "signin_id:";
+
+    public static final long SINGIN_OUT_TIME = 120;
+    /**
+     * 检查跳过
+     */
+    public static final String SINGIN_CHECK_JUMP_KEY = "signin_check_jump:";
+
+    /**
+     * 验证码有效期(分钟)
+     */
+    public static final long CAPTCHA_EXPIRATION = 2;
+
+    /**
+     * 令牌有效期(分钟)
+     */
+    public static final long TOKEN_EXPIRE = 720;
+
+    /**
+     * 参数管理 cache key
+     */
+    public static final String SYS_CONFIG_KEY = "sys_config:";
+
+    /**
+     * 字典管理 cache key
+     */
+    public static final String SYS_DICT_KEY = "sys_dict:";
+
+
+    /**
+     * 字典管理 cache key
+     */
+    public static final String WRAN_KEY = "wran_key:";
+
+    /**
+     * 资源映射路径 前缀
+     */
+    public static final String RESOURCE_PREFIX = "/profile";
+
+    /**
+     * 删除状态标记
+     */
+    public static final String DEL = "2";
+
+    /**
+     * baskPackage
+     */
+    public static final String BASE_PACKAGE = "com.zd";
+    /**
+     * 正常状态标记
+     */
+    public static final String NORMAL = "0";
+    /**
+     * MAP集合的初始化大小
+     */
+    public static final Integer MAP_INIT_SIZE = 16;
+
+
+    /**
+     * 密码类型
+     */
+    public static final String GRANT_TYPE_PASSWORD = "password";
+
+    /**
+     * 手机号类型
+     */
+    public static final String GRANT_TYPE_MOBILE = "mobile";
+
+    /**
+     * 手机号类型
+     */
+    public static final String UPDATE_TYPE_MOBILE = "update";
+
+    /**
+     * redis验证码前缀
+     */
+
+    public static final String DEFAULT_CODE_KEY = "DEFAULT_CODE_KEY_";
+
+    /**
+     * 手机登录验证码有效期(分钟)
+     */
+    public static final long CODE_EXPIRATION = 5;
+}

+ 1 - 0
zd-model/src/main/java/com/zd/model/domain/R.java

@@ -10,6 +10,7 @@ import java.io.Serializable;
  *
  *
  * @author zd
  * @author zd
  */
  */
+@Deprecated
 public class R<T> implements Serializable {
 public class R<T> implements Serializable {
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 

+ 38 - 0
zd-model/src/main/java/com/zd/model/echarts/Axis.java

@@ -0,0 +1,38 @@
+package com.zd.model.echarts;
+
+
+import com.zd.model.echarts.enums.AxisType;
+
+import java.util.List;
+
+/**
+ * Axis 根类
+ *
+ * @Author: zhoupan
+ * @Date: 2021/09/13/11:15
+ * @Description:
+ */
+public class Axis {
+
+    private AxisType type;
+
+    private List<String> data;
+
+    public List<String> getData() {
+        return data;
+    }
+
+    public void setData(List<String> data) {
+        this.data = data;
+    }
+
+    public AxisType getType() {
+        return type;
+    }
+
+    public void setType(AxisType type) {
+        this.type = type;
+    }
+
+
+}

+ 124 - 0
zd-model/src/main/java/com/zd/model/echarts/BarBuilder.java

@@ -0,0 +1,124 @@
+package com.zd.model.echarts;//package com.zd.common.core.echarts;
+//
+//import cn.hutool.core.collection.CollUtil;
+//import com.zd.common.core.echarts.enums.AxisType;
+//
+//import java.util.ArrayList;
+//import java.util.LinkedHashMap;
+//import java.util.List;
+//import java.util.Map;
+//
+///**
+// * 柱状图 建造者
+// * @Author: zhoupan
+// * @Date: 2021/09/13/14:16
+// * @Description:
+// */
+//public class BarBuilder<X,Y> implements Builder<X>{
+//
+//    List<? extends EchartsData<X>> list ;
+//    Option<X,Y,Serie<Y>> option ;
+//    EchartConfig echartConfig = new EchartConfig();
+//
+//    public BarBuilder(){}
+//
+//    public BarBuilder(List<? extends EchartsData<X>> list) {
+//        this.list = list;
+//        if(CollUtil.isEmpty( this.list))
+//        {
+//            return;
+//        }
+//
+//        List<Serie<Y>> series = new ArrayList<>();
+//        Map temp = new LinkedHashMap();
+//
+//    }
+//
+//    public Option<X,Y,Serie<Y>> build()
+//    {
+//        return option;
+//    }
+//
+//
+//    @Override
+//    public EchartConfig getEchartConfig() {
+//        return null;
+//    }
+//
+//    @Override
+//    public Builder setEchartConfig() {
+//        return null;
+//    }
+//
+//    @Override
+//    public Builder setTitle() {
+//        return null;
+//    }
+//
+//    @Override
+//    public Builder setLegend() {
+//        List<String> legendData = new ArrayList<>();
+//        //循环构造legend ,数据量不大,所以这里就每个方法单独循环了,不做缓存了
+//        this.list.forEach(a->{
+//            if (a.legendData()!=null&&!legendData.contains(a.legendData()))
+//            {
+//                legendData.add(a.legendData());
+//            }
+//        });
+//        Legend legend =null;
+//        if(legendData.size()>1)
+//        {
+//            legend = new Legend();
+//            legend.setData(legendData);
+//        }
+//        option.setLegend(legend);
+//        return this;
+//    }
+//
+//    @Override
+//    public Builder setyAxis() {
+//        List<X> data = new ArrayList<>();
+//        this.list.forEach(a->{
+//            if (a.axisData()!=null&&!data.contains(a.axisData()))
+//            {
+//                data.add( a.axisData());
+//            }
+//        });
+//        if(CollUtil.isNotEmpty(data))
+//        {
+//            Axis<X> axis = new Axis();
+//            axis.setData(data);
+//            axis.setType(AxisType.category);
+//            option.setyAxis(axis);
+//        }
+//        return this;
+//    }
+//
+//    @Override
+//    public Builder setxAxis() {
+//        Axis<X> axis = new Axis();
+//        axis.setType(AxisType.value);
+//        option.setyAxis(axis);
+//        return this;
+//    }
+//
+//    @Override
+//    public Builder setSeries() {
+//        return null;
+//    }
+//
+//    @Override
+//    public Builder setAxisData() {
+//        return null;
+//    }
+//
+//    @Override
+//    public Builder setLegendData() {
+//        return null;
+//    }
+//
+//
+//
+//
+//
+//}

+ 28 - 0
zd-model/src/main/java/com/zd/model/echarts/BarEchertsCommander.java

@@ -0,0 +1,28 @@
+package com.zd.model.echarts;
+
+/**
+ * 条形图建造者
+ *
+ * @Author: zhoupan
+ * @Date: 2021/09/13/14:19
+ * @Description:
+ */
+public class BarEchertsCommander {
+
+    /**
+     * 建造者
+     */
+    Builder builder;
+
+
+    public void setBuilder(Builder builder) {
+
+
+    }
+
+
+    public void build(Builder builder) {
+
+
+    }
+}

+ 22 - 0
zd-model/src/main/java/com/zd/model/echarts/Builder.java

@@ -0,0 +1,22 @@
+package com.zd.model.echarts;
+
+/**
+ * 建造者
+ *
+ * @Author: zhoupan
+ * @Date: 2021/09/13/13:19
+ * @Description:
+ */
+public interface Builder {
+
+    EchartConfig getEchartConfig();
+
+    Builder setEchartConfig(EchartConfig echartConfig);
+
+    Builder setTitle(Title title);
+
+
+    Option build();
+
+
+}

+ 39 - 0
zd-model/src/main/java/com/zd/model/echarts/CommonEchartsData.java

@@ -0,0 +1,39 @@
+package com.zd.model.echarts;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/09/27/10:38
+ * @Description:
+ */
+public class CommonEchartsData implements EchartsData {
+    private String axisData;
+    private String legendData;
+    private String dataValue;
+
+    public void setAxisData(String axisData) {
+        this.axisData = axisData;
+    }
+
+    public void setLegendData(String legendData) {
+        this.legendData = legendData;
+    }
+
+    public void setDataValue(String dataValue) {
+        this.dataValue = dataValue;
+    }
+
+    @Override
+    public String axisData() {
+        return axisData;
+    }
+
+    @Override
+    public String legendData() {
+        return legendData;
+    }
+
+    @Override
+    public Object dataValue() {
+        return dataValue;
+    }
+}

+ 39 - 0
zd-model/src/main/java/com/zd/model/echarts/DataValue.java

@@ -0,0 +1,39 @@
+package com.zd.model.echarts;
+
+/**
+ * 值类型data对象
+ *
+ * @Author: zhoupan
+ * @Date: 2021/09/13/11:45
+ * @Description:
+ */
+public class DataValue<T> {
+
+
+    private T value;
+
+
+    private String name;
+
+    public DataValue(T value, String name) {
+        this.value = value;
+        this.name = name;
+    }
+
+
+    public T getValue() {
+        return value;
+    }
+
+    public void setValue(T value) {
+        this.value = value;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

+ 54 - 0
zd-model/src/main/java/com/zd/model/echarts/EchartConfig.java

@@ -0,0 +1,54 @@
+package com.zd.model.echarts;
+
+
+import com.zd.model.echarts.enums.SerieType;
+
+/**
+ * echarts 配置 现在只做值封装,以后再考虑样式其他的
+ *
+ * @Author: zhoupan
+ * @Date: 2021/09/14/8:59
+ * @Description:
+ */
+public class EchartConfig {
+
+    /**
+     * 默认为折线图
+     */
+    private SerieType type = SerieType.line;
+
+    /**
+     * 默认为Y轴为值轴
+     */
+    private XYEnum xyValue = XYEnum.Y_VALUE;
+
+
+    public enum XYEnum {
+
+
+        //x轴做为值
+        X_VALUE,
+
+        //y轴做为值
+        Y_VALUE;
+
+        XYEnum() {
+        }
+    }
+
+    public SerieType getType() {
+        return type;
+    }
+
+    public void setType(SerieType type) {
+        this.type = type;
+    }
+
+    public XYEnum getXyValue() {
+        return xyValue;
+    }
+
+    public void setXyValue(XYEnum xyValue) {
+        this.xyValue = xyValue;
+    }
+}

+ 158 - 0
zd-model/src/main/java/com/zd/model/echarts/EchartsBuilder.java

@@ -0,0 +1,158 @@
+package com.zd.model.echarts;
+
+import cn.hutool.core.collection.CollUtil;
+import com.zd.model.echarts.enums.SerieType;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/09/15/9:42
+ * @Description:
+ */
+public class EchartsBuilder<X> implements Builder {
+
+    private EchartConfig echartConfig = new EchartConfig();
+
+    private List<? extends EchartsData> echartsDatas;
+
+    private List<String> legendData = null;
+    private Boolean isLegendData = Boolean.FALSE;
+    private Map<String, Object> temp = null;
+    private List<String> axisData = null;
+
+    public EchartsBuilder(List<? extends EchartsData<X>> echartsDatas, EchartConfig echartConfig) {
+        this.echartsDatas = echartsDatas;
+        this.echartConfig = echartConfig;
+        init();
+    }
+
+    public EchartsBuilder(List<? extends EchartsData<X>> echartsDatas) {
+        this.echartsDatas = echartsDatas;
+        init();
+    }
+
+    public EchartsBuilder() {
+    }
+
+    /**
+     * 实现listmap 的数据
+     *
+     * @param listMap
+     * @param key
+     * @param v
+     * @return
+     */
+    public EchartsBuilder setListData(List<Map<String, Object>> listMap, String key, String v) {
+        this.echartsDatas = MapInList.conversion(listMap, key, v);
+        init();
+        return this;
+
+    }
+
+    /**
+     * 初始化方法
+     */
+    void init() {
+        if (echartConfig == null || echartConfig.getType() == null || echartConfig.getXyValue() == null) {
+            throw new IllegalArgumentException("Echart转换配置错误!");
+        }
+        if (CollUtil.isEmpty(echartsDatas)) return;
+
+        legendData = echartsDatas.stream().map(a -> a.legendData() == null ? "" : a.legendData()).distinct().collect(Collectors.toList());
+        //折线图
+        if (echartConfig.getType().equals(SerieType.line)) {
+            if (CollUtil.isNotEmpty(legendData) && legendData.size() > 1) {
+                isLegendData = Boolean.TRUE;
+            }
+        }
+        //axisData
+        axisData = echartsDatas.stream().map(a -> a.axisData() == null ? "" : a.axisData()).distinct().collect(Collectors.toList());
+
+        if (CollUtil.isEmpty(axisData)) return;
+        temp = new HashMap<>(echartsDatas.size());
+        echartsDatas.forEach(a -> {
+            String x = a.axisData() == null ? "" : a.axisData();
+            String l = a.legendData() == null ? "" : a.legendData();
+            if (temp.containsKey(l + x)) {
+                throw new IllegalArgumentException("存在重复的数据!");
+            }
+            if (echartConfig.getType().equals(SerieType.pie)) {
+                temp.put(l + x, new DataValue(a.dataValue(), a.axisData()));
+            } else {
+                temp.put(l + x, a.dataValue());
+            }
+
+        });
+
+    }
+
+    @Override
+    public EchartConfig getEchartConfig() {
+        return echartConfig;
+    }
+
+    @Override
+    public Builder setEchartConfig(EchartConfig echartConfig) {
+        this.echartConfig = echartConfig;
+        return this;
+    }
+
+    @Override
+    public Builder setTitle(Title title) {
+        return null;
+    }
+
+    @Override
+    public Option build() {
+        Option option = new Option();
+        if (CollUtil.isEmpty(axisData)) return option;
+
+
+        List list = new ArrayList(legendData.size());
+        option.setSeries(list);
+
+
+        //
+        if (CollUtil.isNotEmpty(legendData)) {
+            Axis axis = new Axis();
+            axis.setData(axisData);
+            if (echartConfig.getXyValue().equals(EchartConfig.XYEnum.Y_VALUE)) {
+                option.setxAxis(axis);
+            } else {
+                option.setyAxis(axis);
+            }
+
+            if (legendData.size() > 1) {
+                if (echartConfig.getType().equals(SerieType.line)) {
+                    Legend legend = new Legend();
+                    legend.setData(legendData);
+                    option.setLegend(legend);
+                }
+
+            }
+            for (int i = 0; i < legendData.size(); i++) {
+                Serie serie = new Serie();
+                list.add(serie);
+                serie.setType(echartConfig.getType());
+                List data = new ArrayList();
+                serie.setData(data);
+                if (legendData.size() > 1) {
+                    serie.setName(legendData.get(i));
+                }
+                for (int i1 = 0; i1 < axisData.size(); i1++) {
+                    Object o = temp.get(legendData.get(i) + axisData.get(i1));
+                    data.add(o);
+                }
+
+            }
+
+        }
+
+        return option;
+    }
+}

+ 17 - 0
zd-model/src/main/java/com/zd/model/echarts/EchartsData.java

@@ -0,0 +1,17 @@
+package com.zd.model.echarts;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/09/13/14:54
+ * @Description:
+ */
+public interface EchartsData<T> {
+
+    String axisData();
+
+    String legendData();
+
+    T dataValue();
+
+
+}

+ 23 - 0
zd-model/src/main/java/com/zd/model/echarts/Legend.java

@@ -0,0 +1,23 @@
+package com.zd.model.echarts;
+
+import java.util.List;
+
+/**
+ * 图例
+ *
+ * @Author: zhoupan
+ * @Date: 2021/09/13/12:04
+ * @Description:
+ */
+public class Legend {
+
+    private List<String> data;
+
+    public List<String> getData() {
+        return data;
+    }
+
+    public void setData(List<String> data) {
+        this.data = data;
+    }
+}

+ 32 - 0
zd-model/src/main/java/com/zd/model/echarts/MapInList.java

@@ -0,0 +1,32 @@
+package com.zd.model.echarts;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/09/27/10:49
+ * @Description:
+ */
+public class MapInList extends CommonEchartsData {
+
+    public MapInList(Map<String, Object> o, String key, String v) {
+        this.setAxisData(o.get(key).toString());
+        this.setDataValue(o.get(v).toString());
+    }
+
+    public static List<MapInList> conversion(List<Map<String, Object>> listMap, String key, String v) {
+
+        return Optional.ofNullable(listMap)
+                .orElseGet(Collections::emptyList)
+                .stream().map(a -> {
+                    MapInList mapInList = new MapInList(a, key, v);
+                    return mapInList;
+                }).collect(Collectors.toList());
+    }
+
+
+}

+ 79 - 0
zd-model/src/main/java/com/zd/model/echarts/Option.java

@@ -0,0 +1,79 @@
+package com.zd.model.echarts;
+
+import java.util.List;
+
+/**
+ * echarts 返回对象
+ *
+ * @Author: zhoupan
+ * @Date: 2021/09/13/11:04
+ * @Description:
+ */
+public class Option<X, Y, F extends Serie<Y>> {
+
+    /**
+     * 标题
+     */
+    private Title title;
+
+    /**
+     * X坐标
+     */
+    private Axis xAxis;
+
+    /**
+     * Y坐标
+     */
+    private Axis yAxis;
+
+    /**
+     * 图例
+     */
+    private Legend legend;
+
+    /**
+     * 数据系列
+     */
+    private List<F> series;
+
+
+    public Title getTitle() {
+        return title;
+    }
+
+    public void setTitle(Title title) {
+        this.title = title;
+    }
+
+    public Axis getxAxis() {
+        return xAxis;
+    }
+
+    public void setxAxis(Axis xAxis) {
+        this.xAxis = xAxis;
+    }
+
+    public Axis getyAxis() {
+        return yAxis;
+    }
+
+    public void setyAxis(Axis yAxis) {
+        this.yAxis = yAxis;
+    }
+
+    public Legend getLegend() {
+        return legend;
+    }
+
+    public void setLegend(Legend legend) {
+        this.legend = legend;
+    }
+
+    public List<F> getSeries() {
+        return series;
+    }
+
+    public void setSeries(List<F> series) {
+        this.series = series;
+    }
+}

+ 54 - 0
zd-model/src/main/java/com/zd/model/echarts/Serie.java

@@ -0,0 +1,54 @@
+package com.zd.model.echarts;
+
+
+import com.zd.model.echarts.enums.SerieType;
+
+import java.util.List;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/09/13/11:26
+ * @Description:
+ */
+public class Serie<T> {
+
+    private String name;
+
+    private SerieType type;
+
+    private List<T> data;
+
+    private List<String> radius;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public SerieType getType() {
+        return type;
+    }
+
+    public void setType(SerieType type) {
+        this.type = type;
+    }
+
+    public List<T> getData() {
+        return data;
+    }
+
+    public void setData(List<T> data) {
+        this.data = data;
+    }
+
+    public List<String> getRadius() {
+        return radius;
+    }
+
+    public void setRadius(List<String> radius) {
+        this.radius = radius;
+    }
+}

+ 31 - 0
zd-model/src/main/java/com/zd/model/echarts/Title.java

@@ -0,0 +1,31 @@
+package com.zd.model.echarts;
+
+/**
+ * 标题对象
+ *
+ * @Author: zhoupan
+ * @Date: 2021/09/13/11:01
+ * @Description:
+ */
+public class Title {
+
+    private String text;
+
+    private String subtext;
+
+    public String getText() {
+        return text;
+    }
+
+    public void setText(String text) {
+        this.text = text;
+    }
+
+    public String getSubtext() {
+        return subtext;
+    }
+
+    public void setSubtext(String subtext) {
+        this.subtext = subtext;
+    }
+}

+ 29 - 0
zd-model/src/main/java/com/zd/model/echarts/enums/AxisType.java

@@ -0,0 +1,29 @@
+package com.zd.model.echarts.enums;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/09/13/12:22
+ * @Description:
+ */
+public enum AxisType {
+    /**
+     * 数值轴
+     */
+    value,
+    /**
+     * 类目轴
+     */
+    category,
+    /**
+     * 时间轴
+     */
+    time,
+    /**
+     * 对数轴
+     */
+    log,
+    ;
+
+    AxisType() {
+    }
+}

+ 30 - 0
zd-model/src/main/java/com/zd/model/echarts/enums/SerieType.java

@@ -0,0 +1,30 @@
+package com.zd.model.echarts.enums;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/09/13/11:28
+ * @Description:
+ */
+public enum SerieType {
+
+    line,
+    bar,
+    pie,
+    ;
+
+    SerieType() {
+    }
+
+    /**
+     * Returns the name of this enum constant, as contained in the
+     * declaration.  This method may be overridden, though it typically
+     * isn't necessary or desirable.  An enum type should override this
+     * method when a more "programmer-friendly" string form exists.
+     *
+     * @return the name of this enum constant
+     */
+    @Override
+    public String toString() {
+        return super.toString();
+    }
+}

+ 54 - 0
zd-model/src/main/java/com/zd/model/entity/AlgorithmVO.java

@@ -0,0 +1,54 @@
+package com.zd.model.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 算法结果
+ * @Author: zhoupan
+ * @Date: 2021/11/26/15:33
+ * @Description:
+ */
+@ApiModel("算法VO")
+public class AlgorithmVO extends Algorithm {
+    @ApiModelProperty("实验室名称")
+    private String subName;
+    @ApiModelProperty("用户名称")
+    private String userName;
+    private String inTime;
+    private String outTime;
+
+
+
+    public String getSubName() {
+        return subName;
+    }
+
+    public void setSubName(String subName) {
+        this.subName = subName;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getInTime() {
+        return inTime;
+    }
+
+    public void setInTime(String inTime) {
+        this.inTime = inTime;
+    }
+
+    public String getOutTime() {
+        return outTime;
+    }
+
+    public void setOutTime(String outTime) {
+        this.outTime = outTime;
+    }
+}

+ 0 - 163
zd-model/src/main/java/com/zd/model/entity/RemoteLabHardware.java

@@ -1,163 +0,0 @@
-package com.zd.model.entity;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.zd.model.annotation.Excel;
-import com.zd.model.enums.HardwareOperate;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.Size;
-
-/**
- * 硬件对象 lab_hardware
- *
- * @author zd
- */
-@Data
-@ApiModel("硬件表")
-public class RemoteLabHardware {
-
-    /**
-     * 主键id
-     */
-    @ApiModelProperty(value = "${comment}")
-    private Long id;
-
-    /**
-     * 设备名称
-     */
-    @ApiModelProperty("设备名称")
-    @Excel(name = "设备名称")
-    private String name;
-
-    /**
-     * 设备厂家
-     */
-    @ApiModelProperty("设备厂家")
-    @Excel(name = "设备厂家")
-    private String factory;
-
-    /**
-     * 设备类型
-     */
-    @ApiModelProperty("设备类型")
-    @Excel(name = "设备类型")
-    private Integer type;
-
-    /**
-     * 一体机类型,管控一体机0  学习考试一体机1
-     */
-    @ApiModelProperty("一体机类型")
-    @Excel(name = "一体机类型")
-    private Integer pcType;
-
-    /**
-     * mac地址
-     */
-    @ApiModelProperty("mac地址")
-    @Excel(name = "mac地址")
-    private String macAdd;
-
-    /**
-     * 所属实验室id
-     */
-    @ApiModelProperty("所属实验室id")
-    @Excel(name = "所属实验室id")
-    private Long subjectId;
-
-    /**
-     * 部门id
-     */
-    @ApiModelProperty("部门id")
-    @Excel(name = "部门id")
-    private Long deptId;
-
-    /**
-     * 部门名称
-     */
-    @ApiModelProperty("部门名称")
-    @Excel(name = "部门名称")
-    private String deptName;
-
-    /**
-     * 设备状态
-     */
-    @ApiModelProperty("设备状态")
-    @Excel(name = "设备状态")
-    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
-    private HardwareOperate operate;
-
-    /**
-     * 创建人(用于数据权限)
-     */
-    @ApiModelProperty("创建人(用于数据权限)")
-    @Excel(name = "创建人", readConverterExp = "用=于数据权限")
-    private Long userId;
-
-    @ApiModelProperty("设备编码")
-    private String hardwareNum;
-
-    /**
-     * 配置名称
-     */
-    private String configName;
-
-    /**
-     * 配置状态
-     */
-    private String configStatus;
-
-    /**
-     * 老继电器,新继电器
-     */
-    private int hardwareType;
-
-    @ApiModelProperty(value = "供应厂商")
-    private Integer manufacturerType;
-
-    /** ip地址 */
-    @Size(message = "ip地址长度不能超过100")
-    @ApiModelProperty(value = "ip地址")
-    private String ipAddress;
-    /** 设备端口号 */
-    @ApiModelProperty(value = "设备端口号")
-    private Integer port;
-    /** 设备输出频率 33最大 */
-    @ApiModelProperty(value = "设备输出频率 33最大")
-    private String uniformPower;
-    /** 设备推送频率,0最大,2最小 */
-    @ApiModelProperty(value = "设备推送频率,0最大,2最小")
-    private Byte sessionIndex;
-    /** 支持1通道、4通道、8通道、16通道 */
-    @ApiModelProperty(value = "支持1通道、4通道、8通道、16通道")
-    private Integer channels;
-
-    /**
-     * 功能状态: 不同设备的功能状态都是不一样的
-     */
-    private String functionStatus;
-
-    /**
-     * 横轴坐标
-     */
-    private String horizontalAxis;
-
-    /**
-     * 竖轴坐标
-     */
-    private String verticalAxis;
-
-    /**
-     * 关联继电器编码
-     */
-    private String relayCode;
-
-    /**
-     * 继电器位数
-     */
-    private Integer bit;
-
-    @ApiModelProperty(value = "报警器响铃时长")
-    private Integer ringTime;
-}

+ 2 - 2
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/speaker/entity/vo/UrlVo.java

@@ -1,4 +1,4 @@
-package com.zd.algorithm.api.speaker.entity.vo;
+package com.zd.model.entity;
 
 
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 
@@ -13,7 +13,7 @@ public class UrlVo {
     private String uri;
     private String uri;
 
 
     public UrlVo() {
     public UrlVo() {
-        
+
     }
     }
     public UrlVo(String name, String uri) {
     public UrlVo(String name, String uri) {
         this.name = name;
         this.name = name;

+ 53 - 0
zd-model/src/main/java/com/zd/model/enums/AuditStatusEnum.java

@@ -0,0 +1,53 @@
+package com.zd.model.enums;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.util.Arrays;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/09/10/15:47
+ * @Description:
+ */
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum AuditStatusEnum implements BaseEnum<Integer> {
+
+    TO_AUDIT(0, "待审核"),
+    SUCCESS(1, "已通过"),
+    FAIL(2, "未通过"),
+    NO_COMMIT(3, "未提交"),
+    ;
+
+    private Integer code;
+    private String name;
+
+    AuditStatusEnum(int code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static AuditStatusEnum getByCode(Integer code) {
+        return Arrays.stream(AuditStatusEnum.values()).filter(a -> a.code.equals(code)).findFirst().orElse(null);
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    @Override
+    public Integer getDictKey() {
+        return code;
+    }
+}

+ 75 - 0
zd-model/src/main/java/com/zd/model/enums/CodeToValueEnumTypeHandler.java

@@ -0,0 +1,75 @@
+//package com.zd.model.enums;
+//
+//import org.apache.ibatis.type.BaseTypeHandler;
+//import org.apache.ibatis.type.JdbcType;
+//import org.apache.ibatis.type.MappedTypes;
+//
+//import java.sql.CallableStatement;
+//import java.sql.PreparedStatement;
+//import java.sql.ResultSet;
+//import java.sql.SQLException;
+//
+///**
+// * code 作为值的转换器
+// *
+// * @Author: zhoupan
+// * @Date: 2021/09/10/10:29
+// * @Description:
+// */
+//@MappedTypes({BaseEnum.class})
+//public class CodeToValueEnumTypeHandler<E extends Enum<?> & BaseEnum> extends BaseTypeHandler<BaseEnum> {
+//
+//    private Class<E> type;
+//
+//    public CodeToValueEnumTypeHandler(Class<E> type) {
+//        if (type == null) {
+//            throw new IllegalArgumentException("要转换的枚举类不能为空");
+//        }
+//        this.type = type;
+//    }
+//
+//
+//    @Override
+//    public void setNonNullParameter(PreparedStatement preparedStatement, int i, BaseEnum baseEnum, JdbcType jdbcType) throws SQLException {
+//        if (baseEnum == null) {
+//            preparedStatement.setObject(i, null, jdbcType.TYPE_CODE);
+//            return;
+//        }
+//        if (jdbcType == null) {
+//            preparedStatement.setObject(i, baseEnum.getDictKey());
+//            return;
+//        }
+//
+//        preparedStatement.setObject(i, baseEnum.getDictKey(), jdbcType.TYPE_CODE);
+//    }
+//
+//    @Override
+//    public BaseEnum getNullableResult(ResultSet resultSet, String s) throws SQLException {
+//        Object code = resultSet.getObject(s);
+//        if (resultSet.wasNull()) {
+//            return null;
+//        }
+//        return BaseEnum.valueOfEnum(type, code);
+//
+//    }
+//
+//    @Override
+//    public BaseEnum getNullableResult(ResultSet resultSet, int i) throws SQLException {
+//        Object code = resultSet.getObject(i);
+//        if (resultSet.wasNull()) {
+//            return null;
+//        }
+//
+//        return BaseEnum.valueOfEnum(type, code);
+//    }
+//
+//    @Override
+//    public BaseEnum getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
+//        Object code = callableStatement.getObject(i);
+//        if (callableStatement.wasNull()) {
+//            return null;
+//        }
+//
+//        return BaseEnum.valueOfEnum(type, code);
+//    }
+//}

+ 44 - 0
zd-model/src/main/java/com/zd/model/enums/LockTypeEnum.java

@@ -0,0 +1,44 @@
+package com.zd.model.enums;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zd.model.valid.ValidEunm;
+
+/**
+ * 柜锁操作类型
+ */
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum LockTypeEnum implements ValidEunm, BaseEnum<Integer>{
+
+    SYSTEM(0, "系统"),
+    IN_STOCK(1, "入库"),
+    OUT_STOCK(2, "出库"),
+    USE(3, "领用"),
+    BACK(4, "归还");
+
+    private Integer code;
+
+    private String msg;
+
+    LockTypeEnum(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    @Override
+    public String codes() {
+        return this.code.toString();
+    }
+
+    @Override
+    public Integer getDictKey() {
+        return code;
+    }
+}

+ 39 - 0
zd-model/src/main/java/com/zd/model/enums/PointRecordType.java

@@ -0,0 +1,39 @@
+package com.zd.model.enums;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/09/07/13:40
+ * @Description:
+ */
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum PointRecordType implements BaseEnum<Integer> {
+
+    USE(0, "使用"),
+    GET(1, "获取"),
+    ;
+
+    private Integer code;
+    private String name;
+
+    PointRecordType(int code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    @JsonIgnore
+    public Integer getDictKey() {
+        return code;
+    }
+}

+ 67 - 0
zd-model/src/main/java/com/zd/model/enums/RiskHardwareTypeEnum.java

@@ -0,0 +1,67 @@
+package com.zd.model.enums;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zd.model.entity.HardwareType;
+
+import java.util.Arrays;
+
+/**
+ * 硬件类型枚举
+ *
+ * @Author: zhoupan
+ * @Date: 2021/09/13/15:47
+ * @Description:
+ */
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum RiskHardwareTypeEnum implements BaseEnum<Integer>, HardwareType {
+
+    SWITCH(0, "电源控制", ""),
+    AI_VENTILATION(3, "智能通风", ""),
+    AI_PHONE(4, "语音电话", ""),
+    AI_ANNOUNCEMENTS(5, "语音播报", "");
+
+    private Integer code;
+    private String name;
+    private String img;
+
+    RiskHardwareTypeEnum(int code, String name, String img) {
+        this.code = code;
+        this.name = name;
+        this.img = img;
+    }
+
+    public static RiskHardwareTypeEnum getByCode(Integer code) {
+        return Arrays.stream(RiskHardwareTypeEnum.values()).filter(a -> a.code.equals(code)).findFirst().orElse(null);
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getImg() {
+        return img;
+    }
+
+    @Override
+    public Integer getDictKey() {
+        return code;
+    }
+
+    @Override
+    public Integer getHardwareTypeCode() {
+        return code;
+    }
+
+    @Override
+    public String getHardwareTypeName() {
+        return name;
+    }
+
+    public String getEnumName() {
+        return super.toString();
+    }
+}

+ 21 - 0
zd-model/src/main/java/com/zd/model/enums/SignEnum.java

@@ -0,0 +1,21 @@
+package com.zd.model.enums;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/09/16/9:08
+ * @Description:
+ */
+public enum SignEnum {
+    /**
+     * 签到
+     */
+    SIGN_IN,
+
+    /**
+     * 离开
+     */
+    SIGN_OUT;
+
+    SignEnum() {
+    }
+}

+ 41 - 0
zd-model/src/main/java/com/zd/model/enums/WarnMessageTypeEnum.java

@@ -0,0 +1,41 @@
+package com.zd.model.enums;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/10/06/13:40
+ * @Description:
+ */
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum WarnMessageTypeEnum implements BaseEnum<Integer> {
+
+    voice(0, "语音" ),
+    SMS(1, "短信" ),
+    ;
+
+    WarnMessageTypeEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    private Integer code;
+
+    private String name;
+
+
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+
+    @Override
+    public Integer getDictKey() {
+        return code;
+    }
+}

+ 41 - 0
zd-model/src/main/java/com/zd/model/enums/WarnUserAttrEnum.java

@@ -0,0 +1,41 @@
+package com.zd.model.enums;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/10/06/13:40
+ * @Description:
+ */
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum WarnUserAttrEnum implements BaseEnum<Integer> {
+
+    ADMIN(0, "实验室负责人" ),
+    NONE(1, "实验室内部人员" ),
+    ;
+
+    WarnUserAttrEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    private Integer code;
+
+    private String name;
+
+
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+
+    @Override
+    public Integer getDictKey() {
+        return code;
+    }
+}

+ 47 - 0
zd-model/src/main/java/com/zd/model/enums/WorkTypeEnum.java

@@ -0,0 +1,47 @@
+package com.zd.model.enums;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/09/17/19:33
+ * @Description:
+ */
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum WorkTypeEnum implements BaseEnum<Integer> {
+
+    CAMERA(1, "随手拍", null),
+    VIOLATIONS(2, "违规", null),
+    SECURITY(3, "安全准入申请", null),
+    ;
+
+
+    WorkTypeEnum(Integer code, String name, String url) {
+        this.code = code;
+        this.name = name;
+        this.url = url;
+    }
+
+    private Integer code;
+
+    private String name;
+
+    private String url;
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    @Override
+    public Integer getDictKey() {
+        return code;
+    }
+}

+ 55 - 0
zd-model/src/main/java/com/zd/model/qc/Base64DecodeMultipartFile.java

@@ -0,0 +1,55 @@
+package com.zd.model.qc;
+
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.*;
+
+public class Base64DecodeMultipartFile implements MultipartFile {
+    private final byte[] imgContent;
+    private final String header;
+
+    public Base64DecodeMultipartFile(byte[] imgContent, String header) {
+        this.imgContent = imgContent;
+        this.header = header.split(";")[0];
+    }
+
+    @Override
+    public String getName() {
+        return System.currentTimeMillis() + Math.random() + "." + header.split("/")[1];
+    }
+
+    @Override
+    public String getOriginalFilename() {
+        return System.currentTimeMillis() + (int) Math.random() * 10000 + "." + header.split("/")[1];
+    }
+
+    @Override
+    public String getContentType() {
+        return header.split(":")[1];
+    }
+
+    @Override
+    public boolean isEmpty() {
+        return imgContent == null || imgContent.length == 0;
+    }
+
+    @Override
+    public long getSize() {
+        return imgContent.length;
+    }
+
+    @Override
+    public byte[] getBytes() throws IOException {
+        return imgContent;
+    }
+
+    @Override
+    public InputStream getInputStream() throws IOException {
+        return new ByteArrayInputStream(imgContent);
+    }
+
+    @Override
+    public void transferTo(File dest) throws IOException, IllegalStateException {
+        new FileOutputStream(dest).write(imgContent);
+    }
+}

+ 11 - 0
zd-model/src/main/java/com/zd/model/qc/QCInterface.java

@@ -0,0 +1,11 @@
+package com.zd.model.qc;
+
+/**
+ * @Author: zhoupan
+ * @Date: 2021/11/23/14:17
+ * @Description:
+ */
+public interface QCInterface {
+    String getQrCodeUrl();
+
+}

+ 0 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/controller/QpSupplierController.java


Some files were not shown because too many files changed in this diff