lwhhszx пре 1 година
родитељ
комит
a8d1d7b653
20 измењених фајлова са 515 додато и 126 уклоњено
  1. 4 4
      src/main/java/cn/cslg/pas/common/config/WebSocketConfig.java
  2. 1 0
      src/main/java/cn/cslg/pas/common/core/base/RedisConf.java
  3. 8 4
      src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddProofGroupDTO.java
  4. 1 0
      src/main/java/cn/cslg/pas/common/vo/PersonSelfFieldVO.java
  5. 1 1
      src/main/java/cn/cslg/pas/common/vo/invalidVO/ProofGroupVO.java
  6. 24 0
      src/main/java/cn/cslg/pas/controller/PersonFieldController.java
  7. 56 0
      src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetEventScenarioGroup.java
  8. 3 1
      src/main/java/cn/cslg/pas/service/ReportExportService.java
  9. 41 39
      src/main/java/cn/cslg/pas/service/business/EventService.java
  10. 13 6
      src/main/java/cn/cslg/pas/service/business/PatentDigProjectService.java
  11. 14 6
      src/main/java/cn/cslg/pas/service/business/PatentProjectService.java
  12. 18 10
      src/main/java/cn/cslg/pas/service/business/ProductCategoryService.java
  13. 18 9
      src/main/java/cn/cslg/pas/service/business/ProductService.java
  14. 7 3
      src/main/java/cn/cslg/pas/service/business/ProofGroupService.java
  15. 49 14
      src/main/java/cn/cslg/pas/service/business/ReportProjectService.java
  16. 15 13
      src/main/java/cn/cslg/pas/service/business/es/EsPatentService.java
  17. 14 0
      src/main/java/cn/cslg/pas/service/business/invalidReport/EvidenceReasonService.java
  18. 124 14
      src/main/java/cn/cslg/pas/service/common/PersonFieldService.java
  19. 2 2
      src/main/resources/jsons/event.json
  20. 102 0
      src/main/resources/jsons/evidenceReason.json

+ 4 - 4
src/main/java/cn/cslg/pas/common/config/WebSocketConfig.java

@@ -6,8 +6,8 @@ import org.springframework.web.socket.server.standard.ServerEndpointExporter;
 
 @Configuration
 public class WebSocketConfig {
-//    @Bean
-//    public ServerEndpointExporter serverEndpointExporter() {
-//        return new ServerEndpointExporter();
-//    }
+    @Bean
+    public ServerEndpointExporter serverEndpointExporter() {
+        return new ServerEndpointExporter();
+    }
 }

+ 1 - 0
src/main/java/cn/cslg/pas/common/core/base/RedisConf.java

@@ -25,4 +25,5 @@ public class RedisConf {
     public final static String FIELD_COUNT = "field_count";
     public final static String PROJECT = "project";
     public final static String PRODUCT = "product";
+    public final static String EVIDENCE_REASON = "evidence_reason";
 }

+ 8 - 4
src/main/java/cn/cslg/pas/common/dto/invalidDTO/AddProofGroupDTO.java

@@ -9,6 +9,7 @@ import java.util.List;
 
 /**
  * 证据组合
+ *
  * @Author xiexiang
  * @Date 2023/12/25
  */
@@ -34,9 +35,12 @@ public class AddProofGroupDTO {
      */
     private Integer claimId;
 
-    /**
-     * 证据组合说明
-     */
-    private List<String> descriptions;
+    private List<Descriptions> descriptions;
+
+    @Data
+    public static class Descriptions {
+        private String description1;
+        private String description2;
 
+    }
 }

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

@@ -19,6 +19,7 @@ public class PersonSelfFieldVO {
      * 返回值名
      */
     private String value;
+    private String field;
     /**
      * 排序
      */

+ 1 - 1
src/main/java/cn/cslg/pas/common/vo/invalidVO/ProofGroupVO.java

@@ -112,5 +112,5 @@ public class ProofGroupVO {
 
     private String courtOpinions2;
 
-
+    private String description2;
 }

+ 24 - 0
src/main/java/cn/cslg/pas/controller/PersonFieldController.java

@@ -98,4 +98,28 @@ public class PersonFieldController {
         records.setData(getAllPatentCountVOS);
         return Response.success(records);
     }
+
+    @Operation(summary = "获得无效理由和证据表格显示栏位")
+    @PostMapping("/getEvidenceReasonTableColumns")
+    public Response getEvidenceReasonTableColumns(@RequestBody GetTabelColumDTO getTabelColumDTO) throws Exception {
+        Records records = new Records();
+        try {
+            List<PersonSelfFieldVO> personSelfFieldVOS = personFieldService.getEvidenceReasonTableColumns(getTabelColumDTO);
+
+            records.setData(personSelfFieldVOS);
+        }
+      catch (Exception e){
+            return Response.error(e.getMessage());
+      }
+        return Response.success(records);
+    }
+
+    @Operation(summary = "设置无效理由和证据表格显示栏位")
+    @PostMapping("/setEvidenceReasonTableColumns")
+    public Response setEvidenceReasonTableColumns(@RequestBody AddSelfFieldDTO addSelfFieldDTO) throws Exception {
+        List<PersonSelfFieldVO> personSelfFieldVOS = personFieldService.setEvidenceReasonTableColumns(addSelfFieldDTO);
+        Records records = new Records();
+        records.setData(personSelfFieldVOS);
+        return Response.success(records);
+    }
 }

