Browse Source

防控概览

dev
zhaoqifeng 3 years ago
parent
commit
d6b8fd6835
  1. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VaccinePieResultDTO.java
  2. 49
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java

2
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VaccinePieResultDTO.java

@ -19,4 +19,6 @@ public class VaccinePieResultDTO implements Serializable {
private String code;
private String value;
private String label;
private String ratio;
private String remark;
}

49
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java

@ -54,9 +54,12 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.IOException;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
/**
@ -624,13 +627,47 @@ public class IcVaccineServiceImpl extends BaseServiceImpl<IcVaccineDao, IcVaccin
}
}
List<VaccinePieResultDTO> list = baseDao.getVaccinePieData(formDTO);
list.forEach(item -> {
if (NumConstant.ZERO_STR.equals(item.getCode())) {
item.setLabel("未接种人数");
} else {
item.setLabel("接种" + item.getCode() + "针人数");
int total = 0;
if (CollectionUtils.isNotEmpty(list)) {
total = list.stream().mapToInt(item -> Integer.parseInt(item.getValue())).sum();
AtomicBoolean flag = new AtomicBoolean(false);
int finalTotal = total;
list.forEach(item -> {
if (NumConstant.ZERO_STR.equals(item.getCode())) {
item.setLabel("未接种人数");
item.setRemark("未接种"+ item.getValue() +"人");
flag.set(true);
} else {
item.setLabel("接种" + item.getCode() + "针人数");
item.setRemark("接种" + item.getCode() + "针" + item.getValue() + "人");
}
BigDecimal radio = new BigDecimal("0.00");
if (NumConstant.ZERO != finalTotal) {
BigDecimal sum = new BigDecimal(finalTotal);
BigDecimal count = new BigDecimal(item.getValue());
BigDecimal hundred = new BigDecimal(NumConstant.ONE_HUNDRED);
radio = count.multiply(hundred).divide(sum, NumConstant.TWO, RoundingMode.HALF_UP);
}
item.setRatio(radio.stripTrailingZeros().toPlainString().concat("%"));
});
if (!flag.get()) {
VaccinePieResultDTO dto = new VaccinePieResultDTO();
dto.setLabel("未接种人数");
dto.setCode(NumConstant.ZERO_STR);
dto.setValue(NumConstant.ZERO_STR);
dto.setRatio("0%");
dto.setRemark("未接种0人");
list.add(dto);
}
});
} else {
VaccinePieResultDTO dto = new VaccinePieResultDTO();
dto.setLabel("未接种人数");
dto.setCode(NumConstant.ZERO_STR);
dto.setValue(NumConstant.ZERO_STR);
dto.setRatio("0%");
dto.setRemark("未接种0人");
list.add(dto);
}
return list;
}

Loading…
Cancel
Save