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