Merge branch 'fix/回算后无法发放第二次工资单' into release/2.8.4.2306.02

This commit is contained in:
Harryxzy 2023-06-26 13:25:36 +08:00
commit 0117624dc4
5 changed files with 53 additions and 22 deletions

View File

@ -38,9 +38,12 @@ public class SalarySendBaseInfoDTO {
// 薪资账套的周期")
private SalarySobCycleDTO salarySobCycle;
// 工资单发放类型 1正常 2补发
private String salaryAcctType;
// // 工资单发放类型 1正常 2补发
// private String salaryAcctType;
//
// // 是否回算过 0没有回算过1回算过
// private Integer haveBackCalc;
// 是否回算过 0没有回算过1回算过
private Integer haveBackCalc;
// 能否发送
private Boolean canSend;
}

View File

@ -123,14 +123,23 @@ public class SalarySendListDTO {
private Integer sendStatus;
/**
* 核算类型0正常1补发
* 工资单类型0正常1补发
*/
private Integer salaryAcctType;
/**
* 薪资记录核算类型0正常1补发
*/
private Integer salaryAcctRecordType;
/**
* 能够查看详情
*/
private Boolean canSeeDetail;
/**
* 是否回算过 0没有回算过1回算过
*/
private Integer haveBackCalc;
// private Integer haveBackCalc;
}

View File

@ -43,7 +43,8 @@
t1.send_num,
t1.send_total,
t1.last_send_time,
t2.acct_times
t2.acct_times,
t2.back_calc_status AS salaryAcctRecordType
</sql>
<sql id="paramSql">

View File

@ -405,12 +405,12 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
throw new SalaryRunTimeException(SalaryI18nUtil.getI18nLabel(100512, "工资单发放不存在"));
}
Long salaryAcctId = salarySend.getSalaryAccountingId();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
SalarySobCycleDTO salarySobCycleDTO = getSalaryAcctRecordService(user).getSalarySobCycleById(salaryAcctId);
List<SalaryAcctRecordPO> salaryAcctRecordPOS = getSalaryAcctRecordService(user).listBySalarySobIds(Collections.singletonList(salarySobCycleDTO.getSalarySobId()));
// 是否有回算记录
boolean haveBackCalc = salaryAcctRecordPOS.stream().filter(PO -> Objects.equals(PO.getBackCalcStatus(), NumberUtils.INTEGER_ONE) &&
Objects.equals(sdf.format(PO.getSalaryMonth()), SalaryDateUtil.MONTH_FORMATTER.format(salarySobCycleDTO.getSalaryMonth()))).collect(Collectors.toList()).size() > 0;
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
// List<SalaryAcctRecordPO> salaryAcctRecordPOS = getSalaryAcctRecordService(user).listBySalarySobIds(Collections.singletonList(salarySobCycleDTO.getSalarySobId()));
// // 是否有回算记录
// boolean haveBackCalc = salaryAcctRecordPOS.stream().filter(PO -> Objects.equals(PO.getBackCalcStatus(), NumberUtils.INTEGER_ONE) &&
// Objects.equals(sdf.format(PO.getSalaryMonth()), SalaryDateUtil.MONTH_FORMATTER.format(salarySobCycleDTO.getSalaryMonth()))).collect(Collectors.toList()).size() > 0;
String template = "";
// 获取默认模板
List<SalaryTemplatePO> salaryTemplates = getSalaryTemplateService(user).getDefaultTemplates(Collections.singletonList(salarySend.getSalarySobId()));
@ -422,14 +422,23 @@ public class SalarySendServiceImpl extends Service implements SalarySendService
template = salaryTemplates.get(0).getName();
}
}
Boolean canSend = true;
SalaryAcctRecordPO acctRecord = getSalaryAcctRecordService(user).getById(salaryAcctId);
// 回算过但是查看的是普通工资单不能发;回算过但是查看的是回算工资单可以发记录没回算过可以发
if(Objects.equals(acctRecord.getBackCalcStatus(), NumberUtils.INTEGER_ONE) && Objects.equals(salarySend.getSalaryAcctType(),NumberUtils.INTEGER_ZERO)){
canSend = false;
}
return SalarySendBaseInfoDTO.builder()
.salaryMonth(salarySobCycleDTO.getSalaryMonth())
.template(template)
.salarySobCycle(salarySobCycleDTO)
.sendNum(salarySend.getSendNum())
.sendTotal(salarySend.getSendTotal())
.salaryAcctType(salarySend.getSalaryAcctType().toString())
.haveBackCalc(haveBackCalc ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)
.canSend(canSend)
// .salaryAcctType(salarySend.getSalaryAcctType().toString())
// .haveBackCalc(haveBackCalc ? NumberUtils.INTEGER_ONE : NumberUtils.INTEGER_ZERO)
.build();
}

