陈昶聿
4 天以前 eb845e8be695ed1280a7cbf854a4d1dedf9db30d
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -82,6 +82,7 @@
        <result property="visitCount" column="visit_count"/>
        <result property="isVisitAgain" column="is_visit_again"/>
        <result property="upid" column="upid"/>
        <result property="visitType" column="visit_type"/>
        <result property="visitTime" column="visit_time"/>
        <result property="visitDeptName" column="visit_dept_name"/>
        <result property="visitDeptCode" column="visit_dept_code"/>
@@ -302,6 +303,11 @@
        END
    </sql>
    <!-- 当前执行方式:首次随访 current_preachform 为空时,取 preachform 的第一个执行方式兜底 -->
    <sql id="effectiveCurrentPreachformExpr">
        COALESCE(NULLIF(TRIM(current_preachform), ''), TRIM(SUBSTRING_INDEX(preachform, ',', 1)))
    </sql>
    <select id="selectServiceSubtaskBySendstate" parameterType="com.smartor.domain.entity.ServiceSubtaskEntity"
            resultMap="ServiceSubtaskResult">
        <include refid="selectServiceSubtaskVo"/>
@@ -404,6 +410,7 @@
        <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="visitCount != null ">and visit_count = #{visitCount}</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>
@@ -567,6 +574,9 @@
        <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="currentPreachforms != null and currentPreachforms != ''">
            and FIND_IN_SET(<include refid="effectiveCurrentPreachformExpr"/>, #{currentPreachforms})
        </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>
@@ -949,6 +959,12 @@
        </if>
        <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if>
        <if test="managementDoctor != null">and management_doctor like concat('%',#{managementDoctor}, '%')</if>
        <if test="startOutHospTime != null">
            AND date_format(endtime,'%y%m%d') &gt;= date_format(#{startOutHospTime},'%y%m%d')
        </if>
        <if test="endOutHospTime != null">
            AND date_format(endtime,'%y%m%d') &lt;= date_format(#{endOutHospTime},'%y%m%d')
        </if>
        ) a where a.finished =1)
    </select>
@@ -1639,6 +1655,35 @@
        where patid = #{patid} and taskid = #{taskid}
    </update>
    <!-- 人工随访:软删除患者出院记录对应的未完成随访任务 -->
    <update id="deleteUnfinishedServiceSubtaskByInhospids">
        update service_subtask
        set del_flag = 1
        where del_flag = 0
          and patid = #{patid}
          and sendstate in
          <foreach collection="sendstates" item="sendstate" open="(" separator="," close=")">
              #{sendstate}
          </foreach>
          and inhospid in
          <foreach collection="inhospids" item="inhospid" open="(" separator="," close=")">
              #{inhospid}
          </foreach>
    </update>
    <!-- 人工随访重复校验:同一患者同一任务下是否已有未完成随访任务 -->
    <select id="countUnfinishedServiceSubtaskByPatidAndTaskid" resultType="int">
        select count(1)
        from service_subtask
        where del_flag = 0
          and patid = #{patid}
          and taskid = #{taskid}
          and sendstate in
          <foreach collection="sendstates" item="sendstate" open="(" separator="," close=")">
              #{sendstate}
          </foreach>
    </select>
    <select id="getSfStatistics" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
            resultMap="ServiceSubtaskResult">
        select id,
@@ -1656,13 +1701,14 @@
        deptname,
        sendstate,
        preachform,
        current_preachform,
        <include refid="effectiveCurrentPreachformExpr"/> AS current_preachform,
        excep,
        nurse_id,
        nurse_name,
        taskid,
        task_name,
        visit_time,
        visit_dept_code,
        finishtime,
        endtime,
        senddate,
@@ -1944,13 +1990,15 @@
        deptname,
        sendstate,
        preachform,
        current_preachform,
        <include refid="effectiveCurrentPreachformExpr"/> AS current_preachform,
        excep,
        nurse_id,
        nurse_name,
        taskid,
        task_name,
        visit_time,
        visit_dept_code,
        visit_dept_name,
        finishtime,
        endtime,
        senddate,
@@ -2043,7 +2091,7 @@
            </foreach>
        </if>
        <if test="currentPreachform != null">
            AND current_preachform = #{currentPreachform}
            AND <include refid="effectiveCurrentPreachformExpr"/> = #{currentPreachform}
            <if test="followUpCountStyle != null and followUpCountStyle = '1'">
                AND sendstate != 4
            </if>
@@ -2911,6 +2959,9 @@
                #{state}
            </foreach>
        </if>
        <if test="currentPreachforms != null and currentPreachforms != ''">
            AND FIND_IN_SET(<include refid="effectiveCurrentPreachformExpr"/>, #{currentPreachforms})
        </if>
        <if test="orgid != null and orgid != ''">
            AND orgid = #{orgid}
        </if>