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 code;
private String value; private String value;
private String label; 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.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -624,13 +627,47 @@ public class IcVaccineServiceImpl extends BaseServiceImpl<IcVaccineDao, IcVaccin
} }
} }
List<VaccinePieResultDTO> list = baseDao.getVaccinePieData(formDTO); List<VaccinePieResultDTO> list = baseDao.getVaccinePieData(formDTO);
list.forEach(item -> { int total = 0;
if (NumConstant.ZERO_STR.equals(item.getCode())) { if (CollectionUtils.isNotEmpty(list)) {
item.setLabel("未接种人数"); total = list.stream().mapToInt(item -> Integer.parseInt(item.getValue())).sum();
} else { AtomicBoolean flag = new AtomicBoolean(false);
item.setLabel("接种" + item.getCode() + "针人数"); 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; return list;
} }

Loading…
Cancel
Save