From 8d3408c4212cdc068eabaf83fe6e69570b1d2bf2 Mon Sep 17 00:00:00 2001 From: sangelxiu1 <15781802@163.com> Date: Fri, 13 Jun 2025 12:02:06 +0800 Subject: [PATCH] =?UTF-8?q?##=20Opt=20-=20=E6=88=91=E7=9A=84->=E7=9B=92?= =?UTF-8?q?=E6=95=B0=20=E5=A2=9E=E5=8A=A0=E6=BF=80=E6=B4=BB=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=88=A4=E6=96=AD=20&=20=E8=AE=A1=E7=AE=97=E8=BE=BE?= =?UTF-8?q?=E5=B0=8F=E5=8C=BA=E6=97=B6=E5=8C=85=E5=90=AB=E6=B3=A8=E6=B0=B4?= =?UTF-8?q?,=E8=BF=94=E5=9B=9E=E5=89=8D=E5=8F=B0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=97=B6=E5=89=94=E5=87=BA=E6=B3=A8=E6=B0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/bonus/CuMemberBonusMapper.xml | 2 +- .../CuMemberRetailAchieveServiceImpl.java | 3 +- .../member/utils/DataStatisticsUtil.java | 77 +++++++++++++++---- .../CuMemberRetailDataStatisticsDetailVO.java | 5 ++ .../achieve/CuMemberRetailRangeMapper.xml | 1 + 5 files changed, 69 insertions(+), 19 deletions(-) diff --git a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml index a111573f..7408bd25 100644 --- a/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml +++ b/bd-business/bd-business-bonus/src/main/resources/mapper/bonus/bonus/CuMemberBonusMapper.xml @@ -576,7 +576,7 @@ UPDATE ${retailsTableName} - SET TEAM_NEW_BOX_NUM = ( + SET ENABLE_STATUS = 0, TEAM_NEW_BOX_NUM = ( SELECT SUM(boxNum) FROM ( SELECT b.PK_ID, NVL(s.NEW_BOX_NUM, 0) AS boxNum diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailAchieveServiceImpl.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailAchieveServiceImpl.java index 4c01b35d..3da9a7a0 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailAchieveServiceImpl.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/service/impl/CuMemberRetailAchieveServiceImpl.java @@ -570,7 +570,8 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl statisticsDetailVOList = baseMapper.getRetailDataStatisticsDetail(memberAchieveVO); - CuMemberRetailDataStatisticsResultVO result = DataStatisticsUtil.getCalcMap(statisticsDetailVOList, userId); + CuMember cuMember = iCuMemberService.queryMember(userId); + CuMemberRetailDataStatisticsResultVO result = DataStatisticsUtil.getCalcMap(statisticsDetailVOList, cuMember); log.info("statisticsDetailVOList: {}", JSONUtil.toJsonStr(statisticsDetailVOList)); log.info("calcMap -> {}", JSONUtil.toJsonStr(result)); return result; diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/utils/DataStatisticsUtil.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/utils/DataStatisticsUtil.java index 5cac6a0e..8df202bd 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/utils/DataStatisticsUtil.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/utils/DataStatisticsUtil.java @@ -1,6 +1,8 @@ package com.hzs.retail.member.utils; import cn.hutool.core.util.ObjectUtil; +import com.hzs.common.core.enums.EYesNo; +import com.hzs.common.domain.member.base.CuMember; import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO; import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO; @@ -24,11 +26,31 @@ public class DataStatisticsUtil { private static final String BIG_RANGE_VIRTUAL_NAME = "注水大区虚拟分支"; private static final String SMALL_RANGE_VIRTUAL_NAME = "注水小区虚拟分支"; - public static CuMemberRetailDataStatisticsResultVO getCalcMap(List detailVOList, Long pkId){ + public static CuMemberRetailDataStatisticsResultVO getCalcMap(List detailVOList, CuMember cuMember){ + Long pkId = cuMember.getPkId(); + // 非激活直接返0 + // 激活判断上一天的ENABLE_STATUS 0为正常 1为当天激活 不计算日结数据 + if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){ + return CuMemberRetailDataStatisticsResultVO.builder() + .totalBoxNum(0) + .totalPv(BigDecimal.ZERO) + .bigRangeTotalBoxNum(0) + .bigRangeTotalPv(BigDecimal.ZERO) + .smallRangeTotalBoxNum(0) + .smallRangeTotalPv(BigDecimal.ZERO) + .build(); + } calcDetailVOTotalField(detailVOList, pkId); addVirtualBranch(detailVOList, pkId); CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId); CuMemberRetailDataStatisticsDetailVO bigRange = getBigRangeDetailVO(detailVOList, pkId); + if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){ + // 昨日非激活 排除昨日日结表数据 + excludeDailySettlementData(detailVOList); + }else{ + // 排除注水数据 + excludeWaterInjectionData(detailVOList); + } Integer smallRangeTotalBoxNum = total.getTotalBoxNum() - bigRange.getTotalBoxNum(); if(smallRangeTotalBoxNum < 0){ smallRangeTotalBoxNum = 0; @@ -62,31 +84,46 @@ public class DataStatisticsUtil { // - detailVO.getBigBoxNum() // 个人注水大区盒数(日结) // - detailVO.getSmallBoxNum() // 个人注水小区盒数(日结) ); - detailVO.setTotalPv(detailVO.getConsumePv() + detailVO.setTotalPv( + detailVO.getConsumePv() // .add(detailVO.getNewConsumePv()) .add(detailVO.getTeamConsumePv()) // .add(detailVO.getTeamNewPv()) .add(detailVO.getSNewConsumePv()) .add(detailVO.getSTeamNewPv()) ); - // self增加当日伞下 -// if(detailVO.getPkId().equals(pkId)){ -// List subList = detailVOList.parallelStream().filter(o -> !o.getPkId().equals(pkId)).collect(Collectors.toList()); -// int subSTotalNewBoxNum = subList.parallelStream() -// .map(CuMemberRetailDataStatisticsDetailVO::getSNewBoxNum) -// .filter(Objects::nonNull) -// .mapToInt(Integer::intValue) -// .sum(); -// BigDecimal subSTotalNewPv = subList.parallelStream() -// .map(CuMemberRetailDataStatisticsDetailVO::getSNewConsumePv) -// .filter(Objects::nonNull) -// .reduce(BigDecimal.ZERO, BigDecimal::add); -// detailVO.setTotalBoxNum(detailVO.getTotalBoxNum() + subSTotalNewBoxNum); -// detailVO.setTotalPv(detailVO.getTotalPv().add(subSTotalNewPv)); -// } }); } + /** + * 排除昨日日结数据 + * @param detailVOList + */ + public static void excludeDailySettlementData(List detailVOList){ + detailVOList.parallelStream().forEach(detailVO -> { + detailVO.setTotalBoxNum( + detailVO.getTotalBoxNum() + - detailVO.getTeamBoxNum() // 团队累计消费盒数(日结) + ); + detailVO.setTotalPv( + detailVO.getTotalPv().subtract(detailVO.getTeamConsumePv()) + ); + }); + } + + /** + * 排除昨日日结注水数据 + * @param detailVOList + */ + public static void excludeWaterInjectionData(List detailVOList){ + detailVOList.parallelStream().forEach(detailVO -> { + detailVO.setTotalBoxNum( + detailVO.getTotalBoxNum() + - detailVO.getBigBoxNum() // 注水大区 + - detailVO.getSmallBoxNum() // 注水小区 + ); + }); + } /** * 增加虚拟分支 主要为 * 1.自己的消费总数 @@ -105,12 +142,16 @@ public class DataStatisticsUtil { .memberCode(BIG_RANGE_VIRTUAL_NAME) .totalBoxNum(detailVO.getBigBoxNum()) .totalPv(BigDecimal.ZERO) + .bigBoxNum(0) + .smallBoxNum(0) .build(); CuMemberRetailDataStatisticsDetailVO smallRangeVirtualDetailVO = CuMemberRetailDataStatisticsDetailVO.builder() .pkId(SMALL_RANGE_VIRTUAL_ID) .memberCode(SMALL_RANGE_VIRTUAL_NAME) .totalBoxNum(detailVO.getBigBoxNum()) .totalPv(BigDecimal.ZERO) + .bigBoxNum(0) + .smallBoxNum(0) .build(); detailVOList.add(bigRangeVirtualDetailVO); detailVOList.add(smallRangeVirtualDetailVO); @@ -133,6 +174,8 @@ public class DataStatisticsUtil { .add(detailVO.getNewConsumePv()) .add(detailVO.getSNewConsumePv()) ) + .bigBoxNum(0) + .smallBoxNum(0) .build(); } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailDataStatisticsDetailVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailDataStatisticsDetailVO.java index 33f9c097..cd21cefc 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailDataStatisticsDetailVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailDataStatisticsDetailVO.java @@ -29,6 +29,11 @@ public class CuMemberRetailDataStatisticsDetailVO implements Serializable { */ private String memberCode; + /** + * 激活状态 + */ + private Integer enableStatus; + /** * 日结表-个人累计消费pv */ diff --git a/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml b/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml index acc59f50..c5109efa 100644 --- a/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml +++ b/bd-business/bd-business-member/src/main/resources/mapper/member/achieve/CuMemberRetailRangeMapper.xml @@ -841,6 +841,7 @@ SELECT cu.pk_id, cu.MEMBER_CODE, + mr.ENABLE_STATUS, NVL( mr.CONSUME_PV, 0 ) consumePv, NVL( mr.NEW_CONSUME_PV, 0 ) newConsumePv, NVL( mr.TEAM_CONSUME_PV, 0 ) teamConsumePv,