From 30f1b989186505884e3e4567a2b39e5f12846bde Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Thu, 30 May 2024 19:31:08 +0800
Subject: [PATCH] 通过E呼即办数据统计

---
 src/main/java/org/springblade/modules/eCallEventTwo/service/impl/EcOrderServiceImpl.java    |   76 ++++++++----
 src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderParamDTO.java                |   11 +
 src/main/java/org/springblade/modules/eCallEventTwo/dto/EcHandleDTO.java                    |    8 +
 src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderDTO.java                     |   24 +++
 src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderDoneDTO.java                 |    8 +
 src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderSuperviseDTO.java            |    8 +
 src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderRespDTO.java                 |    8 +
 src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderReviewDTO.java               |    8 +
 src/main/java/org/springblade/modules/eCallEventTwo/controller/ECallEventTwoController.java |    9 
 src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderCheckDTO.java                |    8 +
 src/main/java/org/springblade/modules/eCallEventTwo/mapper/EcOrderMapper.java               |    3 
 src/main/java/org/springblade/modules/eCallEventTwo/mapper/EcOrderMapper.xml                |  131 ++++++++++++++-------
 src/main/java/org/springblade/modules/eCallEventTwo/service/EcOrderService.java             |    4 
 13 files changed, 227 insertions(+), 79 deletions(-)

diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/controller/ECallEventTwoController.java b/src/main/java/org/springblade/modules/eCallEventTwo/controller/ECallEventTwoController.java
index 36716d8..825c388 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/controller/ECallEventTwoController.java
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/controller/ECallEventTwoController.java
@@ -28,6 +28,7 @@
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.eCallEventTwo.dto.EcOrderDTO;
 import org.springblade.modules.eCallEventTwo.dto.EcOrderParamDTO;
 import org.springblade.modules.eCallEventTwo.entity.ECallEventTwoEntity;
 import org.springblade.modules.eCallEventTwo.service.EcOrderService;
@@ -146,12 +147,12 @@
 	/**
 	 * 工单 同步
 	 */
-	@PostMapping("/getCount")
+	@GetMapping("/getCount")
 	@ApiOperationSupport(order = 8)
 	@ApiOperation(value = "工单统计")
-	public R getCount(@Valid @RequestBody EcOrderParamDTO ecOrderParamDTO) {
-		Map<String, String> count = ecOrderService.getCount(ecOrderParamDTO);
-		return R.data(count);
+	public R getCount( EcOrderParamDTO ecOrderParamDTO, Query query) {
+		IPage<EcOrderDTO> pages = ecOrderService.getCount(Condition.getPage(query),ecOrderParamDTO);
+		return  R.data(pages);
 	}
 
 
diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcHandleDTO.java b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcHandleDTO.java
index 45e6383..54ab83b 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcHandleDTO.java
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcHandleDTO.java
@@ -32,11 +32,17 @@
 	private LocalDateTime endTime;
 
 	@ApiModelProperty(value = "调度单位", example = "")
-	private String objectOrgCode;
+	private String subjectOrgCode;
+
+	@ApiModelProperty(value = "调度单位名称", example = "")
+	private String subjectOrgName;
 
 	@ApiModelProperty(value = "主办单位", example = "")
 	private String sinkOrgCode;
 
+	@ApiModelProperty(value = "主办单位名称", example = "")
+	private String sinkOrgName;
+
 	@ApiModelProperty(value = "是否主办(Y/N)", example = "")
 	private String tagMain;
 }
diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderCheckDTO.java b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderCheckDTO.java
index 2648be6..130104c 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderCheckDTO.java
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderCheckDTO.java
@@ -31,11 +31,17 @@
 	private LocalDateTime endTime;
 
 	@ApiModelProperty(value = "调度单位", example = "")
-	private String objectOrgCode;
+	private String subjectOrgCode;
+
+	@ApiModelProperty(value = "调度单位名称", example = "")
+	private String subjectOrgName;
 
 	@ApiModelProperty(value = "主办单位", example = "")
 	private String sinkOrgCode;
 
