From 7c2a4aecdcaccb97f4022b2409a7e48505ee4203 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Mon, 19 Jun 2023 16:37:58 +0800
Subject: [PATCH] 智能外呼统计查询修改

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java           |    1 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml                   |   13 ++-
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java                    |    1 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java                  |    2 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallNotFillRecordController.java |  198 +++++++++++++++++++++++++-----------------------
 5 files changed, 116 insertions(+), 99 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallNotFillRecordController.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallNotFillRecordController.java
index 844a3aa..6a6a1b5 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallNotFillRecordController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/controller/CallNotFillRecordController.java
@@ -4,6 +4,7 @@
 import cn.gistack.sm.intelligentCall.entity.CallNotFillRecord;
 import cn.gistack.sm.intelligentCall.service.ICallNotFillRecordService;
 import cn.gistack.sm.intelligentCall.vo.CallNotFillRecordVO;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -19,114 +20,121 @@
 import java.util.Date;
 
 /**
-* 外呼未接信息填报记录
-* @author zhongrj
-* @date  2023-06-13
-*/
+ * 外呼未接信息填报记录
+ *
+ * @author zhongrj
+ * @date 2023-06-13
+ */
 @Slf4j
-@Api(tags="外呼未接信息填报记录")
+@Api(tags = "外呼未接信息填报记录")
 @RestController
 @RequestMapping("/callNotFillRecord/callNotFillRecord")
 @AllArgsConstructor
-public class CallNotFillRecordController{
+public class CallNotFillRecordController {
 
-   private ICallNotFillRecordService callNotFillRecordService;
+	private ICallNotFillRecordService callNotFillRecordService;
 
-   /**
-    * 分页列表查询
-    *
-    * @param callNotFillRecord
-    * @return
-    */
-   @ApiOperation(value="外呼未接信息填报记录-分页列表查询", notes="外呼未接信息填报记录-分页列表查询")
-   @GetMapping(value = "/list")
-   public R queryPageList(CallNotFillRecord callNotFillRecord, Query query) {
-       IPage<CallNotFillRecord> pageList = callNotFillRecordService.page(Condition.getPage(query), Condition.getQueryWrapper(callNotFillRecord));
-       return R.data(pageList);
-   }
+	/**
+	 * 分页列表查询
+	 *
+	 * @param callNotFillRecord
+	 * @return
+	 */
+	@ApiOperation(value = "外呼未接信息填报记录-分页列表查询", notes = "外呼未接信息填报记录-分页列表查询")
+	@GetMapping(value = "/list")
+	public R queryPageList(CallNotFillRecord callNotFillRecord, Query query) {
+		IPage<CallNotFillRecord> pageList = callNotFillRecordService.page(Condition.getPage(query), Condition.getQueryWrapper(callNotFillRecord));
+		return R.data(pageList);
+	}
 
 
-   /**
-    * 自定义分页列表查询
-    * @param query
-    * @param callNotFillRecord
-    * @return
-    */
-   @ApiOperation(value="外呼未接信息填报记录-自定义分页列表查询", notes="外呼未接信息填报记录-自定义分页列表查询")
-   @GetMapping(value = "/page")
-   public R page(CallNotFillRecordVO callNotFillRecord, Query query) {
-       return R.data(callNotFillRecordService.selectCallNotFillRecordPage(Condition.getPage(query),callNotFillRecord));
-   }
+	/**
+	 * 自定义分页列表查询
+	 *
+	 * @param query
+	 * @param callNotFillRecord
+	 * @return
+	 */
+	@ApiOperation(value = "外呼未接信息填报记录-自定义分页列表查询", notes = "外呼未接信息填报记录-自定义分页列表查询")
+	@GetMapping(value = "/page")
+	public R page(CallNotFillRecordVO callNotFillRecord, Query query) {
+		return R.data(callNotFillRecordService.selectCallNotFillRecordPage(Condition.getPage(query), callNotFillRecord));
+	}
 
-    /**
-     * 获取全部
-     */
-    @ApiOperation(value="外呼未接信息填报记录-获取全部", notes="外呼未接信息填报记录-获取全部")
-    @GetMapping(value = "/all")
-    public R getAll(CallNotFillRecord callNotFillRecord) {
-        return R.data(callNotFillRecordService.list(Condition.getQueryWrapper(callNotFillRecord)));
-    }
+	/**
+	 * 获取全部
+	 */
+	@ApiOperation(value = "外呼未接信息填报记录-获取全部", notes = "外呼未接信息填报记录-获取全部")
+	@GetMapping(value = "/all")
+	public R getAll(CallNotFillRecord callNotFillRecord) {
+		return R.data(callNotFillRecordService.list(Condition.getQueryWrapper(callNotFillRecord)));
+	}
 
-   /**
-    * 添加
-    *
-    * @param callNotFillRecord
-    * @return
-    */
-   @ApiOperation(value="外呼未接信息填报记录-添加", notes="外呼未接信息填报记录-添加")
-   @PostMapping(value = "/add")
-   public R add(@RequestBody CallNotFillRecord callNotFillRecord) {
-   		callNotFillRecord.setCreateTime(new Date());
-       return R.data(callNotFillRecordService.save(callNotFillRecord));
-   }
+	/**
+	 * 添加
+	 *
+	 * @param callNotFillRecord
+	 * @return
+	 */
+	@ApiOperation(value = "外呼未接信息填报记录-添加", notes = "外呼未接信息填报记录-添加")
+	@PostMapping(value = "/add")
+	public R add(@RequestBody CallNotFillRecord callNotFillRecord) {
+		callNotFillRecord.setCreateTime(new Date());
+		// 判断是否已填报,如果已填报,则不新增
+		CallNotFillRecord notFillRecord = callNotFillRecordService.getOne(new QueryWrapper<CallNotFillRecord>().eq("call_id", callNotFillRecord.getCallId()));
+		if (notFillRecord != null){
+			return R.data("已填报,请勿再填报");
+		}
+		return R.data(callNotFillRecordService.save(callNotFillRecord));
+	}
 
-   /**
-    * 编辑
-    *
-    * @param callNotFillRecord
-    * @return
-    */
-   @ApiOperation(value="外呼未接信息填报记录-编辑", notes="外呼未接信息填报记录-编辑")
-   @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-   public R edit(@RequestBody CallNotFillRecord callNotFillRecord) {
-       return R.data(callNotFillRecordService.updateById(callNotFillRecord));
-   }
+	/**
+	 * 编辑
+	 *
+	 * @param callNotFillRecord
+	 * @return
+	 */
+	@ApiOperation(value = "外呼未接信息填报记录-编辑", notes = "外呼未接信息填报记录-编辑")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
+	public R edit(@RequestBody CallNotFillRecord callNotFillRecord) {
+		return R.data(callNotFillRecordService.updateById(callNotFillRecord));
+	}
 
-   /**
-    * 通过id删除
-    *
-    * @param id
-    * @return
-    */
-   @ApiOperation(value="外呼未接信息填报记录-通过id删除", notes="外呼未接信息填报记录-通过id删除")
-   @PostMapping(value = "/delete")
-   public R delete(@RequestParam(name="id",required=true) String id) {
-       return R.data(callNotFillRecordService.removeById(id));
-   }
+	/**
+	 * 通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@ApiOperation(value = "外呼未接信息填报记录-通过id删除", notes = "外呼未接信息填报记录-通过id删除")
+	@PostMapping(value = "/delete")
+	public R delete(@RequestParam(name = "id", required = true) String id) {
+		return R.data(callNotFillRecordService.removeById(id));
+	}
 
-   /**
-    * 批量删除
-    *
-    * @param ids
-    * @return
-    */
-   @ApiOperation(value="外呼未接信息填报记录-批量删除", notes="外呼未接信息填报记录-批量删除")
-   @PostMapping(value = "/deleteBatch")
-   public R deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-       return R.data(this.callNotFillRecordService.removeByIds(Arrays.asList(ids.split(","))));
-   }
+	/**
+	 * 批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@ApiOperation(value = "外呼未接信息填报记录-批量删除", notes = "外呼未接信息填报记录-批量删除")
+	@PostMapping(value = "/deleteBatch")
+	public R deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
+		return R.data(this.callNotFillRecordService.removeByIds(Arrays.asList(ids.split(","))));
+	}
 
-   /**
-    * 通过id查询
-    *
-    * @param id
-    * @return
-    */
-   @ApiOperation(value="外呼未接信息填报记录-通过id查询", notes="外呼未接信息填报记录-通过id查询")
-   @GetMapping(value = "/queryById")
-   public R queryById(@RequestParam(name="id",required=true) String id) {
-       CallNotFillRecord callNotFillRecord = callNotFillRecordService.getById(id);
-       return R.data(callNotFillRecord);
-   }
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	@ApiOperation(value = "外呼未接信息填报记录-通过id查询", notes = "外呼未接信息填报记录-通过id查询")
+	@GetMapping(value = "/queryById")
+	public R queryById(@RequestParam(name = "id", required = true) String id) {
+		CallNotFillRecord callNotFillRecord = callNotFillRecordService.getById(id);
+		return R.data(callNotFillRecord);
+	}
 
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java
index 8f42ebc..a63cd09 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.java
@@ -70,7 +70,9 @@
 
 	/**
 	 * 查询智能外呼统计数据-按日期-行政区统计
+	 * @param page
 	 * @param callTaskStatistic
+	 * @param list
 	 * @return
 	 */
 	@DS("zt")
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml
index f3a638f..7cdfb7e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/mapper/CallTaskMapper.xml
@@ -12,14 +12,15 @@
         date_format(ct."task_schedule_time",'%Y-%m-%d %H:%i:%s') as executeTime,
         ctr."calling_number" as callingNumber,
         ctra."callee_number_count" as calleeNumberCount,
-        ctra."connection_count" as connectionCount,
-        ctra."failure_count" as failureCount,
+        if(ifnull(scnfr.task_id,0)='0',ctra."connection_count",(ctra."connection_count"+scnfr.num)) as connectionCount,
+        if(ifnull(scnfr.task_id,0)='0',ctra."failure_count",(ctra."failure_count"-scnfr.num)) as failureCount,
         ctra."other_status_count" as otherStatusCount,
         cs."call_scenes_name" as  callScenesName
         from "SJZT_ODS"."call_task" ct
         left join (select * from "SJZT_ODS"."call_scenes" where "is_deleted" = 0) cs on ct."scene_id" = cs."id"
         left join (select DISTINCT "task_id","calling_number" from "SJZT_ODS"."call_task_result") ctr on ctr."task_id" = ct."id"
         left join "SJZT_ODS"."call_task_result_analyse" ctra on  ctra."task_id" = ct."id"
+        left join (select task_id,count(*)as num from "YWXT".sm_call_not_fill_record group by task_id) scnfr on scnfr.task_id = ctr."task_id"
         where 1=1 and ct."is_deleted" = 0
         <if test="callTask.taskName!=null and callTask.taskName!=''">
             and ct."task_name" like concat(concat('%',#{callTask.taskName}),'%')
@@ -202,12 +203,13 @@
             aab."ad_name" as adName,
             createTime,
             ifnull(sum(totalCount),0) calleeNumberCount,
-            ifnull(sum(connectCount),0) connectionCount
+            ifnull(sum(connectCount),0) + ifnull(sum(isSmsFillCount),0) connectionCount
             from SJZT_MD."att_ad_base"  aab
             left join (
                 select
                 count(*) as totalCount,
                 ifnull(sum(case when ctr."call_result"='200000' then 1 else 0 end),0) as connectCount,
+                ifnull(sum(case when scnfr.task_id!='' then 1 else 0 end),0)as isSmsFillCount,
                 DATE_FORMAT(ctr."gmt_create",'%Y-%m-%d') as createTime,
                 aab."guid",
                 aab."ad_grad",
@@ -220,6 +222,7 @@
                 ) ctc on ctr."call_id" = ctc."call_id"
                 left join "SJZT_MD"."att_res_base" arb on ctc.waterCode = arb."code"
                 left join "SJZT_MD"."att_ad_base" aab on aab."guid" = concat(arb."ad_guid",'000000')
+                left join "YWXT".sm_call_not_fill_record scnfr on scnfr.call_id = ctr."call_id"
                 where 1=1 and aab."ad_name" is not null
                 <if test="callTaskStatistic.createTime!=null and callTaskStatistic.createTime!=''">
                     and date_format(ctr."gmt_create",'%Y-%m-%d') = #{callTaskStatistic.createTime}
@@ -253,12 +256,13 @@
                     aab."ad_name" as adName,
                     createTime,
                     ifnull(sum(totalCount),0) calleeNumberCount,
-                    ifnull(sum(connectCount),0) connectionCount
+                    ifnull(sum(connectCount),0) + ifnull(sum(isSmsFillCount),0) connectionCount
                     from SJZT_MD."att_ad_base"  aab
             left join (
                 select
                 count(*) as totalCount,
                 ifnull(sum(case when ctr."call_result"='200000' then 1 else 0 end),0) as connectCount,
+                ifnull(sum(case when scnfr.task_id!='' then 1 else 0 end),0)as isSmsFillCount,
                 DATE_FORMAT(ctr."gmt_create",'%Y-%m-%d') as createTime,
                 aab."guid",
                 aab."ad_grad",
@@ -271,6 +275,7 @@
                 ) ctc on ctr."call_id" = ctc."call_id"
                 left join "SJZT_MD"."att_res_base" arb on ctc.waterCode = arb."code"
                 left join "SJZT_MD"."att_ad_base" aab on aab."guid" = concat(arb."ad_guid",'000000')
+                left join "YWXT".sm_call_not_fill_record scnfr on scnfr.call_id = ctr."call_id"
                 where 1=1 and aab."ad_name" is not null
                 <if test="callTaskStatistic.createTime!=null and callTaskStatistic.createTime!=''">
                     and date_format(ctr."gmt_create",'%Y-%m-%d') = #{callTaskStatistic.createTime}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java
index a4697a5..cbbdb43 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/CallService.java
@@ -51,6 +51,7 @@
 
 	/**
 	 * 查询智能外呼统计数据-按日期-行政区统计
+	 * @param page
 	 * @param callTaskStatistic
 	 * @return
 	 */
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
index 9218aa3..024bcf3 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/intelligentCall/service/impl/CallServiceImpl.java
@@ -266,6 +266,7 @@
 
 	/**
 	 * 查询智能外呼统计数据-按日期-行政区统计
+	 * @param page
 	 * @param callTaskStatistic
 	 * @return
 	 */

--
Gitblit v1.9.3