From f2b56f4653ebb6b37e82d5654ef67146ac493c2f Mon Sep 17 00:00:00 2001 From: llllon Date: Tue, 9 Sep 2025 17:51:52 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=98=B2=E6=B0=B4=E6=B6=82=E6=96=99?= =?UTF-8?q?=E5=BA=94=E6=94=B6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SaleCountDimensionImpl.class | Bin 38613 -> 38612 bytes .../compileJava/previous-compilation-data.bin | Bin 9392556 -> 9392556 bytes .../WaterproofPaintAccountsReceivableJob.java | 76 +++++++++++------- .../service/impl/SaleCountDimensionImpl.java | 3 +- 4 files changed, 51 insertions(+), 28 deletions(-) diff --git a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/SaleCountDimensionImpl.class b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/classes/java/main/com/awspaas/user/apps/bnbm/datalinkup/service/impl/SaleCountDimensionImpl.class index 40bea779665c0ac2120d75564d7138cde0dc02d5..6804e559559bfcf14ad2877f30a4554a61de3008 100644 GIT binary patch delta 7840 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 delta 7969 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 diff --git a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/tmp/compileJava/previous-compilation-data.bin b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/build/tmp/compileJava/previous-compilation-data.bin index 1a032d9d19b26dd60ed53b63250bc438a45c7f5a..5f71c4a123b0a1549febfe7a3ee1c180505e4bf6 100644 GIT binary patch delta 618 zcmZY4$#csA0LAg~6Kj=}RBc5|Y_Wx}J<>+Cc3M&UT6?J4TWd*pp)C%aI68GEGaQVZ zjDNuN4KT}_R|7v{q=XK_LOY~(bh=<<{ z{3!1nsA{cCe=FfbtTdMm^4VaB{qIl<*)SV!BW$FNve8yzW31H1+Bgdrvq4!RF=#H| zmn^gKHo+oRZWFD-CfQ`0VpDCJRoZl$VKc4Ds%@6dF7_p(e=~y)t*x_!t+%ArSgoaOgVotat1tHVHblC@-Cx^s zJ+CS{>YLNC&rOjUu}N$eTf|neO>7rC#7?nGG>Rs%TcpJv(Jc0gePX{jAP$N{;;=X( zj*4UAxHutN#7S{VoEB%qS#eIB7a4IuTokS1l4ui`#T9W?Toc#D4RKSniw<#1+!lAl nU2#v`7oFmPcqpZjk9(P9yKIFV>Nd%IKzySN#ftF#JmSux%unn=HHq3_G2pegmESOFN zvZK*p$FHuM{;W5Y{HSjD^rf^a*%QmQ(UxN&8)IW_oQ<~$mTP%7(ekapCfQ^wv?(^# zrlosgMStr58%Xwb7TI*0VKc4R!Zyoh+Z-#gxmIcsn`iS4TVM-qkuA0|TVhKsYRfEU z%dOnvw!&80DqEfI>s%9R59W5gjf8)G>`zpFEB@Tn`c%@AoL2MM8#AdNYREVu& zo7gUPh@GNR>=IR?TGWW$VvpD>_KE%CfH)`)iNoTEI4WwzF;ORuixZ+=G>DVplsGNU zh_m9HI4>@Ui{g^FEE>fXaaCLs*F}@KA#RFW; 0) { startDate = nowDate.minusDays(timeRange); } else { // 默认计算去年第一天到现在的数据 startDate = nowDate.minusYears(1).withDayOfYear(1); } - LOGGER.info("开始执行防水涂料应收单计算任务,时间范围:{} 到 {}", startDate, nowDate); - // 依次处理防水和涂料两个板块 boolean allSuccess = true; for (Section section : Section.values()) { @@ -67,11 +61,9 @@ public class WaterproofPaintAccountsReceivableJob implements IJob { LOGGER.error("{}板块处理失败", section.getName()); } } - if (!allSuccess) { throw new JobExecutionException("部分板块处理失败"); } - LOGGER.info("防水涂料应收单计算任务完成,共处理 {} 天数据", nowDate.toEpochDay() - startDate.toEpochDay() + 1); } catch (Exception e) { @@ -92,6 +84,10 @@ public class WaterproofPaintAccountsReceivableJob implements IJob { // 每个板块使用独立的缓存 Map> historicalBalanceCache = new HashMap<>(); + // 新增缓存用于存储每日的累计值 + Map previousLjxsCache = new HashMap<>(); // 缓存前一天的累计销售 + Map previousLjhkCache = new HashMap<>(); // 缓存前一天的累计还款 + Map qcyeCache = new HashMap<>(); // 缓存期初余额(每个客户只需计算一次) try { // 开始清理开始时间到结束时间的数据后再进行计算更新数据 @@ -102,14 +98,10 @@ public class WaterproofPaintAccountsReceivableJob implements IJob { LOGGER.info("已删除目标表[{}]中{}条数据(时间范围: {} - {})", section.getTargetTable(), delete, startDateFormat, nowDateFormat); - // 获取RDSAPI实例 -// RDSAPI rdsapi = SDK.getCCAPI().getRDSAPI(RDS_ID); - // 查询销售组织和客户分组信息 List maps = DBSql.getMaps("SELECT QYGS, FCUSTNAME, SQ AS FPROVINCE,CS AS FCITY FROM " + section.getYsdTable() + " GROUP BY QYGS, FCUSTNAME, SQ,CS"); - if (maps == null || maps.isEmpty()) { LOGGER.warn("{}板块未查询到销售组织和客户数据", sectionName); return true; // 没有数据也算成功 @@ -133,28 +125,58 @@ public class WaterproofPaintAccountsReceivableJob implements IJob { String custName = row.getString("FCUSTNAME"); // 查询省市区信息 -// RowMap locationInfo = rdsapi.getMap( -// "SELECT FProvince, FCity FROM " + section.getYsdTable() + -// " WHERE FSaleOrgUnit = ? AND FCustName = ? ", -// saleOrgUnit, custName -// ); - String province = row != null ? row.getString("FPROVINCE") : ""; String city = row != null ? row.getString("FCITY") : ""; String district = row != null ? row.getString("FDISTRICT")!=null ? row.getString("FDISTRICT"):"": ""; - // 计算期初余额(上一年度) - LocalDate previousYearStart = currentDate.minusYears(1).withDayOfYear(1); - LocalDate previousYearEnd = currentDate.minusYears(1).withDayOfYear(365); + String cacheKey = saleOrgUnit + "_" + custName; - BigDecimal qcye = calculateInitialBalance(section, saleOrgUnit, custName, previousYearStart, previousYearEnd); + // 计算期初余额(上一年度)- 每个客户只需计算一次 + BigDecimal qcye; + if (currentDate.equals(startDate)) { + LocalDate previousYearStart = currentDate.minusYears(1).withDayOfYear(1); + LocalDate previousYearEnd = currentDate.minusYears(1).withDayOfYear(365); + qcye = calculateInitialBalance(section, saleOrgUnit, custName, previousYearStart, previousYearEnd); + qcyeCache.put(cacheKey, qcye); + } else { + qcye = qcyeCache.get(cacheKey); + if (qcye == null) { + // 如果缓存中没有,说明之前没有计算过,则计算并缓存 + LocalDate previousYearStart = currentDate.minusYears(1).withDayOfYear(1); + LocalDate previousYearEnd = currentDate.minusYears(1).withDayOfYear(365); + qcye = calculateInitialBalance(section, saleOrgUnit, custName, previousYearStart, previousYearEnd); + qcyeCache.put(cacheKey, qcye); + } + } - // 计算累计销售(本年年初到当前日期) - LocalDate currentYearStart = currentDate.withDayOfYear(1); - BigDecimal ljxs = calculateTotalSales(section, saleOrgUnit, custName, currentYearStart, currentDate); + // 计算当日销售 + BigDecimal dailySales = calculateTotalSales(section, saleOrgUnit, custName, currentDate, currentDate); + // 计算当日还款 + BigDecimal dailyRepayment = calculateTotalRepayment(section, saleOrgUnit, custName, currentDate, currentDate); - // 计算累计还款(本年年初到当前日期) - BigDecimal ljhk = calculateTotalRepayment(section, saleOrgUnit, custName, currentYearStart, currentDate); + // 计算累计销售(本年年初到当前日期)- 使用增量方式 + BigDecimal ljxs; + if (currentDate.equals(startDate)) { + // 第一天直接使用当日销售 + ljxs = dailySales; + } else { + // 后续天数:前一天的累计销售 + 当日销售 + BigDecimal previousLjxs = previousLjxsCache.getOrDefault(cacheKey, BigDecimal.ZERO); + ljxs = previousLjxs.add(dailySales); + } + previousLjxsCache.put(cacheKey, ljxs); + + // 计算累计还款(本年年初到当前日期)- 使用增量方式 + BigDecimal ljhk; + if (currentDate.equals(startDate)) { + // 第一天直接使用当日还款 + ljhk = dailyRepayment; + } else { + // 后续天数:前一天的累计还款 + 当日还款 + BigDecimal previousLjhk = previousLjhkCache.getOrDefault(cacheKey, BigDecimal.ZERO); + ljhk = previousLjhk.add(dailyRepayment); + } + previousLjhkCache.put(cacheKey, ljhk); // 计算应收余额 BigDecimal ysye = qcye.add(ljxs).subtract(ljhk); diff --git a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/service/impl/SaleCountDimensionImpl.java b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/service/impl/SaleCountDimensionImpl.java index 04fe8b8..029819e 100644 --- a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/service/impl/SaleCountDimensionImpl.java +++ b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/service/impl/SaleCountDimensionImpl.java @@ -16,6 +16,7 @@ import java.sql.Array; import java.sql.Connection; import java.sql.SQLException; import java.text.SimpleDateFormat; +import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; @@ -171,7 +172,7 @@ public class SaleCountDimensionImpl implements DataSummaryService { String xszz = map.getString("XSZZ"); String rq = map.getString("RQ"); BO bo = new BO(); - bo.set("YEARMONTH", YEAR_MONTH_FORMAT.format(rq)); + bo.set("YEARMONTH", rq.substring(0, 7)); bo.set("BKGS", bkgs); bo.set("QYGS", map.getString("QYGS")); bo.set("GC", xszz);