From 88214b60acac265ab2f8fd57560e6ee5a8a3bfde Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Thu, 13 Jun 2024 21:43:17 +0800
Subject: [PATCH] 启动失败

---
 src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcOrderServiceImpl.java |  129 +++++++++++++++++++++++++++++++-----------
 1 files changed, 94 insertions(+), 35 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..3157730 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
@@ -5,6 +5,9 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jetbrains.annotations.NotNull;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.modules.eCallEventTwo.dto.*;
 import org.springblade.modules.eCallEventTwo.entity.ECallEventTwoEntity;
@@ -18,7 +21,6 @@
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -31,9 +33,12 @@
 @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;
 
+	protected static final Logger log = LoggerFactory.getLogger(EcOrderServiceImpl.class);
 	/**
 	 * 查询工单
 	 *
@@ -101,18 +106,19 @@
 	}
 
 	@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); // 计算总页数
 
 		for (int pageNum = 1; pageNum <= totalPages; pageNum++) {
 			Page<EcOrder> page = new Page<>(pageNum, pageSize);
-			IPage<EcOrder> resultPage = baseMapper.selectPage(page, new QueryWrapper<>());
+			QueryWrapper<EcOrder> objectQueryWrapper = new QueryWrapper<>();
+			IPage<EcOrder> resultPage = baseMapper.selectPage(page, objectQueryWrapper);
 			List<EcOrder> records = resultPage.getRecords();
 			List<ECallEventTwoEntity> recordEntityList = BeanUtil.copy(records, ECallEventTwoEntity.class);
 			boolean b = ecOrderService.saveOrUpdateBatch(recordEntityList);
@@ -121,73 +127,126 @@
 	}
 
 	/**
+	 * 获取单位考核指标
+	 * @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 IPage<EcOrderDTO> getCount(IPage<EcOrderDTO> page, EcOrderParamDTO ecOrderParamDTO) {
+		// acpt_org_code
+		List<EcOrderDTO> result = baseMapper.getOrgCode(page, ecOrderParamDTO);
+		for (EcOrderDTO ecOrderDTO : result) {
+			if (ecOrderParamDTO.getTagMain().equals("Y")) {
+				ecOrderParamDTO.setSinkOrgCode(ecOrderDTO.getSinkOrgCode());
+			} else {
+				ecOrderParamDTO.setSubjectOrgCode(ecOrderDTO.getSubjectOrgCode());
+			}
+			// 统计办结率
+			buildRate(ecOrderParamDTO, ecOrderDTO);
+			// 获取单位名称
+			if (ecOrderParamDTO.getTagMain().equals("Y")) {
+				ecOrderDTO.setOrgCode(ecOrderDTO.getSinkOrgCode());
+				ecOrderDTO.setOrgName(ecOrderDTO.getSinkOrgName());
+			} else {
+				ecOrderDTO.setOrgCode(ecOrderDTO.getSubjectOrgCode());
+				ecOrderDTO.setOrgName(ecOrderDTO.getSubjectOrgName());
+			}
+		}
+		return page.setRecords(result);
+	}
+
+	@NotNull
+	private void buildRate(EcOrderParamDTO ecOrderParamDTO, EcOrderDTO ecOrder) {
 		// 统计订单
-		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<>();
+		// Map<String, String> result = new HashMap<>();
 		// 工单数
-		result.put("order", String.valueOf(i));
+		// result.put("orderNumber", String.valueOf(i));
+		ecOrder.setOrderNumber(String.valueOf(i));
 		// 派发单数(率)
-		result.put("dispatchRate", getRate(i1, i));
+		// result.put("dispatchRate", getRate(i1, i));
+		ecOrder.setDispatchRate(getRate(i1, i));
+		// result.put("dispatchNumber", String.valueOf(i1));
+		ecOrder.setDispatchNumber(String.valueOf(i1));
 		// 办理单数(率)
-		result.put("handRate", getRate(i2, i));
+		// result.put("handRate", getRate(i2, i));
+		ecOrder.setHandRate(getRate(i2, i));
+		// result.put("handNumber", String.valueOf(i2));
 		// 办结单数(率)
-		result.put("checkRate", getRate(i3, i));
+		// result.put("checkRate", getRate(i3, i));
+		ecOrder.setCheckRate(getRate(i3, i));
+		// result.put("checkNumber", String.valueOf(i3));
 		// 答复单数(率)
-		result.put("doneRate", getRate(i4, i));
+		// result.put("doneRate", getRate(i4, i));
+		ecOrder.setDoneRate(getRate(i4, i));
+		// result.put("doneNumber", String.valueOf(i4));
 		// 回访单数(率)
-		result.put("respRate", getRate(i5, i));
+		// result.put("respRate", getRate(i5, i));
+		ecOrder.setRespRate(getRate(i5, i));
+		// result.put("respNumber", String.valueOf(i5));
 		// 核实单数(率)
-		result.put("reviewRate", getRate(i6, i));
+		// result.put("reviewRate", getRate(i6, i));
+		ecOrder.setReviewRate(getRate(i6, i));
+		// result.put("reviewNumber", String.valueOf(i6));
 		// 督办单数
-		result.put("supervise", String.valueOf(i7));
+		// result.put("superviseNumber", String.valueOf(i7));
+		ecOrder.setSuperviseNumber(String.valueOf(i7));
 		// 返回结果
-		return result;
-
+		// return result;
 	}
 
-	public static void main(String[] args) {
-		String rate = getRate(10, 3);
-		System.out.println(rate);
-	}
 
 	public static String getRate(int dividend, int divisor) {
-		// int dividend = 10; // 被除数
-		// int divisor = 3; // 除数
-
+		// 检查除数是否为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