Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	PAS/src/main/java/cn/cslg/pas/common/model/PatentCell.java
#	PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java
lwhhszx 2 rokov pred
rodič
commit
a22c38cfaf
31 zmenil súbory, kde vykonal 61608 pridanie a 3873 odobranie
  1. 141 0
      PAS/logs/pas/pas-debug.2023-03-11.0.log
  2. 44 0
      PAS/logs/pas/pas-info.2023-03-11.0.log
  3. 5 2
      PAS/src/main/java/cn/cslg/pas/common/model/dto/ProductCategoryDTO.java
  4. 8 1
      PAS/src/main/java/cn/cslg/pas/common/model/dto/ProductQueryPageDTO.java
  5. 2 0
      PAS/src/main/java/cn/cslg/pas/common/model/vo/PMDTrendVO.java
  6. 5 17
      PAS/src/main/java/cn/cslg/pas/common/model/vo/ProductCategoryTrendVO.java
  7. 36 0
      PAS/src/main/java/cn/cslg/pas/common/model/vo/ProductGroupVO.java
  8. 20 0
      PAS/src/main/java/cn/cslg/pas/common/model/vo/ProductIdAndNameVO.java
  9. 5 0
      PAS/src/main/java/cn/cslg/pas/common/model/vo/ProductMarketDataTrendVO.java
  10. 0 8
      PAS/src/main/java/cn/cslg/pas/common/model/vo/ProductPatentVO.java
  11. 6 10
      PAS/src/main/java/cn/cslg/pas/common/model/vo/ProductVO.java
  12. 6 1
      PAS/src/main/java/cn/cslg/pas/controller/ProductCategoryController.java
  13. 1 2
      PAS/src/main/java/cn/cslg/pas/controller/SystemController.java
  14. 1 1
      PAS/src/main/java/cn/cslg/pas/mapper/PatentMarketDataMapper.java
  15. 48 3
      PAS/src/main/java/cn/cslg/pas/mapper/ProductCategoryMapper.java
  16. 18 0
      PAS/src/main/java/cn/cslg/pas/mapper/ProductMapper.java
  17. 0 3
      PAS/src/main/java/cn/cslg/pas/service/PatentApplicantService.java
  18. 0 15
      PAS/src/main/java/cn/cslg/pas/service/PatentInstructionService.java
  19. 0 9
      PAS/src/main/java/cn/cslg/pas/service/PatentRightService.java
  20. 1 0
      PAS/src/main/java/cn/cslg/pas/service/PatentService.java
  21. 3 0
      PAS/src/main/java/cn/cslg/pas/service/PatentSimpleFamilyService.java
  22. 48 98
      PAS/src/main/java/cn/cslg/pas/service/impl/ProductCategoryServiceImpl.java
  23. 42 22
      PAS/src/main/java/cn/cslg/pas/service/impl/ProductServiceImpl.java
  24. 3 3
      PAS/src/main/resources/mapper/PatentMapper.xml
  25. 17 9
      PAS/src/main/resources/mapper/PatentMarkerDataMapper.xml
  26. 132 1
      PAS/src/main/resources/mapper/ProductCategoryMapper.xml
  27. 251 29
      PAS/src/main/resources/mapper/ProductMapper.xml
  28. 7 3
      PAS/src/main/resources/mapper/ProductMarketDataMapper.xml
  29. 58949 3519
      logs/pas/pas-debug.log
  30. 34 2
      logs/pas/pas-error.log
  31. 1775 115
      logs/pas/pas-info.log

+ 141 - 0
PAS/logs/pas/pas-debug.2023-03-11.0.log

