Browse Source

修改页面分页合计至后台计算

hsh 2 years ago
parent
commit
676eb5f39d

+ 2 - 2
src/main/java/thyyxxk/webserver/controller/ybkf/YbCssTjController.java

@@ -59,7 +59,7 @@ public class YbCssTjController {
      * @return
      */
     @PostMapping("/selectBrJsTj")
-    public ResultVo<List<Map<String, Object>>> selectBrJsTj(@RequestBody @Validated YbkfShareDto dto){
+    public ResultVo<Map<String, Object>> selectBrJsTj(@RequestBody @Validated YbkfShareDto dto){
         return service.selectBrJsTj(dto);
     }
 
@@ -109,7 +109,7 @@ public class YbCssTjController {
     }
 
     @PostMapping("/selectCssYbCsTj")
-    public ResultVo<List<Map<String, Object>>> selectCssYbCsTj(@RequestBody @Validated YbkfShareDto dto){
+    public ResultVo<Map<String, Object>> selectCssYbCsTj(@RequestBody @Validated YbkfShareDto dto){
         return service.selectCssYbCsTj(dto);
     }
 

+ 36 - 13
src/main/java/thyyxxk/webserver/service/ybkf/YbCssTjService.java

@@ -107,14 +107,18 @@ public class YbCssTjService {
      * @param dto
      * @return
      */
-    public ResultVo<List<Map<String, Object>>> selectBrJsTj(YbkfShareDto dto){
+    public ResultVo<Map<String, Object>> selectBrJsTj(YbkfShareDto dto){
         String beginTime = dto.getStartTime();
         String endTime = dto.getEndTime();
         String deptId = dto.getDeptId();
         String doctorId = dto.getDoctorId() == null ? "" : dto.getDoctorId();
         String insurName = dto.getInsurName();
         List<Map<String, Object>> result = dao.selectBrJsTj(beginTime, endTime, deptId, doctorId, insurName);
-        return ResultVoUtil.success(result);
+        Map<String, Object> m_total = dao.selectBrJsTjTotal(beginTime, endTime, deptId, doctorId, insurName);
+        Map<String, Object> m = new HashMap<>();
+        m.put("data", result);
+        m.put("total", m_total);
+        return ResultVoUtil.success(m);
     }
 
     /**
@@ -1038,18 +1042,14 @@ public class YbCssTjService {
      * @return
      */
     public void exportBrYbSetlExcel(HttpServletResponse response, YbkfShareDto dto){
-        String beginTime = dto.getStartTime();
-        String endTime = dto.getEndTime();
-        String deptId = dto.getDeptId();
-        String doctorId = dto.getDoctorId() == null ? "" : dto.getDoctorId();
-        String insurName = dto.getInsurName();
-        ResultVo<List<Map<String, Object>>> rs =  selectBrJsTj(dto);
-        List<Map<String, Object>> list = rs.getData();
+        ResultVo<Map<String, Object>> rs =  selectBrJsTj(dto);
+        Map<String, Object> mapData = rs.getData();
 
-        if(null == list){
+        if(null == mapData){
             return;
         }
 
+        List<Map<String, Object>> list = (List<Map<String, Object>>) mapData.get("data");
         // 主要诊断和主要手术需要重新组合一下编码和名称
         for(Map<String, Object> map : list){
             String zdmc = String.valueOf(map.get("zdmc"));
@@ -1065,7 +1065,7 @@ public class YbCssTjService {
         }
 
         // 查询合计
-        Map<String, Object> m_total = dao.selectBrJsTjTotal(beginTime, endTime, deptId, doctorId, insurName);
+        Map<String, Object> m_total = (Map<String, Object>) mapData.get("total");
         list.add(m_total);
 
         // 导出标题
@@ -1321,7 +1321,7 @@ public class YbCssTjService {
      * @param: [dto]
      * @return: ResultVo<List<Map<String,Object>>>
      **/
-    public ResultVo<List<Map<String, Object>>> selectCssYbCsTj(YbkfShareDto dto){
+    public ResultVo<Map<String, Object>> selectCssYbCsTj(YbkfShareDto dto){
         String beginTime = dto.getStartTime();
         String endTime = dto.getEndTime();
         String dept = dto.getDept();
@@ -1338,7 +1338,30 @@ public class YbCssTjService {
         for(Map<String, Object> map : result){
             AddDaginAndBal(testParams, setlParams, map);
         }
-        return ResultVoUtil.success(result);
+        // 计算合计
+        Map<String, Object> hjMap = new HashMap<>();
+        String zfy = "0";
+        String yjzf = "0";
+        String tczf = "0";
+        String bal = "0";
+        String score = "0";
+        String bxbl = "0";
+        for(Map<String, Object> map : result){
+            zfy = DecimalUtil.add(zfy, String.valueOf(map.get("zfy")));
+            yjzf = DecimalUtil.add(yjzf, String.valueOf(map.get("yjzf")));
+            tczf = DecimalUtil.add(tczf, String.valueOf(map.get("tczf")));
+            bal = DecimalUtil.add(bal, String.valueOf(map.get("bal")));
+            score = DecimalUtil.add(score, String.valueOf(map.get("score")));
+            bxbl = String.valueOf(DecimalUtil.multiply(new BigDecimal(DecimalUtil.divide(tczf, zfy, 4)), new BigDecimal("100")));
+        }
+        hjMap.put("zfy", zfy);
+        hjMap.put("yjzf", yjzf);
+        hjMap.put("tczf", tczf);
+        hjMap.put("bal", bal);
+        hjMap.put("score", score);
+        hjMap.put("bxbl", bxbl);
+        hjMap.put("data", result);
+        return ResultVoUtil.success(hjMap);
     }
 
     /**