liusheng
21 小时以前 e4e220916dd2a4aa649a9b0162e5b5ed0dc9d7e5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
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));
    }
}