From e444243ca81f28c69a5c0a79ec77689ce6f6ee52 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 06 二月 2026 15:03:12 +0800
Subject: [PATCH] 【丽水】新增科室用户信息接口输入

---
 smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml |  245 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 195 insertions(+), 50 deletions(-)

diff --git a/smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml
index 50f29e7..9b42b4a 100644
--- a/smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml
@@ -7,6 +7,7 @@
     <resultMap type="com.smartor.domain.PatMedOuthosp" id="PatMedOuthospResult">
         <result property="id" column="id"/>
         <result property="serialnum" column="serialnum"/>
+        <result property="fuflag" column="fuflag"/>
         <result property="patid" column="patid"/>
         <result property="hospitalname" column="hospitalname"/>
         <result property="hospitalcode" column="hospitalcode"/>
@@ -37,14 +38,21 @@
         <result property="diagcheckFlag" column="diagcheck_flag"/>
         <result property="idcardno" column="idcardno"/>
         <result property="remark" column="remark"/>
+        <result property="fudate" column="fudate"/>
+        <result property="serverState" column="server_state"/>
+        <result property="campusid" column="campusid"/>
     </resultMap>
 
     <sql id="selectPatMedOuthospVo">
         select id,
                outhospno,
+               campusid,
+               server_state,
                diagcheck_flag,
                patno,
                remark,
+               fudate,
+               fuflag,
                serialnum,
                patid,
                hospitalname,
@@ -78,14 +86,10 @@
             resultMap="PatMedOuthospResult">
         select
         pmo.id,
-        pmo.remark,
         pmo.outhospno,
-        pmo.diagcheck_flag,
         pmo.patno,
         pmo.serialnum,
         pmo.patid,
-        pmo.hospitalname,
-        pmo.hospitalcode,
         pmo.icd10code,
         pmo.diagname,
         pmo.deptcode,
@@ -93,31 +97,28 @@
         pmo.drcode,
         pmo.drname,
         pmo.admitdate,
-        pmo.orgid,
-        pmo.del_flag,
-        pmo.guid,
-        pmo.update_by,
-        pmo.update_time,
-        pmo.create_by,
-        pmo.create_time,
-        pmo.isupload,
-        pmo.upload_time,
         pmo.schemestatus,
         pmo.deptid,
         pmo.schemetime,
-        pmo.hpi,
+        pmo.fuflag,
         pmo.patname,
-        CONCAT(pa.age,pa.age_unit,pa.age2,pa.age_unit2) AS age,
-        pa.telcode,
-        pmo.mainsuit,
-        pa.idcardno
-        from pat_med_outhosp pmo left join pat_archive pa on pmo.patid = pa.id
-        <where>
-            pmo.del_flag=0
+        pmo.update_time,
+        pmo.mainsuit
+        from pat_med_outhosp pmo
+        <where>pmo.del_flag='0'
             <if test="orgid != null ">and pmo.orgid = #{orgid}</if>
+            <if test="serialnum != null ">and pmo.serialnum = #{serialnum}</if>
+            <if test="serverState != null ">and pmo.server_state = #{serverState}</if>
             <if test="hospitalname != null  and hospitalname != ''">and pmo.hospitalname like concat('%',
                 #{hospitalname},
                 '%')
