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 033bc48..89b1f1b 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 @@ -19,4 +19,7 @@ public interface GrBiSaAggMapper extends BaseMapper { int deleteSalesReport(@Param("pastYearMonth") Integer pastYearMonth, @Param("currentYearMonth") Integer currentYearMonth); + void updateThisData(); + + void updateLastData(); } 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 7651291..8d033e2 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 @@ -29,8 +29,12 @@ public class GrBiSaAggServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper().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 + + + 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 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 ); +