瀏覽代碼

2/27 添加关联专题库报告修改

lwhhszx 1 年之前
父節點
當前提交
a849867e43

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

@@ -15,6 +15,6 @@ import java.util.List;
  */
 @Repository
 public interface AssoProjectEventMapper extends BaseMapper<AssoProjectEvent> {
-    public List<EventCountVO> getEventProjectCount(List<Integer> eventIds);
+    public List<EventCountVO> getEventProjectCount(List<Integer> eventIds,String rootSql);
     public List<Integer> getEventProjectNumOrder(Integer projectType,String orderType);
 }

+ 28 - 12
src/main/java/cn/cslg/pas/service/business/EventService.java

@@ -317,9 +317,10 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bus
             queryWrapper.in(AssoEventFile::getEventId, ids);
             assoEventFiles = assoEventFileService.list(queryWrapper);
             guids = assoEventFiles.stream().map(AssoEventFile::getFileGuid).collect(Collectors.toList());
-
+            String rootSql = this.loadProjectRootSql();
+//            String rootSql =null;
             //根据事件id分组查询事件关联专题库或报告数量
-            eventCountVOS = assoProjectEventMapper.getEventProjectCount(ids);
+            eventCountVOS = assoProjectEventMapper.getEventProjectCount(ids, rootSql);
         }
 
         //查询创建人名称
@@ -459,7 +460,7 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bus
      * @param object
      */
     public void checkParameter(Object object) {
-      PersonnelVO  personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
 
         String name = null;
         Integer id = null;
@@ -483,22 +484,37 @@ public class EventService extends ServiceImpl<EventMapper, Event> implements Bus
         }
 
         //检验是否传入应用场景
-        if(scenarioId==null){
+        if (scenarioId == null) {
             throw new XiaoShiException("请选择应用场景");
         }
 
         //检验名称是否重复
-        LambdaQueryWrapper<Event> queryWrapper =new LambdaQueryWrapper<>();
-        queryWrapper.eq(Event::getName,name)
-                .eq(Event::getTenantId,personnelVO.getTenantId());
-        if(id!=null){
-            queryWrapper.ne(Event::getId,id);
+        LambdaQueryWrapper<Event> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Event::getName, name)
+                .eq(Event::getTenantId, personnelVO.getTenantId());
+        if (id != null) {
+            queryWrapper.ne(Event::getId, id);
         }
-        Event event =this.getOne(queryWrapper,false);
-        if(event!=null){
-            throw  new XiaoShiException("名称重复");
+        Event event = this.getOne(queryWrapper, false);
+        if (event != null) {
+            throw new XiaoShiException("名称重复");
+        }
+    }
+
+    private String loadProjectRootSql() {
+        PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
+        String id = personnelVO.getId();
+        Integer tenantId = personnelVO.getTenantId();
+        Integer roleType = personnelVO.getRoleType();
+        String rootSql = null;
+        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 if (roleType.equals(2)) {
+            rootSql = "(p.tenant_id=" + tenantId + " or p.id in (select project_id from asso_project_person where person_id =" + id + ")) ";
         }
 
+        return rootSql;
 
     }
 }

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

@@ -310,16 +310,46 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
         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(0);