+	@ApiModelProperty(value = "主办单位名称", example = "")
+	private String sinkOrgName;
+
 	@ApiModelProperty(value = "是否主办(Y/N)", example = "")
 	private String tagMain;
 }
diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderDTO.java b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderDTO.java
index 657257f..50f83b9 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderDTO.java
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderDTO.java
@@ -31,12 +31,34 @@
 	private LocalDateTime endTime;
 
 	@ApiModelProperty(value = "调度单位", example = "")
-	private String objectOrgCode;
+	private String subjectOrgCode;
+
+	@ApiModelProperty(value = "调度单位名称", example = "")
+	private String subjectOrgName;
 
 	@ApiModelProperty(value = "主办单位", example = "")
 	private String sinkOrgCode;
 
+	@ApiModelProperty(value = "主办单位", example = "")
+	private String sinkOrgName;
+
 	@ApiModelProperty(value = "是否主办(Y/N)", example = "")
 	private String tagMain;
 
+
+	private String orderNumber;
+	private String dispatchRate;
+	private String dispatchNumber;
+	private String handRate;
+	private String checkRate;
+	private String doneRate;
+	private String respRate;
+	private String reviewRate;
+	private String superviseNumber;
+
+	private String orgCode;
+	private String orgName;
+
+
+
 }
diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderDoneDTO.java b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderDoneDTO.java
index b55e63c..b7b5028 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderDoneDTO.java
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderDoneDTO.java
@@ -31,11 +31,17 @@
 	private LocalDateTime endTime;
 
 	@ApiModelProperty(value = "调度单位", example = "")
-	private String objectOrgCode;
+	private String subjectOrgCode;
+
+	@ApiModelProperty(value = "调度单位名称", example = "")
+	private String subjectOrgName;
 
 	@ApiModelProperty(value = "主办单位", example = "")
 	private String sinkOrgCode;
 
+	@ApiModelProperty(value = "主办单位名称", example = "")
+	private String sinkOrgName;
+
 	@ApiModelProperty(value = "是否主办(Y/N)", example = "")
 	private String tagMain;
 }
diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderParamDTO.java b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderParamDTO.java
index af0dc7d..34150c9 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderParamDTO.java
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderParamDTO.java
@@ -23,11 +23,20 @@
 	private LocalDateTime endTime;
 
 	@ApiModelProperty(value = "调度单位", example = "")
-	private String objectOrgCode;
+	private String subjectOrgCode;
+
+	@ApiModelProperty(value = "调度单位名称", example = "")
+	private String subjectOrgName;
 
 	@ApiModelProperty(value = "主办单位", example = "")
 	private String sinkOrgCode;
 
+	@ApiModelProperty(value = "主办单位名称", example = "")
+	private String sinkOrgName;
+
 	@ApiModelProperty(value = "是否主办(Y/N)", example = "")
 	private String tagMain;
+
+	@ApiModelProperty(value = "是否主办(1/2)", example = "")
+	private Integer mainFlag;
 }
diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderRespDTO.java b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderRespDTO.java
index a91f0ff..2c36bfc 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderRespDTO.java
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderRespDTO.java
@@ -31,11 +31,17 @@
 	private LocalDateTime endTime;
 
 	@ApiModelProperty(value = "调度单位", example = "")
-	private String objectOrgCode;
+	private String subjectOrgCode;
+
+	@ApiModelProperty(value = "调度单位名称", example = "")
+	private String subjectOrgName;
 
 	@ApiModelProperty(value = "主办单位", example = "")
 	private String sinkOrgCode;
 
+	@ApiModelProperty(value = "主办单位名称", example = "")
+	private String sinkOrgName;
+
 	@ApiModelProperty(value = "是否主办(Y/N)", example = "")
 	private String tagMain;
 }
diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderReviewDTO.java b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderReviewDTO.java
index d2f7ee6..e61af2c 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderReviewDTO.java
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderReviewDTO.java
@@ -31,11 +31,17 @@
 	private LocalDateTime endTime;
 
 	@ApiModelProperty(value = "调度单位", example = "")
