陈昶聿
8 小时以前 44f899cf5f435f2c7cd39e1a04c1d2bb2a8b888e
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -3578,10 +3578,10 @@
        serviceSubtaskStatistic.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode());
        serviceSubtaskStatistic.setDrcode(serviceSubtaskList.get(0).getDrcode());
        serviceSubtaskStatistic.setDrname(serviceSubtaskList.get(0).getDrname());
        //出院人次
        serviceSubtaskStatistic.setDischargeCount(serviceSubtaskList.size());
        //出院人次详情
        serviceSubtaskStatistic.setDischargeCountInfo(serviceSubtaskList);
//        //出院人次
//        serviceSubtaskStatistic.setDischargeCount(serviceSubtaskList.size());
//        //出院人次详情
//        serviceSubtaskStatistic.setDischargeCountInfo(serviceSubtaskList);
        serviceSubtaskStatistic.setJoyCount(0);
        serviceSubtaskStatistic.setJoyAllCount(0);
@@ -3590,48 +3590,48 @@
            subCounts = new ArrayList<>();
        }
        //无需随访详情
        List<ServiceSubtask> nonFollowUpInfo = new ArrayList<>();
        //应随访详情
        List<ServiceSubtask> followUpNeededAllInfo = new ArrayList<>();
        //记录首次应随访详情
        List<ServiceSubtask> needFollowUpInfo = new ArrayList<>();
        //记录首次待随访详情
        List<ServiceSubtask> pendingFollowUpInfo = new ArrayList<>();
        //记录首次随访成功详情
        List<ServiceSubtask> followUpSuccessInfo = new ArrayList<>();
        //记录首次随访失败详情
        List<ServiceSubtask> followUpFailInfo = new ArrayList<>();
        //记录首次随访人工详情
        List<ServiceSubtask> manualInfo = new ArrayList<>();
        //记录首次随访语音详情
        List<ServiceSubtask> voiceInfo = new ArrayList<>();
        //记录首次随访短信详情
        List<ServiceSubtask> smsInfo = new ArrayList<>();
        //记录首次随访微信详情
        List<ServiceSubtask> wechatInfo = new ArrayList<>();
        //记录首次结果异常详情
        List<ServiceSubtask> abnormalInfo = new ArrayList<>();
        //记录再次应随访详情
        List<ServiceSubtask> needFollowUpAgainInfo = new ArrayList<>();
        //记录再次待随访详情
        List<ServiceSubtask> pendingFollowUpAgainInfo = new ArrayList<>();
        //记录再次随访成功详情
        List<ServiceSubtask> followUpSuccessAgainInfo = new ArrayList<>();
        //记录再次随访失败详情
        List<ServiceSubtask> followUpFailAgainInfo = new ArrayList<>();
        //记录再次随访人工详情
        List<ServiceSubtask> manualAgainInfo = new ArrayList<>();
        //记录再次随访语音详情
        List<ServiceSubtask> voiceAgainInfo = new ArrayList<>();
        //记录再次随访短信详情
        List<ServiceSubtask> smsAgainInfo = new ArrayList<>();
        //记录再次随访微信详情
        List<ServiceSubtask> wechatAgainInfo = new ArrayList<>();
        //记录再次结果异常详情
        List<ServiceSubtask> abnormalAgainInfo = new ArrayList<>();
