Explorar o código

后台分页和导出Excel

lighter %!s(int64=4) %!d(string=hai) anos
pai
achega
f69993c0a6

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

@@ -4,12 +4,15 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.pojo.ResultVo;
 import thyyxxk.webserver.pojo.adverseevent.HandlerInfo;
+import thyyxxk.webserver.pojo.adverseevent.QueryParam;
 import thyyxxk.webserver.pojo.adverseevent.ReportDetail;
 import thyyxxk.webserver.pojo.adverseevent.ReportIndex;
 import thyyxxk.webserver.pojo.dictionary.PureCodeName;
 import thyyxxk.webserver.service.adverseevent.AdverseEventService;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
+import java.util.Map;
 
 @RestController
 @RequestMapping("/adverseEvent")
@@ -56,9 +59,14 @@ public class AdverseEventController {
         return service.updateDeleted(pid);
     }
 
-    @GetMapping({"/getAllReports"})
-    public ResultVo<List<ReportIndex>> getAllReports() {
-        return service.getAllReports();
+    @PostMapping({"/getAllReports"})
+    public ResultVo<Map<String, Object>> getAllReports(@RequestBody QueryParam param) {
+        return service.getAllReports(param);
+    }
+
+    @PostMapping("/exportExcel")
+    public void exportExcel(HttpServletResponse response, @RequestBody QueryParam param) {
+        service.exportExcel(response, param);
     }
 
     @PostMapping({"/updateFinalHandled"})

+ 6 - 2
src/main/java/thyyxxk/webserver/dao/his/adverseevent/AdverseEventDao.java

@@ -1,11 +1,13 @@
 package thyyxxk.webserver.dao.his.adverseevent;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 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.Date;
 import java.util.List;
 
 @Mapper
@@ -95,8 +97,10 @@ public interface AdverseEventDao {
 
     @Select("select p_id,category,occur_datetime,submit_datetime,accepted,handled," +
             "user_name,dept_code, department, dept_dealer_name, printed from adverse_event where " +
-            "deleted=0 order by occur_datetime desc")
-    List<ReportIndex> getAllReports();
+            "deleted=0 and occur_datetime>=#{start} and occur_datetime<=#{end} and dept_code like #{ward} " +
+            "order by occur_datetime desc")
+    IPage<ReportIndex> getAllReports(IPage<ReportIndex> iPage, @Param("start") Date start,
+                                    @Param("end") Date end, @Param("ward") String ward);
 
     @Update("update adverse_event set accepted=1 where p_id=#{pid}")
     void updateAccepted(@Param("pid") Integer pid);

+ 29 - 0
src/main/java/thyyxxk/webserver/pojo/adverseevent/QueryParam.java

@@ -0,0 +1,29 @@
+package thyyxxk.webserver.pojo.adverseevent;
+
+import lombok.Data;
+import thyyxxk.webserver.utils.DateUtil;
+import thyyxxk.webserver.utils.StringUtil;
+
+import java.text.DateFormat;
+import java.util.Date;
+
+@Data
+public class QueryParam {
+    private Date start;
+    private Date end;
+    private String wardCode;
+    private Integer currentPage;
+    private Integer pageSize;
+
+    public Date getStart() {
+        return null == start ? DateUtil.parse("2012-01-01 00:00:01") : start;
+    }
+
+    public Date getEnd() {
+        return null == end ? DateUtil.parse("2099-12-31 23:59:00") : end;
+    }
+
+    public String getWardCode() {
+        return StringUtil.isBlank(wardCode) ? "%%" : (wardCode).trim() + "%";
+    }
+}

+ 8 - 0
src/main/java/thyyxxk/webserver/pojo/adverseevent/ReportIndex.java

@@ -23,4 +23,12 @@ public class ReportIndex {
     private Integer handled;
     private String deptDealerName;
     private Integer printed;
+
+    public Integer getHandled() {
+        return null == handled ? 0 : handled;
+    }
+
+    public Integer getPrinted() {
+        return null == printed ? 0 : printed;
+    }
 }

+ 37 - 5
src/main/java/thyyxxk/webserver/service/adverseevent/AdverseEventService.java

@@ -1,20 +1,25 @@
 package thyyxxk.webserver.service.adverseevent;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import thyyxxk.webserver.dao.his.adverseevent.AdverseEventDao;
 import thyyxxk.webserver.pojo.ResultVo;
 import thyyxxk.webserver.pojo.adverseevent.HandlerInfo;
+import thyyxxk.webserver.pojo.adverseevent.QueryParam;
 import thyyxxk.webserver.pojo.adverseevent.ReportDetail;
 import thyyxxk.webserver.pojo.adverseevent.ReportIndex;
 import thyyxxk.webserver.pojo.dictionary.PureCodeName;
+import thyyxxk.webserver.pojo.querydata.TCovidVaccinateAppointment;
+import thyyxxk.webserver.utils.DateUtil;
+import thyyxxk.webserver.utils.ExcelUtil;
 import thyyxxk.webserver.utils.ResultVoUtil;
 import thyyxxk.webserver.utils.TokenUtil;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import java.util.*;
 
 @Slf4j
 @Service
@@ -82,8 +87,35 @@ public class AdverseEventService {
         return ResultVoUtil.success();
     }
 
-    public ResultVo<List<ReportIndex>> getAllReports() {
-        return ResultVoUtil.success(dao.getAllReports());
+    public ResultVo<Map<String, Object>> getAllReports(QueryParam param) {
+        IPage<ReportIndex> iPage = new Page<>(param.getCurrentPage(), param.getPageSize());
+        iPage = dao.getAllReports(iPage, param.getStart(), param.getEnd(), param.getWardCode());
+        Map<String, Object> map = new HashMap<>();
+        map.put("list", iPage.getRecords());
+        map.put("totalSize", iPage.getTotal());
+        return ResultVoUtil.success(map);
+    }
+
+    public void exportExcel(HttpServletResponse response, QueryParam param) {
+        IPage<ReportIndex> iPage = new Page<>(1, -1);
+        iPage = dao.getAllReports(iPage, param.getStart(), param.getEnd(), param.getWardCode());
+        List<ReportIndex> list = iPage.getRecords();
+        String[] title = {"报告id","发生时间","事件类型","提交时间","提交人","科室","处理状态","处理人","打印状态"};
+        String[][] content = new String[list.size()][];
+        for (int i = 0; i < list.size(); i++){
+            content[i] = new String[title.length];
+            ReportIndex index = list.get(i);
+            content[i][0] = String.valueOf(index.getPid());
+            content[i][1] = DateUtil.formatDatetime(index.getOccurDatetime());
+            content[i][2] = index.getCategory();
+            content[i][3] = DateUtil.formatDatetime(index.getSubmitDatetime());
+            content[i][4] = index.getUserName();
+            content[i][5] = index.getDepartment();
+            content[i][6] = index.getHandled() == 1 ? "已处理" : "未处理";
+            content[i][7] = index.getDeptDealerName();
+            content[i][8] = index.getPrinted() == 1 ? "已打印" : "未打印";
+        }
+        ExcelUtil.exportExcel(response, title, content);
     }
 
     public ResultVo<ReportDetail> updateFinalHandled(HandlerInfo indata) {

+ 10 - 0
src/main/java/thyyxxk/webserver/utils/DateUtil.java

@@ -28,6 +28,16 @@ public class DateUtil {
         return sdf.format(date);
     }
 
+    public static Date parse(String source) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        try {
+            return sdf.parse(source);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return new Date();
+    }
+
     public static long getTimestamp(String datetime) throws ParseException {
         DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         return df.parse(datetime).getTime();