lwhhszx %!s(int64=2) %!d(string=hai) anos
pai
achega
bff3bccc86

+ 77 - 0
RMS/src/main/java/cn/cslg/report/common/model/vo/CompareMessageVO.java

@@ -0,0 +1,77 @@
+package cn.cslg.report.common.model.vo;
+
+
+import cn.cslg.report.common.model.BaseVO;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author lrj
+ * @date 2022-11-9
+ * @description 任务VO类
+ */
+@Data
+@Accessors(chain = true)
+@Schema(description="分配任务VO",required = true)
+public class CompareMessageVO {
+    private Integer id;
+    @Schema(description = "标的说明")
+    private String targetDescription;
+
+    @Schema(description = "对比说明")
+    private String compareDescription;
+
+    @Schema(description = "对比结果")
+    private Integer compareResult;
+
+    @Schema(description = "专利号")
+    private String signPatentNo;
+
+    /**
+     * 特征翻译
+     */
+    @Schema(description = "特征翻译")
+    private String contentOut;
+    /**
+     * 特征
+     */
+    @Schema(description = "特征")
+    private String content;
+
+    /**
+     * 所属报告
+     */
+    @Schema(description = "所属报告")
+    private Integer reportId;
+    /**
+     *  解释
+     */
+    @Schema(description = "解释")
+    private String explainText;
+    /**
+     *  拆分类型
+     */
+    @Schema(description = "拆分类型")
+    private Integer splitBy;
+    /**
+     *  拆分方式
+     */
+    @Schema(description = "拆分方式")
+    private Integer splitType;
+    @Schema(description = "权要名")
+    private String rightName;
+    @Schema(description = "权要类型")
+    private Integer rightType;
+    @Schema(description = "权要类型")
+    private Integer featuresOrder;
+    @Schema(description = "任务ID")
+    private Integer taskId;
+    @Schema(description = "权要ID")
+    private Integer rightId;
+
+}

+ 67 - 0
RMS/src/main/java/cn/cslg/report/controller/CompareMessageController.java

@@ -0,0 +1,67 @@
+package cn.cslg.report.controller;
+
+import cn.cslg.report.common.core.base.Constants;
+import cn.cslg.report.common.model.vo.CompareMessageVO;
+import cn.cslg.report.common.utils.DateUtils;
+import cn.cslg.report.common.utils.FileUtils;
+import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.entity.CompareMessage;
+import cn.cslg.report.service.business.CompareMessageService;
+import cn.hutool.core.io.FileUtil;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.core.io.FileSystemResource;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.List;
+
+@Tag(name = "FTO对比记录")
+@RestController
+@RequestMapping(Constants.REPORT_API + "/compareMessage")
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class CompareMessageController {
+    private final CompareMessageService compareMessageService;
+    @PostMapping("addCompareMessage")
+    @Operation(summary = "添加FTO对比记录")
+    public String addCompareMessage(@RequestBody List<CompareMessageVO> compareMessageVOS) throws IOException {
+        if(compareMessageService.addCompareMessage(compareMessageVOS))
+        {
+            return Response.success("添加成功");
+        }
+      return Response.error("添加失败");
+    }
+
+    @PostMapping("updateCompareMessage")
+    @Operation(summary = "更新FTO对比记录")
+    public String updateCompareMessage(List<CompareMessage> compareMessages) throws IOException {
+        if(compareMessageService.updateCompareMessage(compareMessages))
+        {
+            return Response.success("更新成功");
+        }
+        return Response.error("更新失败");
+    }
+
+    @PostMapping("removeCompareMessage")
+    @Operation(summary = "删除FTO对比记录")
+    public String removeCompareMessage(List<Integer> ids) throws IOException {
+        if(compareMessageService.removeCompareMessage(ids))
+        {
+            return Response.success("删除成功");
+        }
+        return Response.error("删除失败");
+    }
+
+    @GetMapping("queryCompareMessage")
+    @Operation(summary = "查找FTO对比记录")
+    public String queryCompareMessage(Integer taskId,String patentNo) throws IOException {
+        return Response.success(compareMessageService.queryCompareMessage(taskId,patentNo));
+    }
+}

+ 0 - 1
RMS/src/main/java/cn/cslg/report/controller/FeatureController.java

