diff --git a/dcsoft-modules/dcsoft-file/pom.xml b/dcsoft-modules/dcsoft-file/pom.xml
index f058f84..c41dd54 100644
--- a/dcsoft-modules/dcsoft-file/pom.xml
+++ b/dcsoft-modules/dcsoft-file/pom.xml
@@ -47,6 +47,12 @@
fastdfs-client
+
+ cn.hutool
+ hutool-all
+ 5.3.3
+
+
io.minio
@@ -65,6 +71,10 @@
com.dcsoft
dcsoft-common-swagger
+
+ com.dcsoft
+ dcsoft-common-redis
+
diff --git a/dcsoft-modules/dcsoft-file/src/main/java/com/dcsoft/file/controller/SysFileController.java b/dcsoft-modules/dcsoft-file/src/main/java/com/dcsoft/file/controller/SysFileController.java
index 0d41fc4..29020a7 100644
--- a/dcsoft-modules/dcsoft-file/src/main/java/com/dcsoft/file/controller/SysFileController.java
+++ b/dcsoft-modules/dcsoft-file/src/main/java/com/dcsoft/file/controller/SysFileController.java
@@ -1,49 +1,47 @@
package com.dcsoft.file.controller;
-import com.alibaba.csp.sentinel.slots.block.BlockException;
+import cn.hutool.http.HttpUtil;
import com.alibaba.csp.sentinel.slots.block.RuleConstant;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.dcsoft.common.core.domain.R;
import com.dcsoft.common.core.exception.ServiceException;
-import com.dcsoft.file.service.IAlgoService;
+import com.dcsoft.common.core.utils.StringUtils;
+import com.dcsoft.common.core.utils.file.FileUtils;
+import com.dcsoft.common.redis.service.RedisService;
import com.dcsoft.file.service.IFaceService;
-import com.dcsoft.file.utils.*;
-import com.dcsoft.system.api.RemoteStudentService;
+import com.dcsoft.file.service.ISysFileService;
+import com.dcsoft.file.utils.FileUploadUtils;
+import com.dcsoft.file.utils.ImageToBase64Utils;
+import com.dcsoft.file.utils.MinioUtil;
+import com.dcsoft.file.utils.PictureUtils;
+import com.dcsoft.system.api.domain.SysFile;
import io.minio.MinioClient;
import io.minio.RemoveObjectArgs;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.lang3.ArrayUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.aspectj.lang.reflect.MethodSignature;
+import org.apache.commons.codec.digest.DigestUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.MediaType;
-import org.springframework.util.ClassUtils;
-import org.springframework.util.MultiValueMap;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
-import com.dcsoft.common.core.domain.R;
-import com.dcsoft.common.core.utils.file.FileUtils;
-import com.dcsoft.file.service.ISysFileService;
-import com.dcsoft.system.api.domain.SysFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
-import java.lang.annotation.Annotation;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
-import static com.dcsoft.file.utils.MinioUtil.getBase64String;
+import java.util.concurrent.TimeUnit;
/**
* 文件请求处理
@@ -51,11 +49,12 @@ import static com.dcsoft.file.utils.MinioUtil.getBase64String;
* @author dcsoft
*/
@RestController
-public class SysFileController
-{
+public class SysFileController {
private static final Logger log = LoggerFactory.getLogger(SysFileController.class);
- /** 获取yml配置类里的桶名称*/
+ /**
+ * 获取yml配置类里的桶名称
+ */
@Value("${minio.bucket-name}")
private String bucketName;
@@ -69,7 +68,7 @@ public class SysFileController
private String bucketName3;
@Autowired
- private IAlgoService algoService;
+ private RedisService redisService;
@Autowired
private IFaceService faceService;
@@ -98,24 +97,35 @@ public class SysFileController
@Value("${file.gwurl}")
private String filegwurl;
+ @Value("${yf.url:http://wo-api.uni-ubi.com}")
+ private String yfUrl;
+
+ @Value("${yf.projectGuid:3C1BA78F6FAD489AA0E6C7D285D8CFDC}")
+ private String yfProjectGuid;
+
+ @Value("${yf.appKey:7E28496B107D45D3B683B143E944D64B}")
+ private String yfAppKey;
+
+ @Value("${yf.appSecret:9D397690DAD64CFE9278FED5C3BCA68F}")
+ private String yfAppSecret;
+
+ private final String yfFaceDetectUrl = "/v2/algor/face/detect";
+
+
/**
* 文件上传请求
*/
@PostMapping("upload")
- public R upload(MultipartFile file)
- {
- try
- {
+ public R upload(MultipartFile file) {
+ try {
// 上传并返回访问地址
String url = sysFileService.uploadFile(file);
SysFile sysFile = new SysFile();
sysFile.setName(FileUtils.getName(url));
- url=url.replace(fileurl,filegwurl);
+ url = url.replace(fileurl, filegwurl);
sysFile.setUrl(url);
return R.ok(sysFile);
- }
- catch (Exception e)
- {
+ } catch (Exception e) {
log.error("上传文件失败", e);
return R.fail(e.getMessage());
}
@@ -125,36 +135,30 @@ public class SysFileController
* 文件上传请求
*/
@PostMapping("avatar")
- public R avatar(@RequestParam("avatarfile") MultipartFile file)
- {
- try
- {
+ public R avatar(@RequestParam("avatarfile") MultipartFile file) {
+ try {
// 上传并返回访问地址
String url = sysFileService.uploadFile(file);
SysFile sysFile = new SysFile();
sysFile.setName(FileUtils.getName(url));
sysFile.setUrl(url);
return R.ok(sysFile);
- }
- catch (Exception e)
- {
+ } catch (Exception e) {
log.error("上传文件失败", e);
return R.fail(e.getMessage());
}
}
@PostMapping("uploadMinioCar")
- public R uploadMinioCar(@RequestParam("file") MultipartFile file)
- {
- try
- {
- String fileNames = FileUploadUtils.uploadMinio(file,this.bucketName2,file.getName());
+ public R uploadMinioCar(@RequestParam("file") MultipartFile file) {
+ try {
+ String fileNames = FileUploadUtils.uploadMinio(file, this.bucketName2, file.getName());
SysFile sysFile = new SysFile();
sysFile.setName(FileUtils.getName(fileNames));
- fileNames=fileNames.replace(miniourl,miniogwurl);
+ fileNames = fileNames.replace(miniourl, miniogwurl);
sysFile.setUrl(fileNames);
return R.ok(sysFile);
- }catch (Exception e){
+ } catch (Exception e) {
log.error("上传文件失败", e);
return R.fail(e.getMessage());
}
@@ -182,13 +186,11 @@ public class SysFileController
}
-
/**
* 文件上传请求
*/
@PostMapping("uploadMinio")
- public R uploadMinio(MultipartFile file, String fileName)
- {
+ public R uploadMinio(MultipartFile file, String fileName) {
/* //判断压缩图片
if((1024 * 1024 * 0.1) <= file.getSize()){
// 小于 1M 的
@@ -213,8 +215,7 @@ public class SysFileController
throw new RuntimeException(e);
}
}*/
- try
- {
+ try {
/*initFlowRules();//
// 上传并返回访问地址
//上传前进行人脸检测
@@ -227,15 +228,15 @@ public class SysFileController
}
//提取特征值
String feature=faceService.getFeature(base64String);*/
- String fileNames = FileUploadUtils.uploadMinio(file,this.bucketName,fileName);
+ String fileNames = FileUploadUtils.uploadMinio(file, this.bucketName, fileName);
SysFile sysFile = new SysFile();
sysFile.setName(FileUtils.getName(fileNames));
- fileNames=fileNames.replace(miniourl,miniogwurl);
+ fileNames = fileNames.replace(miniourl, miniogwurl);
sysFile.setUrl(fileNames);
//sysFile.setFeature(feature);
return R.ok(sysFile);
- }catch (Exception e){
+ } catch (Exception e) {
log.error("上传文件失败", e);
return R.fail(e.getMessage());
}
@@ -245,11 +246,10 @@ public class SysFileController
* 文件上传请求
*/
@PostMapping("uploadMinios")
- public R uploadMinios(MultipartFile file,String fileName)
- {
+ public R uploadMinios(MultipartFile file, String fileName) {
//判断压缩图片
- if((1024 * 1024 * 0.1) <= file.getSize()){
+ if ((1024 * 1024 * 0.1) <= file.getSize()) {
// 小于 1M 的
try {
String fileNames1 = file.getOriginalFilename();
@@ -274,15 +274,14 @@ public class SysFileController
throw new RuntimeException(e);
}
}
- try
- {
+ try {
// 上传并返回访问地址
- String fileNames = FileUploadUtils.uploadMinio(file,this.bucketName,fileName);
+ String fileNames = FileUploadUtils.uploadMinio(file, this.bucketName, fileName);
SysFile sysFile = new SysFile();
sysFile.setName(FileUtils.getName(fileNames));
sysFile.setUrl(fileNames);
return R.ok(sysFile);
- }catch (Exception e){
+ } catch (Exception e) {
log.error("上传文件失败", e);
return R.fail(e.getMessage());
}
@@ -325,6 +324,7 @@ public class SysFileController
// 上传并返回访问地址
String fileNames = FileUploadUtils.uploadMinio(file, this.bucketName1, fileName);
+// checkPhoto(fileNames);
SysFile sysFile = new SysFile();
sysFile.setName(FileUtils.getName(fileNames));
fileNames = fileNames.replace(miniourl, miniogwurl);
@@ -361,40 +361,66 @@ public class SysFileController
* @param imgBase64
*/
private void checkPhoto(String imgBase64) {
- if (StringUtils.isNotEmpty(imgBase64)) {
- Map map = new HashMap<>();
- map.put("imgBase64", imgBase64);
- String body = HttpUtil.postData(upload, map);
- log.info("checkPhoto_body:{}", body);
- JSONObject object = JSONObject.parseObject(body);
- log.info("返回校验结果:{}", JSON.toJSONString(object));
- if (501 == object.getInteger("code")) {
- throw new ServiceException("系统繁忙,请稍后再试!");
- } else if (200 != object.getInteger("code")) {
- throw new ServiceException("未检测到人脸信息,请重新上传!");
- } else if (null != object.getInteger("data") && 90 > object.getInteger("data")) {
- throw new ServiceException("人脸照片校验不合格,请重新上传!");
+ String token = redisService.getCacheObject("yf-Token");
+ if (StringUtils.isBlank(token)) {
+ try {
+ long l = System.currentTimeMillis();
+ String sign = DigestUtils.md5Hex(yfAppKey + l + yfAppSecret);
+ Map map = new HashMap<>();
+ map.put("projectGuid", yfProjectGuid);
+
+ String result = HttpUtil.createGet(yfUrl + "/v1/" + yfProjectGuid + "/auth")
+ .header("appKey", yfAppKey)
+ .header("timestamp", String.valueOf(l))
+ .header("sign", sign)
+ .form(map)
+ .timeout(5000).execute().body();
+ JSONObject jsonObject1 = JSONObject.parseObject(result);
+ if (jsonObject1.getInteger("result") == 1 && StringUtils.isNotBlank(jsonObject1.getString("data"))) {
+ token = jsonObject1.getString("data");
+ redisService.setCacheObject("yf-Token", token, 20 * 60 * 60L, TimeUnit.SECONDS);
+ }
+ } catch (Exception e) {
+ throw new ServiceException("宇泛鉴权失败!");
}
}
+
+ //https://api.uni-ubi.com/wo/apis/V2.1/ai/portrait.html#%E4%BA%BA%E5%83%8F%E6%A3%80%E6%B5%8B
+ Map map = new HashMap<>();
+ map.put("imageUrl", "");
+ map.put("imageBase64", imgBase64);
+ map.put("returnLandmark", "true");
+ map.put("returnAttributes", "true");
+ map.put("unitTag", "");
+ //0:检测全部属性是否合格
+ map.put("validLevel", "0");
+
+ //人脸算法校验
+ String result = HttpUtil.createPost(yfUrl + yfFaceDetectUrl)
+ .header("token", token)
+ .header("projectGuid", yfProjectGuid)
+ .body(JSON.toJSONString(map))
+ .timeout(5000).execute().body();
+ log.info("请求宇泛人脸返回:{}", result);
+ JSONObject jsonObject1 = JSONObject.parseObject(result);
+ if (jsonObject1.getInteger("result") != 1 || !jsonObject1.getBoolean("success")) {
+ throw new ServiceException("人脸检测失败,请重新上传");
+ }
+
}
-
@PostMapping("uploadMinio2")
- public R uploadMinio2(MultipartFile file,String fileName, String name)
- {
- try
- {
+ public R uploadMinio2(MultipartFile file, String fileName, String name) {
+ try {
// 上传并返回访问地址
- String fileNames = FileUploadUtils.uploadMinio(file,this.bucketName1,fileName);
+ String fileNames = FileUploadUtils.uploadMinio(file, this.bucketName1, fileName);
SysFile sysFile = new SysFile();
sysFile.setName(URLEncoder.encode(name, "UTF-8"));
- fileNames=fileNames.replace(miniourl,miniogwurl);
+ fileNames = fileNames.replace(miniourl, miniogwurl);
sysFile.setUrl(fileNames);
return R.ok(sysFile);
- }
- catch (Exception e)
- {
+ } catch (Exception e) {
log.error("上传文件失败", e);
return R.fail(e.getMessage());
}
@@ -405,17 +431,14 @@ public class SysFileController
* 文件上传请求
*/
@GetMapping("compareTwoPic")
- public R compareTwoPic(@RequestParam("url1") String url1,@RequestParam("url2") String url2){
- try
- {
+ public R compareTwoPic(@RequestParam("url1") String url1, @RequestParam("url2") String url2) {
+ try {
//进行人脸1v1
- byte[] image1= Base64.decodeBase64(ImageToBase64Utils.getImgUrlToBase64(url1));
- byte[] image2=Base64.decodeBase64(ImageToBase64Utils.getImgUrlToBase64(url2));
- float data=faceService.compareTwoPic(image1,image2);
+ byte[] image1 = Base64.decodeBase64(ImageToBase64Utils.getImgUrlToBase64(url1));
+ byte[] image2 = Base64.decodeBase64(ImageToBase64Utils.getImgUrlToBase64(url2));
+ float data = faceService.compareTwoPic(image1, image2);
return R.ok(data);
- }
- catch (Exception e)
- {
+ } catch (Exception e) {
log.error("上传文件失败", e);
return R.fail(e.getMessage());
}
@@ -425,21 +448,18 @@ public class SysFileController
* 文件上传请求
*/
@GetMapping("comparePic")
- public R comparePic(@RequestParam("feature1") String feature1,@RequestParam("feature2") String feature2){
- try
- {
+ public R comparePic(@RequestParam("feature1") String feature1, @RequestParam("feature2") String feature2) {
+ try {
//进行人脸1v1
- float data=faceService.compareTwoPic(feature1,feature2);
+ float data = faceService.compareTwoPic(feature1, feature2);
return R.ok(data);
- }
- catch (Exception e)
- {
+ } catch (Exception e) {
log.error("上传文件失败", e);
return R.fail(e.getMessage());
}
}
- private static void initFlowRules(){
+ private static void initFlowRules() {
List rules = new ArrayList<>();
FlowRule rule = new FlowRule();
rule.setResource("HelloWorld");
diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/mapper/SysPeopleMapper.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/mapper/SysPeopleMapper.java
index a69b5fe..1020b1e 100644
--- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/mapper/SysPeopleMapper.java
+++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/mapper/SysPeopleMapper.java
@@ -1,6 +1,8 @@
package com.dcsoft.system.mapper;
import java.util.List;
+
+import com.dcsoft.system.api.domain.SysUser;
import com.dcsoft.system.domain.SysPeople;
import com.dcsoft.system.domain.SysPeopleLeave;
import com.dcsoft.system.domain.vo.OfficialAccountVo;
@@ -108,4 +110,6 @@ public interface SysPeopleMapper
List queryPeopleByPosition(String position);
List querySysPeopleInfo(Long userId);
+
+ Long selectAppSysPeople(SysUser sysUser);
}
diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/service/ISysPeopleService.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/service/ISysPeopleService.java
index bb0449d..518d135 100644
--- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/service/ISysPeopleService.java
+++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/service/ISysPeopleService.java
@@ -1,6 +1,8 @@
package com.dcsoft.system.service;
import java.util.List;
+
+import com.dcsoft.system.api.domain.SysUser;
import com.dcsoft.system.domain.SysPeople;
import com.dcsoft.system.domain.vo.OfficialAccountVo;
@@ -113,4 +115,6 @@ public interface ISysPeopleService
List queryPeopleByPosition(String position);
List querySysPeopleInfo(Long userId);
+
+ Long selectAppSysPeople(SysUser sysUser);
}
diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/service/impl/SysPeopleServiceImpl.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/service/impl/SysPeopleServiceImpl.java
index bb080a1..89624fb 100644
--- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/service/impl/SysPeopleServiceImpl.java
+++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/service/impl/SysPeopleServiceImpl.java
@@ -5,6 +5,7 @@ import com.dcsoft.common.core.utils.DateUtils;
import com.dcsoft.common.core.utils.StringUtils;
import com.dcsoft.common.core.utils.uuid.IdUtils;
import com.dcsoft.common.datascope.annotation.DataScope;
+import com.dcsoft.system.api.domain.SysUser;
import com.dcsoft.system.domain.SysBranch;
import com.dcsoft.system.domain.SysPeople;
import com.dcsoft.system.domain.vo.JjDivisionVo;
@@ -137,6 +138,11 @@ public class SysPeopleServiceImpl implements ISysPeopleService
return sysPeopleMapper.querySysPeopleInfo(userId);
}
+ @Override
+ public Long selectAppSysPeople(SysUser sysUser) {
+ return sysPeopleMapper.selectAppSysPeople(sysUser);
+ }
+
@Override
@DataScope(deptAlias = "d", userAlias = "u")
public List selectSysPeopleLists(SysPeople sysPeople)
diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/uniubi/service/impl/SysSdkServiceImpl.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/uniubi/service/impl/SysSdkServiceImpl.java
index 49be802..bf5bbdd 100644
--- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/uniubi/service/impl/SysSdkServiceImpl.java
+++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/uniubi/service/impl/SysSdkServiceImpl.java
@@ -224,25 +224,25 @@ public class SysSdkServiceImpl implements ISysSdkService {
}
@Override
- public String imageCreateUrl(String id,String faceId, String imgUrl, String ip, String pass) {
- String url="http://"+ip+":8090/face/createByUrl";
- Map paramMap=new HashMap();
- paramMap.put("pass",pass);
- paramMap.put("personId",id);
- paramMap.put("faceId",faceId);//可不传,设为空
+ public String imageCreateUrl(String id, String faceId, String imgUrl, String ip, String pass) {
+ String url = "http://" + ip + ":8090/face/createByUrl";
+ Map paramMap = new HashMap();
+ paramMap.put("pass", pass);
+ paramMap.put("personId", id);
+ paramMap.put("faceId", faceId);//可不传,设为空
//照地址替换
- if(imgUrl.contains("http://tdmj.kmlygroup.com")){
- imgUrl=imgUrl.replace("http://tdmj.kmlygroup.com","http://192.168.251.16");
+ if (imgUrl.contains("http://tdmj.kmlygroup.com")) {
+ imgUrl = imgUrl.replace("http://tdmj.kmlygroup.com", "http://192.168.251.16");
}
- if(imgUrl.contains("https://mj.kmlygroup.com/")){
- imgUrl=imgUrl.replace("https://mj.kmlygroup.com/","http://192.168.255.51:9000/");
+ if (imgUrl.contains("https://mj.kmlygroup.com/")) {
+ imgUrl = imgUrl.replace("https://mj.kmlygroup.com/", "http://192.168.255.51:9000/");
}
- if(imgUrl.contains("https://fk.xyxaks.cn/")){
- imgUrl=imgUrl.replace("https://fk.xyxaks.cn/","http://192.168.33.96:9000/");
+ if (imgUrl.contains("https://fk.xyxaks.cn/")) {
+ imgUrl = imgUrl.replace("https://fk.xyxaks.cn/", "http://192.168.33.96:9000/");
}
- paramMap.put("imgUrl",imgUrl);
- String response= HttpUtil.sendxwwwform(url,paramMap);
- log.info("imageCreateUrl:{}", response);
+ paramMap.put("imgUrl", imgUrl);
+ String response = HttpUtil.sendxwwwform(url, paramMap);
+ log.info("ip:{},imageCreateUrl:{}", ip, response);
return response;
}
diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisitorController.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisitorController.java
index e4df848..bcb7736 100644
--- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisitorController.java
+++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/controller/VisitorController.java
@@ -30,6 +30,7 @@ import com.dcsoft.common.security.utils.SecurityUtils;
import com.dcsoft.common.sms.config.properties.SmsProperties;
import com.dcsoft.common.sms.entity.SmsResult;
import com.dcsoft.common.sms.service.SmsTemplate;
+import com.dcsoft.system.api.domain.SysUser;
import com.dcsoft.system.api.model.LoginUser;
import com.dcsoft.system.domain.*;
import com.dcsoft.system.domain.vo.KeyLabelVo;
@@ -120,6 +121,9 @@ public class VisitorController extends BaseController {
@Resource
private IVisCarryStuffService visCarryStuffService;
+ @Resource
+ private ISysUserService sysUserService;
+
@Value("${qd.url}")
public String qdUrl;
@@ -617,42 +621,6 @@ public class VisitorController extends BaseController {
return "https://fk.xyxaks.cn/h5/?c=" + code + "1";
}
-
- /**
- * 组织链接内容(申请人&随访人基本信息)
- *
- * @return
- */
- public String getContent(Visitor visitor, List itemList) {
- String matterName = "";
- if (StringUtils.isNotBlank(visitor.getMatter())) {
- matterName = MatterEnum.getByCode(visitor.getMatter());
- }
- String startTime = DateUtil.format(visitor.getStartTime(), DatePattern.NORM_DATETIME_FORMATTER);
- String endTime = DateUtil.format(visitor.getEndTime(), DatePattern.NORM_DATETIME_FORMATTER);
- StringBuilder sb = new StringBuilder();
- sb.append("收到新的访客申请:").append(matterName).append("\n");
- //面试
- if (StringUtils.equals(visitor.getMatter(), MatterEnum.INTERVIEW.getCode())) {
- SysBranch sysBranch = sysBranchService.selectSysBranchById(visitor.getDeptId());
- sb.append("面试公司:").append(sysBranch.getName()).append("\n");
- } else {//访客
- sb.append("来访公司:").append(visitor.getVisitingUnit() == null ? "用户未填写" : visitor.getVisitingUnit()).append("\n");
- }
- sb.append("申请人:").append(visitor.getName()).append("\n");
- sb.append("申请人联系方式:").append(visitor.getPhone() == null ? "用户未填写" : visitor.getPhone()).append("\n");
- sb.append("预约申请时间:").append(startTime).append("至").append(endTime).append("\n");
- if (CollUtil.isNotEmpty(itemList)) {
- for (Visitor item : itemList) {
- sb.append("随访人:").append(item.getName()).append("\n");
- sb.append("随访人联系方式:").append(item.getPhone() == null ? "未填写" : item.getPhone()).append("\n");
- }
- }
- sb.append("点击链接进行审核:");
- log.info("getContent:{}", JSON.toJSONString(sb));
- return sb.toString();
- }
-
/**
* 钉工牌消息通知
*/
@@ -1009,6 +977,7 @@ public class VisitorController extends BaseController {
try {
String telephone = StringUtils.isBlank(visitor.getTelephone()) ? "1" : visitor.getTelephone();
Boolean lock = redisService.lock(APPROVE_KEY, telephone, 60 * 5, TimeUnit.SECONDS);
+ log.info("流程审核-lock:{}", lock);
if (!lock) {
log.error("approve-审核人员正在审核中");
return error("正在审核中");
@@ -1028,10 +997,10 @@ public class VisitorController extends BaseController {
examine.setVisitorId(visitor.getId());
visitor.setState(examine.getExamine());
- Map map = dictDataService.queryDictData("sys_park_group");
+// Map map = dictDataService.queryDictData("sys_park_group");
//审核通过
- if(Constants.ZERO.equals(examine.getExamine())) {
+ if (Constants.ZERO.equals(examine.getExamine())) {
//被访人审核
if (visitor1.getCurrentNode() == 1) {
visitor.setNextStepReviewer(visitor.getReviewer2());
@@ -1081,7 +1050,6 @@ public class VisitorController extends BaseController {
} catch (Exception e) {
log.error("访客approve-sendWeCom异常:", e);
}
-
} else {//最后一级审核
visitor.setExamineState(examine.getExamine());
//保存审核历史表
@@ -1097,6 +1065,7 @@ public class VisitorController extends BaseController {
// 园区人脸下发到设备
if (StringUtils.isEmpty(visitor1.getGuid())) {
List listVisitorId = new ArrayList<>();
+ log.info("======开始下发主数据人脸信息:{}", visitor1.getId());
Visitor s = deviceDistribute(visitor1, 1);
Visitor visitor3 = new Visitor();
visitor3.setGuid(s.getGuid());
@@ -1111,6 +1080,8 @@ public class VisitorController extends BaseController {
Visitor visitorInfo = new Visitor();
visitor2.setUserId(visitor1.getUserId());
visitor2.setRuleGuid(s.getRuleGuid());
+ log.info("======开始下发从数据人脸信息:{}", visitor1.getId());
+ log.info("从数据规则id:{}", s.getRuleGuid());
Visitor visitorId = deviceDistribute(visitor2, 2);
visitorInfo.setId(visitor2.getId());
visitorInfo.setGuid(visitorId.getGuid());
@@ -1159,7 +1130,6 @@ public class VisitorController extends BaseController {
log.error("访客approve-sendWeCom驳回异常:", e);
}
// 申请人发送短信(审核不通过)
-
log.info("approve-发拒绝短信:{}", visitor.getPhone());
try {
sendMessage(visitor.getPhone(), "1", parkName, smsProperties.getTemplate3());
@@ -1174,7 +1144,7 @@ public class VisitorController extends BaseController {
} catch (Exception e) {
log.error("审核异常:", e);
throw new ServiceException("审核异常");
- }finally {
+ } finally {
redisService.deleteObject(APPROVE_KEY);
}
}
@@ -1516,6 +1486,7 @@ public class VisitorController extends BaseController {
String ruleGuid = visitor.getRuleGuid();
if(type == 1) {
String s1 = sdkService.ruleCreate("vis_" + visitor.getId(), ip, pass, visitor.getStartTime(), visitor.getEndTime());
+ log.info("设备:{}-创建规则结果:{}", e.getIp(), s1);
JSONObject jsonObject1 = JSONObject.parseObject(s1);
if (!StringUtils.equals("LAN_SUS-0", jsonObject1.getString("code"))) {
log.error("临时访客创建规则下发失败visitorId:{},ip:{}", visitor.getId(), e.getIp());
@@ -1535,7 +1506,9 @@ public class VisitorController extends BaseController {
person.setRule(objects);
//创建人员
+ log.info("设备:{},临时访客创建人员:{}", ip, JSON.toJSONString(person));
String s2 = sdkService.personCreate(person, ip, pass);
+ log.info("设备:{},临时访客创建人员返回:{}", ip, s2);
JSONObject jsonObject3 = JSONObject.parseObject(s2);
if (!StringUtils.equals("LAN_SUS-0", jsonObject3.getString("code"))) {
log.error("临时访客创建人员下发失败visitorId:{},ip:{}", visitor.getId(), e.getIp());
@@ -1852,4 +1825,56 @@ public class VisitorController extends BaseController {
}
+
+ /**
+ * 查询我的审核列表
+ */
+ @GetMapping(value = "/getReviewList")
+ public TableDataInfo getReviewList(Visitor visitor) {
+
+ //查询当前登陆人
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+
+ Long userId = loginUser.getUserid();
+ SysUser sysUser = sysUserService.selectUserById(userId);
+
+ Long peopleId = sysPeopleService.selectAppSysPeople(sysUser);
+
+ startPage();
+ //临时访客
+ if (StringUtils.equals("0", visitor.getVisitorType())) {
+ List list = visitorService.queryReviewList(peopleId);
+ return getDataTable(list);
+ }
+ //出门证
+ if (StringUtils.equals("1", visitor.getVisitorType())) {
+ List list = visCarryStuffService.queryReviewList(peopleId);
+
+ //查询物品信息列表
+ List collect = list.stream().map(VisExitOutVo::getId).collect(Collectors.toList());
+ VisStuffInfoVo visStuffInfoVo = new VisStuffInfoVo();
+ visStuffInfoVo.setExitIds(collect);
+ List stuffList = visCarryStuffService.selectStuffList(visStuffInfoVo);
+ if (CollUtil.isEmpty(stuffList)) {
+ return getDataTable(list);
+ }
+
+ //处理字典值
+ Map map = dictDataService.queryDictData("vis_out_stuff_type");
+ stuffList.forEach(stuff -> {
+ if (StrUtil.isNotBlank(stuff.getType())) {
+ stuff.setTypeName(map.get(stuff.getType()));
+ }
+ });
+
+ //构造数据
+ Map> collect1 = stuffList.stream().collect(Collectors.groupingBy(VisStuffInfoVo::getExitId));
+ list.forEach(exit -> {
+ exit.setVisStuffInfoList(collect1.get(exit.getId()));
+ });
+
+ return getDataTable(list);
+ }
+ return getDataTable(new ArrayList<>());
+ }
}
diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisCarryStuffMapper.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisCarryStuffMapper.java
index 2ca8cda..0aab618 100644
--- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisCarryStuffMapper.java
+++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisCarryStuffMapper.java
@@ -41,4 +41,6 @@ public interface VisCarryStuffMapper {
List selectexpireVisCarryStuff(Date dateTime);
void updateStaffState(VisExitOutVo visExitOutVo);
+
+ List queryReviewList(Long peopleId);
}
diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisitorMapper.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisitorMapper.java
index 82683a6..8008c16 100644
--- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisitorMapper.java
+++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/mapper/VisitorMapper.java
@@ -256,4 +256,6 @@ public interface VisitorMapper
void deleteVisitorReviewProcess(@Param("id") Long id);
List addVisitorCheck(@Param("phones") List phones,@Param("startTime") Date startTime);
+
+ List queryReviewList(Long peopleId);
}
diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/IVisCarryStuffService.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/IVisCarryStuffService.java
index 728f82d..777d848 100644
--- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/IVisCarryStuffService.java
+++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/IVisCarryStuffService.java
@@ -40,4 +40,6 @@ public interface IVisCarryStuffService {
List selectexpireVisCarryStuff(Date dateTime);
void updateStaffState(VisExitOutVo visExitOutVo);
+
+ List queryReviewList(Long peopleId);
}
diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/IVisitorService.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/IVisitorService.java
index 4c9c857..82c0cff 100644
--- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/IVisitorService.java
+++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/IVisitorService.java
@@ -268,4 +268,6 @@ public interface IVisitorService
void cancel(Visitor visitor);
List addVisitorCheck(List phones, Date startTime);
+
+ List queryReviewList(Long peopleId);
}
diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisCarryStuffImpl.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisCarryStuffImpl.java
index 4305ca7..352205c 100644
--- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisCarryStuffImpl.java
+++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisCarryStuffImpl.java
@@ -97,6 +97,11 @@ public class VisCarryStuffImpl implements IVisCarryStuffService {
visCarryStuffMapper.updateStaffState(visExitOutVo);
}
+ @Override
+ public List queryReviewList(Long peopleId) {
+ return visCarryStuffMapper.queryReviewList(peopleId);
+ }
+
@Override
public VisExitOutVo selectVisExitOutById(Long id) {
return visCarryStuffMapper.selectVisExitOutById(id);
diff --git a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisitorServiceImpl.java b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisitorServiceImpl.java
index c12c180..5a0a60e 100644
--- a/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisitorServiceImpl.java
+++ b/dcsoft-modules/dcsoft-system/src/main/java/com/dcsoft/system/visitor/service/impl/VisitorServiceImpl.java
@@ -823,4 +823,9 @@ public class VisitorServiceImpl implements IVisitorService {
return visitorMapper.addVisitorCheck(phones, startTime);
}
+ @Override
+ public List queryReviewList(Long peopleId) {
+ return visitorMapper.queryReviewList(peopleId);
+ }
+
}
diff --git a/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/SysPeopleMapper.xml b/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/SysPeopleMapper.xml
index 3b65320..9a6e4b4 100644
--- a/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/SysPeopleMapper.xml
+++ b/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/SysPeopleMapper.xml
@@ -325,4 +325,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
+
diff --git a/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisCarryStuffMapper.xml b/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisCarryStuffMapper.xml
index ac7603f..256316c 100644
--- a/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisCarryStuffMapper.xml
+++ b/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisCarryStuffMapper.xml
@@ -333,6 +333,23 @@
and e.update_time >= #{dateTime}
+
+
insert into vis_exit_out
diff --git a/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisitorMapper.xml b/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisitorMapper.xml
index 4707536..245de21 100644
--- a/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisitorMapper.xml
+++ b/dcsoft-modules/dcsoft-system/src/main/resources/mapper/system/visitor/VisitorMapper.xml
@@ -1040,4 +1040,16 @@
+
+