@@ -0,0 +1,141 @@
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.750 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.778 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 0(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.804 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.804 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 1(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.805 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.807 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.807 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 5(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.808 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.808 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 2
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.809 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.810 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 1(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.811 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.811 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 2(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.812 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.813 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.813 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 3(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.814 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.815 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.815 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 4(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.816 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.816 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 3
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.816 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.817 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 2(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.817 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.818 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.818 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 3(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.819 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.819 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.820 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 4(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.821 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.821 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.821 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 5(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.823 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.824 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 6(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.824 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.825 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.825 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 7(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.826 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.826 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.826 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 8(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.842 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.843 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 3
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.843 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.844 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 6(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.845 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.845 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.846 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 7(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.847 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.849 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.849 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 8(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.850 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.851 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 9(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.851 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 1
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.852 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 1
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.853 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.853 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 9(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:39:42.853 DEBUG 9596 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.493 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.520 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 0(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.548 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.549 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 1(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.550 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 2
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.551 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.551 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 5(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.552 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.552 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 2
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.554 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.554 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 1(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.556 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.557 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 2(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.557 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.558 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.559 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 3(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.559 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.560 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.560 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 4(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.561 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.561 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 3
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.561 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.562 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 2(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.562 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.562 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.563 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 3(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.563 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.564 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.564 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 4(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.564 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.565 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.565 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 5(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.566 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.566 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 6(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.567 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.567 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.568 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 7(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.568 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.569 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.569 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 8(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.570 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.570 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 3
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.570 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.571 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 6(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.572 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.573 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.574 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 7(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.575 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.577 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.577 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 8(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.578 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.578 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 9(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.579 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 1
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.579 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 1
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.579 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.579 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 9(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:41:58.580 DEBUG 4848 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.525 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.576 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 5(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.601 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.601 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 6(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.602 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.603 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.603 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 7(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.604 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.604 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.605 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 8(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.605 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.606 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 3
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.607 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.607 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 6(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.608 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.608 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.609 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 7(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.609 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.610 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.610 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 8(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.611 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====>  Preparing: select id, structure_id, name, suffix, url from asso_structure_picture where structure_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.611 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 ====> Parameters: 9(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.612 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId2 <====      Total: 1
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.612 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 1
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.613 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==>  Preparing: select id s_id, parent_id, structure_name, path, remark, product_id from structure where parent_id = ?
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.613 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId ==> Parameters: 9(Integer)
+[pas:0.0.0.0:8877] [,] 2023-03-11 21:50:43.614 DEBUG 9276 [main] cn.cslg.pas.mapper.StructureMapper.selectByParentId <==      Total: 0

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 44 - 0
PAS/logs/pas/pas-info.2023-03-11.0.log


+ 5 - 2
PAS/src/main/java/cn/cslg/pas/common/model/dto/ProductCategoryDTO.java

@@ -12,17 +12,20 @@ import java.io.Serializable;
 @Data
 public class ProductCategoryDTO implements Serializable {
     /**
-     * 产品类别Id
+     * 产品类别Id(必填)
      */
     private Integer categoryId;
+
     /**
      * 产品地区
      */
     private String categoryArea;
+
     /**
-     * 时间单位(0月份,1季度,不传为月份)
+     * 时间单位(0月份,1季度,2年份,不传为月份)
      */
     private Integer timeUnit;
+
     /**
      * 公司名称
      */

+ 8 - 1
PAS/src/main/java/cn/cslg/pas/common/model/dto/ProductQueryPageDTO.java

@@ -17,6 +17,10 @@ public class ProductQueryPageDTO extends PageDTO2 {
      */
     private String productName;
     /**
+     * 模糊查询-产品类别名称
+     */
+    private String productCategoryName;
+    /**
      * 模糊查询-专利号
      */
     private String patentNo;
@@ -24,10 +28,13 @@ public class ProductQueryPageDTO extends PageDTO2 {
      * 模糊查询-公司或租户名称
      */
     private String companyName;
-
     /**
      * 所属产品类别id
      */
     private Integer productCategoryId;
+    /**
+     * 分组条件
+     */
+    private String groupBy;
 
 }

+ 2 - 0
PAS/src/main/java/cn/cslg/pas/common/model/vo/PMDTrendVO.java

@@ -16,10 +16,12 @@ public class PMDTrendVO {
      * 产品id
      */
     private Integer productId;
+
     /**
      * 产品名称
      */
     private String productName;
+
     /**
      * 返回类
      */

+ 5 - 17
PAS/src/main/java/cn/cslg/pas/common/model/vo/ProductCategoryTrendVO.java

@@ -11,7 +11,7 @@ import java.util.List;
  */
 @Accessors(chain = true)
 @Data
-public class ProductCategoryTrendVO implements Serializable {
+public class ProductCategoryTrendVO {
     /**
      * 产品id
      */
@@ -20,21 +20,9 @@ public class ProductCategoryTrendVO implements Serializable {
      * 产品名称
      */
     private String productName;
-    private List<saleVO> saleVOS;
-
-    @Data
-    @Accessors(chain = true)
-    public static class saleVO {
-        /**
-         * 时间(季度或者月份)
-         */
-        private String marketDate;
-
-        /**
-         * 销售额
-         */
-        private Double saleTotalMoney;
-
-    }
+    /**
+     * 返回类
+     */
+    private List<ProductMarketDataTrendVO> saleVOS;
 
 }

+ 36 - 0
PAS/src/main/java/cn/cslg/pas/common/model/vo/ProductGroupVO.java

@@ -0,0 +1,36 @@
+package cn.cslg.pas.common.model.vo;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 产品的标准查询VO类
+ *
+ * @Author chenyu
+ * @Date 2023/3/8
+ */
+@Accessors(chain = true)
+@Data
+public class ProductGroupVO implements Serializable {
+    /**
+     * 所属产品类别id
+     */
+    private Integer productCategoryId;
+    /**
+     * 所属产品类别名称
+     */
+    private String productCategoryName;
+    /**
+     * 所属公司名称
+     */
+    private String companyName;
+    /**
+     * 产品
+     */
+    List<ProductVO> products;
+
+}

+ 20 - 0
PAS/src/main/java/cn/cslg/pas/common/model/vo/ProductIdAndNameVO.java

@@ -0,0 +1,20 @@
+package cn.cslg.pas.common.model.vo;
+
+import lombok.Data;
+
+/**
+ * @Author xiexiang
+ * @Date 2023/3/22
+ */
+@Data
+public class ProductIdAndNameVO {
+    /**
+     * 产品id
+     */
+    private Integer productId;
+
+    /**
+     * 产品名称
+     */
+    private String productName;
+}

+ 5 - 0
PAS/src/main/java/cn/cslg/pas/common/model/vo/ProductMarketDataTrendVO.java

@@ -24,6 +24,11 @@ public class ProductMarketDataTrendVO {
          * 销售额
          */
         private Double saleTotalMoney;
+
+        /**
+         * 自定义许可费(销售量 * 自定义许可费率)
+         */
+        private Double customLicenseMoney;
 }
 
 

+ 0 - 8
PAS/src/main/java/cn/cslg/pas/common/model/vo/ProductPatentVO.java

@@ -12,15 +12,7 @@ import java.io.Serializable;
 @Data
 public class ProductPatentVO implements Serializable {
     /**
-     * ID
-     */
-    private Integer id;
-    /**
      * 专利号
      */
     private String patentNo;
-    /**
-     * 产品id
-     */
-    private Integer productId;
 }

+ 6 - 10
PAS/src/main/java/cn/cslg/pas/common/model/vo/ProductVO.java

@@ -46,10 +46,6 @@ public class ProductVO implements Serializable {
      */
     private Integer productCategoryId;
     /**
-     * 架构id
-     */
-    private Integer structureId;
-    /**
      * 许可费率
      */
     private Double licenseRate;
@@ -62,16 +58,16 @@ public class ProductVO implements Serializable {
      */
     private List<ProductPictureVO> pictures;
     /**
-     * 产品的专利
-     */
-    private List<ProductPatentVO> productPatents;
-    /**
-     * 架构的专利
+     * 产品的相关专利和该产品所有架构的相关专利
      */
-    private List<StructurePatentVO> structurePatents;
+    private List<String> relativePatents;
     /**
      * 相关专利数量
      */
     private Integer patentNum;
+    /**
+     * 所属产品类别的信息
+     */
+    private ProductCategoryVO productCategory;
 
 }

+ 6 - 1
PAS/src/main/java/cn/cslg/pas/controller/ProductCategoryController.java

@@ -86,7 +86,12 @@ public class ProductCategoryController {
     @Operation(summary = "查询产品架构趋势图")
     @PostMapping("/showTrend")
     public String showTrend(@RequestBody ProductCategoryDTO dto) {
-        return Response.success(productCategoryService.showTrend(dto));
+        List<ProductCategoryTrendVO> queryResult = productCategoryService.showTrend(dto);
+        if (queryResult != null){
+            return Response.success(queryResult);
+        } else {
+            return Response.error("查询失败");
+        }
     }
 
     @Operation(summary = "获得架构的地区集合")

+ 1 - 2
PAS/src/main/java/cn/cslg/pas/controller/SystemController.java

@@ -20,7 +20,6 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.web.bind.annotation.*;
 
-import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -86,7 +85,7 @@ public class SystemController {
 
     @PostMapping("/patentCellTODb")
     @Operation(summary = "专利上传到数据库")
-    public String   getPatentDTOListForRMS(@RequestBody PatentCell patentCell) throws ParseException {
+    public String   getPatentDTOListForRMS(@RequestBody PatentCell patentCell) {
         uploadPatentBatchService.dataToDBCell(patentCell);
         return Response.success();
 

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

@@ -15,7 +15,7 @@ import java.util.List;
 public interface PatentMarketDataMapper {
 
     /**
-     * 传入的营销地区saleArea,且timeUnit为2,按照年份返回数据
+     * 传入专利号、营销地区saleArea,返回数据
      *
      * @param saleArea 营销地区
      * @param patentNoList 专利号(必需)

+ 48 - 3
PAS/src/main/java/cn/cslg/pas/mapper/ProductCategoryMapper.java

@@ -3,6 +3,8 @@ package cn.cslg.pas.mapper;
 import cn.cslg.pas.common.model.dto.GetAreaListDTO;
 import cn.cslg.pas.common.model.dto.ProductCategoryQueryPageDTO;
 import cn.cslg.pas.common.model.vo.ProductCategoryVO;
+import cn.cslg.pas.common.model.vo.ProductIdAndNameVO;
+import cn.cslg.pas.common.model.vo.ProductMarketDataTrendVO;
 import cn.cslg.pas.domain.ProductCategory;
 import org.springframework.stereotype.Repository;
 
@@ -49,6 +51,15 @@ public interface ProductCategoryMapper {
     int countByProductCategoryName(String productCategoryName);
 
     /**
+     * 根据id和名称统计数量
+     *
+     * @param id                  id
+     * @param productCategoryName 名称
+     * @return
+     */
+    int countByIdAndName(Integer id, String productCategoryName);
+
+    /**
      * 根据id统计数量
      *
      * @param id 产品类别id
@@ -65,14 +76,48 @@ public interface ProductCategoryMapper {
     List<ProductCategoryVO> query(ProductCategoryQueryPageDTO productCategoryQueryPageDTO);
 
     /**
-     * 查询地区列表
+     * 根据架构id、营销地区、时间单位和公司名称查询营销数据
      *
-     * @return 返回查询到的地区集合
+     * @param categoryId   架构id(必需)
+     * @param categoryArea 营销地区
+     * @param companyName  公司名称
+     * @return 返回查询到的营销数据
      */
-    List<String> getAreaList(GetAreaListDTO dto);
+    List<ProductMarketDataTrendVO> categoryQueryByYear(Integer categoryId, String categoryArea, String companyName);
+
+    List<ProductMarketDataTrendVO> categoryQueryBySeason(Integer categoryId, String categoryArea, String companyName);
+
+    List<ProductMarketDataTrendVO> categoryQueryByMonth(Integer categoryId, String categoryArea, String companyName);
 
+    /**
+     * 根据产品id查询营销数据
+     *
+     * @param productId    产品id
+     * @param categoryArea 营销地区
+     * @return 返回查询到的营销数据
+     */
+    List<ProductMarketDataTrendVO> queryByYear(Integer productId, String categoryArea);
 
+    List<ProductMarketDataTrendVO> queryBySeason(Integer productId, String categoryArea);
 
+    List<ProductMarketDataTrendVO> queryByMonth(Integer productId, String categoryArea);
 
 
+    /**
+     * 根据架构id查询产品id和名称
+     *
+     * @param categoryId  架构id(必需)
+     * @param companyName 公司名
+     * @return productId 产品id
+     * @return productName 产品名称
+     */
+    List<ProductIdAndNameVO> queryProductIdAndNameByCategoryId(Integer categoryId, String companyName);
+
+    /**
+     * 查询地区列表
+     *
+     * @return 返回查询到的地区集合
+     */
+    List<String> getAreaList(GetAreaListDTO dto);
+
 }

+ 18 - 0
PAS/src/main/java/cn/cslg/pas/mapper/ProductMapper.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.mapper;
 
 import cn.cslg.pas.common.model.dto.ProductQueryPageDTO;
+import cn.cslg.pas.common.model.vo.ProductGroupVO;
 import cn.cslg.pas.common.model.vo.ProductVO;
 import cn.cslg.pas.domain.Product;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -91,4 +92,21 @@ public interface ProductMapper extends BaseMapper<Product> {
      */
     List<ProductVO> query(ProductQueryPageDTO productQueryPageDTO);
 
+    /**
+     * 根据产品类别分组分页查询数据
+     *
+     * @param productQueryPageDTO 分组分页信息
+     * @return 返回查询到的数据
+     */
+    List<ProductGroupVO> queryByGroupProductCategoryId(ProductQueryPageDTO productQueryPageDTO);
+
+    /**
+     * 根据公司分组分页查询数据
+     *
+     * @param productQueryPageDTO 分组分页信息
+     * @return 返回查询到的数据
+     */
+    List<ProductGroupVO> queryByGroupCompanyName(ProductQueryPageDTO productQueryPageDTO);
+
+
 }

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

@@ -234,9 +234,6 @@ public class PatentApplicantService extends ServiceImpl<PatentApplicantMapper, P
      * @param shortName 【标】权利人 通过分割符 | 分割后的List
      */
     public List<Integer> updatePatentApplicant(List<String> name, List<String> shortName,List<PatentApplicant> patentApplicantList) {
-         if(shortName==null){
-             shortName=new ArrayList<>();
-         }
         //生成一个存放ID的List
         List<Integer> ids = new ArrayList<>();
         //判断当前名称是否为空

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

@@ -1,7 +1,6 @@
 package cn.cslg.pas.service;
 
 
-import cn.cslg.pas.common.model.PatentCell;
 import cn.cslg.pas.common.utils.*;
 import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
 import cn.cslg.pas.domain.Patent;
@@ -198,18 +197,4 @@ public class PatentInstructionService extends ServiceImpl<PatentInstructionMappe
             FileUtil.del(fileUtils.getSystemPath(item.getUrl()));
         });
     }
-
-
-    @Transactional
-    public String edit(String patentNo,UploadFileDTO fileDTO) {
-        this.deleteByPatentNoAndType(patentNo,2);
-  PatentInstruction patentInstruction =new PatentInstruction();
-        patentInstruction.setPatentNo(patentNo);
-        patentInstruction.setUrl(fileDTO.getPath());
-        patentInstruction.setFileName(fileDTO.getName());
-        patentInstruction.setSize(fileDTO.getFileSize());
-        patentInstruction.setType(2);
-        patentInstruction.insert();
-        return Response.success(true);
-    }
 }

+ 0 - 9
PAS/src/main/java/cn/cslg/pas/service/PatentRightService.java

@@ -438,14 +438,8 @@ public class PatentRightService extends ServiceImpl<PatentRightMapper, PatentRig
         String code;
         //权利要求
         String content = params.getContent();
-        if(content!=null) {
-            content = content.trim();
-        }
         //权利要求(译)
-
         String contentOut = params.getContentOut();
-        if(contentOut!=null){
-        contentOut =contentOut.trim();}
         //独立权利要求
         String selfContent = params.getSelfContent();
         if (StringUtils.isNotEmpty(content)) {
@@ -459,16 +453,13 @@ public class PatentRightService extends ServiceImpl<PatentRightMapper, PatentRig
                     code = "。";
                     if (StringUtils.isNotEmpty(contentOut)) {
                         contentOut = contentOut.replaceAll("\n", "");
-                        content = content.replaceAll("\r","");
                         contentOutArray = StringUtils.split(contentOut, code);
                     }
                     if (StringUtils.isNotEmpty(selfContent)) {
                         selfContent = selfContent.replaceAll("\n", "");
-                        content = content.replaceAll("\r","");
                         selfContentArray = StringUtils.split(selfContent, code);
                     }
                     content = content.replaceAll("\n", "");
-                    content = content.replaceAll("\r","");
                     contentArray = StringUtils.split(content, code);
                     break;
                 default:

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

@@ -472,6 +472,7 @@ public class PatentService extends ServiceImpl<PatentMapper, Patent> {
     }
     public IPage<PatentDTO> getPageListForRMS(QueryPatentVO params) {
         IPage<Patent> dataPage = baseMapper.getPageListForRMS2(new Page<>(params.getCurrent(), params.getSize()),params);
+
         IPage<PatentDTO> pageList = new Page<>();
         List<PatentDTO> records = new ArrayList<>();
         List<Integer> patentIds = dataPage.getRecords().stream().map(Patent::getId).collect(Collectors.toList());

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

@@ -92,6 +92,7 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
     }
 
     public void updateData(List<String> familyNo, String patentNo, Integer patentId, Integer type) {
+        long start =System.currentTimeMillis();
         //0.合并专利号
         if (!familyNo.contains(patentNo)) {
             familyNo.add(patentNo);
@@ -184,6 +185,8 @@ public class PatentSimpleFamilyService extends ServiceImpl<PatentSimpleFamilyMap
             deleteWrapper.in(PatentSimpleFamily::getId,familyIds);
             this.remove(deleteWrapper);
         }
+        long end =System.currentTimeMillis();
+        System.out.println("总共用时---"+(start-end));
     }
 
 //

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

@@ -3,9 +3,7 @@ package cn.cslg.pas.service.impl;
 import cn.cslg.pas.common.JsonPage;
 import cn.cslg.pas.common.model.PersonnelVO;
 import cn.cslg.pas.common.model.dto.*;
-import cn.cslg.pas.common.model.vo.ProductCategoryPictureVO;
-import cn.cslg.pas.common.model.vo.ProductCategoryTrendVO;
-import cn.cslg.pas.common.model.vo.ProductCategoryVO;
+import cn.cslg.pas.common.model.vo.*;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.FileUtils;
 import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
@@ -149,6 +147,7 @@ public class ProductCategoryServiceImpl implements IProductCategoryService {
 
         //检查尝试修改的数据是否存在
         Integer productCategoryId = productCategoryUpdateDTO.getId();
+        String productCategoryName = productCategoryUpdateDTO.getProductCategoryName();
         log.info("检查尝试修改的数据是否存在");
         int count = productCategoryMapper.countById(productCategoryId);
         if (count == 0) {
@@ -157,6 +156,15 @@ public class ProductCategoryServiceImpl implements IProductCategoryService {
             throw new XiaoShiException(message);
         }
 
+        //检查尝试修改的产品类别名称是否被占用
+        log.info("检查尝试修改的产品类别名称是否被占用");
+        count = productCategoryMapper.countByIdAndName(productCategoryId, productCategoryName);
+        if (count > 0) {
+            String message = "修改产品类别失败,类别名称【" + productCategoryName + "】已存在,请尝试更换名称";
+            log.info("{}", message);
+            throw new XiaoShiException(message);
+        }
+
         //产品类别DTO对象赋值给实体类
         ProductCategory productCategory = new ProductCategory();
         BeanUtils.copyProperties(productCategoryUpdateDTO, productCategory);
@@ -250,115 +258,57 @@ public class ProductCategoryServiceImpl implements IProductCategoryService {
 
     }
 
+    //返回总的营销数据
     @Override
     public List<ProductCategoryTrendVO> showTrend(ProductCategoryDTO dto) {
-        //存储各个产品信息和营销数据信息
+        //判断架构id是否有内容,没有的话直接返回null
+        if (dto.getCategoryId() == null && dto.getCategoryId() == 0) {
+            return null;
+        }
+        //存储各个产品信息和营销数据
         List<ProductCategoryTrendVO> trendVOS = new ArrayList<>();
-        //存储所有产品的营销数据
-        List<ProductMarketData> marketData = new ArrayList<>();
+        //存储所有产品营销数据
+        List<ProductMarketDataTrendVO> saleVOS = new ArrayList<>();
         //存储所有
-        ProductCategoryTrendVO trendAllVO = new ProductCategoryTrendVO();
-        trendAllVO.setProductId(0);
-
-        trendAllVO.setProductName("总产品");
-        Map<String, Object> allMarketDataMap = new HashMap<>();
-        //根据产品类别ID获得产品id和产品名称
-        LambdaQueryWrapper<Product> productWrapper = new LambdaQueryWrapper<>();
-        productWrapper.eq(Product::getProductCategoryId, dto.getCategoryId());
-        if (dto.getCompanyName() != null && dto.getCompanyName() != "") {
-            productWrapper.eq(Product::getCompanyName, dto.getCompanyName());
+        ProductCategoryTrendVO totalTrendVO = new ProductCategoryTrendVO();
+        totalTrendVO.setProductId(0);
+        totalTrendVO.setProductName("总产品");
+        //查询架构id返回的总体营销数据
+        List<ProductMarketDataTrendVO> totalSaleVOS = new ArrayList<>();
+        if (dto.getTimeUnit() == 2) {//按照年份返回营销数据
+            totalSaleVOS = productCategoryMapper.categoryQueryByYear(dto.getCategoryId(), dto.getCategoryArea(), dto.getCompanyName());
+        } else if (dto.getTimeUnit() == 1) {//按照季度返回营销数据
+            totalSaleVOS = productCategoryMapper.categoryQueryBySeason(dto.getCategoryId(), dto.getCategoryArea(), dto.getCompanyName());
+        } else if (dto.getTimeUnit() == null || dto.getTimeUnit() == 0) {//按照月份返回营销数据
+            totalSaleVOS = productCategoryMapper.categoryQueryByMonth(dto.getCategoryId(), dto.getCategoryArea(), dto.getCompanyName());
         }
-        List<Product> products = productService.list(productWrapper);
-        if (products.size() != 0) {
-            List<Integer> productIds = products.stream().map(Product::getId).collect(Collectors.toList());
-            if (productIds.size() > 0) {
-                //根据产品Id获得产品营销数据
-                LambdaQueryWrapper<ProductMarketData> market = new LambdaQueryWrapper<>();
-                market.in(ProductMarketData::getProductId, productIds);
-                marketData = productMarketDataIService.list(market);
-            }
-        }
-        for (Product product : products) {
+        totalTrendVO.setSaleVOS(totalSaleVOS);
+        trendVOS.add(totalTrendVO);
+        //根据传入的架构id、公司名称以及营销地区查询产品id
+        List<ProductIdAndNameVO> idNameVOS = new ArrayList<>();
+        idNameVOS = productCategoryMapper.queryProductIdAndNameByCategoryId(dto.getCategoryId(), dto.getCompanyName());
+        //返回根据架构id查询到的每个产品id的营销数据
+        for (ProductIdAndNameVO idNameVO : idNameVOS) {
             ProductCategoryTrendVO trendVO = new ProductCategoryTrendVO();
-            trendVO.setProductId(product.getId());
-            trendVO.setProductName(product.getProductName());
-            //获得产品的营销数据
-            // 如果地区不为空
-            List<ProductMarketData> temMarketData = new ArrayList<>();
-            if (dto.getCategoryArea() != null && dto.getCategoryArea() != "") {
-                temMarketData = marketData.stream().filter(item -> item.getProductId().equals(product.getId()) && item.getSaleArea().equals(dto.getCategoryArea())).collect(Collectors.toList());
-            } else {
-                temMarketData = marketData.stream().filter(item -> item.getProductId().equals(product.getId())).collect(Collectors.toList());
-            }
-            Map<String, Object> marketDataMap = new HashMap<>();
-            //营销数据遍历
-            temMarketData.forEach(item -> {
-                        //获得营销数据的时间
-                        String date = item.getSaleTime();
-                        double saleCount = item.getSaleMoney();
-                        if (dto.getTimeUnit() == 1) {
-                            try {
-                                Date dateForm = new SimpleDateFormat("yyyy-MM").parse(date);
-                                Calendar ca = Calendar.getInstance();
-                                ca.setTime(dateForm);
-                                int month = ca.get(Calendar.MONTH);//第几个月
-                                int year = ca.get(Calendar.YEAR);//年份数值
-                                int season = (month - 1) / 3 + 1;
-                                date = year + "-" + season;
-                            } catch (ParseException e) {
-                                e.printStackTrace();
-                            }
-                        } else if (dto.getTimeUnit() == 2) {
-                            try {
-                                Date dateForm = new SimpleDateFormat("yyyy-MM").parse(date);
-                                Calendar ca = Calendar.getInstance();
-                                ca.setTime(dateForm);
-                                int year = ca.get(Calendar.YEAR);//年份数值
-                                date = year + "";
-                            } catch (ParseException e) {
-                                e.printStackTrace();
-                            }
-                        }
-                        //计算销售额
-                        if (marketDataMap.get(date) != null) {
-                            saleCount += Double.parseDouble(marketDataMap.get(date).toString());
-                        }
-                        marketDataMap.put(date, saleCount);
-
-                        //产品总体部分
-                        if (allMarketDataMap.get(date) != null) {
-                            saleCount += Double.parseDouble(allMarketDataMap.get(date).toString());
-                        }
-                        allMarketDataMap.put(date, saleCount);
-                    }
-            );
-            Set keyset = marketDataMap.keySet();
-            List<ProductCategoryTrendVO.saleVO> saleVOS = new ArrayList<>();
-            for (Object key : keyset) {
-                ProductCategoryTrendVO.saleVO saleVO = new ProductCategoryTrendVO.saleVO();
-                saleVO.setMarketDate(key.toString());
-                saleVO.setSaleTotalMoney(Double.parseDouble(marketDataMap.get(key).toString()));
-                saleVOS.add(saleVO);
+            trendVO.setProductId(idNameVO.getProductId());
+            trendVO.setProductName(idNameVO.getProductName());
+            List<ProductMarketDataTrendVO> temSaleVOS = new ArrayList<>();
+            if (dto.getTimeUnit() == 2) {//按照年份返回营销数据
+                temSaleVOS = productCategoryMapper.queryByYear(idNameVO.getProductId(), dto.getCategoryArea());
+            } else if (dto.getTimeUnit() == 1) {//按照季度返回营销数据
+                temSaleVOS = productCategoryMapper.queryBySeason(idNameVO.getProductId(), dto.getCategoryArea());
+            } else if (dto.getTimeUnit() == null || dto.getTimeUnit() == 0) {//按照月份返回营销数据
+                temSaleVOS = productCategoryMapper.queryByMonth(idNameVO.getProductId(), dto.getCategoryArea());
             }
-            trendVO.setSaleVOS(saleVOS);
+            trendVO.setSaleVOS(temSaleVOS);
             trendVOS.add(trendVO);
         }
-        Set keyset = allMarketDataMap.keySet();
-        List<ProductCategoryTrendVO.saleVO> saleVOS = new ArrayList<>();
-        for (Object key : keyset) {
-            ProductCategoryTrendVO.saleVO saleVO = new ProductCategoryTrendVO.saleVO();
-            saleVO.setMarketDate(key.toString());
-            saleVO.setSaleTotalMoney(Double.parseDouble(allMarketDataMap.get(key).toString()));
-            saleVOS.add(saleVO);
-        }
-        trendAllVO.setSaleVOS(saleVOS);
-        trendVOS.add(trendAllVO);
         return trendVOS;
     }
 
+
     @Override
     public List<String> getAreaList(GetAreaListDTO dto) {
-
         List<String> areaList = new ArrayList<>();
         areaList = productCategoryMapper.getAreaList(dto);
         return areaList;

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

@@ -3,10 +3,7 @@ package cn.cslg.pas.service.impl;
 import cn.cslg.pas.common.JsonPage;
 import cn.cslg.pas.common.model.PersonnelVO;
 import cn.cslg.pas.common.model.dto.*;
-import cn.cslg.pas.common.model.vo.ProductPatentVO;
-import cn.cslg.pas.common.model.vo.ProductPictureVO;
-import cn.cslg.pas.common.model.vo.ProductVO;
-import cn.cslg.pas.common.model.vo.StructurePatentVO;
+import cn.cslg.pas.common.model.vo.*;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.FileUtils;
 import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
@@ -33,6 +30,8 @@ import org.springframework.web.multipart.MultipartFile;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * 产品的Service层接口实现类
@@ -219,31 +218,52 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
 
         Integer current = productQueryPageDTO.getCurrent();
         Integer size = productQueryPageDTO.getSize();
+        String groupBy = productQueryPageDTO.getGroupBy();
+        String orderBy = productQueryPageDTO.getOrderBy();
+        if (orderBy != null) {
+            String regex = "[A-Z]+";
+            Pattern pattern = Pattern.compile(regex);
+            Matcher matcher = pattern.matcher(orderBy);
+            while (matcher.find()) {
+                orderBy = orderBy.replaceFirst(matcher.group(), "_" + matcher.group().toLowerCase());
+            }
+            productQueryPageDTO.setOrderBy(orderBy);
+        }
+
+        //根据产品类别或公司分组查询产品
+        if (groupBy != null && !groupBy.equals("")) {
+            if (current != null && size != null) {
+                PageHelper.startPage(current, size);
+            }
+            List<ProductGroupVO> productGroupVOS;
+            if (groupBy.equals("product_category_id")) {
+                productGroupVOS = productMapper.queryByGroupProductCategoryId(productQueryPageDTO);
+            } else {
+                productGroupVOS = productMapper.queryByGroupCompanyName(productQueryPageDTO);
+            }
+
+            for (ProductGroupVO productGroupVO : productGroupVOS) {
+                List<ProductVO> products = productGroupVO.getProducts();
+                for (ProductVO product : products) {
+                    List<String> relativePatents = product.getRelativePatents();
+                    product.setPatentNum(relativePatents.size());
+                }
+            }
+            return JsonPage.restPage(new PageInfo<>(productGroupVOS));
+        }
+
+        //普通检索查询产品
         if (current != null && size != null) {
             PageHelper.startPage(current, size);
         }
         List<ProductVO> productVOs = productMapper.query(productQueryPageDTO);
-        //遍历产品数据,计算出每一个产品的相关专利数量,赋值给patentNum
+        //遍历产品数据,获得每一个产品的相关专利数量,赋值给patentNum
         for (ProductVO productVO : productVOs) {
-            List<ProductPatentVO> productPatents = productVO.getProductPatents();
-            List<StructurePatentVO> structurePatents = productVO.getStructurePatents();
-            HashSet<String> patentNos = new HashSet<>();
-            for (ProductPatentVO productPatent : productPatents) {
-                String patentNo = productPatent.getPatentNo();
-                if (patentNo != null) {
-                    patentNos.add(patentNo);
-                }
-            }
-            for (StructurePatentVO structurePatent : structurePatents) {
-                String patentNo = structurePatent.getPatentNo();
-                if (patentNo != null) {
-                    patentNos.add(patentNo);
-                }
-            }
-            //相关专利数量赋值给patentNum
-            productVO.setPatentNum(patentNos.size());
+            List<String> relativePatents = productVO.getRelativePatents();
+            productVO.setPatentNum(relativePatents.size());
         }
         return JsonPage.restPage(new PageInfo<>(productVOs));
+
     }
 
     @Override

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

@@ -212,16 +212,16 @@
                 and (select count(*) from os_patent_right where a.id = patent_id and (${params.rightContentSql})) > 0
             </if>
             <if test="params.querySimpleFamily == true">
-                and (a.simple_family = (select id from os_patent_simplefamily where type = 1 and patent_no = a.patentno limit 1)
+                and (a.simple_family = (select id from os_patent_simplefamily where type = 1 and patent_no = a.patentno)
                 or a.simple_family is null)
             </if>
             <if test="params.queryInpadocFamily == true">
                 and (a.inpadoc_family = (select id from os_patent_simplefamily where type = 2 and patent_no =
-                a.patentno limit 1) or a.inpadoc_family is null)
+                a.patentno) or a.inpadoc_family is null)
             </if>
             <if test="params.queryPatSnapFamily == true">
                 and (a.patsnap_family = (select id from os_patent_simplefamily where type = 3 and patent_no =
-                a.patentno limit 1) or a.patsnap_family is null)
+                a.patentno) or a.patsnap_family is null)
             </if>
             <if test="params.whereClassNumberIpc != null">
                 and q1.type = 1 and

+ 17 - 9
PAS/src/main/resources/mapper/PatentMarkerDataMapper.xml

@@ -5,13 +5,16 @@
     <resultMap id="queryByDateMap" type="cn.cslg.pas.common.model.vo.ProductMarketDataTrendVO">
         <result column="market_date" property="marketDate"/>
         <result column="sale_total_money" property="saleTotalMoney"/>
+        <result column="custom_license_money" property="customLicenseMoney"/>
     </resultMap>
 
     <!--传入了地区-->
     <!--按照年为单位返回查询到的营销数据-->
     <select id="patentQueryByYear" resultMap="queryByDateMap">
-        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'年') AS market_date,sum(sale_money) AS sale_total_money
-        FROM product_market_data
+        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'年') AS market_date,
+            sum(sale_money) AS sale_total_money,
+            CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
+        FROM  product_market_data
         WHERE product_id IN
                 (SELECT product_id FROM asso_structure_patent WHERE patent_no IN
                 <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
@@ -23,7 +26,7 @@
                     #{patentNo}
                 </foreach>
                 )
-                <if test="saleArea !=null and saleArea != ''">
+                <if test="saleArea != null and saleArea != ''">
                     AND sale_area = #{saleArea}
                 </if>
         GROUP BY market_date
@@ -31,8 +34,11 @@
     <!--传入了地区-->
     <!--按照季度为单位返回查询到的营销数据-->
     <select id="patentQueryBySeason" resultMap="queryByDateMap">
-        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'年','第',CAST(QUARTER(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'季度') AS market_date,sum(sale_money) AS sale_total_money
-        FROM product_market_data
+        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'年',
+                 '第',CAST(QUARTER(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'季度') AS market_date,
+            sum(sale_money) AS sale_total_money,
+            CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
+        FROM  product_market_data
         WHERE product_id IN
                 (SELECT product_id FROM asso_structure_patent WHERE patent_no IN
                 <foreach collection="patentNoList" item="patentNo" index="index" open="(" close=")" separator=",">
@@ -44,7 +50,7 @@
                     #{patentNo}
                 </foreach>
                 )
-                <if test="saleArea !=null and saleArea != ''">
+                <if test="saleArea != null and saleArea != ''">
                     AND sale_area = #{saleArea}
                 </if>
         GROUP BY market_date
@@ -52,7 +58,10 @@
     <!--传入了地区-->
     <!--按照月份为单位返回查询到的营销数据-->
     <select id="patentQueryByMonth" resultMap="queryByDateMap">
-        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) AS CHAR),'-',CAST(MONTH(STR_TO_DATE(sale_time,'%Y-%m')) AS CHAR)) AS market_date,sum(sale_money) AS sale_total_money
+        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) AS CHAR),'-',
+                      CAST(MONTH(STR_TO_DATE(sale_time,'%Y-%m')) AS CHAR)) AS market_date,
+            sum(sale_money) AS sale_total_money,
+            CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
         FROM product_market_data
         WHERE product_id IN
                 (SELECT product_id FROM asso_structure_patent WHERE patent_no IN
@@ -65,10 +74,9 @@
                     #{patentNo}
                 </foreach>
                 )
-                <if test="saleArea !=null and saleArea != ''">
+                <if test="saleArea != null and saleArea != ''">
                     AND sale_area = #{saleArea}
                 </if>
         GROUP BY market_date
     </select>
-
 </mapper>

+ 132 - 1
PAS/src/main/resources/mapper/ProductCategoryMapper.xml

@@ -43,6 +43,15 @@
         where product_category_name = #{productCategoryName}
     </select>
 
+    <!--根据id和名称统计数量-->
+    <!--int countByIdAndName(Integer id, String productCategoryName);-->
+    <select id="countByIdAndName" resultType="int">
+        select count(*)
+        from product_category
+        where product_category_name = #{productCategoryName}
+          and id != #{id}
+    </select>
+
     <!--根据id统计数量-->
     <!--int countById(Integer id);-->
     <select id="countById" resultType="int">
@@ -100,9 +109,131 @@
 
     <resultMap id="queryMap2" type="cn.cslg.pas.common.model.vo.ProductCategoryPictureVO">
         <id column="id" property="id"/>
-        <result column="picture" property="picture"/>
+        <result column="product_category_id" property="productCategoryId"/>
+        <result column="name" property="name"/>
+        <result column="suffix" property="suffix"/>
+        <result column="url" property="url"/>
+    </resultMap>
+
+    <resultMap id="queryByDateMap" type="cn.cslg.pas.common.model.vo.ProductMarketDataTrendVO">
+        <result column="market_date" property="marketDate"/>
+        <result column="sale_total_money" property="saleTotalMoney"/>
+        <result column="custom_license_money" property="customLicenseMoney"/>
+    </resultMap>
+
+    <!--根据产品架构id、公司名称、营销地区、时间单位查询产品类别营销数据-->
+    <!--按照月份返回总体-->
+    <select id="categoryQueryByMonth" resultMap="queryByDateMap">
+        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) AS CHAR),'-',
+        CAST(MONTH(STR_TO_DATE(sale_time,'%Y-%m')) AS CHAR)) AS market_date,
+        sum(sale_money) AS sale_total_money,
+        CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
+        FROM product_market_data
+        WHERE product_id IN(SELECT id AS product_id
+        FROM product
+        WHERE product_category_id = #{categoryId}
+        <if test="companyName != null and companyName != ''">
+            AND company_name = #{companyName}
+        </if>)
+        <if test="categoryArea != null and categoryArea != ''">
+            AND sale_area = #{categoryArea}
+        </if>
+        GROUP BY market_date
+    </select>
+
+    <!--按照季度返回总体-->
+    <select id="categoryQueryBySeason" resultMap="queryByDateMap">
+        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'年',
+        '第',CAST(QUARTER(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'季度') AS market_date,
+        sum(sale_money) AS sale_total_money,
+        CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
+        FROM product_market_data
+        WHERE product_id IN(SELECT id AS product_id
+        FROM product
+        WHERE product_category_id = #{categoryId}
+        <if test="companyName != null and companyName != ''">
+            AND company_name = #{companyName}
+        </if>)
+        <if test="categoryArea != null and categoryArea != ''">
+            AND sale_area = #{categoryArea}
+        </if>
+        GROUP BY market_date
+    </select>
+    <!--按照年度返回总体-->
+    <select id="categoryQueryByYear" resultMap="queryByDateMap">
+        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'年') AS market_date,
+        sum(sale_money) AS sale_total_money,
+        CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
+        FROM product_market_data
+        WHERE product_id IN(SELECT id AS product_id
+        FROM product
+        WHERE product_category_id = #{categoryId}
+        <if test="companyName != null and companyName != ''">
+            AND company_name = #{companyName}
+        </if>)
+        <if test="categoryArea != null and categoryArea != ''">
+            AND sale_area = #{categoryArea}
+        </if>
+        GROUP BY market_date
+    </select>
+
+    <!--按照年度返回每个-->
+    <select id="queryByYear" resultMap="queryByDateMap">
+        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'年') AS market_date,
+        sum(sale_money) AS sale_total_money,
+        CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
+        FROM product_market_data
+        WHERE product_id = #{productId}
+        <if test="categoryArea != null and categoryArea != ''">
+            AND sale_Area = #{categoryArea}
+        </if>
+        GROUP BY market_date
+    </select>
+
+    <!--按照季度返回每个-->
+    <select id="queryBySeason" resultMap="queryByDateMap">
+        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'年',
+        '第',CAST(QUARTER(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'季度') AS market_date,
+        sum(sale_money) AS sale_total_money,
+        CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
+        FROM product_market_data
+        WHERE product_id = #{productId}
+        <if test="categoryArea != null and categoryArea != ''">
+            AND sale_Area = #{categoryArea}
+        </if>
+        GROUP BY market_date
+    </select>
+
+    <!--按照月份返回每个-->
+    <select id="queryByMonth" resultMap="queryByDateMap">
+        SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) AS CHAR),'-',
+        CAST(MONTH(STR_TO_DATE(sale_time,'%Y-%m')) AS CHAR)) AS market_date,
+        sum(sale_money) AS sale_total_money,
+        CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
+        FROM product_market_data
+        WHERE product_id = #{productId}
+        <if test="categoryArea != null and categoryArea != ''">
+            AND sale_Area = #{categoryArea}
+        </if>
+        GROUP BY market_date
+    </select>
+
+    <!--根据架构id查询产品id和名称-->
+    <resultMap id="idNameMap" type="cn.cslg.pas.common.model.vo.ProductIdAndNameVO">
+        <result column="product_id" property="productId"/>
+        <result column="product_name" property="productName"/>
     </resultMap>
 
+    <select id="queryProductIdAndNameByCategoryId" resultMap="idNameMap">
+        SELECT id AS product_id,product_name
+        FROM product
+        WHERE product_category_id = #{categoryId}
+        <if test="companyName != null and companyName != ''">
+            AND company_name = #{companyName}
+        </if>
+    </select>
+
+
     <!--根据产品id、架构id和专利号集合三者其一查询地区集合-->
     <resultMap id="getAreaListMap" type="String">
         <result column="sale_area" property="saleArea"/>

+ 251 - 29
PAS/src/main/resources/mapper/ProductMapper.xml

@@ -102,33 +102,47 @@
     <!--分页查询数据-->
     <!--List<ProductVO> query(ProductQueryPageDTO productQueryPageDTO);-->
     <select id="query" resultMap="queryMap">
-        select id p_id,
+        select p.id p_id,
         product_name,
         market_time,
         company_name,
         tenant_id,
         product_explain,
         product_category_id,
-        license_rate,
-        create_person_name
-        from product
+        p.license_rate,
+        p.create_person_name,
+        product_category_name
+        from product p
+        join product_category pc on p.product_category_id = pc.id
         <where>
-            <if test="productName != null">
+            <if test="productName != null and productName != ''">
                 and product_name like '%${productName}%'
             </if>
-            <if test="companyName != null">
+            <if test="companyName != null and companyName != ''">
                 and company_name like '%${companyName}%'
             </if>
-            <if test="patentNo != null">
-                and id in
+            <if test="patentNo != null and patentNo != ''">
+                and p.id in
                 (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">
+            <if test="productCategoryId != null and productCategoryId != ''">
                 and product_category_id = #{productCategoryId}
             </if>
+            <if test="productCategoryName != null and productCategoryName != ''">
+                and product_category_id in (select id from product_category where product_category_name like
+                '%${productCategoryName}%')
+            </if>
         </where>
-        order by p_id
+        order by
+        <choose>
+            <when test="orderBy != null and orderBy != ''">
+                ${orderBy} ${orderType}
+            </when>
+            <otherwise>
+                p_id
+            </otherwise>
+        </choose>
     </select>
 
     <resultMap id="queryMap" type="cn.cslg.pas.common.model.vo.ProductVO">
@@ -144,12 +158,11 @@
         <collection property="pictures" ofType="cn.cslg.pas.common.model.vo.ProductPictureVO"
                     select="query2" column="p_id">
         </collection>
-        <collection property="productPatents" ofType="cn.cslg.pas.common.model.vo.ProductPatentVO"
+        <collection property="relativePatents" ofType="string"
                     select="query3" column="p_id">
         </collection>
-        <collection property="structurePatents" ofType="cn.cslg.pas.common.model.vo.StructurePatentVO"
-                    select="query4" column="p_id">
-
+        <collection property="productCategory" ofType="cn.cslg.pas.common.model.vo.ProductCategoryVO"
+                    select="query4" column="{pc_id=product_category_id}">
         </collection>
     </resultMap>
 
@@ -167,30 +180,239 @@
         <result column="url" property="url"/>
     </resultMap>
 
-    <select id="query3" resultMap="query3Map">
-        select id, patent_no, product_id
+    <select id="query3" resultType="string">
+        select patent_no
         from asso_product_patent
         where product_id = #{p_id}
+        union
+        select patent_no
+        from asso_structure_patent
+        where product_id = #{p_id}
     </select>
 
-    <resultMap id="query3Map" type="cn.cslg.pas.common.model.vo.ProductPatentVO">
-        <id column="id" property="id"/>
-        <result column="patent_no" property="patentNo"/>
-        <result column="product_id" property="productId"/>
+    <select id="query4" resultMap="query4Map">
+        select id pc_id,
+               product_category_name,
+               remark,
+               license_rate,
+               create_person_name
+        from product_category
+        where id = #{pc_id}
+    </select>
+
+    <resultMap id="query4Map" type="cn.cslg.pas.common.model.vo.ProductCategoryVO">
+        <id column="pc_id" property="id"/>
+        <result column="product_category_name" property="productCategoryName"/>
+        <result column="remark" property="remark"/>
+        <result column="license_rate" property="licenseRate"/>
+        <result column="create_person_name" property="createPersonName"/>
+        <collection property="pictures" ofType="cn.cslg.pas.common.model.vo.ProductCategoryPictureVO"
+                    select="query41" column="pc_id">
+        </collection>
     </resultMap>
 
-    <select id="query4" resultMap="query4Map">
-        select id, structure_id, patent_no, product_Id, project_id
-        from asso_structure_patent
-        where product_Id = #{p_id}
+    <select id="query41" resultMap="query41Map">
+        select id, product_category_id, name, suffix, url
+        from asso_product_category_picture
+        where product_category_id = #{pc_id}
     </select>
 
-    <resultMap id="query4Map" type="cn.cslg.pas.common.model.vo.StructurePatentVO">
+    <resultMap id="query41Map" type="cn.cslg.pas.common.model.vo.ProductCategoryPictureVO">
         <id column="id" property="id"/>
-        <result column="patent_no" property="patentNo"/>
-        <result column="structure_id" property="structureId"/>
-        <result column="product_Id" property="productId"/>
-        <result column="project_id" property="projectId"/>
+        <result column="product_category_id" property="productCategoryId"/>
+        <result column="name" property="name"/>
+        <result column="suffix" property="suffix"/>
+        <result column="url" property="url"/>
     </resultMap>
 
+    <!--根据产品类别分组分页查询数据-->
+    <!--List<ProductGroupVO> queryByGroupProductCategoryId(ProductQueryPageDTO productQueryPageDTO);-->
+    <select id="queryByGroupProductCategoryId" resultMap="queryByGroupProductCategoryIdMap">
+        select product_category_id pci,
+        product_category_name,
+        ifnull(#{orderBy}, '') orderBy,
+        ifnull(#{orderType}, '') orderType,
+        ifnull(#{productName}, '') productName,
+        ifnull(#{companyName}, '') companyName,
+        ifnull(#{patentNo}, '') patentNo,
+        ifnull(#{productCategoryId}, '') productCategoryId,
+        ifnull(#{productCategoryName}, '') productCategoryName
+        from product p
+        join product_category pc on p.product_category_id = pc.id
+        <where>
+            <if test="productName != null and productName != ''">
+                and product_name like '%${productName}%'
+            </if>
+            <if test="companyName != null and companyName != ''">
+                and company_name like '%${companyName}%'
+            </if>
+            <if test="patentNo != null and patentNo != ''">
+                and p.id in
+                (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 productCategoryId != ''">
+                and product_category_id = #{productCategoryId}
+            </if>
+            <if test="productCategoryName != null and productCategoryName != ''">
+                and product_category_id in (select id from product_category where product_category_name like
+                '%${productCategoryName}%')
+            </if>
+        </where>
+        group by product_category_id
+        order by product_category_id
+    </select>
+
+    <resultMap id="queryByGroupProductCategoryIdMap" type="cn.cslg.pas.common.model.vo.ProductGroupVO">
+        <result column="product_category_id" property="productCategoryId"/>
+        <result column="product_category_name" property="productCategoryName"/>
+        <collection property="products" ofType="cn.cslg.pas.common.model.vo.ProductVO"
+                    select="queryByGroupProductCategoryId2"
+                    column="{pci=pci, orderBy=orderBy, orderType=orderType, productName=productName, companyName=companyName,
+                             patentNo=patentNo, productCategoryId=productCategoryId, productCategoryName=productCategoryName}">
+        </collection>
+    </resultMap>
+
+    <select id="queryByGroupProductCategoryId2" resultMap="queryMap">
+        select p.id p_id,
+        product_name,
+        market_time,
+        company_name,
+        tenant_id,
+        product_explain,
+        product_category_id,
+        p.license_rate,
+        p.create_person_name,
+        product_category_name
+        from product p
+        join product_category pc on p.product_category_id = pc.id
+        <where>
+            <if test="productName != null and productName != ''">
+                and product_name like '%${productName}%'
+            </if>
+            <if test="companyName != null and companyName != ''">
+                and company_name like '%${companyName}%'
+            </if>
+            <if test="patentNo != null and patentNo != ''">
+                and p.id in
+                (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 productCategoryId != ''">
+                and product_category_id = #{productCategoryId}
+            </if>
+            <if test="productCategoryName != null and productCategoryName != ''">
+                and product_category_id in (select id from product_category where product_category_name like
+                '%${productCategoryName}%')
+            </if>
+            <if test="true">
+                and product_category_id = #{pci}
+            </if>
+        </where>
+        order by
+        <choose>
+            <when test="orderBy != null and orderBy != ''">
+                ${orderBy} ${orderType}
+            </when>
+            <otherwise>
+                p_id
+            </otherwise>
+        </choose>
+    </select>
+
+    <!--根据公司分组分页查询数据-->
+    <!--List<ProductGroupVO> queryByGroupCompanyName(ProductQueryPageDTO productQueryPageDTO);-->
+    <select id="queryByGroupCompanyName" resultMap="queryByGroupCompanyNameMap">
+        select company_name cn,
+        ifnull(#{orderBy}, '') orderBy,
+        ifnull(#{orderType}, '') orderType,
+        ifnull(#{productName}, '') productName,
+        ifnull(#{companyName}, '') companyName,
+        ifnull(#{patentNo}, '') patentNo,
+        ifnull(#{productCategoryId}, '') productCategoryId,
+        ifnull(#{productCategoryName}, '') productCategoryName
+        from product
+        <where>
+            <if test="productName != null and productName != ''">
+                and product_name like '%${productName}%'
+            </if>
+            <if test="companyName != null and companyName != ''">
+                and company_name like '%${companyName}%'
+            </if>
+            <if test="patentNo != null and patentNo != ''">
+                and id in
+                (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 productCategoryId != ''">
+                and product_category_id = #{productCategoryId}
+            </if>
+            <if test="productCategoryName != null and productCategoryName != ''">
+                and product_category_id in (select id from product_category where product_category_name like
+                '%${productCategoryName}%')
+            </if>
+            <if test="true">
+                and company_name is not null
+            </if>
+        </where>
+        group by company_name
+        order by company_name
+    </select>
+
+    <resultMap id="queryByGroupCompanyNameMap" type="cn.cslg.pas.common.model.vo.ProductGroupVO">
+        <result column="cn" property="companyName"/>
+        <collection property="products" ofType="cn.cslg.pas.common.model.vo.ProductVO"
+                    select="queryByGroupCompanyNameMap2"
+                    column="{cn=cn, orderBy=orderBy, orderType=orderType, productName=productName, companyName=companyName,
+                             patentNo=patentNo, productCategoryId=productCategoryId, productCategoryName=productCategoryName}">
+        </collection>
+    </resultMap>
+
+    <select id="queryByGroupCompanyNameMap2" resultMap="queryMap">
+        select p.id p_id,
+        product_name,
+        market_time,
+        company_name,
+        tenant_id,
+        product_explain,
+        product_category_id,
+        p.license_rate,
+        p.create_person_name,
+        product_category_name
+        from product p
+        join product_category pc on p.product_category_id = pc.id
+        <where>
+            <if test="productName != null and productName != ''">
+                and product_name like '%${productName}%'
+            </if>
+            <if test="companyName != null and companyName != ''">
+                and company_name like '%${companyName}%'
+            </if>
+            <if test="patentNo != null and patentNo != ''">
+                and p.id in
+                (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 productCategoryId != ''">
+                and product_category_id = #{productCategoryId}
+            </if>
+            <if test="productCategoryName != null and productCategoryName != ''">
+                and product_category_id in (select id from product_category where product_category_name like
+                '%${productCategoryName}%')
+            </if>
+            <if test="true">
+                and company_name = #{cn}
+            </if>
+        </where>
+        order by
+        <choose>
+            <when test="orderBy != null and orderBy != ''">
+                ${orderBy} ${orderType}
+            </when>
+            <otherwise>
+                p_id
+            </otherwise>
+        </choose>
+    </select>
+
 </mapper>

+ 7 - 3
PAS/src/main/resources/mapper/ProductMarketDataMapper.xml

@@ -112,11 +112,13 @@
     <resultMap id="queryByDateMap" type="cn.cslg.pas.common.model.vo.ProductMarketDataTrendVO">
         <result column="market_date" property="marketDate"/>
         <result column="sale_total_money" property="saleTotalMoney"/>
+        <result column="custom_license_money" property="customLicenseMoney"/>
     </resultMap>
 
     <select id="queryByYear" resultMap="queryByDateMap">
         SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'年') AS market_date,
-               sum(sale_money) AS sale_total_money
+            sum(sale_money) AS sale_total_money,
+            CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
         FROM  product_market_data
         WHERE product_id = #{productId}
         <if test="saleArea != null and saleArea != ''">
@@ -128,7 +130,8 @@
     <select id="queryBySeason" resultMap="queryByDateMap">
         SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'年',
                       '第',CAST(QUARTER(STR_TO_DATE(sale_time,'%Y-%m')) as CHAR),'季度') AS market_date,
-               sum(sale_money) AS sale_total_money
+            sum(sale_money) AS sale_total_money,
+            CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
         FROM  product_market_data
         WHERE product_id = #{productId}
         <if test="saleArea != null and saleArea != ''">
@@ -140,7 +143,8 @@
     <select id="queryByMonth" resultMap="queryByDateMap">
         SELECT CONCAT(CAST(YEAR(STR_TO_DATE(sale_time,'%Y-%m')) AS CHAR),'-',
                       CAST(MONTH(STR_TO_DATE(sale_time,'%Y-%m')) AS CHAR)) AS market_date,
-               sum(sale_money) AS sale_total_money
+            sum(sale_money) AS sale_total_money,
+            CAST(sum(custom_license_rate * sale_money) AS DECIMAL (19, 2)) AS custom_license_money
         FROM  product_market_data
         WHERE product_id = #{productId}
         <if test="saleArea != null and saleArea != ''">

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 58949 - 3519
logs/pas/pas-debug.log


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 34 - 2
logs/pas/pas-error.log


Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1775 - 115
logs/pas/pas-info.log