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;
|
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.BalanceSheet;
|
||||||
import com.lanyuanxiaoyao.leopard.core.entity.CashFlow;
|
import com.lanyuanxiaoyao.leopard.core.entity.CashFlow;
|
||||||
import com.lanyuanxiaoyao.leopard.core.entity.Income;
|
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.CashFlowRepository;
|
||||||
import com.lanyuanxiaoyao.leopard.core.repository.IncomeRepository;
|
import com.lanyuanxiaoyao.leopard.core.repository.IncomeRepository;
|
||||||
import com.lanyuanxiaoyao.leopard.core.repository.StockRepository;
|
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.TaskService;
|
||||||
import com.lanyuanxiaoyao.leopard.server.service.TuShareService;
|
import com.lanyuanxiaoyao.leopard.server.service.TuShareService;
|
||||||
import com.yomahub.liteflow.annotation.LiteflowComponent;
|
import com.yomahub.liteflow.annotation.LiteflowComponent;
|
||||||
@@ -64,32 +64,32 @@ public class UpdateFinanceNode extends TaskNodeComponent {
|
|||||||
).orElse(new Income());
|
).orElse(new Income());
|
||||||
income.setStock(stock);
|
income.setStock(stock);
|
||||||
income.setYear(year);
|
income.setYear(year);
|
||||||
income.setBasicEarningsPerShare(NumberUtil.parseDouble(item.get(1), null));
|
income.setBasicEarningsPerShare(NumberHelper.parseDouble(item.get(1)));
|
||||||
income.setDilutedEarningsPerShare(NumberUtil.parseDouble(item.get(2), null));
|
income.setDilutedEarningsPerShare(NumberHelper.parseDouble(item.get(2)));
|
||||||
income.setTotalOperatingRevenue(NumberUtil.parseDouble(item.get(3), null));
|
income.setTotalOperatingRevenue(NumberHelper.parseDouble(item.get(3)));
|
||||||
income.setOperatingRevenue(NumberUtil.parseDouble(item.get(4), null));
|
income.setOperatingRevenue(NumberHelper.parseDouble(item.get(4)));
|
||||||
income.setTotalOperatingCost(NumberUtil.parseDouble(item.get(5), null));
|
income.setTotalOperatingCost(NumberHelper.parseDouble(item.get(5)));
|
||||||
income.setOperatingCost(NumberUtil.parseDouble(item.get(6), null));
|
income.setOperatingCost(NumberHelper.parseDouble(item.get(6)));
|
||||||
income.setSellingExpense(NumberUtil.parseDouble(item.get(7), null));
|
income.setSellingExpense(NumberHelper.parseDouble(item.get(7)));
|
||||||
income.setAdministrativeExpense(NumberUtil.parseDouble(item.get(8), null));
|
income.setAdministrativeExpense(NumberHelper.parseDouble(item.get(8)));
|
||||||
income.setFinancialExpense(NumberUtil.parseDouble(item.get(9), null));
|
income.setFinancialExpense(NumberHelper.parseDouble(item.get(9)));
|
||||||
income.setOperatingExpense(NumberUtil.parseDouble(item.get(10), null));
|
income.setOperatingExpense(NumberHelper.parseDouble(item.get(10)));
|
||||||
income.setOperatingProfit(NumberUtil.parseDouble(item.get(11), null));
|
income.setOperatingProfit(NumberHelper.parseDouble(item.get(11)));
|
||||||
income.setAddNonOperatingIncome(NumberUtil.parseDouble(item.get(12), null));
|
income.setAddNonOperatingIncome(NumberHelper.parseDouble(item.get(12)));
|
||||||
income.setLessNonOperatingExpense(NumberUtil.parseDouble(item.get(13), null));
|
income.setLessNonOperatingExpense(NumberHelper.parseDouble(item.get(13)));
|
||||||
income.setTotalProfit(NumberUtil.parseDouble(item.get(14), null));
|
income.setTotalProfit(NumberHelper.parseDouble(item.get(14)));
|
||||||
income.setIncomeTaxExpense(NumberUtil.parseDouble(item.get(15), null));
|
income.setIncomeTaxExpense(NumberHelper.parseDouble(item.get(15)));
|
||||||
income.setNetProfitIncludingMinorityInterest(NumberUtil.parseDouble(item.get(16), null));
|
income.setNetProfitIncludingMinorityInterest(NumberHelper.parseDouble(item.get(16)));
|
||||||
income.setNetProfitExcludingMinorityInterest(NumberUtil.parseDouble(item.get(17), null));
|
income.setNetProfitExcludingMinorityInterest(NumberHelper.parseDouble(item.get(17)));
|
||||||
income.setComprehensiveIncomeAttributableToParent(NumberUtil.parseDouble(item.get(18), null));
|
income.setComprehensiveIncomeAttributableToParent(NumberHelper.parseDouble(item.get(18)));
|
||||||
income.setComprehensiveIncomeAttributableToMinorityShareholders(NumberUtil.parseDouble(item.get(19), null));
|
income.setComprehensiveIncomeAttributableToMinorityShareholders(NumberHelper.parseDouble(item.get(19)));
|
||||||
income.setEarningsBeforeInterestAndTax(NumberUtil.parseDouble(item.get(20), null));
|
income.setEarningsBeforeInterestAndTax(NumberHelper.parseDouble(item.get(20)));
|
||||||
income.setBeginningUndistributedProfit(NumberUtil.parseDouble(item.get(21), null));
|
income.setBeginningUndistributedProfit(NumberHelper.parseDouble(item.get(21)));
|
||||||
income.setDistributableProfit(NumberUtil.parseDouble(item.get(22), null));
|
income.setDistributableProfit(NumberHelper.parseDouble(item.get(22)));
|
||||||
income.setResearchAndDevelopmentExpense(NumberUtil.parseDouble(item.get(23), null));
|
income.setResearchAndDevelopmentExpense(NumberHelper.parseDouble(item.get(23)));
|
||||||
income.setFinancialExpenseInterestExpense(NumberUtil.parseDouble(item.get(24), null));
|
income.setFinancialExpenseInterestExpense(NumberHelper.parseDouble(item.get(24)));
|
||||||
income.setNetProfitFromContinuingOperations(NumberUtil.parseDouble(item.get(25), null));
|
income.setNetProfitFromContinuingOperations(NumberHelper.parseDouble(item.get(25)));
|
||||||
income.setNetProfitFromDiscontinuedOperations(NumberUtil.parseDouble(item.get(26), null));
|
income.setNetProfitFromDiscontinuedOperations(NumberHelper.parseDouble(item.get(26)));
|
||||||
incomeRepository.save(income);
|
incomeRepository.save(income);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,36 +106,36 @@ public class UpdateFinanceNode extends TaskNodeComponent {
|
|||||||
).orElse(new BalanceSheet());
|
).orElse(new BalanceSheet());
|
||||||
balanceSheet.setStock(stock);
|
balanceSheet.setStock(stock);
|
||||||
balanceSheet.setYear(year);
|
balanceSheet.setYear(year);
|
||||||
balanceSheet.setEndingTotalShares(NumberUtil.parseDouble(item.get(1), null));
|
balanceSheet.setEndingTotalShares(NumberHelper.parseDouble(item.get(1)));
|
||||||
balanceSheet.setCapitalSurplus(NumberUtil.parseDouble(item.get(2), null));
|
balanceSheet.setCapitalSurplus(NumberHelper.parseDouble(item.get(2)));
|
||||||
balanceSheet.setUndistributedProfit(NumberUtil.parseDouble(item.get(3), null));
|
balanceSheet.setUndistributedProfit(NumberHelper.parseDouble(item.get(3)));
|
||||||
balanceSheet.setMonetaryFunds(NumberUtil.parseDouble(item.get(4), null));
|
balanceSheet.setMonetaryFunds(NumberHelper.parseDouble(item.get(4)));
|
||||||
balanceSheet.setAccountsReceivable(NumberUtil.parseDouble(item.get(5), null));
|
balanceSheet.setAccountsReceivable(NumberHelper.parseDouble(item.get(5)));
|
||||||
balanceSheet.setInventories(NumberUtil.parseDouble(item.get(6), null));
|
balanceSheet.setInventories(NumberHelper.parseDouble(item.get(6)));
|
||||||
balanceSheet.setTotalCurrentAssets(NumberUtil.parseDouble(item.get(7), null));
|
balanceSheet.setTotalCurrentAssets(NumberHelper.parseDouble(item.get(7)));
|
||||||
balanceSheet.setLongTermEquityInvestments(NumberUtil.parseDouble(item.get(8), null));
|
balanceSheet.setLongTermEquityInvestments(NumberHelper.parseDouble(item.get(8)));
|
||||||
balanceSheet.setLongTermReceivables(NumberUtil.parseDouble(item.get(9), null));
|
balanceSheet.setLongTermReceivables(NumberHelper.parseDouble(item.get(9)));
|
||||||
balanceSheet.setFixedAssets(NumberUtil.parseDouble(item.get(10), null));
|
balanceSheet.setFixedAssets(NumberHelper.parseDouble(item.get(10)));
|
||||||
balanceSheet.setResearchAndDevelopmentExpenditures(NumberUtil.parseDouble(item.get(11), null));
|
balanceSheet.setResearchAndDevelopmentExpenditures(NumberHelper.parseDouble(item.get(11)));
|
||||||
balanceSheet.setGoodwill(NumberUtil.parseDouble(item.get(12), null));
|
balanceSheet.setGoodwill(NumberHelper.parseDouble(item.get(12)));
|
||||||
balanceSheet.setTotalNonCurrentAssets(NumberUtil.parseDouble(item.get(13), null));
|
balanceSheet.setTotalNonCurrentAssets(NumberHelper.parseDouble(item.get(13)));
|
||||||
balanceSheet.setTotalAssets(NumberUtil.parseDouble(item.get(14), null));
|
balanceSheet.setTotalAssets(NumberHelper.parseDouble(item.get(14)));
|
||||||
balanceSheet.setLongTermBorrowings(NumberUtil.parseDouble(item.get(15), null));
|
balanceSheet.setLongTermBorrowings(NumberHelper.parseDouble(item.get(15)));
|
||||||
balanceSheet.setShortTermBorrowings(NumberUtil.parseDouble(item.get(16), null));
|
balanceSheet.setShortTermBorrowings(NumberHelper.parseDouble(item.get(16)));
|
||||||
balanceSheet.setAccountsPayable(NumberUtil.parseDouble(item.get(17), null));
|
balanceSheet.setAccountsPayable(NumberHelper.parseDouble(item.get(17)));
|
||||||
balanceSheet.setAdvancesReceived(NumberUtil.parseDouble(item.get(18), null));
|
balanceSheet.setAdvancesReceived(NumberHelper.parseDouble(item.get(18)));
|
||||||
balanceSheet.setTotalCurrentLiabilities(NumberUtil.parseDouble(item.get(19), null));
|
balanceSheet.setTotalCurrentLiabilities(NumberHelper.parseDouble(item.get(19)));
|
||||||
balanceSheet.setTotalNonCurrentLiabilities(NumberUtil.parseDouble(item.get(20), null));
|
balanceSheet.setTotalNonCurrentLiabilities(NumberHelper.parseDouble(item.get(20)));
|
||||||
balanceSheet.setTotalLiabilities(NumberUtil.parseDouble(item.get(21), null));
|
balanceSheet.setTotalLiabilities(NumberHelper.parseDouble(item.get(21)));
|
||||||
balanceSheet.setTotalShareholdersEquityExcludingMinorityInterest(NumberUtil.parseDouble(item.get(22), null));
|
balanceSheet.setTotalShareholdersEquityExcludingMinorityInterest(NumberHelper.parseDouble(item.get(22)));
|
||||||
balanceSheet.setTotalShareholdersEquityIncludingMinorityInterest(NumberUtil.parseDouble(item.get(23), null));
|
balanceSheet.setTotalShareholdersEquityIncludingMinorityInterest(NumberHelper.parseDouble(item.get(23)));
|
||||||
balanceSheet.setTotalLiabilitiesAndShareholdersEquity(NumberUtil.parseDouble(item.get(24), null));
|
balanceSheet.setTotalLiabilitiesAndShareholdersEquity(NumberHelper.parseDouble(item.get(24)));
|
||||||
balanceSheet.setAccountsReceivable(NumberUtil.parseDouble(item.get(25), null));
|
balanceSheet.setAccountsReceivable(NumberHelper.parseDouble(item.get(25)));
|
||||||
balanceSheet.setPayables(NumberUtil.parseDouble(item.get(26), null));
|
balanceSheet.setPayables(NumberHelper.parseDouble(item.get(26)));
|
||||||
balanceSheet.setNotesAndAccountsReceivable(NumberUtil.parseDouble(item.get(27), null));
|
balanceSheet.setNotesAndAccountsReceivable(NumberHelper.parseDouble(item.get(27)));
|
||||||
balanceSheet.setNotesAndAccountsPayable(NumberUtil.parseDouble(item.get(28), null));
|
balanceSheet.setNotesAndAccountsPayable(NumberHelper.parseDouble(item.get(28)));
|
||||||
balanceSheet.setOtherReceivablesTotal(NumberUtil.parseDouble(item.get(29), null));
|
balanceSheet.setOtherReceivablesTotal(NumberHelper.parseDouble(item.get(29)));
|
||||||
balanceSheet.setFixedAssetsTotal(NumberUtil.parseDouble(item.get(30), null));
|
balanceSheet.setFixedAssetsTotal(NumberHelper.parseDouble(item.get(30)));
|
||||||
balanceSheetRepository.save(balanceSheet);
|
balanceSheetRepository.save(balanceSheet);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -150,21 +150,21 @@ public class UpdateFinanceNode extends TaskNodeComponent {
|
|||||||
QCashFlow.cashFlow.year.eq(year)
|
QCashFlow.cashFlow.year.eq(year)
|
||||||
.and(QCashFlow.cashFlow.stock.code.eq(stock.getCode()))
|
.and(QCashFlow.cashFlow.stock.code.eq(stock.getCode()))
|
||||||
).orElse(new CashFlow());
|
).orElse(new CashFlow());
|
||||||
NumberUtil.parseDouble(item.get(1), null);
|
NumberHelper.parseDouble(item.get(1));
|
||||||
cashFlow.setStock(stock);
|
cashFlow.setStock(stock);
|
||||||
cashFlow.setYear(year);
|
cashFlow.setYear(year);
|
||||||
cashFlow.setNetProfit(NumberUtil.parseDouble(item.get(1), null));
|
cashFlow.setNetProfit(NumberHelper.parseDouble(item.get(1)));
|
||||||
cashFlow.setFinancialExpense(NumberUtil.parseDouble(item.get(2), null));
|
cashFlow.setFinancialExpense(NumberHelper.parseDouble(item.get(2)));
|
||||||
cashFlow.setCashReceivedFromSalesAndServices(NumberUtil.parseDouble(item.get(3), null));
|
cashFlow.setCashReceivedFromSalesAndServices(NumberHelper.parseDouble(item.get(3)));
|
||||||
cashFlow.setSubtotalOfCashInflowsFromOperatingActivities(NumberUtil.parseDouble(item.get(4), null));
|
cashFlow.setSubtotalOfCashInflowsFromOperatingActivities(NumberHelper.parseDouble(item.get(4)));
|
||||||
cashFlow.setCashPaidToAndForEmployees(NumberUtil.parseDouble(item.get(5), null));
|
cashFlow.setCashPaidToAndForEmployees(NumberHelper.parseDouble(item.get(5)));
|
||||||
cashFlow.setCashPaidForVariousTaxes(NumberUtil.parseDouble(item.get(6), null));
|
cashFlow.setCashPaidForVariousTaxes(NumberHelper.parseDouble(item.get(6)));
|
||||||
cashFlow.setNetCashFlowFromOperatingActivities(NumberUtil.parseDouble(item.get(7), null));
|
cashFlow.setNetCashFlowFromOperatingActivities(NumberHelper.parseDouble(item.get(7)));
|
||||||
cashFlow.setSubtotalOfCashInflowsFromInvestingActivities(NumberUtil.parseDouble(item.get(8), null));
|
cashFlow.setSubtotalOfCashInflowsFromInvestingActivities(NumberHelper.parseDouble(item.get(8)));
|
||||||
cashFlow.setCashPaidForLongTermAssets(NumberUtil.parseDouble(item.get(9), null));
|
cashFlow.setCashPaidForLongTermAssets(NumberHelper.parseDouble(item.get(9)));
|
||||||
cashFlow.setSubtotalOfCashOutflowsFromInvestingActivities(NumberUtil.parseDouble(item.get(10), null));
|
cashFlow.setSubtotalOfCashOutflowsFromInvestingActivities(NumberHelper.parseDouble(item.get(10)));
|
||||||
cashFlow.setSubtotalOfCashOutflowsFromFinancingActivities(NumberUtil.parseDouble(item.get(11), null));
|
cashFlow.setSubtotalOfCashOutflowsFromFinancingActivities(NumberHelper.parseDouble(item.get(11)));
|
||||||
cashFlow.setBeginningBalanceOfCashAndCashEquivalents(NumberUtil.parseDouble(item.get(12), null));
|
cashFlow.setBeginningBalanceOfCashAndCashEquivalents(NumberHelper.parseDouble(item.get(12)));
|
||||||
cashFlowRepository.save(cashFlow);
|
cashFlowRepository.save(cashFlow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user