liusheng
2026-10-10 87b79ea739ec32bd7d0e493a6ea8525212f6c763
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
package com.ruoyi.web.controller.smartor;
 
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;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.smartor.domain.ServiceSubtaskDetailTrace;
import com.smartor.domain.VO.DetailTraceDealVO;
import com.smartor.domain.VO.SatisfactionExceptConfigQuestionReqVO;
import com.smartor.domain.VO.ServiceSubtaskDetailTraceVO;
import com.smartor.service.IServiceSubtaskDetailTraceService;
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.web.bind.annotation.*;
 
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
 
/**
 * 随访任务异常记录跟踪Controller
 *
 * @author lihu
 * @date 2026-03-24
 */
@Slf4j
@Api("随访任务异常记录跟踪")
@RestController
@RequestMapping("/smartor/trace")
public class ServiceSubtaskDetailTraceController extends BaseController {
    @Autowired
    private IServiceSubtaskDetailTraceService serviceSubtaskDetailTraceService;
 
    /**
     * 查询随访任务异常记录跟踪列表
     */
    @ApiOperation("查询随访任务异常记录跟踪列表")
    //@PreAuthorize("@ss.hasPermi('smartor:ltrace:list')")
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/list")
    public Map<String, Object> list(@RequestBody ServiceSubtaskDetailTraceVO serviceSubtaskDetailTraceVO) {
        Integer offset = PageUtils.getOffset(serviceSubtaskDetailTraceVO.getPageNum(), serviceSubtaskDetailTraceVO.getPageSize());
        serviceSubtaskDetailTraceVO.setPageNum(offset);
        List<ServiceSubtaskDetailTrace> list = serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceList(serviceSubtaskDetailTraceVO);
 
        serviceSubtaskDetailTraceVO.setPageNum(null);
        serviceSubtaskDetailTraceVO.setPageSize(null);
        List<ServiceSubtaskDetailTrace> total = serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceList(serviceSubtaskDetailTraceVO);
 
        return getDataTable3(CollectionUtils.isNotEmpty(total) ? total.size() : 0, list);
    }
 
 
    @ApiOperation("异常问题处理情况查询")
    //@PreAuthorize("@ss.hasPermi('smartor:ltrace:list')")
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/tracedeallist")
    public Map<String, Object> tracedeallist(@RequestBody DetailTraceDealVO detailTraceDealVO) {
        // PageUtils.getOffset 返回的是 offset,SQL 里按 limit/offset 使用
        Integer offset = PageUtils.getOffset(detailTraceDealVO.getPageNum(), detailTraceDealVO.getPageSize());
        detailTraceDealVO.setPageNum(offset);
        // 一次查询同时返回分页数据、问题总数和全量汇总
        // (原来为了拿总数把 method 又全量跑了一遍,N+1 也跟着跑第二遍)
        Map<String, Object> result = serviceSubtaskDetailTraceService.tracedeallist(detailTraceDealVO);
 
        Object questionTotal = result.get("questionTotal");
        long total = questionTotal == null ? 0L : Long.parseLong(String.valueOf(questionTotal));
        return getDataTable3(total, result);
    }
 
    /**
     * 获取满意度异常配置题目
     */
    @ApiOperation("获取满意度异常配置题目")
    @PostMapping("/getSatisfactionExceptConfigQuestion")
    public Map<String, Object> getSatisfactionExceptConfigQuestion(@RequestBody SatisfactionExceptConfigQuestionReqVO questionReqVO) {
        log.info("获取满意度异常配置题目的入参: {}", questionReqVO);
        Map<String, Object> satisfactionExceptConfigQuestion = serviceSubtaskDetailTraceService.getSatisfactionExceptConfigQuestion(questionReqVO);
        return satisfactionExceptConfigQuestion;
    }
 
    /**
     * 导出随访任务异常记录跟踪列表
     */
    @ApiOperation("导出随访任务异常记录跟踪列表")
    //@PreAuthorize("@ss.hasPermi('smartor:ltrace:export')")
    @Log(title = "随访任务异常记录跟踪", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ServiceSubtaskDetailTraceVO serviceSubtaskDetailTraceVO) {
        List<ServiceSubtaskDetailTrace> list = serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceList(serviceSubtaskDetailTraceVO);
        ExcelUtil<ServiceSubtaskDetailTrace> util = new ExcelUtil<ServiceSubtaskDetailTrace>(ServiceSubtaskDetailTrace.class);
        util.exportExcel(response, list, "随访任务异常记录跟踪数据");
    }
 
    /**
     * 获取随访任务异常记录跟踪详细信息
     */
    @ApiOperation("获取随访任务异常记录跟踪详细信息")
    //@PreAuthorize("@ss.hasPermi('smartor:ltrace:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(serviceSubtaskDetailTraceService.selectServiceSubtaskDetailTtraceById(id));
    }
 
    /**
     * 新增随访任务异常记录跟踪
     */
    @ApiOperation("新增随访任务异常记录跟踪")
    //@PreAuthorize("@ss.hasPermi('smartor:ltrace:add')")
    @Log(title = "随访任务异常记录跟踪", businessType = BusinessType.INSERT)
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/add")
    public AjaxResult add(@RequestBody ServiceSubtaskDetailTrace serviceSubtaskDetailTrace) {
        return toAjax(serviceSubtaskDetailTraceService.insertServiceSubtaskDetailTtrace(serviceSubtaskDetailTrace));
    }
 
    /**
     * 修改随访任务异常记录跟踪
     */
    @ApiOperation("修改随访任务异常记录跟踪")
    //@PreAuthorize("@ss.hasPermi('smartor:ltrace:edit')")
    @Log(title = "随访任务异常记录跟踪", businessType = BusinessType.UPDATE)
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody ServiceSubtaskDetailTrace serviceSubtaskDetailTrace) {
        if (serviceSubtaskDetailTrace.getPatdescJson() != null) serviceSubtaskDetailTrace.setPatdesc(serviceSubtaskDetailTrace.getPatdescJson().toJSONString());
        return toAjax(serviceSubtaskDetailTraceService.updateServiceSubtaskDetailTtrace(serviceSubtaskDetailTrace));
    }
 
    /**
     * 删除随访任务异常记录跟踪
     */
    @ApiOperation("删除随访任务异常记录跟踪")
    //@PreAuthorize("@ss.hasPermi('smartor:ltrace:remove')")
    @Log(title = "随访任务异常记录跟踪", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(serviceSubtaskDetailTraceService.deleteServiceSubtaskDetailTtraceByIds(ids));
    }
}