浏览代码

出院带药药品授权和护士退药单科室问题

xiaochan 1 年之前
父节点
当前提交
d6917f5c50

+ 4 - 0
src/main/java/thyyxxk/webserver/dao/his/PublicDao.java

@@ -440,4 +440,8 @@ public interface PublicDao {
             "where (name like '${code}' or py_code like '${code}' or d_code like '${code}' or name like '${code}' or code like '${code}')")
     List<ItemDrug> getItemDrug(@Param("code") String code);
 
+
+    @Select("SELECT small_dept FROM zd_dept_all where dept = #{dept}")
+    Set<String> chaXunZhiZXinKeShi(@Param("dept") String dept);
+
 }

+ 1 - 1
src/main/java/thyyxxk/webserver/dao/his/inpatient/XiangMuLuRuDao.java

@@ -779,7 +779,7 @@ public interface XiangMuLuRuDao extends BaseMapper<ZyDetailCharge> {
             "from yz_yp_zy_order a," +
             "yp_zd_dict b " +
             "where page_no_ty = -1 " +
-            "  and dept_code = #{dept}" +
+            "  and dept_code IN ${dept}" +
             "  and group_no = #{groupNo} " +
             "  and page_class = 'HT' " +
             "  AND charge_date >= #{start} AND charge_date <= #{end}" +

+ 12 - 0
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/YiZhuLuRuDao.java

@@ -565,6 +565,18 @@ public interface YiZhuLuRuDao {
             " where act_order_no = #{decimal} ")
     void takeMedicineAfterDischargeStopOrder(BigDecimal decimal, String userCode, Date confirmDate);
 
+
+    @Update("update yz_act_order " +
+            "set confirm_time = #{confirmDate}, " +
+            "    signer       = #{userCode}, " +
+            "    status_time  = #{confirmDate}, " +
+            "    status_flag  = '2'," +
+            "    modifier     = #{userCode}," +
+            "    end_time = #{confirmDate}, " +
+            "    frequ_code = 'ONCE',enter_oper = #{userCode},physician = #{userCode}  " +
+            " where act_order_no = #{decimal} ")
+    void takeMedicineAfterDischargeStopOrderAndSuperiorDoctor(BigDecimal decimal, String userCode, Date confirmDate);
+
     @Delete("delete yz_act_record_kss where act_order_no =#{orderNo}; " +
             "delete zy_order_zk where act_order_no =#{orderNo};" +
             "delete op_record where inpatient_no = #{patNo} and act_order_no =#{orderNo};" +

+ 36 - 5
src/main/java/thyyxxk/webserver/service/PublicServer.java

@@ -842,11 +842,6 @@ public class PublicServer {
     }
 
 
-    public String getName(String groupNo) {
-        String name = dao.getGroupName(groupNo);
-        return name == null ? "未知" : name;
-    }
-
     @Async
     public void orderRecord(BigDecimal orderCode, String userCode) {
         if (orderCode == null) {
@@ -891,5 +886,41 @@ public class PublicServer {
         return ResultVoUtil.success(dao.getItemDrug(StringUtil.isContainChinese(code)));
     }
 
+    public Set<String> getUserDeptList(String code) {
+        Set<String> deptList;
+        UserInfo userInfo = redisLikeService.getUserInfoByCode(code);
+        if (userInfo.getDeptCode().startsWith("8")) {
+            deptList = dao.chaXunZhiZXinKeShi(userInfo.getDeptCode());
+            deptList.add(userInfo.getDeptCode());
+        } else {
+            deptList = getDept(true, userInfo);
+        }
+        return deptList;
+    }
+
+    public Set<String> getUserDeptList() {
+        return getUserDeptList(TokenUtil.getInstance().getTokenUserId());
+    }
+
+    public static <T> String listToSqlIn(Collection<T> collection) {
+        if (collection == null || collection.isEmpty()) {
+            return "('')";
+        }
+
+        Set<T> uniqueSet = new HashSet<>(collection);
+        StringBuilder sb = new StringBuilder("(");
+        for (T item : uniqueSet) {
+            if (item instanceof String) {
+                sb.append("'").append(item).append("',");
+            } else {
+                sb.append(item).append(",");
+            }
+        }
+        sb.deleteCharAt(sb.length() - 1);
+        sb.append(")");
+
+        return sb.toString();
+    }
+
 }
 

+ 1 - 4
src/main/java/thyyxxk/webserver/service/inpatient/PatientService.java

@@ -1,13 +1,11 @@
 package thyyxxk.webserver.service.inpatient;
 
-import cn.hutool.core.util.ArrayUtil;
-import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.convert.Convert;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
-import org.jetbrains.annotations.Contract;
 import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -36,7 +34,6 @@ import thyyxxk.webserver.utils.*;
 
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * @author dj

+ 10 - 2
src/main/java/thyyxxk/webserver/service/inpatient/XiangMuLuRuService.java

@@ -730,8 +730,16 @@ public class XiangMuLuRuService {
     }
 
     public ResultVo<List<DrugReturnForm>> getNoMedicineReturnOrderGenerated(String startDate, String endDate, String groupNo) {
-        UserInfo us = redisLikeService.getUserInfoByToken();
-        return ResultVoUtil.success(groupingValues(dao.selectNoMedicineReturnOrderGenerated(startDate, endDate, us.getDeptCode(), groupNo), null));
+        Set<String> deptList = publicServer.getUserDeptList();
+
+        return ResultVoUtil.success(
+                groupingValues(
+                        dao.selectNoMedicineReturnOrderGenerated(
+                                startDate,
+                                endDate,
+                                PublicServer.listToSqlIn(deptList),
+                                groupNo),
+                        null));
     }
 
     public List<DrugReturnForm> groupingValues(List<DrugReturnForm> list, Consumer<DrugReturnForm> consumer) {

+ 7 - 2
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/YiZhuLuRuServer.java

@@ -1254,8 +1254,13 @@ public class YiZhuLuRuServer {
             sendAMessageToTheNurse(patInfo, userCode, patInfo, "出院带药");
             Date now = new Date();
             ListUtil.batchList(patInfo.getList(), YiZhuLuRuDao.class, (mapper, item) -> {
-                // 出院带药 确认了直接停止医嘱
-                mapper.takeMedicineAfterDischargeStopOrder(item.getActOrderNo(), userCode, now);
+                if (StringUtil.notBlank(item.getSuperiorDoctor())) {
+                    mapper.takeMedicineAfterDischargeStopOrderAndSuperiorDoctor(item.getActOrderNo(), item.getSuperiorDoctor(), now);
+                } else {
+                    // 出院带药 确认了直接停止医嘱
+                    mapper.takeMedicineAfterDischargeStopOrder(item.getActOrderNo(), userCode, now);
+                }
+
             });
             return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
         } else {