<?xml version="1.0" encoding="UTF-8" ?> 
 | 
<!DOCTYPE mapper 
 | 
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
 | 
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
 | 
<mapper namespace="com.smartor.mapper.ServiceSubtaskMapper"> 
 | 
  
 | 
    <resultMap type="com.smartor.domain.ServiceSubtask" id="ServiceSubtaskResult"> 
 | 
        <result property="id" column="id"/> 
 | 
        <result property="sendname" column="sendname"/> 
 | 
        <result property="phone" column="phone"/> 
 | 
        <result property="sex" column="sex"/> 
 | 
        <result property="nurseName" column="nurse_name"/> 
 | 
        <result property="nurseId" column="nurse_id"/> 
 | 
        <result property="age" column="age"/> 
 | 
        <result property="sfzh" column="sfzh"/> 
 | 
        <result property="addr" column="addr"/> 
 | 
        <result property="senderdetail" column="senderdetail"/> 
 | 
        <result property="type" column="type"/> 
 | 
        <result property="taskid" column="taskid"/> 
 | 
        <result property="templateid" column="templateid"/> 
 | 
        <result property="templatename" column="templatename"/> 
 | 
        <result property="senddate" column="senddate"/> 
 | 
        <result property="senduuid" column="senduuid"/> 
 | 
        <result property="result" column="result"/> 
 | 
        <result property="finishtime" column="finishtime"/> 
 | 
        <result property="recordid" column="recordid"/> 
 | 
        <result property="exrecallcount" column="exrecallcount"/> 
 | 
        <result property="pulltime" column="pulltime"/> 
 | 
        <result property="deptcode" column="deptcode"/> 
 | 
        <result property="labelstatus" column="labelstatus"/> 
 | 
        <result property="delFlag" column="del_flag"/> 
 | 
        <result property="updateBy" column="update_by"/> 
 | 
        <result property="updateTime" column="update_time"/> 
 | 
        <result property="createBy" column="create_by"/> 
 | 
        <result property="createTime" column="create_time"/> 
 | 
        <result property="isupload" column="isupload"/> 
 | 
        <result property="uploadTime" column="upload_time"/> 
 | 
        <result property="orgid" column="orgid"/> 
 | 
        <result property="pid" column="pid"/> 
 | 
        <result property="guid" column="guid"/> 
 | 
        <result property="taskGuid" column="task_guid"/> 
 | 
        <result property="textParam" column="text_param"/> 
 | 
        <result property="preachform" column="preachform"/> 
 | 
        <result property="bedNo" column="bed_no"/> 
 | 
        <result property="sendType" column="send_type"/> 
 | 
        <result property="taskName" column="task_name"/> 
 | 
        <result property="taskDesc" column="task_desc"/> 
 | 
        <result property="operator" column="operator"/> 
 | 
        <result property="operatorNo" column="operator_no"/> 
 | 
        <result property="hospno" column="hospno"/> 
 | 
        <result property="hospType" column="hosp_type"/> 
 | 
        <result property="wechat" column="wechat"/> 
 | 
        <result property="leaveicd10code" column="leaveicd10code"/> 
 | 
        <result property="leavediagname" column="leavediagname"/> 
 | 
        <result property="deptname" column="deptname"/> 
 | 
        <result property="admindate" column="admindate"/> 
 | 
        <result property="roomno" column="roomno"/> 
 | 
        <result property="patid" column="patid"/> 
 | 
        <result property="libtemplatename" column="libtemplatename"/> 
 | 
        <result property="libtemplateid" column="libtemplateid"/> 
 | 
        <result property="openid" column="openid"/> 
 | 
        <result property="longSendTime" column="long_send_time"/> 
 | 
        <result property="serviceType" column="service_type"/> 
 | 
        <result property="score" column="score"/> 
 | 
        <result property="submit" column="submit"/> 
 | 
        <result property="drname" column="drname"/> 
 | 
        <result property="drcode" column="drcode"/> 
 | 
        <result property="starttime" column="starttime"/> 
 | 
        <result property="endtime" column="endtime"/> 
 | 
        <result property="leavehospitaldistrictcode" column="leavehospitaldistrictcode"/> 
 | 
        <result property="leavehospitaldistrictname" column="leavehospitaldistrictname"/> 
 | 
        <result property="excep" column="excep"/> 
 | 
        <result property="remark" column="remark"/> 
 | 
        <result property="suggest" column="suggest"/> 
 | 
        <result property="sendstate" column="sendstate"/> 
 | 
        <result property="inhospid" column="inhospid"/> 
 | 
        <result property="patfrom" column="patfrom"/> 
 | 
        <result property="patguid" column="patguid"/> 
 | 
        <result property="visitCount" column="visit_count"/> 
 | 
        <result property="isVisitAgain" column="is_visit_again"/> 
 | 
        <result property="upid" column="upid"/> 
 | 
        <result property="visitTime" column="visit_time"/> 
 | 
        <result property="visitDeptName" column="visit_dept_name"/> 
 | 
        <result property="visitDeptCode" column="visit_dept_code"/> 
 | 
        <result property="managementDoctor" column="management_doctor"/> 
 | 
        <result property="managementDoctorCode" column="management_doctor_code"/> 
 | 
        <result property="currentPreachform" column="current_preachform"/> 
 | 
        <result property="taskSituation" column="task_situation"/> 
 | 
    </resultMap> 
 | 
  
 | 
    <resultMap type="com.smartor.domain.ServiceSubtaskCount" id="ServiceSubtaskResult2"> 
 | 
        <result property="month" column="month"/> 
 | 
        <result property="serviceType" column="service_type"/> 
 | 
        <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> 
 | 
  
 | 
    <sql id="selectServiceSubtaskVo"> 
 | 
        select id, 
 | 
               hosp_type, 
 | 
               task_guid, 
 | 
               patfrom, 
 | 
               management_doctor, 
 | 
               management_doctor_code, 
 | 
               current_preachform, 
 | 
               upid, 
 | 
               visit_dept_name, 
 | 
               visit_dept_code, 
 | 
               visit_time, 
 | 
               inhospid, 
 | 
               visit_count, 
 | 
               is_visit_again, 
 | 
               patguid, 
 | 
               suggest, 
 | 
               sendstate, 
 | 
               endtime, 
 | 
               nurse_id, 
 | 
               nurse_name, 
 | 
               starttime, 
 | 
               submit, 
 | 
               drname, 
 | 
               excep, 
 | 
               drcode, 
 | 
               long_send_time, 
 | 
               openid, 
 | 
               remark, 
 | 
               service_type, 
 | 
               libtemplateid, 
 | 
               libtemplatename, 
 | 
               hospno, 
 | 
               score, 
 | 
               phone, 
 | 
               sex, 
 | 
               age, 
 | 
               patid, 
 | 
               sfzh, 
 | 
               addr, 
 | 
               senderdetail, 
 | 
               type, 
 | 
               taskid, 
 | 
               templateid, 
 | 
               templatename, 
 | 
               senddate, 
 | 
               senduuid, 
 | 
               result, 
 | 
               finishtime, 
 | 
               recordid, 
 | 
               exrecallcount, 
 | 
               pulltime, 
 | 
               deptcode, 
 | 
               labelstatus, 
 | 
               del_flag, 
 | 
               update_by, 
 | 
               update_time, 
 | 
               create_by, 
 | 
               create_time, 
 | 
               isupload, 
 | 
               upload_time, 
 | 
               orgid, 
 | 
               pid, 
 | 
               guid, 
 | 
               text_param, 
 | 
               preachform, 
 | 
               bed_no, 
 | 
               send_type, 
 | 
               task_name, 
 | 
               task_desc, 
 | 
               operator_no, 
 | 
               operator, 
 | 
               wechat, 
 | 
               sendname, 
 | 
               roomno, 
 | 
               admindate, 
 | 
               deptname, 
 | 
               stop_state, 
 | 
               leavehospitaldistrictcode, 
 | 
               leavehospitaldistrictname, 
 | 
               leavediagname, 
 | 
               leaveicd10code, 
 | 
               orgid, 
 | 
               visit_type, 
 | 
               management_doctor, 
 | 
               management_doctor_code, 
 | 
               task_situation 
 | 
        from service_subtask 
 | 
    </sql> 
 | 
  
 | 
    <select id="selectServiceSubtaskBySendstate" parameterType="com.smartor.domain.ServiceSubtaskVO" 
 | 
            resultMap="ServiceSubtaskResult"> 
 | 
  
 | 
        <include refid="selectServiceSubtaskVo"/> 
 | 
        <where> 
 | 
            del_flag=0 
 | 
            and taskid = #{taskid} 
 | 
            AND sendstate IN 
 | 
            <foreach collection="sendstates" item="sendstate" open="(" separator="," 
 | 
                     close=")"> 
 | 
                #{sendstate} 
 | 
            </foreach> 
 | 
        </where> 
 | 
    </select> 
 | 
  
 | 
    <select id="queryServiceSubtaskList" parameterType="com.smartor.domain.ServiceSubtaskVO" 
 | 
            resultMap="ServiceSubtaskResult"> 
 | 
        <include refid="selectServiceSubtaskVo"/> 
 | 
        <where> 
 | 
            del_flag=0 
 | 
            <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> 
 | 
        </where> 
 | 
  
 | 
    </select> 
 | 
  
 | 
  
 | 
    <select id="selectServiceSubtaskList" parameterType="com.smartor.domain.ServiceSubtaskVO" 
 | 
            resultMap="ServiceSubtaskResult"> 
 | 
        <include refid="selectServiceSubtaskVo"/> 
 | 
        <where> 
 | 
            del_flag=0 
 | 
            <if test="sendname != null  and sendname != ''">and sendname like concat('%', #{sendname}, '%')</if> 
 | 
            <if test="phone != null  and phone != ''">and phone = #{phone}</if> 
 | 
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">and 
 | 
                leavehospitaldistrictcode = #{leavehospitaldistrictcode} 
 | 
            </if> 
 | 
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and 
 | 
                leavehospitaldistrictname = #{leavehospitaldistrictname} 
 | 
            </if> 
 | 
            <if test="leavediagname != null  and leavediagname != ''">and leavediagname like concat('%', 
 | 
                #{leavediagname}, '%') 
 | 
            </if> 
 | 
            <if test="managementDoctor != null  and managementDoctor != ''">and management_doctor like concat('%', 
 | 
                #{managementDoctor}, '%') 
 | 
            </if> 
 | 
            <if test="sex != null  and sex != ''">and sex = #{sex}</if> 
 | 
            <if test="age != null ">and age = #{age}</if> 
 | 
            <if test="patguid != null ">and patguid = #{patguid}</if> 
 | 
            <if test="subId != null ">and id = #{subId}</if> 
 | 
            <if test="inhospid != null ">and inhospid = #{inhospid}</if> 
 | 
            <if test="managementDoctorCode != null ">and management_doctor_code = #{managementDoctorCode}</if> 
 | 
            <if test="submit != null ">and submit = #{submit}</if> 
 | 
            <if test="upid != null ">and upid = #{upid}</if> 
 | 
            <if test="patfrom != null ">and patfrom = #{patfrom}</if> 
 | 
            <if test="serviceType != null ">and service_type = #{serviceType}</if> 
 | 
            <if test="patid != null ">and patid = #{patid}</if> 
 | 
            <if test="sfzh != null  and sfzh != ''">and sfzh = #{sfzh}</if> 
 | 
            <if test="addr != null  and addr != ''">and addr = #{addr}</if> 
 | 
            <if test="senderdetail != null  and senderdetail != ''">and senderdetail = #{senderdetail}</if> 
 | 
            <if test="type != null  and type != ''">and type = #{type}</if> 
 | 
            <if test="taskid != null ">and taskid = #{taskid}</if> 
 | 
            <if test="templateid != null  and templateid != ''">and templateid = #{templateid}</if> 
 | 
            <if test="templatename != null  and templatename != ''">and templatename like concat('%', #{templatename}, 
 | 
                '%') 
 | 
            </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> 
 | 
            <if test="startSendDateTime != null"> 
 | 
                AND date_format(long_send_time,'%y%m%d') >= date_format(#{startSendDateTime},'%y%m%d') 
 | 
            </if> 
 | 
            <if test="endSendDateTime != null"> 
 | 
                AND date_format(long_send_time,'%y%m%d') <= date_format(#{endSendDateTime},'%y%m%d') 
 | 
            </if> 
 | 
  
 | 
            <if test="longSendTime != null"> 
 | 
                AND date_format(long_send_time,'%y%m%d') <= date_format(#{longSendTime},'%y%m%d') 
 | 
            </if> 
 | 
            <if test="deptOrDistrict==1"> 
 | 
                <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0"> 
 | 
                    AND leavehospitaldistrictcode IN 
 | 
                    <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" 
 | 
                             separator="," 
 | 
                             close=")"> 
 | 
                        #{leavehospitaldistrictcode} 
 | 
                    </foreach> 
 | 
                </if> 
 | 
                <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0"> 
 | 
                    AND deptcode IN 
 | 
                    <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator="," 
 | 
                             close=")"> 
 | 
                        #{leaveldeptcode} 
 | 
                    </foreach> 
 | 
                </if> 
 | 
            </if> 
 | 
            <if test="deptOrDistrict==2"> 
 | 
                <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0"> 
 | 
                    AND (leavehospitaldistrictcode IN 
 | 
                    <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" 
 | 
                             separator="," 
 | 
                             close=")"> 
 | 
                        #{leavehospitaldistrictcode} 
 | 
                    </foreach> 
 | 
                </if> 
 | 
                <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0"> 
 | 
                    OR deptcode IN 
 | 
                    <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator="," 
 | 
                             close="))"> 
 | 
                        #{leaveldeptcode} 
 | 
                    </foreach> 
 | 
                </if> 
 | 
            </if> 
 | 
  
 | 
            <if test="visitTime != null"> 
 | 
                AND date_format(visit_time,'%y%m%d') = date_format(#{visitTime},'%y%m%d') 
 | 
            </if> 
 | 
            <if test="senddate != null ">and senddate = #{senddate}</if> 
 | 
            <if test="senduuid != null  and senduuid != ''">and senduuid = #{senduuid}</if> 
 | 
            <if test="result != null  and result != ''">and result = #{result}</if> 
 | 
            <if test="finishtime != null ">and finishtime = #{finishtime}</if> 
 | 
            <if test="recordid != null ">and recordid = #{recordid}</if> 
 | 
            <if test="exrecallcount != null ">and exrecallcount = #{exrecallcount}</if> 
 | 
            <if test="pulltime != null ">and pulltime = #{pulltime}</if> 
 | 
            <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if> 
 | 
            <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if> 
 | 
            <if test="labelstatus != null ">and labelstatus = #{labelstatus}</if> 
 | 
            <if test="isupload != null ">and isupload = #{isupload}</if> 
 | 
            <if test="uploadTime != null ">and upload_time = #{uploadTime}</if> 
 | 
            <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if> 
 | 
            <if test="pid != null ">and pid = #{pid}</if> 
 | 
            <if test="preachform != null ">and preachform = #{preachform}</if> 
 | 
            <if test="currentPreachform != null ">and current_preachform = #{currentPreachform}</if> 
 | 
            <if test="guid != null  and guid != ''">and guid = #{guid}</if> 
 | 
            <if test="textParam != null  and textParam != ''">and text_param = #{textParam}</if> 
 | 
            <if test="bedNo != null">and bed_no = #{bedNo}</if> 
 | 
            <if test="sendType != null  and sendType != ''">and send_type = #{sendType}</if> 
 | 
            <if test="operator != null  and operator != ''">and operator = #{operator}</if> 
 | 
            <if test="operatorNo != null  and operatorNo != ''">and operator_no = #{operatorNo}</if> 
 | 
            <if test="wechat != null  and wechat != ''">and wechat = #{wechat}</if> 
 | 
            <if test="hospType != null  and hospType != ''">and hosp_type = #{hospType}</if> 
 | 
            <if test="libtemplateid != null ">and libtemplateid = #{libtemplateid}</if> 
 | 
            <if test="libtemplatename != null ">and libtemplatename = #{libtemplatename}</if> 
 | 
            <if test="openid != null ">and openid = #{openid}</if> 
 | 
            <if test="longSendTime != null ">and long_send_time = #{longSendTime}</if> 
 | 
            <if test="sendstate != null ">and sendstate = #{sendstate}</if> 
 | 
            <if test="drname != null  and drname != ''">and drname like concat('%', #{drname}, '%')</if> 
 | 
            <if test="taskName != null  and taskName != ''">and task_name like concat('%', #{taskName}, '%')</if> 
 | 
            <if test="drcode != null and drcode != ''">and (drcode = #{drcode}</if> 
 | 
            <if test="nurseId != null  and nurseId != ''">or nurse_id = #{nurseId})</if> 
 | 
            <if test="starttime != null ">and starttime = #{starttime}</if> 
 | 
            <if test="endtime != null ">and endtime = #{endtime}</if> 
 | 
            <if test="excep != null ">and excep = #{excep}</if> 
 | 
            <if test="nurseName != null ">and nurse_name = #{nurseName}</if> 
 | 
            <if test="score != null">and score = #{score}</if> 
 | 
            <!--            <if test="visitCount != null">and visit_count = #{visitCount}</if>--> 
 | 
            <if test="visitCount != null and visitCount == 1"> 
 | 
                AND visit_count = 1 
 | 
            </if> 
 | 
            <if test="visitCount != null and visitCount > 1"> 
 | 
                AND visit_count > 1 
 | 
            </if> 
 | 
            <if test="remark != null">and remark = #{remark}</if> 
 | 
            <if test="suggest != null">and suggest = #{suggest}</if> 
 | 
            <if test="createBy != null">and create_by = #{createBy}</if> 
 | 
            <if test="taskGuid != null">and task_guid = #{taskGuid}</if> 
 | 
            <if test="isVisitAgain != null">and is_visit_again = #{isVisitAgain}</if> 
 | 
            <!-- <if test="visitTime != null">and visit_time = #{visitTime}</if> --> 
 | 
            <!--<if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if> 
 | 
            <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if>--> 
 | 
            <if test="visitCount != null and visitCount > 1 and visitDeptCodes != null and visitDeptCodes.size() > 0"> 
 | 
                AND visit_dept_code IN 
 | 
                <foreach collection="visitDeptCodes" item="visitDeptCodes" open="(" 
 | 
                         separator="," 
 | 
                         close=")"> 
 | 
                    #{visitDeptCodes} 
 | 
                </foreach> 
 | 
            </if> 
 | 
        </where> 
 | 
        <if test="sort != null  and sort==0">order by endtime asc</if> 
 | 
        <if test="sort != null  and sort==1">order by endtime desc</if> 
 | 
        <if test="sort != null  and sort==2">order by long_send_time asc</if> 
 | 
        <if test="sort != null  and sort==3">order by long_send_time desc</if> 
 | 
        <if test="sort != null  and sort==5">order by admindate asc</if> 
 | 
        <if test="sort != null  and sort==6">order by admindate desc</if> 
 | 
        <if test="sort != null  and sort==7">order by visit_time asc</if> 
 | 
        <if test="sort != null  and sort==8">order by visit_time desc</if> 
 | 
  
 | 
        <!-- order by update_time desc,id desc --> 
 | 
    </select> 
 | 
  
 | 
    <select id="selectServiceSubtaskListByCreateTime" parameterType="com.smartor.domain.ServiceSubtaskVO" 
 | 
            resultMap="ServiceSubtaskResult"> 
 | 
        <include refid="selectServiceSubtaskVo"/> 
 | 
        <where> 
 | 
            del_flag=0 
 | 
            <if test="createStartTime != null  and createEndTime != null">and create_time BETWEEN #{createStartTime} AND 
 | 
                #{createEndTime} 
 | 
            </if> 
 | 
            <if test="createBy != null ">and create_by = #{createBy}</if> 
 | 
            <if test="sendname != null ">and sendname = #{sendname}</if> 
 | 
            <if test="sfzh != null ">and sfzh = #{sfzh}</if> 
 | 
            <if test="patguid != null ">and patguid = #{patguid}</if> 
 | 
            <if test="upid != null ">and upid = #{upid}</if> 
 | 
            <if test="visitCount != null ">and visit_count = #{visitCount}</if> 
 | 
            <if test="isVisitAgain != null ">and is_visit_again = #{isVisitAgain}</if> 
 | 
            <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if> 
 | 
            <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if> 
 | 
            <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if> 
 | 
            <if test="managementDoctor != null">and management_doctor = #{managementDoctor}</if> 
 | 
            <if test="currentPreachform != null">and current_preachform = #{currentPreachform}</if> 
 | 
        </where> 
 | 
  
 | 
    </select> 
 | 
  
 | 
  
 | 
    <select id="selectServiceSubtaskListAgain" parameterType="com.smartor.domain.ServiceSubtaskVO" 
 | 
            resultMap="ServiceSubtaskResult"> 
 | 
        <include refid="selectServiceSubtaskVo"/> 
 | 
        <where> 
 | 
            del_flag=0 
 | 
            and upid is not null 
 | 
            and visit_count > 1 
 | 
            <if test="createStartTime != null  and createEndTime != null">and create_time BETWEEN #{createStartTime} AND 
 | 
                #{createEndTime} 
 | 
            </if> 
 | 
            <if test="senddate != null ">and senddate = #{senddate}</if> 
 | 
            <if test="senduuid != null  and senduuid != ''">and senduuid = #{senduuid}</if> 
 | 
            <if test="result != null  and result != ''">and result = #{result}</if> 
 | 
            <if test="finishtime != null ">and finishtime = #{finishtime}</if> 
 | 
            <if test="recordid != null ">and recordid = #{recordid}</if> 
 | 
            <if test="exrecallcount != null ">and exrecallcount = #{exrecallcount}</if> 
 | 
            <if test="pulltime != null ">and pulltime = #{pulltime}</if> 
 | 
            <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if> 
 | 
            <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if> 
 | 
            <if test="labelstatus != null ">and labelstatus = #{labelstatus}</if> 
 | 
            <if test="isupload != null ">and isupload = #{isupload}</if> 
 | 
            <if test="uploadTime != null ">and upload_time = #{uploadTime}</if> 
 | 
            <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if> 
 | 
            <if test="pid != null ">and pid = #{pid}</if> 
 | 
            <if test="preachform != null ">and preachform = #{preachform}</if> 
 | 
            <if test="guid != null  and guid != ''">and guid = #{guid}</if> 
 | 
            <if test="textParam != null  and textParam != ''">and text_param = #{textParam}</if> 
 | 
            <if test="bedNo != null">and bed_no = #{bedNo}</if> 
 | 
            <if test="sendType != null  and sendType != ''">and send_type = #{sendType}</if> 
 | 
            <if test="operator != null  and operator != ''">and operator = #{operator}</if> 
 | 
            <if test="operatorNo != null  and operatorNo != ''">and operator_no = #{operatorNo}</if> 
 | 
            <if test="wechat != null  and wechat != ''">and wechat = #{wechat}</if> 
 | 
            <if test="hospType != null  and hospType != ''">and hosp_type = #{hospType}</if> 
 | 
            <if test="libtemplateid != null ">and libtemplateid = #{libtemplateid}</if> 
 | 
            <if test="libtemplatename != null ">and libtemplatename = #{libtemplatename}</if> 
 | 
            <if test="openid != null ">and openid = #{openid}</if> 
 | 
            <if test="longSendTime != null ">and long_send_time = #{longSendTime}</if> 
 | 
            <if test="sendstate != null ">and sendstate = #{sendstate}</if> 
 | 
            <if test="drname != null  and drname != ''">and drname like concat('%', #{drname}, '%')</if> 
 | 
            <if test="taskName != null  and taskName != ''">and task_name like concat('%', #{taskName}, '%')</if> 
 | 
            <if test="drcode != null and drcode != ''">and (drcode = #{drcode}</if> 
 | 
            <if test="nurseId != null  and nurseId != ''">or nurse_id = #{nurseId})</if> 
 | 
            <if test="starttime != null ">and starttime = #{starttime}</if> 
 | 
            <if test="endtime != null ">and endtime = #{endtime}</if> 
 | 
            <if test="excep != null ">and excep = #{excep}</if> 
 | 
            <if test="nurseName != null ">and nurse_name = #{nurseName}</if> 
 | 
            <if test="visitTime != null ">and visit_time = #{visitTime}</if> 
 | 
            <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if> 
 | 
            <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if> 
 | 
            <if test="currentPreachform != null">and current_preachform = #{currentPreachform}</if> 
 | 
            <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if> 
 | 
            <if test="managementDoctor != null">and management_doctor like concat('%',#{managementDoctor}, '%')</if> 
 | 
        </where> 
 | 
  
 | 
    </select> 
 | 
  
 | 
    <select id="selectSendstateByCondition" parameterType="com.smartor.domain.ServiceSubtask" resultType="Integer"> 
 | 
        SELECT b.sendstate 
 | 
        from service_task a 
 | 
                 JOIN service_subtask b on a.taskid = b.taskid and a.pat_cycle = 0 and b.del_flag = 0 
 | 
        where b.taskid = #{taskid} 
 | 
          and b.patid = #{patid} 
 | 
    </select> 
 | 
  
 | 
    <select id="selectTimelyRate" parameterType="com.smartor.domain.ServiceSubtask" resultType="double"> 
 | 
        SELECT sum( a.finished )/ sum( 1 ) FROM 
 | 
        (SELECT id, visit_time, finishtime, 
 | 
        (CASE WHEN ( DATE_FORMAT( visit_time, '%y%m%d' )< DATE_FORMAT( IF ( ISNULL( finishtime ), NOW(), finishtime 
 | 
        ), '%y%m%d' ) ) 
 | 
        THEN 1 ELSE 0 END ) finished,1 AS tasknumber FROM service_subtask 
 | 
        WHERE del_flag=0 
 | 
        <if test="starttime == null and endtime==null"> 
 | 
            AND visit_time < NOW() 
 | 
        </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> 
 | 
        <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if> 
 | 
        <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if> 
 | 
        <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if> 
 | 
        <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">and 
 | 
            leavehospitaldistrictcode = #{leavehospitaldistrictcode} 
 | 
        </if> 
 | 
        <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and 
 | 
            leavehospitaldistrictname = #{leavehospitaldistrictname} 
 | 
        </if> 
 | 
        <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if> 
 | 
        <if test="managementDoctor != null">and management_doctor like concat('%',#{managementDoctor}, '%')</if> 
 | 
        ) a 
 | 
    </select> 
 | 
  
 | 
    <select id="selectTimelyRateDetail" parameterType="com.smartor.domain.ServiceSubtask" 
 | 
            resultMap="ServiceSubtaskResult"> 
 | 
        <include refid="selectServiceSubtaskVo"/> 
 | 
        <where> 
 | 
            id in ( 
 | 
            SELECT id FROM 
 | 
            (SELECT id, visit_time, finishtime, 
 | 
            (CASE WHEN ( DATE_FORMAT( visit_time, '%y%m%d' ) < DATE_FORMAT( IF ( ISNULL( finishtime ), NOW(), 
 | 
            finishtime 
 | 
            ), '%y%m%d' ) ) 
 | 
            THEN 1 ELSE 0 END ) finished,1 AS tasknumber FROM service_subtask 
 | 
            WHERE del_flag=0 
 | 
            -- AND visit_time < NOW() 
 | 
            <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> 
 | 
            <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if> 
 | 
            <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if> 
 | 
            <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if> 
 | 
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">and 
 | 
                leavehospitaldistrictcode = #{leavehospitaldistrictcode} 
 | 
            </if> 
 | 
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and 
 | 
                leavehospitaldistrictname = #{leavehospitaldistrictname} 
 | 
            </if> 
 | 
            <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if> 
 | 
            <if test="managementDoctor != null">and management_doctor like concat('%',#{managementDoctor}, '%')</if> 
 | 
            ) a where a.finished =1) 
 | 
        </where> 
 | 
    </select> 
 | 
  
 | 
    <select id="selectServiceSubtaskById" parameterType="Long" resultMap="ServiceSubtaskResult"> 
 | 
        <include refid="selectServiceSubtaskVo"/> 
 | 
        where id = #{id} 
 | 
    </select> 
 | 
  
 | 
    <insert id="insertServiceSubtask" parameterType="com.smartor.domain.ServiceSubtask" useGeneratedKeys="true" 
 | 
            keyProperty="id"> 
 | 
        insert into service_subtask 
 | 
        <trim prefix="(" suffix=")" suffixOverrides=","> 
 | 
            <if test="sendname != null">sendname,</if> 
 | 
            <if test="phone != null">phone,</if> 
 | 
            <if test="sex != null">sex,</if> 
 | 
            <if test="age != null">age,</if> 
 | 
            <if test="sfzh != null">sfzh,</if> 
 | 
            <if test="addr != null">addr,</if> 
 | 
            <if test="senderdetail != null">senderdetail,</if> 
 | 
            <if test="type != null">type,</if> 
 | 
            <if test="taskid != null">taskid,</if> 
 | 
            <if test="templateid != null">templateid,</if> 
 | 
            <if test="templatename != null">templatename,</if> 
 | 
            <if test="senddate != null">senddate,</if> 
 | 
            <if test="senduuid != null">senduuid,</if> 
 | 
            <if test="result != null">result,</if> 
 | 
            <if test="finishtime != null">finishtime,</if> 
 | 
            <if test="recordid != null">recordid,</if> 
 | 
            <if test="exrecallcount != null">exrecallcount,</if> 
 | 
            <if test="pulltime != null">pulltime,</if> 
 | 
            <if test="deptcode != null">deptcode,</if> 
 | 
            <if test="labelstatus != null">labelstatus,</if> 
 | 
            <if test="updateBy != null">update_by,</if> 
 | 
            <if test="updateTime != null">update_time,</if> 
 | 
            <if test="createBy != null">create_by,</if> 
 | 
            <if test="createTime != null">create_time,</if> 
 | 
            <if test="isupload != null">isupload,</if> 
 | 
            <if test="uploadTime != null">upload_time,</if> 
 | 
            <if test="orgid != null">orgid,</if> 
 | 
            <if test="pid != null">pid,</if> 
 | 
            <if test="guid != null">guid,</if> 
 | 
            <if test="textParam != null">text_param,</if> 
 | 
            <if test="preachform != null">preachform,</if> 
 | 
            <if test="bedNo != null">bed_no,</if> 
 | 
            <if test="sendType != null  and sendType != ''">send_type,</if> 
 | 
            <if test="taskName != null  and taskName != ''">task_name,</if> 
 | 
            <if test="taskDesc != null  and taskDesc != ''">task_desc,</if> 
 | 
            <if test="operator != null  and operator != ''">operator,</if> 
 | 
            <if test="operatorNo != null  and operatorNo != ''">operator_no,</if> 
 | 
            <if test="hospType != null  and hospType != ''">hosp_type,</if> 
 | 
            <if test="hospno != null  and hospno != ''">hospno,</if> 
 | 
            <if test="wechat != null  and wechat != ''">wechat,</if> 
 | 
            <if test="roomno != null  and roomno != ''">roomno,</if> 
 | 
            <if test="admindate != null">admindate,</if> 
 | 
            <if test="deptname != null  and deptname != ''">deptname,</if> 
 | 
            <if test="leaveicd10code != null  and leaveicd10code != ''">leaveicd10code,</if> 
 | 
            <if test="leavediagname != null  and leavediagname != ''">leavediagname,</if> 
 | 
            <if test="libtemplateid != null ">libtemplateid,</if> 
 | 
            <if test="libtemplatename != null ">libtemplatename,</if> 
 | 
            <if test="patid != null ">patid,</if> 
 | 
            <if test="openid != null ">openid,</if> 
 | 
            <if test="longSendTime != null ">long_send_time,</if> 
 | 
            <if test="serviceType != null ">service_type,</if> 
 | 
            <if test="score != null ">score,</if> 
 | 
            <if test="submit != null ">submit,</if> 
 | 
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''"> 
 | 
                leavehospitaldistrictcode, 
 | 
            </if> 
 | 
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''"> 
 | 
                leavehospitaldistrictname, 
 | 
            </if> 
 | 
            <if test="drname != null ">drname,</if> 
 | 
            <if test="drcode != null ">drcode,</if> 
 | 
            <if test="endtime != null ">endtime,</if> 
 | 
            <if test="starttime != null ">starttime,</if> 
 | 
            <if test="excep != null ">excep,</if> 
 | 
            <if test="nurseName != null ">nurse_name,</if> 
 | 
            <if test="nurseId != null ">nurse_id,</if> 
 | 
            <if test="remark != null ">remark,</if> 
 | 
            <if test="suggest != null ">suggest,</if> 
 | 
            <if test="sendstate != null ">sendstate,</if> 
 | 
            <if test="inhospid != null ">inhospid,</if> 
 | 
            <if test="patfrom != null ">patfrom,</if> 
 | 
            <if test="taskGuid != null ">task_guid,</if> 
 | 
            <if test="patguid != null ">patguid,</if> 
 | 
            <if test="visitCount != null ">visit_count,</if> 
 | 
            <if test="isVisitAgain != null ">is_visit_again,</if> 
 | 
            <if test="upid != null ">upid,</if> 
 | 
            <if test="visitTime != null ">visit_Time,</if> 
 | 
            <if test="visitDeptCode != null">visit_dept_code,</if> 
 | 
            <if test="visitDeptName != null">visit_dept_name,</if> 
 | 
            <if test="managementDoctorCode != null">management_doctor_code,</if> 
 | 
            <if test="managementDoctor != null">management_doctor,</if> 
 | 
            <if test="currentPreachform != null">current_preachform,</if> 
 | 
            <if test="taskSituation != null">task_situation,</if> 
 | 
        </trim> 
 | 
        <trim prefix="values (" suffix=")" suffixOverrides=","> 
 | 
            <if test="sendname != null">#{sendname},</if> 
 | 
            <if test="phone != null">#{phone},</if> 
 | 
            <if test="sex != null">#{sex},</if> 
 | 
            <if test="age != null">#{age},</if> 
 | 
            <if test="sfzh != null">#{sfzh},</if> 
 | 
            <if test="addr != null">#{addr},</if> 
 | 
            <if test="senderdetail != null">#{senderdetail},</if> 
 | 
            <if test="type != null">#{type},</if> 
 | 
            <if test="taskid != null">#{taskid},</if> 
 | 
            <if test="templateid != null">#{templateid},</if> 
 | 
            <if test="templatename != null">#{templatename},</if> 
 | 
            <if test="senddate != null">#{senddate},</if> 
 | 
            <if test="senduuid != null">#{senduuid},</if> 
 | 
            <if test="result != null">#{result},</if> 
 | 
            <if test="finishtime != null">#{finishtime},</if> 
 | 
            <if test="recordid != null">#{recordid},</if> 
 | 
            <if test="exrecallcount != null">#{exrecallcount},</if> 
 | 
            <if test="pulltime != null">#{pulltime},</if> 
 | 
            <if test="deptcode != null">#{deptcode},</if> 
 | 
            <if test="labelstatus != null">#{labelstatus},</if> 
 | 
            <if test="updateBy != null">#{updateBy},</if> 
 | 
            <if test="updateTime != null">#{updateTime},</if> 
 | 
            <if test="createBy != null">#{createBy},</if> 
 | 
            <if test="createTime != null">#{createTime},</if> 
 | 
            <if test="isupload != null">#{isupload},</if> 
 | 
            <if test="uploadTime != null">#{uploadTime},</if> 
 | 
            <if test="orgid != null">#{orgid},</if> 
 | 
            <if test="pid != null">#{pid},</if> 
 | 
            <if test="guid != null">#{guid},</if> 
 | 
            <if test="textParam != null">#{textParam},</if> 
 | 
            <if test="preachform != null">#{preachform},</if> 
 | 
            <if test="bedNo != null">#{bedNo},</if> 
 | 
            <if test="sendType != null  and sendType != ''">#{sendType},</if> 
 | 
            <if test="taskName != null  and taskName != ''">#{taskName},</if> 
 | 
            <if test="taskDesc != null  and taskDesc != ''">#{taskDesc},</if> 
 | 
            <if test="operator != null  and operator != ''">#{operator},</if> 
 | 
            <if test="operatorNo != null  and operatorNo != ''">#{operatorNo},</if> 
 | 
            <if test="hospType != null  and hospType != ''">#{hospType},</if> 
 | 
            <if test="hospno != null  and hospno != ''">#{hospno},</if> 
 | 
            <if test="wechat != null  and wechat != ''">#{wechat},</if> 
 | 
            <if test="roomno != null  and roomno != ''">#{roomno},</if> 
 | 
            <if test="admindate != null ">#{admindate},</if> 
 | 
            <if test="deptname != null  and deptname != ''">#{deptname},</if> 
 | 
            <if test="leaveicd10code != null  and leaveicd10code != ''">#{leaveicd10code},</if> 
 | 
            <if test="leavediagname != null  and leavediagname != ''">#{leavediagname},</if> 
 | 
            <if test="libtemplateid != null ">#{libtemplateid},</if> 
 | 
            <if test="libtemplatename != null ">#{libtemplatename},</if> 
 | 
            <if test="patid != null ">#{patid},</if> 
 | 
            <if test="openid != null ">#{openid},</if> 
 | 
            <if test="longSendTime != null ">#{longSendTime},</if> 
 | 
            <if test="serviceType != null ">#{serviceType},</if> 
 | 
            <if test="score != null ">#{score},</if> 
 | 
            <if test="submit != null ">#{submit},</if> 
 | 
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''"> 
 | 
                #{leavehospitaldistrictcode}, 
 | 
            </if> 
 | 
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''"> 
 | 
                #{leavehospitaldistrictname}, 
 | 
            </if> 
 | 
            <if test="drname != null ">#{drname},</if> 
 | 
            <if test="drcode != null ">#{drcode},</if> 
 | 
            <if test="endtime != null ">#{endtime},</if> 
 | 
            <if test="starttime != null ">#{starttime},</if> 
 | 
            <if test="excep != null ">#{excep},</if> 
 | 
            <if test="nurseName != null ">#{nurseName},</if> 
 | 
            <if test="nurseId != null ">#{nurseId},</if> 
 | 
            <if test="remark != null ">#{remark},</if> 
 | 
            <if test="suggest != null ">#{suggest},</if> 
 | 
            <if test="sendstate != null ">#{sendstate},</if> 
 | 
            <if test="inhospid != null ">#{inhospid},</if> 
 | 
            <if test="patfrom != null ">#{patfrom},</if> 
 | 
            <if test="taskGuid != null ">#{taskGuid},</if> 
 | 
            <if test="patguid != null ">#{patguid},</if> 
 | 
            <if test="visitCount != null ">#{visitCount},</if> 
 | 
            <if test="isVisitAgain != null ">#{isVisitAgain},</if> 
 | 
            <if test="upid != null ">#{upid},</if> 
 | 
            <if test="visitTime != null ">#{visitTime},</if> 
 | 
            <if test="visitDeptCode != null">#{visitDeptCode},</if> 
 | 
            <if test="visitDeptName != null">#{visitDeptName},</if> 
 | 
            <if test="managementDoctorCode != null">#{managementDoctorCode},</if> 
 | 
            <if test="managementDoctor != null">#{managementDoctor},</if> 
 | 
            <if test="currentPreachform != null">#{currentPreachform},</if> 
 | 
            <if test="taskSituation != null">#{taskSituation},</if> 
 | 
        </trim> 
 | 
    </insert> 
 | 
  
 | 
    <update id="updateServiceSubtask" parameterType="com.smartor.domain.ServiceSubtask"> 
 | 
        update service_subtask 
 | 
        <trim prefix="SET" suffixOverrides=","> 
 | 
            <if test="sendname != null">sendname = #{sendname},</if> 
 | 
            <if test="phone != null">phone = #{phone},</if> 
 | 
            <if test="sex != null">sex = #{sex},</if> 
 | 
            <if test="delFlag != null">del_flag = #{delFlag},</if> 
 | 
            <if test="age != null">age = #{age},</if> 
 | 
            <if test="sfzh != null">sfzh = #{sfzh},</if> 
 | 
            <if test="addr != null">addr = #{addr},</if> 
 | 
            <if test="senderdetail != null">senderdetail = #{senderdetail},</if> 
 | 
            <if test="type != null">type = #{type},</if> 
 | 
            <if test="taskid != null">taskid = #{taskid},</if> 
 | 
            <if test="templateid != null">templateid = #{templateid},</if> 
 | 
            <if test="templatename != null">templatename = #{templatename},</if> 
 | 
            <if test="senddate != null">senddate = #{senddate},</if> 
 | 
            <if test="senduuid != null">senduuid = #{senduuid},</if> 
 | 
            <if test="result != null">result = #{result},</if> 
 | 
            <if test="finishtime != null">finishtime = #{finishtime},</if> 
 | 
            <if test="recordid != null">recordid = #{recordid},</if> 
 | 
            <if test="exrecallcount != null">exrecallcount = #{exrecallcount},</if> 
 | 
            <if test="pulltime != null">pulltime = #{pulltime},</if> 
 | 
            <if test="deptcode != null">deptcode = #{deptcode},</if> 
 | 
            <if test="labelstatus != null">labelstatus = #{labelstatus},</if> 
 | 
            <if test="updateBy != null">update_by = #{updateBy},</if> 
 | 
            <if test="updateTime != null">update_time = #{updateTime},</if> 
 | 
            <if test="createBy != null">create_by = #{createBy},</if> 
 | 
            <if test="createTime != null">create_time = #{createTime},</if> 
 | 
            <if test="isupload != null">isupload = #{isupload},</if> 
 | 
            <if test="uploadTime != null">upload_time = #{uploadTime},</if> 
 | 
            <if test="orgid != null">orgid = #{orgid},</if> 
 | 
            <if test="pid != null">pid = #{pid},</if> 
 | 
            <if test="guid != null">guid = #{guid},</if> 
 | 
            <if test="textParam != null">text_param = #{textParam},</if> 
 | 
            <if test="preachform != null">preachform = #{preachform},</if> 
 | 
            <if test="bedNo != null">bed_no = #{bedNo},</if> 
 | 
            <if test="sendType != null  and sendType != ''">send_type = #{sendType},</if> 
 | 
            <if test="taskName != null  and taskName != ''">task_name = #{taskName},</if> 
 | 
            <if test="taskDesc != null  and taskDesc != ''">task_desc = #{taskDesc},</if> 
 | 
            <if test="operatorNo != null  and operatorNo != ''">operator_no = #{operatorNo},</if> 
 | 
            <if test="operator != null  and operator != ''">operator = #{operator},</if> 
 | 
            <if test="hospType != null  and hospType != ''">hosp_type = #{hospType},</if> 
 | 
            <if test="hospno != null  and hospno != ''">hospno = #{hospno},</if> 
 | 
            <if test="wechat != null  and wechat != ''">wechat = #{wechat},</if> 
 | 
            <if test="roomno != null  and roomno != ''">roomno = #{roomno},</if> 
 | 
            <if test="admindate != null ">admindate = #{admindate},</if> 
 | 
            <if test="deptname != null  and deptname != ''">deptname = #{deptname},</if> 
 | 
            <if test="leaveicd10code != null  and leaveicd10code != ''">leaveicd10code = #{leaveicd10code},</if> 
 | 
            <if test="leavediagname != null  and leavediagname != ''">leavediagname = #{leavediagname},</if> 
 | 
            <if test="libtemplateid != null ">libtemplateid = #{libtemplateid},</if> 
 | 
            <if test="libtemplatename != null ">libtemplatename = #{libtemplatename},</if> 
 | 
            <if test="patid != null ">patid = #{patid},</if> 
 | 
            <if test="openid != null ">openid = #{openid},</if> 
 | 
            <if test="longSendTime != null ">long_send_time = #{longSendTime},</if> 
 | 
            <if test="sendstate != null ">sendstate = #{sendstate},</if> 
 | 
            <if test="serviceType != null ">service_type = #{serviceType},</if> 
 | 
            <if test="score != null ">score = #{score},</if> 
 | 
            <if test="submit != null ">submit = #{submit},</if> 
 | 
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">leavehospitaldistrictcode 
 | 
                = #{leavehospitaldistrictcode}, 
 | 
            </if> 
 | 
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">leavehospitaldistrictname 
 | 
                = #{leavehospitaldistrictname}, 
 | 
            </if> 
 | 
            <if test="drname != null ">drname = #{drname},</if> 
 | 
            <if test="drcode != null ">drcode = #{drcode},</if> 
 | 
            <if test="starttime != null ">starttime = #{starttime},</if> 
 | 
            <if test="endtime != null ">endtime = #{endtime},</if> 
 | 
            <if test="excep != null ">excep = #{excep},</if> 
 | 
            <if test="nurseName != null ">nurse_name=#{nurseName},</if> 
 | 
            <if test="nurseId != null ">nurse_id=#{nurseId},</if> 
 | 
            <if test="remark != null ">remark=#{remark},</if> 
 | 
            <if test="suggest != null ">suggest=#{suggest},</if> 
 | 
            <if test="inhospid != null ">inhospid=#{inhospid},</if> 
 | 
            <if test="patfrom != null ">patfrom=#{patfrom},</if> 
 | 
            <if test="taskGuid != null ">task_guid=#{taskGuid},</if> 
 | 
            <if test="patguid != null ">patguid=#{patguid},</if> 
 | 
            <if test="visitCount != null ">visit_count=#{visitCount},</if> 
 | 
            <if test="isVisitAgain != null ">is_visit_again=#{isVisitAgain},</if> 
 | 
            <if test="upid != null ">upid=#{upid},</if> 
 | 
            <if test="visitTime != null ">visit_time=#{visitTime},</if> 
 | 
            <if test="visitDeptCode != null">visit_dept_code = #{visitDeptCode},</if> 
 | 
            <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if> 
 | 
            <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if> 
 | 
            <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if> 
 | 
            <if test="currentPreachform != null">current_preachform=#{currentPreachform},</if> 
 | 
            <if test="taskSituation != null">task_situation=#{taskSituation},</if> 
 | 
        </trim> 
 | 
        where id = #{id} 
 | 
    </update> 
 | 
  
 | 
    <update id="updateServiceSubtaskByPatId" parameterType="com.smartor.domain.ServiceSubtask"> 
 | 
        update service_subtask 
 | 
        <trim prefix="SET" suffixOverrides=","> 
 | 
            <if test="sendname != null">sendname = #{sendname},</if> 
 | 
            <if test="phone != null">phone = #{phone},</if> 
 | 
            <if test="sex != null">sex = #{sex},</if> 
 | 
            <if test="delFlag != null">del_flag = #{delFlag},</if> 
 | 
            <if test="age != null">age = #{age},</if> 
 | 
            <if test="sfzh != null">sfzh = #{sfzh},</if> 
 | 
            <if test="addr != null">addr = #{addr},</if> 
 | 
            <if test="senderdetail != null">senderdetail = #{senderdetail},</if> 
 | 
            <if test="type != null">type = #{type},</if> 
 | 
            <if test="taskid != null">taskid = #{taskid},</if> 
 | 
            <if test="templateid != null">templateid = #{templateid},</if> 
 | 
            <if test="templatename != null">templatename = #{templatename},</if> 
 | 
            <if test="senddate != null">senddate = #{senddate},</if> 
 | 
            <if test="senduuid != null">senduuid = #{senduuid},</if> 
 | 
            <if test="result != null">result = #{result},</if> 
 | 
            <if test="finishtime != null">finishtime = #{finishtime},</if> 
 | 
            <if test="recordid != null">recordid = #{recordid},</if> 
 | 
            <if test="exrecallcount != null">exrecallcount = #{exrecallcount},</if> 
 | 
            <if test="pulltime != null">pulltime = #{pulltime},</if> 
 | 
            <if test="deptcode != null">deptcode = #{deptcode},</if> 
 | 
            <if test="labelstatus != null">labelstatus = #{labelstatus},</if> 
 | 
            <if test="updateBy != null">update_by = #{updateBy},</if> 
 | 
            <if test="updateTime != null">update_time = #{updateTime},</if> 
 | 
            <if test="createBy != null">create_by = #{createBy},</if> 
 | 
            <if test="createTime != null">create_time = #{createTime},</if> 
 | 
            <if test="isupload != null">isupload = #{isupload},</if> 
 | 
            <if test="uploadTime != null">upload_time = #{uploadTime},</if> 
 | 
            <if test="orgid != null">orgid = #{orgid},</if> 
 | 
            <if test="pid != null">pid = #{pid},</if> 
 | 
            <if test="guid != null">guid = #{guid},</if> 
 | 
            <if test="textParam != null">text_param = #{textParam},</if> 
 | 
            <if test="preachform != null">preachform = #{preachform},</if> 
 | 
            <if test="bedNo != null">bed_no = #{bedNo},</if> 
 | 
            <if test="sendType != null  and sendType != ''">send_type = #{sendType},</if> 
 | 
            <if test="taskName != null  and taskName != ''">task_name = #{taskName},</if> 
 | 
            <if test="taskDesc != null  and taskDesc != ''">task_desc = #{taskDesc},</if> 
 | 
            <if test="operatorNo != null  and operatorNo != ''">operator_no = #{operatorNo},</if> 
 | 
            <if test="operator != null  and operator != ''">operator = #{operator},</if> 
 | 
            <if test="hospType != null  and hospType != ''">hosp_type = #{hospType},</if> 
 | 
            <if test="hospno != null  and hospno != ''">hospno = #{hospno},</if> 
 | 
            <if test="wechat != null  and wechat != ''">wechat = #{wechat},</if> 
 | 
            <if test="roomno != null  and roomno != ''">roomno = #{roomno},</if> 
 | 
            <if test="admindate != null">admindate = #{admindate},</if> 
 | 
            <if test="deptname != null  and deptname != ''">deptname = #{deptname},</if> 
 | 
            <if test="leaveicd10code != null  and leaveicd10code != ''">leaveicd10code = #{leaveicd10code},</if> 
 | 
            <if test="leavediagname != null  and leavediagname != ''">leavediagname = #{leavediagname},</if> 
 | 
            <if test="libtemplateid != null ">libtemplateid = #{libtemplateid},</if> 
 | 
            <if test="libtemplatename != null ">libtemplatename = #{libtemplatename},</if> 
 | 
            <if test="patid != null ">patid = #{patid},</if> 
 | 
            <if test="openid != null ">openid = #{openid},</if> 
 | 
            <if test="longSendTime != null ">long_send_time = #{longSendTime},</if> 
 | 
            <if test="sendstate != null ">sendstate = #{sendstate},</if> 
 | 
            <if test="serviceType != null ">service_type = #{serviceType},</if> 
 | 
            <if test="score != null ">score = #{score},</if> 
 | 
            <if test="visitCount != null ">visit_count = #{visitCount},</if> 
 | 
            <if test="submit != null ">submit = #{submit},</if> 
 | 
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">leavehospitaldistrictcode 
 | 
                = #{leavehospitaldistrictcode}, 
 | 
            </if> 
 | 
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">leavehospitaldistrictname 
 | 
                = #{leavehospitaldistrictname}, 
 | 
            </if> 
 | 
            <if test="drname != null ">drname = #{drname},</if> 
 | 
            <if test="drcode != null ">drcode = #{drcode},</if> 
 | 
            <if test="starttime != null ">starttime = #{starttime},</if> 
 | 
            <if test="endtime != null ">endtime = #{endtime},</if> 
 | 
            <if test="excep != null ">excep = #{excep},</if> 
 | 
            <if test="nurseName != null ">nurse_name=#{nurseName},</if> 
 | 
            <if test="nurseId != null ">nurse_id=#{nurseId},</if> 
 | 
            <if test="remark != null ">remark=#{remark},</if> 
 | 
            <if test="suggest != null ">suggest=#{suggest},</if> 
 | 
            <if test="inhospid != null ">inhospid=#{inhospid},</if> 
 | 
            <if test="patfrom != null ">patfrom=#{patfrom},</if> 
 | 
            <if test="taskGuid != null ">taskGuid=#{taskGuid},</if> 
 | 
            <if test="patguid != null ">patguid=#{patguid},</if> 
 | 
            <if test="isVisitAgain != null ">is_visit_again=#{isVisitAgain},</if> 
 | 
            <if test="upid != null ">upid=#{upid},</if> 
 | 
            <if test="visitTime != null ">visit_time=#{visitTime},</if> 
 | 
            <if test="visitDeptCode != null">visit_dept_code = #{visitDeptCode},</if> 
 | 
            <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if> 
 | 
            <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if> 
 | 
            <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if> 
 | 
            <if test="currentPreachform != null">current_preachform=#{currentPreachform},</if> 
 | 
            <if test="taskSituation != null">task_situation=#{taskSituation},</if> 
 | 
        </trim> 
 | 
        <where> 
 | 
            <if test="patid != null ">and patid = #{patid}</if> 
 | 
            <if test="taskid != null ">and taskid = #{taskid}</if> 
 | 
        </where> 
 | 
    </update> 
 | 
  
 | 
    <update id="updateServiceSubtaskByCondition" parameterType="com.smartor.domain.ServiceSubtask"> 
 | 
        update service_subtask 
 | 
        <trim prefix="SET" suffixOverrides=","> 
 | 
            <if test="sendname != null">sendname = #{sendname},</if> 
 | 
            <if test="phone != null">phone = #{phone},</if> 
 | 
            <if test="sex != null">sex = #{sex},</if> 
 | 
            <if test="sendstate != null ">sendstate = #{sendstate},</if> 
 | 
            <if test="age != null">age = #{age},</if> 
 | 
            <if test="sfzh != null">sfzh = #{sfzh},</if> 
 | 
            <if test="addr != null">addr = #{addr},</if> 
 | 
            <if test="senderdetail != null">senderdetail = #{senderdetail},</if> 
 | 
            <if test="type != null">type = #{type},</if> 
 | 
            <if test="taskid != null">taskid = #{taskid},</if> 
 | 
            <if test="templateid != null">templateid = #{templateid},</if> 
 | 
            <if test="templatename != null">templatename = #{templatename},</if> 
 | 
            <if test="senddate != null">senddate = #{senddate},</if> 
 | 
            <if test="senduuid != null">senduuid = #{senduuid},</if> 
 | 
            <if test="result != null">result = #{result},</if> 
 | 
            <if test="finishtime != null">finishtime = #{finishtime},</if> 
 | 
            <if test="recordid != null">recordid = #{recordid},</if> 
 | 
            <if test="exrecallcount != null">exrecallcount = #{exrecallcount},</if> 
 | 
            <if test="pulltime != null">pulltime = #{pulltime},</if> 
 | 
            <if test="deptcode != null">deptcode = #{deptcode},</if> 
 | 
            <if test="labelstatus != null">labelstatus = #{labelstatus},</if> 
 | 
            <if test="updateBy != null">update_by = #{updateBy},</if> 
 | 
            <if test="updateTime != null">update_time = #{updateTime},</if> 
 | 
            <if test="createBy != null">create_by = #{createBy},</if> 
 | 
            <if test="createTime != null">create_time = #{createTime},</if> 
 | 
            <if test="isupload != null">isupload = #{isupload},</if> 
 | 
            <if test="uploadTime != null">upload_time = #{uploadTime},</if> 
 | 
            <if test="orgid != null">orgid = #{orgid},</if> 
 | 
            <if test="pid != null">pid = #{pid},</if> 
 | 
            <if test="guid != null">guid = #{guid},</if> 
 | 
            <if test="visitCount != null">visit_count = #{visitCount},</if> 
 | 
            <if test="isVisitAgain != null">is_visit_again = #{isVisitAgain},</if> 
 | 
            <if test="textParam != null">text_param = #{textParam},</if> 
 | 
            <if test="preachform != null">preachform = #{preachform},</if> 
 | 
            <if test="bedNo != null">bed_no = #{bedNo},</if> 
 | 
            <if test="sendType != null  and sendType != ''">send_type = #{sendType},</if> 
 | 
            <if test="taskName != null  and taskName != ''">task_name = #{taskName},</if> 
 | 
            <if test="taskDesc != null  and taskDesc != ''">task_desc = #{taskDesc},</if> 
 | 
            <if test="operatorNo != null  and operatorNo != ''">operator_no = #{operatorNo},</if> 
 | 
            <if test="operator != null  and operator != ''">operator = #{operator},</if> 
 | 
            <if test="hospType != null  and hospType != ''">hosp_type = #{hospType},</if> 
 | 
            <if test="hospno != null  and hospno != ''">hospno = #{hospno},</if> 
 | 
            <if test="wechat != null  and wechat != ''">wechat = #{wechat},</if> 
 | 
            <if test="roomno != null  and roomno != ''">roomno = #{roomno},</if> 
 | 
            <if test="admindate != null">admindate = #{admindate},</if> 
 | 
            <if test="deptname != null  and deptname != ''">deptname = #{deptname},</if> 
 | 
            <if test="leaveicd10code != null  and leaveicd10code != ''">leaveicd10code = #{leaveicd10code},</if> 
 | 
            <if test="leavediagname != null  and leavediagname != ''">leavediagname = #{leavediagname},</if> 
 | 
            <if test="libtemplateid != null ">libtemplateid = #{libtemplateid},</if> 
 | 
            <if test="libtemplatename != null ">libtemplatename = #{libtemplatename},</if> 
 | 
            <if test="patid != null ">patid = #{patid},</if> 
 | 
            <if test="openid != null ">openid = #{openid},</if> 
 | 
            <if test="longSendTime != null ">long_send_time = #{longSendTime},</if> 
 | 
            <if test="serviceType != null ">service_type = #{serviceType},</if> 
 | 
            <if test="score != null ">score = #{score},</if> 
 | 
            <if test="submit != null ">submit = #{submit},</if> 
 | 
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">leavehospitaldistrictcode 
 | 
                = #{leavehospitaldistrictcode}, 
 | 
            </if> 
 | 
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">leavehospitaldistrictname 
 | 
                = #{leavehospitaldistrictname}, 
 | 
            </if> 
 | 
            <if test="drname != null ">drname = #{drname},</if> 
 | 
            <if test="drcode != null ">drcode = #{drcode},</if> 
 | 
            <if test="endtime != null ">endtime = #{endtime},</if> 
 | 
            <if test="starttime != null ">starttime = #{starttime},</if> 
 | 
            <if test="excep != null ">excep = #{excep},</if> 
 | 
            <if test="nurseName != null ">nurse_name=#{nurseName},</if> 
 | 
            <if test="nurseId != null ">nurse_id=#{nurseId},</if> 
 | 
            <if test="remark != null ">remark=#{remark},</if> 
 | 
            <if test="suggest != null ">suggest=#{suggest},</if> 
 | 
            <if test="inhospid != null ">inhospid=#{inhospid},</if> 
 | 
            <if test="patfrom != null ">patfrom=#{patfrom},</if> 
 | 
            <if test="taskGuid != null ">task_guid=#{taskGuid},</if> 
 | 
            <if test="patguid != null ">patguid=#{patguid},</if> 
 | 
            <if test="upid != null ">upid=#{upid},</if> 
 | 
            <if test="visitTime != null ">visit_time=#{visitTime},</if> 
 | 
            <if test="visitDeptCode != null">visit_dept_code = #{visitDeptCode},</if> 
 | 
            <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if> 
 | 
            <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if> 
 | 
            <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if> 
 | 
            <if test="currentPreachform != null">current_preachform=#{currentPreachform},</if> 
 | 
            <if test="taskSituation != null">task_situation=#{taskSituation},</if> 
 | 
        </trim> 
 | 
        where patid = #{patid} and taskid = #{taskid} 
 | 
    </update> 
 | 
  
 | 
    <update id="updateServiceSubtaskByTaskGuid" parameterType="com.smartor.domain.ServiceSubtask"> 
 | 
        update service_subtask 
 | 
        <trim prefix="SET" suffixOverrides=","> 
 | 
            <if test="sendname != null">sendname = #{sendname},</if> 
 | 
            <if test="phone != null">phone = #{phone},</if> 
 | 
            <if test="sex != null">sex = #{sex},</if> 
 | 
            <if test="sendstate != null ">sendstate = #{sendstate},</if> 
 | 
            <if test="age != null">age = #{age},</if> 
 | 
            <if test="sfzh != null">sfzh = #{sfzh},</if> 
 | 
            <if test="addr != null">addr = #{addr},</if> 
 | 
            <if test="senderdetail != null">senderdetail = #{senderdetail},</if> 
 | 
            <if test="type != null">type = #{type},</if> 
 | 
            <if test="taskid != null">taskid = #{taskid},</if> 
 | 
            <if test="templateid != null">templateid = #{templateid},</if> 
 | 
            <if test="templatename != null">templatename = #{templatename},</if> 
 | 
            <if test="senddate != null">senddate = #{senddate},</if> 
 | 
            <if test="senduuid != null">senduuid = #{senduuid},</if> 
 | 
            <if test="result != null">result = #{result},</if> 
 | 
            <if test="finishtime != null">finishtime = #{finishtime},</if> 
 | 
            <if test="recordid != null">recordid = #{recordid},</if> 
 | 
            <if test="exrecallcount != null">exrecallcount = #{exrecallcount},</if> 
 | 
            <if test="pulltime != null">pulltime = #{pulltime},</if> 
 | 
            <if test="deptcode != null">deptcode = #{deptcode},</if> 
 | 
            <if test="labelstatus != null">labelstatus = #{labelstatus},</if> 
 | 
            <if test="updateBy != null">update_by = #{updateBy},</if> 
 | 
            <if test="updateTime != null">update_time = #{updateTime},</if> 
 | 
            <if test="createBy != null">create_by = #{createBy},</if> 
 | 
            <if test="createTime != null">create_time = #{createTime},</if> 
 | 
            <if test="isupload != null">isupload = #{isupload},</if> 
 | 
            <if test="uploadTime != null">upload_time = #{uploadTime},</if> 
 | 
            <if test="orgid != null">orgid = #{orgid},</if> 
 | 
            <if test="pid != null">pid = #{pid},</if> 
 | 
            <if test="guid != null">guid = #{guid},</if> 
 | 
            <if test="textParam != null">text_param = #{textParam},</if> 
 | 
            <if test="preachform != null">preachform = #{preachform},</if> 
 | 
            <if test="bedNo != null">bed_no = #{bedNo},</if> 
 | 
            <if test="sendType != null  and sendType != ''">send_type = #{sendType},</if> 
 | 
            <if test="taskName != null  and taskName != ''">task_name = #{taskName},</if> 
 | 
            <if test="taskDesc != null  and taskDesc != ''">task_desc = #{taskDesc},</if> 
 | 
            <if test="operatorNo != null  and operatorNo != ''">operator_no = #{operatorNo},</if> 
 | 
            <if test="operator != null  and operator != ''">operator = #{operator},</if> 
 | 
            <if test="hospType != null  and hospType != ''">hosp_type = #{hospType},</if> 
 | 
            <if test="hospno != null  and hospno != ''">hospno = #{hospno},</if> 
 | 
            <if test="wechat != null  and wechat != ''">wechat = #{wechat},</if> 
 | 
            <if test="roomno != null  and roomno != ''">roomno = #{roomno},</if> 
 | 
            <if test="admindate != null ">admindate = #{admindate},</if> 
 | 
            <if test="visitCount != null ">visit_count = #{visitCount},</if> 
 | 
            <if test="isVisitAgain != null ">is_visit_again = #{isVisitAgain},</if> 
 | 
            <if test="deptname != null  and deptname != ''">deptname = #{deptname},</if> 
 | 
            <if test="leaveicd10code != null  and leaveicd10code != ''">leaveicd10code = #{leaveicd10code},</if> 
 | 
            <if test="leavediagname != null  and leavediagname != ''">leavediagname = #{leavediagname},</if> 
 | 
            <if test="libtemplateid != null ">libtemplateid = #{libtemplateid},</if> 
 | 
            <if test="libtemplatename != null ">libtemplatename = #{libtemplatename},</if> 
 | 
            <if test="patid != null ">patid = #{patid},</if> 
 | 
            <if test="openid != null ">openid = #{openid},</if> 
 | 
            <if test="longSendTime != null ">long_send_time = #{longSendTime},</if> 
 | 
            <if test="serviceType != null ">service_type = #{serviceType},</if> 
 | 
            <if test="score != null ">score = #{score},</if> 
 | 
            <if test="submit != null ">submit = #{submit},</if> 
 | 
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">leavehospitaldistrictcode 
 | 
                = #{leavehospitaldistrictcode}, 
 | 
            </if> 
 | 
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">leavehospitaldistrictname 
 | 
                = #{leavehospitaldistrictname}, 
 | 
            </if> 
 | 
            <if test="drname != null ">drname = #{drname},</if> 
 | 
            <if test="drcode != null ">drcode = #{drcode},</if> 
 | 
            <if test="endtime != null ">endtime = #{endtime},</if> 
 | 
            <if test="starttime != null ">starttime = #{starttime},</if> 
 | 
            <if test="excep != null ">excep = #{excep},</if> 
 | 
            <if test="nurseName != null ">nurse_name=#{nurseName},</if> 
 | 
            <if test="nurseId != null ">nurse_id=#{nurseId},</if> 
 | 
            <if test="remark != null ">remark=#{remark},</if> 
 | 
            <if test="suggest != null ">suggest=#{suggest},</if> 
 | 
            <if test="inhospid != null ">inhospid=#{inhospid},</if> 
 | 
            <if test="patfrom != null ">patfrom=#{patfrom},</if> 
 | 
            <if test="taskGuid != null ">task_guid=#{taskGuid},</if> 
 | 
            <if test="patguid != null ">patguid=#{patguid},</if> 
 | 
            <if test="upid != null ">upid=#{upid},</if> 
 | 
            <if test="visitTime != null ">visit_time=#{visitTime},</if> 
 | 
            <if test="visitDeptCode != null">visit_dept_code = #{visitDeptCode},</if> 
 | 
            <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if> 
 | 
            <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if> 
 | 
            <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if> 
 | 
            <if test="currentPreachform != null">current_preachform=#{currentPreachform},</if> 
 | 
            <if test="taskSituation != null">task_situation=#{taskSituation},</if> 
 | 
        </trim> 
 | 
        where task_guid = #{taskGuid} and task_name = #{taskName} 
 | 
    </update> 
 | 
  
 | 
  
 | 
    <update id="deleteServiceSubtaskById" parameterType="Long"> 
 | 
        update service_subtask 
 | 
        <trim prefix="SET" suffixOverrides=","> 
 | 
            del_flag =1 
 | 
        </trim> 
 | 
        where id = #{id} 
 | 
    </update> 
 | 
  
 | 
    <update id="deleteServiceSubtaskByCondition"> 
 | 
        update service_subtask 
 | 
        <trim prefix="SET" suffixOverrides=","> 
 | 
            del_flag =1 
 | 
        </trim> 
 | 
        where patid = #{patid} and taskid = #{taskid} 
 | 
    </update> 
 | 
  
 | 
    <select id="getSfStatistics" parameterType="com.smartor.domain.ServiceSubtaskCountReq" 
 | 
            resultMap="ServiceSubtaskResult"> 
 | 
        <include refid="selectServiceSubtaskVo"/> 
 | 
        <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> 
 | 
            <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if> 
 | 
            <if test="visitDeptName != null">abd visit_dept_name = #{visitDeptName}</if> 
 | 
        </where> 
 | 
    </select> 
 | 
  
 | 
    <select id="getSfStatisticsJoy" parameterType="com.smartor.domain.ServiceSubtaskCountReq" 
 | 
            resultMap="ServiceSubtaskResult2"> 
 | 
        SELECT sub_id as subTaskId,COUNT(sub_id) joyCount, 
 | 
             (SELECT COUNT(1) FROM ivr_liba_target WHERE assortid IN (SELECT config_value FROM sys_config WHERE config_key='joyCount')) joyAllCount 
 | 
        FROM service_subtask_detail a 
 | 
        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> 
 | 
            <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if> 
 | 
            <if test="visitDeptName != null">abd visit_dept_name = #{visitDeptName}</if> 
 | 
        </where> 
 | 
        ) 
 | 
        AND targetid IN ( SELECT id FROM ivr_liba_target WHERE assortid IN (SELECT config_value FROM sys_config WHERE config_key='joyCount')) 
 | 
        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, 
 | 
               sendname, 
 | 
               long_send_time, 
 | 
               phone, 
 | 
               suggest, 
 | 
               sex, 
 | 
               age, 
 | 
               openid, 
 | 
               sfzh, 
 | 
               addr, 
 | 
               current_preachform, 
 | 
               senderdetail, 
 | 
               type, 
 | 
               taskid, 
 | 
               visit_time, 
 | 
               templateid, 
 | 
               templatename, 
 | 
               senddate, 
 | 
               senduuid, 
 | 
               result, 
 | 
               finishtime, 
 | 
               recordid, 
 | 
               exrecallcount, 
 | 
               pulltime, 
 | 
               deptcode, 
 | 
               labelstatus, 
 | 
               del_flag, 
 | 
               upid, 
 | 
               update_by, 
 | 
               update_time, 
 | 
               create_by, 
 | 
               create_time, 
 | 
               isupload, 
 | 
               upload_time, 
 | 
               orgid, 
 | 
               pid, 
 | 
               visit_count, 
 | 
               is_visit_again, 
 | 
               guid, 
 | 
               text_param, 
 | 
               preachform, 
 | 
               bed_no, 
 | 
               send_type, 
 | 
               task_name, 
 | 
               task_desc, 
 | 
               operator_no, 
 | 
               operator, 
 | 
               hospno, 
 | 
               hosp_type, 
 | 
               wechat, 
 | 
               roomno, 
 | 
               admindate, 
 | 
               patid, 
 | 
               service_type, 
 | 
               deptname, 
 | 
               score, 
 | 
               drname, 
 | 
               drcode, 
 | 
               starttime, 
 | 
               endtime, 
 | 
               leavehospitaldistrictcode, 
 | 
               leavehospitaldistrictname, 
 | 
               excep, 
 | 
               nurse_id, 
 | 
               nurse_name, 
 | 
               remark, 
 | 
               inhospid, 
 | 
               patfrom, 
 | 
               task_guid, 
 | 
               leavediagname, 
 | 
               patguid, 
 | 
               visitDeptCode, 
 | 
               visitDeptName, 
 | 
               management_doctor_code, 
 | 
               management_doctor, 
 | 
               leaveicd10code 
 | 
        FROM service_subtask, 
 | 
             JSON_TABLE(send_time_slot, '$[*]' COLUMNS ( 
 | 
        begantime DATETIME PATH '$.begantime', 
 | 
        endtime DATETIME PATH '$.endtime' 
 | 
        )) AS jt 
 | 
        WHERE jt.begantime > #{beganTime} 
 | 
          AND jt.begantime <= #{endTime} 
 | 
          AND del_flag = 0 
 | 
    </select> 
 | 
  
 | 
    <!--    获取随访门诊每月的数量--> 
 | 
    <select id="getSfFzInfoEveryMonth" parameterType="com.smartor.domain.ServiceSubtaskCountReq" 
 | 
            resultMap="ServiceSubtaskResult2"> 
 | 
        SELECT DATE_FORMAT(st.finishtime, '%Y-%m') AS month, 
 | 
              st.service_type as service_type, 
 | 
              st.id as subTaskId, 
 | 
    COUNT(*) AS count 
 | 
        FROM 
 | 
            service_subtask st 
 | 
            JOIN 
 | 
            sys_user_dept dd 
 | 
        ON dep.dept_id = dd.dept_id 
 | 
        WHERE 
 | 
            dd.user_id =#{userId} 
 | 
          AND st.finishtime IS NOT NULL 
 | 
          and DATE_FORMAT(st.finishtime 
 | 
            , '%Y-%m') >= #{startTime} 
 | 
          and DATE_FORMAT(st.finishtime 
 | 
            , '%Y-%m') <= #{endTime} 
 | 
        GROUP BY 
 | 
            month, st.service_type, st.id 
 | 
        ORDER BY 
 | 
            month, st.service_type, st.id; 
 | 
    </select> 
 | 
  
 | 
    <select id="getDeptRanking" parameterType="com.smartor.domain.PatMedReq" resultType="com.smartor.domain.PatMedRes"> 
 | 
        SELECT deptname, 
 | 
               count(1) AS rc 
 | 
        FROM service_subtask 
 | 
        WHERE DATE_FORMAT(finishtime, '%Y-%m-%d') >= #{startDate} 
 | 
          AND DATE_FORMAT(finishtime, '%Y-%m-%d') <= #{endDate} 
 | 
        GROUP BY deptname 
 | 
    </select> 
 | 
  
 | 
    <!-- 服务统计查询 - 按时间维度统计出院/门诊随访数据 --> 
 | 
    <select id="getServiceStatistics" parameterType="com.smartor.domain.ServiceStatisticsRequest" 
 | 
            resultType="com.smartor.domain.ServiceStatisticsResponse"> 
 | 
        SELECT 
 | 
        timePeriod, 
 | 
        SUM(dischargeFollowCount) AS dischargeFollowCount, 
 | 
        SUM(outpatientFollowCount) AS outpatientFollowCount, 
 | 
        SUM(pmiCount) AS pmiCount, 
 | 
        SUM(pmoCount) AS pmoCount 
 | 
        FROM ( 
 | 
        -- 随访数据 
 | 
        SELECT 
 | 
        <choose> 
 | 
            <when test="timeType == 'day'"> 
 | 
                DATE_FORMAT(visit_time, '%Y-%m-%d') AS timePeriod, 
 | 
            </when> 
 | 
            <when test="timeType == 'month'"> 
 | 
                DATE_FORMAT(visit_time, '%Y-%m') AS timePeriod, 
 | 
            </when> 
 | 
            <when test="timeType == 'year'"> 
 | 
                DATE_FORMAT(visit_time, '%Y') AS timePeriod, 
 | 
            </when> 
 | 
            <when test="timeType == 'week'"> 
 | 
                CONCAT(YEAR(visit_time), '-W', LPAD(WEEK(visit_time, 1), 2, '0')) AS timePeriod, 
 | 
            </when> 
 | 
            <otherwise> 
 | 
                DATE_FORMAT(visit_time, '%Y-%m-%d') AS timePeriod, 
 | 
            </otherwise> 
 | 
        </choose> 
 | 
        CASE WHEN service_type = '2' THEN 1 END AS dischargeFollowCount, 
 | 
        CASE WHEN service_type = '3' THEN 1 END AS outpatientFollowCount, 
 | 
        0 AS pmiCount, 
 | 
        0 AS pmoCount 
 | 
        FROM service_subtask 
 | 
        WHERE 
 | 
        del_flag = '0' 
 | 
        <if test="startDate != null and endDate != null"> 
 | 
            AND visit_time >= #{startDate} 
 | 
            AND visit_time <= DATE_ADD(#{endDate}, INTERVAL 1 DAY) 
 | 
        </if> 
 | 
  
 | 
        <if test="orgid != null"> 
 | 
            AND orgid = #{orgid} 
 | 
        </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="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0"> 
 | 
            AND leavehospitaldistrictcode IN 
 | 
            <foreach collection="leavehospitaldistrictcodes" item="districtcode" open="(" separator="," close=")"> 
 | 
                #{districtcode} 
 | 
            </foreach> 
 | 
        </if> 
 | 
  
 | 
        <if test="serviceTypes != null and serviceTypes.size() > 0"> 
 | 
            AND service_type IN 
 | 
            <foreach collection="serviceTypes" item="serviceType" open="(" separator="," close=")"> 
 | 
                #{serviceType} 
 | 
            </foreach> 
 | 
        </if> 
 | 
  
 | 
<!--        GROUP BY--> 
 | 
<!--        <choose>--> 
 | 
<!--            <when test="timeType == 'day'">--> 
 | 
<!--                DATE_FORMAT(visit_time, '%Y-%m-%d')--> 
 | 
<!--            </when>--> 
 | 
<!--            <when test="timeType == 'month'">--> 
 | 
<!--                DATE_FORMAT(visit_time, '%Y-%m')--> 
 | 
<!--            </when>--> 
 | 
<!--            <when test="timeType == 'year'">--> 
 | 
<!--                DATE_FORMAT(visit_time, '%Y')--> 
 | 
<!--            </when>--> 
 | 
<!--            <when test="timeType == 'week'">--> 
 | 
<!--                CONCAT(YEAR(visit_time), '-W', LPAD(WEEK(visit_time, 1), 2, '0'))--> 
 | 
<!--            </when>--> 
 | 
<!--            <otherwise>--> 
 | 
<!--                DATE_FORMAT(visit_time, '%Y-%m-%d')--> 
 | 
<!--            </otherwise>--> 
 | 
<!--        </choose>--> 
 | 
  
 | 
        UNION ALL 
 | 
  
 | 
        -- 出院人次数据 
 | 
        SELECT 
 | 
        <choose> 
 | 
            <when test="timeType == 'day'"> 
 | 
                DATE_FORMAT(endtime, '%Y-%m-%d') AS timePeriod, 
 | 
            </when> 
 | 
            <when test="timeType == 'month'"> 
 | 
                DATE_FORMAT(endtime, '%Y-%m') AS timePeriod, 
 | 
            </when> 
 | 
            <when test="timeType == 'year'"> 
 | 
                DATE_FORMAT(endtime, '%Y') AS timePeriod, 
 | 
            </when> 
 | 
            <when test="timeType == 'week'"> 
 | 
                CONCAT(YEAR(endtime), '-W', LPAD(WEEK(endtime, 1), 2, '0')) AS timePeriod, 
 | 
            </when> 
 | 
            <otherwise> 
 | 
                DATE_FORMAT(endtime, '%Y-%m-%d') AS timePeriod, 
 | 
            </otherwise> 
 | 
        </choose> 
 | 
        0 AS dischargeFollowCount, 
 | 
        0 AS outpatientFollowCount, 
 | 
        1 AS pmiCount, 
 | 
        0 AS pmoCount 
 | 
        FROM pat_med_inhosp 
 | 
        WHERE del_flag = '0' 
 | 
        <if test="startDate != null and endDate != null"> 
 | 
            AND endtime >= #{startDate} 
 | 
            AND endtime <= DATE_ADD(#{endDate}, INTERVAL 1 DAY) 
 | 
        </if> 
 | 
  
 | 
        AND inhospstate=1 
 | 
        <if test="orgid != null"> 
 | 
            AND orgid = #{orgid} 
 | 
        </if> 
 | 
  
 | 
        <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0"> 
 | 
            AND leavehospitaldistrictcode IN 
 | 
            <foreach collection="leavehospitaldistrictcodes" item="districtcode" open="(" separator="," close=")"> 
 | 
                #{districtcode} 
 | 
            </foreach> 
 | 
        </if> 
 | 
  
 | 
        <if test="deptcodes != null and deptcodes.size() > 0"> 
 | 
            AND leaveldeptcode IN 
 | 
            <foreach collection="deptcodes" item="deptcode" open="(" separator="," close=")"> 
 | 
                #{deptcode} 
 | 
            </foreach> 
 | 
        </if> 
 | 
  
 | 
<!--        GROUP BY--> 
 | 
<!--        <choose>--> 
 | 
<!--            <when test="timeType == 'day'">--> 
 | 
<!--                DATE_FORMAT(endtime, '%Y-%m-%d')--> 
 | 
<!--            </when>--> 
 | 
<!--            <when test="timeType == 'month'">--> 
 | 
<!--                DATE_FORMAT(endtime, '%Y-%m')--> 
 | 
<!--            </when>--> 
 | 
<!--            <when test="timeType == 'year'">--> 
 | 
<!--                DATE_FORMAT(endtime, '%Y')--> 
 | 
<!--            </when>--> 
 | 
<!--            <when test="timeType == 'week'">--> 
 | 
<!--                CONCAT(YEAR(endtime), '-W', LPAD(WEEK(endtime, 1), 2, '0'))--> 
 | 
<!--            </when>--> 
 | 
<!--            <otherwise>--> 
 | 
<!--                DATE_FORMAT(endtime, '%Y-%m-%d')--> 
 | 
<!--            </otherwise>--> 
 | 
<!--        </choose>--> 
 | 
  
 | 
        UNION ALL 
 | 
  
 | 
        -- 门诊人次数据 
 | 
        SELECT 
 | 
        <choose> 
 | 
            <when test="timeType == 'day'"> 
 | 
                DATE_FORMAT(admitdate, '%Y-%m-%d') AS timePeriod, 
 | 
            </when> 
 | 
            <when test="timeType == 'month'"> 
 | 
                DATE_FORMAT(admitdate, '%Y-%m') AS timePeriod, 
 | 
            </when> 
 | 
            <when test="timeType == 'year'"> 
 | 
                DATE_FORMAT(admitdate, '%Y') AS timePeriod, 
 | 
            </when> 
 | 
            <when test="timeType == 'week'"> 
 | 
                CONCAT(YEAR(admitdate), '-W', LPAD(WEEK(admitdate, 1), 2, '0')) AS timePeriod, 
 | 
            </when> 
 | 
            <otherwise> 
 | 
                DATE_FORMAT(admitdate, '%Y-%m-%d') AS timePeriod, 
 | 
            </otherwise> 
 | 
        </choose> 
 | 
        0 AS dischargeFollowCount, 
 | 
        0 AS outpatientFollowCount, 
 | 
        0 AS pmiCount, 
 | 
        1 AS pmoCount 
 | 
        FROM pat_med_outhosp 
 | 
        WHERE del_flag = '0' 
 | 
        <if test="startDate != null and endDate != null"> 
 | 
            AND admitdate >= #{startDate} 
 | 
            AND admitdate <= DATE_ADD(#{endDate}, INTERVAL 1 DAY) 
 | 
        </if> 
 | 
        <if test="orgid != null"> 
 | 
            AND orgid = #{orgid} 
 | 
        </if> 
 | 
  
 | 
        <if test="deptcodes != null and deptcodes.size() > 0"> 
 | 
            AND deptcode IN 
 | 
            <foreach collection="deptcodes" item="deptcode" open="(" separator="," close=")"> 
 | 
                #{deptcode} 
 | 
            </foreach> 
 | 
        </if> 
 | 
  
 | 
<!--        GROUP BY--> 
 | 
<!--        <choose>--> 
 | 
<!--            <when test="timeType == 'day'">--> 
 | 
<!--                DATE_FORMAT(admitdate, '%Y-%m-%d')--> 
 | 
<!--            </when>--> 
 | 
<!--            <when test="timeType == 'month'">--> 
 | 
<!--                DATE_FORMAT(admitdate, '%Y-%m')--> 
 | 
<!--            </when>--> 
 | 
<!--            <when test="timeType == 'year'">--> 
 | 
<!--                DATE_FORMAT(admitdate, '%Y')--> 
 | 
<!--            </when>--> 
 | 
<!--            <when test="timeType == 'week'">--> 
 | 
<!--                CONCAT(YEAR(admitdate), '-W', LPAD(WEEK(admitdate, 1), 2, '0'))--> 
 | 
<!--            </when>--> 
 | 
<!--            <otherwise>--> 
 | 
<!--                DATE_FORMAT(admitdate, '%Y-%m-%d')--> 
 | 
<!--            </otherwise>--> 
 | 
<!--        </choose>--> 
 | 
        ) AS combined_data 
 | 
        GROUP BY timePeriod 
 | 
        ORDER BY timePeriod DESC 
 | 
    </select> 
 | 
  
 | 
</mapper> 
 |