Browse Source

优化医嘱查询慢的问题

xiaochan 3 months ago
parent
commit
ec36152cf5

+ 134 - 2
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/YiZhuLuRuDao.java

@@ -21,6 +21,7 @@ import thyyxxk.webserver.entity.zhuyuanyisheng.vo.doctorAuth.DoctorAuthRest;
 import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.*;
 
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Set;
@@ -112,6 +113,15 @@ public interface YiZhuLuRuDao {
                                 @Param("admissTimes") Integer admissTimes,
                                 @Param("ledgerSn") Integer ledgerSn);
 
+    default List<XinZhenYzActOrder> selectOrderNo(@Param(Constants.WRAPPER) Wrapper<?> wq) {
+        List<XinZhenYzActOrder> xinZhenYzActOrders = this.selectOrderNoByOld(wq);
+        List<XinZhenYzActOrder> xinZhenYzActOrders1 = this.selectOrderNoByNew(wq);
+        List<XinZhenYzActOrder> result = new ArrayList<>();
+        result.addAll(xinZhenYzActOrders1);
+        result.addAll(xinZhenYzActOrders);
+        return result;
+    }
+
 
     @Select("select                     cast(a.act_order_no as decimal) as act_order_no, " +
             "                           cast(cast(a.act_order_no as decimal) as varchar) id, " +
@@ -229,8 +239,130 @@ public interface YiZhuLuRuDao {
             "from view_xc_all_yz a  with (NOLOCK) left join " +
             "zy_order_zk b with (NOLOCK) on (a.act_order_no = b.act_order_no) left join " +
             "yz_act_record_kss kss on (a.act_order_no = kss.act_order_no) " +
-            " ${ew.customSqlSegment} ")
-    List<XinZhenYzActOrder> selectOrderNo(@Param(Constants.WRAPPER) Wrapper<?> wq);
+            "where 1=1  and status_flag = '1' and  ${ew.sqlSegment} ")
+    List<XinZhenYzActOrder> selectOrderNoByNew(@Param(Constants.WRAPPER) Wrapper<?> wq);
+
+
+    @Select("select                     cast(a.act_order_no as decimal)               as act_order_no,\n" +
+            "                           cast(cast(a.act_order_no as decimal) as varchar) id,\n" +
+            "    newOrderFlag         = (select count(*)\n" +
+            "                            from new_act_order_recording\n" +
+            "                            where new_act_order_recording.act_order_no = a.act_order_no),\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" +
+            "    mini_unit_name       = (select name\n" +
+            "                            from yp_zd_unit with (NOLOCK)\n" +
+            "                            where code = mini_unit),\n" +
+            "                           rtrim(supply_code)                               supply_code,\n" +
+            "    supply_code_name     = (select rtrim(supply_name)\n" +
+            "                            from yz_supply_type with (NOLOCK)\n" +
+            "                            where yz_supply_type.supply_code = a.supply_code),\n" +
+            "                           a.inpatient_no,\n" +
+            "                           a.admiss_times,\n" +
+            "                           drug_flag,\n" +
+            "                           enter_oper,\n" +
+            "    enter_oper_name      = (select top (1) rtrim(name)\n" +
+            "                            from a_employee_mi with (NOLOCK)\n" +
+            "                            where code = enter_oper) /* 录入人 */,\n" +
+            "                           enter_time,\n" +
+            "                           mini_unit,\n" +
+            "                           drug_weight,\n" +
+            "                           drug_weight_unit,\n" +
+            "                           rtrim(status_flag)                               status_flag,\n" +
+            "                           status_time,\n" +
+            "                           cast(a.parent_no as decimal)                  as parent_no,\n" +
+            "                           cast(cast(a.parent_no as decimal) as varchar) as parent_no_str,\n" +
+            "    parent_no_name       = (select kfc.order_name\n" +
+            "                            from yz_act_order kfc\n" +
+            "                            where kfc.act_order_no = a.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" +
+            "    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" +
+            "                           rtrim(yb_self_flag)                           as 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,\n" +
+            "    exec_unit_name       = (select top (1) rtrim(name)\n" +
+            "                            from zd_unit_code with (NOLOCK)\n" +
+            "                            where code = exec_unit),\n" +
+            "                           a.dept_code,\n" +
+            "    dept_name            = (select top (1) rtrim(name)\n" +
+            "                            from zd_unit_code with (NOLOCK)\n" +
+            "                            where code = dept_code),\n" +
+            "                           a.ward_code,\n" +
+            "    ward_name            = (select top (1) rtrim(name)\n" +
+            "                            from zd_unit_code with (NOLOCK)\n" +
+            "                            where code = a.ward_code),\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 a.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" +
+            "    executer1            = (select name\n" +
+            "                            from a_employee_mi\n" +
+            "                            where code = executer1),\n" +
+            "    executer2=             (select name\n" +
+            "                            from a_employee_mi\n" +
+            "                            where code = executer2),\n" +
+            "    superiorDoctor       = (select rtrim(authorized_doctor)\n" +
+            "                            from new_act_order_recording na\n" +
+            "                            where na.act_order_no = a.act_order_no)\n" +
+            "from yz_act_order a with (NOLOCK)\n" +
+            "where 1=1  and status_flag <> '1' and ${ew.sqlSegment} ;")
+    List<XinZhenYzActOrder> selectOrderNoByOld(@Param(Constants.WRAPPER) Wrapper<?> wq);
+
 
     @Select("select act_order_no, " +
             "rtrim(status_flag) status_flag," +

+ 1 - 1
src/main/resources/application.yml

@@ -1,3 +1,3 @@
 spring:
   profiles:
-    active: prod
+    active: dev