Browse Source

Merge remote-tracking branch 'origin/master'

chenyi 2 years ago
parent
commit
a8a24777cc

+ 31 - 0
RMS/src/main/java/cn/cslg/report/controller/ReportDocumentController.java

@@ -0,0 +1,31 @@
+package cn.cslg.report.controller;
+
+import cn.cslg.report.common.core.base.Constants;
+import cn.cslg.report.entity.ReportDocument;
+import cn.cslg.report.entity.Template;
+import cn.cslg.report.service.business.ReportDocumentService;
+import cn.cslg.report.service.business.TemplateService;
+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.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+
+@Tag(name = "报告模板")
+@RestController
+@RequestMapping(Constants.REPORT_API + "/reportDocument")
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class ReportDocumentController {
+    public final ReportDocumentService reportDocumentService;
+    @RequestMapping(value = "/document", method = RequestMethod.POST)
+    @Operation(summary = "根据报告类型获得模板")
+    public  String reportDocument(@RequestBody ReportDocument reportDocument) throws IOException{
+        return reportDocumentService.reportDocument(reportDocument);
+    }
+    
+}

+ 29 - 0
RMS/src/main/java/cn/cslg/report/controller/TempleController.java

@@ -0,0 +1,29 @@
+package cn.cslg.report.controller;
+
+import cn.cslg.report.common.core.base.Constants;
+import cn.cslg.report.entity.ReviewHistory;
+import cn.cslg.report.entity.Template;
+import cn.cslg.report.service.business.ReviewHistoryService;
+import cn.cslg.report.service.business.TemplateService;
+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.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+
+@Tag(name = "报告模板")
+@RestController
+@RequestMapping(Constants.REPORT_API + "/template")
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class TempleController {
+    public final TemplateService templateService;
+    @RequestMapping(value = "/getTemplateByType", method = RequestMethod.POST)
+    @Operation(summary = "根据报告类型获得模板")
+    public  String getTemplateByType(@RequestBody Template template) throws IOException{
+        return templateService.getTemplateByType(template);
+    }
+
+}

+ 14 - 2
RMS/src/main/java/cn/cslg/report/entity/ReportDocument.java

@@ -3,6 +3,7 @@ package cn.cslg.report.entity;
 import cn.cslg.report.common.model.BaseEntity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -19,24 +20,35 @@ public class ReportDocument extends BaseEntity<ReportDocument> {
     /**
      * 报告ID
      */
+    @Schema(description = "报告ID")
     @TableField(value = "REPORT_ID")
     private String reportId;
 
     /**
      * 文件名称
      */
+    @Schema(description = "文件名称")
     @TableField(value = "FILE_NAME")
     private String fileName;
 
     /**
      * 导出人
      */
+    @Schema(description = "导出人")
     @TableField(value = "PERSON_ID")
     private String personId;
 
     /**
+     * 模板名称
+     */
+    @Schema(description = "模板名称")
+    @TableField(value = "TEMPLATE_NAME")
+    private String templateName;
+
+    /**
      * 模板
      */
-    @TableField(value = "TEMPLATE")
-    private String template;
+    @Schema(description = "模板")
+    @TableField(value = "TEMPLATE_ID")
+    private String templateId;
 }

+ 11 - 0
RMS/src/main/java/cn/cslg/report/entity/Template.java

@@ -3,6 +3,7 @@ package cn.cslg.report.entity;
 import cn.cslg.report.common.model.BaseEntity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -18,24 +19,34 @@ public class Template extends BaseEntity<Template> {
     /**
      * 模板名称
      */
+    @Schema(description = "模板名称")
     @TableField(value = "TEMPLATE_NAME")
     private String templateName;
 
     /**
      * 模板路径
      */
+    @Schema(description = "模板路径")
     @TableField(value = "TEMPLATE_PATH")
     private String templatePath;
 
     /**
      * 模板创建人ID
      */
+    @Schema(description = "模板创建人ID")
     @TableField(value = "PERSON_ID")
     private Integer personId;
 
     /**
      * 模板创建人名
      */
+    @Schema(description = "模板创建人名")
     @TableField(value = "PERSON_NAME")
     private String personName;
+    /**
+     * 报告类型
+     */
+    @Schema(description = "报告类型")
+    @TableField(value = "REPORT_TYPE")
+    private String reportType;
 }

