Parcourir la source

代码合并 dev to pre

donggaosheng il y a 1 an
Parent
commit
22dcd4a66a
100 fichiers modifiés avec 4646 ajouts et 732 suppressions
  1. 0 46
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/FaceCompare.java
  2. 1 1
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/RemoteFaceService.java
  3. 1 1
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/fallback/RemoteFaceFallbackFactory.java
  4. 1 1
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/forward/feign/RemoteForwardService.java
  5. 2 2
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/forward/feign/fallback/RemoteForwardFallbackFactory.java
  6. 2 31
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/rfid/domain/vo/HardwareRfidVo.java
  7. 34 0
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/dto/CheckHazardInfo.java
  8. 128 0
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/dto/LabMessageDynamicDto.java
  9. 36 5
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/RemoteLaboratoryService.java
  10. 42 0
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/fallback/RemoteLaboratoryFallbackFactory.java
  11. 2 1
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/vo/LabGradeManageWorkVO.java
  12. 26 0
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/vo/LabHazardDto.java
  13. 51 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckClapBo.java
  14. 37 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckDeviceBo.java
  15. 52 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckGroupBo.java
  16. 99 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckHazardBo.java
  17. 156 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckManageBo.java
  18. 53 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckOptionBo.java
  19. 48 7
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckPlanBo.java
  20. 41 1
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckRectifyBo.java
  21. 39 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckSetBo.java
  22. 28 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckStaffBo.java
  23. 63 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckStaffUserBo.java
  24. 34 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/NoticeConfigBo.java
  25. 24 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/QueryCheckGroupListParam.java
  26. 44 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/QueryCheckManageListParam.java
  27. 39 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/QueryCheckPlanListParam.java
  28. 24 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/QueryGroupListParam.java
  29. 38 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/QueryManageListParam.java
  30. 54 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/dto/CheckGroupMemberDto.java
  31. 83 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/dto/CheckHazardApplyDto.java
  32. 75 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/dto/CheckHazardDto.java
  33. 59 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/dto/CheckMemberDto.java
  34. 41 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/dto/NoticeSendDto.java
  35. 7 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/dto/UploadDto.java
  36. 58 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/feign/RemoteCheckSetService.java
  37. 48 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/feign/factory/RemoteCheckSetFallback.java
  38. 72 1
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckClapVo.java
  39. 38 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckDeviceVo.java
  40. 64 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckGroupVo.java
  41. 115 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckHazardApplyVo.java
  42. 24 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckHazardCountVo.java
  43. 38 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckHazardInfoVo.java
  44. 169 12
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckHazardVo.java
  45. 72 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageDetail2Vo.java
  46. 47 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageDetailVo.java
  47. 109 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageExcelVo.java
  48. 150 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageListVo.java
  49. 58 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageNotifyDetailVo.java
  50. 71 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageNotifyExcelVo.java
  51. 192 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageVo.java
  52. 31 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckOptionByExcel.java
  53. 53 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckOptionVo.java
  54. 108 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckPlanListVo.java
  55. 108 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckPlanVo.java
  56. 72 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckRectifyApplyVo.java
  57. 56 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckRectifyDescs.java
  58. 29 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckRectifyDetailVo.java
  59. 85 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckRectifyExcelVo.java
  60. 38 9
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckRectifyVo.java
  61. 69 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckSetVo.java
  62. 87 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckStaffUserStuVo.java
  63. 51 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckStaffVo.java
  64. 70 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CollegeItemsExcel.java
  65. 57 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/ContentExcel.java
  66. 73 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/HazardExcel.java
  67. 74 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/ItemsExcel.java
  68. 56 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/StuUserVo.java
  69. 80 0
      zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/SubjectExcel.java
  70. 4 3
      zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/RemoteLogService.java
  71. 76 0
      zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/RemoteUserService.java
  72. 2 0
      zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/factory/RemoteLogFallback.java
  73. 78 44
      zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/factory/RemoteUserFallback.java
  74. 198 97
      zd-auth/src/main/java/com/zd/auth/controller/TokenController.java
  75. 1 1
      zd-common/common-core/src/main/java/com/zd/common/core/alert/DingTalkAlert.java
  76. 10 4
      zd-common/common-core/src/main/java/com/zd/common/core/annotation/DataScope.java
  77. 9 10
      zd-common/common-core/src/main/java/com/zd/common/core/aspect/PreAuthorizeAspect.java
  78. 0 1
      zd-common/common-core/src/main/java/com/zd/common/core/aspect/ResponseAdvice.java
  79. 71 56
      zd-common/common-core/src/main/java/com/zd/common/core/datascope/DataScopeAspect.java
  80. 15 7
      zd-common/common-core/src/main/java/com/zd/common/core/launch/StartEventListener.java
  81. 0 4
      zd-common/common-core/src/main/java/com/zd/common/core/launch/ZdStartApplication.java
  82. 2 2
      zd-common/common-core/src/main/java/com/zd/common/core/launch/constant/LauncherConstant.java
  83. 30 90
      zd-common/common-core/src/main/java/com/zd/common/core/log/LogAspect.java
  84. 1 1
      zd-common/common-core/src/main/java/com/zd/common/core/mybatisplus/MybatisPlusGenerator.java
  85. 8 7
      zd-common/common-core/src/main/java/com/zd/common/core/security/TokenService.java
  86. 32 36
      zd-common/common-core/src/main/java/com/zd/common/core/security/TokenServiceImpl.java
  87. 36 0
      zd-common/common-core/src/main/java/com/zd/common/core/utils/DateUtils.java
  88. 15 23
      zd-common/common-core/src/main/java/com/zd/common/core/utils/SaveUtil.java
  89. 1 1
      zd-common/common-core/src/main/java/com/zd/common/core/utils/SecurityUtils.java
  90. 0 1
      zd-common/common-core/src/main/java/com/zd/common/core/utils/file/ImageUtils.java
  91. 23 16
      zd-common/common-core/src/main/java/com/zd/common/core/web/controller/AbstractController.java
  92. 2 2
      zd-common/common-core/src/main/resources/code-generator.properties
  93. 0 45
      zd-common/common-swagger/src/main/java/com/zd/common/swagger/config/AppListener.java
  94. 4 15
      zd-common/common-swagger/src/main/java/com/zd/common/swagger/config/Knife4jConfiguration.java
  95. 17 131
      zd-common/common-swagger/src/main/java/com/zd/common/swagger/config/SwaggerProperties.java
  96. 1 0
      zd-gateway/src/main/java/com/zd/gateway/config/KaptchaTextCreator.java
  97. 9 13
      zd-gateway/src/main/java/com/zd/gateway/filter/AuthFilter.java
  98. 2 2
      zd-model/src/main/java/com/zd/model/constant/BaseConstants.java
  99. 13 2
      zd-model/src/main/java/com/zd/model/constant/CacheConstants.java
  100. 0 0
      zd-model/src/main/java/com/zd/model/constant/SecurityConstants.java

+ 0 - 46
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/FaceCompare.java

@@ -1,46 +0,0 @@
-package com.zd.algorithm.api.face.feign;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-
-/**
- * @Author: zhoupan
- * @Date: 2021/10/12/17:54
- * @Description:
- */
-@ApiModel("提交参数")
-public class FaceCompare {
-    @ApiModelProperty("userId")
-    private Long userId;
-
-    @ApiModelProperty("实验室ID")
-    private Long labId;
-
-    @ApiModelProperty("特征码")
-    private byte[] data;
-
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
-    public byte[] getData() {
-        return data;
-    }
-
-    public void setData(byte[] data) {
-        this.data = data;
-    }
-
-    public Long getLabId() {
-        return labId;
-    }
-
-    public void setLabId(Long labId) {
-        this.labId = labId;
-    }
-}

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

@@ -4,11 +4,11 @@ import com.zd.algorithm.api.face.feign.fallback.RemoteFaceFallbackFactory;
 import com.zd.model.constant.ApplicationConstants;
 import com.zd.model.domain.R;
 import com.zd.model.domain.ResultData;
+import com.zd.model.entity.FaceCompare;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RequestPart;
 import org.springframework.web.multipart.MultipartFile;
 

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

@@ -1,6 +1,6 @@
 package com.zd.algorithm.api.face.feign.fallback;
 
-import com.zd.algorithm.api.face.feign.FaceCompare;
+import com.zd.model.entity.FaceCompare;
 import com.zd.algorithm.api.face.feign.RemoteFaceService;
 import com.zd.model.domain.R;
 import com.zd.model.domain.ResultData;

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

@@ -32,7 +32,7 @@ public interface RemoteForwardService {
     Object saveData(@RequestBody Map<String, Object> data);
 
     @GetMapping("/alarm/photograph")
-    ResultData<SysFile> photograph(@RequestParam("streamUrl") String streamUrl);
+    R<SysFile> photograph(@RequestParam("streamUrl") String streamUrl);
 
     @PostMapping("/algorithm/warningCheck")
     ResultData warningCheck(@RequestBody AlgorithmWarningBo bo);

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

@@ -40,8 +40,8 @@ public class RemoteForwardFallbackFactory implements FallbackFactory<RemoteForwa
             }
 
             @Override
