From e696b1992f71a1c4dfb08ecc9540105ee504d815 Mon Sep 17 00:00:00 2001 From: fl <3098731433@qq.com> Date: Wed, 4 Dec 2024 11:13:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E8=84=B8=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/system/att/dao/WechatPushDao.java | 2 +- .../bonus/system/att/tasks/WechatTasks.java | 74 +++++++++++++------ .../resources/mapper/att/WechatPushMapper.xml | 12 +-- 3 files changed, 56 insertions(+), 32 deletions(-) diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/WechatPushDao.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/WechatPushDao.java index 251b324..2a21bba 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/WechatPushDao.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/dao/WechatPushDao.java @@ -53,7 +53,7 @@ public interface WechatPushDao { * 审核人脸时调用 * @String isCheck */ - void checkWechatIsFace(String isCheck); + void checkWechatIsFace(SysUser user); /** * 查询请假数据 diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/WechatTasks.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/WechatTasks.java index 963a88d..0a77b75 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/WechatTasks.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/WechatTasks.java @@ -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 wechatList = FastJsonHelper.jsonArrStrToBeanList(string, SysUser.class); // //所有字段同步 syncListsToDatabase(list, wechatList); -// //人脸更新 -// List faceList = dao.getWebFaceList(); -// List wechatFaceList = dao.getWeChatFaceList(); -// syncFaceToDatabase(faceList, wechatFaceList); + //人脸更新 + List faceList = dao.getWebFaceList(); +// List wechatFaceList = dao.getWeChatFaceList(); + String jsonStr2 = "{}"; + String method2 = "getWeChatFaceList"; + String string2 = httpPost(method2, jsonStr2); + List 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 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; + } + } + } \ No newline at end of file diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/att/WechatPushMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/att/WechatPushMapper.xml index d0e1658..2d5102b 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/att/WechatPushMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/att/WechatPushMapper.xml @@ -8,7 +8,7 @@ values(#{userId},#{userName},#{phone},#{password},#{isPd},#{isFace},#{updateTime},#{isCadre}) - 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}) @@ -63,15 +63,7 @@ set is_check = #{isCheck},new_face = null,new_face_features = null - where user_id = #{userId}; - update sys_user_face - - set is_check = #{isCheck},applied_face = new_face,applied_face_features = new_face_features - - - set is_check = #{isCheck},new_face = null,new_face_features = null - - where user_id = #{userId}; + where user_id = #{userId} update gz_attendance_wechat.leave_apply_wechat set id = #{id} where uuid = #{uuid}