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)); } } 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; 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=""; } 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); 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); } 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); } } 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,