陈昶聿
10 小时以前 ca11d871c67ca9e1668193b95fbdc2bd9a18a280
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
@@ -1,6 +1,7 @@
package com.ruoyi.web.controller.smartor;
import com.github.pagehelper.ISelect;
import com.ruoyi.common.annotation.AddOrgId;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
@@ -25,6 +26,7 @@
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDate;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -44,7 +46,7 @@
    private IServiceTaskService serviceTaskService;
    @Autowired
    private IServiceSubtaskService iServiceTaskCallService;
    private IServiceSubtaskService iServiceSubtaskService;
    @Value("${pub_key}")
    private String pub_key;
@@ -60,27 +62,41 @@
     */
    @ApiOperation("查询任务列表")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:list')")
    @PostMapping("/list")
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("list")
    public TableDataInfo list(@RequestBody ServiceTask serviceTask) {
        PageUtils.startPageByPost(serviceTask.getPageNum(), serviceTask.getPageSize());
//        List<ServiceTask> list = serviceTaskService.selectServiceTaskList(serviceTask);
        List<ServiceTask> list = serviceTaskService.selectServiceTaskAndtaskDeptList(serviceTask);
        List<ServiceTaskVO> serviceTaskVOS = DtoConversionUtils.sourceToTarget(list, ServiceTaskVO.class);
        List<Long> taskIds = list.stream().map(ServiceTask::getTaskid).collect(Collectors.toList());
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        serviceSubtaskVO.setTaskIds(taskIds);
        serviceSubtaskVO.setStartOutHospTime(serviceTask.getStartOutHospTime());
        serviceSubtaskVO.setEndOutHospTime(serviceTask.getEndOutHospTime());
        // 批量查询所有子任务
        Map<Long, List<ServiceSubtask>> subtaskMap = iServiceSubtaskService
                .selectServiceSubtaskList(serviceSubtaskVO)
                .stream()
                .collect(Collectors.groupingBy(ServiceSubtask::getTaskid));
        if (CollectionUtils.isNotEmpty(serviceTaskVOS)) {
            for (ServiceTaskVO ServiceTaskVO : serviceTaskVOS) {
                ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
                serviceSubtaskVO.setTaskid(ServiceTaskVO.getTaskid());
                serviceSubtaskVO.setStartOutHospTime(serviceTask.getStartOutHospTime());
                serviceSubtaskVO.setEndOutHospTime(serviceTask.getEndOutHospTime());
                List<ServiceSubtask> ServiceTaskcalls = iServiceTaskCallService.selectServiceSubtaskList(serviceSubtaskVO);
                if (CollectionUtils.isNotEmpty(ServiceTaskcalls)) {
            for (ServiceTaskVO taskVO : serviceTaskVOS) {
                List<ServiceSubtask> subtasks = subtaskMap.getOrDefault(taskVO.getTaskid(), Collections.emptyList());
                if (CollectionUtils.isNotEmpty(subtasks)) {
                    //已发送(子任务中的 sendstate=1为被领取)
                    long yfs = ServiceTaskcalls.stream().filter(serviceTaskcall1 -> (serviceTaskcall1.getSendstate() != null && serviceTaskcall1.getSendstate() >= 3L) || (serviceTaskcall1.getSendstate() != null && serviceTaskcall1.getSendstate() == 1L)).collect(Collectors.toList()).stream().count();
                    long yfs = subtasks.stream().filter(s -> s.getSendstate() != null &&
                            (s.getSendstate() >= 3L || s.getSendstate() == 1L)).count();
                    //未发送
                    long wfs = ServiceTaskcalls.stream().filter(serviceTaskcall1 -> serviceTaskcall1.getSendstate() != null && serviceTaskcall1.getSendstate() == 2L).collect(Collectors.toList()).stream().count();
                    ServiceTaskVO.setYfs(yfs);
                    ServiceTaskVO.setWfs(wfs);
                    long wfs = subtasks.stream().filter(s -> s.getSendstate() != null &&
                            s.getSendstate() == 2L).count();
                    taskVO.setYfs(yfs);
                    taskVO.setWfs(wfs);
                }
            }
@@ -129,6 +145,7 @@
    @ApiOperation("新增任务")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:add')")
    @Log(title = "语音任务", businessType = BusinessType.INSERT)
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/add")
    public AjaxResult add(@RequestBody ServiceTask ServiceTask) {
        SysUser user = getLoginUser().getUser();
@@ -155,6 +172,7 @@
    @ApiOperation("修改任务")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:edit')")
    @Log(title = "任务", businessType = BusinessType.UPDATE)
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody ServiceTask ServiceTask) {
        return toAjax(serviceTaskService.updateServiceTask(ServiceTask));