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.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
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.dto.YearMoneyDTO;
|
||||||
import com.jero.index.vo.*;
|
import com.jero.index.vo.*;
|
||||||
import com.jero.project.mapper.PayWorkingGroupMapper;
|
import com.jero.project.mapper.PayWorkingGroupMapper;
|
||||||
@@ -31,6 +33,8 @@ public class IndexService {
|
|||||||
private IPayWorkingGroupService payWorkingGroupService;
|
private IPayWorkingGroupService payWorkingGroupService;
|
||||||
@Resource
|
@Resource
|
||||||
private PayWorkingGroupMapper payWorkingGroupMapper;
|
private PayWorkingGroupMapper payWorkingGroupMapper;
|
||||||
|
@Resource
|
||||||
|
private ISysBaseAPI sysBaseAPI;
|
||||||
|
|
||||||
public LineChartVO lineChart() {
|
public LineChartVO lineChart() {
|
||||||
String year = String.valueOf(DateUtil.year(new DateTime()));
|
String year = String.valueOf(DateUtil.year(new DateTime()));
|
||||||
@@ -220,17 +224,28 @@ public class IndexService {
|
|||||||
}else {
|
}else {
|
||||||
amountClassDTOS = payWorkingGroupMapper.amountClass1(year,column,departCode);
|
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);
|
BigDecimal all = amountClassDTOS.stream().map(AmountClassDTO::getMoney).reduce(BigDecimal.ZERO,BigDecimal::add);
|
||||||
List<PieChartVO> pieChartVOS = new ArrayList<>();
|
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 pieChartVO = new PieChartVO();
|
||||||
pieChartVO.setName(amountClassDTO.getChargeUse());
|
pieChartVO.setName(chargeUse);
|
||||||
BigDecimal divide = amountClassDTO.getMoney()
|
BigDecimal divide;
|
||||||
.divide(all,3,RoundingMode.HALF_DOWN)
|
if (all.equals(BigDecimal.ZERO)){
|
||||||
.multiply(new BigDecimal(100))
|
divide = BigDecimal.ZERO;
|
||||||
.setScale(1, RoundingMode.UNNECESSARY);
|
}else {
|
||||||
|
divide = money
|
||||||
|
.divide(all,3,RoundingMode.HALF_DOWN)
|
||||||
|
.multiply(new BigDecimal(100))
|
||||||
|
.setScale(1, RoundingMode.UNNECESSARY);
|
||||||
|
}
|
||||||
|
|
||||||
pieChartVO.setValue(String.valueOf(divide));
|
pieChartVO.setValue(String.valueOf(divide));
|
||||||
pieChartVO.setMoney(String.valueOf(amountClassDTO.getMoney()));
|
pieChartVO.setMoney(String.valueOf(money));
|
||||||
pieChartVOS.add(pieChartVO);
|
pieChartVOS.add(pieChartVO);
|
||||||
}
|
}
|
||||||
return pieChartVOS;
|
return pieChartVOS;
|
||||||
|
|||||||
Reference in New Issue
Block a user