Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
1d31ef09a5
|
@ -595,7 +595,7 @@
|
||||||
|
|
||||||
<update id="recalculateTeamNewBoxNum">
|
<update id="recalculateTeamNewBoxNum">
|
||||||
UPDATE ${retailsTableName}
|
UPDATE ${retailsTableName}
|
||||||
SET TEAM_NEW_BOX_NUM = (
|
SET ENABLE_STATUS = 0, TEAM_NEW_BOX_NUM = (
|
||||||
SELECT SUM(boxNum)
|
SELECT SUM(boxNum)
|
||||||
FROM (
|
FROM (
|
||||||
SELECT b.PK_ID, NVL(s.NEW_BOX_NUM, 0) AS boxNum
|
SELECT b.PK_ID, NVL(s.NEW_BOX_NUM, 0) AS boxNum
|
||||||
|
|
|
@ -570,7 +570,8 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
||||||
.memberRetailSTable(memberSecondTable)
|
.memberRetailSTable(memberSecondTable)
|
||||||
.pkMemberList(pkMemberList).systemType(systemType).build();
|
.pkMemberList(pkMemberList).systemType(systemType).build();
|
||||||
List<CuMemberRetailDataStatisticsDetailVO> statisticsDetailVOList = baseMapper.getRetailDataStatisticsDetail(memberAchieveVO);
|
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("statisticsDetailVOList: {}", JSONUtil.toJsonStr(statisticsDetailVOList));
|
||||||
log.info("calcMap -> {}", JSONUtil.toJsonStr(result));
|
log.info("calcMap -> {}", JSONUtil.toJsonStr(result));
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.hzs.retail.member.utils;
|
package com.hzs.retail.member.utils;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
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.CuMemberRetailDataStatisticsDetailVO;
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
|
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 BIG_RANGE_VIRTUAL_NAME = "注水大区虚拟分支";
|
||||||
private static final String SMALL_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);
|
calcDetailVOTotalField(detailVOList, pkId);
|
||||||
addVirtualBranch(detailVOList, pkId);
|
addVirtualBranch(detailVOList, pkId);
|
||||||
CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId);
|
CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId);
|
||||||
CuMemberRetailDataStatisticsDetailVO bigRange = getBigRangeDetailVO(detailVOList, pkId);
|
CuMemberRetailDataStatisticsDetailVO bigRange = getBigRangeDetailVO(detailVOList, pkId);
|
||||||
|
if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){
|
||||||
|
// 昨日非激活 排除昨日日结表数据
|
||||||
|
excludeDailySettlementData(detailVOList);
|
||||||
|
}else{
|
||||||
|
// 排除注水数据
|
||||||
|
excludeWaterInjectionData(detailVOList);
|
||||||
|
}
|
||||||
Integer smallRangeTotalBoxNum = total.getTotalBoxNum() - bigRange.getTotalBoxNum();
|
Integer smallRangeTotalBoxNum = total.getTotalBoxNum() - bigRange.getTotalBoxNum();
|
||||||
if(smallRangeTotalBoxNum < 0){
|
if(smallRangeTotalBoxNum < 0){
|
||||||
smallRangeTotalBoxNum = 0;
|
smallRangeTotalBoxNum = 0;
|
||||||
|
@ -62,31 +84,46 @@ public class DataStatisticsUtil {
|
||||||
// - detailVO.getBigBoxNum() // 个人注水大区盒数(日结)
|
// - detailVO.getBigBoxNum() // 个人注水大区盒数(日结)
|
||||||
// - detailVO.getSmallBoxNum() // 个人注水小区盒数(日结)
|
// - detailVO.getSmallBoxNum() // 个人注水小区盒数(日结)
|
||||||
);
|
);
|
||||||
detailVO.setTotalPv(detailVO.getConsumePv()
|
detailVO.setTotalPv(
|
||||||
|
detailVO.getConsumePv()
|
||||||
// .add(detailVO.getNewConsumePv())
|
// .add(detailVO.getNewConsumePv())
|
||||||
.add(detailVO.getTeamConsumePv())
|
.add(detailVO.getTeamConsumePv())
|
||||||
// .add(detailVO.getTeamNewPv())
|
// .add(detailVO.getTeamNewPv())
|
||||||
.add(detailVO.getSNewConsumePv())
|
.add(detailVO.getSNewConsumePv())
|
||||||
.add(detailVO.getSTeamNewPv())
|
.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.自己的消费总数
|
* 1.自己的消费总数
|
||||||
|
@ -105,12 +142,16 @@ public class DataStatisticsUtil {
|
||||||
.memberCode(BIG_RANGE_VIRTUAL_NAME)
|
.memberCode(BIG_RANGE_VIRTUAL_NAME)
|
||||||
.totalBoxNum(detailVO.getBigBoxNum())
|
.totalBoxNum(detailVO.getBigBoxNum())
|
||||||
.totalPv(BigDecimal.ZERO)
|
.totalPv(BigDecimal.ZERO)
|
||||||
|
.bigBoxNum(0)
|
||||||
|
.smallBoxNum(0)
|
||||||
.build();
|
.build();
|
||||||
CuMemberRetailDataStatisticsDetailVO smallRangeVirtualDetailVO = CuMemberRetailDataStatisticsDetailVO.builder()
|
CuMemberRetailDataStatisticsDetailVO smallRangeVirtualDetailVO = CuMemberRetailDataStatisticsDetailVO.builder()
|
||||||
.pkId(SMALL_RANGE_VIRTUAL_ID)
|
.pkId(SMALL_RANGE_VIRTUAL_ID)
|
||||||
.memberCode(SMALL_RANGE_VIRTUAL_NAME)
|
.memberCode(SMALL_RANGE_VIRTUAL_NAME)
|
||||||
.totalBoxNum(detailVO.getBigBoxNum())
|
.totalBoxNum(detailVO.getBigBoxNum())
|
||||||
.totalPv(BigDecimal.ZERO)
|
.totalPv(BigDecimal.ZERO)
|
||||||
|
.bigBoxNum(0)
|
||||||
|
.smallBoxNum(0)
|
||||||
.build();
|
.build();
|
||||||
detailVOList.add(bigRangeVirtualDetailVO);
|
detailVOList.add(bigRangeVirtualDetailVO);
|
||||||
detailVOList.add(smallRangeVirtualDetailVO);
|
detailVOList.add(smallRangeVirtualDetailVO);
|
||||||
|
@ -133,6 +174,8 @@ public class DataStatisticsUtil {
|
||||||
.add(detailVO.getNewConsumePv())
|
.add(detailVO.getNewConsumePv())
|
||||||
.add(detailVO.getSNewConsumePv())
|
.add(detailVO.getSNewConsumePv())
|
||||||
)
|
)
|
||||||
|
.bigBoxNum(0)
|
||||||
|
.smallBoxNum(0)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,11 @@ public class CuMemberRetailDataStatisticsDetailVO implements Serializable {
|
||||||
*/
|
*/
|
||||||
private String memberCode;
|
private String memberCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 激活状态
|
||||||
|
*/
|
||||||
|
private Integer enableStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 日结表-个人累计消费pv
|
* 日结表-个人累计消费pv
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -841,6 +841,7 @@
|
||||||
SELECT
|
SELECT
|
||||||
cu.pk_id,
|
cu.pk_id,
|
||||||
cu.MEMBER_CODE,
|
cu.MEMBER_CODE,
|
||||||
|
mr.ENABLE_STATUS,
|
||||||
NVL( mr.CONSUME_PV, 0 ) consumePv,
|
NVL( mr.CONSUME_PV, 0 ) consumePv,
|
||||||
NVL( mr.NEW_CONSUME_PV, 0 ) newConsumePv,
|
NVL( mr.NEW_CONSUME_PV, 0 ) newConsumePv,
|
||||||
NVL( mr.TEAM_CONSUME_PV, 0 ) teamConsumePv,
|
NVL( mr.TEAM_CONSUME_PV, 0 ) teamConsumePv,
|
||||||
|
|
Loading…
Reference in New Issue