|
@@ -112,7 +112,6 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
@Autowired
|
|
@Autowired
|
|
private RepalVipService repalVipService;
|
|
private RepalVipService repalVipService;
|
|
|
|
|
|
-
|
|
|
|
@Override
|
|
@Override
|
|
public RepalBillInfoVO getRepalBillPage(GetRepalBillPageDTO dto) {
|
|
public RepalBillInfoVO getRepalBillPage(GetRepalBillPageDTO dto) {
|
|
long userId = UserContextUtil.getUser().getUserId();
|
|
long userId = UserContextUtil.getUser().getUserId();
|
|
@@ -192,15 +191,27 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
unreadMap.put(repalBill.getId(), readVO);
|
|
unreadMap.put(repalBill.getId(), readVO);
|
|
});
|
|
});
|
|
Map<Long, List<String>> nameMap = repalResponsiblePersonService.getResponsiblePersonNameList(billIdList);
|
|
Map<Long, List<String>> nameMap = repalResponsiblePersonService.getResponsiblePersonNameList(billIdList);
|
|
- voPage.setDataList(repalBillPage.getRecords().stream().map(t -> {
|
|
|
|
|
|
+ List<RepalCustomer> customerList = repalCustomerService.list(Wrappers.lambdaQuery(RepalCustomer.class).in(RepalCustomer::getCustId,
|
|
|
|
+ repalBillPage.getRecords().stream().map(RepalBill::getCustomerId).distinct().collect(Collectors.toList())));
|
|
|
|
+ Map<Long, Integer> custMap = customerList.stream().collect(Collectors.toMap(RepalCustomer::getCustId, RepalCustomer::getCustProperty));
|
|
|
|
+ voPage.setDataList(repalBillPage.getRecords().stream().map(repalBill -> {
|
|
RepalBillPageVO vo = new RepalBillPageVO();
|
|
RepalBillPageVO vo = new RepalBillPageVO();
|
|
- BeanUtils.copyProperties(t, vo);
|
|
|
|
- vo.setRepalBillId(t.getId());
|
|
|
|
- vo.setResponsiblePersonNames(String.join("、", nameMap.get(t.getId())));
|
|
|
|
- vo.setRepalOverdueStatus(t.getRepalBillStatus() > 1 ? t.getRepalBillStatus() + 1 : t.getRepalBillStatus());
|
|
|
|
|
|
+ BeanUtils.copyProperties(repalBill, vo);
|
|
|
|
+ vo.setRepalBillId(repalBill.getId());
|
|
|
|
+ vo.setResponsiblePersonNames(String.join("、", nameMap.get(repalBill.getId())));
|
|
|
|
+ vo.setRepalOverdueStatus(repalBill.getRepalBillStatus() > 1 ? repalBill.getRepalBillStatus() + 1 : repalBill.getRepalBillStatus());
|
|
if (RepalBillStatusEnum.PROGRESSING.getCode().equals(vo.getRepalOverdueStatus()) && LocalDate.now().plusDays(3).equals(vo.getEndDate())) {
|
|
if (RepalBillStatusEnum.PROGRESSING.getCode().equals(vo.getRepalOverdueStatus()) && LocalDate.now().plusDays(3).equals(vo.getEndDate())) {
|
|
vo.setRepalOverdueStatus(2);
|
|
vo.setRepalOverdueStatus(2);
|
|
}
|
|
}
|
|
|
|
+ vo.setCustName(repalBill.getCustomerName());
|
|
|
|
+ vo.setCustProperty(custMap.get(repalBill.getCustomerId()));
|
|
|
|
+ vo.setTotalMoneyStr(repalBill.getTotalMoney().stripTrailingZeros().toPlainString());
|
|
|
|
+ vo.setReceivableMoneyStr(repalBill.getReceivable().stripTrailingZeros().toPlainString());
|
|
|
|
+ // 评分趋势
|
|
|
|
+ vo.setDiagnosisScoreTrend(DiagnosisUtil.getDiagnosisScoreTrend(repalBill.getPreDiagnosisScore(), repalBill.getDiagnosisScore(), repalBill.getPreDiagnosisGrade(), repalBill.getDiagnosisGrade()));
|
|
|
|
+ if (Objects.nonNull(repalBill.getDiagnosisScore())) {
|
|
|
|
+ vo.setDiagnosisScore(repalBill.getDiagnosisScore().stripTrailingZeros().toPlainString());
|
|
|
|
+ }
|
|
RepalBillRemindUnReadVO unReadVO = unreadMap.get(vo.getRepalBillId());
|
|
RepalBillRemindUnReadVO unReadVO = unreadMap.get(vo.getRepalBillId());
|
|
if (Objects.nonNull(unReadVO)) {
|
|
if (Objects.nonNull(unReadVO)) {
|
|
vo.setDynamicCountList(new ArrayList<Integer>(){{
|
|
vo.setDynamicCountList(new ArrayList<Integer>(){{
|
|
@@ -216,6 +227,72 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ public VOPage<RepalBillPageVO> searchBill(SearchBillDTO dto) {
|
|
|
|
+ long userId = UserContextUtil.getUser().getUserId();
|
|
|
|
+ Long groupId = repalGroupMemberService.getUserGroupId(userId);
|
|
|
|
+ VOPage<RepalBillPageVO> voPage = new VOPage<>();
|
|
|
|
+ voPage.setPageSize(dto.getPageSize());
|
|
|
|
+ voPage.setPageNum(dto.getPageNum());
|
|
|
|
+ // 分页数据
|
|
|
|
+ Page<RepalBill> repalBillPage = new Page<>(dto.getPageNum(),dto.getPageSize());
|
|
|
|
+ SearchBillPageBO searchBillPageBO = new SearchBillPageBO();
|
|
|
|
+ searchBillPageBO.setReceivableFlag(repalRolePermissionService.checkUserPermission(userId, PermissionEnum.QUERY_ALL_RECEIVABLE.getCode()));
|
|
|
|
+ searchBillPageBO.setReceiptFlag(repalRolePermissionService.checkUserPermission(userId, PermissionEnum.QUERY_ALL_RECEIPT.getCode()));
|
|
|
|
+ searchBillPageBO.setUserId(userId);
|
|
|
|
+ searchBillPageBO.setRepalGroupId(groupId);
|
|
|
|
+ searchBillPageBO.setRepalBookId(dto.getRepalBookId());
|
|
|
|
+ repalBillPage = repalBillMapper.searchPage(repalBillPage, searchBillPageBO);
|
|
|
|
+ voPage.setTotalPage(Math.toIntExact(repalBillPage.getPages()));
|
|
|
|
+ voPage.setTotalNum(repalBillPage.getTotal());
|
|
|
|
+ voPage.setDataList(new ArrayList<>());
|
|
|
|
+ if (CollUtil.isEmpty(repalBillPage.getRecords())) {
|
|
|
|
+ return voPage;
|
|
|
|
+ }
|
|
|
|
+ // 未读消息
|
|
|
|
+ List<Long> billIdList = repalBillPage.getRecords().stream().map(RepalBill::getId).collect(Collectors.toList());
|
|
|
|
+ Map<Long, RepalBillRemindUnReadVO> unreadMap = new HashMap<>();
|
|
|
|
+ repalBillPage.getRecords().parallelStream().forEach(repalBill -> {
|
|
|
|
+ RepalRemindReadInfo repalRemindReadInfo = repalRemindReadInfoService.getReadInfoByUserId(userId,repalBill.getId(),repalBill.getRepalBookId());
|
|
|
|
+ RepalBillRemindUnReadVO readVO = repalRemindHistoryService.getBillRemindUnReadVO(repalRemindReadInfo.getRiskRemindId(),
|
|
|
|
+ repalRemindReadInfo.getRankRemindId(),repalRemindReadInfo.getOverdueRemindId(),
|
|
|
|
+ repalRemindReadInfo.getFinanceRemindId(),repalBill.getRepalBookId(),repalBill.getId(),
|
|
|
|
+ null, null);
|
|
|
|
+ unreadMap.put(repalBill.getId(), readVO);
|
|
|
|
+ });
|
|
|
|
+ Map<Long, List<String>> nameMap = repalResponsiblePersonService.getResponsiblePersonNameList(billIdList);
|
|
|
|
+ List<RepalCustomer> customerList = repalCustomerService.list(Wrappers.lambdaQuery(RepalCustomer.class).in(RepalCustomer::getCustId,
|
|
|
|
+ repalBillPage.getRecords().stream().map(RepalBill::getCustomerId).distinct().collect(Collectors.toList())));
|
|
|
|
+ Map<Long, Integer> custMap = customerList.stream().collect(Collectors.toMap(RepalCustomer::getCustId, RepalCustomer::getCustProperty));
|
|
|
|
+ voPage.setDataList(repalBillPage.getRecords().stream().map(repalBill -> {
|
|
|
|
+ RepalBillPageVO vo = new RepalBillPageVO();
|
|
|
|
+ BeanUtils.copyProperties(repalBill, vo);
|
|
|
|
+ vo.setRepalBillId(repalBill.getId());
|
|
|
|
+ vo.setResponsiblePersonNames(String.join("、", nameMap.get(repalBill.getId())));
|
|
|
|
+ vo.setRepalOverdueStatus(repalBill.getRepalBillStatus() > 1 ? repalBill.getRepalBillStatus() + 1 : repalBill.getRepalBillStatus());
|
|
|
|
+ vo.setCustName(repalBill.getCustomerName());
|
|
|
|
+ vo.setCustProperty(custMap.get(repalBill.getCustomerId()));
|
|
|
|
+ vo.setTotalMoneyStr(repalBill.getTotalMoney().stripTrailingZeros().toPlainString());
|
|
|
|
+ vo.setReceivableMoneyStr(repalBill.getReceivable().stripTrailingZeros().toPlainString());
|
|
|
|
+ // 评分趋势
|
|
|
|
+ vo.setDiagnosisScoreTrend(DiagnosisUtil.getDiagnosisScoreTrend(repalBill.getPreDiagnosisScore(), repalBill.getDiagnosisScore(), repalBill.getPreDiagnosisGrade(), repalBill.getDiagnosisGrade()));
|
|
|
|
+ if (Objects.nonNull(repalBill.getDiagnosisScore())) {
|
|
|
|
+ vo.setDiagnosisScore(repalBill.getDiagnosisScore().stripTrailingZeros().toPlainString());
|
|
|
|
+ }
|
|
|
|
+ RepalBillRemindUnReadVO unReadVO = unreadMap.get(vo.getRepalBillId());
|
|
|
|
+ if (Objects.nonNull(unReadVO)) {
|
|
|
|
+ vo.setDynamicCountList(new ArrayList<Integer>(){{
|
|
|
|
+ add(unReadVO.getUnreadRiskCount());
|
|
|
|
+ add(unReadVO.getUnreadFinanceCount());
|
|
|
|
+ add(unReadVO.getUnreadRankCount());
|
|
|
|
+ add(unReadVO.getUnreadOverdueCount());
|
|
|
|
+ }});
|
|
|
|
+ }
|
|
|
|
+ return vo;
|
|
|
|
+ }).collect(Collectors.toList()));
|
|
|
|
+ return voPage;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
public RepalBillDetailVO getRepalBillDetail(Long repalBillId) {
|
|
public RepalBillDetailVO getRepalBillDetail(Long repalBillId) {
|
|
RepalBill repalBill = this.getById(repalBillId);
|
|
RepalBill repalBill = this.getById(repalBillId);
|
|
// 负责人或高级权限才能查看
|
|
// 负责人或高级权限才能查看
|
|
@@ -538,6 +615,9 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
unreadMap.put(repalBill.getId(), readVO);
|
|
unreadMap.put(repalBill.getId(), readVO);
|
|
});
|
|
});
|
|
Map<Long, List<String>> nameMap = repalResponsiblePersonService.getResponsiblePersonNameList(billIdList);
|
|
Map<Long, List<String>> nameMap = repalResponsiblePersonService.getResponsiblePersonNameList(billIdList);
|
|
|
|
+ List<RepalCustomer> customerList = repalCustomerService.list(Wrappers.lambdaQuery(RepalCustomer.class).in(RepalCustomer::getCustId,
|
|
|
|
+ repalBillPage.getRecords().stream().map(RepalBill::getCustomerId).distinct().collect(Collectors.toList())));
|
|
|
|
+ Map<Long, Integer> custMap = customerList.stream().collect(Collectors.toMap(RepalCustomer::getCustId, RepalCustomer::getCustProperty));
|
|
voPage.setDataList(repalBillPage.getRecords().stream().map(t -> {
|
|
voPage.setDataList(repalBillPage.getRecords().stream().map(t -> {
|
|
RepalBillPageVO vo = new RepalBillPageVO();
|
|
RepalBillPageVO vo = new RepalBillPageVO();
|
|
BeanUtils.copyProperties(t, vo);
|
|
BeanUtils.copyProperties(t, vo);
|
|
@@ -549,6 +629,15 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
if (RepalBillStatusEnum.PROGRESSING.getCode().equals(vo.getRepalOverdueStatus()) && LocalDate.now().plusDays(3).equals(vo.getEndDate())) {
|
|
if (RepalBillStatusEnum.PROGRESSING.getCode().equals(vo.getRepalOverdueStatus()) && LocalDate.now().plusDays(3).equals(vo.getEndDate())) {
|
|
vo.setRepalOverdueStatus(2);
|
|
vo.setRepalOverdueStatus(2);
|
|
}
|
|
}
|
|
|
|
+ vo.setCustName(t.getCustomerName());
|
|
|
|
+ vo.setCustProperty(custMap.get(t.getCustomerId()));
|
|
|
|
+ vo.setTotalMoneyStr(t.getTotalMoney().stripTrailingZeros().toPlainString());
|
|
|
|
+ vo.setReceivableMoneyStr(t.getReceivable().stripTrailingZeros().toPlainString());
|
|
|
|
+ // 评分趋势
|
|
|
|
+ vo.setDiagnosisScoreTrend(DiagnosisUtil.getDiagnosisScoreTrend(t.getPreDiagnosisScore(), t.getDiagnosisScore(), t.getPreDiagnosisGrade(), t.getDiagnosisGrade()));
|
|
|
|
+ if (Objects.nonNull(t.getDiagnosisScore())) {
|
|
|
|
+ vo.setDiagnosisScore(t.getDiagnosisScore().stripTrailingZeros().toPlainString());
|
|
|
|
+ }
|
|
RepalBillRemindUnReadVO unReadVO = unreadMap.get(vo.getRepalBillId());
|
|
RepalBillRemindUnReadVO unReadVO = unreadMap.get(vo.getRepalBillId());
|
|
if (Objects.nonNull(unReadVO)) {
|
|
if (Objects.nonNull(unReadVO)) {
|
|
vo.setDynamicCountList(new ArrayList<Integer>(){{
|
|
vo.setDynamicCountList(new ArrayList<Integer>(){{
|
|
@@ -643,7 +732,7 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
|
|
RepalBill repalBill = this.getById(repalBillId);
|
|
RepalBill repalBill = this.getById(repalBillId);
|
|
RepalManageBillDetailVO vo = new RepalManageBillDetailVO();
|
|
RepalManageBillDetailVO vo = new RepalManageBillDetailVO();
|
|
BeanUtils.copyProperties(repalBill, vo);
|
|
BeanUtils.copyProperties(repalBill, vo);
|
|
- vo.setCustId(Long.parseLong(repalBill.getCustomerId()));
|
|
|
|
|
|
+ vo.setCustId(repalBill.getCustomerId());
|
|
vo.setRepalBillId(repalBill.getId());
|
|
vo.setRepalBillId(repalBill.getId());
|
|
RepalCustomer repalCustomer = repalCustomerService.getById(repalBill.getCustomerId());
|
|
RepalCustomer repalCustomer = repalCustomerService.getById(repalBill.getCustomerId());
|
|
vo.setCompanyId(repalCustomer.getCompanyId());
|
|
vo.setCompanyId(repalCustomer.getCompanyId());
|