chendayu 2 gadi atpakaļ
vecāks
revīzija
39fc73a4c4
21 mainītis faili ar 159 papildinājumiem un 54 dzēšanām
  1. 3 3
      PAS/src/main/java/cn/cslg/pas/common/utils/FileUtils.java
  2. 2 2
      PAS/src/main/java/cn/cslg/pas/common/utils/UploadPatentBatchUtil.java
  3. 1 8
      PAS/src/main/java/cn/cslg/pas/mapper/ProductMapper.java
  4. 12 0
      PAS/src/main/java/cn/cslg/pas/mapper/ProjectMapper.java
  5. 1 1
      PAS/src/main/java/cn/cslg/pas/mapper/AssoProductCategoryPictureMapper.java
  6. 8 0
      PAS/src/main/java/cn/cslg/pas/mapper/asso/AssoProductPatentMapper.java
  7. 1 1
      PAS/src/main/java/cn/cslg/pas/mapper/AssoProductPictureMapper.java
  8. 18 2
      PAS/src/main/java/cn/cslg/pas/mapper/AssoStructurePatentMapper.java
  9. 1 1
      PAS/src/main/java/cn/cslg/pas/mapper/AssoStructurePictureMapper.java
  10. 8 9
      PAS/src/main/java/cn/cslg/pas/service/ProjectService.java
  11. 1 1
      PAS/src/main/java/cn/cslg/pas/service/impl/ProductCategoryServiceImpl.java
  12. 42 7
      PAS/src/main/java/cn/cslg/pas/service/impl/ProductServiceImpl.java
  13. 1 1
      PAS/src/main/java/cn/cslg/pas/service/impl/StructurePatentServiceImpl.java
  14. 14 5
      PAS/src/main/java/cn/cslg/pas/service/impl/StructureServiceImpl.java
  15. 1 1
      PAS/src/main/resources/mapper/AssoProductCategoryPictureMapper.xml
  16. 8 0
      PAS/src/main/resources/mapper/AssoProductPatentMapper.xml
  17. 1 1
      PAS/src/main/resources/mapper/AssoProductPictureMapper.xml
  18. 24 6
      PAS/src/main/resources/mapper/AssoStructurePatentMapper.xml
  19. 1 1
      PAS/src/main/resources/mapper/AssoStructurePictureMapper.xml
  20. 2 4
      PAS/src/main/resources/mapper/ProductMapper.xml
  21. 9 0
      PAS/src/main/resources/mapper/ProjectMapper.xml

+ 3 - 3
PAS/src/main/java/cn/cslg/pas/common/utils/FileUtils.java