//        //无需随访详情
//        List<ServiceSubtask> nonFollowUpInfo = new ArrayList<>();
//        //应随访详情
//        List<ServiceSubtask> followUpNeededAllInfo = new ArrayList<>();
//        //记录首次应随访详情
//        List<ServiceSubtask> needFollowUpInfo = new ArrayList<>();
//        //记录首次待随访详情
//        List<ServiceSubtask> pendingFollowUpInfo = new ArrayList<>();
//        //记录首次随访成功详情
//        List<ServiceSubtask> followUpSuccessInfo = new ArrayList<>();
//        //记录首次随访失败详情
//        List<ServiceSubtask> followUpFailInfo = new ArrayList<>();
//        //记录首次随访人工详情
//        List<ServiceSubtask> manualInfo = new ArrayList<>();
//        //记录首次随访语音详情
//        List<ServiceSubtask> voiceInfo = new ArrayList<>();
//        //记录首次随访短信详情
//        List<ServiceSubtask> smsInfo = new ArrayList<>();
//        //记录首次随访微信详情
//        List<ServiceSubtask> wechatInfo = new ArrayList<>();
//
//        //记录首次结果异常详情
//        List<ServiceSubtask> abnormalInfo = new ArrayList<>();
//
//        //记录再次应随访详情
//        List<ServiceSubtask> needFollowUpAgainInfo = new ArrayList<>();
//        //记录再次待随访详情
//        List<ServiceSubtask> pendingFollowUpAgainInfo = new ArrayList<>();
//        //记录再次随访成功详情
//        List<ServiceSubtask> followUpSuccessAgainInfo = new ArrayList<>();
//        //记录再次随访失败详情
//        List<ServiceSubtask> followUpFailAgainInfo = new ArrayList<>();
//        //记录再次随访人工详情
//        List<ServiceSubtask> manualAgainInfo = new ArrayList<>();
//        //记录再次随访语音详情
//        List<ServiceSubtask> voiceAgainInfo = new ArrayList<>();
//        //记录再次随访短信详情
//        List<ServiceSubtask> smsAgainInfo = new ArrayList<>();
//        //记录再次随访微信详情
//        List<ServiceSubtask> wechatAgainInfo = new ArrayList<>();
//        //记录再次结果异常详情
//        List<ServiceSubtask> abnormalAgainInfo = new ArrayList<>();
        for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
@@ -3647,31 +3647,31 @@
            //无需随访人次
            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) {
                serviceSubtaskStatistic.setNonFollowUp(serviceSubtaskStatistic.getNonFollowUp() + 1L);
                nonFollowUpInfo.add(serviceSubtask);
//                nonFollowUpInfo.add(serviceSubtask);
            }
            //应随访人次
            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
                serviceSubtaskStatistic.setFollowUpNeeded(serviceSubtaskStatistic.getFollowUpNeeded() + 1L);
                followUpNeededAllInfo.add(serviceSubtask);
//                followUpNeededAllInfo.add(serviceSubtask);
            }
            //首次出院随访
            if (serviceSubtask.getVisitCount() != null && serviceSubtask.getVisitCount() == 1) {
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
                    serviceSubtaskStatistic.setNeedFollowUp(serviceSubtaskStatistic.getNeedFollowUp() + 1L);
                    needFollowUpInfo.add(serviceSubtask);
//                    needFollowUpInfo.add(serviceSubtask);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) {
                    serviceSubtaskStatistic.setPendingFollowUp(serviceSubtaskStatistic.getPendingFollowUp() + 1L);
                    pendingFollowUpInfo.add(serviceSubtask);
//                    pendingFollowUpInfo.add(serviceSubtask);
                }
                if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 6)) {
                    serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L);
                    followUpSuccessInfo.add(serviceSubtask);
//                    followUpSuccessInfo.add(serviceSubtask);
                }
                if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 5 || serviceSubtask.getSendstate() == 7)) {
                    serviceSubtaskStatistic.setFollowUpFail(serviceSubtaskStatistic.getFollowUpFail() + 1L);
                    followUpFailInfo.add(serviceSubtask);
//                    followUpFailInfo.add(serviceSubtask);
                }
                if (serviceSubtaskStatistic.getNeedFollowUp() > 0) {
                    double rate = (double) (serviceSubtaskStatistic.getFollowUpSuccess() + serviceSubtaskStatistic.getFollowUpFail()) / serviceSubtaskStatistic.getNeedFollowUp();
@@ -3681,41 +3681,41 @@
                }
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                    serviceSubtaskStatistic.setManual(serviceSubtaskStatistic.getManual() + 1L);
                    manualInfo.add(serviceSubtask);
