陈昶聿
10 小时以前 0d10bc99eec75672b049339399e4f762fbd9746e
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java
@@ -6,10 +6,14 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.service.ISysConfigService;
import com.smartor.domain.*;
import com.smartor.domain.DTO.QuestionResultDTO;
import com.smartor.domain.DTO.ServiceSubtaskDetailDTO;
import com.smartor.domain.VO.QuestionResultVO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import com.smartor.service.IServiceSubtaskDetailService;
import com.smartor.service.IServiceSubtaskService;
import io.swagger.annotations.Api;
@@ -19,6 +23,7 @@
import org.springframework.web.bind.annotation.*;
import java.util.*;
import java.util.stream.Collectors;
import static com.ruoyi.framework.datasource.DynamicDataSourceContextHolder.log;
@@ -192,4 +197,41 @@
        map = ServiceSubtaskDetailService.getServiceSubtaskDetails(serviceSubtaskDetailVO);
        return map;
    }
    /**
     * 查询患者随访信息
     */
    @ApiOperation("省立同德满意度数据统计")
    @PostMapping("/sltaMydTotalByScore")
    public Map<String, Object> sltaMydTotal(@RequestBody QuestionResultVO questionResultVO) {
        List<ServiceSubtaskRes> serviceSubtaskResList = null;
        ServiceSubtaskEntity serviceSubtaskEntity = new ServiceSubtaskEntity();
        serviceSubtaskEntity.setServiceType(questionResultVO.getServiceType());
        serviceSubtaskEntity.setEndOutHospTime(questionResultVO.getEndOutHospTime());
        serviceSubtaskEntity.setStartOutHospTime(questionResultVO.getStartOutHospTime());
        serviceSubtaskEntity.setDeptOrDistrict(questionResultVO.getDeptOrDistrict());
        serviceSubtaskEntity.setLeavehospitaldistrictcodes(questionResultVO.getLeavehospitaldistrictcodes());
        if (serviceSubtaskEntity != null) {
            List<ServiceSubtask> serviceSubtasks = serviceSubtaskService.getServiceSubtasks(serviceSubtaskEntity);
            serviceSubtaskResList = DtoConversionUtils.sourceToTarget(serviceSubtasks, ServiceSubtaskRes.class);
        }
        List<ServiceSubtaskDetailRatioExport> detailList = serviceSubtaskService.getDetailRatio(questionResultVO, serviceSubtaskResList);
        // 按 questiontext 分组后转换为 QuestionResultVO
        List<QuestionResultDTO> result = new ArrayList<>();
        if (!detailList.isEmpty()) {
            Map<String, List<ServiceSubtaskDetailRatioExport>> groupedMap = detailList.stream()
                    .collect(Collectors.groupingBy(ServiceSubtaskDetailRatioExport::getQuestiontext));
            groupedMap.forEach((questionText, exportList) -> {
                QuestionResultDTO questionResultDTO = new QuestionResultDTO();
                questionResultDTO.setQeustionText(questionText);
                questionResultDTO.setSubtaskDetailRatioExportList(exportList);
                result.add(questionResultDTO);
            });
        }
        return success(result);
    }
}