+ 11 - 0
RMS/src/main/java/cn/cslg/report/mapper/ReportDocumentMapper.java

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

+ 24 - 24
RMS/src/main/java/cn/cslg/report/service/business/FeatureService.java

@@ -82,10 +82,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
         JSONObject jsonObject = JSONObject.parseObject(resBody);
         //解析jason获得标的专利的权要
         List<PatentRight> patentRightsOrgin = JSON.parseArray(jsonObject.getString("data"), PatentRight.class);
-
         List<PatentRight> patentRights = FormatPatentRights(patentRightsOrgin);
-
-
         List<Integer> partRightIds = new ArrayList<>();
         List<String> flags = new ArrayList<>();
         // 当splitType=0仅拆解主权要
@@ -117,28 +114,28 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
         //featureTO.setPartnerId();
         //查询数据库里是否有查询记录
         List<Features> featureFromDb = this.queryFeatures(featureTO);
+        LambdaQueryWrapper<Features> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Features::getReportId, reportId)
+                .eq(Features::getSignPatentNo, patentNo)
+                .eq(Features::getPartnerId, personnelVO.getId())
+                .ne(Features::getSplitBy,splitBy);
+        if(splitType==1)
+        {wrapper.ne(Features::getSplitBy,-1);}
+        this.remove(wrapper);
         //将拆解的权要和特征装载到对象PatentRightVo
         for (int i = 0; i < patentRights.size(); i++) {
             List<Features> featuresList = new ArrayList<>();
             String[] tems= patentRights.get(i).getContent().split("\\.");
             String name ="权要"+tems[0].replace(" ","");
+            int rightId = patentRights.get(i).getId();
             //对需要拆解的权要进行拆解
             if (partRightIds.contains(patentRights.get(i).getId())) {
 
                 if (featureFromDb != null && featureFromDb.size() != 0) {
-                    int rightId = patentRights.get(i).getId();
                     featuresList = featureFromDb.stream().filter(item -> item.getRightId() == rightId && item.getSplitBy() == splitBy &&item.getPartnerId()==personnelVO.getId()).collect(Collectors.toList());
                 }
                 //如果数据库里无拆解记录则手动插入一条
                 if (featuresList == null || featuresList.size() == 0 || flag == 1) {
-                    //去除存在数据(可删除这部分)
-                    LambdaQueryWrapper<Features> wrapper = new LambdaQueryWrapper<>();
-                    wrapper.eq(Features::getReportId, reportId)
-                            .eq(Features::getSignPatentNo, patentNo)
-                            .eq(Features::getPartnerId, personnelVO.getId())
-                            .eq(Features::getRightId,patentRights.get(i).getId());
-
-                    this.remove(wrapper);
                     featuresList = new ArrayList<>();
                     //获得权要的译文并且拆解
                     List<String> contentOuts = this.splitStringByFlags(patentRights.get(i).getContentOut(), flags);
@@ -163,18 +160,21 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Features> {
                 }
             }
             else{
-                Features features = new Features();
-                features.setRightId(patentRights.get(i).getId());
-                features.setIsFinal(0);
-                features.setSignPatentNo(patentNo);
-                features.setReportId(reportId);
-                features.setContentOut(patentRights.get(i).getContentOut());
-                features.setContent(patentRights.get(i).getContent());
-                features.setSplitBy(splitBy);
-                features.setPartnerId(personnelVO.getId());
-                features.setRightName(name);
-               features.insert();
-                this.saveBatch(featuresList);
+                featuresList = featureFromDb.stream().filter(item -> item.getRightId() == rightId && item.getSplitBy() == -1 &&item.getPartnerId()==personnelVO.getId()).collect(Collectors.toList());
+                if (featuresList == null || featuresList.size() == 0 || flag == 1) {
+                        Features features = new Features();
+                        features.setRightId(patentRights.get(i).getId());
+                        features.setIsFinal(0);
+                        features.setSignPatentNo(patentNo);
+                        features.setReportId(reportId);
+                        features.setContentOut(patentRights.get(i).getContentOut());
+                        features.setContent(patentRights.get(i).getContent());
+                        features.setSplitBy(-1);
+                        features.setPartnerId(personnelVO.getId());
+                        features.setRightName(name);
+                        features.insert();
+                    featuresList.add(features);
+                }
             }
 
             //装载到对象PatentRightVo

+ 27 - 0
RMS/src/main/java/cn/cslg/report/service/business/ReportDocumentService.java

@@ -0,0 +1,27 @@
+package cn.cslg.report.service.business;
+
+import cn.cslg.report.common.utils.Response;
+import cn.cslg.report.entity.ReportDocument;
+import cn.cslg.report.entity.Template;
+import cn.cslg.report.mapper.ReportDocumentMapper;
+import cn.cslg.report.mapper.TemplateMapper;
+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;
+
+@Service
+@Slf4j
+@RequiredArgsConstructor(onConstructor_ = {@Lazy})
+public class ReportDocumentService extends ServiceImpl<ReportDocumentMapper, ReportDocument> {
+
+     public String reportDocument(ReportDocument reportDocument) {
+
+       return  Response.success();
+
+     }
+
+
+}

+ 14 - 0
RMS/src/main/java/cn/cslg/report/service/business/ReportFieldService.java

@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.swagger.v3.oas.models.security.SecurityScheme;
 import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -146,5 +147,18 @@ public class ReportFieldService extends ServiceImpl<ReportFieldMapper, ReportFie
         return this.getOne(queryWrapper);
     }
 
+  //给报告添加默认自定义字段
+    public void addDefaultField(Integer reportId, Integer reportType) {
+        LambdaQueryWrapper<ReportField> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ReportField::getType, reportType);
+        queryWrapper.eq(ReportField::getReportId, null);
+        List<ReportField> reportFields =this.list(queryWrapper);
+        if(reportFields.size()!=0||reportFields!=null)
+        {
+         reportFields.forEach(p->p.setReportId(reportId));
+         this.saveBatch(reportFields);
+        }
+
+    }
 
 }

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

@@ -36,6 +36,7 @@ import java.util.stream.Collectors;
 public class ReportService extends ServiceImpl<ReportMapper, Report> {
     private final OutInterfaceService outInterfaceService;
     private final ReportMapper reportMapper;
+    private final ReportFieldService reportFieldService;
 
     /**
      * @param report 报告类
@@ -56,15 +57,14 @@ public class ReportService extends ServiceImpl<ReportMapper, Report> {
                 Report assioReport = this.list(wrapper).get(0);
                 report.setAssociateReportName(assioReport.getName());
             }
-
             JSONObject jsonObject2 = JSONObject.parseObject(res2);
             Map<String, Object> map = (Map<String, Object>) jsonObject2.get("data");
             report.setClientName(clientName);
             report.setDepartmentName(map.get("departName").toString());
             report.setPersonName(map.get("personName").toString());
-
             boolean addFlag = this.save(report);
             if (addFlag) {
+                reportFieldService.addDefaultField(report.getId(),report.getType());
                 return report.getId();
             } else {
                 return 0;

+ 5 - 2
RMS/src/main/java/cn/cslg/report/service/business/TemplateService.java

@@ -21,8 +21,11 @@ import java.util.List;
 @Slf4j
 @RequiredArgsConstructor(onConstructor_ = {@Lazy})
 public class TemplateService extends ServiceImpl<TemplateMapper, Template> {
-     public String getTemplateByType() {
-       return  Response.success();
+    //根据报告类型获得模板
+     public String getTemplateByType(Template template) {
+         LambdaQueryWrapper<Template> wrapper =new LambdaQueryWrapper<>();
+         wrapper.eq(Template::getReportType,template.getReportType());
+       return  Response.success(this.list(wrapper));
 
      }