From 0131b587714d546feb77633bf9e6eb3bf79ff60b Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 15 六月 2026 17:05:00 +0800
Subject: [PATCH] 【丽水】手术随访

---
 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java |   54 ++++++-------
 smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java           |   55 +++++++++++++
 smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml     |   88 ++++++++++++++++++++++
 smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java     |    9 ++
 4 files changed, 178 insertions(+), 28 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java b/smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java
index 8fd63cb..6fd3835 100644
--- a/smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java
+++ b/smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java
@@ -161,5 +161,60 @@
     @ApiModelProperty("闀挎湡浠诲姟 锛屽け璐ュ師鍥�")
     @Excel(name = "闀挎湡浠诲姟 锛屽け璐ュ師鍥�")
     private String longTaskReason;
+
+    /**
+     * 绉戝浠g爜
+     */
+    @ApiModelProperty("绉戝浠g爜")
+    private String deptcode;
+
+    /**
+     * 绉戝鍚嶇О
+     */
+    @ApiModelProperty("绉戝鍚嶇О")
+    private String deptname;
+
+    /**
+     * 鐥呭尯缂栧彿
+     */
+    @ApiModelProperty("鐥呭尯缂栧彿")
+    private String hospitaldistrictcode;
+
+    /**
+     * 鐥呭尯鍚嶇О
+     */
+    @ApiModelProperty("鐥呭尯鍚嶇О")
+    private String hospitaldistrictname;
+
+    @ApiModelProperty("鎮h�匢D")
+    private Long patid;
+
+    /**
+     * 涓绘不鍖荤敓宸ュ彿
+     */
+    @ApiModelProperty("涓绘不鍖荤敓宸ュ彿")
+    @Excel(name = "涓绘不鍖荤敓宸ュ彿")
+    private String drcode;
+
+    /**
+     * 涓绘不鍖荤敓鍚嶇О
+     */
+    @ApiModelProperty("涓绘不鍖荤敓鍚嶇О")
+    @Excel(name = "涓绘不鍖荤敓鍚嶇О")
+    private String drname;
+
+    /**
+     * 鎶ゅ+ID
+     */
+    @ApiModelProperty("鎶ゅ+ID")
+    @Excel(name = "鎶ゅ+ID")
+    private String nurseId;
+
+    /**
+     * 鎶ゅ+濮撳悕
+     */
+    @ApiModelProperty("鎶ゅ+濮撳悕")
+    @Excel(name = "鎶ゅ+濮撳悕")
+    private String nurseName;
 }
 
diff --git a/smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java b/smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java
index 0c16172..fdab6ef 100644
--- a/smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java
+++ b/smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java
@@ -75,4 +75,13 @@
      * @return 缁撴灉
      */
     public int deleteHardPatMedOperationItemByOpId(String opid);
+
+    /**
+     * 鏌ヨ鎮h�呮鏌ユ楠岃褰曞瓙鍒楄〃
+     *
+     * @param patMedOperationItem 鎮h�呮鏌ユ楠岃褰曞瓙
+     * @return 鎮h�呮鏌ユ楠岃褰曞瓙闆嗗悎
+     */
+    public List<PatMedOperationItem> selectOperationItemList(PatMedOperationItem patMedOperationItem);
+
 }
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
index d7ddca4..8db8f65 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -313,7 +313,6 @@
         addSubTaskByRule(config);
         //鏍规嵁鎮h�呮墍鍦ㄧ梾鍖猴紝鑾峰彇璇ョ梾鍖虹殑闀挎湡浠诲姟,鏂板崕鍖婚櫌鍙互鍏堜笉鐢ㄦ牴鎹梾鍖哄拰鐤剧梾鏉ュ仛
         if (!active.equals("xh")) {
-            //todo 鎵嬫湳涓昏〃-鎵嬫湳璇︽儏琛�-鍑洪櫌璁板綍琛�-绉戝鍏崇郴锛� 闇�瑕侀檺鍒剁瀹わ紵
             addOperationSubTask(config);
         }
 
@@ -783,27 +782,18 @@
         } else {
             serviceTask = serviceTasks.get(0);
         }
-        if (Objects.isNull(patMedOperationItem.getOpid())) {
-            return;
-        }
         if (Objects.isNull(patMedOperationItem.getOplevelcode())) {
             return;
         }
-        PatMedOperation patMedOperationVo = new PatMedOperation();
-        PatMedOperation patMedOperation = new PatMedOperation();
-        patMedOperationVo.setOpid(patMedOperationItem.getOpid());
-        List<PatMedOperation> patMedOperationList = patMedOperationMapper.selectPatMedOperationList(patMedOperationVo);
-        if (CollectionUtils.isEmpty(patMedOperationList)) {
+        if (Objects.isNull(patMedOperationItem.getPatid())) {
             return;
-        }else {
-            patMedOperation = patMedOperationList.get(0);
         }
-        PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperation.getPatid());
+        PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperationItem.getPatid());
         if (Objects.isNull(patArchive)) {
             return;
         }
         PatMedInhosp patMedInhosp = new PatMedInhosp();
