From 10d2b693b28f6b780191961da2f9d076f6395718 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Wed, 25 Jun 2025 16:44:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E9=87=91=E6=B9=BE=EF=BC=8C=E6=96=B0?= =?UTF-8?q?=E8=80=83=E5=8B=A4bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../worker/entity/WorkerAttendanceRuleV2ChangeLog.java | 4 ++-- .../mapper/xml/WorkerAttendanceRuleV2ChangeLogMapper.xml | 4 ++-- .../impl/WorkerAttendanceRuleV2ChangeLogServiceImpl.java | 4 +++- .../impl/WorkerDailyAttendanceStatisticsV2ServiceImpl.java | 3 +++ 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerAttendanceRuleV2ChangeLog.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerAttendanceRuleV2ChangeLog.java index e37661274..d10c63fe6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerAttendanceRuleV2ChangeLog.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerAttendanceRuleV2ChangeLog.java @@ -55,14 +55,14 @@ public class WorkerAttendanceRuleV2ChangeLog implements Serializable { @ApiModelProperty(value = "生效时间开始") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private java.util.Date effect_begin; + private java.util.Date effectBegin; /** * 生效时间结束 */ @ApiModelProperty(value = "生效时间结束") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private java.util.Date effect_end; + private java.util.Date effectEnd; /** * 创建时间 */ diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendanceRuleV2ChangeLogMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendanceRuleV2ChangeLogMapper.xml index c4b5d0101..d5096f04f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendanceRuleV2ChangeLogMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerAttendanceRuleV2ChangeLogMapper.xml @@ -19,14 +19,14 @@ UPDATE worker_attendance_rule_v2_change_log w1 JOIN ( - SELECT worker_id, MAX(effect_end) AS latest_time + SELECT worker_id, MAX(effect_begin) AS latest_time FROM worker_attendance_rule_v2_change_log where worker_id in #{item} GROUP BY worker_id - ) w2 ON w1.worker_id = w2.worker_id AND w1.effect_end = w2.latest_time + ) w2 ON w1.worker_id = w2.worker_id AND w1.effect_begin = w2.latest_time SET w1.effect_end = NOW() diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceRuleV2ChangeLogServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceRuleV2ChangeLogServiceImpl.java index 4dc28c069..3fd5006d5 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceRuleV2ChangeLogServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerAttendanceRuleV2ChangeLogServiceImpl.java @@ -19,6 +19,7 @@ import com.zhgd.xmgl.util.RefUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; @@ -51,7 +52,7 @@ public class WorkerAttendanceRuleV2ChangeLogServiceImpl extends ServiceImpl getQueryWrapper(HashMap param) { QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(WorkerAttendanceRuleV2ChangeLogVo.class, param, true); - queryWrapper.orderByDesc(RefUtil.fieldNameUlc(WorkerAttendanceRuleV2ChangeLogVo::getId)); + queryWrapper.orderByDesc(RefUtil.fieldNameUlc(WorkerAttendanceRuleV2ChangeLogVo::getEffectBegin)); return queryWrapper; } @@ -104,6 +105,7 @@ public class WorkerAttendanceRuleV2ChangeLogServiceImpl extends ServiceImpl 1) { //计算跨夜工时按零点结算到前后两天 for (int i = 1; i < attendances.size(); i++) { + if (attendances.get(i).getPassType() != 2) { + continue; + } long betweenMs = DateUtil.betweenMs(attendances.get(i - 1).getDate(), attendances.get(i).getDate()); BigDecimal hours = new BigDecimal(betweenMs).divide(new BigDecimal(DateUnit.HOUR.getMillis()), 2, RoundingMode.HALF_UP); hour = hour.add(hours);