@@ -26,7 +26,6 @@ import java.util.List;
 @RestController
 @RequestMapping(Constants.REPORT_API + "/feature")
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
-@SuppressWarnings({"all"})
 public class FeatureController {
     private final FeatureService featureService;
     private final AssoTaskPatentSplitService assoTaskPatentSplitService;

+ 9 - 0
RMS/src/main/java/cn/cslg/report/mapper/AssoTaskPatentSplitMapper.java

@@ -0,0 +1,9 @@
+package cn.cslg.report.mapper;
+
+import cn.cslg.report.entity.asso.AssoTaskPatentSplit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface AssoTaskPatentSplitMapper extends BaseMapper<AssoTaskPatentSplit> {
+}

+ 15 - 0
RMS/src/main/java/cn/cslg/report/mapper/CompareMessageMapper.java

@@ -0,0 +1,15 @@
+package cn.cslg.report.mapper;
+
+import cn.cslg.report.common.model.vo.CompareMessageVO;
+import cn.cslg.report.entity.CompareMessage;
+import cn.cslg.report.entity.asso.AssoTaskPatentSplit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface CompareMessageMapper extends BaseMapper<CompareMessage> {
+    List<CompareMessageVO> getCompareMessage(@Param("taskId") Integer taskId,@Param("patentNo") String patentNo);
+}

+ 155 - 0
RMS/src/main/java/cn/cslg/report/service/business/CompareMessageService.java

@@ -0,0 +1,155 @@
+package cn.cslg.report.service.business;
+
+import cn.cslg.report.common.model.vo.CompareMessageVO;
+import cn.cslg.report.common.model.vo.PatentRightVo;
+import cn.cslg.report.common.model.vo.PersonnelVO;
+import cn.cslg.report.common.model.vo.SplitVO;
+import cn.cslg.report.common.utils.CacheUtils;
+import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.entity.*;
+import cn.cslg.report.entity.asso.AssoTaskPatentSplit;
+import cn.cslg.report.entity.asso.AssoTaskPersonel;
+import cn.cslg.report.mapper.AssoTaskPatentSplitMapper;
+import cn.cslg.report.mapper.CompareMessageMapper;
+import cn.cslg.report.service.OutInterfaceService;
+import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.IOException;
+import java.util.*;
+import java.util.stream.Collectors;
+
+
+@Service
+@Slf4j
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class CompareMessageService extends ServiceImpl<CompareMessageMapper, CompareMessage> {
+    private final TaskService taskService;
+    private final FeatureService featureService;
+    private final CacheUtils cacheUtils;
+    private final OutInterfaceService outInterfaceService;
+    private final AssoTaskPatentSplitService assoTaskPatentSplitService;
+    private final AssoTaskPersonelService assoTaskPersonelService;
+
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean addCompareMessage(List<CompareMessageVO> vos) {
+        /**
+         * @author 李仁杰
+         * @deprecated 保存特征
+         */
+        // 获取登录人信息
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
+        List<CompareMessage> compareMessages = new ArrayList<>();
+        //根据登录人Id,报告Id,标的专利号查询特征
+        LambdaQueryWrapper<Features> wrapper = new LambdaQueryWrapper<>();
+        if (vos.get(0).getTaskId() != null && vos.get(0).getSignPatentNo() != null) {
+            wrapper.eq(Features::getTaskId, vos.get(0).getTaskId())
+                    .eq(Features::getSignPatentNo, vos.get(0).getSignPatentNo());
+            Features feature = featureService.list(wrapper).get(0);
+            //根据登录人Id,报告Id,标的专利号删除原有特征
+            featureService.remove(wrapper);
+            for (int i = 0; i < vos.size(); i++) {
+                int order = 1;
+                Features features1 = new Features();
+                features1.setContent(vos.get(i).getContent());
+                features1.setFeaturesOrder(order);
+                features1.setTaskId(vos.get(i).getTaskId());
+                features1.setSplitType(feature.getSplitType());
+                features1.setSplitBy(feature.getSplitBy());
+                features1.setPartnerId(personnelVO.getId());
+                features1.setReportId(feature.getReportId());
+                features1.setRightName(vos.get(i).getRightName());
+                features1.setRightType(vos.get(i).getRightType());
+                features1.setRightId(vos.get(i).getRightId());
+                features1.setSignPatentNo(vos.get(i).getSignPatentNo());
+                features1.setContentOut(vos.get(i).getContentOut());
+                features1.setExplainText(vos.get(i).getExplainText());
+                features1.insert();
+                CompareMessage compareMessage = new CompareMessage();
+                compareMessage.setFeatureId(features1.getId());
+                compareMessage.setCompareResult(vos.get(i).getCompareResult());
+                compareMessage.setTargetDescription(vos.get(i).getTargetDescription());
+                compareMessage.setCompareDescription(vos.get(i).getCompareDescription());
+                compareMessages.add(compareMessage);
+                order += 1;
+            }
+        }
+        return this.saveBatch(compareMessages);
+    }
+
+    public Boolean updateCompareMessage(List<CompareMessage> compareMessageList) {
+        return this.saveOrUpdateBatch(compareMessageList);
+    }
+
+    public Boolean removeCompareMessage(List<Integer> ids) {
+        return this.removeByIds(ids);
+    }
+
+    public Map<String, Object> queryCompareMessage(Integer taskId, String patentNo) throws IOException {
+        List<PatentRightVo> patentRightVos = new ArrayList<>();
+        String resBody = outInterfaceService.getPatentRightFromPAS(patentNo);
+        JSONObject jsonObject = JSONObject.parseObject(resBody);
+        //解析jason获得标的专利的权要
+        List<PatentRight> patentRightsOrgin = JSON.parseArray(jsonObject.getString("data"), PatentRight.class);
+        //处理权要
+        List<PatentRight> patentRights = featureService.FormatPatentRights(patentRightsOrgin);
+
+        //查询特征
+        LambdaQueryWrapper<Features> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Features::getTaskId, taskId);
+        queryWrapper.eq(Features::getSignPatentNo, patentNo);
+        List<Features> features = featureService.list(queryWrapper);
+        List<Integer> featureIds = features.stream().map(Features::getId).collect(Collectors.toList());
+        LambdaQueryWrapper<CompareMessage> queryWrapper1 = new LambdaQueryWrapper<>();
+        queryWrapper1.in(CompareMessage::getFeatureId, featureIds);
+        List<CompareMessage> compareMessages = this.list(queryWrapper1);
+        List<CompareMessageVO> compareMessageVOS =new ArrayList<>();
+        features.forEach(item->{
+            CompareMessageVO compareMessageVO =new CompareMessageVO();
+            BeanUtil.copyProperties(compareMessageVO,item);
+            CompareMessage compareMessage =new CompareMessage();
+            if( compareMessages.size()!=0){
+          compareMessage = compareMessages.stream().filter(tem->tem.getFeatureId().equals(item.getId())).findFirst().get();
+            }
+           BeanUtil.copyProperties(compareMessageVO,compareMessage);
+        });
+        //将拆解的权要和特征装载到对象PatentRightVo
+        for (int i = 0; i < patentRights.size(); i++) {
+
+            List<CompareMessageVO> featuresList = new ArrayList<>();
+            //对需要拆解的权要进行拆解
+            if (compareMessageVOS != null && compareMessageVOS.size() != 0) {
+                int rightId = patentRights.get(i).getSort();
+                featuresList = compareMessageVOS.stream().filter(item -> item.getRightId().equals(rightId)).collect(Collectors.toList());
+            }
+            //装载到对象PatentRightVo
+            PatentRightVo patentRightVo = new PatentRightVo();
+            String name = "权要" + (i + 1);
+            patentRightVo.setPatentId(patentRights.get(i).getPatentId());
+            patentRightVo.setCompareMessageVOS(featuresList);
+            patentRightVo.setContent(patentRights.get(i).getContent());
+            patentRightVo.setSort(patentRights.get(i).getSort());
+            patentRightVo.setType(patentRights.get(i).getType());
+            patentRightVo.setContentOut(patentRights.get(i).getContentOut());
+            patentRightVo.setRightName(name);
+            patentRightVo.setSignPatentNo(patentNo);
+            patentRightVos.add(patentRightVo);
+        }
+        Map<String, Object> map1 = assoTaskPatentSplitService.getSplitMessage(taskId, patentNo);
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("patentRightVos", patentRightVos);
+        map.put("splitBy", map1.get("splitBy"));
+        map.put("splitType", map1.get("splitType"));
+        return map;
+    }
+
+}