-                assoProjectEvents.add(assoProjectEvent);
+                AssoProjectEvent assoProjectEvent =assoProjectEvents.stream().filter(item->item.getEventId().equals(projectEventDTO.getEventId())).findFirst().orElse(null);
+                AssoProjectEvent assoProjectEvent1 =assoProjectEvents.stream().filter(item->item.getScenarioId().equals(projectEventDTO.getScenarioId())).findFirst().orElse(null);
+                AssoProjectEvent assoProjectEvent2 =assoProjectEvents.stream().filter(item->item.getMatterId().equals(projectEventDTO.getMatterId())).findFirst().orElse(null);
+
+                if(assoProjectEvent==null) {
+                    assoProjectEvent = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent.setEventId(projectEventDTO.getEventId());
+                    //项目id
+                    assoProjectEvent.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent.setCreateId(personnelVO.getId());
+                    //类型为专题库
+                    assoProjectEvent.setProjectType(0);
+                    assoProjectEvents.add(assoProjectEvent);
+                }
+                if(assoProjectEvent1==null) {
+                    assoProjectEvent1 = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent1.setScenarioId(projectEventDTO.getScenarioId());
+                    //项目id
+                    assoProjectEvent1.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent1.setCreateId(personnelVO.getId());
+                    //类型为专题库
+                    assoProjectEvent1.setProjectType(0);
+                    assoProjectEvents.add(assoProjectEvent1);
+                }
+                if(assoProjectEvent2==null) {
+                    assoProjectEvent2 = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent2.setScenarioId(projectEventDTO.getScenarioId());
+                    //项目id
+                    assoProjectEvent2.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent2.setCreateId(personnelVO.getId());
+                    //类型为专题库
+                    assoProjectEvent2.setProjectType(0);
+                    assoProjectEvents.add(assoProjectEvent2);
+                }
             }
         }
 