+            </if>
+            <if test="deptcodes != null and deptcodes.size()>0">
+                AND pmo.deptcode IN
+                <foreach collection="deptcodes" item="deptcode" open="(" separator=","
+                         close=")">
+                    #{deptcode}
+                </foreach>
             </if>
             <if test="deptname != null  and deptname != ''">and pmo.deptname like concat('%', #{deptname}, '%')</if>
             <if test="drname != null  and drname != ''">and pmo.drname like concat('%', #{drname}, '%')</if>
@@ -129,11 +130,15 @@
                 date_format(#{endTime},'%y%m%d')
             </if>
             <if test="patid != null ">and pmo.patid = #{patid}</if>
+            <if test="campusid != null ">and pmo.campusid = #{campusid}</if>
+            <if test="fuflag != null ">and pmo.fuflag = #{fuflag}</if>
             <if test="patno != null ">and pmo.patno = #{patno}</if>
             <if test="outhospno != null  and outhospno != ''">and pmo.outhospno = #{outhospno}</if>
             <if test="diagcheckFlag != null  and diagcheckFlag != ''">and pmo.diagcheck_flag = #{diagcheckFlag}</if>
+            <if test="diagname != null  and diagname != ''">and pmo.diagname like concat('%',#{diagname}, '%')</if>
         </where>
         order by pmo.update_time desc
+        <if test="pageSize != null  and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if>
     </select>
 
     <select id="selectPatMedOuthospById" parameterType="Long" resultMap="PatMedOuthospResult">
@@ -175,6 +180,10 @@
             <if test="patno != null">patno,</if>
             <if test="diagcheckFlag != null">diagcheck_flag,</if>
             <if test="remark != null">remark,</if>
+            <if test="fuflag != null">fuflag,</if>
+            <if test="fudate != null">fudate,</if>
+            <if test="campusid != null">campusid,</if>
+            <if test="serverState != null">server_state,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="serialnum != null">#{serialnum},</if>
@@ -207,6 +216,10 @@
             <if test="patno != null">#{patno},</if>
             <if test="diagcheckFlag != null">#{diagcheckFlag},</if>
             <if test="remark != null">#{remark},</if>
+            <if test="fuflag != null">#{fuflag},</if>
+            <if test="fudate != null">#{fudate},</if>
+            <if test="campusid != null">#{campusid},</if>
+            <if test="serverState != null">#{serverState},</if>
         </trim>
     </insert>
 
@@ -242,6 +255,10 @@
         guid,
         patno,
         diagcheck_flag,
+        fuflag,
+        fudate,
+        campusid,
+        server_state,
         remark)
         values
         <foreach collection="list" item="item" separator=",">
@@ -269,6 +286,83 @@
             #{item.deptid},
             #{item.schemetime},
             #{item.hpi},
+            #{item.mainsuit},
+            #{item.outhospno},
+            #{item.patname},
+            #{item.guid},
+            #{item.patno},
+            #{item.diagcheckFlag},
+            #{item.fuflag},
+            #{item.fudate},
+            #{item.campusid},
+            #{item.serverState},
+            #{item.remark}
+            )
+        </foreach>
+    </insert>
+
+    <insert id="batchInsertIgnore">
+        insert ignore into pat_med_outhosp
+        (
+        serialnum,
+        patid,
+        hospitalname,
+        hospitalcode,
+        icd10code,
+        diagname,
+        deptcode,
+        deptname,
+        drcode,
+        drname,
+        admitdate,
+        orgid,
+        del_flag,
+        update_by,
+        update_time,
+        create_by,
+        create_time,
+        isupload,
+        upload_time,
+        schemestatus,
+        deptid,
+        schemetime,
+        hpi,
+        mainsuit,
+        outhospno,
+        patname,
+        guid,
+        patno,
+        diagcheck_flag,
+        fuflag,
+        fudate,
+        campusid,
+        server_state,
+        remark)
+        values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.serialnum},
+            #{item.patid},
+            #{item.hospitalname},
+            #{item.hospitalcode},
+            #{item.icd10code},
+            #{item.diagname},
+            #{item.deptcode},
+            #{item.deptname},
+            #{item.drcode},
+            #{item.drname},
+            #{item.admitdate},
+            #{item.orgid},
+            #{item.delFlag},
+            #{item.updateBy},
+            #{item.updateTime},
+            #{item.createBy},
+            #{item.createTime},
+            #{item.isupload},
+            #{item.uploadTime},
+            #{item.schemestatus},
+            #{item.deptid},
+            #{item.schemetime},
             #{item.hpi},
             #{item.mainsuit},
             #{item.outhospno},
@@ -276,6 +370,10 @@
             #{item.guid},
             #{item.patno},
             #{item.diagcheckFlag},
+            #{item.fuflag},
+            #{item.fudate},
+            #{item.campusid},
+            #{item.serverState},
             #{item.remark}
             )
         </foreach>
@@ -315,6 +413,10 @@
             <if test="patno != null">patno = #{patno},</if>
             <if test="diagcheckFlag != null">diagcheck_flag = #{diagcheckFlag},</if>
             <if test="remark != null">remark = #{remark},</if>
+            <if test="fuflag != null">fuflag = #{fuflag},</if>
+            <if test="fudate != null">fudate = #{fudate},</if>
+            <if test="campusid != null">campusid = #{campusid},</if>
+            <if test="serverState != null">server_state = #{serverState},</if>
         </trim>
         where id = #{id}
     </update>
@@ -334,48 +436,88 @@
 
     <select id="selectPatMedOuthospCount" parameterType="com.smartor.domain.PatMedReq"
             resultType="com.smartor.domain.PatMedRes">
