新金湾,新考勤bug修复
This commit is contained in:
parent
549c6fd610
commit
10d2b693b2
@ -55,14 +55,14 @@ public class WorkerAttendanceRuleV2ChangeLog implements Serializable {
|
|||||||
@ApiModelProperty(value = "生效时间开始")
|
@ApiModelProperty(value = "生效时间开始")
|
||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@DateTimeFormat(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 = "生效时间结束")
|
@ApiModelProperty(value = "生效时间结束")
|
||||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@DateTimeFormat(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;
|
||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -19,14 +19,14 @@
|
|||||||
<update id="updateEndTime">
|
<update id="updateEndTime">
|
||||||
UPDATE worker_attendance_rule_v2_change_log w1
|
UPDATE worker_attendance_rule_v2_change_log w1
|
||||||
JOIN (
|
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
|
FROM worker_attendance_rule_v2_change_log
|
||||||
where worker_id in
|
where worker_id in
|
||||||
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
|
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
|
||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
GROUP BY worker_id
|
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()
|
SET w1.effect_end = NOW()
|
||||||
</update>
|
</update>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import com.zhgd.xmgl.util.RefUtil;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -51,7 +52,7 @@ public class WorkerAttendanceRuleV2ChangeLogServiceImpl extends ServiceImpl<Work
|
|||||||
|
|
||||||
private QueryWrapper<WorkerAttendanceRuleV2ChangeLogVo> getQueryWrapper(HashMap<String, Object> param) {
|
private QueryWrapper<WorkerAttendanceRuleV2ChangeLogVo> getQueryWrapper(HashMap<String, Object> param) {
|
||||||
QueryWrapper<WorkerAttendanceRuleV2ChangeLogVo> queryWrapper = QueryGenerator.initPageQueryWrapper(WorkerAttendanceRuleV2ChangeLogVo.class, param, true);
|
QueryWrapper<WorkerAttendanceRuleV2ChangeLogVo> queryWrapper = QueryGenerator.initPageQueryWrapper(WorkerAttendanceRuleV2ChangeLogVo.class, param, true);
|
||||||
queryWrapper.orderByDesc(RefUtil.fieldNameUlc(WorkerAttendanceRuleV2ChangeLogVo::getId));
|
queryWrapper.orderByDesc(RefUtil.fieldNameUlc(WorkerAttendanceRuleV2ChangeLogVo::getEffectBegin));
|
||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,6 +105,7 @@ public class WorkerAttendanceRuleV2ChangeLogServiceImpl extends ServiceImpl<Work
|
|||||||
BeanUtil.copyProperties(ruleV2, log);
|
BeanUtil.copyProperties(ruleV2, log);
|
||||||
log.setId(null);
|
log.setId(null);
|
||||||
log.setWorkerId(workerId);
|
log.setWorkerId(workerId);
|
||||||
|
log.setEffectBegin(new Date());
|
||||||
return log;
|
return log;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
this.saveBatch(changeLogs);
|
this.saveBatch(changeLogs);
|
||||||
|
|||||||
@ -240,6 +240,9 @@ public class WorkerDailyAttendanceStatisticsV2ServiceImpl extends ServiceImpl<Wo
|
|||||||
if (attendances.size() > 1) {
|
if (attendances.size() > 1) {
|
||||||
//计算跨夜工时按零点结算到前后两天
|
//计算跨夜工时按零点结算到前后两天
|
||||||
for (int i = 1; i < attendances.size(); i++) {
|
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());
|
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);
|
BigDecimal hours = new BigDecimal(betweenMs).divide(new BigDecimal(DateUnit.HOUR.getMillis()), 2, RoundingMode.HALF_UP);
|
||||||
hour = hour.add(hours);
|
hour = hour.add(hours);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user