考勤修改 审核流程修改
This commit is contained in:
parent
de0c0e02b8
commit
d9edbae9ff
|
|
@ -148,7 +148,8 @@ public class AttendanceDetailsController extends BaseController {
|
||||||
@Log(title = "考勤报表->考勤明细->考勤修改", businessType = BusinessType.UPDATE)
|
@Log(title = "考勤报表->考勤明细->考勤修改", businessType = BusinessType.UPDATE)
|
||||||
public AjaxResult edit(@RequestBody List<AttDataDetailsBean> list) {
|
public AjaxResult edit(@RequestBody List<AttDataDetailsBean> list) {
|
||||||
try{
|
try{
|
||||||
return toAjax(attendanceDetailsService.updateAttDetailsData(list));
|
// return toAjax(attendanceDetailsService.updateAttDetailsData(list));
|
||||||
|
return attendanceDetailsService.updateAttDetailsData(list);
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
log.error(e.toString(),e);
|
log.error(e.toString(),e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -116,4 +116,13 @@ public interface AttendanceDetailsDao {
|
||||||
* @date 2025/2/18 15:59
|
* @date 2025/2/18 15:59
|
||||||
*/
|
*/
|
||||||
List<AttClockingRecordVo> getClockingRecordListByUserId(AttMonthReportBean bean);
|
List<AttClockingRecordVo> getClockingRecordListByUserId(AttMonthReportBean bean);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询考勤修改的审核状态
|
||||||
|
* @param bean
|
||||||
|
* @return List<Map<String,Object>>
|
||||||
|
* @author cwchen
|
||||||
|
* @date 2025/2/19 18:16
|
||||||
|
*/
|
||||||
|
Integer getAuditStatus(AttDataDetailsBean bean);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -238,6 +238,22 @@ public class AttDataDetailsBean {
|
||||||
private String attendType;
|
private String attendType;
|
||||||
private String attStatusToday;
|
private String attStatusToday;
|
||||||
|
|
||||||
|
/**人资审核ID*/
|
||||||
|
private Long hrAuditId;
|
||||||
|
/**人资审核时间*/
|
||||||
|
private String hrAuditTime;
|
||||||
|
/**人资审核状态*/
|
||||||
|
private String hrAuditStatus;
|
||||||
|
/**部门负责人审核ID*/
|
||||||
|
private Long managerAuditId;
|
||||||
|
/**部门负责人审核时间*/
|
||||||
|
private String managerAuditTime;
|
||||||
|
/**部门负责人审核状态*/
|
||||||
|
private String managerAuditStatus;
|
||||||
|
|
||||||
|
/**当前审核状态*/
|
||||||
|
private Integer currentAuditStatus;
|
||||||
|
|
||||||
/**上班附件/下班附件*/
|
/**上班附件/下班附件*/
|
||||||
private List<FilesVo> filesVoList;
|
private List<FilesVo> filesVoList;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ public interface AttendanceDetailsService {
|
||||||
* @param list list bean
|
* @param list list bean
|
||||||
* @return 1|0
|
* @return 1|0
|
||||||
*/
|
*/
|
||||||
int updateAttDetailsData(List<AttDataDetailsBean> list);
|
AjaxResult updateAttDetailsData(List<AttDataDetailsBean> list);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审核考勤
|
* 审核考勤
|
||||||
|
|
|
||||||
|
|
@ -79,9 +79,14 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int updateAttDetailsData(List<AttDataDetailsBean> list) {
|
public AjaxResult updateAttDetailsData(List<AttDataDetailsBean> list) {
|
||||||
// 判断考勤修改的数据是否有处于人资审核中,如果只是处于部门领导审核中则可以修改
|
// 判断考勤修改的数据是否有处于人资审核中,如果只是处于部门领导审核中则可以修改
|
||||||
|
for (AttDataDetailsBean attDataDetailsBean : list) {
|
||||||
|
Integer auditStatus = attendanceDetailsDao.getAuditStatus(attDataDetailsBean);
|
||||||
|
if (Objects.equals(3, auditStatus)) {
|
||||||
|
return AjaxResult.error("姓名:"+attDataDetailsBean.getUserName() + "修改的考勤数据处于人资审核中,请等待审核完成后再修改");
|
||||||
|
}
|
||||||
|
}
|
||||||
int i = attendanceDetailsDao.updateAttDetailsData(list);
|
int i = attendanceDetailsDao.updateAttDetailsData(list);
|
||||||
fileUploadService.saveAttUpdateFileSource(list);
|
fileUploadService.saveAttUpdateFileSource(list);
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
|
|
@ -108,7 +113,7 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService {
|
||||||
noticeService.insertNotice(bean);
|
noticeService.insertNotice(bean);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return i;
|
return AjaxResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -118,9 +123,27 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService {
|
||||||
list.forEach(c -> {
|
list.forEach(c -> {
|
||||||
c.setReviewerUserId(userId);
|
c.setReviewerUserId(userId);
|
||||||
c.setReviewerTime(time);
|
c.setReviewerTime(time);
|
||||||
|
Integer auditStatus = attendanceDetailsDao.getAuditStatus(c);
|
||||||
|
c.setCurrentAuditStatus(auditStatus);
|
||||||
|
if(Objects.equals(auditStatus,0)){ // 部门负责人审核
|
||||||
|
c.setManagerAuditTime(time);
|
||||||
|
c.setManagerAuditId(userId);
|
||||||
|
c.setManagerAuditStatus(c.getReviewerStatus());
|
||||||
|
if(Objects.equals(c.getReviewerStatus(),"1")){ // 审批通过流转到人资专员审核
|
||||||
|
c.setHrAuditStatus("0");
|
||||||
|
c.setReviewerStatus("3");
|
||||||
|
}else if(Objects.equals(c.getReviewerStatus(),"2")){ // 审批驳回
|
||||||
|
c.setReviewerStatus(c.getReviewerStatus());
|
||||||
|
}
|
||||||
|
}else if(Objects.equals(auditStatus,3)){ // 人资审核
|
||||||
|
c.setHrAuditTime(time);
|
||||||
|
c.setHrAuditId(userId);
|
||||||
|
c.setHrAuditStatus(c.getReviewerStatus());
|
||||||
|
}
|
||||||
});
|
});
|
||||||
int i = attendanceDetailsDao.updateAttDetailsDataExamine(list);
|
int i = attendanceDetailsDao.updateAttDetailsDataExamine(list);
|
||||||
if(i>0){
|
// todo 更新月报表和日报表
|
||||||
|
if (i > 0) {
|
||||||
Set<String> keys = new HashSet<>();
|
Set<String> keys = new HashSet<>();
|
||||||
for (AttDataDetailsBean attDataDetailsBean : list) {
|
for (AttDataDetailsBean attDataDetailsBean : list) {
|
||||||
keys.add(attDataDetailsBean.getAttCurrentDay());
|
keys.add(attDataDetailsBean.getAttCurrentDay());
|
||||||
|
|
@ -228,8 +251,8 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService {
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
attTasks.hisAttPush(dateList);
|
attTasks.hisAttPush(dateList);
|
||||||
return AjaxResult.success("数据同步成功");
|
return AjaxResult.success("数据同步成功");
|
||||||
}catch (Exception e){
|
} catch (Exception e) {
|
||||||
log.error(e.toString(),e);
|
log.error(e.toString(), e);
|
||||||
return AjaxResult.error("数据同步失败");
|
return AjaxResult.error("数据同步失败");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -288,7 +311,7 @@ public class AttendanceDetailsServiceImpl implements AttendanceDetailsService {
|
||||||
try {
|
try {
|
||||||
list = attendanceDetailsDao.getClockingRecordListByUserId(bean);
|
list = attendanceDetailsDao.getClockingRecordListByUserId(bean);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.toString(),e);
|
log.error(e.toString(), e);
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -501,17 +501,23 @@
|
||||||
FROM att_source_data
|
FROM att_source_data
|
||||||
WHERE name = #{userName} AND DATE_FORMAT(att_current_day,'%Y-%m') = #{month} AND is_active = '1'
|
WHERE name = #{userName} AND DATE_FORMAT(att_current_day,'%Y-%m') = #{month} AND is_active = '1'
|
||||||
</select>
|
</select>
|
||||||
|
<!--查询考勤修改的审核状态-->
|
||||||
|
<select id="getAuditStatus" resultType="java.lang.Integer">
|
||||||
|
SELECT reviewer_status
|
||||||
|
FROM att_data_update
|
||||||
|
WHERE user_id = #{userId} AND att_current_day = #{attCurrentDay} AND org_id = #{orgId} LIMIT 1
|
||||||
|
</select>
|
||||||
|
|
||||||
<update id="updateAttDetailsData">
|
<update id="updateAttDetailsData">
|
||||||
<foreach collection="list" item="params" separator=";">
|
<foreach collection="list" item="params" separator=";">
|
||||||
update att_data_update set update_att_current_time = #{params.toWorkAttCurrentTime},
|
update att_data_update set update_att_current_time = #{params.toWorkAttCurrentTime},
|
||||||
update_att_status = #{params.toWorkAttStatus}, reviewer_status = 0, is_update = 1,
|
update_att_status = #{params.toWorkAttStatus}, reviewer_status = 0, is_update = 1,manager_audit_status = 0,
|
||||||
reason_content = #{params.toErrorRemake}
|
reason_content = #{params.toErrorRemake}
|
||||||
where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 1
|
where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 1
|
||||||
and att_current_day = #{params.attCurrentDay};
|
and att_current_day = #{params.attCurrentDay};
|
||||||
|
|
||||||
update att_data_update set update_att_current_time = #{params.offWorkAttCurrentTime},
|
update att_data_update set update_att_current_time = #{params.offWorkAttCurrentTime},
|
||||||
update_att_status = #{params.offWorkAttStatus}, reviewer_status = 0, is_update = 1,
|
update_att_status = #{params.offWorkAttStatus}, reviewer_status = 0, is_update = 1,manager_audit_status = 0,
|
||||||
reason_content = #{params.offErrorRemake}
|
reason_content = #{params.offErrorRemake}
|
||||||
where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 2
|
where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 2
|
||||||
and att_current_day = #{params.attCurrentDay}
|
and att_current_day = #{params.attCurrentDay}
|
||||||
|
|
@ -520,15 +526,32 @@
|
||||||
|
|
||||||
<update id="updateAttDetailsDataExamine">
|
<update id="updateAttDetailsDataExamine">
|
||||||
<foreach collection="list" item="params" separator=";">
|
<foreach collection="list" item="params" separator=";">
|
||||||
update att_data_update set reviewer_status = #{params.reviewerStatus},
|
<if test="currentAuditStatus == 0">
|
||||||
reviewer_user_id = #{params.reviewerUserId}, reviewer_time = #{params.reviewerTime}
|
update att_data_update set reviewer_status = #{params.reviewerStatus},
|
||||||
where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 1
|
manager_audit_id = #{params.managerAuditId}, manager_audit_time = #{params.managerAuditTime},
|
||||||
and att_current_day = #{params.attCurrentDay};
|
manager_audit_status = #{params.managerAuditStatus}
|
||||||
|
where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 1
|
||||||
|
and att_current_day = #{params.attCurrentDay};
|
||||||
|
|
||||||
update att_data_update set reviewer_status = #{params.reviewerStatus},
|
update att_data_update set reviewer_status = #{params.reviewerStatus},
|
||||||
reviewer_user_id = #{params.reviewerUserId}, reviewer_time = #{params.reviewerTime}
|
manager_audit_id = #{params.managerAuditId}, manager_audit_time = #{params.managerAuditTime},
|
||||||
where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 2
|
manager_audit_status = #{params.managerAuditStatus}
|
||||||
and att_current_day = #{params.attCurrentDay}
|
where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 2
|
||||||
|
and att_current_day = #{params.attCurrentDay}
|
||||||
|
</if>
|
||||||
|
<if test="currentAuditStatus == 3">
|
||||||
|
update att_data_update set reviewer_status = #{params.reviewerStatus},
|
||||||
|
hr_audit_id = #{params.hrAuditId}, hr_audit_time = #{params.hrAuditTime},
|
||||||
|
hr_audit_status = #{params.hrAuditStatus}
|
||||||
|
where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 1
|
||||||
|
and att_current_day = #{params.attCurrentDay};
|
||||||
|
|
||||||
|
update att_data_update set reviewer_status = #{params.reviewerStatus},
|
||||||
|
hr_audit_id = #{params.hrAuditId}, hr_audit_time = #{params.hrAuditTime},
|
||||||
|
hr_audit_status = #{params.hrAuditStatus}
|
||||||
|
where user_id = #{params.userId} and org_id = #{params.orgId} and att_type = 2
|
||||||
|
and att_current_day = #{params.attCurrentDay}
|
||||||
|
</if>
|
||||||
</foreach>
|
</foreach>
|
||||||
</update>
|
</update>
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Reference in New Issue