| | |
| | | <result property="continueCount" column="continue_count"/> |
| | | <result property="continueTimeNext" column="continue_time_next"/> |
| | | <result property="operationItemId" column="operation_item_id"/> |
| | | <result property="scheduleId" column="schedule_id"/> |
| | | <result property="scheduleDetailId" column="schedule_detail_id"/> |
| | | <result property="scheduleSeq" column="schedule_seq"/> |
| | | <result property="loopCount" column="loop_count"/> |
| | | </resultMap> |
| | | |
| | | <resultMap type="com.smartor.domain.ServiceSubtaskCount" id="ServiceSubtaskResult2"> |
| | |
| | | continue_count, |
| | | continue_time_next, |
| | | operation_item_id, |
| | | schedule_id, |
| | | schedule_detail_id, |
| | | schedule_seq, |
| | | loop_count, |
| | | task_situation |
| | | from service_subtask |
| | | </sql> |
| | |
| | | <include refid="selectServiceSubtaskVo"/> |
| | | where 1=1 |
| | | and del_flag = 0 |
| | | and sendstate != 5 |
| | | <if test="orgid != null and orgid != ''"> |
| | | and orgid = #{orgid} |
| | | </if> |
| | | <if test="subId != null"> |
| | | AND id = #{subId} |
| | | </if> |
| | | <if test="taskid != null ">and taskid = #{taskid}</if> |
| | | <if test="visitTime != null"> |
| | | AND date_format(visit_time,'%y%m%d') <= date_format(#{visitTime},'%y%m%d') |
| | | </if> |
| | | <if test="sendstate != null ">and sendstate = #{sendstate}</if> |
| | | <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if> |
| | | <if test="continueTimeNow != null ">and continue_time_now = #{continueTimeNow,jdbcType=TIMESTAMP}</if> |
| | | <if test="continueCount != null ">and continue_count = #{continueCount}</if> |
| | | <if test="continueTimeNext != null ">and continue_time_next = #{continueTimeNext}</if> |
| | | UNION ALL |
| | | <include refid="selectServiceSubtaskVo"/> |
| | | where 1=1 |
| | | and del_flag = 0 |
| | | and sendstate = 5 |
| | | <if test="orgid != null and orgid != ''"> |
| | | and orgid = #{orgid} |
| | | </if> |
| | | <if test="subId != null"> |
| | | AND id = #{subId} |
| | | </if> |
| | | <if test="taskid != null ">and taskid = #{taskid}</if> |
| | | <if test="visitTime != null"> |
| | | AND date_format(visit_time,'%y%m%d') <= date_format(DATE_ADD(#{visitTime}, INTERVAL 1 DAY),'%y%m%d') |
| | | </if> |
| | | <if test="sendstate != null ">and sendstate = #{sendstate}</if> |
| | | <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if> |
| | |
| | | AND sendstate IN |
| | | <foreach collection="sendstates" item="state" open="(" separator="," close=")"> |
| | | #{state} |
| | | </foreach> |
| | | </if> |
| | | <if test="subIdList != null and sendstates.size() > 0"> |
| | | AND id IN |
| | | <foreach collection="subIdList" item="subId" open="(" separator="," close=")"> |
| | | #{subId} |
| | | </foreach> |
| | | </if> |
| | | <!-- taskIds筛选 --> |
| | |
| | | resultMap="ServiceSubtaskResult"> |
| | | <include refid="selectServiceSubtaskVo"/> |
| | | where del_flag = 0 |
| | | and sendstate != 5 |
| | | <if test="orgid != null and orgid != ''"> |
| | | and orgid = #{orgid} |
| | | </if> |
| | | <if test="visitTime != null"> |
| | | AND date_format(visit_time,'%y%m%d') <= date_format(#{visitTime},'%y%m%d') |
| | | </if> |
| | | <if test="subId != null"> |
| | | AND id = #{subId} |
| | | </if> |
| | | <if test="sendstate != null ">and sendstate = #{sendstate}</if> |
| | | <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if> |
| | | <if test="continueTimeNow != null ">and continue_time_now = #{continueTimeNow,jdbcType=TIMESTAMP}</if> |
| | | <if test="continueCount != null ">and continue_count = #{continueCount}</if> |
| | | <if test="continueTimeNext != null ">and continue_time_next = #{continueTimeNext}</if> |
| | | UNION ALL |
| | | <include refid="selectServiceSubtaskVo"/> |
| | | where del_flag = 0 |
| | | and sendstate = 5 |
| | | <if test="orgid != null and orgid != ''"> |
| | | and orgid = #{orgid} |
| | | </if> |
| | | <if test="visitTime != null"> |
| | | AND date_format(visit_time,'%y%m%d') <= date_format(DATE_ADD(#{visitTime}, INTERVAL 1 DAY),'%y%m%d') |
| | | </if> |
| | | <if test="subId != null"> |
| | | AND id = #{subId} |
| | | </if> |
| | | <if test="sendstate != null ">and sendstate = #{sendstate}</if> |
| | | <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if> |
| | |
| | | <if test="continueTimeNow != null ">and continue_time_now = #{continueTimeNow,jdbcType=TIMESTAMP}</if> |
| | | <if test="continueCount != null ">and continue_count = #{continueCount}</if> |
| | | <if test="continueTimeNext != null ">and continue_time_next = #{continueTimeNext}</if> |
| | | <if test="startOutHospTime != null"> |
| | | AND date_format(endtime,'%y%m%d') >= date_format(#{startOutHospTime},'%y%m%d') |
| | | </if> |
| | | <if test="endOutHospTime != null"> |
| | | AND date_format(endtime,'%y%m%d') <= date_format(#{endOutHospTime},'%y%m%d') |
| | | </if> |
| | | GROUP BY sendname,sendstate,starttime,endtime,nurse_name,phone,sex,task_name,leavediagname,visit_time |
| | | ORDER BY sendname,visit_time |
| | | <if test="pageSize != null and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if> |
| | |
| | | <if test="continueTimeNext != null ">continue_time_next,</if> |
| | | <if test="continueContent != null ">continue_content,</if> |
| | | <if test="operationItemId != null ">operation_item_id,</if> |
| | | <if test="scheduleId != null ">schedule_id,</if> |
| | | <if test="scheduleDetailId != null ">schedule_detail_id,</if> |
| | | <if test="scheduleSeq != null ">schedule_seq,</if> |
| | | <if test="loopCount != null ">loop_count,</if> |
| | | </trim> |
| | | <trim prefix="values (" suffix=")" suffixOverrides=","> |
| | | <if test="sendname != null">#{sendname},</if> |
| | |
| | | <if test="continueTimeNext != null ">#{continueTimeNext,jdbcType=TIMESTAMP},</if> |
| | | <if test="continueContent != null ">#{continueContent},</if> |
| | | <if test="operationItemId != null ">#{operationItemId},</if> |
| | | <if test="scheduleId != null ">#{scheduleId},</if> |
| | | <if test="scheduleDetailId != null ">#{scheduleDetailId},</if> |
| | | <if test="scheduleSeq != null ">#{scheduleSeq},</if> |
| | | <if test="loopCount != null ">#{loopCount},</if> |
| | | </trim> |
| | | </insert> |
| | | |
| | |
| | | <if test="continueTimeNext != null ">continue_time_next = #{continueTimeNext,jdbcType=TIMESTAMP},</if> |
| | | <if test="continueContent != null ">continue_content = #{continueContent},</if> |
| | | <if test="operationItemId != null ">operation_item_id = #{operationItemId},</if> |
| | | <if test="scheduleId != null ">schedule_id = #{scheduleId},</if> |
| | | <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> |
| | | </trim> |
| | | where id = #{id} |
| | | </update> |
| | |
| | | AND visit_time >= DATE(#{startTime}) |
| | | AND visit_time < DATE_ADD(DATE(#{endTime}), INTERVAL 1 DAY) |
| | | </if> |
| | | <if test="hospitalStartTime != null and hospitalEndTime!=null"> |
| | | AND endtime >= DATE(#{hospitalStartTime}) |
| | | AND endtime < DATE_ADD(DATE(#{hospitalEndTime}), INTERVAL 1 DAY) |
| | | </if> |
| | | <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if> |
| | | <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if> |
| | | <if test="isabnormal != null">and isabnormal = #{isabnormal}</if> |
| | |
| | | AND visit_time >= DATE(#{startTime}) |
| | | AND visit_time < DATE_ADD(DATE(#{endTime}), INTERVAL 1 DAY) |
| | | </if> |
| | | <if test="hospitalStartTime != null and hospitalEndTime!=null"> |
| | | AND endtime >= DATE(#{hospitalStartTime}) |
| | | AND endtime < DATE_ADD(DATE(#{hospitalEndTime}), INTERVAL 1 DAY) |
| | | </if> |
| | | <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if> |
| | | <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if> |
| | | <if test="isabnormal != null">and isabnormal = #{isabnormal}</if> |
| | |
| | | <if test="deptcode != null and deptcode != ''"> |
| | | AND deptcode = #{deptcode} |
| | | </if> |
| | | order by endtime desc |
| | | <if test="pageSize != null and pageNum != null"> |
| | | limit ${pageSize} OFFSET ${pageNum} |
| | | </if> |
| | |
| | | SUM(CASE WHEN sendstate = 5 THEN 1 ELSE 0 END) AS fssb, |
| | | SUM(CASE WHEN sendstate >= 3 OR sendstate = 1 THEN 1 ELSE 0 END) AS yfs, |
| | | SUM(CASE WHEN sendstate = 1 THEN 1 ELSE 0 END) AS blq, |
| | | SUM(CASE WHEN sendstate != 4 THEN 1 ELSE 0 END) AS wxsf, |
| | | SUM(CASE WHEN sendstate = 4 THEN 1 ELSE 0 END) AS xsf, |
| | | SUM(CASE WHEN sendstate = 4 THEN 1 ELSE 0 END) AS wxsf, |
| | | SUM(CASE WHEN sendstate != 4 THEN 1 ELSE 0 END) AS xsf, |
| | | SUM(CASE WHEN (sendstate = 1 OR sendstate = 2 OR sendstate = 3 OR sendstate = 5 OR sendstate = 7 ) THEN 1 ELSE 0 END) AS dsf, |
| | | SUM(CASE WHEN sendstate = 6 THEN 1 ELSE 0 END) AS ywc, |
| | | SUM(CASE WHEN excep IS NOT NULL AND excep = '1' THEN 1 ELSE 0 END) AS yc, |
| | |
| | | </choose> |
| | | </select> |
| | | |
| | | <!-- 任务组(appltype=5)滚动调度用:本轮仍在跑的数量 --> |
| | | <select id="countActiveByScheduleIdAndLoop" resultType="int"> |
| | | select count(1) |
| | | from service_subtask |
| | | where schedule_id = #{scheduleId} |
| | | and loop_count = #{loopCount} |
| | | and (del_flag is null or del_flag = '0') |
| | | and sendstate in (1, 2, 3) |
| | | </select> |
| | | |
| | | <!-- 任务组(appltype=5)滚动调度用:拉本轮全量 subtask,作为下一轮的克隆模板 --> |
| | | <select id="selectByScheduleIdAndLoop" resultMap="ServiceSubtaskResult"> |
| | | <include refid="selectServiceSubtaskVo"/> |
| | | where schedule_id = #{scheduleId} |
| | | and loop_count = #{loopCount} |
| | | and (del_flag is null or del_flag = '0') |
| | | order by schedule_seq asc, id asc |
| | | </select> |
| | | |
| | | <select id="statQuestionOption" resultType="com.smartor.domain.ServiceSubtaskDetailRatioExport"> |
| | | SELECT |
| | | d.questiontext AS questiontext, |
| | | t.taskid AS taskid, |
| | | d.asrtext AS optionresult, |
| | | COUNT(*) AS count, |
| | | CONCAT(ROUND(COUNT(*) * 100.0 / t2.total_count, 2), '%') AS ratio |
| | | FROM |
| | | service_task t |
| | | INNER JOIN service_subtask s ON s.taskid = t.taskid |
| | | INNER JOIN service_subtask_detail d ON d.sub_id = s.id |
| | | INNER JOIN ( |
| | | SELECT |
| | | t.taskid, |
| | | d.questiontext, |
| | | COUNT(*) AS total_count |
| | | FROM |
| | | service_task t |
| | | INNER JOIN service_subtask s ON s.taskid = t.taskid |
| | | INNER JOIN service_subtask_detail d ON d.sub_id = s.id |
| | | WHERE t.taskid IN |
| | | <foreach collection="taskIds" item="taskId" open="(" separator="," close=")"> |
| | | #{taskId} |
| | | </foreach> |
| | | and s.sendstate=6 |
| | | GROUP BY |
| | | t.taskid, |
| | | d.questiontext |
| | | ) t2 ON t2.taskid = t.taskid AND t2.questiontext = d.questiontext |
| | | WHERE t.taskid IN |
| | | <foreach collection="taskIds" item="taskId" open="(" separator="," close=")"> |
| | | #{taskId} |
| | | </foreach> |
| | | AND s.sendstate = 6 |
| | | GROUP BY |
| | | t.taskid, |
| | | d.questiontext, |
| | | d.asrtext |
| | | ORDER BY |
| | | d.questiontext, |
| | | t.taskid |
| | | </select> |
| | | |
| | | </mapper> |
| | | |