空指针bug修复
This commit is contained in:
parent
dca0e3201c
commit
c42364cd9b
|
|
@ -32,6 +32,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
|
@ -275,7 +276,7 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
|
|||
processRaterDate.put("id", "processRate");
|
||||
processRaterDate.put("name", "故障处理率(已确认)");
|
||||
processRaterDate.put("value", total.compareTo(BigDecimal.valueOf(0)) > 0 ? (resolved.multiply(BigDecimal.valueOf(100))
|
||||
.divide(total, 2, BigDecimal.ROUND_HALF_UP) + "%") : 0);
|
||||
.divide(total, 2, RoundingMode.HALF_UP) + "%") : 0);
|
||||
|
||||
|
||||
//已解决+待确认 故障处理率
|
||||
|
|
@ -283,7 +284,7 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
|
|||
confirmedProcessRaterDate.put("id", "confirmedProcessRate");
|
||||
confirmedProcessRaterDate.put("name", "故障处理率(已确认+待确认)");
|
||||
confirmedProcessRaterDate.put("value", total.compareTo(BigDecimal.valueOf(0)) > 0 ? (resolved.add(confirmed).multiply(BigDecimal.valueOf(100))
|
||||
.divide(total, 2, BigDecimal.ROUND_HALF_UP) + "%") : 0);
|
||||
.divide(total, 2, RoundingMode.HALF_UP) + "%") : 0);
|
||||
|
||||
|
||||
//处理故障数量
|
||||
|
|
@ -301,7 +302,7 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
|
|||
oneRate.put("id", "oneSuccessRate");
|
||||
oneRate.put("name", "处理故障1次成功率");
|
||||
oneRate.put("value", handleTotal.compareTo(BigDecimal.valueOf(0)) > 0 ? (oneSuccess.multiply(BigDecimal.valueOf(100))
|
||||
.divide(handleTotal, 2, BigDecimal.ROUND_HALF_UP) + "%") : 0);
|
||||
.divide(handleTotal, 2, RoundingMode.HALF_UP) + "%") : 0);
|
||||
|
||||
|
||||
Map<String, Object> two = new LinkedHashMap<>();
|
||||
|
|
@ -313,7 +314,7 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
|
|||
twoRate.put("id", "twoSuccessRate");
|
||||
twoRate.put("name", "处理故障2次成功率");
|
||||
twoRate.put("value", handleTotal.compareTo(BigDecimal.valueOf(0)) > 0 ? (twoSuccess.multiply(BigDecimal.valueOf(100))
|
||||
.divide(handleTotal, 2, BigDecimal.ROUND_HALF_UP) + "%") : 0);
|
||||
.divide(handleTotal, 2, RoundingMode.HALF_UP) + "%") : 0);
|
||||
|
||||
|
||||
Map<String, Object> three = new LinkedHashMap<>();
|
||||
|
|
@ -325,23 +326,27 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
|
|||
threeRate.put("id", "threeSuccessRate");
|
||||
threeRate.put("name", "处理故障3次及以上成功率");
|
||||
threeRate.put("value", handleTotal.compareTo(BigDecimal.valueOf(0)) > 0 ? (threeSuccess.multiply(BigDecimal.valueOf(100))
|
||||
.divide(handleTotal, 2, BigDecimal.ROUND_HALF_UP) + "%") : 0);
|
||||
.divide(handleTotal, 2, RoundingMode.HALF_UP) + "%") : 0);
|
||||
|
||||
Map<String, Object> avgResolvedMap = repairHandleMapper.getAvgResolvedTime(query);
|
||||
Map<String, Object> avgResolvedTime = new LinkedHashMap<>();
|
||||
BigDecimal resolvedHour = (BigDecimal) avgResolvedMap.get("resolvedHour");
|
||||
BigDecimal resolvedNumber = (BigDecimal) avgResolvedMap.get("resolvedNumber");
|
||||
Object resolvedHourObj = avgResolvedMap.get("resolvedHour");
|
||||
Object resolvedNumberObj = avgResolvedMap.get("resolvedNumber");
|
||||
BigDecimal resolvedHour = new BigDecimal(resolvedHourObj != null ? resolvedHourObj.toString() : "0");
|
||||
BigDecimal resolvedNumber = new BigDecimal(resolvedNumberObj != null ? resolvedNumberObj.toString() : "0");
|
||||
avgResolvedTime.put("id", "avgResolvedTime");
|
||||
avgResolvedTime.put("name", "故障平均解决时长");
|
||||
avgResolvedTime.put("value", resolvedNumber.compareTo(BigDecimal.valueOf(0)) > 0 ? (resolvedHour.divide(resolvedNumber, 2, BigDecimal.ROUND_HALF_UP)) + " 小时" : 0);
|
||||
avgResolvedTime.put("value", resolvedNumber.compareTo(BigDecimal.valueOf(0)) > 0 ? (resolvedHour.divide(resolvedNumber, 2, RoundingMode.HALF_UP)) + " 小时" : 0);
|
||||
|
||||
Map<String, Object> avgFeedbackMap = repairHandleMapper.getAvgFeedbackTime(query);
|
||||
Map<String, Object> avgFeedbackTime = new LinkedHashMap<>();
|
||||
BigDecimal feedbackHour = (BigDecimal) avgFeedbackMap.get("feedbackHour");
|
||||
BigDecimal feedbackNumber = (BigDecimal) avgFeedbackMap.get("feedbackNumber");
|
||||
Object feedbackHourObj = avgFeedbackMap.get("feedbackHour");
|
||||
Object feedbackNumberObj = avgFeedbackMap.get("feedbackNumber");
|
||||
BigDecimal feedbackHour = new BigDecimal(feedbackHourObj != null ? feedbackHourObj.toString() : "0");
|
||||
BigDecimal feedbackNumber = new BigDecimal(feedbackNumberObj != null ? feedbackNumberObj.toString() : "0");
|
||||
avgFeedbackTime.put("id", "avgFeedbackTime");
|
||||
avgFeedbackTime.put("name", "故障平均处理时长");
|
||||
avgFeedbackTime.put("value", feedbackNumber.compareTo(BigDecimal.valueOf(0)) > 0 ? (feedbackHour.divide(feedbackNumber, 2, BigDecimal.ROUND_HALF_UP)) + " 小时" : 0);
|
||||
avgFeedbackTime.put("value", feedbackNumber.compareTo(BigDecimal.valueOf(0)) > 0 ? (feedbackHour.divide(feedbackNumber, 2, RoundingMode.HALF_UP)) + " 小时" : 0);
|
||||
|
||||
list.add(totalData);
|
||||
list.add(feedbackData);
|
||||
|
|
@ -373,7 +378,7 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
|
|||
}
|
||||
for (Map<String, Object> map : labelList) {
|
||||
String name = (String) map.get("name");
|
||||
BigDecimal num = (BigDecimal) map.get("num");
|
||||
BigDecimal num = new BigDecimal(map.get("num").toString());
|
||||
Map<String, Object> data = new LinkedHashMap<>();
|
||||
data.put("id", labelType + name);
|
||||
data.put("name", name);
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
|
@ -51,26 +52,26 @@ public class StatisticServiceImpl {
|
|||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
query.setOrg(org);
|
||||
Map<String, Object> data = repairTodoMapper.getWhole(query);
|
||||
BigDecimal total = (BigDecimal) data.get("total");
|
||||
BigDecimal resolved = (BigDecimal) data.get("resolved");
|
||||
BigDecimal feedback = (BigDecimal) data.get("feedback");
|
||||
BigDecimal unresolved = (BigDecimal) data.get("unresolved");
|
||||
BigDecimal handleAndDeclare = (BigDecimal) data.get("handleAndDeclare");
|
||||
BigDecimal total = new BigDecimal(data.get("total").toString());
|
||||
BigDecimal resolved = new BigDecimal(data.get("resolved").toString());
|
||||
BigDecimal feedback = new BigDecimal(data.get("feedback").toString());
|
||||
BigDecimal unresolved = new BigDecimal(data.get("unresolved").toString());
|
||||
BigDecimal handleAndDeclare = new BigDecimal(data.get("handleAndDeclare").toString());
|
||||
map.put("no", i + 1);
|
||||
map.put("name", org);
|
||||
map.put("total", total);
|
||||
map.put("resolved", resolved);
|
||||
map.put("resolvedRate", total.compareTo(BigDecimal.valueOf(0)) > 0 ? (resolved.multiply(BigDecimal.valueOf(100))
|
||||
.divide(total, 1, BigDecimal.ROUND_HALF_UP) + "%") : 0);
|
||||
.divide(total, 1, RoundingMode.HALF_UP) + "%") : 0);
|
||||
map.put("feedback", feedback);
|
||||
map.put("feedbackRate", total.compareTo(BigDecimal.valueOf(0)) > 0 ? (feedback.multiply(BigDecimal.valueOf(100))
|
||||
.divide(total, 1, BigDecimal.ROUND_HALF_UP) + "%") : 0);
|
||||
.divide(total, 1, RoundingMode.HALF_UP) + "%") : 0);
|
||||
map.put("unresolved", unresolved);
|
||||
map.put("unresolvedRate", total.compareTo(BigDecimal.valueOf(0)) > 0 ? (unresolved.multiply(BigDecimal.valueOf(100))
|
||||
.divide(total, 1, BigDecimal.ROUND_HALF_UP) + "%") : 0);
|
||||
.divide(total, 1, RoundingMode.HALF_UP) + "%") : 0);
|
||||
map.put("handleAndDeclare", handleAndDeclare);
|
||||
map.put("handleAndDeclareRate", total.compareTo(BigDecimal.valueOf(0)) > 0 ? (handleAndDeclare.multiply(BigDecimal.valueOf(100))
|
||||
.divide(total, 1, BigDecimal.ROUND_HALF_UP) + "%") : 0);
|
||||
.divide(total, 1, RoundingMode.HALF_UP) + "%") : 0);
|
||||
list.add(map);
|
||||
}
|
||||
return list;
|
||||
|
|
|
|||
Loading…
Reference in New Issue