兴安添加我的审核,人脸检测替换宇泛接口

This commit is contained in:
zc
2025-08-21 16:37:08 +08:00
parent d27c24274e
commit f4342c40f8
16 changed files with 276 additions and 156 deletions

View File

@@ -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<SysPeople> queryPeopleByPosition(String position);
List<SysPeople> querySysPeopleInfo(Long userId);
Long selectAppSysPeople(SysUser sysUser);
}

View File

@@ -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<SysPeople> queryPeopleByPosition(String position);
List<SysPeople> querySysPeopleInfo(Long userId);
Long selectAppSysPeople(SysUser sysUser);
}

View File

@@ -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<SysPeople> selectSysPeopleLists(SysPeople sysPeople)

View File

@@ -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<String, Object> paramMap=new HashMap<String, Object>();
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<String, Object> paramMap = new HashMap<String, Object>();
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;
}

View File

@@ -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<Visitor> 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<String, String> map = dictDataService.queryDictData("sys_park_group");
// Map<String, String> 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<Visitor> 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<Visitor> list = visitorService.queryReviewList(peopleId);
return getDataTable(list);
}
//出门证
if (StringUtils.equals("1", visitor.getVisitorType())) {
List<VisExitOutVo> list = visCarryStuffService.queryReviewList(peopleId);
//查询物品信息列表
List<Long> collect = list.stream().map(VisExitOutVo::getId).collect(Collectors.toList());
VisStuffInfoVo visStuffInfoVo = new VisStuffInfoVo();
visStuffInfoVo.setExitIds(collect);
List<VisStuffInfoVo> stuffList = visCarryStuffService.selectStuffList(visStuffInfoVo);
if (CollUtil.isEmpty(stuffList)) {
return getDataTable(list);
}
//处理字典值
Map<String, String> map = dictDataService.queryDictData("vis_out_stuff_type");
stuffList.forEach(stuff -> {
if (StrUtil.isNotBlank(stuff.getType())) {
stuff.setTypeName(map.get(stuff.getType()));
}
});
//构造数据
Map<Long, List<VisStuffInfoVo>> collect1 = stuffList.stream().collect(Collectors.groupingBy(VisStuffInfoVo::getExitId));
list.forEach(exit -> {
exit.setVisStuffInfoList(collect1.get(exit.getId()));
});
return getDataTable(list);
}
return getDataTable(new ArrayList<>());
}
}

View File

@@ -41,4 +41,6 @@ public interface VisCarryStuffMapper {
List<Long> selectexpireVisCarryStuff(Date dateTime);
void updateStaffState(VisExitOutVo visExitOutVo);
List<VisExitOutVo> queryReviewList(Long peopleId);
}

View File

@@ -256,4 +256,6 @@ public interface VisitorMapper
void deleteVisitorReviewProcess(@Param("id") Long id);
List<String> addVisitorCheck(@Param("phones") List<String> phones,@Param("startTime") Date startTime);
List<Visitor> queryReviewList(Long peopleId);
}

View File

@@ -40,4 +40,6 @@ public interface IVisCarryStuffService {
List<Long> selectexpireVisCarryStuff(Date dateTime);
void updateStaffState(VisExitOutVo visExitOutVo);
List<VisExitOutVo> queryReviewList(Long peopleId);
}

View File

@@ -268,4 +268,6 @@ public interface IVisitorService
void cancel(Visitor visitor);
List<String> addVisitorCheck(List<String> phones, Date startTime);
List<Visitor> queryReviewList(Long peopleId);
}

View File

@@ -97,6 +97,11 @@ public class VisCarryStuffImpl implements IVisCarryStuffService {
visCarryStuffMapper.updateStaffState(visExitOutVo);
}
@Override
public List<VisExitOutVo> queryReviewList(Long peopleId) {
return visCarryStuffMapper.queryReviewList(peopleId);
}
@Override
public VisExitOutVo selectVisExitOutById(Long id) {
return visCarryStuffMapper.selectVisExitOutById(id);

View File

@@ -823,4 +823,9 @@ public class VisitorServiceImpl implements IVisitorService {
return visitorMapper.addVisitorCheck(phones, startTime);
}
@Override
public List<Visitor> queryReviewList(Long peopleId) {
return visitorMapper.queryReviewList(peopleId);
}
}

View File

@@ -325,4 +325,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="querySysPeopleInfo" resultType="com.dcsoft.system.domain.SysPeople">
select ifnull(phone, '0') phone, id from sys_people where del_flag = '0' and user_id = #{userId}
</select>
<select id="selectAppSysPeople" resultType="java.lang.Long">
select id from sys_people where del_flag = '0' and (phone = #{phonenumber} or phone = #{userName})
</select>
</mapper>

View File

@@ -333,6 +333,23 @@
and e.update_time >= #{dateTime}
</select>
<select id="queryReviewList" resultMap="VisitorResult">
SELECT
e.id,
e.name username,
e.visiting_unit,
e.vis_time,
e.exit_permit_no,
e.examine_state
FROM
`vis_exit_out` e
LEFT JOIN `vis_visitor_review_process` p ON e.id = p.exit_id
WHERE
p.reviewer = #{peopleId}
GROUP BY
e.id
</select>
<insert id="insertVisExitOut" useGeneratedKeys="true" keyProperty="id">
insert into vis_exit_out
<trim prefix="(" suffix=")" suffixOverrides=",">

View File

@@ -1040,4 +1040,16 @@
<select id="queryReviewProcessOld" resultType="java.lang.String">
select reviewer from vis_visitor_review_process where visitor_id = #{id} and type = #{position}
</select>
<select id="queryReviewList" resultType="com.dcsoft.system.visitor.domain.Visitor">
SELECT
v.*
FROM
vis_visitor v
LEFT JOIN `vis_visitor_review_process` p ON v.id = p.visitor_id
WHERE
p.reviewer = #{peopleId}
GROUP BY
v.id
</select>
</mapper>