@@ -160,7 +160,7 @@ public class FileUtils {
             FileInputStream fis = new FileInputStream(file);
             OutputStream os = item.getOutputStream();
             int len = 8192;
-            while ((bytesRead = fis.read(buffer, 0, len)) != -1){
+            while ((bytesRead = fis.read(buffer, 0, len)) != -1) {
                 os.write(buffer, 0, bytesRead);
             }
             os.close();
@@ -168,12 +168,12 @@ public class FileUtils {
         } catch (IOException e) {
             e.printStackTrace();
         }
-        return (MultipartFile)new CommonsMultipartFile(item);
+        return (MultipartFile) new CommonsMultipartFile(item);
     }
 
     public static File getFile(String url) throws Exception {
         //读取图片类型
-        String fileName = url.substring(url.lastIndexOf("."),url.length());
+        String fileName = url.substring(url.lastIndexOf("."), url.length());
         File file = null;
 
         URL urlfile;

+ 2 - 2
PAS/src/main/java/cn/cslg/pas/common/utils/UploadPatentBatchUtil.java

@@ -51,13 +51,13 @@ public class UploadPatentBatchUtil {
     }
 
     /**
-     * @param getSettingJson        配置文件解析出的Json串
+     * @param getSettingJson 配置文件解析出的Json串
      * @return uploadParamsVO 返回一个由processData方法填充完数据的Pojo类
      * @date 2022/7/7
      * @name 解析配置文件
      * @description 通过与前段传入参数中的数据源ID进行比对从而得到对应数据源的配置(parsingConfigurationFiles的兄弟方法)
      */
-    public static List<UploadSettingVO.Column> parsingConfigurationFilesBro( String getSettingJson) {
+    public static List<UploadSettingVO.Column> parsingConfigurationFilesBro(String getSettingJson) {
         //将 Json 转换为 对象数组
         List<UploadSettingVO> test = JsonUtils.jsonToList(getSettingJson, UploadSettingVO.class);
         //创建一个存放单一数据源的对象 这个对象存放的是 我们需要使用哪一个数据源的配置数据 所以只存一个 正常在Json文件里面会有多个数据源 也就是多条数据

+ 1 - 8
PAS/src/main/java/cn/cslg/pas/mapper/ProductMapper.java

@@ -8,6 +8,7 @@ import org.apache.poi.sl.usermodel.Background;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
+import java.util.Set;
 
 /**
  * 产品表的Mapper层接口
@@ -34,14 +35,6 @@ public interface ProductMapper extends BaseMapper<Product> {
     int deleteById(Integer id);
 
     /**
-     * 根据产品类别id删除数据
-     *
-     * @param productCategoryId 产品类别id
-     * @return 返回受影响的行数
-     */
-    int deleteByProductCategoryId(Integer productCategoryId);
-
-    /**
      * 根据产品id修改数据
      *
      * @param product 产品数据对象

+ 12 - 0
PAS/src/main/java/cn/cslg/pas/mapper/ProjectMapper.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
 
 import java.util.List;
 
@@ -17,8 +18,19 @@ import java.util.List;
  * @author 王岩
  * @since 2022-01-24
  */
+@Repository
 public interface ProjectMapper extends BaseMapper<Project> {
 
     IPage<Project> getPageList(Page<Project> page, ProjectVO params);
+
     List<Project> getListForCount(@Param("params") ProjectVO params);
+
+    /**
+     * 根据产品id统计数量
+     *
+     * @param productId 产品id
+     * @return 返回统计到的数量
+     */
+    int countByProductId(Integer productId);
+
 }

+ 1 - 1
PAS/src/main/java/cn/cslg/pas/mapper/AssoProductCategoryPictureMapper.java

@@ -1,4 +1,4 @@
-package cn.cslg.pas.mapper;
+package cn.cslg.pas.mapper.asso;
 
 import cn.cslg.pas.common.model.vo.ProductCategoryPictureVO;
 import cn.cslg.pas.domain.asso.AssoProductCategoryPicture;

+ 8 - 0
PAS/src/main/java/cn/cslg/pas/mapper/asso/AssoProductPatentMapper.java

@@ -38,4 +38,12 @@ public interface AssoProductPatentMapper extends BaseMapper<AssoProductPatent> {
      */
     int insert(AssoProductPatent assoProductPatent);
 
+    /**
+     * 根据产品id删除数据
+     *
+     * @param productId 产品id
+     * @return 返回受影响的行数
+     */
+    int deleteByProductId(Integer productId);
+
 }

+ 1 - 1
PAS/src/main/java/cn/cslg/pas/mapper/AssoProductPictureMapper.java

@@ -1,4 +1,4 @@
-package cn.cslg.pas.mapper;
+package cn.cslg.pas.mapper.asso;
 
 import cn.cslg.pas.common.model.vo.ProductPictureVO;
 import cn.cslg.pas.domain.asso.AssoProductPicture;

+ 18 - 2
PAS/src/main/java/cn/cslg/pas/mapper/AssoStructurePatentMapper.java

@@ -1,4 +1,4 @@
-package cn.cslg.pas.mapper;
+package cn.cslg.pas.mapper.asso;
 
 import cn.cslg.pas.common.model.dto.AssoStructurePatentQueryDTO;
 import cn.cslg.pas.common.model.vo.AssoStructurePatentVO;
@@ -33,10 +33,26 @@ public interface AssoStructurePatentMapper extends BaseMapper<AssoStructurePaten
     int delete(AssoStructurePatent assoStructurePatent);
 
     /**
+     * 根据产品id统计数量
+     *
+     * @param productId 产品id
+     * @return 返回统计到的数量
+     */
+    int countByProductId(Integer productId);
+
+    /**
+     * 根据架构ids统计数量
+     *
+     * @param structureIds 架构ids
+     * @return 返回统计到的数量
+     */
+    int countByStructureIds(List<Integer> structureIds);
+
+    /**
      * 根据专题库id和专利号查询数据
      *
      * @param assoStructurePatentQueryDTO 专题库产品架构专利号标引的查询DTO类
-     * @return  返回查询到的数据
+     * @return 返回查询到的数据
      */
     List<AssoStructurePatentVO> selectByProjectIdPatentNo(AssoStructurePatentQueryDTO assoStructurePatentQueryDTO);
 

+ 1 - 1
PAS/src/main/java/cn/cslg/pas/mapper/AssoStructurePictureMapper.java

@@ -1,4 +1,4 @@
-package cn.cslg.pas.mapper;
+package cn.cslg.pas.mapper.asso;
 
 import cn.cslg.pas.common.model.vo.StructurePictureVO;
 import cn.cslg.pas.domain.asso.AssoStructurePicture;

+ 8 - 9
PAS/src/main/java/cn/cslg/pas/service/ProjectService.java

@@ -104,9 +104,9 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
 
     public Project getProjectByName(String name) {
         LambdaQueryWrapper<Project> queryWrapper = new LambdaQueryWrapper<>();
-        PersonnelVO personnelVO =cacheUtils.getLoginUser(loginUtils.getId());
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
         queryWrapper.eq(Project::getName, name);
-        queryWrapper.eq(Project::getTenantId,personnelVO.getTenantId());
+        queryWrapper.eq(Project::getTenantId, personnelVO.getTenantId());
         queryWrapper.last("limit 1");
         return this.getOne(queryWrapper);
     }
@@ -260,8 +260,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
                 item.setTypeList(StringUtils.changeStringToInteger(item.getType(), ","));
                 item.setTypeName(systemDictList.stream().filter(systemDict -> systemDict.getType().equals(Constants.INVESTIGATION_TYPE) && item.getTypeList().contains(Integer.parseInt(systemDict.getValue()))).map(SystemDict::getLabel).collect(Collectors.toList()));
                 item.setType(null);
-            }
-            else{
+            } else {
                 item.setTypeList(new ArrayList<Integer>());
             }
         });
@@ -414,7 +413,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         if (temp != null) {
             return Response.error("专题库名称已存在");
         }
-        if (project.getClientId()==null||project.getClientId() == -1) {
+        if (project.getClientId() == null || project.getClientId() == -1) {
             ClientDTO clientDTO = new ClientDTO();
             clientDTO.setName(project.getClientName());
             clientDTO.setTenantId(user.getTenantId());
@@ -439,7 +438,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         if (temp != null && !temp.getId().equals(project.getId())) {
             return Response.error("专题库名称已存在");
         }
-        if (project.getClientId()==null||project.getClientId() == -1) {
+        if (project.getClientId() == null || project.getClientId() == -1) {
             ClientDTO clientDTO = new ClientDTO();
             clientDTO.setName(project.getClientName());
             clientDTO.setTenantId(project.getTenantId());
@@ -575,7 +574,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         for (int i = 1; i < rowList.size(); i++) {
             mapList.add(IterUtil.toMap(rowList.get(0), rowList.get(i)));
         }
-        Integer taskId = taskService.add(fileDTO, projectId, null,rowList.size() - 1, 1, 0, file.getOriginalFilename());
+        Integer taskId = taskService.add(fileDTO, projectId, null, rowList.size() - 1, 1, 0, file.getOriginalFilename());
         TaskParams taskParams = new TaskParams();
         taskParams.setTaskId(taskId);
         taskParams.setPath(path);
@@ -587,7 +586,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
     }
 
     //获得
-    public TaskParams getImportPatentTaskParamsBro(MultipartFile file,Integer productId) {
+    public TaskParams getImportPatentTaskParamsBro(MultipartFile file, Integer productId) {
         //上传文档
         UploadFileDTO fileDTO = fileUtils.uploadFile(file);
         //获得文档保存的路径
@@ -599,7 +598,7 @@ public class ProjectService extends ServiceImpl<ProjectMapper, Project> {
         for (int i = 1; i < rowList.size(); i++) {
             mapList.add(IterUtil.toMap(rowList.get(0), rowList.get(i)));
         }
-        Integer taskId = taskService.add(fileDTO, null,productId, rowList.size() - 1, 1, 0, file.getOriginalFilename());
+        Integer taskId = taskService.add(fileDTO, null, productId, rowList.size() - 1, 1, 0, file.getOriginalFilename());
         TaskParams taskParams = new TaskParams();
         taskParams.setPath(path);
         taskParams.setTaskId(taskId);

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

@@ -14,7 +14,7 @@ import cn.cslg.pas.domain.ProductCategory;
 import cn.cslg.pas.domain.ProductMarketData;
 import cn.cslg.pas.domain.asso.AssoProductCategoryPicture;
 import cn.cslg.pas.exception.XiaoShiException;
-import cn.cslg.pas.mapper.AssoProductCategoryPictureMapper;
+import cn.cslg.pas.mapper.asso.AssoProductCategoryPictureMapper;
 import cn.cslg.pas.mapper.ProductCategoryMapper;
 import cn.cslg.pas.mapper.ProductMapper;
 import cn.cslg.pas.service.IProductCategoryService;

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

@@ -11,12 +11,15 @@ import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.FileUtils;
 import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.pas.domain.Product;
-import cn.cslg.pas.domain.Project;
+import cn.cslg.pas.domain.asso.AssoProductPatent;
 import cn.cslg.pas.domain.asso.AssoProductPicture;
+import cn.cslg.pas.domain.asso.AssoStructurePatent;
 import cn.cslg.pas.exception.XiaoShiException;
-import cn.cslg.pas.mapper.AssoProductPictureMapper;
-import cn.cslg.pas.mapper.ProductMapper;
 import cn.cslg.pas.mapper.ProjectMapper;
+import cn.cslg.pas.mapper.asso.AssoProductPictureMapper;
+import cn.cslg.pas.mapper.ProductMapper;
+import cn.cslg.pas.mapper.asso.AssoProductPatentMapper;
+import cn.cslg.pas.mapper.asso.AssoStructurePatentMapper;
 import cn.cslg.pas.service.IProductService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
@@ -43,6 +46,9 @@ import java.util.List;
 public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> implements IProductService {
     private final ProductMapper productMapper;
     private final AssoProductPictureMapper assoProductPictureMapper;
+    private final AssoProductPatentMapper assoProductPatentMapper;
+    private final AssoStructurePatentMapper assoStructurePatentMapper;
+    private final ProjectMapper projectMapper;
     private final CacheUtils cacheUtils;
     private final LoginUtils loginUtils;
     private final FileUtils fileUtils;
@@ -92,7 +98,15 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
             throw new XiaoShiException(message);
         }
 
+        //数据入产品专利关联表(若有专利)
         String patentNo = productAddNewDTO.getPatentNo();
+        if (patentNo != null) {
+            AssoProductPatent assoProductPatent = new AssoProductPatent()
+                    .setPatentNo(patentNo)
+                    .setProductId(product.getId());
+            log.info("数据入产品专利关联表");
+            assoProductPatentMapper.insert(assoProductPatent);
+        }
 
 
         //如果有图片,图片文件上传至服务器,后获取图片文件的名称、后缀名、url地址,赋值给产品类别图片关联表实体类
@@ -213,15 +227,18 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
         for (ProductVO productVO : productVOs) {
             List<ProductPatentVO> productPatents = productVO.getProductPatents();
             List<StructurePatentVO> structurePatents = productVO.getStructurePatents();
-            //ArrayList<String> patentNos = new ArrayList<>();
             HashSet<String> patentNos = new HashSet<>();
             for (ProductPatentVO productPatent : productPatents) {
                 String patentNo = productPatent.getPatentNo();
-                patentNos.add(patentNo);
+                if (patentNo != null) {
+                    patentNos.add(patentNo);
+                }
             }
             for (StructurePatentVO structurePatent : structurePatents) {
                 String patentNo = structurePatent.getPatentNo();
-                patentNos.add(patentNo);
+                if (patentNo != null) {
+                    patentNos.add(patentNo);
+                }
             }
             //相关专利数量赋值给patentNum
             productVO.setPatentNum(patentNos.size());
@@ -241,10 +258,28 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
             throw new XiaoShiException(message);
         }
 
-        //删除产品图片数据
+        //检查专题库表中是否有该产品数据,若有则不允许删除
+        count = projectMapper.countByProductId(id);
+        if (count > 0) {
+            String message = "删除产品失败,该产品已被专题库使用,请尝试先修改专题库";
+            log.info("{}", message);
+            throw new XiaoShiException(message);
+        }
+
+        //删除产品架构专利号专题库关联表数据
+        log.info("产品架构专利号专题库关联表删除数据");
+        AssoStructurePatent assoStructurePatent = new AssoStructurePatent()
+                .setProductId(id);
+        assoStructurePatentMapper.delete(assoStructurePatent);
+
+        //删除产品图片关联表数据
         log.info("产品图片关联表删除数据");
         assoProductPictureMapper.deleteByProductId(id);
 
+        //删除产品专利关联表数据
+        log.info("产品专利关联表删除数据");
+        assoProductPatentMapper.deleteByProductId(id);
+
         //删除产品数据
         log.info("产品表删除数据");
         int rows = productMapper.deleteById(id);

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

@@ -5,7 +5,7 @@ import cn.cslg.pas.common.model.dto.AssoStructurePatentUpdateDTO;
 import cn.cslg.pas.common.model.vo.AssoStructurePatentVO;
 import cn.cslg.pas.domain.asso.AssoStructurePatent;
 import cn.cslg.pas.exception.XiaoShiException;
-import cn.cslg.pas.mapper.AssoStructurePatentMapper;
+import cn.cslg.pas.mapper.asso.AssoStructurePatentMapper;
 import cn.cslg.pas.service.IStructurePatentService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;

+ 14 - 5
PAS/src/main/java/cn/cslg/pas/service/impl/StructureServiceImpl.java

@@ -11,8 +11,8 @@ import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.pas.domain.Structure;
 import cn.cslg.pas.domain.asso.AssoStructurePicture;
 import cn.cslg.pas.exception.XiaoShiException;
-import cn.cslg.pas.mapper.AssoStructurePatentMapper;
-import cn.cslg.pas.mapper.AssoStructurePictureMapper;
+import cn.cslg.pas.mapper.asso.AssoStructurePatentMapper;
+import cn.cslg.pas.mapper.asso.AssoStructurePictureMapper;
 import cn.cslg.pas.mapper.StructureMapper;
 import cn.cslg.pas.service.IStructureService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -319,7 +319,7 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
     /**
      * 查询所有架构的路径和路径拼接成的架构名称
      *
-     * @param queryPathStructureNameDTO   数据DTO对象
+     * @param queryPathStructureNameDTO 数据DTO对象
      * @return 返回查询到的数据
      */
     @Override
@@ -387,9 +387,18 @@ public class StructureServiceImpl extends ServiceImpl<StructureMapper, Structure
             structureIds.add(structureId);
         }
 
+        //检查产品架构专利号专题库表是否有该架构和其所有子级架构数据,若有则不允许删除
+        log.info("检查产品架构专利号专题库表是否有该架构和其所有子级架构数据,若有则不允许删除");
+        int count = assoStructurePatentMapper.countByStructureIds(structureIds);
+        if (count > 0) {
+            String message = "删除架构失败,该架构或其子级架构正在被专题库标引使用,请尝试先删除其关联数据";
+            log.info("{}", message);
+            throw new XiaoShiException(message);
+        }
+
         //架构和专利关联表删除数据
-        log.info("架构和专利关联表删除数据");
-        assoStructurePatentMapper.deleteByStructureIds(structureIds);
+        //log.info("架构和专利关联表删除数据");
+        //assoStructurePatentMapper.deleteByStructureIds(structureIds);
 
         //架构和图片关联表删除数据
         log.info("架构和图片关联表删除数据");

+ 1 - 1
PAS/src/main/resources/mapper/AssoProductCategoryPictureMapper.xml

@@ -1,7 +1,7 @@
 <?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.pas.mapper.AssoProductCategoryPictureMapper">
+<mapper namespace="cn.cslg.pas.mapper.asso.AssoProductCategoryPictureMapper">
     <!--插入数据-->
     <!--int insert(AssoProductCategoryPicture assoProductCategoryPicture);-->
     <insert id="insert" useGeneratedKeys="true" keyProperty="id">

+ 8 - 0
PAS/src/main/resources/mapper/AssoProductPatentMapper.xml

@@ -182,5 +182,13 @@
         values (#{patentNo}, #{productId});
     </insert>
 
+    <!--根据产品id删除数据-->
+    <!--int deleteByProductId(Integer productId);-->
+    <delete id="deleteByProductId">
+        delete
+        from asso_product_patent
+        where product_id = #{productId};
+    </delete>
+
 
 </mapper>

+ 1 - 1
PAS/src/main/resources/mapper/AssoProductPictureMapper.xml

@@ -1,7 +1,7 @@
 <?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.pas.mapper.AssoProductPictureMapper">
+<mapper namespace="cn.cslg.pas.mapper.asso.AssoProductPictureMapper">
     <!--批量插入数据-->
     <!--int insertBatch(List<AssoProductPicture> assoProductPictures);-->
     <insert id="insertBatch" useGeneratedKeys="true" keyProperty="id">

+ 24 - 6
PAS/src/main/resources/mapper/AssoStructurePatentMapper.xml

@@ -1,7 +1,7 @@
 <?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.pas.mapper.AssoStructurePatentMapper">
+<mapper namespace="cn.cslg.pas.mapper.asso.AssoStructurePatentMapper">
     <!--插入数据-->
     <!--int insert(AssoStructurePatent assoStructurePatent);-->
     <insert id="insert" useGeneratedKeys="true" keyProperty="id">
@@ -30,9 +30,27 @@
         </where>
     </delete>
 
+    <!--根据产品id统计数量-->
+    <!--int countByProductId(Integer productId);-->
+    <select id="countByProductId" resultType="int">
+        select count(*)
+        from asso_structure_patent
+        where product_Id = #{productId}
+    </select>
+
+    <!--根据架构ids统计数量-->
+    <!--int countByStructureIds(List<Integer> structureIds);-->
+    <select id="countByStructureIds" resultType="int">
+        select count(*) from asso_structure_patent where structure_id in (
+        <foreach collection="list" item="n" separator=",">
+            #{n}
+        </foreach>
+        )
+    </select>
+
     <!-- 根据专题库id和专利号查询数据-->
-    <!--List<AssoStructurePatentVO> selectByOsThematicIdPatentNo(AssoStructurePatentQueryDTO assoStructurePatentQueryDTO);-->
-    <select id="selectByProjectIdPatentNo" resultMap="selectByOsThematicIdPatentNoMap">
+    <!--List<AssoStructurePatentVO> selectByProjectIdPatentNo(AssoStructurePatentQueryDTO assoStructurePatentQueryDTO);-->
+    <select id="selectByProjectIdPatentNo" resultMap="selectByProjectIdPatentNoMap">
         select id,
                structure_id,
                patent_no,
@@ -43,12 +61,12 @@
           and patent_no = #{patentNo}
     </select>
 
-    <resultMap id="selectByOsThematicIdPatentNoMap" type="cn.cslg.pas.common.model.vo.AssoStructurePatentVO">
+    <resultMap id="selectByProjectIdPatentNoMap" type="cn.cslg.pas.common.model.vo.AssoStructurePatentVO">
         <id column="id" property="id"/>
         <result column="structure_id" property="structureId"/>
         <result column="patent_no" property="patentNo"/>
         <result column="product_Id" property="productId"/>
-        <result column="os_thematic_id" property="osThematicId"/>
+        <result column="project_id" property="projectId"/>
     </resultMap>
 
     <!--根据架构id批量删除数据-->
@@ -64,7 +82,7 @@
     </delete>
 
     <!--根据专题库id删除数据-->
-    <!--int deleteByOsThematicId(Integer osThematicId);-->
+    <!--int deleteByProjectId(Integer projectId);-->
     <delete id="deleteByProjectId">
         delete
         from asso_structure_patent

+ 1 - 1
PAS/src/main/resources/mapper/AssoStructurePictureMapper.xml

@@ -1,7 +1,7 @@
 <?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.pas.mapper.AssoStructurePictureMapper">
+<mapper namespace="cn.cslg.pas.mapper.asso.AssoStructurePictureMapper">
     <!--批量插入数据-->
     <!--int insertBatch(List<AssoStructurePicture> assoStructurePictures);-->
     <insert id="insertBatch" useGeneratedKeys="true" keyProperty="id">

+ 2 - 4
PAS/src/main/resources/mapper/ProductMapper.xml

@@ -112,10 +112,8 @@
             </if>
             <if test="patentNo != null">
                 and id in
-                (select app.product_id, asp.product_Id
-                from asso_product_patent app,
-                asso_structure_patent asp
-                where app.patent_no = #{patentNo} and asp.patent_no = #{patentNo})
+                (select product_id from asso_product_patent where patent_no = #{patentNo}
+                union select product_id from asso_structure_patent where patent_no = #{patentNo})
             </if>
             <if test="productCategoryId != null">
                 and product_category_id = #{productCategoryId}

+ 9 - 0
PAS/src/main/resources/mapper/ProjectMapper.xml

@@ -77,4 +77,13 @@
         </where>
 
     </select>
+
+    <!--根据产品id统计数量-->
+    <!--int countByProductId(Integer productId);-->
+    <select id="countByProductId" resultType="int">
+        select count(*)
+        from os_thematic
+        where product_id = #{productId}
+    </select>
+
 </mapper>