From 9db295a6e2a7be9ab74e23d3fcf002086cc5713e Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 04 九月 2026 16:43:51 +0800
Subject: [PATCH] 【市一】处理市一同步

---
 smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml |  166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 162 insertions(+), 4 deletions(-)

diff --git a/smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml
index e6c33b7..f654970 100644
--- a/smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml
@@ -29,11 +29,18 @@
             <result property="pid" column="pid"/>
             <result property="opercheckFlag" column="opercheck_flag"/>
             <result property="longTaskReason" column="long_task_reason"/>
+            <result property="inhospstate" column="inhospstate"/>
+            <result property="inhospEndtime" column="inhosp_endtime"/>
+            <result property="serialnum" column="serialnum"/>
 
             <result property="deptcode" column="deptcode"/>
             <result property="deptname" column="deptname"/>
             <result property="hospitaldistrictcode" column="hospitaldistrictcode"/>
             <result property="hospitaldistrictname" column="hospitaldistrictname"/>
+            <result property="leaveldeptcode" column="leaveldeptcode"/>
+            <result property="leaveldeptname" column="leaveldeptname"/>
+            <result property="leavehospitaldistrictcode" column="leavehospitaldistrictcode"/>
+            <result property="leavehospitaldistrictname" column="leavehospitaldistrictname"/>
             <result property="patid" column="patid"/>
             <result property="drcode" column="drcode"/>
             <result property="drname" column="drname"/>
@@ -42,7 +49,7 @@
     </resultMap>
 
     <sql id="selectPatMedOperationItemVo">
-        select id, operationid, opid, opcode, opdesc, main_flag, incitypecode, incitypedesc, oplevelcode, opleveldesc, opposition, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, orgid, pguid, guid, pid, opercheck_flag, long_task_reason
+        select id, operationid, opid, opcode, opdesc, main_flag, incitypecode, incitypedesc, oplevelcode, opleveldesc, opposition, del_flag, update_by, update_time, create_by, create_time, isupload, upload_time, orgid, pguid, guid, pid, opercheck_flag, long_task_reason, inhospstate, serialnum
         from pat_med_operation_item
     </sql>
 
@@ -97,6 +104,12 @@
                         </if>
                         <if test="pid != null ">
                             and pid = #{pid}
+                        </if>
+                        <if test="inhospstate != null  and inhospstate != ''">
+                            and inhospstate = #{inhospstate}
+                        </if>
+                        <if test="serialnum != null  and serialnum != ''">
+                            and serialnum = #{serialnum}
                         </if>
     </select>
 
@@ -155,6 +168,10 @@
                     </if>
                     <if test="longTaskReason != null">long_task_reason,
                     </if>
+                    <if test="inhospstate != null">inhospstate,
+                    </if>
+                    <if test="serialnum != null">serialnum,
+                    </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
                     <if test="operationid != null">#{operationid},
@@ -202,6 +219,10 @@
                     <if test="opercheckFlag != null">#{opercheckFlag},
                     </if>
                     <if test="longTaskReason != null">#{longTaskReason},
+                    </if>
+                    <if test="inhospstate != null">#{inhospstate},
+                    </if>
+                    <if test="serialnum != null">#{serialnum},
                     </if>
         </trim>
     </insert>
@@ -278,8 +299,94 @@
                     <if test="longTaskReason != null">long_task_reason =
                         #{longTaskReason},
                     </if>
+                    <if test="inhospstate != null">inhospstate =
+                        #{inhospstate},
+                    </if>
+                    <if test="serialnum != null">serialnum =
+                        #{serialnum},
+                    </if>
         </trim>
         where id = #{id}
+    </update>
+
+    <update id="updatePatMedOperationItemByOperationid" parameterType="com.smartor.domain.PatMedOperationItem">
+        update pat_med_operation_item
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="opid != null">opid =
+                #{opid},
+            </if>
+            <if test="opcode != null">opcode =
+                #{opcode},
+            </if>
+            <if test="opdesc != null">opdesc =
+                #{opdesc},
+            </if>
+            <if test="mainFlag != null">main_flag =
+                #{mainFlag},
+            </if>
+            <if test="incitypecode != null">incitypecode =
+                #{incitypecode},
+            </if>
+            <if test="incitypedesc != null">incitypedesc =
+                #{incitypedesc},
+            </if>
+            <if test="oplevelcode != null">oplevelcode =
+                #{oplevelcode},
+            </if>
+            <if test="opleveldesc != null">opleveldesc =
+                #{opleveldesc},
+            </if>
+            <if test="opposition != null">opposition =
+                #{opposition},
+            </if>
+            <if test="delFlag != null">del_flag =
+                #{delFlag},
+            </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="pguid != null">pguid =
+                #{pguid},
+            </if>
+            <if test="guid != null">guid =
+                #{guid},
+            </if>
+            <if test="pid != null">pid =
+                #{pid},
+            </if>
+            <if test="opercheckFlag != null">opercheck_flag =
+                #{opercheckFlag},
+            </if>
+            <if test="longTaskReason != null">long_task_reason =
+                #{longTaskReason},
+            </if>
+            <if test="inhospstate != null">inhospstate =
+                #{inhospstate},
+            </if>
+            <if test="serialnum != null">serialnum =
+                #{serialnum},
+            </if>
+        </trim>
+        where operationid = #{operationid}
+        and opcode = #{opcode}
     </update>
 
     <insert id="insertPatMedOperationItems">
