diff --git a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/GradeDTO.java b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/GradeDTO.java index 6a6ed575..b9d10657 100644 --- a/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/GradeDTO.java +++ b/bd-api/bd-api-system/src/main/java/com/hzs/system/config/dto/GradeDTO.java @@ -113,16 +113,16 @@ public class GradeDTO implements Serializable { /** * 购买盒数 */ - private Integer boxNumber; + private BigDecimal boxNumber; /** * 累计盒数 */ - private Integer boxTotal; + private BigDecimal boxTotal; /** * 小市场盒数 */ - private Integer boxSmallTotal; + private BigDecimal boxSmallTotal; } diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRangeMapper.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRangeMapper.java index 451389fe..9b8436ad 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRangeMapper.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/mapper/CuMemberRetailRangeMapper.java @@ -8,6 +8,7 @@ import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO; import com.hzs.retail.member.vo.MarketDynamicsDetailVO; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; /** @@ -61,7 +62,7 @@ public interface CuMemberRetailRangeMapper extends BaseMapper 0) { @@ -91,18 +91,20 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl totalBoxConfig ? totalBoxConfig : memberRetailAchieveVO.getTotalBox(); + BigDecimal totalBoxConfig = lastGrate.getBoxTotal(); +// BigDecimal totalBoxMax = memberRetailAchieveVO.getTotalBox() > totalBoxConfig ? totalBoxConfig : memberRetailAchieveVO.getTotalBox(); + BigDecimal totalBoxMax = memberRetailAchieveVO.getTotalBox().compareTo(totalBoxConfig) > 0 ? totalBoxConfig : memberRetailAchieveVO.getTotalBox(); memberRetailAchieveVO.setTotalBox(totalBoxMax); } else { - memberRetailAchieveVO = CuMemberRetailAchieveVO.builder().totalBox(0).smallAreaBox(0).build(); + memberRetailAchieveVO = CuMemberRetailAchieveVO.builder().totalBox(BigDecimal.ZERO).smallAreaBox(BigDecimal.ZERO).build(); } } else { - memberRetailAchieveVO = CuMemberRetailAchieveVO.builder().totalBox(0).smallAreaBox(0).build(); + memberRetailAchieveVO = CuMemberRetailAchieveVO.builder().totalBox(BigDecimal.ZERO).smallAreaBox(BigDecimal.ZERO).build(); } return memberRetailAchieveVO; } @@ -470,7 +472,7 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType); @@ -478,23 +480,29 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl detailVOList, Long pkId){ detailVOList.stream().forEach(detailVO -> { detailVO.setTotalBoxNum( - detailVO.getConsumeBoxNum() // 个人累计消费盒数(日结) -// + detailVO.getNewBoxNum() // 个人新增盒数(日结) - + detailVO.getTeamBoxNum() // 团队累计消费盒数(日结) -// + detailVO.getTeamNewBoxNum() // 团队新增盒数(日结) - + detailVO.getSNewBoxNum() // 个人新增消费盒数(秒结) - + detailVO.getSTeamNewBoxNum() // 团队新增盒数(秒结) - + detailVO.getBigBoxNum() // 个人注水大区盒数(日结) - + detailVO.getSmallBoxNum() // 个人注水小区盒数(日结) + detailVO.getConsumeBoxNum() + .add(detailVO.getTeamBoxNum()) + .add(detailVO.getSNewBoxNum()) + .add(detailVO.getSTeamNewBoxNum()) + .add(detailVO.getBigBoxNum()) + .add(detailVO.getSmallBoxNum()) ); +// detailVO.setTotalBoxNum( +// detailVO.getConsumeBoxNum() // 个人累计消费盒数(日结) +//// + detailVO.getNewBoxNum() // 个人新增盒数(日结) +// + detailVO.getTeamBoxNum() // 团队累计消费盒数(日结) +//// + detailVO.getTeamNewBoxNum() // 团队新增盒数(日结) +// + detailVO.getSNewBoxNum() // 个人新增消费盒数(秒结) +// + detailVO.getSTeamNewBoxNum() // 团队新增盒数(秒结) +// + detailVO.getBigBoxNum() // 个人注水大区盒数(日结) +// + detailVO.getSmallBoxNum() // 个人注水小区盒数(日结) +// ); detailVO.setTotalPv( detailVO.getConsumePv() // .add(detailVO.getNewConsumePv()) @@ -112,10 +121,11 @@ public class DataStatisticsUtil { */ public static void excludeDailySettlementData(List detailVOList){ detailVOList.stream().forEach(detailVO -> { - detailVO.setTotalBoxNum( - detailVO.getTotalBoxNum() - - detailVO.getTeamBoxNum() // 团队累计消费盒数(日结) - ); + detailVO.setTotalBoxNum(detailVO.getTotalBoxNum().subtract(detailVO.getTeamBoxNum())); +// detailVO.setTotalBoxNum( +// detailVO.getTotalBoxNum() +// - detailVO.getTeamBoxNum() // 团队累计消费盒数(日结) +// ); detailVO.setTotalPv( detailVO.getTotalPv().subtract(detailVO.getTeamConsumePv()) ); @@ -130,11 +140,12 @@ public class DataStatisticsUtil { public static void excludeWaterInjectionData(List detailVOList, Long pkId){ detailVOList.stream().forEach(detailVO -> { if(!detailVO.getPkId().equals(pkId)){ - detailVO.setTotalBoxNum( - detailVO.getTotalBoxNum() - - detailVO.getBigBoxNum() // 注水大区 - - detailVO.getSmallBoxNum() // 注水小区 - ); + detailVO.setTotalBoxNum(detailVO.getTotalBoxNum().subtract(detailVO.getBigBoxNum()).subtract(detailVO.getSmallBoxNum())); +// detailVO.setTotalBoxNum( +// detailVO.getTotalBoxNum() +// - detailVO.getBigBoxNum() // 注水大区 +// - detailVO.getSmallBoxNum() // 注水小区 +// ); } }); } @@ -151,22 +162,23 @@ public class DataStatisticsUtil { if(ObjectUtil.isNotEmpty(detailVO)){ CuMemberRetailDataStatisticsDetailVO selfVirtualDetailVO = getCuMemberRetailDataStatisticsDetailVO(detailVO); detailVOList.add(selfVirtualDetailVO); - if(detailVO.getBigBoxNum() >0 || detailVO.getSmallBoxNum() > 0){ +// if(detailVO.getBigBoxNum() > 0 || detailVO.getSmallBoxNum() > 0){ + if(detailVO.getBigBoxNum().compareTo(BigDecimal.ZERO) >= 0 || detailVO.getSmallBoxNum().compareTo(BigDecimal.ZERO) >= 0){ CuMemberRetailDataStatisticsDetailVO bigRangeVirtualDetailVO = CuMemberRetailDataStatisticsDetailVO.builder() .pkId(BIG_RANGE_VIRTUAL_ID) .memberCode(BIG_RANGE_VIRTUAL_NAME) .totalBoxNum(detailVO.getBigBoxNum()) .totalPv(BigDecimal.ZERO) - .bigBoxNum(0) - .smallBoxNum(0) + .bigBoxNum(BigDecimal.ZERO) + .smallBoxNum(BigDecimal.ZERO) .build(); CuMemberRetailDataStatisticsDetailVO smallRangeVirtualDetailVO = CuMemberRetailDataStatisticsDetailVO.builder() .pkId(SMALL_RANGE_VIRTUAL_ID) .memberCode(SMALL_RANGE_VIRTUAL_NAME) .totalBoxNum(detailVO.getSmallBoxNum()) .totalPv(BigDecimal.ZERO) - .bigBoxNum(0) - .smallBoxNum(0) + .bigBoxNum(BigDecimal.ZERO) + .smallBoxNum(BigDecimal.ZERO) .build(); detailVOList.add(bigRangeVirtualDetailVO); detailVOList.add(smallRangeVirtualDetailVO); @@ -181,15 +193,19 @@ public class DataStatisticsUtil { .memberCode(SELF_VIRTUAL_NAME) .totalBoxNum( detailVO.getConsumeBoxNum() -// + detailVO.getNewBoxNum() - + detailVO.getSNewBoxNum() + .add(detailVO.getSNewBoxNum()) ) +// .totalBoxNum( +// detailVO.getConsumeBoxNum() +//// + detailVO.getNewBoxNum() +// + detailVO.getSNewBoxNum() +// ) .totalPv( detailVO.getConsumePv() .add(detailVO.getSNewConsumePv()) ) - .bigBoxNum(0) - .smallBoxNum(0) + .bigBoxNum(BigDecimal.ZERO) + .smallBoxNum(BigDecimal.ZERO) .build(); } @@ -199,7 +215,7 @@ public class DataStatisticsUtil { */ public static List getSmallRangeList(List detailVOList){ List result = new ArrayList<>(); - Integer maxTotalBoxNum = getMaxTotalBoxNum(detailVOList); + BigDecimal maxTotalBoxNum = getMaxTotalBoxNum(detailVOList); if (maxTotalBoxNum == null) { return new ArrayList<>(detailVOList); } @@ -248,17 +264,19 @@ public class DataStatisticsUtil { return result; } - private static Integer getMaxTotalBoxNum(List detailVOList) { + private static BigDecimal getMaxTotalBoxNum(List detailVOList) { return detailVOList.stream() .map(CuMemberRetailDataStatisticsDetailVO::getTotalBoxNum) .filter(Objects::nonNull) - .max(Integer::compare) +// .max(Integer::compare) + .max(BigDecimal::compareTo) .orElse(null); } private static CuMemberRetailDataStatisticsDetailVO getBigRangeBoxDetailVO(List detailVOList, Long pkId){ return detailVOList.stream() .filter(vo -> vo.getTotalBoxNum() != null && !vo.getPkId().equals(pkId)) - .max(Comparator.comparingInt(CuMemberRetailDataStatisticsDetailVO::getTotalBoxNum)) +// .max(Comparator.comparingInt(CuMemberRetailDataStatisticsDetailVO::getTotalBoxNum)) + .max(Comparator.comparing(CuMemberRetailDataStatisticsDetailVO::getTotalBoxNum, BigDecimal::compareTo)) .orElse(null); } private static CuMemberRetailDataStatisticsDetailVO getBigRangePVDetailVO(List detailVOList, Long pkId){ diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailAchieveVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailAchieveVO.java index 358a7b76..de2229d0 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailAchieveVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailAchieveVO.java @@ -52,7 +52,7 @@ public class CuMemberRetailAchieveVO implements Serializable { /** * 盒数 */ - private Integer boxs; + private BigDecimal boxs; /** * 状态 @@ -62,18 +62,18 @@ public class CuMemberRetailAchieveVO implements Serializable { /** * 总盒数 */ - private Integer totalBox; + private BigDecimal totalBox; /** * 小市场盒数 */ - private Integer smallAreaBox; + private BigDecimal smallAreaBox; /** * 大市场盒数 */ - private Integer bigAreaBox; + private BigDecimal bigAreaBox; /** * 小区业绩 @@ -171,19 +171,19 @@ public class CuMemberRetailAchieveVO implements Serializable { /** * 今日盒数 */ - private Integer realTimeBox; + private BigDecimal realTimeBox; /** * 昨日盒数 */ - private Integer yesterdayBox; + private BigDecimal yesterdayBox; /** * 本月盒数 */ - private Integer monthBox; + private BigDecimal monthBox; /** * 上月盒数 */ - private Integer upMonthBox; + private BigDecimal upMonthBox; /** * 等级 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 55c261d1..3e52e0d5 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 @@ -54,28 +54,28 @@ public class CuMemberRetailDataStatisticsDetailVO implements Serializable { /** * 日结表-个人累计消费盒数 */ - private Integer consumeBoxNum; + private BigDecimal consumeBoxNum; /** * 日结表-个人当日新消费盒数 */ - private Integer newBoxNum; + private BigDecimal newBoxNum; /** * 日结表-个人伞下累计消费盒数 */ - private Integer teamBoxNum; + private BigDecimal teamBoxNum; /** * 日结表-个人伞下新消费盒数 */ - private Integer teamNewBoxNum; + private BigDecimal teamNewBoxNum; /** * 秒结表-个人新消费盒数 */ - private Integer sNewBoxNum; + private BigDecimal sNewBoxNum; /** * 秒结表-团队新消费盒数 */ - private Integer sTeamNewBoxNum; + private BigDecimal sTeamNewBoxNum; /** * 秒结表-个人新消费pv */ @@ -85,7 +85,7 @@ public class CuMemberRetailDataStatisticsDetailVO implements Serializable { */ private BigDecimal sTeamNewPv; - private Integer sTeamBoxNum; + private BigDecimal sTeamBoxNum; /** * 个人总业绩 @@ -94,16 +94,16 @@ public class CuMemberRetailDataStatisticsDetailVO implements Serializable { /** * 个人总盒数 */ - private Integer totalBoxNum; + private BigDecimal totalBoxNum; /** * 注水大区 */ - private Integer bigBoxNum; + private BigDecimal bigBoxNum; /** * 注水小区 */ - private Integer smallBoxNum; + private BigDecimal smallBoxNum; @Override public CuMemberRetailDataStatisticsDetailVO clone() { diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailDataStatisticsResultVO.java b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailDataStatisticsResultVO.java index 2a77cfd3..df6c1a61 100644 --- a/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailDataStatisticsResultVO.java +++ b/bd-business/bd-business-member/src/main/java/com/hzs/retail/member/vo/CuMemberRetailDataStatisticsResultVO.java @@ -33,15 +33,15 @@ public class CuMemberRetailDataStatisticsResultVO implements Serializable { /** * 总盒数 */ - private Integer totalBoxNum; + private BigDecimal totalBoxNum; /** * 大区盒数 */ - private Integer bigRangeTotalBoxNum; + private BigDecimal bigRangeTotalBoxNum; /** * 小区盒数 */ - private Integer smallRangeTotalBoxNum; + private BigDecimal smallRangeTotalBoxNum; /** * 总业绩 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 3a10d092..51a94956 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 @@ -69,7 +69,7 @@ - SELECT nvl(max(smallAreaBox), 0) smallareabox from ( @@ -90,14 +90,14 @@ - SELECT NVL(mr.big_box_num, 0) smallAreaBox FROM ${memberRetailTable} mr WHERE mr.category = 0 AND mr.pk_member = #{pkMember} - SELECT nvl(sum(totalAreaBox), 0) totalAreaBox FROM (SELECT NVL(mr.team_box_num + mr.consume_box_num, 0) totalAreaBox FROM ${memberRetailTable} mr @@ -531,7 +531,7 @@ - SELECT nvl(sum(box), 0) box FROM (