From d2a02fdf56f92e45c42f90d68dec0b6ed85aae4c Mon Sep 17 00:00:00 2001 From: llllon Date: Fri, 12 Sep 2025 10:26:07 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=94=80=E5=94=AEsql=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PurchaseDataSummaryServiceImpl.class | Bin 33133 -> 43485 bytes .../impl/SaleDataSummaryServiceImpl.class | Bin 39222 -> 41942 bytes .../impl/SaleDataSyncServiceImpl.class | Bin 26217 -> 26199 bytes .../compileJava/previous-compilation-data.bin | Bin 9392561 -> 9392561 bytes .../impl/PurchaseDataSummaryServiceImpl.java | 222 ++++++++++++------ .../service/impl/SaleDataSyncServiceImpl.java | 2 +- .../apps/bnbm/datalinkup/util/SaleUtil.java | 2 +- 7 files changed, 149 insertions(+), 77 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/PurchaseDataSummaryServiceImpl.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/PurchaseDataSummaryServiceImpl.class index 85fc6aece3c931435f136d8be9880e7a52f99353..e542fe3fb2be6a2cbf57adc981a18a7cf5f82fce 100644 GIT binary patch literal 43485 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 literal 33133 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 z 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

    VxHdA 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 G8~#6!;dl4| literal 39222 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 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/SaleDataSyncServiceImpl.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/SaleDataSyncServiceImpl.class index 9d8e4987a84f960f5765a33616f504e4217f121d..a2f633c578dced7cb037876902e018cd0a997053 100644 GIT binary patch delta 8495 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 TPjIVW-tL!o`sH1I`PlygUrbv! delta 8416 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 U9>{o(7x2P|mzY*;{+asVKU3358~^|S delta 716 zcmWN=NlX)A0D#em?cj#|S_KynK@cq{f~Y8nRzL+;kgXLcR;(h(<}Qn}3g56&a&# zenYfkb4!}d9hmk*_~It|3Vf0}KISv_bpI*W2A!+S9?_c^`@W;v|1(glb-%01A6Dk1 z)m+21T*n};XD|gfa3f9J#LWz0D7SDcw{bhe7|tDx;7&#|in|!C%}Fr}10s81(fB$z zU2Xa8wS0&O8dB!HG2G2q?%`gV8OM0;<9;Ua028%&Z&J-)(dkGEHO@GHE&LnopS67c zuGl>Xnao2x%p*+UQ66I|(|DZeJi(K+@Dwwc$t<4c8J=Y}b9j#Dd4U&siI distinctList = getDistinctMaterialList(); +// List distinctList = getDistinctMaterialList(); if (dateRange == null || dateRange.getStartDate() == null || dateRange.getEndDate() == null) { LOGGER.info("未提供有效时间范围,按当前日期计算"); String startDate = LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern("yyyy-mm-dd")); // 1. 计算并保存各板块物料采购总额、总量、单价(按月存储) // monthlyMaterialSummaryBySegment(year, month, yearMonth, yearLastMonth, lastYearMonth, bkgs, distinctList); - newmonthlyMaterialSummaryBySegment(startDate, bkgs, distinctList); + newmonthlyMaterialSummaryBySegment(startDate, bkgs); // 2. 根据年月汇总板块、基地、年月、当期、上期、同期数据 // monthlyBaseSummaryBySegment(year, month, yearMonth, yearLastMonth, lastYearMonth, bkgs, distinctList); - newmonthlyBaseSummaryBySegment(startDate, bkgs, distinctList); + newmonthlyBaseSummaryBySegment(startDate, bkgs); // 3. 计算并保存各板块物料采购总额、总量、单价(按日存储) // dailyMaterialSummaryBySegment(year, month, day, currentDate, bkgs, distinctList); - newdailyMaterialSummaryBySegment(startDate, bkgs, distinctList); + newdailyMaterialSummaryBySegment(startDate, bkgs); // 4. 根据日期、入库单号、物料名称分页查询 日期、入库单号、物料编码、物料名称、规格型号、 // (汇总)入库数量、单位、入库单价、(汇总)入库金额、供应商、订单编号、库存数 // dailyWarehousingSummary(year, month, day, currentDate, bkgs, distinctList); - newdailyWarehousingSummary(startDate, bkgs, distinctList); + newdailyWarehousingSummary(startDate, bkgs); // calculateForCurrentDate(bkgs, distinctList); } else { @@ -102,14 +104,14 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { dateRange.getStartDate(), dateRange.getEndDate()); String startDate = DATE_FORMAT.format(dateRange.getStartDate()); //计算并保存各板块物料采购总额、总量、单价(按月存储) - newmonthlyMaterialSummaryBySegment(startDate, bkgs, distinctList); + newmonthlyMaterialSummaryBySegment(startDate, bkgs); //根据年月汇总板块、基地、年月、当期、上期、同期数据 - newmonthlyBaseSummaryBySegment(startDate, bkgs, distinctList); + newmonthlyBaseSummaryBySegment(startDate, bkgs); //计算并保存各板块物料采购总额、总量、单价(按日存储) - newdailyMaterialSummaryBySegment(startDate, bkgs, distinctList); + newdailyMaterialSummaryBySegment(startDate, bkgs); // 4. 根据日期、入库单号、物料名称分页查询 日期、入库单号、物料编码、物料名称、规格型号、 // (汇总)入库数量、单位、入库单价、(汇总)入库金额、供应商、订单编号、库存数 - newdailyWarehousingSummary(startDate, bkgs, distinctList); + newdailyWarehousingSummary(startDate, bkgs); // 计算月度维度数据(按月遍历) // calculateMonthlyData(dateRange, bkgs, distinctList); @@ -130,9 +132,9 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { * 根据日期、入库单号、物料名称分页查询 日期、入库单号、物料编码、物料名称、规格型号、 * @param startDate * @param bkgs - * @param distinctList + * @param */ - private void newdailyWarehousingSummary(String startDate, String bkgs, List distinctList) { + private void newdailyWarehousingSummary(String startDate, String bkgs) { LOGGER.info("开始计算{}入库明细日度汇总数据,板块公司:{}", startDate, bkgs); try { @@ -144,7 +146,7 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { // 2. 计算总记录数用于分页 String countSql = "SELECT COUNT(1) AS total FROM " + BO_EU_DWD_ORDER_RKD_HZ + " " + - "WHERE BKGS = ? AND DATE(DJRQ) >= ?"; + " WHERE BKGS = ? AND DATE(DJRQ) >= ?"; RowMap countResult = DBSql.getMap(countSql, bkgs, startDate); int totalCount = countResult.getInt("total"); LOGGER.info("共查询到{}条入库记录需要处理", totalCount); @@ -164,9 +166,9 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { LOGGER.debug("正在处理第{}页入库数据,偏移量:{}", page + 1, offset); String querySql = "SELECT BKGS, YEARMONTH, DJRQ, DJH, WLMC, WLBM, GGXH, SLGC, SUM(RKSL) AS RKSL, " + " JLDW, HSDJHYF, SUM(JSHJHYF) AS JSHJHYF, GYSNAME, CGDDH, DHJE " + - "FROM "+BO_EU_DWD_ORDER_RKD_HZ+" WHERE BKGS = ? AND DATE(DJRQ) >= ? " + - "GROUP BY YEARMONTH,DJH,WLMC " + - "ORDER BY DJRQ LIMIT ? OFFSET ?"; + " FROM "+BO_EU_DWD_ORDER_RKD_HZ+" WHERE BKGS = ? AND DATE(DJRQ) >= ? " + + " GROUP BY YEARMONTH,DJH,WLMC " + + " ORDER BY DJRQ LIMIT ? OFFSET ?"; List pageData = DBSql.getMaps(querySql, bkgs, startDate, pageSize, offset); LOGGER.debug("第{}页查询到{}条记录", page + 1, pageData.size()); @@ -182,20 +184,36 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { detailBO.set("WLMC", wlmc); // 物料名称 detailBO.set("GGXH", row.getString("GGXH")); // 规格型号 detailBO.set("GC", row.getString("SLGC")); // 收料工厂 - detailBO.set("RKSL", row.getDouble("RKSL")); // 入库数量 + + // 处理入库数量,防止空值 + Double rksl = row.getDouble("RKSL"); + detailBO.set("RKSL", rksl != null ? rksl : 0.0); // 入库数量 + detailBO.set("DW", row.getString("JLDW")); // 单位 - if ("泰山石膏".equals(bkgs)) { - detailBO.set("RKDJ", row.getDouble("HSDJHYF")); // 入库单价(含税单价含运费) - detailBO.set("RKJE", row.getDouble("DHJE")); // 入库金额(金额含运费) - }else { - detailBO.set("RKDJ", row.getDouble("HSDJHYF")); // 入库单价(含税单价含运费) - detailBO.set("RKJE", row.getDouble("JSHJHYF")); // 入库金额(金额含运费) + + // 处理单价和金额,添加除零检查 + Double hsdjhyf = row.getDouble("HSDJHYF"); + double rkdj = 0.0; + if (hsdjhyf != null && hsdjhyf != 0 && rksl != null && rksl != 0) { + rkdj = hsdjhyf / rksl; } + detailBO.set("RKDJ", rkdj); // 入库单价 + + if ("泰山石膏".equals(bkgs)) { + Double dhje = row.getDouble("DHJE"); + detailBO.set("RKJE", dhje != null ? dhje : 0.0); // 入库金额 + } else { + Double jshjhyf = row.getDouble("JSHJHYF"); + detailBO.set("RKJE", jshjhyf != null ? jshjhyf : 0.0); // 入库金额 + } + detailBO.set("GYS", row.getString("GYSNAME")); // 供应商 detailBO.set("DDBH", row.getString("CGDDH")); // 订单编号 detailBO.set("KCS", 0.00); // 库存数(默认为0,需后续计算) detailBO.set("BKGS", bkgs); // 板块公司 - String yearmonth = String.format("%04d-%02d", row.getString("YEARMONTH")); + LocalDate date = LocalDate.parse(startDate); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM"); + String yearmonth = date.format(formatter); detailBO.set("YEARMONTH", yearmonth); // 年月 bos.add(detailBO); } @@ -220,13 +238,12 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { * 计算并保存各板块物料采购总额、总量、单价(按日存储) * @param startDate * @param bkgs - * @param distinctList + * @param */ - private void newdailyMaterialSummaryBySegment(String startDate, String bkgs, List distinctList) { + private void newdailyMaterialSummaryBySegment(String startDate, String bkgs) { try { // 格式化日期字符串 (yyyy-MM-dd) LOGGER.info("开始计算{}物料采购日度汇总数据,板块公司:{}", startDate, bkgs); - // 1. 删除该日期已存在的汇总数据 String deleteSql = "DELETE FROM " + PROCUREMENT_DETAILS_YEAR_MONTH_DAY + " WHERE BKGS = ? AND RQ >= ?"; @@ -234,9 +251,9 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { LOGGER.info("采购_年月日采购明细:{}物料采购月度汇总数据,板块公司:{},删除了{}条数据", startDate, bkgs, update); String querySql = "SELECT BKGS,DJRQ,WLMC, SUM(DHJE) AS tstotalAmount,SUM(JSHJHYF) AS lptotalAmount,SUM(RKSL) AS totalQuantity" + - "FROM BO_EU_DWD_ORDER_RKD_HZ WHERE BKGS = ? AND DJRQ >= ?" + - "GROUP BY WLMC,DJRQ" + - "ORDER BY DJRQ"; + " FROM BO_EU_DWD_ORDER_RKD_HZ WHERE BKGS = ? AND DJRQ >= ?" + + " GROUP BY WLMC,DJRQ" + + " ORDER BY DJRQ"; List dailyData = DBSql.getMaps(querySql, bkgs, startDate); // 批量插入 if (dailyData==null){ @@ -261,13 +278,19 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { if (wlmc.equals("乳液") || wlmc.equals("钛白粉") || wlmc.equals("重钙")) { double adjustedQuantity = safeTotalQuantity / 1000; summaryBO.set("CGZL", adjustedQuantity); + // 添加除零检查 if (safeTotalAmount != 0 && adjustedQuantity != 0) { avgPrice = safeTotalAmount / adjustedQuantity; + } else { + avgPrice = 0.0; } } else { summaryBO.set("CGZL", safeTotalQuantity); + // 添加除零检查 if (safeTotalAmount != 0 && safeTotalQuantity != 0) { avgPrice = safeTotalAmount / safeTotalQuantity; + } else { + avgPrice = 0.0; } } summaryBO.set("CGZE", safeTotalAmount); @@ -277,13 +300,19 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { if (wlmc.equals("乳液") || wlmc.equals("钛白粉") || wlmc.equals("重钙")) { double adjustedQuantity = safeTotalQuantity / 1000; summaryBO.set("CGZL", adjustedQuantity); + // 添加除零检查 if (safeTotalAmount != 0 && adjustedQuantity != 0) { avgPrice = safeTotalAmount / adjustedQuantity; + } else { + avgPrice = 0.0; } } else { summaryBO.set("CGZL", safeTotalQuantity); + // 添加除零检查 if (safeTotalAmount != 0 && safeTotalQuantity != 0) { avgPrice = safeTotalAmount / safeTotalQuantity; + } else { + avgPrice = 0.0; } } summaryBO.set("CGZE", safeTotalAmount); @@ -307,22 +336,24 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { * 根据年月汇总板块、基地、年月、当期、上期、同期数据 * @param startDate * @param bkgs - * @param distinctList + * @param */ - private void newmonthlyBaseSummaryBySegment(String startDate, String bkgs, List distinctList) { + private void newmonthlyBaseSummaryBySegment(String startDate, String bkgs) { try { LOGGER.info("开始计算{}物料采购各基地月度汇总数据,板块公司:{}", startDate, bkgs); - + LocalDate date = LocalDate.parse(startDate); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM"); + String yearMonth = date.format(formatter); // 1. 删除该月份已存在的汇总数据(避免重复) String deleteSql = "DELETE FROM " + JD_PROCUREMENT_DETAILS_YEAR_MONTH + " WHERE BKGS = ? AND YEARMONTH >= ?"; - int update = DBSql.update(deleteSql, new Object[]{bkgs, startDate}); - LOGGER.info("采购_基地_年月采购明细:{}物料采购月度汇总数据,板块公司:{},删除了{}条数据", startDate, bkgs, update); + int update = DBSql.update(deleteSql, new Object[]{bkgs, yearMonth}); + LOGGER.info("采购_基地_年月采购明细:{}年月物料采购月度汇总数据,板块公司:{},删除了{}条数据", yearMonth, bkgs, update); String currentMonthSql = "SELECT c.BKGS,c.DJRQ,c.YEARMONTH,c.WLMC,c.SLGC,c.tstotalAmount,c.lptotalAmount,c.totalQuantity," + " ly.tstotalAmount AS ly_tstotalAmount,ly.lptotalAmount AS ly_lptotalAmount,ly.totalQuantity AS ly_totalQuantity," + " lm.tstotalAmount AS lm_tstotalAmount,lm.lptotalAmount AS lm_lptotalAmount,lm.totalQuantity AS lm_totalQuantity " + - "FROM (" + + " FROM (" + " SELECT BKGS,MAX(DJRQ) AS DJRQ,YEARMONTH,WLMC,SLGC,SUM(DHJE) AS tstotalAmount," + " SUM(JSHJHYF) AS lptotalAmount,SUM(RKSL) AS totalQuantity,YEAR(DJRQ) AS Year,MONTH(DJRQ) AS Month " + " FROM BO_EU_DWD_ORDER_RKD_HZ " + @@ -334,16 +365,16 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { " FROM BO_EU_DWD_ORDER_RKD_HZ " + " WHERE BKGS = ? AND DJRQ >= DATE_SUB(?, INTERVAL 1 YEAR)" + " GROUP BY WLMC, SLGC, YEAR(DJRQ), MONTH(DJRQ) " + - ") ly ON c.WLMC = ly.WLMC AND c.SLGC = ly.SLGC AND c.Month = ly.Month AND ly.Year = c.Year - 1 " + + " ) ly ON c.WLMC = ly.WLMC AND c.SLGC = ly.SLGC AND c.Month = ly.Month AND ly.Year = c.Year - 1 " + " LEFT JOIN ( " + " SELECT WLMC,SLGC,SUM(DHJE) AS tstotalAmount,SUM(JSHJHYF) AS lptotalAmount,SUM(RKSL) AS totalQuantity, " + " YEAR(DJRQ) AS Year,MONTH(DJRQ) AS Month " + " FROM BO_EU_DWD_ORDER_RKD_HZ " + " WHERE BKGS = ? AND DJRQ >= DATE_SUB(?, INTERVAL 1 MONTH)" + " GROUP BY WLMC, SLGC, YEAR(DJRQ), MONTH(DJRQ) " + - ") lm ON c.WLMC = lm.WLMC AND c.SLGC = lm.SLGC " + + " ) lm ON c.WLMC = lm.WLMC AND c.SLGC = lm.SLGC " + " AND ((c.Month > 1 AND c.Year = lm.Year AND c.Month = lm.Month + 1) OR (c.Month = 1 AND c.Year = lm.Year + 1 AND lm.Month = 12)) " + - "ORDER BY c.YEARMONTH"; + " ORDER BY c.YEARMONTH"; List currentMonthData = DBSql.getMaps(currentMonthSql, bkgs, startDate, bkgs, startDate,bkgs, startDate); if (currentMonthData==null){ @@ -356,12 +387,14 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { String base = currentMonthRow.getString("SLGC"); String wlmc = currentMonthRow.getString("WLMC"); String bkgs1 = currentMonthRow.getString("BKGS"); - String yearMonth = currentMonthRow.getString("YEARMONTH"); + YearMonth yearMonths = YearMonth.parse(currentMonthRow.getString("YEARMONTH"), DateTimeFormatter.ofPattern("yyyyMM")); + DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM"); + String yearmonth1 = yearMonths.format(outputFormatter); BO summaryBO = new BO(); summaryBO.set("BKGS", bkgs1); summaryBO.set("JD", base); summaryBO.set("WLMC",wlmc); - summaryBO.set("YEARMONTH", yearMonth); + summaryBO.set("YEARMONTH", yearmonth1); double avgPrice = 0.0; double lyavgPrice = 0.0; double lmavgPrice = 0.0; @@ -373,19 +406,37 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { double lytotalQuantity = 0.00; double lmtotalQuantity = 0.00; if (wlmc.equals("乳液") || wlmc.equals("钛白粉") || wlmc.equals("重钙")) { - totalQuantity = BigDecimal.valueOf(currentMonthRow.getDouble("totalQuantity")) - .divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue(); - lytotalQuantity = BigDecimal.valueOf(currentMonthRow.getDouble("ly_totalQuantity")) - .divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue(); - lmtotalQuantity = BigDecimal.valueOf(currentMonthRow.getDouble("lm_totalQuantity")) - .divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue(); + double Quantity = currentMonthRow.getDouble("totalQuantity")==0.0?0.00:currentMonthRow.getDouble("totalQuantity"); + if (Quantity==0.0){ + totalQuantity=0.0; + }else { + totalQuantity = BigDecimal.valueOf(Quantity) + .divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue(); + } + double lyQuantity = currentMonthRow.getDouble("ly_totalQuantity")==0.0?0.00:currentMonthRow.getDouble("ly_totalQuantity"); + if (lyQuantity==0.0){ + lytotalQuantity = 0.0; + }else { + lytotalQuantity = BigDecimal.valueOf(lyQuantity) + .divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue(); + } + double lmQuantity = currentMonthRow.getDouble("lm_totalQuantity")==0.0?0.00:currentMonthRow.getDouble("lm_totalQuantity"); + if (lmQuantity==0.0){ + lmQuantity = 0.0; + }else { + lmtotalQuantity = BigDecimal.valueOf(lmQuantity) + .divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue(); + } summaryBO.set("CGZL", totalQuantity); summaryBO.set("TQCGZL", lytotalQuantity); summaryBO.set("SQCGZL", lmtotalQuantity); }else { - totalQuantity = BigDecimal.valueOf(currentMonthRow.getDouble("totalQuantity")).doubleValue(); - lytotalQuantity = BigDecimal.valueOf(currentMonthRow.getDouble("ly_totalQuantity")).doubleValue(); - lmtotalQuantity = BigDecimal.valueOf(currentMonthRow.getDouble("lm_totalQuantity")).doubleValue(); + double Quantity = currentMonthRow.getDouble("totalQuantity")==0.0?0.00:currentMonthRow.getDouble("totalQuantity"); + totalQuantity = BigDecimal.valueOf(Quantity).doubleValue(); + double lyQuantity = currentMonthRow.getDouble("ly_totalQuantity")==0.0?0.00:currentMonthRow.getDouble("ly_totalQuantity"); + lytotalQuantity = BigDecimal.valueOf(lyQuantity).doubleValue(); + double lmQuantity = currentMonthRow.getDouble("lm_totalQuantity")==0.0?0.00:currentMonthRow.getDouble("lm_totalQuantity"); + lmtotalQuantity = BigDecimal.valueOf(lmQuantity).doubleValue(); summaryBO.set("CGZL", totalQuantity); summaryBO.set("TQCGZL", lytotalQuantity); summaryBO.set("SQCGZL", lmtotalQuantity); @@ -399,15 +450,15 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { } //同期 if (lytotalAmount != 0 && lytotalQuantity != 0) { - lyavgPrice = BigDecimal.valueOf(totalAmount) - .divide(BigDecimal.valueOf(totalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue(); + lyavgPrice = BigDecimal.valueOf(lytotalAmount) + .divide(BigDecimal.valueOf(lytotalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue(); } else { lyavgPrice = 0; } //上期 if (lmtotalAmount != 0 && lmtotalQuantity != 0) { - lmavgPrice = BigDecimal.valueOf(totalAmount) - .divide(BigDecimal.valueOf(totalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue(); + lmavgPrice = BigDecimal.valueOf(lmtotalAmount) + .divide(BigDecimal.valueOf(lmtotalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue(); } else { lmavgPrice = 0; } @@ -415,26 +466,44 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { summaryBO.set("TQCGZE", lytotalAmount); summaryBO.set("SQCGZE", lmtotalAmount); }else { - double totalAmount = currentMonthRow.getDouble("lptotalAmount"); - double lytotalAmount = currentMonthRow.getDouble("ly_lptotalAmount"); - double lmtotalAmount = currentMonthRow.getDouble("lm_lptotalAmount"); + double totalAmount = currentMonthRow.getDouble("lptotalAmount")==0.0?0.0:currentMonthRow.getDouble("lptotalAmount"); + double lytotalAmount = currentMonthRow.getDouble("ly_lptotalAmount")==0.0?0.0:currentMonthRow.getDouble("ly_lptotalAmount"); + double lmtotalAmount = currentMonthRow.getDouble("lm_lptotalAmount")==0.0?0.0:currentMonthRow.getDouble("lm_lptotalAmount"); double totalQuantity = 0.00; double lytotalQuantity = 0.00; double lmtotalQuantity = 0.00; if (wlmc.equals("乳液") || wlmc.equals("钛白粉") || wlmc.equals("重钙")) { - totalQuantity = BigDecimal.valueOf(currentMonthRow.getDouble("totalQuantity")) - .divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue(); - lytotalQuantity = BigDecimal.valueOf(currentMonthRow.getDouble("ly_totalQuantity")) - .divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue(); - lmtotalQuantity = BigDecimal.valueOf(currentMonthRow.getDouble("lm_totalQuantity")) - .divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue(); + double Quantity = currentMonthRow.getDouble("totalQuantity")==0.0?0.0:currentMonthRow.getDouble("totalQuantity"); + if (Quantity==0.00) { + totalQuantity = 0.0; + }else { + totalQuantity = BigDecimal.valueOf(Quantity) + .divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue(); + } + double lyQuantity = currentMonthRow.getDouble("ly_totalQuantity")==0.0?0.0:currentMonthRow.getDouble("ly_totalQuantity"); + if (lyQuantity==0.0){ + lytotalQuantity = 0.0; + }else { + lytotalQuantity = BigDecimal.valueOf(lyQuantity) + .divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue(); + } + double lmQuantity = currentMonthRow.getDouble("lm_totalQuantity")==0.0?0.0:currentMonthRow.getDouble("lm_totalQuantity"); + if (lmQuantity==0.0){ + lmtotalQuantity = 0.0; + }else { + lmtotalQuantity = BigDecimal.valueOf(lmQuantity) + .divide(BigDecimal.valueOf(1000), 4, BigDecimal.ROUND_HALF_UP).doubleValue(); + } summaryBO.set("CGZL", totalQuantity); summaryBO.set("TQCGZL", lytotalQuantity); summaryBO.set("SQCGZL", lmtotalQuantity); }else { - totalQuantity = BigDecimal.valueOf(currentMonthRow.getDouble("totalQuantity")).doubleValue(); - lytotalQuantity = BigDecimal.valueOf(currentMonthRow.getDouble("ly_totalQuantity")).doubleValue(); - lmtotalQuantity = BigDecimal.valueOf(currentMonthRow.getDouble("lm_totalQuantity")).doubleValue(); + double Quantity = currentMonthRow.getDouble("totalQuantity")==0.0?0.0:currentMonthRow.getDouble("totalQuantity"); + double lyQuantity = currentMonthRow.getDouble("ly_totalQuantity")==0.0?0.0:currentMonthRow.getDouble("ly_totalQuantity"); + double lmQuantity = currentMonthRow.getDouble("lm_totalQuantity")==0.0?0.0:currentMonthRow.getDouble("lm_totalQuantity"); + totalQuantity = BigDecimal.valueOf(Quantity).doubleValue(); + lytotalQuantity = BigDecimal.valueOf(lyQuantity).doubleValue(); + lmtotalQuantity = BigDecimal.valueOf(lmQuantity).doubleValue(); summaryBO.set("CGZL", totalQuantity); summaryBO.set("TQCGZL", lytotalQuantity); summaryBO.set("SQCGZL", lmtotalQuantity); @@ -448,15 +517,15 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { } //同期 if (lytotalAmount != 0 && lytotalQuantity != 0) { - lyavgPrice = BigDecimal.valueOf(totalAmount) - .divide(BigDecimal.valueOf(totalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue(); + lyavgPrice = BigDecimal.valueOf(lytotalAmount) + .divide(BigDecimal.valueOf(lytotalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue(); } else { lyavgPrice = 0; } //上期 if (lmtotalAmount != 0 && lmtotalQuantity != 0) { - lmavgPrice = BigDecimal.valueOf(totalAmount) - .divide(BigDecimal.valueOf(totalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue(); + lmavgPrice = BigDecimal.valueOf(lmtotalAmount) + .divide(BigDecimal.valueOf(lmtotalQuantity), 2, BigDecimal.ROUND_HALF_UP).doubleValue(); } else { lmavgPrice = 0; } @@ -487,23 +556,26 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { * 逻辑:按物料名称(WLMC)分组,计算月度采购总额(SUM(JSHJ))、采购总量(SUM(YSSL))和平均单价(采购总额/采购总量) * @param startDate * @param bkgs - * @param distinctList + * @param */ - private void newmonthlyMaterialSummaryBySegment(String startDate, String bkgs, List distinctList) { + private void newmonthlyMaterialSummaryBySegment(String startDate, String bkgs) { try { LOGGER.info("开始计算{}物料采购月度汇总数据,板块公司:{}", startDate, bkgs); + LocalDate date = LocalDate.parse(startDate); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM"); + String yearMonth = date.format(formatter); // 1. 删除该月份已存在的汇总数据(避免重复) String deleteSql = "DELETE FROM " + PROCUREMENT_DETAILS_YEAR_MONTH + " WHERE BKGS = ? AND YEARMONTH >= ?"; - int update = DBSql.update(deleteSql, new Object[]{bkgs, startDate}); - LOGGER.info("采购_年月采购明细:{}物料采购月度汇总数据,板块公司:{},删除了{}条数据",startDate, bkgs, update); + int update = DBSql.update(deleteSql, new Object[]{bkgs, yearMonth}); + LOGGER.info("采购_年月采购明细:{}年月物料采购月度汇总数据,板块公司:{},删除了{}条数据",yearMonth, bkgs, update); String currentMonthSql = "SELECT CONCAT(c.Year, '-', LPAD(c.Month, 2, '0')) ASyear_month,c.Year AS year,c.Month AS month,c.WLMC AS WLMC," + " c.tstotalAmount AS tstotalAmount,c.lptotalAmount AS lptotalAmount,c.totalQuantity AS totalQuantity," + " ly.tstotalAmount AS LY_tstotalAmount,ly.lptotalAmount AS LY_lptotalAmount,ly.totalQuantity AS LY_totalQuantity," + " lm.tstotalAmount AS LM_tstotalAmount,lm.lptotalAmount AS LM_lptotalAmount,lm.totalQuantity AS LM_totalQuantity" + - "FROM (" + + " FROM (" + " SELECT WLMC,SUM(DHJE) AS tstotalAmount,SUM(JSHJHYF) AS lptotalAmount,SUM(RKSL) AS totalQuantity," + " YEAR(DJRQ) AS Year,MONTH(DJRQ) AS Month" + " FROM BO_EU_DWD_ORDER_RKD_HZ" + @@ -525,7 +597,7 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { " ) lm ON c.WLMC = lm.WLMC" + " AND ((c.Month > 1 AND c.Year = lm.Year AND c.Month = lm.Month + 1)" + " OR (c.Month = 1 AND c.Year = lm.Year + 1 AND lm.Month = 12))" + - "WHERE c.Year = YEAR(?) ORDER BY c.Year, c.Month"; + " WHERE c.Year = YEAR(?) ORDER BY c.Year, c.Month"; List currentMonthData = DBSql.getMaps(currentMonthSql, bkgs, startDate,bkgs,startDate,bkgs,startDate,startDate); if (currentMonthData==null){ 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/SaleDataSyncServiceImpl.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/SaleDataSyncServiceImpl.java index 5c7a5a2..cdb6205 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/SaleDataSyncServiceImpl.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/SaleDataSyncServiceImpl.java @@ -278,7 +278,7 @@ public class SaleDataSyncServiceImpl implements DataSyncService { " WHERE " + conditionBuilder.toString() + orderByBuilder.toString(); // 添加排序子句 - LOGGER.debug("执行Oracle查询: {}", querySql); + LOGGER.info("执行Oracle查询: {}", querySql); List pageData; // 根据条件类型执行查询 diff --git a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/util/SaleUtil.java b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/util/SaleUtil.java index e9f90ad..bee7a5e 100644 --- a/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/util/SaleUtil.java +++ b/com.awspaas.user.apps.bnbm.datalinkup/com.awspaas.user.apps.bnbm.datalinkup/src/main/java/com/awspaas/user/apps/bnbm/datalinkup/util/SaleUtil.java @@ -74,7 +74,7 @@ public class SaleUtil { String sfjc = ""; BO bo_eu_1755768181783 = SDK.getBOAPI().query("BO_EU_1755768181783").addQuery("F_D2IYKX5I = ", sf).detail(); if (bo_eu_1755768181783==null){ - sfjc = "其他"; + sfjc = sf; }else { sfjc = bo_eu_1755768181783.getString("SQ_SHORT"); }