计算销售报表-调整计算逻辑,增加计算字段
This commit is contained in:
@@ -19,4 +19,7 @@ public interface GrBiSaAggMapper extends BaseMapper<GrBiSaAgg> {
|
||||
int deleteSalesReport(@Param("pastYearMonth") Integer pastYearMonth,
|
||||
@Param("currentYearMonth") Integer currentYearMonth);
|
||||
|
||||
void updateThisData();
|
||||
|
||||
void updateLastData();
|
||||
}
|
||||
|
||||
@@ -29,8 +29,12 @@ public class GrBiSaAggServiceImpl extends ServiceImpl<GrBiSaAggMapper, GrBiSaAgg
|
||||
//获取本地mysql数据库中表中UPDATE_TIME最新的数据
|
||||
LambdaQueryWrapper<GrBiSaAgg> queryWrapper = new LambdaQueryWrapper<GrBiSaAgg>().orderByDesc(GrBiSaAgg::getUseYear, GrBiSaAgg::getUseMonth).last("LIMIT 1");
|
||||
GrBiSaAgg grBiSaAgg = this.baseMapper.selectOne(queryWrapper);
|
||||
Integer lastUserMonth = grBiSaAgg.getUseMonth();
|
||||
Integer lastUserYear = grBiSaAgg.getUseYear();
|
||||
int lastUserYear = 2022;
|
||||
int lastUserMonth = 1;
|
||||
if(grBiSaAgg != null){
|
||||
lastUserYear = grBiSaAgg.getUseYear();
|
||||
lastUserMonth = grBiSaAgg.getUseMonth();
|
||||
}
|
||||
// 获取当前时间的年和月
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
int currentYear = now.getYear();
|
||||
@@ -57,6 +61,8 @@ public class GrBiSaAggServiceImpl extends ServiceImpl<GrBiSaAggMapper, GrBiSaAgg
|
||||
}
|
||||
//保存数据
|
||||
removeAndSaveBatch(pastYear, pastMonth, currentYear, currentMonth, grBiSaSetdtlList);
|
||||
this.baseMapper.updateThisData();
|
||||
this.baseMapper.updateLastData();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
a.USEMONTH,
|
||||
goods.goodsid as GOODSID,
|
||||
goods.GOODSNAME,
|
||||
sales.SALEZONEID,
|
||||
sales.SALEZONENAME,
|
||||
sales.SALEZONEID as ZONEID,
|
||||
sales.SALEZONENAME as ZONENAME,
|
||||
province.PROVINCEID,
|
||||
province.PROVINCENAME,
|
||||
salestype.SALETYPEID,
|
||||
@@ -24,7 +24,7 @@
|
||||
a.`本月销量` as MONTHSAQTY,
|
||||
a.`含税销售额` as MONTHSAMONEY,
|
||||
a.`销售成本` as MONTHCOST,
|
||||
a.`毛利额` as MONTHPROFITSHARE
|
||||
a.`毛利额` as MONTHPROFIT
|
||||
from erp_bi_data.GR_BI_PUB_GOODS as goods
|
||||
inner join erp_bi_data.GR_BI_PUB_SALEZONE as sales
|
||||
inner join erp_bi_data.GR_BI_PUB_PROVINCE as province
|
||||
@@ -74,4 +74,86 @@
|
||||
delete from yunji_gr_bi_sa_agg
|
||||
where (USEYEAR * 100 + USEMONTH) BETWEEN #{pastYearMonth} AND #{currentYearMonth}
|
||||
</delete>
|
||||
|
||||
<update id="updateThisData">
|
||||
UPDATE yunji_gr_bi_sa_agg a
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
USEYEAR,
|
||||
GOODSID,
|
||||
ZONEID,
|
||||
PROVINCEID,
|
||||
SALETYPEID,
|
||||
DOSAGEID,
|
||||
CUSTOMID,
|
||||
SALERID,
|
||||
SUM( MONTHSAQTY ) AS THISSAQTY,
|
||||
SUM( MONTHSAMONEY ) AS THISSAMONEY,
|
||||
SUM( MONTHCOST) as THISCOST,
|
||||
SUM( MONTHPROFIT ) AS THISPROFIT
|
||||
FROM
|
||||
yunji_gr_bi_sa_agg
|
||||
GROUP BY
|
||||
USEYEAR,
|
||||
GOODSID,
|
||||
ZONEID,
|
||||
PROVINCEID,
|
||||
SALETYPEID,
|
||||
DOSAGEID,
|
||||
CUSTOMID,
|
||||
SALERID
|
||||
) b ON b.USEYEAR = a.USEYEAR
|
||||
AND b.GOODSID = a.GOODSID
|
||||
AND b.ZONEID = a.ZONEID
|
||||
AND b.PROVINCEID = a.PROVINCEID
|
||||
AND b.SALETYPEID = a.SALETYPEID
|
||||
AND b.DOSAGEID = a.DOSAGEID
|
||||
AND b.CUSTOMID = a.CUSTOMID
|
||||
AND b.SALERID = a.SALERID
|
||||
SET a.THISSAQTY = COALESCE ( b.THISSAQTY, 0 ),
|
||||
a.THISSAMONEY = COALESCE ( b.THISSAMONEY, 0 ),
|
||||
a.THISCOST = COALESCE ( b.THISCOST, 0 ),
|
||||
a.THISPROFIT = COALESCE ( b.THISPROFIT, 0 );
|
||||
</update>
|
||||
|
||||
<update id="updateLastData">
|
||||
UPDATE yunji_gr_bi_sa_agg a
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
USEYEAR,
|
||||
GOODSID,
|
||||
ZONEID,
|
||||
PROVINCEID,
|
||||
SALETYPEID,
|
||||
DOSAGEID,
|
||||
CUSTOMID,
|
||||
SALERID,
|
||||
SUM( MONTHSAQTY ) AS LASTSAQTY,
|
||||
SUM( MONTHSAMONEY ) AS LASTSAMONEY,
|
||||
SUM( MONTHCOST) as LASTCOST,
|
||||
SUM( MONTHPROFIT ) AS LASTPROFIT
|
||||
FROM
|
||||
yunji_gr_bi_sa_agg
|
||||
GROUP BY
|
||||
USEYEAR,
|
||||
GOODSID,
|
||||
ZONEID,
|
||||
PROVINCEID,
|
||||
SALETYPEID,
|
||||
DOSAGEID,
|
||||
CUSTOMID,
|
||||
SALERID
|
||||
) b ON b.USEYEAR = a.USEYEAR-1
|
||||
AND b.GOODSID = a.GOODSID
|
||||
AND b.ZONEID = a.ZONEID
|
||||
AND b.PROVINCEID = a.PROVINCEID
|
||||
AND b.SALETYPEID = a.SALETYPEID
|
||||
AND b.DOSAGEID = a.DOSAGEID
|
||||
AND b.CUSTOMID = a.CUSTOMID
|
||||
AND b.SALERID = a.SALERID
|
||||
SET a.LASTSAQTY = COALESCE ( b.LASTSAQTY, 0 ),
|
||||
a.LASTSAMONEY = COALESCE ( b.LASTSAMONEY, 0 ),
|
||||
a.LASTCOST = COALESCE ( b.LASTCOST, 0 ),
|
||||
a.LASTPROFIT = COALESCE ( b.LASTPROFIT, 0 );
|
||||
</update>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user