提交 c124c1b1 authored 作者: 吕本才's avatar 吕本才

修改百分比,增加小数

上级 e28f52ca
...@@ -18,6 +18,8 @@ import org.springframework.beans.BeanUtils; ...@@ -18,6 +18,8 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List; import java.util.List;
/** /**
...@@ -68,7 +70,10 @@ public class DealerBaseInfoImpl extends ServiceImpl<DealerBaseInfoMapper, Dealer ...@@ -68,7 +70,10 @@ public class DealerBaseInfoImpl extends ServiceImpl<DealerBaseInfoMapper, Dealer
// 查询当前的轮次 // 查询当前的轮次
WechatDealerRoundInfoRes roundInfoRes = new WechatDealerRoundInfoRes(); WechatDealerRoundInfoRes roundInfoRes = new WechatDealerRoundInfoRes();
BeanUtils.copyProperties(dealerBaseInfo, roundInfoRes); BeanUtils.copyProperties(dealerBaseInfo, roundInfoRes);
roundInfoRes.setPaymentPercentage(Math.round(dealerBaseInfo.getPaymentTtl() * 100.0 / dealerBaseInfo.getGoalTtlAct()) + "%"); // 获取支付百分比 保留两位小数点
roundInfoRes.setPaymentPercentage( getPercentage(dealerBaseInfo.getPaymentTtl(),dealerBaseInfo.getGoalTtlAct()) + "%");
// 轮次 // 轮次
roundInfoRes.setRoundTime(round); roundInfoRes.setRoundTime(round);
...@@ -79,10 +84,16 @@ public class DealerBaseInfoImpl extends ServiceImpl<DealerBaseInfoMapper, Dealer ...@@ -79,10 +84,16 @@ public class DealerBaseInfoImpl extends ServiceImpl<DealerBaseInfoMapper, Dealer
.eq(DealerRoundResult::getDealerId, dealerId)); .eq(DealerRoundResult::getDealerId, dealerId));
if (result != null) { if (result != null) {
roundInfoRes.setPaymentTtl(result.getPaymentTtl()); roundInfoRes.setPaymentTtl(result.getPaymentTtl());
roundInfoRes.setPaymentPercentage(Math.round(result.getPaymentTtl() * 100.0 / dealerBaseInfo.getGoalTtlAct()) + "%"); roundInfoRes.setPaymentPercentage(getPercentage(result.getPaymentTtl(),dealerBaseInfo.getGoalTtlAct()) + "%");
} }
// 没有结果数据 数据怎么初始化 ?? // 没有结果数据 数据怎么初始化 ??
return roundInfoRes; return roundInfoRes;
} }
private String getPercentage(Integer paymentTtl, Integer goalTtlAct) {
return new BigDecimal(paymentTtl).multiply(new BigDecimal(100)).divide(new BigDecimal(goalTtlAct),2,RoundingMode.HALF_UP )
.toString();
}
} }
...@@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -23,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -87,7 +88,7 @@ public class DealerRoundInfoServiceImpl extends ServiceImpl<DealerRoundInfoMappe ...@@ -87,7 +88,7 @@ public class DealerRoundInfoServiceImpl extends ServiceImpl<DealerRoundInfoMappe
resultInfo.setRoundTime(dealerRoundInfoReq.getRoundTime()); resultInfo.setRoundTime(dealerRoundInfoReq.getRoundTime());
resultInfo.setPaymentTtl(dealerRoundInfoReq.getPaymentTtlNew()); resultInfo.setPaymentTtl(dealerRoundInfoReq.getPaymentTtlNew());
resultInfo.setPaymentTtlPre(dealerRoundInfoReq.getPaymentTtl()); resultInfo.setPaymentTtlPre(dealerRoundInfoReq.getPaymentTtl());
resultInfo.setPaymentPercentage(new BigDecimal(dealerRoundInfoReq.getPaymentTtlNew()).multiply(new BigDecimal(100)).divide(new BigDecimal(dealerRoundInfoReq.getGoalTtlAct()), 4, BigDecimal.ROUND_HALF_UP)); resultInfo.setPaymentPercentage(new BigDecimal(getPercentage(dealerRoundInfoReq.getPaymentTtl(), dealerRoundInfoReq.getGoalTtlAct(),4)));
resultInfo.setGoalTtlAct(dealerRoundInfoReq.getGoalTtlAct()); resultInfo.setGoalTtlAct(dealerRoundInfoReq.getGoalTtlAct());
resultInfo.setDealerCategory(dealerRoundInfoReq.getDealerCategory()); resultInfo.setDealerCategory(dealerRoundInfoReq.getDealerCategory());
...@@ -166,5 +167,10 @@ public class DealerRoundInfoServiceImpl extends ServiceImpl<DealerRoundInfoMappe ...@@ -166,5 +167,10 @@ public class DealerRoundInfoServiceImpl extends ServiceImpl<DealerRoundInfoMappe
return list; return list;
} }
private String getPercentage(Integer paymentTtl, Integer goalTtlAct,Integer scale) {
return new BigDecimal(paymentTtl)
.multiply(new BigDecimal(100))
.divide(new BigDecimal(goalTtlAct),scale, RoundingMode.HALF_UP)
.toString();
}
} }
...@@ -4,15 +4,20 @@ package com.ruoyi.dealer.service.impl; ...@@ -4,15 +4,20 @@ package com.ruoyi.dealer.service.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.dealer.domain.DealerBaseInfo;
import com.ruoyi.dealer.domain.DealerRoundResult; import com.ruoyi.dealer.domain.DealerRoundResult;
import com.ruoyi.dealer.domain.dto.DealerBigScreenGroupListRes; import com.ruoyi.dealer.domain.dto.DealerBigScreenGroupListRes;
import com.ruoyi.dealer.domain.dto.DealerBigScreenGroupResultDto; import com.ruoyi.dealer.domain.dto.DealerBigScreenGroupResultDto;
import com.ruoyi.dealer.domain.dto.DealerBigScreenGroupResultRes; import com.ruoyi.dealer.domain.dto.DealerBigScreenGroupResultRes;
import com.ruoyi.dealer.domain.dto.DealerRoundDetailListRes; import com.ruoyi.dealer.domain.dto.DealerRoundDetailListRes;
import com.ruoyi.dealer.mapper.DealerRoundResultMapper; import com.ruoyi.dealer.mapper.DealerRoundResultMapper;
import com.ruoyi.dealer.service.IDealerBaseInfoService;
import com.ruoyi.dealer.service.IDealerRoundResultService; import com.ruoyi.dealer.service.IDealerRoundResultService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -21,6 +26,9 @@ import java.util.List; ...@@ -21,6 +26,9 @@ import java.util.List;
*/ */
@Service @Service
public class DealerRoundResultServiceImpl extends ServiceImpl<DealerRoundResultMapper, DealerRoundResult> implements IDealerRoundResultService { public class DealerRoundResultServiceImpl extends ServiceImpl<DealerRoundResultMapper, DealerRoundResult> implements IDealerRoundResultService {
@Autowired
private IDealerBaseInfoService dealerBaseInfoService;
@Override @Override
public List<DealerBigScreenGroupListRes> groupList(String CategoryName) { public List<DealerBigScreenGroupListRes> groupList(String CategoryName) {
// 查询第一列分组的前几名 // 查询第一列分组的前几名
...@@ -42,7 +50,7 @@ public class DealerRoundResultServiceImpl extends ServiceImpl<DealerRoundResultM ...@@ -42,7 +50,7 @@ public class DealerRoundResultServiceImpl extends ServiceImpl<DealerRoundResultM
res.setGoalTtlAct(item.getGoalTtlAct()); res.setGoalTtlAct(item.getGoalTtlAct());
res.setPaymentTtl(item.getPaymentTtl()); res.setPaymentTtl(item.getPaymentTtl());
res.setPaymentPercentage(Math.round(item.getPaymentTtl() * 100.0 / item.getGoalTtlAct()) + "%"); res.setPaymentPercentage(getPercentage(item.getPaymentTtl(), item.getGoalTtlAct(), 4) + "%");
list.add(res); list.add(res);
}); });
...@@ -60,7 +68,7 @@ public class DealerRoundResultServiceImpl extends ServiceImpl<DealerRoundResultM ...@@ -60,7 +68,7 @@ public class DealerRoundResultServiceImpl extends ServiceImpl<DealerRoundResultM
res.setPaymentTtl(item.getPaymentTtl()); res.setPaymentTtl(item.getPaymentTtl());
res.setGoalTtlAct(item.getGoalTtlAct()); res.setGoalTtlAct(item.getGoalTtlAct());
res.setPaymentPercentage(Math.round(item.getPaymentPercentage()) + "%"); res.setPaymentPercentage(new BigDecimal(item.getPaymentPercentage()).setScale(4, RoundingMode.HALF_UP).toString() + "%");
list.add(res); list.add(res);
}); });
return list; return list;
...@@ -86,7 +94,7 @@ public class DealerRoundResultServiceImpl extends ServiceImpl<DealerRoundResultM ...@@ -86,7 +94,7 @@ public class DealerRoundResultServiceImpl extends ServiceImpl<DealerRoundResultM
res.setPaymentTtl(item.getPaymentTtl()); res.setPaymentTtl(item.getPaymentTtl());
res.setGoalTtlAct(item.getGoalTtlAct()); res.setGoalTtlAct(item.getGoalTtlAct());
res.setPaymentPercentage(Math.round(item.getPaymentTtl() * 100.0 / item.getGoalTtlAct()) + "%"); res.setPaymentPercentage(getPercentage(item.getPaymentTtl(), item.getGoalTtlAct(), 4) + "%");
list.add(res); list.add(res);
}); });
...@@ -97,26 +105,39 @@ public class DealerRoundResultServiceImpl extends ServiceImpl<DealerRoundResultM ...@@ -97,26 +105,39 @@ public class DealerRoundResultServiceImpl extends ServiceImpl<DealerRoundResultM
@Override @Override
public int initRoundInfo() { public int initRoundInfo() {
List<DealerRoundResult> round1Results = this.list(new LambdaQueryWrapper<DealerRoundResult>()
List<DealerRoundResult> round2Results = this.list(new LambdaQueryWrapper<DealerRoundResult>() .eq(DealerRoundResult::getRoundTime, 1)
.eq(DealerRoundResult::getRoundTime, 2)
); );
if(round2Results.size()>0){ if(round1Results.size()>0){
throw new RuntimeException("第二轮数据已存在"); throw new RuntimeException("轮次数据已存在");
} }
// 获取所有经销商信息 // 获取所有经销商信息
List<DealerRoundResult> resultList = this.list(new LambdaQueryWrapper<DealerRoundResult>() List<DealerBaseInfo> resultList = dealerBaseInfoService.list();
.eq(DealerRoundResult::getRoundTime, 1)
);
// 复制所有数据 // 复制所有数据
List<DealerRoundResult> roundResults = new ArrayList<>();
// 先清空id // 先清空id
resultList.forEach(item -> { roundResults.forEach(item -> {
item.setRoundTime(1);
item.setDealerId(item.getDealerId());
item.setResultId(null); item.setResultId(null);
item.setRoundTime(2); item.setDealerName(item.getDealerName());
item.setDealerCategory(item.getDealerCategory());
item.setPhone(item.getPhone());
item.setGoalTtlAct(item.getGoalTtlAct());
item.setPaymentTtl(item.getPaymentTtl());
item.setPaymentPercentage(item.getPaymentPercentage());
// 覆盖字段 // 覆盖字段
item.setGroupName(item.getSalesRegionGroupName()); item.setSalesRegionGroupName(item.getSalesRegionGroupName());
}); });
this.saveBatch(resultList); this.saveBatch(roundResults);
return resultList.size(); return resultList.size();
} }
private String getPercentage(Integer paymentTtl, Integer goalTtlAct,Integer scale) {
return new BigDecimal(paymentTtl)
.multiply(new BigDecimal(100))
.divide(new BigDecimal(goalTtlAct),scale, RoundingMode.HALF_UP)
.toString();
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论