| | |
| | | <result property="scheduleDetailId" column="schedule_detail_id"/> |
| | | <result property="scheduleSeq" column="schedule_seq"/> |
| | | <result property="loopCount" column="loop_count"/> |
| | | <result property="isManuallyCalled" column="is_manually_called"/> |
| | | <result property="campusid" column="campusid"/> |
| | | </resultMap> |
| | | |
| | |
| | | schedule_detail_id, |
| | | schedule_seq, |
| | | loop_count, |
| | | task_situation |
| | | task_situation, |
| | | is_manually_called |
| | | from service_subtask |
| | | </sql> |
| | | |
| | |
| | | <if test="createBy != null">and create_by = #{createBy}</if> |
| | | <if test="taskGuid != null">and task_guid = #{taskGuid}</if> |
| | | <if test="isabnormal != null">and isabnormal = #{isabnormal}</if> |
| | | <if test="isManuallyCalled != null">and is_manually_called = #{isManuallyCalled}</if> |
| | | <if test="isVisitAgain != null">and is_visit_again = #{isVisitAgain}</if> |
| | | <if test="visitCount != null and visitCount > 1 and visitDeptCodes != null and visitDeptCodes.size() > 0"> |
| | | AND visit_dept_code IN |
| | |
| | | <if test="scheduleDetailId != null ">schedule_detail_id,</if> |
| | | <if test="scheduleSeq != null ">schedule_seq,</if> |
| | | <if test="loopCount != null ">loop_count,</if> |
| | | <if test="isManuallyCalled != null ">is_manually_called,</if> |
| | | </trim> |
| | | <trim prefix="values (" suffix=")" suffixOverrides=","> |
| | | <if test="sendname != null">#{sendname},</if> |
| | |
| | | <if test="scheduleDetailId != null ">#{scheduleDetailId},</if> |
| | | <if test="scheduleSeq != null ">#{scheduleSeq},</if> |
| | | <if test="loopCount != null ">#{loopCount},</if> |
| | | <if test="isManuallyCalled != null ">#{isManuallyCalled},</if> |
| | | </trim> |
| | | </insert> |
| | | |
| | |
| | | <if test="scheduleDetailId != null ">schedule_detail_id = #{scheduleDetailId},</if> |
| | | <if test="scheduleSeq != null ">schedule_seq = #{scheduleSeq},</if> |
| | | <if test="loopCount != null ">loop_count = #{loopCount},</if> |
| | | <if test="isManuallyCalled != null ">is_manually_called = #{isManuallyCalled},</if> |
| | | </trim> |
| | | where id = #{id} |
| | | </update> |
| | |
| | | <if test="continueCount != null ">continue_count = #{continueCount},</if> |
| | | <if test="continueTimeNext != null ">continue_time_next = #{continueTimeNext,jdbcType=TIMESTAMP},</if> |
| | | <if test="continueContent != null ">continue_content = #{continueContent},</if> |
| | | <if test="isManuallyCalled != null ">is_manually_called = #{isManuallyCalled},</if> |
| | | </trim> |
| | | where 1=1 |
| | | <if test="patid != null ">and patid = #{patid}</if> |
| | |
| | | <if test="continueCount != null ">continue_count = #{continueCount},</if> |
| | | <if test="continueTimeNext != null ">continue_time_next = #{continueTimeNext,jdbcType=TIMESTAMP},</if> |
| | | <if test="continueContent != null ">continue_content = #{continueContent},</if> |
| | | <if test="isManuallyCalled != null ">is_manually_called = #{isManuallyCalled},</if> |
| | | </trim> |
| | | <where> |
| | | <if test="patid != null "> |
| | |
| | | <if test="continueCount != null ">continue_count = #{continueCount},</if> |
| | | <if test="continueTimeNext != null ">continue_time_next = #{continueTimeNext,jdbcType=TIMESTAMP},</if> |
| | | <if test="continueContent != null ">continue_content = #{continueContent},</if> |
| | | <if test="isManuallyCalled != null ">is_manually_called = #{isManuallyCalled},</if> |
| | | </trim> |
| | | where task_guid = #{taskGuid} and task_name = #{taskName} |
| | | </update> |
| | |
| | | ROUND(avg(d.score), 2) AS totalScore |
| | | FROM service_subtask_detail d |
| | | JOIN service_task t ON d.taskid = t.taskid |
| | | WHERE t.service_type IN (6, 14) |
| | | WHERE t.service_type IN (14) |
| | | AND t.del_flag = 0 |
| | | AND d.del_flag = 0 |
| | | AND d.create_time >= #{startFinishTime} |
| | |
| | | and endtime |
| | | </select> |
| | | |
| | | <!-- 门诊满意度综合得分排名(按科室或病区) --> |
| | | <!-- 综合满意度 = Σ(评分明细权重) / 评分明细条数 × 100%,权重只取 1、0.8、0.6、0.4、0.2 五档 --> |
| | | <select id="selectMzMydScoreRank" parameterType="com.smartor.domain.VO.MzMydScoreRankVO" |
| | | resultType="com.smartor.domain.DTO.MzMydScoreRankDTO"> |
| | | SELECT |
| | | t.code AS code, |
| | | t.name AS name, |
| | | ROUND(AVG(t.w) * 100, 2) AS score, |
| | | COUNT(*) AS itemCount |
| | | FROM ( |
| | | SELECT |
| | | <choose> |
| | | <when test='dimensionType == "2"'> |
| | | s.leavehospitaldistrictcode AS code, |
| | | s.leavehospitaldistrictname AS name, |
| | | </when> |
| | | <otherwise> |
| | | s.deptcode AS code, |
| | | s.deptname AS name, |
| | | </otherwise> |
| | | </choose> |
| | | CAST(d.score AS DECIMAL(10,4)) AS w |
| | | FROM service_subtask s |
| | | INNER JOIN service_subtask_detail d ON d.sub_id = s.id |
| | | WHERE s.del_flag = '0' |
| | | AND d.del_flag = '0' |
| | | AND s.sendstate = 6 |
| | | <if test="serviceTypes != null and serviceTypes.size() > 0"> |
| | | AND service_type IN |
| | | <foreach collection="serviceTypes" item="serviceType" open="(" separator="," |
| | | close=")"> |
| | | #{serviceType} |
| | | </foreach> |
| | | </if> |
| | | <!-- <!– 只取公式里的五档权重,空值/0/未答等既不进分子也不进分母 –>--> |
| | | <!-- AND CAST(d.score AS DECIMAL(10,4)) IN (1, 0.8, 0.6, 0.4, 0.2)--> |
| | | <!-- 同一子任务同一题目只保留最新一条,避免重答被重复计入项数 --> |
| | | AND d.id = ( |
| | | SELECT MAX(d2.id) |
| | | FROM service_subtask_detail d2 |
| | | WHERE d2.sub_id = d.sub_id |
| | | AND d2.questiontext <=> d.questiontext |
| | | AND d2.del_flag = '0' |
| | | ) |
| | | <if test="orgid != null and orgid != ''"> |
| | | AND s.orgid = #{orgid} |
| | | </if> |
| | | <if test="campusid != null and campusid != ''"> |
| | | AND s.campusid = #{campusid} |
| | | </if> |
| | | <if test="startFinishTime != null"> |
| | | AND s.finishtime >= #{startFinishTime} |
| | | </if> |
| | | <if test="endFinishTime != null"> |
| | | AND s.finishtime < DATE_ADD(#{endFinishTime}, INTERVAL 1 DAY) |
| | | </if> |
| | | <if test="questionText != null and questionText != ''">and d.questiontext like concat('%', #{questionText}, |
| | | '%') |
| | | </if> |
| | | <choose> |
| | | <when test='dimensionType == "2"'> |
| | | AND s.leavehospitaldistrictcode IS NOT NULL AND s.leavehospitaldistrictcode <> '' |
| | | AND s.leavehospitaldistrictname IS NOT NULL AND s.leavehospitaldistrictname <> '' |
| | | <if test="districtCodes != null and districtCodes.size() > 0"> |
| | | AND s.leavehospitaldistrictcode IN |
| | | <foreach collection="districtCodes" item="districtCode" open="(" separator="," close=")"> |
| | | #{districtCode} |
| | | </foreach> |
| | | </if> |
| | | </when> |
| | | <otherwise> |
| | | AND s.deptcode IS NOT NULL AND s.deptcode <> '' |
| | | AND s.deptname IS NOT NULL AND s.deptname <> '' |
| | | <if test="deptCodes != null and deptCodes.size() > 0"> |
| | | AND s.deptcode IN |
| | | <foreach collection="deptCodes" item="deptCode" open="(" separator="," close=")"> |
| | | #{deptCode} |
| | | </foreach> |
| | | </if> |
| | | </otherwise> |
| | | </choose> |
| | | ) t |
| | | GROUP BY t.code, t.name |
| | | ORDER BY AVG(t.w) DESC, COUNT(*) DESC |
| | | <if test="limit != null and limit > 0"> |
| | | LIMIT #{limit} |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| | | |