+ 56 - 0
src/main/java/cn/cslg/pas/factorys/reGroupFactory/GetEventScenarioGroup.java

@@ -0,0 +1,56 @@
+package cn.cslg.pas.factorys.reGroupFactory;
+
+import cn.cslg.pas.common.model.cronModel.ReGroupDataVO;
+import cn.cslg.pas.common.vo.GroupReVO;
+import cn.cslg.pas.domain.business.SystemDict;
+import cn.cslg.pas.mapper.EventMapper;
+import cn.cslg.pas.service.business.SystemDictService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+
+
+@Slf4j
+@Component
+public class GetEventScenarioGroup implements QueryGroupImp {
+    @Autowired
+    private EventMapper eventMapper;
+    @Autowired
+    private SystemDictService systemDictService;
+
+    @Override
+    public ReGroupDataVO getGroup(List<String> sqls, String tableName, String groupField) {
+        ReGroupDataVO reGroupDataVO = new ReGroupDataVO();
+        List<Map<String, Object>> maps = new ArrayList<>();
+        String selectField = groupField;
+        List<SystemDict> systemDictList = systemDictService.getSystemDictListByType(Arrays.asList("ENTERPRISE_APPLICATION_SCENARIO"));
+        //分组查询应用场景
+        List<GroupReVO> scenarioIds = eventMapper.getGroups(sqls, tableName, groupField, selectField);
+        Long total = eventMapper.getGroupsCount(sqls, tableName, groupField, selectField);
+        //装载应用场景名称
+        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);
+        reGroupDataVO.setTotal(total);
+        return reGroupDataVO;
+    }
+
+}

+ 3 - 1
src/main/java/cn/cslg/pas/service/ReportExportService.java

