liusheng
2024-09-04 9526971c403417c1c007804f24884c443b9e6cd7
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskController.java
@@ -1,98 +1,170 @@
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.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.SvyTask;
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
 * 问卷任务(任务)Controller
 *
 * @author ruoyi
 * @date 2024-06-12
 */
@Slf4j
@Api(description = " 问卷任务(任务)")
@RestController
@RequestMapping("/smartor/svytask")
public class SvyTaskController extends BaseController
{
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')")
    @GetMapping("/list")
    public TableDataInfo list(SvyTask svyTask)
    {
        startPage();
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody SvyTask svyTask) {
        PageUtils.startPageByPost(svyTask.getPageNum(), svyTask.getPageSize());
        List<SvyTask> list = svyTaskService.selectSvyTaskList(svyTask);
        return getDataTable(list);
        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)
    {
    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)
    {
    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
    public AjaxResult add(@RequestBody SvyTask svyTask)
    {
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SvyTask svyTask) {
        return toAjax(svyTaskService.insertSvyTask(svyTask));
    }
    /**
     * 修改综合问卷任务(任务)
     * 修改问卷任务(任务)
     */
    @ApiOperation("修改问卷任务(任务)")
    @PreAuthorize("@ss.hasPermi('system:task:edit')")
    @Log(title = "综合问卷任务(任务)", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SvyTask svyTask)
    {
    @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)
   @DeleteMapping("/{taskids}")
    public AjaxResult remove(@PathVariable Long[] taskids)
    {
    @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));
    }
}