From f85d62d3940e582e1905c6381ba4ccb46f2f8370 Mon Sep 17 00:00:00 2001 From: llllon Date: Wed, 10 Sep 2025 09:21:13 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=94=80=E5=94=AEBI=E6=B1=87?= =?UTF-8?q?=E6=80=BBsql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PurchaseDataSummaryServiceImpl.class | Bin 33139 -> 33133 bytes .../service/impl/SaleCountDimensionImpl.class | Bin 38612 -> 39876 bytes .../compileJava/previous-compilation-data.bin | Bin 9392556 -> 9392556 bytes .../impl/PurchaseDataSummaryServiceImpl.java | 6 +- .../service/impl/SaleCountDimensionImpl.java | 80 +++++++++++++++--- 5 files changed, 70 insertions(+), 16 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 535ba6efd0f5756e60e3d05cb1d15cfadc541e67..85fc6aece3c931435f136d8be9880e7a52f99353 100644 GIT binary patch delta 7955 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 H-&_5^En)~> delta 7840 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 z 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 NDWkf9GMuK@{{e2ff=>Vd 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 5f71c4a123b0a1549febfe7a3ee1c180505e4bf6..85726f9791fb0b5e2a8df60a21729d2f41598fd9 100644 GIT binary patch delta 751 zcmZY5O)!)J0LJn0vb(;$t0YQ-o%isY=ky$&XYTWo-yB93#s0d?NX4)Ejla8J zCfxdOtFC36j~KN2!@Owx{!jI@$}VTuejU>bTG2SYtr!i{xwU$gW4zI_(CZN-kKlv<=?gz7po9wkvPTHm@bzj+YsvrwA_&0T;HkhOpof_ddfP;v@Aw=RZq7aQEIEok?LoDKO9Pvm%qP(Kh z>@|3emE2AZl8}rOIEhn8K`PRaj?>71R(3lxn|Hh(maLO!kcDjIAQyQ!i*v|F0nS5* z3%Ce9F5xn+pb$kUh5<&DpcE#Qp&VCn4HYn>5*A!X6>gv!HL&6)Zs9iW;4W%$4|TYY z2Y85jJi=of+P%0oG$fPoo>b~PBpJt zmlHOYHk%y8E~V~B|Lf$q;K%8l`Ou`E)eBML*FBq8|6V|IO7Xr+%yOvf?2up(XG~{b z!nP*YevT(4AAbAOFl-ehtKfk1R6q$wsNjSPvQ=>YtFXJ2c2v%|2p3#}E8O4?QQlE` z9K_mHleV=U@Wf?Yffu~tgR8iP>+ppi{BZ*}aSH(m#BBu0+gkNMv)x!}cR`I{+(8KL zLW59*Asi8i#63jGy9?1Rr*)*EaDK41Uy0_9z%;H=%7b3Qjm%?q$2~F z$U-)9kc&Lz;|U5-h$0ljfD)9V3{UY4MwFuhm8e2BYETOko}&)+Xuu1+L?g_2g(ftk z1+USHHnignI?#!?=t4Jo(2G92!+U%{KL#*}Aq?XqKH)PYj9?UF7{>%AWus-PXz4%2 CKwTaH 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/PurchaseDataSummaryServiceImpl.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/PurchaseDataSummaryServiceImpl.java index 232e3e3..0ceff8b 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/PurchaseDataSummaryServiceImpl.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/PurchaseDataSummaryServiceImpl.java @@ -81,7 +81,7 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { 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, distinctList); // 2. 根据年月汇总板块、基地、年月、当期、上期、同期数据 // monthlyBaseSummaryBySegment(year, month, yearMonth, yearLastMonth, lastYearMonth, bkgs, distinctList); @@ -98,7 +98,7 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { dateRange.getStartDate(), dateRange.getEndDate()); String startDate = DATE_FORMAT.format(dateRange.getStartDate()); //计算并保存各板块物料采购总额、总量、单价(按月存储) - newmonthlyMaterialSummaryBySegment(startDate, bkgs, distinctList); +// newmonthlyMaterialSummaryBySegment(startDate, bkgs, distinctList); // 计算月度维度数据(按月遍历) calculateMonthlyData(dateRange, bkgs, distinctList); @@ -287,7 +287,7 @@ public class PurchaseDataSummaryServiceImpl implements DataSummaryService { Date currentDate = new Date(System.currentTimeMillis()); // 1. 计算并保存各板块物料采购总额、总量、单价(按月存储) -// monthlyMaterialSummaryBySegment(year, month, yearMonth, yearLastMonth, lastYearMonth, bkgs, distinctList); + monthlyMaterialSummaryBySegment(year, month, yearMonth, yearLastMonth, lastYearMonth, bkgs, distinctList); // 2. 根据年月汇总板块、基地、年月、当期、上期、同期数据 monthlyBaseSummaryBySegment(year, month, yearMonth, yearLastMonth, lastYearMonth, bkgs, distinctList); 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 f5c5c72..6b0fa8b 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 @@ -17,6 +17,8 @@ import java.sql.Connection; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.time.LocalDate; +import java.time.YearMonth; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -134,8 +136,10 @@ public class SaleCountDimensionImpl implements DataSummaryService { throw e; } - String sql = "SELECT t.RQ,t.QYGS,t.XSZZ,t.SHENGQU,t.SHIQU,t.QX,t.QCYE,t.LJXS,t.LJHK,t.YSYE," + - " t.ZLFX0_60,t.ZLFX60_1,t.ZLFX1_2,t.ZLFX2_3,t.ZLFX3_4,t.ZLFX4_5,t.ZLFX5" + + String sql = "SELECT t.RQ AS RQ,t.QYGS AS QYGS,t.XSZZ AS XSZZ,t.SHENGQU AS SHENGQU,t.SHIQU AS SHIQU," + + " t.QX AS QX,t.QCYE AS QCYE,t.LJXS AS LJXS,t.LJHK AS LJHK,t.YSYE AS YSYE," + + " t.ZLFX0_60 AS ZLFX0_60,t.ZLFX60_1 AS ZLFX60_1,t.ZLFX1_2 AS ZLFX1_2,t.ZLFX2_3 AS ZLFX2_3," + + " t.ZLFX3_4 AS ZLFX3_4,t.ZLFX4_5 AS ZLFX4_5,t.ZLFX5 AS ZLFX5" + " FROM BO_EU_BNBM_DATALINKUP_XS_YSL t" + " INNER JOIN (" + " SELECT QYGS,SHIQU,MAX(RQ) AS MaxRQ,YEAR(RQ) AS Year,MONTH(RQ) AS Month" + @@ -171,10 +175,11 @@ public class SaleCountDimensionImpl implements DataSummaryService { for (RowMap map : maps) { String xszz = map.getString("XSZZ"); String rq = map.getString("RQ"); + String qygs = map.getString("QYGS"); BO bo = new BO(); bo.set("YEARMONTH", rq.substring(0, 7)); bo.set("BKGS", bkgs); - bo.set("QYGS", map.getString("QYGS")); + bo.set("QYGS", qygs); bo.set("GC", xszz); bo.set("SQ", map.getString("SHENGQU")); bo.set("CITY", map.getString("SHIQU")); @@ -195,6 +200,15 @@ public class SaleCountDimensionImpl implements DataSummaryService { bo.set("ZL3_4", map.getDouble("ZLFX3_4")); bo.set("ZL4_5", map.getDouble("ZLFX4_5")); bo.set("ZL5", map.getDouble("ZLFX5")); + +// LocalDate parse = LocalDate.parse(rq,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss .S")); +// YearMonth yearMonth = YearMonth.of(parse.getYear(), parse.getMonthValue()); +// LocalDate lastYear = yearMonth.atEndOfMonth(); +// RowMap map1 = DBSql.getMap("SELECT YSYE FROM BO_EU_BNBM_DATALINKUP_XS_YSL WHERE RQ = '" + lastYear.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + "'" + +// " WHERE QYGS = '" + qygs + "' AND BKGS = '" + bkgs + "' AND XSZZ = '" + xszz + "'"); +// if (map1!=null) { +// bo.set("QNTQYSZE", map.getDouble("QNTQYSZE")); +// } bos.add(bo); } @@ -235,8 +249,8 @@ public class SaleCountDimensionImpl implements DataSummaryService { try { // 第一个SQL:查询应收账款数据 - String receivableSql = "SELECT t1.XSZZ AS XSZZ, t1.QYGS AS QYGS, t1.BKGS AS BKGS," + - " DATE_FORMAT( t1.RQ, '%Y-%m' ) ASyear_month, t1.RQ AS max_rq, SUM( t1.YSYE ) AS YSZK," + + String receivableSql = "SELECT t1.RQ AS RQ, t1.XSZZ AS XSZZ, t1.QYGS AS QYGS, t1.BKGS AS BKGS," + + " DATE_FORMAT( t1.RQ, '%Y-%m' ) ASyear_month, t1.RQ AS max_rq, (SUM( t1.YSYE )/1000) AS YSZK," + " SUM(t1.LJHK) AS LJHK,SUM(t1.LJXS) AS LJXS," + " CASE " + " WHEN SUM(t1.LJXS) != 0 THEN SUM(t1.LJHK) / SUM(t1.LJXS)" + @@ -252,7 +266,6 @@ public class SaleCountDimensionImpl implements DataSummaryService { " WHERE t1.RQ >= ? AND t1.RQ < ? AND t1.BKGS = ?" + " GROUP BY t1.QYGS,t1.BKGS,DATE_FORMAT ( t1.RQ, '%Y-%m' ),t1.RQ"; - String startDate = DATE_FORMAT.format(dateRange.getStartDate()); String endDate = DATE_FORMAT.format(dateRange.getEndDate()); @@ -292,7 +305,7 @@ public class SaleCountDimensionImpl implements DataSummaryService { String inClause = xszzList.stream() .map(s -> "'" + s.replace("'", "''") + "'") // 转义单引号防止SQL注入 .collect(Collectors.joining(",")); - String inventorySql = "SELECT STOCKORGNAME, SUM(BALANCE_AMOUNT) as KCJE " + + String inventorySql = "SELECT STOCKORGNAME, (SUM(BALANCE_AMOUNT)/10000) as KCJE " + " FROM " + BO_EU_DWD_ORDER_KC_HZ + " " + " WHERE STOCKORGNAME IN (" + inClause + ") " + " AND CATEGORY = '产成品' " + @@ -313,9 +326,11 @@ public class SaleCountDimensionImpl implements DataSummaryService { } BO bo = new BO(); + String qygs = receivable.getString("QYGS"); + String rq = receivable.getString("RQ"); bo.set("YEARMONTH", year_month); bo.set("BKGS", bkgs); - bo.set("QYGS", receivable.getString("QYGS")); + bo.set("QYGS", qygs); bo.set("YSZK", yszk); bo.set("CCJE", kcje); bo.set("LJHK", receivable.getString("LJHK")); @@ -323,6 +338,14 @@ public class SaleCountDimensionImpl implements DataSummaryService { bo.set("HKL", receivable.getString("HKL")); //增加额度使用率情况 bo.set("EDSYL", SaleUtil.calculateResult(sxedList,bkgs,receivable.getString("QYGS"),yszk)); +// LocalDate parse = LocalDate.parse(rq,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S")); +// YearMonth yearMonth = YearMonth.of(parse.getYear(), parse.getMonthValue()); +// LocalDate lastYear = yearMonth.atEndOfMonth(); +// RowMap map = DBSql.getMap("SELECT (SUM( t1.YSYE )/1000) AS YSZK FROM BO_EU_BNBM_DATALINKUP_XS_YSL" + +// " WHERE QYGS = '" + qygs + "' AND BKGS = '" + bkgs + "' AND RQ = '" + lastYear.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + "'"); +// if (map!=null) { +// bo.set("QYTQYSZK", map.getString("YSZK")); +// } bos.add(bo); } @@ -374,7 +397,7 @@ public class SaleCountDimensionImpl implements DataSummaryService { (existing, replacement) -> existing )); - String querySql = "SELECT QYGS, KCZZ, LB_1, LB_2, LB_3, SQ, CS, QY, SUM(ZSSL) AS XL," + + String querySql = "SELECT DZRQ,QYGS, KCZZ, LB_1, LB_2, LB_3, SQ, CS, QY, SUM(ZSSL) AS XL," + " SUM(SSJERMB) AS XE, SUM(XSSL) AS TSXL, NMNY ,YEARMONTH" + " FROM " + SALES_DETAIL_TABLE + " WHERE DZRQ >= ? AND DZRQ < ? AND BKGS = ?" + @@ -391,14 +414,17 @@ public class SaleCountDimensionImpl implements DataSummaryService { // 循环外先获取下公装家装、基材面材类别 List gzjzList = SDK.getBOAPI().query("BO_EU_DATALINKUP_CPJZGZJCMC").orderBy("CPLB_L2").desc().list(); for (RowMap map : maps) { + String dzrq = map.getString("DZRQ"); String gc = map.getString("KCZZ"); String yearmonth = map.getString("YEARMONTH"); + String qygs = map.getString("QYGS"); + String lb_1 = map.getString("LB_1"); BO bo = new BO(); bo.set("YEARMONTH", yearmonth.substring(0, 4) + "-" + yearmonth.substring(4)); bo.set("BKGS", bkgs); - bo.set("QYGS", map.getString("QYGS")); + bo.set("QYGS", qygs); bo.set("GC", gc); - bo.set("LB_1", map.getString("LB_1")); + bo.set("LB_1",lb_1 ); bo.set("LB_2", map.getString("LB_2")); bo.set("LB_3", map.getString("LB_3")); bo.set("SQ", map.getString("SQ")); @@ -409,14 +435,28 @@ public class SaleCountDimensionImpl implements DataSummaryService { bo.set("JD", location.getLongitude()); bo.set("WD", location.getLatitude()); } + String querySql2 = "SELECT SUM(ZSSL) AS XL,SUM(SSJERMB) AS XE, SUM(XSSL) AS TSXL" + + " FROM " + SALES_DETAIL_TABLE + + " WHERE DZRQ = ? AND BKGS = ? AND QYGS = ? AND KCZZ = ? AND LB_1 = ?"; +// LocalDate parse = LocalDate.parse(dzrq,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S")); +// YearMonth yearMonth = YearMonth.of(parse.getYear(), parse.getMonthValue()); +// LocalDate lastYear = yearMonth.atEndOfMonth(); +// RowMap map1 = DBSql.getMap(querySql2, lastYear.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), bkgs, qygs, gc, lb_1); if ("石膏板".equals(map.getString("LB_1"))){ bo.set("XL", map.getDouble("TSXL")); +// if (map1!=null) { +// bo.set("SNTQXL", map1.getString("TSXL")); +// } }else { bo.set("XL", map.getDouble("XL")); +// if (map1!=null) { +// bo.set("SNTQXL", map1.getString("XL")); +// } } Double ssjermb = map.getDouble("SSJERMB"); Double xe = map.getDouble("XE"); bo.set("XE", ssjermb!=null?ssjermb:xe!=null?(xe*0.13):0.00); +// bo.set("SNTQXE", map1.getString("XE")); // 匹配公装家装类别,如果未匹配到,则默认未其他 String[] gzjzStrings = SaleUtil.matchSingleField(bkgs, map.getString("LB_1"), map.getString("LB_2"), gzjzList, "其他", "其他","其他"); bo.set("JZ_GZ", gzjzStrings[0]); @@ -471,7 +511,7 @@ public class SaleCountDimensionImpl implements DataSummaryService { (existing, replacement) -> existing )); - String querySql = "SELECT QYGS, KCZZ, LB_1, LB_2, LB_3, SQ, CS, QY, SUM(NMNY) as BHSYYSR, SUM(SSJERMB) AS YYSR, YEARMONTH" + + String querySql = "SELECT DZRQ, QYGS, KCZZ, LB_1, LB_2, LB_3, SQ, CS, QY, SUM(NMNY) as BHSYYSR, SUM(SSJERMB) AS YYSR, YEARMONTH" + " FROM " + SALES_DETAIL_TABLE + " WHERE DZRQ >= ? AND DZRQ < ? AND BKGS = ?" + " GROUP BY QYGS, KCZZ, LB_1, LB_2, LB_3, SQ, CS, QY, YEARMONTH"; @@ -487,6 +527,9 @@ public class SaleCountDimensionImpl implements DataSummaryService { for (RowMap map : maps) { String gc = map.getString("KCZZ"); String yearmonth = map.getString("YEARMONTH"); + String dzrq = map.getString("DZRQ"); + String qygs = map.getString("QYGS"); + String sq = map.getString("SQ"); BO bo = new BO(); bo.set("YEARMONTH", yearmonth.substring(0, 4) + "-" + yearmonth.substring(4)); bo.set("BKGS", bkgs); @@ -495,7 +538,7 @@ public class SaleCountDimensionImpl implements DataSummaryService { bo.set("LB_1", map.getString("LB_1")); bo.set("LB_2", map.getString("LB_2")); bo.set("LB_3", map.getString("LB_3")); - bo.set("SQ", map.getString("SQ")); + bo.set("SQ", sq); bo.set("CITY", map.getString("CS")); bo.set("QX", map.getString("QY")); if (resultMap.containsKey(gc)) { @@ -505,6 +548,17 @@ public class SaleCountDimensionImpl implements DataSummaryService { } bo.set("YYSR", map.getDouble("YYSR")); bo.set("BHSYYSR", map.getDouble("BHSYYSR")); + String querySql2 = "SELECT SUM(NMNY) as BHSYYSR, SUM(SSJERMB) AS YYSR" + + " FROM " + SALES_DETAIL_TABLE + + " WHERE DZRQ = ? AND BKGS = ? AND QYGS = ? AND KCZZ = ? AND SQ = ?"; +// LocalDate parse = LocalDate.parse(dzrq,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S")).minusYears(1); +// YearMonth yearMonth = YearMonth.of(parse.getYear(), parse.getMonthValue()); +// LocalDate lastYear = yearMonth.atEndOfMonth(); +// RowMap map1 = DBSql.getMap(querySql2, lastYear.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")), bkgs, qygs, gc, sq); +// if (map1!=null) { +// bo.set("QNTQYYSR", map1.getDouble("YYSR")); +// bo.set("QNTQBHSYYSR", map1.getDouble("BHSYYSR")); +// } bos.add(bo); }