@@ -366,7 +396,8 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
         //当委托方id不为空时
         if (projectUpdateDTO.getEntrustId() != null) {
             project.setEntrustId(projectUpdateDTO.getEntrustId());
-        } else {//若且租户类型为代理机构,并且委托方id为空,委托方名称不为空时,新增委托方
+        }
+        else {//若且租户类型为代理机构,并且委托方id为空,委托方名称不为空时,新增委托方
             if (projectUpdateDTO.getEntrustName() != null && projectUpdateDTO.getEntrustName().trim() != "") {
                 ClientDTO clientDTO = new ClientDTO();
                 clientDTO.setName(projectUpdateDTO.getEntrustName());
@@ -389,7 +420,6 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
         queryWrapper.eq(PatentDigProject::getProjectId, project.getId());
         List<PatentDigProject> patentDigProjects = this.list(queryWrapper);
 
-
         if (patentDigProjects.size() != 0) {
             //装载专利挖掘项目基本信息
             patentDigProject = patentDigProjects.get(0);
@@ -477,16 +507,46 @@ public class PatentDigProjectService extends ServiceImpl<PatentDigProjectMapper,
             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(0);
-                    assoProjectEvents.add(assoProjectEvent);
+                    AssoProjectEvent assoProjectEvent =assoProjectEvents.stream().filter(item->item.getEventId().equals(projectEventDTO.getEventId())).findFirst().orElse(null);
+                    AssoProjectEvent assoProjectEvent1 =assoProjectEvents.stream().filter(item->item.getScenarioId().equals(projectEventDTO.getScenarioId())).findFirst().orElse(null);
+                    AssoProjectEvent assoProjectEvent2 =assoProjectEvents.stream().filter(item->item.getMatterId().equals(projectEventDTO.getMatterId())).findFirst().orElse(null);
+
+                    if(assoProjectEvent==null) {
+                        assoProjectEvent = new AssoProjectEvent();
+                        //事件id和处理事项id
+                        assoProjectEvent.setEventId(projectEventDTO.getEventId());
+                        //项目id
+                        assoProjectEvent.setProjectId(project.getId());
+                        //创建人
+                        assoProjectEvent.setCreateId(personnelVO.getId());
+                        //类型为专题库
+                        assoProjectEvent.setProjectType(0);
+                        assoProjectEvents.add(assoProjectEvent);
+                    }
+                    if(assoProjectEvent1==null) {
+                        assoProjectEvent1 = new AssoProjectEvent();
+                        //事件id和处理事项id
+                        assoProjectEvent1.setScenarioId(projectEventDTO.getScenarioId());
+                        //项目id
+                        assoProjectEvent1.setProjectId(project.getId());
+                        //创建人
+                        assoProjectEvent1.setCreateId(personnelVO.getId());
+                        //类型为专题库
+                        assoProjectEvent1.setProjectType(0);
+                        assoProjectEvents.add(assoProjectEvent1);
+                    }
+                    if(assoProjectEvent2==null) {
+                        assoProjectEvent2 = new AssoProjectEvent();
+                        //事件id和处理事项id
+                        assoProjectEvent2.setScenarioId(projectEventDTO.getScenarioId());
+                        //项目id
+                        assoProjectEvent2.setProjectId(project.getId());
+                        //创建人
+                        assoProjectEvent2.setCreateId(personnelVO.getId());
+                        //类型为专题库
+                        assoProjectEvent2.setProjectType(0);
+                        assoProjectEvents.add(assoProjectEvent2);
+                    }
                 }
                 if (assoProjectEvents != null && assoProjectEvents.size() != 0) {
                     assoProjectEventService.saveBatch(assoProjectEvents);

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

@@ -318,12 +318,18 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         List<AssoProjectEvent> assoProjectEvents = new ArrayList<>();
 
         List<ProjectEventDTO> events = patentProjectDTO.getEvents();
+
         if (events != null && events.size() != 0) {
             //遍历传入的事件集合
             for (ProjectEventDTO projectEventDTO : events) {
-                AssoProjectEvent assoProjectEvent = new AssoProjectEvent();
+                AssoProjectEvent assoProjectEvent =assoProjectEvents.stream().filter(item->item.getEventId().equals(projectEventDTO.getEventId())).findFirst().orElse(null);
+                AssoProjectEvent assoProjectEvent1 =assoProjectEvents.stream().filter(item->item.getScenarioId().equals(projectEventDTO.getScenarioId())).findFirst().orElse(null);
+                AssoProjectEvent assoProjectEvent2 =assoProjectEvents.stream().filter(item->item.getMatterId().equals(projectEventDTO.getMatterId())).findFirst().orElse(null);
+
+                if(assoProjectEvent==null) {
+                assoProjectEvent = new AssoProjectEvent();
                 //事件id和处理事项id
-              assoProjectEvent.setEventId(projectEventDTO.getEventId());
+                assoProjectEvent.setEventId(projectEventDTO.getEventId());
                 //项目id
                 assoProjectEvent.setProjectId(project.getId());
                 //创建人
@@ -332,6 +338,31 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
                 assoProjectEvent.setProjectType(0);
                 assoProjectEvents.add(assoProjectEvent);
             }
+                if(assoProjectEvent1==null) {
+                    assoProjectEvent1 = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent1.setScenarioId(projectEventDTO.getScenarioId());
+                    //项目id
+                    assoProjectEvent1.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent1.setCreateId(personnelVO.getId());
+                    //类型为专题库
+                    assoProjectEvent1.setProjectType(0);
+                    assoProjectEvents.add(assoProjectEvent1);
+                }
+                if(assoProjectEvent2==null) {
+                    assoProjectEvent2 = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent2.setScenarioId(projectEventDTO.getScenarioId());
+                    //项目id
+                    assoProjectEvent2.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent2.setCreateId(personnelVO.getId());
+                    //类型为专题库
+                    assoProjectEvent2.setProjectType(0);
+                    assoProjectEvents.add(assoProjectEvent2);
+                }
+            }
         }
 
         //装载应用场景和project关联
@@ -504,18 +535,47 @@ public class PatentProjectService extends ServiceImpl<PatentProjectMapper, Paten
         assoProjectEventService.remove(updateEventWrapper);
         List<ProjectEventDTO> events = updatePatentProjectDTO.getEvents();
         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(0);
-                assoProjectEvents.add(assoProjectEvent);
+                AssoProjectEvent assoProjectEvent =assoProjectEvents.stream().filter(item->item.getEventId().equals(projectEventDTO.getEventId())).findFirst().orElse(null);
+                AssoProjectEvent assoProjectEvent1 =assoProjectEvents.stream().filter(item->item.getScenarioId().equals(projectEventDTO.getScenarioId())).findFirst().orElse(null);
+                AssoProjectEvent assoProjectEvent2 =assoProjectEvents.stream().filter(item->item.getMatterId().equals(projectEventDTO.getMatterId())).findFirst().orElse(null);
+
+                if(assoProjectEvent==null) {
+                    assoProjectEvent = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent.setEventId(projectEventDTO.getEventId());
+                    //项目id
+                    assoProjectEvent.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent.setCreateId(personnelVO.getId());
+                    //类型为专题库
+                    assoProjectEvent.setProjectType(0);
+                    assoProjectEvents.add(assoProjectEvent);
+                }
+                if(assoProjectEvent1==null) {
+                    assoProjectEvent1 = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent1.setScenarioId(projectEventDTO.getScenarioId());
+                    //项目id
+                    assoProjectEvent1.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent1.setCreateId(personnelVO.getId());
+                    //类型为专题库
+                    assoProjectEvent1.setProjectType(0);
+                    assoProjectEvents.add(assoProjectEvent1);
+                }
+                if(assoProjectEvent2==null) {
+                    assoProjectEvent2 = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent2.setScenarioId(projectEventDTO.getScenarioId());
+                    //项目id
+                    assoProjectEvent2.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent2.setCreateId(personnelVO.getId());
+                    //类型为专题库
+                    assoProjectEvent2.setProjectType(0);
+                    assoProjectEvents.add(assoProjectEvent2);
+                }
             }
         }
 

+ 64 - 30
src/main/java/cn/cslg/pas/service/business/ReportProjectService.java

@@ -373,41 +373,45 @@ public class ReportProjectService extends ServiceImpl<ReportProjectMapper, Repor
         if (events != null && events.size() != 0) {
             //遍历传入的事件集合
             for (ProjectEventDTO projectEventDTO : events) {
-                if (projectEventDTO.getEventId() != null) {
-                    AssoProjectEvent assoProjectEvent = new AssoProjectEvent();
+                AssoProjectEvent assoProjectEvent =assoProjectEvents.stream().filter(item->item.getEventId().equals(projectEventDTO.getEventId())).findFirst().orElse(null);
+                AssoProjectEvent assoProjectEvent1 =assoProjectEvents.stream().filter(item->item.getScenarioId().equals(projectEventDTO.getScenarioId())).findFirst().orElse(null);
+                AssoProjectEvent assoProjectEvent2 =assoProjectEvents.stream().filter(item->item.getMatterId().equals(projectEventDTO.getMatterId())).findFirst().orElse(null);
+
+                if(assoProjectEvent==null) {
+                    assoProjectEvent = new AssoProjectEvent();
                     //事件id和处理事项id
                     assoProjectEvent.setEventId(projectEventDTO.getEventId());
                     //项目id
                     assoProjectEvent.setProjectId(project.getId());
                     //创建人
                     assoProjectEvent.setCreateId(personnelVO.getId());
-                    //类型为报告
-                    assoProjectEvent.setProjectType(1);
+                    //类型为专题库
+                    assoProjectEvent.setProjectType(0);
                     assoProjectEvents.add(assoProjectEvent);
                 }
-                if (projectEventDTO.getMatterId() != null) {
-                    AssoProjectEvent assoProjectEvent = new AssoProjectEvent();
+                if(assoProjectEvent1==null) {
+                    assoProjectEvent1 = new AssoProjectEvent();
                     //事件id和处理事项id
-                    assoProjectEvent.setMatterId(projectEventDTO.getMatterId());
+                    assoProjectEvent1.setScenarioId(projectEventDTO.getScenarioId());
                     //项目id
-                    assoProjectEvent.setProjectId(project.getId());
+                    assoProjectEvent1.setProjectId(project.getId());
                     //创建人
-                    assoProjectEvent.setCreateId(personnelVO.getId());
-                    //类型为报告
-                    assoProjectEvent.setProjectType(1);
-                    assoProjectEvents.add(assoProjectEvent);
+                    assoProjectEvent1.setCreateId(personnelVO.getId());
+                    //类型为专题库
+                    assoProjectEvent1.setProjectType(0);
+                    assoProjectEvents.add(assoProjectEvent1);
                 }
-                if (projectEventDTO.getScenarioId() != null) {
-                    AssoProjectEvent assoProjectEvent = new AssoProjectEvent();
+                if(assoProjectEvent2==null) {
+                    assoProjectEvent2 = new AssoProjectEvent();
                     //事件id和处理事项id
-                    assoProjectEvent.setScenarioId(projectEventDTO.getScenarioId());
+                    assoProjectEvent2.setScenarioId(projectEventDTO.getScenarioId());
                     //项目id
-                    assoProjectEvent.setProjectId(project.getId());
+                    assoProjectEvent2.setProjectId(project.getId());
                     //创建人
-                    assoProjectEvent.setCreateId(personnelVO.getId());
-                    //类型为报告
-                    assoProjectEvent.setProjectType(1);
-                    assoProjectEvents.add(assoProjectEvent);
+                    assoProjectEvent2.setCreateId(personnelVO.getId());
+                    //类型为专题库
+                    assoProjectEvent2.setProjectType(0);
+                    assoProjectEvents.add(assoProjectEvent2);
                 }
             }
             if (assoProjectEvents != null && assoProjectEvents.size() != 0) {
@@ -590,16 +594,46 @@ 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);
+                AssoProjectEvent assoProjectEvent =assoProjectEvents.stream().filter(item->item.getEventId().equals(projectEventDTO.getEventId())).findFirst().orElse(null);
+                AssoProjectEvent assoProjectEvent1 =assoProjectEvents.stream().filter(item->item.getScenarioId().equals(projectEventDTO.getScenarioId())).findFirst().orElse(null);
+                AssoProjectEvent assoProjectEvent2 =assoProjectEvents.stream().filter(item->item.getMatterId().equals(projectEventDTO.getMatterId())).findFirst().orElse(null);
+
+                if(assoProjectEvent==null) {
+                    assoProjectEvent = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent.setEventId(projectEventDTO.getEventId());
+                    //项目id
+                    assoProjectEvent.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent.setCreateId(personnelVO.getId());
+                    //类型为专题库
+                    assoProjectEvent.setProjectType(0);
+                    assoProjectEvents.add(assoProjectEvent);
+                }
+                if(assoProjectEvent1==null) {
+                    assoProjectEvent1 = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent1.setScenarioId(projectEventDTO.getScenarioId());
+                    //项目id
+                    assoProjectEvent1.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent1.setCreateId(personnelVO.getId());
+                    //类型为专题库
+                    assoProjectEvent1.setProjectType(0);
+                    assoProjectEvents.add(assoProjectEvent1);
+                }
+                if(assoProjectEvent2==null) {
+                    assoProjectEvent2 = new AssoProjectEvent();
+                    //事件id和处理事项id
+                    assoProjectEvent2.setScenarioId(projectEventDTO.getScenarioId());
+                    //项目id
+                    assoProjectEvent2.setProjectId(project.getId());
+                    //创建人
+                    assoProjectEvent2.setCreateId(personnelVO.getId());
+                    //类型为专题库
+                    assoProjectEvent2.setProjectType(0);
+                    assoProjectEvents.add(assoProjectEvent2);
+                }
             }
             if (assoProjectEvents != null && assoProjectEvents.size() != 0) {
                 assoProjectEventService.saveBatch(assoProjectEvents);

+ 8 - 5
src/main/resources/mapper/AssoProjectEvent.xml

@@ -2,14 +2,17 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="cn.cslg.pas.mapper.AssoProjectEventMapper">
     <select id="getEventProjectCount" resultType="cn.cslg.pas.common.vo.business.EventCountVO">
-        select event_id as eventId,project_type as projectType,count(*) as projectCount
-        from pas_prod2.asso_project_event
+        select t.event_id as eventId,t.project_type as projectType,count(*) as projectCount
+        from asso_project_event as t left join project as p on p.id =t.project_id
         <where>
-            event_id in
-            <foreach collection="eventIds" index="index" item="item" open="(" separator="," close=")">
+        t.event_id in
+            <foreach collection="eventIds" index="index" item="item" open="(" separator="," close=") ">
                 #{item}
             </foreach>
-            group by event_id,project_type
+            <if test="rootSql!=null">
+                 and ${rootSql}
+            </if>
+            group by t.event_id,t.project_type
         </where>
     </select>