|
|
@@ -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);
|