//                    manualInfo.add(serviceSubtask);
                }
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("3")) {
                    serviceSubtaskStatistic.setVoice(serviceSubtaskStatistic.getVoice() + 1L);
                    voiceInfo.add(serviceSubtask);
//                    voiceInfo.add(serviceSubtask);
                }
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                    serviceSubtaskStatistic.setSms(serviceSubtaskStatistic.getSms() + 1L);
                    smsInfo.add(serviceSubtask);
//                    smsInfo.add(serviceSubtask);
                }
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                    serviceSubtaskStatistic.setWeChat(serviceSubtaskStatistic.getWeChat() + 1L);
                    wechatInfo.add(serviceSubtask);
//                    wechatInfo.add(serviceSubtask);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")) {
                    serviceSubtaskStatistic.setAbnormal(serviceSubtaskStatistic.getAbnormal() + 1L);
                    abnormalInfo.add(serviceSubtask);
//                    abnormalInfo.add(serviceSubtask);
                }
            }//二次出院随访
            else if (serviceSubtask.getVisitCount() != null && serviceSubtask.getVisitCount() > 1) {
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
                    serviceSubtaskStatistic.setNeedFollowUpAgain(serviceSubtaskStatistic.getNeedFollowUpAgain() + 1L);
                    needFollowUpAgainInfo.add(serviceSubtask);
//                    needFollowUpAgainInfo.add(serviceSubtask);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) {
                    serviceSubtaskStatistic.setPendingFollowUpAgain(serviceSubtaskStatistic.getPendingFollowUpAgain() + 1L);
                    pendingFollowUpAgainInfo.add(serviceSubtask);
//                    pendingFollowUpAgainInfo.add(serviceSubtask);
                }
                if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 1 || serviceSubtask.getSendstate() == 3 || serviceSubtask.getSendstate() == 6)) {
                    serviceSubtaskStatistic.setFollowUpSuccessAgain(serviceSubtaskStatistic.getFollowUpSuccessAgain() + 1L);
                    followUpSuccessAgainInfo.add(serviceSubtask);
//                    followUpSuccessAgainInfo.add(serviceSubtask);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) {
                    serviceSubtaskStatistic.setFollowUpFailAgain(serviceSubtaskStatistic.getFollowUpFailAgain() + 1L);
                    followUpFailAgainInfo.add(serviceSubtask);
//                    followUpFailAgainInfo.add(serviceSubtask);
                }
                if (serviceSubtaskStatistic.getNeedFollowUp() > 0) {
                    double rate = (double) (serviceSubtaskStatistic.getFollowUpSuccessAgain() + serviceSubtaskStatistic.getFollowUpFailAgain()) / serviceSubtaskStatistic.getNeedFollowUpAgain();
@@ -3725,64 +3725,64 @@
                }
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("1")) {
                    serviceSubtaskStatistic.setManualAgain(serviceSubtaskStatistic.getManualAgain() + 1L);
                    manualAgainInfo.add(serviceSubtask);
//                    manualAgainInfo.add(serviceSubtask);
                }
                //再次随访语音(统计不执行)
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("3")) {
                    serviceSubtaskStatistic.setVoiceAgain(serviceSubtaskStatistic.getVoiceAgain() + 1L);
                    voiceAgainInfo.add(serviceSubtask);
//                    voiceAgainInfo.add(serviceSubtask);
                }
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("4")) {
                    serviceSubtaskStatistic.setSmsAgain(serviceSubtaskStatistic.getSmsAgain() + 1L);
                    smsAgainInfo.add(serviceSubtask);
//                    smsAgainInfo.add(serviceSubtask);
                }
                if (serviceSubtask.getSendstate() != null && ObjectUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) && serviceSubtask.getCurrentPreachform().equals("5")) {
                    serviceSubtaskStatistic.setWeChatAgain(serviceSubtaskStatistic.getWeChatAgain() + 1L);
                    wechatAgainInfo.add(serviceSubtask);
//                    wechatAgainInfo.add(serviceSubtask);
                }
                if (serviceSubtask.getSendstate() != null && serviceSubtask.getExcep().equals("1")) {
                    serviceSubtaskStatistic.setAbnormalAgain(serviceSubtaskStatistic.getAbnormalAgain() + 1L);
                    abnormalAgainInfo.add(serviceSubtask);
//                    abnormalAgainInfo.add(serviceSubtask);
                }
            }
        }
        //记录无需随访详情
        serviceSubtaskStatistic.setNonFollowUpInfo(nonFollowUpInfo);
        //记录需随访详情
        serviceSubtaskStatistic.setFollowUpNeededAllInfo(followUpNeededAllInfo);
        //记录首次应随访详情
        serviceSubtaskStatistic.setNeedFollowUpInfo(needFollowUpInfo);
        //记录首次待随访详情
        serviceSubtaskStatistic.setPendingFollowUpInfo(pendingFollowUpInfo);
        //记录首次随访成功详情
        serviceSubtaskStatistic.setFollowUpSuccessInfo(followUpSuccessInfo);
        //记录首次随访失败详情
        serviceSubtaskStatistic.setFollowUpFailInfo(followUpFailInfo);
        //记录首次随访人工详情
        serviceSubtaskStatistic.setManualInfo(manualInfo);
        //记录首次随访语音详情
        serviceSubtaskStatistic.setVoiceInfo(voiceInfo);
        //记录首次随访短信详情
        serviceSubtaskStatistic.setSmsInfo(smsInfo);
        //记录首次随访微信详情
        serviceSubtaskStatistic.setWechatInfo(wechatInfo);
        //记录再次应随访详情
        serviceSubtaskStatistic.setNeedFollowUpAgainInfo(needFollowUpAgainInfo);
        //记录再次待随访详情
        serviceSubtaskStatistic.setPendingFollowUpAgainInfo(pendingFollowUpAgainInfo);
        //记录再次随访成功详情
        serviceSubtaskStatistic.setFollowUpSuccessAgainInfo(followUpSuccessAgainInfo);
        //记录再次随访失败详情
        serviceSubtaskStatistic.setFollowUpFailAgainInfo(followUpFailAgainInfo);
        //记录再次随访人工详情
        serviceSubtaskStatistic.setManualAgainInfo(manualAgainInfo);
        //记录再次随访语音详情
        serviceSubtaskStatistic.setVoiceAgainInfo(voiceAgainInfo);
        //记录再次随访短信详情
        serviceSubtaskStatistic.setSmsAgainInfo(smsAgainInfo);
        //记录再次随访微信详情
        serviceSubtaskStatistic.setWechatAgainInfo(wechatAgainInfo);
