| | |
| | | |
| | | </resultMap> |
| | | |
| | | <resultMap type="com.smartor.domain.ServiceSubtaskCategoryCount" id="ServiceSubtaskCategoryCountResult"> |
| | | <result property="month" column="month"/> |
| | | <result property="serviceType" column="service_type"/> |
| | | <result property="subTaskId" column="subTaskId"/> |
| | | <result property="completedCount" column="completed_count"/> |
| | | <result property="allCount" column="all_count"/> |
| | | <result property="completedPercent" column="completed_percent"/> |
| | | <result property="name" column="name"/> |
| | | </resultMap> |
| | | |
| | | <sql id="selectServiceSubtaskVo"> |
| | | select id, |
| | | hosp_type, |
| | |
| | | )a1 |
| | | </select> |
| | | |
| | | <select id="getSfStatisticsCategory" parameterType="com.smartor.domain.ServiceSubtaskCountReq" |
| | | resultMap="ServiceSubtaskResult2"> |
| | | SELECT a.sub_id as subTaskId, |
| | | <if test="configValue != null and configValue != ''"> |
| | | SUM(CASE WHEN a.categoryid IN(${configValue}) |
| | | THEN 1 ELSE 0 END) AS joyAllCount, |
| | | </if> |
| | | COUNT(sub_id) joyCount |
| | | FROM service_subtask_detail a |
| | | INNER JOIN service_subtask t ON a.sub_id = t.id |
| | | <where> |
| | | a.del_flag=0 |
| | | AND t.del_flag=0 |
| | | <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0"> |
| | | AND t.leavehospitaldistrictcode IN |
| | | <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator="," |
| | | close=")"> |
| | | #{leavehospitaldistrictcode} |
| | | </foreach> |
| | | </if> |
| | | <if test="deptcodes != null and deptcodes.size() > 0"> |
| | | AND t.deptcode IN |
| | | <foreach collection="deptcodes" item="deptcode" open="(" separator="," |
| | | close=")"> |
| | | #{deptcode} |
| | | </foreach> |
| | | </if> |
| | | <if test="serviceType != null and serviceType.size() > 0"> |
| | | AND t.service_type IN |
| | | <foreach collection="serviceType" item="serviceType" open="(" separator="," |
| | | close=")"> |
| | | #{serviceType} |
| | | </foreach> |
| | | </if> |
| | | <if test="startTime != null and endTime!=null"> |
| | | AND date_format(t.visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d') |
| | | AND date_format(t.visit_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') |
| | | </if> |
| | | <if test="visitDeptCode != null"> |
| | | and t.visit_dept_code = #{visitDeptCode} |
| | | </if> |
| | | <if test="visitDeptName != null"> |
| | | and t.visit_dept_name = #{visitDeptName} |
| | | </if> |
| | | <if test="isabnormal != null"> |
| | | and t.isabnormal = #{isabnormal} |
| | | </if> |
| | | <!-- ç®ååªç»è®¡è¯é³åé®å· --> |
| | | <if test="type != null"> |
| | | and t.type = #{type} |
| | | </if> |
| | | </where> |
| | | GROUP BY a.sub_id |
| | | </select> |
| | | |
| | | <select id="getSfStatisticsScriptDetails" parameterType="com.smartor.domain.ServiceSubtaskCountReq" |
| | | resultMap="ServiceSubtaskScriptCountResult"> |
| | | SELECT |
| | | a.id as scriptid, |
| | | a.script_content, |
| | | b.completed_quantity, |
| | | b.all_quantity, |
| | | ROUND(b.completed_quantity/b.all_quantity,2) as completed_percentage |
| | | FROM |
| | | <if test="type == 1"> |
| | | ivr_task_template_script a |
| | | </if> |
| | | <if test="type == 2"> |
| | | svy_task_template_script a |
| | | </if> |
| | | INNER JOIN( |
| | | SELECT |
| | | ssd.scriptid AS scriptid, |
| | | SUM(CASE WHEN IFNULL(ssd.matchedtext,ssd.asrtext) IS NOT NULL |
| | | AND IFNULL(ssd.matchedtext,ssd.asrtext) != '' THEN 1 |
| | | ELSE 0 END) AS completed_quantity, |
| | | COUNT(*) AS all_quantity |
| | | FROM |
| | | service_subtask_detail ssd |
| | | INNER JOIN service_subtask ss ON ssd.sub_id = ss.id |
| | | WHERE |
| | | ss.del_flag=0 |
| | | AND ssd.del_flag = 0 |
| | | <if test="orgid != null and orgid != ''"> |
| | | AND ss.orgid = #{orgid} |
| | | </if> |
| | | <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0"> |
| | | AND ss.leavehospitaldistrictcode IN |
| | | <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator="," |
| | | close=")"> |
| | | #{leavehospitaldistrictcode} |
| | | </foreach> |
| | | </if> |
| | | <if test="deptcodes != null and deptcodes.size() > 0"> |
| | | AND ss.deptcode IN |
| | | <foreach collection="deptcodes" item="deptcode" open="(" separator="," |
| | | close=")"> |
| | | #{deptcode} |
| | | </foreach> |
| | | </if> |
| | | <if test="serviceType != null and serviceType.size() > 0"> |
| | | AND ss.service_type IN |
| | | <foreach collection="serviceType" item="serviceType" open="(" separator="," |
| | | close=")"> |
| | | #{serviceType} |
| | | </foreach> |
| | | </if> |
| | | <if test="startTime != null and endTime!=null"> |
| | | AND date_format(ss.visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d') |
| | | AND date_format(ss.visit_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') |
| | | </if> |
| | | <!-- ç®ååªç»è®¡è¯é³åé®å· --> |
| | | <if test="type != null"> |
| | | and ss.type = #{type} |
| | | </if> |
| | | <if test="configValue != null and configValue != ''"> |
| | | AND ssd.categoryid IN (${configValue}) |
| | | </if> |
| | | group by ssd.scriptid) b |
| | | ON a.id = b.scriptid |
| | | </select> |
| | | |
| | | <select id="getSfStatisticsScriptItemDetails" parameterType="com.smartor.domain.ServiceSubtaskCountReq" |
| | | resultMap="ServiceSubtaskScriptCountResult"> |
| | | SELECT |
| | | ssd.scriptid, |
| | | IFNULL(ssd.matchedtext,ssd.asrtext) AS option_text, |
| | | COUNT(*) AS chosen_quantity |
| | | FROM |
| | | service_subtask_detail ssd |
| | | INNER JOIN service_subtask ss ON ssd.sub_id = ss.id |
| | | <where> |
| | | ss.del_flag=0 |
| | | AND IFNULL(ssd.matchedtext,ssd.asrtext) IS NOT NULL |
| | | AND IFNULL(ssd.matchedtext,ssd.asrtext) != '' |
| | | <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0"> |
| | | AND ss.leavehospitaldistrictcode IN |
| | | <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator="," |
| | | close=")"> |
| | | #{leavehospitaldistrictcode} |
| | | </foreach> |
| | | </if> |
| | | <if test="deptcodes != null and deptcodes.size() > 0"> |
| | | AND ss.deptcode IN |
| | | <foreach collection="deptcodes" item="deptcode" open="(" separator="," |
| | | close=")"> |
| | | #{deptcode} |
| | | </foreach> |
| | | </if> |
| | | <if test="serviceType != null and serviceType.size() > 0"> |
| | | AND ss.service_type IN |
| | | <foreach collection="serviceType" item="serviceType" open="(" separator="," |
| | | close=")"> |
| | | #{serviceType} |
| | | </foreach> |
| | | </if> |
| | | <if test="startTime != null and endTime!=null"> |
| | | AND date_format(ss.visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d') |
| | | AND date_format(ss.visit_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') |
| | | </if> |
| | | <!-- ç®ååªç»è®¡è¯é³åé®å· --> |
| | | <if test="type != null"> |
| | | and ss.type = #{type} |
| | | </if> |
| | | <if test="configValue != null and configValue != ''"> |
| | | AND ssd.categoryid IN (${configValue}) |
| | | </if> |
| | | </where> |
| | | group by ssd.scriptid, IFNULL(ssd.matchedtext,ssd.asrtext) |
| | | </select> |
| | | |
| | | <select id="getDataByTime" resultMap="ServiceSubtaskResult"> |
| | | |
| | | select id, |