@@ -331,6 +438,10 @@
             </if>
             <if test="longTaskReason != null">long_task_reason,
             </if>
+            <if test="inhospstate != null">inhospstate,
+            </if>
+            <if test="serialnum != null">serialnum,
+            </if>
         </trim>
         values
         <foreach item="item" index="index" collection="list" separator=",">
@@ -381,6 +492,10 @@
                 </if>
                 <if test="longTaskReason != null">#{item.longTaskReason},
                 </if>
+                <if test="inhospstate != null">#{item.inhospstate},
+                </if>
+                <if test="serialnum != null">#{item.serialnum},
+                </if>
             </trim>
         </foreach>
     </insert>
@@ -407,7 +522,25 @@
     <delete id="deleteHardPatMedOperationItemByOpId" parameterType="String">
         delete from pat_med_operation_item
                where opid = #{opid}
+               and opercheck_flag != 1
     </delete>
+
+    <update id="deletePatMedOperationItemByOperationid" parameterType="Long">
+        update  pat_med_operation_item
+        <trim prefix="SET" suffixOverrides=",">
+            del_flag =1
+        </trim>
+        where operationid = #{operationid}
+        and opercheck_flag != 1
+    </update>
+
+    <update id="deleteSoftPatMedOperationItemByOpId" parameterType="String">
+        update pat_med_operation_item
+        <trim prefix="SET" suffixOverrides=",">
+            del_flag =1
+        </trim>
+        where opid = #{opid}
+    </update>
 
     <select id="selectOperationItemList" parameterType="com.smartor.domain.PatMedOperationItem"
             resultMap="PatMedOperationItemResult">
@@ -415,14 +548,20 @@
         pmoi.incitypedesc, pmoi.oplevelcode, pmoi.opleveldesc, pmoi.opposition, pmoi.del_flag, pmoi.update_by,
         pmoi.update_time, pmoi.create_by, pmoi.create_time, pmoi.isupload, pmoi.upload_time, pmoi.orgid,
         pmoi.pguid, pmoi.guid, pmoi.pid, pmoi.opercheck_flag, pmoi.long_task_reason,
-        pmo.deptcode, pmo.deptname, pmo.hospitaldistrictcode, pmo.hospitaldistrictname, pmo.patid,
-        pmo.drcode, pmo.drname, pmo.nurse_id, pmo.nurse_name
+        pmo.deptcode, pmo.deptname, pmo.hospitaldistrictcode, pmo.hospitaldistrictname,
+        pmo.leaveldeptcode, pmo.leaveldeptname, pmo.leavehospitaldistrictcode, pmo.leavehospitaldistrictname, pmo.patid,
+        pmo.drcode, pmo.drname, pmo.nurse_id, pmo.nurse_name,
+        pmo.serialnum, pmi.inhospstate
         from pat_med_operation pmo
         join pat_med_operation_item pmoi
-        on pmoi.opcode = pmo.opcode
+        on pmoi.opid = pmo.opid
+        join pat_med_inhosp pmi
+        on pmo.serialnum = pmi.serialnum
         where
         pmo.del_flag = '0'
         and pmoi.del_flag = '0'
+        and pmo.opid is not null
+        and pmoi.opid is not null
         <if test="operationid != null ">
             and pmoi.operationid = #{operationid}
         </if>
@@ -471,6 +610,15 @@
         <if test="pid != null ">
             and pmoi.pid = #{pid}
         </if>
+        <if test="inhospstate != null and inhospstate != ''">
+            and pmi.inhospstate = #{inhospstate}
+            <if test="inhospstate == '1'">
+                and pmi.endtime is not null
+            </if>
+        </if>
+        <if test="serialnum != null and serialnum != ''">
+            and pmo.serialnum = #{serialnum}
+        </if>
         <if test="deptcode != null and deptcode != ''">
             and pmo.deptcode = #{deptcode}
         </if>
@@ -500,6 +648,16 @@
                 #{wardCode}
             </foreach>
         </if>
+        <if test="opLevelCodes != null and opLevelCodes.size()>0">
+            AND pmoi.oplevelcode IN
+            <foreach collection="opLevelCodes" item="levelCode" open="(" separator=","
+                     close=")">
+                #{levelCode}
+            </foreach>
+        </if>
+        <if test="opercheckFlag != null">
+            and pmoi.opercheck_flag = #{opercheckFlag}
+        </if>
     </select>
 
 </mapper>

--
Gitblit v1.9.3