浏览代码

新增药品查询和项目查询。

xiaochan 4 年之前
父节点
当前提交
e157314f8e

+ 3 - 3
src/main/java/thyyxxk/webserver/controller/querydata/ConsumablesStatisticsController.java

@@ -1,20 +1,19 @@
 package thyyxxk.webserver.controller.querydata;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
 import thyyxxk.webserver.entity.querydata.ConsumablesStatistics;
-import thyyxxk.webserver.entity.querydata.CovidVaccinateAppointment;
 import thyyxxk.webserver.service.querydata.ConsumablesStatisticsService;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
- * 描述
+ * 描述查询
  * </p>
  *
  * @author xc
@@ -25,6 +24,7 @@ import java.util.Map;
 public class ConsumablesStatisticsController {
     private  final ConsumablesStatisticsService service ;
 
+    @Autowired
     public ConsumablesStatisticsController(ConsumablesStatisticsService service) {
         this.service = service;
     }

+ 2 - 0
src/main/java/thyyxxk/webserver/controller/querydata/CovidVaccinateAppointmentController.java

@@ -1,6 +1,7 @@
 package thyyxxk.webserver.controller.querydata;
 
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.entity.ResultVo;
@@ -26,6 +27,7 @@ import java.util.Map;
 public class CovidVaccinateAppointmentController {
     private final CovidVaccinateAppointmentService server;
 
+    @Autowired
     public CovidVaccinateAppointmentController(CovidVaccinateAppointmentService server) {
         this.server = server;
     }

+ 46 - 0
src/main/java/thyyxxk/webserver/controller/querydata/QueryDrugsAndProjectsController.java

@@ -0,0 +1,46 @@
+package thyyxxk.webserver.controller.querydata;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
+import thyyxxk.webserver.entity.querydata.QueryDrugsAndProjects;
+import thyyxxk.webserver.service.querydata.QueryDrugsAndProjectsService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 描述 查询项目 和 药品收费
+ * </p>
+ *
+ * @author xc
+ * @date 2021-04-16 16:00
+ */
+@RestController
+@RequestMapping("/queryDrugsAndProjects")
+public class QueryDrugsAndProjectsController {
+    private final QueryDrugsAndProjectsService service;
+
+    @Autowired
+    public QueryDrugsAndProjectsController(QueryDrugsAndProjectsService service) {
+        this.service = service;
+    }
+
+
+    @GetMapping("/getSelect")
+    public ResultVo<Map<String, List<GetDropdownBox>>> getSelect(){
+       return service.getSelect();
+    }
+
+    @PostMapping("/queryProjects")
+    public ResultVo<List<QueryDrugsAndProjects>> queryProjects(@RequestBody QueryDrugsAndProjects param){
+        return service.queryProjects(param);
+    }
+
+    @PostMapping("/queryDrugs")
+    public ResultVo<List<QueryDrugsAndProjects>> queryDrugs(@RequestBody QueryDrugsAndProjects param){
+        return service.queryDrugs(param);
+    }
+}

+ 6 - 3
src/main/java/thyyxxk/webserver/dao/his/datamodify/YzTemperatureMapper.java

@@ -41,7 +41,7 @@ public interface YzTemperatureMapper {
      * 获取病区
      * @return 科室 code 和 名字
      * */
-    @Select("select code,name from zy_ward_code")
+    @Select("select code,rtrim(name) name from zy_ward_code")
     List<GetDropdownBox> getWard();
 
     /**
@@ -54,8 +54,9 @@ public interface YzTemperatureMapper {
      * */
     @Update("<script>" +
             "update yz_temperature set " +
+            "modify_userid=#{modifyUserid},modify_time=#{modifyTime}  " +
             "<if test=\"temperature1!=null\">" +
-            "temperature_1=#{temperature1}" +
+            ",temperature_1=#{temperature1}" +
             "</if>" +
             "<if test=\"pulse1!=null\">" +
             ",pulse_1=#{pulse1}" +
@@ -87,13 +88,15 @@ public interface YzTemperatureMapper {
             "<if test=\"ward!=null\">" +
             ",ward=#{ward}" +
             "</if>" +
-            ",modify_userid=#{modifyUserid},modify_time=#{modifyTime} " +
             "where " +
             "inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes} and scd_flag='0' " +
             "and rec_date=#{toStringRecDate} and rec_time=#{toStringRecTime} and detail_no=#{detailNo}" +
             "</script>")
     Boolean teperatureHead(YzTemperature param);
 
+    /**
+     * 更新 剩下的地方 主要是更新 病室和 修改人 修改时间
+     * */
     @Update("<script>" +
             "update yz_temperature set modify_userid=#{modifyUserid},modify_time=#{modifyTime}" +
             "<if test=\"ward!=null\">" +

+ 133 - 0
src/main/java/thyyxxk/webserver/dao/his/querydata/QueryDrugsAndProjectsMapper.java

@@ -0,0 +1,133 @@
+package thyyxxk.webserver.dao.his.querydata;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
+import thyyxxk.webserver.entity.querydata.QueryDrugsAndProjects;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 描述
+ * </p>
+ *
+ * @author xc
+ * @date 2021-04-16 16:01
+ */
+@Mapper
+public interface QueryDrugsAndProjectsMapper {
+
+    /**
+     * 获取科室
+     * @return 返回code和 name
+     * */
+    @Select("select code,rtrim(name)name from zy_ward_code")
+    List<GetDropdownBox> getWard();
+
+    /**
+     * 获取收费类型
+     * @return 返回code 和 name
+     * */
+    @Select("select code,rtrim(name)name from zd_charge_class")
+    List<GetDropdownBox> getChergeClass();
+
+    /**
+     * 查询收费项目
+     * @param param 传入查询条件 时间范围 科室 费用类型 收费编码
+     * @return 返回
+     * */
+    @Select("<script>" +
+            "select a.charge_code_mx chargeCode,b.name name,sum(a.charge_amount) number,sum(charge_fee) amountOfMoney,classCode=c.name,source='住院'\n" +
+            "from zy_detail_charge a\n" +
+            "left join zd_charge_item b on a.charge_code_mx=b.code\n" +
+            "left join zd_charge_class c on b.class_code=c.code\n" +
+            "where " +
+            "1=1 " +
+            "<if test=\"startTime!=null and startTime!=''\">" +
+            "and charge_date&gt;=#{startTime} and charge_date&lt;#{endTime} " +
+            "</if>" +
+            "<if test=\"classCode!=null and classCode!=''\">" +
+            "and b.class_code=#{classCode} " +
+            "</if>" +
+            "<if test=\"ward!=null and ward!=''\">" +
+            "and a.exec_unit=#{ward} " +
+            "</if>" +
+            "<if test=\"chargeCode!=null and chargeCode!=''\">" +
+            "and charge_code_mx=#{chargeCode} " +
+            "</if>" +
+            "GROUP BY a.charge_code_mx,b.name,c.name\n" +
+            "union all\n" +
+            "select a.charge_item_code chargeCode,b.name name,sum(a.quantity*drug_win) amountOfMoney,sum(a.quantity*drug_win*unit_price) amountOfMoney,\n" +
+            "classCode=c.name,source='住院'\n" +
+            "from mz_charge_detail_b a left join zd_charge_item b on a.charge_item_code=b.code\n" +
+            "left join zd_charge_class c on b.class_code=c.code\n" +
+            "where " +
+            "1=1 " +
+            "<if test=\"startTime!=null and startTime!=''\">" +
+            "and a.charge_date&gt;=#{startTime} and a.charge_date&lt;#{endTime} " +
+            "</if>" +
+            "<if test=\"classCode!=null and classCode!=''\">" +
+            "and b.class_code=#{classCode} " +
+            "</if>" +
+            "<if test=\"ward!=null and ward!=''\">" +
+            "and a.exec_dept=#{ward} " +
+            "</if>" +
+            "<if test=\"chargeCode!=null and chargeCode!=''\">" +
+            "and a.charge_item_code=#{chargeCode} " +
+            "</if>" +
+            "and a.pay_mark='0'\n" +
+            "group by a.charge_item_code,a.serial,b.name,c.name" +
+            "</script>")
+    List<QueryDrugsAndProjects> queryProjects(QueryDrugsAndProjects param);
+
+
+    @Select("<script>" +
+            "select a.charge_code_mx chargeCode," +
+            "case a.serial when '01' then '药品(小)' when '99' then '药品(大)' end packageSpecification," +
+            "b.name name,sum(a.charge_amount) number,sum(charge_fee) amountOfMoney,source='住院',classCode=c.name\n" +
+            "from zy_detail_charge a,yp_zd_dict b,yp_zd_drug_kind c\n" +
+            "where " +
+            "1=1 " +
+            "<if test=\"startTime!=null and startTime!=''\">" +
+            "and charge_date&gt;=#{startTime} and charge_date&lt;#{endTime} " +
+            "</if>" +
+            "<if test=\"kssFlag!=null\">" +
+            "and b.kss_flag=#{kssFlag} " +
+            "</if>" +
+            "<if test=\"categoriesFlag!=null\">" +
+            "and b.categories_flag=#{categoriesFlag} " +
+            "</if>" +
+            " and a.charge_code_mx=b.code and a.serial=b.serial " +
+            " and b.drug_kind=c.code " +
+            "<if test=\"drugCode!=null and drugCode!=''\">" +
+            "and b.code=#{drugCode}  " +
+            "</if>" +
+            "GROUP BY a.charge_code_mx,a.serial,b.name,c.name\n" +
+            "union all\n" +
+            "select a.charge_item_code chargeCode," +
+            "case a.serial when '01' then '药品(小)' when '99' then '药品(大)' end packageSpecification," +
+            "b.name name,sum(a.quantity*drug_win) number,sum(a.quantity*drug_win*unit_price) amountOfMoney,source='门诊',classCode=c.name\n" +
+            "from mz_charge_detail_b a,yp_zd_dict b,yp_zd_drug_kind c\n" +
+            "where " +
+            "1=1 " +
+            "<if test=\"startTime!='' and startTime!=null\">" +
+            "and a.charge_date&gt;=#{startTime} and a.charge_date&lt;#{endTime} " +
+            "</if>" +
+            "<if test=\"kssFlag!=null\">" +
+            "and b.kss_flag=#{kssFlag}  " +
+            "</if>" +
+            "<if test=\"categoriesFlag!=null\">" +
+            "and b.categories_flag=#{categoriesFlag} " +
+            "</if>" +
+            "and a.charge_item_code=b.code\n" +
+            "and a.serial=b.serial\n" +
+            "and a.pay_mark='0'\n" +
+            "and b.drug_kind=c.code\n" +
+            "<if test=\"drugCode!=null and drugCode!='' \">" +
+            "and b.code=#{drugCode} " +
+            "</if>" +
+            "group by a.charge_item_code,a.serial,b.name,c.name" +
+            "</script>")
+    List<QueryDrugsAndProjects> queryDrugs(QueryDrugsAndProjects param);
+}

+ 74 - 0
src/main/java/thyyxxk/webserver/entity/querydata/QueryDrugsAndProjects.java

@@ -0,0 +1,74 @@
+package thyyxxk.webserver.entity.querydata;
+
+import lombok.Data;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 描述
+ * </p>
+ *
+ * @author xc
+ * @date 2021-04-16 15:56
+ */
+@Data
+public class QueryDrugsAndProjects {
+    /**
+     * 项目的名字
+     * */
+    private String name;
+
+    /**
+     *数量
+     * */
+    private float number;
+
+
+    /**
+     *金额
+     * */
+    private float amountOfMoney;
+
+    /**
+     *来源
+     * */
+    private String source;
+
+
+    /**
+     * 搜索的条件 下面都是
+     * */
+    private String startTime;
+    private String endTime;
+    private String ward;
+    /**
+     * 院内编码
+     * */
+    private String chargeCode;
+    /**
+     * 费用类别
+     * */
+    private String classCode;
+
+    /**
+     * 是否为抗生素
+     * */
+    private Integer kssFlag;
+
+    /**
+     *药品大类 0 口服 1 大输液 2 针剂 3 草药饮片
+     * */
+    private Integer categoriesFlag;
+
+    /**
+     * 药要品编码
+     * */
+    private String drugCode;
+
+    /**
+     * 包装规格
+     * */
+    private String packageSpecification;
+
+
+}

+ 1 - 1
src/main/java/thyyxxk/webserver/service/datamodify/YzActOrderModifyService.java

@@ -84,7 +84,7 @@ public class YzActOrderModifyService {
         List<String> admins = dao.selectAdmins();
         JSONObject obj = new JSONObject();
         obj.put("name", "systemNotification");
-        obj.put("message", String.format("用户【%s】提交了医嘱修改申请,请前往审核页面查看。刷新一下", TokenUtil.getTokenUserId()));
+        obj.put("message", String.format("用户【%s】提交了医嘱修改申请,请前往审核页面查看。", TokenUtil.getTokenUserId()));
         String message = obj.toJSONString();
         admins.forEach(code -> WebSocketServer.sendMessageByUserCode(code,message));
         return ResultVoUtil.success();

+ 13 - 16
src/main/java/thyyxxk/webserver/service/datamodify/YzActOrderModifyVerifyService.java

@@ -1,17 +1,13 @@
 package thyyxxk.webserver.service.datamodify;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
-import sun.rmi.runtime.Log;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.dao.his.datamodify.YzActOrderModifyVerifyDao;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.TYzActOrderModify;
-import thyyxxk.webserver.entity.datamodify.YzActOrder;
 import thyyxxk.webserver.utils.ResultVoUtil;
 import thyyxxk.webserver.utils.StringUtil;
 import thyyxxk.webserver.utils.TokenUtil;
@@ -22,7 +18,7 @@ import java.util.List;
 
 /**
  * <p>
- * 描述
+ * 描述 医嘱修改审核
  * </p>
  *
  * @author xc
@@ -95,10 +91,12 @@ public class YzActOrderModifyVerifyService {
     }
 
     /**
-     * 审核状态的判断,为2就把 申请的修改数据 通过 并改变申请表中的状态
-     * 为 9 就不通过 只要改变申请表中的状态就可以了
+     * 审核状态的判断:
+     * 2 就把 申请的修改数据 通过 并改变申请表中的状态
+     * 3 就不通过 只要改变申请表中的状态就可以了
+     * 4 回撤把记录了老的数据
      * 为 任意数 就直接把 最近一次的 修改 还原就可以了
-     * @param auditFlag 状态 2:通过 9:不通过  任意数为 回撤
+     * @param auditFlag 状态 2:通过 9:不通过  4:回撤
      * @param actOrderNo  医嘱号
      * @param auditRemark  审核的信息
      * @return 返回
@@ -107,16 +105,15 @@ public class YzActOrderModifyVerifyService {
         //根据医嘱号 在申请表中 获取数据
         TYzActOrderModify pojo = yzActOrderQuery(actOrderNo);
         if (auditFlag==YZ_SHENHE_TONGGUO){
-            JSONObject obj = new JSONObject();
-            obj.put("name","systemNotification");
-            obj.put("message",String.format("用户【%s】,你的审核已通过。",pojo.getProposerName()));
-            String message = obj.toJSONString();
-            WebSocketServer.sendMessageByUserCode(pojo.getProposer(),message);
-            log.info("医嘱修改审核审核通过");
             //改变医嘱 数据
             if (dao.yzActOrderModify(pojo)){
                 //改变状态
                 if (dao.shenHeZhuangTaiGaiBian(auditFlag,TokenUtil.getTokenUserId(),actOrderNo,auditRemark)){
+                    JSONObject obj = new JSONObject();
+                    obj.put("name","systemNotification");
+                    obj.put("message",String.format("用户【%s】,您的医嘱修改审核已通过。",pojo.getProposerName()));
+                    String message = obj.toJSONString();
+                    WebSocketServer.sendMessageByUserCode(pojo.getProposerName(),message);
                     log.info("医嘱修改成功原数据===>审核人:{},开始时间:{},结束时间:{}",
                             TokenUtil.getTokenUserId(),pojo.getStartTime(),pojo.getEndTime());
                     log.info("医嘱修改成功修改后===>审核人:{},开始时间:{},结束时间:{}",
@@ -127,7 +124,7 @@ public class YzActOrderModifyVerifyService {
             dao.shenHeZhuangTaiGaiBian(auditFlag,TokenUtil.getTokenUserId(),actOrderNo,auditRemark);
             JSONObject obj = new JSONObject();
             obj.put("name","systemNotification");
-            obj.put("message",String.format("用户【%s】,你的审核已驳回。",pojo.getProposerName()));
+            obj.put("message",String.format("用户【%s】,你的医嘱修改审核已驳回。",pojo.getProposerName()));
             String message = obj.toJSONString();
             WebSocketServer.sendMessageByUserCode(pojo.getProposer(),message);
             log.info("医嘱修改审核,操作:{驳回},操作员:{}",TokenUtil.getTokenUserId());
@@ -140,7 +137,7 @@ public class YzActOrderModifyVerifyService {
                 if (dao.shenHeZhuangTaiGaiBian(auditFlag,TokenUtil.getTokenUserId(),actOrderNo,auditRemark)){
                     JSONObject obj = new JSONObject();
                     obj.put("name","systemNotification");
-                    obj.put("message",String.format("用户【%s】,数据回撤,请重新提交申请。",pojo.getProposerName()));
+                    obj.put("message",String.format("用户【%s】,您的医嘱修改审核已回撤,请重新提交。",pojo.getProposerName()));
                     String message = obj.toJSONString();
                     WebSocketServer.sendMessageByUserCode(pojo.getProposer(),message);
                     log.info("医嘱修改审核,操作:{数据回撤成功},操作人员:{}",TokenUtil.getTokenUserId());

+ 11 - 6
src/main/java/thyyxxk/webserver/service/datamodify/YzTemperatureService.java

@@ -1,9 +1,7 @@
 package thyyxxk.webserver.service.datamodify;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
-import jdk.nashorn.internal.scripts.JO;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import thyyxxk.webserver.config.exception.ExceptionEnum;
 import thyyxxk.webserver.dao.his.datamodify.YzTemperatureMapper;
@@ -25,7 +23,6 @@ import java.util.*;
  */
 @Service
 @Slf4j
-@DS("dev")
 public class YzTemperatureService {
 
     private final YzTemperatureMapper dao;
@@ -60,7 +57,7 @@ public class YzTemperatureService {
                 if (i==0){
                     pojo = list.get(0);
                     //坑爹的1900年的 日期 传到前端会少几分钟 需要转成 string 在把 1900替换成2000
-                   pojo.setRecTime(DateUtil.getDatetimeAfterCentury(pojo.getRecTime()));
+                    pojo.setRecTime(DateUtil.getDatetimeAfterCentury(pojo.getRecTime()));
                 }
                 //拼接字符串 把otherInfo 拼起来
                 splicingOtherInfo.append(list.get(i).getOtherInfo());
@@ -71,6 +68,16 @@ public class YzTemperatureService {
         return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
     }
 
+    /**
+     * 更新重要的数据
+     * @param param 根据 住院号 住院次数 日期 时间
+     *              现在能修改的字段有 体温:temperature1 脉搏:pulse1 呼吸:breathe1
+     *              血压am: pressure1Am, 血压pm:pressure1Pm  spo2:spo2 意识:mind 皮肤:skin
+     *              管道名称:tubesName 管道状态:tubesStatus  病区:ward
+     *              这里需要分开来 更新 重要的信息 都在第一条
+     *              下面的都只是为了保存病室 和 修改人 修改时间
+     * @return 返回状态
+     * */
     public ResultVo<Boolean> modify(YzTemperature param)  {
         param.setToStringRecDate(DateUtil.formatDatetime(param.getRecDate(),GET_DATE));
         param.setToStringRecTime(DateUtil.formatDatetime(param.getRecTime(),GET_TIME));
@@ -89,11 +96,9 @@ public class YzTemperatureService {
                 if (!dao.teperatureHead(param)){
                     return ResultVoUtil.fail(ExceptionEnum.SLIGHTLY_ERROR);
                 }
-                log.info("第一次执行头部数据的添加:{}",param.getDetailNo());
             }else {
                 param.setDetailNo(list.get(i).getDetailNo());
                 dao.teperatureBody(param);
-                log.info("执行尾部数据添加:{}",param.getDetailNo());
             }
         }
 

+ 76 - 0
src/main/java/thyyxxk/webserver/service/querydata/QueryDrugsAndProjectsService.java

@@ -0,0 +1,76 @@
+package thyyxxk.webserver.service.querydata;
+
+import com.alibaba.fastjson.JSON;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
+import sun.rmi.runtime.Log;
+import thyyxxk.webserver.config.exception.ExceptionEnum;
+import thyyxxk.webserver.constants.Capacity;
+import thyyxxk.webserver.dao.his.querydata.QueryDrugsAndProjectsMapper;
+import thyyxxk.webserver.entity.ResultVo;
+import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
+import thyyxxk.webserver.entity.querydata.QueryDrugsAndProjects;
+import thyyxxk.webserver.utils.ResultVoUtil;
+import thyyxxk.webserver.utils.TokenUtil;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 描述
+ * </p>
+ *
+ * @author xc
+ * @date 2021-04-16 16:02
+ */
+@Service
+@Slf4j
+public class QueryDrugsAndProjectsService {
+
+    private final QueryDrugsAndProjectsMapper dao;
+
+    @Autowired
+    public QueryDrugsAndProjectsService(QueryDrugsAndProjectsMapper dao) {
+        this.dao = dao;
+    }
+
+    /**
+     * 获取查询 收费项目页面下拉框的值
+     * @return 返回一个map集合
+     * */
+    public ResultVo<Map<String, List<GetDropdownBox>>> getSelect(){
+        Map<String,List<GetDropdownBox>> map = new HashMap<>(Capacity.TWO);
+        map.put("ward",dao.getWard());
+        map.put("classCode",dao.getChergeClass());
+        return ResultVoUtil.success(map);
+    }
+
+    /**
+     * 查询收费项目 根据条件动态查询 但是必须带时间
+     * @param param 查询条件 时间 收费编码 费用类型 科室
+     * */
+    public ResultVo<List<QueryDrugsAndProjects>> queryProjects(QueryDrugsAndProjects param){
+        List<QueryDrugsAndProjects> list = dao.queryProjects(param);
+        log.info("查询项目收费:{},操作人:{},返回的数据:{}", JSON.toJSONString(param), TokenUtil.getTokenUserId(),list.size());
+        if (list.size()>0){
+            return ResultVoUtil.success(list);
+        }
+        return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
+    }
+
+    public ResultVo<List<QueryDrugsAndProjects>> queryDrugs(QueryDrugsAndProjects param){
+
+        List<QueryDrugsAndProjects> list = dao.queryDrugs(param);
+        if (list.size()>0){
+            return ResultVoUtil.success(list);
+        }
+        return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
+    }
+}