//        //记录无需随访详情
//        serviceSubtaskStatistic.setNonFollowUpInfo(nonFollowUpInfo);
//        //记录需随访详情
//        serviceSubtaskStatistic.setFollowUpNeededAllInfo(followUpNeededAllInfo);
//        //记录首次应随访详情
//        serviceSubtaskStatistic.setNeedFollowUpInfo(needFollowUpInfo);
//        //记录首次待随访详情
//        serviceSubtaskStatistic.setPendingFollowUpInfo(pendingFollowUpInfo);
//        //记录首次随访成功详情
//        serviceSubtaskStatistic.setFollowUpSuccessInfo(followUpSuccessInfo);
//        //记录首次随访失败详情
//        serviceSubtaskStatistic.setFollowUpFailInfo(followUpFailInfo);
//        //记录首次随访人工详情
//        serviceSubtaskStatistic.setManualInfo(manualInfo);
//        //记录首次随访语音详情
//        serviceSubtaskStatistic.setVoiceInfo(voiceInfo);
//        //记录首次随访短信详情
//        serviceSubtaskStatistic.setSmsInfo(smsInfo);
//        //记录首次随访微信详情
//        serviceSubtaskStatistic.setWechatInfo(wechatInfo);
//        //记录再次应随访详情
//        serviceSubtaskStatistic.setNeedFollowUpAgainInfo(needFollowUpAgainInfo);
//        //记录再次待随访详情
//        serviceSubtaskStatistic.setPendingFollowUpAgainInfo(pendingFollowUpAgainInfo);
//        //记录再次随访成功详情
//        serviceSubtaskStatistic.setFollowUpSuccessAgainInfo(followUpSuccessAgainInfo);
//        //记录再次随访失败详情
//        serviceSubtaskStatistic.setFollowUpFailAgainInfo(followUpFailAgainInfo);
//        //记录再次随访人工详情
//        serviceSubtaskStatistic.setManualAgainInfo(manualAgainInfo);
//        //记录再次随访语音详情
//        serviceSubtaskStatistic.setVoiceAgainInfo(voiceAgainInfo);
//        //记录再次随访短信详情
//        serviceSubtaskStatistic.setSmsAgainInfo(smsAgainInfo);
//        //记录再次随访微信详情
//        serviceSubtaskStatistic.setWechatAgainInfo(wechatAgainInfo);
        return serviceSubtaskStatistic;
    }
