package com.panzhihua.sangeshenbian.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.sangeshenbian.annotation.DistributedLock; import com.panzhihua.sangeshenbian.model.dto.*; import com.panzhihua.sangeshenbian.model.entity.Complaint; import com.panzhihua.sangeshenbian.model.entity.ComplaintAuditRecord; import com.panzhihua.sangeshenbian.model.entity.ComplaintProgress; import com.panzhihua.sangeshenbian.model.query.ComplaintQuery; import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; import com.panzhihua.sangeshenbian.service.IComplaintService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; /** *

* 诉求报告表 前端控制器 *

* * @author * @since 2025-02-22 */ @Validated @RestController @RequestMapping("/applet/complaint") @RequiredArgsConstructor @Api(tags = "诉求管理") public class ComplaintController extends BaseController { private final IComplaintService complaintService; /** * 录入诉求 */ @PostMapping("/save") @ApiOperation(value = "录入诉求") @DistributedLock(lockName = "complaint_serial_number_lock") public void save(Complaint complaint) { complaintService.saveComplaint(complaint, getUserId()); } @PostMapping("/list") @ApiOperation("工单列表") public R> complaintList(@RequestBody ComplaintQuery query) { return R.ok(complaintService.complaintList(query,getLoginUserInfo())); } @GetMapping("/detail") @ApiOperation("工单详情") public R detail(@ApiParam(name = "id", value = "工单id", required = true) Long id) { return R.ok(complaintService.detail(id)); } @GetMapping("/progress/{complaintId}") public R> progress(@ApiParam(name = "complaintId", value = "诉求id", required = true) @PathVariable("complaintId") Long complaintId) { return R.ok(complaintService.progress(complaintId)); } @PostMapping("/save-process") @ApiOperation("办理进度录入") public R saveProcess(@Valid @RequestBody ComplaintProcessDTO dto){ complaintService.saveProcess(dto,getLoginUserInfo()); return R.ok(); } @PostMapping("/save-result") @ApiOperation("办理结果录入") public R saveResult(@RequestBody ComplaintCompletionDTO dto){ complaintService.saveResult(dto,getLoginUserInfo()); return R.ok(); } @GetMapping("/delay-detail/{complaintId}") @ApiOperation("延期情况说明") public R delayDetail(@ApiParam(name = "complaintId", value = "诉求id", required = true) @PathVariable("complaintId") Long complaintId) { return R.ok(complaintService.delayDetail(complaintId)); } /** * 问题上报 */ @PostMapping("/report") @ApiOperation(value = "问题上报") public R report(@RequestBody ComplaintReportDTO complaintReportDTO) { complaintService.saveReport(complaintReportDTO, getLoginUserInfo()); return R.ok(); } /** * 诉求下派 */ @PostMapping("/saveDispatch") @ApiOperation("诉求下派") public R saveDispatch(@RequestBody ComplaintDispatch dto){ complaintService.saveDispatch(dto, getLoginUserInfo()); return R.ok(); } /** * 延期申请 */ @PostMapping("/saveDelay") @ApiOperation(value = "延期申请") public R saveDelay(@RequestBody ComplaintDelayDTO dto){ complaintService.saveDelay(dto, getLoginUserInfo()); return R.ok(); } /** * 延期审核 */ @PostMapping("/delayAudit") @ApiOperation(value = "延期审核") public R delayAudit(@RequestBody ComplaintDelayAuditDTO dto) { complaintService.delayAudit(dto, getLoginUserInfo()); return R.ok(); } /** * 上报审核 */ @PostMapping("/reportAudit") @ApiOperation(value = "问题上报审核") public R reportAudit(@RequestBody ComplaintReporAuditDTO dto) { complaintService.reportAudit(dto, getLoginUserInfo()); return R.ok(); } /** * 获取下派单位列表 */ @GetMapping("/getDispatchList") @ApiOperation(value = "获取下派单位列表") public R getDispatchList() { return R.ok(complaintService.getDispatchList(getLoginUserInfo())); } }