-	private String objectOrgCode;
+	private String subjectOrgCode;
+
+	@ApiModelProperty(value = "调度单位名称", example = "")
+	private String subjectOrgName;
 
 	@ApiModelProperty(value = "主办单位", example = "")
 	private String sinkOrgCode;
 
+	@ApiModelProperty(value = "主办单位名称", example = "")
+	private String sinkOrgName;
+
 	@ApiModelProperty(value = "是否主办(Y/N)", example = "")
 	private String tagMain;
 }
diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderSuperviseDTO.java b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderSuperviseDTO.java
index 8aef62e..7005bda 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderSuperviseDTO.java
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/dto/EcOrderSuperviseDTO.java
@@ -31,11 +31,17 @@
 	private LocalDateTime endTime;
 
 	@ApiModelProperty(value = "调度单位", example = "")
-	private String objectOrgCode;
+	private String subjectOrgCode;
+
+	@ApiModelProperty(value = "调度单位名称", example = "")
+	private String subjectOrgName;
 
 	@ApiModelProperty(value = "主办单位", example = "")
 	private String sinkOrgCode;
 
+	@ApiModelProperty(value = "主办单位名称", example = "")
+	private String sinkOrgName;
+
 	@ApiModelProperty(value = "是否主办(Y/N)", example = "")
 	private String tagMain;
 }
diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/mapper/EcOrderMapper.java b/src/main/java/org/springblade/modules/eCallEventTwo/mapper/EcOrderMapper.java
index a1ea701..ba8f26a 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/mapper/EcOrderMapper.java
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/mapper/EcOrderMapper.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.modules.eCallEventTwo.dto.*;
 import org.springblade.modules.eCallEventTwo.entity.EcOrder;
 
@@ -92,4 +93,6 @@
 	public int selectEcOrderSuperviseCount(EcOrderSuperviseDTO ecOrderSuperviseDTO);
 
 	List<Map<String, String>> getUnitAssessmentIndicators();
+
+	List<EcOrderDTO> getOrgCode(IPage page, EcOrderParamDTO ecOrderParamDTO);
 }
diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/mapper/EcOrderMapper.xml b/src/main/java/org/springblade/modules/eCallEventTwo/mapper/EcOrderMapper.xml
index ade451d..2077cd3 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/mapper/EcOrderMapper.xml
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/mapper/EcOrderMapper.xml
@@ -123,10 +123,8 @@
 
     <select id="selectEcOrderList" parameterType="org.springblade.modules.eCallEventTwo.dto.EcOrderDTO" resultMap="EcOrderDTOResult">
         SELECT
-        eo.*
-        FROM
-        ec_order_cti eoc
-        LEFT JOIN ec_order eo on eo.order_id= eoc.order_id
+        *
+        FROM ec_order
         <where>
         <if test="startTime != null and endTime != null">and eoc.callin_time BETWEEN #{startTime} AND #{endTime}
         </if>
@@ -194,13 +192,12 @@
             resultType="java.lang.Integer">
         SELECT
         COUNT(DISTINCT(eo.order_id))
-        FROM
-        ec_order_cti eoc
-        LEFT JOIN ec_order eo on eo.order_id= eoc.order_id
+        FROM ec_order eo
         LEFT JOIN ec_dispatch ed ON eo.order_id = ed.order_id
+        LEFT JOIN ec_order_cti eoc on eoc.order_id = eo.order_id
         <where>
             <if test="tagMain != null and tagMain != ''">and ed.tag_main = #{tagMain}</if>
-            <if test="objectOrgCode != null and objectOrgCode != ''">and ed.object_org_code = #{objectOrgCode}</if>
+            <if test="subjectOrgCode != null and subjectOrgCode != ''">and ed.subject_org_code = #{subjectOrgCode}</if>
             <if test="sinkOrgCode != null and sinkOrgCode != ''">and ed.sink_org_code = #{sinkOrgCode}</if>
             <if test="startTime != null and endTime != null">and eoc.callin_time BETWEEN #{startTime} AND #{endTime}
             </if>
@@ -273,18 +270,19 @@
     <select id="selectEcDispatchCount" parameterType="org.springblade.modules.eCallEventTwo.dto.EcDispatchDTO"
             resultType="java.lang.Integer">
         SELECT
