考勤引用校验能够否删除

This commit is contained in:
Harryxzy 2023-06-16 13:33:38 +08:00
parent 512510c623
commit ee7936a9bf
1 changed files with 18 additions and 15 deletions

View File

@ -5,7 +5,6 @@ import com.engine.core.impl.Service;
import com.engine.salary.biz.AttendQuoteBiz;
import com.engine.salary.biz.AttendQuoteDataBiz;
import com.engine.salary.biz.AttendQuoteDataValueBiz;
import com.engine.salary.common.LocalDateRange;
import com.engine.salary.entity.datacollection.dto.AttendQuoteListDTO;
import com.engine.salary.entity.datacollection.param.AttendQuoteDataQueryParam;
import com.engine.salary.entity.datacollection.param.AttendQuoteQueryParam;
@ -30,10 +29,7 @@ import weaver.hrm.User;
import java.time.LocalDate;
import java.time.YearMonth;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
@ -63,13 +59,13 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic
public PageInfo<AttendQuoteListDTO> listPage(AttendQuoteQueryParam queryParam) {
List<String> declareMonth = queryParam.getSalaryYearMonth();
SalaryAcctRecordPO queryRecordParam = new SalaryAcctRecordPO();
// SalaryAcctRecordPO queryRecordParam = new SalaryAcctRecordPO();
if (CollectionUtils.isNotEmpty(declareMonth)) {
queryParam.setSalaryYearMonth(declareMonth.stream().map(e -> e + "-01 00:00:00").collect(Collectors.toList()));
queryParam.setSalaryYearMonthDate(declareMonth.stream().map(e -> e + "-01 00:00:00").map(SalaryDateUtil::dateStrToLocalTime).collect(Collectors.toList()));
LocalDateRange salaryMonth = LocalDateRange.builder().fromDate(SalaryDateUtil.dateStrToLocalDate(declareMonth.get(0)+"-01 00:00:00"))
.endDate(SalaryDateUtil.dateStrToLocalTime(declareMonth.get(1)+"-01 00:00:00")).build();
queryRecordParam.setSalaryMonths(salaryMonth);
// LocalDateRange salaryMonth = LocalDateRange.builder().fromDate(SalaryDateUtil.dateStrToLocalDate(declareMonth.get(0)+"-01 00:00:00"))
// .endDate(SalaryDateUtil.dateStrToLocalTime(declareMonth.get(1)+"-01 00:00:00")).build();
// queryRecordParam.setSalaryMonths(salaryMonth);
}
@ -82,18 +78,18 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic
return new PageInfo<>(AttendQuoteListDTO.class);
}
queryParam.setSalarySobIds(salarySobIds);
queryRecordParam.setSalarySobIds(salarySobIds);
// queryRecordParam.setSalarySobIds(salarySobIds);
}
// 获取已经归档的记录
List<SalaryAcctRecordPO> salaryAcctRecordPOS = getSalaryAcctRecordService(user).listSome(queryRecordParam);
List<String> archivedRecords = salaryAcctRecordPOS.stream().filter(PO -> PO.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue())
.map(PO -> SalaryDateUtil.getFormatYearMonth(PO.getSalaryMonth()) + PO.getSalarySobId())
.collect(Collectors.toList());
// List<SalaryAcctRecordPO> salaryAcctRecordPOS = getSalaryAcctRecordService(user).listSome(queryRecordParam);
// List<String> archivedRecords = salaryAcctRecordPOS.stream().filter(PO -> PO.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue())
// .map(PO -> SalaryDateUtil.getFormatYearMonth(PO.getSalaryMonth()) + PO.getSalarySobId())
// .collect(Collectors.toList());
List<AttendQuoteListDTO> list = getAttendQuoteMapper().list(queryParam);
list.stream().forEach(DTO -> DTO.setCanDelete( !archivedRecords.contains( (SalaryDateUtil.getFormatYearMonth(DTO.getSalaryYearMonth()) + DTO.getSalarySobId().toString()) ) ));
// list.stream().forEach(DTO -> DTO.setCanDelete( !archivedRecords.contains( (SalaryDateUtil.getFormatYearMonth(DTO.getSalaryYearMonth()) + DTO.getSalarySobId().toString()) ) ));
return SalaryPageUtil.buildPage(queryParam.getCurrent(), queryParam.getPageSize(),
list, AttendQuoteListDTO.class);
@ -113,6 +109,13 @@ public class AttendQuoteServiceImpl extends Service implements AttendQuoteServic
if (CollectionUtils.isNotEmpty(accountingAttendQuotes)) {
throw new SalaryRunTimeException("已经核算完成的数据不能删除");
}
List<SalaryAcctRecordPO> salaryAcctRecordPOS = getSalaryAcctRecordService(user).listSome(SalaryAcctRecordPO.builder().salarySobId(attendQuotes.get(0).getSalarySobId())
.salaryMonth(attendQuotes.get(0).getSalaryYearMonth()).build());
Optional<SalaryAcctRecordPO> haveArchived = salaryAcctRecordPOS.stream().filter(PO -> PO.getStatus() > SalaryAcctRecordStatusEnum.NOT_ARCHIVED.getValue()).findFirst();
if(haveArchived.isPresent()){
throw new SalaryRunTimeException("已经核算完成的数据不能删除");
}
List<Long> unAccountingIds = attendQuotes.stream().filter(e -> e.getSalaryAccountingStatus().equals(0)).map(AttendQuoteListDTO::getId).collect(Collectors.toList());
// 1.删除未核算的考勤引用
biz.deleteByIds(unAccountingIds);