瀏覽代碼

Merge branch 'dev' of http://192.168.1.43:3000/v2/zd-parents into dev

chaiyunlong 2 年之前
父節點
當前提交
e19d773ab5
共有 56 個文件被更改,包括 1167 次插入99 次删除
  1. 11 1
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/FaceCompare.java
  2. 9 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/RemoteFaceService.java
  3. 6 0
      zd-api/zd-algorithm-api/src/main/java/com/zd/algorithm/api/face/feign/fallback/RemoteFaceFallbackFactory.java
  4. 14 0
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/entity/LabSubjectControllerVO.java
  5. 68 0
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/RemoteDutyService.java
  6. 12 6
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/RemoteStudentsService.java
  7. 36 0
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/fallback/RemoteDutyFailback.java
  8. 13 0
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/fallback/RemoteStudentsFallbackFactory.java
  9. 107 0
      zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/vo/XxpUserAuthVo.java
  10. 54 18
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/face/controller/FaceApi.java
  11. 6 3
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/mapper/HardwareRfidMapper.java
  12. 9 4
      zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/service/impl/HardwareRfidServiceImpl.java
  13. 13 0
      zd-modules/zd-algorithm/src/main/resources/mapper/rfid/HardwareRfidMapper.xml
  14. 153 6
      zd-modules/zd-base/src/main/java/com/zd/base/app/controller/LabBoardApi.java
  15. 33 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabSecurityApplyController.java
  16. 20 1
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabSecuritySubjectmaterialController.java
  17. 10 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabStudentsInfoController.java
  18. 60 28
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabXxpCardInfoController.java
  19. 3 3
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabXxpInspectionController.java
  20. 60 4
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabXxpUserAuthController.java
  21. 9 6
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/device/DeviceRemoteController.java
  22. 20 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabSubject.java
  23. 4 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/XxpCardInfo.java
  24. 11 1
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/XxpUserAuth.java
  25. 12 2
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabSecurityMaterialDataVO.java
  26. 12 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabSecuritySubjectmaterialVO.java
  27. 23 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabSecurityApplyMapper.java
  28. 7 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabStudentsInfoMapper.java
  29. 7 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabSubjectMapper.java
  30. 25 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/XxpCardInfoMapper.java
  31. 16 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/XxpUserAuthMapper.java
  32. 23 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabSecurityApplyService.java
  33. 8 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabStudentsInfoService.java
  34. 10 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabSubjectService.java
  35. 23 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/IXxpCardInfoService.java
  36. 28 1
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/IXxpUserAuthService.java
  37. 33 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSecurityApplyServiceImpl.java
  38. 17 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSecuritySubjectmaterialServiceImpl.java
  39. 10 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabStudentsInfoServiceImpl.java
  40. 4 3
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSubjectManagerService.java
  41. 5 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSubjectServiceImpl.java
  42. 32 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/XxpCardInfoServiceImpl.java
  43. 22 0
      zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/XxpUserAuthServiceImpl.java
  44. 19 2
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSecurityApplyMapper.xml
  45. 5 0
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabStudentsInfoMapper.xml
  46. 1 1
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSubjectLayoutMapper.xml
  47. 8 3
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSubjectMapper.xml
  48. 19 0
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/XxpCardInfoMapper.xml
  49. 1 1
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/XxpClassifyDetailMapper.xml
  50. 3 1
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/XxpClassifyMapper.xml
  51. 13 4
      zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/XxpUserAuthMapper.xml
  52. 12 0
      zd-modules/zd-modules-system/src/main/java/com/zd/system/controller/SysUserController.java
  53. 7 0
      zd-modules/zd-modules-system/src/main/java/com/zd/system/mapper/SysUserMapper.java
  54. 7 0
      zd-modules/zd-modules-system/src/main/java/com/zd/system/service/ISysUserService.java
  55. 10 0
      zd-modules/zd-modules-system/src/main/java/com/zd/system/service/impl/SysUserServiceImpl.java
  56. 4 0
      zd-modules/zd-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

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

@@ -8,11 +8,13 @@ import io.swagger.annotations.ApiModelProperty;
  * @Date: 2021/10/12/17:54
  * @Description:
  */
-@ApiModel("人脸对比提交参数")
+@ApiModel("提交参数")
 public class FaceCompare {
     @ApiModelProperty("userId")
     private Long userId;
 
+    @ApiModelProperty("实验室ID")
+    private Long labId;
 
     @ApiModelProperty("特征码")
     private byte[] data;
@@ -33,4 +35,12 @@ public class FaceCompare {
     public void setData(byte[] data) {
         this.data = data;
     }
+
+    public Long getLabId() {
+        return labId;
+    }
+
+    public void setLabId(Long labId) {
+        this.labId = labId;
+    }
 }

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

@@ -3,6 +3,7 @@ package com.zd.algorithm.api.face.feign;
 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 org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -33,4 +34,12 @@ public interface RemoteFaceService {
      */
     @PostMapping(value = "/faceApi/compare")
     public R compare(@RequestBody FaceCompare faceCompare);
+
+    /**
+     * 多人人脸对比
+     * @param faceCompare
+     * @return
+     */
+    @PostMapping("/faceApi/multiCompare")
+    public ResultData multiFaceDetection(@RequestBody FaceCompare faceCompare);
 }

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

@@ -3,6 +3,7 @@ package com.zd.algorithm.api.face.feign.fallback;
 import com.zd.algorithm.api.face.feign.FaceCompare;
 import com.zd.algorithm.api.face.feign.RemoteFaceService;
 import com.zd.model.domain.R;
+import com.zd.model.domain.ResultData;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -38,6 +39,11 @@ public class RemoteFaceFallbackFactory implements FallbackFactory<RemoteFaceServ
             public R compare(FaceCompare faceCompare) {
                 return R.fail("人脸对比服务调用失败:" + throwable.getMessage());
             }
+
+            @Override
+            public ResultData multiFaceDetection(FaceCompare faceCompare) {
+                return ResultData.fail("多人脸对比服务调用失败:" + throwable.getMessage());
+            }
         };
     }
 }

+ 14 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/entity/LabSubjectControllerVO.java

@@ -69,6 +69,12 @@ public class LabSubjectControllerVO extends LabSubjectEntity {
 
     @ApiModelProperty("实验室详情")
     private String details;
+
+    /***
+     * 关联的硬件 1海康 2电子信息牌
+     */
+    private Integer hardwareType;
+
     /**
      * 实验室类型ID
      */
@@ -439,4 +445,12 @@ public class LabSubjectControllerVO extends LabSubjectEntity {
     public void setDetails(String details) {
         this.details = details;
     }
+
+    public Integer getHardwareType() {
+        return hardwareType;
+    }
+
+    public void setHardwareType(Integer hardwareType) {
+        this.hardwareType = hardwareType;
+    }
 }

+ 68 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/RemoteDutyService.java

@@ -1,6 +1,7 @@
 package com.zd.laboratory.api.feign;
 
 import com.zd.laboratory.api.feign.fallback.RemoteDutyFailback;
+import com.zd.laboratory.api.vo.XxpUserAuthVo;
 import com.zd.model.constant.ApplicationConstants;
 import com.zd.model.domain.ResultData;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -109,4 +110,71 @@ public interface RemoteDutyService {
      */
     @RequestMapping(value = "/subject/getSubjectName/{id}")
     ResultData getSubjectName(@PathVariable("id") Long id);
+
+
+
+    /**
+     * 根据一体机编号查询实验室编号
+     * @param num
+     * @return
+     */
+    @RequestMapping("/XxpCardInfo/XxpCardInfoByCard/{num}")
+    ResultData XxpCardInfoByCard(@PathVariable("num") String num);
+
+
+    /**
+     * 电子信息牌获取准入人员的指纹信息列表
+     * @param labId
+     * @return
+     */
+    @RequestMapping("/apply/app/securityFingerList")
+    ResultData securityFingerList(@RequestParam("labId") Long labId);
+
+    /**
+     * 电子信息牌获取准入人员的指纹信息列表
+     * @param labId
+     * @return
+     */
+    @RequestMapping("/apply/app/securityNumList")
+    ResultData securityNumList(@RequestParam("labId") Long labId);
+
+
+    /**
+     * 指纹录入
+     * num 一体机编号
+     * @param xxpUserAuthVo
+     * @return
+     */
+    @RequestMapping("/XxpUserAuth/addUserAuth")
+    ResultData addUserAuth(@RequestBody XxpUserAuthVo xxpUserAuthVo);
+
+
+    /**
+     * 根据用户id查询指纹信息
+     * @param userId
+     * @return
+     */
+    @RequestMapping("/XxpUserAuth/getFingerByUserId")
+    ResultData getFingerByUserId(@RequestParam("userId") Long userId);
+
+    /**
+     * 根据用户id查询指纹信息
+     * @param id
+     * @return
+     */
+    @RequestMapping("/XxpUserAuth/deleteFingerById")
+    ResultData deleteFingerById(@RequestParam("id") Long id);
+
+
+    /**
+     * 验证密码是否正确
+     *
+     * @param cardNum 电子班牌号码
+     * @param pwd 用户密码
+     * @param subjectId 实验室id
+     * @param userId 用户id
+     * @return
+     */
+    @RequestMapping("/XxpCardInfo/pwdValidate")
+    ResultData pwdValidate(@RequestParam("cardNum") String cardNum,@RequestParam("pwd") String pwd,@RequestParam("subjectId") Long subjectId,@RequestParam("userId") Long userId);
 }

+ 12 - 6
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/RemoteStudentsService.java

@@ -4,14 +4,14 @@ import com.zd.laboratory.api.entity.LabStudentsInfo;
 import com.zd.laboratory.api.feign.fallback.RemoteStudentsFallbackFactory;
 import com.zd.model.constant.ApplicationConstants;
 import com.zd.model.domain.R;
+import com.zd.model.domain.ResultData;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestPart;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.List;
+
 /**
  * 文件服务
  *
@@ -25,7 +25,7 @@ public interface RemoteStudentsService {
      * @return 结果
      */
     @GetMapping(value = "/studentinfo/{joinStudentsId}")
-    public R<LabStudentsInfo> getInfo(@PathVariable("joinStudentsId") Long id);
+    R<LabStudentsInfo> getInfo(@PathVariable("joinStudentsId") Long id);
 
     /**
      * 提交学生卡
@@ -33,5 +33,11 @@ public interface RemoteStudentsService {
      * @return
      */
     @PostMapping (value = "/studentinfo/commit/crad",consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
-    public R commitCard(@RequestPart("file") MultipartFile file);
+    R commitCard(@RequestPart("file") MultipartFile file);
+
+    @GetMapping(value = "/studentinfo/getFaceBySecuritySubjectId")
+    ResultData<List<LabStudentsInfo>> getFaceBySecuritySubjectId(@RequestParam("subjectId") Long subjectId);
+
+    @GetMapping("/user/getUserInfoByUserId")
+    public ResultData getUserInfoByUserId(@RequestParam("userId") Long userId);
 }

+ 36 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/fallback/RemoteDutyFailback.java

@@ -1,6 +1,7 @@
 package com.zd.laboratory.api.feign.fallback;
 
 import com.zd.laboratory.api.feign.RemoteDutyService;
+import com.zd.laboratory.api.vo.XxpUserAuthVo;
 import com.zd.model.domain.ResultData;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -79,6 +80,41 @@ public class RemoteDutyFailback implements FallbackFactory<RemoteDutyService> {
             public ResultData getSubjectName(Long id) {
                 return ResultData.fail("获取实验室名称失败:" + cause.getMessage());
             }
+
+            @Override
+            public ResultData XxpCardInfoByCard(String num) {
+                return ResultData.fail("根据电子信息牌编号获取实验室失败:" + cause.getMessage());
+            }
+
+            @Override
+            public ResultData securityFingerList(Long labId) {
+                return ResultData.fail("电子信息牌获取准入人员的指纹信息列表:" + cause.getMessage());
+            }
+
+            @Override
+            public ResultData securityNumList(Long labId) {
+                return ResultData.fail("电子信息牌获取准入人员的指纹信息列表:" + cause.getMessage());
+            }
+
+            @Override
+            public ResultData addUserAuth(XxpUserAuthVo xxpUserAuthVo) {
+                return ResultData.fail("指纹录入失败:" + cause.getMessage());
+            }
+
+            @Override
+            public ResultData getFingerByUserId(Long userId) {
+                return ResultData.fail("根据用户获取指纹列表失败:" + cause.getMessage());
+             }
+
+            @Override
+            public ResultData deleteFingerById(Long id) {
+                return ResultData.fail("删除指纹失败:" + cause.getMessage());
+            }
+
+            @Override
+            public ResultData pwdValidate(String cardNum, String pwd, Long subjectId, Long userId) {
+                return ResultData.fail("密码对比失败:" + cause.getMessage());
+            }
         };
     }
 }

