lwhhszx vor 1 Jahr
Ursprung
Commit
166d50396c
30 geänderte Dateien mit 292 neuen und 135 gelöschten Zeilen
  1. 1 1
      src/main/java/cn/cslg/pas/common/dto/business/MarkTaskDTO.java
  2. 3 0
      src/main/java/cn/cslg/pas/common/dto/business/ReportProjectDTO.java
  3. 1 0
      src/main/java/cn/cslg/pas/common/vo/FieldValueVO.java
  4. 12 9
      src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetComSql.java
  5. 3 0
      src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetDateTimeMonthSql.java
  6. 34 29
      src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetEntrustTrueNameSql.java
  7. 9 3
      src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetEntrustGroup.java
  8. 9 1
      src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetMatterGroup.java
  9. 19 11
      src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetScenarioGroup.java
  10. 1 1
      src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetTimeGroup.java
  11. 1 0
      src/main/java/cn/cslg/pas/mapper/TreeNodeMapper.java
  12. 12 1
      src/main/java/cn/cslg/pas/service/business/CustomFieldService.java
  13. 1 0
      src/main/java/cn/cslg/pas/service/business/FeatureService.java
  14. 1 1
      src/main/java/cn/cslg/pas/service/business/PatentDigProjectService.java
  15. 1 1
      src/main/java/cn/cslg/pas/service/business/PatentProjectService.java
  16. 24 8
      src/main/java/cn/cslg/pas/service/business/ProjectTaskService.java
  17. 39 15
      src/main/java/cn/cslg/pas/service/business/ReportProjectService.java
  18. 2 2
      src/main/java/cn/cslg/pas/service/business/TreeNodeService.java
  19. 11 1
      src/main/java/cn/cslg/pas/service/business/es/EsCustomFieldService.java
  20. 50 36
      src/main/java/cn/cslg/pas/service/business/es/EsPatentService.java
  21. 1 1
      src/main/java/cn/cslg/pas/service/common/PersonFieldService.java
  22. 9 2
      src/main/java/cn/cslg/pas/service/query/FormatQueryService.java
  23. 2 2
      src/main/resources/jsons/patentDigProject.json
  24. 2 2
      src/main/resources/jsons/patentProject.json
  25. 2 2
      src/main/resources/jsons/reportProject.json
  26. 9 0
      src/main/resources/mapper/Event.xml
  27. 6 2
      src/main/resources/mapper/PatentDigProjectMapper.xml
  28. 6 2
      src/main/resources/mapper/PatentProjectMapper.xml
  29. 6 2
      src/main/resources/mapper/ReportProjectMapper.xml
  30. 15 0
      src/main/resources/mapper/TreeNodeMapper.xml

+ 1 - 1
src/main/java/cn/cslg/pas/common/dto/business/MarkTaskDTO.java

@@ -20,6 +20,6 @@ private Integer projectId;
 public  static class MarkedField{
     private Integer fieldId;
     private Integer fieldType;
-    private List<String> values;
+    private List<Integer> values;
 }
 }

+ 3 - 0
src/main/java/cn/cslg/pas/common/dto/business/ReportProjectDTO.java

@@ -74,4 +74,7 @@ public class ReportProjectDTO {
     private Boolean ifSecondInvalid;
     @Schema(description = "主被动类型")
     private Integer actType;
+    private Integer associateReportId;
+    private List<Integer> copyIds;
+    private Boolean track;
 }

+ 1 - 0
src/main/java/cn/cslg/pas/common/vo/FieldValueVO.java

@@ -7,5 +7,6 @@ public class FieldValueVO {
     private Integer valueId;
     private String  value;
     private String path;
+    private String pathValue;
     private Integer num;
 }

+ 12 - 9
src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetComSql.java

@@ -21,22 +21,25 @@ import java.util.List;
 
 @Slf4j
 @Component
