perf: 优化数值处理
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
package com.lanyuanxiaoyao.leopard.server.helper;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import java.util.function.Function;
|
||||
|
||||
/**
|
||||
* @author lanyuanxiaoyao
|
||||
* @version 20250912
|
||||
*/
|
||||
public class NumberHelper {
|
||||
public static final String FINANCE_NULL_DOUBLE = "/";
|
||||
|
||||
public static String formatFinanceDouble(Double value) {
|
||||
if (ObjectUtil.isNull(value)) {
|
||||
return FINANCE_NULL_DOUBLE;
|
||||
}
|
||||
return value.toString();
|
||||
}
|
||||
|
||||
public static Double parseDouble(String value) {
|
||||
if (StrUtil.isBlank(value)) {
|
||||
return null;
|
||||
}
|
||||
return Double.parseDouble(value);
|
||||
}
|
||||
|
||||
public static Double parseDouble(String value, Function<Double, Double> ifSuccess) {
|
||||
var result = parseDouble(value);
|
||||
return ObjectUtil.isNull(result) ? null : ifSuccess.apply(result);
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.lanyuanxiaoyao.leopard.server.service.task;
|
||||
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import com.lanyuanxiaoyao.leopard.core.entity.BalanceSheet;
|
||||
import com.lanyuanxiaoyao.leopard.core.entity.CashFlow;
|
||||
import com.lanyuanxiaoyao.leopard.core.entity.Income;
|
||||
@@ -12,6 +11,7 @@ import com.lanyuanxiaoyao.leopard.core.repository.BalanceSheetRepository;
|
||||
import com.lanyuanxiaoyao.leopard.core.repository.CashFlowRepository;
|
||||
import com.lanyuanxiaoyao.leopard.core.repository.IncomeRepository;
|
||||
import com.lanyuanxiaoyao.leopard.core.repository.StockRepository;
|
||||
import com.lanyuanxiaoyao.leopard.server.helper.NumberHelper;
|
||||
import com.lanyuanxiaoyao.leopard.server.service.TaskService;
|
||||
import com.lanyuanxiaoyao.leopard.server.service.TuShareService;
|
||||
import com.yomahub.liteflow.annotation.LiteflowComponent;
|
||||
@@ -64,32 +64,32 @@ public class UpdateFinanceNode extends TaskNodeComponent {
|
||||
).orElse(new Income());
|
||||
income.setStock(stock);
|
||||
income.setYear(year);
|
||||
income.setBasicEarningsPerShare(NumberUtil.parseDouble(item.get(1), null));
|
||||
income.setDilutedEarningsPerShare(NumberUtil.parseDouble(item.get(2), null));
|
||||
income.setTotalOperatingRevenue(NumberUtil.parseDouble(item.get(3), null));
|
||||
income.setOperatingRevenue(NumberUtil.parseDouble(item.get(4), null));
|
||||
income.setTotalOperatingCost(NumberUtil.parseDouble(item.get(5), null));
|
||||
income.setOperatingCost(NumberUtil.parseDouble(item.get(6), null));
|
||||
income.setSellingExpense(NumberUtil.parseDouble(item.get(7), null));
|
||||
income.setAdministrativeExpense(NumberUtil.parseDouble(item.get(8), null));
|
||||
income.setFinancialExpense(NumberUtil.parseDouble(item.get(9), null));
|
||||
income.setOperatingExpense(NumberUtil.parseDouble(item.get(10), null));
|
||||
income.setOperatingProfit(NumberUtil.parseDouble(item.get(11), null));
|
||||
income.setAddNonOperatingIncome(NumberUtil.parseDouble(item.get(12), null));
|
||||
income.setLessNonOperatingExpense(NumberUtil.parseDouble(item.get(13), null));
|
||||
income.setTotalProfit(NumberUtil.parseDouble(item.get(14), null));
|
||||
income.setIncomeTaxExpense(NumberUtil.parseDouble(item.get(15), null));
|
||||
income.setNetProfitIncludingMinorityInterest(NumberUtil.parseDouble(item.get(16), null));
|
||||
income.setNetProfitExcludingMinorityInterest(NumberUtil.parseDouble(item.get(17), null));
|
||||
income.setComprehensiveIncomeAttributableToParent(NumberUtil.parseDouble(item.get(18), null));
|
||||
income.setComprehensiveIncomeAttributableToMinorityShareholders(NumberUtil.parseDouble(item.get(19), null));
|
||||
income.setEarningsBeforeInterestAndTax(NumberUtil.parseDouble(item.get(20), null));
|
||||
income.setBeginningUndistributedProfit(NumberUtil.parseDouble(item.get(21), null));
|
||||
income.setDistributableProfit(NumberUtil.parseDouble(item.get(22), null));
|
||||
income.setResearchAndDevelopmentExpense(NumberUtil.parseDouble(item.get(23), null));
|
||||
income.setFinancialExpenseInterestExpense(NumberUtil.parseDouble(item.get(24), null));
|
||||
income.setNetProfitFromContinuingOperations(NumberUtil.parseDouble(item.get(25), null));
|
||||
income.setNetProfitFromDiscontinuedOperations(NumberUtil.parseDouble(item.get(26), null));
|
||||
income.setBasicEarningsPerShare(NumberHelper.parseDouble(item.get(1)));
|
||||
income.setDilutedEarningsPerShare(NumberHelper.parseDouble(item.get(2)));
|
||||
income.setTotalOperatingRevenue(NumberHelper.parseDouble(item.get(3)));
|
||||
income.setOperatingRevenue(NumberHelper.parseDouble(item.get(4)));
|
||||
income.setTotalOperatingCost(NumberHelper.parseDouble(item.get(5)));
|
||||
income.setOperatingCost(NumberHelper.parseDouble(item.get(6)));
|
||||
income.setSellingExpense(NumberHelper.parseDouble(item.get(7)));
|
||||
income.setAdministrativeExpense(NumberHelper.parseDouble(item.get(8)));
|
||||
income.setFinancialExpense(NumberHelper.parseDouble(item.get(9)));
|
||||
income.setOperatingExpense(NumberHelper.parseDouble(item.get(10)));
|
||||
income.setOperatingProfit(NumberHelper.parseDouble(item.get(11)));
|
||||
income.setAddNonOperatingIncome(NumberHelper.parseDouble(item.get(12)));
|
||||
income.setLessNonOperatingExpense(NumberHelper.parseDouble(item.get(13)));
|
||||
income.setTotalProfit(NumberHelper.parseDouble(item.get(14)));
|
||||
income.setIncomeTaxExpense(NumberHelper.parseDouble(item.get(15)));
|
||||
income.setNetProfitIncludingMinorityInterest(NumberHelper.parseDouble(item.get(16)));
|
||||
income.setNetProfitExcludingMinorityInterest(NumberHelper.parseDouble(item.get(17)));
|
||||
income.setComprehensiveIncomeAttributableToParent(NumberHelper.parseDouble(item.get(18)));
|
||||
income.setComprehensiveIncomeAttributableToMinorityShareholders(NumberHelper.parseDouble(item.get(19)));
|
||||
income.setEarningsBeforeInterestAndTax(NumberHelper.parseDouble(item.get(20)));
|
||||
income.setBeginningUndistributedProfit(NumberHelper.parseDouble(item.get(21)));
|
||||
income.setDistributableProfit(NumberHelper.parseDouble(item.get(22)));
|
||||
income.setResearchAndDevelopmentExpense(NumberHelper.parseDouble(item.get(23)));
|
||||
income.setFinancialExpenseInterestExpense(NumberHelper.parseDouble(item.get(24)));
|
||||
income.setNetProfitFromContinuingOperations(NumberHelper.parseDouble(item.get(25)));
|
||||
income.setNetProfitFromDiscontinuedOperations(NumberHelper.parseDouble(item.get(26)));
|
||||
incomeRepository.save(income);
|
||||
}
|
||||
|
||||
@@ -106,36 +106,36 @@ public class UpdateFinanceNode extends TaskNodeComponent {
|
||||
).orElse(new BalanceSheet());
|
||||
balanceSheet.setStock(stock);
|
||||
balanceSheet.setYear(year);
|
||||
balanceSheet.setEndingTotalShares(NumberUtil.parseDouble(item.get(1), null));
|
||||
balanceSheet.setCapitalSurplus(NumberUtil.parseDouble(item.get(2), null));
|
||||
balanceSheet.setUndistributedProfit(NumberUtil.parseDouble(item.get(3), null));
|
||||
balanceSheet.setMonetaryFunds(NumberUtil.parseDouble(item.get(4), null));
|
||||
balanceSheet.setAccountsReceivable(NumberUtil.parseDouble(item.get(5), null));
|
||||
balanceSheet.setInventories(NumberUtil.parseDouble(item.get(6), null));
|
||||
balanceSheet.setTotalCurrentAssets(NumberUtil.parseDouble(item.get(7), null));
|
||||
balanceSheet.setLongTermEquityInvestments(NumberUtil.parseDouble(item.get(8), null));
|
||||
balanceSheet.setLongTermReceivables(NumberUtil.parseDouble(item.get(9), null));
|
||||
balanceSheet.setFixedAssets(NumberUtil.parseDouble(item.get(10), null));
|
||||
balanceSheet.setResearchAndDevelopmentExpenditures(NumberUtil.parseDouble(item.get(11), null));
|
||||
balanceSheet.setGoodwill(NumberUtil.parseDouble(item.get(12), null));
|
||||
balanceSheet.setTotalNonCurrentAssets(NumberUtil.parseDouble(item.get(13), null));
|
||||
balanceSheet.setTotalAssets(NumberUtil.parseDouble(item.get(14), null));
|
||||
balanceSheet.setLongTermBorrowings(NumberUtil.parseDouble(item.get(15), null));
|
||||
balanceSheet.setShortTermBorrowings(NumberUtil.parseDouble(item.get(16), null));
|
||||
balanceSheet.setAccountsPayable(NumberUtil.parseDouble(item.get(17), null));
|
||||
balanceSheet.setAdvancesReceived(NumberUtil.parseDouble(item.get(18), null));
|
||||
balanceSheet.setTotalCurrentLiabilities(NumberUtil.parseDouble(item.get(19), null));
|
||||
balanceSheet.setTotalNonCurrentLiabilities(NumberUtil.parseDouble(item.get(20), null));
|
||||
balanceSheet.setTotalLiabilities(NumberUtil.parseDouble(item.get(21), null));
|
||||
balanceSheet.setTotalShareholdersEquityExcludingMinorityInterest(NumberUtil.parseDouble(item.get(22), null));
|
||||
balanceSheet.setTotalShareholdersEquityIncludingMinorityInterest(NumberUtil.parseDouble(item.get(23), null));
|
||||
balanceSheet.setTotalLiabilitiesAndShareholdersEquity(NumberUtil.parseDouble(item.get(24), null));
|
||||
balanceSheet.setAccountsReceivable(NumberUtil.parseDouble(item.get(25), null));
|
||||
balanceSheet.setPayables(NumberUtil.parseDouble(item.get(26), null));
|
||||
balanceSheet.setNotesAndAccountsReceivable(NumberUtil.parseDouble(item.get(27), null));
|
||||
balanceSheet.setNotesAndAccountsPayable(NumberUtil.parseDouble(item.get(28), null));
|
||||
balanceSheet.setOtherReceivablesTotal(NumberUtil.parseDouble(item.get(29), null));
|
||||
balanceSheet.setFixedAssetsTotal(NumberUtil.parseDouble(item.get(30), null));
|
||||
balanceSheet.setEndingTotalShares(NumberHelper.parseDouble(item.get(1)));
|
||||
balanceSheet.setCapitalSurplus(NumberHelper.parseDouble(item.get(2)));
|
||||
balanceSheet.setUndistributedProfit(NumberHelper.parseDouble(item.get(3)));
|
||||
balanceSheet.setMonetaryFunds(NumberHelper.parseDouble(item.get(4)));
|
||||
balanceSheet.setAccountsReceivable(NumberHelper.parseDouble(item.get(5)));
|
||||
balanceSheet.setInventories(NumberHelper.parseDouble(item.get(6)));
|
||||
balanceSheet.setTotalCurrentAssets(NumberHelper.parseDouble(item.get(7)));
|
||||
balanceSheet.setLongTermEquityInvestments(NumberHelper.parseDouble(item.get(8)));
|
||||
balanceSheet.setLongTermReceivables(NumberHelper.parseDouble(item.get(9)));
|
||||
balanceSheet.setFixedAssets(NumberHelper.parseDouble(item.get(10)));
|
||||
balanceSheet.setResearchAndDevelopmentExpenditures(NumberHelper.parseDouble(item.get(11)));
|
||||
balanceSheet.setGoodwill(NumberHelper.parseDouble(item.get(12)));
|
||||
balanceSheet.setTotalNonCurrentAssets(NumberHelper.parseDouble(item.get(13)));
|
||||
balanceSheet.setTotalAssets(NumberHelper.parseDouble(item.get(14)));
|
||||
balanceSheet.setLongTermBorrowings(NumberHelper.parseDouble(item.get(15)));
|
||||
balanceSheet.setShortTermBorrowings(NumberHelper.parseDouble(item.get(16)));
|
||||
balanceSheet.setAccountsPayable(NumberHelper.parseDouble(item.get(17)));
|
||||
balanceSheet.setAdvancesReceived(NumberHelper.parseDouble(item.get(18)));
|
||||
balanceSheet.setTotalCurrentLiabilities(NumberHelper.parseDouble(item.get(19)));
|
||||
balanceSheet.setTotalNonCurrentLiabilities(NumberHelper.parseDouble(item.get(20)));
|
||||
balanceSheet.setTotalLiabilities(NumberHelper.parseDouble(item.get(21)));
|
||||
balanceSheet.setTotalShareholdersEquityExcludingMinorityInterest(NumberHelper.parseDouble(item.get(22)));
|
||||
balanceSheet.setTotalShareholdersEquityIncludingMinorityInterest(NumberHelper.parseDouble(item.get(23)));
|
||||
balanceSheet.setTotalLiabilitiesAndShareholdersEquity(NumberHelper.parseDouble(item.get(24)));
|
||||
balanceSheet.setAccountsReceivable(NumberHelper.parseDouble(item.get(25)));
|
||||
balanceSheet.setPayables(NumberHelper.parseDouble(item.get(26)));
|
||||
balanceSheet.setNotesAndAccountsReceivable(NumberHelper.parseDouble(item.get(27)));
|
||||
balanceSheet.setNotesAndAccountsPayable(NumberHelper.parseDouble(item.get(28)));
|
||||
balanceSheet.setOtherReceivablesTotal(NumberHelper.parseDouble(item.get(29)));
|
||||
balanceSheet.setFixedAssetsTotal(NumberHelper.parseDouble(item.get(30)));
|
||||
balanceSheetRepository.save(balanceSheet);
|
||||
}
|
||||
|
||||
@@ -150,21 +150,21 @@ public class UpdateFinanceNode extends TaskNodeComponent {
|
||||
QCashFlow.cashFlow.year.eq(year)
|
||||
.and(QCashFlow.cashFlow.stock.code.eq(stock.getCode()))
|
||||
).orElse(new CashFlow());
|
||||
NumberUtil.parseDouble(item.get(1), null);
|
||||
NumberHelper.parseDouble(item.get(1));
|
||||
cashFlow.setStock(stock);
|
||||
cashFlow.setYear(year);
|
||||
cashFlow.setNetProfit(NumberUtil.parseDouble(item.get(1), null));
|
||||
cashFlow.setFinancialExpense(NumberUtil.parseDouble(item.get(2), null));
|
||||
cashFlow.setCashReceivedFromSalesAndServices(NumberUtil.parseDouble(item.get(3), null));
|
||||
cashFlow.setSubtotalOfCashInflowsFromOperatingActivities(NumberUtil.parseDouble(item.get(4), null));
|
||||
cashFlow.setCashPaidToAndForEmployees(NumberUtil.parseDouble(item.get(5), null));
|
||||
cashFlow.setCashPaidForVariousTaxes(NumberUtil.parseDouble(item.get(6), null));
|
||||
cashFlow.setNetCashFlowFromOperatingActivities(NumberUtil.parseDouble(item.get(7), null));
|
||||
cashFlow.setSubtotalOfCashInflowsFromInvestingActivities(NumberUtil.parseDouble(item.get(8), null));
|
||||
cashFlow.setCashPaidForLongTermAssets(NumberUtil.parseDouble(item.get(9), null));
|
||||
cashFlow.setSubtotalOfCashOutflowsFromInvestingActivities(NumberUtil.parseDouble(item.get(10), null));
|
||||
cashFlow.setSubtotalOfCashOutflowsFromFinancingActivities(NumberUtil.parseDouble(item.get(11), null));
|
||||
cashFlow.setBeginningBalanceOfCashAndCashEquivalents(NumberUtil.parseDouble(item.get(12), null));
|
||||
cashFlow.setNetProfit(NumberHelper.parseDouble(item.get(1)));
|
||||
cashFlow.setFinancialExpense(NumberHelper.parseDouble(item.get(2)));
|
||||
cashFlow.setCashReceivedFromSalesAndServices(NumberHelper.parseDouble(item.get(3)));
|
||||
cashFlow.setSubtotalOfCashInflowsFromOperatingActivities(NumberHelper.parseDouble(item.get(4)));
|
||||
cashFlow.setCashPaidToAndForEmployees(NumberHelper.parseDouble(item.get(5)));
|
||||
cashFlow.setCashPaidForVariousTaxes(NumberHelper.parseDouble(item.get(6)));
|
||||
cashFlow.setNetCashFlowFromOperatingActivities(NumberHelper.parseDouble(item.get(7)));
|
||||
cashFlow.setSubtotalOfCashInflowsFromInvestingActivities(NumberHelper.parseDouble(item.get(8)));
|
||||
cashFlow.setCashPaidForLongTermAssets(NumberHelper.parseDouble(item.get(9)));
|
||||
cashFlow.setSubtotalOfCashOutflowsFromInvestingActivities(NumberHelper.parseDouble(item.get(10)));
|
||||
cashFlow.setSubtotalOfCashOutflowsFromFinancingActivities(NumberHelper.parseDouble(item.get(11)));
|
||||
cashFlow.setBeginningBalanceOfCashAndCashEquivalents(NumberHelper.parseDouble(item.get(12)));
|
||||
cashFlowRepository.save(cashFlow);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user