chendayu 2 gadi atpakaļ
vecāks
revīzija
68aeff0580

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

@@ -0,0 +1,23 @@
+package cn.cslg.pas.common.model.dto;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 新增专利和多个产品关联的DTO类
+ */
+@Accessors(chain = true)
+@Data
+public class AssoProductPatentAddNewDTO implements Serializable {
+    /**
+     * 专利号
+     */
+    private String patentNo;
+    /**
+     * 产品id
+     */
+    private List<Integer> productIds;
+}

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

@@ -28,5 +28,9 @@ public class ProductCategoryQueryPageDTO extends PageDTO2 {
      * 专利号
      */
     private String patentNo;
+    /**
+     * 租户id
+     */
+    private Integer tenantId;
 
 }

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

@@ -7,6 +7,7 @@ import cn.cslg.pas.common.model.vo.PMDTrendVO;
 import cn.cslg.pas.common.model.vo.ProductMarketDataTrendVO;
 import cn.cslg.pas.common.utils.Response;
 import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.service.IAssoProductPatentService;
 import cn.cslg.pas.service.IProductMarketDataService;
 import cn.cslg.pas.service.IProductService;
 import com.alibaba.fastjson.JSONObject;
@@ -33,6 +34,7 @@ import java.util.List;
 public class ProductController {
     private final IProductService productService;
     private final IProductMarketDataService productMarketDataService;
+    private final IAssoProductPatentService assoProductPatentService;
 
     @Operation(summary = "新增产品")
     @PostMapping("/addNew")
@@ -101,5 +103,13 @@ public class ProductController {
         return Response.success("删除产品完成");
     }
 
+    @Operation(summary = "新增专利和多个产品关联")
+    @PostMapping("/addNewAssoProductPatent")
+    public String addNewAssoProductPatent(@RequestBody AssoProductPatentAddNewDTO assoProductPatentAddNewDTO) {
+        log.info("开始处理【新增专利和产品关联】的请求,请求参数为:{}", assoProductPatentAddNewDTO);
+        assoProductPatentService.addNewAssoProductPatent(assoProductPatentAddNewDTO);
+        return Response.success("新增专利和产品关联完成");
+    }
+
 
 }

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

@@ -0,0 +1,21 @@
+package cn.cslg.pas.service;
+
+import cn.cslg.pas.common.model.dto.AssoProductPatentAddNewDTO;
+import cn.cslg.pas.domain.asso.AssoProductPatent;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 产品和专利关联的Service层接口
+ *
+ * @Author chenyu
+ * @Date 2023/4/14
+ */
+public interface IAssoProductPatentService extends IService<AssoProductPatent> {
+    /**
+     * 新增专利和产品关联
+     *
+     * @param assoProductPatentAddNewDTO 新增专利和多个产品关联的DTO类
+     */
+    void addNewAssoProductPatent(AssoProductPatentAddNewDTO assoProductPatentAddNewDTO);
+
+}

+ 66 - 0
PAS/src/main/java/cn/cslg/pas/service/impl/AssoProductPatentServiceImpl.java

@@ -0,0 +1,66 @@
+package cn.cslg.pas.service.impl;
+
+import cn.cslg.pas.common.model.dto.AssoProductPatentAddNewDTO;
+import cn.cslg.pas.domain.asso.AssoProductPatent;
+import cn.cslg.pas.mapper.asso.AssoProductPatentMapper;
+import cn.cslg.pas.service.IAssoProductPatentService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author chenyu
+ * @Date 2023/4/14
+ */
+@Slf4j
+@Service
+public class AssoProductPatentServiceImpl extends ServiceImpl<AssoProductPatentMapper, AssoProductPatent> implements IAssoProductPatentService {
+    /**
+     * 新增专利和产品关联
+     *
+     * @param assoProductPatentAddNewDTO 新增专利和多个产品关联的DTO类
+     */
+    @Override
+    public void addNewAssoProductPatent(AssoProductPatentAddNewDTO assoProductPatentAddNewDTO) {
+        log.info("开始处理【新增专利和产品关联】的业务,参数为:{}", assoProductPatentAddNewDTO);
+
+        //从DTO中获取要新增关联的专利号和产品ids
+        String patentNo = assoProductPatentAddNewDTO.getPatentNo();
+        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<>();
+            for (Integer newProductId : newProductIds) {
+                AssoProductPatent assoProductPatent = new AssoProductPatent()
+                        .setPatentNo(patentNo)
+                        .setProductId(newProductId);
+                assoProductPatents.add(assoProductPatent);
+            }
+            //产品和专利关联表插入数据
+            log.info("数据入产品和专利关联表");
+            this.saveBatch(assoProductPatents);
+        }
+
+        log.info("新增专利和产品关联完成");
+
+    }
+
+}

+ 3 - 0
PAS/src/main/java/cn/cslg/pas/service/impl/ProductCategoryServiceImpl.java

@@ -121,6 +121,9 @@ public class ProductCategoryServiceImpl implements IProductCategoryService {
     public JsonPage query(ProductCategoryQueryPageDTO productCategoryQueryPageDTO) {
         log.info("开始处理【分页查询产品类别】的业务,参数为:{}", productCategoryQueryPageDTO);
 
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        productCategoryQueryPageDTO.setTenantId(personnelVO.getTenantId());
+
         Integer current = productCategoryQueryPageDTO.getCurrent();
         Integer size = productCategoryQueryPageDTO.getSize();
         if (current != null && size != null) {

+ 3 - 3
PAS/src/main/resources/mapper/ProductMapper.xml

@@ -96,7 +96,7 @@
         product_name,
         market_time,
         company_name,
-        tenant_id,
+        p.tenant_id,
         product_explain,
         product_category_id,
         p.license_rate,
@@ -249,7 +249,7 @@
                 '%${productCategoryName}%')
             </if>
             <if test="true">
-                and tenant_id = #{tenantId}
+                and p.tenant_id = #{tenantId}
             </if>
         </where>
         group by product_category_id
@@ -271,7 +271,7 @@
         product_name,
         market_time,
         company_name,
-        tenant_id,
+        p.tenant_id,
         product_explain,
         product_category_id,
         p.license_rate,