+        SELECT SUM( rs ) AS rs,
+        SUM( rc ) AS rc
+        FROM (
         SELECT
         COUNT(id) AS rc,
-        COUNT(DISTINCT patid) AS rs
+        0 AS rs
         FROM
         pat_med_outhosp
-        <where>
-            del_flag=0
-            and date_format(admitdate,'%y%m%d') &gt;= date_format(#{startDate},'%y%m%d')
-            and date_format(admitdate,'%y%m%d') &lt;= date_format(#{endDate},'%y%m%d')
-            <if test="deptcodeList != null and deptcodeList.size()>0">
-                and deptcode in
-                <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
-                    #{deptcode}
-                </foreach>
-            </if>
-        </where>
+        where 1=1
+        and del_flag = 0
+        <if test="orgid != null">
+            and orgid = #{orgid}
+        </if>
+        and date_format(admitdate,'%y%m%d') &gt;= date_format(#{startDate},'%y%m%d')
+        and date_format(admitdate,'%y%m%d') &lt;= date_format(#{endDate},'%y%m%d')
+        <if test="deptcodeList != null and deptcodeList.size()>0">
+            and deptcode in
+            <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
+                #{deptcode}
+            </foreach>
+        </if>
+        union all
+        select
+        0 AS rc,
+        count(1) AS rs
+        FROM
+        service_subtask
+        where 1=1
+        and del_flag = 0
+        and service_type=3
+        <if test="orgid != null">
+            and orgid = #{orgid}
+        </if>
+        <if test="startDate != null">
+            AND date_format( visit_time, '%y%m%d' ) &gt;= date_format( #{startDate}, '%y%m%d' )
+        </if>
+        <if test="endDate != null">
+            AND date_format( visit_time, '%y%m%d' ) &lt;= date_format(#{endDate},'%y%m%d')
+        </if>
+        <if test="deptcodeList != null and deptcodeList.size()>0">
+            and deptcode in
+            <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
+                #{deptcode}
+            </foreach>
+        </if>
+        ) AS combined_data
     </select>
 
     <select id="getDeptRanking" parameterType="com.smartor.domain.PatMedReq" resultType="com.smartor.domain.PatMedRes">
         SELECT deptname, COUNT(1) AS rc
         FROM pat_med_outhosp
-        <where>
-            del_flag=0
-            <if test="inhospstate != inhospstate">
-                and inhospstate= #{inhospstate}
-            </if>
-            <if test="deptcodeList != null and deptcodeList.size()>0">
-                and deptcode in
-                <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
-                    #{deptcode}
-                </foreach>
-            </if>
-        </where>
+        where 1=1
+        and del_flag = 0
+        <if test="orgid != null  and orgid != ''">
+            and orgid = #{orgid}
+        </if>
+        <if test="inhospstate != null">
+            and inhospstate= #{inhospstate}
+        </if>
+        <if test="serverState != null">
+            and server_state= #{inhospstate}
+        </if>
+        <if test="deptcodeList != null and deptcodeList.size()>0">
+            and deptcode in
+            <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
+                #{deptcode}
+            </foreach>
+        </if>
     </select>
 
     <!-- PatMedOuthospMapper.xml -->
     <select id="countPatMedOuthosp" resultType="int">
-        SELECT COUNT(*) FROM pat_med_outhosp
+        SELECT COUNT(*)
+        FROM pat_med_outhosp
     </select>
 
     <update id="renameTable">
-        RENAME TABLE ${oldName} TO ${newName}
+        RENAME
+        TABLE
+        ${oldName}
+        TO
+        ${newName}
     </update>
 
     <update id="createPatMedOuthosp">
@@ -391,12 +533,15 @@
     </update>
 
     <select id="getAllOuthospTableNames" resultType="String">
-        SELECT table_name FROM information_schema.tables
-        WHERE table_schema = DATABASE() AND table_name LIKE 'pat_med_outhosp%'
+        SELECT table_name
+        FROM information_schema.tables
+        WHERE table_schema = DATABASE()
+          AND table_name LIKE 'pat_med_outhosp%'
     </select>
 
     <select id="getMaxIdFromTable" resultType="Long">
-        SELECT IFNULL(MAX(id), 0) FROM ${tableName}
+        SELECT IFNULL(MAX(id), 0)
+        FROM ${tableName}
     </select>
 
     <update id="createOrReplaceView">

--
Gitblit v1.9.3