-        patMedInhosp.setPatid(patMedOperation.getPatid());
+        patMedInhosp.setPatid((patMedOperationItem.getPatid()));
         patMedInhosp.setInhospstate("1");
         patMedInhosp.setFuflag("1");
         List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
@@ -813,12 +803,17 @@
         }
 
         //灏佽serviceSubtask
-        ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperation, patMedOperationItem, patArchive, config);
+        ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperationItem, patArchive, config);
         if (ObjectUtils.isEmpty(serviceSubtask)) {
             return;
         }
-        serviceSubtask.setVisitDeptCode(patMedOperation.getReqdeptcode());
-        serviceSubtask.setVisitDeptName(patMedOperation.getReqdeptname());
+        if(StringUtils.isNotEmpty(patMedOperationItem.getDeptcode())){
+            serviceSubtask.setVisitDeptCode(patMedOperationItem.getDeptcode());
+            serviceSubtask.setVisitDeptName(patMedOperationItem.getDeptname());
+        }else {
+            serviceSubtask.setVisitDeptCode(patMedOperationItem.getHospitaldistrictcode());
+            serviceSubtask.setVisitDeptName(patMedOperationItem.getHospitaldistrictname());
+        }
         //璁板綍insertServiceSubtask璇彞杩斿洖鐘舵��
         Integer i = 0;
         try {
@@ -1050,18 +1045,18 @@
     }
 
     //灏佽serviceSubtask
-    private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatMedOperation patMedOperation, PatMedOperationItem patMedOperationItem, PatArchive patArchive, String config) {
+    private ServiceSubtask boxedServiceSubtaskForOp(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatMedOperationItem patMedOperationItem, PatArchive patArchive, String config) {
         ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
         serviceSubtask.setTaskid(serviceTask.getTaskid());
         if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
             serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid()));
-        serviceSubtask.setNurseId(patMedOperation.getNurseId());
-        serviceSubtask.setNurseName(patMedOperation.getNurseName());
+        serviceSubtask.setNurseId(patMedOperationItem.getNurseId());
+        serviceSubtask.setNurseName(patMedOperationItem.getNurseName());
 //        serviceSubtask.setInhospid(patMedInhosp.getInhospid());
-        serviceSubtask.setDrcode(patMedOperation.getDrcode());
-        serviceSubtask.setDrname(patMedOperation.getDrname());
-        serviceSubtask.setDeptcode(patMedOperation.getDeptcode());
-        serviceSubtask.setDeptname(patMedOperation.getDeptname());
+        serviceSubtask.setDrcode(patMedOperationItem.getDrcode());
+        serviceSubtask.setDrname(patMedOperationItem.getDrname());
+        serviceSubtask.setDeptcode(patMedOperationItem.getDeptcode());
+        serviceSubtask.setDeptname(patMedOperationItem.getDeptname());
 
         serviceSubtask.setTemplateid(serviceTask.getTemplateid());
         serviceSubtask.setTemplatename(serviceTask.getTemplatename());
@@ -1073,8 +1068,8 @@
         serviceSubtask.setSex(patArchive.getSex());
         serviceSubtask.setAge(patArchive.getAge());
         serviceSubtask.setSendstate(2L);
-        serviceSubtask.setManagementDoctor(patMedOperation.getDrname());
-        serviceSubtask.setManagementDoctorCode(patMedOperation.getDrcode());
+        serviceSubtask.setManagementDoctor(patMedOperationItem.getDrname());
+        serviceSubtask.setManagementDoctorCode(patMedOperationItem.getDrcode());
 //        serviceSubtask.setStarttime(patMedInhosp.getStarttime());
 //        serviceSubtask.setEndtime(patMedInhosp.getEndtime());
 
@@ -1083,14 +1078,13 @@
         serviceSubtask.setHospType("2");
         serviceSubtask.setCreateTime(new Date());
         serviceSubtask.setUpdateTime(new Date());
-        serviceSubtask.setCreateBy(patMedOperation.getNurseName());
+        serviceSubtask.setCreateBy(patMedOperationItem.getNurseName());
 //        serviceSubtask.setLeavehospitaldistrictcode(patArchive.getLeavehospitaldistrictcode());
 //        serviceSubtask.setLeavehospitaldistrictname(patArchive.getLeavehospitaldistrictname());
         serviceSubtask.setOperationItemId(patMedOperationItem.getId());
         serviceSubtask.setUpdateBy(serviceTask.getUpdateBy());
         serviceSubtask.setUpdateTime(new Date());
 
-        //todo
         //璁剧疆鍙戦�佹椂闂�
         if (serviceTask.getSendDay() == null) serviceTask.setSendDay(1L);
         Date newDate = null;
@@ -1189,7 +1183,7 @@
         pmoi.setOpercheckFlag("0");
         pmoi.setMainFlag("1");
 
