package cn.cslg.pas.controller; import cn.cslg.pas.common.core.base.Constants; import cn.cslg.pas.common.dto.ComparedPatentVO; import cn.cslg.pas.common.dto.business.GetFeatureSplitDTO; import cn.cslg.pas.common.dto.business.ProductMessageDTO; import cn.cslg.pas.common.dto.business.TortCompareRecordDTO; import cn.cslg.pas.common.dto.business.TortTaskDTO; import cn.cslg.pas.common.model.cronModel.Records; import cn.cslg.pas.common.utils.Response; import cn.cslg.pas.common.vo.business.ProductMessageVO; import cn.cslg.pas.common.vo.business.TortCompareRecordVO; import cn.cslg.pas.exception.ConditionException; import cn.cslg.pas.exception.UnLoginException; import cn.cslg.pas.exception.XiaoShiException; import cn.cslg.pas.service.business.FTOCompareRecordService; import cn.cslg.pas.service.business.ProductMessageService; import cn.cslg.pas.service.business.ProjectTaskService; import cn.cslg.pas.service.business.TortCompareRecordService; import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * FTOTort * * @Author xiexiang * @Date 2023/12/8 */ @Slf4j @RequestMapping(Constants.API_XiaoSHI + "/fto") @RestController public class FTOController { @Autowired private FTOCompareRecordService ftoCompareRecordService; @Autowired private ProjectTaskService projectTaskService; @Operation(summary = "查询某个任务下的某件专利的对比结果(包含拆分特征)") @PostMapping("/getFTOCompareRecord") public Response getFTOCompareRecord(@RequestBody GetFeatureSplitDTO getFeatureSplitDTO) throws Exception { TortCompareRecordVO tortCompareRecordVO = ftoCompareRecordService.getTortCompareRecord(getFeatureSplitDTO); return Response.success(tortCompareRecordVO); } @Operation(summary = "保存FTO对比结果") @PostMapping("/addFTOCompareRecord") public Response addFTOCompareRecord(@RequestBody TortCompareRecordDTO tortCompareRecordDTO) { if (tortCompareRecordDTO != null) { List ids = new ArrayList<>(); try { ids = ftoCompareRecordService.addFTOCompareRecord(tortCompareRecordDTO); } catch (Exception e) { if (e instanceof XiaoShiException) { return Response.error(e.getMessage()); } else if (e instanceof UnLoginException) { return Response.unLogin(e.getMessage()); } else if (e instanceof ConditionException) { return Response.conditionError(e.getMessage()); } } Records records = new Records(); records.setData(ids); return Response.success(records); } else { return Response.error("入参为null"); } } @Operation(summary = "添加FTO协同任务") @PostMapping("/addFTOAssitTask") public Response addFTOAssitTask(@RequestBody TortTaskDTO tortTaskDTO) { Integer id = projectTaskService.addFTOAssitTask(tortTaskDTO); Records records = new Records(); records.setData(id); return Response.success(records); } @Operation(summary = "保存FTO协同任务对比结果") @PostMapping("/addFTOAssitTaskResult") public Response addFTOAssitTaskResult(@RequestBody TortCompareRecordDTO tortCompareRecordDTO) { List ids = ftoCompareRecordService.addFTOAssitTaskResult(tortCompareRecordDTO); Records records = new Records(); records.setData(ids); return Response.success(records); } @Operation(summary = "查询fto协同前后对比结果") @GetMapping("/getFTOAssitResult") public Response getFTOAssitResult(String patentNo, Integer taskId) { Integer type = 1; TortCompareRecordVO tortCompareRecordVO = ftoCompareRecordService.getFTOAssitResult(patentNo, taskId, type); return Response.success(tortCompareRecordVO); } @Operation(summary = "保存最终对比结果") @PostMapping("/addFinalAssitResult") public Response addFinalAssitResult(@RequestBody TortCompareRecordDTO tortCompareRecordDTO) { List ids = ftoCompareRecordService.addFinalAssitResult(tortCompareRecordDTO); Records records = new Records(); records.setData(ids); return Response.success(records); } @Operation(summary = "查询最终结果") @GetMapping("/getFTOFinalResult") public Response getFTOFinalResult(String patentNo, Integer taskId) { Integer type = 2; TortCompareRecordVO tortCompareRecordVO = ftoCompareRecordService.getFTOAssitResult(patentNo, taskId, type); return Response.success(tortCompareRecordVO); } @Operation(summary = "查询报告专利最新对比结果") @GetMapping("/getLastRecord") public Response getLastRecord(Integer projectId, String patentNo) { ftoCompareRecordService.getLastRecord(projectId, patentNo); return null; } @Operation(summary = "查询报告专利最新对比结果") @GetMapping("/getComparedPatent") public Response getComparedPatent(Integer projectId,Integer compareResult) { List comparedPatentVOS = ftoCompareRecordService.getComparedPatent(projectId,compareResult); Records records = new Records(); records.setData(comparedPatentVOS); return Response.success(records); } }