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