From 8321f3cd1d929639203d0d4e55fcadef3504f251 Mon Sep 17 00:00:00 2001 From: fl <3098731433@qq.com> Date: Mon, 3 Mar 2025 18:03:03 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=BA=BA=E8=84=B8=E6=8C=89=E9=9C=80=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=202.=E6=9C=88=E5=BC=82=E5=B8=B8=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=BD=93=E6=97=A5=E6=95=B0=E6=8D=AE=E6=9F=A5=E8=AF=A2=E4=B8=8D?= =?UTF-8?q?=E5=88=B0=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/system/att/entity/AttFaceBean.java | 3 +++ .../system/att/service/AttCalServiceImpl.java | 10 ++++----- .../bonus/system/att/tasks/NewAttTask.java | 15 +++++++++++++ .../bonus/system/att/tasks/WechatTasks.java | 21 ++++++++++++------- .../service/impl/SysUserServiceImpl.java | 14 ------------- .../mapper/att/AttDetailByMonthMapper.xml | 2 +- .../resources/mapper/att/WechatPushMapper.xml | 7 ++++--- 7 files changed, 42 insertions(+), 30 deletions(-) diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttFaceBean.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttFaceBean.java index d57b548..2c19925 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttFaceBean.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/entity/AttFaceBean.java @@ -4,6 +4,8 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.Date; + /** * 考勤数据 * @author zys @@ -50,5 +52,6 @@ public class AttFaceBean { private String examineOpinion; + private Date updateTime; } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttCalServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttCalServiceImpl.java index f950a65..0bedcb1 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttCalServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/service/AttCalServiceImpl.java @@ -619,7 +619,7 @@ public class AttCalServiceImpl implements AttCalService { // if(c.getName().equals("肖阳")){ // System.out.println("c.getAttCurrentTime() = " + c.getAttCurrentTime()); // } - System.out.println(c.getName()); +// System.out.println(c.getName()); int attStatus = calculateStatus( c.getAttType(), c.getAttCurrentTime(), @@ -627,7 +627,7 @@ public class AttCalServiceImpl implements AttCalService { "1".equals(c.getAttType()) ? lateMinute : leaveMinute, "1".equals(c.getAttType()) ? absenteeismLateMinute : absenteeismLeaveMinute ); - System.out.println(1111); +// System.out.println(1111); // 如打卡状态为正常,检查是否有异常出入时间 if (attStatus == 1 && c.getAttStatus() != null && c.getAttStatus() == 8) { attStatus = 8; // 异常 @@ -644,7 +644,7 @@ public class AttCalServiceImpl implements AttCalService { c.setAttCurrentTime(time); c.setAttAddress(address); } - System.out.println(2222); +// System.out.println(2222); c.setAttStatus(attStatus); }); } @@ -849,13 +849,13 @@ public class AttCalServiceImpl implements AttCalService { c.getUserId()); //开始和结束的那天是否只请了半天 if (c.getLeaveStartDate().equals(v)) { - if (c.getLeaveStartInterval().equals("2")) { + if ("2".equals(c.getLeaveStartInterval())) { attSourceDataDao.updateLeaveData(offWorkBean); } else { tf = true; } } else if (c.getLeaveEndDate().equals(v)) { - if (c.getLeaveEndInterval().equals("1")) { + if ("1".equals(c.getLeaveEndInterval())) { attSourceDataDao.updateLeaveData(toWorkBean); } else { tf = true; diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/NewAttTask.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/NewAttTask.java index d256c4a..233de36 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/NewAttTask.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/att/tasks/NewAttTask.java @@ -54,6 +54,21 @@ public class NewAttTask { log.info("--------数据拉取(考勤)定时器完毕------"); } + /** + * 早上8点40需要单独执行一次 + * 1.数据拉取(考勤)定时器 + * 2.考勤数据应用(步骤一:考勤数据更新) + */ + @Scheduled(cron = "0 40 8 * * ?") + @Async + public void getEightAttDataPullTask() { + log.info("--------数据拉取(考勤)定时器开启------"); + String today = DateUtil.today(); + getAttendanceData(today,1); + updateAttData(today,1); + log.info("--------数据拉取(考勤)定时器完毕------"); + } + /** * 单独子流程,不在主流程中 * 旷工判断 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 82e6b26..b23a5b5 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 @@ -55,7 +55,7 @@ public class WechatTasks { /** * 人员基础数据同步定时器 */ - @Scheduled(initialDelay = 60000, fixedDelay = 60000 * 10) + @Scheduled(initialDelay = 60000, fixedDelay = 60000 * 15) @Async public void pushPersonTask() { log.info("--------人员基础数据同步定时器开启------"); @@ -83,7 +83,7 @@ public class WechatTasks { /** * 休假出差数据同步定时器 */ - @Scheduled(initialDelay = 60000 * 6, fixedDelay = 60000 * 10) + @Scheduled(initialDelay = 60000 * 6, fixedDelay = 60000 * 15) @Async public void leaveTask() { log.info("--------休假出差数据定时器开启------"); @@ -168,7 +168,7 @@ public class WechatTasks { /** * 考勤数据同步定时器 */ - @Scheduled(initialDelay = 60000 * 12, fixedDelay = 60000 * 10) + @Scheduled(initialDelay = 60000 * 12, fixedDelay = 60000 * 15) @Async public void wechatAttTask() { log.info("--------考勤数据定时器开启------"); @@ -256,14 +256,21 @@ public class WechatTasks { private void syncFaceToDatabase(List faceList, List wechatFaceList) { Map wechatUserMap = faceList.stream() .collect(Collectors.toMap(AttFaceBean::getUserId, user -> user, (existing, replacement) -> existing)); - for (AttFaceBean user : wechatFaceList) { - Long userId = user.getUserId(); + for (AttFaceBean wechatUser : wechatFaceList) { + Long userId = wechatUser.getUserId(); if (!wechatUserMap.containsKey(userId)) { //第一次录入人脸 - dao.insertWebFace(user); + dao.insertWebFace(wechatUser); } else { + AttFaceBean user = wechatUserMap.get(userId); //将未审核通过的数据更新到考勤库审核 - dao.updateWebFace(user); + if (wechatUser.getUpdateTime().after(user.getUpdateTime())) { + String jsonStr2 = "{\"userId\":\"" + user.getUserId() + "\"}"; + String method2 = "getWeChatFaceListByUserId"; + String string2 = httpPost(method2, jsonStr2); + AttFaceBean wechatFace = FastJsonHelper.jsonStrToBean(string2, AttFaceBean.class); + dao.updateWebFace(wechatFace); + } } } } diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysUserServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysUserServiceImpl.java index f91d12e..15297ea 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysUserServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/basic/service/impl/SysUserServiceImpl.java @@ -311,20 +311,6 @@ public class SysUserServiceImpl implements SysUserService Long[] orgIdsByUserId = userMapper.getOrgIdsByUserId(userId); //新组织 Long[] orgIds = user.getOrgIds(); - //绑定考勤组组织 - Long orgId = userMapper.getUserAttGroupByUserId(userId); - if (orgId == null || containsOrgId(orgIds,orgId)) { - //没有考勤组或新变换的组织包含考勤组组织,不变 - }else{ - List uniqueInOrgIds = findUniqueInOrgIds(orgIds, orgIdsByUserId); - if(!uniqueInOrgIds.isEmpty()){ - OrgChangeBean item = new OrgChangeBean(); - item.setOldOrgId(orgId); - item.setNewOrgId(uniqueInOrgIds.get(0)); - item.setUserId(userId); - userMapper.updateAttOrgByUserId(item); - } - } userMapper.deleteUserOrgByUserId(userId); insertUserOrg(user); //处理人员组织变更,休假/外出/等审批组织 diff --git a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttDetailByMonthMapper.xml b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttDetailByMonthMapper.xml index 5456051..1046593 100644 --- a/bonus-modules/bonus-system/src/main/resources/mapper/att/AttDetailByMonthMapper.xml +++ b/bonus-modules/bonus-system/src/main/resources/mapper/att/AttDetailByMonthMapper.xml @@ -207,7 +207,7 @@ and (vat.att_current_day >= CONCAT(#{attCurrent}, '-01') AND - vat.att_current_day < LAST_DAY(CONCAT(#{attCurrent}, '-01'))) + vat.att_current_day <= LAST_DAY(CONCAT(#{attCurrent}, '-01'))) and vat.att_current_day between #{startDate} and #{endDate} 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 3900332..d9bd983 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 @@ -38,7 +38,7 @@ - replace INTO gz_cloud_test.fc_sup_attendance ( + replace INTO gz_cloud.fc_sup_attendance ( name, id_number, org_id, @@ -151,7 +151,8 @@ @@ -202,7 +203,7 @@ If(PROJECT_ID is null,0,PROJECT_ID) AS proId, If(ORG_ID is null,0,ORG_ID) AS orgId FROM - gz_cloud_test.bm_sup_attend_history + gz_cloud.bm_sup_attend_history WHERE ID_NUMBER = #{idNumber} limit 1