Browse Source

完成不良事件处理。

lighter 4 years ago
parent
commit
8ee679fa03

+ 2 - 3
src/main/java/thyyxxk/webserver/controller/adverseevent/AdverseEventController.java

@@ -36,9 +36,8 @@ public class AdverseEventController {
     }
 
     @GetMapping({"/getReportsForDept"})
-    public ResultVo<List<ReportIndex>> getReportsForDept(@RequestParam("flag") Integer flag,
-                                      @RequestParam("deptCode") String deptCode) {
-        return service.getReportsForDept(flag, deptCode);
+    public ResultVo<List<ReportIndex>> getReportsForDept() {
+        return service.getReportsForDept();
     }
 
     @PostMapping({"/updateDeptHandled"})

+ 17 - 1
src/main/java/thyyxxk/webserver/dao_his/adverseevent/AdverseEventDao.java

@@ -4,6 +4,7 @@ import org.apache.ibatis.annotations.*;
 import thyyxxk.webserver.pojo.adverseevent.HandlerInfo;
 import thyyxxk.webserver.pojo.adverseevent.ReportDetail;
 import thyyxxk.webserver.pojo.adverseevent.ReportIndex;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
 
 import java.util.List;
 
@@ -50,6 +51,18 @@ public interface AdverseEventDao {
     @Select("select * from adverse_event where p_id=#{pid}")
     ReportDetail getReportDetail(@Param("pid") Integer pid);
 
+    @Select("select dept_id from adverse_dept where leader_code=#{code}")
+    List<String> getLeaderDepts(@Param("code") String code);
+
+    @Select("<script>" +
+            "select p_id,category,occur_datetime,submit_datetime,user_name,accepted,handled " +
+            "from adverse_event where dept_code in " +
+            "<foreach collection='deptCodes' item='deptCode' separator=',' open='(' close=')'>" +
+            "#{deptCode}" +
+            "</foreach> " +
+            "</script>")
+    List<ReportIndex> getReportsForDeptLeader(@Param("deptCodes") List<String> deptCodes);
+
     @Select("<script>" +
             "select p_id,category,occur_datetime,submit_datetime,user_name " +
             "from adverse_event where dept_code in " +
@@ -82,12 +95,15 @@ public interface AdverseEventDao {
 
     @Select("select p_id,category,occur_datetime,submit_datetime,accepted,handled," +
             "user_name, department, dept_dealer_name, printed from adverse_event where " +
-            "deleted=0 order by occur_datetime")
+            "deleted=0 order by occur_datetime desc")
     List<ReportIndex> getAllReports();
 
     @Update("update adverse_event set accepted=1 where p_id=#{pid}")
     void updateAccepted(@Param("pid") Integer pid);
 
+    @Select("select rtrim(code_rs) code, rtrim(name) name from a_employee_mi where code=#{code}")
+    PureCodeName selectUserCodeRsAndName(@Param("code") String code);
+
     @Update("update adverse_event set handled=1, dept_dealing=#{dealing}, " +
             "dept_dealer_id=#{userId}, dept_dealer_name=#{userName}, " +
             "dept_deal_time=#{datetime} where p_id=#{pid}")

+ 0 - 2
src/main/java/thyyxxk/webserver/pojo/adverseevent/HandlerInfo.java

@@ -11,8 +11,6 @@ public class HandlerInfo {
     private Integer pid;
     private String userId;
     private String userName;
-    private String deptCode;
-    private String deptName;
     private String dealing;
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")

+ 10 - 22
src/main/java/thyyxxk/webserver/service/adverseevent/AdverseEventService.java

@@ -8,11 +8,11 @@ import thyyxxk.webserver.pojo.ResultVo;
 import thyyxxk.webserver.pojo.adverseevent.HandlerInfo;
 import thyyxxk.webserver.pojo.adverseevent.ReportDetail;
 import thyyxxk.webserver.pojo.adverseevent.ReportIndex;
+import thyyxxk.webserver.pojo.dictionary.PureCodeName;
 import thyyxxk.webserver.utils.ResultVoUtil;
 import thyyxxk.webserver.utils.TokenUtil;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
@@ -27,9 +27,6 @@ public class AdverseEventService {
     }
 
     public ResultVo<String> submitNewReport(ReportDetail reportDetail) {
-        reportDetail.setTid(String.valueOf(System.currentTimeMillis()));
-        reportDetail.setUserId(dao.selectCodeRsByCode(TokenUtil.getTokenUserId()));
-        reportDetail.setSubmitDatetime(new Date());
         reportDetail.setNurseReason(arrToStr(reportDetail.getNurseReasonArr()));
         reportDetail.setPatientReason(arrToStr(reportDetail.getPatientReasonArr()));
         reportDetail.setEnvironReason(arrToStr(reportDetail.getEnvironReasonArr()));
@@ -42,6 +39,9 @@ public class AdverseEventService {
         if (null != reportDetail.getIsModify() && reportDetail.getIsModify()) {
             dao.modifyReport(reportDetail);
         } else {
+            reportDetail.setTid(String.valueOf(System.currentTimeMillis()));
+            reportDetail.setUserId(dao.selectCodeRsByCode(TokenUtil.getTokenUserId()));
+            reportDetail.setSubmitDatetime(new Date());
             dao.submitNewReport(reportDetail);
         }
         return ResultVoUtil.success();
@@ -68,27 +68,15 @@ public class AdverseEventService {
         return ResultVoUtil.success(report);
     }
 
-    public ResultVo<List<ReportIndex>> getReportsForDept(Integer flag, String deptCode) {
-        List<String> codes = Arrays.asList(deptCode.substring(1, deptCode.length() - 1).split(","));
-        List<ReportIndex> list = new ArrayList<>();
-        switch (flag) {
-            case 1:
-                list = dao.getUnAcceptedReports(codes);
-                break;
-            case 2:
-                list = dao.getAcceptedReports(codes);
-                break;
-            case 3:
-                list = dao.getHandledReports(codes);
-                break;
-            case 4:
-                list = dao.getAllReports();
-                break;
-        }
-        return ResultVoUtil.success(list);
+    public ResultVo<List<ReportIndex>> getReportsForDept() {
+        List<String> codes = dao.getLeaderDepts(TokenUtil.getTokenUserId());
+        return ResultVoUtil.success(dao.getReportsForDeptLeader(codes));
     }
 
     public ResultVo<String> updateDeptHandled(HandlerInfo indata) {
+        PureCodeName userCodeName = dao.selectUserCodeRsAndName(TokenUtil.getTokenUserId());
+        indata.setUserId(userCodeName.getCode());
+        indata.setUserName(userCodeName.getName());
         indata.setDatetime(new Date());
         dao.updateDeptHandled(indata);
         return ResultVoUtil.success();