diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java
index 50d2a9c1..af7ee6e8 100644
--- a/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java
+++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java
@@ -219,4 +219,7 @@ public class ResultCommon {
public static final String TREE_NODE_EXISTS = "tree.node.exists";
+ // 当前节点下存在子集
+ public static final String NODE_EXIST_SUBSETS = "node.exist.subsets";
+
}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/controller/LawsClubController.java b/laws-modules/src/main/java/com/jero/modules/laws/club/controller/LawsClubController.java
new file mode 100644
index 00000000..78d932a2
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/controller/LawsClubController.java
@@ -0,0 +1,186 @@
+package com.jero.modules.laws.club.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.jero.common.api.vo.Result;
+import com.jero.common.aspect.annotation.AutoLog;
+import com.jero.common.aspect.annotation.DictPoint;
+import com.jero.common.system.base.controller.JeroController;
+import com.jero.modules.laws.club.entity.LawsClub;
+import com.jero.modules.laws.club.service.ILawsClubService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ *
+ * 社团管理表 前端控制器
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Api(tags="社团管理表")
+@RestController
+@RequestMapping("/club")
+@Slf4j
+public class LawsClubController extends JeroController {
+
+ @Resource
+ private ILawsClubService lawsClubService;
+
+ /**
+ * 树形查询
+ */
+// @AutoLog(value = "社团管理-树形查询")
+// @ApiOperation(value="社团管理-树形查询", notes="社团管理-树形查询")
+// @GetMapping(value = "/queryTree")
+ public Result> queryTree(@RequestParam(name = "nodeType", required = false, defaultValue = "") String nodeType) {
+ List list = lawsClubService.getTree("Part", nodeType);
+ return Result.OK(list);
+ }
+
+ /**
+ * 获取子集
+ * @param parentId
+ * @param nodeType
+ * @return
+ */
+// @AutoLog(value = "社团管理-获取子集")
+// @ApiOperation(value = "社团管理-获取子集", notes = "社团管理-获取子集")
+// @GetMapping("/getChild")
+ public Result> getChild(@RequestParam("parentId") String parentId,
+ @RequestParam("nodeType") String nodeType) {
+ return Result.OK(lawsClubService.getTree(parentId, nodeType));
+ }
+
+ /**
+ * 树形查询所有
+ * @param nodeType
+ * @return
+ */
+ @AutoLog(value = "社团管理-树形查询所有")
+ @ApiOperation(value="社团管理-树形查询所有", notes="社团管理-树形查询所有")
+ @GetMapping(value = "/queryTreeAll")
+ public Result> queryTreeAll(@RequestParam(name = "nodeType", required = false, defaultValue = "") String nodeType) {
+ List tree = lawsClubService.getTreeStructure("Part", nodeType);
+ return Result.OK(tree);
+ }
+
+ /**
+ * 分页列表查询
+ *
+ * @return
+ */
+ @AutoLog(value = "社团管理-分页列表查询")
+ @ApiOperation(value="社团管理-分页列表查询", notes="社团管理-分页列表查询")
+ @GetMapping(value = "/page")
+ public Result> queryPageList(LawsClub lawsClub,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+ HttpServletRequest req) {
+ IPage pageList= lawsClubService.queryPageList(lawsClub, pageNo, pageSize, req);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 添加/修改
+ *
+ * @param lawsClub
+ * @return
+ */
+ @AutoLog(value = "社团管理-添加/修改")
+ @ApiOperation(value="社团管理-添加/修改", notes="社团管理-添加/修改")
+ @PostMapping(value = "/addOrEdit")
+ public Result> addOrEdit(@RequestBody LawsClub lawsClub) {
+ return lawsClubService.addOrEdit(lawsClub);
+ }
+
+ /**
+ * 查看
+ */
+ @AutoLog(value = "社团管理-查看")
+ @ApiOperation(value="社团管理-查看", notes="社团管理-查看")
+ @PostMapping(value = "/queryOne")
+ @DictPoint
+ public Result> queryOne(@RequestBody JSONObject jsonObject) {
+ String id = jsonObject.getString("id");
+ return lawsClubService.queryOne(id);
+ }
+
+ /**
+ * 通过id删除
+ */
+ @AutoLog(value = "社团管理-通过id删除")
+ @ApiOperation(value="社团管理-通过id删除", notes="社团管理-通过id删除")
+ @PostMapping(value = "/delete")
+ public Result> delete(@RequestBody JSONObject jsonObject) {
+ String id = jsonObject.getString("id");
+ return lawsClubService.delete(id);
+ }
+
+ /**
+ * 导出全部
+ */
+ @AutoLog(value = "社团管理-导出")
+ @ApiOperation(value="社团管理-导出", notes="社团管理-导出")
+ @RequestMapping(value = "/exportXls")
+ public ModelAndView exportAll(LawsClub lawsClub, HttpServletRequest request) {
+ return lawsClubService.exportAll(lawsClub,request);
+ }
+
+ /**
+ * 导出入团信息
+ */
+ @AutoLog(value = "社团管理-导出入团信息")
+ @ApiOperation(value="社团管理-导出入团信息", notes="社团管理-导出入团信息")
+ @RequestMapping(value = "/exportTeamXls")
+ public ModelAndView exportTeamXls(LawsClub lawsClub, HttpServletRequest request) {
+ return lawsClubService.exportTeamXls(lawsClub,request);
+ }
+
+ /**
+ * 导出参会信息
+ */
+ @AutoLog(value = "社团管理-导出参会信息")
+ @ApiOperation(value="社团管理-导出参会信息", notes="社团管理-导出参会信息")
+ @RequestMapping(value = "/exportMeetingXls")
+ public ModelAndView exportMeetingXls(LawsClub lawsClub, HttpServletRequest request) {
+ return lawsClubService.exportMeetingXls(lawsClub,request);
+ }
+
+ /**
+ * 导出征集调研意见
+ */
+ @AutoLog(value = "社团管理-导出征集调研意见")
+ @ApiOperation(value="社团管理-导出征集调研意见", notes="社团管理-导出征集调研意见")
+ @RequestMapping(value = "/exportresearchXls")
+ public ModelAndView exportresearchXls(LawsClub lawsClub, HttpServletRequest request) {
+ return lawsClubService.exportresearchXls(lawsClub,request);
+ }
+
+ /**
+ * 模板下载
+ */
+ @AutoLog(value = "社团管理-导出征集调研意见")
+ @ApiOperation(value="社团管理-导出征集调研意见", notes="社团管理-导出征集调研意见")
+ @RequestMapping(value = "/exportTemplate")
+ public ModelAndView exportTemplate(HttpServletRequest request) {
+ return lawsClubService.exportTemplate(request);
+ }
+
+ /**
+ * 导入
+ */
+ @AutoLog(value = "社团管理-导入")
+ @ApiOperation(value="社团管理-导入", notes="社团管理-导入")
+ @RequestMapping(value = "/importExcel")
+ public Result> excelimport(HttpServletRequest request) {
+ return lawsClubService.importExcel(request);
+ }
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/controller/LawsCompanyStandardStatisticsController.java b/laws-modules/src/main/java/com/jero/modules/laws/club/controller/LawsCompanyStandardStatisticsController.java
new file mode 100644
index 00000000..b858ff39
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/controller/LawsCompanyStandardStatisticsController.java
@@ -0,0 +1,114 @@
+package com.jero.modules.laws.club.controller;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.jero.common.api.vo.Result;
+import com.jero.common.api.vo.ResultCommon;
+import com.jero.common.aspect.annotation.AutoLog;
+import com.jero.modules.laws.club.entity.LawsCompanyStandardStatistics;
+import com.jero.modules.laws.club.service.ILawsCompanyStandardStatisticsService;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ *
+ * 公司参与标准统计表 前端控制器
+ *
+ *
+ * @author sz
+ * @since 2024-08-28
+ */
+@RestController
+@RequestMapping("/companyStatistics")
+public class LawsCompanyStandardStatisticsController {
+
+ @Resource
+ private ILawsCompanyStandardStatisticsService lawsCompanyStandardStatisticsService;
+
+ /**
+ * 分页列表查询
+ *
+ * @return
+ */
+ @AutoLog(value = "公司参与标准统计表-分页列表查询")
+ @ApiOperation(value="公司参与标准统计表-分页列表查询", notes="公司参与标准统计表-分页列表查询")
+ @GetMapping(value = "/page")
+ public Result> queryPageList(LawsCompanyStandardStatistics lawsCompanyStandardStatistics,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+ HttpServletRequest req) {
+ IPage pageList= lawsCompanyStandardStatisticsService.queryPageList(lawsCompanyStandardStatistics, pageNo, pageSize, req);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 列表查询
+ *
+ * @return
+ */
+ @AutoLog(value = "公司参与标准统计表-列表查询")
+ @ApiOperation(value="公司参与标准统计表-列表查询", notes="公司参与标准统计表-列表查询")
+ @GetMapping(value = "/list")
+ public Result> queryList() {
+ List list = lawsCompanyStandardStatisticsService.list();
+ return Result.OK(list);
+ }
+
+ /**
+ * 添加
+ *
+ * @param lawsCompanyStandardStatistics
+ * @return
+ */
+ @AutoLog(value = "公司参与标准统计表-添加")
+ @ApiOperation(value="公司参与标准统计表-添加", notes="公司参与标准统计表-添加")
+ @PostMapping(value = "/add")
+ public Result> add(@RequestBody LawsCompanyStandardStatistics lawsCompanyStandardStatistics) {
+ return lawsCompanyStandardStatisticsService.add(lawsCompanyStandardStatistics);
+ }
+
+ /**
+ * 编辑
+ *
+ * @param lawsCompanyStandardStatistics
+ * @return
+ */
+ @AutoLog(value = "公司参与标准统计表-编辑")
+ @ApiOperation(value="公司参与标准统计表-编辑", notes="公司参与标准统计表-编辑")
+ @PostMapping(value = "/edit")
+ public Result> edit(@RequestBody LawsCompanyStandardStatistics lawsCompanyStandardStatistics) {
+ lawsCompanyStandardStatisticsService.updateById(lawsCompanyStandardStatistics);
+ return Result.OK(ResultCommon.EDIT_OK);
+ }
+
+ /**
+ * 通过id删除
+ */
+ @AutoLog(value = "公司参与标准统计表-通过id删除")
+ @ApiOperation(value="公司参与标准统计表-通过id删除", notes="公司参与标准统计表-通过id删除")
+ @PostMapping(value = "/delete")
+ public Result> delete(@RequestBody JSONObject jsonObject) {
+ String id = jsonObject.getString("id");
+ if(StringUtils.isBlank(id)){
+ return Result.error(ResultCommon.PLEASE_SELECT_DATA);
+ }
+ lawsCompanyStandardStatisticsService.removeById(id);
+ return Result.OK(ResultCommon.OK);
+ }
+
+ /**
+ * 导出
+ */
+ @AutoLog(value = "公司参与标准统计表-导出")
+ @ApiOperation(value="公司参与标准统计表-导出", notes="公司参与标准统计表-导出")
+ @RequestMapping(value = "/exportXls")
+ public ModelAndView export(LawsCompanyStandardStatistics lawsCompanyStandardStatistics, HttpServletRequest request) {
+ return lawsCompanyStandardStatisticsService.export(lawsCompanyStandardStatistics, request);
+ }
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClub.java b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClub.java
new file mode 100644
index 00000000..df40695d
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClub.java
@@ -0,0 +1,122 @@
+package com.jero.modules.laws.club.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.jero.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecgframework.poi.excel.annotation.ExcelCollection;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ *
+ * 社团管理表
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("laws_club")
+@ApiModel(value="LawsClub对象", description="社团管理表")
+public class LawsClub implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "主键")
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ @ApiModelProperty(value = "上级节点id")
+ @Dict(dictTable = "laws_club", dicCode = "id", dicText = "node_type")
+ @Excel(name = "上级节点", width = 20, dicText = "node_type", dicCode = "id", dictTable = "laws_club")
+ private String parentId;
+
+ @ApiModelProperty(value = "节点类型")
+ @Excel(name = "节点类型", width = 20)
+ private String nodeType;
+
+ @ApiModelProperty(value = "社团名称")
+ @Excel(name = "社团名称", width = 20)
+ private String clubName;
+
+ @ApiModelProperty(value = "社团地址")
+ @Excel(name = "社团地址", width = 20)
+ private String clubAddress;
+
+ @ApiModelProperty(value = "社团联系人")
+ @Excel(name = "社团联系人", width = 20)
+ private String clubContact;
+
+ @ApiModelProperty(value = "联系电话")
+ @Excel(name = "联系电话", width = 20)
+ private String contactNumber;
+
+ @ApiModelProperty(value = "0表示未删除,1表示删除")
+ @TableLogic(value = "0", delval = "1")
+ private Integer delFlag;
+
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+
+ @ApiModelProperty(value = "创建时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @ApiModelProperty(value = "更新时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ @ApiModelProperty(value = "是否是叶子节点")
+ @TableField(exist = false)
+ private boolean leafFlag;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "入团信息列表数据")
+ @ExcelCollection(name = "入团信息")
+ private List lawsClubJoinTeamList;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "支付信息列表数据")
+ private List lawsClubPayments;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "参会信息列表数据")
+ @ExcelCollection(name = "参会信息")
+ private List lawsClubMeetings;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "工作组资料列表数据")
+ private List lawsClubWorkingGroupFiles;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "征集调研信息列表数据")
+ @ExcelCollection(name = "征集调研信息")
+ private List lawsClubResearchInformations;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "子节点")
+ private List children;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "公钥")
+ private String rsaPublicKey;
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubJoinTeam.java b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubJoinTeam.java
new file mode 100644
index 00000000..33cff0f8
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubJoinTeam.java
@@ -0,0 +1,116 @@
+package com.jero.modules.laws.club.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jero.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ *
+ * 社团管理-入团信息表
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("laws_club_join_team")
+@ApiModel(value="LawsClubJoinTeam对象", description="社团管理-入团信息表")
+public class LawsClubJoinTeam implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "主键")
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ @ApiModelProperty(value = "社团id")
+ private String clubId;
+
+ @ApiModelProperty(value = "入团日期")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
+ @Excel(name = "入团日期", width = 20, format = "yyyy-MM-dd")
+ private Date joinDate;
+
+ @ApiModelProperty(value = "社团职务担任者id")
+ @Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
+// @Excel(name = "社团职务担任者", width = 20, dicText = "realname", dicCode = "id", dictTable = "sys_user")
+ private String leadId;
+
+ @ApiModelProperty(value = "入团经费")
+// @Excel(name = "入团经费", width = 20)
+ private String joinCast;
+
+ @ApiModelProperty(value = "社团简介")
+// @Excel(name = "社团简介", width = 20)
+ private String clubProfile;
+
+ @ApiModelProperty(value = "部门id")
+ @Excel(name = "部门名称", width = 20, dicText = "depart_name", dicCode = "id", dictTable = "sys_depart")
+ private String departId;
+
+ @ApiModelProperty(value = "专业模块")
+ private String specializedModule;
+
+ @ApiModelProperty(value = "申请人的id")
+ @Excel(name = "申请人", width = 20, dicText = "realname", dicCode = "id", dictTable = "sys_user")
+ private String proposerId;
+
+ @ApiModelProperty(value = "秘书处")
+// @Excel(name = "秘书处", width = 20)
+ private String secretariat;
+
+ @ApiModelProperty(value = "联系人")
+// @Excel(name = "联系人", width = 20)
+ private String contacts;
+
+ @ApiModelProperty(value = "备注")
+ private String remark;
+
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+
+ @ApiModelProperty(value = "创建时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @ApiModelProperty(value = "更新时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ @ApiModelProperty(value = "社团职务担任者名称")
+ @TableField(exist = false)
+ private String leadIdText;
+
+ @ApiModelProperty(value = "部门名称")
+ @TableField(exist = false)
+ private String departText;
+
+ @ApiModelProperty(value = "申请人名称")
+ @TableField(exist = false)
+ private String proposerText;
+
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubMeeting.java b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubMeeting.java
new file mode 100644
index 00000000..9ad920e3
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubMeeting.java
@@ -0,0 +1,117 @@
+package com.jero.modules.laws.club.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jero.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecgframework.poi.excel.annotation.ExcelCollection;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ *
+ * 社团管理-参会信息
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("laws_club_meeting")
+@ApiModel(value="LawsClubMeeting对象", description="社团管理-参会信息")
+public class LawsClubMeeting implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "主键")
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ @ApiModelProperty(value = "社团id")
+ private String clubId;
+
+ @ApiModelProperty(value = "会议名称")
+ @Excel(name = "会议名称", width = 20)
+ private String meetingName;
+
+ @ApiModelProperty(value = "会议日期")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
+ @Excel(name = "会议日期", width = 20, format = "yyyy-MM-dd")
+ private Date meetingDate;
+
+ @ApiModelProperty(value = "会议费用")
+ @Excel(name = "会议费用", width = 20)
+ private String meetingCost;
+
+ @ApiModelProperty(value = "线下/线上地点")
+ @Excel(name = "线下/线上地点", width = 20)
+ private String meetingPlace;
+
+ @ApiModelProperty(value = "计划完成日期")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
+// @Excel(name = "计划完成日期", width = 20, format = "yyyy-MM-dd")
+ private Date planCompletionDate;
+
+ @ApiModelProperty(value = "通知人id")
+// @Excel(name = "通知人", width = 20, dicText = "realname", dicCode = "id", dictTable = "sys_user")
+ private String notifierId;
+
+ @ApiModelProperty(value = "通知部门id")
+// @Excel(name = "部门名称", width = 20, dicText = "depart_name", dicCode = "id", dictTable = "sys_depart")
+ private String notifyDepartId;
+
+ @ApiModelProperty(value = "通知部门专业模块")
+// @Excel(name = "参会部门专业模块", width = 20, dicCode = "professional_module")
+ private String informSpecializedModule;
+
+ @ApiModelProperty(value = "是否宣贯 0-否 1-是")
+// @Excel(name = "参会部门专业模块", width = 20, dicCode = "yn")
+ private String isPublicize;
+
+ @ApiModelProperty(value = "会议组织人")
+// @Excel(name = "会议组织人", width = 20)
+ private String meetingOrganizer;
+
+ @ApiModelProperty(value = "会议内容")
+// @Excel(name = "会议内容", width = 20)
+ private String meetingContent;
+
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+
+ @ApiModelProperty(value = "创建时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @ApiModelProperty(value = "更新时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "会议成员列表")
+// @ExcelCollection(name = "会议成员列表")
+ private List meetingMemberList;
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubMeetingMember.java b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubMeetingMember.java
new file mode 100644
index 00000000..2a32f202
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubMeetingMember.java
@@ -0,0 +1,78 @@
+package com.jero.modules.laws.club.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jero.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ *
+ * 社团管理-参会信息-人员
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("laws_club_meeting_member")
+@ApiModel(value="LawsClubMeetingMember对象", description="社团管理-参会信息-人员")
+public class LawsClubMeetingMember implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "主键")
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ @ApiModelProperty(value = "关联会议的id")
+ private String meetingId;
+
+ @ApiModelProperty(value = "参会人员的id")
+ @Excel(name = "参会人员", width = 20, dicText = "realname", dicCode = "id", dictTable = "sys_user")
+ private String memberId;
+
+ @ApiModelProperty(value = "参会部门专业模块")
+ @Excel(name = "参会部门专业模块", dicCode = "professional_module")
+ private String meetingSpecializedModule;
+
+ @ApiModelProperty(value = "参会部门的id")
+ @Excel(name = "参会部门", width = 20, dicText = "depart_name", dicCode = "id", dictTable = "sys_depart")
+ private String departId;
+
+ @ApiModelProperty(value = "参会报告文件id")
+ @Excel(name = "参会报告文件", width = 20)
+ private String meetingFileId;
+
+ @ApiModelProperty(value = "备注")
+ @Excel(name = "备注", width = 20)
+ private String remark;
+
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+
+ @ApiModelProperty(value = "创建时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @ApiModelProperty(value = "更新时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubPayment.java b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubPayment.java
new file mode 100644
index 00000000..987889a3
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubPayment.java
@@ -0,0 +1,71 @@
+package com.jero.modules.laws.club.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ *
+ * 社团管理-支付信息
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("laws_club_payment")
+@ApiModel(value="LawsClubPayment对象", description="社团管理-支付信息")
+public class LawsClubPayment implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "主键")
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ @ApiModelProperty(value = "社团id")
+ private String clubId;
+
+ @ApiModelProperty(value = "缴费金额")
+ private String paymentAmount;
+
+ @ApiModelProperty(value = "缴费时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date paymentTime;
+
+ @ApiModelProperty(value = "备注")
+ private String remark;
+
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+
+ @ApiModelProperty(value = "创建时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @ApiModelProperty(value = "更新时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubResearchInformation.java b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubResearchInformation.java
new file mode 100644
index 00000000..bc67c499
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubResearchInformation.java
@@ -0,0 +1,108 @@
+package com.jero.modules.laws.club.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ *
+ * 征集调研信息表
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("laws_club_research_information")
+@ApiModel(value="LawsClubResearchInformation对象", description="征集调研信息表")
+public class LawsClubResearchInformation implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "主键")
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ @ApiModelProperty(value = "社团id")
+ private String clubId;
+
+ @ApiModelProperty(value = "名称")
+ @Excel(name = "名称", width = 20)
+ private String researchName;
+
+ @ApiModelProperty(value = "内容")
+ @Excel(name = "内容", width = 20)
+ private String researchContent;
+
+ @ApiModelProperty(value = "接收日期")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
+ @Excel(name = "接收日期", width = 20, format = "yyyy-MM-dd")
+ private Date receiveDate;
+
+ @ApiModelProperty(value = "截止日期")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
+ @Excel(name = "截止日期", width = 20, format = "yyyy-MM-dd")
+ private Date deadlineDate;
+
+ @ApiModelProperty(value = "专业接口人")
+ private String specializedInterfacePerson;
+
+ @ApiModelProperty(value = "专业模块")
+ private String specializedModule;
+
+ @ApiModelProperty(value = "反馈人")
+ private String feedbackPerson;
+
+ @ApiModelProperty(value = "反馈部门")
+ private String feedbackDepart;
+
+ @ApiModelProperty(value = "反馈部门专业模块")
+ private String feedbackSpecializedModule;
+
+ @ApiModelProperty(value = "反馈情况")
+ private String feedbackSituation;
+
+ @ApiModelProperty(value = "任务来源")
+ private String taskSource;
+
+ @ApiModelProperty(value = "盖章流程完成情况")
+ private String sealSituation;
+
+ @ApiModelProperty(value = "所属社团")
+ private String clubName;
+
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+
+ @ApiModelProperty(value = "创建时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @ApiModelProperty(value = "更新时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubWorkingGroupFile.java b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubWorkingGroupFile.java
new file mode 100644
index 00000000..3d320496
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsClubWorkingGroupFile.java
@@ -0,0 +1,68 @@
+package com.jero.modules.laws.club.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ *
+ * 社团管理-工作组管理
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("laws_club_working_group_file")
+@ApiModel(value="LawsClubWorkingGroupFile对象", description="社团管理-工作组管理")
+public class LawsClubWorkingGroupFile implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "主键")
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ @ApiModelProperty(value = "社团id")
+ private String clubId;
+
+ @ApiModelProperty(value = "文件id")
+ private String fileId;
+
+ @ApiModelProperty(value = "文件名称")
+ private String fileName;
+
+ @ApiModelProperty(value = "文件类型")
+ private String fileType;
+
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+
+ @ApiModelProperty(value = "创建时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @ApiModelProperty(value = "更新时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsCompanyStandardStatistics.java b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsCompanyStandardStatistics.java
new file mode 100644
index 00000000..2a160c41
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/entity/LawsCompanyStandardStatistics.java
@@ -0,0 +1,98 @@
+package com.jero.modules.laws.club.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jero.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ *
+ * 公司参与标准统计表
+ *
+ *
+ * @author sz
+ * @since 2024-08-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("laws_company_standard_statistics")
+@ApiModel(value="LawsCompanyStandardStatistics对象", description="公司参与标准统计表")
+public class LawsCompanyStandardStatistics implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty(value = "主键")
+ @TableId(value = "id", type = IdType.ASSIGN_ID)
+ private String id;
+
+ @ApiModelProperty(value = "标准编号")
+ @Excel(name = "标准编号", width = 15)
+ private String standardNumber;
+
+ @ApiModelProperty(value = "标准名称")
+ @Excel(name = "标准名称", width = 15)
+ private String standardName;
+
+ @ApiModelProperty(value = "标准起草人")
+ @Excel(name = "标准起草人", width = 15)
+ private String standardDrafter;
+
+ @ApiModelProperty(value = "是否主导 0-主导 1-参与")
+ @Excel(name = "主导/参与", width = 15)
+ private String isLead;
+
+ @ApiModelProperty(value = "公司排名/个人排名")
+ @Excel(name = "公司排名/个人排名", width = 15)
+ private String ranking;
+
+ @ApiModelProperty(value = "阶段(数据字典)")
+ @Excel(name = "阶段", width = 15)
+ private String stage;
+
+ @ApiModelProperty(value = "领奖时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
+ @Excel(name = "领奖时间", width = 15, format = "yyyy-MM-dd")
+ private Date awardTime;
+
+ @ApiModelProperty(value = "所属工作组")
+ @Excel(name = "所属工作组", width = 15)
+ private String workingGroup;
+
+ @ApiModelProperty(value = "备注")
+ @Excel(name = "备注", width = 15)
+ private String remark;
+
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+
+ @ApiModelProperty(value = "创建时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+
+ @ApiModelProperty(value = "更新时间")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubJoinTeamMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubJoinTeamMapper.java
new file mode 100644
index 00000000..66438c91
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubJoinTeamMapper.java
@@ -0,0 +1,15 @@
+package com.jero.modules.laws.club.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jero.modules.laws.club.entity.LawsClubJoinTeam;
+
+/**
+ *
+ * 社团管理-入团信息表 Mapper 接口
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface LawsClubJoinTeamMapper extends BaseMapper {
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubMapper.java
new file mode 100644
index 00000000..627c320a
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubMapper.java
@@ -0,0 +1,17 @@
+package com.jero.modules.laws.club.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jero.modules.laws.club.entity.LawsClub;
+
+/**
+ *
+ * 社团管理表 Mapper 接口
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface LawsClubMapper extends BaseMapper {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubMeetingMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubMeetingMapper.java
new file mode 100644
index 00000000..9e12a26f
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubMeetingMapper.java
@@ -0,0 +1,16 @@
+package com.jero.modules.laws.club.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jero.modules.laws.club.entity.LawsClubMeeting;
+
+/**
+ *
+ * 社团管理-参会信息 Mapper 接口
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface LawsClubMeetingMapper extends BaseMapper {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubMeetingMemberMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubMeetingMemberMapper.java
new file mode 100644
index 00000000..ea5ef343
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubMeetingMemberMapper.java
@@ -0,0 +1,16 @@
+package com.jero.modules.laws.club.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jero.modules.laws.club.entity.LawsClubMeetingMember;
+
+/**
+ *
+ * 社团管理-参会信息-人员 Mapper 接口
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface LawsClubMeetingMemberMapper extends BaseMapper {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubPaymentMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubPaymentMapper.java
new file mode 100644
index 00000000..b4506df0
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubPaymentMapper.java
@@ -0,0 +1,16 @@
+package com.jero.modules.laws.club.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jero.modules.laws.club.entity.LawsClubPayment;
+
+/**
+ *
+ * 社团管理-支付信息 Mapper 接口
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface LawsClubPaymentMapper extends BaseMapper {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubResearchInformationMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubResearchInformationMapper.java
new file mode 100644
index 00000000..3ddc8e31
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubResearchInformationMapper.java
@@ -0,0 +1,16 @@
+package com.jero.modules.laws.club.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jero.modules.laws.club.entity.LawsClubResearchInformation;
+
+/**
+ *
+ * 征集调研信息表 Mapper 接口
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface LawsClubResearchInformationMapper extends BaseMapper {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubWorkingGroupFileMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubWorkingGroupFileMapper.java
new file mode 100644
index 00000000..b65e4c8a
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsClubWorkingGroupFileMapper.java
@@ -0,0 +1,16 @@
+package com.jero.modules.laws.club.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jero.modules.laws.club.entity.LawsClubWorkingGroupFile;
+
+/**
+ *
+ * 社团管理-工作组管理 Mapper 接口
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface LawsClubWorkingGroupFileMapper extends BaseMapper {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsCompanyStandardStatisticsMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsCompanyStandardStatisticsMapper.java
new file mode 100644
index 00000000..e4782a16
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/LawsCompanyStandardStatisticsMapper.java
@@ -0,0 +1,16 @@
+package com.jero.modules.laws.club.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jero.modules.laws.club.entity.LawsCompanyStandardStatistics;
+
+/**
+ *
+ * 公司参与标准统计表 Mapper 接口
+ *
+ *
+ * @author sz
+ * @since 2024-08-28
+ */
+public interface LawsCompanyStandardStatisticsMapper extends BaseMapper {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubJoinTeamMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubJoinTeamMapper.xml
new file mode 100644
index 00000000..00b7ce11
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubJoinTeamMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubMapper.xml
new file mode 100644
index 00000000..c4f3a86e
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubMeetingMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubMeetingMapper.xml
new file mode 100644
index 00000000..7f7f9b50
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubMeetingMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubMeetingMemberMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubMeetingMemberMapper.xml
new file mode 100644
index 00000000..452d4b90
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubMeetingMemberMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubPaymentMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubPaymentMapper.xml
new file mode 100644
index 00000000..86378323
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubPaymentMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubResearchInformationMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubResearchInformationMapper.xml
new file mode 100644
index 00000000..326bf727
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubResearchInformationMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubWorkingGroupFileMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubWorkingGroupFileMapper.xml
new file mode 100644
index 00000000..b4c37147
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsClubWorkingGroupFileMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsCompanyStandardStatisticsMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsCompanyStandardStatisticsMapper.xml
new file mode 100644
index 00000000..8b6c12e7
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/mapper/xml/LawsCompanyStandardStatisticsMapper.xml
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubJoinTeamService.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubJoinTeamService.java
new file mode 100644
index 00000000..0f7de0a1
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubJoinTeamService.java
@@ -0,0 +1,15 @@
+package com.jero.modules.laws.club.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jero.modules.laws.club.entity.LawsClubJoinTeam;
+
+/**
+ *
+ * 社团管理-入团信息表 服务类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface ILawsClubJoinTeamService extends IService {
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubMeetingMemberService.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubMeetingMemberService.java
new file mode 100644
index 00000000..41702b6e
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubMeetingMemberService.java
@@ -0,0 +1,16 @@
+package com.jero.modules.laws.club.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jero.modules.laws.club.entity.LawsClubMeetingMember;
+
+/**
+ *
+ * 社团管理-参会信息-人员 服务类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface ILawsClubMeetingMemberService extends IService {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubMeetingService.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubMeetingService.java
new file mode 100644
index 00000000..979ec5a1
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubMeetingService.java
@@ -0,0 +1,16 @@
+package com.jero.modules.laws.club.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jero.modules.laws.club.entity.LawsClubMeeting;
+
+/**
+ *
+ * 社团管理-参会信息 服务类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface ILawsClubMeetingService extends IService {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubPaymentService.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubPaymentService.java
new file mode 100644
index 00000000..2d7e755e
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubPaymentService.java
@@ -0,0 +1,16 @@
+package com.jero.modules.laws.club.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jero.modules.laws.club.entity.LawsClubPayment;
+
+/**
+ *
+ * 社团管理-支付信息 服务类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface ILawsClubPaymentService extends IService {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubResearchInformationService.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubResearchInformationService.java
new file mode 100644
index 00000000..e6badd2e
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubResearchInformationService.java
@@ -0,0 +1,16 @@
+package com.jero.modules.laws.club.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jero.modules.laws.club.entity.LawsClubResearchInformation;
+
+/**
+ *
+ * 征集调研信息表 服务类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface ILawsClubResearchInformationService extends IService {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubService.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubService.java
new file mode 100644
index 00000000..3f9964aa
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubService.java
@@ -0,0 +1,44 @@
+package com.jero.modules.laws.club.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jero.common.api.vo.Result;
+import com.jero.modules.laws.club.entity.LawsClub;
+import org.springframework.web.servlet.ModelAndView;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ *
+ * 社团管理表 服务类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface ILawsClubService extends IService {
+
+ List getTree(String parentId, String nodeType);
+
+ Result> addOrEdit(LawsClub lawsClub);
+
+ Result> queryOne(String id);
+
+ Result> delete(String id);
+
+ ModelAndView exportTeamXls(LawsClub lawsClub, HttpServletRequest request);
+
+ IPage queryPageList(LawsClub lawsClub, Integer pageNo, Integer pageSize, HttpServletRequest req);
+
+ ModelAndView exportAll(LawsClub lawsClub, HttpServletRequest request);
+
+ ModelAndView exportMeetingXls(LawsClub lawsClub, HttpServletRequest request);
+
+ ModelAndView exportresearchXls(LawsClub lawsClub, HttpServletRequest request);
+
+ ModelAndView exportTemplate(HttpServletRequest request);
+
+ Result> importExcel(HttpServletRequest request);
+
+ List getTreeStructure(String part, String nodeType);
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubWorkingGroupFileService.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubWorkingGroupFileService.java
new file mode 100644
index 00000000..c1d66a91
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsClubWorkingGroupFileService.java
@@ -0,0 +1,16 @@
+package com.jero.modules.laws.club.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jero.modules.laws.club.entity.LawsClubWorkingGroupFile;
+
+/**
+ *
+ * 社团管理-工作组管理 服务类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+public interface ILawsClubWorkingGroupFileService extends IService {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsCompanyStandardStatisticsService.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsCompanyStandardStatisticsService.java
new file mode 100644
index 00000000..6f3d6033
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/ILawsCompanyStandardStatisticsService.java
@@ -0,0 +1,28 @@
+package com.jero.modules.laws.club.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.jero.common.api.vo.Result;
+import com.jero.modules.laws.club.entity.LawsCompanyStandardStatistics;
+import com.jero.modules.tag.entity.LawsArea;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ *
+ * 公司参与标准统计表 服务类
+ *
+ *
+ * @author sz
+ * @since 2024-08-28
+ */
+public interface ILawsCompanyStandardStatisticsService extends IService {
+
+ IPage queryPageList(LawsCompanyStandardStatistics lawsCompanyStandardStatistics, Integer pageNo, Integer pageSize, HttpServletRequest req);
+
+ ModelAndView export(LawsCompanyStandardStatistics lawsCompanyStandardStatistics, HttpServletRequest request);
+
+ Result> add(LawsCompanyStandardStatistics lawsCompanyStandardStatistics);
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubJoinTeamServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubJoinTeamServiceImpl.java
new file mode 100644
index 00000000..a5d44a33
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubJoinTeamServiceImpl.java
@@ -0,0 +1,21 @@
+package com.jero.modules.laws.club.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jero.modules.laws.club.entity.LawsClubJoinTeam;
+import com.jero.modules.laws.club.mapper.LawsClubJoinTeamMapper;
+import com.jero.modules.laws.club.service.ILawsClubJoinTeamService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ *
+ * 社团管理-入团信息表 服务实现类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Service
+public class LawsClubJoinTeamServiceImpl extends ServiceImpl implements ILawsClubJoinTeamService {
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingMemberServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingMemberServiceImpl.java
new file mode 100644
index 00000000..f57a5389
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingMemberServiceImpl.java
@@ -0,0 +1,20 @@
+package com.jero.modules.laws.club.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jero.modules.laws.club.entity.LawsClubMeetingMember;
+import com.jero.modules.laws.club.mapper.LawsClubMeetingMemberMapper;
+import com.jero.modules.laws.club.service.ILawsClubMeetingMemberService;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 社团管理-参会信息-人员 服务实现类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Service
+public class LawsClubMeetingMemberServiceImpl extends ServiceImpl implements ILawsClubMeetingMemberService {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingServiceImpl.java
new file mode 100644
index 00000000..cd66fa7b
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubMeetingServiceImpl.java
@@ -0,0 +1,20 @@
+package com.jero.modules.laws.club.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jero.modules.laws.club.entity.LawsClubMeeting;
+import com.jero.modules.laws.club.mapper.LawsClubMeetingMapper;
+import com.jero.modules.laws.club.service.ILawsClubMeetingService;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 社团管理-参会信息 服务实现类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Service
+public class LawsClubMeetingServiceImpl extends ServiceImpl implements ILawsClubMeetingService {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubPaymentServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubPaymentServiceImpl.java
new file mode 100644
index 00000000..e72e4142
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubPaymentServiceImpl.java
@@ -0,0 +1,20 @@
+package com.jero.modules.laws.club.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jero.modules.laws.club.entity.LawsClubPayment;
+import com.jero.modules.laws.club.mapper.LawsClubPaymentMapper;
+import com.jero.modules.laws.club.service.ILawsClubPaymentService;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 社团管理-支付信息 服务实现类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Service
+public class LawsClubPaymentServiceImpl extends ServiceImpl implements ILawsClubPaymentService {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubResearchInformationServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubResearchInformationServiceImpl.java
new file mode 100644
index 00000000..95cd1c92
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubResearchInformationServiceImpl.java
@@ -0,0 +1,20 @@
+package com.jero.modules.laws.club.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jero.modules.laws.club.entity.LawsClubResearchInformation;
+import com.jero.modules.laws.club.mapper.LawsClubResearchInformationMapper;
+import com.jero.modules.laws.club.service.ILawsClubResearchInformationService;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 征集调研信息表 服务实现类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Service
+public class LawsClubResearchInformationServiceImpl extends ServiceImpl implements ILawsClubResearchInformationService {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubServiceImpl.java
new file mode 100644
index 00000000..b5643f3b
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubServiceImpl.java
@@ -0,0 +1,572 @@
+package com.jero.modules.laws.club.service.impl;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jero.common.api.vo.Result;
+import com.jero.common.api.vo.ResultCommon;
+import com.jero.common.exception.JeroBootException;
+import com.jero.common.system.base.controller.JeroController;
+import com.jero.common.system.query.QueryGenerator;
+import com.jero.common.util.CommonUtils;
+import com.jero.common.util.PasswordUtil;
+import com.jero.common.util.RedisUtil;
+import com.jero.common.util.oConvertUtils;
+import com.jero.modules.laws.club.entity.*;
+import com.jero.modules.laws.club.mapper.LawsClubMapper;
+import com.jero.modules.laws.club.service.*;
+import com.jero.modules.laws.vo.LawsClubMeetingExcel;
+import com.jero.modules.system.entity.SysDepart;
+import com.jero.modules.system.entity.SysUser;
+import com.jero.modules.system.service.ISysDepartService;
+import com.jero.modules.system.service.ISysUserService;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.lucene.search.similarities.LambdaDF;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.servlet.ModelAndView;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 社团管理表 服务实现类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Service
+@Transactional(rollbackFor = JeroBootException.class)
+public class LawsClubServiceImpl extends ServiceImpl implements ILawsClubService {
+
+ @Resource
+ private ILawsClubJoinTeamService lawsClubJoinTeamService;
+ @Resource
+ private ILawsClubMeetingService lawsClubMeetingService;
+ @Resource
+ private ILawsClubMeetingMemberService lawsClubMeetingMemberService;
+ @Resource
+ private ILawsClubPaymentService lawsClubPaymentService;
+ @Resource
+ private ILawsClubWorkingGroupFileService lawsClubWorkingGroupFileService;
+ @Resource
+ private ILawsClubResearchInformationService lawsClubResearchInformationService;
+ @Resource
+ private ISysUserService sysUserService;
+ @Resource
+ private ISysDepartService sysDepartService;
+ @Resource
+ private RedisUtil redisUtil;
+
+ @Override
+ public List getTree(String parentId, String nodeType) {
+ // 查询所有节点
+ List allNodes = list();
+
+ // 过滤符合条件的节点
+ List matchedNodes = allNodes.parallelStream()
+ .filter(node -> node.getNodeType() != null && node.getNodeType().contains(nodeType))
+ .collect(Collectors.toList());
+
+ // 构建节点映射,以及父子关系映射
+ Map nodeMap = allNodes.parallelStream()
+ .collect(Collectors.toConcurrentMap(LawsClub::getId, Function.identity()));
+ Map> parentChildMap = matchedNodes.parallelStream()
+ .collect(Collectors.groupingByConcurrent(LawsClub::getParentId));
+
+ if (matchedNodes.isEmpty()) {
+ return Collections.emptyList();
+ }
+
+ // 查找每个匹配节点的一级父节点
+ Set rootNodes = ConcurrentHashMap.newKeySet();
+ Set allParentNodeCodes = ConcurrentHashMap.newKeySet();
+ matchedNodes.parallelStream().forEach(matchedNode -> {
+ LawsClub currentNode = matchedNode;
+ while (currentNode != null && !currentNode.getParentId().equals(parentId)) {
+ currentNode = nodeMap.get(currentNode.getParentId());
+ if (currentNode != null) {
+ allParentNodeCodes.add(currentNode.getId());
+ }
+ }
+ if (currentNode != null) {
+ rootNodes.add(currentNode);
+ }
+ });
+
+ // 设置叶子标志
+ rootNodes.parallelStream().forEach(rootNode -> {
+ List children = parentChildMap.get(rootNode.getId());
+ boolean hasNoChildren = (children == null || children.isEmpty());
+
+ if (StringUtils.isBlank(nodeType)) {
+ rootNode.setLeafFlag(hasNoChildren);
+ } else {
+ boolean isNotInAllParents = !allParentNodeCodes.contains(rootNode.getId());
+ rootNode.setLeafFlag(hasNoChildren && isNotInAllParents);
+ }
+ });
+
+ // 按名字排序
+ return rootNodes.stream()
+ .sorted(Comparator.comparing(LawsClub::getNodeType))
+ .collect(Collectors.toList());
+ }
+
+ @Override
+ public List getTreeStructure(String parentId, String nodeType) {
+ // 查询所有节点
+ List allNodes = list();
+
+ // 构建节点映射
+ Map nodeMap = allNodes.parallelStream()
+ .collect(Collectors.toConcurrentMap(LawsClub::getId, Function.identity()));
+
+ // 构建父子关系映射
+ Map> parentChildMap = allNodes.parallelStream()
+ .collect(Collectors.groupingBy(LawsClub::getParentId));
+
+ // 如果 nodeType 为空,则返回完整树结构
+ if (StringUtils.isBlank(nodeType)) {
+ return buildTreeStructure(parentId, parentChildMap, nodeMap); // 构建并返回完整的树形结构
+ }
+
+ // 查找 nodeType 对应的目标节点
+ List targetNodes = allNodes.stream()
+ .filter(node -> node.getNodeType() != null && node.getNodeType().contains(nodeType))
+ .collect(Collectors.toList());
+ if (targetNodes.isEmpty()) {
+ // 如果没有找到与 nodeType 模糊匹配的节点,返回空列表
+ return Collections.emptyList();
+ }
+
+// // 目标节点ID集合
+// Set targetNodeIds = targetNodes.stream()
+// .map(LawsClub::getId)
+// .collect(Collectors.toSet());
+// // 筛选目标节点,排除那些 parentId 在 targetNodeIds 中的节点
+// List filteredTargetNodes = targetNodes.stream()
+// .filter(node -> !targetNodeIds.contains(node.getParentId()))
+// .collect(Collectors.toList());
+
+ // 创建结果列表
+ List result = new ArrayList<>();
+
+ // 处理每个匹配到的目标节点
+ for (LawsClub targetNode : targetNodes) {
+ // 查找目标节点的直接上级节点
+ LawsClub parentNode = nodeMap.get(targetNode.getParentId());
+
+ if (parentNode != null) {
+ // 如果上级节点未添加到结果中,添加上级节点
+ if (!result.contains(parentNode)) {
+ // 初始化上级节点的children列表
+ parentNode.setChildren(new ArrayList<>());
+ result.add(parentNode);
+ }
+ // 将目标节点添加到上级节点的children列表中
+ if (parentNode.getChildren() == null) {
+ parentNode.setChildren(new ArrayList<>());
+ }
+ if (!parentNode.getChildren().contains(targetNode)) {
+ parentNode.getChildren().add(targetNode);
+ }
+ }
+ }
+ // 返回结果
+ return result;
+ }
+
+ /**
+ * 递归构建树结构
+ * @param parentId 父节点ID
+ * @param parentChildMap 父子关系映射
+ * @param nodeMap 节点映射
+ * @return 树结构的根节点列表
+ */
+ private List buildTreeStructure(String parentId, Map> parentChildMap, Map nodeMap) {
+ // 获取当前父节点下的所有子节点
+ List children = parentChildMap.get(parentId);
+
+ if (children == null || children.isEmpty()) {
+ return Collections.emptyList(); // 没有子节点,返回空列表
+ }
+
+ // 遍历所有子节点,递归设置其子节点
+ children.parallelStream().forEach(child -> {
+ List grandChildren = buildTreeStructure(child.getId(), parentChildMap, nodeMap);
+ child.setChildren(grandChildren); // 设置当前节点的子节点列表
+ child.setLeafFlag(grandChildren.isEmpty()); // 如果没有子节点则设置为叶子节点
+ });
+
+ return children;
+ }
+
+ @Override
+ public IPage queryPageList(LawsClub lawsClub, Integer pageNo, Integer pageSize, HttpServletRequest req) {
+ String parentId = req.getParameter("parentId");
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.and(wrapper ->
+ wrapper.eq(LawsClub::getParentId, parentId)
+ .or().eq(LawsClub::getId, parentId));
+ if (StringUtils.isNotBlank(lawsClub.getClubName())) {
+ lambdaQueryWrapper.like(LawsClub::getClubName, lawsClub.getClubName());
+ }
+ if (StringUtils.isNotBlank(lawsClub.getNodeType())) {
+ lambdaQueryWrapper.like(LawsClub::getNodeType, lawsClub.getNodeType());
+ }
+ lambdaQueryWrapper.orderByDesc(LawsClub::getCreateTime);
+ // 查找 parentId 对应的所有子孙节点的 ID 列表
+ Page page = new Page<>(pageNo, pageSize);
+ Page pageResult = page(page, lambdaQueryWrapper);
+ List records = pageResult.getRecords();
+ for (LawsClub record : records) {
+ // 解密联系方式
+ String contactNumber = record.getContactNumber();
+ String encryptNumber = PasswordUtil.decrypt(contactNumber);
+ record.setContactNumber(encryptNumber);
+ }
+ pageResult.setRecords(records);
+ return pageResult;
+ }
+
+ @Override
+ public Result> addOrEdit(LawsClub lawsClub) {
+ if (Objects.isNull(lawsClub)) {
+ throw new JeroBootException(ResultCommon.PARAMETERS_CANNOT_BE_NULL);
+ }
+ if (StringUtils.isBlank(lawsClub.getNodeType())) {
+ throw new JeroBootException(ResultCommon.EMPTY_COMMON, "nodeType");
+ }
+ if (StringUtils.isBlank(lawsClub.getClubName())) {
+ throw new JeroBootException(ResultCommon.EMPTY_COMMON, "clubName");
+ }
+ List lawsClubJoinTeamList = lawsClub.getLawsClubJoinTeamList();
+ List lawsClubPayments = lawsClub.getLawsClubPayments();
+ List lawsClubMeetings = lawsClub.getLawsClubMeetings();
+ List lawsClubResearchInformations = lawsClub.getLawsClubResearchInformations();
+ List lawsClubWorkingGroupFiles = lawsClub.getLawsClubWorkingGroupFiles();
+ String rsaPublicKey = lawsClub.getRsaPublicKey(); // 公钥
+ String rsaPrivateKey = String.valueOf(redisUtil.get(rsaPublicKey));
+ if (StringUtils.isNotBlank(lawsClub.getContactNumber())){
+ String contactNumber = CommonUtils.decryptBtRsaPriKey(lawsClub.getContactNumber(), rsaPrivateKey); // 解密
+ String encrypt = PasswordUtil.encrypt(contactNumber);
+ lawsClub.setContactNumber(encrypt);
+ }
+ if (StringUtils.isNotBlank(lawsClub.getId())) {
+ // 修改社团管理表
+ updateById(lawsClub);
+ // 清空关联表的相关数据
+ clearAssociationTable(lawsClub.getId());
+ } else {
+ // 新增
+ save(lawsClub);
+ }
+ saveAssociationTable(lawsClub,lawsClubJoinTeamList,lawsClubPayments,lawsClubMeetings,lawsClubResearchInformations,lawsClubWorkingGroupFiles);
+ return Result.OK(ResultCommon.OK);
+ }
+
+ private void saveAssociationTable(LawsClub lawsClub, List lawsClubJoinTeamList,
+ List lawsClubPayments, List lawsClubMeetings,
+ List lawsClubResearchInformations,
+ List lawsClubWorkingGroupFiles) {
+ // 将数据新增到相关的关联表
+ if (!CollectionUtils.isEmpty(lawsClubJoinTeamList)) {
+ for (LawsClubJoinTeam lawsClubJoinTeam : lawsClubJoinTeamList) {
+ lawsClubJoinTeam.setClubId(lawsClub.getId());
+ }
+ lawsClubJoinTeamService.saveBatch(lawsClubJoinTeamList);
+ }
+ if (!CollectionUtils.isEmpty(lawsClubPayments)) {
+ for (LawsClubPayment lawsClubPayment : lawsClubPayments) {
+ lawsClubPayment.setClubId(lawsClub.getId());
+ }
+ lawsClubPaymentService.saveBatch(lawsClubPayments);
+ }
+ if (!CollectionUtils.isEmpty(lawsClubMeetings)) {
+ for (LawsClubMeeting lawsClubMeeting : lawsClubMeetings) {
+ lawsClubMeeting.setClubId(lawsClub.getId());
+ lawsClubMeetingService.saveBatch(lawsClubMeetings);
+ // 会议成员
+ List meetingMemberList = lawsClubMeeting.getMeetingMemberList();
+ if (!CollectionUtils.isEmpty(meetingMemberList)) {
+ for (LawsClubMeetingMember lawsClubMeetingMember : meetingMemberList) {
+ lawsClubMeetingMember.setMeetingId(lawsClubMeeting.getId());
+ }
+ lawsClubMeetingMemberService.saveBatch(meetingMemberList);
+ }
+ }
+ }
+ if (!CollectionUtils.isEmpty(lawsClubResearchInformations)) {
+ for (LawsClubResearchInformation lawsClubResearchInformation : lawsClubResearchInformations) {
+ lawsClubResearchInformation.setClubId(lawsClub.getId());
+ }
+ lawsClubResearchInformationService.saveBatch(lawsClubResearchInformations);
+ }
+ if (!CollectionUtils.isEmpty(lawsClubWorkingGroupFiles)) {
+ for (LawsClubWorkingGroupFile lawsClubWorkingGroupFile : lawsClubWorkingGroupFiles) {
+ lawsClubWorkingGroupFile.setClubId(lawsClub.getId());
+ }
+ lawsClubWorkingGroupFileService.saveBatch(lawsClubWorkingGroupFiles);
+ }
+ }
+
+ private void clearAssociationTable(String clubId) {
+ // 入团信息表
+ LambdaQueryWrapper teamWrapper = new LambdaQueryWrapper<>();
+ teamWrapper.eq(LawsClubJoinTeam::getClubId, clubId);
+ lawsClubJoinTeamService.remove(teamWrapper);
+ // 支付信息表
+ LambdaQueryWrapper paymentWrapper = new LambdaQueryWrapper<>();
+ paymentWrapper.eq(LawsClubPayment::getClubId, clubId);
+ lawsClubPaymentService.remove(paymentWrapper);
+ // 参会信息表
+ LambdaQueryWrapper meetingWrapper = new LambdaQueryWrapper<>();
+ meetingWrapper.eq(LawsClubMeeting::getClubId, clubId);
+ List list = lawsClubMeetingService.list(meetingWrapper);
+ lawsClubMeetingService.remove(meetingWrapper);
+ List ids = list.stream().map(LawsClubMeeting::getId).collect(Collectors.toList());
+ // 参会人员信息
+ if (!CollectionUtils.isEmpty(ids)) {
+ LambdaQueryWrapper meetingMemberWrapper = new LambdaQueryWrapper<>();
+ meetingMemberWrapper.in(LawsClubMeetingMember::getMeetingId, ids);
+ lawsClubMeetingMemberService.remove(meetingMemberWrapper);
+ }
+ // 工作组资料表
+ LambdaQueryWrapper fileWrapper = new LambdaQueryWrapper<>();
+ fileWrapper.eq(LawsClubWorkingGroupFile::getClubId, clubId);
+ lawsClubWorkingGroupFileService.remove(fileWrapper);
+ // 征集调研信息表
+ LambdaQueryWrapper reSearchWrapper = new LambdaQueryWrapper<>();
+ reSearchWrapper.eq(LawsClubResearchInformation::getClubId, clubId);
+ lawsClubResearchInformationService.remove(reSearchWrapper);
+ }
+
+ @Override
+ public Result> queryOne(String id) {
+ // 先根据id查出社团管理的相关数据
+ LawsClub lawsClub = getById(id);
+ if (StringUtils.isNotBlank(lawsClub.getContactNumber())) {
+ String contactNumber = lawsClub.getContactNumber();
+ String encryptNumber = PasswordUtil.decrypt(contactNumber);
+ lawsClub.setContactNumber(encryptNumber);
+ }
+ if (Objects.isNull(lawsClub)) {
+ throw new JeroBootException(ResultCommon.PARAMETERS_CANNOT_BE_NULL);
+ }
+ String clubId = lawsClub.getId();
+ // 查出几张关联表的数据
+ List joinTeamList = lawsClubJoinTeamService.list(new LambdaQueryWrapper().eq(LawsClubJoinTeam::getClubId, clubId));
+ for (LawsClubJoinTeam lawsClubJoinTeam : joinTeamList) {
+ SysUser user1 = sysUserService.getById(lawsClubJoinTeam.getLeadId());
+ SysUser user2 = sysUserService.getById(lawsClubJoinTeam.getProposerId());
+ SysDepart depart = sysDepartService.getById(lawsClubJoinTeam.getDepartId());
+ lawsClubJoinTeam.setLeadIdText(user1!= null ? user1.getRealname() : null);
+ lawsClubJoinTeam.setDepartText(depart!= null ? depart.getDepartName() : null);
+ lawsClubJoinTeam.setProposerText(user2 != null ? user2.getRealname() : null);
+ }
+ List paymentList = lawsClubPaymentService.list(new LambdaQueryWrapper().eq(LawsClubPayment::getClubId, clubId));
+ List meetingList = lawsClubMeetingService.list(new LambdaQueryWrapper().eq(LawsClubMeeting::getClubId, clubId));
+ for (LawsClubMeeting lawsClubMeeting : meetingList) {
+ List memberList = lawsClubMeetingMemberService.list(new LambdaQueryWrapper().eq(LawsClubMeetingMember::getMeetingId, lawsClubMeeting.getId()));
+ lawsClubMeeting.setMeetingMemberList(memberList);
+ }
+ List workingGroupFileList = lawsClubWorkingGroupFileService.list(new LambdaQueryWrapper().eq(LawsClubWorkingGroupFile::getClubId, clubId));
+ List researchInformationList = lawsClubResearchInformationService.list(new LambdaQueryWrapper().eq(LawsClubResearchInformation::getClubId, clubId));
+ lawsClub.setLawsClubJoinTeamList(joinTeamList);
+ lawsClub.setLawsClubPayments(paymentList);
+ lawsClub.setLawsClubMeetings(meetingList);
+ lawsClub.setLawsClubWorkingGroupFiles(workingGroupFileList);
+ lawsClub.setLawsClubResearchInformations(researchInformationList);
+ return Result.OK(lawsClub);
+ }
+
+ @Override
+ public Result> delete(String id) {
+ if(StringUtils.isBlank(id)){
+ return Result.error(ResultCommon.PLEASE_SELECT_DATA);
+ }
+ List list = list(new LambdaQueryWrapper().eq(LawsClub::getParentId, id));
+ if (!CollectionUtils.isEmpty(list)) {
+ return Result.error(ResultCommon.NODE_EXIST_SUBSETS);
+ }
+ removeById(id);
+ clearAssociationTable(id);
+ return Result.OK(ResultCommon.OK);
+ }
+
+ @Override
+ public ModelAndView exportAll(LawsClub lawsClub, HttpServletRequest request) {
+ // Step.1 组装查询条件
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsClub, request.getParameterMap());
+ //Step.2 AutoPoi 导出Excel
+ ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+ String selections = request.getParameter("selections");
+ if(!oConvertUtils.isEmpty(selections)){
+ queryWrapper.in("id", Arrays.asList(selections.split(",")));
+ }
+ List excelList = list(queryWrapper);
+ for (LawsClub club : excelList) {
+ // 如果是根节点那么上级节点为空
+ if ("Part".equals(club.getParentId())) {
+ club.setParentId("无");
+ }
+ // 解密联系方式
+ if (StringUtils.isNotBlank(club.getContactNumber())) {
+ String contactNumber = club.getContactNumber();
+ String encryptNumber = PasswordUtil.decrypt(contactNumber);
+ club.setContactNumber(encryptNumber);
+ }
+ List lawsClubJoinTeams = lawsClubJoinTeamService.list(new LambdaQueryWrapper().eq(LawsClubJoinTeam::getClubId, club.getId()));
+ List lawsClubMeetings = lawsClubMeetingService.list(new LambdaQueryWrapper().eq(LawsClubMeeting::getClubId, club.getId()));
+ List lawsClubResearchInformations = lawsClubResearchInformationService.list(new LambdaQueryWrapper().eq(LawsClubResearchInformation::getClubId, club.getId()));
+ club.setLawsClubMeetings(lawsClubMeetings);
+ club.setLawsClubJoinTeamList(lawsClubJoinTeams);
+ club.setLawsClubResearchInformations(lawsClubResearchInformations);
+ }
+ //导出文件名称
+ mv.addObject(JeroController.FILE_NAME, "社团管理信息");
+ mv.addObject(JeroController.CLASS, LawsClub.class);
+ ExportParams exportParams = new ExportParams("社团管理信息", "导出信息");
+ mv.addObject(JeroController.PARAMS, exportParams);
+ mv.addObject(NormalExcelConstants.DATA_LIST, excelList);
+ return mv;
+ }
+
+ @Override
+ public ModelAndView exportTeamXls(LawsClub lawsClub, HttpServletRequest request) {
+ // Step.1 组装查询条件
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsClub, request.getParameterMap());
+ //Step.2 AutoPoi 导出Excel
+ ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+ String selections = request.getParameter("selections");
+ if(!oConvertUtils.isEmpty(selections)){
+ queryWrapper.in("id", Arrays.asList(selections.split(",")));
+ }
+ List list = list(queryWrapper);
+ List ids = list.stream().map(LawsClub::getId).collect(Collectors.toList());
+ List excelList = new ArrayList<>();
+ if (!CollectionUtils.isEmpty(ids)) {
+ excelList = lawsClubJoinTeamService.list(new LambdaQueryWrapper().in(LawsClubJoinTeam::getClubId, ids));
+ }
+ //导出文件名称
+ mv.addObject(JeroController.FILE_NAME, "入团信息");
+ mv.addObject(JeroController.CLASS, LawsClubJoinTeam.class);
+ ExportParams exportParams = new ExportParams("入团信息", "导出信息");
+ mv.addObject(JeroController.PARAMS, exportParams);
+ mv.addObject(NormalExcelConstants.DATA_LIST, excelList);
+ return mv;
+ }
+
+ @Override
+ public ModelAndView exportMeetingXls(LawsClub lawsClub, HttpServletRequest request) {
+ // Step.1 组装查询条件
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsClub, request.getParameterMap());
+ //Step.2 AutoPoi 导出Excel
+ ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+ String selections = request.getParameter("selections");
+ if(!oConvertUtils.isEmpty(selections)){
+ queryWrapper.in("id", Arrays.asList(selections.split(",")));
+ }
+ List list = list(queryWrapper);
+ List ids = list.stream().map(LawsClub::getId).collect(Collectors.toList());
+ List recordList = new ArrayList<>();
+ List excelList = new ArrayList<>();
+ if (!CollectionUtils.isEmpty(ids)) {
+ recordList = lawsClubMeetingService.list(new LambdaQueryWrapper().in(LawsClubMeeting::getClubId, ids));
+ for (LawsClubMeeting lawsClubMeeting : recordList) {
+ List memberList = lawsClubMeetingMemberService.list(new LambdaQueryWrapper().eq(LawsClubMeetingMember::getMeetingId, lawsClubMeeting.getId()));
+ lawsClubMeeting.setMeetingMemberList(memberList);
+ LawsClubMeetingExcel lawsClubMeetingExcel = new LawsClubMeetingExcel();
+ BeanUtils.copyProperties(lawsClubMeeting, lawsClubMeetingExcel);
+ excelList.add(lawsClubMeetingExcel);
+ }
+ }
+ //导出文件名称
+ mv.addObject(JeroController.FILE_NAME, "参会信息");
+ mv.addObject(JeroController.CLASS, LawsClubMeetingExcel.class);
+ ExportParams exportParams = new ExportParams("参会信息", "导出信息");
+ mv.addObject(JeroController.PARAMS, exportParams);
+ mv.addObject(NormalExcelConstants.DATA_LIST, excelList);
+ return mv;
+ }
+
+ @Override
+ public ModelAndView exportresearchXls(LawsClub lawsClub, HttpServletRequest request) {
+ // Step.1 组装查询条件
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsClub, request.getParameterMap());
+ //Step.2 AutoPoi 导出Excel
+ ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+ String selections = request.getParameter("selections");
+ if(!oConvertUtils.isEmpty(selections)){
+ queryWrapper.in("id", Arrays.asList(selections.split(",")));
+ }
+ List list = list(queryWrapper);
+ List ids = list.stream().map(LawsClub::getId).collect(Collectors.toList());
+ List excelList = new ArrayList<>();
+ if (!CollectionUtils.isEmpty(ids)) {
+ excelList = lawsClubResearchInformationService.list(new LambdaQueryWrapper().in(LawsClubResearchInformation::getClubId, ids));
+ }
+ //导出文件名称
+ mv.addObject(JeroController.FILE_NAME, "征集调研信息");
+ mv.addObject(JeroController.CLASS, LawsClubResearchInformation.class);
+ ExportParams exportParams = new ExportParams("征集调研信息", "征集调研信息");
+ mv.addObject(JeroController.PARAMS, exportParams);
+ mv.addObject(NormalExcelConstants.DATA_LIST, excelList);
+ return mv;
+ }
+
+
+ @Override
+ public ModelAndView exportTemplate(HttpServletRequest request) {
+ List excelList = new ArrayList<>();
+ ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+ mv.addObject(JeroController.FILE_NAME, "社团管理");
+ mv.addObject(JeroController.CLASS, LawsClub.class);
+ ExportParams exportParams = new ExportParams("社团管理", "社团管理");
+ mv.addObject(JeroController.PARAMS, exportParams);
+ mv.addObject(NormalExcelConstants.DATA_LIST, excelList);
+ return mv;
+ }
+
+ @Override
+ public Result> importExcel(HttpServletRequest request) {
+ return null;
+// MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+// List errorMessageList = new ArrayList<>();
+// List listSysDeparts = null;
+// Map fileMap = multipartRequest.getFileMap();
+// for (Map.Entry entity : fileMap.entrySet()) {
+// MultipartFile file = entity.getValue();// 获取上传文件对象
+// ImportParams params = new ImportParams();
+// params.setTitleRows(2);
+// params.setHeadRows(1);
+// params.setNeedSave(true);
+// try {
+//
+// }catch (Exception e) {
+// log.error(e.getMessage(),e);
+// return Result.error("文件导入失败:"+e.getMessage());
+// } finally {
+// try {
+// file.getInputStream().close();
+// } catch (IOException e) {
+// e.printStackTrace();
+// }
+// }
+// }
+ }
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubWorkingGroupFileServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubWorkingGroupFileServiceImpl.java
new file mode 100644
index 00000000..3d0dfd1d
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsClubWorkingGroupFileServiceImpl.java
@@ -0,0 +1,20 @@
+package com.jero.modules.laws.club.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jero.modules.laws.club.entity.LawsClubWorkingGroupFile;
+import com.jero.modules.laws.club.mapper.LawsClubWorkingGroupFileMapper;
+import com.jero.modules.laws.club.service.ILawsClubWorkingGroupFileService;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 社团管理-工作组管理 服务实现类
+ *
+ *
+ * @author sz
+ * @since 2024-08-29
+ */
+@Service
+public class LawsClubWorkingGroupFileServiceImpl extends ServiceImpl implements ILawsClubWorkingGroupFileService {
+
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsCompanyStandardStatisticsServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsCompanyStandardStatisticsServiceImpl.java
new file mode 100644
index 00000000..d5e478ea
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/club/service/impl/LawsCompanyStandardStatisticsServiceImpl.java
@@ -0,0 +1,86 @@
+package com.jero.modules.laws.club.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jero.common.api.vo.Result;
+import com.jero.common.api.vo.ResultCommon;
+import com.jero.common.exception.JeroBootException;
+import com.jero.common.system.base.controller.JeroController;
+import com.jero.common.system.query.QueryGenerator;
+import com.jero.common.util.oConvertUtils;
+import com.jero.modules.laws.club.entity.LawsCompanyStandardStatistics;
+import com.jero.modules.laws.club.mapper.LawsCompanyStandardStatisticsMapper;
+import com.jero.modules.laws.club.service.ILawsCompanyStandardStatisticsService;
+import org.apache.commons.lang3.StringUtils;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.stereotype.Service;
+import org.springframework.web.servlet.ModelAndView;
+import javax.servlet.http.HttpServletRequest;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *
+ * 公司参与标准统计表 服务实现类
+ *
+ *
+ * @author sz
+ * @since 2024-08-28
+ */
+@Service
+public class LawsCompanyStandardStatisticsServiceImpl extends ServiceImpl implements ILawsCompanyStandardStatisticsService {
+
+ @Override
+ public IPage queryPageList(LawsCompanyStandardStatistics lawsCompanyStandardStatistics, Integer pageNo, Integer pageSize, HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsCompanyStandardStatistics, req.getParameterMap());
+ Page page = new Page<>(pageNo, pageSize);
+ Page result = page(page, queryWrapper);
+ return result;
+ }
+
+ @Override
+ public Result> add(LawsCompanyStandardStatistics lawsCompanyStandardStatistics) {
+ if (Objects.isNull(lawsCompanyStandardStatistics)) {
+ throw new JeroBootException(ResultCommon.PARAMETERS_CANNOT_BE_NULL);
+ }
+ if (StringUtils.isBlank(lawsCompanyStandardStatistics.getStandardNumber())) {
+ throw new JeroBootException(ResultCommon.EMPTY_COMMON, "standardNumber");
+ }
+ if (StringUtils.isBlank(lawsCompanyStandardStatistics.getStandardNumber())) {
+ throw new JeroBootException(ResultCommon.EMPTY_COMMON, "standardName");
+ }
+ if (StringUtils.isBlank(lawsCompanyStandardStatistics.getStandardDrafter())) {
+ throw new JeroBootException(ResultCommon.EMPTY_COMMON, "standardDrafter");
+ }
+ if (Objects.isNull(lawsCompanyStandardStatistics.getIsLead())) {
+ throw new JeroBootException(ResultCommon.EMPTY_COMMON, "isLead");
+ }
+ save(lawsCompanyStandardStatistics);
+ return Result.OK(ResultCommon.OK);
+ }
+
+ @Override
+ public ModelAndView export(LawsCompanyStandardStatistics lawsCompanyStandardStatistics, HttpServletRequest request) {
+ // Step.1 组装查询条件
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsCompanyStandardStatistics, request.getParameterMap());
+ //Step.2 AutoPoi 导出Excel
+ ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+ String selections = request.getParameter("selections");
+ if(!oConvertUtils.isEmpty(selections)){
+ queryWrapper.in("id", Arrays.asList(selections.split(",")));
+ }
+ List excelList = list(queryWrapper);
+ //导出文件名称
+ mv.addObject(JeroController.FILE_NAME, "公司参与标准统计");
+ mv.addObject(JeroController.CLASS, LawsCompanyStandardStatistics.class);
+ ExportParams exportParams = new ExportParams("公司参与标准统计", "导出信息");
+ mv.addObject(JeroController.PARAMS, exportParams);
+ mv.addObject(NormalExcelConstants.DATA_LIST, excelList);
+ return mv;
+ }
+}
diff --git a/laws-modules/src/main/java/com/jero/modules/laws/vo/LawsClubMeetingExcel.java b/laws-modules/src/main/java/com/jero/modules/laws/vo/LawsClubMeetingExcel.java
new file mode 100644
index 00000000..b6a91393
--- /dev/null
+++ b/laws-modules/src/main/java/com/jero/modules/laws/vo/LawsClubMeetingExcel.java
@@ -0,0 +1,67 @@
+package com.jero.modules.laws.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jero.modules.laws.club.entity.LawsClubMeetingMember;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecgframework.poi.excel.annotation.ExcelCollection;
+import org.springframework.format.annotation.DateTimeFormat;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class LawsClubMeetingExcel {
+
+ @ApiModelProperty(value = "会议名称")
+ @Excel(name = "会议名称", width = 20)
+ private String meetingName;
+
+ @ApiModelProperty(value = "会议日期")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
+ @Excel(name = "会议日期", width = 20, format = "yyyy-MM-dd")
+ private Date meetingDate;
+
+ @ApiModelProperty(value = "会议费用")
+ @Excel(name = "会议费用", width = 20)
+ private String meetingCost;
+
+ @ApiModelProperty(value = "线下/线上地点")
+ @Excel(name = "线下/线上地点", width = 20)
+ private String meetingPlace;
+
+ @ApiModelProperty(value = "计划完成日期")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
+// @Excel(name = "计划完成日期", width = 20, format = "yyyy-MM-dd")
+ private Date planCompletionDate;
+
+ @ApiModelProperty(value = "通知人id")
+// @Excel(name = "通知人", width = 20, dicText = "realname", dicCode = "id", dictTable = "sys_user")
+ private String notifierId;
+
+ @ApiModelProperty(value = "通知部门id")
+// @Excel(name = "部门名称", width = 20, dicText = "depart_name", dicCode = "id", dictTable = "sys_depart")
+ private String notifyDepartId;
+
+ @ApiModelProperty(value = "通知部门专业模块")
+// @Excel(name = "参会部门专业模块", width = 20, dicCode = "professional_module")
+ private String informSpecializedModule;
+
+ @ApiModelProperty(value = "是否宣贯 0-否 1-是")
+// @Excel(name = "参会部门专业模块", width = 20, dicCode = "yn")
+ private String isPublicize;
+
+ @ApiModelProperty(value = "会议组织人")
+// @Excel(name = "会议组织人", width = 20)
+ private String meetingOrganizer;
+
+ @ApiModelProperty(value = "会议内容")
+// @Excel(name = "会议内容", width = 20)
+ private String meetingContent;
+
+ @ApiModelProperty(value = "会议成员列表")
+ @ExcelCollection(name = "会议成员列表")
+ private List meetingMemberList;
+}
diff --git a/laws-single-startup/src/main/resources/i18n/messages.properties b/laws-single-startup/src/main/resources/i18n/messages.properties
index 95f0b7e5..46ee1ad6 100644
--- a/laws-single-startup/src/main/resources/i18n/messages.properties
+++ b/laws-single-startup/src/main/resources/i18n/messages.properties
@@ -88,4 +88,5 @@ split.import.data.error=\u5206\u89E3\u5355\u6587\u4EF6\u4E0A\u4F20\u6570\u636E\u
file.empty.import.error=\u6587\u4EF6\u4E3A\u7A7A\uFF0C\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5
can_not_find_template_file=\u627E\u4E0D\u5230\u540D\u4E3A{0}\u7684\u6A21\u677F\u6587\u4EF6
can_not_find_field=\u627E\u4E0D\u5230\u540D\u4E3A{0}\u7684\u5B57\u6BB5
-tree.node.exists=\u5DF2\u5B58\u5728\u540D\u4E3A"{0}"\u7684\u8282\u70B9"
\ No newline at end of file
+tree.node.exists=\u5DF2\u5B58\u5728\u540D\u4E3A"{0}"\u7684\u8282\u70B9"
+node.exist.subsets=\u5f53\u524d\u8282\u70b9\u4e0b\u5b58\u5728\u5b50\u96c6
\ No newline at end of file
diff --git a/laws-single-startup/src/main/resources/i18n/messages_en.properties b/laws-single-startup/src/main/resources/i18n/messages_en.properties
index be794411..f5910915 100644
--- a/laws-single-startup/src/main/resources/i18n/messages_en.properties
+++ b/laws-single-startup/src/main/resources/i18n/messages_en.properties
@@ -108,3 +108,4 @@ can_not_find_field=Can not find field {0}
tag.add.error.1=The attribute name is too long
tree.node.exists=Name {0} tree node exists
data.mismatch={0} Data mismatch
+node.exist.subsets=Node exist subsets
diff --git a/laws-single-startup/src/main/resources/i18n/messages_zh.properties b/laws-single-startup/src/main/resources/i18n/messages_zh.properties
index e55cb37a..53229af9 100644
--- a/laws-single-startup/src/main/resources/i18n/messages_zh.properties
+++ b/laws-single-startup/src/main/resources/i18n/messages_zh.properties
@@ -107,3 +107,4 @@ can_not_find_field=\u627E\u4E0D\u5230\u540D\u4E3A{0}\u7684\u5B57\u6BB5
tag.add.error.1=\u5C5E\u6027\u540D\u79F0\u592A\u957F
tree.node.exists=\u5DF2\u5B58\u5728\u540D\u4E3A"{0}"\u7684\u8282\u70B9"
data.mismatch={0}\u6570\u636E\u4E0D\u5339\u914D
+node.exist.subsets=\u5f53\u524d\u8282\u70b9\u4e0b\u5b58\u5728\u5b50\u96c6