From 32a6f0bcae6563f0c785b668dd5a4a907292e48c Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期四, 25 九月 2025 18:14:20 +0800
Subject: [PATCH] 新增满意度统计明细
---
smartor/src/main/java/com/smartor/domain/ServiceSubtaskCount.java | 10 ++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java | 14 ++++
smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java | 7 +
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 15 +++-
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java | 2
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java | 2
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 73 ++++++++++++++++++++++++
7 files changed, 115 insertions(+), 8 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
index b7849ea..3bf67f6 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -360,4 +360,18 @@
return success(serviceStatistics);
}
+
+ /**
+ * 鑾峰彇闅忚缁熻姣斾緥
+ */
+ @ApiOperation("鑾峰彇闅忚婊℃剰搴︽槑缁�")
+ @PostMapping("/getSfStatisticsJoydetails")
+ public AjaxResult getSfStatisticsJoydetails(@RequestBody ServiceSubtaskCountReq serviceSubtaskCountReq) {
+ if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size()==0&&
+ serviceSubtaskCountReq.getDeptcodes().size()==0) {
+ return error("绉戝鎴栫梾鍖轰笉鑳戒负绌�");
+ }
+ return success(serviceSubtaskService.getSfStatisticsJoydetails(serviceSubtaskCountReq));
+ }
+
}
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskCount.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskCount.java
index 90e48f1..fa24dc7 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskCount.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskCount.java
@@ -32,10 +32,16 @@
private Long count;
@ApiModelProperty(value = "濉啓婊℃剰搴︽暟閲�")
- private Long joyCount;
+ private Integer joyCount;
@ApiModelProperty(value = "鎵�鏈夋弧鎰忓害鏁伴噺")
- private Long joyAllCount;
+ private Integer joyAllCount;
+
+ @ApiModelProperty(value = "婊℃剰搴︽瘮渚�")
+ private String joyTotal;
+
+ @ApiModelProperty(value = "婊℃剰搴﹀悕绉�")
+ private String joyName;
public ServiceSubtaskCount(String month, Long serviceType, Long count) {
this.serviceType = serviceType;
diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java
index 57e743e..b98759a 100644
--- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java
+++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java
@@ -181,8 +181,11 @@
private String drname;
@ApiModelProperty(value = "濉啓婊℃剰搴︽暟閲�")
- private Long joyCount;
+ private Integer joyCount=0;
@ApiModelProperty(value = "鎵�鏈夋弧鎰忓害鏁伴噺")
- private Long joyAllCount;
+ private Integer joyAllCount=0;
+
+ @ApiModelProperty(value = "婊℃剰搴︽瘮渚�")
+ private String joyTotal="";
}
diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
index 0dc0237..90a640b 100644
--- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -97,6 +97,8 @@
public List<ServiceSubtaskCount> getSfStatisticsJoy(ServiceSubtaskCountReq serviceSubtaskCountReq);
+ public List<ServiceSubtaskCount> getSfStatisticsJoydetails(ServiceSubtaskCountReq serviceSubtaskCountReq);
+
public List<PatMedRes> getDeptRanking(PatMedReq patMedReq);
public List<ServiceStatisticsResponse> getServiceStatistics(ServiceStatisticsRequest serviceStatisticsRequest);
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
index 8fe736c..89ecadf 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -131,5 +131,7 @@
public List<ServiceSubtaskStatistic> getSfStatisticsJoy(ServiceSubtaskCountReq serviceSubtaskCountReq);
+ public List<ServiceSubtaskCount> getSfStatisticsJoydetails(ServiceSubtaskCountReq serviceSubtaskCountReq);
+
public List<ServiceStatisticsResponse> getServiceStatistics(ServiceStatisticsRequest request);
}
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index 643e2cb..92b45c6 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2316,7 +2316,10 @@
continue;
}
ServiceSubtaskStatistic statistic = getStatisticJoy(serviceSubtaskList,joySubCount);
-
+ if(statistic.getJoyCount()!=0&&statistic.getJoyAllCount()!=0) {
+ Double joyTotal = Double.parseDouble(statistic.getJoyCount() + "") / Double.parseDouble(statistic.getJoyAllCount() + "") * 100;
+ statistic.setJoyTotal(String.format("%.2f", joyTotal)+"%");
+ }
//鍙婃椂鐜�
ServiceSubtask ss = new ServiceSubtask();
ss.setOrgid(serviceSubtaskList.get(0).getOrgid());
@@ -2454,15 +2457,15 @@
serviceSubtaskStatistic.setDrname(serviceSubtaskList.get(0).getDrname());
//鍑洪櫌浜烘
serviceSubtaskStatistic.setDischargeCount(serviceSubtaskList.size());
- serviceSubtaskStatistic.setJoyCount(0L);
- serviceSubtaskStatistic.setJoyAllCount(0L);
+ serviceSubtaskStatistic.setJoyCount(0);
+ serviceSubtaskStatistic.setJoyAllCount(0);
for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
//婊℃剰搴�
List<ServiceSubtaskCount> joyCountTemp= joySubCount.stream().filter(r->r.getSubTaskId().equals(serviceSubtask.getId()))
.collect(Collectors.toList());
if(joyCountTemp!=null&&joyCountTemp.size()>0){
if(ObjectUtils.isNotEmpty(joyCountTemp.get(0).getJoyCount()))
- serviceSubtaskStatistic.setJoyCount(serviceSubtaskStatistic.getJoyCount()+joyCountTemp.get(0).getJoyCount());
+ serviceSubtaskStatistic.setJoyCount(serviceSubtaskStatistic.getJoyCount()+joyCountTemp.get(0).getJoyCount());
if(ObjectUtils.isNotEmpty(joyCountTemp.get(0).getJoyAllCount()))
serviceSubtaskStatistic.setJoyAllCount(serviceSubtaskStatistic.getJoyAllCount()+joyCountTemp.get(0).getJoyAllCount());
}
@@ -2660,4 +2663,8 @@
int remainingCalls = (int) (remainingHours * phoneUpEveryHour);
return remainingCalls;
}
+
+ public List<ServiceSubtaskCount> getSfStatisticsJoydetails(ServiceSubtaskCountReq serviceSubtaskCountReq) {
+ return serviceSubtaskMapper.getSfStatisticsJoydetails(serviceSubtaskCountReq);
+ }
}
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 826effa..e3f07ff 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -92,6 +92,8 @@
<result property="subTaskId" column="subTaskId"/>
<result property="joyCount" column="joyCount"/>
<result property="joyAllCount" column="joyAllCount"/>
+ <result property="joyTotal" column="joyTotal"/>
+ <result property="joyName" column="joyName"/>
</resultMap>
@@ -1119,6 +1121,77 @@
GROUP BY sub_id
</select>
+ <select id="getSfStatisticsJoydetails" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
+ resultMap="ServiceSubtaskResult2">
+ SELECT joyName,joyCount,joyAllCount,ROUND(joyCount/joyAllCount,2) joyTotal FROM (
+ SELECT targetname joyName,
+ (select COUNT(sub_id) FROM service_subtask_detail WHERE sub_id IN(SELECT id FROM service_subtask t
+ <where>
+ del_flag=0
+ <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+ AND leavehospitaldistrictcode IN
+ <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+ close=")">
+ #{leavehospitaldistrictcode}
+ </foreach>
+ </if>
+ <if test="deptcodes != null and deptcodes.size() > 0">
+ AND deptcode IN
+ <foreach collection="deptcodes" item="deptcode" open="(" separator=","
+ close=")">
+ #{deptcode}
+ </foreach>
+ </if>
+ <if test="serviceType != null and serviceType.size() > 0">
+ AND service_type IN
+ <foreach collection="serviceType" item="serviceType" open="(" separator=","
+ close=")">
+ #{serviceType}
+ </foreach>
+ </if>
+ <if test="startTime != null and endTime!=null">
+ AND date_format(visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
+ AND date_format(visit_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d')
+ </if>
+ </where>
+ ) AND targetid=a.id) joyCount , (SELECT COUNT(*) from (select sub_id FROM service_subtask_detail
+ WHERE sub_id IN(SELECT id FROM service_subtask t
+ <where>
+ del_flag=0
+ <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">AND
+ leavehospitaldistrictcode IN
+ <foreach
+ collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+ close=")">
+ #{leavehospitaldistrictcode}
+ </foreach>
+ </if>
+ <if test="deptcodes != null and deptcodes.size() > 0">
+ AND deptcode IN
+ <foreach collection="deptcodes" item="deptcode" open="(" separator=","
+ close=")">
+ #{deptcode}
+ </foreach>
+ </if>
+ <if test="serviceType != null and serviceType.size() > 0">
+ AND service_type IN
+ <foreach collection="serviceType" item="serviceType" open="(" separator=","
+ close=")">
+ #{serviceType}
+ </foreach>
+ </if>
+ <if test="startTime != null and endTime!=null">
+ AND date_format(visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
+ AND date_format(visit_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d')
+ </if>
+ </where>
+ GROUP BY sub_id ) ) ta ) joyAllCount
+ FROM ivr_liba_target a
+ WHERE assortid IN (SELECT config_value FROM sys_config WHERE config_key=
+ 'joyCount')
+ )a1
+ </select>
+
<select id="getDataByTime" resultMap="ServiceSubtaskResult">
select id,
--
Gitblit v1.9.3