diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/FactGroupActDailyDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/FactGroupActDailyDTO.java
new file mode 100644
index 0000000000..a4f834fbb2
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/FactGroupActDailyDTO.java
@@ -0,0 +1,96 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see  .
+ */
+
+package com.epmet.dataaggre.dto.datastats;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 组织活动(参加人数、组织次数、平均参加人数)按天累计值分析
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-05-13
+ */
+@Data
+public class FactGroupActDailyDTO implements Serializable {
+
+    private static final long serialVersionUID = 4411632223804355342L;
+    /**
+     * 客户ID
+     */
+	private String customerId;
+
+    /**
+     * 数据更新至日期Id:yyyyMMdd
+     */
+	private String dateId;
+
+    /**
+     * 网格id
+     */
+	private String orgId;
+
+    /**
+     * 网格:grid;组织:agency
+     */
+	private String orgType;
+
+    /**
+     * 1)orgType=grid: pid=网格所属组织id;
+2)orgType=agency: pid=当前组织的上级组织
+     */
+	private String pid;
+
+    /**
+     * 1)orgType=grid: pids=网格所有上级组织,包括pid;
+2)orgType=agency: pids=当前组织的所有上级组织,包括pid.
+     */
+	private String pids;
+
+    /**
+     * 活动分类编码
+     */
+	private String categoryCode;
+
+    /**
+     * 上级分类编码
+     */
+	private String parentCode;
+
+    /**
+     * 分类等级
+     */
+	private Integer level;
+
+    /**
+     * 截止到dateId: 组织次数;包含dateId这一天的数据
+     */
+	private Integer organizeTotal;
+
+    /**
+     * 截止到dateId: 参加人数;包含dateId这一天的数据
+     */
+	private Integer participateUserTotal;
+
+    /**
+     * 截止到dateId: 平均参加人数;包含dateId这一天的数据
+     */
+	private Integer avgParticipateUserTotal;
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ActCategoryDictDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ActCategoryDictDTO.java
new file mode 100644
index 0000000000..3cee85b0bd
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/ActCategoryDictDTO.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see  .
+ */
+
+package com.epmet.dataaggre.dto.resigroup;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * 活动类别字典
+ *
+ * @author generator generator@elink-cn.com
+ * @since v1.0.0 2021-04-16
+ */
+@Data
+public class ActCategoryDictDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @JsonIgnore
+	private String id;
+
+    /**
+     * 客户id
+     */
+    @JsonIgnore
+	private String customerId;
+
+    /**
+     * 类别编码
+     */
+	private String categoryCode;
+
+    /**
+     * 活动类别名称;eg:支部建设、联建共建
+     */
+	private String categoryName;
+
+    /**
+     * 等级1,2......
+     */
+    @JsonIgnore
+	private Integer level;
+
+    /**
+     * 排序
+     */
+    @JsonIgnore
+	private Integer sort;
+
+    /**
+     * 上级类别编码
+     */
+    @JsonIgnore
+	private String parentCode;
+}
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/BranchConAnalysisFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/BranchConAnalysisFormDTO.java
new file mode 100644
index 0000000000..7090008a4f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/BranchConAnalysisFormDTO.java
@@ -0,0 +1,42 @@
+package com.epmet.dataaggre.dto.resigroup.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 001、【支建+联建】统计分析 入参
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/5/18 9:16
+ */
+@Data
+public class BranchConAnalysisFormDTO implements Serializable {
+    public interface AddUserInternalGroup {
+    }
+
+    /**
+     * 支部建设:100;联建共建:101
+     */
+    @NotBlank(message = "firstCategoryCode必传,支部建设:100;联建共建:101", groups = AddUserInternalGroup.class)
+    private String firstCategoryCode;
+
+    /**
+     * 当前客户id
+     */
+    @NotBlank(message = "客户id不能为空", groups = AddUserInternalGroup.class)
+    private String customerId;
+
+    /**
+     * 当前组织或者网格id
+     */
+    @NotBlank(message = "orgId不能为空", groups = AddUserInternalGroup.class)
+    private String orgId;
+
+    /**
+     * 默认传组织:agency;  网格:grid
+     */
+    @NotBlank(message = "orgType不能为空", groups = AddUserInternalGroup.class)
+    private String orgType;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/GroupActCategoryQueryFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/GroupActCategoryQueryFormDTO.java
new file mode 100644
index 0000000000..63bb6b1771
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/GroupActCategoryQueryFormDTO.java
@@ -0,0 +1,32 @@
+package com.epmet.dataaggre.dto.resigroup.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 002、【支建+联建】二级分类字典查询 入参
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/5/18 13:42
+ */
+@Data
+public class GroupActCategoryQueryFormDTO implements Serializable {
+    private static final long serialVersionUID = 8373780230315448396L;
+
+    public interface AddUserInternalGroup {
+    }
+
+    /**
+     * 支部建设:100;联建共建:101
+     */
+    @NotBlank(message = "firstCategoryCode必传,支部建设:100;联建共建:101", groups = AddUserInternalGroup.class)
+    private String firstCategoryCode;
+
+    /**
+     * 当前客户id
+     */
+    @NotBlank(message = "客户id不能为空", groups = BranchConAnalysisFormDTO.AddUserInternalGroup.class)
+    private String customerId;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/SubAnalysisByCodeFormDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/SubAnalysisByCodeFormDTO.java
new file mode 100644
index 0000000000..5f92ede5cb
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/form/SubAnalysisByCodeFormDTO.java
@@ -0,0 +1,44 @@
+package com.epmet.dataaggre.dto.resigroup.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * 003、【支建+联建】下级组织折线图 入参
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/5/18 13:52
+ */
+@Data
+public class SubAnalysisByCodeFormDTO implements Serializable {
+    private static final long serialVersionUID = -4132250208377993452L;
+
+    public interface AddUserInternalGroup {
+    }
+
+    /**
+     * 分类编码;002接口返回的
+     */
+    @NotBlank(message = "categoryCode不能为空", groups = AddUserInternalGroup.class)
+    private String categoryCode;
+
+    /**
+     * 当前客户id
+     */
+    @NotBlank(message = "客户id不能为空", groups = AddUserInternalGroup.class)
+    private String customerId;
+
+    /**
+     * 当前组织或者网格id
+     */
+    @NotBlank(message = "orgId不能为空", groups = AddUserInternalGroup.class)
+    private String orgId;
+
+    /**
+     * 默认传组织:agency;  网格:grid
+     */
+    @NotBlank(message = "orgType不能为空", groups = AddUserInternalGroup.class)
+    private String orgType;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/BranchConAnalysisDetailDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/BranchConAnalysisDetailDTO.java
new file mode 100644
index 0000000000..da57f1f74f
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/BranchConAnalysisDetailDTO.java
@@ -0,0 +1,20 @@
+package com.epmet.dataaggre.dto.resigroup.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 001、【支建+联建】统计分析 返参
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/5/18 15:12
+ */
+@Data
+public class BranchConAnalysisDetailDTO implements Serializable {
+    private String name;
+    private String type;
+    private Integer value;
+    private Integer avg;
+    private String categoryCode;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/BranchConAnalysisResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/BranchConAnalysisResultDTO.java
new file mode 100644
index 0000000000..7b25d8d8fc
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/BranchConAnalysisResultDTO.java
@@ -0,0 +1,37 @@
+package com.epmet.dataaggre.dto.resigroup.result;
+
+import com.epmet.commons.tools.constant.NumConstant;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 001、【支建+联建】统计分析 返参
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/5/18 10:01
+ */
+@Data
+public class BranchConAnalysisResultDTO implements Serializable {
+    private static final long serialVersionUID = -4998343002705222898L;
+
+    /**
+     * 组织活动次数
+     */
+    private Integer organizeTotal;
+
+    /**
+     * 参加活动人数
+     */
+    private Integer participateUserTotal;
+
+    private List dataList;
+
+    public BranchConAnalysisResultDTO() {
+        this.organizeTotal = NumConstant.ZERO;
+        this.participateUserTotal =  NumConstant.ZERO;
+        this.dataList=new ArrayList<>();
+    }
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/OrgInfoCommonDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/OrgInfoCommonDTO.java
new file mode 100644
index 0000000000..79b6460be4
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/OrgInfoCommonDTO.java
@@ -0,0 +1,20 @@
+package com.epmet.dataaggre.dto.resigroup.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 组织或者网格基本信息
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/5/18 14:36
+ */
+@Data
+public class OrgInfoCommonDTO implements Serializable {
+    private static final long serialVersionUID = -2191521364070476999L;
+
+    private String orgId;
+    private String orgName;
+    private String orgType;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/SubAnalysisByCodeResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/SubAnalysisByCodeResultDTO.java
new file mode 100644
index 0000000000..4b4ec0fe06
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/resigroup/result/SubAnalysisByCodeResultDTO.java
@@ -0,0 +1,30 @@
+package com.epmet.dataaggre.dto.resigroup.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 003、【支建+联建】下级组织折线图 返参
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/5/18 14:09
+ */
+@Data
+public class SubAnalysisByCodeResultDTO implements Serializable {
+    private static final long serialVersionUID = -6025482721295705372L;
+
+    /**
+     * 横坐标名称:组织名或者网格名
+     */
+    private String name;
+
+    /**
+     * 参加人数、组织次数、平均参加人数
+     */
+    private String type;
+
+    private Integer value;
+
+    private String orgId;
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GroupActController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GroupActController.java
new file mode 100644
index 0000000000..487b938fbc
--- /dev/null
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/GroupActController.java
@@ -0,0 +1,74 @@
+package com.epmet.dataaggre.controller;
+
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.commons.tools.validator.ValidatorUtils;
+import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
+import com.epmet.dataaggre.dto.resigroup.form.BranchConAnalysisFormDTO;
+import com.epmet.dataaggre.dto.resigroup.form.GroupActCategoryQueryFormDTO;
+import com.epmet.dataaggre.dto.resigroup.form.SubAnalysisByCodeFormDTO;
+import com.epmet.dataaggre.dto.resigroup.result.BranchConAnalysisResultDTO;
+import com.epmet.dataaggre.dto.resigroup.result.SubAnalysisByCodeResultDTO;
+import com.epmet.dataaggre.service.resigroup.ResiGroupService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 专项组-组织活动相关API放这
+ *
+ * @author yinzuomei@elink-cn.com
+ * @date 2021/5/18 9:08
+ */
+@RestController
+@RequestMapping("groupact")
+public class GroupActController {
+
+    @Autowired
+    private ResiGroupService resiGroupService;
+
+
+    /**
+     * @return com.epmet.commons.tools.utils.Result
+     * @param formDTO
+     * @author yinzuomei
+     * @description  001、【支建+联建】统计分析
+     * @Date 2021/5/18 10:17 
+     **/
+    @PostMapping("branchconanalysis")
+    public Result branchConAnalysis(@RequestBody BranchConAnalysisFormDTO formDTO){
+        ValidatorUtils.validateEntity(formDTO,BranchConAnalysisFormDTO.AddUserInternalGroup.class);
+        return new Result().ok(resiGroupService.branchConAnalysis(formDTO));
+    }
+
+    /**
+     * @return com.epmet.commons.tools.utils.Result>
+     * @param formDTO
+     * @author yinzuomei
+     * @description 002、【支建+联建】二级分类字典查询
+     * @Date 2021/5/18 13:49 
+     **/
+    @PostMapping("categorydictlist")
+    public Result> queryCategoryDictList(@RequestBody GroupActCategoryQueryFormDTO formDTO){
+        ValidatorUtils.validateEntity(formDTO,GroupActCategoryQueryFormDTO.AddUserInternalGroup.class);
+        return new Result>().ok(resiGroupService.queryActCategoryDictList(formDTO.getCustomerId(),formDTO.getFirstCategoryCode()));
+    }
+
+
+    /**
+     * @return com.epmet.commons.tools.utils.Result
+     * @param formDTO
+     * @author yinzuomei
+     * @description 003、【支建+联建】下级组织折线图
+     * @Date 2021/5/18 14:31
+     **/
+    @PostMapping("subanalysisbycode")
+    public Result> querySubAnalysisByCode(@RequestBody SubAnalysisByCodeFormDTO formDTO){
+        ValidatorUtils.validateEntity(formDTO,GroupActCategoryQueryFormDTO.AddUserInternalGroup.class);
+        return new Result>().ok(resiGroupService.querySubAnalysisByCode(formDTO));
+    }
+
+}
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java
index c96b053cba..4f9ee94c72 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/datastats/DataStatsDao.java
@@ -17,6 +17,7 @@
 
 package com.epmet.dataaggre.dao.datastats;
 
+import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
 import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO;
 import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO;
 import com.epmet.dataaggre.dto.datastats.result.*;
@@ -154,4 +155,14 @@ public interface DataStatsDao {
      */
     List getSubGridProject(@Param("gridIds") List gridIds, @Param("dateId") String dateId);
 
+    List branchConAnalysis(@Param("customerId")String customerId,
+                                                 @Param("orgId")String orgId,
+                                                 @Param("orgType")String orgType,
+                                                 @Param("dateId")String dateId,
+                                                 @Param("parentCode")String parentCode);
+
+    List querySubAnalysisByCode(@Param("customerId")String customerId,
+                                                      @Param("pid")String pid,
+                                                      @Param("dateId")String dateId,
+                                                      @Param("categoryCode")String categoryCode);
 }
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java
index fc33ce00bb..7d705c2aa3 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/govorg/CustomerAgencyDao.java
@@ -49,4 +49,7 @@ public interface CustomerAgencyDao extends BaseDao {
     String getAgencyIdByUserId(@Param("userId") String userId);
 
     List selectUsedAreaCodeList(@Param("parentAreaCode") String parentAreaCode);
+
+
+    List selectNextAgency(@Param("customerId")String customerId, @Param("pid")String pid);
 }
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiGroupDao.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiGroupDao.java
index f297a4f82f..0632f8bbf8 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiGroupDao.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/dao/resigroup/ResiGroupDao.java
@@ -18,6 +18,7 @@
 package com.epmet.dataaggre.dao.resigroup;
 
 import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
 import com.epmet.dataaggre.dto.resigroup.result.CandidateListResultDTO;
 import com.epmet.dataaggre.entity.resigroup.ResiGroupEntity;
 import org.apache.ibatis.annotations.Mapper;
@@ -41,5 +42,7 @@ public interface ResiGroupDao extends BaseDao {
      * @date 2021/3/30 上午10:13
      */
     List candidateList(@Param("groupId")String groupId);
-	
+
+    List selectActCategoryDictDTOByPcode(@Param("customerId")String customerId,
+                                                             @Param("categoryCode")String firstCategoryCode);
 }
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
index 6eb826dc8d..1f842209d9 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
@@ -1,5 +1,6 @@
 package com.epmet.dataaggre.service.datastats;
 
+import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
 import com.epmet.dataaggre.dto.datastats.form.AgenctBasicDataFormDTO;
 import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO;
 import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO;
@@ -91,4 +92,8 @@ public interface DataStatsService {
      * @author sun
      */
     List subGridProject(SubGridFormDTO formDTO);
+
+    List branchConAnalysis(String customerId, String orgId, String orgType, String dateId, String parentCode);
+
+    List querySubAnalysisByCode(String customerId, String pid, String dateId, String categoryCode);
 }
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
index 900144795e..d41fd93a24 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java
@@ -5,6 +5,7 @@ import com.epmet.commons.tools.constant.NumConstant;
 import com.epmet.commons.tools.utils.DateUtils;
 import com.epmet.dataaggre.constant.DataSourceConstant;
 import com.epmet.dataaggre.dao.datastats.DataStatsDao;
+import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
 import com.epmet.dataaggre.dto.datastats.form.AgenctBasicDataFormDTO;
 import com.epmet.dataaggre.dto.datastats.form.SubAgencyFormDTO;
 import com.epmet.dataaggre.dto.datastats.form.SubGridFormDTO;
@@ -811,4 +812,14 @@ public class DataStatsServiceImpl implements DataStatsService {
         return resultList;
     }
 
+    @Override
+    public List branchConAnalysis(String customerId, String orgId, String orgType, String dateId, String parentCode) {
+        return dataStatsDao.branchConAnalysis(customerId,orgId,orgType,dateId,parentCode);
+    }
+
+    @Override
+    public List querySubAnalysisByCode(String customerId, String pid, String dateId, String categoryCode) {
+        return dataStatsDao.querySubAnalysisByCode(customerId,pid,dateId,categoryCode);
+    }
+
 }
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
index 7d9fc8f339..d0780b046d 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/GovOrgService.java
@@ -5,6 +5,7 @@ import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO;
 import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO;
 import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
 import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO;
+import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO;
 
 import java.util.List;
 
@@ -45,4 +46,6 @@ public interface GovOrgService {
     String getAgencyIdByUserId(String userId);
 
     List queryNextLevelAreaCodeList(NextAreaCodeFormDTO formDTO);
+
+    List queryNextOrgInfoDTO(String customerId, String orgId, String orgType);
 }
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
index b09414f1bd..18ad900fc6 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/govorg/impl/GovOrgServiceImpl.java
@@ -15,6 +15,7 @@ import com.epmet.dataaggre.dto.govorg.result.AgencyGridResultDTO;
 import com.epmet.dataaggre.dto.govorg.result.GridInfoResultDTO;
 import com.epmet.dataaggre.dto.govorg.result.GridsInfoListResultDTO;
 import com.epmet.dataaggre.dto.govorg.result.NextAreaCodeResultDTO;
+import com.epmet.dataaggre.dto.resigroup.result.OrgInfoCommonDTO;
 import com.epmet.dataaggre.entity.govorg.CustomerAgencyEntity;
 import com.epmet.dataaggre.service.commonservice.AreaCodeService;
 import com.epmet.dataaggre.service.govorg.GovOrgService;
@@ -162,6 +163,31 @@ public class GovOrgServiceImpl implements GovOrgService {
         return allList;
     }
 
+    @Override
+    public List queryNextOrgInfoDTO(String customerId, String orgId, String orgType) {
+        List result=new ArrayList<>();
+        if("agency".equals(orgType)){
+            List customerAgencyEntityList = customerAgencyDao.selectNextAgency(customerId, orgId);
+            customerAgencyEntityList.forEach(agencyEntity->{
+                OrgInfoCommonDTO agecnyInfo=new OrgInfoCommonDTO();
+                agecnyInfo.setOrgId(agencyEntity.getId());
+                agecnyInfo.setOrgName(agencyEntity.getOrganizationName());
+                agecnyInfo.setOrgType("agency");
+                result.add(agecnyInfo);
+            });
+        }else if("grid".equals(orgType)){
+            List list= customerGridDao.selectGridListByAgencyId(orgId);
+            list.forEach(grid->{
+                OrgInfoCommonDTO gridInfo=new OrgInfoCommonDTO();
+                gridInfo.setOrgId(grid.getGridId());
+                gridInfo.setOrgName(grid.getGridName());
+                gridInfo.setOrgType("grid");
+                result.add(gridInfo);
+            });
+        }
+        return result;
+    }
+
     public static void main(String[] args) {
         List allList = new ArrayList<>();
         NextAreaCodeResultDTO m1 = new NextAreaCodeResultDTO();
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java
index 5b163c4f5d..66c3b991dd 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/ResiGroupService.java
@@ -1,9 +1,13 @@
 package com.epmet.dataaggre.service.resigroup;
 
+import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
 import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO;
+import com.epmet.dataaggre.dto.resigroup.form.BranchConAnalysisFormDTO;
 import com.epmet.dataaggre.dto.resigroup.form.CandidateListFormDTO;
+import com.epmet.dataaggre.dto.resigroup.form.SubAnalysisByCodeFormDTO;
+import com.epmet.dataaggre.dto.resigroup.result.BranchConAnalysisResultDTO;
 import com.epmet.dataaggre.dto.resigroup.result.CandidateListResultDTO;
-import org.apache.ibatis.annotations.Param;
+import com.epmet.dataaggre.dto.resigroup.result.SubAnalysisByCodeResultDTO;
 
 import java.util.List;
 
@@ -20,4 +24,29 @@ public interface ResiGroupService {
      */
     List candidateList(CandidateListFormDTO formDTO);
     List selectTopicInfoByIds(List topicIds);
+
+    /**
+     * 001、【支建+联建】统计分析
+     *
+     * @param formDTO
+     * @return com.epmet.dataaggre.dto.resigroup.result.BranchConAnalysisResultDTO
+     */
+    BranchConAnalysisResultDTO branchConAnalysis(BranchConAnalysisFormDTO formDTO);
+
+    /**
+     * 002、【支建+联建】二级分类字典查询
+     *
+     * @param customerId
+     * @param firstCategoryCode
+     * @return com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO
+     */
+    List queryActCategoryDictList(String customerId, String firstCategoryCode);
+
+    /**
+     * 003、【支建+联建】下级组织折线图
+     *
+     * @param formDTO
+     * @return com.epmet.dataaggre.dto.resigroup.result.DataCommonDTO
+     */
+    List querySubAnalysisByCode(SubAnalysisByCodeFormDTO formDTO);
 }
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java
index 253d42f78b..141158f063 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/resigroup/impl/ResiGroupServiceImpl.java
@@ -1,17 +1,25 @@
 package com.epmet.dataaggre.service.resigroup.impl;
 
 import com.epmet.commons.dynamic.datasource.annotation.DataSource;
+import com.epmet.commons.tools.constant.Constant;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.utils.DateUtils;
 import com.epmet.dataaggre.constant.DataSourceConstant;
 import com.epmet.dataaggre.dao.resigroup.ResiGroupDao;
 import com.epmet.dataaggre.dao.resigroup.ResiTopicDao;
+import com.epmet.dataaggre.dto.datastats.FactGroupActDailyDTO;
 import com.epmet.dataaggre.dto.epmetuser.result.UserInfosResultDTO;
-import com.epmet.dataaggre.dto.resigroup.ResiGroupDTO;
+import com.epmet.dataaggre.dto.resigroup.ActCategoryDictDTO;
 import com.epmet.dataaggre.dto.resigroup.ResiTopicDTO;
+import com.epmet.dataaggre.dto.resigroup.form.BranchConAnalysisFormDTO;
 import com.epmet.dataaggre.dto.resigroup.form.CandidateListFormDTO;
-import com.epmet.dataaggre.dto.resigroup.result.CandidateListResultDTO;
+import com.epmet.dataaggre.dto.resigroup.form.SubAnalysisByCodeFormDTO;
+import com.epmet.dataaggre.dto.resigroup.result.*;
 import com.epmet.dataaggre.entity.resigroup.ResiGroupEntity;
 import com.epmet.dataaggre.redis.ResiGroupRedis;
+import com.epmet.dataaggre.service.datastats.DataStatsService;
 import com.epmet.dataaggre.service.epmetuser.EpmetUserService;
+import com.epmet.dataaggre.service.govorg.GovOrgService;
 import com.epmet.dataaggre.service.resigroup.ResiGroupService;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
@@ -22,6 +30,7 @@ import org.springframework.util.CollectionUtils;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -40,6 +49,10 @@ public class ResiGroupServiceImpl implements ResiGroupService {
     private EpmetUserService epmetUserService;
     @Autowired
     private ResiGroupRedis resiGroupRedis;
+    @Autowired
+    private DataStatsService dataStatsService;
+    @Autowired
+    private GovOrgService govOrgService;
 
     @Override
     public List selectTopicInfoByIds(List topicIds) {
@@ -92,4 +105,143 @@ public class ResiGroupServiceImpl implements ResiGroupService {
         showUsers.forEach(u -> result.stream().filter(r -> u.equals(r.getUserId())).forEach(r -> disResult.add(r)));
         return disResult;
     }
+
+
+    /**
+     * 001、【支建+联建】统计分析
+     *
+     * @param formDTO
+     * @return Result
+     */
+    @Override
+    public BranchConAnalysisResultDTO branchConAnalysis(BranchConAnalysisFormDTO formDTO) {
+        List categoryList = queryActCategoryDictList(formDTO.getCustomerId(), formDTO.getFirstCategoryCode());
+        if (CollectionUtils.isEmpty(categoryList)) {
+            return new BranchConAnalysisResultDTO();
+        }
+        String dateId = DateUtils.getBeforeNDay(NumConstant.ONE);
+        List factGroupActDailyDTOList = dataStatsService.branchConAnalysis(formDTO.getCustomerId(), formDTO.getOrgId(), formDTO.getOrgType(),
+                dateId, formDTO.getFirstCategoryCode());
+        /**
+         * List -> Map
+         * 需要注意的是:
+         * toMap 如果集合对象有重复的key,会报错Duplicate key .... *  apple1,apple12的id都为1。
+         *  可以用 (k1,k2)->k1 来设置,如果有重复的key,则保留key1,舍弃key2
+         */
+        Map map = factGroupActDailyDTOList.stream().collect(Collectors.toMap(FactGroupActDailyDTO::getCategoryCode, a -> a,(k1,k2)->k1));
+
+        // 组织活动次数
+        int organizeTotal=0;
+        // 参加活动人数
+        int participateUserTotal=0;
+        List dataList=new ArrayList<>();
+
+        for (ActCategoryDictDTO categoryDictDTO : categoryList) {
+
+            BranchConAnalysisDetailDTO participateUserTotalObject=new BranchConAnalysisDetailDTO();
+            participateUserTotalObject.setName(categoryDictDTO.getCategoryName());
+            participateUserTotalObject.setType("参加人数");
+            participateUserTotalObject.setCategoryCode(categoryDictDTO.getCategoryCode());
+
+            BranchConAnalysisDetailDTO organizeTotalObject=new BranchConAnalysisDetailDTO();
+            organizeTotalObject.setName(categoryDictDTO.getCategoryName());
+            organizeTotalObject.setType("组织次数");
+            organizeTotalObject.setCategoryCode(categoryDictDTO.getCategoryCode());
+
+
+            /*DataCommonDTO avgParticipateUserTotalObject=new DataCommonDTO();
+            avgParticipateUserTotalObject.setName(categoryDictDTO.getCategoryName());
+            avgParticipateUserTotalObject.setType("平均参加人数");*/
+
+            if (map.containsKey(categoryDictDTO.getCategoryCode())) {
+
+                participateUserTotalObject.setValue(map.get(categoryDictDTO.getCategoryCode()).getParticipateUserTotal());
+                organizeTotalObject.setValue(map.get(categoryDictDTO.getCategoryCode()).getOrganizeTotal());
+                // avgParticipateUserTotalObject.setValue(map.get(categoryDictDTO.getCategoryCode()).getAvgParticipateUserTotal());
+                participateUserTotalObject.setAvg(map.get(categoryDictDTO.getCategoryCode()).getAvgParticipateUserTotal());
+                organizeTotalObject.setAvg(map.get(categoryDictDTO.getCategoryCode()).getAvgParticipateUserTotal());
+
+
+                organizeTotal += map.get(categoryDictDTO.getCategoryCode()).getOrganizeTotal();
+                participateUserTotal += map.get(categoryDictDTO.getCategoryCode()).getParticipateUserTotal();
+
+            } else {
+                participateUserTotalObject.setValue(NumConstant.ZERO);
+                organizeTotalObject.setValue(NumConstant.ZERO);
+                participateUserTotalObject.setAvg(NumConstant.ZERO);
+                organizeTotalObject.setAvg(NumConstant.ZERO);
+                // avgParticipateUserTotalObject.setValue(NumConstant.ZERO);
+            }
+            dataList.add(participateUserTotalObject);
+            dataList.add(organizeTotalObject);
+            // dataList.add(avgParticipateUserTotalObject);
+        }
+        BranchConAnalysisResultDTO resultDTO = new BranchConAnalysisResultDTO();
+        resultDTO.setOrganizeTotal(organizeTotal);
+        resultDTO.setParticipateUserTotal(participateUserTotal);
+        resultDTO.setDataList(dataList);
+        return resultDTO;
+    }
+
+    @Override
+    public List queryActCategoryDictList(String customerId, String firstCategoryCode) {
+        List categoryList=resiGroupDao.selectActCategoryDictDTOByPcode(customerId,firstCategoryCode);
+        if(CollectionUtils.isEmpty(categoryList)){
+            categoryList=resiGroupDao.selectActCategoryDictDTOByPcode(Constant.DEFAULT_CUSTOMER,firstCategoryCode);
+        }
+        return categoryList;
+    }
+
+    /**
+     * 003、【支建+联建】下级组织折线图
+     *
+     * @param formDTO
+     * @return com.epmet.dataaggre.dto.resigroup.result.SubAnalysisByCodeResultDTO
+     */
+    @Override
+    public List querySubAnalysisByCode(SubAnalysisByCodeFormDTO formDTO) {
+        List orgInfoDTOList = govOrgService.queryNextOrgInfoDTO(formDTO.getCustomerId(), formDTO.getOrgId(), formDTO.getOrgType());
+        if (CollectionUtils.isEmpty(orgInfoDTOList)) {
+            return new ArrayList<>();
+        }
+
+        String dateId = DateUtils.getBeforeNDay(NumConstant.ONE);
+        List factGroupActDailyDTOList = dataStatsService.querySubAnalysisByCode(formDTO.getCustomerId(), formDTO.getOrgId(),
+                dateId, formDTO.getCategoryCode());
+        Map map = factGroupActDailyDTOList.stream().collect(Collectors.toMap(FactGroupActDailyDTO::getOrgId, a -> a, (k1, k2) -> k1));
+        List resultList = new ArrayList<>();
+        for (OrgInfoCommonDTO orgInfo : orgInfoDTOList) {
+
+            SubAnalysisByCodeResultDTO participateUserTotalObject=new SubAnalysisByCodeResultDTO();
+            participateUserTotalObject.setName(orgInfo.getOrgName());
+            participateUserTotalObject.setType("参加人数");
+            participateUserTotalObject.setOrgId(orgInfo.getOrgId());
+
+            SubAnalysisByCodeResultDTO organizeTotalObject=new SubAnalysisByCodeResultDTO();
+            organizeTotalObject.setName(orgInfo.getOrgName());
+            organizeTotalObject.setType("组织次数");
+            organizeTotalObject.setOrgId(orgInfo.getOrgId());
+
+
+            SubAnalysisByCodeResultDTO avgParticipateUserTotalObject=new SubAnalysisByCodeResultDTO();
+            avgParticipateUserTotalObject.setName(orgInfo.getOrgName());
+            avgParticipateUserTotalObject.setType("平均参加人数");
+            avgParticipateUserTotalObject.setOrgId(orgInfo.getOrgId());
+
+            if (map.containsKey(orgInfo.getOrgId())) {
+                participateUserTotalObject.setValue(map.get(orgInfo.getOrgId()).getParticipateUserTotal());
+                organizeTotalObject.setValue(map.get(orgInfo.getOrgId()).getOrganizeTotal());
+                avgParticipateUserTotalObject.setValue(map.get(orgInfo.getOrgId()).getAvgParticipateUserTotal());
+            } else {
+                participateUserTotalObject.setValue(NumConstant.ZERO);
+                organizeTotalObject.setValue(NumConstant.ZERO);
+                avgParticipateUserTotalObject.setValue(NumConstant.ZERO);
+            }
+            resultList.add(participateUserTotalObject);
+            resultList.add(organizeTotalObject);
+            resultList.add(avgParticipateUserTotalObject);
+
+        }
+        return resultList;
+    }
 }
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml
index 06967cceab..8d6299ec86 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/datastats/DatsStatsDao.xml
@@ -314,4 +314,51 @@
             project_total DESC
     
 
+    
+        SELECT
+            m.CUSTOMER_ID as customerId,
+            m.DATE_ID as dateId,
+            m.ORG_ID as orgId,
+            m.ORG_TYPE as orgType,
+            m.PID as pid,
+            m.CATEGORY_CODE as categoryCode,
+            m.PARENT_CODE as parentCode,
+            m.`LEVEL` as level,
+            m.ORGANIZE_TOTAL as organizeTotal,
+            m.PARTICIPATE_USER_TOTAL as participateUserTotal,
+            m.AVG_PARTICIPATE_USER_TOTAL as avgParticipateUserTotal
+        FROM
+            fact_group_act_daily m
+        WHERE
+            m.DEL_FLAG = '0'
+            AND m.CUSTOMER_ID = #{customerId}
+            AND m.PARENT_CODE = #{parentCode}
+            AND m.DATE_ID = #{dateId}
+            AND m.ORG_ID = #{orgId}
+            AND m.ORG_TYPE = #{orgType}
+            order by  m.CATEGORY_CODE asc
+     
+
+    
+         SELECT
+            m.CUSTOMER_ID as customerId,
+            m.DATE_ID as dateId,
+            m.ORG_ID as orgId,
+            m.ORG_TYPE as orgType,
+            m.PID as pid,
+            m.CATEGORY_CODE as categoryCode,
+            m.PARENT_CODE as parentCode,
+            m.`LEVEL` as level,
+            m.ORGANIZE_TOTAL as organizeTotal,
+            m.PARTICIPATE_USER_TOTAL as participateUserTotal,
+            m.AVG_PARTICIPATE_USER_TOTAL as avgParticipateUserTotal
+        FROM
+            fact_group_act_daily m
+        WHERE
+            m.DEL_FLAG = '0'
+            AND m.CUSTOMER_ID = #{customerId}
+            AND m.CATEGORY_CODE = #{categoryCode}
+            AND m.DATE_ID = #{dateId}
+            AND m.PID = #{pid}
+     
 
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml
index fda4f7245c..3033937191 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/govorg/CustomerAgencyDao.xml
@@ -31,4 +31,18 @@
             ca.DEL_FLAG = '0'
             AND ca.PARENT_AREA_CODE = #{parentAreaCode}
     
+
+    
+        SELECT
+            *
+        FROM
+            customer_agency ca
+        WHERE
+            ca.DEL_FLAG = '0'
+            
+                AND ca.CUSTOMER_ID = #{customerId}
+             
+            AND ca.PID = #{pid}
+            order by ca.CREATED_TIME asc
+     
 
\ No newline at end of file
diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiGroupDao.xml b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiGroupDao.xml
index 8a350ceec9..1549b66d21 100644
--- a/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiGroupDao.xml
+++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/resources/mapper/resigroup/ResiGroupDao.xml
@@ -15,4 +15,17 @@
           AND rgm.GROUP_LEADER_FLAG != 'leader'
           AND rgm.RESI_GROUP_ID = #{groupId}
     
+
+    
+        SELECT
+            *
+        FROM
+            act_category_dict acd
+        WHERE
+            acd.DEL_FLAG = '0'
+            AND acd.PARENT_CODE = #{categoryCode}
+            AND acd.CUSTOMER_ID = #{customerId}
+        ORDER BY
+            acd.SORT ASC
+     
 
\ No newline at end of file