@@ -3952,7 +3952,7 @@
     * @return
     */
    @Override
    @Cacheable(value = "getSfStatisticsScript", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
//    @Cacheable(value = "getSfStatisticsScript", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
    public List<ServiceSubtaskStatistic> getSfStatisticsScript(ServiceSubtaskCountReq serviceSubtaskCountReq) {
        log.info("getSfStatisticsScript的入参为:{}", serviceSubtaskCountReq);
        List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>();
@@ -4045,12 +4045,45 @@
                serviceSubtaskStatistic.setJoyAllCount(sum.intValue());
                serviceSubtaskStatistic.setJoyCount(finishedSum.intValue());
                serviceSubtaskStatistic.setJoyTotal(finishedPercentage);
                clearStatisticDetailInfo(serviceSubtaskStatistic);
            }
        }
        return serviceSubtaskStatistics;
    }
    /**
     * Trim detail lists for summary response to avoid oversized payloads.
     */
    private void clearStatisticDetailInfo(ServiceSubtaskStatistic serviceSubtaskStatistic) {
        serviceSubtaskStatistic.setDischargeCountInfo(null);
        serviceSubtaskStatistic.setNonFollowUpInfo(null);
        serviceSubtaskStatistic.setFollowUpNeededAllInfo(null);
        serviceSubtaskStatistic.setNeedFollowUpInfo(null);
        serviceSubtaskStatistic.setPendingFollowUpInfo(null);
        serviceSubtaskStatistic.setFollowUpSuccessInfo(null);
        serviceSubtaskStatistic.setFollowUpFailInfo(null);
        serviceSubtaskStatistic.setManualInfo(null);
        serviceSubtaskStatistic.setVoiceInfo(null);
        serviceSubtaskStatistic.setSmsInfo(null);
        serviceSubtaskStatistic.setWechatInfo(null);
        serviceSubtaskStatistic.setNeedFollowUpAgainInfo(null);
        serviceSubtaskStatistic.setPendingFollowUpAgainInfo(null);
        serviceSubtaskStatistic.setFollowUpSuccessAgainInfo(null);
        serviceSubtaskStatistic.setFollowUpFailAgainInfo(null);
        serviceSubtaskStatistic.setManualAgainInfo(null);
        serviceSubtaskStatistic.setVoiceAgainInfo(null);
        serviceSubtaskStatistic.setSmsAgainInfo(null);
        serviceSubtaskStatistic.setWechatAgainInfo(null);
        serviceSubtaskStatistic.setTaskSituation1Info(null);
        serviceSubtaskStatistic.setTaskSituation2Info(null);
        serviceSubtaskStatistic.setTaskSituation3Info(null);
        serviceSubtaskStatistic.setTaskSituation4Info(null);
        serviceSubtaskStatistic.setTaskSituation5Info(null);
        serviceSubtaskStatistic.setTaskSituation6Info(null);
        serviceSubtaskStatistic.setFilterCountList(null);
    }
    @Override
    public Map<String, ServiceSubtaskScriptCount> getSfStatisticsScriptDetails(ServiceSubtaskCountReq serviceSubtaskCountReq) {
        Map<String, ServiceSubtaskScriptCount> result = new HashMap<>();