From c10d6358b9f014375a13821465bc978d0c0da22e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Wed, 29 May 2024 17:17:08 +0800
Subject: [PATCH] 通过E呼即办数据统计
---
src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcOrderServiceImpl.java | 67 +++++++++++++++++++++++----------
1 files changed, 47 insertions(+), 20 deletions(-)
diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcOrderServiceImpl.java b/src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcOrderServiceImpl.java
index 761f83e..aa4624a 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcOrderServiceImpl.java
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcOrderServiceImpl.java
@@ -31,6 +31,8 @@
@Service
public class EcOrderServiceImpl extends ServiceImpl<EcOrderMapper, EcOrder> implements EcOrderService {
+ private static final int DEFAULT_SCALE = 2; // 默认保留两位小数
+ private static final RoundingMode DEFAULT_ROUNDING_MODE = RoundingMode.HALF_UP; // 默认四舍五入
@Autowired
private IECallEventTwoService ecOrderService;
@@ -101,12 +103,12 @@
}
@Override
- public boolean SynchronizeData() {
- processPages(100);
+ public boolean SynchronizeData(EcOrderParamDTO ecOrderParamDTO) {
+ processPages(100, ecOrderParamDTO);
return true;
}
- public void processPages(int pageSize) {
+ public void processPages(int pageSize, EcOrderParamDTO ecOrderParamDTO) {
long count = count(new QueryWrapper<>());
int totalPages = (int) Math.ceil((double) count / pageSize); // 计算总页数
@@ -121,51 +123,68 @@
}
/**
+ * 获取单位考核指标
+ * @return
+ */
+ @Override
+ public List<Map<String, String>> getUnitAssessmentIndicators() {
+ List<Map<String, String>> result = baseMapper.getUnitAssessmentIndicators();
+ return result;
+ }
+
+ /**
* 统计办结率
*/
- public Map<String, String> getCount(Map<String, String> map) {
+ @Override
+ public Map<String, String> getCount(EcOrderParamDTO ecOrderParamDTO) {
// 统计订单
- EcOrderDTO ecOrderDTO = new EcOrderDTO();
+ EcOrderDTO ecOrderDTO = BeanUtil.copy(ecOrderParamDTO, EcOrderDTO.class);
int i = baseMapper.selectEcOrderCount(ecOrderDTO);
// 统计派发
- EcDispatchDTO ecDispatchDTO = new EcDispatchDTO();
+ EcDispatchDTO ecDispatchDTO = BeanUtil.copy(ecOrderParamDTO, EcDispatchDTO.class);
int i1 = baseMapper.selectEcDispatchCount(ecDispatchDTO);
// 统计处理
- EcHandleDTO ecHandleDTO = new EcHandleDTO();
+ EcHandleDTO ecHandleDTO = BeanUtil.copy(ecOrderParamDTO, EcHandleDTO.class);
int i2 = baseMapper.selectEcHandleCount(ecHandleDTO);
// 统计回访
- EcOrderCheckDTO ecOrderCheckDTO = new EcOrderCheckDTO();
+ EcOrderCheckDTO ecOrderCheckDTO = BeanUtil.copy(ecOrderParamDTO, EcOrderCheckDTO.class);
int i3 = baseMapper.selectEcOrderCheckCount(ecOrderCheckDTO);
// 统计办结
- EcOrderDoneDTO ecOrderDoneDTO = new EcOrderDoneDTO();
+ EcOrderDoneDTO ecOrderDoneDTO = BeanUtil.copy(ecOrderParamDTO, EcOrderDoneDTO.class);
int i4 = baseMapper.selectEcOrderDoneCount(ecOrderDoneDTO);
// 统计答复
- EcOrderRespDTO ecOrderRespDTO = new EcOrderRespDTO();
+ EcOrderRespDTO ecOrderRespDTO = BeanUtil.copy(ecOrderParamDTO, EcOrderRespDTO.class);
int i5 = baseMapper.selectEcOrderRespCount(ecOrderRespDTO);
// 统计核实
- EcOrderReviewDTO ecOrderReviewDTO = new EcOrderReviewDTO();
+ EcOrderReviewDTO ecOrderReviewDTO = BeanUtil.copy(ecOrderParamDTO, EcOrderReviewDTO.class);
int i6 = baseMapper.selectEcOrderReviewCount(ecOrderReviewDTO);
// 统计督办
- EcOrderSuperviseDTO ecOrderSuperviseDTO = new EcOrderSuperviseDTO();
+ EcOrderSuperviseDTO ecOrderSuperviseDTO = BeanUtil.copy(ecOrderParamDTO, EcOrderSuperviseDTO.class);
int i7 = baseMapper.selectEcOrderSuperviseCount(ecOrderSuperviseDTO);
// 工单数 派发单数 办理单数(率) 办结单数(率) 答复单数(率) 回访单数(率) 核实单数 督办单数
Map<String, String> result = new HashMap<>();
// 工单数
- result.put("order", String.valueOf(i));
+ result.put("orderNumber", String.valueOf(i));
// 派发单数(率)
result.put("dispatchRate", getRate(i1, i));
+ result.put("dispatchNumber", String.valueOf(i1));
// 办理单数(率)
result.put("handRate", getRate(i2, i));
+ result.put("handNumber", String.valueOf(i2));
// 办结单数(率)
result.put("checkRate", getRate(i3, i));
+ result.put("checkNumber", String.valueOf(i3));
// 答复单数(率)
result.put("doneRate", getRate(i4, i));
+ result.put("doneNumber", String.valueOf(i4));
// 回访单数(率)
result.put("respRate", getRate(i5, i));
+ result.put("respNumber", String.valueOf(i5));
// 核实单数(率)
result.put("reviewRate", getRate(i6, i));
+ result.put("reviewNumber", String.valueOf(i6));
// 督办单数
- result.put("supervise", String.valueOf(i7));
+ result.put("superviseNumber", String.valueOf(i7));
// 返回结果
return result;
@@ -176,18 +195,26 @@
System.out.println(rate);
}
- public static String getRate(int dividend, int divisor) {
- // int dividend = 10; // 被除数
- // int divisor = 3; // 除数
+ public static String getRate(int dividend, int divisor) {
+ // 检查除数是否为0
+ if (divisor == 0) {
+ return "0";
+ }
// 将int转换为BigDecimal
BigDecimal bdDividend = BigDecimal.valueOf(dividend);
BigDecimal bdDivisor = BigDecimal.valueOf(divisor);
// 执行除法操作,设置精度(scale)和舍入模式(RoundingMode)
- int scale = 2; // 保留两位小数
- RoundingMode roundingMode = RoundingMode.HALF_UP; // 四舍五入
+ int scale = DEFAULT_SCALE;
+ RoundingMode roundingMode = DEFAULT_ROUNDING_MODE;
// 进行除法运算
- BigDecimal result = bdDividend.divide(bdDivisor, scale, roundingMode);
+ BigDecimal result;
+ try {
+ result = bdDividend.divide(bdDivisor, scale, roundingMode);
+ } catch (ArithmeticException e) {
+ // 处理因除数为0或其他原因引发的算术异常
+ throw new RuntimeException("除法运算出错", e);
+ }
return result.toString();
}
--
Gitblit v1.9.3