Files
klp-oa/klp-flow/src/main/java/com/klp/flow/controller/TsComplaintAcceptController.java
Joshi 499d9c5611 feat(flow): 添加投诉处理驳回功能
- 在ITsComplaintAcceptService接口中新增opinionReject和feedbackReject方法
- 在TsComplaintAcceptController控制器中添加意见驳回和反馈驳回的REST端点
- 实现TsComplaintAcceptServiceImpl中的驳回业务逻辑,包括状态更新和标记设置
- 为TsComplaintTask和TsPlanExecuteRel实体类添加rejectMark字段
- 更新相关BO、VO类和XML映射文件以支持驳回标记字段
- 实现驳回时对当前记录和其他关联记录的状态更新机制
2026-06-23 17:34:39 +08:00

154 lines
5.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.klp.flow.controller;
import java.util.List;
import java.util.Arrays;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.klp.common.annotation.RepeatSubmit;
import com.klp.common.annotation.Log;
import com.klp.common.core.controller.BaseController;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.flow.domain.vo.TsComplaintAcceptVo;
import com.klp.flow.domain.bo.TsComplaintAcceptBo;
import com.klp.flow.service.ITsComplaintAcceptService;
import com.klp.common.core.page.TableDataInfo;
/**
* 投诉受理单主
*
* @author klp
* @date 2026-06-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/flow/complaintAccept")
public class TsComplaintAcceptController extends BaseController {
private final ITsComplaintAcceptService iTsComplaintAcceptService;
/**
* 查询投诉受理单主列表
*/
@GetMapping("/list")
public TableDataInfo<TsComplaintAcceptVo> list(TsComplaintAcceptBo bo, PageQuery pageQuery) {
return iTsComplaintAcceptService.queryPageList(bo, pageQuery);
}
/**
* 导出投诉受理单主列表
*/
@Log(title = "投诉受理单主", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(TsComplaintAcceptBo bo, HttpServletResponse response) {
List<TsComplaintAcceptVo> list = iTsComplaintAcceptService.queryList(bo);
ExcelUtil.exportExcel(list, "投诉受理单主", TsComplaintAcceptVo.class, response);
}
/**
* 获取投诉受理单主详细信息
*
* @param acceptId 主键
*/
@GetMapping("/{acceptId}")
public R<TsComplaintAcceptVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long acceptId) {
return R.ok(iTsComplaintAcceptService.queryById(acceptId));
}
/**
* 新增投诉受理单主
*/
@Log(title = "投诉受理单主", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody TsComplaintAcceptBo bo) {
return toAjax(iTsComplaintAcceptService.insertByBo(bo));
}
/**
* 修改投诉受理单主
*/
@Log(title = "投诉受理单主", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TsComplaintAcceptBo bo) {
return toAjax(iTsComplaintAcceptService.updateByBo(bo));
}
/**
* 删除投诉受理单主
*
* @param acceptIds 主键串
*/
@Log(title = "投诉受理单主", businessType = BusinessType.DELETE)
@DeleteMapping("/{acceptIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] acceptIds) {
return toAjax(iTsComplaintAcceptService.deleteWithValidByIds(Arrays.asList(acceptIds), true));
}
/**
* 意见下发修改flow_status=2按字典部门创建代办任务
*
* @param acceptId 受理单ID
*/
@Log(title = "意见下发", businessType = BusinessType.UPDATE)
@PostMapping("/opinionDispatch/{acceptId}")
public R<Void> opinionDispatch(@NotNull(message = "主键不能为空")
@PathVariable Long acceptId) {
return toAjax(iTsComplaintAcceptService.opinionDispatch(acceptId));
}
/**
* 反馈下发修改flow_status=4按字典部门创建执行反馈记录
*
* @param acceptId 受理单ID
*/
@Log(title = "反馈下发", businessType = BusinessType.UPDATE)
@PostMapping("/feedbackDispatch")
public R<Void> feedbackDispatch(@RequestParam Long acceptId,
@RequestParam String deptIds) {
List<Long> deptIdList = Arrays.stream(deptIds.split(",")).map(Long::parseLong).collect(Collectors.toList());
return toAjax(iTsComplaintAcceptService.feedbackDispatch(acceptId, deptIdList));
}
/**
* 意见驳回当前部门taskStatus→1、rejectMark→1主表flowStatus→1其他部门rejectMark→2
*
* @param taskId 代办任务ID
* @param reason 驳回意见填入deptOpinion
*/
@Log(title = "意见驳回", businessType = BusinessType.UPDATE)
@PostMapping("/opinionReject/{taskId}")
public R<Void> opinionReject(@NotNull(message = "主键不能为空")
@PathVariable Long taskId,
@RequestParam String reason) {
return toAjax(iTsComplaintAcceptService.opinionReject(taskId, reason));
}
/**
* 反馈驳回当前部门executeStatus→1、rejectMark→1主表flowStatus→3其他部门rejectMark→2
*
* @param relId 执行反馈记录ID
* @param reason 驳回原因填入executeResult
*/
@Log(title = "反馈驳回", businessType = BusinessType.UPDATE)
@PostMapping("/feedbackReject/{relId}")
public R<Void> feedbackReject(@NotNull(message = "主键不能为空")
@PathVariable Long relId,
@RequestParam String reason) {
return toAjax(iTsComplaintAcceptService.feedbackReject(relId, reason));
}
}