package cn.cslg.pas.controller; import cn.cslg.pas.common.core.base.Constants; import cn.cslg.pas.common.dto.business.*; import cn.cslg.pas.common.model.cronModel.Records; import cn.cslg.pas.common.model.request.StringRequest; import cn.cslg.pas.common.utils.Response; import cn.cslg.pas.common.vo.business.GetHandleResultFileVO; import cn.cslg.pas.common.vo.business.TaskDetailsVO; import cn.cslg.pas.factorys.businessFactory.Business; import cn.cslg.pas.factorys.businessFactory.BusinessFactory; import cn.cslg.pas.service.business.ProjectTaskService; import cn.cslg.pas.service.business.TaskHandleResultService; import cn.hutool.http.HttpStatus; import io.swagger.v3.oas.annotations.Operation; import jakarta.validation.constraints.PastOrPresent; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.List; /** * 项目任务的Controller层 * @Author xiexiang * @Date 2023/11/22 */ @Slf4j @RequestMapping(Constants.API_XiaoSHI + "/projectTask") @RestController public class ProjectTaskController { @Autowired private BusinessFactory businessFactory; @Autowired private ProjectTaskService projectTaskService; @Autowired private TaskHandleResultService taskHandleResultService; @Operation(summary = "添加项目开卷审核任务") @PostMapping("/addProjectOpenAuditTask") public Response addProjectOpenAuditTask(@RequestBody PatentDigProjectTaskDTO patentDigProjectTaskDTO) throws Exception { Integer id = (Integer) projectTaskService.addProjectOpenAuditTask(patentDigProjectTaskDTO); return Response.success(id); } @Operation(summary = "添加任务") @PostMapping("/addTask") public Response addTask(@RequestBody ProjectTaskDTO projectTaskDTO) throws Exception { Integer id = projectTaskService.addTask(projectTaskDTO); return Response.success(id); } @Operation(summary = "添加任务处理结果") @PostMapping("/addTaskAuditResult") public Response addTaskAuditResult(@RequestBody TaskHandleResultDTO taskHandleResultDTO) throws Exception { Integer id = taskHandleResultService.addTaskAuditResult(taskHandleResultDTO); return Response.success(id); } @Operation(summary = "查询任务处理结果") @GetMapping("/getTaskHandleResult") public Response getTaskHandleResult(Integer taskId) throws IOException { GetHandleResultFileVO getHandleResultFileVO = taskHandleResultService.getTaskHandleResult(taskId); return Response.success(getHandleResultFileVO); } @Operation(summary = "查询任务") @PostMapping("/queryProjectTask") public Response queryProjectTask(@RequestBody StringRequest stringRequest) throws Exception { Business business = businessFactory.getClass("projectTaskService"); Records records = (Records) business.queryMessage(stringRequest); return Response.success(records); } @Operation(summary = "查询审核历史") @GetMapping("/queryAuditHistory") public Response queryAuditHistory(Integer taskId) throws IOException { //查询审核历史就是根据taskId,查询所有关联任务的信息 TaskDetailsVO taskDetailsVO = projectTaskService.getAuditHistory(taskId); return Response.success(taskDetailsVO); } @Operation(summary = "删除任务") @PostMapping("/deleteProjectTask") public String deleteProjectTask(@RequestBody List ids) throws IOException { Business business = businessFactory.getClass("projectTaskService"); business.deleteMessage(ids); return Response.success(); } @Operation(summary = "更改任务状态:0完成,1取消,2缺少资料") @GetMapping("/updateTaskStatus") public Response updateTaskStatus(Integer taskId, Integer type){ try { projectTaskService.finishTask(taskId, type); return Response.success("成功"); } catch (Exception e) { return Response.error("失败"); } } }