-        COUNT(
-        DISTINCT ( eo.order_id ))
+        COUNT(1)
         FROM
         ec_dispatch ed
         LEFT JOIN ec_order eo ON eo.order_id = ed.order_id
+        LEFT JOIN ec_order_cti eoc on eoc.order_id = eo.order_id
         <where>
             <if test="tagMain != null and tagMain != ''">and ed.tag_main = #{tagMain}</if>
-            <if test="objectOrgCode != null and objectOrgCode != ''">and ed.object_org_code = #{objectOrgCode}</if>
+            <if test="subjectOrgCode != null and subjectOrgCode != ''">and ed.subject_org_code = #{subjectOrgCode}</if>
             <if test="sinkOrgCode != null and sinkOrgCode != ''">and ed.sink_org_code = #{sinkOrgCode}</if>
             <if test="startTime != null and endTime != null">and ed.dispatch_time BETWEEN #{startTime} AND #{endTime}
             </if>
-
+            <if test="startTime != null and endTime != null">and eoc.callin_time BETWEEN #{startTime} AND #{endTime}
+            </if>
 
             <if test="dispatchId != null ">and dispatch_id = #{dispatchId}</if>
             <if test="orderId != null ">and order_id = #{orderId}</if>
@@ -331,20 +329,22 @@
     <select id="selectEcHandleCount" parameterType="org.springblade.modules.eCallEventTwo.dto.EcHandleDTO"
             resultType="java.lang.Integer">
         SELECT
-        COUNT(DISTINCT(eo.order_id))
+        COUNT(DISTINCT(ehd.uid))
         FROM
-        ec_handle eh
-        LEFT JOIN ec_order eo on eh.order_id = eo.order_id
+        ec_handle_doing ehd
+        LEFT JOIN ec_handle eh ON ehd.order_id = eh.order_id
+        LEFT JOIN ec_order eo ON eh.order_id = eo.order_id
         LEFT JOIN ec_dispatch ed ON eo.order_id = ed.order_id
+        LEFT JOIN ec_order_cti eoc on eoc.order_id = eo.order_id
         <where>
-
             <if test="tagMain != null and tagMain != ''">and ed.tag_main = #{tagMain}</if>
-            <if test="objectOrgCode != null and objectOrgCode != ''">and ed.object_org_code = #{objectOrgCode}</if>
+            <if test="subjectOrgCode != null and subjectOrgCode != ''">and ed.subject_org_code = #{subjectOrgCode}</if>
             <if test="sinkOrgCode != null and sinkOrgCode != ''">and ed.sink_org_code = #{sinkOrgCode}</if>
-            <if test="startTime != null and endTime != null">and eh.remote_hdl_time BETWEEN #{startTime} AND
+            <if test="startTime != null and endTime != null">and ehd.biz_time BETWEEN #{startTime} AND
                 #{endTime}
             </if>
-
+            <if test="startTime != null and endTime != null">and eoc.callin_time BETWEEN #{startTime} AND #{endTime}
+            </if>
 
             <if test="handleId != null ">and handle_id = #{handleId}</if>
             <if test="orderId != null ">and order_id = #{orderId}</if>
@@ -372,19 +372,21 @@
     <select id="selectEcOrderCheckCount" parameterType="org.springblade.modules.eCallEventTwo.dto.EcOrderCheckDTO"
             resultType="java.lang.Integer">
         SELECT
-        COUNT(DISTINCT(eo.order_id))
+        COUNT(
+        DISTINCT ( eoct.uid ))
         FROM
-        ec_order_check eoc
-        LEFT JOIN ec_order eo on eoc.order_id = eo.order_id
+        ec_order_check_tel eoct
+        LEFT JOIN ec_order_check eoc ON eoct.order_id = eoc.order_id
+        LEFT JOIN ec_order eo ON eoc.order_id = eo.order_id
         LEFT JOIN ec_dispatch ed ON eo.order_id = ed.order_id
-        LEFT JOIN ec_order_check_tel eoct on eoct.order_id = eo.order_id
+        LEFT JOIN ec_order_cti eoci on eoci.order_id = eo.order_id
         <where>