-            public ResultData<SysFile> photograph(String streamUrl) {
-                return ResultData.fail("报警拍照服务调用失败!");
+            public R<SysFile> photograph(String streamUrl) {
+                return R.fail("报警拍照服务调用失败:" + throwable.getMessage());
             }
 
             @Override

+ 2 - 31
zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/rfid/domain/vo/HardwareRfidVo.java

@@ -2,6 +2,7 @@ package com.zd.algorithm.api.rfid.domain.vo;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.model.entity.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -14,7 +15,7 @@ import javax.validation.constraints.NotNull;
  * @创建时间 2022/11/15
  */
 @Data
-public class HardwareRfidVo {
+public class HardwareRfidVo extends BaseEntity {
 
     /**
      * 主键id
@@ -99,36 +100,6 @@ public class HardwareRfidVo {
     private Long subjectId;
 
     /**
-     * 部门id
-     */
-    @ApiModelProperty(value = "部门id")
-    private String deptId;
-
-    /**
-     * 部门名称
-     */
-    @ApiModelProperty(value = "部门名称")
-    private String deptName;
-
-    /**
-     * 创建人(用于数据权限)
-     */
-    @ApiModelProperty(value = "创建人(用于数据权限)")
-    private Long userId;
-
-    /**
-     * 创建人
-     */
-    @ApiModelProperty(value = "创建人")
-    private String createBy;
-
-    /**
-     * 备注
-     */
-    @ApiModelProperty(value = "备注")
-    private String remark;
-
-    /**
      * 查询参数
      */
     @ApiModelProperty(value = "查询参数")

+ 34 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/dto/CheckHazardInfo.java

@@ -0,0 +1,34 @@
+package com.zd.laboratory.api.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description 关联实验室危险源信息Dto
+ * @Author hzw
+ * @Date 2023/8/16 11:13
+ * @Version 2.0
+ */
+@Data
+public class CheckHazardInfo {
+
+    @ApiModelProperty("关联表id")
+    private Long joinHazardId;
+
+    @ApiModelProperty("危险源id")
+    private Long hazardId;
+
+    @ApiModelProperty("危险源名称")
+    private String hazardName;
+
+    @ApiModelProperty("编码")
+    private String code;
+
+    @ApiModelProperty("危险源类型id")
+    private Integer hazardTypeMode;
+
+    @ApiModelProperty("危险源类型名称")
+    private String hazardTypeModeName;
+
+
+}

+ 128 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/dto/LabMessageDynamicDto.java

@@ -0,0 +1,128 @@
+package com.zd.laboratory.api.dto;
+
+import com.zd.laboratory.api.entity.LabMessageUser;
+import com.zd.model.annotation.Excel;
+import com.zd.model.entity.BaseEntity;
+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.List;
+
+/**
+ * 【动态消息通知表】对象 lab_message_dynamic
+ *
+ * @author zd
+ * @date 2022-03-21
+ */
+@ApiModel("【动态消息通知表】")
+public class LabMessageDynamicDto extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /** 主键id */
+    @ApiModelProperty(value = "${comment}")
+    private Long id;
+    /** 发送范围(1是全校,2是院系,3是个人) */
+    @Excel(name = "发送范围", readConverterExp = "1=是全校,2是院系,3是个人")
+    @ApiModelProperty(value = "发送范围")
+    private Integer sendRange;
+    /** 消息类别(1:安全准入审批消息) 4: 分级管控预期消息*/
+    @Excel(name = "消息类别", readConverterExp = "消息类别(1:安全准入审批消息)")
+    @ApiModelProperty(value = "消息类别")
+    private Integer messClass;
+    /** 发送内容 */
+    @Excel(name = "发送内容")
+    @ApiModelProperty(value = "发送内容")
+    private String content;
+    /** 动态id,主要根据消息类别来区分保存的对应的类别id */
+    @Excel(name = "动态id,主要根据消息类别来区分保存的对应的类别id")
+    @ApiModelProperty(value = "动态id,主要根据消息类别来区分保存的对应的类别id")
+    private Long dynamicId;
+    /** 创建人(用于数据权限) */
+    @Excel(name = "创建人", readConverterExp = "用=于数据权限")
+    @ApiModelProperty(value = "创建人")
+    private Long userId;
+
+    private List<LabMessageUser> messageUserList;
+
+    public void setId(Long id)
+    {
+        this.id = id;
+    }
+
+    public Long getId()
+    {
+        return id;
+    }
+    public void setSendRange(Integer sendRange)
+    {
+        this.sendRange = sendRange;
+    }
+
+    public Integer getSendRange()
+    {
+        return sendRange;
+    }
+    public void setMessClass(Integer messClass)
+    {
+        this.messClass = messClass;
+    }
+
+    public Integer getMessClass()
+    {
+        return messClass;
+    }
+    public void setContent(String content)
+    {
+        this.content = content;
+    }
+
+    public String getContent()
+    {
+        return content;
+    }
+    public void setDynamicId(Long dynamicId)
+    {
+        this.dynamicId = dynamicId;
+    }
+
+    public Long getDynamicId()
+    {
+        return dynamicId;
+    }
+    public void setUserId(Long userId)
+    {
+        this.userId = userId;
+    }
+
+    public Long getUserId()
+    {
+        return userId;
+    }
+
+    public List<LabMessageUser> getMessageUserList() {
+        return messageUserList;
+    }
+
+    public void setMessageUserList(List<LabMessageUser> messageUserList) {
+        this.messageUserList = messageUserList;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("sendRange", getSendRange())
+            .append("messClass", getMessClass())
+            .append("content", getContent())
+            .append("dynamicId", getDynamicId())
+            .append("createTime", getCreateTime())
+            .append("userId", getUserId())
+            .append("createBy", getCreateBy())
+            .append("updateTime", getUpdateTime())
+            .append("updateBy", getUpdateBy())
+            .append("remark", getRemark())
+            .toString();
+    }
+}

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

@@ -1,11 +1,13 @@
 package com.zd.laboratory.api.feign;
 
+import com.zd.laboratory.api.dto.CheckHazardInfo;
 import com.zd.laboratory.api.dto.CheckSubjectDto;
 import com.zd.laboratory.api.dto.WarningConfigDto;
 import com.zd.laboratory.api.dto.WarningNoticeLogDto;
 import com.zd.laboratory.api.entity.*;
 import com.zd.laboratory.api.feign.fallback.RemoteLaboratoryFallbackFactory;
 import com.zd.laboratory.api.vo.LabGradeManageWorkVO;
+import com.zd.laboratory.api.vo.LabHazardDto;
 import com.zd.laboratory.api.vo.SubFunction;
 import com.zd.model.constant.ApplicationConstants;
 import com.zd.model.domain.AjaxResult;
@@ -333,6 +335,10 @@ public interface RemoteLaboratoryService {
     @PostMapping("/checkRecord/addTj")
     public R<Object> addTj(@RequestBody Map<String, Object> map);
 
+    @ApiOperation(value = "获取指定数据的危险源")
+    @PostMapping("/hazard/getHazardFilterId")
+    public R<List<Object>> getHazardFilterId(@RequestBody Map<String, Object> map);
+
     @ApiOperation(value = "根据检查项获取 隐患整改集合")
     @GetMapping("/checkRecord/recordDettailsList")
     public R<Object> recordDettailsList(@PathVariable("id") Integer id);
@@ -515,6 +521,10 @@ public interface RemoteLaboratoryService {
     @GetMapping("/subject/getPositionBySubId")
     ResultData getPositionBySubId(@RequestParam("subIds") String subIds);
 
+    @ApiOperation(value = "查询二维码基础信息")
+    @GetMapping("/subject/getLabInfoQrcode")
+    ResultData<String> getLabInfoQrcode();
+
 
     @ApiOperation(value = "查询安全准入审批记录列表")
     @GetMapping("/apply/getStuList")
@@ -528,6 +538,10 @@ public interface RemoteLaboratoryService {
     @GetMapping("/subject/getAllSubIds")
     ResultData getAllSubIds();
 
+    @ApiOperation(value = "查询实验室信息")
+    @RequestMapping("/subject/list/labSubjectList")
+    ResultData selectlabSubjectList(@RequestParam("deptId") Long deptId);
+
     @ApiOperation(value = "查询学院实验室dis")
     @GetMapping("/subject/getCollegeSubIds")
     ResultData getCollegeSubIds(@RequestParam(value = "deptIds") Long[] deptIds);
@@ -583,10 +597,27 @@ public interface RemoteLaboratoryService {
     @ApiOperation("根据实验室查询实验室负责人,安全员 身份信息和电话号码")
     ResultData<List<UserPhoneInfo>> selectAdminAndSafeAdminById(@RequestParam("subId") Long subId);
 
-    /**
-     * 预案触发
-     */
-    @PostMapping("/plan/triggerRiskPlan")
-    ResultData triggerRiskPlan(@RequestBody SubFunction<SensorFunctionStatus> subFunction);
+    @ApiOperation("查询手持机用户")
+    @PostMapping("/pdaUser/getlist")
+    ResultData getPdaList();
 
+    @GetMapping("/hazard/getHazardListByIds")
+    @ApiOperation("根据危险源ids查询列表")
+    ResultData getHazardListByIds(@RequestParam("hazardIds") String hazardIds);
+
+    @GetMapping("/hazard/queryHazardOption")
+    @ApiOperation("查询危险源列表")
+    ResultData<List<LabHazardDto>> getHazardList();
+
+    @GetMapping("/hazard/getHazardSubjectRelationList")
+    @ApiOperation("根据实验室id查询绑定危险源列表")
+    ResultData getHazardSubjectRelationList(@RequestParam("subId") Long subId,
+                                            @RequestParam("hazardIds") String hazardIds);
+
+    @GetMapping("/hazard/getHazardSubjectRelationListByIds")
+    @ApiOperation("根据关联id查询绑定危险源列表")
+    ResultData<List<CheckHazardInfo>> getHazardSubjectRelationListByIds(@RequestParam("joinHazardIds") String joinHazardIds);
+
+	@PostMapping("/plan/triggerRiskPlan")
+    ResultData triggerRiskPlan(@RequestBody SubFunction<SensorFunctionStatus> subFunction);
 }

+ 42 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/fallback/RemoteLaboratoryFallbackFactory.java

@@ -1,11 +1,13 @@
 package com.zd.laboratory.api.feign.fallback;
 
+import com.zd.laboratory.api.dto.CheckHazardInfo;
 import com.zd.laboratory.api.dto.CheckSubjectDto;
 import com.zd.laboratory.api.dto.WarningConfigDto;
 import com.zd.laboratory.api.dto.WarningNoticeLogDto;
 import com.zd.laboratory.api.entity.*;
 import com.zd.laboratory.api.feign.RemoteLaboratoryService;
 import com.zd.laboratory.api.vo.LabGradeManageWorkVO;
+import com.zd.laboratory.api.vo.LabHazardDto;
 import com.zd.laboratory.api.vo.SubFunction;
 import com.zd.model.domain.AjaxResult;
 import com.zd.model.domain.DTO.UserPhoneInfo;
@@ -313,6 +315,11 @@ public class RemoteLaboratoryFallbackFactory implements FallbackFactory<RemoteLa
             }
 
             @Override
+            public R <List<Object>> getHazardFilterId(Map <String, Object> map) {
+                return R.fail("获取指定数据的危险源失败:" + cause.getMessage());
+            }
+
+            @Override
             public R<Object> recordDettailsList(Integer id) {
                 return R.fail("根据检查项获取 隐患整改集合失败:" + cause.getMessage());
             }
@@ -479,6 +486,11 @@ public class RemoteLaboratoryFallbackFactory implements FallbackFactory<RemoteLa
             }
 
             @Override
+            public ResultData<String> getLabInfoQrcode() {
+                return ResultData.fail("查询二维码基础信息失败!"+ cause.getMessage());
+            }
+
+            @Override
             public TableDataInfo getStuList(Map applyMap) {
                 TableDataInfo tableDataInfo = new TableDataInfo();
                 tableDataInfo.setMsg("查询学员准入列表失败:" + cause.getMessage());
@@ -502,6 +514,11 @@ public class RemoteLaboratoryFallbackFactory implements FallbackFactory<RemoteLa
             }
 
             @Override
+            public ResultData selectlabSubjectList(Long deptId) {
+                return ResultData.fail("查询实验室信息失败!"+ cause.getMessage());
+            }
+
+            @Override
             public R getBySubjectId(Long subjectId) {
                 return R.fail("查询实验室危险源信息失败!"+ cause.getMessage());
             }
@@ -562,6 +579,31 @@ public class RemoteLaboratoryFallbackFactory implements FallbackFactory<RemoteLa
             }
 
             @Override
+            public ResultData getPdaList() {
+                return ResultData.fail("查询手持机用户列表失败!!"+ cause.getMessage());
+            }
+
+            @Override
+            public ResultData getHazardListByIds(@RequestParam("hazardIds") String hazardIds) {
+                return ResultData.fail("查询危险源列表失败!!"+ cause.getMessage());
+            }
+
+            @Override
+            public ResultData<List<LabHazardDto>> getHazardList() {
+                return ResultData.fail("查询危险源列表失败!!"+ cause.getMessage());
+            }
+
+            @Override
+            public ResultData getHazardSubjectRelationList(Long subId, String hazardIds) {
+                return ResultData.fail("查询危险源列表失败!!"+ cause.getMessage());
+            }
+
+            @Override
+            public ResultData<List<CheckHazardInfo>> getHazardSubjectRelationListByIds(String joinHazardIds) {
+                return ResultData.fail("查询危险源列表失败!!"+ cause.getMessage());
+            }
+
+			@Override
             public ResultData triggerRiskPlan(SubFunction<SensorFunctionStatus> subFunction) {
                 return ResultData.fail("预案报警失败!!"+ cause.getMessage());
             }

+ 2 - 1
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/vo/LabGradeManageWorkVO.java

@@ -1,6 +1,7 @@
 package com.zd.laboratory.api.vo;
 
 import cn.hutool.core.collection.ListUtil;
+import com.zd.model.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -8,7 +9,7 @@ import java.util.Date;
 import java.util.List;
 
 @ApiModel("管控工作表")
-public class LabGradeManageWorkVO {
+public class LabGradeManageWorkVO extends BaseEntity {
     /**
      * 实验室id
      */

+ 26 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/vo/LabHazardDto.java

@@ -0,0 +1,26 @@
+package com.zd.laboratory.api.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description 危险源传输类
+ * @Author hzw
+ * @Date 2023/8/10 17:40
+ * @Version 2.0
+ */
+@Data
+@ApiModel("危险源传输类")
+public class LabHazardDto {
+
+    @ApiModelProperty("危险源id")
+    private Long id;
+
+    @ApiModelProperty("危险源名称")
+    private String anotherName;
+
+    @ApiModelProperty("危险源类型(查看字典表lab_hazard_type)")
+    private Integer hazardTypeMode;
+
+}

+ 51 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckClapBo.java

@@ -1,11 +1,15 @@
 package com.zd.security.api.bo;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.zd.model.entity.SysDept;
 import com.zd.model.page.PageQuery;
 import com.zd.security.api.dto.UploadDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -20,6 +24,9 @@ public class CheckClapBo extends PageQuery implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty("主键id")
+    private Long id;
+
     @ApiModelProperty("组合搜索条件")
     private String searchValue;
 
@@ -29,10 +36,54 @@ public class CheckClapBo extends PageQuery implements Serializable {
     @ApiModelProperty("学院id")
     private Long deptId;
 
+    @ApiModelProperty("学院名称")
+    private String deptName;
+
     @ApiModelProperty("实验室id")
     private Long subId;
 
+    @ApiModelProperty("实验室名称")
+    private String subName;
+
+    @ApiModelProperty("隐患描述")
+    private String hazardDescribe;
+
+    @ApiModelProperty("整改人id")
+    private Long rectifyId;
+
+    @ApiModelProperty("整改人姓名")
+    private String rectifyPeople;
+
+    @ApiModelProperty("整改措施")
+    private String rectifyDescribe;
+
+    @ApiModelProperty("整改时间")
+    private LocalDateTime rectifyTime;
+
+    @ApiModelProperty("上报开始时间")
+    private String beginTime;
+
+    @ApiModelProperty("上报结束时间")
+    private String endTime;
+
+    @ApiModelProperty("上报时间排序,1是正序,2是倒序")
+    private Integer upTimeOrder;
+
+    @ApiModelProperty("整改时间排序,1是正序,2是倒序")
+    private Integer zgTimeOrder;
+
+    @ApiModelProperty("下级部门集合")
+    private List<SysDept> sysDeptList = new ArrayList <>();
+
+    @ApiModelProperty("学院id")
+    private Long newDeptId;
+
+    @ApiModelProperty("创建人ID")
+    private Long createBy;
 
     @ApiModelProperty("上传照片")
     private List <UploadDto> imgDtoList = new ArrayList <>();
+
+    @ApiModelProperty("与我有关:1,0")
+    private Integer myRelated;
 }

+ 37 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckDeviceBo.java

@@ -0,0 +1,37 @@
+package com.zd.security.api.bo;
+
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Controller
+ * <p>设备检查配置</p>
+ * @author cyl
+ * @date 2023/8/10
+ */
+@Data
+public class CheckDeviceBo extends PageQuery implements Serializable {
+
+    @ApiModelProperty("组合搜索条件")
+    private String searchValue;
+
+    @ApiModelProperty("危险源类型")
+    private Integer hazardType;
+
+    @ApiModelProperty("检查内容id")
+    private Long joinHazardReid;
+
+    @ApiModelProperty("检查内容旧id")
+    private Long joinHazardReOldid;
+
+    @ApiModelProperty("检查类目列表id")
+    private List <Long> joinCheckOpList = new ArrayList <>();
+
+    @ApiModelProperty("危险源集合ids")
+    private List <Long> hazardIds = new ArrayList <>();
+}

+ 52 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckGroupBo.java

@@ -0,0 +1,52 @@
+package com.zd.security.api.bo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.model.page.PageQuery;
+import com.zd.security.api.dto.CheckGroupMemberDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 检查组业务表
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-04-19
+ */
+@Data
+@ApiModel(value = "CheckGroup业务对象", description = "检查组业务表")
+public class CheckGroupBo extends PageQuery implements Serializable{
+
+    private static final long serialVersionUID = 8170444784000141434L;
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("检查组名称")
+    private String groupName;
+
+    @ApiModelProperty("巡查层级(1校级,2院级)")
+    private Integer checkLevel;
+
+    @ApiModelProperty("是否启用(0否 1是)")
+    private Integer enable;
+
+    @ApiModelProperty("人数")
+    private Integer peopleNum;
+
+    @ApiModelProperty("巡查组")
+    private List<CheckGroupMemberDto> checkGroupMemberList;
+
+    /**
+     * 登录用户名称
+     */
+    private String loginUserName;
+
+}

+ 99 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckHazardBo.java

@@ -1,5 +1,6 @@
 package com.zd.security.api.bo;
 
+import com.zd.model.entity.SysDept;
 import com.zd.model.page.PageQuery;
 import com.zd.security.api.dto.CheckHazardDto;
 import io.swagger.annotations.ApiModelProperty;
@@ -21,12 +22,110 @@ public class CheckHazardBo extends PageQuery implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty("检索框")
+    private String searchValue;
+
+    @ApiModelProperty("批量操作的id集合")
+    private Long[] ids;
+
     @ApiModelProperty("巡查管理id")
     private Long checkManageId;
 
     @ApiModelProperty("隐患类别:1是院校巡查,2是自查")
     private Integer hazardType;
 
+    @ApiModelProperty(" @ApiModelProperty(\"整改状态,1是已完成,2是待整改,3是待复核\")")
+    private Integer rectifyStatus;
+
+    @ApiModelProperty("开始时间")
+    private String beginTime;
+
+    @ApiModelProperty("管理状态(0待检查,1检查中,2已检查)")
+    private Integer manageStatus;
+
+    @ApiModelProperty("检查结果(0不符合,1符合)")
+    private Integer checkResult;
+
+    @ApiModelProperty("整改人id")
+    private Long rectifyUserid;
+
+    @ApiModelProperty("检查人id")
+    private Long checkUserId;
+
+    @ApiModelProperty("结束时间")
+    private String endTime;
+
+    @ApiModelProperty("审核结果1是通过,0是驳回 2是待审核")
+    private Integer examineResult;
+
     @ApiModelProperty("隐患类数据列表")
     private List <CheckHazardDto> checkHazardDtoList = new ArrayList <>();
+
+    @ApiModelProperty("隐患级别1,2,3")
+    private Integer hdLevel;
+
+    @ApiModelProperty("部门id")
+    private Long deptId;
+
+    @ApiModelProperty("部门集合id")
+    private Long[] deptIds;
+
+    @ApiModelProperty("巡查管理id")
+    private Long managerId;
+
+    @ApiModelProperty("实验室id")
+    private Long subId;
+
+    @ApiModelProperty("实验室id集合")
+    private Long[] subIds;
+
+    @ApiModelProperty("检查时间排序,1是正序,2是倒序")
+    private Integer checkTimeOrder;
+
+    @ApiModelProperty("整改期限排序,1是正序,2是倒序")
+    private Integer zgTermOrder;
+
+    @ApiModelProperty("整改时间排序,1是正序,2是倒序")
+    private Integer zgTimeOrder;
+
+    @ApiModelProperty("检查项目(1,2,3)")
+    private String hazardCheckPro;
+
+    @ApiModelProperty("登录人用户id")
+    private Long userId;
+
+    @ApiModelProperty("计划ID")
+    private Long planId;
+
+    @ApiModelProperty("创建人ID")
+    private Long createBy;
+
+    @ApiModelProperty("用于判断小程序排序问题")
+    private Integer appFlag;
+
+    @ApiModelProperty("下级部门集合")
+    private List<SysDept> sysDeptList = new ArrayList <>();
+
+    @ApiModelProperty("学院id")
+    private Long newDeptId;
+
+    @ApiModelProperty("与我有关:1,0")
+    private Integer myRelated;
+
+    private String remark;
+
+    @ApiModelProperty("一级检查项目code序号")
+    private String hazardCheckCode1;
+
+    @ApiModelProperty("危险源类型")
+    private Integer hazardTypeMode;
+
+    @ApiModelProperty("审核人")
+    private Long reviewedBy;
+
+    @ApiModelProperty("用户集合id")
+    private Long[] userIds;
+
+    @ApiModelProperty("人员类型:1是检查人员,2是整改人员")
+    private Integer staffType;
 }

+ 156 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckManageBo.java

@@ -0,0 +1,156 @@
+package com.zd.security.api.bo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.model.page.PageQuery;
+import com.zd.security.api.dto.CheckHazardDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.List;
+
+/**
+ * <p>
+ * 检查管理业务对象
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-04-21
+ */
+@Data
+@ApiModel(value = "CheckManage业务对象", description = "检查管理业务对象")
+public class CheckManageBo extends PageQuery implements Serializable {
+
+    private static final long serialVersionUID = -5566209917546438339L;
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("批量操作的id集合")
+    private Long[] ids;
+
+    @ApiModelProperty("检查计划id")
+    private Long checkPlanId;
+
+    @ApiModelProperty("实验室id")
+    private Long subId;
+
+    @ApiModelProperty("实验室id列表")
+    private String subIds;
+
+    @ApiModelProperty("计划标题")
+    private String title;
+
+    @ApiModelProperty("学院id")
+    private Long deptId;
+
+    @ApiModelProperty("学院id集合")
+    private Long[] deptIds;
+
+    @ApiModelProperty("学院名称")
+    private String collegeName;
+
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @ApiModelProperty("楼栋Id")
+    private Long buildId;
+
+    @ApiModelProperty("楼栋名称")
+    private String buildName;
+
+    @ApiModelProperty("房间号")
+    private String roomNumber;
+
+    @ApiModelProperty("检查要求")
+    private String checkDemand;
+
+    @ApiModelProperty("检查范围(1全校 2学院 3实验室)")
+    private Integer checkRange;
+
+    @ApiModelProperty("检查类型(1校院巡查 2实验室自查)")
+    private Integer checkType;
+
+    @ApiModelProperty("检查类别(1综合检查 2专项检查)")
+    private Integer checkCategory;
+
+    @ApiModelProperty("危险源ids")
+    private String hazardIds;
+
+    @ApiModelProperty("实验室关联危险源ids")
+    private String joinHazardIds;
+
+    @ApiModelProperty("检查管理危险源信息")
+    private String checkHazardInfo;
+
+    @ApiModelProperty("管理状态(-1全部,0待检查,1检查中,2已检查)")
+    private Integer manageStatus;
+
+    @ApiModelProperty("检查人名称")
+    private String checkUserId;
+
+    @ApiModelProperty("检查人名称")
+    private String checkUser;
+
+    @ApiModelProperty("检查结果(0不符合,1符合)")
+    private Integer checkResult;
+
+    @ApiModelProperty("是否存在附件(0否 1是)")
+    private Integer isAttachment;
+
+    @ApiModelProperty("隐患数")
+    private Integer dangerNum;
+
+    @ApiModelProperty("整改进度")
+    private String rectifySchedule;
+
+    @ApiModelProperty("周期开始时间")
+    private LocalDate cycleStartTime;
+
+    @ApiModelProperty("周期结束时间")
+    private LocalDate cycleEndTime;
+
+    @ApiModelProperty("整改期限")
+    private LocalDate rectifyDeadline;
+
+    @ApiModelProperty("整改通知(1整改告知书 2整改通知书)")
+    private Integer rectifyNotice;
+
+    @ApiModelProperty("隐患类数据列表")
+    private List<CheckHazardDto> checkHazardDtoList;
+
+    @ApiModelProperty("检查开始时间")
+    private String beginTime;
+
+    @ApiModelProperty("检查结束时间")
+    private String endTime;
+
+    @ApiModelProperty("搜索值")
+    private String searchValue;
+
+    @ApiModelProperty("整改状态,1是已完成,2是待整改,3是待复核,4是暂无法整改")
+    private Integer rectifyStatus;
+
+    @ApiModelProperty("安全分类")
+    private Integer typeId;
+
+    @ApiModelProperty("安全分级")
+    private Integer level;
+
+    @ApiModelProperty("是否与我有关 0否 1是")
+    private Integer myRelated;
+
+    /**
+     * 登录用户名称
+     */
+    private String loginUserName;
+
+    /**
+     * 登录用户id
+     */
+    private Long loginUserId;
+}

+ 53 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckOptionBo.java

@@ -0,0 +1,53 @@
+package com.zd.security.api.bo;
+
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * Controller
+ * <p>检查选项类</p>
+ * @author cyl
+ * @date 2023/4/25
+ */
+@Data
+public class CheckOptionBo extends PageQuery implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 搜索值
+     */
+    @ApiModelProperty("值搜索")
+    private String searchValue;
+
+    @ApiModelProperty("主键id")
+    private Long id;
+
+    @ApiModelProperty("检查项名称")
+    private String name;
+
+    @ApiModelProperty("检查项要点")
+    private String mainPoint;
+
+    @ApiModelProperty("条款号")
+    private String code;
+
+    @ApiModelProperty("父级ID")
+    private Long parentId;
+
+    @ApiModelProperty("类型 1 正式 2 临时(检查者提交数据)")
+    private Integer type;
+
+    @ApiModelProperty("级别 默认-1 无效,从 1 开始")
+    private Integer level;
+
+    /**
+     * 批量操作的id集合
+     */
+    private List <Long> ids;
+
+    private List<Long> pIds;
+}

+ 48 - 7
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckPlanBo.java

@@ -1,12 +1,18 @@
 package com.zd.security.api.bo;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.zd.model.page.PageQuery;
+import com.zd.security.api.dto.CheckMemberDto;
+import com.zd.security.api.dto.UploadDto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.io.Serializable;
-import java.time.LocalDateTime;
+import java.time.LocalDate;
+import java.util.List;
 
 /**
  * <p>
@@ -21,8 +27,11 @@ import java.time.LocalDateTime;
 public class CheckPlanBo extends PageQuery implements Serializable {
 
     private static final long serialVersionUID = -8423906903586415207L;
+    public static final Integer SCHOOL_CHECK  = 1;
+    public static final Integer SUBJECT_CHECK = 2;
 
     @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
     @ApiModelProperty("计划标题")
@@ -31,7 +40,7 @@ public class CheckPlanBo extends PageQuery implements Serializable {
     @ApiModelProperty("检查类型(1校院巡查 2实验室自查)")
     private Integer checkType;
 
-    @ApiModelProperty("检查状态(1未开始 2进行中 3已结束)")
+    @ApiModelProperty("检查状态(0全部 1未开始 2进行中 3已结束)")
     private Integer checkStatus;
 
     @ApiModelProperty("检查进度")
@@ -40,17 +49,40 @@ public class CheckPlanBo extends PageQuery implements Serializable {
     @ApiModelProperty("检查范围(1全校 2学院 3实验室)")
     private Integer checkRange;
 
+    @ApiModelProperty("检查学院ids")
+    private String collegeIds;
+
     @ApiModelProperty("检查实验室ids")
-    private String checkIds;
+    private String subIds;
+
+    @ApiModelProperty("学院数量")
+    private Integer collegeNum;
 
     @ApiModelProperty("实验室数量")
     private Integer subjectNum;
 
+    @ApiModelProperty("检查类别(1综合检查 2专项检查)")
+    private Integer checkCategory;
+
+    @ApiModelProperty("危险源ids")
+    private String hazardIds;
+
+    @ApiModelProperty("危险源数量")
+    private Integer hazardNum;
+
     @ApiModelProperty("周期开始时间")
-    private LocalDateTime cycleStartTime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate cycleStartTime;
 
     @ApiModelProperty("周期结束时间")
-    private LocalDateTime cycleEndTime;
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDate cycleEndTime;
+
+    @ApiModelProperty("是否逾期(0否 1是)")
+    private Integer isOverdue;
+
+    @ApiModelProperty("是否存在附件(0否 1是)")
+    private Integer isAttachment;
 
     @ApiModelProperty("检查要求")
     private String checkDemand;
@@ -58,7 +90,16 @@ public class CheckPlanBo extends PageQuery implements Serializable {
     @ApiModelProperty("巡查组id")
     private Long checkGroupId;
 
-    @ApiModelProperty("是否删除(0否 1是)")
-    private Boolean isDeleted;
+    @ApiModelProperty("材料附件列表")
+    private List<UploadDto> uploadDtoList;
+
+    @ApiModelProperty("检查成员列表")
+    private List<CheckMemberDto> checkMemberDtoList;
+
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("修改人名称")
+    private String updateName;
 
 }

+ 41 - 1
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckRectifyBo.java

@@ -1,15 +1,19 @@
 package com.zd.security.api.bo;
 
+import com.zd.model.entity.SysDept;
 import com.zd.model.page.PageQuery;
+import com.zd.security.api.dto.UploadDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Controller
- *
+ * <p>整改类</p>
  * @author cyl
  * @date 2023/4/20
  */
@@ -18,12 +22,21 @@ public class CheckRectifyBo extends PageQuery implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty("检索框")
+    private String searchValue;
+
     @ApiModelProperty("主键id")
     private Long id;
 
     @ApiModelProperty("隐患表id")
     private Long checkHazardId;
 
+    @ApiModelProperty("学院id")
+    private Long deptId;
+
+    @ApiModelProperty("整改类型:1是院校巡查,2是自查")
+    private Integer rectifyType;
+
     @ApiModelProperty("整改结果1是已整改,0是暂无法整改")
     private Integer rectifyResult;
 
@@ -44,4 +57,31 @@ public class CheckRectifyBo extends PageQuery implements Serializable {
 
     @ApiModelProperty("审核时间")
     private LocalDateTime reviewedTime;
+
+    @ApiModelProperty("检查开始时间")
+    private String beginTime;
+
+    @ApiModelProperty("检查结束时间")
+    private String endTime;
+
+    @ApiModelProperty("上传文件")
+    private List <UploadDto> uploadDtoList = new ArrayList <>();
+
+    @ApiModelProperty("实验室id集合")
+    private Long[] subIds;
+
+    @ApiModelProperty("创建人")
+    private Long createBy;
+
+    @ApiModelProperty("下级部门集合")
+    private List<SysDept> sysDeptList = new ArrayList <>();
+
+    @ApiModelProperty("学院id")
+    private Long newDeptId;
+
+    @ApiModelProperty("与我有关:1,0")
+    private Integer myRelated;
+
+    @ApiModelProperty("隐患id集合")
+    private List<Long> checkHazardIds;
 }

+ 39 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckSetBo.java

@@ -0,0 +1,39 @@
+package com.zd.security.api.bo;
+
+import com.zd.model.page.PageQuery;
+import com.zd.security.api.vo.StuUserVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Controller
+ * <p>检查配置类</p>
+ * @author cyl
+ * @date 2023/4/21
+ */
+@Data
+public class CheckSetBo extends PageQuery implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("实验室负责人:1是勾选,0是未勾选")
+    private Boolean setSubjectLead;
+
+    @ApiModelProperty("实验室安全责任人:1是勾选,0是未勾选")
+    private Boolean setSubjectSafety;
+
+    @ApiModelProperty("全部老师:1是勾选,0是未勾选")
+    private Boolean setTeacher;
+
+    @ApiModelProperty("全部学生:1是勾选,0是未勾选")
+    private Boolean setStudent;
+
+    @ApiModelProperty("人员类型:1是检查人员,2是整改人员")
+    private Integer staffType;
+
+    private List <StuUserVo> sysUserVoList = new ArrayList<>();
+}

+ 28 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckStaffBo.java

@@ -0,0 +1,28 @@
+package com.zd.security.api.bo;
+
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Controller
+ * <p>检查配置下用户类</p>
+ * @author cyl
+ * @date 2023/4/21
+ */
+@Data
+public class CheckStaffBo  extends PageQuery implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("组合搜索条件")
+    private String searchValue;
+
+    @ApiModelProperty("学院id")
+    private Long deptId;
+
+    @ApiModelProperty("人员类型:1是检查人员,2是整改人员")
+    private Integer staffType;
+}

+ 63 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/CheckStaffUserBo.java

@@ -0,0 +1,63 @@
+package com.zd.security.api.bo;
+
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Controller
+ * <p>检查配置项关联的用户类</p>
+ * @author cyl
+ * @date 2023/4/23
+ */
+@Data
+public class CheckStaffUserBo extends PageQuery implements Serializable {
+
+    @ApiModelProperty("适配组")
+    private String adapterGroupStr;
+
+    @ApiModelProperty("人员类型:1是检查人员,2是整改人员")
+    private Integer staffType;
+
+    @ApiModelProperty("归属类型,1是安全负责人,2是安全责任人,3是老师,4是学生")
+    private Integer attriType;
+
+    @ApiModelProperty("学院id")
+    private Long deptId;
+
+    private String beginTime;//开始时间按
+
+    private String endTime;//结束时间按
+
+    /**
+     * 搜索值
+     */
+    private String searchValue;
+
+    /**
+     * 过滤类型,1是过滤,2是不过滤
+     */
+    private int filtType;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    /**
+     * 不过滤的userId集合
+     */
+    private List<Map <String,String>> notFiltCheckUserIdList = new ArrayList <>();
+
+    /**
+     * 过滤的userId集合
+     */
+    private List<Map <String,String>> filtCheckUserIdList = new ArrayList <>();
+
+
+    @ApiModelProperty("归属类型集合")
+    private List <Integer> attriTypeIds = new ArrayList <>();
+}

+ 34 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/NoticeConfigBo.java

@@ -0,0 +1,34 @@
+package com.zd.security.api.bo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 通知配置业务表
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-04-19
+ */
+@Data
+@ApiModel(value = "NoticeConfig业务对象", description = "通知配置业务表")
+public class NoticeConfigBo implements Serializable {
+
+    private static final long serialVersionUID = 478368547891991553L;
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("通知类型(1检查通知,2整改通知,3复核通知)")
+    private Long noticeType;
+
+    @ApiModelProperty("通知方式(1短信通知方式,2系统通知方式,3一体机通知方式)")
+    private String noticeWay;
+}

+ 24 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/QueryCheckGroupListParam.java

@@ -0,0 +1,24 @@
+package com.zd.security.api.bo;
+
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 查询检查组列表(分页)入参"
+ * @Author hzw
+ * @Date 2023/5/6 10:11
+ * @Version 2.0
+ */
+@Data
+@ApiModel(value = "查询检查组列表(分页)入参", description = "查询检查组列表(分页)入参")
+public class QueryCheckGroupListParam extends PageQuery implements Serializable {
+    @ApiModelProperty("巡查层级(0全部,1校级,2院级)")
+    private Integer checkLevel;
+
+    @ApiModelProperty("是否启用(-1全部 0否 1是)")
+    private Integer enable;
+}

+ 44 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/QueryCheckManageListParam.java

@@ -0,0 +1,44 @@
+package com.zd.security.api.bo;
+
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * @Description 查询检查管理列表(分页)入参
+ * @Author hzw
+ * @Date 2023/5/6 10:19
+ * @Version 2.0
+ */
+@Data
+@ApiModel("查询检查管理列表(分页)入参")
+public class QueryCheckManageListParam extends PageQuery implements Serializable {
+
+    @ApiModelProperty("学院id")
+    private Long deptId;
+
+    @ApiModelProperty(value = "检查类型(0全部 1校院巡查 2实验室自查)")
+    private Integer checkType;
+
+    @ApiModelProperty("管理状态(-1全部 0待检查,1检查中,2已检查)")
+    private Integer manageStatus;
+
+    @ApiModelProperty("检查开始时间")
+    private LocalDate startTime;
+
+    @ApiModelProperty("检查结束时间")
+    private LocalDate endTime;
+
+//    @ApiModelProperty("是否本人发起(0否 1是)")
+//    private Integer isSelf;
+
+    @ApiModelProperty("检查时间排序(0不排序 1正序 2倒叙)")
+    private Integer checkTimeSort;
+
+    @ApiModelProperty("与我有关")
+    private Integer myRelated;
+}

+ 39 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/QueryCheckPlanListParam.java

@@ -0,0 +1,39 @@
+package com.zd.security.api.bo;
+
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * @Description 查询检查计划列表(分页)入参
+ * @Author hzw
+ * @Date 2023/5/6 9:45
+ * @Version 2.0
+ */
+@Data
+@ApiModel(value = "查询检查计划列表(分页)入参", description = "查询检查计划列表(分页)入参表")
+public class QueryCheckPlanListParam extends PageQuery implements Serializable {
+    private static final long serialVersionUID = -4333954935168568262L;
+
+    @ApiModelProperty(value = "检查类型(0全部 1校院巡查 2实验室自查)")
+    private Integer checkType;
+
+    @ApiModelProperty("检查状态(0全部 1未开始 2进行中 3已结束)")
+    private Integer checkStatus;
+
+    @ApiModelProperty("周期开始时间")
+    private LocalDate cycleStartTime;
+
+    @ApiModelProperty("周期结束时间")
+    private LocalDate cycleEndTime;
+
+    @ApiModelProperty("创建时间排序(0不排序 1正序 2倒叙)")
+    private Integer createTimeSort;
+
+    @ApiModelProperty("与我有关")
+    private Integer myRelated;
+}

+ 24 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/QueryGroupListParam.java

@@ -0,0 +1,24 @@
+package com.zd.security.api.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 查询巡查组列表请求参数
+ * @Author hzw
+ * @Date 2023/5/8 17:19
+ * @Version 2.0
+ */
+@Data
+@ApiModel("查询巡查组列表请求参数")
+public class QueryGroupListParam implements Serializable {
+
+    @ApiModelProperty("巡查层级(0全部,1校级,2院级)")
+    private Integer checkLevel;
+
+    @ApiModelProperty("巡查组名称")
+    private String searchValue;
+}

+ 38 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/bo/QueryManageListParam.java

@@ -0,0 +1,38 @@
+package com.zd.security.api.bo;
+
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+/**
+ * @Description 根据检查计划id查询巡查管理列表(分页)入参
+ * @Author hzw
+ * @Date 2023/5/6 17:48
+ * @Version 2.0
+ */
+@Data
+@ApiModel("根据检查计划id查询巡查管理列表(分页)入参")
+public class QueryManageListParam extends PageQuery implements Serializable {
+
+    @ApiModelProperty("检查计划id")
+    private Long checkPlanId;
+
+    @ApiModelProperty("学院id")
+    private Long deptId;
+
+    @ApiModelProperty("管理状态(-1全部, 0待检查,1检查中,2已检查)")
+    private Integer manageStatus;
+
+    @ApiModelProperty("检查开始时间")
+    private LocalDate startTime;
+
+    @ApiModelProperty("检查结束时间")
+    private LocalDate endTime;
+
+    @ApiModelProperty("检查时间排序(0无 1正序 2倒叙)")
+    private Integer checkTimeSort;
+}

+ 54 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/dto/CheckGroupMemberDto.java