@@ -142,7 +142,9 @@ public class ReportExportService {
 
     private XWPFTemplate Torttemplate(Integer reportId, String filePath) throws IOException {
         //根据报告Id查询标的专利号
-        ReportProject report = reportProjectService.getById(reportId);
+        LambdaQueryWrapper<ReportProject> projectLambdaQueryWrapper =new LambdaQueryWrapper<>();
+        projectLambdaQueryWrapper.eq(ReportProject::getProjectId,reportId);
+        ReportProject report = reportProjectService.getOne(projectLambdaQueryWrapper,false);
         String patentNo = report.getSignPatentNo();
 //        PatentVO patentVO = new PatentVO();
 //        patentVO.setPatentNos(Arrays.asList(patentNo));

+ 41 - 39
src/main/java/cn/cslg/pas/service/business/EventService.java

@@ -76,10 +76,10 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bus
     @Transactional(rollbackFor = Exception.class)
     public Object queryMessage(QueryRequest queryRequest) throws Exception {
 
-       List<String> sqls = formatQueryService.reSqls(queryRequest,"event");
-        sqls=this.loadSearchSql(sqls);
-       //根据sql查询事件信息
-        List<EventVO> eventVOS = eventMapper.getEvent(sqls.get(0),sqls.get(1),sqls.get(2));
+        List<String> sqls = formatQueryService.reSqls(queryRequest, "event");
+        sqls = this.loadSearchSql(sqls);
+        //根据sql查询事件信息
+        List<EventVO> eventVOS = eventMapper.getEvent(sqls.get(0), sqls.get(1), sqls.get(2));
 
         //查询总数
         Long total = eventMapper.getEventCount(sqls.get(0));
@@ -177,7 +177,7 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bus
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Object updateMessage(Object object, List<MultipartFile> files) {
-        PersonnelVO personnelVO =cacheUtils.getLoginUser(loginUtils.getId());
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
         UpdateEventDTO updateEventDTO = (UpdateEventDTO) object;
         //检查事件格式
         if (updateEventDTO == null || updateEventDTO.getId() == null) {
@@ -191,7 +191,7 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bus
         LambdaQueryWrapper<Event> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(Event::getName, name);
         List<Event> events = this.list(queryWrapper);
-        if (!updateEventDTO.getName().equals(event.getName())  && events.size() != 0) {
+        if (!updateEventDTO.getName().equals(event.getName()) && events.size() != 0) {
             throw new XiaoShiException("名称重复");
         }
         BeanUtils.copyProperties(updateEventDTO, event);
@@ -253,15 +253,15 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bus
      * @throws Exception
      */
     @Transactional(rollbackFor = Exception.class)
-    public Object getGroup(GroupRequest groupRequest,String tableName) throws Exception {
-        StringRequest stringRequest =new StringRequest();
-        BeanUtils.copyProperties(groupRequest,stringRequest);
-        List<String> sqls = formatQueryService.reSqls(stringRequest,tableName);
-        sqls =this.loadSearchSql(sqls);
+    public Object getGroup(GroupRequest groupRequest, String tableName) throws Exception {
+        StringRequest stringRequest = new StringRequest();
+        BeanUtils.copyProperties(groupRequest, stringRequest);
+        List<String> sqls = formatQueryService.reSqls(stringRequest, tableName);
+        sqls = this.loadSearchSql(sqls);
         //格式化 分组
-        GroupConfig groupConfig=null;
+        GroupConfig groupConfig = null;
         if (groupRequest.getGroupBy() != null) {
-            String json = CommonService.readJsonFile(tableName+".json");
+            String json = CommonService.readJsonFile(tableName + ".json");
             List<GroupConfig> groupConfigs = JSON.parseArray(json, GroupConfig.class);
             groupConfig = groupConfigs.stream().filter(item -> groupRequest.getGroupBy().equals(item.getField())).findFirst().orElse(null);
             if (groupConfig == null) {
@@ -271,7 +271,7 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bus
 
         //返回分组数据
         QueryGroupImp queryGroupImp = queryGroupFactory.getClass(groupConfig.getGroupClass());
-        ReGroupDataVO  reGroupDataVO = queryGroupImp.getGroup(sqls, tableName, groupConfig.getSqlField());
+        ReGroupDataVO reGroupDataVO = queryGroupImp.getGroup(sqls, tableName, groupConfig.getSqlField());
 
         //装载数据
         GroupVO groupVO = new GroupVO();
@@ -355,9 +355,9 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bus
         //查询文件
         if (guids.size() != 0) {
             String res = fileManagerService.getSystemFileFromFMS(guids);
-if(res!=null&&!res.trim().equals("")) {
-    systemFiles = JSONObject.parseArray(res, SystemFile.class);
-}
+            if (res != null && !res.trim().equals("")) {
+                systemFiles = JSONObject.parseArray(res, SystemFile.class);
+            }
         }
 
         //查询关联报告或专题库
@@ -434,33 +434,35 @@ if(res!=null&&!res.trim().equals("")) {
 
     }
 
-public List<Integer> getEventIdByName(String value,Boolean ifEqual){
-    LambdaQueryWrapper<Event> queryWrapper = new LambdaQueryWrapper<>();
-    queryWrapper.select(Event::getId);
-    if (ifEqual != null && ifEqual.equals(true)) {
-        queryWrapper.like(Event::getName, value);
-    } else {
-        queryWrapper.eq(Event::getName, value);
-    }
-    java.util.function.Function<Object, Integer> f = (o -> Integer.parseInt(o.toString()));
-    List<Integer> ids = this.listObjs(queryWrapper, f);
-    return ids;
+    public List<Integer> getEventIdByName(String value, Boolean ifEqual) {
+        LambdaQueryWrapper<Event> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.select(Event::getId);
+        if (ifEqual != null && ifEqual.equals(true)) {
+            queryWrapper.like(Event::getName, value);
+        } else {
+            queryWrapper.eq(Event::getName, value);
+        }
+        java.util.function.Function<Object, Integer> f = (o -> Integer.parseInt(o.toString()));
+        List<Integer> ids = this.listObjs(queryWrapper, f);
+        return ids;
 
-}
+    }
 
 
     //装载查询语句
-    private List<String> loadSearchSql(List<String> sqls){
-        PersonnelVO personnelVO =cacheUtils.getLoginUser(loginUtils.getId());
-        Integer tenant_id =personnelVO.getTenantId();
-        String rootSql ="(tenant_id ="+tenant_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());
+        Integer tenant_id = personnelVO.getTenantId();
+        Integer roleType = personnelVO.getRoleType();
+        String rootSql = "";
+        if (roleType == null || roleType.equals(2) || roleType.equals(0)) {
+            rootSql = "(tenant_id =" + tenant_id + ")";
         }
-        else {
-            sqls.set(0,rootSql);
+
+        if (sqls.get(0) != null && !sqls.get(0).equals("")&&!rootSql.equals("")) {
+            sqls.set(0, rootSql + " and" + "(" + sqls.get(0) + ")");
+        } else if((sqls.get(0) == null ||sqls.get(0).equals(""))&&!rootSql.equals("")){
+            sqls.set(0, rootSql);
         }
 
         return sqls;

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

@@ -761,14 +761,21 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
     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)+")");
+        Integer tenantId= personnelVO.getTenantId();
+        Integer roleType = personnelVO.getRoleType();
+        String rootSql = "";
+        if (roleType == null || roleType.equals(0)) {
+            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+"))";
 
         }
-        else {
-            sqls.set(0,rootSql);
+        else if(roleType.equals(2))
+        {
+            rootSql="p.tenantId="+tenantId;
+        }
+        if (sqls.get(0) != null && !sqls.get(0).equals("") && !rootSql.equals("")) {
+            sqls.set(0, rootSql + " and" + "(" + sqls.get(0) + ")");
+        } else if ((sqls.get(0) == null || sqls.get(0).equals("")) && !rootSql.equals("")) {
+            sqls.set(0, rootSql);
         }
 
         return sqls;

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

@@ -881,14 +881,22 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
     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)+")");
+        Integer tenantId= personnelVO.getTenantId();
+        Integer roleType = personnelVO.getRoleType();
+        String rootSql = "";
+        if (roleType == null || roleType.equals(0)) {
+           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+"))";
 
         }
-        else {
-            sqls.set(0,rootSql);
+        else if(roleType.equals(2))
+        {
+            rootSql="p.tenantId="+tenantId;
+        }
+
+        if (sqls.get(0) != null && !sqls.get(0).equals("") && !rootSql.equals("")) {
+            sqls.set(0, rootSql + " and" + "(" + sqls.get(0) + ")");
+        } else if ((sqls.get(0) == null || sqls.get(0).equals("")) && !rootSql.equals("")) {
+            sqls.set(0, rootSql);
         }
 
         return sqls;

+ 18 - 10
src/main/java/cn/cslg/pas/service/business/ProductCategoryService.java

@@ -508,20 +508,28 @@ public class ProductCategoryService extends ServiceImpl<ProductCategoryMapper, P
     private List<String> loadSearchSql(List<String> sqls){
         PersonnelVO personnelVO =cacheUtils.getLoginUser(loginUtils.getId());
         String id =personnelVO.getId();
-        Integer tenantId =personnelVO.getTenantId();
-        String rootSql ="category.create_id="+id+" or(category.show_type =0 and category.tenant ="+tenantId+") or ( category.id in (select product_category_id from asso_product_category_person where" +
-                " person_id="+id+" and role=0)) or (category.show_type=2 and  category.id in (select product_category_id from asso_product_category_person where" +
-                " person_id="+id+" and role=1)) or(category.show_type =3 and category.id not in(select product_category_id from asso_product_category_person where" +
-                " person_id="+id+" and role=2))";
-        if(sqls.get(0)!=null&&!sqls.get(0).equals(""))
-        {
-            sqls.set(0,"("+rootSql+") and"+"("+sqls.get(0)+")");
+        Integer tenantId= personnelVO.getTenantId();
+        Integer roleType = personnelVO.getRoleType();
+        String rootSql = "";
+        if (roleType == null || roleType.equals(0)) {
+            rootSql ="category.create_id="+id+" or(category.show_type =0 and category.tenant ="+tenantId+") or ( category.id in (select product_category_id from asso_product_category_person where" +
+                    " person_id="+id+" and role=0)) or (category.show_type=2 and  category.id in (select product_category_id from asso_product_category_person where" +
+                    " person_id="+id+" and role=1)) or(category.show_type =3 and category.id not in(select product_category_id from asso_product_category_person where" +
+                    " person_id="+id+" and role=2))";
 
         }
-        else {
-            sqls.set(0,rootSql);
+        else if(roleType.equals(2))
+        {
+            rootSql="category.tenant="+tenantId;
         }
 
+        if (sqls.get(0) != null && !sqls.get(0).equals("") && !rootSql.equals("")) {
+            sqls.set(0, rootSql + " and" + "(" + sqls.get(0) + ")");
+        } else if ((sqls.get(0) == null || sqls.get(0).equals("")) && !rootSql.equals("")) {
+            sqls.set(0, rootSql);
+        }
+
+
         return sqls;
 
     }

+ 18 - 9
src/main/java/cn/cslg/pas/service/business/ProductService.java

@@ -543,16 +543,25 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
     //装载查询语句
     private List<String> loadSearchSql(List<String> sqls) {
         PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
-        String id = personnelVO.getId();
-        Integer tenantId = personnelVO.getTenantId();
-        String rootSql = "product.create_id=" + id + " or(product.show_type =0 and product.tenant_id =" + tenantId + ") or ( product.id in (select product_id from asso_product_person where" +
-                " person_id=" + id + " and role=0)) or (product.show_type=2 and  product.id in (select product_id from asso_product_person where" +
-                " person_id=" + id + " and role=1)) or(product.show_type =3 and product.id not in(select product_id from asso_product_person where" +
-                " person_id=" + id + " and role=2))";
-        if (sqls.get(0) != null && !sqls.get(0).equals("")) {
-            sqls.set(0, "(" + rootSql + ")" + " and " + "(" + sqls.get(0) + ")");
+        String id =personnelVO.getId();
+        Integer tenantId= personnelVO.getTenantId();
+        Integer roleType = personnelVO.getRoleType();
+        String rootSql = "";
+        if (roleType == null || roleType.equals(0)) {
+            rootSql = "product.create_id=" + id + " or(product.show_type =0 and product.tenant_id =" + tenantId + ") or ( product.id in (select product_id from asso_product_person where" +
+                    " person_id=" + id + " and role=0)) or (product.show_type=2 and  product.id in (select product_id from asso_product_person where" +
+                    " person_id=" + id + " and role=1)) or(product.show_type =3 and product.id not in(select product_id from asso_product_person where" +
+                    " person_id=" + id + " and role=2))";
 
-        } else {
+        }
+        else if(roleType.equals(2))
+        {
+            rootSql="product.tenant_id="+tenantId;
+        }
+
+        if (sqls.get(0) != null && !sqls.get(0).equals("") && !rootSql.equals("")) {
+            sqls.set(0, rootSql + " and" + "(" + sqls.get(0) + ")");
+        } else if ((sqls.get(0) == null || sqls.get(0).equals("")) && !rootSql.equals("")) {
             sqls.set(0, rootSql);
         }
 

+ 7 - 3
src/main/java/cn/cslg/pas/service/business/ProofGroupService.java

@@ -59,7 +59,7 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
         List<Integer> proofGroupIds = new ArrayList<>();
         if (addProofGroupDTO != null) {
             Integer id = addProofGroupDTO.getId();
-            List<String> descriptions = addProofGroupDTO.getDescriptions();
+            List<AddProofGroupDTO.Descriptions> descriptions = addProofGroupDTO.getDescriptions();
             Integer projectId = addProofGroupDTO.getProjectId();
             Integer claimId = addProofGroupDTO.getClaimId();
             Integer statutesId = addProofGroupDTO.getStatutesId();
@@ -85,9 +85,11 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
                 ProofGroup proofGroup = this.getById(id);
                 proofGroup.setInvalidStatutesId(invalidStatutesId);
                 if (!descriptions.isEmpty() && descriptions.size() == 1) {
-                    proofGroup.setDescription(descriptions.get(0));
+                    proofGroup.setDescription(descriptions.get(0).getDescription1());
+                    proofGroup.setDescription2(descriptions.get(0).getDescription2());
                 } else {
                     proofGroup.setDescription(null);
+                    proofGroup.setDescription2(null);
                 }
                 proofGroup.updateById();
                 proofGroupIds.add(proofGroup.getId());
@@ -100,7 +102,8 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
                     descriptions.forEach(item -> {
                         ProofGroup proofGroup = new ProofGroup();
                         proofGroup.setInvalidStatutesId(invalidStatutesId);
-                        proofGroup.setDescription(item);
+                        proofGroup.setDescription(item.getDescription1());
+                        proofGroup.setDescription2(item.getDescription2());
                         proofGroups.add(proofGroup);
                     });
                 } else {
@@ -145,6 +148,7 @@ public class ProofGroupService extends ServiceImpl<ProofGroupMapper, ProofGroup>
                 proofGroupVO.setClaimId(invalidStatutes.getClaimId());
                 proofGroupVO.setProjectId(invalidStatutes.getProjectId());
                 proofGroupVO.setDescription(item.getDescription());
+                proofGroupVO.setDescription2(item.getDescription2());
                 proofGroupVOS.add(proofGroupVO);
             });
         }

+ 49 - 14
src/main/java/cn/cslg/pas/service/business/ReportProjectService.java

@@ -366,16 +366,42 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         if (events != null && events.size() != 0) {
             //遍历传入的事件集合
             for (ProjectEventDTO projectEventDTO : events) {
-                AssoProjectEvent assoProjectEvent = new AssoProjectEvent();
-                //事件id和处理事项id
-                BeanUtils.copyProperties(projectEventDTO, assoProjectEvent);
-                //项目id
-                assoProjectEvent.setProjectId(project.getId());
-                //创建人
-                assoProjectEvent.setCreateId(personnelVO.getId());
-                //类型为报告
-                assoProjectEvent.setProjectType(1);
-                assoProjectEvents.add(assoProjectEvent);
+                if (projectEventDTO.getEventId() != null) {
+                    AssoProjectEvent assoProjectEvent = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent.setEventId(projectEventDTO.getEventId());
+                    //项目id
+                    assoProjectEvent.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent.setCreateId(personnelVO.getId());
+                    //类型为报告
+                    assoProjectEvent.setProjectType(1);
+                    assoProjectEvents.add(assoProjectEvent);
+                }
+                if (projectEventDTO.getMatterId() != null) {
+                    AssoProjectEvent assoProjectEvent = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent.setMatterId(projectEventDTO.getMatterId());
+                    //项目id
+                    assoProjectEvent.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent.setCreateId(personnelVO.getId());
+                    //类型为报告
+                    assoProjectEvent.setProjectType(1);
+                    assoProjectEvents.add(assoProjectEvent);
+                }
+                if (projectEventDTO.getScenarioId() != null) {
+                    AssoProjectEvent assoProjectEvent = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent.setScenarioId(projectEventDTO.getScenarioId());
+                    //项目id
+                    assoProjectEvent.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent.setCreateId(personnelVO.getId());
+                    //类型为报告
+                    assoProjectEvent.setProjectType(1);
+                    assoProjectEvents.add(assoProjectEvent);
+                }
             }
             if (assoProjectEvents != null && assoProjectEvents.size() != 0) {
                 assoProjectEventService.saveBatch(assoProjectEvents);
@@ -903,11 +929,20 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
     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) + ")");
+        Integer tenantId= personnelVO.getTenantId();
+        Integer roleType = personnelVO.getRoleType();
+        String rootSql = "";
+        if (roleType == null || roleType.equals(0)) {
+            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 + "))";
 
-        } else {
+        }
+        else if(roleType.equals(2))
+        {
+            rootSql="p.tenantId="+tenantId;
+        }
+        if (sqls.get(0) != null && !sqls.get(0).equals("") && !rootSql.equals("")) {
+            sqls.set(0, rootSql + " and" + "(" + sqls.get(0) + ")");
+        } else if ((sqls.get(0) == null || sqls.get(0).equals("")) && !rootSql.equals("")) {
             sqls.set(0, rootSql);
         }
 

+ 15 - 13
src/main/java/cn/cslg/pas/service/business/es/EsPatentService.java

@@ -212,19 +212,21 @@ public class EsPatentService {
         } 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(pdfFormat2);
-            dto.setType(1);
-            list.add(dto);
+        if (!CollectionUtils.isEmpty(systemFiles)) {
+            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(pdfFormat2);
+                dto.setType(1);
+                list.add(dto);
+            }
         }
         return list;
     }

+ 14 - 0
src/main/java/cn/cslg/pas/service/business/invalidReport/EvidenceReasonService.java

@@ -217,6 +217,20 @@ public class EvidenceReasonService extends ServiceImpl<EvidenceReasonMapper, Evi
                 queryFeatureHistoryDTO.setFeatureGroupId(featureGroupId);
                 List<AssoGroupFeature> queryFeatureHistories = assoGroupFeatureService.getHistory(queryFeatureHistoryDTO);
 
+                //装载特征历史特征
+                List<Integer> featureIds =queryFeatureHistories.stream().map(AssoGroupFeature::getFeatureId).collect(Collectors.toList());
+                LambdaQueryWrapper<Feature> queryWrapper =new LambdaQueryWrapper<>();
+                queryWrapper.in(Feature::getId,featureIds);
+                List<Feature> features =featureService.list(queryWrapper);
+                queryFeatureHistories.forEach(item->{
+                    Feature feature1=   features.stream().filter(i->i.getId().equals(item.getFeatureId())).findFirst().orElse(null);
+                    if(feature1!=null){
+                        item.setFeatureText(feature1.getContent());
+                    }
+
+                });
+
+
                 Integer n = gen >= queryFeatureHistories.size() - 1 ? queryFeatureHistories.size() - 1 : gen;
                 AssoGroupFeature item = queryFeatureHistories.get(n);
                 Integer newFeatureGroupId = item.getId();

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

@@ -15,12 +15,15 @@ import cn.cslg.pas.common.vo.QueryFieldsVO;
 import cn.cslg.pas.common.vo.PersonSelfFieldVO;
 import cn.cslg.pas.common.vo.business.AllCustomFieldVO;
 import cn.cslg.pas.common.vo.patentCount.GetAllPatentCountVO;
+import cn.cslg.pas.domain.business.ReportProject;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.service.business.CommonService;
 import cn.cslg.pas.service.business.CustomFieldService;
+import cn.cslg.pas.service.business.ReportProjectService;
 import cn.hutool.crypto.SecureUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -43,6 +46,8 @@ public class PersonFieldService {
     @Autowired
     private CustomFieldService customFieldService;
 
+    @Autowired
+    private ReportProjectService reportProjectService;
 
     public List<PersonSelfFieldVO> getCustomField(String tableName, Integer projectId) {
 
@@ -178,7 +183,7 @@ public class PersonFieldService {
                     });
                 }
                 //当是专利的配置时
-                if (item.getTableName().trim().equals(PatentDictionary.NAME)&&item.getProjectId()!=null) {
+                if (item.getTableName().trim().equals(PatentDictionary.NAME) && item.getProjectId() != null) {
                     //根据专题库id 查询所有自定义字段
                     List<AllCustomFieldVO> allCustomFieldVOS = customFieldService.getAllProjectCustomField(item.getProjectId());
                     //遍历装载
@@ -280,9 +285,9 @@ public class PersonFieldService {
 
         String fieldJson = "";
         //如果查到
-        List<PersonSelfFieldVO> reFieldVos =new ArrayList<>();
+        List<PersonSelfFieldVO> reFieldVos = new ArrayList<>();
         if (StringUtils.isNotEmpty(json)) {
-            reFieldVos =JsonUtils.jsonToList(json, PersonSelfFieldVO.class);
+            reFieldVos = JsonUtils.jsonToList(json, PersonSelfFieldVO.class);
         }
         try {
             fieldJson = CommonService.readJsonFile(tableName + ".json");
@@ -300,9 +305,8 @@ public class PersonFieldService {
         }
 
 
-
         //当tableName是patent时
-        if (PatentDictionary.NAME.equals(tableName)&&projectId!=null&&projectId!=0) {
+        if (PatentDictionary.NAME.equals(tableName) && projectId != null && projectId != 0) {
             //获得所有自定义字段
             List<AllCustomFieldVO> allCustomFieldVOS = customFieldService.getAllProjectCustomField(projectId);
             AllCustomFieldVO allCustomFieldVO = new AllCustomFieldVO();
@@ -326,14 +330,12 @@ public class PersonFieldService {
         }
         //装载顺序
         for (PersonSelfFieldVO item : fieldVOS) {
-            PersonSelfFieldVO personSelfFieldVO =reFieldVos.stream().filter(t->t.getValue().equals(item.getValue())&&t.getType().equals(item.getType())).findFirst().orElse(null);
+            PersonSelfFieldVO personSelfFieldVO = reFieldVos.stream().filter(t -> t.getValue().equals(item.getValue()) && t.getType().equals(item.getType())).findFirst().orElse(null);
 
-            if(personSelfFieldVO==null) {
-                if(StringUtils.isNotEmpty(json))
-                {
+            if (personSelfFieldVO == null) {
+                if (StringUtils.isNotEmpty(json)) {
                     item.setIfHidden(true);
-                }
-                else {
+                } else {
                     if (item.getDefaultHidden() != null && item.getDefaultHidden().equals(true)) {
                         item.setIfHidden(true);
                     } else {
@@ -356,9 +358,9 @@ public class PersonFieldService {
         String userId = personnelVO.getId();
         String tableName = addSelfFieldDTO.getTableName();
         Integer projectId = addSelfFieldDTO.getProjectId();
-        Integer productId =addSelfFieldDTO.getProductId();
-        List<PersonSelfFieldVO> personSelfFieldVOS =addSelfFieldDTO.getValue();
-        personSelfFieldVOS= personSelfFieldVOS.stream().filter(item->item.getIfHidden()!=null&&item.getIfHidden().equals(false)).collect(Collectors.toList());
+        Integer productId = addSelfFieldDTO.getProductId();
+        List<PersonSelfFieldVO> personSelfFieldVOS = addSelfFieldDTO.getValue();
+        personSelfFieldVOS = personSelfFieldVOS.stream().filter(item -> item.getIfHidden() != null && item.getIfHidden().equals(false)).collect(Collectors.toList());
         String key = "";
         if (projectId == null) {
             if (productId != null) {
@@ -525,4 +527,112 @@ public class PersonFieldService {
         return fieldVOS;
     }
 
+
+    /**
+     * 查询证据组合表头
+     *
+     * @param getTabelColumDTO
+     * @return
+     */
+    public List<PersonSelfFieldVO> getEvidenceReasonTableColumns(GetTabelColumDTO getTabelColumDTO) {
+        Integer projectId = getTabelColumDTO.getProjectId();
+
+        String tableName = getTabelColumDTO.getTableName();
+        if (tableName == null||tableName.equals("")) {
+            tableName = "evidenceReason";
+        }
+        //根据登录人id和type查询
+        PersonnelVO personnelVO = new PersonnelVO();
+        try {
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        } catch (Exception e) {
+            throw new UnLoginException("未登录");
+        }
+        String userId = personnelVO.getId();
+        String key = "";
+
+
+        key = SecureUtil.md5(tableName + RedisConf.SYMBOL_COLON + userId + RedisConf.SYMBOL_COLON + RedisConf.EVIDENCE_REASON + RedisConf.SYMBOL_COLON + projectId);
+
+        String redisKey = RedisConf.USER_FIELD + RedisConf.SYMBOL_COLON + key;
+        String json = redisUtil.get(redisKey);
+
+        String fieldJson = "";
+        //如果查到
+        List<PersonSelfFieldVO> reFieldVos = new ArrayList<>();
+        if (StringUtils.isNotEmpty(json)) {
+            reFieldVos = JsonUtils.jsonToList(json, PersonSelfFieldVO.class);
+        }
+        try {
+            fieldJson = CommonService.readJsonFile(tableName + ".json");
+        } catch (Exception e) {
+            throw new XiaoShiException("不存在此表");
+        }
+        List<PersonSelfFieldVO> fieldVOS = JSON.parseArray(fieldJson, PersonSelfFieldVO.class);
+        if (fieldVOS == null) {
+            throw new XiaoShiException("不存在此表");
+        }
+        Boolean flag = true;
+        LambdaQueryWrapper<ReportProject> queryWrapper =new LambdaQueryWrapper<>();
+        queryWrapper.eq(ReportProject::getProjectId,projectId);
+        ReportProject reportProject =reportProjectService.getOne(queryWrapper,false);
+        if(reportProject.getIfSecondInvalid()!=null&&reportProject.getIfSecondInvalid())
+        {
+            fieldVOS = fieldVOS.stream().filter(item -> flag.equals(item.getIfShow()) || item.getType().equals("second")).collect(Collectors.toList());
+        }
+     else {
+            fieldVOS = fieldVOS.stream().filter(item -> flag.equals(item.getIfShow())).collect(Collectors.toList());
+        }
+        if (fieldVOS == null || fieldVOS.size() == 0) {
+            throw new XiaoShiException("表中无字段");
+        }
+
+
+        //装载顺序
+        for (PersonSelfFieldVO item : fieldVOS) {
+            if (StringUtils.isNotEmpty(json)) {
+                PersonSelfFieldVO personSelfFieldVO = reFieldVos.stream().filter(t -> t.getValue().equals(item.getValue()) && t.getName().equals(item.getName())).findFirst().orElse(null);
+                if (personSelfFieldVO == null) {
+                    item.setIfHidden(true);
+                    reFieldVos.add(item);
+                }
+
+            } else {
+                if (item.getDefaultHidden() != null && item.getDefaultHidden().equals(true)) {
+                    item.setIfHidden(true);
+                } else {
+                    item.setIfHidden(false);
+                }
+                reFieldVos.add(item);
+            }
+
+
+
+        }
+        return reFieldVos;
+    }
+
+    public List<PersonSelfFieldVO> setEvidenceReasonTableColumns(AddSelfFieldDTO addSelfFieldDTO) {
+        PersonnelVO personnelVO = new PersonnelVO();
+        try {
+            personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        } catch (Exception e) {
+            throw new UnLoginException("未登录");
+        }
+        String userId = personnelVO.getId();
+        String tableName = addSelfFieldDTO.getTableName();
+        if (tableName == null||tableName.equals("")) {
+            tableName = "evidenceReason";
+        }
+        Integer projectId = addSelfFieldDTO.getProjectId();
+        List<PersonSelfFieldVO> personSelfFieldVOS = addSelfFieldDTO.getValue();
+        personSelfFieldVOS = personSelfFieldVOS.stream().filter(item -> item.getIfHidden() != null && item.getIfHidden().equals(false)).collect(Collectors.toList());
+        String key = "";
+        key = SecureUtil.md5(tableName + RedisConf.SYMBOL_COLON + userId + RedisConf.SYMBOL_COLON + RedisConf.EVIDENCE_REASON + RedisConf.SYMBOL_COLON + projectId);
+
+        String redisKey = RedisConf.USER_FIELD + RedisConf.SYMBOL_COLON + key;
+        redisUtil.set(redisKey, JsonUtils.objectToJson(personSelfFieldVOS));
+        return personSelfFieldVOS;
+    }
+
 }

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

@@ -84,7 +84,7 @@
     "sqlField": "scenario_id",
     "sqlClass": "getComSql",
     "orderClass": "getScenarioNameOrder",
-    "groupClass": "getScenarioGroup",
+    "groupClass": "getEventScenarioGroup",
     "ifSearch": "true",
     "ifGroup": "true",
     "ifShow": "true",
@@ -124,7 +124,7 @@
     "value": "description",
     "field": "description",
     "sqlField": "description",
-    "sqlClass": "getComSql",
+    "sqlClass": "getLikeSql",
     "orderClass": "getComOrder",
     "ifSearch": "true",
     "ifGroup": "false",

+ 102 - 0
src/main/resources/jsons/evidenceReason.json

@@ -0,0 +1,102 @@
+[
+  {
+    "name": "权要/说明书/附图",
+    "type": "String",
+    "value": "claimSort",
+    "field": "claimSort",
+    "ifShow": "true"
+  },
+  {
+    "name": "无效法条",
+    "type": "String",
+    "value": "statutesId",
+    "field": "statutesId",
+    "ifShow": "true"
+  },
+  {
+    "name": "证据组合",
+    "type": "String",
+    "value": "proofGroup",
+    "field": "proofGroupDescription",
+    "defaultHidden": "true",
+    "ifShow": "true"
+  },
+  {
+    "name": "原权要特征内容",
+    "type": "String",
+    "value": "feature",
+    "field": "featureOrder",
+    "ifShow": "true"
+  },
+  {
+    "name": "第一次无效及补充证据",
+    "type": "String",
+    "value": "evidenceText",
+    "field": "evidenceText",
+    "ifShow": "true"
+  },
+  {
+    "name": "修改后权要特征",
+    "type": "String",
+    "value": "feature1",
+    "field": "featureOrder",
+    "defaultHidden": "true",
+    "ifShow": "true"
+  },
+  {
+    "name": "第一次答辩意见",
+    "type": "String",
+    "value": "erIfPresentOpinions1",
+    "field": "erIfPresentOpinions1",
+    "ifShow": "true"
+  },
+  {
+    "name": "第二次无效证据",
+    "type": "second",
+    "value": "secondEvidence",
+    "field": "secondEvidence"
+  },
+  {
+    "name": "第二次修改后权要特征",
+    "type": "second",
+    "value": "feature2",
+    "field": "featureOrder",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "第二次答辩意见",
+    "type": "second",
+    "value": "secondErIfPresentOpinions1",
+    "field": "secondErIfPresentOpinions1"
+  },
+  {
+    "name": "复审委意见",
+    "type": "String",
+    "value": "erRbSummary",
+    "field": "erRbSummary",
+    "ifShow": "true"
+  },
+  {
+    "name": "复审委决定",
+    "type": "String",
+    "value": "rbDecision",
+    "field": "claimSort",
+    "ifShow": "true"
+  },
+  {
+    "name": "一审法院决定",
+    "type": "String",
+    "value": "courtDecision1",
+    "field": "claimSort",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  },
+  {
+    "name": "二审法院决定",
+    "type": "String",
+    "value": "courtDecision2",
+    "field": "claimSort",
+    "ifShow": "true",
+    "defaultHidden": "true"
+  }
+]