package com.ruoyi.web.controller.smartor; 
 | 
  
 | 
import com.github.pagehelper.ISelect; 
 | 
import com.ruoyi.common.annotation.Log; 
 | 
import com.ruoyi.common.core.controller.BaseController; 
 | 
import com.ruoyi.common.core.domain.AjaxResult; 
 | 
import com.ruoyi.common.core.domain.entity.SysUser; 
 | 
import com.ruoyi.common.core.page.TableDataInfo; 
 | 
import com.ruoyi.common.enums.BusinessType; 
 | 
import com.ruoyi.common.utils.DtoConversionUtils; 
 | 
import com.ruoyi.common.utils.PageUtils; 
 | 
import com.ruoyi.common.utils.RSAPublicKeyExample; 
 | 
import com.ruoyi.common.utils.poi.ExcelUtil; 
 | 
import com.smartor.domain.*; 
 | 
import com.smartor.service.IServiceSubtaskService; 
 | 
import com.smartor.service.ISvyTaskService; 
 | 
import com.smartor.service.ISvyTaskSingleService; 
 | 
import io.swagger.annotations.Api; 
 | 
import io.swagger.annotations.ApiOperation; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.apache.commons.collections4.CollectionUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.beans.factory.annotation.Value; 
 | 
import org.springframework.security.access.prepost.PreAuthorize; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import javax.servlet.http.HttpServletResponse; 
 | 
import java.util.List; 
 | 
import java.util.stream.Collectors; 
 | 
  
 | 
/** 
 | 
 * 问卷任务(任务)Controller 
 | 
 * 
 | 
 * @author ruoyi 
 | 
 * @date 2024-06-12 
 | 
 */ 
 | 
@Slf4j 
 | 
@Api(description = " 问卷任务(任务)") 
 | 
@RestController 
 | 
@RequestMapping("/smartor/svytask") 
 | 
public class SvyTaskController extends BaseController { 
 | 
    @Autowired 
 | 
    private ISvyTaskService svyTaskService; 
 | 
// 
 | 
//    @Autowired 
 | 
//    private ISvyTaskSingleService iSvyTaskSingleService; 
 | 
  
 | 
    @Autowired 
 | 
    private IServiceSubtaskService serviceSubtaskService; 
 | 
  
 | 
  
 | 
    @Value("${pub_key}") 
 | 
    private String pub_key; 
 | 
  
 | 
    @Value("${pri_key}") 
 | 
    private String pri_key; 
 | 
  
 | 
    /** 
 | 
     * 查询问卷任务(任务)列表 
 | 
     */ 
 | 
    @ApiOperation("查询问卷任务(任务)列表") 
 | 
    //@PreAuthorize("@ss.hasPermi('system:task:list')") 
 | 
    @PostMapping("/list") 
 | 
    public TableDataInfo list(@RequestBody SvyTask svyTask) { 
 | 
        PageUtils.startPageByPost(svyTask.getPageNum(), svyTask.getPageSize()); 
 | 
        List<SvyTask> list = svyTaskService.selectSvyTaskList(svyTask); 
 | 
        List<SvyTaskVO> svyTaskVOS = DtoConversionUtils.sourceToTarget(list, SvyTaskVO.class); 
 | 
        if (CollectionUtils.isNotEmpty(svyTaskVOS)) { 
 | 
            for (SvyTaskVO svyTaskVO : svyTaskVOS) { 
 | 
                ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); 
 | 
                serviceSubtaskVO.setTaskid(svyTaskVO.getTaskid()); 
 | 
                List<ServiceSubtask> svyTaskSingles = serviceSubtaskService.selectServiceSubtaskList(serviceSubtaskVO); 
 | 
                if (CollectionUtils.isNotEmpty(svyTaskSingles)) { 
 | 
                    //已发送 
 | 
                    long yfs = svyTaskSingles.stream().filter(svyTaskcall1 -> svyTaskcall1.getSendstate() != null && svyTaskcall1.getSendstate() == 3L).collect(Collectors.toList()).stream().count(); 
 | 
                    //未发送 
 | 
                    long wfs = svyTaskSingles.stream().filter(svyTaskcall1 -> svyTaskcall1.getSendstate() != null && svyTaskcall1.getSendstate() == 2L).collect(Collectors.toList()).stream().count(); 
 | 
                    svyTaskVO.setYfs(yfs); 
 | 
                    svyTaskVO.setWfs(wfs); 
 | 
  
 | 
                } 
 | 
            } 
 | 
            //获取total 
 | 
            long total = PageUtils.count(new ISelect() { 
 | 
                @Override 
 | 
                public void doSelect() { 
 | 
                    svyTask.setPageNum(null); 
 | 
                    svyTask.setPageSize(null); 
 | 
                    svyTaskService.selectSvyTaskList(svyTask); 
 | 
                } 
 | 
            }); 
 | 
  
 | 
            return getDataTable2(total, svyTaskVOS); 
 | 
  
 | 
        } 
 | 
  