@@ -0,0 +1,54 @@
+package com.zd.security.api.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * <p>
+ * 检查组成员传输表
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-04-19
+ */
+@Data
+@ApiModel(value = "CheckGroupMember传输对象", description = "检查组成员传输表")
+public class CheckGroupMemberDto {
+
+    private static final long serialVersionUID = -3421483332164133424L;
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("检查组id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long checkGroupId;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("用户类型(00系统用户,11 教职工,22 学生,99 大屏)")
+    private String userType;
+
+    @ApiModelProperty("工号")
+    private String jobNum;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("部门id")
+    private Long deptId;
+
+    @ApiModelProperty("部门名称")
+    private String deptName;
+
+    @ApiModelProperty("是否启用(0否 1是)")
+    private Integer enable;
+
+    @ApiModelProperty("是否删除(0否 1是)")
+    private Boolean isDeleted;
+}

+ 83 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/dto/CheckHazardApplyDto.java

@@ -0,0 +1,83 @@
+package com.zd.security.api.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Controller
+ * <p>隐患申请流程</p>
+ * @author cyl
+ * @date 2023/4/26
+ */
+@Data
+public class CheckHazardApplyDto  implements Serializable {
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("隐患项序号")
+    private Integer hazardNum;
+
+    @ApiModelProperty("隐患级别,1重大隐患,2是一般隐患,3管理问题")
+    private Integer hazardLevel;
+
+    @ApiModelProperty("整改状态,1是已完成,2是待整改,3是待复核")
+    private Integer rectifyStatus;
+
+    @ApiModelProperty("整改人,每次整改后,需要保存实验室的整改人")
+    private String rectifyName;
+
+    @ApiModelProperty("整改时间,和整改人一样,每次整改后,需要变动时间")
+    private LocalDateTime rectifyTime;
+
+    @ApiModelProperty("审核状态,同步整改的审核情况")
+    private Integer examineResult;
+
+    @ApiModelProperty("隐患类别:1是院校巡查,2是自查")
+    private Integer hazardType;
+
+    @ApiModelProperty("检查项是否符合,1是符合,0是不符合")
+    private Integer checkFlag;
+
+    @ApiModelProperty("检查项目")
+    private String hazardCheckPro;
+
+    @ApiModelProperty("检查要点")
+    private String hazardCheckPoint;
+
+    @ApiModelProperty("隐患描述")
+    private String hazardDescribe;
+
+    @ApiModelProperty("整改身份 true 就是有身份整改,false就是没身份整改")
+    private Boolean rectifyGentle = Boolean.FALSE;
+
+    @ApiModelProperty("审核身份 true 就是有身份审核,false就是没身份审核")
+    private Boolean applyGentle  = Boolean.FALSE;
+
+    @ApiModelProperty("检查内容回显")
+    private String hazardCheckProStr;
+
+    @ApiModelProperty("当前实验室隐患项统计")
+    private Integer hazardCheckCount = 0;
+
+    @ApiModelProperty("语音备注")
+    private String voiceRemark;
+
+    @ApiModelProperty("检查类型:1 综合检查, 2专项检查")
+    private Integer checkCategory;
+
+    @ApiModelProperty("危险源名称")
+    private String hazardName;
+
+    @ApiModelProperty("上传文件")
+    private List <UploadDto> uploadDtoList = new ArrayList <>();
+
+}

+ 75 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/dto/CheckHazardDto.java

@@ -1,5 +1,7 @@
 package com.zd.security.api.dto;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -20,21 +22,94 @@ public class CheckHazardDto implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
+    @ApiModelProperty("隐患项序号")
+    private Integer hazardNum;
+
     @ApiModelProperty("隐患级别,1重大隐患,2是一般隐患,3管理问题")
     private Integer hazardLevel;
 
+    @ApiModelProperty("实验室关联危险源id")
+    private Long joinHazardId;
+
+    @ApiModelProperty("危险源id")
+    private Long hazardId;
+
+    @ApiModelProperty("危险源名称")
+    private String hazardName;
+
+    @ApiModelProperty("编号")
+    private String code;
+
+    @ApiModelProperty("危险源类型")
+    private Integer hazardTypeMode;
+
+    @ApiModelProperty("危险源类型名称")
+    private String hazardTypeModeName;
+
+    @ApiModelProperty("检查类型:1 综合检查, 2专项检查")
+    private Integer checkCategory;
+
+    @ApiModelProperty("检查项是否符合,1是符合,0是不符合")
+    private Integer checkFlag;
+
     @ApiModelProperty("检查项目")
     private String hazardCheckPro;
 
+    @ApiModelProperty("检查内容回显")
+    private String hazardCheckProStr;
+
+    @ApiModelProperty("检查项目名称")
+    private String hazardCheckName;
+
     @ApiModelProperty("检查要点")
     private String hazardCheckPoint;
 
+    @ApiModelProperty("检查项目code序号")
+    private String hazardCheckCode;
+
+    @ApiModelProperty("一级级项目检查")
+    private String hazardCheckPro1;
+
+    @ApiModelProperty("一级项目检查code")
+    private String hazardCheckCode1;
+
+    @ApiModelProperty("一级检查名称")
+    private String hazardCheckName1;
+
+    @ApiModelProperty("二级项目检查")
+    private String hazardCheckPro2;
+
+    @ApiModelProperty("二级项目检查code")
+    private String hazardCheckCode2;
+
+    @ApiModelProperty("二级检查名称")
+    private String hazardCheckName2;
+
+    @ApiModelProperty("三级项目检查")
+    private String hazardCheckPro3;
+
+    @ApiModelProperty("三级项目检查code")
+    private String hazardCheckCode3;
+
+    @ApiModelProperty("三级检查名称")
+    private String hazardCheckName3;
+
     @ApiModelProperty("隐患描述")
     private String hazardDescribe;
 
+    @ApiModelProperty("整改状态,1是已完成,2是待整改,3是待复核")
+    private Integer rectifyStatus;
+
     @ApiModelProperty("上传文件")
     private List <UploadDto> uploadDtoList = new ArrayList <>();
 
+    @ApiModelProperty("隐患统计")
+    private Integer hazardCheckCount;
+
+    @ApiModelProperty("语音备注")
+    private String voiceRemark;
+
 }

+ 59 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/dto/CheckMemberDto.java

