update 首页收入分类统计,增加部门筛选
This commit is contained in:
@@ -5,6 +5,8 @@ import com.google.common.collect.Lists;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.DictModel;
|
||||
import com.jero.index.dto.YearMoneyDTO;
|
||||
import com.jero.index.vo.*;
|
||||
import com.jero.project.mapper.PayWorkingGroupMapper;
|
||||
@@ -31,6 +33,8 @@ public class IndexService {
|
||||
private IPayWorkingGroupService payWorkingGroupService;
|
||||
@Resource
|
||||
private PayWorkingGroupMapper payWorkingGroupMapper;
|
||||
@Resource
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
|
||||
public LineChartVO lineChart() {
|
||||
String year = String.valueOf(DateUtil.year(new DateTime()));
|
||||
@@ -220,17 +224,28 @@ public class IndexService {
|
||||
}else {
|
||||
amountClassDTOS = payWorkingGroupMapper.amountClass1(year,column,departCode);
|
||||
}
|
||||
Map<String, BigDecimal> decimalMap = amountClassDTOS.stream().collect(Collectors.toMap(AmountClassDTO::getChargeUse, AmountClassDTO::getMoney));
|
||||
//获取所有类型
|
||||
List<DictModel> paymentChargeUses = sysBaseAPI.queryDictItemsByCode("payment_charge_use");
|
||||
List<String> paymentChargeUseList = paymentChargeUses.stream().map(DictModel::getValue).collect(Collectors.toList());
|
||||
BigDecimal all = amountClassDTOS.stream().map(AmountClassDTO::getMoney).reduce(BigDecimal.ZERO,BigDecimal::add);
|
||||
List<PieChartVO> pieChartVOS = new ArrayList<>();
|
||||
for (AmountClassDTO amountClassDTO : amountClassDTOS) {
|
||||
for (String chargeUse : paymentChargeUseList) {
|
||||
BigDecimal money = decimalMap.getOrDefault(chargeUse,BigDecimal.ZERO);
|
||||
PieChartVO pieChartVO = new PieChartVO();
|
||||
pieChartVO.setName(amountClassDTO.getChargeUse());
|
||||
BigDecimal divide = amountClassDTO.getMoney()
|
||||
.divide(all,3,RoundingMode.HALF_DOWN)
|
||||
.multiply(new BigDecimal(100))
|
||||
.setScale(1, RoundingMode.UNNECESSARY);
|
||||
pieChartVO.setName(chargeUse);
|
||||
BigDecimal divide;
|
||||
if (all.equals(BigDecimal.ZERO)){
|
||||
divide = BigDecimal.ZERO;
|
||||
}else {
|
||||
divide = money
|
||||
.divide(all,3,RoundingMode.HALF_DOWN)
|
||||
.multiply(new BigDecimal(100))
|
||||
.setScale(1, RoundingMode.UNNECESSARY);
|
||||
}
|
||||
|
||||
pieChartVO.setValue(String.valueOf(divide));
|
||||
pieChartVO.setMoney(String.valueOf(amountClassDTO.getMoney()));
|
||||
pieChartVO.setMoney(String.valueOf(money));
|
||||
pieChartVOS.add(pieChartVO);
|
||||
}
|
||||
return pieChartVOS;
|
||||
|
||||
Reference in New Issue
Block a user