 | 
        return getDataTable2(0, list); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 导出问卷任务(任务)列表 
 | 
     */ 
 | 
    @ApiOperation("导出问卷任务(任务)列表") 
 | 
    //@PreAuthorize("@ss.hasPermi('system:task:export')") 
 | 
    @Log(title = "综合问卷任务(任务)", businessType = BusinessType.EXPORT) 
 | 
    @PostMapping("/export") 
 | 
    public void export(HttpServletResponse response, SvyTask svyTask) { 
 | 
        List<SvyTask> list = svyTaskService.selectSvyTaskList(svyTask); 
 | 
        ExcelUtil<SvyTask> util = new ExcelUtil<SvyTask>(SvyTask.class); 
 | 
        util.exportExcel(response, list, "综合问卷任务(任务)数据"); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 获取问卷任务(任务)详细信息 
 | 
     */ 
 | 
    @ApiOperation("获取问卷任务(任务)详细信息") 
 | 
    //@PreAuthorize("@ss.hasPermi('system:task:query')") 
 | 
    @GetMapping(value = "/{taskid}") 
 | 
    public AjaxResult getInfo(@PathVariable("taskid") Long taskid) { 
 | 
        return success(svyTaskService.selectSvyTaskByTaskid(taskid)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 新增问卷任务(任务) 
 | 
     */ 
 | 
    @ApiOperation("新增问卷任务(任务)") 
 | 
    //@PreAuthorize("@ss.hasPermi('system:task:add')") 
 | 
    @Log(title = "综合问卷任务(任务)", businessType = BusinessType.INSERT) 
 | 
    @PostMapping("/add") 
 | 
    public AjaxResult add(@RequestBody SvyTask svyTask) { 
 | 
        SysUser user = getLoginUser().getUser(); 
 | 
        svyTask.setOrgid(user.getOrgid()); 
 | 
        return toAjax(svyTaskService.insertSvyTask(svyTask)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 修改问卷任务(任务) 
 | 
     */ 
 | 
    @ApiOperation("修改问卷任务(任务)") 
 | 
    //@PreAuthorize("@ss.hasPermi('system:task:edit')") 
 | 
    @Log(title = "综合问卷任务(任务)", businessType = BusinessType.UPDATE) 
 | 
    @PostMapping("/edit") 
 | 
    public AjaxResult edit(@RequestBody SvyTask svyTask) { 
 | 
        return toAjax(svyTaskService.updateSvyTask(svyTask)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 删除问卷任务(任务) 
 | 
     */ 
 | 
    @ApiOperation("删除问卷任务(任务)") 
 | 
    //@PreAuthorize("@ss.hasPermi('system:task:remove')") 
 | 
    @Log(title = "问卷任务(任务)", businessType = BusinessType.DELETE) 
 | 
    @GetMapping("/{taskids}") 
 | 
    public AjaxResult remove(@PathVariable Long[] taskids) { 
 | 
        return toAjax(svyTaskService.deleteSvyTaskByTaskids(taskids)); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 通过任务ID和患者ID获取单个人的题目信息 
 | 
     * 
 | 
     * @return 
 | 
     */ 
 | 
    @ApiOperation("通过任务ID和患者ID获取单个人的题目信息") 
 | 
    @PostMapping("/getSvyScriptInfoByCondition") 
 | 
    public TableDataInfo getScriptInfoByCondition(@RequestBody ServiceTaskScriptQues ivrTaskScriptQues) { 
 | 
        RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); 
 | 
        Long tid = Long.valueOf(rsaPublicKeyExample.decryptedData(ivrTaskScriptQues.getParam1(), pri_key)); 
 | 
        Long pid = Long.valueOf(rsaPublicKeyExample.decryptedData(ivrTaskScriptQues.getParam2(), pri_key)); 
 | 
        log.info("tid和pid的值为:{},{}", tid, pid); 
 | 
        return getDataTable(svyTaskService.getScriptInfoByCondition(tid, pid)); 
 | 
    } 
 | 
} 
 |