-
             <if test="tagMain != null and tagMain != ''">and ed.tag_main = #{tagMain}</if>
-            <if test="objectOrgCode != null and objectOrgCode != ''">and ed.object_org_code = #{objectOrgCode}</if>
+            <if test="subjectOrgCode != null and subjectOrgCode != ''">and ed.subject_org_code = #{subjectOrgCode}</if>
             <if test="sinkOrgCode != null and sinkOrgCode != ''">and ed.sink_org_code = #{sinkOrgCode}</if>
             <if test="startTime != null and endTime != null">and eoct.chk_time BETWEEN #{startTime} AND #{endTime}</if>
-
+            <if test="startTime != null and endTime != null">and eoci.callin_time BETWEEN #{startTime} AND #{endTime}
+            </if>
 
             <if test="orderId != null ">and order_id = #{orderId}</if>
             <if test="checkCode != null  and checkCode != ''">and check_code = #{checkCode}</if>
@@ -399,19 +401,23 @@
     <select id="selectEcOrderDoneCount" parameterType="org.springblade.modules.eCallEventTwo.dto.EcOrderDoneDTO"
             resultType="java.lang.Integer">
         SELECT
-        COUNT(DISTINCT(eo.order_id))
+        COUNT(
+        DISTINCT ( eodl.uid ))
         FROM
-        ec_order_done eod
-        LEFT JOIN ec_order eo on eod.order_id = eo.order_id
+        ec_order_done_log eodl
+        LEFT JOIN ec_order_done eod ON eod.order_id = eodl.order_id
+        LEFT JOIN ec_order eo ON eod.order_id = eo.order_id
         LEFT JOIN ec_dispatch ed ON eo.order_id = ed.order_id
+        LEFT JOIN ec_order_cti eoc on eoc.order_id = eo.order_id
         <where>
             <if test="tagMain != null and tagMain != ''">and ed.tag_main = #{tagMain}</if>
-            <if test="objectOrgCode != null and objectOrgCode != ''">and ed.object_org_code = #{objectOrgCode}</if>
+            <if test="subjectOrgCode != null and subjectOrgCode != ''">and ed.subject_org_code = #{subjectOrgCode}</if>
             <if test="sinkOrgCode != null and sinkOrgCode != ''">and ed.sink_org_code = #{sinkOrgCode}</if>
-            <if test="startTime != null and endTime != null">and eod.first_done_apply_time BETWEEN #{startTime} AND
+            <if test="startTime != null and endTime != null">and eodl.in_audit_time BETWEEN #{startTime} AND
                 #{endTime}
             </if>
-
+            <if test="startTime != null and endTime != null">and eoc.callin_time BETWEEN #{startTime} AND #{endTime}
+            </if>
 
             <if test="orderId != null ">and order_id = #{orderId}</if>
             <if test="doneCode != null  and doneCode != ''">and done_code = #{doneCode}</if>
@@ -424,18 +430,23 @@
     <select id="selectEcOrderRespCount" parameterType="org.springblade.modules.eCallEventTwo.dto.EcOrderRespDTO"
             resultType="java.lang.Integer">
         SELECT
-        COUNT(DISTINCT(eo.order_id))
+        COUNT(
+        DISTINCT ( eorl.uid ))
         FROM
-        ec_order_resp eor
-        LEFT JOIN ec_order eo on eor.order_id = eo.order_id
+        ec_order_resp_log eorl
+        LEFT JOIN ec_order_resp eor ON eorl.order_id = eor.order_id
+        LEFT JOIN ec_order eo ON eor.order_id = eo.order_id
         LEFT JOIN ec_dispatch ed ON eo.order_id = ed.order_id
-        LEFT JOIN ec_order_resp_log eorl on eorl.order_id = eor.order_id
+        LEFT JOIN ec_order_cti eoc on eoc.order_id = eo.order_id
         <where>
 
             <if test="tagMain != null and tagMain != ''">and ed.tag_main = #{tagMain}</if>
