陈昶聿
5 天以前 b3ba85a04a61d342f21b457bc2caad3e844bbf68
【市一】随访满意度明细调整
已修改4个文件
101 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -16,9 +16,11 @@
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.utils.reflect.ReflectUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.system.service.ISysConfigService;
import com.smartor.domain.*;
import com.smartor.mapper.PatMedInhospMapper;
import com.smartor.mapper.PatMedOuthospMapper;
@@ -66,6 +68,9 @@
    @Autowired
    private IServiceSubtaskRecordService serviceSubtaskRecordService;
    @Autowired
    private ISysConfigService configService;
    @Value("${spring.profiles.active}")
    private String active;
@@ -533,6 +538,33 @@
        return success(serviceSubtaskService.getSfStatisticsJoydetails(serviceSubtaskCountReq));
    }
    @ApiOperation("获取随访分类统计明细")
    @PostMapping("/getSfStatisticsCountDetails")
    public AjaxResult getSfStatisticsCountDetails(@RequestBody ServiceSubtaskCountReq serviceSubtaskCountReq) {
        if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size() == 0 && serviceSubtaskCountReq.getDeptcodes().size() == 0) {
            return error("科室或病区不能为空");
        }
        //复诊统计
        String configKey = serviceSubtaskCountReq.getConfigKey();
        if(StringUtils.isNotEmpty(configKey)){
            String configValue = configService.selectConfigByKey(configKey);
            if(StringUtils.isEmpty(configValue)){
                String logInfo =  "getSfStatisticsCountDetails-参数 " + configKey + " 未配置, 请配置好后重试";
                log.error(logInfo);
                return error(logInfo);
            }
            serviceSubtaskCountReq.setConfigValue(configValue);
        }else {
            String logInfo =  "getSfStatisticsCountDetails-参数configKey未传入, 请配置好后重试";
            log.error(logInfo);
            return error(logInfo);
        }
        LoginUser loginUser = getLoginUser();
        String orgid = loginUser.getUser().getOrgid();
        serviceSubtaskCountReq.setOrgid(orgid);
        return success(serviceSubtaskService.getSfStatisticsScriptDetails(serviceSubtaskCountReq));
    }
    /**
     * 发送短信模板
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -105,6 +105,21 @@
    public List<ServiceSubtaskCount> getSfStatisticsJoydetails(ServiceSubtaskCountReq serviceSubtaskCountReq);
    /**
     * 获取问题统计结果(随访)
     *
     * @return 结果
     */
    public List<ServiceSubtaskScriptCount> getSfStatisticsScriptDetails(ServiceSubtaskCountReq serviceSubtaskCountReq);
    /**
     * 获取问题回答统计结果(随访)
     *
     * @return 结果
     */
    public List<ServiceSubtaskScriptCount> getSfStatisticsScriptItemDetails(ServiceSubtaskCountReq serviceSubtaskCountReq);
    public List<PatMedRes> getDeptRanking(PatMedReq patMedReq);
    public List<ServiceStatisticsResponse> getServiceStatistics(ServiceStatisticsRequest serviceStatisticsRequest);
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -139,6 +139,8 @@
    public List<ServiceStatisticsResponse> getServiceStatistics(ServiceStatisticsRequest request);
    public Map<String, ServiceSubtaskScriptCount> getSfStatisticsScriptDetails(ServiceSubtaskCountReq serviceSubtaskCountReq);
    public List<PatArchiveSrmVO> sendMsgTemplate(List<PatArchiveSrmVO> patArchiveSrmVOS);
    public List<ServiceSubtaskDiagname> convertToDiagnameList(List<ServiceSubtask> subtaskList) ;
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2928,6 +2928,58 @@
        return serviceSubtaskMapper.getSfStatisticsJoydetails(serviceSubtaskCountReq);
    }
    @Override
    public Map<String, ServiceSubtaskScriptCount> getSfStatisticsScriptDetails(ServiceSubtaskCountReq serviceSubtaskCountReq) {
        Map<String, ServiceSubtaskScriptCount> result = new HashMap<>();
        List<ServiceSubtaskScriptCount> allCounts = new ArrayList<>();
        List<ServiceSubtaskScriptCount> allItemCounts = new ArrayList<>();
        if(ObjectUtils.isEmpty(serviceSubtaskCountReq.getType())){
            //查询语音统计明细
            serviceSubtaskCountReq.setType("1");
            List<ServiceSubtaskScriptCount> ivyCounts = serviceSubtaskMapper.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
            List<ServiceSubtaskScriptCount> ivyItemCounts = serviceSubtaskMapper.getSfStatisticsScriptItemDetails(serviceSubtaskCountReq);
            //查询短信统计明细
            serviceSubtaskCountReq.setType("2");
            List<ServiceSubtaskScriptCount> svyCounts = serviceSubtaskMapper.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
            List<ServiceSubtaskScriptCount> svyItemCounts = serviceSubtaskMapper.getSfStatisticsScriptItemDetails(serviceSubtaskCountReq);
            allCounts.addAll(ivyCounts);
            allCounts.addAll(svyCounts);
            allItemCounts.addAll(ivyItemCounts);
            allItemCounts.addAll(svyItemCounts);
        }else {
            allCounts = serviceSubtaskMapper.getSfStatisticsScriptDetails(serviceSubtaskCountReq);
            allItemCounts = serviceSubtaskMapper.getSfStatisticsScriptItemDetails(serviceSubtaskCountReq);
        }
        for(ServiceSubtaskScriptCount count : allCounts){
            List<ServiceSubtaskScriptCount> itemCounts = new ArrayList<>();
            allItemCounts.forEach(itemCount ->{
                if(ObjectUtils.isNotEmpty(count.getScriptid()) && ObjectUtils.isNotEmpty(itemCount.getScriptid())){
                    if(count.getScriptid().equals(itemCount.getScriptid())){
                        //放入统计信息
                        itemCount.setScriptContent(count.getScriptContent());
                        itemCount.setCompletedQuantity(count.getCompletedQuantity());
                        itemCount.setAllQuantity(count.getAllQuantity());
                        //计算选择比例
                        int chosenQuantity = ObjectUtils.isNotEmpty(itemCount.getChosenQuantity())?itemCount.getChosenQuantity():0;
                        int completedQuantity = itemCount.getCompletedQuantity();
                        if(ObjectUtils.isNotEmpty(completedQuantity) && completedQuantity != 0){
                            BigDecimal chosenPercentage = (new BigDecimal(chosenQuantity)).divide(new BigDecimal(completedQuantity), 2, RoundingMode.HALF_UP);
                            itemCount.setChosenPercentage(chosenPercentage.toString());
                        }
                        itemCounts.add(itemCount);
                    }
                }
            });
            count.setDetails(itemCounts);
            result.put(count.getScriptid().toString(),count);
        }
        return result;
    }
    /**
     * @param serviceSubtask