+ 13 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/feign/fallback/RemoteStudentsFallbackFactory.java

@@ -3,6 +3,7 @@ package com.zd.laboratory.api.feign.fallback;
 import com.zd.laboratory.api.entity.LabStudentsInfo;
 import com.zd.laboratory.api.feign.RemoteStudentsService;
 import com.zd.model.domain.R;
+import com.zd.model.domain.ResultData;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -10,6 +11,8 @@ import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.List;
+
 /**
  * 文件服务降级处理
  *
@@ -31,6 +34,16 @@ public class RemoteStudentsFallbackFactory implements FallbackFactory<RemoteStud
             public R commitCard(MultipartFile file) {
                 return R.fail("学生卡上传调用失败:" + throwable.getMessage());
             }
+
+            @Override
+            public ResultData<List<LabStudentsInfo>> getFaceBySecuritySubjectId(Long subjectId) {
+                return ResultData.fail("根据实验室获取用户人脸信息失败"+throwable.getMessage());
+            }
+
+            @Override
+            public ResultData getUserInfoByUserId(Long userId) {
+                return ResultData.fail("获取用户基本信息失败"+throwable.getMessage());
+            }
         };
     }
 }

+ 107 - 0
zd-api/zd-laboratory-api/src/main/java/com/zd/laboratory/api/vo/XxpUserAuthVo.java

@@ -0,0 +1,107 @@
+package com.zd.laboratory.api.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.zd.model.entity.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 信息牌人员权限表 对象 xxp_user_auth
+ *
+ * @author xxf
+ * @date 2023-03-22
+ */
+@ApiModel("信息牌人员权限")
+public class XxpUserAuthVo {
+    /**
+     * 人员id
+     */
+    @ApiModelProperty(value = "人员id", required = true)
+    private Long userId;
+
+    /**
+     * 人员姓名
+     */
+    @ApiModelProperty(value = "人员姓名", required = true)
+    private String userName;
+
+    /**
+     * 设备编号
+     */
+    @ApiModelProperty(value = "设备编号", required = true)
+    private String num;
+
+    /**
+     * 人员类型
+     */
+    @ApiModelProperty(value = "人员类型", required = true)
+    private String userType;
+
+    /**
+     * 指纹
+     */
+    @ApiModelProperty(value = "指纹 ", required = true)
+    private String finger;
+
+    /**
+     * 指纹位置
+     */
+    @ApiModelProperty(value = "指纹位置 ", required = true)
+    private String fingerKey;
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getNum() {
+        return num;
+    }
+
+    public void setNum(String num) {
+        this.num = num;
+    }
+
+    public String getUserType() {
+        return userType;
+    }
+
+    public void setUserType(String userType) {
+        this.userType = userType;
+    }
+
+    public String getFinger() {
+        return finger;
+    }
+
+    public void setFinger(String finger) {
+        this.finger = finger;
+    }
+
+    public String getFingerKey() {
+        return fingerKey;
+    }
+
+    public void setFingerKey(String fingerKey) {
+        this.fingerKey = fingerKey;
+    }
+}
+
+
+
+
+

+ 54 - 18
zd-modules/zd-algorithm/src/main/java/com/zd/alg/face/controller/FaceApi.java

@@ -4,18 +4,18 @@ import com.arcsoft.face.FaceFeature;
 import com.arcsoft.face.FaceInfo;
 import com.arcsoft.face.toolkit.ImageInfo;
 import com.github.xiaoymin.knife4j.annotations.ApiSupport;
-import com.zd.alg.face.handle.FaceEngineFactory;
 import com.zd.alg.face.service.FaceService;
 import com.zd.alg.face.utils.FileUtil;
 import com.zd.algorithm.api.face.feign.FaceCompare;
 import com.zd.common.swagger.config.Knife4jConfiguration;
 import com.zd.laboratory.api.entity.LabStudentsInfo;
 import com.zd.laboratory.api.feign.RemoteStudentsService;
+import com.zd.model.constant.HttpStatus;
 import com.zd.model.domain.R;
 import com.zd.model.domain.ResultData;
