linwe
2024-05-28 0ae58361b572a82a8ff1be2256c0d25fa5ec3ea4
src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcOrderServiceImpl.java
@@ -6,7 +6,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.eCallEventTwo.dto.EcOrderDTO;
import org.springblade.modules.eCallEventTwo.dto.*;
import org.springblade.modules.eCallEventTwo.entity.ECallEventTwoEntity;
import org.springblade.modules.eCallEventTwo.entity.EcOrder;
import org.springblade.modules.eCallEventTwo.mapper.EcOrderMapper;
@@ -15,8 +15,12 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * EcOrderService业务层处理
@@ -115,4 +119,76 @@
         System.out.println("更新第" + pageNum + "页" + b);
      }
   }
   /**
    * 统计办结率
    */
   public Map<String, String> getCount(Map<String, String> map) {
      // 统计订单
      EcOrderDTO ecOrderDTO = new EcOrderDTO();
      int i = baseMapper.selectEcOrderCount(ecOrderDTO);
      // 统计派发
      EcDispatchDTO ecDispatchDTO = new EcDispatchDTO();
      int i1 = baseMapper.selectEcDispatchCount(ecDispatchDTO);
      // 统计处理
      EcHandleDTO ecHandleDTO = new EcHandleDTO();
      int i2 = baseMapper.selectEcHandleCount(ecHandleDTO);
      // 统计回访
      EcOrderCheckDTO ecOrderCheckDTO = new EcOrderCheckDTO();
      int i3 = baseMapper.selectEcOrderCheckCount(ecOrderCheckDTO);
      // 统计办结
      EcOrderDoneDTO ecOrderDoneDTO = new EcOrderDoneDTO();
      int i4 = baseMapper.selectEcOrderDoneCount(ecOrderDoneDTO);
      // 统计答复
      EcOrderRespDTO ecOrderRespDTO = new EcOrderRespDTO();
      int i5 = baseMapper.selectEcOrderRespCount(ecOrderRespDTO);
      // 统计核实
      EcOrderReviewDTO ecOrderReviewDTO = new EcOrderReviewDTO();
      int i6 = baseMapper.selectEcOrderReviewCount(ecOrderReviewDTO);
      // 统计督办
      EcOrderSuperviseDTO ecOrderSuperviseDTO = new EcOrderSuperviseDTO();
      int i7 = baseMapper.selectEcOrderSuperviseCount(ecOrderSuperviseDTO);
      // 工单数   派发单数   办理单数(率)   办结单数(率)   答复单数(率)   回访单数(率)   核实单数   督办单数
      Map<String, String> result = new HashMap<>();
      // 工单数
      result.put("order", String.valueOf(i));
      // 派发单数(率)
      result.put("dispatchRate", getRate(i1, i));
      // 办理单数(率)
      result.put("handRate", getRate(i2, i));
      // 办结单数(率)
      result.put("checkRate", getRate(i3, i));
      // 答复单数(率)
      result.put("doneRate", getRate(i4, i));
      // 回访单数(率)
      result.put("respRate", getRate(i5, i));
      // 核实单数(率)
      result.put("reviewRate", getRate(i6, i));
      // 督办单数
      result.put("supervise", String.valueOf(i7));
      // 返回结果
      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; // 除数
      // 将int转换为BigDecimal
      BigDecimal bdDividend = BigDecimal.valueOf(dividend);
      BigDecimal bdDivisor = BigDecimal.valueOf(divisor);
      // 执行除法操作,设置精度(scale)和舍入模式(RoundingMode)
      int scale = 2; // 保留两位小数
      RoundingMode roundingMode = RoundingMode.HALF_UP; // 四舍五入
      // 进行除法运算
      BigDecimal result = bdDividend.divide(bdDivisor, scale, roundingMode);
      return result.toString();
   }
}