Browse Source

优化医嘱

DESKTOP-0GD05B0\Administrator 2 năm trước cách đây
mục cha
commit
085a0c9659

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

@@ -52,7 +52,7 @@ public class YizhuLuRuController {
     }
 
     @PostMapping("/huoQuYiZhuShuJu")
-    public ResultVo<IPage<YzActOrder>> huoQuYiZhuShuJu(@RequestBody @Validated YiZhuFeiYongChaXunTiaoJian param) {
+    public ResultVo<List<YzActOrder>> huoQuYiZhuShuJu(@RequestBody @Validated YiZhuFeiYongChaXunTiaoJian param) {
         return server.huoQuYiZhuShuJu(param);
     }
 

+ 94 - 87
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/YiZhuLuRuDao.java

@@ -95,93 +95,100 @@ public interface YiZhuLuRuDao {
                                          @Param("times") Integer times);
 
 
-    @Select("<script>" +
-            "select rowIndex, " +
-            "       act_order_no," +
-            "       cast(cast(act_order_no as decimal) as varchar) id, " +
-            "       order_code, " +
-            "       order_name, " +
-            "       rtrim(frequ_code) frequ_code," +
-            "       frequ_code_name  = (select rtrim(comm) from yz_order_frequency where code = frequ_code), " +
-            "       instruction, " +
-            "       discription, " +
-            "       infant_flag, " +
-            "       order_time, " +
-            "       physician, " +
-            "       start_time, " +
-            "       drug_specification, " +
-            "       drug_quan, " +
-            "       drug_quan_name = (select name from yp_zd_unit with (NOLOCK) where code = mini_unit)," +
-            "       supply_code, " +
-            "       supply_code_name     = (select supply_name " +
-            "                               from yz_supply_type with (NOLOCK) " +
-            "                               where yz_supply_type.supply_code = temp.supply_code)," +
-            "       inpatient_no, " +
-            "       admiss_times, " +
-            "       drug_flag, " +
-            "       enter_oper, " +
-            "       enter_time, " +
-            "       mini_unit, " +
-            "       drug_weight, " +
-            "       drug_weight_unit, " +
-            "       status_flag, " +
-            "       status_time, " +
-            "       parent_no, " +
-            "       self_buy, " +
-            "       dose, " +
-            "       dose_unit, " +
-            "       dose_unit_name       = (select name from yp_zd_unit with (NOLOCK) where dose_unit = code)," +
-            "       drug_occ, " +
-            "       drug_volume, " +
-            "       drug_vol_unit, " +
-            "       exclu_back_time, " +
-            "       exclu_act_order_no, " +
-            "       pay_self, " +
-            "       serial, " +
-            "       group_no, " +
-            "       signer, " +
-            "       cl_code, " +
-            "       doctor_flag, " +
-            "       emergency_flag, " +
-            "       exclu_type='', " +
-            "       end_time_b=end_time, " +
-            "       exec_unit, " +
-            "       dept_code, " +
-            "       ward_code, " +
-            "       new_flag='0', " +
-            "       order_no_pattern=0, " +
-            "       suprice_flag='', " +
-            "       self_flag ='', " +
-            "       pack_size=0.0, " +
-            "       parent_no_c= -1000, " +
-            "       reg_flag, " +
-            "       parent_flag='', " +
-            "       yb_self_flag, " +
-            "       kf_flag, " +
-            "       refer_physician, " +
-            "       consult_physician, " +
-            "       physician_name = (select  top(1) rtrim(name) from a_employee_mi with (NOLOCK) where code = physician) /* 开这个医嘱的医生 */, " +
-            "       exec_unit_name = (select  top(1) rtrim(name) from zd_unit_code with (NOLOCK) where code = exec_unit), " +
-            "    /*管床医生*/ " +
-            "       refer_physician_name = (select rtrim(name) from a_employee_mi with (NOLOCK) where code = refer_physician), " +
-            "       group_no_name = (select rtrim(group_name) from yp_zd_group_name with (NOLOCK) where temp.group_no = group_no), " +
-            "    signer_name          = (select top (1) rtrim(name) from a_employee_mi with (NOLOCK) where code = signer) /*确认人*/, " +
-            "                           confirm_time /*确认时间*/, " +
-            "                           modifier, " +
-            "    modifier_name        = (select top (1) rtrim(name) from a_employee_mi with (NOLOCK) where code = modifier) /*停止人*/, " +
-            "                           end_time /*停止时间*/ " +
-            "from ( " +
-            "         select top ${pageSize} * " +
-            "         from (select row_number() over (order by act_order_no) rowIndex, * " +
-            "               from yz_act_order a with (NOLOCK) " +
-            "               ${ew.customSqlSegment} " +
-            "              ) page " +
-            "         where rowIndex > (${currentPage} - 1) * ${pageSize} " +
-            "     ) temp" +
-            "</script>")
-    List<YzActOrder> huoQuYiZhuShuJu(@Param("currentPage") long currentPage,
-                                     @Param("pageSize") long pageSize,
-                                     @Param(Constants.WRAPPER) Wrapper<?> wq);
+    @Select("select                     act_order_no,\n" +
+            "                           cast(cast(act_order_no as decimal) as varchar) id,\n" +
+            "                           order_code,\n" +
+            "                           order_name,\n" +
+            "                           rtrim(frequ_code)                              frequ_code,\n" +
+            "    frequ_code_name      = (select rtrim(comm)\n" +
+            "                            from yz_order_frequency\n" +
+            "                            where code = frequ_code),\n" +
+            "                           instruction,\n" +
+            "                           discription,\n" +
+            "                           infant_flag,\n" +
+            "                           order_time,\n" +
+            "                           physician,\n" +
+            "                           start_time,\n" +
+            "                           drug_specification,\n" +
+            "                           drug_quan,\n" +
+            "    drug_quan_name       = (select name\n" +
+            "                            from yp_zd_unit with (NOLOCK)\n" +
+            "                            where code = mini_unit),\n" +
+            "                           supply_code,\n" +
+            "    supply_code_name     = (select supply_name\n" +
+            "                            from yz_supply_type with (NOLOCK)\n" +
+            "                            where yz_supply_type.supply_code = yz_act_order.supply_code),\n" +
+            "                           inpatient_no,\n" +
+            "                           admiss_times,\n" +
+            "                           drug_flag,\n" +
+            "                           enter_oper,\n" +
+            "                           enter_time,\n" +
+            "                           mini_unit,\n" +
+            "                           drug_weight,\n" +
+            "                           drug_weight_unit,\n" +
+            "                           status_flag,\n" +
+            "                           status_time,\n" +
+            "                           parent_no,\n" +
+            "                           self_buy,\n" +
+            "                           dose,\n" +
+            "                           dose_unit,\n" +
+            "    dose_unit_name       = (select name\n" +
+            "                            from yp_zd_unit with (NOLOCK)\n" +
+            "                            where dose_unit = code),\n" +
+            "                           drug_occ,\n" +
+            "                           drug_volume,\n" +
+            "                           drug_vol_unit,\n" +
+            "                           exclu_back_time,\n" +
+            "                           exclu_act_order_no,\n" +
+            "                           pay_self,\n" +
+            "                           serial,\n" +
+            "                           group_no,\n" +
+            "                           signer,\n" +
+            "                           cl_code,\n" +
+            "                           doctor_flag,\n" +
+            "                           emergency_flag,\n" +
+            "    exclu_type='',\n" +
+            "    end_time_b=end_time,\n" +
+            "                           exec_unit,\n" +
+            "                           dept_code,\n" +
+            "                           ward_code,\n" +
+            "    new_flag='0',\n" +
+            "    order_no_pattern=0,\n" +
+            "    suprice_flag='',\n" +
+            "    self_flag            ='',\n" +
+            "    pack_size=0.0,\n" +
+            "    parent_no_c=           -1000,\n" +
+            "                           reg_flag,\n" +
+            "    parent_flag='',\n" +
+            "                           yb_self_flag,\n" +
+            "                           kf_flag,\n" +
+            "                           refer_physician,\n" +
+            "                           consult_physician,\n" +
+            "    physician_name       = (select top (1) rtrim(name)\n" +
+            "                            from a_employee_mi with (NOLOCK)\n" +
+            "                            where code = physician) /* 开这个医嘱的医生 */,\n" +
+            "    exec_unit_name       = (select top (1) rtrim(name)\n" +
+            "                            from zd_unit_code with (NOLOCK)\n" +
+            "                            where code = exec_unit),\n" +
+            "    /*管床医生*/\n" +
+            "    refer_physician_name = (select rtrim(name)\n" +
+            "                            from a_employee_mi with (NOLOCK)\n" +
+            "                            where code = refer_physician),\n" +
+            "    group_no_name        = (select rtrim(group_name)\n" +
+            "                            from yp_zd_group_name with (NOLOCK)\n" +
+            "                            where yz_act_order.group_no = group_no),\n" +
+            "    signer_name          = (select top (1) rtrim(name)\n" +
+            "                            from a_employee_mi with (NOLOCK)\n" +
+            "                            where code = signer) /*确认人*/,\n" +
+            "                           confirm_time /*确认时间*/,\n" +
+            "                           modifier,\n" +
+            "    modifier_name        = (select top (1) rtrim(name)\n" +
+            "                            from a_employee_mi with (NOLOCK)\n" +
+            "                            where code = modifier) /*停止人*/,\n" +
+            "                           end_time /*停止时间*/\n" +
+            "from yz_act_order ${ew.customSqlSegment}")
+    List<YzActOrder> huoQuYiZhuShuJu(@Param(Constants.WRAPPER) Wrapper<?> wq);
+    // ${ew.customSqlSegment}
 
 
     @Select("<script>" +

+ 1 - 1
src/main/java/thyyxxk/webserver/entity/zhuyuanyisheng/yizhuluru/YiZhuFeiYongChaXunTiaoJian.java

@@ -65,5 +65,5 @@ public class YiZhuFeiYongChaXunTiaoJian {
      * 2 当前
      * 3 当日
      */
-    private String displayRange;
+    private Integer displayRange;
 }

+ 14 - 10
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/YiZhuLuRuServer.java

@@ -99,7 +99,7 @@ public class YiZhuLuRuServer {
      * @param param 查询条件
      * @return 返回分页数据,同时做了树状图,这样会有一个问题,那就是开了套餐的数据查询不出来
      */
-    public ResultVo<IPage<YzActOrder>> huoQuYiZhuShuJu(YiZhuFeiYongChaXunTiaoJian param) {
+    public ResultVo<List<YzActOrder>> huoQuYiZhuShuJu(YiZhuFeiYongChaXunTiaoJian param) {
         QueryWrapper<?> qw = new QueryWrapper<>();
         qw.eq("inpatient_no", param.getPatNo()).eq("admiss_times", param.getTimes());
         if (StringUtil.notBlank(param.getOrderName())) {
@@ -111,6 +111,14 @@ public class YiZhuLuRuServer {
         if (StringUtil.notBlank(param.getActOrderNo())) {
             qw.eq("act_order_no", param.getActOrderNo());
         }
+        // 停止医嘱
+        if (param.getDisplayRange().equals(1)) {
+            qw.eq("status_flag", 5);
+        }
+        String currentDate = DateUtil.formatDatetime(new Date(), DateUtil.DATE);
+        if (param.getDisplayRange().equals(2) || param.getDisplayRange().equals(3)) {
+            qw.ge("order_time", currentDate + " 00:00:00").le("order_time", currentDate + " 23:59:59");
+        }
 
         switch (param.getFrequCode()) {
             case 1:
@@ -119,6 +127,8 @@ public class YiZhuLuRuServer {
             case 2:
                 qw.ne("frequ_code", "ONCE");
                 break;
+            default:
+                break;
         }
 
         List<Integer> zhaungTai = Arrays.asList(1, 2, 5);
@@ -136,14 +146,8 @@ public class YiZhuLuRuServer {
         } else if (param.getZhuangTai() == 9) {
             qw.ne("frequ_code", ONCE);
         }
-        IPage<YzActOrder> page = new Page<>();
-        if (param.getTotal() == 0) {
-            page.setTotal(dao.huoQuYiZhuShuJuTotal(qw));
-        } else {
-            page.setTotal(param.getTotal());
-        }
 
-        List<YzActOrder> yiZhuList = dao.huoQuYiZhuShuJu(param.getCurrentPage(), param.getPageSize(), qw);
+        List<YzActOrder> yiZhuList = dao.huoQuYiZhuShuJu(qw);
         // 还有那些没有被匹配的子级医嘱
         Map<BigDecimal, YzActOrder> wuFuJiYiZhu = yiZhuList.stream().collect(Collectors.toMap(YzActOrder::getActOrderNo, a -> a, (k1, k2) -> k1));
 
@@ -189,13 +193,13 @@ public class YiZhuLuRuServer {
         }
         // 删除前后空格
         EntityStringTrim.beanAttributeValueTrimList(tree);
-        page.setRecords(tree);
+
         for (YzActOrder zy : tree) {
             if (ListUtil.notBlank(zy.getChildren())) {
                 zy.getChildren().get(zy.getChildren().size() - 1).setOrderGroup("└");
             }
         }
-        return ResultVoUtil.success(page);
+        return ResultVoUtil.success(tree);
     }
 
     /**