Bladeren bron

增加查看账款评级区间

xda 3 jaren geleden
bovenliggende
commit
f6ea0cc7c0

+ 6 - 0
src/main/java/com/winhc/repal/controller/RepalBillController.java

@@ -98,4 +98,10 @@ public class RepalBillController {
     public BeanResponse<ReturnedBillDetailVO> getReturnedBillDetail(@PathVariable("repalChangeRecordId") Long repalChangeRecordId) {
         return BeanResponse.success(CodeMsg.SUCCESS, repalBillService.getReturnedBillDetail(repalChangeRecordId));
     }
+
+    @ApiOperation("账款评级区间历史")
+    @RequestMapping(value = "/dynamic/{repalBillId}", method = RequestMethod.GET)
+    public BeanResponse<DiagnosisSectionVO> getDiagnosisDynamic(@PathVariable("repalBillId")Long repalBillId) {
+        return BeanResponse.success(CodeMsg.SUCCESS, repalBillService.getDiagnosisDynamic(repalBillId));
+    }
 }

+ 50 - 0
src/main/java/com/winhc/repal/model/vo/DiagnosisSectionVO.java

@@ -0,0 +1,50 @@
+package com.winhc.repal.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @Description: DiagnosisSectionVO
+ * @Author: xda
+ * @Date: 2022/5/25 10:38
+ */
+@Data
+@ApiModel("评分区间")
+public class DiagnosisSectionVO {
+
+    @ApiModelProperty("履债评估结果id")
+    private Long diagnosisRecordId;
+
+    @ApiModelProperty(value = "当前评估等级(逾期提醒、账款评级)")
+    private String diagnosisGrade;
+
+    @ApiModelProperty(value = "当前评估分值(逾期提醒、账款评级)string")
+    private String diagnosisScoreStr;
+
+    @ApiModelProperty(value = "当前评估分时间(逾期提醒、账款评级)")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime diagnosisDatetime;
+
+    @ApiModelProperty(value = "上次评估等级(账款评级,注意如果是第一次评估这边为空)")
+    private String preDiagnosisGrade;
+
+    @ApiModelProperty(value = "上次评估分值(账款评级,注意如果是第一次评估这边为空)string")
+    private String preDiagnosisScoreStr;
+
+    @ApiModelProperty(value = "上次评估分时间(账款评级,注意如果是第一次评估这边为空)")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime preDiagnosisDatetime;
+
+    private List<DiagnosisDynamicVO> esDynamics;
+
+
+}

+ 9 - 0
src/main/java/com/winhc/repal/service/RepalBillService.java

@@ -210,4 +210,13 @@ public interface RepalBillService extends IService<RepalBill> {
      */
     ReturnedBillDetailVO getReturnedBillDetail(Long repalChangeRecordId);
 
+    /**
+     * 获取
+     * @param repalBillId repalBillId
+     * @return com.winhc.repal.model.vo.DiagnosisSectionVO
+     * @author xda
+     * @date 2022/5/25 10:47 
+     */
+    DiagnosisSectionVO getDiagnosisDynamic(Long repalBillId);
+
 }

+ 53 - 4
src/main/java/com/winhc/repal/service/impl/RepalBillServiceImpl.java

@@ -4,6 +4,7 @@ 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;
@@ -17,10 +18,8 @@ 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.vo.CompanyRiskNumVO;
-import com.winhc.repal.cloud.vo.CreditPunishmentLabelListVO;
-import com.winhc.repal.cloud.vo.DiagnosisRecordVO;
-import com.winhc.repal.cloud.vo.FinanceDynamicNumVO;
+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.*;
@@ -46,6 +45,7 @@ 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;
@@ -116,6 +116,9 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
     @Autowired
     private RepalCustChargeRelService repalCustChargeRelService;
 
+    @Autowired
+    private CompanyService companyService;
+
     @Override
     public RepalBillInfoVO getRepalBillPage(GetRepalBillPageDTO dto) {
         long userId = UserContextUtil.getUser().getUserId();
@@ -977,4 +980,50 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
         }});
         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.isAllNotEmpty(repalBill.getPreDiagnosisDatetime(), repalBill.getDiagnosisDatetime())) {
+            LOGGER.error("没有账款评级");
+            return null;
+        }
+        DiagnosisSectionVO vo = new DiagnosisSectionVO();
+        BeanUtils.copyProperties(repalBill, vo);
+        RepalBillDiagnosis diagnosis = repalBillDiagnosisService.getById(repalBill.getDiagnosisId());
+        if (Objects.nonNull(diagnosis)) {
+            vo.setDiagnosisRecordId(diagnosis.getBizId());
+        }
+        QueryV8DynamicDTO dynamicDto = new QueryV8DynamicDTO();
+        dynamicDto.setEntityNames(Collections.singletonList(repalBill.getCustomerName()));
+        dynamicDto.setStartDate(repalBill.getPreDiagnosisDatetime().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;
+    }
 }