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

修改百分比,增加小数

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