人脸更新

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
*/
void checkWechatIsFace(String isCheck);
void checkWechatIsFace(SysUser user);
/**
* 查询请假数据

View File

@ -70,7 +70,7 @@ public class WechatTasks {
* 人员基础数据同步定时器
*/
// @Scheduled(cron = "0 0/10 * * * ?")
// @Scheduled(fixedDelay = 60000 * 10)
@Scheduled(fixedDelay = 60000 * 10)
@Async
public void pushPersonTask() {
log.info("--------人员基础数据同步定时器开启------");
@ -84,10 +84,14 @@ public class WechatTasks {
List<SysUser> wechatList = FastJsonHelper.jsonArrStrToBeanList(string, SysUser.class);
// //所有字段同步
syncListsToDatabase(list, wechatList);
// //人脸更新
// List<AttFaceBean> faceList = dao.getWebFaceList();
// List<AttFaceBean> wechatFaceList = dao.getWeChatFaceList();
// syncFaceToDatabase(faceList, wechatFaceList);
//人脸更新
List<AttFaceBean> faceList = dao.getWebFaceList();
// List<AttFaceBean> wechatFaceList = dao.getWeChatFaceList();
String jsonStr2 = "{}";
String method2 = "getWeChatFaceList";
String string2 = httpPost(method2, jsonStr2);
List<AttFaceBean> wechatFaceList = FastJsonHelper.jsonArrStrToBeanList(string2, AttFaceBean.class);
syncFaceToDatabase(faceList, wechatFaceList);
log.info("--------人员基础数据同步定时器完毕------");
}
@ -108,7 +112,7 @@ public class WechatTasks {
for (EvectionBean bean : list) {
// 如果Map中没有该userId的组织机构信息则从数据库查询
SysOrg orgInfo = dao.getOrgInfoByUserId(bean.getUserId());
if(orgInfo != null){
if (orgInfo != null) {
bean.setOrgId(orgInfo.getId());
bean.setOrgName(orgInfo.getOrgName());
}
@ -141,7 +145,7 @@ public class WechatTasks {
/**
* 考勤数据同步定时器
*/
@Scheduled(fixedDelay = 60000 * 10)
// @Scheduled(fixedDelay = 60000 * 10)
@Async
public void wechatAttTask() {
log.info("--------考勤数据定时器开启------");
@ -152,21 +156,21 @@ public class WechatTasks {
String string = httpPost(method, jsonStr);
List<AttSourceDataBean> attSourceList = FastJsonHelper.jsonArrStrToBeanList(string, AttSourceDataBean.class);
attSourceList.forEach(bean -> {
//判断是否外勤
//判断是否外勤
//1.0获取考勤规则的组织的
String userName = bean.getName();
// 如果Map中没有该userId的组织机构信息则从数据库查询
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);
if (distanceMeters>orgInfo.getAttRange()){
if (distanceMeters > orgInfo.getAttRange()) {
//外勤
bean.setIsOutsideAtt("1");
}else{
} else {
//正常
bean.setIsOutsideAtt("2");
}
}else{
} else {
//外勤
bean.setIsOutsideAtt("1");
}
@ -183,13 +187,11 @@ public class WechatTasks {
});
//新增考勤到考勤来源表(数据过多时分批次插入)
attTasks.insertAttSourceData(attSourceList);
//将是否外勤更新到小程序库
// dao.updateWechatAttList(attSourceList);
String jsonStr2 = FastJsonHelper.beanListToJsonArrStr(attSourceList);
String method2 = "updateWechatAttList";
String string2 = httpPost(method2, jsonStr2);
log.info("--------考勤数据定时器完毕------");
}
@ -201,7 +203,7 @@ public class WechatTasks {
if (!wechatUserMap.containsKey(userId)) {
//第一次录入人脸
dao.insertWebFace(user);
}else {
} else {
//将未审核通过的数据更新到考勤库审核
dao.updateWebFace(user);
}
@ -222,7 +224,7 @@ public class WechatTasks {
String jsonStr = FastJsonHelper.beanToJsonStr(user);
String method = "insertWechatPerson";
String string = httpPost(method, jsonStr);
}else {
} else {
// 如果存在则判断时间是否后于小程序时间
// 如果 userId 存在于 wechatList则比较 updateTime
SysUser wechatUser = wechatUserMap.get(userId);
@ -233,17 +235,17 @@ public class WechatTasks {
String method = "updateWechatPerson";
String string = httpPost(method, jsonStr);
}else if (wechatUser.getUpdateTime().after(user.getUpdateTime())){
} else if (wechatUser.getUpdateTime().after(user.getUpdateTime())) {
//更新后端密码
dao.updateWebPassword(wechatUser);
}
//openId 单向更新
if (StringUtils.isNotEmpty(wechatUser.getOpenId()) && !wechatUser.getOpenId().equals(user.getOpenId())){
if (StringUtils.isNotEmpty(wechatUser.getOpenId()) && !wechatUser.getOpenId().equals(user.getOpenId())) {
//更新后端openId
dao.updateWebOpenId(wechatUser);
}
//单项更新 isPd
if (StringUtils.isNotEmpty(user.getIsPd()) && !user.getIsPd().equals(wechatUser.getIsPd())){
if (StringUtils.isNotEmpty(user.getIsPd()) && !user.getIsPd().equals(wechatUser.getIsPd())) {
//更新小程序isPd
// dao.updateWechatIsPd(user);
String jsonStr = FastJsonHelper.beanToJsonStr(user);
@ -269,11 +271,9 @@ public class WechatTasks {
}
//人脸更新是调用的方法
private String httpPost(String method, String jsonStr) {
try {
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})
</insert>
<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})
</insert>
<insert id="insertWebLeave" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
@ -63,15 +63,7 @@
<if test="isCheck == '2'">
set is_check = #{isCheck},new_face = null,new_face_features = null
</if>
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};
where user_id = #{userId}
</update>
<update id="updateWechatLeave">
update gz_attendance_wechat.leave_apply_wechat set id = #{id} where uuid = #{uuid}