|
@@ -344,24 +344,29 @@ public class SubInfoQueryServiceImpl implements SubInfoQueryService {
|
|
|
queryVO.setStatus(null);
|
|
|
List<SubInfoGxj> listTotal = subInfoMapper.queryStatistics(queryVO);
|
|
|
Map<String, Long> collect1 = listTotal.stream().collect(Collectors.groupingBy(SubInfoGxj::getStatus, Collectors.counting()));
|
|
|
- Long zjNum1 = collect1.getOrDefault(SubInfoStatusEnum.ZJ.getCode(), 0L);
|
|
|
- Long tcNum1 = collect1.getOrDefault(SubInfoStatusEnum.TC.getCode(), 0L);
|
|
|
- Long xjNum1 = collect1.getOrDefault(SubInfoStatusEnum.XJ.getCode(), 0L);
|
|
|
+ Long zjNum = collect1.getOrDefault(SubInfoStatusEnum.ZJ.getCode(), 0L);
|
|
|
+ Long tcNum = collect1.getOrDefault(SubInfoStatusEnum.TC.getCode(), 0L);
|
|
|
+ Long xjNum = collect1.getOrDefault(SubInfoStatusEnum.XJ.getCode(), 0L);
|
|
|
// 开工数、开复工率、投产率 -- 已入规、未入规、入规率
|
|
|
- long kgNum = zjNum1 + tcNum1;
|
|
|
+ long kgNum = zjNum + tcNum;
|
|
|
vo.setYkgNum(kgNum);
|
|
|
- long rgNum = listTotal.stream().filter(SubInfoGxj::getBoolRg).count();
|
|
|
+
|
|
|
+ // long rgNum = listTotal.stream().filter(SubInfoGxj::getBoolRg).count();
|
|
|
+ long rgNum = list.stream().filter(SubInfoGxj::getBoolRg).count();
|
|
|
vo.setYrgNum(rgNum);
|
|
|
- vo.setWrgNum(listTotal.size() - rgNum);
|
|
|
- BigDecimal total = BigDecimal.valueOf(zjNum1 + tcNum1 + xjNum1);
|
|
|
+ // vo.setWrgNum(listTotal.size() - rgNum);
|
|
|
+ vo.setWrgNum(list.size() - rgNum);
|
|
|
+ BigDecimal total = BigDecimal.valueOf(zjNum + tcNum + xjNum);
|
|
|
+ // vo.setRgRate(BigDecimal.valueOf(rgNum).multiply(BigDecimal.valueOf(100)).divide(total, 2, RoundingMode.HALF_UP));
|
|
|
+ vo.setRgRate(list.size() == 0 ? BigDecimal.ZERO : BigDecimal.valueOf(rgNum).multiply(BigDecimal.valueOf(100)).divide(new BigDecimal(list.size()), 2, RoundingMode.HALF_UP));
|
|
|
+
|
|
|
+
|
|
|
if (total.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
vo.setKfgRate(BigDecimal.valueOf(kgNum).multiply(BigDecimal.valueOf(100)).divide(total, 2, RoundingMode.HALF_UP));
|
|
|
- vo.setTcRate(BigDecimal.valueOf(tcNum1).multiply(BigDecimal.valueOf(100)).divide(total, 2, RoundingMode.HALF_UP));
|
|
|
- vo.setRgRate(BigDecimal.valueOf(rgNum).multiply(BigDecimal.valueOf(100)).divide(total, 2, RoundingMode.HALF_UP));
|
|
|
+ vo.setTcRate(BigDecimal.valueOf(tcNum).multiply(BigDecimal.valueOf(100)).divide(total, 2, RoundingMode.HALF_UP));
|
|
|
}else {
|
|
|
vo.setKfgRate(BigDecimal.ZERO);
|
|
|
vo.setTcRate(BigDecimal.ZERO);
|
|
|
- vo.setRgRate(BigDecimal.ZERO);
|
|
|
}
|
|
|
return vo;
|
|
|
}
|