-        List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectPatMedOperationItemList(pmoi);
+        List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemList(pmoi);
         log.info("dealOutHospInfo闇�瑕佸鐞嗙殑鍑洪櫌鎵嬫湳鎮h�呬俊鎭細{}", CollectionUtils.isNotEmpty(patMedOperationItems) ? patMedOperationItems.size() : null);
 
         for (PatMedOperationItem opItem : patMedOperationItems) {
@@ -1204,6 +1198,10 @@
                 serviceTaskoper.setOrgid(opItem.getOrgid());
                 serviceTaskoper.setOplevelcode(opItem.getOplevelcode());
 
+                //鏍规嵁绉戝銆佺梾鍖鸿繃婊�
+                serviceTaskoper.setDeptCode(opItem.getDeptcode());
+                serviceTaskoper.setWardCode(opItem.getHospitaldistrictcode());
+
                 List<ServiceTaskoper> serviceTaskopers = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper);
                 //濡傛灉閮ㄩ棬妯℃澘涓虹┖锛堝皢deptIsNull璁剧疆涓簍rue锛�
                 if (CollectionUtils.isEmpty(serviceTaskopers) || serviceTaskopers.size() == 0) {
diff --git a/smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml
index 080bf13..329984e 100644
--- a/smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml
@@ -29,6 +29,16 @@
             <result property="pid" column="pid"/>
             <result property="opercheckFlag" column="opercheck_flag"/>
             <result property="longTaskReason" column="long_task_reason"/>
+
+            <result property="deptcode" column="deptcode"/>
+            <result property="deptname" column="deptname"/>
+            <result property="hospitaldistrictcode" column="hospitaldistrictcode"/>
+            <result property="hospitaldistrictname" column="hospitaldistrictname"/>
+            <result property="patid" column="patid"/>
+            <result property="drcode" column="drcode"/>
+            <result property="drname" column="drname"/>
+            <result property="nurseId" column="nurse_id"/>
+            <result property="nurseName" column="nurse_name"/>
     </resultMap>
 
     <sql id="selectPatMedOperationItemVo">
@@ -399,5 +409,83 @@
                where opid = #{opid}
     </delete>
 
+    <select id="selectOperationItemList" parameterType="com.smartor.domain.PatMedOperationItem"
+            resultMap="PatMedOperationItemResult">
+        select pmoi.id, pmoi.operationid, pmoi.opid, pmoi.opcode, pmoi.opdesc, pmoi.main_flag, pmoi.incitypecode,
+        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
+        from pat_med_operation pmo
+        join pat_med_operation_item pmoi
+        on pmoi.opcode = pmo.opcode
+        where
+        pmo.del_flag = '0'
+        and pmoi.del_flag = '0'
+        <if test="operationid != null ">
+            and pmoi.operationid = #{operationid}
+        </if>
+        <if test="opid != null ">
+            and pmoi.opid = #{opid}
+        </if>
+        <if test="opcode != null  and opcode != ''">
+            and pmoi.opcode = #{opcode}
+        </if>
+        <if test="opdesc != null  and opdesc != ''">
+            and pmoi.opdesc = #{opdesc}
+        </if>
+        <if test="mainFlag != null  and mainFlag != ''">
+            and pmoi.main_flag = #{mainFlag}
+        </if>
+        <if test="incitypecode != null  and incitypecode != ''">
+            and pmoi.incitypecode = #{incitypecode}
+        </if>
+        <if test="incitypedesc != null  and incitypedesc != ''">
+            and pmoi.incitypedesc = #{incitypedesc}
+        </if>
+        <if test="oplevelcode != null  and oplevelcode != ''">
+            and pmoi.oplevelcode = #{oplevelcode}
+        </if>
+        <if test="opleveldesc != null  and opleveldesc != ''">
+            and pmoi.opleveldesc = #{opleveldesc}
+        </if>
+        <if test="opposition != null  and opposition != ''">
+            and pmoi.opposition = #{opposition}
+        </if>
+        <if test="isupload != null ">
+            and pmoi.isupload = #{isupload}
+        </if>
+        <if test="uploadTime != null ">
+            and pmoi.upload_time = #{uploadTime}
+        </if>
+        <if test="orgid != null  and orgid != ''">
+            and pmoi.orgid = #{orgid}
+        </if>
+        <if test="pguid != null  and pguid != ''">
+            and pmoi.pguid = #{pguid}
+        </if>
+        <if test="guid != null  and guid != ''">
+            and pmoi.guid = #{guid}
+        </if>
+        <if test="pid != null ">
+            and pmoi.pid = #{pid}
+        </if>
+        <if test="deptcode != null and deptcode != ''">
+            and pmo.deptcode = #{deptcode}
+        </if>
+        <if test="deptname != null and deptname != ''">
+            and pmo.deptname = #{deptname}
+        </if>
+        <if test="hospitaldistrictcode != null and hospitaldistrictcode != ''">
+            and pmo.hospitaldistrictcode = #{hospitaldistrictcode}
+        </if>
+        <if test="hospitaldistrictname != null and hospitaldistrictname != ''">
+            and pmo.hospitaldistrictname = #{hospitaldistrictname}
+        </if>
+        <if test="patid != null">
+            and pmo.patid = #{patid}
+        </if>
+    </select>
 
 </mapper>

--
Gitblit v1.9.3