From 66028bf17aff82654451657ff298752f7d01b2d8 Mon Sep 17 00:00:00 2001 From: king Date: Thu, 12 Mar 2026 10:26:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A1=E7=AE=97=E9=94=80=E5=94=AE=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8-=E5=A2=9E=E5=8A=A0=E8=AE=A1=E7=AE=97=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=20=20=E6=9C=AC=E6=9C=88=E6=AF=9B=E5=88=A9=E7=8E=87?= =?UTF-8?q?=EF=BC=8C=E6=9C=AC=E5=B9=B4=E6=AF=9B=E5=88=A9=E7=8E=87=EF=BC=8C?= =?UTF-8?q?=E4=B8=8A=E5=B9=B4=E6=AF=9B=E5=88=A9=E7=8E=87=EF=BC=8C=E6=9C=AC?= =?UTF-8?q?=E6=9C=88=E9=94=80=E5=94=AE=E9=87=91=E9=A2=9D=E5=8D=A0=E6=AF=94?= =?UTF-8?q?=EF=BC=8C=E6=9C=AC=E5=B9=B4=E9=94=80=E5=94=AE=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E5=8D=A0=E6=AF=94=EF=BC=8C=E4=B8=8A=E5=B9=B4=E9=94=80=E5=94=AE?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E5=8D=A0=E6=AF=94=EF=BC=8C=E6=9C=AC=E6=9C=88?= =?UTF-8?q?=E6=AF=9B=E5=88=A9=E9=A2=9D=E5=8D=A0=E6=AF=94=EF=BC=8C=E6=9C=AC?= =?UTF-8?q?=E5=B9=B4=E6=AF=9B=E5=88=A9=E9=A2=9D=E5=8D=A0=E6=AF=94=EF=BC=8C?= =?UTF-8?q?=E4=B8=8A=E5=B9=B4=E6=AF=9B=E5=88=A9=E9=A2=9D=E5=8D=A0=E6=AF=94?= =?UTF-8?q?=EF=BC=8C=E9=94=80=E5=94=AE=E9=87=91=E9=A2=9D=E5=A2=9E=E9=95=BF?= =?UTF-8?q?=E7=8E=87=EF=BC=8C=E6=AF=9B=E5=88=A9=E9=A2=9D=E5=A2=9E=E9=95=BF?= =?UTF-8?q?=E7=8E=87=EF=BC=8C=E6=AF=9B=E5=88=A9=E5=8F=98=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/mapper/GrBiSaAggMapper.java | 6 ++ .../service/impl/GrBiSaAggServiceImpl.java | 5 + .../mapper/framework/GrBiSaAggMapper.xml | 100 ++++++++++++++++++ 3 files changed, 111 insertions(+) diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/GrBiSaAggMapper.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/GrBiSaAggMapper.java index 89b1f1b..960290e 100644 --- a/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/GrBiSaAggMapper.java +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/mapper/GrBiSaAggMapper.java @@ -22,4 +22,10 @@ public interface GrBiSaAggMapper extends BaseMapper { void updateThisData(); void updateLastData(); + + void updateComplexCalculate1(); + void updateComplexCalculate2(); + void updateComplexCalculate3(); + void updateComplexCalculate4(); + void updateComplexCalculate5(); } diff --git a/lidee-core/src/main/java/com/lideeyunji/core/framework/service/impl/GrBiSaAggServiceImpl.java b/lidee-core/src/main/java/com/lideeyunji/core/framework/service/impl/GrBiSaAggServiceImpl.java index 8d033e2..fbf95bb 100644 --- a/lidee-core/src/main/java/com/lideeyunji/core/framework/service/impl/GrBiSaAggServiceImpl.java +++ b/lidee-core/src/main/java/com/lideeyunji/core/framework/service/impl/GrBiSaAggServiceImpl.java @@ -63,6 +63,11 @@ public class GrBiSaAggServiceImpl extends ServiceImpl + + + + -- 本月毛利率 MONTHPROFITRATE 本月销售毛利/本月销售收入×100% + -- 本年毛利率 THISPROFITRATE 本年销售毛利/本年销售收入×100% + -- 上年毛利率 LASTPROFITRATE 上年销售毛利/上年销售收入×100% + UPDATE yunji_gr_bi_sa_agg + SET + MONTHPROFITRATE = CASE WHEN MONTHSAMONEY = 0 or MONTHSAMONEY is null THEN + 100 ELSE MONTHPROFIT/ MONTHSAMONEY * 100 END, + THISPROFITRATE = CASE WHEN THISSAMONEY = 0 or THISSAMONEY is null THEN + 100 ELSE THISPROFIT/ THISSAMONEY * 100 END, + LASTPROFITRATE =CASE WHEN LASTSAMONEY = 0 or LASTSAMONEY is null THEN + 100 ELSE LASTPROFIT/ LASTSAMONEY * 100 END; + + + + + -- 本月销售金额占比 MONTHSAMONEYSHARE 当前行本月销售额/本月销售额总和*100% + -- 本月毛利额占比 MONTHPROFITSHARE 当前行本月毛利额/本月毛利额总和*100% + UPDATE yunji_gr_bi_sa_agg a + LEFT JOIN ( + SELECT + USEYEAR, + USEMONTH, + SUM( MONTHSAMONEY ) AS MONTHSAMONEY_SUM, + SUM(MONTHPROFIT) AS MONTHPROFIT_SUM + FROM + yunji_gr_bi_sa_agg + GROUP BY + USEYEAR, + USEMONTH + ) b ON b.USEYEAR = a.USEYEAR + AND b.USEMONTH = a.USEMONTH + SET a.MONTHSAMONEYSHARE = COALESCE (ROUND( a.MONTHSAMONEY/b.MONTHSAMONEY_SUM * 100, 2), 0 ), + a.MONTHPROFITSHARE = COALESCE (ROUND( a.MONTHPROFIT/b.MONTHPROFIT_SUM * 100, 2), 0 ); + + + + -- 本年销售金额占比 THISSAMONEYSHARE当前行本年销售额/本年销售额总和*100% + -- 本年毛利额占比 THISPROFITSHARE 当前行本年毛利额/本年毛利额总和*100% + UPDATE yunji_gr_bi_sa_agg a + LEFT JOIN ( + SELECT + USEYEAR, + SUM( THISSAMONEY ) AS THISSAMONEY_SUM, + SUM( THISPROFIT ) AS THISPROFIT_SUM + FROM + yunji_gr_bi_sa_agg + GROUP BY + USEYEAR + ) b ON b.USEYEAR = a.USEYEAR + SET a.THISSAMONEYSHARE = COALESCE (ROUND( a.THISSAMONEY/b.THISSAMONEY_SUM * 100, 2), 0 ), + a.THISPROFITSHARE = COALESCE (ROUND( a.THISPROFIT/b.THISPROFIT_SUM * 100, 2), 0 ); + + + + + -- 上年销售金额占比 LASTSAMONEYSHARE 当前行上年销售额/上年销售额总和*100% + -- 上年毛利额占比 LASTPROFITSHARE 当前行上年毛利额/上年毛利额总和*100% + UPDATE yunji_gr_bi_sa_agg a + LEFT JOIN ( + SELECT + USEYEAR, + SUM(LASTSAMONEY) AS LASTSAMONEY_SUM, + SUM(LASTPROFIT) AS LASTPROFIT_SUM + + FROM + yunji_gr_bi_sa_agg + GROUP BY + USEYEAR, + USEMONTH + ) b ON b.USEYEAR = a.USEYEAR + SET a.LASTSAMONEYSHARE = COALESCE (ROUND( CASE WHEN LASTSAMONEY_SUM = 0 or LASTSAMONEY_SUM is null THEN 1 ELSE a.LASTSAMONEY/b.LASTSAMONEY_SUM * 100 END, 2), 0 ), + a.LASTPROFITSHARE = COALESCE (ROUND( CASE WHEN LASTPROFIT_SUM = 0 or LASTPROFIT_SUM is null THEN 1 ELSE a.LASTPROFIT/b.LASTPROFIT_SUM * 100 END, 2), 0 ); + + + + -- 销售金额增长率 SAMONEYGROWTH (本年销售额-上年销售额)÷上年销售额×100% + -- 毛利额增长率 PROFITGROWTH (本年毛利额 - 上年毛利额) / 上年毛利额 × 100% + -- 毛利变动 PROFITCHANGE 本年毛利额 - 上年毛利额 + UPDATE yunji_gr_bi_sa_agg + SET + SAMONEYGROWTH = CASE + WHEN ( LASTSAMONEY = 0 OR LASTSAMONEY IS NULL ) + AND THISSAMONEY IS NOT NULL THEN + 1 + WHEN THISPROFIT IS NULL THEN + 0 ELSE ( THISSAMONEY - LASTSAMONEY )/ LASTSAMONEY * 100 + END, + PROFITGROWTH = CASE + WHEN ( LASTPROFIT = 0 OR LASTPROFIT IS NULL ) + AND THISPROFIT IS NOT NULL THEN + 1 + WHEN THISPROFIT IS NULL THEN + 0 ELSE ( THISPROFIT - LASTPROFIT )/ LASTPROFIT * 100 + END, + PROFITCHANGE = ( + THISPROFIT - LASTPROFIT); +