陈昶聿
6 小时以前 e65df66077ed4548340210dbe98a9c82e1e0c045
【丽水】查询患者随访信息再调整,使用数据库层聚合计算,替代应用层遍历
已修改3个文件
91 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 72 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -100,17 +100,9 @@
            if (ObjectUtils.isNotEmpty(serviceTask)) serviceSubtask.setPreachform(serviceTask.getPreachform());
        }
        /**
         * 代码优化 分离统计
        Map<String, Object> map = new HashMap<>();
        map.put("serviceSubtaskList", serviceSubtaskList);
        List<Map<String, Object>> list = new ArrayList<>();
        list.add(map);
         **/
        //Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO);
        //patItemCount 调用redisCache记录统计数据
//        Map<String, Object> map = patItemCount(serviceSubtaskVO);
        Map<String, Object> map = serviceSubtaskService.patItemCount1(serviceSubtaskVO);
        Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO);
        map.put("serviceSubtaskList", serviceSubtaskList);
        List<Map<String, Object>> list = new ArrayList<>();
        list.add(map);
@@ -127,7 +119,7 @@
    }
    /**
     * 统计随访数据
     * 统计随访数据 -- cache版
     */
    @ApiOperation("统计随访数据")
    @PostMapping("/patItemCount")
@@ -235,9 +227,10 @@
            serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
            serviceSubtask.setServiceSubtaskRecordList(serviceSubtaskRecordService.selectServiceSubtaskRecordList(serviceSubtaskRecord));
        }
        //todo 代码优化
        Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO);
//      patItemCount 调用redisCache记录统计数据
//        Map<String, Object> map = patItemCount(serviceSubtaskVO);
        Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO);
        map.put("serviceSubtaskList", serviceSubtaskList);
        List<Map<String, Object>> list = new ArrayList<>();
        list.add(map);
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -52,8 +52,6 @@
    public Map<String, Object> patItemCount(ServiceSubtaskVO serviceSubtaskVO);
    public Map<String, Object> patItemCount1(ServiceSubtaskVO serviceSubtaskVO);
    /**
     * 新增单一任务(随访)
     *
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -323,41 +323,41 @@
        return serviceSubtaskList;
    }
    @Override
    public Map<String, Object> patItemCount(ServiceSubtaskVO serviceSubtaskVO) {
        serviceSubtaskVO.setPageSize(99999999);
        serviceSubtaskVO.setPageNum(1);
        List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO);
        Map<String, Object> map = new HashMap<>();
        Integer wzx = 0;
        Integer ysf = 0;
        Integer yc = 0;
        Integer fssb = 0;
        Integer yfs = 0;
        Integer blq = 0;
        Integer dsf = 0;
        for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
            if (serviceSubtask.getSendstate() == 4L) wzx = wzx + 1;
            else if (serviceSubtask.getSendstate() != 4L && serviceSubtask.getSendstate() != 2L) ysf = ysf + 1;
            if (serviceSubtask.getSendstate() == 5L) fssb = fssb + 1;
            if (serviceSubtask.getSendstate() >= 3L || serviceSubtask.getSendstate() == 1L) yfs = yfs + 1;
            if (serviceSubtask.getSendstate() == 2L) dsf = dsf + 1;
            if (serviceSubtask.getSendstate() == 1L) blq = blq + 1;
            if (StringUtils.isNotEmpty(serviceSubtask.getExcep()) && !serviceSubtask.getExcep().equals("0"))
                yc = yc + 1;
        }
        map.put("wzx", wzx);
        map.put("ysf", ysf);
        map.put("yc", yc);
        map.put("fssb", fssb);
        map.put("yfs", yfs);
        map.put("blq", blq);
        map.put("dsf", dsf);
        return map;
    }
//    原方法
//    @Override
//    public Map<String, Object> patItemCount(ServiceSubtaskVO serviceSubtaskVO) {
//        serviceSubtaskVO.setPageSize(99999999);
//        serviceSubtaskVO.setPageNum(1);
//        List<ServiceSubtask> selectServiceSubtaskList = this.selectServiceSubtaskList(serviceSubtaskVO);
//        Map<String, Object> map = new HashMap<>();
//        Integer wzx = 0;
//        Integer ysf = 0;
//        Integer yc = 0;
//        Integer fssb = 0;
//        Integer yfs = 0;
//        Integer blq = 0;
//        Integer dsf = 0;
//        for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
//            if (serviceSubtask.getSendstate() == 4L) wzx = wzx + 1;
//            else if (serviceSubtask.getSendstate() != 4L && serviceSubtask.getSendstate() != 2L) ysf = ysf + 1;
//            if (serviceSubtask.getSendstate() == 5L) fssb = fssb + 1;
//            if (serviceSubtask.getSendstate() >= 3L || serviceSubtask.getSendstate() == 1L) yfs = yfs + 1;
//            if (serviceSubtask.getSendstate() == 2L) dsf = dsf + 1;
//            if (serviceSubtask.getSendstate() == 1L) blq = blq + 1;
//            if (StringUtils.isNotEmpty(serviceSubtask.getExcep()) && !serviceSubtask.getExcep().equals("0"))
//                yc = yc + 1;
//        }
//
//        map.put("wzx", wzx);
//        map.put("ysf", ysf);
//        map.put("yc", yc);
//        map.put("fssb", fssb);
//        map.put("yfs", yfs);
//        map.put("blq", blq);
//        map.put("dsf", dsf);
//
//        return map;
//    }
    
    /**
@@ -371,7 +371,7 @@
     * @return 各状态统计结果
     */
    @Override
    public Map<String, Object> patItemCount1(ServiceSubtaskVO serviceSubtaskVO) {
    public Map<String, Object> patItemCount(ServiceSubtaskVO serviceSubtaskVO) {
        // 直接调用数据库统计方法,在数据库层完成聚合计算
        Map<String, Object> result = serviceSubtaskMapper.countByCondition(serviceSubtaskVO);