View File

@ -113,6 +113,15 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy
list = salarySendMapper.list(queryParam);
}
list.stream().forEach(dto -> {
// 回算过但是查看的是普通工资单不能查看详情;回算过但是查看的是回算工资单可以发记录没回算过可以发
if(Objects.equals(dto.getSalaryAcctRecordType(), NumberUtils.INTEGER_ONE) && Objects.equals(dto.getSalaryAcctType(),NumberUtils.INTEGER_ZERO)){
dto.setCanSeeDetail(false);
}else{
dto.setCanSeeDetail(true);
}
});
PageInfo<SalarySendListDTO> pageInfo = SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(),
list, SalarySendListDTO.class);
List<SalarySendListDTO> pageList = pageInfo.getList();
@ -130,7 +139,7 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy
e.setTemplate(NumberUtils.INTEGER_ONE.equals(e.getSalaryAcctType()) ? optional.get().getReplenishName() : optional.get().getName());
e.setTemplateId(optional.get().getId());
}
e.setHaveBackCalc(NumberUtils.INTEGER_ZERO);
// e.setHaveBackCalc(NumberUtils.INTEGER_ZERO);
});
}
// 薪资核算ID
@ -138,13 +147,13 @@ public class SalarySendWrapper extends Service implements SalarySendWrapperProxy
// 获取是回算的薪资核算ID
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
List<SalaryAcctRecordPO> salaryAcctRecordPOS = getSalaryAcctRecordService(user).getBackCalcRecordByIds(salaryAcctIds);
Set<String> backCalcSalarySobs = SalaryEntityUtil.properties(salaryAcctRecordPOS, salaryAcctRecordPO -> salaryAcctRecordPO.getSalarySobId() + "-" + sdf.format(salaryAcctRecordPO.getSalaryMonth()));
// 判断是否回算过haveBackCalc 属性
pageList.stream().forEach(salarySendDTO -> {
if (backCalcSalarySobs.contains(salarySendDTO.getSalarySobId() + "-" + sdf.format(salarySendDTO.getSalaryYearMonth()))) {
salarySendDTO.setHaveBackCalc(NumberUtils.INTEGER_ONE);
}
});
// Set<String> backCalcSalarySobs = SalaryEntityUtil.properties(salaryAcctRecordPOS, salaryAcctRecordPO -> salaryAcctRecordPO.getSalarySobId() + "-" + sdf.format(salaryAcctRecordPO.getSalaryMonth()));
// // 判断是否回算过haveBackCalc 属性
// pageList.stream().forEach(salarySendDTO -> {
// if (backCalcSalarySobs.contains(salarySendDTO.getSalarySobId() + "-" + sdf.format(salarySendDTO.getSalaryYearMonth()))) {
// salarySendDTO.setHaveBackCalc(NumberUtils.INTEGER_ONE);
// }
// });
List<WeaTableColumn> columns = buildWeaTableColumns();
WeaTable table = new WeaTable();
table.setColumns(columns);