Compare commits
2 Commits
ebf54b4ecf
...
5b25cb3766
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b25cb3766 | ||
|
|
66028bf17a |
@@ -22,4 +22,10 @@ public interface GrBiSaAggMapper extends BaseMapper<GrBiSaAgg> {
|
|||||||
void updateThisData();
|
void updateThisData();
|
||||||
|
|
||||||
void updateLastData();
|
void updateLastData();
|
||||||
|
|
||||||
|
void updateComplexCalculate1();
|
||||||
|
void updateComplexCalculate2();
|
||||||
|
void updateComplexCalculate3();
|
||||||
|
void updateComplexCalculate4();
|
||||||
|
void updateComplexCalculate5();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,6 +63,11 @@ public class GrBiSaAggServiceImpl extends ServiceImpl<GrBiSaAggMapper, GrBiSaAgg
|
|||||||
removeAndSaveBatch(pastYear, pastMonth, currentYear, currentMonth, grBiSaSetdtlList);
|
removeAndSaveBatch(pastYear, pastMonth, currentYear, currentMonth, grBiSaSetdtlList);
|
||||||
this.baseMapper.updateThisData();
|
this.baseMapper.updateThisData();
|
||||||
this.baseMapper.updateLastData();
|
this.baseMapper.updateLastData();
|
||||||
|
this.baseMapper.updateComplexCalculate1();
|
||||||
|
this.baseMapper.updateComplexCalculate2();
|
||||||
|
this.baseMapper.updateComplexCalculate3();
|
||||||
|
this.baseMapper.updateComplexCalculate4();
|
||||||
|
this.baseMapper.updateComplexCalculate5();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -156,4 +156,103 @@
|
|||||||
a.LASTCOST = COALESCE ( b.LASTCOST, 0 ),
|
a.LASTCOST = COALESCE ( b.LASTCOST, 0 ),
|
||||||
a.LASTPROFIT = COALESCE ( b.LASTPROFIT, 0 );
|
a.LASTPROFIT = COALESCE ( b.LASTPROFIT, 0 );
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
|
||||||
|
<update id="updateComplexCalculate1">
|
||||||
|
-- 本月毛利率 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;
|
||||||
|
|
||||||
|
|
||||||
|
</update>
|
||||||
|
<update id="updateComplexCalculate2">
|
||||||
|
-- 本月销售金额占比 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 );
|
||||||
|
</update>
|
||||||
|
<update id="updateComplexCalculate3">
|
||||||
|
|
||||||
|
-- 本年销售金额占比 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 );
|
||||||
|
|
||||||
|
</update>
|
||||||
|
<update id="updateComplexCalculate4">
|
||||||
|
|
||||||
|
-- 上年销售金额占比 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 );
|
||||||
|
|
||||||
|
</update>
|
||||||
|
<update id="updateComplexCalculate5">
|
||||||
|
-- 销售金额增长率 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
|
||||||
|
100
|
||||||
|
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
|
||||||
|
100
|
||||||
|
WHEN THISPROFIT IS NULL THEN
|
||||||
|
0 ELSE ( THISPROFIT - LASTPROFIT )/ LASTPROFIT * 100
|
||||||
|
END,
|
||||||
|
PROFITCHANGE = ( THISPROFIT - LASTPROFIT);
|
||||||
|
</update>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user