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.domain.model.LoginUser;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.redis.RedisCache;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.enums.PreachFormEnum;
|
import com.ruoyi.common.utils.DtoConversionUtils;
|
import com.ruoyi.common.utils.PageUtils;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.smartor.domain.*;
|
import com.smartor.mapper.PatMedInhospMapper;
|
import com.smartor.mapper.PatMedOuthospMapper;
|
import com.smartor.service.IServiceSubtaskRecordService;
|
import com.smartor.service.IServiceSubtaskService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 单一任务(随访)Controller
|
*
|
* @author ruoyi
|
* @date 2024-02-02
|
*/
|
@Slf4j
|
@Api(description = "单一任务(随访宣教)")
|
@RestController
|
@RequestMapping("/smartor/serviceSubtask")
|
public class ServiceSubtaskController extends BaseController {
|
@Autowired
|
private IServiceSubtaskService serviceSubtaskService;
|
|
@Autowired
|
private IServiceSubtaskRecordService serviceSubtaskRecordService;
|
|
/**
|
* 查询患者随访信息
|
*/
|
@ApiOperation("查询患者随访信息")
|
//@PreAuthorize("@ss.hasPermi('system:taskcall:list')")
|
@PostMapping("/patItem")
|
public TableDataInfo patItem(@RequestBody ServiceSubtaskVO serviceSubtaskVO) {
|
List<ServiceSubtask> serviceSubtaskList = null;
|
if (serviceSubtaskVO != null) {
|
PageUtils.startPageByPost(serviceSubtaskVO.getPageNum(), serviceSubtaskVO.getPageSize());
|
serviceSubtaskList = serviceSubtaskService.patItem(serviceSubtaskVO);
|
}
|
for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
|
ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
|
serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId());
|
if (ObjectUtils.isNotEmpty((serviceSubtask.getTaskid())))
|
serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
|
serviceSubtask.setServiceSubtaskRecordList(serviceSubtaskRecordService.selectServiceSubtaskRecordList(serviceSubtaskRecord));
|
}
|
Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO);
|
map.put("serviceSubtaskList", serviceSubtaskList);
|
List<Map<String, Object>> list = new ArrayList<>();
|
list.add(map);
|
//获取total
|
long total = PageUtils.count(new ISelect() {
|
@Override
|
public void doSelect() {
|
serviceSubtaskVO.setPageNum(null);
|
serviceSubtaskVO.setPageSize(null);
|
serviceSubtaskService.patItem(serviceSubtaskVO);
|
}
|
});
|
return getDataTable2(total, list);
|
// return getDataTable(serviceSubtaskService.patItem(ivrTaskcall));
|
}
|
|
|
/**
|
* 导出单一任务(随访宣教)列表
|
*/
|
//@PreAuthorize("@ss.hasPermi('system:taskcall:export')")
|
@Log(title = "单一任务(随访宣教)", businessType = BusinessType.EXPORT)
|
@PostMapping("/patItemExport")
|
public void patItemExport(HttpServletResponse response, @RequestBody ServiceSubtaskVO serviceSubtaskVO) {
|
List<ServiceSubtask> serviceSubtaskList = null;
|
if (serviceSubtaskVO != null) {
|
if (serviceSubtaskVO.getPageNum() != null && serviceSubtaskVO.getPageSize() != null)
|
PageUtils.startPageByPost(serviceSubtaskVO.getPageNum(), serviceSubtaskVO.getPageSize());
|
serviceSubtaskList = serviceSubtaskService.patItem(serviceSubtaskVO);
|
}
|
List<ServiceSubtaskExprot> serviceSubtaskExprots = null;
|
if (!CollectionUtils.isEmpty(serviceSubtaskList)) {
|
serviceSubtaskExprots = DtoConversionUtils.sourceToTarget(serviceSubtaskList, ServiceSubtaskExprot.class);
|
for (ServiceSubtaskExprot serviceSubtaskExprot : serviceSubtaskExprots) {
|
String pf = PreachFormEnum.getDescByCode(serviceSubtaskExprot.getPreachform());
|
serviceSubtaskExprot.setPreachform(pf);
|
}
|
|
}
|
|
|
ExcelUtil<ServiceSubtaskExprot> util = new ExcelUtil<ServiceSubtaskExprot>(ServiceSubtaskExprot.class);
|
util.exportExcel(response, serviceSubtaskExprots, "患者随访信息表单");
|
}
|
|
|
/**
|
* 查询患者随访信息
|
*/
|
@ApiOperation("查询患者随访信息")
|
//@PreAuthorize("@ss.hasPermi('system:taskcall:list')")
|
@PostMapping("/patItemByCondition")
|
public TableDataInfo patItemByCondition(@RequestBody ServiceSubtaskVO serviceSubtaskVO) {
|
List<ServiceSubtask> serviceSubtaskList = null;
|
if (serviceSubtaskVO != null) {
|
PageUtils.startPageByPost(serviceSubtaskVO.getPageNum(), serviceSubtaskVO.getPageSize());
|
serviceSubtaskList = serviceSubtaskService.patItem2(serviceSubtaskVO);
|
}
|
for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
|
ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
|
serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId());
|
serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
|
serviceSubtask.setServiceSubtaskRecordList(serviceSubtaskRecordService.selectServiceSubtaskRecordList(serviceSubtaskRecord));
|
}
|
Map<String, Object> map = serviceSubtaskService.patItemCount(serviceSubtaskVO);
|
map.put("serviceSubtaskList", serviceSubtaskList);
|
List<Map<String, Object>> list = new ArrayList<>();
|
list.add(map);
|
//获取total
|
long total = PageUtils.count(new ISelect() {
|
@Override
|
public void doSelect() {
|
serviceSubtaskVO.setPageNum(null);
|
serviceSubtaskVO.setPageSize(null);
|
serviceSubtaskService.patItem2(serviceSubtaskVO);
|
}
|
});
|
return getDataTable2(total, list);
|
}
|
|
/**
|
* 导出单一任务(随访宣教)列表
|
*/
|
//@PreAuthorize("@ss.hasPermi('system:taskcall:export')")
|
@Log(title = "单一任务(随访宣教)", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, ServiceSubtask serviceSubtask) {
|
ServiceSubtaskVO serviceSubtaskVO = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskVO.class);
|
List<ServiceSubtask> list = serviceSubtaskService.selectServiceSubtaskList(serviceSubtaskVO);
|
ExcelUtil<ServiceSubtask> util = new ExcelUtil<ServiceSubtask>(ServiceSubtask.class);
|
util.exportExcel(response, list, "单一任务(随访)数据");
|
}
|
|
/**
|
* 获取单一任务(随访)详细信息
|
*/
|
//@PreAuthorize("@ss.hasPermi('system:taskcall:query')")
|
@GetMapping(value = "/getInfo/{id}")
|
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
return success(serviceSubtaskService.selectServiceSubtaskById(id));
|
}
|
|
/**
|
* 新增或修改删除单一任务
|
*/
|
@ApiOperation("新增或修改删除单一任务")
|
//@PreAuthorize("@ss.hasPermi('system:task:add')")
|
@Log(title = "单一任务(随访)", businessType = BusinessType.INSERT)
|
@PostMapping("/insertOrUpdateTask")
|
public AjaxResult insertOrUpdateHeTask(@RequestBody ServiceTaskVO ivrTaskVO) {
|
log.error("insertOrUpdateHeTask的入参为:{}", ivrTaskVO);
|
LoginUser loginUser = getLoginUser();
|
SysUser user = loginUser.getUser();
|
ivrTaskVO.setCreateBy(user.getNickName());
|
ivrTaskVO.setUpdateBy(user.getNickName());
|
ivrTaskVO.setOrgid(user.getOrgid());
|
return success(serviceSubtaskService.insertOrUpdateTask(ivrTaskVO));
|
}
|
|
@ApiOperation("修改子任务")
|
@PostMapping("/update")
|
public AjaxResult update(@RequestBody ServiceSubtask serviceSubtask) {
|
serviceSubtask.setUpdateBy(getLoginUser().getUser().getNickName());
|
return toAjax(serviceSubtaskService.updateServiceSubtask(serviceSubtask));
|
}
|
|
@ApiOperation("新增子任务")
|
@PostMapping("/addSubTask")
|
public AjaxResult addSubTask(@RequestBody ServiceSubtask serviceSubtask) {
|
SysUser user = getLoginUser().getUser();
|
if (ObjectUtils.isNotEmpty(user)) serviceSubtask.setOrgid(user.getOrgid());
|
return toAjax(serviceSubtaskService.insertServiceSubtask(serviceSubtask));
|
}
|
|
@ApiOperation("患者再次随访")
|
@PostMapping("/addSubTaskAgain")
|
public AjaxResult addSubTaskAgain(@RequestBody ServiceSubtask serviceSubtask) {
|
SysUser user = getLoginUser().getUser();
|
if (ObjectUtils.isNotEmpty(user)) serviceSubtask.setOrgid(user.getOrgid());
|
return success(serviceSubtaskService.addSubTaskAgain(serviceSubtask));
|
}
|
|
/**
|
* 根据条件查询任务信息
|
*/
|
@ApiOperation("根据条件查询任务信息")
|
@PostMapping("/queryTaskByCondition")
|
public AjaxResult queryTaskByCondition(@RequestBody ServiceSubtaskVO ivrTaskcallVO) {
|
//根据入参查询信息
|
ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(ivrTaskcallVO, ServiceSubtask.class);
|
ServiceTaskVO ivrTaskVO = serviceSubtaskService.queryTaskByCondition(serviceSubtask);
|
return success(ivrTaskVO);
|
}
|
|
/**
|
* 电话回调任务(上海)
|
*/
|
@ApiOperation("电话回调任务")
|
@PostMapping("/phoneCallBack")
|
public AjaxResult phoneCallBack(@RequestBody PhoneCallBackVO phoneCallBackVO) {
|
serviceSubtaskService.phoneCallBack(phoneCallBackVO);
|
return success();
|
}
|
|
@ApiOperation("电话ASR通话回调(雨绮)")
|
@PostMapping("/phoneCallBackYQ")
|
public PhoneCallBackYQVO phoneCallBackYQ(@RequestBody PhoneCallReqYQVO phoneCallReqYQVO) {
|
log.error("电话ASR通话回调(雨绮) ?{}", phoneCallReqYQVO);
|
// SysUser user = getLoginUser().getUser();
|
// phoneCallReqYQVO.setOrgid(user.getOrgid());
|
PhoneCallBackYQVO phoneCallBackYQVO = serviceSubtaskService.phoneCallBackYQ(phoneCallReqYQVO);
|
return phoneCallBackYQVO;
|
}
|
|
/**
|
* 电话任务拉取(雨绮)
|
*/
|
@ApiOperation("电话任务拉取(雨绮)")
|
@PostMapping("/taskPull")
|
public List<PullTaskVO> taskPull() {
|
log.error("电话任务拉取(雨绮)");
|
List<PullTaskVO> pullTaskVOList = serviceSubtaskService.taskPull();
|
// List<PullTaskVO> pullTaskVOList = new ArrayList<>();
|
|
log.error("电话任务拉取(雨绮):{}", pullTaskVOList);
|
return pullTaskVOList;
|
}
|
|
/**
|
* 患者问题结果记录
|
*/
|
@ApiOperation("患者问题结果记录(电话)")
|
@PostMapping("/saveQuestionAnswerPhone")
|
public AjaxResult saveQuestionAnswerPhone(@RequestBody ServiceSubTaskDetailReq serviceSubTaskDetailReq) {
|
// SysUser user = getLoginUser().getUser();
|
// serviceSubTaskDetailReq.setOrgid(user.getOrgid());
|
return toAjax(serviceSubtaskService.saveQuestionAnswerPhone(serviceSubTaskDetailReq));
|
}
|
|
/**
|
* 通话记录回调
|
*/
|
@ApiOperation("通话记录回调(上海)")
|
@PostMapping("/recordAcceptshanghai")
|
public AjaxResult recordAccepshanghait(@RequestBody ServiceSubTaskDetailReq serviceSubTaskDetailReq) {
|
return toAjax(serviceSubtaskService.saveQuestionAnswerPhone(serviceSubTaskDetailReq));
|
}
|
|
/**
|
* 通话记录回调
|
*/
|
@ApiOperation("通话记录回调(雨绮)")
|
@PostMapping("/recordAccept")
|
public AjaxResult recordAccept(@RequestBody PhoneCallRecordVO phoneCallRecordVO) {
|
log.error("通话记录回调(雨绮):{}", phoneCallRecordVO);
|
// return toAjax(serviceSubtaskService.saveQuestionAnswerPhone(serviceSubTaskDetailReq));
|
// SysUser user = getLoginUser().getUser();
|
// phoneCallRecordVO.setOrgid(user.getOrgid());
|
serviceSubtaskService.recordAccept(phoneCallRecordVO);
|
return success();
|
}
|
|
/**
|
* 获取每个月的随访、复诊量
|
*/
|
@ApiOperation("获取每个月的随访、复诊量")
|
@PostMapping("/getSfFzInfoEveryMonth")
|
public TableDataInfo getSfFzInfoEveryMonth(@RequestBody ServiceSubtaskCountReq serviceSubtaskCountReq) {
|
return getDataTable(serviceSubtaskService.getSfFzInfoEveryMonth(serviceSubtaskCountReq));
|
}
|
|
/**
|
* 获取随访统计比例
|
*/
|
@ApiOperation("获取随访统计比例")
|
@PostMapping("/getSfStatistics")
|
public AjaxResult getSfStatistics(@RequestBody ServiceSubtaskCountReq serviceSubtaskCountReq) {
|
if (CollectionUtils.isEmpty(serviceSubtaskCountReq.getServiceType())) {
|
return error("服务类型不能为空");
|
}
|
return success(serviceSubtaskService.getSfStatistics(serviceSubtaskCountReq));
|
}
|
|
/**
|
* 随访统计导出
|
*/
|
//@PreAuthorize("@ss.hasPermi('system:taskcall:export')")
|
@Log(title = "随访统计导出)", businessType = BusinessType.EXPORT)
|
@PostMapping("/getSfStatisticsExport")
|
public void export(HttpServletResponse response, ServiceSubtaskCountReq serviceSubtaskCountReq) {
|
List<ServiceSubtaskStatistic> sfStatistics = serviceSubtaskService.getSfStatistics(serviceSubtaskCountReq);
|
ExcelUtil<ServiceSubtaskStatistic> util = new ExcelUtil<ServiceSubtaskStatistic>(ServiceSubtaskStatistic.class);
|
util.exportExcel(response, sfStatistics, "随访统计导出");
|
}
|
|
}
|