-            <if test="objectOrgCode != null and objectOrgCode != ''">and ed.object_org_code = #{objectOrgCode}</if>
+            <if test="subjectOrgCode != null and subjectOrgCode != ''">and ed.subject_org_code = #{subjectOrgCode}</if>
             <if test="sinkOrgCode != null and sinkOrgCode != ''">and ed.sink_org_code = #{sinkOrgCode}</if>
-            <if test="startTime != null and endTime != null">and eorl.resp_time BETWEEN #{startTime} AND #{endTime}</if>
+            <if test="startTime != null and endTime != null">and eorl.audit_time BETWEEN #{startTime} AND #{endTime}
+            </if>
+            <if test="startTime != null and endTime != null">and eoc.callin_time BETWEEN #{startTime} AND #{endTime}
+            </if>
 
             <if test="orderId != null ">and order_id = #{orderId}</if>
             <if test="respCode != null  and respCode != ''">and resp_code = #{respCode}</if>
@@ -451,12 +462,15 @@
         ec_order_review eor
         LEFT JOIN ec_order eo on eor.order_id = eo.order_id
         LEFT JOIN ec_dispatch ed ON eo.order_id = ed.order_id
+        LEFT JOIN ec_order_cti eoc on eoc.order_id = eo.order_id
         <where>
 
             <if test="tagMain != null and tagMain != ''">and ed.tag_main = #{tagMain}</if>
-            <if test="objectOrgCode != null and objectOrgCode != ''">and ed.object_org_code = #{objectOrgCode}</if>
+            <if test="subjectOrgCode != null and subjectOrgCode != ''">and ed.subject_org_code = #{subjectOrgCode}</if>
             <if test="sinkOrgCode != null and sinkOrgCode != ''">and ed.sink_org_code = #{sinkOrgCode}</if>
             <if test="startTime != null and endTime != null">and eor.review_time BETWEEN #{startTime} AND #{endTime}
+            </if>
+            <if test="startTime != null and endTime != null">and eoc.callin_time BETWEEN #{startTime} AND #{endTime}
             </if>
 
 
@@ -506,13 +520,15 @@
         ec_order_supervise eos
         LEFT JOIN ec_order eo on eos.order_id = eo.order_id
         LEFT JOIN ec_dispatch ed ON eo.order_id = ed.order_id
+        LEFT JOIN ec_order_cti eoc on eoc.order_id = eo.order_id
         <where>
-
             <if test="tagMain != null and tagMain != ''">and ed.tag_main = #{tagMain}</if>
-            <if test="objectOrgCode != null and objectOrgCode != ''">and ed.object_org_code = #{objectOrgCode}</if>
+            <if test="subjectOrgCode != null and subjectOrgCode != ''">and ed.subject_org_code = #{subjectOrgCode}</if>
             <if test="sinkOrgCode != null and sinkOrgCode != ''">and ed.sink_org_code = #{sinkOrgCode}</if>
             <if test="startTime != null and endTime != null">and eos.supervise_time BETWEEN #{startTime} AND
                 #{endTime}
+            </if>
+            <if test="startTime != null and endTime != null">and eoc.callin_time BETWEEN #{startTime} AND #{endTime}
             </if>
 
 
@@ -545,7 +561,38 @@
 
 
     <select id="getUnitAssessmentIndicators" resultType="java.util.Map">