+ 12 - 0
RMS/src/main/java/cn/cslg/report/service/business/ReportService.java

@@ -147,7 +147,19 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
      * @function 查询报告
      */
     public List<Report> reportData(List<Report> reports) throws IOException {
+        //提出报告Id
         List<Integer> reportIds = reports.stream().map(Report::getId).collect(Collectors.toList());
+        // 提出客户Id
+        List<Integer> clientId =reports.stream().map(Report::getClientId).collect(Collectors.toList());
+        //提出部门Id
+        List<Integer> departId =reports.stream().map(Report::getDepartmentId).collect(Collectors.toList());
+        //提出人员Id
+        List<Integer> personId =reports.stream().map(Report::getDepartmentId).collect(Collectors.toList());
+        //提出创建人Id
+        List<Integer> createId =reports.stream().map(Report::getCreatePersonId).collect(Collectors.toList());
+        //根据客户Id查出客户信息
+
+
          //根据报告ID查询报告文件关联信息
         List<AssoReportFile> assoReportFiles = assoReportFileService.queryFileByReportId(reportIds);
         List<ReportFiles> reportFilesList = new ArrayList<>();

+ 10 - 0
RMS/src/main/resources/mapper/CompareMessageMapper.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="cn.cslg.report.mapper.CompareMessageMapper">
+    <select id="getCompareMessage" resultType="cn.cslg.report.common.model.vo.CompareMessageVO">
+        select a.* ,b.TARGET_DESCRIPTION,b.COMPARE_DESCRIPTION,b.COMPARE_RESULT from FEATURES a left join COMPARE_MESSAGE b on a.id =b.FEATURE_ID
+        where a.SIGN_PATENT_NO=#{patentNo} and a.TASK_ID=#{taskId};
+    </select>
+
+
+</mapper>