处理请假的幂等问题

This commit is contained in:
andy 2026-09-19 10:24:27 +08:00
parent 4046a07ca7
commit 9de61513b7
5 changed files with 18 additions and 9 deletions

View File

@ -120,6 +120,11 @@ public class ApproveStatusLeaveExchangeProcessor implements AttendanceApproveSta
// } // }
rzLeaveDetail.setRemarks("钉钉"+tag); rzLeaveDetail.setRemarks("钉钉"+tag);
rzLeaveDetail.setProcessInstanceId(processInstanceId); rzLeaveDetail.setProcessInstanceId(processInstanceId);
//没查到原因, 一直出现多个数据, 做个幂等数据处理
if(getIRzLeaveDetailService().checkExistsRzLeaveDetail(rzLeaveDetail).compareTo(0l)>0){
log.error("当前请假信息已经记录, 不需要继续进行持久化");
return;
}
getIRzLeaveDetailService().insertRzLeaveDetail(rzLeaveDetail); getIRzLeaveDetailService().insertRzLeaveDetail(rzLeaveDetail);
} }
} }

View File

@ -120,10 +120,6 @@ public class MonthlySalaryStrategyExchangeProcessor implements SalaryCalculation
// rzSalaryDetail.setMonthSalary(rzSalaryDetail.getMonthSalary().add(gs)); // rzSalaryDetail.setMonthSalary(rzSalaryDetail.getMonthSalary().add(gs));
rzSalaryDetail.setBjAmount(gs); rzSalaryDetail.setBjAmount(gs);
} }
if(sysStaff.getName().equals("史国臣")){
System.out.println("11111");
}
BigDecimal basic = new BigDecimal("0"); BigDecimal basic = new BigDecimal("0");
Long basicHour = 0l; Long basicHour = 0l;
for (Long type: ParamUtils.getBasicVacation()) { for (Long type: ParamUtils.getBasicVacation()) {

View File

@ -37,6 +37,8 @@ public interface IRzLeaveDetailService
*/ */
public AjaxResult insertRzLeaveDetail(RzLeaveDetail rzLeaveDetail); public AjaxResult insertRzLeaveDetail(RzLeaveDetail rzLeaveDetail);
public Long checkExistsRzLeaveDetail(RzLeaveDetail rzLeaveDetail);
/** /**
* 修改请假管理详情 * 修改请假管理详情
* *

View File

@ -101,6 +101,11 @@ public class RzLeaveDetailServiceImpl extends ServiceImpl<RzLeaveDetailMapper, R
return buildData(String.valueOf(rzLeaveDetail.getType()), rzLeave, rzLeaveDetail, rzLeaveDetail.getLeaveHour(), true); return buildData(String.valueOf(rzLeaveDetail.getType()), rzLeave, rzLeaveDetail, rzLeaveDetail.getLeaveHour(), true);
} }
@Override
public Long checkExistsRzLeaveDetail(RzLeaveDetail rzLeaveDetail) {
return count(new LambdaQueryWrapper<RzLeaveDetail>().select(RzLeaveDetail::getId).eq(RzLeaveDetail::getLeaveId, rzLeaveDetail.getLeaveId()).eq(RzLeaveDetail::getProcessInstanceId, rzLeaveDetail.getProcessInstanceId()));
}
public AjaxResult buildData(String type, RzLeave rzLeave, RzLeaveDetail rzLeaveDetail, Integer holidayHour, Boolean isTs){ public AjaxResult buildData(String type, RzLeave rzLeave, RzLeaveDetail rzLeaveDetail, Integer holidayHour, Boolean isTs){
switch (type){ switch (type){

View File

@ -169,9 +169,8 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
if(sysStaff.getRegularDate().before(DateUtils.getNowDate())){ if(sysStaff.getRegularDate().before(DateUtils.getNowDate())){
sysStaff.setStatus(Constants.JOB_STATIS_1); sysStaff.setStatus(Constants.JOB_STATIS_1);
}else if(sysStaff.getRegularDate().after(DateUtils.getNowDate())){ }else if(sysStaff.getRegularDate().after(DateUtils.getNowDate())){
sysStaff.setStatus(Constants.JOB_STATIS_0); sysStaff.setStatus(Constants.JOB_STATIS_0);
} }
sysStaff.setStatus(Constants.JOB_STATIS_0);
sysStaff.setCreateTime(DateUtils.getNowDate()); sysStaff.setCreateTime(DateUtils.getNowDate());
sysStaff.setCreateBy(SecurityUtils.getUsername()); sysStaff.setCreateBy(SecurityUtils.getUsername());
sysStaff.setDelFlag(Constants.DELETE_FLAG_0); sysStaff.setDelFlag(Constants.DELETE_FLAG_0);
@ -403,7 +402,7 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
if(sysStaff.getQuitDate().getTime() < DateUtils.getNowDate().getTime()){ if(sysStaff.getQuitDate().getTime() < DateUtils.getNowDate().getTime()){
//记录原始状态 //记录原始状态
String oldStatus = sysStaff.getStatus(); String oldStatus = sysStaff.getStatus();
sysStaff.setStatus("-1"); sysStaff.setStatus(Constants.JOB_STATIS_11);
int i = getBaseMapper().updateSysStaff(sysStaff); int i = getBaseMapper().updateSysStaff(sysStaff);
if(i < 1){ if(i < 1){
return AjaxResult.error(); return AjaxResult.error();
@ -435,6 +434,8 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
//检查转正日期, 是否初始化为试用期 //检查转正日期, 是否初始化为试用期
if(sysStaff.getRegularDate().before(DateUtils.getNowDate())){ if(sysStaff.getRegularDate().before(DateUtils.getNowDate())){
sysStaff.setStatus(Constants.JOB_STATIS_1);
}else if(sysStaff.getRegularDate().after(DateUtils.getNowDate())){
sysStaff.setStatus(Constants.JOB_STATIS_0); sysStaff.setStatus(Constants.JOB_STATIS_0);
} }
@ -909,7 +910,7 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
for (SysStaff sysStaff : params_list) { for (SysStaff sysStaff : params_list) {
//判断员工是否离职 //判断员工是否离职
if(StringUtils.isNotNull(sysStaff.getQuitDate()) && sysStaff.getQuitDate().getTime() < DateUtils.getNowDate().getTime()){ if(StringUtils.isNotNull(sysStaff.getQuitDate()) && sysStaff.getQuitDate().getTime() < DateUtils.getNowDate().getTime()){
sysStaff.setStatus("-1"); sysStaff.setStatus(Constants.JOB_STATIS_11);
getBaseMapper().updateSysStaff(sysStaff); getBaseMapper().updateSysStaff(sysStaff);
return; return;
} }
@ -925,7 +926,7 @@ public class SysStaffServiceImpl extends ServiceImpl<SysStaffMapper, SysStaff> i
//if(DateUtils.addMonths(sysStaff.getEmploymentDate(), Integer.valueOf(String.valueOf(sysStaff.getWorkerTerm()))).getTime() < DateUtils.getNowDate().getTime()){ //if(DateUtils.addMonths(sysStaff.getEmploymentDate(), Integer.valueOf(String.valueOf(sysStaff.getWorkerTerm()))).getTime() < DateUtils.getNowDate().getTime()){
if(sysStaff.getRegularDate().before(DateUtils.getNowDate())){ if(sysStaff.getRegularDate().before(DateUtils.getNowDate())){
sysStaff.setStatus("1"); sysStaff.setStatus(Constants.JOB_STATIS_1);
} }
getBaseMapper().updateSysStaff(sysStaff); getBaseMapper().updateSysStaff(sysStaff);
} }