人脸更新

This commit is contained in:
fl 2024-12-04 11:13:15 +08:00
parent 0ca399d0f7
commit e696b1992f
3 changed files with 56 additions and 32 deletions

View File

@ -53,7 +53,7 @@ public interface WechatPushDao {
* 审核人脸时调用 * 审核人脸时调用
* @String isCheck * @String isCheck
*/ */
void checkWechatIsFace(String isCheck); void checkWechatIsFace(SysUser user);
/** /**
* 查询请假数据 * 查询请假数据

View File

@ -70,7 +70,7 @@ public class WechatTasks {
* 人员基础数据同步定时器 * 人员基础数据同步定时器
*/ */
// @Scheduled(cron = "0 0/10 * * * ?") // @Scheduled(cron = "0 0/10 * * * ?")
// @Scheduled(fixedDelay = 60000 * 10) @Scheduled(fixedDelay = 60000 * 10)
@Async @Async
public void pushPersonTask() { public void pushPersonTask() {
log.info("--------人员基础数据同步定时器开启------"); log.info("--------人员基础数据同步定时器开启------");
@ -84,10 +84,14 @@ public class WechatTasks {
List<SysUser> wechatList = FastJsonHelper.jsonArrStrToBeanList(string, SysUser.class); List<SysUser> wechatList = FastJsonHelper.jsonArrStrToBeanList(string, SysUser.class);
// //所有字段同步 // //所有字段同步
syncListsToDatabase(list, wechatList); syncListsToDatabase(list, wechatList);
// //人脸更新 //人脸更新
// List<AttFaceBean> faceList = dao.getWebFaceList(); List<AttFaceBean> faceList = dao.getWebFaceList();
// List<AttFaceBean> wechatFaceList = dao.getWeChatFaceList(); // List<AttFaceBean> wechatFaceList = dao.getWeChatFaceList();
// syncFaceToDatabase(faceList, wechatFaceList); String jsonStr2 = "{}";
String method2 = "getWeChatFaceList";
String string2 = httpPost(method2, jsonStr2);
List<AttFaceBean> wechatFaceList = FastJsonHelper.jsonArrStrToBeanList(string2, AttFaceBean.class);
syncFaceToDatabase(faceList, wechatFaceList);
log.info("--------人员基础数据同步定时器完毕------"); log.info("--------人员基础数据同步定时器完毕------");
} }
@ -108,7 +112,7 @@ public class WechatTasks {
for (EvectionBean bean : list) { for (EvectionBean bean : list) {
// 如果Map中没有该userId的组织机构信息则从数据库查询 // 如果Map中没有该userId的组织机构信息则从数据库查询
SysOrg orgInfo = dao.getOrgInfoByUserId(bean.getUserId()); SysOrg orgInfo = dao.getOrgInfoByUserId(bean.getUserId());
if(orgInfo != null){ if (orgInfo != null) {
bean.setOrgId(orgInfo.getId()); bean.setOrgId(orgInfo.getId());
bean.setOrgName(orgInfo.getOrgName()); bean.setOrgName(orgInfo.getOrgName());
} }
@ -141,7 +145,7 @@ public class WechatTasks {
/** /**
* 考勤数据同步定时器 * 考勤数据同步定时器
*/ */
@Scheduled(fixedDelay = 60000 * 10) // @Scheduled(fixedDelay = 60000 * 10)
@Async @Async
public void wechatAttTask() { public void wechatAttTask() {
log.info("--------考勤数据定时器开启------"); log.info("--------考勤数据定时器开启------");
@ -152,21 +156,21 @@ public class WechatTasks {
String string = httpPost(method, jsonStr); String string = httpPost(method, jsonStr);
List<AttSourceDataBean> attSourceList = FastJsonHelper.jsonArrStrToBeanList(string, AttSourceDataBean.class); List<AttSourceDataBean> attSourceList = FastJsonHelper.jsonArrStrToBeanList(string, AttSourceDataBean.class);
attSourceList.forEach(bean -> { attSourceList.forEach(bean -> {
//判断是否外勤 //判断是否外勤
//1.0获取考勤规则的组织的 //1.0获取考勤规则的组织的
String userName = bean.getName(); String userName = bean.getName();
// 如果Map中没有该userId的组织机构信息则从数据库查询 // 如果Map中没有该userId的组织机构信息则从数据库查询
SysOrg orgInfo = dao.getOrgInfoByUserName(userName); SysOrg orgInfo = dao.getOrgInfoByUserName(userName);
if(orgInfo != null){ if (orgInfo != null) {
double distanceMeters = calculateDistance(bean.getAttLat(), bean.getAttLon(), orgInfo.getLat().longValue(), orgInfo.getLon().longValue(), DistanceCalculator.Unit.METERS); double distanceMeters = calculateDistance(bean.getAttLat(), bean.getAttLon(), orgInfo.getLat().longValue(), orgInfo.getLon().longValue(), DistanceCalculator.Unit.METERS);
if (distanceMeters>orgInfo.getAttRange()){ if (distanceMeters > orgInfo.getAttRange()) {
//外勤 //外勤
bean.setIsOutsideAtt("1"); bean.setIsOutsideAtt("1");
}else{ } else {
//正常 //正常
bean.setIsOutsideAtt("2"); bean.setIsOutsideAtt("2");
} }
}else{ } else {
//外勤 //外勤
bean.setIsOutsideAtt("1"); bean.setIsOutsideAtt("1");
} }
@ -183,13 +187,11 @@ public class WechatTasks {
}); });
//新增考勤到考勤来源表(数据过多时分批次插入) //新增考勤到考勤来源表(数据过多时分批次插入)
attTasks.insertAttSourceData(attSourceList); attTasks.insertAttSourceData(attSourceList);
//将是否外勤更新到小程序库 //将是否外勤更新到小程序库
// dao.updateWechatAttList(attSourceList); // dao.updateWechatAttList(attSourceList);
String jsonStr2 = FastJsonHelper.beanListToJsonArrStr(attSourceList); String jsonStr2 = FastJsonHelper.beanListToJsonArrStr(attSourceList);
String method2 = "updateWechatAttList"; String method2 = "updateWechatAttList";
String string2 = httpPost(method2, jsonStr2); String string2 = httpPost(method2, jsonStr2);
log.info("--------考勤数据定时器完毕------"); log.info("--------考勤数据定时器完毕------");
} }
@ -201,7 +203,7 @@ public class WechatTasks {
if (!wechatUserMap.containsKey(userId)) { if (!wechatUserMap.containsKey(userId)) {
//第一次录入人脸 //第一次录入人脸
dao.insertWebFace(user); dao.insertWebFace(user);
}else { } else {
//将未审核通过的数据更新到考勤库审核 //将未审核通过的数据更新到考勤库审核
dao.updateWebFace(user); dao.updateWebFace(user);
} }
@ -222,7 +224,7 @@ public class WechatTasks {
String jsonStr = FastJsonHelper.beanToJsonStr(user); String jsonStr = FastJsonHelper.beanToJsonStr(user);
String method = "insertWechatPerson"; String method = "insertWechatPerson";
String string = httpPost(method, jsonStr); String string = httpPost(method, jsonStr);
}else { } else {
// 如果存在则判断时间是否后于小程序时间 // 如果存在则判断时间是否后于小程序时间
// 如果 userId 存在于 wechatList则比较 updateTime // 如果 userId 存在于 wechatList则比较 updateTime
SysUser wechatUser = wechatUserMap.get(userId); SysUser wechatUser = wechatUserMap.get(userId);
@ -233,17 +235,17 @@ public class WechatTasks {
String method = "updateWechatPerson"; String method = "updateWechatPerson";
String string = httpPost(method, jsonStr); String string = httpPost(method, jsonStr);
}else if (wechatUser.getUpdateTime().after(user.getUpdateTime())){ } else if (wechatUser.getUpdateTime().after(user.getUpdateTime())) {
//更新后端密码 //更新后端密码
dao.updateWebPassword(wechatUser); dao.updateWebPassword(wechatUser);
} }
//openId 单向更新 //openId 单向更新
if (StringUtils.isNotEmpty(wechatUser.getOpenId()) && !wechatUser.getOpenId().equals(user.getOpenId())){ if (StringUtils.isNotEmpty(wechatUser.getOpenId()) && !wechatUser.getOpenId().equals(user.getOpenId())) {
//更新后端openId //更新后端openId
dao.updateWebOpenId(wechatUser); dao.updateWebOpenId(wechatUser);
} }
//单项更新 isPd //单项更新 isPd
if (StringUtils.isNotEmpty(user.getIsPd()) && !user.getIsPd().equals(wechatUser.getIsPd())){ if (StringUtils.isNotEmpty(user.getIsPd()) && !user.getIsPd().equals(wechatUser.getIsPd())) {
//更新小程序isPd //更新小程序isPd
// dao.updateWechatIsPd(user); // dao.updateWechatIsPd(user);
String jsonStr = FastJsonHelper.beanToJsonStr(user); String jsonStr = FastJsonHelper.beanToJsonStr(user);
@ -269,11 +271,9 @@ public class WechatTasks {
} }
//人脸更新是调用的方法 //人脸更新是调用的方法
private String httpPost(String method, String jsonStr) { private String httpPost(String method, String jsonStr) {
try { try {
HttpResponse response = HttpRequest.post(IpAndPathConfig.getWechatUrl() + "/" + method) HttpResponse response = HttpRequest.post(IpAndPathConfig.getWechatUrl() + "/" + method)
@ -290,5 +290,37 @@ public class WechatTasks {
} }
} }
/**
* 授予人脸重新录入权限时调用
* @param user
*/
public int updateWechatIsFace(SysUser user){
// dao.updateWechatIsFace(user);
String jsonStr = FastJsonHelper.beanToJsonStr(user);
String method = "updateWechatIsFace";
String string = httpPost(method, jsonStr);
if("success".equals(string)){
return 1;
}else{
return 0;
}
}
/**
* 审核人脸时调用
* @String isCheck
*/
public int checkWechatIsFace(SysUser user){
// dao.checkWechatIsFace(user);
String jsonStr = FastJsonHelper.beanToJsonStr(user);
String method = "checkWechatIsFace";
String string = httpPost(method, jsonStr);
if("success".equals(string)){
return 1;
}else{
return 0;
}
}
} }

View File

@ -8,7 +8,7 @@
values(#{userId},#{userName},#{phone},#{password},#{isPd},#{isFace},#{updateTime},#{isCadre}) values(#{userId},#{userName},#{phone},#{password},#{isPd},#{isFace},#{updateTime},#{isCadre})
</insert> </insert>
<insert id="insertWebFace"> <insert id="insertWebFace">
insert into sys_user_face(user_id,applied_face,applied_face_features,new_face,new_face_features,is_face,is_check) insert into sys_user_face(user_id,applied_face,applied_face_features,new_face,new_face_features,is_check)
values(#{userId},#{appliedFace},#{appliedFaceFeatures},#{newFace},#{newFaceFeatures},#{isCheck}) values(#{userId},#{appliedFace},#{appliedFaceFeatures},#{newFace},#{newFaceFeatures},#{isCheck})
</insert> </insert>
<insert id="insertWebLeave" useGeneratedKeys="true" keyColumn="id" keyProperty="id"> <insert id="insertWebLeave" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
@ -63,15 +63,7 @@
<if test="isCheck == '2'"> <if test="isCheck == '2'">
set is_check = #{isCheck},new_face = null,new_face_features = null set is_check = #{isCheck},new_face = null,new_face_features = null
</if> </if>
where user_id = #{userId}; where user_id = #{userId}
update sys_user_face
<if test="isCheck == '1'">
set is_check = #{isCheck},applied_face = new_face,applied_face_features = new_face_features
</if>
<if test="isCheck == '2'">
set is_check = #{isCheck},new_face = null,new_face_features = null
</if>
where user_id = #{userId};
</update> </update>
<update id="updateWechatLeave"> <update id="updateWechatLeave">
update gz_attendance_wechat.leave_apply_wechat set id = #{id} where uuid = #{uuid} update gz_attendance_wechat.leave_apply_wechat set id = #{id} where uuid = #{uuid}