1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246 |
- package com.winhc.repal.service.impl;
- import cn.hutool.core.collection.CollUtil;
- import cn.hutool.core.util.NumberUtil;
- import cn.hutool.core.util.ObjectUtil;
- import cn.hutool.core.util.StrUtil;
- import com.alibaba.fastjson.JSON;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.winhc.common.base.ApiDataResult;
- import com.winhc.common.enums.CodeMsg;
- import com.winhc.common.exception.CommonException;
- import com.winhc.common.model.base.VOPage;
- import com.winhc.repal.cloud.DataMiddlewareService;
- import com.winhc.repal.cloud.InCaseService;
- import com.winhc.repal.cloud.dto.GetCompanyRiskNumDTO;
- import com.winhc.repal.cloud.dto.GetCreditPunishmentLabelDTO;
- import com.winhc.repal.cloud.dto.GetFinanceDynamicNumDTO;
- import com.winhc.repal.cloud.dto.QueryV8DynamicDTO;
- import com.winhc.repal.cloud.vo.*;
- import com.winhc.repal.entity.*;
- import com.winhc.repal.enums.*;
- import com.winhc.repal.model.bo.*;
- import com.winhc.repal.model.dto.*;
- import com.winhc.repal.model.vo.*;
- import com.winhc.repal.repository.RepalBillMapper;
- import com.winhc.repal.repository.RepalChangeRecordMapper;
- import com.winhc.repal.repository.RepalResponsiblePersonMapper;
- import com.winhc.repal.service.*;
- import com.winhc.repal.util.DiagnosisUtil;
- import com.winhc.repal.util.RepalBillStatusUtil;
- import com.winhc.repal.util.ThreadPoolUtil;
- import com.winhc.repal.util.UserContextUtil;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.math.BigDecimal;
- import java.math.RoundingMode;
- import java.time.DayOfWeek;
- import java.time.LocalDate;
- import java.time.LocalDateTime;
- import java.time.LocalTime;
- import java.time.format.DateTimeFormatter;
- import java.time.temporal.TemporalAdjusters;
- import java.util.*;
- import java.util.function.Function;
- import java.util.stream.Collectors;
- /**
- * @description RepalBill 接口实现类
- * @author Generator
- * @date 2022-04-08
- */
- @Service
- public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill> implements RepalBillService {
- public static final Logger LOGGER = LoggerFactory.getLogger(RepalBillServiceImpl.class);
- @Autowired
- private RepalBillMapper repalBillMapper;
- @Autowired
- private RepalResponsiblePersonService repalResponsiblePersonService;
- @Autowired
- private RepalGroupMemberService repalGroupMemberService;
- @Autowired
- private RepalCustomerService repalCustomerService;
- @Autowired
- private DataMiddlewareService dataMiddlewareService;
- @Autowired
- private InCaseService inCaseService;
- @Autowired
- private RepalBillDiagnosisService repalBillDiagnosisService;
- @Autowired
- private RepalChangeRecordService repalChangeRecordService;
- @Autowired
- private RepalBookService repalBookService;
- @Autowired
- private RepalRolePermissionService repalRolePermissionService;
- @Autowired
- private RepalRemindHistoryService repalRemindHistoryService;
- @Autowired
- private RepalRemindReadInfoService repalRemindReadInfoService;
- @Autowired
- private RepalBillOperLogService repalBillOperLogService;
- @Autowired
- private UserExtService userExtService;
- @Autowired
- private RepalResponsiblePersonMapper repalResponsiblePersonMapper;
- @Autowired
- private RepalDynamicService repalDynamicService;
- @Autowired
- private RepalVipService repalVipService;
- @Autowired
- private RepalCustChargeRelService repalCustChargeRelService;
- @Autowired
- private CompanyService companyService;
- @Autowired
- private MessageNoticeService messageNoticeService;
- @Override
- public RepalBillInfoVO getRepalBillPage(GetRepalBillPageDTO dto) {
- long userId = UserContextUtil.getUser().getUserId();
- Long groupId = repalGroupMemberService.getUserGroupId(userId);
- VOPage<RepalBillPageVO> voPage = new VOPage<>();
- voPage.setPageSize(dto.getPageSize());
- voPage.setPageNum(dto.getPageNum());
- RepalBillInfoVO infoVO = new RepalBillInfoVO();
- boolean allFlag = repalRolePermissionService.checkUserPermission(userId,
- RepalBillTypeEnum.RECEIVABLE.getCode().equals(dto.getRepalBillType()) ? PermissionEnum.QUERY_ALL_RECEIVABLE.getCode() : PermissionEnum.QUERY_ALL_RECEIPT.getCode());
- // 分页数据
- Page<RepalBill> repalBillPage = new Page<>(dto.getPageNum(),dto.getPageSize());
- BillPageBO billPageBO = new BillPageBO();
- BeanUtils.copyProperties(dto, billPageBO);
- billPageBO.setUserId(userId);
- billPageBO.setAllFlag(allFlag);
- billPageBO.setRepalGroupId(groupId);
- // 对应1-4到期时间
- if (Objects.nonNull(dto.getOverdueType())) {
- switch (dto.getOverdueType()) {
- case 1:
- billPageBO.setStartDate(LocalDate.now());
- billPageBO.setEndDate(billPageBO.getStartDate());
- break;
- case 2:
- billPageBO.setStartDate(LocalDate.now().minusDays(7));
- billPageBO.setEndDate(LocalDate.now());
- break;
- case 3:
- billPageBO.setStartDate(LocalDate.now().minusDays(30));
- billPageBO.setEndDate(LocalDate.now());
- break;
- case 4:
- billPageBO.setStartDate(LocalDate.now().with(TemporalAdjusters.firstDayOfYear()));
- billPageBO.setEndDate(LocalDate.now().with(TemporalAdjusters.lastDayOfYear()));
- break;
- default:
- break;
- }
- }
- LOGGER.info("allFlag:[{}]", allFlag);
- TotalMoneyBO totalMoneyBO;
- TotalMoneyBO overdueBO = new TotalMoneyBO();
- TotalMoneyBO totalBO;
- BillPageBO totalQueryBO = new BillPageBO();
- BillPageBO totalOverdueQueryBO = new BillPageBO();
- BillPageBO totalSumBO = new BillPageBO();
- BeanUtils.copyProperties(billPageBO, totalQueryBO);
- BeanUtils.copyProperties(billPageBO, totalOverdueQueryBO);
- BeanUtils.copyProperties(billPageBO, totalSumBO);
- totalQueryBO.setOverdueStatus(Objects.isNull(dto.getOverdueStatus()) ? 6 : dto.getOverdueStatus());
- totalQueryBO.setTotalFlag(false);
- if (Objects.isNull(dto.getOverdueStatus()) || OverdueStatusEnum.已逾期.getCode().equals(dto.getOverdueStatus())) {
- totalOverdueQueryBO.setOverdueStatus(OverdueStatusEnum.已逾期.getCode());
- }
- if (allFlag) {
- totalQueryBO.setUserId(null);
- totalOverdueQueryBO.setUserId(null);
- totalSumBO.setUserId(null);
- }
- totalMoneyBO = repalBillMapper.getTotalMoneyByGroup(totalQueryBO);
- if (OverdueStatusEnum.已逾期.getCode().equals(totalOverdueQueryBO.getOverdueStatus())) {
- totalOverdueQueryBO.setTotalFlag(false);
- overdueBO = repalBillMapper.getTotalMoneyByGroup(totalOverdueQueryBO);
- }
- totalSumBO.setTotalFlag(true);
- totalBO = repalBillMapper.getTotalMoneyByGroup(totalSumBO);
- infoVO.setTotalBillMoneyStr(totalMoneyBO.getTotalMoney().stripTrailingZeros().toPlainString());
- infoVO.setTotalBillCount(totalMoneyBO.getTotalCount());
- if (OverdueStatusEnum.已逾期.getCode().equals(totalOverdueQueryBO.getOverdueStatus())) {
- infoVO.setTotalOverdueCount(overdueBO.getTotalCount());
- infoVO.setTotalOverdueStr(overdueBO.getTotalMoney().stripTrailingZeros().toPlainString());
- } else {
- infoVO.setTotalOverdueStr("0");
- infoVO.setTotalOverdueCount(0);
- }
- if (OverdueStatusEnum.已结清.getCode().equals(dto.getOverdueStatus()) || OverdueStatusEnum.已终止.getCode().equals(dto.getOverdueStatus())) {
- infoVO.setTotalBillCount(0);
- infoVO.setTotalBillMoneyStr("0");
- }
- infoVO.setTotalCount(totalBO.getTotalCount());
- infoVO.setTotalStr(totalBO.getTotalMoney().stripTrailingZeros().toPlainString());
- repalBillPage = repalBillMapper.getRepalBillPage(repalBillPage, billPageBO);
- voPage.setTotalPage(Math.toIntExact(repalBillPage.getPages()));
- voPage.setTotalNum(repalBillPage.getTotal());
- voPage.setDataList(new ArrayList<>());
- infoVO.setPage(voPage);
- if (CollUtil.isEmpty(repalBillPage.getRecords())) {
- return infoVO;
- }
- // 未读消息
- 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(),
- Objects.isNull(billPageBO.getStartDate()) ? null : LocalDateTime.of(billPageBO.getStartDate(), LocalTime.MIN),
- Objects.isNull(billPageBO.getEndDate()) ? null : LocalDateTime.of(billPageBO.getEndDate(), LocalTime.MAX));
- 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());
- if (nameMap.containsKey(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())) {
- 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());
- 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 infoVO;
- }
- @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.setRepalBillType(dto.getRepalBillType());
- searchBillPageBO.setKeyword(dto.getKeyword());
- searchBillPageBO.setUserId(userId);
- searchBillPageBO.setRepalGroupId(groupId);
- searchBillPageBO.setRepalBookId(dto.getRepalBookId());
- searchBillPageBO.setAllFlag(searchBillPageBO.getReceivableFlag() && searchBillPageBO.getReceiptFlag());
- searchBillPageBO.setStatusFlag(dto.getStatusFlag());
- 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());
- if (nameMap.containsKey(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) {
- RepalBill repalBill = this.getById(repalBillId);
- // 负责人或高级权限才能查看
- boolean queryAllFlag = repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
- RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.QUERY_ALL_RECEIVABLE.getCode() : PermissionEnum.QUERY_ALL_RECEIPT.getCode());
- if (!queryAllFlag &&!repalResponsiblePersonService.getResponsiblePersonId(repalBillId).contains(UserContextUtil.getUser().getUserId())) {
- throw new CommonException(CodeMsg.FAILED, "没有查看权限");
- }
- RepalBillDetailVO vo = new RepalBillDetailVO();
- BeanUtils.copyProperties(repalBill, vo);
- vo.setRepalBillId(repalBill.getId());
- RepalCustomer repalCustomer = repalCustomerService.getById(repalBill.getCustomerId());
- vo.setCompanyId(repalCustomer.getCompanyId());
- vo.setCustomerId(repalCustomer.getCustId());
- vo.setCustProperty(repalCustomer.getCustProperty());
- List<String> nameList = repalResponsiblePersonService.getResponsiblePersonName(vo.getRepalBillId());
- if (CollUtil.isNotEmpty(nameList)) {
- vo.setResponsiblePersonNames(CollUtil.isEmpty(nameList) ? "" : String.join("、", nameList));
- }
- List<ResponsiblePersonNameVO> personList = repalResponsiblePersonService.getPersonNameList(vo.getRepalBillId());
- if (CollUtil.isNotEmpty(personList)) {
- vo.setResponsiblePersonNames(personList.stream().map(ResponsiblePersonNameVO::getUserName).collect(Collectors.joining("、")));
- vo.setResponsiblePersonList(personList);
- }
- vo.setTotalMoneyStr(repalBill.getTotalMoney().stripTrailingZeros().toPlainString());
- vo.setReceiptStr(repalBill.getReceipt().stripTrailingZeros().toPlainString());
- vo.setReceivableStr(repalBill.getReceivable().stripTrailingZeros().toPlainString());
- // 评分趋势
- vo.setDiagnosisScoreTrend(DiagnosisUtil.getDiagnosisScoreTrend(repalBill.getPreDiagnosisScore(), repalBill.getDiagnosisScore(), repalBill.getPreDiagnosisGrade(), repalBill.getDiagnosisGrade()));
- if (Objects.nonNull(repalBill.getDiagnosisScore())) {
- vo.setDiagnosisGradeDesc(DiagnosisUtil.getGradeConclusion(repalBill.getDiagnosisScore()));
- vo.setDiagnosisScore(repalBill.getDiagnosisScore().stripTrailingZeros().toPlainString());
- }
- // companyId
- if (StrUtil.isNotBlank(vo.getCompanyId())) {
- // 财产数量
- ApiDataResult<List<FinanceDynamicNumVO>> financeResult = dataMiddlewareService.getFinanceDynamicNumV8List(new GetFinanceDynamicNumDTO().setCompanyIdList(Collections.singletonList(vo.getCompanyId())));
- if (Objects.nonNull(financeResult) && CollUtil.isNotEmpty(financeResult.getData())) {
- vo.setAssetsNum(financeResult.getData().get(0).getFinanceDynamicNum());
- }
- // 风险数量
- ApiDataResult<List<CompanyRiskNumVO>> riskResult = dataMiddlewareService.getCompanyRiskNumList(new GetCompanyRiskNumDTO(Collections.singletonList(vo.getCompanyId())));
- if (Objects.nonNull(riskResult) && CollUtil.isNotEmpty(riskResult.getData())) {
- vo.setRiskNum(riskResult.getData().get(0).getRiskNum());
- }
- // 失信限高标签
- ApiDataResult<List<CreditPunishmentLabelListVO>> labelResult = dataMiddlewareService.getCreditPunishmentLabelList(new GetCreditPunishmentLabelDTO(Collections.singletonList(vo.getCompanyId())));
- if (Objects.nonNull(labelResult) && CollUtil.isNotEmpty(labelResult.getData())) {
- vo.setLabelList(labelResult.getData().get(0).getLabelList());
- }
- }
- if (Objects.nonNull(repalBill.getDiagnosisId())) {
- RepalBillDiagnosis repalBillDiagnosis = repalBillDiagnosisService.getById(repalBill.getDiagnosisId());
- if (Objects.nonNull(repalBillDiagnosis)) {
- try {
- ApiDataResult<DiagnosisRecordVO> apiDataResult = inCaseService.getRecordVO(repalBillDiagnosis.getBizId());
- if (Objects.nonNull(apiDataResult)) {
- vo.setAnalysisList(DiagnosisUtil.convertItemToList(apiDataResult.getData().getResultItem()));
- }
- } catch (Exception e) {
- LOGGER.error("查询评估信息错误", e);
- }
- }
- }
- // 合同
- if (StrUtil.isNotBlank(repalBill.getContractUrl())) {
- List<String> urlList = Arrays.stream(repalBill.getContractUrl().split(";")).collect(Collectors.toList());
- vo.setContractList(urlList.stream().map(s -> {
- RepalBillDetailVO.BillContract billContract = new RepalBillDetailVO.BillContract();
- billContract.setContractUrl(s);
- billContract.setContractName(s.substring(s.lastIndexOf("/") + 1));
- return billContract;
- }).collect(Collectors.toList()));
- }
- if (RepalBillStatusEnum.OVERDUE.getCode().equals(repalBill.getRepalBillStatus())) {
- if (Objects.nonNull(repalBill.getEndDate())) {
- if (LocalDate.now().isAfter(repalBill.getEndDate()) || LocalDate.now().compareTo(repalBill.getEndDate()) == 0) {
- // 避免天数出现负数
- vo.setOverdueDay(Math.toIntExact(LocalDate.now().toEpochDay() - repalBill.getEndDate().toEpochDay()) + 1);
- }
- }
- }
- List<RepalChangeRecord> repalChangeRecordList = repalChangeRecordService.list(Wrappers.lambdaQuery(RepalChangeRecord.class)
- .eq(RepalChangeRecord::getRepalBillId, vo.getRepalBillId()));
- if (CollUtil.isNotEmpty(repalChangeRecordList)) {
- vo.setChangeList(repalChangeRecordList.stream().map(t -> {
- RepalBillDetailVO.BillMoneyChange billMoneyChange = new RepalBillDetailVO.BillMoneyChange();
- billMoneyChange.setChangeTime(t.getTimeCreated());
- billMoneyChange.setName(t.getOperUserName());
- billMoneyChange.setChangeAmt(t.getTransMoney().setScale(2).toString());
- billMoneyChange.setRepalChangeRecordId(t.getId());
- StringBuilder desc = new StringBuilder();
- String repalBillTypeDesc = RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? "回" : "付";
- if (DeletedStatusEnum.NORMAL.getCode().equals(t.getDeleted())) {
- desc.append(Objects.isNull(t.getTimeModified()) ? "增加" : "编辑").append(repalBillTypeDesc);
- } else {
- desc.append("删除").append(repalBillTypeDesc);
- billMoneyChange.setRepalChangeRecordId(null);
- }
- billMoneyChange.setOperTypeDesc(desc.append("款").toString());
- return billMoneyChange;
- }).collect(Collectors.toList()));
- } else {
- vo.setChangeList(new ArrayList<>());
- }
- return vo;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean deleteRepalBillById(DeleteRepalBillDTO dto) {
- RepalBill repalBill = this.getById(dto.getRepalBillId());
- if (!repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
- RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode())) {
- throw new CommonException(CodeMsg.FAILED, "无对应权限");
- }
- this.update(Wrappers.lambdaUpdate(RepalBill.class).eq(RepalBill::getId, dto.getRepalBillId())
- .set(RepalBill::getDeleted, DeletedStatusEnum.DELETE.getCode()));
- // 删除关联人
- repalResponsiblePersonService.deletePersonByBillId(dto.getRepalBillId());
- // 删除回款记录
- repalChangeRecordService.delReturnedByBillId(dto.getRepalBillId());
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean settleRepalBillById(SettleRepalBillDTO dto) {
- long userId = UserContextUtil.getUser().getUserId();
- RepalBill repalBill = this.getById(dto.getRepalBillId());
- if (!repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
- RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode())) {
- throw new CommonException(CodeMsg.FAILED, "无对应权限");
- }
- // 结清tag
- boolean success = false;
- // 金额溢出
- if (dto.getMoney().compareTo(repalBill.getReceivable()) >= 0) {
- dto.setMoney(repalBill.getReceivable());
- success = true;
- }
- RepalGroupMember member = repalGroupMemberService.getOne(Wrappers.lambdaQuery(RepalGroupMember.class)
- .eq(RepalGroupMember::getRepalGroupId, repalGroupMemberService.getUserGroupId(userId))
- .eq(RepalGroupMember::getUserId, userId)
- .eq(RepalGroupMember::getDeleted, DeletedStatusEnum.NORMAL.getCode()));
- if (Objects.isNull(member)) {
- throw new CommonException(CodeMsg.FAILED, "成员信息错误");
- }
- RepalChangeRecord changeRecord = new RepalChangeRecord();
- changeRecord.setRepalBookId(repalBill.getRepalBookId());
- changeRecord.setRepalBillId(repalBill.getId());
- changeRecord.setAfterMoney(repalBill.getReceivable().subtract(dto.getMoney()));
- changeRecord.setPreMoney(repalBill.getReceivable());
- changeRecord.setTransMoney(dto.getMoney());
- changeRecord.setOperUserId(userId);
- changeRecord.setRecordDate(dto.getRecordDate());
- changeRecord.setOperUserName(member.getMemberUserName());
- repalChangeRecordService.save(changeRecord);
- // 重新计算金额
- repalBill.setReceivable(success ? BigDecimal.ZERO : repalBill.getReceivable().subtract(dto.getMoney()));
- repalBill.setReceipt(success ? repalBill.getTotalMoney() : repalBill.getReceipt().add(dto.getMoney()));
- this.update(Wrappers.lambdaUpdate(RepalBill.class)
- .eq(RepalBill::getId, repalBill.getId())
- .set(success, RepalBill::getRepalBillStatus, RepalBillStatusEnum.SUCCESS.getCode())
- .set(RepalBill::getReceivable, repalBill.getReceivable())
- .set(RepalBill::getReceipt, repalBill.getReceipt())
- .set(success, RepalBill::getSettleTime, LocalDateTime.now()));
- if(success){
- ThreadPoolUtil.executorService.execute(()->sendRepalMsgSuccess(dto.getRepalBillId()));
- }
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean addRepalBill(AddRepalBillDTO dto) {
- RepalCustomer customer = repalCustomerService.getById(dto.getCustomerId());
- if (Objects.isNull(customer)) {
- throw new CommonException(CodeMsg.FAILED, "客户信息错误");
- }
- long groupId = repalGroupMemberService.getUserGroupId(UserContextUtil.getUser().getUserId());
- // 评级flag
- boolean diagnosisFlag = (CustPropertyEnum.COMPANY.getCode().equals(customer.getCustProperty()) || CustPropertyEnum.GOV.getCode().equals(customer.getCustProperty()))
- && RepalBillTypeEnum.RECEIVABLE.getCode().equals(dto.getRepalBillType());
- if (diagnosisFlag && StrUtil.isBlank(customer.getCompanyId())) {
- throw new CommonException(CodeMsg.FAILED, "公司信息错误");
- }
- if (!repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
- RepalBillTypeEnum.RECEIVABLE.getCode().equals(dto.getRepalBillType()) ? PermissionEnum.ADD_RECEIVABLE.getCode() : PermissionEnum.ADD_RECEIPT.getCode())) {
- throw new CommonException(CodeMsg.FAILED, "无对应权限");
- }
- if (Objects.isNull(dto.getRepalBookId())) {
- // 新建账本
- RepalBook repalBook = new RepalBook();
- repalBook.setRepalGroupId(groupId);
- repalBook.setRepalBookName("默认账本");
- repalBook.setUserId(UserContextUtil.getUser().getUserId());
- repalBookService.save(repalBook);
- dto.setRepalBookId(repalBook.getId());
- }
- RepalBill repalBill = new RepalBill();
- BeanUtils.copyProperties(dto, repalBill);
- repalBill.setCustomerName(customer.getCustName());
- repalBill.setUserId(UserContextUtil.getUser().getUserId());
- repalBill.setRepalBillStatus(RepalBillStatusUtil.getRepalBillStatus(dto.getEndDate()));
- repalBill.setRepalGroupId(groupId);
- repalBill.setReceivable(dto.getTotalMoney());
- if (CollUtil.isNotEmpty(dto.getContractUrlList())) {
- repalBill.setContractUrl(String.join(";", dto.getContractUrlList()));
- }
- if (!diagnosisFlag) {
- repalBill.setRefreshStatus(RefreshStatusEnum.REFRESH_SUCCESS.getCode());
- }
- this.save(repalBill);
- if (diagnosisFlag) {
- // 非个人 & 应收,才会评级
- repalBillDiagnosisService.addRepalBillDiagnosis(repalBill.getUserId(), repalBill.getId(), dto.getTotalMoney(), Collections.singletonList(customer.getCustName()));
- }
- // 负责人
- if (CollUtil.isNotEmpty(dto.getResponsiblePersonIdList())) {
- repalResponsiblePersonService.saveBatch(dto.getResponsiblePersonIdList().stream().map(t -> {
- RepalResponsiblePerson person = new RepalResponsiblePerson();
- person.setRepalGroupId(groupId);
- person.setRepalBookId(dto.getRepalBookId());
- person.setRepalBillId(repalBill.getId());
- person.setUserId(t);
- return person;
- }).collect(Collectors.toList()));
- }
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean breakRepalBill(BreakRepalBillDTO dto) {
- RepalBill repalBill = this.getById(dto.getRepalBillId());
- if (Objects.isNull(repalBill)) {
- throw new CommonException(CodeMsg.FAILED, "账款错误");
- }
- if (!repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
- RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode())) {
- throw new CommonException(CodeMsg.FAILED, "无对应权限");
- }
- this.update(Wrappers.lambdaUpdate(RepalBill.class)
- .eq(RepalBill::getId, dto.getRepalBillId())
- .set(RepalBill::getRepalBillStatus, RepalBillStatusEnum.END.getCode())
- .set(StrUtil.isNotBlank(dto.getBreakReason()), RepalBill::getBreakReason, dto.getBreakReason()));
- ThreadPoolUtil.executorService.execute(()->sendRepalMsgBreak(dto.getRepalBillId()));
- return true;
- }
- @Override
- public Boolean unBreakRepalBill(BreakRepalBillDTO dto) {
- RepalBill repalBill = this.getById(dto.getRepalBillId());
- if (Objects.isNull(repalBill)) {
- throw new CommonException(CodeMsg.FAILED, "账款错误");
- }
- if (!repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
- RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode())) {
- throw new CommonException(CodeMsg.FAILED, "无对应权限");
- }
- // 逾期标志
- boolean overdue = LocalDate.now().isAfter(repalBill.getEndDate());
- this.update(Wrappers.lambdaUpdate(RepalBill.class)
- .eq(RepalBill::getId, dto.getRepalBillId())
- .set(RepalBill::getRepalBillStatus, overdue ? RepalBillStatusEnum.OVERDUE.getCode() : RepalBillStatusEnum.PROGRESSING.getCode())
- .set(StrUtil.isNotBlank(dto.getBreakReason()), RepalBill::getBreakReason, dto.getBreakReason()));
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean updateRepalBill(UpdateRepalBillDTO dto) {
- RepalBill repalBill = this.getById(dto.getRepalBillId());
- if (!repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
- RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode())) {
- throw new CommonException(CodeMsg.FAILED, "无对应权限");
- }
- // 责任人
- List<Long> currentIdList = repalResponsiblePersonService.getResponsiblePersonId(repalBill.getId());
- List<Long> difference = new ArrayList<>(CollUtil.disjunction(dto.getResponsiblePersonIdList(), currentIdList));
- if (CollUtil.isNotEmpty(difference)) {
- List<Long> delList = new ArrayList<>();
- List<Long> addList = new ArrayList<>();
- for (Long aLong : difference) {
- if (currentIdList.contains(aLong)) {
- // 移除
- repalResponsiblePersonService.update(Wrappers.lambdaUpdate(RepalResponsiblePerson.class)
- .eq(RepalResponsiblePerson::getRepalBillId, repalBill.getId())
- .eq(RepalResponsiblePerson::getUserId, aLong)
- .set(RepalResponsiblePerson::getDeleted, DeletedStatusEnum.DELETE.getCode()));
- delList.add(aLong);
- }
- if (dto.getResponsiblePersonIdList().contains(aLong)) {
- // 新增
- RepalResponsiblePerson person = new RepalResponsiblePerson();
- person.setRepalBillId(repalBill.getId());
- person.setRepalBookId(repalBill.getRepalBookId());
- person.setRepalGroupId(repalBill.getRepalGroupId());
- person.setUserId(aLong);
- repalResponsiblePersonService.save(person);
- addList.add(aLong);
- }
- }
- if(CollUtil.isNotEmpty(delList)){
- for(Long userId:delList){
- sendRepalMsgDelCharge(userId,dto.getRepalBillId());
- }
- }
- if(CollUtil.isNotEmpty(addList)){
- for(Long userId:addList){
- sendRepalMsgAddCharge(userId,dto.getRepalBillId());
- }
- }
- }
- // 改金额三种状态
- if (Objects.isNull(dto.getTotalMoney())) {
- throw new CommonException(CodeMsg.FAILED, "账款金额不能为空");
- }
- if (dto.getTotalMoney().compareTo(repalBill.getReceipt()) < 0) {
- String typeStr = RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? "收" : "付";
- throw new CommonException(CodeMsg.FAILED, "应" + typeStr + "金额不能小于已" + typeStr + "款");
- }
- boolean sendFlag = false;
- if (dto.getTotalMoney().compareTo(repalBill.getReceipt()) == 0) {
- repalBill.setTotalMoney(repalBill.getReceipt());
- repalBill.setReceivable(BigDecimal.ZERO);
- repalBill.setRepalBillStatus(RepalBillStatusEnum.SUCCESS.getCode());
- sendFlag = true;
- } else if (dto.getTotalMoney().compareTo(repalBill.getReceipt()) > 0) {
- repalBill.setTotalMoney(dto.getTotalMoney());
- repalBill.setReceivable(dto.getTotalMoney().subtract(repalBill.getReceipt()));
- repalBill.setRepalBillStatus(RepalBillStatusEnum.PROGRESSING.getCode());
- }
- if (LocalDate.now().isAfter(dto.getEndDate()) && repalBill.getReceivable().compareTo(BigDecimal.ZERO) > 0) {
- // 日期 && 应收 > 0
- repalBill.setRepalBillStatus(RepalBillStatusEnum.OVERDUE.getCode());
- }
- this.update(Wrappers.lambdaUpdate(RepalBill.class)
- .eq(RepalBill::getId, repalBill.getId())
- .set(RepalBill::getEndDate, dto.getEndDate())
- .set(RepalBill::getRepalBillStatus, repalBill.getRepalBillStatus())
- .set(RepalBill::getRepalBillStage, dto.getRepalBillStage())
- .set(RepalBill::getBillRemark, dto.getBillRemark())
- .set(RepalBill::getTotalMoney, repalBill.getTotalMoney())
- .set(RepalBill::getReceivable, repalBill.getReceivable())
- .set(RepalBill::getContractName, dto.getContractName())
- .set(RepalBill::getContractEndDate, dto.getContractEndDate())
- .set(RepalBill::getContractUrl, String.join( ";", dto.getContractUrlList()))
- );
- RepalBillOperLog repalBillOperLog = new RepalBillOperLog();
- repalBillOperLog.setUserId(UserContextUtil.getUser().getUserId());
- repalBillOperLog.setActionCode(RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode());
- repalBillOperLog.setActionName(RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getMsg() : PermissionEnum.UPDATE_RECEIPT.getMsg());
- repalBillOperLog.setBizType("update");
- repalBillOperLog.setBizId(String.valueOf(repalBill.getId()));
- repalBillOperLog.setActionContent(JSON.toJSONString(dto));
- repalBillOperLogService.save(repalBillOperLog);
- if(sendFlag){
- ThreadPoolUtil.executorService.execute(()->sendRepalMsgSuccess(dto.getRepalBillId()));
- }
- return true;
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean deleteRepalBillByBookId(Long repalBookId) {
- this.update(Wrappers.lambdaUpdate(RepalBill.class)
- .eq(RepalBill::getRepalBookId, repalBookId)
- .set(RepalBill::getDeleted, DeletedStatusEnum.DELETE.getCode()));
- // 责任人也删除
- repalResponsiblePersonService.deletePersonByBookId(repalBookId);
- return true;
- }
- @Override
- public boolean checkAllBillRefreshStatus(Long repalBookId, Long repalBillId) {
- LambdaQueryWrapper<RepalBill> qw = Wrappers.lambdaQuery(RepalBill.class);
- qw.eq(RepalBill::getRepalBookId,repalBookId);
- qw.ne(RepalBill::getId,repalBillId);
- List<RepalBill> results = list(qw);
- for(RepalBill accountBill:results){
- if(!RefreshStatusEnum.REFRESH_SUCCESS.getCode().equals(accountBill.getRefreshStatus())){
- return false;
- }
- }
- return true;
- }
- @Override
- public VOPage<RepalBillPageVO> getCustRepalBillPage(Integer pageNum, Integer pageSize, Long custId) {
- VOPage<RepalBillPageVO> voPage = new VOPage<>();
- voPage.setPageSize(pageSize);
- voPage.setPageNum(pageNum);
- // 分页数据
- Page<RepalBill> repalBillPage = new Page<>(pageNum,pageSize);
- repalBillPage = repalBillMapper.getCustRepalBillPage(repalBillPage,custId);
- 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());
- long userId = UserContextUtil.getUser().getUserId();
- 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(t -> {
- RepalBillPageVO vo = new RepalBillPageVO();
- BeanUtils.copyProperties(t, vo);
- vo.setRepalBillId(t.getId());
- if(nameMap.containsKey(t.getId())) {
- vo.setResponsiblePersonNames(String.join("、", nameMap.get(t.getId())));
- }
- vo.setRepalOverdueStatus(t.getRepalBillStatus() > 1 ? t.getRepalBillStatus() + 1 : t.getRepalBillStatus());
- if (RepalBillStatusEnum.PROGRESSING.getCode().equals(vo.getRepalOverdueStatus()) && LocalDate.now().plusDays(3).equals(vo.getEndDate())) {
- 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());
- 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 RepalManageBillInfoVO queryManageInfo() {
- //权限
- UserContextBO userContextBO = UserContextUtil.getUser();
- boolean allFlag = repalRolePermissionService.checkUserPermission(userContextBO.getUserId(),PermissionEnum.QUERY_ALL_URGE.getCode());
- //查询组织编号
- RepalGroupMember repalGroupMember = repalGroupMemberService.getOne(Wrappers.lambdaQuery(RepalGroupMember.class).eq(RepalGroupMember::getUserId,userContextBO.getUserId()).eq(RepalGroupMember::getDeleted,Dict.DeletedStatusEnunm.否.getCode()),false);
- if(ObjectUtil.isNull(repalGroupMember)){
- throw new CommonException(CodeMsg.FAILED,"您还未加入该组织,请联系超级管理员");
- }
- LocalDate startTime = LocalDate.now().plusDays(7);
- ManageBillInfoBO manageBillInfo = repalBillMapper.getManageBillInfo(allFlag,userContextBO.getUserId(),repalGroupMember.getRepalGroupId(),startTime);
- RepalManageBillInfoVO repalManageBillInfoVO = new RepalManageBillInfoVO();
- if(ObjectUtil.isNull(manageBillInfo.getTotalMoney()) || NumberUtil.equals(BigDecimal.ZERO,manageBillInfo.getTotalMoney())){
- repalManageBillInfoVO.setOverdueScaleStr("0");
- repalManageBillInfoVO.setTotalOverdueCount(0);
- repalManageBillInfoVO.setTotalOverdueStr("0");
- repalManageBillInfoVO.setTotalOverdueWeekCount(0);
- repalManageBillInfoVO.setTotalOverdueWeekStr("0");
- }else {
- repalManageBillInfoVO.setTotalOverdueCount(manageBillInfo.getTotalOverdueCount());
- repalManageBillInfoVO.setTotalOverdueStr(manageBillInfo.getTotalOverdue().toPlainString());
- repalManageBillInfoVO.setTotalOverdueWeekCount(manageBillInfo.getTotalOverdueWeekCount());
- repalManageBillInfoVO.setTotalOverdueWeekStr(manageBillInfo.getTotalOverdueWeek().toPlainString());
- repalManageBillInfoVO.setOverdueScaleStr(manageBillInfo.getTotalOverdue().divide(manageBillInfo.getTotalMoney(),2, RoundingMode.HALF_UP).toPlainString());
- }
- return repalManageBillInfoVO;
- }
- @Override
- public VOPage<RepalManageBillPageVO> queryManageBillPage(Integer pageNum, Integer pageSize) {
- //权限
- UserContextBO userContextBO = UserContextUtil.getUser();
- boolean allFlag = repalRolePermissionService.checkUserPermission(userContextBO.getUserId(),PermissionEnum.QUERY_ALL_URGE.getCode());
- //查询组织编号
- RepalGroupMember repalGroupMember = repalGroupMemberService.getOne(Wrappers.lambdaQuery(RepalGroupMember.class).eq(RepalGroupMember::getUserId,userContextBO.getUserId()).eq(RepalGroupMember::getDeleted,Dict.DeletedStatusEnunm.否.getCode()),false);
- if(ObjectUtil.isNull(repalGroupMember)){
- throw new CommonException(CodeMsg.FAILED,"您还未加入该组织,请联系超级管理员");
- }
- LocalDate startTime = LocalDate.now().plusDays(7);
- VOPage<RepalManageBillPageVO> voPage = new VOPage<>();
- voPage.setPageSize(pageSize);
- voPage.setPageNum(pageNum);
- // 分页数据
- Page<RepalManageBillPageBO> repalBillPage = new Page<>(pageNum,pageSize);
- repalBillPage = repalBillMapper.getManageBillPage(repalBillPage,allFlag,userContextBO.getUserId(),repalGroupMember.getRepalGroupId(),startTime);
- voPage.setTotalPage(Math.toIntExact(repalBillPage.getPages()));
- voPage.setTotalNum(repalBillPage.getTotal());
- voPage.setDataList(new ArrayList<>());
- if (CollUtil.isEmpty(repalBillPage.getRecords())) {
- return voPage;
- }
- List<RepalManageBillPageVO> vos = new ArrayList<>();
- voPage.setDataList(vos);
- Map<Long,List<ResponsiblePersonNameVO>> personMap= repalResponsiblePersonMapper.getResponsiblePersonNameList(repalBillPage.getRecords().stream().map(RepalManageBillPageBO::getRepalBillId).collect(Collectors.toList())).stream().collect(Collectors.groupingBy(ResponsiblePersonNameVO::getRepalBillId));
- for(RepalManageBillPageBO manageBillPageBO:repalBillPage.getRecords()){
- RepalManageBillPageVO vo = new RepalManageBillPageVO();
- vos.add(vo);
- BeanUtils.copyProperties(manageBillPageBO,vo);
- vo.setOverdueDay(Math.abs(manageBillPageBO.getEndDate().toEpochDay() - LocalDate.now().toEpochDay())+1);
- vo.setTotalMoneyStr(manageBillPageBO.getTotalMoney().stripTrailingZeros().toPlainString());
- vo.setReceivableStr(manageBillPageBO.getReceivable().stripTrailingZeros().toPlainString());
- //负责人
- if(personMap.containsKey(manageBillPageBO.getRepalBillId())){
- List<ResponsiblePersonNameVO> personNames = personMap.get(manageBillPageBO.getRepalBillId());
- vo.setResponsiblePersonName(personNames.stream().map(ResponsiblePersonNameVO::getUserName).collect(Collectors.toList()));
- }
- //催款动态条数
- int dynamicCount = repalDynamicService.count(Wrappers.lambdaQuery(RepalDynamic.class).eq(RepalDynamic::getRepalBillId,manageBillPageBO.getRepalBillId()));
- vo.setRepalDynamicCount(dynamicCount);
- }
- return voPage;
- }
- @Override
- public RepalManageBillDetailVO querManageBillDetail(Long repalBillId) {
- //不校验权限,默认看到列表的时候已经通过
- RepalBill repalBill = this.getById(repalBillId);
- RepalManageBillDetailVO vo = new RepalManageBillDetailVO();
- BeanUtils.copyProperties(repalBill, vo);
- vo.setCustId(repalBill.getCustomerId());
- vo.setRepalBillId(repalBill.getId());
- RepalBook repalBook = repalBookService.getById(repalBill.getRepalBookId());
- if(ObjectUtil.isNotNull(repalBook)){
- vo.setRepalBookName(repalBook.getRepalBookName());
- }
- RepalCustomer repalCustomer = repalCustomerService.getById(repalBill.getCustomerId());
- vo.setCompanyId(repalCustomer.getCompanyId());
- vo.setCustProperty(repalCustomer.getCustProperty());
- List<String> nameList = repalResponsiblePersonService.getResponsiblePersonName(vo.getRepalBillId());
- vo.setResponsiblePersonName(nameList);
- vo.setTotalMoneyStr(repalBill.getTotalMoney().stripTrailingZeros().toPlainString());
- vo.setReceiptStr(repalBill.getReceipt().stripTrailingZeros().toPlainString());
- vo.setReceivableStr(repalBill.getReceivable().stripTrailingZeros().toPlainString());
- vo.setOverdueDay(Math.abs(LocalDate.now().toEpochDay()-repalBill.getEndDate().toEpochDay())+1);
- // 评分趋势
- vo.setDiagnosisScoreTrend(DiagnosisUtil.getDiagnosisScoreTrend(repalBill.getPreDiagnosisScore(), repalBill.getDiagnosisScore(), repalBill.getPreDiagnosisGrade(), repalBill.getDiagnosisGrade()));
- if (Objects.nonNull(repalBill.getDiagnosisScore())) {
- vo.setDiagnosisGradeDesc(DiagnosisUtil.getGradeConclusion(repalBill.getDiagnosisScore()));
- vo.setDiagnosisScore(repalBill.getDiagnosisScore().stripTrailingZeros().toPlainString());
- }
- // companyId
- if (StrUtil.isNotBlank(vo.getCompanyId())) {
- // 财产数量
- ApiDataResult<List<FinanceDynamicNumVO>> financeResult = dataMiddlewareService.getFinanceDynamicNumV8List(new GetFinanceDynamicNumDTO().setCompanyIdList(Collections.singletonList(vo.getCompanyId())));
- if (Objects.nonNull(financeResult) && CollUtil.isNotEmpty(financeResult.getData())) {
- vo.setAssetsNum(financeResult.getData().get(0).getFinanceDynamicNum());
- }
- // 风险数量
- ApiDataResult<List<CompanyRiskNumVO>> riskResult = dataMiddlewareService.getCompanyRiskNumList(new GetCompanyRiskNumDTO(Collections.singletonList(vo.getCompanyId())));
- if (Objects.nonNull(riskResult) && CollUtil.isNotEmpty(riskResult.getData())) {
- vo.setRiskNum(riskResult.getData().get(0).getRiskNum());
- }
- // 失信限高标签
- ApiDataResult<List<CreditPunishmentLabelListVO>> labelResult = dataMiddlewareService.getCreditPunishmentLabelList(new GetCreditPunishmentLabelDTO(Collections.singletonList(vo.getCompanyId())));
- if (Objects.nonNull(labelResult) && CollUtil.isNotEmpty(labelResult.getData())) {
- vo.setLabelList(labelResult.getData().get(0).getLabelList());
- }
- }
- //查询套餐剩余qingk
- RepalVip repalVip = repalVipService.getOne(Wrappers.lambdaQuery(RepalVip.class).eq(RepalVip::getRepalGroupId,repalCustomer.getRepalGroupId()),false);
- RepalVipVO repalVipVO = new RepalVipVO();
- if(ObjectUtil.isNotNull(repalVip)){
- BeanUtils.copyProperties(repalVip,repalVipVO);
- }
- vo.setRepalVip(repalVipVO);
- //查询催款动态列表
- List<RepalDynamic> dynamics = repalDynamicService.list(Wrappers.lambdaQuery(RepalDynamic.class).eq(RepalDynamic::getRepalBillId,repalBillId).orderByDesc(RepalDynamic::getId));
- if(CollUtil.isNotEmpty(dynamics)){
- List<RepalDynamicVO> repalDynamicVOs = new ArrayList<>(dynamics.size());
- vo.setRepalDynamics(repalDynamicVOs);
- Map<Long,RepalGroupMember> memberMap = repalGroupMemberService.list(Wrappers.lambdaQuery(RepalGroupMember.class).in(RepalGroupMember::getUserId,dynamics.stream().map(RepalDynamic::getMemberId).distinct().collect(Collectors.toList()))).stream().collect(Collectors.toMap(RepalGroupMember::getUserId,Function.identity()));
- for(RepalDynamic dynamic:dynamics){
- RepalDynamicVO repalDynamicVO = new RepalDynamicVO();
- repalDynamicVOs.add(repalDynamicVO);
- BeanUtils.copyProperties(dynamic,repalDynamicVO);
- if(memberMap.containsKey(dynamic.getMemberId())){
- RepalGroupMember repalGroupMember = memberMap.get(dynamic.getMemberId());
- repalDynamicVO.setMemberUserName(repalGroupMember.getMemberUserName());
- }
- }
- }
- return vo;
- }
- @Override
- public List<Long> getBillIdListByBookId(Long repalBookId, Long userId) {
- return repalBillMapper.getBillIdListByBookId(repalBookId, userId);
- }
- @Override
- public List<String> getBillGradeByBookId(Long repalBookId, Long userId, LocalDateTime start, LocalDateTime end) {
- return repalBillMapper.getBillGradeByBookId(repalBookId, userId, start, end);
- }
- @Override
- public HomeReceivableBO getBillTotal(Integer repalBillStatus, Long userId, Long repalBookId, Integer repalBillType, LocalDate start, LocalDate end) {
- return repalBillMapper.getBillTotal(repalBillStatus, userId, repalBookId, repalBillType, start, end);
- }
- @Override
- @Transactional(rollbackFor = Exception.class)
- public Boolean transferBill(TransferBillDTO dto) {
- // 账款创建人
- this.update(Wrappers.lambdaUpdate(RepalBill.class)
- .eq(RepalBill::getUserId, dto.getUserId())
- .set(RepalBill::getUserId, dto.getTransferUserId()));
- // 账款负责人
- repalResponsiblePersonService.update(Wrappers.lambdaUpdate(RepalResponsiblePerson.class)
- .eq(RepalResponsiblePerson::getUserId, dto.getUserId())
- .set(RepalResponsiblePerson::getUserId, dto.getTransferUserId()));
- // 客户负责人
- repalCustChargeRelService.update(Wrappers.lambdaUpdate(RepalCustChargeRel.class)
- .eq(RepalCustChargeRel::getMemberUserId, dto.getUserId())
- .set(RepalCustChargeRel::getMemberUserId, dto.getTransferUserId()));
- //发送站内信
- ThreadPoolUtil.executorService.execute(()->{
- List<RepalResponsiblePerson> repalBills = repalResponsiblePersonService.list(Wrappers.lambdaQuery(RepalResponsiblePerson.class)
- .eq(RepalResponsiblePerson::getUserId,dto.getUserId())
- .eq(RepalResponsiblePerson::getDeleted,Dict.DeletedStatusEnunm.否.getCode()));
- if(CollUtil.isNotEmpty(repalBills)){
- for(RepalResponsiblePerson responsiblePerson : repalBills){
- sendRepalMsgAddCharge(dto.getTransferUserId(),responsiblePerson.getRepalBillId());
- sendRepalMsgDelCharge(dto.getUserId(),responsiblePerson.getRepalBillId());
- }
- }
- });
- return true;
- }
- @Autowired
- private RepalChangeRecordMapper repalChangeRecordMapper;
- @Override
- public VOPage<ReturnedBillVO> getReturnedBillPage(ReturnedBillDTO dto) {
- VOPage<ReturnedBillVO> voPage = new VOPage<>();
- voPage.setPageNum(dto.getPageNum());
- voPage.setPageSize(dto.getPageSize());
- Page<ReturnedBillVO> recordPage = new Page<>(dto.getPageNum(), dto.getPageSize());
- //
- long userId = UserContextUtil.getUser().getUserId();
- boolean allFlag = repalRolePermissionService.checkUserPermission(userId, PermissionEnum.QUERY_ALL_RECEIVABLE.getCode());
- dto.setUserId(allFlag ? null : userId);
- dto.setRepalGroupId(repalGroupMemberService.getUserGroupId(userId));
- // 对应1-4到期时间
- if (Objects.nonNull(dto.getOverdueType())) {
- switch (dto.getOverdueType()) {
- case 1:
- dto.setStartDate(LocalDate.now());
- dto.setEndDate(LocalDate.now());
- break;
- case 2:
- dto.setStartDate(LocalDate.now().minusDays(7));
- dto.setEndDate(LocalDate.now());
- break;
- case 3:
- dto.setStartDate(LocalDate.now().minusDays(30));
- dto.setEndDate(LocalDate.now());
- break;
- case 4:
- dto.setStartDate(LocalDate.now().with(TemporalAdjusters.firstDayOfYear()));
- dto.setEndDate(LocalDate.now().with(TemporalAdjusters.lastDayOfYear()));
- break;
- default:
- break;
- }
- }
- recordPage = repalChangeRecordMapper.getReturnedBill(recordPage, dto);
- voPage.setTotalPage(Math.toIntExact(recordPage.getPages()));
- voPage.setTotalNum(recordPage.getTotal());
- if (CollUtil.isEmpty(recordPage.getRecords())) {
- return voPage;
- }
- for (ReturnedBillVO record : recordPage.getRecords()) {
- record.setMoneyStr(record.getMoney().setScale(2).toString());
- }
- voPage.setDataList(recordPage.getRecords());
- return voPage;
- }
- @Override
- public ReturnedBillDetailVO getReturnedBillDetail(Long repalChangeRecordId) {
- ReturnedBillDetailVO vo = new ReturnedBillDetailVO();
- RepalChangeRecord record = repalChangeRecordService.getById(repalChangeRecordId);
- if (Objects.isNull(record)) {
- throw new CommonException(CodeMsg.FAILED, "查询失败");
- }
- BeanUtils.copyProperties(record, vo);
- vo.setRepalChangeRecordId(repalChangeRecordId);
- RepalBill bill = this.getById(record.getRepalBillId());
- RepalCustomer cust = repalCustomerService.getById(bill.getCustomerId());
- List<String> nameList = repalResponsiblePersonService.getResponsiblePersonName(bill.getId());
- if (CollUtil.isNotEmpty(nameList)) {
- vo.setResponsiblePersonNames(CollUtil.isEmpty(nameList) ? "" : String.join("、", nameList));
- }
- vo.setEndDate(bill.getEndDate());
- vo.setTotalMoneyStr(bill.getTotalMoney().setScale(2).toString());
- vo.setReceivableStr(bill.getReceivable().setScale(2).toString());
- vo.setCustProperty(cust.getCustProperty());
- vo.setCustName(cust.getCustName());
- vo.setUserName(record.getOperUserName());
- vo.setRepalBillStatus(bill.getRepalBillStatus());
- vo.setMoneyStr(record.getTransMoney().setScale(2).toString());
- // 评分趋势
- vo.setDiagnosisGrade(bill.getDiagnosisGrade());
- vo.setDiagnosisScoreTrend(DiagnosisUtil.getDiagnosisScoreTrend(bill.getPreDiagnosisScore(), bill.getDiagnosisScore(), bill.getPreDiagnosisGrade(), bill.getDiagnosisGrade()));
- if (Objects.nonNull(bill.getDiagnosisScore())) {
- vo.setDiagnosisScore(bill.getDiagnosisScore().stripTrailingZeros().toPlainString());
- }
- RepalRemindReadInfo repalRemindReadInfo = repalRemindReadInfoService.getReadInfoByUserId(UserContextUtil.getUser().getUserId(), bill.getId(),bill.getRepalBookId());
- RepalBillRemindUnReadVO readVO = repalRemindHistoryService.getBillRemindUnReadVO(repalRemindReadInfo.getRiskRemindId(),
- repalRemindReadInfo.getRankRemindId(),repalRemindReadInfo.getOverdueRemindId(),
- repalRemindReadInfo.getFinanceRemindId(),bill.getRepalBookId(),bill.getId(),
- null, null);
- vo.setDynamicCountList(new ArrayList<Integer>(){{
- add(readVO.getUnreadRiskCount());
- add(readVO.getUnreadFinanceCount());
- add(readVO.getUnreadRankCount());
- add(readVO.getUnreadOverdueCount());
- }});
- return vo;
- }
- @Override
- public DiagnosisSectionVO getDiagnosisDynamic(Long repalBillId) {
- RepalBill repalBill = this.getById(repalBillId);
- if (Objects.isNull(repalBill)) {
- throw new CommonException(CodeMsg.FAILED, "账款id错误");
- }
- if (ObjectUtil.isAllEmpty(repalBill.getPreDiagnosisScore(), repalBill.getDiagnosisScore())) {
- LOGGER.error("没有账款评级");
- return null;
- }
- DiagnosisSectionVO vo = new DiagnosisSectionVO();
- BeanUtils.copyProperties(repalBill, vo);
- vo.setDiagnosisRecordId(repalBill.getDiagnosisId());
- vo.setDiagnosisGrade(repalBill.getDiagnosisGrade());
- vo.setDiagnosisScoreStr(Objects.nonNull(repalBill.getDiagnosisScore()) ? repalBill.getDiagnosisScore().stripTrailingZeros().toPlainString() : "");
- vo.setPreDiagnosisGrade(repalBill.getPreDiagnosisGrade());
- vo.setPreDiagnosisScoreStr(Objects.nonNull(repalBill.getPreDiagnosisScore()) ? repalBill.getPreDiagnosisScore().stripTrailingZeros().toPlainString() : "");
- RepalBillDiagnosis diagnosis = repalBillDiagnosisService.getById(repalBill.getDiagnosisId());
- if (Objects.nonNull(diagnosis)) {
- vo.setDiagnosisRecordId(diagnosis.getBizId());
- }
- QueryV8DynamicDTO dynamicDto = new QueryV8DynamicDTO();
- dynamicDto.setEntityNames(Collections.singletonList(repalBill.getCustomerName()));
- LocalDateTime startDateTime = Objects.isNull(repalBill.getPreDiagnosisDatetime()) ? repalBill.getTimeCreated() : repalBill.getPreDiagnosisDatetime();
- dynamicDto.setStartDate(startDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- dynamicDto.setEndDate(repalBill.getDiagnosisDatetime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
- VOPage<V8DynamicVO> resultPage = companyService.queryDynamic(dynamicDto, 1, 10);
- if (Objects.isNull(resultPage) || CollUtil.isEmpty(resultPage.getDataList())) {
- DiagnosisDynamicVO dynamicVO = new DiagnosisDynamicVO();
- dynamicVO.setRtaDesc("该账款信息发生变动(欠款企业、金额有所调整)");
- dynamicVO.setCreateTime(repalBill.getTimeModified().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
- vo.setEsDynamics(Collections.singletonList(dynamicVO));
- return vo;
- }
- vo.setEsDynamics(resultPage.getDataList().stream().map(entity -> {
- DiagnosisDynamicVO diagnosisDynamicVO = new DiagnosisDynamicVO();
- diagnosisDynamicVO.setNewDynamicId(entity.getId());
- diagnosisDynamicVO.setRowKey(entity.getRowkey());
- diagnosisDynamicVO.setCreateTime(entity.getDynamicTime());
- String rtaDesc = DynamicEnum.getDescByTn(entity.getTn());
- rtaDesc = StrUtil.isBlank(rtaDesc) ? "新增动态": (rtaDesc.contains("新增") || rtaDesc.contains("移除")) ? rtaDesc : "新增"+rtaDesc;
- diagnosisDynamicVO.setRtaDesc(rtaDesc);
- diagnosisDynamicVO.setInfoType(entity.getInfoType());
- diagnosisDynamicVO.setTn(entity.getTn());
- diagnosisDynamicVO.setNewRemindContent(JSON.toJSONString(entity.getDynamicJSON()));
- diagnosisDynamicVO.setRouting(DynamicEnum.getRoutingByTn(entity.getTn()));
- return diagnosisDynamicVO;
- }).collect(Collectors.toList()));
- return vo;
- }
- /**
- * 添加负责人 给账款其他负责人发
- * @param userId
- * @param repalBillId
- */
- private void sendRepalMsgAddCharge(Long userId,Long repalBillId){
- RepalBill repalBill = getById(repalBillId);
- if(ObjectUtil.isNull(repalBill)){
- return;
- }
- RepalGroupMember repalGroupMember = repalGroupMemberService.getMemberByUserId(userId);
- if(ObjectUtil.isNull(repalGroupMember)){
- return;
- }
- List<RepalResponsiblePerson> repalResponsiblePersonList = repalResponsiblePersonService.list(Wrappers.lambdaQuery(RepalResponsiblePerson.class)
- .eq(RepalResponsiblePerson::getRepalBillId,repalBillId)
- .ne(RepalResponsiblePerson::getUserId,userId)
- .eq(RepalResponsiblePerson::getDeleted,Dict.DeletedStatusEnunm.否.getCode()));
- if(CollUtil.isNotEmpty(repalResponsiblePersonList)){
- Map<String,String> paraMap = new HashMap<>();
- paraMap.put("name",repalGroupMember.getMemberUserName());
- paraMap.put("custName",repalBill.getCustomerName());
- paraMap.put("totalMoney",repalBill.getTotalMoney().stripTrailingZeros().toPlainString());
- String billType = RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? RepalBillTypeEnum.RECEIVABLE.getDesc() : RepalBillTypeEnum.RECEIPT.getDesc();
- paraMap.put("billType", billType+"账款");
- paraMap.put("repalBillId",repalBillId+"");
- for(RepalResponsiblePerson responsiblePerson:repalResponsiblePersonList) {
- messageNoticeService.saveRepalMsg(responsiblePerson.getUserId(), MsgNameEnum.回款宝添加负责人, paraMap);
- }
- }
- }
- /**
- * 删除负责人 给账款其他负责人发
- * @param userId
- * @param repalBillId
- */
- private void sendRepalMsgDelCharge(Long userId,Long repalBillId){
- RepalBill repalBill = getById(repalBillId);
- if(ObjectUtil.isNull(repalBill)){
- return;
- }
- RepalGroupMember repalGroupMember = repalGroupMemberService.getMemberByUserId(userId);
- if(ObjectUtil.isNull(repalGroupMember)){
- return;
- }
- List<RepalResponsiblePerson> repalResponsiblePersonList = repalResponsiblePersonService.list(Wrappers.lambdaQuery(RepalResponsiblePerson.class)
- .eq(RepalResponsiblePerson::getRepalBillId,repalBillId)
- .ne(RepalResponsiblePerson::getUserId,userId)
- .eq(RepalResponsiblePerson::getDeleted,Dict.DeletedStatusEnunm.否.getCode()));
- if(CollUtil.isNotEmpty(repalResponsiblePersonList)){
- Map<String,String> paraMap = new HashMap<>();
- paraMap.put("name",repalGroupMember.getMemberUserName());
- paraMap.put("custName",repalBill.getCustomerName());
- paraMap.put("totalMoney",repalBill.getTotalMoney().stripTrailingZeros().toPlainString());
- String billType = RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? RepalBillTypeEnum.RECEIVABLE.getDesc() : RepalBillTypeEnum.RECEIPT.getDesc();
- paraMap.put("billType", billType+"账款");
- paraMap.put("repalBillId",repalBillId+"");
- for(RepalResponsiblePerson responsiblePerson:repalResponsiblePersonList) {
- messageNoticeService.saveRepalMsg(responsiblePerson.getUserId(), MsgNameEnum.回款宝删除负责人, paraMap);
- }
- }
- }
- /**
- * 终止账款 给账款负责人发
- * @param repalBillId
- */
- private void sendRepalMsgBreak(Long repalBillId){
- RepalBill repalBill = getById(repalBillId);
- if(ObjectUtil.isNull(repalBill)){
- return;
- }
- List<RepalResponsiblePerson> repalResponsiblePersonList = repalResponsiblePersonService.list(Wrappers.lambdaQuery(RepalResponsiblePerson.class)
- .eq(RepalResponsiblePerson::getRepalBillId,repalBillId)
- .eq(RepalResponsiblePerson::getDeleted,Dict.DeletedStatusEnunm.否.getCode()));
- if(CollUtil.isNotEmpty(repalResponsiblePersonList)){
- Map<String,String> paraMap = new HashMap<>();
- paraMap.put("custName",repalBill.getCustomerName());
- paraMap.put("totalMoney",repalBill.getTotalMoney().stripTrailingZeros().toPlainString());
- String billType = RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? RepalBillTypeEnum.RECEIVABLE.getDesc() : RepalBillTypeEnum.RECEIPT.getDesc();
- paraMap.put("billType", billType+"账款");
- paraMap.put("repalBillId",repalBillId+"");
- for(RepalResponsiblePerson responsiblePerson:repalResponsiblePersonList) {
- messageNoticeService.saveRepalMsg(responsiblePerson.getUserId(), MsgNameEnum.回款宝账款终止, paraMap);
- }
- }
- }
- /**
- * 结清账款 给账款负责人发
- * @param repalBillId
- */
- private void sendRepalMsgSuccess(Long repalBillId){
- RepalBill repalBill = getById(repalBillId);
- if(ObjectUtil.isNull(repalBill)){
- return;
- }
- List<RepalResponsiblePerson> repalResponsiblePersonList = repalResponsiblePersonService.list(Wrappers.lambdaQuery(RepalResponsiblePerson.class)
- .eq(RepalResponsiblePerson::getRepalBillId,repalBillId)
- .eq(RepalResponsiblePerson::getDeleted,Dict.DeletedStatusEnunm.否.getCode()));
- if(CollUtil.isNotEmpty(repalResponsiblePersonList)){
- Map<String,String> paraMap = new HashMap<>();
- paraMap.put("custName",repalBill.getCustomerName());
- paraMap.put("totalMoney",repalBill.getTotalMoney().stripTrailingZeros().toPlainString());
- String billType = RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? RepalBillTypeEnum.RECEIVABLE.getDesc() : RepalBillTypeEnum.RECEIPT.getDesc();
- paraMap.put("billType", billType+"账款");
- paraMap.put("repalBillId",repalBillId+"");
- for(RepalResponsiblePerson responsiblePerson:repalResponsiblePersonList) {
- messageNoticeService.saveRepalMsg(responsiblePerson.getUserId(), MsgNameEnum.回款宝账款结清, paraMap);
- }
- }
- }
- }
|