@@ -0,0 +1,59 @@
+package com.zd.security.api.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 检查成员表
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-04-19
+ */
+@Data
+@ApiModel(value = "CheckMember对象", description = "检查成员表")
+public class CheckMemberDto extends PageQuery implements Serializable {
+
+    private static final long serialVersionUID = 4143471754580911089L;
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("检查计划id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long checkPlanId;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("用户类型(00系统用户,11 教职工,22 学生,99 大屏)")
+    private String userType;
+
+    @ApiModelProperty("工号")
+    private String jobNum;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("部门id")
+    private String deptId;
+
+    @ApiModelProperty("部门名称")
+    private String deptName;
+
+    @ApiModelProperty("是否启用(0否 1是)")
+    private Integer enable;
+
+    @ApiModelProperty("是否删除(0否 1是)")
+    private Boolean isDeleted;
+
+
+}

+ 41 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/dto/NoticeSendDto.java

@@ -0,0 +1,41 @@
+package com.zd.security.api.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @Description 消息发送传输类
+ * @Author hzw
+ * @Date 2023/4/25 14:47
+ * @Version 2.0
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("消息发送传输类")
+public class NoticeSendDto {
+
+    @ApiModelProperty("通知类型(1检查通知,2整改通知,3复核通知)")
+    private Integer noticeType;
+
+    @ApiModelProperty("检查类型(1校院巡查 2实验室自查)")
+    private Integer checkType;
+
+    @ApiModelProperty("实验室ids(,隔开)")
+    private String subIds;
+
+    @ApiModelProperty("用户ids(,隔开)")
+    private String userIds;
+
+    @ApiModelProperty("电话字符串(,隔开)")
+    private String phoneStr;
+
+    @ApiModelProperty("整改数")
+    private Integer rectifyNum = 0;
+
+    @ApiModelProperty("1通过/ 0驳回 ")
+    private Integer agreeOrReject;
+}

+ 7 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/dto/UploadDto.java

@@ -1,5 +1,7 @@
 package com.zd.security.api.dto;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.zd.model.page.PageQuery;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -22,9 +24,11 @@ public class UploadDto extends PageQuery implements Serializable {
     private static final long serialVersionUID = -8194206803487524992L;
 
     @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
     @ApiModelProperty("keyId")
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long keyId;
 
     @ApiModelProperty("文件url")
@@ -41,4 +45,7 @@ public class UploadDto extends PageQuery implements Serializable {
 
     @ApiModelProperty("是否删除(0否 1是)")
     private Boolean isDeleted;
+
+    @ApiModelProperty("查看文件")
+    private String viewFileUrl;
 }

+ 58 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/feign/RemoteCheckSetService.java

@@ -0,0 +1,58 @@
+package com.zd.security.api.feign;
+
+import com.zd.model.constant.ApplicationConstants;
+import com.zd.model.domain.AjaxResult;
+import com.zd.model.domain.ResultData;
+import com.zd.security.api.feign.factory.RemoteCheckSetFallback;
+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.RequestBody;
+
+import java.util.Map;
+
+/**
+ * Controller
+ * <p>检查配置类</p>
+ * @author cyl
+ * @date 2023/5/10
+ */
+@FeignClient(contextId = "remoteCheckSetService", value = ApplicationConstants.SECURITY_SERVICE, fallbackFactory = RemoteCheckSetFallback.class)
+public interface RemoteCheckSetService {
+
+    /**
+     * 传入指定用户,设置检查配置(这个方法暂时不用了,以后用的话,在做响应处理)
+     *
+     * @param userMap 包涵新老用户,实验室id
+     * @return 结果
+     */
+    @GetMapping("/checkSet/setUserAuth")
+    AjaxResult setUserAuth(@RequestBody Map <String,String> userMap);
+
+
+    /**
+     * 安全隐患整改逾期数据标记
+     *
+     * @return 结果
+     */
+    @GetMapping("/checkHazard/overdue")
+    AjaxResult overdue();
+
+
+
+    /**
+     * 获取检查配置的人员列表
+     *
+     * @return 结果
+     */
+    @GetMapping("/checkStaffUser/getUserList")
+    ResultData getUserList(@RequestBody Map <String,String> userMap);
+
+    /**
+     * 查询所有计划 所有人员信息列表
+     *
+     * @return 结果
+     */
+    @GetMapping("/checkPlan/getAllCheckMemberList/{userId}")
+    ResultData getAllCheckMemberList(@PathVariable("userId") Long userId);
+}

+ 48 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/feign/factory/RemoteCheckSetFallback.java

@@ -0,0 +1,48 @@
+package com.zd.security.api.feign.factory;
+
+import com.zd.model.domain.AjaxResult;
+import com.zd.model.domain.ResultData;
+import com.zd.security.api.feign.RemoteCheckSetService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * Controller
+ * <p>检查配置类</p>
+ * @author cyl
+ * @date 2023/5/10
+ */
+@Component
+public class RemoteCheckSetFallback implements FallbackFactory <RemoteCheckSetService> {
+    private static final Logger log = LoggerFactory.getLogger(RemoteCheckSetFallback.class);
+
+    @Override
+    public RemoteCheckSetService create(Throwable cause) {
+        log.error("检查配置调用失败:{}", cause.getMessage());
+        return new RemoteCheckSetService() {
+            @Override
+            public AjaxResult setUserAuth(Map <String,String> userMap) {
+                return AjaxResult.error("设置用户权限失败:"+cause.getMessage());
+            }
+
+            @Override
+            public AjaxResult overdue() {
+                return AjaxResult.error("安全检查服务失败:"+cause.getMessage());
+            }
+
+            @Override
+            public ResultData getUserList(Map <String, String> userMap) {
+                return ResultData.fail("获取检查配置的人员列表失败:"+cause.getMessage());
+            }
+
+            @Override
+            public ResultData getAllCheckMemberList(Long userId) {
+                return ResultData.fail("查询所有计划 所有人员信息列表失败:"+cause.getMessage());
+            }
+        };
+    }
+}

+ 72 - 1
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckClapVo.java

@@ -1,12 +1,20 @@
 package com.zd.security.api.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.security.api.dto.UploadDto;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * Controller
- *
+ * <p>随手拍</p>
  * @author cyl
  * @date 2023/4/20
  */
@@ -14,4 +22,67 @@ import java.io.Serializable;
 public class CheckClapVo  implements Serializable {
 
     private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("整改状态,0是待整改,1是已整改,2是暂无法整改")
+    private Integer rectifyStatus;
+
+    @ApiModelProperty("学院id")
+    private Long deptId;
+
+    @ApiModelProperty("学院名称")
+    private String deptName;
+
+    @ApiModelProperty("实验室id")
+    private Long subId;
+
+    @ApiModelProperty("实验室名称")
+    private String subName;
+
+    @ApiModelProperty("房间号")
+    private String roomNum;
+
+    @ApiModelProperty("隐患描述")
+    private String hazardDescribe;
+
+    @ApiModelProperty("安全责任人名字")
+    private String safetyPeople;
+
+    @ApiModelProperty("整改人id")
+    private Long rectifyId;
+
+    @ApiModelProperty("整改人姓名")
+    private String rectifyPeople;
+
+    @ApiModelProperty("整改措施")
+    private String rectifyDescribe;
+
+    @ApiModelProperty("整改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime rectifyTime;
+
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("创建人ID")
+    private Long createBy;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("整改身份")
+    private Boolean rectifyGentle;
+
+    @ApiModelProperty("当天数据显示:30分钟以内的为刚刚,之外的显示具体时分;昨天、前天、具体年月日。")
+    private String timeFlag;
+
+    @ApiModelProperty("隐患上传照片")
+    private List <UploadDto> yhDtoList = new ArrayList <>();
+
+    @ApiModelProperty("整改上传照片")
+    private List <UploadDto> zgDtoList = new ArrayList <>();
 }

+ 38 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckDeviceVo.java

@@ -0,0 +1,38 @@
+package com.zd.security.api.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Controller
+ * <p>设备检查配置</p>
+ * @author cyl
+ * @date 2023/8/10
+ */
+@Data
+public class CheckDeviceVo implements Serializable {
+
+    @ApiModelProperty("危险源主键id")
+    private Long id;
+
+    @ApiModelProperty("类型")
+    private String dictLabel;
+
+    @ApiModelProperty("危险源名称")
+    private String anotherName;
+
+    @ApiModelProperty("危险源型号")
+    private String anotherCode;
+
+    @ApiModelProperty("检查项目数")
+    private Integer checkNum;
+
+    @ApiModelProperty("编辑人")
+    private String createName;
+
+    @ApiModelProperty("编辑时间")
+    private String createTimeStr;
+
+}

+ 64 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckGroupVo.java

@@ -0,0 +1,64 @@
+package com.zd.security.api.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.security.api.dto.CheckGroupMemberDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 检查组表
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-04-19
+ */
+@Data
+@ApiModel(value = "CheckGroup对象", description = "检查组表")
+public class CheckGroupVo implements Serializable{
+
+    private static final long serialVersionUID = -5451763169135275378L;
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("检查组名称")
+    private String groupName;
+
+    @ApiModelProperty("巡查层级(1校级,2院级)")
+    private Integer checkLevel;
+
+    @ApiModelProperty("是否启用(0否 1是)")
+    private Integer enable;
+
+    @ApiModelProperty("人数")
+    private Integer peopleNum;
+
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("修改人名称")
+    private String updateName;
+
+    @ApiModelProperty("修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("巡查组")
+    private List<CheckGroupMemberDto> checkGroupMemberList;
+
+    @ApiModelProperty("是否删除(0否 1是)")
+    private Boolean isDeleted;
+}

+ 115 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckHazardApplyVo.java

@@ -0,0 +1,115 @@
+package com.zd.security.api.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.security.api.dto.CheckHazardApplyDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Controller
+ * <p>隐患申请流程</p>
+ * @author cyl
+ * @date 2023/4/26
+ */
+@Data
+public class CheckHazardApplyVo  implements Serializable {
+
+    private static final long serialVersionUID = -4712175670994823585L;
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("检查计划id")
+    private Long checkPlanId;
+
+    @ApiModelProperty("实验室id")
+    private Long subId;
+
+    @ApiModelProperty("实验室id列表")
+    private String subIds;
+
+    @ApiModelProperty("计划标题")
+    private String title;
+
+    @ApiModelProperty("学院名称")
+    private String collegeName;
+
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @ApiModelProperty("楼栋名称")
+    private String buildName;
+
+    @ApiModelProperty("房间号")
+    private String roomNumber;
+
+    @ApiModelProperty("检查要求")
+    private String checkDemand;
+
+    @ApiModelProperty("检查类型:1 综合检查, 2专项检查")
+    private Integer checkCategory;
+
+    @ApiModelProperty("检查类型(1校院巡查 2实验室自查)")
+    private Integer checkType;
+
+    @ApiModelProperty("管理状态(0待检查,1检查中,2已检查)")
+    private Integer manageStatus;
+
+    @ApiModelProperty("检查人名称")
+    private String checkUser;
+
+    @ApiModelProperty("检查时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime checkTime;
+
+    @ApiModelProperty("检查结果(0不符合,1符合)")
+    private Integer checkResult;
+
+    @ApiModelProperty("是否逾期(0否 1是)")
+    private Integer isOverdue;
+
+    @ApiModelProperty("隐患数")
+    private Integer dangerNum;
+
+    @ApiModelProperty("整改进度")
+    private String rectifySchedule;
+
+    @ApiModelProperty("周期开始时间")
+    private LocalDate cycleStartTime;
+
+    @ApiModelProperty("周期结束时间")
+    private LocalDate cycleEndTime;
+
+    @ApiModelProperty("整改期限")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate rectifyDeadline;
+
+    @ApiModelProperty("整改通知(1整改告知书 2整改通知书)")
+    private Integer rectifyNotice;
+
+    @ApiModelProperty("是否删除(0否 1是)")
+    private Boolean isDeleted;
+
+    @ApiModelProperty("登录用户名")
+    private String loginUserName;
+
+    @ApiModelProperty("检查范围(1全校 2学院 3实验室)")
+    private Integer checkRange;
+
+    @ApiModelProperty("隐患详细数据")
+    private CheckHazardApplyDto checkHazardApplyDto = new CheckHazardApplyDto();
+
+    @ApiModelProperty("整改详细数据")
+    private List <CheckRectifyApplyVo> checkRectifyApplyList = new ArrayList <>();
+
+
+}

+ 24 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckHazardCountVo.java

@@ -0,0 +1,24 @@
+package com.zd.security.api.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Controller
+ * <p>隐患统计类</p>
+ * @author cyl
+ * @date 2023/5/15
+ */
+@Data
+public class CheckHazardCountVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("隐患统计")
+    private Integer rectifyCount;
+
+    @ApiModelProperty("隐患名称")
+    private String rectifyName;
+}

+ 38 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckHazardInfoVo.java

@@ -0,0 +1,38 @@
+package com.zd.security.api.vo;
+
+import com.zd.security.api.dto.CheckHazardDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description TODO
+ * @Author hzw
+ * @Date 2023/8/16 11:23
+ * @Version 2.0
+ */
+@Data
+public class CheckHazardInfoVo {
+    @ApiModelProperty("关联表id")
+    private Long joinHazardId;
+
+    @ApiModelProperty("危险源id")
+    private Long hazardId;
+
+    @ApiModelProperty("危险源名称")
+    private String hazardName;
+
+    @ApiModelProperty("编码")
+    private String code;
+
+    @ApiModelProperty("危险源类型id")
+    private Integer hazardTypeMode;
+
+    @ApiModelProperty("危险源类型名称")
+    private String hazardTypeModeName;
+
+    @ApiModelProperty("检查隐患信息")
+//    private List<CheckOptionVo> checkOptionVoList;
+    private List<CheckHazardDto> checkHazardDtoList;
+}

+ 169 - 12
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckHazardVo.java

@@ -1,9 +1,13 @@
 package com.zd.security.api.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.time.LocalDateTime;
 
 /**
  * <p>隐患类</p>
@@ -17,23 +21,176 @@ public class CheckHazardVo implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-//    @ApiModelProperty("隐患级别,1重大隐患,2是一般隐患,3管理问题")
-//    private Integer hazardLevel;
-//
-//    @ApiModelProperty("检查项目")
-//    private String hazardCheckPro;
-//
-//    @ApiModelProperty("检查要点")
-//    private String hazardCheckPoint;
+    @ApiModelProperty("隐患id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("计划标题")
+    private String title;
+
+    @ApiModelProperty("隐患描述")
+    private String hazardDescribe;
+
+    @ApiModelProperty("逾期状态,1是已逾期,0是未逾期")
+    private Integer overdueStatus;
+
+    @ApiModelProperty("实验室id")
+    private Long subId;
+
+    @ApiModelProperty("实验室名称房间号")
+    private String subRoom;
+
+    @ApiModelProperty("检查时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime checkTime;
+
+    @ApiModelProperty("检查时间")
+    private String checkTime2;
+
+    @ApiModelProperty("整改人")
+    private String rectifyName;
+
+    @ApiModelProperty("整改期限")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime rectifyDeadline;
+
+    @ApiModelProperty("整改状态,1是已完成,2是待整改,3是待复核")
+    private Integer rectifyStatus;
+
+    @ApiModelProperty("整改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime rectifyTime;
+
+    @ApiModelProperty("整改开始时间")
+    private String cycleStartTime;
+
+    @ApiModelProperty("整改结束时间")
+    private String cycleEndTime;
+
+    @ApiModelProperty("审核结果1是通过,0是驳回 2是待审核")
+    private Integer examineResult;
+
+    @ApiModelProperty("整改审批id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long rectifyId;
+
+    @ApiModelProperty("隐患类别:1是院校巡查,2是自查")
+    private Integer hazardType;
+
+    @ApiModelProperty("整改措施")
+    private String rectifyMeasure;
+
+    @ApiModelProperty("隐患级别,1重大隐患,2是一般隐患,3管理问题")
+    private Integer hazardLevel;
+
+    @ApiModelProperty("三级级指标id")
+    private String hazardCheckPro;
+
+    @ApiModelProperty("二级指标id")
+    private String hazardCheckPro2;
+
+    @ApiModelProperty("三级指标id")
+    private String hazardCheckPro1;
+
+    @ApiModelProperty("检查要点")
+    private String hazardCheckPoint;
+
+    @ApiModelProperty("检查项目code序号")
+    private String hazardCheckCode;
 //
 //    @ApiModelProperty("隐患描述")
 //    private String hazardDescribe;
 
-    @ApiModelProperty("整改开始时间")
-    private String beginTime;
+//    @ApiModelProperty("整改开始时间")
+//    private String beginTime;
+//
+//    @ApiModelProperty("整改结束时间")
+//    private String endTime;
 
-    @ApiModelProperty("整改结束时间")
-    private String endTime;
+    @ApiModelProperty("总数")
+    private Integer sumTotal;
+
+    @ApiModelProperty("学院名称")
+    private String collegeName;
+
+    @ApiModelProperty("隐患名称")
+    private String hazardCheckName;
+
+    @ApiModelProperty("百分率")
+    private String percent;
+
+    @ApiModelProperty("百分率2")
+    private String percent2;
+
+    @ApiModelProperty("百分率3")
+    private String percent3;
+
+    @ApiModelProperty("百分率4")
+    private String percent4;
+
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @ApiModelProperty("楼栋")
+    private String buildName;
+
+    @ApiModelProperty("检查者")
+    private String checkUser;
+
+    @ApiModelProperty("校级一级隐患数量")
+    private Integer schoolItemsTotal1;
+
+    @ApiModelProperty("校级二级隐患数量")
+    private Integer schoolItemsTotal2;
+
+    @ApiModelProperty("校级三级隐患数量")
+    private Integer schoolItemsTotal3;
+
+    @ApiModelProperty("校级四级隐患数量")
+    private Integer schoolItemsTotal4;
+
+    @ApiModelProperty("1级隐患数量")
+    private Integer itemsTotal1;
+    @ApiModelProperty("2级隐患数量")
+    private Integer itemsTotal2;
+    @ApiModelProperty("3级隐患数量")
+    private Integer itemsTotal3;
+    @ApiModelProperty("4级隐患数量")
+    private Integer itemsTotal4;
+    @ApiModelProperty("安全分类名称")
+    private String typeName;
+    @ApiModelProperty("安全分级名称")
+    private String levelName;
+    @ApiModelProperty("安全责任人名字")
+    private String safeUserName;
+    @ApiModelProperty("检查范围(1全校 2学院 3实验室)")
+    private String checkRange;
+
+    @ApiModelProperty("待复核-有没有审核权限")
+    private Boolean applyGentle;
+
+    @ApiModelProperty("检查类型(1校院巡查 2实验室自查)")
+    private Integer checkType;
+
+    @ApiModelProperty("是否存在附件(0否 1是)")
+    private Integer isAttachment;
+
+    @ApiModelProperty("已整改数")
+    private Integer sumYzg;
+
+    @ApiModelProperty("未整改数")
+    private Integer sumWzg;
+
+    @ApiModelProperty("危险源类型名称")
+    private String hazardTypeModeName;
+
+
+    @ApiModelProperty("检查类型:1 综合检查, 2专项检查")
+    private Integer checkCategory;
 
+    @ApiModelProperty("危险源名称")
+    private String hazardName;
 
+    @ApiModelProperty("危险源编号")
+    private String code;
 }

+ 72 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageDetail2Vo.java

@@ -0,0 +1,72 @@
+package com.zd.security.api.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Controller
+ *
+ * @author cyl
+ * @date 2023/5/19
+ */
+
+@Data
+public class CheckManageDetail2Vo implements Serializable{
+
+    /**
+     * 隐患项
+     */
+    private String hazardName = "";
+    /**
+     * 整改结果
+     */
+    private String rectifyStatus;
+    /**
+     * 整改措施
+     */
+    private String rectifyMeasure = "";
+    /**
+     * 整改图片 - 多个
+     */
+    private String rectifyImg1 = "";
+    /**
+     * 整改图片 - 多个
+     */
+    private String rectifyImg2 = "";
+    /**
+     * 整改图片 - 多个
+     */
+    private String rectifyImg3 = "";
+    /**
+     * 整改图片 - 多个
+     */
+    private String rectifyImg4 = "";
+    /**
+     * 整改图片 - 多个
+     */
+    private String rectifyImg5 = "";
+
+    /**
+     * 判断是否暂无法整改,如果不是,需要显示 复查人员(签字):
+     */
+    private String rechecker;
+
+    /**
+     * 检查人员名称
+     */
+    private String checkNickName;
+
+    /**
+     * 复核年
+     */
+    private Integer rectifyYear;
+    /**
+     * 复核月
+     */
+    private Integer rectifyMonth;
+    /**
+     * 复核日
+     */
+    private Integer rectifyDay;
+}

+ 47 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageDetailVo.java

@@ -0,0 +1,47 @@
+package com.zd.security.api.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Controller
+ *
+ * @author cyl
+ * @date 2023/5/19
+ */
+@Data
+public class CheckManageDetailVo implements Serializable {
+    /**
+     * 序号
+     */
+    private String index = "";
+    /**
+     * 条款号 - 检查项编号
+     */
+    private String optionCode;
+    /**
+     * 隐患描述
+     */
+    private String checkDesc = "";
+    /**
+     * 隐患图片 - 多个
+     */
+    private String checkImg1 = "";
+    /**
+     * 隐患图片 - 多个
+     */
+    private String checkImg2 = "";
+    /**
+     * 隐患图片 - 多个
+     */
+    private String checkImg3 = "";
+    /**
+     * 隐患图片 - 多个
+     */
+    private String checkImg4 = "";
+    /**
+     * 隐患图片 - 多个
+     */
+    private String checkImg5 = "";
+}

+ 109 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageExcelVo.java

@@ -0,0 +1,109 @@
+package com.zd.security.api.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Controller
+ * 检查管理查看excel
+ * @author cyl
+ * @date 2023/5/18
+ */
+@Data
+public class CheckManageExcelVo implements Serializable {
+
+    /**
+     * 学院名称
+     */
+    private String deptName;
+    /**
+     * 实验室名称
+     */
+    private String subName;
+    /**
+     * 检查年
+     */
+    private String checkYear;
+    /**
+     * 检查月
+     */
+    private String checkMonth;
+    /**
+     * 检查日
+     */
+    private String checkDay;
+
+    /**
+     * 整改年
+     */
+    private String rectifyYear;
+    /**
+     * 整改月
+     */
+    private String rectifyMonth;
+    /**
+     * 整改日
+     */
+    private String rectifyDay;
+
+    /**
+     * 编号
+     */
+    private String code;
+
+    /**
+     * 整改隐患数量
+     */
+    private Integer count;
+    /**
+     * 检查机构电子签章
+     */
+    private String checkDeptSign;
+    /**
+     * 检查机构
+     */
+    private String checkDeptName;
+    /**
+     * 当前年
+     */
+    private String nowYear;
+    /**
+     * 当前月
+     */
+    private String nowMonth;
+    /**
+     * 当前日
+     */
+    private String nowDay;
+
+    /**
+     * 检查房间号
+     */
+    private String checkRoom;
+    /**
+     * 检查完整时间
+     */
+    private String checkDate;
+//    /**
+//     * 检查人员名称
+//     */
+//    private PictureRenderData check_nick_name;
+
+    /**
+     * 检查人员名称
+     */
+    private String checkUser;
+    /**
+     * 审核结果
+     */
+    private String checkResult;
+
+
+    private List <CheckManageDetail2Vo> checkManageDetail2List = new ArrayList <>();
+
+    private List<CheckManageDetailVo> checkManageDetailList = new ArrayList <>();
+
+}

+ 150 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageListVo.java

@@ -0,0 +1,150 @@
+package com.zd.security.api.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * @Description TODO
+ * @Author hzw
+ * @Date 2023/5/16 9:27
+ * @Version 2.0
+ */
+@Data
+public class CheckManageListVo implements Serializable{
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("检查计划id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long checkPlanId;
+
+    @ApiModelProperty("实验室id")
+    private Long subId;
+
+    @ApiModelProperty("计划标题")
+    private String title;
+
+    @ApiModelProperty("学院id")
+    private Long deptId;
+
+    @ApiModelProperty("学院名称")
+    private String collegeName;
+
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @ApiModelProperty("楼栋Id")
+    private Long buildId;
+
+    @ApiModelProperty("楼栋名称")
+    private String buildName;
+
+    @ApiModelProperty("房间号")
+    private String roomNumber;
+
+    @ApiModelProperty("安全分类id")
+    private Long typeId;
+
+    @ApiModelProperty("安全分类名称")
+    private String typeName;
+
+    @ApiModelProperty("级别id")
+    private Long level;
+
+    @ApiModelProperty("级别名称")
+    private String levelName;
+
+    @ApiModelProperty("检查要求")
+    private String checkDemand;
+
+    @ApiModelProperty("检查范围(1全校 2学院 3实验室)")
+    private Integer checkRange;
+
+    @ApiModelProperty("检查类型(1校院巡查 2实验室自查)")
+    private Integer checkType;
+
+    @ApiModelProperty("检查类别(1综合检查 2专项检查)")
+    private Integer checkCategory;
+
+    @ApiModelProperty("危险源ids")
+    private String hazardIds;
+
+    @ApiModelProperty("管理状态(-1全部, 0待检查,1检查中,2已检查)")
+    private Integer manageStatus;
+
+    @ApiModelProperty("检查人id")
+    private Long checkUserId;
+
+    @ApiModelProperty("检查人名称")
+    private String checkUser;
+
+    @ApiModelProperty("检查时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime checkTime;
+
+    @ApiModelProperty("检查结果(0不符合,1符合)")
+    private Integer checkResult;
+
+    @ApiModelProperty("是否逾期(0否 1是)")
+    private Integer isOverdue;
+
+    @ApiModelProperty("是否存在附件(0否 1是)")
+    private Integer isAttachment;
+
+    @ApiModelProperty("隐患数")
+    private Integer dangerNum;
+
+    @ApiModelProperty("整改进度")
+    private String rectifySchedule;
+
+    @ApiModelProperty("周期开始时间")
+    private LocalDate cycleStartTime;
+
+    @ApiModelProperty("周期结束时间")
+    private LocalDate cycleEndTime;
+
+    @ApiModelProperty("整改期限")
+    private LocalDate rectifyDeadline;
+
+    @ApiModelProperty("整改通知(1整改告知书 2整改通知书)")
+    private Integer rectifyNotice;
+
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("创建人ID")
+    private Long createBy;
+
+    @ApiModelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("修改人名称")
+    private String updateName;
+
+    @ApiModelProperty("修改人ID")
+    private Long updateBy;
+
+    @ApiModelProperty("修改时间")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("是否能够检查(0否 1是)")
+    private Integer isCheck = 0;
+
+    @ApiModelProperty("是否流程结束,1是,0否")
+    private Integer isEndProcess = 0;
+
+    @ApiModelProperty("是否自己数据(0否 1是)")
+    private Integer isSelfData;
+
+    @ApiModelProperty("危险源列表")
+    private String labHazardStr;
+}

+ 58 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageNotifyDetailVo.java

@@ -0,0 +1,58 @@
+package com.zd.security.api.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Controller
+ *
+ * @author cyl
+ * @date 2023/5/19
+ */
+@Data
+public class CheckManageNotifyDetailVo implements Serializable {
+    /**
+     * 序号
+     */
+    private String index = "";
+    /**
+     * 被检查者实验室名称
+     */
+    private String subName = "";
+    /**
+     * 所有安全隐患内容
+     * (1){{check_all_desc}}
+     * {{check_img}}
+     * (2){{问题描述}}
+     * {{图片}}
+     */
+    private String checkDesc = "";
+    /**
+     * 隐患图片
+     */
+    private String checkImg1 = "";
+    /**
+     * 隐患图片
+     */
+    private String checkImg2 = "";
+    /**
+     * 隐患图片
+     */
+    private String checkImg3 = "";
+    /**
+     * 隐患图片
+     */
+    private String checkImg4 = "";
+    /**
+     * 隐患图片
+     */
+    private String checkImg5 = "";
+    /**
+     * 所有安全检查项
+     * (1){{check_all_option_name}}
+     * (2){{}}
+     * (3){{}}
+     */
+    private String checkOptionName;
+}

+ 71 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageNotifyExcelVo.java

@@ -0,0 +1,71 @@
+package com.zd.security.api.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Controller
+ *
+ * @author cyl
+ * @date 2023/5/19
+ */
+@Data
+public class CheckManageNotifyExcelVo  implements Serializable {
+    /**
+     * 检查年
+     */
+    private String checkYear;
+    /**
+     * 检查月
+     */
+    private String checkMonth;
+    /**
+     * 检查日
+     */
+    private String checkDay;
+
+    /**
+     * 整改年
+     */
+    private String rectifyYear;
+    /**
+     * 整改月
+     */
+    private String rectifyMonth;
+    /**
+     * 整改日
+     */
+    private String rectifyDay;
+
+    /**
+     * 现在年
+     */
+    private String nowYear;
+    /**
+     * 现在月
+     */
+    private String nowMonth;
+    /**
+     * 现在日
+     */
+    private String nowDay;
+
+    /**
+     * 所属组织机构
+     */
+    private String deptName;
+    /**
+     * 检查者组织机构
+     */
+    private String checkDeptName;
+
+    /**
+     * 检查机构电子签章
+     */
+    private String checkDeptSign;
+
+    private List <CheckManageNotifyDetailVo> checkManageNotifyDetailList = new ArrayList <>();
+}

+ 192 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckManageVo.java

@@ -0,0 +1,192 @@
+package com.zd.security.api.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.model.page.PageQuery;
+import com.zd.security.api.dto.CheckHazardDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 检查管理Vo表
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-04-21
+ */
+@Data
+@ApiModel(value = "CheckManageVo对象", description = "检查管理Vo")
+public class CheckManageVo extends PageQuery implements Serializable {
+
+    private static final long serialVersionUID = -4712175670994823585L;
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("隐患id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long hazardId;
+
+    @ApiModelProperty("检查计划id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long checkPlanId;
+
+    @ApiModelProperty("实验室id")
+    private Long subId;
+
+    @ApiModelProperty("实验室id列表")
+    private String subIds;
+
+    @ApiModelProperty("计划标题")
+    private String title;
+
+    @ApiModelProperty("学院id")
+    private Long deptId;
+
+    @ApiModelProperty("学院名称")
+    private String collegeName;
+
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @ApiModelProperty("楼栋Id")
+    private Long buildId;
+
+    @ApiModelProperty("楼栋名称")
+    private String buildName;
+
+    @ApiModelProperty("房间号")
+    private String roomNumber;
+
+    @ApiModelProperty("检查要求")
+    private String checkDemand;
+
+    @ApiModelProperty("检查类型(1校院巡查 2实验室自查)")
+    private Integer checkType;
+
+    @ApiModelProperty("检查类别(1综合检查 2专项检查)")
+    private Integer checkCategory;
+
+    @ApiModelProperty("危险源ids")
+    private String hazardIds;
+
+    @ApiModelProperty("实验室关联危险源ids")
+    private String joinHazardIds;
+
+    @ApiModelProperty("检查管理危险源信息")
+    private String checkHazardInfo;
+
+    @ApiModelProperty("管理状态(-1全部,0待检查,1检查中,2已检查)")
+    private Integer manageStatus;
+
+    @ApiModelProperty("检查人id")
+    private String checkUserId;
+
+    @ApiModelProperty("检查人名称")
+    private String checkUser;
+
+    @ApiModelProperty("检查时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime checkTime;
+
+    @ApiModelProperty("检查结果(0不符合,1符合)")
+    private Integer checkResult;
+
+    @ApiModelProperty("是否逾期(0否 1是)")
+    private Integer isOverdue;
+
+    @ApiModelProperty("是否存在附件(0否 1是)")
+    private Integer isAttachment;
+
+    @ApiModelProperty("隐患数")
+    private Integer dangerNum;
+
+    @ApiModelProperty("整改进度")
+    private String rectifySchedule;
+
+    @ApiModelProperty("周期开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate cycleStartTime;
+
+    @ApiModelProperty("周期结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDate cycleEndTime;
+
+    @ApiModelProperty("整改期限")
+    private LocalDate rectifyDeadline;
+
+    @ApiModelProperty("整改通知(1整改告知书 2整改通知书)")
+    private Integer rectifyNotice;
+
+    @ApiModelProperty("是否删除(0否 1是)")
+    private Boolean isDeleted;
+
+    @ApiModelProperty("登录用户名")
+    private String loginUserName;
+
+    @ApiModelProperty("隐患类数据列表")
+    private List<CheckHazardDto> checkHazardDtoList;
+
+    @ApiModelProperty("专项隐患类数据列表")
+    private List<CheckHazardInfoVo> checkHazardInfoVoList;
+
+    @ApiModelProperty("检查范围(1全校 2学院 3实验室)")
+    private Integer checkRange;
+
+    @ApiModelProperty("数量")
+    private Integer amount;
+
+    @ApiModelProperty("数量2")
+    private Integer amount2;
+
+    @ApiModelProperty("月份 mm")
+    private String yearMonth;
+
+    @ApiModelProperty("月份 yyyy-mm")
+    private String yyyyMm;
+
+    @ApiModelProperty("检查计划是否开始 是:true 否:false")
+    private Boolean checkIsStatus;
+
+    @ApiModelProperty("安全负责人以及电话")
+    private String safeUserNameAdminPhone;
+
+    @ApiModelProperty("负责人以及电话")
+    private String adminNameAndPhone;
+
+    @ApiModelProperty("危险源名称")
+    private String hazardName;
+
+    @ApiModelProperty("安全分类名称")
+    private String typeName;
+
+    @ApiModelProperty("安全分类id")
+    private Long typeId;
+
+    @ApiModelProperty("级别名称")
+    private String levelName;
+
+    @ApiModelProperty("分级id")
+    private Long level;
+
+    @ApiModelProperty("百分率")
+    private String percent;
+
+    @ApiModelProperty("百分率2")
+    private String percent2;
+
+    @ApiModelProperty("是否允许编辑")
+    private Boolean isUpdate;
+
+    @ApiModelProperty("是否允许复核")
+    private Boolean isCheck;
+}

+ 31 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckOptionByExcel.java

@@ -0,0 +1,31 @@
+package com.zd.security.api.vo;
+
+import com.zd.model.annotation.Excel;
+import lombok.Data;
+
+/**
+ * Controller
+ * <p>隐患申请流程</p>
+ * @author cyl
+ * @date 2023/4/25
+ */
+@Data
+public class CheckOptionByExcel {
+
+    private static final long serialVersionUID = 1L;
+
+    @Excel(name = "序号", type = Excel.Type.ALL, isRequired=true)
+    private String code;
+
+    @Excel(name = "项目检查", type = Excel.Type.ALL, isRequired=true)
+    private String name;
+
+//    @Excel(name = "检查要点", type = Excel.Type.ALL)
+    private String mainPoint;
+
+    /**
+     * 备注,用于记录错误的原因
+     */
+    @Excel(name = "备注" ,type = Excel.Type.EXPORT)
+    private StringBuffer failRemark = new StringBuffer();
+}

+ 53 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckOptionVo.java

@@ -0,0 +1,53 @@
+package com.zd.security.api.vo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.model.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Controller
+ * <p>隐患申请流程</p>
+ * @author cyl
+ * @date 2023/4/25
+ */
+@Data
+public class CheckOptionVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("检查项名称")
+    @Excel(name = "检查项名称", type = Excel.Type.EXPORT ,sort = 1)
+    private String name;
+
+    @ApiModelProperty("检查项要点")
+//    @Excel(name = "检查项要点", type = Excel.Type.EXPORT ,sort = 3)
+    private String mainPoint;
+
+    @ApiModelProperty("条款号")
+    @Excel(name = "条款号", type = Excel.Type.EXPORT ,sort = 2)
+    private String code;
+
+    @ApiModelProperty("父级ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long parentId;
+
+    @ApiModelProperty("类型 1 正式 2 临时(检查者提交数据)")
+    private Integer type;
+
+    @ApiModelProperty("级别 默认-1 无效,从 1 开始")
+    private Integer level;
+
+    @ApiModelProperty("关联危险源的id")
+    private Long hazardReid;
+
+    private List <CheckOptionVo> children = new ArrayList <>();
+}

+ 108 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckPlanListVo.java

@@ -0,0 +1,108 @@
+package com.zd.security.api.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * @Description 检查计划列表vo
+ * @Author hzw
+ * @Date 2023/7/26 13:41
+ * @Version 2.0
+ */
+@Data
+public class CheckPlanListVo {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("计划标题")
+    private String title;
+
+    @ApiModelProperty("检查类型(1校院巡查 2实验室自查)")
+    private Integer checkType;
+
+    @ApiModelProperty("检查状态(1未开始 2进行中 3已结束)")
+    private Integer checkStatus;
+
+    @ApiModelProperty("检查进度")
+    private String checkSchedule;
+
+    @ApiModelProperty("检查范围(1全校 2学院 3实验室)")
+    private Integer checkRange;
+
+    @ApiModelProperty("检查学院ids")
+    private String collegeIds;
+
+    @ApiModelProperty("检查实验室ids")
+    private String subIds;
+
+    @ApiModelProperty("学院数量")
+    private Integer collegeNum;
+
+    @ApiModelProperty("实验室数量")
+    private Integer subjectNum;
+
+    @ApiModelProperty("检查类别(1综合检查 2专项检查)")
+    private Integer checkCategory;
+
+    @ApiModelProperty("危险源ids")
+    private String hazardIds;
+
+    @ApiModelProperty("危险源数量")
+    private Integer hazardNum;
+
+    @ApiModelProperty("周期开始时间")
+    private LocalDate cycleStartTime;
+
+    @ApiModelProperty("周期结束时间")
+    private LocalDate cycleEndTime;
+
+    @ApiModelProperty("是否逾期(0否 1是)")
+    private Integer isOverdue;
+
+    @ApiModelProperty("是否存在附件(0否 1是)")
+    private Integer isAttachment;
+
+    @ApiModelProperty("检查要求")
+    private String checkDemand;
+
+    @ApiModelProperty("巡查组id")
+    private Long checkGroupId;
+
+    @ApiModelProperty("是否隐藏标题(0否 1是)")
+    private Integer hideTitle;
+
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("创建人ID")
+    private Long createBy;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("修改人名称")
+    private String updateName;
+
+    @ApiModelProperty("修改人ID")
+    private Long updateBy;
+
+    @ApiModelProperty("修改时间")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("是否删除(0否 1是)")
+    private Boolean isDeleted;
+
+    @ApiModelProperty("是否自己数据(0否 1是)")
+    private Integer isSelfData;
+
+}

+ 108 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckPlanVo.java

@@ -0,0 +1,108 @@
+package com.zd.security.api.vo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.model.page.PageQuery;
+import com.zd.security.api.dto.CheckMemberDto;
+import com.zd.security.api.dto.UploadDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 检查计划返回表
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-04-19
+ */
+@Data
+@ApiModel(value = "CheckPlanVo对象", description = "检查计划返回表")
+public class CheckPlanVo extends PageQuery implements Serializable {
+
+    private static final long serialVersionUID = 1754384040467573469L;
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("计划标题")
+    private String title;
+
+    @ApiModelProperty("检查类型(1校院巡查 2实验室自查)")
+    private Integer checkType;
+
+    @ApiModelProperty("检查状态(1未开始 2进行中 3已结束)")
+    private Integer checkStatus;
+
+    @ApiModelProperty("检查进度")
+    private String checkSchedule;
+
+    @ApiModelProperty("检查范围(1全校 2学院 3实验室)")
+    private Integer checkRange;
+
+    @ApiModelProperty("检查学院ids")
+    private String collegeIds;
+
+    @ApiModelProperty("检查实验室ids")
+    private String subIds;
+
+    @ApiModelProperty("学院数量")
+    private Integer collegeNum;
+
+    @ApiModelProperty("实验室数量")
+    private Integer subjectNum;
+
+    @ApiModelProperty("检查类别(1综合检查 2专项检查)")
+    private Integer checkCategory;
+
+    @ApiModelProperty("危险源ids")
+    private String hazardIds;
+
+    @ApiModelProperty("危险源数量")
+    private Integer hazardNum;
+
+    @ApiModelProperty("周期开始时间")
+    private LocalDate cycleStartTime;
+
+    @ApiModelProperty("周期结束时间")
+    private LocalDate cycleEndTime;
+
+    @ApiModelProperty("是否逾期(0否 1是)")
+    private Integer isOverdue;
+
+    @ApiModelProperty("检查要求")
+    private String checkDemand;
+
+    @ApiModelProperty("巡查组id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long checkGroupId;
+
+    @ApiModelProperty("是否存在附件(0否 1是)")
+    private Integer isAttachment;
+
+    @ApiModelProperty("是否删除(0否 1是)")
+    private Boolean isDeleted;
+
+    @ApiModelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("修改人名称")
+    private String updateName;
+
+    @ApiModelProperty("材料附件列表")
+    private List<UploadDto> uploadDtoList;
+
+    @ApiModelProperty("检查成员列表")
+    private List<CheckMemberDto> checkMemberDtoList;
+
+}

+ 72 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckRectifyApplyVo.java

@@ -0,0 +1,72 @@
+package com.zd.security.api.vo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.security.api.dto.UploadDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Controller
+ * <p>整改审批类</p>
+ * @author cyl
+ * @date 2023/4/26
+ */
+@Data
+public class CheckRectifyApplyVo  implements Serializable {
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("整改类型:1是院校巡查,2是自查")
+    private Integer rectifyType;
+
+    @ApiModelProperty("整改结果1是已整改,0是暂无法整改")
+    private Integer rectifyResult;
+
+    @ApiModelProperty("整改措施")
+    private String rectifyMeasure;
+
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("创建人ID")
+    private Long createBy;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("审核结果1是通过,0是驳回")
+    private Integer examineResult;
+
+    @ApiModelProperty("审核意见")
+    private String examineOpinion;
+
+    @ApiModelProperty("审核人id")
+    private Long reviewedBy;
+
+    @ApiModelProperty("审核人姓名")
+    private String reviewedName;
+
+    @ApiModelProperty("审核时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    private LocalDateTime reviewedTime;
+
+    @ApiModelProperty("拆分后状态识别,1是整改,2是复核")
+    private Integer applyFlag;
+
+    @ApiModelProperty("上传文件")
+    private List <UploadDto> uploadDtoList = new ArrayList <>();
+}

+ 56 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckRectifyDescs.java

@@ -0,0 +1,56 @@
+package com.zd.security.api.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Controller
+ *
+ * @author cyl
+ * @date 2023/5/18
+ */
+@Data
+public class CheckRectifyDescs  implements Serializable {
+
+    /**
+     * 序号
+     */
+    private String index = "";
+    /**
+     * 检查项名称
+     */
+    private String check_option_name;
+    /**
+     * 隐患描述
+     */
+    private String check_desc = "";
+    /**
+     * 原因分析
+     */
+    private String check_cause;
+    /**
+     * 整改措施与结果
+     */
+    private String check_result;
+    /**
+     * 隐患图片 - 多个
+     */
+    private String check_img1 = "";
+    /**
+     * 隐患图片 - 多个
+     */
+    private String check_img2 = "";
+    /**
+     * 隐患图片 - 多个
+     */
+    private String check_img3 = "";
+    /**
+     * 隐患图片 - 多个
+     */
+    private String check_img4 = "";
+    /**
+     * 隐患图片 - 多个
+     */
+    private String check_img5 = "";
+}

+ 29 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckRectifyDetailVo.java

@@ -0,0 +1,29 @@
+package com.zd.security.api.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * Controller
+ *
+ * @author cyl
+ * @date 2023/5/18
+ */
+@Data
+public class CheckRectifyDetailVo implements Serializable {
+
+    /**
+     * 序号
+     */
+    private String index = "";
+    /**
+     * 条款号 - 检查项编号
+     */
+    private String option_code;
+    /**
+     * 隐患描述
+     */
+    private String check_desc = "";
+
+}

+ 85 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckRectifyExcelVo.java

@@ -0,0 +1,85 @@
+package com.zd.security.api.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Controller
+ * <p>整改导出类</p>
+ * @author cyl
+ * @date 2023/5/18
+ */
+@Data
+public class CheckRectifyExcelVo implements Serializable {
+
+    /**
+     * 学院名称
+     */
+    private String deptName;
+    /**
+     * 实验室名称
+     */
+    private String subName;
+    /**
+     * 检查年
+     */
+    private String checkYear;
+    /**
+     * 检查月
+     */
+    private String checkMonth;
+    /**
+     * 检查日
+     */
+    private String checkDay;
+    /**
+     * 编号
+     */
+    private String code;
+
+    /**
+     * 整改隐患数量
+     */
+    private String count;
+    /**
+     * 当前年
+     */
+    private String nowYear;
+    /**
+     * 当前月
+     */
+    private String nowMonth;
+    /**
+     * 当前日
+     */
+    private String nowDay;
+    /**
+     * 检查房间号
+     */
+    private String checkRoom;
+    /**
+     * 检查人员名称
+     */
+    private String checkNickName;
+
+    /**
+     * 检查机构电子签章url地址
+     */
+    private String checkDeptSign;
+
+    /**
+     * 已完成整改数量
+     */
+    private Integer finishCount;
+    /**
+     * 未完成整改数量
+     */
+    private Integer unCount;
+
+    private List<CheckRectifyDetailVo> detailList = new ArrayList <>();
+
+    private List<CheckRectifyDescs> descsList = new ArrayList <>();
+}

+ 38 - 9
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckRectifyVo.java

@@ -1,26 +1,55 @@
 package com.zd.security.api.vo;
 
-import com.zd.security.api.dto.CheckHazardDto;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
 
 /**
  * Controller
- *
+ * <p>整改类</p>
  * @author cyl
  * @date 2023/4/20
  */
 @Data
 public class CheckRectifyVo implements Serializable {
 
-    @ApiModelProperty("隐患详情")
-    private CheckHazardDto checkHazardDto;
+    @ApiModelProperty("计划id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty("隐患id")
+    private Long checkHazardId;
+
+    @ApiModelProperty("计划标题")
+    private String title;
+
+    @ApiModelProperty("学院名称")
+    private String collegeName;
+
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @ApiModelProperty("实验室房间号")
+    private String roomNumber;
+
+    @ApiModelProperty("楼栋名称")
+    private String buildName;
+
+    @ApiModelProperty("危险源统计")
+    private Integer hazardCount;
+
+    @ApiModelProperty("计划周期")
+    private String cycleTime;
+
+    @ApiModelProperty("检查人名称")
+    private String checkUser;
+
+    @ApiModelProperty("检查时间")
+    private String checkTime;
+
 
-    @ApiModelProperty("整改和审批流水线list")
-    private List <LinkedHashMap <String,Object>> checkRectifyMap = new ArrayList <>();
 }

+ 69 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckSetVo.java

@@ -0,0 +1,69 @@
+package com.zd.security.api.vo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Controller
+ *
+ * @author cyl
+ * @date 2023/5/9
+ */
+@Data
+public class CheckSetVo  implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    private Long id;
+
+    @ApiModelProperty("实验室负责人:1是勾选,0是未勾选")
+    private Boolean setSubjectLead;
+
+    @ApiModelProperty("实验室安全责任人:1是勾选,0是未勾选")
+    private Boolean setSubjectSafety;
+
+    @ApiModelProperty("全部老师:1是勾选,0是未勾选")
+    private Boolean setTeacher;
+
+    @ApiModelProperty("全部学生:1是勾选,0是未勾选")
+    private Boolean setStudent;
+
+    @ApiModelProperty("人员类型:1是检查人员,2是整改人员")
+    private Integer staffType;
+
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("创建人ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createBy;
+
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("修改人名称")
+    private String updateName;
+
+    @ApiModelProperty("修改人")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long updateBy;
+
+    @ApiModelProperty("修改时间")
+    @TableField(fill = FieldFill.UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("是否删除(0否 1是)")
+    private Boolean isDeleted;
+
+
+    private List <CheckStaffUserStuVo> userStuList = new ArrayList <>();
+
+}

+ 87 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckStaffUserStuVo.java

@@ -0,0 +1,87 @@
+package com.zd.security.api.vo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * Controller
+ * <p>检查配置项关联的用户类</p>
+ * @author cyl
+ * @date 2023/5/8
+ */
+@Data
+public class CheckStaffUserStuVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    private Long id;
+
+    @ApiModelProperty("用户主键")
+    private Long userId;
+
+    @ApiModelProperty("用户真实姓名")
+    private String nickName;
+
+    @ApiModelProperty("归属类型,1是安全负责人,2是安全责任人,3是老师,4是学生")
+    private Integer attriType;
+
+    @ApiModelProperty("人员类型:1是检查人员,2是整改人员")
+    private Integer staffType;
+
+    @ApiModelProperty("实验室id")
+    private Long subId;
+
+    @ApiModelProperty("实验室id 为了结合新老服务字段交替")
+    private Long subjectId;
+
+    @ApiModelProperty("实验室名称")
+    private String subName;
+
+    @ApiModelProperty("学号")
+    private String userNumber;
+
+    @ApiModelProperty("手机号")
+    private String phonenumber;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("有效期开始时间")
+    private LocalDateTime validBeginTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("有效期结束时间")
+    private LocalDateTime validEndTime;
+
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("创建人ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createBy;
+
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("修改人名称")
+    private String updateName;
+
+    @ApiModelProperty("修改人")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long updateBy;
+
+    @ApiModelProperty("修改时间")
+    @TableField(fill = FieldFill.UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("是否删除(0否 1是)")
+    private Boolean isDeleted;
+
+
+}

+ 51 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CheckStaffVo.java

@@ -0,0 +1,51 @@
+package com.zd.security.api.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * Controller
+ *
+ * @author cyl
+ * @date 2023/4/24
+ */
+@Data
+public class CheckStaffVo implements Serializable {
+
+    private static final long serialVersionUID = -401144841793356194L;
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("实验室id")
+    private Long subId;
+
+    @ApiModelProperty("实验室名称")
+    private String subName;
+
+    @ApiModelProperty("实验室房间号")
+    private String roomNum;
+
+    @ApiModelProperty("学院id")
+    private Long deptId;
+
+    @ApiModelProperty("学院名称")
+    private String deptName;
+
+    @ApiModelProperty("检查者名字")
+    private String nickNames;
+
+    @ApiModelProperty("操作时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("操作人")
+    private String createName;
+}

+ 70 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/CollegeItemsExcel.java

@@ -0,0 +1,70 @@
+package com.zd.security.api.vo;
+
+import com.zd.model.annotation.Excel;
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 按检查指标统计Excel导出类-院级
+ * </p>
+ *
+ * @author xxf
+ * @since 2023-05-18
+ */
+@Data
+@ApiModel(value = "按检查指标统计Excel导出类-院级", description = "按检查指标统计Excel导出类-院级")
+public class CollegeItemsExcel extends PageQuery implements Serializable {
+
+    private static final long serialVersionUID = -4712175670994823585L;
+
+    @Excel(name = "计划任务", type = Excel.Type.EXPORT ,sort = 1)
+    @ApiModelProperty("计划任务")
+    private String title;
+
+    @Excel(name = "实验室", type = Excel.Type.EXPORT ,sort = 2)
+    @ApiModelProperty("实验室")
+    private String subjectName;
+
+    @Excel(name = "隐患总数", type = Excel.Type.EXPORT ,sort = 3)
+    @ApiModelProperty("隐患总数")
+    private Integer sumTotal;
+
+    @Excel(name = "隐患总数", type = Excel.Type.EXPORT ,sort = 4)
+    @ApiModelProperty("一级指标隐患数")
+    private Integer itemsTotal1;
+
+    @Excel(name = "一级指标占比", type = Excel.Type.EXPORT ,sort = 5)
+    @ApiModelProperty("一级指标占比")
+    private String percent;
+
+    @Excel(name = "二级指标隐患数", type = Excel.Type.EXPORT ,sort = 6)
+    @ApiModelProperty("二级指标隐患数")
+    private Integer itemsTotal2;
+
+    @Excel(name = "二级指标占比", type = Excel.Type.EXPORT ,sort = 7)
+    @ApiModelProperty("二级指标占比")
+    private String percent2;
+
+
+    @Excel(name = "三级指标隐患数", type = Excel.Type.EXPORT ,sort = 8)
+    @ApiModelProperty("三级指标隐患数")
+    private Integer itemsTotal3;
+
+    @Excel(name = "三级指标占比", type = Excel.Type.EXPORT ,sort = 9)
+    @ApiModelProperty("三级指标占比")
+    private String percent3;
+
+    @Excel(name = "四级指标隐患数", type = Excel.Type.EXPORT ,sort = 10)
+    @ApiModelProperty("四级指标隐患数")
+    private Integer itemsTotal4;
+
+    @Excel(name = "四级指标占比", type = Excel.Type.EXPORT ,sort = 11)
+    @ApiModelProperty("四级指标占比")
+    private String percent4;
+
+}

+ 57 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/ContentExcel.java

@@ -0,0 +1,57 @@
+package com.zd.security.api.vo;
+
+import com.zd.model.annotation.Excel;
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 按安全插件内容统计Excel导出类
+ * </p>
+ *
+ * @author xxf
+ * @since 2023-08-22
+ */
+@Data
+@ApiModel(value = "按检查内容统计Excel导出类", description = "按检查内容统计Excel导出类")
+public class ContentExcel extends PageQuery implements Serializable {
+
+    private static final long serialVersionUID = -4712175670994823585L;
+
+    @Excel(name = "检查内容", type = Excel.Type.EXPORT ,sort = 1)
+    @ApiModelProperty("检查内容")
+    private String hazardTypeModeName;
+
+    @Excel(name = "学院", type = Excel.Type.EXPORT ,sort = 2)
+    @ApiModelProperty("学院")
+    private String collegeName;
+
+    @Excel(name = "实验室", type = Excel.Type.EXPORT ,sort = 3)
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @Excel(name = "隐患总数", type = Excel.Type.EXPORT ,sort = 4)
+    @ApiModelProperty("隐患总数")
+    private Integer sumTotal;
+
+    @Excel(name = "隐患占比", type = Excel.Type.EXPORT ,sort = 5)
+    @ApiModelProperty("隐患占比")
+    private String percent;
+
+    @Excel(name = "已整改", type = Excel.Type.EXPORT ,sort = 6)
+    @ApiModelProperty("已整改")
+    private Integer sumYzg;
+
+    @Excel(name = "未整改", type = Excel.Type.EXPORT ,sort = 7)
+    @ApiModelProperty("未整改")
+    private Integer sumWzg;
+
+    @Excel(name = "整改率", type = Excel.Type.EXPORT ,sort = 8)
+    @ApiModelProperty("整改率")
+    private String percent2;
+
+}

+ 73 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/HazardExcel.java

@@ -0,0 +1,73 @@
+package com.zd.security.api.vo;
+
+import com.zd.model.annotation.Excel;
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 按安全隐患统计Excel导出类
+ * </p>
+ *
+ * @author xxf
+ * @since 2023-05-18
+ */
+@Data
+@ApiModel(value = "按安全隐患统计Excel导出类", description = "按安全隐患统计Excel导出类")
+public class HazardExcel extends PageQuery implements Serializable {
+
+    private static final long serialVersionUID = -4712175670994823585L;
+
+    @Excel(name = "计划任务", type = Excel.Type.EXPORT ,sort = 1)
+    @ApiModelProperty("计划任务")
+    private String title;
+
+    @Excel(name = "学院", type = Excel.Type.EXPORT ,sort = 2)
+    @ApiModelProperty("学院")
+    private String collegeName;
+
+    @Excel(name = "实验室", type = Excel.Type.EXPORT ,sort = 3)
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @Excel(name = "房间号", type = Excel.Type.EXPORT ,sort = 4)
+    @ApiModelProperty("房间号")
+    private String subRoom;
+
+    @Excel(name = "楼栋", type = Excel.Type.EXPORT ,sort = 5)
+    @ApiModelProperty("楼栋")
+    private String buildName;
+
+    @Excel(name = "隐患级别", type = Excel.Type.EXPORT ,sort = 6)
+    @ApiModelProperty("隐患级别")
+    private String hazardLevelStr;
+
+    @Excel(name = "不符合项", type = Excel.Type.EXPORT ,sort = 7)
+    @ApiModelProperty("不符合项")
+    private String hazardCheckName;
+
+    @Excel(name = "历史出现次数", type = Excel.Type.EXPORT ,sort = 8)
+    @ApiModelProperty("历史出现次数")
+    private Integer sumTotal;
+
+    @Excel(name = "隐患描述", type = Excel.Type.EXPORT ,sort = 9)
+    @ApiModelProperty("隐患描述")
+    private String hazardDescribe;
+
+    @Excel(name = "检查者", type = Excel.Type.EXPORT ,sort = 10)
+    @ApiModelProperty("检查者")
+    private String checkUser;
+
+    @Excel(name = "检查时间", type = Excel.Type.EXPORT ,sort = 11)
+    @ApiModelProperty("检查时间")
+    private String checkTime2;
+
+    @Excel(name = "状态", type = Excel.Type.EXPORT ,sort = 12)
+    @ApiModelProperty("状态")
+    private String rectifyStatusStr;
+
+}

+ 74 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/ItemsExcel.java

@@ -0,0 +1,74 @@
+package com.zd.security.api.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.model.annotation.Excel;
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 按检查指标统计Excel导出类
+ * </p>
+ *
+ * @author xxf
+ * @since 2023-05-18
+ */
+@Data
+@ApiModel(value = "按检查指标统计Excel导出类", description = "按检查指标统计Excel导出类")
+public class ItemsExcel extends PageQuery implements Serializable {
+
+    private static final long serialVersionUID = -4712175670994823585L;
+
+    @Excel(name = "计划任务", type = Excel.Type.EXPORT ,sort = 1)
+    @ApiModelProperty("计划任务")
+    private String title;
+
+    @Excel(name = "学院", type = Excel.Type.EXPORT ,sort = 2)
+    @ApiModelProperty("学院")
+    private String collegeName;
+
+    @Excel(name = "隐患总数", type = Excel.Type.EXPORT ,sort = 3)
+    @ApiModelProperty("隐患总数")
+    private Integer sumTotal;
+
+    @Excel(name = "隐患总数", type = Excel.Type.EXPORT ,sort = 4)
+    @ApiModelProperty("一级指标隐患数")
+    private Integer itemsTotal1;
+
+    @Excel(name = "一级指标占比", type = Excel.Type.EXPORT ,sort = 5)
+    @ApiModelProperty("一级指标占比")
+    private String percent;
+
+    @Excel(name = "二级指标隐患数", type = Excel.Type.EXPORT ,sort = 6)
+    @ApiModelProperty("二级指标隐患数")
+    private Integer itemsTotal2;
+
+    @Excel(name = "二级指标占比", type = Excel.Type.EXPORT ,sort = 7)
+    @ApiModelProperty("二级指标占比")
+    private String percent2;
+
+
+    @Excel(name = "三级指标隐患数", type = Excel.Type.EXPORT ,sort = 8)
+    @ApiModelProperty("三级指标隐患数")
+    private Integer itemsTotal3;
+
+    @Excel(name = "三级指标占比", type = Excel.Type.EXPORT ,sort = 9)
+    @ApiModelProperty("三级指标占比")
+    private String percent3;
+
+    @Excel(name = "四级指标隐患数", type = Excel.Type.EXPORT ,sort = 10)
+    @ApiModelProperty("四级指标隐患数")
+    private Integer itemsTotal4;
+
+    @Excel(name = "四级指标占比", type = Excel.Type.EXPORT ,sort = 11)
+    @ApiModelProperty("四级指标占比")
+    private String percent4;
+
+}

+ 56 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/StuUserVo.java

@@ -0,0 +1,56 @@
+package com.zd.security.api.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * Controller
+ *
+ * @author cyl
+ * @date 2023/4/21
+ */
+@Data
+public class StuUserVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("实验室id")
+    private Long subId;
+
+    @ApiModelProperty("实验室名称")
+    private String subName;
+
+    @ApiModelProperty("实验室房间号")
+    private String subRomm;
+
+    @ApiModelProperty("部门id")
+    private Long deptId;
+
+    @ApiModelProperty("部门名称")
+    private String deptName;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("用户真实姓名")
+    private String nickName;
+
+    @ApiModelProperty("学号")
+    private String userNumber;
+
+    @ApiModelProperty("手机号")
+    private String phonenumber;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty("有效期开始时间")
+    private Date validBeginTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty("有效期结束时间")
+    private Date validEndTime;
+
+}

+ 80 - 0
zd-api/zd-security-api/src/main/java/com/zd/security/api/vo/SubjectExcel.java

@@ -0,0 +1,80 @@
+package com.zd.security.api.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.model.annotation.Excel;
+import com.zd.model.page.PageQuery;
+import com.zd.security.api.dto.CheckHazardDto;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 按实验室统计Excel导出类
+ * </p>
+ *
+ * @author xxf
+ * @since 2023-05-18
+ */
+@Data
+@ApiModel(value = "按实验室统计Excel导出类", description = "按实验室统计Excel导出类")
+public class SubjectExcel extends PageQuery implements Serializable {
+
+    private static final long serialVersionUID = -4712175670994823585L;
+
+    @Excel(name = "学院", type = Excel.Type.EXPORT ,sort = 1)
+    @ApiModelProperty("学院")
+    private String collegeName;
+
+    @Excel(name = "实验室", type = Excel.Type.EXPORT ,sort = 2)
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @Excel(name = "房间号", type = Excel.Type.EXPORT ,sort = 3)
+    @ApiModelProperty("房间号")
+    private String roomNumber;
+
+    @Excel(name = "楼栋", type = Excel.Type.EXPORT ,sort = 4)
+    @ApiModelProperty("楼栋")
+    private String buildName;
+
+    @Excel(name = "安全分类", type = Excel.Type.EXPORT ,sort = 5)
+    @ApiModelProperty("安全分类")
+    private String typeName;
+
+    @Excel(name = "安全分级", type = Excel.Type.EXPORT ,sort = 6)
+    @ApiModelProperty("安全分级")
+    private String levelName;
+
+    @Excel(name = "危险源", type = Excel.Type.EXPORT ,sort = 7)
+    @ApiModelProperty("危险源")
+    private String hazardName;
+
+    @Excel(name = "实验室负责人", type = Excel.Type.EXPORT ,sort = 8)
+    @ApiModelProperty("实验室负责人")
+    private String adminNameAndPhone;
+
+    @Excel(name = "实验室安全责任人", type = Excel.Type.EXPORT ,sort = 9)
+    @ApiModelProperty("实验室安全责任人")
+    private String safeUserNameAdminPhone;
+
+    @Excel(name = "隐患总数", type = Excel.Type.EXPORT ,sort = 10)
+    @ApiModelProperty("隐患总数")
+    private Integer dangerNum;
+
+    @Excel(name = "整改率", type = Excel.Type.EXPORT ,sort = 11)
+    @ApiModelProperty("整改率")
+    private String percent;
+
+    @Excel(name = "复核通过率", type = Excel.Type.EXPORT ,sort = 12)
+    @ApiModelProperty("复核通过率")
+    private String percent2;
+
+}

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

@@ -3,13 +3,14 @@ package com.zd.system.api.feign;
 import com.zd.model.constant.ApplicationConstants;
 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.SysOperLog;
 import com.zd.system.api.feign.factory.RemoteLogFallback;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 日志服务

+ 76 - 0
zd-api/zd-system-api/src/main/java/com/zd/system/api/feign/RemoteUserService.java

@@ -5,17 +5,24 @@ import com.zd.model.constant.SecurityConstants;
 import com.zd.model.domain.AjaxResult;
 import com.zd.model.domain.R;
 import com.zd.model.domain.ResultData;
+import com.zd.model.entity.LoginModel;
 import com.zd.model.entity.LoginUser;
+import com.zd.model.entity.SysDeptUser;
 import com.zd.model.entity.SysUser;
+import com.zd.system.api.bo.SysLoginBo;
+import com.zd.system.api.dto.SysUserPageDto;
 import com.zd.system.api.feign.factory.RemoteUserFallback;
+import com.zd.system.api.vo.CheckUserVo;
 import com.zd.system.api.vo.SimpleUserVO;
 import com.zd.system.api.vo.SysLogoConfigVO;
+import com.zd.system.api.vo.SysUserApiVo;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 用户服务
@@ -45,6 +52,43 @@ public interface RemoteUserService {
                                     @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
     /**
+     * 用户登录
+     *
+     * @param loginBo
+     * @return 结果
+     */
+    @PostMapping("/user/login/account")
+    R<LoginModel> userLogin(@RequestBody SysLoginBo loginBo);
+
+
+    /***
+     * 手持机人脸登录
+     * @param file
+     * @return
+     */
+    @PostMapping(value = "/facePda/pdaCompare",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    ResultData<LoginModel> pdaCompare(@RequestPart("file") MultipartFile file);
+
+
+    /**
+     * 用户登录
+     *
+     * @param loginBo
+     * @return 结果
+     */
+    @PostMapping("/user/login/noPassword")
+    R<LoginModel> userLoginByNoPassword(@RequestBody SysLoginBo loginBo);
+
+    /**
+     * 用户登录
+     *
+     * @param loginBo
+     * @return 结果
+     */
+    @PostMapping("/user/login/phoneAccount")
+    R<LoginModel> phoneAccount(@RequestBody SysLoginBo loginBo);
+
+    /**
      * 通过用户ID查询用户信息
      *
      * @param id     用户id
@@ -200,4 +244,36 @@ public interface RemoteUserService {
 
     @GetMapping("/user/getUserMapInfoByUserId")
     ResultData getUserMapInfoByUserId(@RequestParam("userId") Long userId);
+
+
+    @PostMapping("/user/getUserByIdentityType")
+    R<List<SysUserApiVo>> getUserMapInfoByUserId(@RequestBody Map <String,String> userDtoMap);
+
+
+    @RequestMapping("/user/safecheck/{userIds}")
+    AjaxResult safecheck(@PathVariable("userIds") Long[] userIds);
+
+    @RequestMapping("/user/rectifycheck/{userIds}")
+    AjaxResult rectifycheck(@PathVariable("userIds") Long[] userIds);
+
+    @RequestMapping("/user/delsafecheck/{userIds}")
+    AjaxResult delsafecheck(@PathVariable("userIds") Long[] userIds);
+
+    @PostMapping("/user/findUserList")
+    ResultData<List<CheckUserVo>> findUserList(@RequestBody SysUserPageDto sysUserPageDto);
+
+    @GetMapping("/user/dept/userIdList")
+    ResultData<SysDeptUser> getSysDeptUser(@RequestParam("deptId") Long deptId);
+
+    @GetMapping("/user/dept/customRoleUserIds")
+    ResultData<List<Long>> getSysCustomRoleUserIds(@RequestParam("deptIds") List<Long> deptIds);
+
+    @RequestMapping("/post/optionselect")
+    AjaxResult optionselect();
+
+    @RequestMapping("/post/selectPostInfo/{userId}")
+    ResultData<Boolean> selectPostInfo(@PathVariable("userId") Long userId);
+
+    @RequestMapping("/post/selectPostCollegeInfo/{userId}")
+    ResultData<Boolean> selectPostCollegeInfo(@PathVariable("userId") Long userId);
 }

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

@@ -1,6 +1,7 @@
 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.SysOperLog;
 import com.zd.system.api.feign.RemoteLogService;
@@ -8,6 +9,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 日志服务降级处理

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

@@ -3,18 +3,25 @@ package com.zd.system.api.feign.factory;
 import com.zd.model.domain.AjaxResult;
 import com.zd.model.domain.R;
 import com.zd.model.domain.ResultData;
+import com.zd.model.entity.LoginModel;
 import com.zd.model.entity.LoginUser;
+import com.zd.model.entity.SysDeptUser;
 import com.zd.model.entity.SysUser;
+import com.zd.system.api.bo.SysLoginBo;
+import com.zd.system.api.dto.SysUserPageDto;
 import com.zd.system.api.feign.RemoteUserService;
+import com.zd.system.api.vo.CheckUserVo;
 import com.zd.system.api.vo.SimpleUserVO;
 import com.zd.system.api.vo.SysLogoConfigVO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 用户服务降级处理
@@ -41,43 +48,41 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
                 return R.fail(MESSAGE_HEAD + throwable.getMessage());
             }
 
-            /**
-             * 通过用户ID查询用户信息
-             *
-             * @param id     用户id
-             * @param source 请求来源
-             * @return 结果
-             */
+            @Override
+            public R<LoginModel> userLogin(SysLoginBo loginBo) {
+                return R.fail(MESSAGE_HEAD + throwable.getMessage());
+            }
+
+            @Override
+            public ResultData pdaCompare(MultipartFile file) {
+                return ResultData.fail("手持机人脸登录失败:" + throwable.getMessage());
+            }
+
+            @Override
+            public R <LoginModel> userLoginByNoPassword(SysLoginBo loginBo) {
+                return R.fail(MESSAGE_HEAD + throwable.getMessage());
+            }
+
+            @Override
+            public R <LoginModel> phoneAccount(SysLoginBo loginBo) {
+                return R.fail(MESSAGE_HEAD + throwable.getMessage());
+            }
+
             @Override
             public R<SysUser> getUserInfoByUserId(Long id, String source) {
                 return R.fail(MESSAGE_HEAD + throwable.getMessage());
             }
 
-            /**
-             * 通过用户账户查询用户信息
-             *
-             * @param userName 用户账户
-             * @param source   请求来源
-             * @return 结果
-             */
             @Override
             public R<SysUser> getUserInfoByUserName(String userName, String source) {
                 return R.fail(MESSAGE_HEAD + throwable.getMessage());
             }
-            /**
-             * 通过用户卡号查询用户信息
-             *
-             * @param userName 用户账户
-             * @param source   请求来源
-             * @return 结果
-             */
+
             @Override
             public R<SysUser> getUserInfoByCardNum(String userName, String source) {
                 return R.fail("通过用户卡号查询用户信息失败:" + throwable.getMessage());
             }
 
-
-
             @Override
             public R<Boolean> registerUserInfo(SysUser sysUser, String source) {
                 return R.fail("注册用户失败:" + throwable.getMessage());
@@ -93,12 +98,6 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
                 return R.fail("获取所有用户ID失败:" + throwable.getMessage());
             }
 
-            /**
-             * 根据用户ids获取电话
-             *
-             * @param ids
-             * @return 结果
-             */
             @Override
             public R<List<String>> getPhoneByUserIDS(String ids) {
                 return R.fail("获取所有用户手机号失败:" + throwable.getMessage());
@@ -160,31 +159,16 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
                 return AjaxResult.error("用户账号信息删除失败:"+throwable.getMessage());
             }
 
-            /**
-             * 获取当前登录用户所属学校以及院系id集合
-             *
-             * @return
-             */
             @Override
             public R<List<Long>> getLogingUserDeptids() {
                 return R.fail("获取登录用户所属学校及院系失败:" + throwable.getMessage());
             }
 
-            /**
-             * 获取当前登录用户所属学校的deptid
-             *
-             * @return
-             */
             @Override
             public R<Long> getLoginUserSchoolDeptid() {
                 return R.fail("获取当前登录用户所属学校的deptid失败:" + throwable.getMessage());
             }
 
-            /***
-             * 根据电话查询用户信息
-             * @param phone
-             * @return
-             */
             @Override
             public R<SysUser> getUserByPhone(String phone) {
                 return R.fail("根据电话查询用户信息失败:" + throwable.getMessage());
@@ -194,6 +178,56 @@ public class RemoteUserFallback implements FallbackFactory<RemoteUserService> {
             public ResultData getUserMapInfoByUserId(Long userId) {
                 return ResultData.fail("查询用户信息失败:" + throwable.getMessage());
             }
+
+            @Override
+            public R getUserMapInfoByUserId(Map <String, String> userDtoMap) {
+                return R.fail("查询用户信息失败:" + throwable.getMessage());
+            }
+
+            @Override
+            public AjaxResult safecheck(Long[] userIds) {
+                return AjaxResult.error("检查人员绑定权限菜单失败:"+throwable.getMessage());
+            }
+
+            @Override
+            public AjaxResult rectifycheck(Long[] userIds) {
+                return AjaxResult.error("整改人员绑定权限菜单失败:"+throwable.getMessage());
+            }
+
+            @Override
+            public AjaxResult delsafecheck(Long[] userIds) {
+                return AjaxResult.error("用户取消绑定权限菜单失败:"+throwable.getMessage());
+            }
+
+            @Override
+            public ResultData<List<CheckUserVo>> findUserList(SysUserPageDto sysUserPageDto) {
+                return ResultData.fail("用户取消绑定权限菜单失败:"+throwable.getMessage());
+            }
+
+            @Override
+            public ResultData<SysDeptUser> getSysDeptUser(Long deptId) {
+                return ResultData.fail("获取失败");
+            }
+
+            @Override
+            public ResultData<List<Long>> getSysCustomRoleUserIds(List<Long> deptIds) {
+                return ResultData.fail("获取失败");
+            }
+
+            @Override
+            public AjaxResult optionselect() {
+                return AjaxResult.error("查询职位列表失败:"+throwable.getMessage());
+            }
+
+            @Override
+            public ResultData selectPostInfo(Long userId) {
+                return ResultData.fail("查询职位信息失败:"+throwable.getMessage());
+            }
+
+            @Override
+            public ResultData <Boolean> selectPostCollegeInfo(Long userId) {
+                return ResultData.fail("查询职位信息失败:"+throwable.getMessage());
+            }
         };
     }
 }

+ 198 - 97
zd-auth/src/main/java/com/zd/auth/controller/TokenController.java

@@ -1,10 +1,12 @@
 package com.zd.auth.controller;
 
+
 import cn.hutool.core.util.RandomUtil;
 import com.zd.auth.form.LoginBody;
 import com.zd.auth.form.RegisterBody;
 import com.zd.auth.service.SysLoginService;
 import com.zd.chemical.api.fegin.RemoteStockService;
+import com.zd.common.core.exception.ParamException;
 import com.zd.common.core.exception.ServiceException;
 import com.zd.common.core.redis.RedisService;
 import com.zd.common.core.security.TokenService;
@@ -14,74 +16,101 @@ import com.zd.common.core.utils.StringUtils;
 import com.zd.model.constant.*;
 import com.zd.model.domain.AjaxResult;
 import com.zd.model.domain.R;
+import com.zd.model.domain.ResultData;
+import com.zd.model.entity.LoginModel;
 import com.zd.model.entity.LoginUser;
 import com.zd.model.entity.SysUser;
+import com.zd.system.api.bo.SysLoginBo;
 import com.zd.system.api.feign.RemoteUserService;
+import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
-
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 
 import static com.zd.model.constant.BaseConstants.CODE_EXPIRATION;
 
-/**
- * token 控制
+/***
+ * <p>认证接口</p>
  *
- * @author zd
+ * @author linft
+ * @date 6/21/2023
+ * @version 3.0
  */
 @RestController
-public class TokenController {
+public class AuthController {
 
-    private final Logger logger = LoggerFactory.getLogger(TokenController.class);
+    private final Logger logger = LoggerFactory.getLogger(AuthController.class);
 
     @Autowired
     private TokenService tokenService;
+
     @Autowired
     private SysLoginService sysLoginService;
+
     @Autowired
     private RemoteUserService remoteUserService;
-    @Autowired
-    private RedisService redisService;
+
     @Autowired
     private RemoteStockService stockService;
+
     @Resource
     private RedisTemplate<String, String> redisTemplate;
 
-    @PostMapping("login")
-    public R<?> login(@RequestBody LoginBody form) {
+    @Autowired
+    private RedisService redisService;
+
+
+    @PostMapping("/login")
+    public R login(@RequestBody LoginBody form) {
         // 用户登录
         String authType = form.getAuthType() == null ? BaseConstants.GRANT_TYPE_PASSWORD : form.getAuthType();
-        LoginUser userInfo;
-        if (Objects.equals(authType, BaseConstants.GRANT_TYPE_MOBILE)) {
+        LoginModel loginModel = new LoginModel();
+        SysLoginBo loginBo = new SysLoginBo();
+        loginBo.setAccount(form.getUsername());
+        loginBo.setGrantType(authType);
+        if (BaseConstants.GRANT_TYPE_PASSWORD.equals(authType)) {
+            //校验参数
+            if (StringUtils.isEmpty(form.getUsername()) || StringUtils.isEmpty(form.getPassword())) {
+                throw new ParamException("账号信息不能为空");
+            } else if (form.getUsername().length() < UserConstants.USERNAME_MIN_LENGTH
+                    || form.getUsername().length() > UserConstants.USERNAME_MAX_LENGTH
+                    || form.getPassword().length() < UserConstants.PASSWORD_MIN_LENGTH
+                    || form.getPassword().length() > UserConstants.PASSWORD_MAX_LENGTH) {
+                throw new ParamException("账号参数有误");
+            } else {
+                loginBo.setPassword(form.getPassword());
+                loginBo.setLoginType(UserConstants.USER_LOGIN_PC);
+                R<LoginModel> r = remoteUserService.userLogin(loginBo);
+                if (r.getCode() == HttpStatus.SUCCESS && r.getData() != null) {
+                    loginModel = r.getData();
+                } else if (r.getCode() == HttpStatus.ERROR){
+                    return R.fail(r.getMsg());
+                }
+            }
+
+        } else if (BaseConstants.GRANT_TYPE_MOBILE.equals(authType)) {
+            //手机号
             String key = BaseConstants.DEFAULT_CODE_KEY + BaseConstants.GRANT_TYPE_MOBILE + "@" + form.getUsername();
             String code = redisTemplate.opsForValue().get(key);
             if (form.getPassword().equals(code)) {
-                R<LoginUser> userR = remoteUserService.getUserInfo(form.getUsername(), SecurityConstants.INNER);
-                if (userR.getCode() == HttpStatus.SUCCESS && userR.getData() != null) {
-                    userInfo = userR.getData();
-                } else {
-                    throw new ServiceException("服务未知异常,请稍后重试");
+                R<LoginModel> r = remoteUserService.phoneAccount(loginBo);
+                if (r.getCode() == HttpStatus.SUCCESS && r.getData() != null) {
+                    loginModel = r.getData();
+                } else if (r.getCode() == HttpStatus.ERROR){
+                    return R.fail(r.getMsg());
                 }
-            } else {
-                throw new ServiceException("验证码不正确", 503);
             }
-        } else {
-            userInfo = sysLoginService.login(form.getUsername(), UserConstants.USER_LOGIN_PC, form.getPassword());
         }
-        userInfo.setLoginType(UserConstants.USER_LOGIN_PC);
-        Map<String, Object> data = tokenService.createToken(userInfo);
+        loginModel.setLoginType(UserConstants.USER_LOGIN_PC);
+        Map<String, Object> data = tokenService.createToken(loginModel);
         //这里判断输入的密码,是否和默认配置密码一样,如果一样,需要提示跳转设置密码
         AjaxResult resultPassword = remoteUserService.getConfigKey("sys.user.initPassword");
         if ((resultPassword.get("code") + "").equals("200")) {
@@ -94,7 +123,7 @@ public class TokenController {
         }
         // 区分大屏用户
         // 查询大屏链接
-        AjaxResult result = remoteUserService.getRouters(userInfo.getUserid());
+        AjaxResult result = remoteUserService.getRouters(loginModel.getUserId());
         try {
             List<Map<String, Object>> routers = (List<Map<String, Object>>) result.get("data");
             Map<String, Object> dataMenu = routers.stream().filter(
@@ -103,30 +132,28 @@ public class TokenController {
                 String tokenKey = "login_screen:";
 
                 Integer type;
-                if (userInfo.getSysUser().isAdmin()) {
+                if (loginModel.isAdmin()) {
                     type = 1;
                 } else {
-                    result = remoteUserService.selectAuthUserPower(userInfo.getUserid());
+                    result = remoteUserService.selectAuthUserPower(loginModel.getUserId());
                     Map<String, Object> map = (Map<String, Object>) result.get("data");
                     type = Integer.parseInt(map.get("type") + "");
                 }
-
                 if (type == null) {
                     // 没有大屏权限
                     type = 3;
                     data.put("screen_token", "");
-                } else if (redisService.hasKey(tokenKey + userInfo.getUserid())) {
-                    String token = redisService.getCacheObject(tokenKey + userInfo.getUserid());
-                    commLogin(userInfo, token);
+                } else if (redisService.hasKey(tokenKey + loginModel.getUserId())) {
+                    String token = redisService.getCacheObject(tokenKey + loginModel.getUserId());
+                    commLogin(loginModel, token);
                     data.put("screen_token", token);
                 } else {
                     String token = IdUtils.fastUUID();
-                    commLogin(userInfo, token);
-                    redisService.setCacheObject(tokenKey + userInfo.getUserid(), token);
+                    commLogin(loginModel, token);
+                    redisService.setCacheObject(tokenKey + loginModel.getUserId(), token, BaseConstants.TOKEN_EXPIRE, TimeUnit.SECONDS);
                     // 获取大屏TOKEN
                     data.put("screen_token", token);
                 }
-
                 data.put("screen_type", type);
             } else {
                 // 没有大屏权限
@@ -143,11 +170,9 @@ public class TokenController {
     }
 
     //公共登录方法
-    private void commLogin(LoginUser userInfo, String token) {
-        LoginUser loginUser = new LoginUser();
-        BeanUtils.copyProperties(userInfo, loginUser);
-        loginUser.setToken(token);
-        redisService.setCacheObject(CacheConstants.LOGIN_TOKEN_KEY + token, loginUser);
+    private void commLogin(LoginModel model, String token) {
+        model.setToken(token);
+        redisService.setCacheObject(CacheConstants.LOGIN_TOKEN_KEY + token, model, BaseConstants.TOKEN_EXPIRE, TimeUnit.SECONDS);
     }
 
     /**
@@ -155,19 +180,51 @@ public class TokenController {
      * 小程序登录也在用
      */
     @PostMapping("/one/login")
-    public R<?> oneLogin(@RequestBody LoginBody form) {
+    public R oneLogin(@RequestBody LoginBody form) {
         // 用户登录
-        LoginUser userInfo = sysLoginService.login(form.getUsername(), UserConstants.USER_LOGIN_WX, form.getPassword());
-        userInfo.setLoginType(UserConstants.USER_LOGIN_WX);
+        SysLoginBo loginBo = new SysLoginBo();
+        loginBo.setAccount(form.getUsername());
+        loginBo.setPassword(form.getPassword());
+        loginBo.setGrantType(BaseConstants.GRANT_TYPE_PASSWORD);
+        loginBo.setLoginType(UserConstants.USER_LOGIN_WX);
+        R<LoginModel> r = remoteUserService.userLogin(loginBo);
+        if (r.getCode() != HttpStatus.SUCCESS || r.getData() == null) {
+            return R.fail(r.getMsg());
+        }
+        LoginModel model = r.getData();
+        model.setLoginType(UserConstants.USER_LOGIN_WX);
         // 获取登录token
-        return R.ok(tokenService.createProgramToken(userInfo));
+        return R.ok(tokenService.createProgramToken(model));
+    }
+
+    /***
+     * 手持机账号、密码 登录
+     * @param form
+     * @return
+     */
+    @PostMapping("/pda/pwdLogin")
+    public R padLogin(@RequestBody LoginBody form) {
+        // 用户登录
+        SysLoginBo loginBo = new SysLoginBo();
+        loginBo.setAccount(form.getUsername());
+        loginBo.setPassword(form.getPassword());
+        loginBo.setGrantType(BaseConstants.GRANT_TYPE_PASSWORD);
+        R<LoginModel> r = remoteUserService.userLogin(loginBo);
+        if (r.getCode() != HttpStatus.SUCCESS || r.getData() == null) {
+            return R.fail(r.getMsg());
+        }
+        LoginModel model = r.getData();
+        model.setLoginType(UserConstants.HANDSET_LOGIN_AIO);
+        // 获取登录token
+        return R.ok(tokenService.createProgramToken(model));
     }
 
     /**
      * 发送验证码
      */
+
     @PostMapping("/send/code")
-    public R<?> send(@RequestBody LoginBody form) {
+    public R send(@RequestBody LoginBody form) {
         String username = form.getUsername();
         R<LoginUser> userR = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
         if (userR.getCode() != HttpStatus.SUCCESS || userR.getData() == null) {
@@ -194,40 +251,30 @@ public class TokenController {
         return stockService.sendSydSms(code, 2, null, form.getUsername());
     }
 
+
     /**
      * 学习一体机 用户端登录
      * 接口修改为分两步操作,1 刷卡获取人员信息和token , 2 人脸验证之后再调用一次实现真实登录
      * type : 1 和 2
      */
+
     @PostMapping("/learn/login")
-    public R<?> learnLogin(HttpServletRequest request, @RequestBody Map<String, Object> params) {
+    public R learnLogin(HttpServletRequest request, @RequestBody Map<String, Object> params) {
         int type = org.apache.commons.lang3.StringUtils.isNotBlank((String) params.get("type")) ? Integer.parseInt((String) params.get("type")) : 1;
         String machineCode = params.get("machineCode") == null ? "" : (String) params.get("machineCode");
         // 用户登录
         String username = (String) params.get("userName");
         int aioType = params.get("aioType") == null ? UserConstants.USER_LOGIN_AIO : Integer.parseInt(params.get("aioType") + "");
-        logger.error("学习机登录,加密前:" + username + ",设备编码:" + machineCode);
+        logger.error("学习机登录,加密前:" + username + ",设备编码:" + machineCode +"设备类型:"+aioType);
         if (UserConstants.USER_LOGIN_HXP == aioType) {
-            // TODO 终端传参数据有问题,暂临时后端处理
+            //终端传参数据有问题,暂临时后端处理
             //通过des生成对称加密卡号
+            logger.error("化学品补0:" + DESUtils.completeMissing(username));
             username = DESUtils.encrypt(DESUtils.completeMissing(username));
-
-//            username = username.replaceAll("%00", "")
-//                    .replaceAll("%02", "")
-//                    .replaceAll("%03", "")
-//                    .replaceAll("%0A", "")
-//                    .replaceAll("%0D", "")
-//                    .trim();
+            logger.error("化学品加密后:" + username);
         } else {
-            // 查询用户信息
-//            if (StringUtils.isNumeric(username)) {
-//                username = Long.toHexString(Long.parseLong(username)).toUpperCase();
-                username =DESUtils.encrypt(username+"");
-                logger.error("学习机登录,加密后:" + username);
-//            } else {
-//                logger.error("通过卡号未找到用户");
-//                return R.fail("无效卡号或未绑定用户,请联系管理员!");
-//            }
+            username =DESUtils.encrypt(username+"");
+            logger.error("学习机登录,加密后:" + username);
         }
         R<SysUser> user = remoteUserService.getUserInfoByCardNum(username, SecurityConstants.INNER);
         if (R.FAIL == user.getCode()) {
@@ -236,42 +283,46 @@ public class TokenController {
         if (StringUtils.isNull(user.getData())) {
             return R.fail("账号信息不存在");
         }
-        R<LoginUser> userResult = remoteUserService.getUserInfo(user.getData().getUserName(), aioType, SecurityConstants.INNER);
-        if (R.FAIL == userResult.getCode() || 503 == userResult.getCode()) {
-            return R.fail(userResult.getMsg());
+        SysLoginBo loginBo = new SysLoginBo();
+        loginBo.setAccount(user.getData().getUserName());
+        loginBo.setLoginType(aioType);
+        R<LoginModel> r = remoteUserService.userLoginByNoPassword(loginBo);
+        if (r.getCode() != R.SUCCESS) {
+            return R.fail(r.getMsg());
         }
-        if (userResult.getData() != null) {
-            LoginUser userInfo = userResult.getData();
+        if (r.getData() != null) {
+            LoginModel userInfo = r.getData();
             userInfo.setLoginType(aioType);
             userInfo.setMachineCode(machineCode);
-            if (userInfo.getSysUser() == null) {
-                return R.fail("账号信息不存在");
-            }
             Map<String, Object> map = null;
             if (type == 1) {
                 // 获取登录token
                 map = tokenService.createToken(userInfo);
             } else if (type == 2) {
                 // 资源删除
-                LoginUser loginUser = tokenService.getLoginUser(request);
+                LoginModel loginUser = tokenService.getLoginUser(request);
                 if (StringUtils.isNotNull(loginUser)) {
                     // 删除用户缓存记录
                     tokenService.delLoginUser(loginUser.getToken());
                 }
                 map = tokenService.createToken(userInfo);
                 if (UserConstants.USER_LOGIN_HXP == aioType) {
-                    map.put("positionName", userInfo.getSysUser().getPositionName());
+                    map.put("positionName", userInfo.getPositionName());
                     map.put("cabinetLock", userInfo.isCabinetLock());
                     map.put("airBottle", userInfo.isAirBottle());
                 } else if (UserConstants.USER_LOGIN_AIO == aioType) {
-                    if (redisService.hasKey(CacheConstants.LEARN_USER_KEY + userInfo.getSysUser().getUserId())) {
-                        LoginUser userCache = redisService.getCacheObject(CacheConstants.LEARN_USER_KEY + userInfo.getSysUser().getUserId());
-                        if (!machineCode.equals(userCache.getMachineCode())) {
-                            return R.fail("签到失败,不能重复签到!");
+                    if (redisService.hasKey(CacheConstants.LEARN_USER_KEY + userInfo.getUserId())) {
+                        LoginModel userCache = redisService.getCacheObject(CacheConstants.LEARN_USER_KEY + userInfo.getUserId());
+                        if(StringUtils.isNull(params.get("isLogin")) || "0".equals(params.get("isLogin"))){
+                            if (machineCode.equals(userCache.getMachineCode())) {
+                                return R.fail(4466,"您已在设备登录,是否重新登录!");
+                            }else{
+                                return R.fail("签到失败,不能重复签到!");
+                            }
                         }
                     }
                     // 记录学习一体机用户登录状态
-                    redisService.setCacheObject(CacheConstants.LEARN_USER_KEY + userInfo.getSysUser().getUserId(), userInfo, BaseConstants.TOKEN_EXPIRE * 60, TimeUnit.SECONDS);
+                    redisService.setCacheObject(CacheConstants.LEARN_USER_KEY + userInfo.getUserId(), userInfo, BaseConstants.TOKEN_EXPIRE * 60, TimeUnit.SECONDS);
                 }
             }
             return R.ok(map);
@@ -280,40 +331,77 @@ public class TokenController {
         }
     }
 
+
+    /**
+     * 手持机 用户端登录
+     * 接口操作,1刷卡验证之后调用实现真实登录
+     */
+
+    @PostMapping("/handset/login")
+    public R handsetLogin(@RequestBody Map<String, Object> params) {
+        // 用户登录
+        String username = (String) params.get("userName");
+        logger.error("手持机登录,加密前:" + username);
+        //通过des生成对称加密卡号
+        username = DESUtils.encrypt(username);
+        logger.error("手持机登录,加密后:" + username);
+
+        int aioType = UserConstants.HANDSET_LOGIN_AIO;
+
+        R<SysUser> user = remoteUserService.getUserInfoByCardNum(username, SecurityConstants.INNER);
+        if (R.FAIL == user.getCode()) {
+            throw new ServiceException(user.getMsg());
+        }
+        if (StringUtils.isNull(user.getData())) {
+            return R.fail("账号信息不存在");
+        }
+        SysLoginBo loginBo = new SysLoginBo();
+        loginBo.setAccount(user.getData().getUserName());
+        loginBo.setLoginType(aioType);
+        R<LoginModel> r = remoteUserService.userLoginByNoPassword(loginBo);
+        if (r.getCode() != R.SUCCESS) {
+            return R.fail(r.getMsg());
+        }
+        if (r.getData() != null) {
+            LoginModel userInfo = r.getData();
+            userInfo.setLoginType(aioType);
+            // 获取登录token
+            Map<String, Object> map = tokenService.createToken(userInfo);
+            return R.ok(map);
+        } else {
+            return R.fail("账号信息不存在");
+        }
+    }
+
+
     /**
      * 学习一体机 用户退出登录
      */
     @PostMapping("/learn/loginOut")
-    public R<?> learnLoginOut(HttpServletRequest request) {
-        LoginUser loginUser = tokenService.getLoginUser(request);
+    public R learnLoginOut(HttpServletRequest request) {
+        LoginModel loginUser = tokenService.getLoginUser(request);
         if (StringUtils.isNotNull(loginUser)) {
-            SysUser user = loginUser.getSysUser();
             // 删除用户缓存记录
             tokenService.delLoginUser(loginUser.getToken());
-            // 记录用户退出日志
-            sysLoginService.logout(user);
             // 删除一体机登录状态
-            redisService.deleteObject(CacheConstants.LEARN_USER_KEY + loginUser.getUserid());
+            redisService.deleteObject(CacheConstants.LEARN_USER_KEY + loginUser.getUserId());
         }
         return R.ok();
     }
 
     @DeleteMapping("logout")
-    public R<?> logout(HttpServletRequest request) {
-        LoginUser loginUser = tokenService.getLoginUser(request);
+    public R logout(HttpServletRequest request) {
+        LoginModel loginUser = tokenService.getLoginUser(request);
         if (StringUtils.isNotNull(loginUser)) {
-            SysUser user = loginUser.getSysUser();
             // 删除用户缓存记录
             tokenService.delLoginUser(loginUser.getToken());
-            // 记录用户退出日志
-            sysLoginService.logout(user);
         }
         return R.ok();
     }
 
     @PostMapping("refresh")
-    public R<?> refresh(HttpServletRequest request) {
-        LoginUser loginUser = tokenService.getLoginUser(request);
+    public R refresh(HttpServletRequest request) {
+        LoginModel loginUser = tokenService.getLoginUser(request);
         if (StringUtils.isNotNull(loginUser)) {
             // 刷新令牌有效期
             tokenService.refreshToken(loginUser);
@@ -323,9 +411,22 @@ public class TokenController {
     }
 
     @PostMapping("register")
-    public R<?> register(@RequestBody RegisterBody registerBody) {
+    public R register(@RequestBody RegisterBody registerBody) {
         // 用户注册
         sysLoginService.register(registerBody.getUsername(), registerBody.getPassword());
         return R.ok();
     }
+
+    @ApiOperation(value = "手持机人脸登录")
+    @PostMapping("/facePda")
+    public R face(@RequestParam("file") MultipartFile file) {
+        //调用人脸对比获取用户信息
+        ResultData<LoginModel> result = remoteUserService.pdaCompare(file);
+        if (result.getCode().equals(HttpStatus.SUCCESS)) {
+            LoginModel model = result.getData();
+            Map<String, Object> data = tokenService.createToken(model);
+            return R.ok(data);
+        }
+       return R.fail(result.getMsg());
+    }
 }

+ 1 - 1
zd-common/common-core/src/main/java/com/zd/common/core/alert/DingTalkAlert.java

@@ -53,7 +53,7 @@ public class DingTalkAlert {
             String msg = "{\"msgtype\": \"text\",\"text\": {\"content\":\"" + buffer.toString() + "\"}}";
             return HttpUtils.sendPost(dingTalkUrl, msg, "application/json", null);
         }
-        return "告警未启或参数未配置!";
+        return "告警未启或参数未配置!";
     }
 
 }

+ 10 - 4
zd-common/common-core/src/main/java/com/zd/common/core/annotation/DataScope.java

@@ -14,20 +14,26 @@ public @interface DataScope {
     /**
      * 部门表的别名
      */
-    public String deptAlias() default "";
+    String deptAlias() default "";
 
     /**
      * 用户表的别名
      */
-    public String userAlias() default "";
+    String userAlias() default "";
 
     /**
      * 是否应用实验室负责人
      */
-    public boolean subAdmin() default false;
+    boolean subAdmin() default false;
+
+    /**
+     * 多角色指定数据权限使用的角色
+     * @return
+     */
+    String roleKey() default "";
 
     /**
      * 权限模块
      */
-    public String permi() default "";
+    String permi() default "";
 }

+ 9 - 10
zd-common/common-core/src/main/java/com/zd/common/core/aspect/PreAuthorizeAspect.java

@@ -4,7 +4,9 @@ import com.zd.common.core.annotation.PreAuthorize;
 import com.zd.common.core.exception.PreAuthorizeException;
 import com.zd.common.core.security.TokenService;
 import com.zd.common.core.utils.StringUtils;
-import com.zd.model.entity.LoginUser;
+import com.zd.model.entity.LoginModel;
+import com.zd.model.entity.LoginRole;
+import com.zd.model.entity.SysRole;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.Signature;
 import org.aspectj.lang.annotation.Around;
@@ -14,11 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.PatternMatchUtils;
-
-import java.lang.reflect.Array;
 import java.lang.reflect.Method;
 import java.util.Collection;
-import java.util.Set;
 
 /**
  * 自定义权限实现
@@ -98,7 +97,7 @@ public class PreAuthorizeAspect {
      * @return 用户是否具备某权限
      */
     public boolean hasPermi(String permission) {
-        LoginUser userInfo = tokenService.getLoginUser();
+        LoginModel userInfo = tokenService.getLoginUser();
         if (StringUtils.isNull(userInfo) || CollectionUtils.isEmpty(userInfo.getPermissions())) {
             return false;
         }
@@ -122,7 +121,7 @@ public class PreAuthorizeAspect {
      * @return 用户是否具有以下任意一个权限
      */
     public boolean hasAnyPermi(String[] permissions) {
-        LoginUser userInfo = tokenService.getLoginUser();
+        LoginModel userInfo = tokenService.getLoginUser();
         if (StringUtils.isNull(userInfo) || CollectionUtils.isEmpty(userInfo.getPermissions())) {
             return false;
         }
@@ -142,12 +141,12 @@ public class PreAuthorizeAspect {
      * @return 用户是否具备某角色
      */
     public boolean hasRole(String role) {
-        LoginUser userInfo = tokenService.getLoginUser();
+        LoginModel userInfo = tokenService.getLoginUser();
         if (StringUtils.isNull(userInfo) || CollectionUtils.isEmpty(userInfo.getRoles())) {
             return false;
         }
-        for (String roleKey : userInfo.getRoles()) {
-            if (SUPER_ADMIN.equals(roleKey) || roleKey.equals(role)) {
+        for (LoginRole sysRole : userInfo.getRoles()) {
+            if (SUPER_ADMIN.equals(sysRole.getRoleKey()) || sysRole.getRoleKey().equals(role)) {
                 return true;
             }
         }
@@ -171,7 +170,7 @@ public class PreAuthorizeAspect {
      * @return 用户是否具有以下任意一个角色
      */
     public boolean hasAnyRoles(String[] roles) {
-        LoginUser userInfo = tokenService.getLoginUser();
+        LoginModel userInfo = tokenService.getLoginUser();
         if (StringUtils.isNull(userInfo) || CollectionUtils.isEmpty(userInfo.getRoles())) {
             return false;
         }

+ 0 - 1
zd-common/common-core/src/main/java/com/zd/common/core/aspect/ResponseAdvice.java

@@ -13,7 +13,6 @@ import org.springframework.http.server.ServerHttpRequest;
 import org.springframework.http.server.ServerHttpResponse;
 import org.springframework.util.AntPathMatcher;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
-import org.springframework.web.context.request.async.DeferredResult;
 import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
 
 import java.util.Map;

+ 71 - 56
zd-common/common-core/src/main/java/com/zd/common/core/datascope/DataScopeAspect.java

@@ -6,9 +6,7 @@ import com.zd.common.core.exception.PreAuthorizeException;
 import com.zd.common.core.security.TokenService;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.model.constant.UserConstants;
-import com.zd.model.domain.per.PerFun;
 import com.zd.model.entity.*;
-import com.zd.model.entity.SysPermitInfo;
 import com.zd.model.entity.SysRole;
 import com.zd.model.entity.SysUser;
 import org.aspectj.lang.JoinPoint;
@@ -18,12 +16,16 @@ import org.aspectj.lang.annotation.Before;
 import org.aspectj.lang.annotation.Pointcut;
 import org.aspectj.lang.reflect.MethodSignature;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
-
 import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
+import java.util.Optional;
 import java.util.function.Predicate;
+import java.util.stream.Collectors;
 
 /**
  * 数据过滤处理
@@ -36,33 +38,41 @@ public class DataScopeAspect {
     /**
      * 全部数据权限
      */
-    public static final String DATA_SCOPE_ALL = "1";
-
-    /**
-     * 自定数据权限
-     */
-    public static final String DATA_SCOPE_CUSTOM = "2";
+    public static final Integer DATA_SCOPE_ALL = 1;
 
     /**
      * 部门数据权限
      */
-    public static final String DATA_SCOPE_DEPT = "3";
+    public static final Integer DATA_SCOPE_DEPT = 2;
 
     /**
      * 部门及以下数据权限
      */
-    public static final String DATA_SCOPE_DEPT_AND_CHILD = "4";
+    public static final Integer DATA_SCOPE_DEPT_AND_CHILD = 3;
 
     /**
      * 仅本人数据权限
      */
-    public static final String DATA_SCOPE_SELF = "5";
+    public static final Integer DATA_SCOPE_SELF = 4;
+
+    /**
+     * 自定数据权限
+     */
+    public static final Integer DATA_SCOPE_CUSTOM = 5;
 
     /**
      * 数据权限过滤关键字
      */
     public static final String DATA_SCOPE = "dataScope";
 
+    /** 检查人员 */
+    @Value("${check.checkGentle}")
+    private String checkGentleStr;
+
+    /** 整改人员 */
+    @Value("${check.rectifyGentle}")
+    private String rectifyGentleStr;
+
     @Autowired
     private TokenService tokenService;
 
@@ -84,13 +94,9 @@ public class DataScopeAspect {
             return;
         }
         // 获取当前的用户
-        LoginUser loginUser = tokenService.getLoginUser();
-        if (StringUtils.isNotNull(loginUser)) {
-            SysUser currentUser = loginUser.getSysUser();
-            // 如果是超级管理员,则不过滤数据
-            if (StringUtils.isNotNull(currentUser) && !currentUser.isAdmin() && UserConstants.USER_LOGIN_PC == loginUser.getLoginType()) {
-                dataScopeNewFilter(joinPoint, currentUser, controllerDataScope);
-            }
+        LoginModel loginUser = tokenService.getLoginUser();
+        if (StringUtils.isNotNull(loginUser) && !loginUser.isAdmin() && UserConstants.USER_LOGIN_PC == loginUser.getLoginType()) {
+            dataScopeNewFilter(joinPoint, loginUser, controllerDataScope);
         }
     }
 
@@ -99,15 +105,11 @@ public class DataScopeAspect {
         StringBuilder sqlString = new StringBuilder();
         Boolean f = true;
         for (SysRole role : user.getRoles()) {
-            String dataScope = role.getDataScope();
+            Integer dataScope = role.getDataScope();
             if (DATA_SCOPE_ALL.equals(dataScope)) {
                 sqlString = new StringBuilder();
                 f = false;
                 break;
-            } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) {
-                sqlString.append(StringUtils.format(
-                        " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias,
-                        role.getRoleId()));
             } else if (DATA_SCOPE_DEPT.equals(dataScope)) {
                 sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, user.getDeptId()));
             } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) {
@@ -121,6 +123,10 @@ public class DataScopeAspect {
                     // 数据权限为仅本人且没有userAlias别名不查询任何数据
                     sqlString.append(" OR 1=0 ");
                 }
+            } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) {
+                sqlString.append(StringUtils.format(
+                        " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias,
+                        role.getRoleId()));
             }
         }
         if (f && isSubAdmin) {
@@ -139,10 +145,10 @@ public class DataScopeAspect {
      * 2.6需求变动数据范围过滤
      *
      * @param joinPoint  切点
-     * @param user       用户
+     * @param login       用户
      * @param controllerDataScope  权限注解
      */
-    public static void dataScopeNewFilter(JoinPoint joinPoint, SysUser user, DataScope controllerDataScope) {
+    public void dataScopeNewFilter(JoinPoint joinPoint, LoginModel login, DataScope controllerDataScope) {
         StringBuilder sqlString = new StringBuilder();
         Boolean f = true;
 
@@ -153,57 +159,66 @@ public class DataScopeAspect {
             return;
         }
 
-        List<SysPermitInfo> permits = user.getPermits();
+        List<LoginRole> permits = login.getRoles();
         if(CollectionUtils.isEmpty(permits)){
             throw new PreAuthorizeException();
         }
 
-        String finalPermi = controllerDataScope.permi() + PerFun.LIST;
-        SysPermitInfo permitInfo = permits.stream().filter(a -> finalPermi.equals(a.getMenuPerms())).findFirst().orElse(null);
-        if(permitInfo == null){
-            return;
+        Integer dataScope = login.getDataScope();
+
+        //todo 老柴加的,一个是补全原来删除掉的自定义权限,一个是需要过滤特殊的两个角色
+        Long roleId = Optional.ofNullable(login.getRoles()).orElseGet(Collections::emptyList)
+                .stream()
+                .min(Comparator.comparing(p->p.getDataScope()))
+                .orElseGet(null).getRoleId();
+
+
+        if (!"".equals(controllerDataScope.roleKey())) {
+            List<LoginRole> roles = login.getRoles().stream().filter(r -> controllerDataScope.roleKey().equals(r.getRoleKey())).collect(Collectors.toList());
+            if (roles != null && !roles.isEmpty()) {
+                dataScope = roles.get(0).getDataScope();
+                roleId = roles.get(0).getRoleId();
+            }
         }
 
+        LoginRole loginRole = Optional.ofNullable(login.getRoles()).orElseGet(Collections::emptyList)
+                .stream()
+                .filter(a-> !a.getRoleKey().equals(checkGentleStr) && !a.getRoleKey().equals(rectifyGentleStr))
+                .min(Comparator.comparing(p->p.getDataScope()))
+                .orElse(null);
+
+        if(StringUtils.isNotNull(loginRole)){
+            dataScope = loginRole.getDataScope();
+            roleId = loginRole.getRoleId();
+        }
+
+
         // 1:全部数据权限
-        String dataScope = permitInfo.getDataScope() + "";
         if (DATA_SCOPE_ALL.equals(dataScope)) {
             sqlString = new StringBuilder();
             f = false;
-        } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) {
-            // 2:本部门以及下级部门
+        } else if (DATA_SCOPE_DEPT.equals(dataScope)) {
+            //2:本部门以及下级部门
             sqlString.append(StringUtils.format(
                     " OR {}.dept_id IN ( SELECT dept_id FROM sys_dept WHERE dept_id = {} or find_in_set( {} , ancestors ) )",
-                    deptAlias, user.getDeptId(), user.getDeptId()));
-        } else if (DATA_SCOPE_DEPT.equals(dataScope)) {
-            // 3:本部门以及指定部门(指定部门关联表中查询)
-            List<Long> deptIds = permitInfo.getDeptIds();
-            if(CollectionUtils.isEmpty(deptIds)){
-                // TODO 数据问题暂这样处理
-                throw new PreAuthorizeException();
-            }else {
-
-                StringBuffer sb = new StringBuffer();
-                for (Long deptId : deptIds) {
-                    sb.append("\'").append(deptId).append("\'").append(",");
-                }
-                sqlString.append(StringUtils.format(
-                        " OR {}.dept_id IN ( {} ) ", deptAlias, sb.substring(0, sb.length()-1)));
-            }
-
+                    deptAlias, login.getDeptId(), login.getDeptId()));
         } else if (DATA_SCOPE_DEPT_AND_CHILD.equals(dataScope)) {
+            //3,本部门
+            sqlString.append(StringUtils.format(" OR {}.dept_id = {} ", deptAlias, login.getDeptId()));
+        }  else if (DATA_SCOPE_SELF.equals(dataScope)) {
             // 4:仅本人
             if (StringUtils.isNotBlank(userAlias)) {
-                sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, user.getUserId()));
+                sqlString.append(StringUtils.format(" OR {}.user_id = {} ", userAlias, login.getUserId()));
             } else {
                 // 数据权限为仅本人且没有userAlias别名不查询任何数据
                 sqlString.append(" OR 1=0 ");
             }
+        } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) {
+            sqlString.append(StringUtils.format(
+                    " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias,
+                    roleId));
         }
 
-        /*if (f && controllerDataScope.subAdmin()) {
-            sqlString.append(StringUtils.format(" OR {}.admin_id = {} ", userAlias, user.getUserId()));
-        }*/
-
         if (StringUtils.isNotBlank(sqlString.toString())) {
             Predicate<JoinPoint> predicate = x-> x.getArgs().length>0;
             if(predicate.test(joinPoint)) {

+ 15 - 7
zd-common/common-core/src/main/java/com/zd/common/core/launch/StartEventListener.java

@@ -10,6 +10,8 @@ import org.springframework.core.env.Environment;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.util.StringUtils;
 
+import java.net.InetAddress;
+import java.net.UnknownHostException;
 
 @Configuration
 public class StartEventListener {
@@ -20,15 +22,21 @@ public class StartEventListener {
     @Async
     @Order
     @EventListener({WebServerInitializedEvent.class})
-    public void afterStart(WebServerInitializedEvent event) {
+    public void afterStart(WebServerInitializedEvent event) throws UnknownHostException {
         Environment environment = event.getApplicationContext().getEnvironment();
         String appName = environment.getProperty("spring.application.name").toUpperCase();
-        int localPort = event.getWebServer().getPort();
+        String ip = InetAddress.getLocalHost().getHostAddress();
+        int port = event.getWebServer().getPort();
         String profile = StringUtils.arrayToCommaDelimitedString(environment.getActiveProfiles());
-        log.info("============ [{}]---服务已启动完成,当前使用的端口号:[{}],环境变量:[{}] ============", appName, localPort, profile);
-        //监听Nacos配置
-        String addr = environment.getProperty("spring.cloud.nacos.config.server-addr");
-        String namespace = environment.getProperty("spring.cloud.nacos.config.namespace");
-        log.info("============ Nacos配置,server-addr:[{}],namespace:[{}] ============", addr, namespace);
+        log.info("\n --------------------------------------------------------------------\n\t" +
+                " Application {} is started, 运行环境: {} \n\t" +
+                " Nacos evn: server-addr = {} ,namespace = {} \n\t" +
+                " Local Addr: \thttp://{}:{}\n\t" +
+                " Swagger API: \thttp://{}:{}/doc.html \n\t" +
+                "--------------------------------------------------------------------",
+                appName, profile,
+                environment.getProperty("spring.cloud.nacos.config.server-addr"),
+                environment.getProperty("spring.cloud.nacos.config.namespace"),
+                ip, port, ip, port);
     }
 }

+ 0 - 4
zd-common/common-core/src/main/java/com/zd/common/core/launch/ZdStartApplication.java

@@ -1,8 +1,6 @@
 package com.zd.common.core.launch;
 
 import com.zd.common.core.launch.constant.LauncherConstant;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.boot.builder.SpringApplicationBuilder;
 import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.core.env.*;
@@ -65,8 +63,6 @@ public class ZdStartApplication {
             }
             profile = activeProfileList.get(0);
         }
-        //String startJarPath = Objects.requireNonNull(ZdStartApplication.class.getResource("/")).getPath().split("!")[0];
-        //String activePros = joinFun.apply(activeProfileList.toArray());
         Properties props = System.getProperties();
         props.setProperty("spring.application.name", appName);
         props.setProperty("spring.profiles.active", profile);

+ 2 - 2
zd-common/common-core/src/main/java/com/zd/common/core/launch/constant/LauncherConstant.java

@@ -26,8 +26,8 @@ public interface LauncherConstant {
 	 * Nacos各环境命名空间
 	 */
 	String NACOS_DEV_NAMESPACE = "";
-	String NACOS_TEST_NAMESPACE = "668645db-56eb-4f96-aa27-35fe8aff386d";
-	String NACOS_PRO_NAMESPACE = "";
+	String NACOS_TEST_NAMESPACE = "9eb532be-f4b9-474f-9ad1-86cd2ef75be9";
+	String NACOS_PRO_NAMESPACE = "9eb532be-f4b9-474f-9ad1-86cd2ef75be9";
 
 	/**
 	 * 动态获取nacos地址

+ 30 - 90
zd-common/common-core/src/main/java/com/zd/common/core/log/LogAspect.java

@@ -1,6 +1,7 @@
 package com.zd.common.core.log;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.zd.common.core.annotation.Log;
 import com.zd.common.core.utils.*;
 import com.zd.system.api.entity.SysOperLog;
@@ -14,16 +15,8 @@ import org.aspectj.lang.reflect.MethodSignature;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
 import org.springframework.stereotype.Component;
-import org.springframework.validation.BindingResult;
-import org.springframework.web.multipart.MultipartFile;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 import java.lang.reflect.Method;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Map;
 
 /**
  * 操作日志记录处理
@@ -40,8 +33,7 @@ public class LogAspect {
 
     // 配置织入点
     @Pointcut("@annotation(com.zd.common.core.annotation.Log)")
-    public void logPointCut() {
-    }
+    public void logPointCut() {}
 
     /**
      * 处理完请求后执行
@@ -71,7 +63,6 @@ public class LogAspect {
             if (controllerLog == null) {
                 return;
             }
-
             // *========数据库日志=========*//
             SysOperLog operLog = new SysOperLog();
             operLog.setStatus(BusinessStatus.SUCCESS.ordinal());
@@ -80,13 +71,12 @@ public class LogAspect {
             operLog.setOperIp(ip);
             // 返回参数
             operLog.setJsonResult(JSON.toJSONString(jsonResult));
-
             operLog.setOperUrl(ServletUtils.getRequest().getRequestURI());
             String username = SecurityUtils.getUsername();
             if (StringUtils.isNotBlank(username)) {
                 operLog.setOperName(username);
             }
-
+            //响应参数
             if (e != null) {
                 operLog.setStatus(BusinessStatus.FAIL.ordinal());
                 operLog.setErrorMsg(StringUtils.substring(e.getMessage(), 0, 2000));
@@ -97,51 +87,48 @@ public class LogAspect {
             operLog.setMethod(className + "." + methodName + "()");
             // 设置请求方式
             operLog.setRequestMethod(ServletUtils.getRequest().getMethod());
-            // 处理设置注解上的参数
-            getControllerMethodDescription(joinPoint, controllerLog, operLog);
+            // 设置action动作
+            operLog.setBusinessType(controllerLog.businessType().ordinal());
+            // 设置标题
+            operLog.setTitle(controllerLog.title());
+            // 设置操作人类别
+            operLog.setOperatorType(controllerLog.operatorType().ordinal());
+            // 是否需要保存request,参数和值
+            if (controllerLog.isSaveRequestData()) {
+                // 获取参数的信息,传入到数据库中。
+                //setRequestValue(joinPoint, operLog);
+                operLog.setOperParam(getRequestParam(joinPoint));
+            }
             // 保存数据库
             SaveUtil.setCommonAttr(operLog);
             asyncLogService.saveSysLog(operLog);
         } catch (Exception exp) {
             // 记录本地异常日志
-            log.error("==前置通知异常==");
             log.error("异常信息:{}", exp.getMessage());
             exp.printStackTrace();
         }
     }
 
     /**
-     * 获取注解中对方法的描述信息 用于Controller层注解
-     *
-     * @param log     日志
-     * @param operLog 操作日志
-     * @throws Exception
-     */
-    public void getControllerMethodDescription(JoinPoint joinPoint, Log log, SysOperLog operLog) throws Exception {
-        // 设置action动作
-        operLog.setBusinessType(log.businessType().ordinal());
-        // 设置标题
-        operLog.setTitle(log.title());
-        // 设置操作人类别
-        operLog.setOperatorType(log.operatorType().ordinal());
-        // 是否需要保存request,参数和值
-        if (log.isSaveRequestData()) {
-            // 获取参数的信息,传入到数据库中。
-            setRequestValue(joinPoint, operLog);
-        }
-    }
-
-    /**
      * 获取请求的参数,放到log中
      *
-     * @param operLog 操作日志
      * @throws Exception 异常
      */
-    private void setRequestValue(JoinPoint joinPoint, SysOperLog operLog) throws Exception {
-        String requestMethod = operLog.getRequestMethod();
-        if (HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod)) {
-            String params = argsArrayToString(joinPoint.getArgs());
-            operLog.setOperParam(StringUtils.substring(params, 0, 2000));
+    private String getRequestParam(JoinPoint joinPoint) {
+        Object[] args = joinPoint.getArgs();
+        String params = "";
+        try {
+            if (args != null && args.length > 0) {
+                Object first = args[0];
+                String jsonStr = JSONObject.toJSONString(first);
+                if (jsonStr.length() >= 2000) {
+                    return "Too much parameter information requested, so no logs were collected";
+                }
+                params = jsonStr;
+            }
+            return params;
+        } catch (Exception e) {
+            return e.toString();
         }
     }
 
@@ -152,56 +139,9 @@ public class LogAspect {
         Signature signature = joinPoint.getSignature();
         MethodSignature methodSignature = (MethodSignature) signature;
         Method method = methodSignature.getMethod();
-
         if (method != null) {
             return method.getAnnotation(Log.class);
         }
         return null;
     }
-
-    /**
-     * 参数拼装
-     */
-    private String argsArrayToString(Object[] paramsArray) {
-        String params = "";
-        if (paramsArray != null && paramsArray.length > 0) {
-            for (int i = 0; i < paramsArray.length; i++) {
-                if (StringUtils.isNotNull(paramsArray[i]) && !isFilterObject(paramsArray[i])) {
-                    try {
-                        Object jsonObj = JSON.toJSON(paramsArray[i]);
-                        params += jsonObj.toString() + " ";
-                    } catch (Exception e) {
-                    }
-                }
-            }
-        }
-        return params.trim();
-    }
-
-    /**
-     * 判断是否需要过滤的对象。
-     *
-     * @param o 对象信息。
-     * @return 如果是需要过滤的对象,则返回true;否则返回false。
-     */
-    @SuppressWarnings("rawtypes")
-    public boolean isFilterObject(final Object o) {
-        Class<?> clazz = o.getClass();
-        if (clazz.isArray()) {
-            return clazz.getComponentType().isAssignableFrom(MultipartFile.class);
-        } else if (Collection.class.isAssignableFrom(clazz)) {
-            Collection collection = (Collection) o;
-            for (Iterator iter = collection.iterator(); iter.hasNext(); ) {
-                return iter.next() instanceof MultipartFile;
-            }
-        } else if (Map.class.isAssignableFrom(clazz)) {
-            Map map = (Map) o;
-            for (Iterator iter = map.entrySet().iterator(); iter.hasNext(); ) {
-                Map.Entry entry = (Map.Entry) iter.next();
-                return entry.getValue() instanceof MultipartFile;
-            }
-        }
-        return o instanceof MultipartFile || o instanceof HttpServletRequest || o instanceof HttpServletResponse
-                || o instanceof BindingResult;
-    }
 }

+ 1 - 1
zd-common/common-core/src/main/java/com/zd/common/core/mybatisplus/MybatisPlusGenerator.java

@@ -184,7 +184,7 @@ public class MybatisPlusGenerator {
             //TemplateType.XML,
             //TemplateType.SERVICE,
             //TemplateType.SERVICEIMPL,
-            TemplateType.CONTROLLER
+            //TemplateType.CONTROLLER
     };
 
     /**

+ 8 - 7
zd-common/common-core/src/main/java/com/zd/common/core/security/TokenService.java

@@ -1,5 +1,6 @@
 package com.zd.common.core.security;
 
+import com.zd.model.entity.LoginModel;
 import com.zd.model.entity.LoginUser;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
@@ -14,38 +15,38 @@ public interface TokenService {
     /**
      * 创建令牌
      */
-    Map<String, Object> createToken(LoginUser loginUser);
+    Map<String, Object> createToken(LoginModel login);
 
     /**
      * 创建令牌
      */
-    Map<String, Object> createProgramToken(LoginUser loginUser);
+    Map<String, Object> createProgramToken(LoginModel login);
 
     /**
      * 获取用户身份信息
      *
      * @return 用户信息
      */
-    LoginUser getLoginUser();
+    LoginModel getLoginUser();
 
     /**
      * 获取用户身份信息
      *
      * @return 用户信息
      */
-    LoginUser getLoginUser(HttpServletRequest request);
+    LoginModel getLoginUser(HttpServletRequest request);
 
     /**
      * 获取用户身份信息
      *
      * @return 用户信息
      */
-    LoginUser getLoginUser(String token);
+    LoginModel getLoginUser(String token);
 
     /**
      * 设置用户身份信息
      */
-    void setLoginUser(LoginUser loginUser);
+    void setLoginUser(LoginModel login);
 
     /**
      * delLoginUser
@@ -58,7 +59,7 @@ public interface TokenService {
      *
      * @param loginUser 登录信息
      */
-    void refreshToken(LoginUser loginUser);
+    void refreshToken(LoginModel login);
 
     /**
      * 刷新令牌有效期

+ 32 - 36
zd-common/common-core/src/main/java/com/zd/common/core/security/TokenServiceImpl.java

@@ -1,14 +1,13 @@
 package com.zd.common.core.security;
 
-import com.zd.common.core.redis.RedisService;
+
 import com.zd.common.core.utils.*;
 import com.zd.model.constant.BaseConstants;
 import com.zd.model.constant.CacheConstants;
-import com.zd.model.entity.LoginUser;
+import com.zd.model.entity.LoginModel;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Component;
-
 import javax.servlet.http.HttpServletRequest;
 import java.util.HashMap;
 import java.util.Map;
@@ -25,7 +24,7 @@ public class TokenServiceImpl implements TokenService {
     @Autowired
     private RedisTemplate redisTemplate;
 
-    private static final long EXPIRE_TIME = BaseConstants.TOKEN_EXPIRE * 60;
+    private static final long EXPIRE_TIME = BaseConstants.TOKEN_EXPIRE;
 
     private static final long APP_EXPIRE_TIME = 30;
 
@@ -34,17 +33,17 @@ public class TokenServiceImpl implements TokenService {
     protected static final long MILLIS_SECOND = 1000;
 
     @Override
-    public Map<String, Object> createToken(LoginUser loginUser) {
-        Map<String, Object> map = createCommonToken(loginUser, EXPIRE_TIME);
-        redisTemplate.opsForValue().set(ACCESS_TOKEN + map.get("access_token"), loginUser, EXPIRE_TIME, TimeUnit.SECONDS);
+    public Map<String, Object> createToken(LoginModel login) {
+        Map<String, Object> map = createCommonToken(login, EXPIRE_TIME);
+        redisTemplate.opsForValue().set(ACCESS_TOKEN + map.get("access_token"), login, EXPIRE_TIME, TimeUnit.SECONDS);
         //redisService.setCacheObject(ACCESS_TOKEN + map.get("access_token"), loginUser, EXPIRE_TIME, TimeUnit.SECONDS);
         return map;
     }
 
     @Override
-    public Map<String, Object> createProgramToken(LoginUser loginUser) {
-        Map<String, Object> map = createCommonToken(loginUser, APP_EXPIRE_TIME);
-        redisTemplate.opsForValue().set(ACCESS_TOKEN + map.get("access_token"), loginUser, APP_EXPIRE_TIME, TimeUnit.DAYS);
+    public Map<String, Object> createProgramToken(LoginModel login) {
+        Map<String, Object> map = createCommonToken(login, APP_EXPIRE_TIME);
+        redisTemplate.opsForValue().set(ACCESS_TOKEN + map.get("access_token"), login, APP_EXPIRE_TIME, TimeUnit.DAYS);
         //redisService.setCacheObject(ACCESS_TOKEN + map.get("access_token"), loginUser, APP_EXPIRE_TIME, TimeUnit.DAYS);
         return map;
     }
@@ -52,32 +51,29 @@ public class TokenServiceImpl implements TokenService {
     /**
      * 创建令牌公共方法
      *
-     * @param loginUser
+     * @param login
      * @return
      */
-    private Map<String, Object> createCommonToken(LoginUser loginUser, Long expiresIn) {
+    private Map<String, Object> createCommonToken(LoginModel login, Long expiresIn) {
         // 生成token
         String token = IdUtils.fastUUID();
-        loginUser.setToken(token);
-        loginUser.setUserid(loginUser.getSysUser().getUserId());
-        loginUser.setUsername(loginUser.getSysUser().getUserName());
-        loginUser.setNickName(loginUser.getSysUser().getNickName());
-        loginUser.setIpaddr(IpUtils.getIpAddr(ServletUtils.getRequest()));
-        refreshToken(loginUser);
+        login.setToken(token);
+        login.setIpaddr(IpUtils.getIpAddr(ServletUtils.getRequest()));
+        refreshToken(login);
 
         // 保存或更新用户token
         Map<String, Object> map = new HashMap<>();
         map.put("access_token", token);
         map.put("expires_in", expiresIn);
-        map.put("type", loginUser.getSysUser().getUserType());
-        map.put("nickName", loginUser.getSysUser().getNickName());
-        map.put("user_id", loginUser.getUserid());
-        map.put("username", loginUser.getUsername());
+        map.put("type", login.getUserType());
+        map.put("nickName", login.getNickName());
+        map.put("user_id", login.getUserId());
+        map.put("username", login.getUserName());
         return map;
     }
 
     @Override
-    public LoginUser getLoginUser() {
+    public LoginModel getLoginUser() {
         HttpServletRequest request = ServletUtils.getRequest();
         if (StringUtils.isNull(request)) {
             return null;
@@ -86,7 +82,7 @@ public class TokenServiceImpl implements TokenService {
     }
 
     @Override
-    public LoginUser getLoginUser(HttpServletRequest request) {
+    public LoginModel getLoginUser(HttpServletRequest request) {
         // 获取请求携带的令牌
 
         String token = SecurityUtils.getToken(request);
@@ -94,19 +90,19 @@ public class TokenServiceImpl implements TokenService {
     }
 
     @Override
-    public LoginUser getLoginUser(String token) {
+    public LoginModel getLoginUser(String token) {
         if (StringUtils.isNotEmpty(token)) {
             String userKey = getTokenKey(token);
-            return (LoginUser) redisTemplate.opsForValue().get(userKey);
-            //return redisService.getCacheObject(userKey);
+            return (LoginModel) redisTemplate.opsForValue().get(userKey);
+
         }
         return null;
     }
 
     @Override
-    public void setLoginUser(LoginUser loginUser) {
-        if (StringUtils.isNotNull(loginUser) && StringUtils.isNotEmpty(loginUser.getToken())) {
-            refreshToken(loginUser);
+    public void setLoginUser(LoginModel login) {
+        if (StringUtils.isNotNull(login) && StringUtils.isNotEmpty(login.getToken())) {
+            refreshToken(login);
         }
     }
 
@@ -120,18 +116,18 @@ public class TokenServiceImpl implements TokenService {
     }
 
     @Override
-    public void refreshToken(LoginUser loginUser) {
-        loginUser.setLoginTime(System.currentTimeMillis());
-        loginUser.setExpireTime(loginUser.getLoginTime() + EXPIRE_TIME * MILLIS_SECOND);
+    public void refreshToken(LoginModel login) {
+        login.setLoginTime(System.currentTimeMillis());
+        login.setExpireTime(login.getLoginTime() + EXPIRE_TIME * MILLIS_SECOND);
         // 根据uuid将loginUser缓存
-        String userKey = getTokenKey(loginUser.getToken());
-        redisTemplate.opsForValue().set(userKey, loginUser, EXPIRE_TIME, TimeUnit.SECONDS);
+        String userKey = getTokenKey(login.getToken());
+        redisTemplate.opsForValue().set(userKey, login, EXPIRE_TIME, TimeUnit.SECONDS);
         //redisService.setCacheObject(userKey, loginUser, EXPIRE_TIME, TimeUnit.SECONDS);
     }
 
     @Override
     public void refreshToken(String token) {
-        LoginUser loginUser = getLoginUser(token);
+        LoginModel loginUser = getLoginUser(token);
         if (loginUser != null) {
             loginUser.setLoginTime(System.currentTimeMillis());
             loginUser.setExpireTime(loginUser.getLoginTime() + EXPIRE_TIME * MILLIS_SECOND);

+ 36 - 0
zd-common/common-core/src/main/java/com/zd/common/core/utils/DateUtils.java

@@ -94,6 +94,22 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
     }
 
     /**
+     * 日期路径 即年/月/日 如20180808
+     */
+    public static String dateTimeHHmm() {
+        Date now = new Date();
+        return DateFormatUtils.format(now, "yyyyMMddHHmm");
+    }
+
+    /**
+     * 日期路径 即年/月/日 如20180808
+     */
+    public static String dateTimeHHmmss() {
+        Date now = new Date();
+        return DateFormatUtils.format(now, "yyyyMMddHHmmss");
+    }
+
+    /**
      * 日期型字符串转化为日期 格式
      */
     public static Date parseDate(Object str) {
@@ -173,4 +189,24 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
         System.out.println("时间==" + allDate);
         return allDate;
     }
+
+    /**
+     * 获取系统数据-获取取10位
+     * @return
+     */
+    public static long getCurrentTimeMillisRound() {
+        //long l = 1684486014096L;
+        long l =  System.currentTimeMillis();
+        System.out.println("l = "+l);
+        long ret = l/100;
+        if ((l%100) > 95) {
+            return ret * 100 + 100;
+        }
+        return ret * 100;
+    }
+
+    public static void main(String[] args) {
+        long ss = getCurrentTimeMillisRound();
+        System.out.println("s = "+ss);
+    }
 }

+ 15 - 23
zd-common/common-core/src/main/java/com/zd/common/core/utils/SaveUtil.java

@@ -3,6 +3,7 @@ package com.zd.common.core.utils;
 import com.zd.common.core.security.TokenService;
 import com.zd.model.domain.BaseBean;
 import com.zd.model.entity.BaseEntity;
+import com.zd.model.entity.LoginModel;
 import com.zd.model.entity.LoginUser;
 import com.zd.model.entity.SysUser;
 
@@ -28,16 +29,12 @@ public class SaveUtil {
         }
 
         //设置创建人
-        o.setCreateBy(SecurityUtils.getUsername());
+        o.setCreateBy(SecurityUtils.getNickName());
         o.setUserId(SecurityUtils.getUserId());
-        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser();
-        if (null == loginUser) {
-            return;
-        }
-        SysUser sysUser = loginUser.getSysUser();
-        if (sysUser != null && sysUser.getDept() != null) {
-            o.setDeptId(sysUser.getDept().getDeptId());
-            o.setDeptName(sysUser.getDept().getDeptName());
+        LoginModel loginUser = SpringUtils.getBean(TokenService.class).getLoginUser();
+        if (loginUser != null && loginUser.getDeptId() != null) {
+            o.setDeptId(loginUser.getDeptId());
+            o.setDeptName(loginUser.getDeptName());
         }
     }
 
@@ -52,26 +49,21 @@ public class SaveUtil {
         //设置创建人
         o.setCreateBy(SecurityUtils.getUsername());
         o.setUserId(SecurityUtils.getUserId());
-        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser();
-        if (null == loginUser) {
-            return;
-        }
-        SysUser sysUser = loginUser.getSysUser();
-        if (sysUser != null && sysUser.getDept() != null) {
-            o.setDeptId(sysUser.getDept().getDeptId());
+        LoginModel loginUser = SpringUtils.getBean(TokenService.class).getLoginUser();
+        if (loginUser != null && loginUser.getDeptId() != null) {
+            o.setDeptId(loginUser.getDeptId());
         }
     }
 
-    public static void setCommonAttr(BaseEntity o, LoginUser loginUser) {
-        SysUser sysUser = loginUser.getSysUser();
+    public static void setCommonAttr(BaseEntity o, LoginModel loginUser) {
         //设置创建时间
         o.setCreateTime(DateUtils.getNowDate());
         //设置创建人
-        o.setCreateBy(sysUser.getNickName());
-        o.setUserId(sysUser.getUserId());
-        if (sysUser.getDept() != null) {
-            o.setDeptId(sysUser.getDept().getDeptId());
-            o.setDeptName(sysUser.getDept().getDeptName());
+        o.setCreateBy(loginUser.getNickName());
+        o.setUserId(loginUser.getUserId());
+        if (loginUser.getDeptId() != null) {
+            o.setDeptId(loginUser.getDeptId());
+            o.setDeptName(loginUser.getDeptName());
         }
     }
 }

+ 1 - 1
zd-common/common-core/src/main/java/com/zd/common/core/utils/SecurityUtils.java

@@ -33,7 +33,7 @@ public class SecurityUtils {
         if(null==httpServletRequest){
             return "";
         }
-        String username = ServletUtils.getRequest().getHeader(SecurityConstants.DETAILS_USERNAME);
+        String username = ServletUtils.getRequest().getHeader(SecurityConstants.DETAILS_USER_NICKNAME);
         if(StringUtils.isBlank(username))return "";
         return ServletUtils.urlDecode(username);
     }

+ 0 - 1
zd-common/common-core/src/main/java/com/zd/common/core/utils/file/ImageUtils.java

@@ -1,6 +1,5 @@
 package com.zd.common.core.utils.file;
 
-
 import org.apache.commons.io.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

+ 23 - 16
zd-common/common-core/src/main/java/com/zd/common/core/web/controller/AbstractController.java

@@ -1,14 +1,20 @@
 package com.zd.common.core.web.controller;
 
+import cn.hutool.core.util.URLUtil;
+import com.github.pagehelper.PageInfo;
 import com.zd.common.core.utils.ParamCheckUtils;
+import com.zd.model.constant.HttpStatus;
 import com.zd.model.constant.SecurityConstants;
+import com.zd.model.page.TableDataInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.util.StringUtils;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * <p>抽象控制类</p>
@@ -17,7 +23,7 @@ import javax.servlet.http.HttpServletResponse;
  * @date: 2020/11/3
  * @since:
  */
-public abstract class AbstractController {
+public abstract class AbstractController<T> {
 
     protected final Logger log = LoggerFactory.getLogger(this.getClass());
 
@@ -44,18 +50,6 @@ public abstract class AbstractController {
     }
 
     /**
-     * 获取用户登录信息
-     * @return
-     */
-    /*protected LoginUser getUserLoginModel() {
-        String modelStr = getRequest().getHeader(BaseConstant.LOGIN_MODEL);
-        if(!StringUtils.isEmpty(modelStr)) {
-            return JSONObject.parseObject(modelStr, LoginModel.class);
-        }
-        return null;
-    }*/
-
-    /**
      * 	获取当前登录用户的用户id
      */
     protected Long getCurrentUserId() {
@@ -72,11 +66,24 @@ public abstract class AbstractController {
      */
     protected String getCurrentUserName() {
         // 设置用户信息到请求
-        String userName = getRequest().getHeader(SecurityConstants.DETAILS_USERNAME);
-        if(StringUtils.isEmpty(userName)) {
+        String nickName = getRequest().getHeader(SecurityConstants.DETAILS_USER_NICKNAME);
+        if(StringUtils.isEmpty(nickName)) {
             return null;
         }
-        return userName;
+        String nickname = URLUtil.decode(nickName, "UTF-8");
+        return nickname;
     }
 
+    /**
+     * 响应请求分页数据
+     */
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    protected TableDataInfo<T> getDataTable(List <? extends T> list) {
+        TableDataInfo<T> rspData = new TableDataInfo();
+        rspData.setCode(HttpStatus.SUCCESS);
+        rspData.setRows(list);
+        rspData.setMsg("查询成功");
+        rspData.setTotal(new PageInfo(list).getTotal());
+        return rspData;
+    }
 }

+ 2 - 2
zd-common/common-core/src/main/resources/code-generator.properties

@@ -1,6 +1,6 @@
 ##数据库信息
-mysql-url=jdbc:mysql://192.168.1.43:13306/cloud_data_v2?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
+mysql-url=jdbc:mysql://192.168.1.43:13306/cloud_data_v2_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=Asia/Shanghai
 mysql-user=root
 mysql-pwd=root123456
 #作者
-author=linft
+author=cyl

+ 0 - 45
zd-common/common-swagger/src/main/java/com/zd/common/swagger/config/AppListener.java

@@ -1,45 +0,0 @@
-package com.zd.common.swagger.config;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.context.event.ApplicationStartedEvent;
-import org.springframework.context.ApplicationListener;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.annotation.Order;
-import org.springframework.core.env.Environment;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-
-/**
- * @Author: zhoupan
- * @Date: 2021/09/30/10:13
- * @Description:
- */
-@Configuration
-@Order(-108)
-public class AppListener implements ApplicationListener<ApplicationStartedEvent> {
-    static Logger logger= LoggerFactory.getLogger(AppListener.class);
-    @Override
-    public void onApplicationEvent(ApplicationStartedEvent applicationStartedEvent)  {
-
-        Environment env = applicationStartedEvent.getApplicationContext().getEnvironment();
-        try {
-            logger.info("\n----------------------------------------------------------\n\t" +
-                            "Application '{}' is running! Access URLs:\n\t" +
-                            "Local: \t\thttp://localhost:{}\n\t" +
-                            "External: \thttp://{}:{}\n\t"+
-                            "接口文档地址: \thttp://{}:{}/doc.html\n\t"+
-                            "----------------------------------------------------------",
-                    env.getProperty("spring.application.name"),
-                    env.getProperty("server.port"),
-                    InetAddress.getLocalHost().getHostAddress(),
-                    env.getProperty("server.port"),
-                    InetAddress.getLocalHost().getHostAddress(),
-                    env.getProperty("server.port")
-            );
-        } catch (UnknownHostException e) {
-            e.printStackTrace();
-        }
-    }
-}

+ 4 - 15
zd-common/common-swagger/src/main/java/com/zd/common/swagger/config/Knife4jConfiguration.java

@@ -5,14 +5,12 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import springfox.documentation.builders.*;
-import springfox.documentation.schema.ModelRef;
 import springfox.documentation.service.*;
 import springfox.documentation.spi.DocumentationType;
 import springfox.documentation.spring.web.plugins.Docket;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
 import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 
@@ -25,21 +23,12 @@ import java.util.List;
 @EnableKnife4j
 @EnableSwagger2
 public class Knife4jConfiguration {
-    /**
-     * 作者
-     */
-    public static class Author {
-
-        public static final String CYL = "柴云龙";
-        public static final String GS = "高升";
-        public static final String ZP = "周攀";
-    }
 
     /**
      * 借用一下这个类进行配置
      */
     @Autowired
-    SwaggerProperties swaggerProperties;
+    private SwaggerProperties swaggerProperties;
 
     @Bean
     public Docket createRestApi() {
@@ -51,7 +40,7 @@ public class Knife4jConfiguration {
                 .apis(RequestHandlerSelectors.basePackage(swaggerProperties.getBasePackage()))
                 .paths(PathSelectors.any())
                 .build()
-                .securitySchemes(Arrays.asList(securitySchemes()))
+                .securitySchemes(Collections.singletonList(securitySchemes()))
                 .globalRequestParameters(this.getParameterList());
     }
 
@@ -62,7 +51,7 @@ public class Knife4jConfiguration {
     private ApiInfo apiInfo() {
         return new ApiInfoBuilder()
                 .description(swaggerProperties.getDescription())
-                .contact(new Contact("ZD", "", ""))
+                .contact(new Contact(swaggerProperties.getContact(), swaggerProperties.getUrl(), swaggerProperties.getEmail()))
                 .version(swaggerProperties.getVersion())
                 .title(swaggerProperties.getTitle())
                 .build();

+ 17 - 131
zd-common/common-swagger/src/main/java/com/zd/common/swagger/config/SwaggerProperties.java

@@ -3,7 +3,6 @@ package com.zd.common.swagger.config;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
-
 import java.util.ArrayList;
 import java.util.List;
 
@@ -44,9 +43,15 @@ public class SwaggerProperties {
     /**
      * 版本
      **/
-    private String version = "V0.1";
+    private String version = "V2.0";
 
     /**
+     * 联系人
+     */
+    private String contact = "忠德技术团队";
+    private String url = "";
+    private String email = "";
+    /**
      * 许可证
      **/
     private String license = "";
@@ -66,15 +71,6 @@ public class SwaggerProperties {
      **/
     private String host = "";
 
-    /**
-     * 联系人信息
-     */
-    private Contact contact = new Contact();
-
-    /**
-     * 全局统一鉴权配置
-     **/
-    private Authorization authorization = new Authorization();
 
     public Boolean getEnabled() {
         return enabled;
@@ -164,137 +160,27 @@ public class SwaggerProperties {
         this.host = host;
     }
 
-    public Contact getContact() {
+    public String getContact() {
         return contact;
     }
 
-    public void setContact(Contact contact) {
+    public void setContact(String contact) {
         this.contact = contact;
     }
 
-    public Authorization getAuthorization() {
-        return authorization;
-    }
-
-    public void setAuthorization(Authorization authorization) {
-        this.authorization = authorization;
+    public String getUrl() {
+        return url;
     }
 
-    public static class Contact {
-        /**
-         * 联系人
-         **/
-        private String name = "";
-        /**
-         * 联系人url
-         **/
-        private String url = "";
-        /**
-         * 联系人email
-         **/
-        private String email = "";
-
-        public String getName() {
-            return name;
-        }
-
-        public void setName(String name) {
-            this.name = name;
-        }
-
-        public String getUrl() {
-            return url;
-        }
-
-        public void setUrl(String url) {
-            this.url = url;
-        }
-
-        public String getEmail() {
-            return email;
-        }
-
-        public void setEmail(String email) {
-            this.email = email;
-        }
+    public void setUrl(String url) {
+        this.url = url;
     }
 
-    public static class Authorization {
-        /**
-         * 鉴权策略ID,需要和SecurityReferences ID保持一致
-         */
-        private String name = "";
-
-        /**
-         * 需要开启鉴权URL的正则
-         */
-        private String authRegex = "^.*$";
-
-        /**
-         * 鉴权作用域列表
-         */
-        private List<AuthorizationScope> authorizationScopeList = new ArrayList<>();
-
-        private List<String> tokenUrlList = new ArrayList<>();
-
-        public String getName() {
-            return name;
-        }
-
-        public void setName(String name) {
-            this.name = name;
-        }
-
-        public String getAuthRegex() {
-            return authRegex;
-        }
-
-        public void setAuthRegex(String authRegex) {
-            this.authRegex = authRegex;
-        }
-
-        public List<AuthorizationScope> getAuthorizationScopeList() {
-            return authorizationScopeList;
-        }
-
-        public void setAuthorizationScopeList(List<AuthorizationScope> authorizationScopeList) {
-            this.authorizationScopeList = authorizationScopeList;
-        }
-
-        public List<String> getTokenUrlList() {
-            return tokenUrlList;
-        }
-
-        public void setTokenUrlList(List<String> tokenUrlList) {
-            this.tokenUrlList = tokenUrlList;
-        }
+    public String getEmail() {
+        return email;
     }
 
-    public static class AuthorizationScope {
-        /**
-         * 作用域名称
-         */
-        private String scope = "";
-
-        /**
-         * 作用域描述
-         */
-        private String description = "";
-
-        public String getScope() {
-            return scope;
-        }
-
-        public void setScope(String scope) {
-            this.scope = scope;
-        }
-
-        public String getDescription() {
-            return description;
-        }
-
-        public void setDescription(String description) {
-            this.description = description;
-        }
+    public void setEmail(String email) {
+        this.email = email;
     }
 }

+ 1 - 0
zd-gateway/src/main/java/com/zd/gateway/config/KaptchaTextCreator.java

@@ -60,4 +60,5 @@ public class KaptchaTextCreator extends DefaultTextCreator {
         suChinese.append("=?@" + result);
         return suChinese.toString();
     }
+
 }

+ 9 - 13
zd-gateway/src/main/java/com/zd/gateway/filter/AuthFilter.java

@@ -1,15 +1,14 @@
 package com.zd.gateway.filter;
 
 import com.alibaba.fastjson.JSONObject;
-import com.zd.common.core.redis.RedisService;
 import com.zd.common.core.utils.SecurityUtils;
 import com.zd.common.core.utils.ServletUtils;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.gateway.config.properties.IgnoreWhiteProperties;
-import com.zd.model.constant.BaseConstants;
 import com.zd.model.constant.CacheConstants;
 import com.zd.model.constant.HttpStatus;
 import com.zd.model.constant.SecurityConstants;
+import com.zd.model.entity.LoginModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,7 +20,6 @@ import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.stereotype.Component;
 import org.springframework.web.server.ServerWebExchange;
 import reactor.core.publisher.Mono;
-
 import javax.annotation.Resource;
 
 /**
@@ -31,6 +29,7 @@ import javax.annotation.Resource;
  */
 @Component
 public class AuthFilter implements GlobalFilter, Ordered {
+
     private static final Logger log = LoggerFactory.getLogger(AuthFilter.class);
 
     // 排除过滤的 uri 地址,nacos自行添加
@@ -54,19 +53,16 @@ public class AuthFilter implements GlobalFilter, Ordered {
         if (StringUtils.isEmpty(token)) {
             return unauthorizedResponse(exchange, "令牌不能为空");
         }
-        String userStr = sops.get(getTokenKey(token));
-        if (StringUtils.isEmpty(userStr)) {
+
+        String str = sops.get(getTokenKey(token));
+        LoginModel login = JSONObject.parseObject(str, LoginModel.class);
+        if (login == null) {
             return unauthorizedResponse(exchange, "登录已过期");
         }
-        JSONObject cacheObj = JSONObject.parseObject(userStr);
-        String userid = cacheObj.getString("userid");
-        String username = cacheObj.getString("username");
-        if (StringUtils.isEmpty(userid) || StringUtils.isEmpty(username)) {
-            return unauthorizedResponse(exchange, "账号认证失败");
-        }
         // 设置用户信息到请求
-        addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
-        addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username);
+        addHeader(mutate, SecurityConstants.DETAILS_USER_ID, login.getUserId());
+        addHeader(mutate, SecurityConstants.DETAILS_USERNAME, login.getUserName());
+        addHeader(mutate, SecurityConstants.DETAILS_USER_NICKNAME, login.getNickName());
         // 内部请求来源参数清除
         removeHeader(mutate, SecurityConstants.FROM_SOURCE);
         return chain.filter(exchange.mutate().request(mutate.build()).build());

+ 2 - 2
zd-model/src/main/java/com/zd/model/constant/BaseConstants.java

@@ -114,9 +114,9 @@ public interface BaseConstants {
     long CAPTCHA_EXPIRATION = 2;
 
     /**
-     * 令牌有效期(分钟)
+     * 令牌有效期: 3小时
      */
-    long TOKEN_EXPIRE = 720;
+    long TOKEN_EXPIRE = 3 * 60 * 60;
 
     /**
      * 参数管理 cache key

+ 13 - 2
zd-model/src/main/java/com/zd/model/constant/CacheConstants.java

@@ -6,15 +6,26 @@ package com.zd.model.constant;
  * @author zd
  */
 public interface CacheConstants {
+
     /**
      * 权限缓存前缀
      */
     String LOGIN_TOKEN_KEY = "login_tokens:";
 
     /**
+     * 权限部門前缀
+     */
+    String PERMISSION_DEPT_USER = "permission_dept:";
+
+    /**
+     * 自定义数据权限角色
+     */
+    String PERMISSION_ROLE_CUSTOM = "permission_role:";
+
+    /**
      * 应急疏散线路前缀
      */
-    public static final String  EVACUATION = "evacuation:";
+    String  EVACUATION = "evacuation:";
 
     /**
      * 传感器缓存前缀
@@ -47,7 +58,7 @@ public interface CacheConstants {
     /**
      * 心跳
      */
-    public static final String  HEARTBEAT = "heartbeat:";
+    String  HEARTBEAT = "heartbeat:";
 
     /**
      * 学习一体机用户登录状态前缀

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


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff