chendayu 2 năm trước cách đây
mục cha
commit
a8f2e3e09a

+ 0 - 1
PAS/src/main/java/cn/cslg/pas/common/config/MybatisPlusConfig.java

@@ -11,7 +11,6 @@ import org.springframework.context.annotation.Configuration;
 @Configuration
 @MapperScan("cn.cslg.pas.mapper")
 public class MybatisPlusConfig {
-
     @Bean//必须加Bean注解,否则无法拦截器里无法实例化serve
     public LizzMybatisIntercepts lizzMybatisIntercepts(){
         return  new LizzMybatisIntercepts();

+ 4 - 4
PAS/src/main/java/cn/cslg/pas/common/model/dto/AssoProductPatentAddNewDTO.java

@@ -7,17 +7,17 @@ import java.io.Serializable;
 import java.util.List;
 
 /**
- * 新增专利和多个产品关联的DTO类
+ * 新增多个专利和多个产品关联的DTO类
  */
 @Accessors(chain = true)
 @Data
 public class AssoProductPatentAddNewDTO implements Serializable {
     /**
-     * 专利号
+     * 专利号s
      */
-    private String patentNo;
+    private List<String> patentNos;
     /**
-     * 产品id
+     * 产品ids
      */
     private List<Integer> productIds;
 }

+ 3 - 3
PAS/src/main/java/cn/cslg/pas/controller/ProductController.java

@@ -103,12 +103,12 @@ public class ProductController {
         return Response.success("删除产品完成");
     }
 
-    @Operation(summary = "新增专利和多个产品关联")
+    @Operation(summary = "新增多个专利和多个产品关联")
     @PostMapping("/addNewAssoProductPatent")
     public String addNewAssoProductPatent(@RequestBody AssoProductPatentAddNewDTO assoProductPatentAddNewDTO) {
-        log.info("开始处理【新增专利和产品关联】的请求,请求参数为:{}", assoProductPatentAddNewDTO);
+        log.info("开始处理【新增多个专利和多个产品关联】的请求,请求参数为:{}", assoProductPatentAddNewDTO);
         assoProductPatentService.addNewAssoProductPatent(assoProductPatentAddNewDTO);
-        return Response.success("新增专利和产品关联完成");
+        return Response.success("新增多个专利和多个产品关联完成");
     }
 
 

+ 2 - 2
PAS/src/main/java/cn/cslg/pas/service/IAssoProductPatentService.java

@@ -12,9 +12,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IAssoProductPatentService extends IService<AssoProductPatent> {
     /**
-     * 新增专利和产品关联
+     * 新增多个专利和多个产品关联
      *
-     * @param assoProductPatentAddNewDTO 新增专利和多个产品关联的DTO类
+     * @param assoProductPatentAddNewDTO 新增多个专利和多个产品关联的DTO类
      */
     void addNewAssoProductPatent(AssoProductPatentAddNewDTO assoProductPatentAddNewDTO);
 

+ 1 - 0
PAS/src/main/java/cn/cslg/pas/service/PatentInstructionService.java

@@ -168,6 +168,7 @@ public class PatentInstructionService extends ServiceImpl<PatentInstructionMappe
         patentInstruction.setFileName(pdf.getFileName());
         patentInstruction.setSize(pdf.getFileSize());
         patentInstruction.setPatentNo(patentNo);
+        patentInstruction.setType(1);
         patentInstruction.insert();
         return Response.success(true);
     }

+ 2 - 1
PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java

@@ -656,6 +656,7 @@ public class UploadPatentBatchService {
         }
     }
 
+
     /**
      * @date 2022-7-11
      * @name 数据库交互
@@ -672,7 +673,7 @@ public class UploadPatentBatchService {
         //设置标题
         patent.setName(patentCell.getTitle());
         //设置公开日
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
         if (patentCell.getPubilcDate() != null) {
             Date date = simpleDateFormat.parse(patentCell.getPubilcDate());
             Integer ts = (int) date.getTime();

+ 21 - 19
PAS/src/main/java/cn/cslg/pas/service/impl/AssoProductPatentServiceImpl.java

@@ -29,34 +29,36 @@ public class AssoProductPatentServiceImpl extends ServiceImpl<AssoProductPatentM
     public void addNewAssoProductPatent(AssoProductPatentAddNewDTO assoProductPatentAddNewDTO) {
         log.info("开始处理【新增专利和产品关联】的业务,参数为:{}", assoProductPatentAddNewDTO);
 
-        //从DTO中获取要新增关联的专利号和产品ids
-        String patentNo = assoProductPatentAddNewDTO.getPatentNo();
+        //从DTO中获取要新增关联的多个专利号和产品ids
+        List<String> patentNos = assoProductPatentAddNewDTO.getPatentNos();
         List<Integer> newProductIds = assoProductPatentAddNewDTO.getProductIds();
 
-        //先查库中已有的该专利号和产品关联数据
-        LambdaQueryWrapper<AssoProductPatent> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(AssoProductPatent::getPatentNo, patentNo);
-        List<AssoProductPatent> assoProductPatents = this.list(wrapper);
-        if (assoProductPatents != null && assoProductPatents.size() > 0) {
-            ArrayList<Integer> oldProductIds = new ArrayList<>();
-            for (AssoProductPatent assoProductPatent : assoProductPatents) {
-                oldProductIds.add(assoProductPatent.getProductId());
-            }
-            //产品ids去重
-            newProductIds.removeAll(oldProductIds);
-        }
-
-        if (newProductIds.size() > 0) {
-            assoProductPatents = new ArrayList<>();
+        ArrayList<AssoProductPatent> newAssoProductPatents = new ArrayList<>();
+        for (String patentNo : patentNos) {
             for (Integer newProductId : newProductIds) {
                 AssoProductPatent assoProductPatent = new AssoProductPatent()
                         .setPatentNo(patentNo)
                         .setProductId(newProductId);
-                assoProductPatents.add(assoProductPatent);
+                newAssoProductPatents.add(assoProductPatent);
             }
+        }
+
+        //先查库中已有的该专利号和产品关联数据
+        LambdaQueryWrapper<AssoProductPatent> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(AssoProductPatent::getPatentNo, patentNos);
+        List<AssoProductPatent> oldAssoProductPatents = this.list(wrapper);
+        if (oldAssoProductPatents != null && oldAssoProductPatents.size() > 0) {
+            for (AssoProductPatent assoProductPatent : oldAssoProductPatents) {
+                assoProductPatent.setId(null);
+            }
+        }
+
+        newAssoProductPatents.removeAll(oldAssoProductPatents);
+
+        if (newAssoProductPatents.size() > 0) {
             //产品和专利关联表插入数据
             log.info("数据入产品和专利关联表");
-            this.saveBatch(assoProductPatents);
+            this.saveBatch(newAssoProductPatents);
         }
 
         log.info("新增专利和产品关联完成");

+ 7 - 7
PAS/src/main/java/cn/cslg/pas/service/impl/StructurePatentServiceImpl.java

@@ -85,7 +85,7 @@ public class StructurePatentServiceImpl extends ServiceImpl<AssoStructurePatentM
         List<StructureAndProductIds> structureAndProductIds = assoStructurePatentAddNewBatchDTO.getStructureAndProductIds();
 
         //DTO赋值给实体类
-        ArrayList<AssoStructurePatent> assoStructurePatents = new ArrayList<>();
+        ArrayList<AssoStructurePatent> newAssoStructurePatents = new ArrayList<>();
         for (String patentNo : patentNos) {
             for (StructureAndProductIds structureAndProductId : structureAndProductIds) {
                 AssoStructurePatent assoStructurePatent = new AssoStructurePatent()
@@ -93,28 +93,28 @@ public class StructurePatentServiceImpl extends ServiceImpl<AssoStructurePatentM
                         .setPatentNo(patentNo)
                         .setStructureId(structureAndProductId.getStructureId())
                         .setProductId(structureAndProductId.getProductId());
-                assoStructurePatents.add(assoStructurePatent);
+                newAssoStructurePatents.add(assoStructurePatent);
             }
         }
 
         //根据专题库id从库中查询数据
         LambdaQueryWrapper<AssoStructurePatent> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(AssoStructurePatent::getProjectId, projectId);
-        List<AssoStructurePatent> assoStructurePatents2 = this.list(wrapper);
-        if (assoStructurePatents2 != null && assoStructurePatents2.size() > 0) {
+        List<AssoStructurePatent> oldAssoStructurePatents = this.list(wrapper);
+        if (oldAssoStructurePatents != null && oldAssoStructurePatents.size() > 0) {
             //遍历查询出来的所有数据,将id改为Null
-            for (AssoStructurePatent assoStructurePatent2 : assoStructurePatents2) {
+            for (AssoStructurePatent assoStructurePatent2 : oldAssoStructurePatents) {
                 assoStructurePatent2.setId(null);
             }
         }
 
         //集合去重,去重后留下来的数据即为新增的标引就可以直接入库了
-        boolean flag = assoStructurePatents.removeAll(assoStructurePatents2);
+        boolean flag = newAssoStructurePatents.removeAll(oldAssoStructurePatents);
         //若有新增的标引则入库
         if (flag) {
             //数据批量插入架构和专利关联表
             log.info("数据批量插入架构和专利关联表");
-            this.saveBatch(assoStructurePatents);
+            this.saveBatch(newAssoStructurePatents);
         }
 
     }