-        select * from  `v_statistics_examine_2`
+        select *
+        from `v_statistics_examine_2`
+
+    </select>
+
+
+    <select id="getOrgCode" resultType="org.springblade.modules.eCallEventTwo.dto.EcOrderDTO">
+        SELECT
+        ed.subject_org_code,ed.subject_org_name,ed.sink_org_code,ed.sink_org_name
+        FROM
+        ec_order eo
+        LEFT JOIN ec_dispatch ed ON eo.order_id = ed.order_id
+        LEFT JOIN ec_order_cti eoc ON eoc.order_id = eo.order_id
+        <where>
+            <if test="ecOrderParamDTO.tagMain != null and ecOrderParamDTO.tagMain != '' ">
+                and ed.tag_main = #{ecOrderParamDTO.tagMain}
+                <if test="ecOrderParamDTO.mainFlag != null and ecOrderParamDTO.mainFlag == 2">
+                    <if test="ecOrderParamDTO.subjectOrgName != null and ecOrderParamDTO.subjectOrgName != ''">
+                        and ed.subject_org_name like concat('%',#{ecOrderParamDTO.subjectOrgName},'%')
+                    </if>
+                    GROUP BY ed.subject_org_code
+                </if>
+                <if test="ecOrderParamDTO.mainFlag != null and ecOrderParamDTO.mainFlag == 1">
+                    <if test="ecOrderParamDTO.sinkOrgName != null and ecOrderParamDTO.sinkOrgName != ''">
+                        and ed.sink_org_name like concat('%',#{ecOrderParamDTO.sinkOrgName},'%')
+                    </if>
+                    GROUP BY ed.sink_org_code
+                </if>
+
+            </if>
+        </where>
+
 
     </select>
 
diff --git a/src/main/java/org/springblade/modules/eCallEventTwo/service/EcOrderService.java b/src/main/java/org/springblade/modules/eCallEventTwo/service/EcOrderService.java
index dd848b7..f2654a0 100644
--- a/src/main/java/org/springblade/modules/eCallEventTwo/service/EcOrderService.java
+++ b/src/main/java/org/springblade/modules/eCallEventTwo/service/EcOrderService.java
@@ -1,9 +1,11 @@
 package org.springblade.modules.eCallEventTwo.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.modules.eCallEventTwo.dto.EcOrderDTO;
 import org.springblade.modules.eCallEventTwo.dto.EcOrderParamDTO;
 import org.springblade.modules.eCallEventTwo.entity.EcOrder;
+import org.springblade.modules.eCallEventTwo.vo.ECallEventTwoVO;
 
 import java.util.List;
 import java.util.Map;
@@ -76,5 +78,5 @@
 	 * @param ecOrderParamDTO
 	 * @return
 	 */
-	Map<String, String> getCount(EcOrderParamDTO ecOrderParamDTO);
+	IPage<EcOrderDTO> getCount(IPage<EcOrderDTO> page, EcOrderParamDTO ecOrderParamDTO);
 }
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 aa4624a..6f9a2eb 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,7 @@
 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.springblade.core.tool.utils.BeanUtil;
 import org.springblade.modules.eCallEventTwo.dto.*;
 import org.springblade.modules.eCallEventTwo.entity.ECallEventTwoEntity;
@@ -18,7 +19,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;
 
@@ -132,11 +132,36 @@
 		return result;
 	}
 
+
 	/**
 	 * 统计办结率
 	 */
 	@Override
-	public Map<String, String> getCount(EcOrderParamDTO ecOrderParamDTO) {
+	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 = BeanUtil.copy(ecOrderParamDTO, EcOrderDTO.class);
 		int i = baseMapper.selectEcOrderCount(ecOrderDTO);
@@ -162,37 +187,40 @@
 		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("orderNumber", String.valueOf(i));
+		// result.put("orderNumber", String.valueOf(i));
+		ecOrder.setOrderNumber(String.valueOf(i));
 		// 派发单数(率)
-		result.put("dispatchRate", getRate(i1, i));
-		result.put("dispatchNumber", String.valueOf(i1));
+		// 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("handNumber", String.valueOf(i2));
+		// 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("checkNumber", String.valueOf(i3));
+		// 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("doneNumber", String.valueOf(i4));
+		// 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("respNumber", String.valueOf(i5));
+		// 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("reviewNumber", String.valueOf(i6));
+		// result.put("reviewRate", getRate(i6, i));
+		ecOrder.setReviewRate(getRate(i6, i));
+		// result.put("reviewNumber", String.valueOf(i6));
 		// 督办单数
-		result.put("superviseNumber", String.valueOf(i7));
+		// result.put("superviseNumber", String.valueOf(i7));
+		ecOrder.setSuperviseNumber(String.valueOf(i7));
 		// 返回结果
-		return result;
-
-	}
-
-	public static void main(String[] args) {
-		String rate = getRate(10, 3);
-		System.out.println(rate);
+		// return result;
 	}
 
 

--
Gitblit v1.9.3