From 421e1dc40f619e8bb44c0662325e0b1729ca79e8 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: Fri, 08 May 2026 17:27:41 +0800
Subject: [PATCH] 功能

---
 expert-system/src/main/java/com/gkhy/system/service/IProjectManagementService.java            |    7 +++++++
 expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java    |   37 +++++++++++++++++++++++++++++++++++++
 expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ProjectManagementController.java |   10 ++++++++++
 3 files changed, 54 insertions(+), 0 deletions(-)

diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ProjectManagementController.java b/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ProjectManagementController.java
index aad4c0c..27624fb 100644
--- a/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ProjectManagementController.java
+++ b/expert-admin/src/main/java/com/gkhy/web/controller/bussiness/ProjectManagementController.java
@@ -264,4 +264,14 @@
         return R.ok(projectManagementService.projectExpertExportList(projectId));
     }
 
+
+    @GetMapping("/projectBackEvaluation")
+    @ApiOperation(value = "项目评审退回")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", name = "id", dataType = "long", required = true, value = "项目id")
+    })
+    public R projectBackEvaluation(@RequestParam("id") Long id){
+        projectManagementService.projectBackEvaluation( id);
+        return R.ok();
+    }
 }
diff --git a/expert-system/src/main/java/com/gkhy/system/service/IProjectManagementService.java b/expert-system/src/main/java/com/gkhy/system/service/IProjectManagementService.java
index 60c401a..50b9fea 100644
--- a/expert-system/src/main/java/com/gkhy/system/service/IProjectManagementService.java
+++ b/expert-system/src/main/java/com/gkhy/system/service/IProjectManagementService.java
@@ -146,4 +146,11 @@
      * @return 导出专家数据
      */
     public List<ProjectDataResp> selectProjectData(ProjectManagement projectManagement);
+
+    /**
+     * 评审状态退回
+     * @param id
+     */
+
+    void projectBackEvaluation(Long id);
 }
\ No newline at end of file
diff --git a/expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java b/expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java
index c9de6c5..4c68953 100644
--- a/expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java
+++ b/expert-system/src/main/java/com/gkhy/system/service/impl/ProjectManagementServiceImpl.java
@@ -808,6 +808,43 @@
         return projectManagementMapper.selectProjectData(projectManagement);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void projectBackEvaluation(Long id) {
+        if (!SecurityUtils.isAdmin(SecurityUtils.getUserId())){
+            throw new ServiceException("非管理员无权操作!");
+        }
+        ProjectManagement projectManagement = projectManagementMapper.selectProjectManagementById(id);
+        if (null == projectManagement){
+            throw new ServiceException("项目不存在");
+        }
+        if (projectManagement.getState() != 4) {
+            throw new ServiceException("项目未完成,无权操作!");
+        }
+        if (projectManagement.getEvaluationState() != 1){
+            throw new ServiceException("未完成评审不可退回!");
+        }
+        LambdaUpdateWrapper<ProjectManagement> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.eq(ProjectManagement::getId, id)
+                .set(ProjectManagement::getEvaluationState, 0).set(ProjectManagement::getUpdateBy, SecurityUtils.getUsername())
+                .set(ProjectManagement::getUpdateTime, new Date());
+        int update = projectManagementMapper.update(null, updateWrapper);
+        if (update > 0){
+            LambdaUpdateWrapper<OutProjectExpert> updateWrapper1 = new LambdaUpdateWrapper<>();
+            updateWrapper1.eq(OutProjectExpert::getProjectId, id)
+                    .set(OutProjectExpert::getEvaluationState, 0).set(OutProjectExpert::getUpdateBy, SecurityUtils.getUsername())
+                    .set(OutProjectExpert::getUpdateTime, new Date());
+            outProjectExpertMapper.update(null, updateWrapper1);
+            LambdaUpdateWrapper<ProjectExpert> updateWrapper2 = new LambdaUpdateWrapper<>();
+            updateWrapper2.eq(ProjectExpert::getProjectId, id).set(ProjectExpert::getEvaluationState, 0)
+                    .set(ProjectExpert::getUpdateBy, SecurityUtils.getUsername())
+                    .set(ProjectExpert::getUpdateTime, new Date());
+                    projectExpertMapper.update(null, updateWrapper2);
+        }
+
+
+    }
+
     private List<ProjectExpertDetail> dealData(List<ProjectExpertScoreSaveReq.Score> data, Long projectExpertId) {
         List<ProjectExpertDetail> dealData = new ArrayList<>();
         data.forEach(dto -> {

--
Gitblit v1.9.2