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.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; /** *

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

* * @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)); } @PostMapping("/saveProcess") @ApiOperation("办理进度录入") public R saveProcess(@Valid @RequestBody ComplaintProcessDTO dto){ complaintService.saveProcess(dto,getUserId()); return R.ok(); } @PostMapping("/saveResult") @ApiOperation("办理结果录入") public R saveResult(@RequestBody ComplaintCompletionDTO dto){ complaintService.saveResult(dto,getLoginUserInfo()); return R.ok(); } /** * 问题上报 */ @PostMapping("/report") @ApiOperation(value = "问题上报") public R report(@RequestBody ComplaintReportDTO complaintReportDTO) { complaintService.saveReport(complaintReportDTO, getLoginUserInfo()); return R.ok(); } /** * 诉求下派 */ @PostMapping("/saveDispatch") public R saveDispatch(@RequestBody ComplaintDispatch dto){ complaintService.saveDispatch(dto, getLoginUserInfo()); return R.ok(); } /** * 延期申请 */ @PostMapping("/saveDelay") 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())); } }