package com.ruoyi.web.controller.smartor; import com.github.pagehelper.PageInfo; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.HttpStatus; 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.poi.ExcelUtil; import com.smartor.domain.IvrTask; import com.smartor.domain.IvrTaskVO; import com.smartor.domain.IvrTaskSingle; import com.smartor.service.IIvrTaskService; import com.smartor.service.IIvrTaskSingleService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; 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 smartor * @date 2023-03-24 */ @Api(description = "随访任务") @RestController @RequestMapping("/smartor/ivrtask") public class IvrTaskController extends BaseController { @Autowired private IIvrTaskService ivrTaskService; @Autowired private IIvrTaskSingleService iIvrTaskCallService; /** * 查询语音任务列表 */ @ApiOperation("查询任务列表") @PreAuthorize("@ss.hasPermi('smartor:ivrtask:list')") @PostMapping("/list") public TableDataInfo list(@RequestBody IvrTask ivrTask) { PageUtils.startPageByPost(ivrTask.getPageNum(), ivrTask.getPageSize()); List list = ivrTaskService.selectIvrTaskList(ivrTask); List ivrTaskVOS = DtoConversionUtils.sourceToTarget(list, IvrTaskVO.class); //设置分页 TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); rspData.setMsg("查询成功"); rspData.setRows(null); rspData.setTotal(0); if (CollectionUtils.isNotEmpty(ivrTaskVOS)) { for (IvrTaskVO ivrTaskVO : ivrTaskVOS) { IvrTaskSingle ivrTaskcall = new IvrTaskSingle(); ivrTaskcall.setTaskid(ivrTaskVO.getTaskid()); List ivrTaskcalls = iIvrTaskCallService.selectIvrTaskcallList(ivrTaskcall); if (CollectionUtils.isNotEmpty(ivrTaskcalls)) { //已发送 long yfs = ivrTaskcalls.stream().filter(ivrTaskcall1 -> ivrTaskcall1.getSendstate() != null && ivrTaskcall1.getSendstate() == 3L).collect(Collectors.toList()).stream().count(); //未发送 long wfs = ivrTaskcalls.stream().filter(ivrTaskcall1 -> ivrTaskcall1.getSendstate() != null && ivrTaskcall1.getSendstate() == 2L).collect(Collectors.toList()).stream().count(); ivrTaskVO.setYfs(yfs); ivrTaskVO.setWfs(wfs); } } //用于分页 ivrTask.setPageNum(null); ivrTask.setPageSize(null); List ivrTasks = ivrTaskService.selectIvrTaskList(ivrTask); rspData.setCode(HttpStatus.SUCCESS); rspData.setMsg("查询成功"); rspData.setRows(ivrTaskVOS); rspData.setTotal(new PageInfo(ivrTasks).getTotal()); } return rspData; } /** * 导出任务列表 */ @ApiOperation("导出任务列表") @PreAuthorize("@ss.hasPermi('smartor:ivrtask:export')") @Log(title = "语音任务", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, IvrTask ivrTask) { List list = ivrTaskService.selectIvrTaskList(ivrTask); ExcelUtil util = new ExcelUtil(IvrTask.class); util.exportExcel(response, list, "语音任务数据"); } /** * 获取任务详细信息 */ @ApiOperation("获取任务详细信息") @PreAuthorize("@ss.hasPermi('smartor:ivrtask:query')") @GetMapping(value = "/{taskid}") public AjaxResult getInfo(@PathVariable("taskid") Long taskid) { return success(ivrTaskService.selectIvrTaskByTaskid(taskid)); } /** * 新增任务 */ @ApiOperation("新增任务") @PreAuthorize("@ss.hasPermi('smartor:ivrtask:add')") @Log(title = "语音任务", businessType = BusinessType.INSERT) @PostMapping("/add") public AjaxResult add(@RequestBody IvrTask ivrTask) { return toAjax(ivrTaskService.insertIvrTask(ivrTask)); } /** * 修改语音任务 */ @ApiOperation("修改任务") @PreAuthorize("@ss.hasPermi('smartor:ivrtask:edit')") @Log(title = "任务", businessType = BusinessType.UPDATE) @PostMapping("/edit") public AjaxResult edit(@RequestBody IvrTask ivrTask) { return toAjax(ivrTaskService.updateIvrTask(ivrTask)); } // /** // * 删除语音任务 // */ // @ApiOperation("删除任务") // @PreAuthorize("@ss.hasPermi('smartor:ivrtask:remove')") // @Log(title = "语音任务", businessType = BusinessType.DELETE) // @GetMapping("/remove/{taskids}") // public AjaxResult remove(@PathVariable Long[] taskids) { // return toAjax(ivrTaskService.deleteIvrTaskByTaskids(taskids)); // } // /** * 删除任务(包括它对应的患者信息) */ @ApiOperation("删除任务(包括它对应的患者信息)") @PreAuthorize("@ss.hasPermi('smartor:ivrtask:remove')") @Log(title = "语音任务", businessType = BusinessType.DELETE) @GetMapping("/remove/{removeTask}") public AjaxResult removeTask(@PathVariable Long taskId) { return toAjax(ivrTaskService.deleteIvrTaskByTaskid(taskId)); } }