## Opt - 选择区域失效之后,再次需要选择区域,需要月总业绩30万,小市场10万
This commit is contained in:
parent
a4f5cd4899
commit
4225e554d4
|
@ -45,6 +45,8 @@ import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -109,7 +111,7 @@ public class RetailMemberController extends BaseController {
|
||||||
LambdaQueryWrapper<CuMemberRetailRegion> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<CuMemberRetailRegion> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(CuMemberRetailRegion::getPkMember, userId);
|
queryWrapper.eq(CuMemberRetailRegion::getPkMember, userId);
|
||||||
int countNum = iCuMemberRetailRegionService.count(queryWrapper);
|
int countNum = iCuMemberRetailRegionService.count(queryWrapper);
|
||||||
boolean isFirst = countNum > 0;
|
boolean notFirst = countNum > 0;
|
||||||
|
|
||||||
log.info("cuMemberRetailRegionExt -> {}", JSONUtil.toJsonStr(cuMemberRetailRegionExt));
|
log.info("cuMemberRetailRegionExt -> {}", JSONUtil.toJsonStr(cuMemberRetailRegionExt));
|
||||||
if (null != cuMemberRetailRegionExt) {
|
if (null != cuMemberRetailRegionExt) {
|
||||||
|
@ -155,9 +157,24 @@ public class RetailMemberController extends BaseController {
|
||||||
&& totalBoxNum.compareTo(grade.getBoxTotal()) >= 0
|
&& totalBoxNum.compareTo(grade.getBoxTotal()) >= 0
|
||||||
&& smallBoxNum.compareTo(grade.getBoxSmallTotal()) >=0
|
&& smallBoxNum.compareTo(grade.getBoxSmallTotal()) >=0
|
||||||
){
|
){
|
||||||
return AjaxResult.success(RetailMemberRegionVO.builder()
|
if(notFirst){
|
||||||
.regionStatus(EYesNo.YES.getIntValue())
|
LocalDate today = LocalDate.now();
|
||||||
.build());
|
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE;
|
||||||
|
CurrentMonthVO currentMonthVO = retailAchieveService.getCurrentMonthPV(today.format(formatter), userId, pkCountry, systemType);
|
||||||
|
if(ObjectUtil.isNotEmpty(currentMonthVO)
|
||||||
|
&& currentMonthVO.getTotalCurrentMonthPV().compareTo(SysConstants.TOTAL_AREA_PV) >= 0
|
||||||
|
&& currentMonthVO.getSmallCurrentMonthPV().compareTo(SysConstants.SMALL_AREA_PV) >=0
|
||||||
|
){
|
||||||
|
|
||||||
|
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||||
|
.regionStatus(EYesNo.YES.getIntValue())
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return AjaxResult.success(RetailMemberRegionVO.builder()
|
||||||
|
.regionStatus(EYesNo.YES.getIntValue())
|
||||||
|
.build());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// if(ObjectUtil.isNotEmpty(retailAchieve.getArealPv())
|
// if(ObjectUtil.isNotEmpty(retailAchieve.getArealPv())
|
||||||
// && result.getTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.TOTAL_AREA_PV) >= 0
|
// && result.getTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.TOTAL_AREA_PV) >= 0
|
||||||
|
@ -216,6 +233,7 @@ public class RetailMemberController extends BaseController {
|
||||||
|
|
||||||
CuMemberRetailRegionExt cuMemberRetailRegionExt = iCuMemberRetailRegionService.getRegionByMember(userId, EGrade.S_VIP.getValue(), systemType);
|
CuMemberRetailRegionExt cuMemberRetailRegionExt = iCuMemberRetailRegionService.getRegionByMember(userId, EGrade.S_VIP.getValue(), systemType);
|
||||||
log.info("cuMemberRetailRegionExt -> {}", JSONUtil.toJsonStr(cuMemberRetailRegionExt));
|
log.info("cuMemberRetailRegionExt -> {}", JSONUtil.toJsonStr(cuMemberRetailRegionExt));
|
||||||
|
|
||||||
if (null != cuMemberRetailRegionExt) {
|
if (null != cuMemberRetailRegionExt) {
|
||||||
if (EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsRegion()) {
|
if (EYesNo.YES.getIntValue() == cuMemberRetailRegionExt.getIsRegion()) {
|
||||||
canSet = true;
|
canSet = true;
|
||||||
|
@ -234,12 +252,28 @@ public class RetailMemberController extends BaseController {
|
||||||
canSet = true;
|
canSet = true;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
|
LambdaQueryWrapper<CuMemberRetailRegion> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(CuMemberRetailRegion::getPkMember, userId);
|
||||||
|
int countNum = iCuMemberRetailRegionService.count(queryWrapper);
|
||||||
|
boolean notFirst = countNum > 0;
|
||||||
GradeDTO grade = gradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), pkCountry).getData();
|
GradeDTO grade = gradeServiceApi.getGradeByGradeValue(EGrade.S_VIP.getValue(), pkCountry).getData();
|
||||||
if(ObjectUtil.isNotEmpty(totalBoxNum)
|
if(ObjectUtil.isNotEmpty(totalBoxNum)
|
||||||
&& totalBoxNum.compareTo(grade.getBoxTotal()) >= 0
|
&& totalBoxNum.compareTo(grade.getBoxTotal()) >= 0
|
||||||
&& smallBoxNum.compareTo(grade.getBoxSmallTotal()) >=0
|
&& smallBoxNum.compareTo(grade.getBoxSmallTotal()) >=0
|
||||||
){
|
){
|
||||||
canSet = true;
|
if(notFirst){
|
||||||
|
LocalDate today = LocalDate.now();
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE;
|
||||||
|
CurrentMonthVO currentMonthVO = retailAchieveService.getCurrentMonthPV(today.format(formatter), userId, pkCountry, systemType);
|
||||||
|
if(ObjectUtil.isNotEmpty(currentMonthVO)
|
||||||
|
&& currentMonthVO.getTotalCurrentMonthPV().compareTo(SysConstants.TOTAL_AREA_PV) >= 0
|
||||||
|
&& currentMonthVO.getSmallCurrentMonthPV().compareTo(SysConstants.SMALL_AREA_PV) >=0
|
||||||
|
){
|
||||||
|
canSet = true;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
canSet = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// if(result.getTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.TOTAL_AREA_PV) >= 0
|
// if(result.getTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.TOTAL_AREA_PV) >= 0
|
||||||
// && result.getSmallRangeTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) >=0
|
// && result.getSmallRangeTotalPv().multiply(new BigDecimal("10000")).compareTo(SysConstants.SMALL_AREA_PV) >=0
|
||||||
|
|
|
@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
import com.hzs.common.domain.member.achieve.CuMemberRetailRange;
|
||||||
import com.hzs.retail.member.param.MarketDynamicsQueryDateParam;
|
import com.hzs.retail.member.param.MarketDynamicsQueryDateParam;
|
||||||
import com.hzs.retail.member.utils.PageResult;
|
import com.hzs.retail.member.utils.PageResult;
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
|
import com.hzs.retail.member.vo.*;
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
|
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
|
|
||||||
import com.hzs.retail.member.vo.MarketDynamicsDetailVO;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -115,5 +112,8 @@ public interface ICuMemberRetailAchieveService extends IService<CuMemberRetailRa
|
||||||
*/
|
*/
|
||||||
CuMemberRetailDataStatisticsResultVO getRetailDataStatisticsDetail(Long pkMember, Integer pkCountry, Integer systemType);
|
CuMemberRetailDataStatisticsResultVO getRetailDataStatisticsDetail(Long pkMember, Integer pkCountry, Integer systemType);
|
||||||
|
|
||||||
|
|
||||||
|
CurrentMonthVO getCurrentMonthPV(String date, Long pkMember, Integer pkCountry, Integer systemType);
|
||||||
|
|
||||||
PageResult<MarketDynamicsDetailVO> getMarketDynamics(MarketDynamicsQueryDateParam param);
|
PageResult<MarketDynamicsDetailVO> getMarketDynamics(MarketDynamicsQueryDateParam param);
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,10 +20,7 @@ import com.hzs.retail.member.param.MarketDynamicsQueryDateParam;
|
||||||
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
|
import com.hzs.retail.member.service.ICuMemberRetailAchieveService;
|
||||||
import com.hzs.retail.member.utils.DataStatisticsUtil;
|
import com.hzs.retail.member.utils.DataStatisticsUtil;
|
||||||
import com.hzs.retail.member.utils.PageResult;
|
import com.hzs.retail.member.utils.PageResult;
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailAchieveVO;
|
import com.hzs.retail.member.vo.*;
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsDetailVO;
|
|
||||||
import com.hzs.retail.member.vo.CuMemberRetailDataStatisticsResultVO;
|
|
||||||
import com.hzs.retail.member.vo.MarketDynamicsDetailVO;
|
|
||||||
import com.hzs.system.config.IGradeServiceApi;
|
import com.hzs.system.config.IGradeServiceApi;
|
||||||
import com.hzs.system.config.dto.GradeDTO;
|
import com.hzs.system.config.dto.GradeDTO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
@ -360,6 +357,22 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
||||||
int period = cuMemberSettlePeriod.getPkId();
|
int period = cuMemberSettlePeriod.getPkId();
|
||||||
return TableNameConstants.CU_MEMBER_RETAIL_S + period;
|
return TableNameConstants.CU_MEMBER_RETAIL_S + period;
|
||||||
}
|
}
|
||||||
|
private String getTableNameSpecial4Date(String localDate) {
|
||||||
|
CuMemberSettlePeriod cuMemberSettlePeriod =iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate);
|
||||||
|
if(ObjectUtil.isEmpty(cuMemberSettlePeriod)){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
int period = cuMemberSettlePeriod.getPkId();
|
||||||
|
return TableNameConstants.CU_MEMBER_RETAIL_RANGE + period;
|
||||||
|
}
|
||||||
|
private String getDayTableNameSpecial4Date(String localDate) {
|
||||||
|
CuMemberSettlePeriod cuMemberSettlePeriod =iCuMemberSettlePeriodService.getCuMemberSettlePeriodByDate(localDate);
|
||||||
|
if(ObjectUtil.isEmpty(cuMemberSettlePeriod)){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
int period = cuMemberSettlePeriod.getPkId();
|
||||||
|
return TableNameConstants.CU_MEMBER_RETAIL_S + period;
|
||||||
|
}
|
||||||
public static boolean isBeforeThreeAm() {
|
public static boolean isBeforeThreeAm() {
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
// 获取当天凌晨3点的时间(日期与当前日期相同,时间为03:00:00)
|
// 获取当天凌晨3点的时间(日期与当前日期相同,时间为03:00:00)
|
||||||
|
@ -637,6 +650,50 @@ public class CuMemberRetailAchieveServiceImpl extends ServiceImpl<CuMemberRetail
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CurrentMonthVO getCurrentMonthPV(String date, Long pkMember, Integer pkCountry, Integer systemType) {
|
||||||
|
Long userId = SecurityUtils.getUserId();
|
||||||
|
LocalDate today = LocalDate.now();
|
||||||
|
String yesterdayDate;
|
||||||
|
String memberRetailTable = TableNameConstants.CU_MEMBER_RETAIL_S;
|
||||||
|
if (today.getDayOfMonth() != 1) {
|
||||||
|
LocalDate previousDay = today.minusDays(1);
|
||||||
|
yesterdayDate = previousDay.format(DateTimeFormatter.ISO_LOCAL_DATE);
|
||||||
|
memberRetailTable = getTableNameSpecial4Date(yesterdayDate);
|
||||||
|
}
|
||||||
|
String memberSecondTable = getDayTableNameSpecial();
|
||||||
|
//查询直推会员
|
||||||
|
List<Long> pkMemberList = baseMapper.selectDirectPushByPkMember(pkMember, systemType);
|
||||||
|
pkMemberList.add(userId);
|
||||||
|
CuMemberRetailAchieveVO memberAchieveVO = CuMemberRetailAchieveVO.builder()
|
||||||
|
.memberRetailTable(memberRetailTable)
|
||||||
|
.memberRetailSTable(memberSecondTable)
|
||||||
|
.pkMemberList(pkMemberList).systemType(systemType).build();
|
||||||
|
List<CuMemberRetailDataStatisticsDetailVO> statisticsDetailVOList = baseMapper.getRetailDataStatisticsDetail(memberAchieveVO);
|
||||||
|
CuMember cuMember = iCuMemberService.queryMember(userId);
|
||||||
|
BigAndSmallRangeVO bigAndSmallRangeVO = DataStatisticsUtil.getBigAndSmallRangeVO(statisticsDetailVOList, cuMember);
|
||||||
|
MarketDynamicsQueryDateParam param = new MarketDynamicsQueryDateParam();
|
||||||
|
DataStatisticsUtil.setQueryDateParam(param);
|
||||||
|
param.setCurrentDayTableName(memberSecondTable);
|
||||||
|
param.setCurrentMonthTableName(memberRetailTable);
|
||||||
|
param.setLastMonthTableName(getDayTableName(param.getLastMonthDate()));
|
||||||
|
List<MarketDynamicsDetailVO> detailVOList = baseMapper.getMarketDynamicsDetail(param);
|
||||||
|
BigDecimal totalMouthPV = detailVOList.stream()
|
||||||
|
.map(MarketDynamicsDetailVO::getCurrentMonthPv)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
BigDecimal bigMouthPV = BigDecimal.ZERO;
|
||||||
|
MarketDynamicsDetailVO bigRange = detailVOList.stream().filter(vo -> {
|
||||||
|
assert bigAndSmallRangeVO != null;
|
||||||
|
return vo.getPkId().equals(bigAndSmallRangeVO.getBigRangeId());
|
||||||
|
}).findFirst().orElse(null);
|
||||||
|
if(ObjectUtil.isNotEmpty(bigRange)){
|
||||||
|
bigMouthPV = bigRange.getCurrentMonthPv();
|
||||||
|
}
|
||||||
|
BigDecimal smallMountPV = totalMouthPV.subtract(bigMouthPV);
|
||||||
|
return CurrentMonthVO.builder().smallCurrentMonthPV(smallMountPV).totalCurrentMonthPV(totalMouthPV).build();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<MarketDynamicsDetailVO> getMarketDynamics(MarketDynamicsQueryDateParam param) {
|
public PageResult<MarketDynamicsDetailVO> getMarketDynamics(MarketDynamicsQueryDateParam param) {
|
||||||
Long pkMember = SecurityUtils.getUserId();
|
Long pkMember = SecurityUtils.getUserId();
|
||||||
|
|
|
@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
|
||||||
import com.hzs.common.core.enums.EYesNo;
|
import com.hzs.common.core.enums.EYesNo;
|
||||||
import com.hzs.common.domain.member.base.CuMember;
|
import com.hzs.common.domain.member.base.CuMember;
|
||||||
import com.hzs.retail.member.param.MarketDynamicsQueryDateParam;
|
import com.hzs.retail.member.param.MarketDynamicsQueryDateParam;
|
||||||
|
import com.hzs.retail.member.vo.BigAndSmallRangeVO;
|
||||||
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;
|
||||||
import com.hzs.retail.member.vo.MarketDynamicsDetailVO;
|
import com.hzs.retail.member.vo.MarketDynamicsDetailVO;
|
||||||
|
@ -309,4 +310,55 @@ public class DataStatisticsUtil {
|
||||||
// .lastMonthDate(lastDayOfPreviousMonth.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))
|
// .lastMonthDate(lastDayOfPreviousMonth.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))
|
||||||
// .build();
|
// .build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static CuMemberRetailDataStatisticsDetailVO getBigRangeWithPV(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, CuMember cuMember){
|
||||||
|
Long pkId = cuMember.getPkId();
|
||||||
|
// 非激活直接返0
|
||||||
|
// 激活判断上一天的ENABLE_STATUS 0为正常 1为当天激活 不计算日结数据
|
||||||
|
if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){
|
||||||
|
return CuMemberRetailDataStatisticsDetailVO.builder()
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
calcDetailVOTotalField(detailVOList, pkId);
|
||||||
|
addVirtualBranch(detailVOList, pkId);
|
||||||
|
CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId);
|
||||||
|
if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){
|
||||||
|
// 昨日非激活 排除昨日日结表数据
|
||||||
|
excludeDailySettlementData(detailVOList);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
// 排除注水数据
|
||||||
|
excludeWaterInjectionData(detailVOList, pkId);
|
||||||
|
}
|
||||||
|
return getBigRangePVDetailVO(detailVOList, pkId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static BigAndSmallRangeVO getBigAndSmallRangeVO(List<CuMemberRetailDataStatisticsDetailVO> detailVOList, CuMember cuMember){
|
||||||
|
Long pkId = cuMember.getPkId();
|
||||||
|
BigAndSmallRangeVO bigAndSmallRangeVO = new BigAndSmallRangeVO();
|
||||||
|
// 非激活直接返0
|
||||||
|
// 激活判断上一天的ENABLE_STATUS 0为正常 1为当天激活 不计算日结数据
|
||||||
|
if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
calcDetailVOTotalField(detailVOList, pkId);
|
||||||
|
addVirtualBranch(detailVOList, pkId);
|
||||||
|
CuMemberRetailDataStatisticsDetailVO total = getDetailVOByPKID(detailVOList, pkId);
|
||||||
|
if(EYesNo.NO.getIntValue() == cuMember.getIsActivate()){
|
||||||
|
// 昨日非激活 排除昨日日结表数据
|
||||||
|
excludeDailySettlementData(detailVOList);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
// 排除注水数据
|
||||||
|
excludeWaterInjectionData(detailVOList, pkId);
|
||||||
|
}
|
||||||
|
CuMemberRetailDataStatisticsDetailVO big = getBigRangePVDetailVO(detailVOList, pkId);
|
||||||
|
bigAndSmallRangeVO.setBigRangeId(big.getPkId());
|
||||||
|
List<Long> smallIdList = detailVOList.stream()
|
||||||
|
.map(CuMemberRetailDataStatisticsDetailVO::getPkId).filter(id -> !id.equals(big.getPkId())).collect(Collectors.toList());
|
||||||
|
bigAndSmallRangeVO.setSmallRangeId(smallIdList);
|
||||||
|
return bigAndSmallRangeVO;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.hzs.retail.member.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class BigAndSmallRangeVO implements Serializable {
|
||||||
|
private Long bigRangeId;
|
||||||
|
private List<Long> smallRangeId;
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
package com.hzs.retail.member.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class CurrentMonthVO implements Serializable {
|
||||||
|
private BigDecimal totalCurrentMonthPV;
|
||||||
|
private BigDecimal smallCurrentMonthPV;
|
||||||
|
}
|
Loading…
Reference in New Issue