Преглед изворни кода

适配企业风险豁免功能

ximinghao пре 3 месеци
родитељ
комит
0305c6ca92

+ 1 - 0
src/main/java/com/skyversation/xjcy/bean/Enterprise.java

@@ -31,6 +31,7 @@ public class Enterprise implements FromJSON ,DateInterval {
     private LocalDate revocationTime;
     @JSONField(deserializeUsing = LocalDateFromTimestampDeserializer.class)
     private LocalDate cancellationTime;
+    private Boolean riskExempt;
     @Override
     public LocalDate getStartDate() {
         return Optional.ofNullable(cCertificateDate).orElse(LocalDate.MIN);

+ 14 - 7
src/main/java/com/skyversation/xjcy/computer/EnterpriseHealthComputer.java

@@ -9,7 +9,6 @@ import lombok.Getter;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.rmi.dgc.Lease;
 import java.text.DecimalFormat;
 import java.time.*;
 import java.time.format.DateTimeFormatter;
@@ -237,7 +236,12 @@ public class EnterpriseHealthComputer {
     /**
      * 企业列表
      */
-    List<Enterprise> enterprises;
+    List<Enterprise> allEnterprise;
+
+    /**
+     * 未豁免企业列表
+     */
+    List<Enterprise> unExemptEnterprise;
 
     /**
      * 企业经济数据映射:企业ID -> (年月 -> 经济数据)
@@ -257,7 +261,10 @@ public class EnterpriseHealthComputer {
      * @param enterprises 企业列表
      */
     public EnterpriseHealthComputer(List<Enterprise> enterprises) {
-        this.enterprises = enterprises;
+        this.allEnterprise = enterprises;
+        this.unExemptEnterprise = allEnterprise.stream()
+                .filter(enterprise -> !Boolean.TRUE.equals(enterprise.getRiskExempt()))
+                .collect(Collectors.toList());
     }
 
     // ==================== 公共方法 ====================
@@ -313,7 +320,7 @@ public class EnterpriseHealthComputer {
         List<Season> seasons = getLastFourSeason(time);
         //四个季节的上一年同季节
         List<Season> previousYearSeasons = seasons.stream().map(s -> s.minusSeasons(4)).collect(Collectors.toList());
-        for (Enterprise enterprise : enterprises) {
+        for (Enterprise enterprise : allEnterprise) {
             List<List<EnterpriseEconomic>> seasonEconomic = getEconomicBySeasonList(enterprise, seasons);
             List<List<EnterpriseEconomic>> previousYearSeasonEconomic = getEconomicBySeasonList(enterprise, previousYearSeasons);
             //去年数据必须完整,避免因数据缺失异常标记
@@ -345,7 +352,7 @@ public class EnterpriseHealthComputer {
         List<Season> seasons = getLastFourSeason(time);
         //四个季节的上一年同季节
         List<Season> previousYearSeasons = seasons.stream().map(s -> s.minusSeasons(4)).collect(Collectors.toList());
-        for (Enterprise enterprise : enterprises) {
+        for (Enterprise enterprise : allEnterprise) {
             List<List<EnterpriseEconomic>> seasonEconomic = getEconomicBySeasonList(enterprise, seasons);
             List<List<EnterpriseEconomic>> previousYearSeasonEconomic = getEconomicBySeasonList(enterprise, previousYearSeasons);
             //去年数据必须完整,避免因数据缺失异常标记
@@ -377,7 +384,7 @@ public class EnterpriseHealthComputer {
     public void computeTaxDive(LocalDateTime time) {
         Season season = getLastSeason(time);
         Season previousYearSeason = season.minusSeasons(4);
-        for (Enterprise enterprise : enterprises) {
+        for (Enterprise enterprise : unExemptEnterprise) {
             List<EnterpriseEconomic> seasonEconomic = getEconomicBySeason(enterprise, season);
             List<EnterpriseEconomic> previousYearSeasonEconomic = getEconomicBySeason(enterprise, previousYearSeason);
             //今年数据必须完整,避免因数据缺失异常标记
@@ -412,7 +419,7 @@ public class EnterpriseHealthComputer {
      */
     public void computeLeaseOutDate(LocalDateTime time) {
         LocalDate nowDate = time.toLocalDate();
-        for (Enterprise enterprise : enterprises) {
+        for (Enterprise enterprise : unExemptEnterprise) {
             String enterpriseCode = enterprise.getCUnifiedSocialCreditCode();
             if (enterpriseCode == null || enterpriseCode.isEmpty()) continue;
             List<LeaseDetail> leases = enterpriseLeases.get(enterpriseCode);