diff --git a/microservices-modules/microservices-modules-dms/pom.xml b/microservices-modules/microservices-modules-dms/pom.xml
new file mode 100644
index 000000000..39fb37088
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/pom.xml
@@ -0,0 +1,159 @@
+
+
+
+ com.microservices
+ microservices-modules
+ 3.6.2
+
+ 4.0.0
+
+ microservices-modules-dms
+
+
+ microservices-modules-dms数据管理体系模块
+
+
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ io.springfox
+ springfox-swagger-ui
+ ${swagger.fox.version}
+
+
+
+
+ mysql
+ mysql-connector-java
+
+
+
+
+ com.microservices
+ microservices-common-async
+
+
+
+
+ com.microservices
+ microservices-common-datasource
+
+
+
+
+ com.microservices
+ microservices-common-datascope
+
+
+
+
+ com.microservices
+ microservices-common-log
+
+
+
+
+ com.microservices
+ microservices-common-swagger
+
+
+ com.microservices
+ microservices-common-security
+
+
+ com.microservices
+ microservices-common-swagger
+
+
+ org.springframework.security
+ spring-security-core
+
+
+ com.microservices
+ microservices-common-log
+
+
+ com.microservices
+ microservices-common-core
+
+
+ org.projectlombok
+ lombok
+
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.14
+
+
+ com.microservices
+ microservices-common-httpClient
+ 3.6.2
+ compile
+
+
+ net.coobird
+ thumbnailator
+ 0.4.8
+ compile
+
+
+ com.github.shibing624
+ similarity
+ 1.1.6
+
+
+
+
+
+ jitpack.io
+ https://jitpack.io
+
+
+
+
+ ${project.artifactId}
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/MicroservicesDmsApplication.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/MicroservicesDmsApplication.java
new file mode 100644
index 000000000..c89588cec
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/MicroservicesDmsApplication.java
@@ -0,0 +1,25 @@
+package com.microservices.dms;
+
+import com.microservices.common.security.annotation.EnableCustomConfig;
+import com.microservices.common.security.annotation.EnableRyFeignClients;
+import com.microservices.common.swagger.annotation.EnableCustomSwagger2;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+/**
+ * 项目管理模块
+ *
+ * @author otto
+ */
+@EnableCustomConfig
+@EnableCustomSwagger2
+@EnableRyFeignClients
+@SpringBootApplication
+@EnableScheduling
+public class MicroservicesDmsApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(MicroservicesDmsApplication.class, args);
+ System.out.println("(♥◠‿◠)ノ゙ 数据管理体系模块启动成功 ლ(´ڡ`ლ)゙ \n");
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementTeamController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementTeamController.java
new file mode 100644
index 000000000..5089cfe66
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementTeamController.java
@@ -0,0 +1,102 @@
+package com.microservices.dms.achievementLibrary.controller;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.microservices.common.log.annotation.Log;
+import com.microservices.common.log.enums.BusinessType;
+import com.microservices.common.security.annotation.RequiresPermissions;
+import com.microservices.dms.achievementLibrary.domain.AchievementTeam;
+import com.microservices.dms.achievementLibrary.service.IAchievementTeamService;
+import com.microservices.common.core.web.controller.BaseController;
+import com.microservices.common.core.web.domain.AjaxResult;
+import com.microservices.common.core.utils.poi.ExcelUtil;
+import com.microservices.common.core.web.page.TableDataInfo;
+
+/**
+ * 成果团队Controller
+ *
+ * @author microservices
+ * @date 2025-04-23
+ */
+@RestController
+@Api(tags = "数据管理体系-成果团队接口")
+@RequestMapping("/achievementsTeam")
+public class AchievementTeamController extends BaseController
+{
+ @Autowired
+ private IAchievementTeamService achievementTeamService;
+
+ /**
+ * 查询成果团队列表
+ */
+ @GetMapping("/list")
+ public TableDataInfo list(AchievementTeam achievementTeam)
+ {
+ startPage();
+ List list = achievementTeamService.selectAchievementTeamList(achievementTeam);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出成果团队列表
+ */
+ @Log(title = "成果团队", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, AchievementTeam achievementTeam)
+ {
+ List list = achievementTeamService.selectAchievementTeamList(achievementTeam);
+ ExcelUtil util = new ExcelUtil(AchievementTeam.class);
+ util.exportExcel(response, list, "成果团队数据");
+ }
+
+ /**
+ * 获取成果团队详细信息
+ */
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(achievementTeamService.selectAchievementTeamById(id));
+ }
+
+ /**
+ * 新增成果团队
+ */
+ @Log(title = "成果团队", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody AchievementTeam achievementTeam)
+ {
+ return toAjax(achievementTeamService.insertAchievementTeam(achievementTeam));
+ }
+
+ /**
+ * 修改成果团队
+ */
+ @Log(title = "成果团队", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody AchievementTeam achievementTeam)
+ {
+ return toAjax(achievementTeamService.updateAchievementTeam(achievementTeam));
+ }
+
+ /**
+ * 删除成果团队
+ */
+ @Log(title = "成果团队", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(achievementTeamService.deleteAchievementTeamByIds(ids));
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementsController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementsController.java
new file mode 100644
index 000000000..c5d984249
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementsController.java
@@ -0,0 +1,234 @@
+package com.microservices.dms.achievementLibrary.controller;
+
+import com.microservices.common.core.utils.poi.ExcelUtil;
+import com.microservices.common.core.web.controller.BaseController;
+import com.microservices.common.core.web.domain.AjaxResult;
+import com.microservices.common.core.web.page.TableDataInfo;
+import com.microservices.common.log.annotation.Log;
+import com.microservices.common.log.enums.BusinessType;
+import com.microservices.dms.achievementLibrary.domain.AchQueryVo;
+import com.microservices.dms.achievementLibrary.domain.Achievements;
+import com.microservices.dms.achievementLibrary.service.IAchievementsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 成果Controller
+ *
+ * @author microservices
+ * @date 2025-04-02
+ */
+@RestController
+@RequestMapping("/achievements")
+@Api(tags = "数据管理体系-成果库接口")
+public class AchievementsController extends BaseController {
+ @Autowired
+ private IAchievementsService achievementsService;
+
+ /**
+ * 查询成果列表
+ */
+ @GetMapping("/list")
+ public TableDataInfo list(Achievements achievements) {
+ startPage();
+ List list = achievementsService.selectAchievementsList(achievements);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出成果列表
+ */
+ @Log(title = "成果", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, Achievements achievements) {
+ List list = achievementsService.selectAchievementsList(achievements);
+ ExcelUtil util = new ExcelUtil(Achievements.class);
+ util.exportExcel(response, list, "成果数据");
+ }
+
+ /**
+ * 获取成果详细信息
+ */
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id) {
+ return success(achievementsService.selectAchievementsById(id));
+ }
+
+ /**
+ * 新增成果
+ */
+ @Log(title = "成果", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody Achievements achievements) {
+ return toAjax(achievementsService.insertAchievements(achievements));
+ }
+
+ /**
+ * 修改成果
+ */
+ @Log(title = "成果", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody Achievements achievements) {
+ return toAjax(achievementsService.updateAchievements(achievements));
+ }
+
+ /**
+ * 删除成果
+ */
+ @Log(title = "成果", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids) {
+ return toAjax(achievementsService.deleteAchievementsByIds(ids));
+ }
+
+ /**
+ * 获取精选成果
+ *
+ * @return
+ */
+ @ApiOperation("获取精选成果")
+ @GetMapping("/getChoiceImport")
+ public AjaxResult getChoiceImport() {
+ return success(achievementsService.getChoiceImport());
+ }
+
+ /**
+ * 根据成果来源对成果数据进行分类统计
+ *
+ * @return
+ */
+ @ApiOperation("根据成果来源对成果数据进行分类统计")
+ @GetMapping("/getTjBySources")
+ public AjaxResult getTjBySources() {
+ return success(achievementsService.getTjBySources());
+ }
+
+ /**
+ * 根据成果领域对成功数据进行汇总
+ *
+ * @return
+ */
+ @ApiOperation("根据成果领域对成果数据进行汇总")
+ @GetMapping("/getTjByAreas")
+ public AjaxResult getTjByAreas() {
+ return success(achievementsService.getTjByAreas());
+ }
+
+ /**
+ * 根据领域分类名称,获取领域相关数据
+ */
+ @ApiOperation("根据领域分类名称,获取领域相关数据")
+ @GetMapping("/getAreasByName")
+ public AjaxResult getAreasByName(String areaName) {
+ return success(achievementsService.getAreasByName(areaName));
+ }
+
+ /* 获取全部成果,根据成果名称、成果领域、成果来源进行查询
+ * @return
+ */
+ @ApiOperation("获取全部成果,根据成果名称、成果领域、成果来源进行查询")
+ @GetMapping("/getAllResult")
+ public TableDataInfo getAllResult(AchQueryVo achQueryVo) {
+ startPage();
+ return getDataTable(achievementsService.getAllResult(achQueryVo));
+ }
+
+ @ApiOperation("近七日用户行为数据")
+ @GetMapping("/getUerActionData")
+ public AjaxResult getUerActionData() {
+ return success(achievementsService.getUerActionData());
+ }
+
+ @ApiOperation("热门成果")
+ @GetMapping("/getHotAchievement")
+ public AjaxResult getHotAchievement() {
+ return success(achievementsService.getHotAchievement());
+ }
+
+ @ApiOperation("七日新增")
+ @GetMapping("/get7DayAdd")
+ public AjaxResult get7DayAdd(AchQueryVo achQueryVo) {
+ return success(achievementsService.get7DayAdd(achQueryVo));
+ }
+
+
+ @ApiOperation("首页项目统计")
+ @GetMapping("/indexProjectStatistic")
+ public AjaxResult indexProjectStatistic() {
+ return success(achievementsService.indexProjectStatistic());
+ }
+
+ @ApiOperation("首页task统计")
+ @GetMapping("/indexTaskStatistic")
+ public AjaxResult indexTaskStatistic() {
+ return success(achievementsService.indexTaskStatistic());
+ }
+
+ @ApiOperation("首页Competition统计")
+ @GetMapping("/indexCompetitionStatistic")
+ public AjaxResult indexCompetitionStatistic() {
+ return success(achievementsService.indexCompetitionStatistic());
+ }
+
+ @ApiOperation("首页SchoolEnterprise统计")
+ @GetMapping("/indexSchoolEnterpriseStatistic")
+ public AjaxResult indexSchoolEnterpriseStatistic() {
+ return success(achievementsService.indexSchoolEnterpriseStatistic());
+ }
+
+
+ @ApiOperation("首页专家统计")
+ @GetMapping("/indexExpertStatistic")
+ public AjaxResult indexExpertStatistic() {
+ return success(achievementsService.indexExpertStatistic());
+ }
+
+
+ @ApiOperation("根据当前用户以及成果ID,获取当前成果的 是否收藏与关注状态")
+ @GetMapping("/getWatchFavoriteStatusById")
+ public AjaxResult getWatchFavoriteStatusById(Long id, Long userId) {
+ return success(achievementsService.getWatchFavoriteStatusById(id, userId));
+ }
+ @ApiOperation("根据成果ID,获取近7日成果点击数量(折线图)")
+ @GetMapping("/get7AddClickById")
+ public AjaxResult get7AddClickById(String id) {
+ return success(achievementsService.get7AddClickById(id));
+ }
+
+ @ApiOperation("根据成果ID,获取成果的相关行为数据统计(点击量、搜索量、附件下载量、收藏、关注)")
+ @GetMapping("/getActDataStatisticById")
+ public AjaxResult getActDataStatisticById(Long id) {
+ return success(achievementsService.getActDataStatisticById(id));
+ }
+ /**
+ * 根据领域,将成果数据进行分类
+ *
+ */
+ @GetMapping("/getAreaStatistic")
+ public AjaxResult getAreaStatistic(String areaKey)
+ {
+ return success(achievementsService.getAreaStatistic(areaKey));
+ }
+
+ /**
+ * 获取开源项目的相关成果
+ */
+ @ApiOperation(value = "获取开源项目的相关成果")
+ @GetMapping("/getRelatedAch")
+ public AjaxResult getRelatedAch(Long id,Long sourceId)
+ {
+ return success(achievementsService.getRelatedAch(id,sourceId));
+ }
+
+ @ApiOperation(value = "搜索行为数据记录")
+ @GetMapping("/getSearchResult")
+ public AjaxResult getSearchResult(String achName,Long userId)
+ {
+ return success(achievementsService.getSearchResult(achName,userId));
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/BigScreenStatisticController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/BigScreenStatisticController.java
new file mode 100644
index 000000000..f45d21612
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/BigScreenStatisticController.java
@@ -0,0 +1,99 @@
+package com.microservices.dms.achievementLibrary.controller;
+
+import com.microservices.common.core.web.domain.AjaxResult;
+import com.microservices.dms.achievementLibrary.service.BigScreenStatisticService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "数据管理体系-大屏统计接口")
+@RequestMapping("/bigScreenStatistic")
+public class BigScreenStatisticController {
+
+ private final BigScreenStatisticService bigScreenStatisticService;
+
+
+ @GetMapping(value = "/achievement/getAchievementTopStatistic")
+ @ApiOperation(value = "成果任务统计顶部折线图")
+ public AjaxResult getAchievementTopStatistic(String source) {
+ return AjaxResult.success(bigScreenStatisticService.getAchievementTopStatistic(source));
+ }
+
+ @GetMapping(value = "/achievement/getAchievementDataYearly")
+ @ApiOperation(value = "年度成果数据")
+ public AjaxResult getAchievementDataYearly() {
+ return AjaxResult.success(bigScreenStatisticService.getAchievementDataYearly());
+ }
+
+
+ @GetMapping(value = "/achievement/getAchievementType")
+ @ApiOperation(value = "成果类型")
+ public AjaxResult getAchievementType() {
+ return AjaxResult.success(bigScreenStatisticService.getAchievementType());
+ }
+
+
+ @GetMapping(value = "/achievement/getAchievementDomain")
+ @ApiOperation(value = "成果领域分布")
+ public AjaxResult getAchievementDomain() {
+ return AjaxResult.success(bigScreenStatisticService.getAchievementDomain());
+ }
+
+
+ @GetMapping(value = "/achievement/getAchievementAddYearly")
+ @ApiOperation(value = "近1年新增成果数")
+ public AjaxResult getAchievementAddYearly() {
+ return AjaxResult.success(bigScreenStatisticService.getAchievementAddYearly());
+ }
+
+ @GetMapping(value = "/achievement/getAchievementActData")
+ @ApiOperation(value = "成果行为数据展示")
+ public AjaxResult getAchievementActData() {
+ return AjaxResult.success(bigScreenStatisticService.getAchievementActData());
+ }
+
+ @GetMapping(value = "/achievement/getAchievementHotRank")
+ @ApiOperation(value = "成果热度排行")
+ public AjaxResult getAchievementHotRank() {
+ return AjaxResult.success(bigScreenStatisticService.getAchievementHotRank());
+ }
+
+
+ @GetMapping(value = "/competition/getCompetitionTopStatistic")
+ @ApiOperation(value = "competition统计顶部")
+ public AjaxResult getAchievementTopStatistic() {
+ return AjaxResult.success(bigScreenStatisticService.getCompetitionTopStatistic());
+ }
+
+ @GetMapping(value = "/competition/getCompetitionStatisticYearly")
+ @ApiOperation(value = "竞赛数据统计")
+ public AjaxResult getCompetitionStatisticYearly() {
+ return AjaxResult.success(bigScreenStatisticService.getCompetitionStatisticYearly());
+ }
+
+ @GetMapping(value = "/competition/getCompetitionHot")
+ @ApiOperation(value = "热门竞赛统计")
+ public AjaxResult getCompetitionHot() {
+ return AjaxResult.success(bigScreenStatisticService.getCompetitionHot());
+ }
+
+ @GetMapping(value = "/competition/getCompetitionYearlyPaperAdd")
+ @ApiOperation(value = "年度竞赛作品新增数")
+ public AjaxResult getCompetitionYearlyPaperAdd() {
+ return AjaxResult.success(bigScreenStatisticService.getCompetitionYearlyPaperAdd());
+ }
+
+ @GetMapping(value = "/competition/getCompetitionYearlyFinish")
+ @ApiOperation(value = "近1年竞赛完成情况")
+ public AjaxResult getCompetitionYearlyFinish() {
+ return AjaxResult.success(bigScreenStatisticService.getCompetitionYearlyFinish());
+ }
+
+
+
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/ExpertDashboardController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/ExpertDashboardController.java
new file mode 100644
index 000000000..3679191d2
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/ExpertDashboardController.java
@@ -0,0 +1,76 @@
+package com.microservices.dms.achievementLibrary.controller;
+
+import com.microservices.common.core.web.domain.AjaxResult;
+import com.microservices.dms.achievementLibrary.service.ExpertDashboardService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "数据管理体系-专家可视化接口")
+@RequestMapping("/expertDashboard")
+public class ExpertDashboardController {
+ @Autowired
+ private ExpertDashboardService expertDashboardService;
+
+ @GetMapping(value = "getExpertTotal")
+ @ApiOperation(value = "获取专家总数")
+ public AjaxResult getExpertTotal() {
+ return AjaxResult.success(expertDashboardService.getExpertTotal());
+ }
+
+ @GetMapping(value = "getAuthenticationStatistic")
+ @ApiOperation(value = "专家实名完成度")
+ public AjaxResult getAuthenticationStatistic() {
+ return AjaxResult.success(expertDashboardService.getAuthenticationStatistic());
+ }
+
+ @GetMapping(value = "getTitleRankStatistic")
+ @ApiOperation(value = "专家职称级分布")
+ public AjaxResult getTitleRankStatistic() {
+ return AjaxResult.success(expertDashboardService.getTitleRankStatistic());
+ }
+
+ @GetMapping(value = "getExpertAduit")
+ @ApiOperation(value = "近一年专家评审作品数")
+ public AjaxResult getExpertAduit() {
+ return AjaxResult.success(expertDashboardService.getExpertAduit());
+ }
+
+ @GetMapping(value = "getExpertTypeStatistic")
+ @ApiOperation(value = "专家专业类别")
+ public AjaxResult getExpertTypeStatistic() {
+ return AjaxResult.success(expertDashboardService.getExpertTypeStatistic());
+ }
+
+ @GetMapping(value = "getWorkplaceTypeStatistic")
+ @ApiOperation(value = "专家单位类别分布")
+ public AjaxResult getWorkplaceTypeStatistic() {
+ return AjaxResult.success(expertDashboardService.getWorkplaceTypeStatistic());
+ }
+
+ @GetMapping(value = "getHighestDegreeStatistic")
+ @ApiOperation(value = "专家学历分布")
+ public AjaxResult getHighestDegreeStatistic() {
+ return AjaxResult.success(expertDashboardService.getHighestDegreeStatistic());
+ }
+
+ //7、年度专家数据统计 cretate_on
+ @GetMapping(value = "getExpertTotalByYear")
+ @ApiOperation(value = "年度专家数据统计")
+ public AjaxResult getExpertTotalByYear() {
+ return AjaxResult.success(expertDashboardService.getExpertTotalByYear());
+ }
+
+ @GetMapping(value = "getReviewAreasStatistic")
+ @ApiOperation(value = "热门专家领域")
+ public AjaxResult getReviewAreasStatistic() {
+ return AjaxResult.success(expertDashboardService.getReviewAreasStatistic());
+ }
+
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/MemoDashboardController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/MemoDashboardController.java
new file mode 100644
index 000000000..fc4f7db10
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/MemoDashboardController.java
@@ -0,0 +1,62 @@
+package com.microservices.dms.achievementLibrary.controller;
+
+import com.microservices.common.core.web.domain.AjaxResult;
+import com.microservices.dms.achievementLibrary.service.MemoDashboardService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "数据管理体系-社区动态可视化接口")
+@RequestMapping("/memoDashboard")
+public class MemoDashboardController {
+ @Autowired
+ private MemoDashboardService memoDashboardService;
+
+ @GetMapping(value = "getMemoAduit")
+ @ApiOperation(value = "帖子审核通过率、帖子总数")
+ public AjaxResult getMemoAduit() {
+ return AjaxResult.success(memoDashboardService.getMemoAduit());
+ }
+
+ @GetMapping(value = "getIsOriginalStatistic")
+ @ApiOperation(value = "帖子原创、非原创")
+ public AjaxResult getIsOriginalStatistic() {
+ return AjaxResult.success(memoDashboardService.getIsOriginalStatistic());
+ }
+
+ @GetMapping(value = "getMemoTotalByYear")
+ @ApiOperation(value = "年度论坛帖子总数")
+ public AjaxResult getMemoTotalByYear() {
+ return AjaxResult.success(memoDashboardService.getMemoTotalByYear());
+ }
+
+ @GetMapping(value = "getForumSectionStatistic(")
+ @ApiOperation(value = "帖子分类")
+ public AjaxResult getForumSectionStatistic() {
+ return AjaxResult.success(memoDashboardService.getForumSectionStatistic());
+ }
+
+ @GetMapping(value = "getAddMemoStatistic(")
+ @ApiOperation(value = "近一年新增帖子数")
+ public AjaxResult getAddMemoStatistic() {
+ return AjaxResult.success(memoDashboardService.getAddMemoStatistic());
+ }
+
+ @GetMapping(value = "getTop5Memos(")
+ @ApiOperation(value = "年度帖子热度top5")
+ public AjaxResult getTop5Memos() {
+ return AjaxResult.success(memoDashboardService.getTop5Memos());
+ }
+
+ @GetMapping(value = "get7DayPaise(")
+ @ApiOperation(value = "近7日帖子点赞数")
+ public AjaxResult get7DayPaise() {
+ return AjaxResult.success(memoDashboardService.get7DayPaise());
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/SchoolEnterpriseAchievementsController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/SchoolEnterpriseAchievementsController.java
new file mode 100644
index 000000000..f2e0049b5
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/SchoolEnterpriseAchievementsController.java
@@ -0,0 +1,112 @@
+package com.microservices.dms.achievementLibrary.controller;
+
+import com.microservices.common.core.utils.poi.ExcelUtil;
+import com.microservices.common.core.web.controller.BaseController;
+import com.microservices.common.core.web.domain.AjaxResult;
+import com.microservices.common.core.web.page.TableDataInfo;
+import com.microservices.common.log.annotation.Log;
+import com.microservices.common.log.enums.BusinessType;
+import com.microservices.dms.achievementLibrary.domain.SchoolEnterpriseAchievements;
+import com.microservices.dms.achievementLibrary.service.ISchoolEnterpriseAchievementsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 校企成果Controller
+ *
+ * @author microservices
+ * @date 2025-04-03
+ */
+@Api(tags = "数据管理体系-校企成果接口")
+@RestController
+@RequestMapping("/schoolEnterpriseAchievements")
+public class SchoolEnterpriseAchievementsController extends BaseController
+{
+ @Autowired
+ private ISchoolEnterpriseAchievementsService schoolEnterpriseAchievementsService;
+
+ /**
+ * 查询校企成果列表
+ */
+ @GetMapping("/list")
+ public TableDataInfo list(SchoolEnterpriseAchievements schoolEnterpriseAchievements)
+ {
+ startPage();
+ List list = schoolEnterpriseAchievementsService.selectSchoolEnterpriseAchievementsList(schoolEnterpriseAchievements);
+ return getDataTable(list);
+ }
+
+ /**
+ * 导出校企成果列表
+ */
+ @Log(title = "校企成果", businessType = BusinessType.EXPORT)
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, SchoolEnterpriseAchievements schoolEnterpriseAchievements)
+ {
+ List list = schoolEnterpriseAchievementsService.selectSchoolEnterpriseAchievementsList(schoolEnterpriseAchievements);
+ ExcelUtil util = new ExcelUtil(SchoolEnterpriseAchievements.class);
+ util.exportExcel(response, list, "校企成果数据");
+ }
+
+ /**
+ * 获取校企成果详细信息
+ */
+ @GetMapping(value = "/{id}")
+ public AjaxResult getInfo(@PathVariable("id") Long id)
+ {
+ return success(schoolEnterpriseAchievementsService.selectSchoolEnterpriseAchievementsById(id));
+ }
+
+ /**
+ * 新增校企成果
+ */
+ @Log(title = "校企成果", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody SchoolEnterpriseAchievements schoolEnterpriseAchievements)
+ {
+ return AjaxResult.success(schoolEnterpriseAchievementsService.insertSchoolEnterpriseAchievements(schoolEnterpriseAchievements));
+ }
+
+ /**
+ * 修改校企成果
+ */
+ @Log(title = "校企成果", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody SchoolEnterpriseAchievements schoolEnterpriseAchievements)
+ {
+ return AjaxResult.success(schoolEnterpriseAchievementsService.updateSchoolEnterpriseAchievements(schoolEnterpriseAchievements));
+ }
+
+ /**
+ * 删除校企成果
+ */
+ @Log(title = "校企成果", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return AjaxResult.success(schoolEnterpriseAchievementsService.deleteSchoolEnterpriseAchievementsByIds(ids));
+ }
+
+ /**
+ * 顶部统计
+ */
+ @GetMapping("/topStatistic")
+ @ApiOperation(value = "顶部统计数据")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "tags", value = "成果标签", paramType = "query", dataTypeClass = String.class),
+ @ApiImplicitParam(name = "status", value = "成果状态", paramType = "query", dataTypeClass = Integer.class),
+ })
+ public AjaxResult topStatistic(SchoolEnterpriseAchievements schoolEnterpriseAchievements)
+ {
+
+ Long value = schoolEnterpriseAchievementsService.topStatistic(schoolEnterpriseAchievements);
+ return AjaxResult.success(value);
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchQueryVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchQueryVo.java
new file mode 100644
index 000000000..ec419c8bb
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchQueryVo.java
@@ -0,0 +1,32 @@
+package com.microservices.dms.achievementLibrary.domain;
+
+public class AchQueryVo {
+
+ private String areaQuery;//领域
+ private String source;//来源
+ private String achievementName;//名称
+ private Long userId;
+ public String getAreaQuery() {
+ return areaQuery;
+ }
+
+ public void setAreaQuery(String areaQuery) {
+ this.areaQuery = areaQuery;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public String getAchievementName() {
+ return achievementName;
+ }
+
+ public void setAchievementName(String achievementName) {
+ this.achievementName = achievementName;
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchRelatedVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchRelatedVo.java
new file mode 100644
index 000000000..8495dcbbb
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchRelatedVo.java
@@ -0,0 +1,67 @@
+package com.microservices.dms.achievementLibrary.domain;
+
+public class AchRelatedVo {
+ private Long id;
+ private String attachments;
+ private String summary;
+ private String achievementType;
+ private String achMonthDay;
+ private String source;
+ private Long sourceId;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getAttachments() {
+ return attachments;
+ }
+
+ public void setAttachments(String attachments) {
+ this.attachments = attachments;
+ }
+
+ public String getSummary() {
+ return summary;
+ }
+
+ public void setSummary(String summary) {
+ this.summary = summary;
+ }
+
+ public String getAchievementType() {
+ return achievementType;
+ }
+
+ public void setAchievementType(String achievementType) {
+ this.achievementType = achievementType;
+ }
+
+ public String getAchMonthDay() {
+ return achMonthDay;
+ }
+
+ public void setAchMonthDay(String achMonthDay) {
+ this.achMonthDay = achMonthDay;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public Long getSourceId() {
+ return sourceId;
+ }
+
+ public void setSourceId(Long sourceId) {
+ this.sourceId = sourceId;
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchievementTeam.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchievementTeam.java
new file mode 100644
index 000000000..61dff996c
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchievementTeam.java
@@ -0,0 +1,195 @@
+package com.microservices.dms.achievementLibrary.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.microservices.common.core.annotation.Excel;
+import com.microservices.common.core.web.domain.BaseEntity;
+
+/**
+ * 成果团队对象 achievement_team
+ *
+ * @author microservices
+ * @date 2025-04-23
+ */
+public class AchievementTeam extends BaseEntity
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long id;
+
+ /** 成果ld */
+ @Excel(name = "成果ld")
+ private Long achievementId;
+
+ /** 姓名 */
+ @Excel(name = "姓名")
+ private String username;
+
+ /** 所属单位 */
+ @Excel(name = "所属单位")
+ private String company;
+
+ /** 职称 */
+ @Excel(name = "职称")
+ private String technicalTitle;
+
+ /** 专业 */
+ @Excel(name = "专业")
+ private String professionalTitle;
+
+ /** 研究方向 */
+ @Excel(name = "研究方向")
+ private String researchDirection;
+
+ /** 联系方式 */
+ @Excel(name = "联系方式")
+ private String phone;
+
+ /** 个人简介 */
+ @Excel(name = "个人简介")
+ private String summary;
+
+ /** 本项成果中主要承担工作 */
+ @Excel(name = "本项成果中主要承担工作")
+ private String workContent;
+
+ /** 是否是负责人 */
+ @Excel(name = "是否是负责人")
+ private String isLeader;
+
+ /** $column.columnComment */
+ @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+ private Long status;
+
+ public void setId(Long id)
+ {
+ this.id = id;
+ }
+
+ public Long getId()
+ {
+ return id;
+ }
+ public void setAchievementId(Long achievementId)
+ {
+ this.achievementId = achievementId;
+ }
+
+ public Long getAchievementId()
+ {
+ return achievementId;
+ }
+ public void setUsername(String username)
+ {
+ this.username = username;
+ }
+
+ public String getUsername()
+ {
+ return username;
+ }
+ public void setCompany(String company)
+ {
+ this.company = company;
+ }
+
+ public String getCompany()
+ {
+ return company;
+ }
+ public void setTechnicalTitle(String technicalTitle)
+ {
+ this.technicalTitle = technicalTitle;
+ }
+
+ public String getTechnicalTitle()
+ {
+ return technicalTitle;
+ }
+ public void setProfessionalTitle(String professionalTitle)
+ {
+ this.professionalTitle = professionalTitle;
+ }
+
+ public String getProfessionalTitle()
+ {
+ return professionalTitle;
+ }
+ public void setResearchDirection(String researchDirection)
+ {
+ this.researchDirection = researchDirection;
+ }
+
+ public String getResearchDirection()
+ {
+ return researchDirection;
+ }
+ public void setPhone(String phone)
+ {
+ this.phone = phone;
+ }
+
+ public String getPhone()
+ {
+ return phone;
+ }
+ public void setSummary(String summary)
+ {
+ this.summary = summary;
+ }
+
+ public String getSummary()
+ {
+ return summary;
+ }
+ public void setWorkContent(String workContent)
+ {
+ this.workContent = workContent;
+ }
+
+ public String getWorkContent()
+ {
+ return workContent;
+ }
+ public void setIsLeader(String isLeader)
+ {
+ this.isLeader = isLeader;
+ }
+
+ public String getIsLeader()
+ {
+ return isLeader;
+ }
+ public void setStatus(Long status)
+ {
+ this.status = status;
+ }
+
+ public Long getStatus()
+ {
+ return status;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("achievementId", getAchievementId())
+ .append("username", getUsername())
+ .append("company", getCompany())
+ .append("technicalTitle", getTechnicalTitle())
+ .append("professionalTitle", getProfessionalTitle())
+ .append("researchDirection", getResearchDirection())
+ .append("phone", getPhone())
+ .append("summary", getSummary())
+ .append("workContent", getWorkContent())
+ .append("isLeader", getIsLeader())
+ .append("status", getStatus())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .toString();
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/Achievements.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/Achievements.java
new file mode 100644
index 000000000..50b622a10
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/Achievements.java
@@ -0,0 +1,471 @@
+package com.microservices.dms.achievementLibrary.domain;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.microservices.common.core.annotation.Excel;
+import com.microservices.common.core.web.domain.BaseEntity;
+
+/**
+ * 成果对象 achievementsll
+ *
+ * @author microservices
+ * @date 2025-04-02
+ */
+public class Achievements extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 成果唯一标识
+ */
+ private Long id;
+
+ /**
+ * 成果名称
+ */
+ @Excel(name = "成果名称")
+ private String achievementName;
+
+ /**
+ * 成果领域1
+ */
+ @Excel(name = "成果领域1")
+ private String field1;
+
+ /**
+ * 成果领域2
+ */
+ @Excel(name = "成果领域2")
+ private String field2;
+
+ /**
+ * 成果领域3
+ */
+ @Excel(name = "成果领域3")
+ private String field3;
+
+ /**
+ * 成果类型
+ */
+ @Excel(name = "成果类型")
+ private String achievementType;
+
+ /**
+ * 成果来源
+ */
+ @Excel(name = "成果来源")
+ private String source;
+
+ /**
+ * 成果来源ID
+ */
+ @Excel(name = "成果来源ID")
+ private Long sourceId;
+
+ /**
+ * 成果来源跳转链接
+ */
+ @Excel(name = "成果来源跳转链接")
+ private String sourceLink;
+
+ /**
+ * 成果标签
+ */
+ @Excel(name = "成果标签")
+ private String tags;
+
+ /**
+ * 成果摘要
+ */
+ @Excel(name = "成果摘要")
+ private String summary;
+
+ /**
+ * 发布单位
+ */
+ @Excel(name = "发布单位")
+ private String publishingUnit;
+
+ /**
+ * 成果地址
+ */
+ @Excel(name = "成果地址")
+ private String address;
+
+ /**
+ * 是否精选成果
+ */
+ @Excel(name = "是否精选成果")
+ private Integer isFeatured;
+
+ /**
+ * 联系人
+ */
+ @Excel(name = "联系人")
+ private String contactPerson;
+
+ /**
+ * 联系电话
+ */
+ @Excel(name = "联系电话")
+ private String contactNumber;
+
+ /**
+ * 成果所属人ID
+ */
+ @Excel(name = "成果所属人ID")
+ private String ownerId;
+
+ /**
+ * 成果所属人名称
+ */
+ @Excel(name = "成果所属人名称")
+ private String ownerName;
+
+ /**
+ * 成果状态
+ */
+ @Excel(name = "成果状态")
+ private String status;
+
+ /**
+ * 成果详情
+ */
+ @Excel(name = "成果详情")
+ private String details;
+
+ /**
+ * 成果审核人
+ */
+ @Excel(name = "成果审核人")
+ private String reviewer;
+
+ /**
+ * 成果审核时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "成果审核时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date reviewDate;
+
+ /**
+ * 成果审核意见
+ */
+ @Excel(name = "成果审核意见")
+ private String reviewComments;
+
+ /**
+ * 成果图片
+ */
+ @Excel(name = "成果图片")
+ private String images;
+
+ /**
+ * 成果附件
+ */
+ @Excel(name = "成果附件")
+ private String attachments;
+
+ private Long clickSum;
+ private Long watcherSum;
+ private Long favoriteSum;
+ private Float hotRank;
+ private Long attachmentCount;
+ private Integer isExpertAudit;
+
+ public Long getWatcherSum() {
+ return watcherSum;
+ }
+
+ public void setWatcherSum(Long watcherSum) {
+ this.watcherSum = watcherSum;
+ }
+
+ public Long getFavoriteSum() {
+ return favoriteSum;
+ }
+
+ public void setFavoriteSum(Long favoriteSum) {
+ this.favoriteSum = favoriteSum;
+ }
+
+ public Float getHotRank() {
+ return hotRank;
+ }
+
+ public void setHotRank(Float hotRank) {
+ this.hotRank = hotRank;
+ }
+
+ public Integer getIsExpertAudit() {
+ return isExpertAudit;
+ }
+
+ public void setIsExpertAudit(Integer isExpertAudit) {
+ this.isExpertAudit = isExpertAudit;
+ }
+
+ public Long getAttachmentCount() {
+ return attachmentCount;
+ }
+
+ public void setAttachmentCount(Long attachmentCount) {
+ this.attachmentCount = attachmentCount;
+ }
+
+ public Long getClickSum() {
+ return clickSum;
+ }
+
+ public void setClickSum(Long clickSum) {
+ this.clickSum = clickSum;
+ }
+
+ private List attachmentList;
+
+ public List getAttachmentList() {
+ return attachmentList;
+ }
+
+ public void setAttachmentList(List attachmentList) {
+ this.attachmentList = attachmentList;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setAchievementName(String achievementName) {
+ this.achievementName = achievementName;
+ }
+
+ public String getAchievementName() {
+ return achievementName;
+ }
+
+ public void setField1(String field1) {
+ this.field1 = field1;
+ }
+
+ public String getField1() {
+ return field1;
+ }
+
+ public void setField2(String field2) {
+ this.field2 = field2;
+ }
+
+ public String getField2() {
+ return field2;
+ }
+
+ public void setField3(String field3) {
+ this.field3 = field3;
+ }
+
+ public String getField3() {
+ return field3;
+ }
+
+ public void setAchievementType(String achievementType) {
+ this.achievementType = achievementType;
+ }
+
+ public String getAchievementType() {
+ return achievementType;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSourceId(Long sourceId) {
+ this.sourceId = sourceId;
+ }
+
+ public Long getSourceId() {
+ return sourceId;
+ }
+
+ public void setSourceLink(String sourceLink) {
+ this.sourceLink = sourceLink;
+ }
+
+ public String getSourceLink() {
+ return sourceLink;
+ }
+
+ public void setTags(String tags) {
+ this.tags = tags;
+ }
+
+ public String getTags() {
+ return tags;
+ }
+
+ public void setSummary(String summary) {
+ this.summary = summary;
+ }
+
+ public String getSummary() {
+ return summary;
+ }
+
+ public void setPublishingUnit(String publishingUnit) {
+ this.publishingUnit = publishingUnit;
+ }
+
+ public String getPublishingUnit() {
+ return publishingUnit;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setIsFeatured(Integer isFeatured) {
+ this.isFeatured = isFeatured;
+ }
+
+ public Integer getIsFeatured() {
+ return isFeatured;
+ }
+
+ public void setContactPerson(String contactPerson) {
+ this.contactPerson = contactPerson;
+ }
+
+ public String getContactPerson() {
+ return contactPerson;
+ }
+
+ public void setContactNumber(String contactNumber) {
+ this.contactNumber = contactNumber;
+ }
+
+ public String getContactNumber() {
+ return contactNumber;
+ }
+
+ public void setOwnerId(String ownerId) {
+ this.ownerId = ownerId;
+ }
+
+ public String getOwnerId() {
+ return ownerId;
+ }
+
+ public void setOwnerName(String ownerName) {
+ this.ownerName = ownerName;
+ }
+
+ public String getOwnerName() {
+ return ownerName;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setDetails(String details) {
+ this.details = details;
+ }
+
+ public String getDetails() {
+ return details;
+ }
+
+ public void setReviewer(String reviewer) {
+ this.reviewer = reviewer;
+ }
+
+ public String getReviewer() {
+ return reviewer;
+ }
+
+ public void setReviewDate(Date reviewDate) {
+ this.reviewDate = reviewDate;
+ }
+
+ public Date getReviewDate() {
+ return reviewDate;
+ }
+
+ public void setReviewComments(String reviewComments) {
+ this.reviewComments = reviewComments;
+ }
+
+ public String getReviewComments() {
+ return reviewComments;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getImages() {
+ return images;
+ }
+
+ public void setAttachments(String attachments) {
+ this.attachments = attachments;
+ }
+
+ public String getAttachments() {
+ return attachments;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("achievementName", getAchievementName())
+ .append("field1", getField1())
+ .append("field2", getField2())
+ .append("field3", getField3())
+ .append("achievementType", getAchievementType())
+ .append("source", getSource())
+ .append("sourceId", getSourceId())
+ .append("sourceLink", getSourceLink())
+ .append("tags", getTags())
+ .append("summary", getSummary())
+ .append("publishingUnit", getPublishingUnit())
+ .append("address", getAddress())
+ .append("isFeatured", getIsFeatured())
+ .append("contactPerson", getContactPerson())
+ .append("contactNumber", getContactNumber())
+ .append("ownerId", getOwnerId())
+ .append("ownerName", getOwnerName())
+ .append("status", getStatus())
+ .append("details", getDetails())
+ .append("reviewer", getReviewer())
+ .append("reviewDate", getReviewDate())
+ .append("reviewComments", getReviewComments())
+ .append("images", getImages())
+ .append("attachments", getAttachments())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .toString();
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AreaStatisticVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AreaStatisticVo.java
new file mode 100644
index 000000000..51a2197b5
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AreaStatisticVo.java
@@ -0,0 +1,74 @@
+package com.microservices.dms.achievementLibrary.domain;
+
+public class AreaStatisticVo {
+ //领域名称
+ private String areaName;
+ //领域key
+ private String areaKey;
+ //领域说明
+ private String remark;
+ //开源项目汇总
+ private Long kyxmSum;
+ //创客任务汇总
+ private Long ckrwSum;
+ //开放竞赛汇总
+ private Long kfjsSum;
+ //校企成果汇总
+ private Long xqcgSum;
+
+ public String getAreaName() {
+ return areaName;
+ }
+
+ public void setAreaName(String areaName) {
+ this.areaName = areaName;
+ }
+
+ public String getAreaKey() {
+ return areaKey;
+ }
+
+ public void setAreaKey(String areaKey) {
+ this.areaKey = areaKey;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public Long getKyxmSum() {
+ return kyxmSum;
+ }
+
+ public void setKyxmSum(Long kyxmSum) {
+ this.kyxmSum = kyxmSum;
+ }
+
+ public Long getCkrwSum() {
+ return ckrwSum;
+ }
+
+ public void setCkrwSum(Long ckrwSum) {
+ this.ckrwSum = ckrwSum;
+ }
+
+ public Long getKfjsSum() {
+ return kfjsSum;
+ }
+
+ public void setKfjsSum(Long kfjsSum) {
+ this.kfjsSum = kfjsSum;
+ }
+
+ public Long getXqcgSum() {
+ return xqcgSum;
+ }
+
+ public void setXqcgSum(Long xqcgSum) {
+ this.xqcgSum = xqcgSum;
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AreasTjVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AreasTjVo.java
new file mode 100644
index 000000000..12ff6a0fc
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AreasTjVo.java
@@ -0,0 +1,25 @@
+package com.microservices.dms.achievementLibrary.domain;
+
+import java.util.List;
+
+
+public class AreasTjVo {
+ private Long areaSum;
+ private List areaDetails;
+
+ public Long getAreaSum() {
+ return areaSum;
+ }
+
+ public void setAreaSum(Long areaSum) {
+ this.areaSum = areaSum;
+ }
+
+ public List getAreaDetails() {
+ return areaDetails;
+ }
+
+ public void setAreaDetails(List areaDetails) {
+ this.areaDetails = areaDetails;
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/ExpertTotallVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/ExpertTotallVo.java
new file mode 100644
index 000000000..4ed399082
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/ExpertTotallVo.java
@@ -0,0 +1,44 @@
+package com.microservices.dms.achievementLibrary.domain;
+
+public class ExpertTotallVo {
+ //专家名称
+ private String name;
+ //任务审核数
+ private Long taskAuditSum;
+ //竞赛审核数
+ private Long competitionAuditSum;
+ //总数
+ private Long total;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Long getTaskAuditSum() {
+ return taskAuditSum;
+ }
+
+ public void setTaskAuditSum(Long taskAuditSum) {
+ this.taskAuditSum = taskAuditSum;
+ }
+
+ public Long getCompetitionAuditSum() {
+ return competitionAuditSum;
+ }
+
+ public void setCompetitionAuditSum(Long competitionAuditSum) {
+ this.competitionAuditSum = competitionAuditSum;
+ }
+
+ public Long getTotal() {
+ return total;
+ }
+
+ public void setTotal(Long total) {
+ this.total = total;
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/KeyValueVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/KeyValueVo.java
new file mode 100644
index 000000000..baf5fa5b6
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/KeyValueVo.java
@@ -0,0 +1,58 @@
+package com.microservices.dms.achievementLibrary.domain;
+
+public class KeyValueVo {
+ private String key;
+ private String name;
+ private String result;
+ private Long value;
+ private Long value2;
+ private Long total;
+
+ public Long getTotal() {
+ return total;
+ }
+
+ public void setTotal(Long total) {
+ this.total = total;
+ }
+
+ public Long getValue2() {
+ return value2;
+ }
+
+ public void setValue2(Long value2) {
+ this.value2 = value2;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getResult() {
+ return result;
+ }
+
+ public void setResult(String result) {
+ this.result = result;
+ }
+
+ public String getKey() {
+ return key;
+ }
+
+ public void setKey(String key) {
+ this.key = key;
+ }
+
+ public Long getValue() {
+ return value;
+ }
+
+ public void setValue(Long value) {
+ this.value = value;
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/MemoTotalVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/MemoTotalVo.java
new file mode 100644
index 000000000..d514c2f4b
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/MemoTotalVo.java
@@ -0,0 +1,74 @@
+package com.microservices.dms.achievementLibrary.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+public class MemoTotalVo {
+ private Long id;
+ private String subject;
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "发布时间", hidden = true)
+ private Date publishedAt;
+ private Long viewedCount;
+ private Long praisesCount;
+ private Long repliesCount;
+ private Long behavioreSum;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getSubject() {
+ return subject;
+ }
+
+ public void setSubject(String subject) {
+ this.subject = subject;
+ }
+
+ public Date getPublishedAt() {
+ return publishedAt;
+ }
+
+ public void setPublishedAt(Date publishedAt) {
+ this.publishedAt = publishedAt;
+ }
+
+ public Long getViewedCount() {
+ return viewedCount;
+ }
+
+ public void setViewedCount(Long viewedCount) {
+ this.viewedCount = viewedCount;
+ }
+
+ public Long getPraisesCount() {
+ return praisesCount;
+ }
+
+ public void setPraisesCount(Long praisesCount) {
+ this.praisesCount = praisesCount;
+ }
+
+ public Long getRepliesCount() {
+ return repliesCount;
+ }
+
+ public void setRepliesCount(Long repliesCount) {
+ this.repliesCount = repliesCount;
+ }
+
+ public Long getBehavioreSum() {
+ return behavioreSum;
+ }
+
+ public void setBehavioreSum(Long behavioreSum) {
+ this.behavioreSum = behavioreSum;
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/SchoolEnterpriseAchievements.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/SchoolEnterpriseAchievements.java
new file mode 100644
index 000000000..43e5b0f8d
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/SchoolEnterpriseAchievements.java
@@ -0,0 +1,413 @@
+package com.microservices.dms.achievementLibrary.domain;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.microservices.common.core.annotation.Excel;
+import com.microservices.common.core.web.domain.BaseEntity;
+
+/**
+ * 校企成果对象 school_enterprise_achievements
+ *
+ * @author microservices
+ * @date 2025-04-03
+ */
+public class SchoolEnterpriseAchievements extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 成果唯一标识
+ */
+ private Long id;
+
+ /**
+ * 成果名称
+ */
+ @Excel(name = "成果名称")
+ private String achievementName;
+
+ /**
+ * 成果领域1
+ */
+ @Excel(name = "成果领域1")
+ private String field1;
+
+ /**
+ * 成果领域2
+ */
+ @Excel(name = "成果领域2")
+ private String field2;
+
+ /**
+ * 成果领域3
+ */
+ @Excel(name = "成果领域3")
+ private String field3;
+
+ /**
+ * 成果类型
+ */
+ @Excel(name = "成果类型")
+ private String achievementType;
+
+ /**
+ * 成果来源
+ */
+ @Excel(name = "成果来源")
+ private String source;
+
+ /**
+ * 成果来源ID
+ */
+ @Excel(name = "成果来源ID")
+ private String sourceId;
+
+ /**
+ * 成果来源跳转链接
+ */
+ @Excel(name = "成果来源跳转链接")
+ private String sourceLink;
+
+ /**
+ * 成果标签
+ */
+ @Excel(name = "成果标签")
+ private String tags;
+
+ /**
+ * 成果摘要
+ */
+ @Excel(name = "成果摘要")
+ private String summary;
+
+ /**
+ * 发布单位
+ */
+ @Excel(name = "发布单位")
+ private String publishingUnit;
+
+ /**
+ * 成果地址
+ */
+ @Excel(name = "成果地址")
+ private String address;
+
+ /**
+ * 是否精选成果
+ */
+ @Excel(name = "是否精选成果")
+ private Integer isFeatured;
+
+ /**
+ * 联系人
+ */
+ @Excel(name = "联系人")
+ private String contactPerson;
+
+ /**
+ * 联系电话
+ */
+ @Excel(name = "联系电话")
+ private String contactNumber;
+
+ /**
+ * 成果所属人ID
+ */
+ @Excel(name = "成果所属人ID")
+ private String ownerId;
+
+ /**
+ * 成果所属人名称
+ */
+ @Excel(name = "成果所属人名称")
+ private String ownerName;
+
+ /**
+ * 成果状态
+ */
+ @Excel(name = "成果状态")
+ private String status;
+
+ /**
+ * 成果详情
+ */
+ @Excel(name = "成果详情")
+ private String details;
+
+ /**
+ * 成果审核人
+ */
+ @Excel(name = "成果审核人")
+ private String reviewer;
+
+ /**
+ * 成果审核时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ @Excel(name = "成果审核时间", width = 30, dateFormat = "yyyy-MM-dd")
+ private Date reviewDate;
+
+ /**
+ * 成果审核意见
+ */
+ @Excel(name = "成果审核意见")
+ private String reviewComments;
+
+ /**
+ * 成果图片
+ */
+ @Excel(name = "成果图片")
+ private String images;
+
+ /**
+ * 成果附件
+ */
+ @Excel(name = "成果附件")
+ private String attachments;
+ private Integer achievementStatus;
+
+ public Integer getAchievementStatus() {
+ return achievementStatus;
+ }
+
+ public void setAchievementStatus(Integer achievementStatus) {
+ this.achievementStatus = achievementStatus;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setAchievementName(String achievementName) {
+ this.achievementName = achievementName;
+ }
+
+ public String getAchievementName() {
+ return achievementName;
+ }
+
+ public void setField1(String field1) {
+ this.field1 = field1;
+ }
+
+ public String getField1() {
+ return field1;
+ }
+
+ public void setField2(String field2) {
+ this.field2 = field2;
+ }
+
+ public String getField2() {
+ return field2;
+ }
+
+ public void setField3(String field3) {
+ this.field3 = field3;
+ }
+
+ public String getField3() {
+ return field3;
+ }
+
+ public void setAchievementType(String achievementType) {
+ this.achievementType = achievementType;
+ }
+
+ public String getAchievementType() {
+ return achievementType;
+ }
+
+ public void setSource(String source) {
+ this.source = source;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public void setSourceId(String sourceId) {
+ this.sourceId = sourceId;
+ }
+
+ public String getSourceId() {
+ return sourceId;
+ }
+
+ public void setSourceLink(String sourceLink) {
+ this.sourceLink = sourceLink;
+ }
+
+ public String getSourceLink() {
+ return sourceLink;
+ }
+
+ public void setTags(String tags) {
+ this.tags = tags;
+ }
+
+ public String getTags() {
+ return tags;
+ }
+
+ public void setSummary(String summary) {
+ this.summary = summary;
+ }
+
+ public String getSummary() {
+ return summary;
+ }
+
+ public void setPublishingUnit(String publishingUnit) {
+ this.publishingUnit = publishingUnit;
+ }
+
+ public String getPublishingUnit() {
+ return publishingUnit;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setIsFeatured(Integer isFeatured) {
+ this.isFeatured = isFeatured;
+ }
+
+ public Integer getIsFeatured() {
+ return isFeatured;
+ }
+
+ public void setContactPerson(String contactPerson) {
+ this.contactPerson = contactPerson;
+ }
+
+ public String getContactPerson() {
+ return contactPerson;
+ }
+
+ public void setContactNumber(String contactNumber) {
+ this.contactNumber = contactNumber;
+ }
+
+ public String getContactNumber() {
+ return contactNumber;
+ }
+
+ public void setOwnerId(String ownerId) {
+ this.ownerId = ownerId;
+ }
+
+ public String getOwnerId() {
+ return ownerId;
+ }
+
+ public void setOwnerName(String ownerName) {
+ this.ownerName = ownerName;
+ }
+
+ public String getOwnerName() {
+ return ownerName;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setDetails(String details) {
+ this.details = details;
+ }
+
+ public String getDetails() {
+ return details;
+ }
+
+ public void setReviewer(String reviewer) {
+ this.reviewer = reviewer;
+ }
+
+ public String getReviewer() {
+ return reviewer;
+ }
+
+ public void setReviewDate(Date reviewDate) {
+ this.reviewDate = reviewDate;
+ }
+
+ public Date getReviewDate() {
+ return reviewDate;
+ }
+
+ public void setReviewComments(String reviewComments) {
+ this.reviewComments = reviewComments;
+ }
+
+ public String getReviewComments() {
+ return reviewComments;
+ }
+
+ public void setImages(String images) {
+ this.images = images;
+ }
+
+ public String getImages() {
+ return images;
+ }
+
+ public void setAttachments(String attachments) {
+ this.attachments = attachments;
+ }
+
+ public String getAttachments() {
+ return attachments;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+ .append("id", getId())
+ .append("achievementName", getAchievementName())
+ .append("field1", getField1())
+ .append("field2", getField2())
+ .append("field3", getField3())
+ .append("achievementType", getAchievementType())
+ .append("source", getSource())
+ .append("sourceId", getSourceId())
+ .append("sourceLink", getSourceLink())
+ .append("tags", getTags())
+ .append("summary", getSummary())
+ .append("publishingUnit", getPublishingUnit())
+ .append("address", getAddress())
+ .append("isFeatured", getIsFeatured())
+ .append("contactPerson", getContactPerson())
+ .append("contactNumber", getContactNumber())
+ .append("ownerId", getOwnerId())
+ .append("ownerName", getOwnerName())
+ .append("status", getStatus())
+ .append("details", getDetails())
+ .append("reviewer", getReviewer())
+ .append("reviewDate", getReviewDate())
+ .append("reviewComments", getReviewComments())
+ .append("images", getImages())
+ .append("attachments", getAttachments())
+ .append("createBy", getCreateBy())
+ .append("createTime", getCreateTime())
+ .append("updateBy", getUpdateBy())
+ .append("updateTime", getUpdateTime())
+ .toString();
+ }
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementTeamMapper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementTeamMapper.java
new file mode 100644
index 000000000..2d34eeb21
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementTeamMapper.java
@@ -0,0 +1,66 @@
+package com.microservices.dms.achievementLibrary.mapper;
+
+import java.util.List;
+
+import com.microservices.common.datasource.annotation.Slave;
+import com.microservices.dms.achievementLibrary.domain.AchievementTeam;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 成果团队Mapper接口
+ *
+ * @author microservices
+ * @date 2025-04-23
+ */
+@Mapper
+@Slave
+public interface AchievementTeamMapper
+{
+ /**
+ * 查询成果团队
+ *
+ * @param id 成果团队主键
+ * @return 成果团队
+ */
+ public AchievementTeam selectAchievementTeamById(Long id);
+
+ /**
+ * 查询成果团队列表
+ *
+ * @param achievementTeam 成果团队
+ * @return 成果团队集合
+ */
+ public List selectAchievementTeamList(AchievementTeam achievementTeam);
+
+ /**
+ * 新增成果团队
+ *
+ * @param achievementTeam 成果团队
+ * @return 结果
+ */
+ public int insertAchievementTeam(AchievementTeam achievementTeam);
+
+ /**
+ * 修改成果团队
+ *
+ * @param achievementTeam 成果团队
+ * @return 结果
+ */
+ public int updateAchievementTeam(AchievementTeam achievementTeam);
+
+ /**
+ * 删除成果团队
+ *
+ * @param id 成果团队主键
+ * @return 结果
+ */
+ public int deleteAchievementTeamById(Long id);
+
+ /**
+ * 批量删除成果团队
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteAchievementTeamByIds(Long[] ids);
+}
diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementsMapper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementsMapper.java
new file mode 100644
index 000000000..e721d77e9
--- /dev/null
+++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementsMapper.java
@@ -0,0 +1,135 @@
+package com.microservices.dms.achievementLibrary.mapper;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import com.microservices.common.datasource.annotation.Master;
+import com.microservices.common.datasource.annotation.Slave;
+import com.microservices.dms.achievementLibrary.domain.*;
+import com.microservices.dms.behaviorImage.domain.AchievementBehaviorSumVo;
+import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo;
+import org.apache.ibatis.annotations.MapKey;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 成果Mapper接口
+ *
+ * @author microservices
+ * @date 2025-04-02
+ */
+@Mapper
+@Slave
+public interface AchievementsMapper {
+ /**
+ * 查询成果
+ *
+ * @param id 成果主键
+ * @return 成果
+ */
+ public Achievements selectAchievementsById(Long id);
+
+ /**
+ * 查询成果列表
+ *
+ * @param achievements 成果
+ * @return 成果集合
+ */
+ public List selectAchievementsList(Achievements achievements);
+
+ /**
+ * 新增成果
+ *
+ * @param achievements 成果
+ * @return 结果
+ */
+ public int insertAchievements(Achievements achievements);
+
+ /**
+ * 修改成果
+ *
+ * @param achievements 成果
+ * @return 结果
+ */
+ public int updateAchievements(Achievements achievements);
+
+ /**
+ * 删除成果
+ *
+ * @param id 成果主键
+ * @return 结果
+ */
+ public int deleteAchievementsById(Long id);
+
+ /**
+ * 批量删除成果
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteAchievementsByIds(Long[] ids);
+
+ @MapKey("k")
+ @Master
+ List