陈昶聿
2026-04-28 c655b9e28d93c067f4d37803741162ec574448c0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -20,9 +20,11 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.utils.reflect.ReflectUtils;
import com.ruoyi.quartz.task.RyTask;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserDeptService;
import com.smartor.domain.*;
import com.smartor.domain.VO.HeLibraryCountVO;
import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
import com.smartor.domain.VO.ServiceSubtaskVO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
@@ -77,6 +79,9 @@
    @Autowired
    private ISysConfigService configService;
    @Autowired
    private RyTask ryTask;
    @Value("${spring.profiles.active}")
    private String active;
@@ -119,16 +124,6 @@
        // 直接从已有聚合结果推算total,避免去掉分页后再全量查一遍大表
        long total = 0L;
        try {
//                 * wzx: 未执行数量
//                    * ysf: 已随访数量
//                    * fssb: 发送失败数量
//                    * yfs: 已发送数量
//                    * dsf: 待随访数量
//            long wzx = map.get("wzx") != null ? ((Number) map.get("wzx")).longValue() : 0L;
//            long ysf = map.get("ysf") != null ? ((Number) map.get("ysf")).longValue() : 0L;
//            long dsf = map.get("dsf") != null ? ((Number) map.get("dsf")).longValue() : 0L;
//            long fssb = map.get("fssb") != null ? ((Number) map.get("fssb")).longValue() : 0L;
            total = map.get("total") != null ? ((Number) map.get("total")).longValue() : 0L;
        } catch (Exception e) {
@@ -185,7 +180,7 @@
                if (ObjectUtils.isNotEmpty(oldCondition) && isSameCondition(oldCondition, serviceSubtaskEntity)) {
                    redisFlag = true;
                    map = redisMap;
                    redisCache.setCacheObject(userId + "patItemCount", map, 120, TimeUnit.MINUTES);
                    redisCache.setCacheObject(userId + "patItemCount", map, 60, TimeUnit.MINUTES);
                }
            }
            if (!redisFlag) {
@@ -252,13 +247,12 @@
    //@PreAuthorize("@ss.hasPermi('system:taskcall:list')")
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/patItemByCondition")
    public TableDataInfo patItemByCondition(@RequestBody ServiceSubtaskVO serviceSubtaskVO) {
    public Map<String, Object> patItemByCondition(@RequestBody ServiceSubtaskVO serviceSubtaskVO) {
        List<ServiceSubtask> serviceSubtaskList = null;
        ServiceSubtaskEntity serviceSubtaskEntity = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtaskEntity.class);
        serviceSubtaskEntity.setContinueContent(ObjectUtils.isNotEmpty(serviceSubtaskVO.getContinueContent()) ? serviceSubtaskVO.getContinueContent().toString() : null);
        if (serviceSubtaskEntity != null) {
            PageUtils.startPageByPost(serviceSubtaskEntity.getPageNum(), serviceSubtaskEntity.getPageSize());
            serviceSubtaskEntity.setPageNum(PageUtils.getOffset(serviceSubtaskEntity.getPageNum(), serviceSubtaskEntity.getPageSize()));
            serviceSubtaskList = serviceSubtaskService.patItem2(serviceSubtaskEntity);
        }
        for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
@@ -283,7 +277,7 @@
                serviceSubtaskService.patItem2(serviceSubtaskEntity);
            }
        });
        return getDataTable2(total, list);
        return getDataTable3(total, list);
    }
    /**
@@ -525,17 +519,23 @@
    @ApiOperation("获取随访统计比例")
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/getSfStatistics")
    public AjaxResult getSfStatistics(@RequestBody ServiceSubtaskCountReq serviceSubtaskCountReq) {
    public Map<String, Object> getSfStatistics(@RequestBody ServiceSubtaskCountReq serviceSubtaskCountReq) {
        if (CollectionUtils.isEmpty(serviceSubtaskCountReq.getServiceType())) {
            return error("服务类型不能为空");
        }
        Integer offset = PageUtils.getOffset(serviceSubtaskCountReq.getPageNum(), serviceSubtaskCountReq.getPageSize());
        serviceSubtaskCountReq.setPageNum(offset);
        String followUpCountStyle = configService.selectConfigByKey("followUpCountStyle", serviceSubtaskCountReq.getOrgid());
        if (ObjectUtils.isNotEmpty(followUpCountStyle)) {
            serviceSubtaskCountReq.setFollowUpCountStyle(followUpCountStyle);
        } else {
            serviceSubtaskCountReq.setFollowUpCountStyle("1");
        }
        return success(serviceSubtaskService.getSfStatistics(serviceSubtaskCountReq));
        serviceSubtaskCountReq.setPageNum(null);
        serviceSubtaskCountReq.setPageSize(null);
        List<ServiceSubtaskStatistic> sfStatistics = serviceSubtaskService.getSfStatistics(serviceSubtaskCountReq);
        return getDataTable4(CollectionUtils.isEmpty(sfStatistics) ? sfStatistics.size() : 0, serviceSubtaskService.getSfStatistics(serviceSubtaskCountReq));
    }
    /**
@@ -584,6 +584,25 @@
        return success(serviceStatistics);
    }
    /**
     * 随访异常统计导出-废案 暂时不使用
     */
    //@PreAuthorize("@ss.hasPermi('system:taskcall:export')")
    @Log(title = "随访统计导出", businessType = BusinessType.EXPORT)
    @PostMapping("/getSfStatisticsIsAbnormalExport")
    public void getSfStatisticsIsAbnormalExport(HttpServletResponse response, ServiceSubtaskCountReq serviceSubtaskCountReq) {
        List<ServiceSubtaskIsAbnormalStatistic> sfStatistics = serviceSubtaskService.getSfStatisticsIsAbnormalExport(serviceSubtaskCountReq);
        ExcelUtil<ServiceSubtaskIsAbnormalStatistic> util = new ExcelUtil<ServiceSubtaskIsAbnormalStatistic>(ServiceSubtaskIsAbnormalStatistic.class);
        String sheetName = "";
        String fileName = "";
        if (active.equals("ls") || active.equals("druid")) {
            fileName = sheetName = LocalDate.now().getMonthValue() + "月出院随访异常统计表";
            util.exportExcelWithFileName(response, sfStatistics, sheetName, fileName);
        } else {
            sheetName = "随访异常统计导出";
            util.exportExcel(response, sfStatistics, sheetName);
        }
    }
    /**
     * 获取随访统计比例
@@ -597,7 +616,6 @@
        }
        return success(serviceSubtaskService.getSfStatisticsJoydetails(serviceSubtaskCountReq));
    }
    /**
@@ -617,9 +635,6 @@
        }
        return success(serviceSubtaskService.getContinueNurseCount(serviceSubtaskCotinueCountVO));
    }
    /**
@@ -738,5 +753,16 @@
        return map;
    }
    @ApiOperation("获取当前用户宣教数量统计")
    @PostMapping("/gethelibraryCount")
    public Map<String, Object> getHeLibraryCount(@RequestBody HeLibraryCountVO heLibraryCountVO) {
        log.info("获取当前用户宣教数量统计的入参为:{}", heLibraryCountVO);
        return serviceSubtaskService.getHeLibraryCount(heLibraryCountVO);
    }
    @PostMapping("/test")
    public void test() {
        ryTask.longTaskSend();
    }
}