-public class GetComSql  implements GetSqlObject{
+public class GetComSql implements GetSqlObject {
+
+    private SqlObject sqlObject;
 
- private SqlObject sqlObject;
     @Override
     public String getSql(String value) {
-      String filed= sqlObject.getSqlField();
-      String option =sqlObject.getOption();
-       return  filed+option+"'"+value+"'";
+        String filed = sqlObject.getSqlField();
+        String option = sqlObject.getOption();
+        if (value.equals("null")) {
+            return filed+" is null";
+        }
+        return filed + option + "'" + value + "'";
     }
 
-    public void setSqlObject(SqlObject sqlObject)
-    {
-        this.sqlObject=sqlObject;
+    public void setSqlObject(SqlObject sqlObject) {
+        this.sqlObject = sqlObject;
     }
 
-    public SqlObject getSqlObject(){
+    public SqlObject getSqlObject() {
         return sqlObject;
     }
 }

+ 3 - 0
src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetDateTimeMonthSql.java

@@ -16,6 +16,9 @@ public class GetDateTimeMonthSql implements GetSqlObject{
       String filed= sqlObject.getSqlField();
       String option =sqlObject.getOption();
         re="DATE_FORMAT("+filed+",'%Y%m')"+option+"'"+value+"'";
+        if(value.equals("null")){
+            re="isnull("+filed+")";
+        }
        return re;
     }
 

+ 34 - 29
src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetEntrustTrueNameSql.java

@@ -15,47 +15,52 @@ import java.util.List;
 
 @Slf4j
 @Component
-public class GetEntrustTrueNameSql implements GetSqlObject{
-    private SqlObject sqlObject ;
-  @Autowired
-  private PermissionService permissionService;
-    @Override
-    public String getSql( String value) {
+public class GetEntrustTrueNameSql implements GetSqlObject {
+    private SqlObject sqlObject;
+    @Autowired
+    private PermissionService permissionService;
 
+    @Override
+    public String getSql(String value) {
+        if (value.equals("null")) {
+            return "isnull(p.entrust_id)";
+        }
         List<String> entrustNames = new ArrayList<>();
-        Integer ifEqual= 0;
+        Integer ifEqual = 0;
         //根据名称查询人员id
         List<EntrustVO> entrustVOS = null;
-        if(sqlObject.getField().equals("entrustNameTrue"))
-        {
-            ifEqual =0;
+        if (sqlObject.getField().equals("entrustNameTrue")) {
+            ifEqual = 0;
 
+        } else {
+            ifEqual = 1;
         }
-          else{
-            ifEqual =1;
-        }
-       //根据名称查询
+        //根据名称查询
         try {
-        String json =  permissionService.getEntrustsByName(value,ifEqual);
-            entrustVOS = JSON.parseArray(json,EntrustVO.class);
-        }catch (Exception e){
+            String json = permissionService.getEntrustsByName(value, ifEqual);
+            entrustVOS = JSON.parseArray(json, EntrustVO.class);
+        } catch (Exception e) {
         }
-        if(entrustVOS==null||entrustVOS.size()==0){
-           return " 1!=1 ";
+        if (entrustVOS == null || entrustVOS.size() == 0) {
+            return " 1!=1 ";
         }
-   entrustVOS.forEach(item->{
-String tmp ="(p.entrust_id=" +item.getEntrustId()+" and p.entrust_type="+item.getEntrustType()+")";
-entrustNames.add(tmp);
-   });
-        String names = StringUtils.join(entrustNames," or ");
-        String re = "("+names+")";
+        entrustVOS.forEach(item -> {
+            String tmp = "(p.entrust_id=" + item.getEntrustId() + " and p.entrust_type=" + item.getEntrustType() + ")";
+            entrustNames.add(tmp);
+        });
+        String names = StringUtils.join(entrustNames, " or ");
+        String re = "(" + names + ")";
         return re;
     }
+
     @Override
-    public void setSqlObject(SqlObject sqlObject){
-        this.sqlObject =sqlObject;
-    };
-    public SqlObject getSqlObject(){
+    public void setSqlObject(SqlObject sqlObject) {
+        this.sqlObject = sqlObject;
+    }
+
+    ;
+
+    public SqlObject getSqlObject() {
         return sqlObject;
     }
 }

+ 9 - 3
src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetEntrustGroup.java

@@ -25,7 +25,7 @@ public class GetEntrustGroup implements QueryGroupImp {
 
     @Override
     public ReGroupDataVO getGroup(List<String> sqls, String tableName, String groupField) {
-        groupField = "p.entrust_type,p.entrust_id";
+        groupField = "p.entrust_type ,p.entrust_id ";
         ReGroupDataVO reGroupDataVO = new ReGroupDataVO();
         List<Map<String, Object>> maps = new ArrayList<>();
         String selectField = groupField;
@@ -40,9 +40,15 @@ public class GetEntrustGroup implements QueryGroupImp {
         Long total = eventMapper.getEntrustGroupCount(sqls, tableName, groupField, selectField);
         //装载调查类型名称
         for (EntrustVO item : entrustVOS) {
-            if (item == null) {
-                continue;
+
+            if(item.getEntrustId()==null){
+                Map<String, Object> map = new HashMap<>();
+                map.put("name", "未知");
+                map.put("value", "未知");
+                map.put("count",item.getNum());
+                maps.add(map);
             }
+
             EntrustVO entrustVO = entrustVOList.stream().filter(tem -> tem.getEntrustId().equals(item.getEntrustId()) && tem.getEntrustType().equals(item.getEntrustType())).findFirst().orElse(null);
             if (entrustVO != null) {
                 Map<String, Object> map = new HashMap<>();

+ 9 - 1
src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetMatterGroup.java

@@ -26,13 +26,21 @@ public class GetMatterGroup implements QueryGroupImp {
     public ReGroupDataVO getGroup(List<String> sqls, String tableName, String groupField) {
         ReGroupDataVO reGroupDataVO =new ReGroupDataVO();
         List<Map<String, Object>> maps = new ArrayList<>();
-        String selectField = groupField;
+        String selectField = "ifnull(aspm.matter_id,0)";;
         List<Matter> matters = matterService.list();
+        tableName =tableName+" left join (select * from pas_prod2.asso_project_event where matter_id is not null) as aspm on p.id = aspm.project_id";
         //分组查询应用场景
         List<GroupReVO> matterIds = eventMapper.getGroups(sqls, tableName, groupField, selectField);
         Long total =eventMapper.getGroupsCount(sqls, tableName, groupField, selectField);
         //装载调查类型名称
         matterIds.forEach(item->{
+            if(item.getValue().equals("0")){
+                Map<String,Object> map =new HashMap<>();
+                map.put("name","未知");
+                map.put("value","未知");
+                map.put("count",item.getNum());
+                maps.add(map);
+            }
             Matter matter = matters.stream().filter(tem->tem.getId().toString().equals(item.getValue())).findFirst().orElse(null);
             if(matter!=null)
             {

+ 19 - 11
src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetScenarioGroup.java

@@ -22,23 +22,31 @@ public class GetScenarioGroup implements QueryGroupImp {
 
     @Override
     public ReGroupDataVO getGroup(List<String> sqls, String tableName, String groupField) {
-        ReGroupDataVO reGroupDataVO =new ReGroupDataVO();
+        ReGroupDataVO reGroupDataVO = new ReGroupDataVO();
         List<Map<String, Object>> maps = new ArrayList<>();
-        String selectField = groupField;
+        String selectField = "ifnull(asps.scenario_id,0)";
         List<SystemDict> systemDictList = systemDictService.getSystemDictListByType(Arrays.asList("ENTERPRISE_APPLICATION_SCENARIO"));
         //分组查询应用场景
+        tableName =tableName+" left join (select * from pas_prod2.asso_project_event where scenario_id is not null) as asps on p.id = asps.project_id";
         List<GroupReVO> scenarioIds = eventMapper.getGroups(sqls, tableName, groupField, selectField);
-        Long total =eventMapper.getGroupsCount(sqls, tableName, groupField, selectField);
+        Long total = eventMapper.getGroupsCount(sqls, tableName, groupField, selectField);
         //装载应用场景名称
-        scenarioIds.forEach(item->{
-        SystemDict systemDict = systemDictList.stream().filter(tem->tem.getValue().equals(item.getValue())).findFirst().orElse(null);
-            if(systemDict!=null)
-            {
-                Map<String,Object> map =new HashMap<>();
-                map.put("name",systemDict.getLabel());
-                map.put("value",systemDict.getValue());
-                map.put("count",item.getNum());
+        scenarioIds.forEach(item -> {
+            if (item.getValue() .equals("0")) {
+                Map<String, Object> map = new HashMap<>();
+                map.put("name", "未知");
+                map.put("value", "未知");
+                map.put("count", item.getNum());
                 maps.add(map);
+            } else {
+                SystemDict systemDict = systemDictList.stream().filter(tem -> tem.getValue().equals(item.getValue())).findFirst().orElse(null);
+                if (systemDict != null) {
+                    Map<String, Object> map = new HashMap<>();
+                    map.put("name", systemDict.getLabel());
+                    map.put("value", systemDict.getValue());
+                    map.put("count", item.getNum());
+                    maps.add(map);
+                }
             }
         });
         reGroupDataVO.setValues(maps);

+ 1 - 1
src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetTimeGroup.java

@@ -24,7 +24,7 @@ public class GetTimeGroup implements QueryGroupImp {
     public ReGroupDataVO getGroup(List<String> sqls, String tableName, String groupField) {
         ReGroupDataVO reGroupDataVO =new ReGroupDataVO();
         List<Map<String, Object>> maps = new ArrayList<>();
-        String selectField = "DATE_FORMAT(" + groupField + ",'%Y%m')";
+        String selectField = "ifnull(DATE_FORMAT(" + groupField + ",'%Y%m') ,'未知')";
         groupField = selectField;
         List<GroupReVO> reValues = eventMapper.getGroups(sqls, tableName, groupField, selectField);
         Long total =eventMapper.getGroupsCount(sqls, tableName, groupField, selectField);

+ 1 - 0
src/main/java/cn/cslg/pas/mapper/TreeNodeMapper.java

@@ -21,4 +21,5 @@ public interface TreeNodeMapper extends BaseMapper<TreeNode> {
     List<TreeNodeVO> getTreeNodeByIds(List<Integer> ids,Boolean ifCopyChild,Integer type,Integer typeId);
     List<TreeNodeVO> getTreeNodes(String sql1,String sql2,String sql3);
     public Long getTreeNodeCount(String sql);
+    public List<String> getTreeFieldPath(List<String> ids);
 }

+ 12 - 1
src/main/java/cn/cslg/pas/service/business/CustomFieldService.java

@@ -456,8 +456,19 @@ public class CustomFieldService extends ServiceImpl<CustomFieldMapper, CustomFie
                         treeNodes.forEach(item -> {
                             FieldValueVO fieldValueVO = new FieldValueVO();
                             fieldValueVO.setValueId(item.getId());
-                            fieldValueVO.setValue(item.getName());
                             fieldValueVO.setPath(item.getPath());
+
+                            List<String> idStrs = new ArrayList<>();
+                            List<String> pathNames =new ArrayList<>();
+                            if (item.getPath() != null && !item.getPath().equals("")) {
+                                idStrs = Arrays.asList(item.getPath().split("/"));
+                            pathNames=  treeNodeService.getBaseMapper().getTreeFieldPath(idStrs);
+
+                            }
+                            pathNames.add(item.getName());
+                         String pathValue=   StringUtils.join(pathNames,"/");
+                         fieldValueVO.setPathValue(pathValue);
+                            fieldValueVO.setValue(pathValue);
                             fieldValueVOS.add(fieldValueVO);
                         });
                     }

+ 1 - 0
src/main/java/cn/cslg/pas/service/business/FeatureService.java

@@ -207,6 +207,7 @@ public class FeatureService extends ServiceImpl<FeatureMapper, Feature> {
         }
         else if(patentNo!=null){
             selectClaimDTO = esService.selectClaim(patentNo);
+            patentRight =selectClaimDTO.getClaim();
         }
 
         } catch (Exception e) {

+ 1 - 1
src/main/java/cn/cslg/pas/service/business/PatentDigProjectService.java

@@ -158,7 +158,7 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
             }
         }
 
-        tableName = "patent_dig_project as dp left join project as p on dp.project_id =p.id left join rd_project rp on dp.rd_project_id =rp.id left join asso_project_event as aspe on p.id =aspe.project_id";
+        tableName = "patent_dig_project as dp left join project as p on dp.project_id =p.id left join rd_project rp on dp.rd_project_id =rp.id ";
         //返回分组数据
         QueryGroupImp queryGroupImp = queryGroupFactory.getClass(groupConfig.getGroupClass());
         ReGroupDataVO reGroupDataVO = queryGroupImp.getGroup(sqls, tableName, groupConfig.getSqlField());

+ 1 - 1
src/main/java/cn/cslg/pas/service/business/PatentProjectService.java

@@ -206,7 +206,7 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
             }
         }
 
-        tableName = "patent_project as pp left join project as p on pp.project_id = p.id left join asso_project_event as aspe on p.id = aspe.project_id";
+        tableName = "patent_project as pp left join project as p on pp.project_id = p.id ";
         //返回分组数据
         QueryGroupImp queryGroupImp = queryGroupFactory.getClass(groupConfig.getGroupClass());
         ReGroupDataVO reGroupDataVO = queryGroupImp.getGroup(sqls, tableName, groupConfig.getSqlField());

+ 24 - 8
src/main/java/cn/cslg/pas/service/business/ProjectTaskService.java

@@ -1158,20 +1158,36 @@ public class ProjectTaskService extends ServiceImpl<ProjectTaskMapper, ProjectTa
                     assoTaskField.setFieldId(item.getId());
                     assoTaskField.setFieldType(item.getType());
                     assoTaskField.setTaskId(taskId);
-                    assoTaskField.setProjectId(batchId);
+                    assoTaskField.setTaskBatchId(batchId);
                     assoTaskField.setProjectId(projectId);
+                    assoTaskField.setFieldValueId(0);
                     assoTaskFields.add(assoTaskField);
                 });
             }
         } else {
             markedFields.forEach(item -> {
-                AssoTaskField assoTaskField = new AssoTaskField();
-                assoTaskField.setFieldId(item.getFieldId());
-                assoTaskField.setFieldType(item.getFieldType());
-                assoTaskField.setTaskId(taskId);
-                assoTaskField.setProjectId(batchId);
-                assoTaskField.setProjectId(projectId);
-                assoTaskFields.add(assoTaskField);
+
+               if(item.getValues()!=null&&item.getValues().size()>0){
+                   item.getValues().forEach(i->{
+                       AssoTaskField assoTaskField = new AssoTaskField();
+                       assoTaskField.setFieldId(item.getFieldId());
+                       assoTaskField.setFieldType(item.getFieldType());
+                       assoTaskField.setTaskId(taskId);
+                       assoTaskField.setTaskBatchId(batchId);
+                       assoTaskField.setProjectId(projectId);
+                       assoTaskField.setFieldValueId(i);
+                       assoTaskFields.add(assoTaskField);
+                   });
+               }
+              else {
+                   AssoTaskField assoTaskField = new AssoTaskField();
+                   assoTaskField.setFieldId(item.getFieldId());
+                   assoTaskField.setFieldType(item.getFieldType());
+                   assoTaskField.setTaskId(taskId);
+                   assoTaskField.setTaskBatchId(batchId);
+                   assoTaskField.setProjectId(projectId);
+                   assoTaskField.setFieldValueId(0);
+               }
             });
 
         }

+ 39 - 15
src/main/java/cn/cslg/pas/service/business/ReportProjectService.java

@@ -37,6 +37,7 @@ import jakarta.validation.constraints.AssertFalse;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
@@ -101,12 +102,17 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
     private ScenarioService scenarioService;
     @Autowired
     private EsService esService;
+    @Autowired
+    private CustomFieldService customFieldService;
+    @Autowired
+    @Lazy
+    private CompareLiteratureService compareLiteratureService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Object queryMessage(QueryRequest queryRequest) throws Exception {
         List<String> sqls = formatQueryService.reSqls(queryRequest, "reportProject");
-             sqls=this.loadSearchSql(sqls);
+        sqls = this.loadSearchSql(sqls);
         //根据sql查询事件信息
         List<ReportProjectVO> reportProject = reportProjectMapper.getReportProject(sqls.get(0), sqls.get(1), sqls.get(2));
         this.loadReportProjectVO(reportProject);
@@ -209,7 +215,7 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
                 throw new XiaoShiException("未找到配置");
             }
         }
-        tableName = "report as rp left join project as p on rp.project_id =p.id left join asso_project_event as aspe on p.id =aspe.project_id";
+        tableName = "report as rp left join project as p on rp.project_id =p.id ";
         //返回分组数据
         QueryGroupImp queryGroupImp = queryGroupFactory.getClass(groupConfig.getGroupClass());
         ReGroupDataVO reGroupDataVO = queryGroupImp.getGroup(sqls, tableName, groupConfig.getSqlField());
@@ -407,6 +413,26 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
             });
             assoReportCronService.saveBatch(assoReportCrons);
         }
+
+        /**
+         * 复制信息
+         */
+        Boolean track = reportProjectDTO.getTrack();
+        if (track != null && track.equals(true)) {
+            List<Integer> copyIds = reportProjectDTO.getCopyIds();
+            //复制对比文献
+            if (copyIds != null && copyIds.contains(0)) {
+                Integer oldProjectId = reportProjectDTO.getAssociateReportId();
+                compareLiteratureService.copyCompareLiterature(oldProjectId, project.getId());
+            }
+            //复制标引信息
+            if (copyIds != null && copyIds.contains(1)) {
+                Integer oldProjectId = reportProjectDTO.getAssociateReportId();
+                customFieldService.copyCustomField(oldProjectId, project.getId());
+            }
+
+
+        }
         //返回id
         return project.getId();
     }
@@ -497,9 +523,9 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         LambdaQueryWrapper<ReportProject> reportProjectWrapper = new LambdaQueryWrapper<>();
         reportProjectWrapper.eq(ReportProject::getProjectId, project.getId());
         ReportProject reportProject = this.getOne(reportProjectWrapper);
-        Integer reportId =reportProject.getId();
+        Integer reportId = reportProject.getId();
         BeanUtils.copyProperties(updateReportProjectDTO, reportProject);
-       reportProject.setId(reportId);
+        reportProject.setId(reportId);
         reportProject.updateById();
 
         /**
@@ -873,18 +899,16 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         return true;
     }
 
- //装载查询语句
-    private List<String> loadSearchSql(List<String> sqls){
-        PersonnelVO personnelVO =cacheUtils.getLoginUser(loginUtils.getId());
-        String id =personnelVO.getId();
-        String rootSql ="(p.create_id ="+id+" or p.head_id="+id+" or p.id in (select project_id from asso_project_person where person_id ="+id+"))";
-        if(sqls.get(0)!=null&&!sqls.get(0).equals(""))
-        {
-            sqls.set(0,rootSql+" and"+"("+sqls.get(0)+")");
+    //装载查询语句
+    private List<String> loadSearchSql(List<String> sqls) {
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        String id = personnelVO.getId();
+        String rootSql = "(p.create_id =" + id + " or p.head_id=" + id + " or p.id in (select project_id from asso_project_person where person_id =" + id + "))";
+        if (sqls.get(0) != null && !sqls.get(0).equals("")) {
+            sqls.set(0, rootSql + " and" + "(" + sqls.get(0) + ")");
 
-        }
-        else {
-            sqls.set(0,rootSql);
+        } else {
+            sqls.set(0, rootSql);
         }
 
         return sqls;

+ 2 - 2
src/main/java/cn/cslg/pas/service/business/TreeNodeService.java

@@ -254,11 +254,11 @@ public class TreeNodeService extends ServiceImpl<TreeNodeMapper, TreeNode> imple
             if (parentPath != null) {
                 //父id若为顶层id,则父id没有路径
                 if (parentPath.equals("")) {
-                    treeNode.setPath(parentId + "/");
+                    treeNode.setPath(parentId+"");
                     treeNode.setLevel(1);
                 } else {
                     //父id不是顶层id,父id有路径
-                    treeNode.setPath(parentPath + "/" + parentId + "/");
+                    treeNode.setPath(parentPath + "/" + parentId );
                     treeNode.setLevel(parentNode.getLevel() + 1);
                 }
             } else {

+ 11 - 1
src/main/java/cn/cslg/pas/service/business/es/EsCustomFieldService.java

@@ -822,7 +822,17 @@ public class EsCustomFieldService {
                     treeNodes.forEach(item -> {
                         FieldValueVO fieldValueVO = new FieldValueVO();
                         fieldValueVO.setValueId(item.getId());
-                        fieldValueVO.setValue(item.getName());
+
+                        List<String> idStrs = new ArrayList<>();
+                        List<String> pathNames =new ArrayList<>();
+                        if (item.getPath() != null && !item.getPath().equals("")) {
+                            idStrs = Arrays.asList(item.getPath().split("/"));
+                            pathNames=  treeNodeService.getBaseMapper().getTreeFieldPath(idStrs);
+
+                        }
+                        pathNames.add(item.getName());
+                        String pathValue=   cn.cslg.pas.common.utils.StringUtils.join(pathNames,"/");
+                        fieldValueVO.setValue(pathValue);
                         fieldValueVO.setPath(item.getPath());
                         fieldValueVOS.add(fieldValueVO);
                     });

+ 50 - 36
src/main/java/cn/cslg/pas/service/business/es/EsPatentService.java

@@ -6,6 +6,7 @@ import cn.cslg.pas.common.dto.business.ContentDetailDTO;
 import cn.cslg.pas.common.model.cronModel.Personnel;
 import cn.cslg.pas.common.model.cronModel.PersonnelVO;
 import cn.cslg.pas.common.model.cronModel.Records;
+import cn.cslg.pas.common.model.cronModel.SystemFile;
 import cn.cslg.pas.common.model.request.MapRequest;
 import cn.cslg.pas.common.model.request.OrderDTO;
 import cn.cslg.pas.common.model.request.QueryRequest;
@@ -106,10 +107,10 @@ public class EsPatentService {
             Patent esMess = hit.source();
             BeanUtils.copyProperties(esMess, dto);
             //格式化权利要求
-            List<Text> claims =dto.getClaim();
-            if(claims!=null&&claims.size()>0){
-                claims.forEach(item->{
-                    item.setTextContent(PatentRightUtils.getFormatClaim(item.getTextContent(),item.getLanguage()));
+            List<Text> claims = dto.getClaim();
+            if (claims != null && claims.size() > 0) {
+                claims.forEach(item -> {
+                    item.setTextContent(PatentRightUtils.getFormatClaim(item.getTextContent(), item.getLanguage()));
                 });
             }
             dto.setRightHolderAddr(esMess.getRightHolderAddr());
@@ -189,26 +190,39 @@ public class EsPatentService {
     public List<InnerPatentPdfDTO> getTextPdf(String appNo) throws IOException {
         List<InnerPatentPdfDTO> list = new ArrayList<>();
         //公开说明书pdf
-        String pdfFormat = FormatUtil.getPDFFormat(appNo, 0);
-        if (StringUtils.isNotEmpty(pdfFormat)) {
+        String pdfFormat1 = FormatUtil.getPDFFormat(appNo, 0);
+
+        //授权说明书pdf
+        String pdfFormat2 = FormatUtil.getPDFFormat(appNo, 1);
+
+        //查询文件是否存在
+        List<SystemFile> systemFiles = new ArrayList<>();
+        try {
+            String res = fileManagerService.getSystemFileFromFMS(Arrays.asList(pdfFormat1, pdfFormat2));
+            systemFiles = com.alibaba.fastjson.JSONObject.parseArray(res, SystemFile.class);
+        } catch (Exception e) {
+
+        }
+         SystemFile systemFile1 =  systemFiles.stream().filter(item->item.getGuid().equals(pdfFormat1)).findFirst().orElse(null);
+        SystemFile systemFile2 =  systemFiles.stream().filter(item->item.getGuid().equals(pdfFormat2)).findFirst().orElse(null);
+       if(systemFile1!=null) {
+           InnerPatentPdfDTO dto = new InnerPatentPdfDTO();
+           dto.setPdfGuid(pdfFormat1);
+           dto.setType(0);
+           list.add(dto);
+       }
+        if(systemFile2!=null) {
             InnerPatentPdfDTO dto = new InnerPatentPdfDTO();
-            dto.setPdfGuid(pdfFormat);
-            dto.setType(0);
+            dto.setPdfGuid(pdfFormat2);
+            dto.setType(1);
             list.add(dto);
         }
-        //授权说明书pdf
-        String pdfFormat1 = FormatUtil.getPDFFormat(appNo, 1);
-        if (StringUtils.isNotEmpty(pdfFormat1)) {
-            InnerPatentPdfDTO dto1 = new InnerPatentPdfDTO();
-            dto1.setPdfGuid(pdfFormat1);
-            dto1.setType(1);
-            list.add(dto1);
-        }
         return list;
     }
 
     /**
      * 获取附图
+     *
      * @param appNo
      * @return
      */
@@ -267,7 +281,7 @@ public class EsPatentService {
                     kinDetailVO.setAppNo(familyPatent.getAppNo());
                     kinDetailVO.setPublicNo(familyPatent.getPublicNo());
                     kinDetailVO.setGrantNo(familyPatent.getGrantNo());
-                    PatentKinDTO kinDTO = this.selectPatentKindDetail(kinDetailVO,patentNo)
+                    PatentKinDTO kinDTO = this.selectPatentKindDetail(kinDetailVO, patentNo)
                             .stream().findFirst().orElse(null);
                     if (kinDTO != null) {
                         kinDTOS.add(kinDTO);
@@ -353,7 +367,7 @@ public class EsPatentService {
         Query bool = QueryBuilders.bool(i -> i.should(q1, q2, q3));
         Query q = QueryBuilders.exists(i -> i.field("product_id"));
         Query query = QueryBuilders.hasParent(parent -> parent.parentType("patent").query(bool));
-        Query bool1 = QueryBuilders.bool(i -> i.must(q,query));
+        Query bool1 = QueryBuilders.bool(i -> i.must(q, query));
         builder.query(bool1);
 
         SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
@@ -376,7 +390,7 @@ public class EsPatentService {
      * @return
      * @throws Exception
      */
-    public List<Patent> getPatentsByNo(List<String> patentNos,Boolean ifGetAll,Long current,Long size) throws Exception {
+    public List<Patent> getPatentsByNo(List<String> patentNos, Boolean ifGetAll, Long current, Long size) throws Exception {
         List<Patent> patentList = new ArrayList<>();
         SearchRequest.Builder builder = new SearchRequest.Builder();
         //设置查询索引
@@ -393,24 +407,24 @@ public class EsPatentService {
         }
         Query finalQuery = QueryBuilders.bool((i -> i.should(querys)));
         builder.query(finalQuery);
-        if(!ifGetAll) {
+        if (!ifGetAll) {
             List<String> reSources = this.rePatentSource();
             builder.source(sourceOptionsBuilder -> sourceOptionsBuilder
                     .filter(fieldSourceBuilder -> fieldSourceBuilder
                             .includes(reSources)));
         }
-        if (current!=null&&size!=null&&current > 0 && size > 0) {
+        if (current != null && size != null && current > 0 && size > 0) {
             builder.from((current.intValue() - 1) * size.intValue()).size(size.intValue());
-        }
-        else {
+        } else {
             builder.from(0).size(10000);
         }
         SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
         List<Hit<Patent>> hits = response.hits().hits();
         if (hits != null && hits.size() > 0) {
-            hits.forEach(item->{
-                Patent patent=item.source();
-                patentList.add(patent);}
+            hits.forEach(item -> {
+                        Patent patent = item.source();
+                        patentList.add(patent);
+                    }
             );
         }
         return patentList;
@@ -483,7 +497,7 @@ public class EsPatentService {
             patentPageMessageVO.setPatentNo(hit.source().getPatentNo());
             patentPageMessageVOS.add(patentPageMessageVO);
         }
-        Records records =new Records();
+        Records records = new Records();
         records.setTotal(response.hits().total().value());
         records.setSize(size);
         records.setCurrent(current);
@@ -505,12 +519,11 @@ public class EsPatentService {
         builder.index("patent");
         Query q = this.getQuery(queryRequest);
 
-        Query reQuery =null;
-        if(patentNos!=null&&patentNos.size()>0){
+        Query reQuery = null;
+        if (patentNos != null && patentNos.size() > 0) {
             List<Query> notInQuery = this.getNoNotInQuery(patentNos);
             reQuery = QueryBuilders.bool(i -> i.must(q).mustNot(notInQuery));
-        }
-        else {
+        } else {
             reQuery = QueryBuilders.bool(i -> i.must(q));
         }
         //4. 返回数据
@@ -598,12 +611,13 @@ public class EsPatentService {
 
     /**
      * 根据id查询
+     *
      * @param ids
      * @return
      * @throws Exception
      */
-    public List<Hit<Patent>>  getById(List<String> ids) throws Exception {
-        List<Hit<Patent>> patents =new ArrayList<>();
+    public List<Hit<Patent>> getById(List<String> ids) throws Exception {
+        List<Hit<Patent>> patents = new ArrayList<>();
         SearchRequest.Builder builder = new SearchRequest.Builder();
         builder.index("patent");
         Query q = QueryBuilders.ids(i -> i.values(ids));
@@ -611,10 +625,10 @@ public class EsPatentService {
         SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
         long total = response.hits().total().value();
         if (total > 0) {
-            patents  = response.hits().hits();
-            }
-        return patents;
+            patents = response.hits().hits();
         }
+        return patents;
+    }
 
     public void removeById(String id) throws IOException {
         DeleteResponse deleteResponse = client.delete(deleteRequest ->

+ 1 - 1
src/main/java/cn/cslg/pas/service/common/PersonFieldService.java

@@ -302,7 +302,7 @@ public class PersonFieldService {
 
 
         //当tableName是patent时
-        if (PatentDictionary.NAME.equals(tableName)&&projectId!=null) {
+        if (PatentDictionary.NAME.equals(tableName)&&projectId!=null&&projectId!=0) {
             //获得所有自定义字段
             List<AllCustomFieldVO> allCustomFieldVOS = customFieldService.getAllProjectCustomField(projectId);
             AllCustomFieldVO allCustomFieldVO = new AllCustomFieldVO();

+ 9 - 2
src/main/java/cn/cslg/pas/service/query/FormatQueryService.java

@@ -238,10 +238,17 @@ public class FormatQueryService {
         String condition = stringRequest.getSearchQuery();
 
         if (queryRequest.getGroupField() != null) {
+            String value ="";
+            if(queryRequest.getGroupFieldValue()==null||queryRequest.getGroupFieldValue().equals("未知")){
+                value = queryRequest.getGroupField() + "=" +"null";
+            }
+            else {
+                value =queryRequest.getGroupField() + "=" + queryRequest.getGroupFieldValue();
+            }
             if (condition != null && condition != "") {
-                condition += " AND " + queryRequest.getGroupField() + "=" + queryRequest.getGroupFieldValue();
+                condition += " AND " + value;
             } else {
-                condition = queryRequest.getGroupField() + "=" + queryRequest.getGroupFieldValue();
+                condition = value;
             }
         }
         if (queryRequest.getProjectId() != null) {

+ 2 - 2
src/main/resources/jsons/patentDigProject.json

@@ -312,7 +312,7 @@
     "type": "Array",
     "value": "matterNames",
     "field": "matterNames",
-    "sqlField": "aspe.matter_id",
+    "sqlField": "aspm.matter_id",
     "sqlClass": "getComSql",
     "orderClass": "getMatterOrder",
     "groupClass": "getMatterGroup",
@@ -327,7 +327,7 @@
     "type": "Array",
     "value": "scenarioNames",
     "field": "scenarioNames",
-    "sqlField": "aspe.scenario_id",
+    "sqlField": "asps.scenario_id",
     "sqlClass": "getComSql",
     "orderClass": "getProjectScenarioOrder",
     "groupClass": "getScenarioGroup",

+ 2 - 2
src/main/resources/jsons/patentProject.json

@@ -133,7 +133,7 @@
     "type": "Array",
     "value": "scenarioNames",
     "field": "scenarioNames",
-    "sqlField": "aspe.scenario_id",
+    "sqlField": "asps.scenario_id",
     "sqlClass": "getComSql",
     "orderClass": "getProjectScenarioOrder",
     "groupClass": "getScenarioGroup",
@@ -147,7 +147,7 @@
     "type": "Array",
     "value": "matterNames",
     "field": "matterNames",
-    "sqlField": "aspe.matter_id",
+    "sqlField": "aspm.matter_id",
     "sqlClass": "getComSql",
     "orderClass": "getMatterOrder",
     "groupClass": "getMatterGroup",

+ 2 - 2
src/main/resources/jsons/reportProject.json

@@ -274,7 +274,7 @@
     "type":"Array",
     "value":"matterNames",
     "field": "matterNames",
-    "sqlField": "aspe.matter_id",
+    "sqlField": "aspm.matter_id",
     "sqlClass": "getComSql",
     "orderClass": "getMatterOrder",
     "groupClass":"getMatterGroup",
@@ -288,7 +288,7 @@
     "type":"Array",
     "value":"scenarioNames",
     "field": "scenarioNames",
-    "sqlField": "aspe.scenario_id",
+    "sqlField": "asps.scenario_id",
     "sqlClass": "getComSql",
     "orderClass": "getProjectScenarioOrder",
     "groupClass":"getScenarioGroup",

+ 9 - 0
src/main/resources/mapper/Event.xml

@@ -75,4 +75,13 @@
         group by ${groupField}
         ) as c
     </select>
+
+
+    <select id="getScenairGroups" resultType="cn.cslg.pas.common.vo.GroupReVO">
+        select ${selectField} as value ,count(${selectField}) as num from ${tableName}
+        <if test="sqls.get(0)!=''">
+            where ${sqls.get(0)}
+        </if>
+        group by ${groupField} ${sqls.get(1)} ${sqls.get(2)}
+    </select>
 </mapper>

+ 6 - 2
src/main/resources/mapper/PatentDigProjectMapper.xml

@@ -9,7 +9,9 @@
         p.entrust_type as entrustType,p.entrust_id as entrustId
         from patent_dig_project as dp left join project as p
         on dp.project_id =p.id left join rd_project rp on dp.rd_project_id =rp.id
-        left join asso_project_event as aspe on p.id =aspe.project_id
+        left join (select * from asso_project_event where scenario_id is not null ) as asps on p.id = asps.project_id
+        left join (select * from asso_project_event where event_id is not null ) as aspe on p.id = aspe.project_id
+        left join (select * from asso_project_event where matter_id is not null ) as aspm on p.id = aspm.project_id
         <if test="sql1!=''">
             where ${sql1}
         </if>
@@ -21,7 +23,9 @@
         select count(*)
         from patent_dig_project as dp left join project as p
         on dp.project_id =p.id left join rd_project rp on dp.rd_project_id =rp.id
-        left join asso_project_event as aspe on p.id =aspe.project_id
+        left join (select * from asso_project_event where scenario_id is not null ) as asps on p.id = asps.project_id
+        left join (select * from asso_project_event where event_id is not null ) as aspe on p.id = aspe.project_id
+        left join (select * from asso_project_event where matter_id is not null ) as aspm on p.id = aspm.project_id
         <if test="sql1!=''">
             where ${sql1}
         </if>

+ 6 - 2
src/main/resources/mapper/PatentProjectMapper.xml

@@ -8,7 +8,9 @@
         p.entrust_type as  entrustType,p.entrust_id as entrustId,p.head_id as headId,p.department_id as departmentId
         from patent_project as pp left join project as p
         on pp.project_id =p.id  left join asso_project_tree_node as aspt on p.id =aspt.project_id
-        left join asso_project_event as aspe on p.id = aspe.project_id
+        left join (select * from asso_project_event where scenario_id is not null ) as asps on p.id = asps.project_id
+        left join (select * from asso_project_event where event_id is not null ) as aspe on p.id = aspe.project_id
+        left join (select * from asso_project_event where matter_id is not null ) as aspm on p.id = aspm.project_id
         <if test="sql1!=''">
             where ${sql1}
         </if>
@@ -19,7 +21,9 @@
     <select id="getPatentProjectCount" resultType="java.lang.Long">
         select count(*) from (select distinct p.id    from patent_project as pp left join project as p
         on pp.project_id =p.id  left join asso_project_tree_node as aspt on p.id =aspt.project_id
-        left join asso_project_event as aspe on p.id =aspe.project_id
+        left join (select * from asso_project_event where scenario_id is not null ) as asps on p.id = asps.project_id
+        left join (select * from asso_project_event where event_id is not null ) as aspe on p.id = aspe.project_id
+        left join (select * from asso_project_event where matter_id is not null ) as aspm on p.id = aspm.project_id
         <if test="sql1!=''">
             where ${sql1}
         </if>

+ 6 - 2
src/main/resources/mapper/ReportProjectMapper.xml

@@ -15,7 +15,9 @@
         cronDescription,rp.act_type as actType ,rp.patent_type as patentType ,rp.current_application as
         currentApplication, rp.invention_name as inventionName,p.contract_no as contractNo,rp.carding_opinion from report as rp left join project as p
         on rp.project_id =p.id left join asso_report_cron arc on p.id =arc.project_id
-        left join asso_project_event as aspe on p.id =aspe.project_id
+        left join (select * from asso_project_event where scenario_id is not null ) as asps on p.id = asps.project_id
+        left join (select * from asso_project_event where event_id is not null ) as aspe on p.id = aspe.project_id
+        left join (select * from asso_project_event where matter_id is not null ) as aspm on p.id = aspm.project_id
         <if test="sql1!=''">
             where  (${sql1})
         </if>
@@ -26,7 +28,9 @@
         select count(*) from (select distinct p.id from report as rp left join project as p
         on rp.project_id =p.id
         left join asso_report_cron arc on p.id =arc.project_id
-        left join asso_project_event as aspe on p.id =aspe.project_id
+        left join (select * from asso_project_event where scenario_id is not null ) as asps on p.id = asps.project_id
+        left join (select * from asso_project_event where event_id is not null ) as aspe on p.id = aspe.project_id
+        left join (select * from asso_project_event where matter_id is not null ) as aspm on p.id = aspm.project_id
         <if test="sql1!=''">
             where ${sql1}
         </if>

+ 15 - 0
src/main/resources/mapper/TreeNodeMapper.xml

@@ -66,5 +66,20 @@
         </if>
     </select>
 
+    <select id="getTreeFieldPath" resultType="java.lang.String">
+        select tree.name
+        from tree_node as tree
+        <where>
+             id in
+                <foreach collection="ids" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+                order by field(id,
+                <foreach collection="ids" item="item" separator=",">
+                    #{item}
+                </foreach>
+                )
 
+        </where>
+    </select>
 </mapper>