Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
1d31ef09a5
|
@ -595,7 +595,7 @@
|
|||
|
||||
<update id="recalculateTeamNewBoxNum">
|
||||
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
|
||||
|
|
|
@ -570,7 +570,8 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
|||
.memberRetailSTable(memberSecondTable)
|
||||
.pkMemberList(pkMemberList).systemType(systemType).build();
|
||||
List<CuMemberRetailDataStatisticsDetailVO> 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;
|
||||
|
|
|
@ -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<CuMemberRetailDataStatisticsDetailVO> detailVOList, Long pkId){
|
||||
public static CuMemberRetailDataStatisticsResultVO getCalcMap(List<CuMemberRetailDataStatisticsDetailVO> 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<CuMemberRetailDataStatisticsDetailVO> 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<CuMemberRetailDataStatisticsDetailVO> 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<CuMemberRetailDataStatisticsDetailVO> 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();
|
||||
}
|
||||
|
||||
|
|
|
@ -29,6 +29,11 @@ public class CuMemberRetailDataStatisticsDetailVO implements Serializable {
|
|||
*/
|
||||
private String memberCode;
|
||||
|
||||
/**
|
||||
* 激活状态
|
||||
*/
|
||||
private Integer enableStatus;
|
||||
|
||||
/**
|
||||
* 日结表-个人累计消费pv
|
||||
*/
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue