Forráskód Böngészése

优化开医嘱的速度

xiaochan 2 éve
szülő
commit
428fe945ae

+ 0 - 4
src/main/java/thyyxxk/webserver/controller/zhuyuanyizheng/YizhuLuRuController.java

@@ -255,9 +255,5 @@ public class YizhuLuRuController {
         return server.updateOrderInstruction(orderNo, str);
     }
 
-    @PostMapping("/orderGroup")
-    public ResultVo<List<XinZhenYzActOrder>> getOrderList(@RequestBody List<XinZhenYzActOrder> list) {
-        return ResultVoUtil.success(YiZhuLuRuServer.getOrderList(list));
-    }
 
 }

+ 23 - 13
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/YiZhuLuRuServer.java

@@ -94,17 +94,16 @@ public class YiZhuLuRuServer {
     }
 
     /**
-     * 获取医嘱的数据
-     * 可以根据,医嘱时间区间,执行频率,医嘱名
+     * 获取患者的医嘱
      *
-     * @param param 查询条件
-     * @return 返回分页数据,同时做了树状图,这样会有一个问题,那就是开了套餐的数据查询不出来
+     * @param param 查询条件 住院号,住院时间
+     * @return 返回医嘱数据
      */
     public ResultVo<List<XinZhenYzActOrder>> huoQuYiZhuShuJu(YiZhuFeiYongChaXunTiaoJian param) {
         QueryWrapper<?> qw = new QueryWrapper<>();
         qw.eq("a.inpatient_no", param.getPatNo())
                 .eq("a.admiss_times", param.getTimes())
-                .orderByAsc("a.order_time");
+                .orderByAsc("a.act_order_no");
 
         List<XinZhenYzActOrder> yiZhuList = dao.selectOrderNo(qw);
 
@@ -450,10 +449,19 @@ public class YiZhuLuRuServer {
         qw.eq("a.admiss_times", param.getAdmissTimes());
         qw.eq("a.status_flag", "1");
 
-        qw.and(wrapper -> wrapper.eq("a.act_order_no", param.getActOrderNo())
-                .or()
-                .eq("a.parent_no", param.getActOrderNo())
-        );
+        if (data.getParentNo() != null) {
+            qw.and(
+                    wrapper -> wrapper.eq("a.act_order_no", data.getParentNo())
+                            .or()
+                            .eq("a.parent_no", data.getParentNo())
+            );
+        } else {
+            qw.and(wrapper -> wrapper.eq("a.act_order_no", param.getActOrderNo())
+                    .or()
+                    .eq("a.parent_no", param.getActOrderNo())
+            );
+        }
+        qw.orderByAsc("a.act_order_no");
 
         Map<String, Object> successMap = new HashMap<>();
         successMap.put("code", 200);
@@ -1350,11 +1358,12 @@ public class YiZhuLuRuServer {
         orderList.add(fatherOrder.getActOrderNo());
         // 查询子医嘱
         QueryWrapper<?> childQw = new QueryWrapper<>();
+        // 根据父医嘱的住院号和住院次数查询医嘱
+        childQw.eq("a.parent_no", fatherOrder.getActOrderNo());
+        childQw.eq("a.inpatient_no", fatherOrder.getInpatientNo());
+        childQw.eq("a.admiss_times", fatherOrder.getAdmissTimes());
 
-        childQw.eq("a.parent_no", copyOrder.getActOrderNo());
-        childQw.eq("a.inpatient_no", copyOrder.getInpatientNo());
-        childQw.eq("a.admiss_times", copyOrder.getAdmissTimes());
-
+        // 保存的子医嘱
         List<XinZhenYzActOrder> childOrderList = dao.selectOrderNo(childQw);
 
         // 存放医嘱容器
@@ -1385,6 +1394,7 @@ public class YiZhuLuRuServer {
     private JSONObject getNewOrderData(List<BigDecimal> orderList) {
         QueryWrapper<?> newList = new QueryWrapper<>();
         newList.in("a.act_order_no", orderList);
+        newList.orderByAsc("a.act_order_no");
         List<XinZhenYzActOrder> newOrderList = getOrderList(dao.selectOrderNo(newList));
         JSONObject js = new JSONObject();
         js.put("list", orderList);