+import com.zd.model.entity.SysUser;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import lombok.extern.flogger.Flogger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,6 +24,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import java.io.*;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * @Author: zhoupan
@@ -50,13 +51,12 @@ public class FaceApi {
     @PostMapping("/faceFeature")
     public ResultData faceFeature(@RequestParam("file") MultipartFile file) throws IOException {
         ImageInfo imageInfo;
-        File file1=null;
+        File file1 = null;
         try {
-            file1= FileUtil.multipartFileToFile(file);
+            file1 = FileUtil.multipartFileToFile(file);
             imageInfo = faceService.getImageInfo(file1);
         } finally {
-            if(file1!=null)
-            {
+            if (file1 != null) {
                 file1.delete();
             }
         }
@@ -64,30 +64,69 @@ public class FaceApi {
         FaceFeature faceFeature = faceService.faceFeature(imageInfo, faceInfos);
         return ResultData.success(faceFeature.getFeatureData());
     }
+
     /**
      * 人脸比较
+     *
      * @return
      */
     @ApiOperation("人脸比较")
     @PostMapping("/compare")
-    public ResultData faceDetection(@RequestBody FaceCompare faceCompare)
-    {
+    public ResultData faceDetection(@RequestBody FaceCompare faceCompare) {
         logger.info("====人脸比较====");
         R<LabStudentsInfo> info = remoteStudentsService.getInfo(faceCompare.getUserId());
-        if(info.getCode()==200&&info.getData()!=null)
-        {
+        if (info.getCode() == 200 && info.getData() != null) {
             logger.info("====人脸data组装====");
             FaceFeature target = new FaceFeature(info.getData().getFaceFeature());
             FaceFeature source = new FaceFeature(faceCompare.getData());
             Boolean compore = faceService.compore(target, source);
-            logger.info("====compore===="+compore);
-            return ResultData.result(compore,()->"人脸对比不符!");
-        }else
-        {
-            return ResultData.fail("未获取到对比数据!:"+info.getMsg());
+            logger.info("====compore====" + compore);
+            return ResultData.result(compore, () -> "人脸对比不符!");
+        } else {
+            return ResultData.fail("未获取到对比数据!:" + info.getMsg());
+        }
+    }
+
+
+    /**
+     * 人脸比较
+     *
+     * @return
+     */
+    @ApiOperation("人脸比较")
+    @PostMapping("/multiCompare")
+    public ResultData multiFaceDetection(@RequestBody FaceCompare faceCompare) {
+        logger.info("====人脸比较====");
+        Long userId=null;
+        ResultData<List<LabStudentsInfo>> infoList = remoteStudentsService.getFaceBySecuritySubjectId(faceCompare.getLabId());
+        if (infoList.getCode() == 200 && infoList.getData() != null) {
+            logger.info("====人脸data组装====");
+            for(LabStudentsInfo info:infoList.getData()){
+                FaceFeature target = new FaceFeature(info.getFaceFeature());
+                FaceFeature source = new FaceFeature(faceCompare.getData());
+                Boolean compore = faceService.compore(target, source);
+                if(compore){
+                    userId=info.getJoinStudentsId();
+                    logger.info("====compore====" +"对比成功用户ID:"+info.getJoinStudentsId());
+                    break;
+                }
+            }
+            if(null==userId){
+                return ResultData.fail("人脸识别未通过,请重新识别");
+            }else{
+               ResultData resultData=remoteStudentsService.getUserInfoByUserId(userId);
+               if(null==resultData || resultData.getCode()!= HttpStatus.SUCCESS){
+                   logger.info("查询人员数据出错");
+                   return ResultData.fail("人脸识别未通过,请重新识别");
+               }
+               return resultData;
+            }
+        } else {
+            return ResultData.fail("未获取实验室安全准入人脸数据!");
         }
     }
 
+
     //获取流文件
     private static void inputStreamToFile(InputStream ins, File file) {
         try {
@@ -105,7 +144,4 @@ public class FaceApi {
     }
 
 
-
-
-
 }

+ 6 - 3
zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/mapper/HardwareRfidMapper.java

@@ -1,19 +1,22 @@
 package com.zd.alg.rfid.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zd.algorithm.api.rfid.domain.entity.HardwareRfid;
+import com.zd.algorithm.api.rfid.domain.vo.HardwareRfidVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
 /**
-  * @创建人 hzw
-  * @描述
-  * @创建时间  2022/11/15
+ * @创建人 hzw
+ * @描述
+ * @创建时间 2022/11/15
  */
 @Mapper
 public interface HardwareRfidMapper extends BaseMapper<HardwareRfid> {
     int batchInsert(@Param("list") List<HardwareRfid> list);
 
+    Page<HardwareRfid> selectRfidInfo(@Param("page") Page<HardwareRfid> page, @Param("hardwareRfidVo") HardwareRfidVo hardwareRfidVo);
 }

+ 9 - 4
zd-modules/zd-algorithm/src/main/java/com/zd/alg/rfid/service/impl/HardwareRfidServiceImpl.java

@@ -84,14 +84,19 @@ public class HardwareRfidServiceImpl extends ServiceImpl<HardwareRfidMapper, Har
 
     @Override
     public Page<HardwareRfid> search(Page<HardwareRfid> page, HardwareRfidVo hardwareRfidVo) {
+        Page<HardwareRfid> hardwareRfidPage;
         if (StringUtils.isNotBlank(hardwareRfidVo.getSearchValue())) {
-            return baseMapper.selectPage(page, new LambdaQueryWrapper<HardwareRfid>().like(HardwareRfid::getHardwareNum, hardwareRfidVo.getSearchValue()).or().like(HardwareRfid::getDeptName, hardwareRfidVo.getSearchValue()).orderByDesc(HardwareRfid::getCreateTime));
+            hardwareRfidPage = baseMapper.selectRfidInfo(page, hardwareRfidVo);
+        } else {
+            HardwareRfid hardwareRfid = new HardwareRfid();
+            BeanUtils.copyProperties(hardwareRfidVo, hardwareRfid);
+            hardwareRfidPage = baseMapper.selectPage(page, new LambdaQueryWrapper<HardwareRfid>().setEntity(hardwareRfid).orderByDesc(HardwareRfid::getCreateTime));
         }
-        HardwareRfid hardwareRfid = new HardwareRfid();
-        BeanUtils.copyProperties(hardwareRfidVo, hardwareRfid);
-        Page<HardwareRfid> hardwareRfidPage = baseMapper.selectPage(page, new LambdaQueryWrapper<HardwareRfid>().setEntity(hardwareRfid).orderByDesc(HardwareRfid::getCreateTime));
         List<HardwareRfid> records = hardwareRfidPage.getRecords();
         try {
+            if (records.size() == 0) {
+                return hardwareRfidPage;
+            }
             StringBuffer sb = new StringBuffer();
             for (HardwareRfid record : records) {
                 if (sb.indexOf(String.valueOf(record.getSubjectId())) < 0) {

+ 13 - 0
zd-modules/zd-algorithm/src/main/resources/mapper/rfid/HardwareRfidMapper.xml

@@ -53,4 +53,17 @@
              #{item.updateTime,jdbcType=TIMESTAMP}, #{item.remark,jdbcType=VARCHAR})
         </foreach>
     </insert>
+
+    <select id="selectRfidInfo" resultType="com.zd.algorithm.api.rfid.domain.entity.HardwareRfid">
+        SELECT rfid.*
+        FROM `hardware_rfid` rfid
+        LEFT JOIN lab_subject ls ON rfid.subject_id = ls.id
+        <where>
+            <if test="hardwareRfidVo.searchValue != null">
+                rfid.hardware_num LIKE CONCAT('%',#{hardwareRfidVo.searchValue},'%') or
+                ls.`name` LIKE CONCAT('%',#{hardwareRfidVo.searchValue},'%')
+            </if>
+        </where>
+        ORDER BY rfid.create_time DESC
+    </select>
 </mapper>

+ 153 - 6
zd-modules/zd-base/src/main/java/com/zd/base/app/controller/LabBoardApi.java

@@ -1,5 +1,7 @@
 package com.zd.base.app.controller;
 
+import com.zd.algorithm.api.face.feign.FaceCompare;
+import com.zd.algorithm.api.face.feign.RemoteFaceService;
 import com.zd.algorithm.api.xxp.feign.RemoteXxpService;
 import com.zd.base.app.domain.board.DutyPersonVo;
 import com.zd.base.app.domain.board.LabXxpSubjectVo;
@@ -8,6 +10,7 @@ import com.zd.common.core.utils.DateUtils;
 import com.zd.common.core.utils.FileConfigUtils;
 import com.zd.common.core.utils.StringUtils;
 import com.zd.laboratory.api.feign.RemoteDutyService;
+import com.zd.laboratory.api.vo.XxpUserAuthVo;
 import com.zd.model.constant.HttpStatus;
 import com.zd.model.domain.R;
 import com.zd.model.domain.ResultData;
@@ -18,6 +21,7 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.rmi.Remote;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -39,9 +43,9 @@ public class LabBoardApi {
     @Autowired
     private RemoteXxpService remoteXxpService;
     @Autowired
-    private TokenService tokenService;
-    @Autowired
     private FileConfigUtils fileConfigUtils;
+    @Autowired
+    private RemoteFaceService remoteFaceService;
 
     /**
      * 查询电子信息牌头部信息
@@ -260,11 +264,24 @@ public class LabBoardApi {
         if (sysLogo == null || sysLogo.getCode() != 200) {
             return ResultData.fail(500, "获取logo失败!");
         }
-        Map<String,Object> map=new HashMap<String,Object>();
-        if(StringUtils.isNull(resultData.getData())){
-            return ResultData.fail("获取实验室编号失败!");
+        Object subjectId=resultData.getData();
+        String isRelationGuard="2";
+        String authType="";
+        Map<String,Object> map= new HashMap<>();
+        if(StringUtils.isNull(subjectId)){
+            ResultData xxpMap=remoteDutyService.XxpCardInfoByCard(num);
+            Object obj=xxpMap.getData();
+            if (obj == null) {
+                return ResultData.fail("获取实验室编号失败!");
+            }
+            Map<String,Object> dataMap= (Map<String, Object>) xxpMap.getData();
+            subjectId=String.valueOf(dataMap.get("subjectId"));
+            isRelationGuard=String.valueOf(dataMap.get("isRelationGuard"));
+            authType=String.valueOf(dataMap.get("authType"));
         }
-        map.put("labId",resultData.getData());
+        map.put("labId",subjectId);
+        map.put("authType",authType);
+        map.put("isRelationGuard",isRelationGuard);
         map.put("logoutTime",sysLogo.getData().getLogoutTime());
         map.put("returnTime",sysLogo.getData().getReturnTime());
         map.put("isStart",sysLogo.getData().getIsStart());
@@ -356,4 +373,134 @@ public class LabBoardApi {
         }
         return allDate;
     }
+
+
+    /**
+     * 电子信息牌获取准入人员的指纹信息列表
+     * @param labId
+     * @return
+     */
+    @ApiOperation(value = "电子信息牌获取准入人员的指纹信息列表")
+    @GetMapping(value = "/getFingerList")
+    public ResultData getFingerList(@RequestParam("labId") Long labId) {
+        ResultData resultData=remoteDutyService.securityFingerList(labId);
+        return resultData;
+    }
+
+
+    /**
+     * 电子信息牌获取准入人员的指纹信息列表
+     * @param labId
+     * @return
+     */
+    @ApiOperation(value = "刷卡是否可以开门禁 1可以,0不可以")
+    @GetMapping(value = "/getCardIsOpen")
+    public ResultData getCardIsOpen(@RequestParam("labId") Long labId,@RequestParam("cardNum") String cardNum) {
+        Integer isOpen=0;
+        ResultData resultData=remoteDutyService.securityNumList(labId);
+        if(resultData==null && resultData.getCode()!=HttpStatus.SUCCESS){
+            return ResultData.fail("未识别到身份信息,请联系管理人员录入卡号信息");
+        }
+        Object resultObj=resultData.getData();
+        if(null==resultObj){
+            return ResultData.fail("未识别到身份信息,请联系管理人员录入卡号信息");
+        }
+        List<Map<String, Object>> cardList= (List<Map<String, Object>>) resultObj;
+        for(Map<String, Object> map:cardList){
+             if(String.valueOf(map.get("cardNum")).equals(cardNum)){
+                 isOpen=1;
+                 break;
+             }
+        }
+        return ResultData.success(isOpen);
+    }
+
+
+    /**
+     * 电子信息牌获取准入人员的指纹信息列表
+     * @param labId
+     * @return
+     */
+    @ApiOperation(value = "刷卡验证")
+    @GetMapping(value = "/cardValidate")
+    public ResultData cardValidate(@RequestParam("labId") Long labId,@RequestParam("cardNum") String cardNum) {
+        ResultData resultData=remoteDutyService.securityNumList(labId);
+        if(resultData==null && resultData.getCode()!=HttpStatus.SUCCESS){
+            return ResultData.fail("未识别到身份信息,请联系管理人员录入卡号信息");
+        }
+        Object resultObj=resultData.getData();
+        if(null==resultObj){
+            return ResultData.fail("未识别到身份信息,请联系管理人员录入卡号信息");
+        }
+        List<Map<String, Object>> cardList= (List<Map<String, Object>>) resultObj;
+        for(Map<String, Object> map:cardList){
+            System.out.println(String.valueOf(map.get("cardNum")));
+            if(String.valueOf(map.get("cardNum")).equals(cardNum)){
+                return ResultData.success(map);
+            }
+        }
+        return ResultData.fail("未识别到身份信息,请联系管理人员录入卡号信息");
+    }
+
+
+    /**
+     * 电子信息牌指纹录入
+     * @param xxpUserAuthVo
+     * @return
+     */
+    @ApiOperation(value = "指纹录入")
+    @PostMapping(value = "/addUserFinger")
+    public ResultData addUserFinger(@RequestBody XxpUserAuthVo xxpUserAuthVo) {
+        ResultData resultData=remoteDutyService.addUserAuth(xxpUserAuthVo);
+        return resultData;
+    }
+
+
+    /**
+     * 根据用户查询指纹列表
+     * @param userId
+     * @return
+     */
+    @ApiOperation(value = "根据用户查询指纹列表")
+    @GetMapping(value = "/getFingerByUserId")
+    public ResultData getFingerByUserId(@RequestParam Long userId){
+        ResultData resultData=remoteDutyService.getFingerByUserId(userId);
+        return resultData;
+    }
+
+
+    /**
+     * 根据id删除指纹
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "根据id删除指纹")
+    @GetMapping(value = "/deleteFingerById")
+    public ResultData deleteFingerById(@RequestParam Long id){
+        ResultData resultData=remoteDutyService.deleteFingerById(id);
+        if(null==resultData || resultData.getCode()!=HttpStatus.SUCCESS){
+             return ResultData.fail("删除指纹失败");
+        }
+        return ResultData.success();
+    }
+
+    /**
+     * 密码验证
+     * @param cardNum
+     * @param pwd
+     * @param subjectId
+     * @param userId
+     * @return
+     */
+    @ApiOperation(value = "密码验证")
+    @GetMapping(value = "/pwdValidate")
+    public ResultData pwdValidate(@RequestParam("cardNum") String cardNum,@RequestParam("pwd") String pwd,@RequestParam("subjectId") Long subjectId,@RequestParam("userId") Long userId){
+        return remoteDutyService.pwdValidate(cardNum,pwd,subjectId,userId);
+    }
+
+    @ApiOperation(value = "人脸识别")
+    @GetMapping(value = "/multiFaceDetection")
+    public ResultData multiFaceDetection(@RequestBody FaceCompare faceCompare){
+        return remoteFaceService.multiFaceDetection(faceCompare);
+    }
 }

+ 33 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabSecurityApplyController.java

@@ -807,4 +807,37 @@ public class LabSecurityApplyController extends BaseController
         }
         return ResultData.success(list);
     }
+
+    /**
+     * 电子信息牌获取准入人员的指纹信息列表
+     * @param labId
+     * @return
+     */
+    @RequestMapping("/app/securityFingerList")
+    public ResultData securityFingerList(Long labId)
+    {
+        List<Map<String,Object>> list = labSecurityApplyService.selectSecurityFingerList(labId);
+        return ResultData.success(list);
+    }
+
+
+    /**
+     * 电子信息牌获取准入人员的指纹信息列表
+     * @param labId
+     * @return
+     */
+    @RequestMapping("/app/securityNumList")
+    public ResultData securityNumList(Long labId)
+    {
+        List<Map<String,Object>> mapList=new ArrayList<>();
+        List<Map<String,Object>> list = labSecurityApplyService.selectSecurityCardList(labId);
+        for(Map<String,Object> map:list){
+            if(StringUtils.isNotNull(map.get("cardNum"))){
+                String decryptCard=DESUtils.decrypt(String.valueOf(map.get("cardNum")));
+                map.put("cardNum",decryptCard);
+                mapList.add(map);
+            }
+        }
+        return ResultData.success(mapList);
+    }
 }

+ 20 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabSecuritySubjectmaterialController.java

@@ -4,6 +4,9 @@ import java.util.*;
 import java.io.IOException;
 import javax.servlet.http.HttpServletResponse;
 
+import com.zd.common.core.utils.StringUtils;
+import com.zd.laboratory.domain.XxpCardInfo;
+import com.zd.laboratory.service.IXxpCardInfoService;
 import com.zd.model.domain.per.PerFun;
 import com.zd.model.domain.per.PerPrefix;
 import com.zd.model.domain.ResultData;
@@ -54,6 +57,9 @@ public class LabSecuritySubjectmaterialController extends BaseController
     private ILabSecurityMaterialDataService labSecurityMaterialDataService;
 
     @Autowired
+    private IXxpCardInfoService xxpCardInfoService;
+
+    @Autowired
     private TokenService tokenService;
 
     /**
@@ -147,17 +153,30 @@ public class LabSecuritySubjectmaterialController extends BaseController
      * @return
      */
     @GetMapping("/listData")
-    public ResultData  listData() {
+    public ResultData  listData(LabSecurityMaterialDataVO materialDataVO) {
         Map<String,Object> map = new HashMap<String,Object>();
          List<LabSecurityMaterialDataVO> listTeacher= labSecurityMaterialDataService.selectTemplateTeacherList();
          List<LabSecurityMaterialDataVO> listStudent= labSecurityMaterialDataService.selectTemplateStudentList();
 
+         //查询实验室下的电子信息牌
+        XxpCardInfo cardInfo = new XxpCardInfo();;
+        if(StringUtils.isNotNull(materialDataVO.getSubjectId())){
+            cardInfo.setSubjectId(materialDataVO.getSubjectId());
+            List<XxpCardInfo> cardInfoList = xxpCardInfoService.selectXxpCardInfoList(cardInfo);
+            if(cardInfoList.size()>0){
+                cardInfo = cardInfoList.get(0);
+            }
+        }
+
+
+
         /* //教职工模板
         List<LabSecuritySubjectmaterialVO> listTeacher=  labSecuritySubjectmaterialService.selectTeacherList();
         //学生模板
         List<LabSecuritySubjectmaterialVO> listStudent=  labSecuritySubjectmaterialService.selectStudentList();*/
         map.put("listTeacher",listTeacher);
         map.put("listStudent",listStudent);
+        map.put("cardInfo",cardInfo);
         return ResultData.success(map);
     }
 

+ 10 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabStudentsInfoController.java

@@ -215,4 +215,14 @@ public class LabStudentsInfoController extends BaseController {
         return ResultData.success(labStudentsInfoService.selectLabStudentsInfoByJoinStudentsId(SecurityUtils.getUserId()));
     }
 
+
+    /**
+     * 获取学生登录用户信息
+     */
+    @ApiOperation(value = "获取安全实验室安全人员的人脸信息")
+    @RequestMapping(value = "/getFaceBySecuritySubjectId")
+    public ResultData<List<LabStudentsInfo>> getFaceBySecuritySubjectId(Long subjectId) {
+        return ResultData.success(labStudentsInfoService.selectLabStudentsInfoBySubjectId(subjectId));
+    }
+
 }

+ 60 - 28
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabXxpCardInfoController.java

@@ -6,8 +6,8 @@ import com.zd.common.core.log.BusinessType;
 import com.zd.common.core.security.TokenService;
 import com.zd.common.core.utils.ExcelUtil;
 import com.zd.common.core.web.controller.BaseController;
-import com.zd.laboratory.domain.LabWhitelist;
 import com.zd.laboratory.domain.XxpCardInfo;
+import com.zd.laboratory.service.ILabSecurityApplyService;
 import com.zd.laboratory.service.IXxpCardInfoService;
 import com.zd.model.domain.ResultData;
 import com.zd.model.domain.per.PerFun;
@@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 电子信息牌Controller
@@ -31,10 +32,11 @@ import java.util.List;
 @RestController
 @Api(tags = "【电子信息牌】")
 @RequestMapping("/XxpCardInfo")
-public class LabXxpCardInfoController extends BaseController
-{
+public class LabXxpCardInfoController extends BaseController {
     @Autowired
     private IXxpCardInfoService xxpCardInfoService;
+    @Autowired
+    private ILabSecurityApplyService iLabSecurityApplyService;
 
     @Autowired
     private TokenService tokenService;
@@ -45,9 +47,8 @@ public class LabXxpCardInfoController extends BaseController
     @PreAuthorize(hasPermi = PerPrefix.LABORATORY_CARDINFO + PerFun.LIST)
     @GetMapping("/list")
     @ApiOperation(value = "查询电子信息牌列表")
-    public TableDataInfo<XxpCardInfo> list(XxpCardInfo xxpCardInfo)
-    {
-        startPage("create_time","descending");
+    public TableDataInfo<XxpCardInfo> list(XxpCardInfo xxpCardInfo) {
+        startPage("create_time", "descending");
         List<XxpCardInfo> list = xxpCardInfoService.selectXxpCardInfoList(xxpCardInfo);
         return getDataTable(list);
     }
@@ -57,8 +58,7 @@ public class LabXxpCardInfoController extends BaseController
      */
     @GetMapping("/getlist")
     @ApiOperation(value = "查询电子信息牌列表-无权限")
-    public TableDataInfo<XxpCardInfo> getlist(XxpCardInfo xxpCardInfo)
-    {
+    public TableDataInfo<XxpCardInfo> getlist(XxpCardInfo xxpCardInfo) {
         startPage();
         List<XxpCardInfo> list = xxpCardInfoService.selectXxpCardInfoList(xxpCardInfo);
         return getDataTable(list);
@@ -71,8 +71,7 @@ public class LabXxpCardInfoController extends BaseController
     @PreAuthorize(hasPermi = PerPrefix.LABORATORY_CARDINFO + PerFun.EXPORT)
     @Log(title = "电子信息牌", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, XxpCardInfo xxpCardInfo) throws IOException
-    {
+    public void export(HttpServletResponse response, XxpCardInfo xxpCardInfo) throws IOException {
         List<XxpCardInfo> list = xxpCardInfoService.selectXxpCardInfoList(xxpCardInfo);
         ExcelUtil<XxpCardInfo> util = new ExcelUtil<XxpCardInfo>(XxpCardInfo.class);
         util.exportExcel(response, list, "电子信息牌数据");
@@ -84,8 +83,7 @@ public class LabXxpCardInfoController extends BaseController
     @ApiOperation(value = "获取电子信息牌详细")
     @PreAuthorize(hasPermi = PerPrefix.LABORATORY_CARDINFO + PerFun.QUERY)
     @GetMapping(value = "/{id}")
-    public ResultData<XxpCardInfo> getInfo(@PathVariable("id") Long id)
-    {
+    public ResultData<XxpCardInfo> getInfo(@PathVariable("id") Long id) {
         return ResultData.success(xxpCardInfoService.selectXxpCardInfoById(id));
     }
 
@@ -97,8 +95,7 @@ public class LabXxpCardInfoController extends BaseController
     @PreAuthorize(hasPermi = PerPrefix.LABORATORY_CARDINFO + PerFun.ADD)
     @Log(title = "电子信息牌", businessType = BusinessType.INSERT)
     @PostMapping
-    public ResultData add(@RequestBody XxpCardInfo xxpCardInfo)
-    {
+    public ResultData add(@RequestBody XxpCardInfo xxpCardInfo) {
         return ResultData.result(xxpCardInfoService.insertXxpCardInfo(xxpCardInfo));
     }
 
@@ -108,8 +105,7 @@ public class LabXxpCardInfoController extends BaseController
     @ApiOperation(value = "新增电子信息牌-无权限")
     @Log(title = "电子信息牌", businessType = BusinessType.INSERT)
     @PostMapping("/addInfo")
-    public ResultData addInfo(@RequestBody XxpCardInfo xxpCardInfo)
-    {
+    public ResultData addInfo(@RequestBody XxpCardInfo xxpCardInfo) {
         return ResultData.result(xxpCardInfoService.insertXxpCardInfo(xxpCardInfo));
     }
 
@@ -120,9 +116,8 @@ public class LabXxpCardInfoController extends BaseController
     @PreAuthorize(hasPermi = PerPrefix.LABORATORY_CARDINFO + PerFun.EDIT)
     @Log(title = "电子信息牌", businessType = BusinessType.UPDATE)
     @PutMapping
-    public ResultData edit(@RequestBody XxpCardInfo xxpCardInfo)
-    {
-        return  ResultData.result(xxpCardInfoService.updateXxpCardInfo(xxpCardInfo));
+    public ResultData edit(@RequestBody XxpCardInfo xxpCardInfo) {
+        return ResultData.result(xxpCardInfoService.updateXxpCardInfo(xxpCardInfo));
     }
 
     /**
@@ -131,9 +126,8 @@ public class LabXxpCardInfoController extends BaseController
     @ApiOperation(value = "修改电子信息牌-无权限")
     @Log(title = "电子信息牌", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
-    public ResultData editCard(@RequestBody XxpCardInfo xxpCardInfo)
-    {
-        return  ResultData.result(xxpCardInfoService.updateXxpCardInfo(xxpCardInfo));
+    public ResultData editCard(@RequestBody XxpCardInfo xxpCardInfo) {
+        return ResultData.result(xxpCardInfoService.updateXxpCardInfo(xxpCardInfo));
     }
 
     /**
@@ -143,13 +137,13 @@ public class LabXxpCardInfoController extends BaseController
     @PreAuthorize(hasPermi = PerPrefix.LABORATORY_CARDINFO + PerFun.REMOVE)
     @Log(title = "电子信息牌", businessType = BusinessType.DELETE)
     @DeleteMapping("/{ids}")
-    public ResultData remove(@PathVariable Long[] ids)
-    {
+    public ResultData remove(@PathVariable Long[] ids) {
         return ResultData.result(xxpCardInfoService.deleteXxpCardInfoByIds(ids));
     }
 
     /**
      * 根据id删除
+     *
      * @param id
      * @return
      */
@@ -157,22 +151,60 @@ public class LabXxpCardInfoController extends BaseController
     @PreAuthorize(hasPermi = PerPrefix.LABORATORY_CARDINFO + PerFun.REMOVE)
     @Log(title = "电子信息牌", businessType = BusinessType.DELETE)
     @PostMapping("/{id}")
-    public ResultData remove(@PathVariable Long id)
-    {
+    public ResultData remove(@PathVariable Long id) {
         return ResultData.result(xxpCardInfoService.deleteXxpCardInfoById(id));
     }
 
     /**
      * 根据id删除-无权限
+     *
      * @param id
      * @return
      */
     @ApiOperation(value = "根据id删除-无权限")
     @Log(title = "电子信息牌", businessType = BusinessType.DELETE)
     @PostMapping("/del/{id}")
-    public ResultData del(@PathVariable Long id)
-    {
+    public ResultData del(@PathVariable Long id) {
         return ResultData.result(xxpCardInfoService.deleteXxpCardInfoById(id));
     }
 
+
+    /**
+     * 根据卡号获取电子信息牌信息
+     *
+     * @param cardNum
+     * @return
+     */
+    @RequestMapping("/XxpCardInfoByCard/{num}")
+    public ResultData XxpCardInfoByCard(@PathVariable("num") String cardNum) {
+        List<Map<String, Object>> list = xxpCardInfoService.selectXxpCardInfoByCard(cardNum);
+        if (list.size() > 0) {
+            return ResultData.success(list.get(0));
+        }
+        return ResultData.success();
+    }
+
+
+    /**
+     * 验证密码是否正确
+     *
+     * @param cardNum 电子班牌号码
+     * @param pwd 用户密码
+     * @param subjectId 实验室id
+     * @param userId 用户id
+     * @return
+     */
+    @RequestMapping("/pwdValidate")
+    public ResultData pwdValidate(String cardNum, String pwd,Long subjectId, Long userId) {
+        List<Map<String,Object>> mapList=iLabSecurityApplyService.selectCountLabSecurityUserId(subjectId,userId);
+        if(mapList.size()==0){
+            return ResultData.fail("未获得实验室准入资格;");
+        }
+        int count = xxpCardInfoService.selectPwdCountByPwd(cardNum, pwd);
+        if (count == 0) {
+            return ResultData.fail("密码输入错误,请重新输入;");
+        }
+        return ResultData.success(mapList.get(0));
+    }
+
 }

+ 3 - 3
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabXxpInspectionController.java

@@ -107,7 +107,7 @@ public class LabXxpInspectionController extends BaseController
      * @param xxpInspection
      * @return
      */
-    // @PreAuthorize(hasPermi = PerPrefix.LABORATORY_XXP_INSPECTION + PerFun.LIST)
+    @PreAuthorize(hasPermi = PerPrefix.LABORATORY_XXP_INSPECTION + PerFun.QUERY)
     @GetMapping("/listStandard")
     @ApiOperation(value = "查询巡查列表-正常")
     public TableDataInfo<XxpInspection> listStandard(XxpInspection xxpInspection)
@@ -119,11 +119,11 @@ public class LabXxpInspectionController extends BaseController
 
 
     /***
-     * 签到列表-
+     * 签到列表-
      * @param xxpDuty
      * @return
      */
-    // @PreAuthorize(hasPermi = PerPrefix.LABORATORY_XXP_INSPECTION + PerFun.LIST)
+    @PreAuthorize(hasPermi = PerPrefix.LABORATORY_XXP_INSPECTION + PerFun.QUERY)
     @GetMapping("/listAbnormal")
     @ApiOperation(value = "查询巡查列表-异常")
     public TableDataInfo<XxpDuty> listAbnormal(XxpDuty xxpDuty)

+ 60 - 4
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/LabXxpUserAuthController.java

@@ -9,7 +9,12 @@ import com.zd.common.core.security.TokenService;
 import com.zd.common.core.utils.DictUtils;
 import com.zd.common.core.utils.ExcelUtil;
 import com.zd.common.core.web.controller.BaseController;
+import com.zd.laboratory.api.vo.XxpUserAuthVo;
+import com.zd.laboratory.domain.LabSubject;
+import com.zd.laboratory.domain.XxpCardInfo;
 import com.zd.laboratory.domain.XxpUserAuth;
+import com.zd.laboratory.service.ILabSubjectService;
+import com.zd.laboratory.service.IXxpCardInfoService;
 import com.zd.laboratory.service.IXxpUserAuthService;
 import com.zd.model.domain.ResultData;
 import com.zd.model.domain.per.PerFun;
@@ -41,10 +46,7 @@ public class LabXxpUserAuthController extends BaseController
     private IXxpUserAuthService xxpUserAuthService;
 
     @Autowired
-    private TokenService tokenService;
-
-    @Autowired
-    RedisService redisService;
+    private IXxpCardInfoService iXxpCardInfoService;
 
     /**
      * 查询列表
@@ -160,4 +162,58 @@ public class LabXxpUserAuthController extends BaseController
         return ResultData.result(xxpUserAuthService.deleteXxpUserAuthById(id));
     }
 
+    /**
+     * 电子信息牌指纹录入
+     * @param xxpUserAuthVo
+     * @return
+     */
+    @ApiOperation(value = "电子信息牌指纹录入")
+    @PostMapping("/addUserAuth")
+    public ResultData addUserAuth(@RequestBody XxpUserAuthVo xxpUserAuthVo)
+    {
+        XxpCardInfo xxpCardInfo=iXxpCardInfoService.selectXxpInfoByCard(xxpUserAuthVo.getNum());
+        if(null==xxpCardInfo){
+            return ResultData.fail("电子班牌查询错误");
+        }
+        XxpUserAuth xxpUserAuth=new XxpUserAuth();
+        xxpUserAuth.setUserId(xxpUserAuthVo.getUserId());
+        xxpUserAuth.setUserName(xxpUserAuthVo.getUserName());
+        xxpUserAuth.setUserType(xxpUserAuthVo.getUserType());
+        xxpUserAuth.setSubjectId(xxpCardInfo.getSubjectId());
+        xxpUserAuth.setSubjectName(xxpCardInfo.getSubjectName());
+        xxpUserAuth.setDeptId(xxpCardInfo.getCollegeId());
+        xxpUserAuth.setDeptName(xxpCardInfo.getCollege());
+        xxpUserAuth.setCreateBy(xxpUserAuthVo.getUserName());
+        xxpUserAuth.setCreateTime(new Date());
+        xxpUserAuth.setHardwareId(xxpCardInfo.getId());
+        xxpUserAuth.setFinger(xxpUserAuthVo.getFinger());
+        xxpUserAuth.setFingerKey(xxpUserAuthVo.getFingerKey());
+        return ResultData.result(xxpUserAuthService.insertXxpUserAppAuth(xxpUserAuth));
+    }
+
+
+    /**
+     * 根据用户id查询指纹信息
+     * @param userId
+     * @return
+     */
+    @GetMapping("/getFingerByUserId")
+    public ResultData getFingerByUserId(@RequestParam Long userId)
+    {
+        List<Map<String,Object>> mapList= xxpUserAuthService.getFingerByUserId(userId);
+        return ResultData.success(mapList);
+    }
+
+
+    /**
+     * 根据用户id查询指纹信息
+     * @param id
+     * @return
+     */
+    @GetMapping("/deleteFingerById")
+    public ResultData deleteFingerById(@RequestParam Long id)
+    {
+        return ResultData.result(xxpUserAuthService.deleteXxpUserAuthById(id));
+    }
+
 }

+ 9 - 6
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/controller/device/DeviceRemoteController.java

@@ -60,13 +60,16 @@ public class DeviceRemoteController {
         try {
 //            ops.write(ReUtil.hexStringToByteArray(instruct));
 //            ops.flush();
-            for (int i = 0; i < 5; i++) {
-                NettyPushMsgService.push(cabinetV2Lock.getRelayCode(), ReUtil.hexStringToByteArray(instruct));
-                logger.info("柜锁开锁指令:" + instruct);
-
-                Thread.sleep(1000);
-            }
+//            for (int i = 0; i < 5; i++) {
+//                NettyPushMsgService.push(cabinetV2Lock.getRelayCode(), ReUtil.hexStringToByteArray(instruct));
+//                logger.info("柜锁开锁指令:" + instruct);
+//
+//                Thread.sleep(1000);
+//            }
 
+            NettyPushMsgService.push(cabinetV2Lock.getRelayCode(), ReUtil.hexStringToByteArray(instruct));
+            logger.info("柜锁开锁指令:" + instruct);
+            Thread.sleep(1000);
 //            ops.write(ReUtil.hexStringToByteArray(instruct));
 //            ops.flush();
 //

+ 20 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/LabSubject.java

@@ -86,6 +86,13 @@ public class LabSubject extends BaseEntity implements QCInterface {
     @ApiModelProperty("创建人")
     @Excel(name = "创建人", readConverterExp = "用=于数据权限")
     private Long userId;
+
+
+    /**
+     * 创建人(用于数据权限)
+     */
+    @ApiModelProperty("创建人名称")
+    private Long userName;
     /**
      * 是否是实验室
      */
@@ -240,6 +247,11 @@ public class LabSubject extends BaseEntity implements QCInterface {
      */
     private String details;
 
+    /***
+     * 关联的硬件 1海康 2电子信息牌
+     */
+    private Integer hardwareType;
+
     private List<Long> deptIds;
 
     /**
@@ -627,4 +639,12 @@ public class LabSubject extends BaseEntity implements QCInterface {
     public void setClassifyList(List<XxpClassify> classifyList) {
         this.classifyList = classifyList;
     }
+
+    public Integer getHardwareType() {
+        return hardwareType;
+    }
+
+    public void setHardwareType(Integer hardwareType) {
+        this.hardwareType = hardwareType;
+    }
 }

+ 4 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/XxpCardInfo.java

@@ -76,6 +76,10 @@ public class XxpCardInfo extends BaseEntity {
     @ApiModelProperty(value = "授权方式")
     private Integer authType;
 
+    @Excel(name = "授权密码")
+    @ApiModelProperty(value = "授权密码")
+    private String authPwd;
+
     /**
      * 实验室id
      */

+ 11 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/XxpUserAuth.java

@@ -52,7 +52,7 @@ public class XxpUserAuth extends BaseEntity {
      */
     @Excel(name = "实验室id")
     @ApiModelProperty(value = "实验室id")
-    private Integer subjectId;
+    private Long subjectId;
 
     /**
      * 实验室名称
@@ -110,6 +110,14 @@ public class XxpUserAuth extends BaseEntity {
     @ApiModelProperty(value = "硬件id")
     private Long hardwareId;
 
+
+    /**
+     * 手指标识
+     */
+    @Excel(name = "手指标识")
+    @ApiModelProperty(value = "手指标识")
+    private String fingerKey;
+
     /**
      * 创建时间
      */
@@ -168,4 +176,6 @@ public class XxpUserAuth extends BaseEntity {
     public void setDeptName(String deptName) {
         this.deptName = deptName;
     }
+
+
 }

+ 12 - 2
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabSecurityMaterialDataVO.java

@@ -19,7 +19,11 @@ import java.util.Map;
  */
 @ApiModel("安全检查模板表")
 public class LabSecurityMaterialDataVO extends LabSecurityMaterialData {
-    //材料表集合
+
+    List<LabSecurityMaterialrelation>  listMr; //材料表集合
+
+    Long subjectId;//实验室id
+
     public List<LabSecurityMaterialrelation> getListMr() {
         return listMr;
     }
@@ -28,5 +32,11 @@ public class LabSecurityMaterialDataVO extends LabSecurityMaterialData {
         this.listMr = listMr;
     }
 
-    List<LabSecurityMaterialrelation>  listMr;
+    public Long getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Long subjectId) {
+        this.subjectId = subjectId;
+    }
 }

+ 12 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/domain/vo/LabSecuritySubjectmaterialVO.java

@@ -24,6 +24,10 @@ public class LabSecuritySubjectmaterialVO extends LabSecuritySubjectmaterial {
 
     private List<LabSecuritySubjectmaterial> publicList;//通用模板
 
+    private Integer authType;//授权方式
+
+    private String authPwd;//授权密码
+
     public Long getIscheck() {        return ischeck;    }
 
     public void setIscheck(Long ischeck) {        this.ischeck = ischeck;    }
@@ -69,4 +73,12 @@ public class LabSecuritySubjectmaterialVO extends LabSecuritySubjectmaterial {
     public void setPublicList(List<LabSecuritySubjectmaterial> publicList) {
         this.publicList = publicList;
     }
+
+    public Integer getAuthType() {        return authType;    }
+
+    public void setAuthType(Integer authType) {        this.authType = authType;    }
+
+    public String getAuthPwd() {        return authPwd;    }
+
+    public void setAuthPwd(String authPwd) {        this.authPwd = authPwd;    }
 }

+ 23 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabSecurityApplyMapper.java

@@ -148,4 +148,27 @@ public interface LabSecurityApplyMapper
      * @return
      */
     List<Map<String, Object>> selectLabSecurityApply(Long subjectId);
+
+    /**
+     * 电子信息牌获取准入人员的指纹信息列表
+     * @param subjectId
+     * @return
+     */
+    List<Map<String,Object>> selectSecurityFingerList(Long subjectId);
+
+    /**
+     * 电子信息牌获取卡号列表
+     * @param subjectId
+     * @return
+     */
+    List<Map<String,Object>> selectSecurityCardList(Long subjectId);
+
+
+    /**
+     * 判断是否获得安全准入
+     *
+     * @param userId 用户的id
+     * @return 安全准入申请
+     */
+    List<Map<String, Object>> selectCountLabSecurityUserId(@Param("subjectId") Long subjectId,@Param("userId") Long userId);
 }

+ 7 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabStudentsInfoMapper.java

@@ -67,4 +67,11 @@ public interface LabStudentsInfoMapper {
      * @return 结果
      */
     public int deleteLabStudentsInfoByJoinStudentsIds(Long[] joinStudentsIds);
+
+    /**
+     * 查询学生信息
+     * @param subjectId 实验室id
+     * @return 学生信息
+     */
+    List<LabStudentsInfo> selectLabStudentsInfoBySubjectId(Long subjectId);
 }

+ 7 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/LabSubjectMapper.java

@@ -320,4 +320,11 @@ public interface LabSubjectMapper {
      * @return
      */
     String getSubjectNameById(Long id);
+
+    /**
+     * 根据实验室编号查询实验室信息
+     * @param number
+     * @return
+     */
+    LabSubject selectLabSubjectByNum(String number);
 }

+ 25 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/XxpCardInfoMapper.java

@@ -1,8 +1,10 @@
 package com.zd.laboratory.mapper;
 
 import com.zd.laboratory.domain.XxpCardInfo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 巡查信息 Mapper接口
@@ -60,4 +62,27 @@ public interface XxpCardInfoMapper
      * @return 结果
      */
     public int deleteXxpCardInfoByIds(Long[] ids);
+
+    /**
+     * 根据卡号查询是否有门禁
+     * @param cardNum
+     * @return
+     */
+    List<Map<String,Object>> selectXxpCardInfoByCard(String cardNum);
+
+
+    /**
+     * 根据电子信息牌查询
+     * @param cardNum
+     * @return
+     */
+    XxpCardInfo selectXxpInfoByCard(String cardNum);
+
+    /**
+     * 根据卡号和密码查询是否密码是否正确
+     * @param cardNum
+     * @param pwd
+     * @return
+     */
+    int selectPwdCountByPwd(@Param("cardNum") String cardNum, @Param("pwd") String pwd);
 }

+ 16 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/mapper/XxpUserAuthMapper.java

@@ -57,6 +57,16 @@ public interface XxpUserAuthMapper
      */
     public int deleteXxpUserAuthById(Long id);
 
+
+
+    /**
+     * 删除
+     *
+     * @param userId 用户ID
+     * @return 结果
+     */
+    public int deleteXxpByUserId(Long userId);
+
     /**
      * 批量删除
      *
@@ -65,4 +75,10 @@ public interface XxpUserAuthMapper
      */
     public int deleteXxpUserAuthByIds(Long[] ids);
 
+    /**
+     * 根据用户id查询指纹信息
+     * @param userId
+     * @return
+     */
+    List<Map<String, Object>> getFingerByUserId(Long userId);
 }

+ 23 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabSecurityApplyService.java

@@ -177,4 +177,27 @@ public interface ILabSecurityApplyService
      * @return
      */
     List<LabSecurityApply>  selectValidApply(LabSecurityApply labSecurityApply);
+
+
+    /**
+     * 电子信息牌获取准入人员的指纹信息列表
+     * @param subjectId
+     * @return
+     */
+    List<Map<String,Object>> selectSecurityFingerList(Long subjectId);
+
+    /**
+     *获取安全准入人员的卡号信息
+     * @param subjectId
+     * @return
+     */
+    List<Map<String,Object>> selectSecurityCardList(Long subjectId);
+
+    /**
+     * 判断是否获得安全准入
+     *
+     * @param userId 用户的id
+     * @return 安全准入申请
+     */
+    List<Map<String,Object>> selectCountLabSecurityUserId(Long subjectId, Long userId);
 }

+ 8 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabStudentsInfoService.java

@@ -102,4 +102,12 @@ public interface ILabStudentsInfoService {
      * @return 结果
      */
     public int deleteLabStudentsInfoByJoinStudentsId(Long joinStudentsId);
+
+
+    /**
+     * 查询学生信息
+     * @param subjectId 实验室id
+     * @return 学生信息
+     */
+    public List<LabStudentsInfo> selectLabStudentsInfoBySubjectId(Long subjectId);
 }

+ 10 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/ILabSubjectService.java

@@ -297,4 +297,14 @@ public interface ILabSubjectService {
      * @return
      */
     public List<LabSubject> cardinfoSubList(LabSubject labSubject);
+
+
+    /**
+     * 查询实验室根据编号
+     *
+     * @param number 实验室编号
+     * @return 实验室
+     */
+    public LabSubject selectLabSubjectByNum(String number);
+
 }

+ 23 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/IXxpCardInfoService.java

@@ -3,6 +3,7 @@ package com.zd.laboratory.service;
 import com.zd.laboratory.domain.XxpCardInfo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 电子信息牌 Service接口
@@ -63,4 +64,26 @@ public interface IXxpCardInfoService
      * @return 结果
      */
     public int deleteXxpCardInfoById(Long id);
+
+    /**
+     * 根据卡号查询是否有门禁
+     * @param card
+     * @return
+     */
+    public List<Map<String,Object>> selectXxpCardInfoByCard(String card);
+
+    /**
+     * 根据电子信息牌查询
+     * @param cardNum
+     * @return
+     */
+    XxpCardInfo selectXxpInfoByCard(String cardNum);
+
+    /**
+     * 根据卡号和密码查询是否密码是否正确
+     * @param cardNum
+     * @param pwd
+     * @return
+     */
+    int selectPwdCountByPwd(String cardNum, String pwd);
 }

+ 28 - 1
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/IXxpUserAuthService.java

@@ -1,5 +1,6 @@
 package com.zd.laboratory.service;
 
+import com.zd.laboratory.api.vo.XxpUserAuthVo;
 import com.zd.laboratory.domain.XxpDuty;
 import com.zd.laboratory.domain.XxpInspection;
 import com.zd.laboratory.domain.XxpUserAuth;
@@ -52,8 +53,19 @@ public interface IXxpUserAuthService
     public int insertXxpUserAuthBatch(XxpUserAuth xxpUserAuth);
 
 
+
     /**
-     * 修改
+     * 新增
+     *
+     * @param xxpUserAuth
+     * @return 结果
+     */
+    public int insertXxpUserAppAuth(XxpUserAuth xxpUserAuth);
+
+
+
+    /**
+     * 新增
      *
      * @param xxpUserAuth
      * @return 结果
@@ -76,4 +88,19 @@ public interface IXxpUserAuthService
      */
     public int deleteXxpUserAuthById(Long id);
 
+    /**
+     * 根据用户id查询指纹信息
+     * @param userId
+     * @return
+     */
+    List<Map<String, Object>> getFingerByUserId(Long userId);
+
+
+    /**
+     * 批量删除
+     *
+     * @param userId 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteXxpByUserId(Long userId);
 }

+ 33 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSecurityApplyServiceImpl.java

@@ -28,6 +28,7 @@ import com.zd.model.domain.per.PerPrefix;
 import com.zd.model.entity.LoginUser;
 import com.zd.model.entity.SysUser;
 import com.zd.system.api.feign.RemoteUserService;
+import org.apache.ibatis.annotations.Param;
 import org.json.JSONString;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -491,4 +492,36 @@ public class LabSecurityApplyServiceImpl implements ILabSecurityApplyService
     public List<LabSecurityApply> selectValidApply(LabSecurityApply labSecurityApply) {
         return labSecurityApplyMapper.selectValidApply(labSecurityApply);
     }
+
+    /**
+     * 电子信息牌获取准入人员的指纹信息列表
+     * @param subjectId
+     * @return
+     */
+    @Override
+    public List<Map<String,Object>> selectSecurityFingerList(Long subjectId) {
+        return labSecurityApplyMapper.selectSecurityFingerList(subjectId);
+    }
+
+    /**
+     * 电子信息牌获取卡号列表
+     * @param subjectId
+     * @return
+     */
+    @Override
+    public List<Map<String,Object>> selectSecurityCardList(Long subjectId) {
+        return labSecurityApplyMapper.selectSecurityCardList(subjectId);
+    }
+
+    /**
+     * 判断是否获得安全准入
+     *
+     * @param userId 用户的id
+     * @return 安全准入申请
+     */
+    @Override
+    public List<Map<String, Object>> selectCountLabSecurityUserId(Long subjectId, Long userId){
+        return labSecurityApplyMapper.selectCountLabSecurityUserId(subjectId,userId);
+    }
+
 }

+ 17 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSecuritySubjectmaterialServiceImpl.java

@@ -7,7 +7,9 @@ import com.zd.common.core.security.TokenService;
 import com.zd.common.core.utils.SaveUtil;
 
 import com.zd.laboratory.domain.LabSubject;
+import com.zd.laboratory.domain.XxpCardInfo;
 import com.zd.laboratory.domain.vo.LabSecuritySubjectmaterialVO;
+import com.zd.laboratory.service.IXxpCardInfoService;
 import com.zd.model.entity.SysUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -31,6 +33,9 @@ public class LabSecuritySubjectmaterialServiceImpl implements ILabSecuritySubjec
     @Autowired
     private TokenService tokenService;
 
+    @Autowired
+    private IXxpCardInfoService xxpCardInfoService;
+
     /**
      * 查询实验室和准入模板关系
      *
@@ -146,6 +151,18 @@ public class LabSecuritySubjectmaterialServiceImpl implements ILabSecuritySubjec
     public int addList(LabSecuritySubjectmaterialVO labSecuritySubjectmaterialVO) {
         SysUser sysUser = tokenService.getLoginUser().getSysUser();
         List<LabSubject> labSubjectList= labSecuritySubjectmaterialVO.getLabSubjectList();//实验室集合
+
+        //配置信息牌 考勤方式和考勤密码
+        XxpCardInfo cardInfo = new XxpCardInfo();
+        cardInfo.setSubjectId(labSubjectList.get(0).getId());
+        List<XxpCardInfo> xxpList =  xxpCardInfoService.selectXxpCardInfoList(cardInfo);
+        if(xxpList.size()>0){
+            cardInfo = xxpList.get(0);
+            cardInfo.setAuthType(labSecuritySubjectmaterialVO.getAuthType());
+            cardInfo.setAuthPwd(labSecuritySubjectmaterialVO.getAuthPwd());
+            xxpCardInfoService.updateXxpCardInfo(cardInfo);
+        }
+
         //删除改实验室模板重新添加
         labSecuritySubjectmaterialMapper.deleteLabSecurityMaterialDataBysubjectId(labSubjectList.get(0).getId());
         int id=0;

+ 10 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabStudentsInfoServiceImpl.java

@@ -198,4 +198,14 @@ public class LabStudentsInfoServiceImpl implements ILabStudentsInfoService {
     public int deleteLabStudentsInfoByJoinStudentsId(Long joinStudentsId) {
         return labStudentsInfoMapper.deleteLabStudentsInfoByJoinStudentsId(joinStudentsId);
     }
+
+    /**
+     * 查询学生信息
+     * @param subjectId 实验室id
+     * @return 学生信息
+     */
+    @Override
+    public List<LabStudentsInfo> selectLabStudentsInfoBySubjectId(Long subjectId) {
+        return labStudentsInfoMapper.selectLabStudentsInfoBySubjectId(subjectId);
+    }
 }

+ 4 - 3
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSubjectManagerService.java

@@ -1356,8 +1356,9 @@ public class LabSubjectManagerService {
                 labSensors = sensorMapper.selectSensorBySubIds(longs);
             }
             //2.1.获取详细地址后面做(已完成)
-            Long[] layoutIds = labSubjects.stream().map(a -> a.getLayoutId()).filter(a -> a != null).toArray(Long[]::new);
-            List<SubAddrr> subAddrrs = subjectLayoutService.selectAddrrByLayoutIdsByPc(layoutIds);
+//            Long[] layoutIds = labSubjects.stream().map(a -> a.getLayoutId()).filter(a -> a != null).toArray(Long[]::new);
+            Long[] subIds = labSubjects.stream().map(a -> a.getId()).toArray(Long[]::new);
+            List<SubAddrr> subAddrrs = subjectLayoutService.selectAddrrByLayoutIdsByPc(subIds);
             Map<Long, SubAddrr> subAddrrMap = subAddrrs.stream().collect(Collectors.toMap(SubAddrr::getId, Function.identity()));
             //3.获取实验室是否拥有数据权限
             //3 获取实验室数据权限(杨森的需求:仅负责人时不能修改实验室) 后面做(已完成)
@@ -1424,7 +1425,7 @@ public class LabSubjectManagerService {
                 //需求变化, 危险等级不再和危险品关联,直接和实验室关联
 
                 //设置地址信息 后面做(已完成)
-                scVO.setSubAddrr(subAddrrMap.get(a.getLayoutId()));
+                scVO.setSubAddrr(subAddrrMap.get(a.getId()));
                 if (flag) {
                     scVO.setAdmin(Boolean.FALSE);
                     //实验权限覆盖 后面做(已完成)

+ 5 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/LabSubjectServiceImpl.java

@@ -569,4 +569,9 @@ public class LabSubjectServiceImpl implements ILabSubjectService {
     public List<LabSubject> cardinfoSubList(LabSubject labSubject) {
         return labSubjectMapper.cardinfoSubList(labSubject);
     }
+
+    @Override
+    public LabSubject selectLabSubjectByNum(String number) {
+        return labSubjectMapper.selectLabSubjectByNum(number);
+    }
 }

+ 32 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/XxpCardInfoServiceImpl.java

@@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 巡查Service业务层处理
@@ -141,4 +142,35 @@ public class XxpCardInfoServiceImpl implements IXxpCardInfoService
         }
         return xxpCardInfoMapper.deleteXxpCardInfoById(id);
     }
+
+    /**
+     * 根据卡号查询是否有门禁
+     * @param cardNum
+     * @return
+     */
+    @Override
+    public List<Map<String,Object>> selectXxpCardInfoByCard(String cardNum) {
+        return xxpCardInfoMapper.selectXxpCardInfoByCard(cardNum);
+    }
+
+    /**
+     * 根据电子信息牌查询
+     * @param cardNum
+     * @return
+     */
+    @Override
+    public XxpCardInfo selectXxpInfoByCard(String cardNum) {
+        return xxpCardInfoMapper.selectXxpInfoByCard(cardNum);
+    }
+
+    /**
+     * 根据卡号和密码查询是否密码是否正确
+     * @param cardNum
+     * @param pwd
+     * @return
+     */
+    @Override
+    public int selectPwdCountByPwd(String cardNum, String pwd) {
+        return xxpCardInfoMapper.selectPwdCountByPwd(cardNum,pwd);
+    }
 }

+ 22 - 0
zd-modules/zd-modules-laboratory/src/main/java/com/zd/laboratory/service/impl/XxpUserAuthServiceImpl.java

@@ -4,6 +4,7 @@ import com.zd.common.core.exception.ServiceException;
 import com.zd.common.core.security.TokenService;
 import com.zd.common.core.utils.DateUtils;
 import com.zd.common.core.utils.StringUtils;
+import com.zd.laboratory.api.vo.XxpUserAuthVo;
 import com.zd.laboratory.domain.XxpDuty;
 import com.zd.laboratory.domain.XxpUserAuth;
 import com.zd.laboratory.domain.vo.XxpDutyVO;
@@ -105,6 +106,11 @@ public class XxpUserAuthServiceImpl implements IXxpUserAuthService
         return 1;
     }
 
+    @Override
+    public int insertXxpUserAppAuth(XxpUserAuth xxpUserAuth) {
+         return xxpUserAuthMapper.insertXxpUserAuth(xxpUserAuth);
+    }
+
     /**
      * 修改巡查
      *
@@ -140,4 +146,20 @@ public class XxpUserAuthServiceImpl implements IXxpUserAuthService
     public int deleteXxpUserAuthById(Long id) {
         return xxpUserAuthMapper.deleteXxpUserAuthById(id);
     }
+
+    @Override
+    public List<Map<String, Object>> getFingerByUserId(Long userId) {
+        return xxpUserAuthMapper.getFingerByUserId(userId);
+    }
+
+    /**
+     * 批量删除
+     *
+     * @param userId 需要删除的数据主键集合
+     * @return 结果
+     */
+    @Override
+    public int deleteXxpByUserId(Long userId){
+        return xxpUserAuthMapper.deleteXxpByUserId(userId);
+    }
 }

+ 19 - 2
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSecurityApplyMapper.xml

@@ -580,10 +580,27 @@
 
     <!--获取实验室准入人员信息-->
     <select id="selectLabSecurityApply" resultType="java.util.Map">
-          SELECT  id id,user_name userName,date_format(valid_begin_time,'%Y-%m-%d') validBeginTime,date_format(valid_end_time,'%Y-%m-%d') validEndTime,
+          SELECT  id id,user_id userId,user_name userName,date_format(valid_begin_time,'%Y-%m-%d') validBeginTime,date_format(valid_end_time,'%Y-%m-%d') validEndTime,
           (SELECT avatar FROM sys_user WHERE user_id=lab.user_id) AS avatar,
           (SELECT user_name FROM sys_user WHERE user_id=lab.user_id) AS jobNumber
-                FROM  lab_security_apply AS lab WHERE audit_status=2 AND subject_id=#{subjectId} and valid_end_time &gt;= now()
+                FROM  lab_security_apply AS lab WHERE audit_status=2 AND subject_id=#{subjectId} and valid_end_time <![CDATA[<]]> now()
+    </select>
+
+    <!--获取准入人员的手指信息-->
+    <select id="selectSecurityFingerList" resultType="java.util.Map">
+            SELECT  finger,user_id userId,user_name userName,user_type userType FROM  xxp_user_auth WHERE user_id IN (SELECT user_id
+                FROM  lab_security_apply AS lab WHERE audit_status=2 AND subject_id=#{subjectId} and valid_end_time <![CDATA[<]]> now())
+    </select>
+
+    <!--获取准入人员的卡号信息-->
+    <select id="selectSecurityCardList" resultType="java.util.Map">
+            SELECT  card_num_simple cardNum,user_id userId, nick_name userName,user_type userType FROM  sys_user WHERE user_id IN (SELECT user_id
+                FROM  lab_security_apply  WHERE audit_status=2 AND subject_id=#{subjectId} and valid_end_time <![CDATA[<]]> now())
+    </select>
+
+    <select id="selectCountLabSecurityUserId" resultType="java.util.Map">
+     SELECT user_id userId,user_name userName,user_type userType
+                FROM  lab_security_apply  WHERE audit_status=2 AND subject_id=#{subjectId} and valid_end_time <![CDATA[<]]> now() and user_id=#{userId}
     </select>
 
 </mapper>

+ 5 - 0
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabStudentsInfoMapper.xml

@@ -61,6 +61,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where join_students_id = #{joinStudentsId}
     </select>
 
+    <select id="selectLabStudentsInfoBySubjectId" resultType="com.zd.system.api.entity.LabStudentsInfo">
+             SELECT  join_students_id,face_feature  FROM  `lab_students_info` WHERE join_students_id  IN ( SELECT user_id
+                FROM  lab_security_apply AS lab WHERE audit_status=2 AND subject_id=#{subjectId} AND valid_end_time >= NOW())
+    </select>
+
     <insert id="insertLabStudentsInfo" parameterType="com.zd.system.api.entity.LabStudentsInfo">
         insert into lab_students_info
         <trim prefix="(" suffix=")" suffixOverrides=",">

+ 1 - 1
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSubjectLayoutMapper.xml

@@ -172,7 +172,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select t.id,  t.room, t.floor_id,
         lb.name as floor_name ,
         sd.dept_name as build_name
-        from lab_subject_layout as t
+        from lab_subject as t
         left join lab_building lb on lb.id = t.floor_id
         left join sys_dept sd on sd.dept_id = lb.dept_id
         where t.id in

+ 8 - 3
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/LabSubjectMapper.xml

@@ -216,7 +216,7 @@
         select t.id,
                t.name,
                bfl.floor_id,
-               lb.room,
+               t.room,
                t.dept_id,
                IFNULL(su.user_id, -1)                                                     admin_id,
                t.is_del,
@@ -266,7 +266,6 @@
         from lab_subject t
                  left join sys_user su on su.user_id = t.admin_id AND su.`del_flag` = 0
                  left join sys_dept sd on sd.dept_id = t.dept_id
-                 left join lab_subject_layout lb on lb.id = t.layout_id
                  left join lab_safe_classified cf on cf.id = t.level
                  LEFT JOIN lab_build_floor_layout bfl ON t.`id` = bfl.`sub_id`
     </sql>
@@ -1127,7 +1126,8 @@
             <if test="name != null and name !=''">
                 and s.name like concat('%', #{name}, '%')
             </if>
-            and id not in( select subject_id from xxp_card_info <if test="id != null ">where subject_id != #{id}</if> )
+            and id not in( select subject_id from xxp_card_info  )
+            <if test="id != null ">or s.id = #{id}</if>
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
@@ -1235,7 +1235,12 @@
     <select id="getSubjectDetailsById" resultType="java.lang.String">
         SELECT details FROM  lab_subject WHERE id=#{id} AND is_del=0
     </select>
+
     <select id="getSubjectNameById" resultType="java.lang.String">
            SELECT name as subjectName FROM  lab_subject WHERE id=#{id} AND is_del=0
     </select>
+
+    <select id="selectLabSubjectByNum" resultMap="LabSubjectResult">
+           SELECT  ls.id,ls.name,ls.dept_id,ls.dept_name  FROM  lab_subject ls INNER JOIN `xxp_card_info` xci ON ls.id=xci.subject_id WHERE ls.is_del=0 AND xci.card_num=#{number}
+    </select>
 </mapper>

+ 19 - 0
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/XxpCardInfoMapper.xml

@@ -13,6 +13,7 @@
         <result property="location" column="location"/>
         <result property="operate" column="operate"/>
         <result property="authType" column="auth_type"/>
+        <result property="authPwd" column="auth_pwd"/>
         <result property="subjectId" column="subject_id"/>
         <result property="subjectName" column="subject_name"/>
         <result property="deptId" column="dept_id"/>
@@ -34,6 +35,7 @@
                location,
                operate,
                auth_type,
+               auth_pwd,
                subject_id,
                subject_name,
                dept_id,
@@ -58,6 +60,7 @@
             <if test="location != null and location != '' ">and t.location = #{location}</if>
             <if test="operate != null ">and t.operate = #{operate}</if>
             <if test="authType != null ">and t.auth_type = #{authType}</if>
+            <if test="authPwd != null ">and t.auth_pwd = #{authPwd}</if>
             <if test="subjectId != null ">and t.subject_id = #{subjectId}</if>
             <if test="subjectName != null ">and t.subject_name = #{subjectName}</if>
             <if test="deptId != null ">and ( t.dept_id in (SELECT dt.dept_id FROM sys_dept dt WHERE
@@ -85,6 +88,19 @@
         where t.id = #{id}
     </select>
 
+    <select id="selectXxpCardInfoByCard" resultType="java.util.Map">
+         SELECT  card_num cardNum,is_start isRelationGuard,subject_id subjectId,auth_type authType FROM  `xxp_card_info` WHERE card_num=#{cardNum}
+         ORDER BY id DESC
+    </select>
+
+    <select id="selectXxpInfoByCard" resultMap="XxpCardInfoResult">
+         SELECT  ls.id subject_id,ls.name subject_name,ls.dept_id college_id,ls.dept_name college,xci.id id  FROM  lab_subject ls INNER JOIN `xxp_card_info` xci ON ls.id=xci.subject_id WHERE ls.is_del=0 AND xci.card_num=#{cardNum}
+    </select>
+
+    <select id="selectPwdCountByPwd" resultType="java.lang.Integer">
+         SELECT COUNT(*) FROM  `xxp_card_info` WHERE card_num=#{cardNum} AND auth_pwd=#{pwd}
+    </select>
+
     <insert id="insertXxpCardInfo" parameterType="com.zd.laboratory.domain.XxpCardInfo">
         insert into xxp_card_info
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -95,6 +111,7 @@
             <if test="location != null">location,</if>
             <if test="operate != null">operate,</if>
             <if test="authType != null">auth_type,</if>
+            <if test="authPwd != null">auth_pwd,</if>
             <if test="subjectId != null">subject_id,</if>
             <if test="subjectName != null">subject_name,</if>
             <if test="deptId != null">dept_id,</if>
@@ -114,6 +131,7 @@
             <if test="location != null">#{location},</if>
             <if test="operate != null">#{operate},</if>
             <if test="authType != null">#{authType},</if>
+            <if test="authPwd != null">#{authPwd},</if>
             <if test="subjectId != null">#{subjectId},</if>
             <if test="subjectName != null">#{subjectName},</if>
             <if test="deptId != null">#{deptId},</if>
@@ -137,6 +155,7 @@
             <if test="location != null">location = #{location},</if>
             <if test="operate != null">operate = #{operate},</if>
             <if test="authType != null">auth_type = #{authType},</if>
+            <if test="authPwd != null">auth_pwd = #{authPwd},</if>
             <if test="subjectId != null">subject_id = #{subjectId},</if>
             <if test="subjectName != null">subject_name = #{subjectName},</if>
             <if test="deptId != null">dept_id = #{deptId},</if>

+ 1 - 1
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/XxpClassifyDetailMapper.xml

@@ -58,7 +58,7 @@
                 and t.create_time &lt;= str_to_date(#{endTime}, '%Y-%m-%d')
             </if>
         </where>
-        <if test="remark =='list' "> order by isnull(sort),sort,is_collective desc ,create_time desc</if>
+        <if test="remark =='list' "> order by isnull(sort),sort,is_collective,create_time desc</if>
     </select>
 
     <select id="selectXxpClassifyDetailedById" resultMap="XxpClassifyDetailedResult">

+ 3 - 1
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/XxpClassifyMapper.xml

@@ -62,7 +62,9 @@
             order by t.create_time desc
         </if>
         <if test="remark == 'sort' ">
-            order by isnull(t.sort) ,t.sort
+            order by isnull(t.sort),t.sort,
+            t.is_show,
+            t.create_time desc
         </if>
     </select>
 

+ 13 - 4
zd-modules/zd-modules-laboratory/src/main/resources/mapper/laboratory/XxpUserAuthMapper.xml

@@ -15,6 +15,7 @@
         <result property="hardwareId" column="hardware_id"/>
         <result property="deptId" column="dept_id"/>
         <result property="deptName" column="dept_name"/>
+        <result property="fingerKey" column="finger_key"/>
         <result property="finger" column="finger"/>
         <result property="userPassword" column="user_password"/>
         <result property="updateBy" column="update_by"/>
@@ -84,10 +85,9 @@
         where t.id = #{id}
     </select>
 
-
-
-
-
+    <select id="getFingerByUserId" resultType="java.util.Map">
+        SELECT id AS id, finger as finger,finger_key as fingerKey FROM  `xxp_user_auth` WHERE user_id=#{userId}
+    </select>
 
     <insert id="insertXxpUserAuth" parameterType="com.zd.laboratory.domain.XxpUserAuth">
         insert into xxp_user_auth
@@ -101,6 +101,7 @@
             <if test="hardwareId != null">hardware_id,</if>
             <if test="deptId != null">dept_id,</if>
             <if test="deptName != null">dept_name,</if>
+            <if test="fingerKey != null">finger_key,</if>
             <if test="finger != null">finger,</if>
             <if test="userPassword != null">user_password,</if>
             <if test="createBy != null">create_by,</if>
@@ -116,6 +117,7 @@
             <if test="hardwareId != null">#{hardwareId},</if>
             <if test="deptId != null">#{deptId},</if>
             <if test="deptName != null">#{deptName},</if>
+            <if test="fingerKey != null">#{fingerKey},</if>
             <if test="finger != null">#{finger},</if>
             <if test="userPassword != null">#{userPassword},</if>
             <if test="createBy != null">#{createBy},</if>
@@ -135,6 +137,7 @@
             <if test="hardwareId != null">hardware_id = #{hardwareId},</if>
             <if test="deptId != null">dept_id = #{deptId},</if>
             <if test="deptName != null">dept_name = #{deptName},</if>
+            <if test="fingerKey != null">finger_key = #{fingerKey},</if>
             <if test="finger != null">finger = #{finger},</if>
             <if test="userPassword != null">user_password = #{userPassword},</if>
             <if test="createBy != null">create_by = #{createBy},</if>
@@ -151,6 +154,12 @@
         where id = #{id}
     </delete>
 
+    <delete id="deleteXxpByUserId">
+        delete
+        from xxp_user_auth
+        where user_id = #{user_id}
+    </delete>
+
     <delete id="deleteXxpUserAuthByIds">
         delete from xxp_user_auth where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">

+ 12 - 0
zd-modules/zd-modules-system/src/main/java/com/zd/system/controller/SysUserController.java

@@ -849,4 +849,16 @@ public class SysUserController extends BaseController {
         userService.oldCheckNewCard();
         return R.ok();
     }
+
+
+    /**
+     * 根据用户id查询用户基本信息
+     * @param userId
+     * @return
+     */
+    @ApiOperation("根据用户id查询用户基本信息")
+    @RequestMapping("/getUserInfoByUserId")
+    public ResultData getUserInfoByUserId(Long userId) {
+        return ResultData.success(userService.selectUserByUserId(userId));
+    }
 }

+ 7 - 0
zd-modules/zd-modules-system/src/main/java/com/zd/system/mapper/SysUserMapper.java

@@ -295,4 +295,11 @@ public interface SysUserMapper {
      * @return
      */
     public List<SysUser> selectUserDutyList(SysUser sysUser);
+
+    /**
+     * 根据用户id查询用户基本信息
+     * @param userId
+     * @return
+     */
+    public Map<String, Object> selectUserByUserId(Long userId);
 }

+ 7 - 0
zd-modules/zd-modules-system/src/main/java/com/zd/system/service/ISysUserService.java

@@ -364,4 +364,11 @@ public interface ISysUserService {
      * @return
      */
     public List<SysUser> selectUserDutyList(SysUser sysUser);
+
+    /**
+     * 根据用户id查询基本用户信息
+     * @param userId
+     * @return
+     */
+    public Map<String,Object> selectUserByUserId(Long userId);
 }

+ 10 - 0
zd-modules/zd-modules-system/src/main/java/com/zd/system/service/impl/SysUserServiceImpl.java

@@ -1197,4 +1197,14 @@ public class SysUserServiceImpl implements ISysUserService {
     public List<SysUser> selectUserDutyList(SysUser sysUser) {
         return userMapper.selectUserDutyList(sysUser);
     }
+
+    /**
+     * 根据用户id查询基本用户信息
+     * @param userId
+     * @return
+     */
+    @Override
+    public Map<String,Object> selectUserByUserId(Long userId) {
+        return userMapper.selectUserByUserId(userId);
+    }
 }

+ 4 - 0
zd-modules/zd-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -53,6 +53,7 @@
         <!--<collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>-->
     </resultMap>
 
+
     <resultMap id="deptResult" type="com.zd.model.entity.SysDept">
         <id property="deptId" column="dept_id"/>
         <result property="parentId" column="parent_id"/>
@@ -1059,5 +1060,8 @@
         <!-- 数据范围过滤 -->
         ${params.dataScope}
     </select>
+    <select id="selectUserByUserId" resultType="java.util.Map">
+         SELECT user_type userType,nick_name userName,user_id userId FROM  `sys_user` WHERE del_flag=0 AND user_id=#{userId}
+    </select>
 
 </mapper>