From c26e227abe288476c11b0a8b7875045e71efa14c Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: Thu, 30 Apr 2026 17:30:00 +0800
Subject: [PATCH] 新增修改

---
 multi-system/src/main/java/com/gkhy/exam/system/service/impl/ManagementPlanServiceImpl.java |   88 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 84 insertions(+), 4 deletions(-)

diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ManagementPlanServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ManagementPlanServiceImpl.java
index b4f5e20..3c27f59 100644
--- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ManagementPlanServiceImpl.java
+++ b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/ManagementPlanServiceImpl.java
@@ -1,6 +1,8 @@
 package com.gkhy.exam.system.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gkhy.exam.common.api.CommonPage;
 import com.gkhy.exam.common.api.CommonResult;
 import com.gkhy.exam.common.utils.PageUtils;
@@ -8,9 +10,9 @@
 import com.gkhy.exam.system.domain.ManagementPlan;
 import com.gkhy.exam.system.mapper.ManagementPlanMapper;
 import com.gkhy.exam.system.service.ManagementPlanService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.util.List;
@@ -30,15 +32,18 @@
     private ManagementPlanMapper managementPlanMapper;
 
     @Override
-    public CommonPage selectManagementPlanList(Integer companyId) {
+    public CommonPage selectManagementPlanList(ManagementPlan managementPlan) {
         PageUtils.startPage();
-        List<ManagementPlan> managementPlans = managementPlanMapper.selectManagementPlanById(companyId);
+        List<ManagementPlan> managementPlans = managementPlanMapper.selectManagementPlanById(managementPlan);
         return CommonPage.restPage(managementPlans);
     }
 
     @Override
     public CommonResult insertManagementPlan(ManagementPlan managementPlan) {
-        List<ManagementPlan> managementPlans = managementPlanMapper.selectManagementPlanById(managementPlan.getCompanyId());
+        if (managementPlan == null || managementPlan.getCompanyId() == null){
+            return CommonResult.failed("企业id不能为空");
+        }
+        List<ManagementPlan> managementPlans = managementPlanMapper.selectManagementPlanById(managementPlan);
         if (ObjectUtil.isNotEmpty(managementPlans)) {
             return CommonResult.failed("当前企业已有数据,请勿重复添加");
         }
@@ -76,4 +81,79 @@
         }
         return CommonResult.failed();
     }
+
+    @Override
+    @Transactional
+    public CommonResult copyManagementPlan(Integer companyId, String sourceYear, String targetYear) {
+        if (companyId == null) {
+            companyId = SecurityUtils.getCompanyId().intValue();
+        }
+
+        if (sourceYear == null || sourceYear.trim().isEmpty()) {
+            return CommonResult.failed("源年份不能为空");
+        }
+
+        if (targetYear == null || targetYear.trim().isEmpty()) {
+            return CommonResult.failed("目标年份不能为空");
+        }
+
+        LambdaQueryWrapper<ManagementPlan> queryWrapperTarget = new LambdaQueryWrapper<>();
+        queryWrapperTarget.eq(ManagementPlan::getCompanyId, companyId)
+                .eq(ManagementPlan::getYear, targetYear)
+                .eq(ManagementPlan::getDelFlag, 0);
+        List<ManagementPlan> existingPlans = managementPlanMapper.selectList(queryWrapperTarget);
+
+        if (ObjectUtil.isNotEmpty(existingPlans)) {
+            for (ManagementPlan existingPlan : existingPlans) {
+                ManagementPlan deletePlan = new ManagementPlan();
+                deletePlan.setId(existingPlan.getId());
+                deletePlan.setDelFlag(1);
+                deletePlan.setUpdateBy(SecurityUtils.getUsername());
+                deletePlan.setUpdateTime(LocalDateTime.now());
+                managementPlanMapper.updateById(deletePlan);
+            }
+        }
+
+        LambdaQueryWrapper<ManagementPlan> queryWrapperSource = new LambdaQueryWrapper<>();
+        queryWrapperSource.eq(ManagementPlan::getCompanyId, companyId)
+                .eq(ManagementPlan::getYear, sourceYear)
+                .eq(ManagementPlan::getDelFlag, 0);
+        List<ManagementPlan> sourcePlans = managementPlanMapper.selectList(queryWrapperSource);
+
+        if (ObjectUtil.isEmpty(sourcePlans)) {
+            return CommonResult.success("源年份无相关数据");
+        }
+
+        for (ManagementPlan sourcePlan : sourcePlans) {
+            ManagementPlan newPlan = new ManagementPlan();
+            newPlan.setCompanyId(sourcePlan.getCompanyId());
+            newPlan.setNumber(sourcePlan.getNumber());
+            newPlan.setYear(targetYear);
+            newPlan.setFictionId(sourcePlan.getFictionId());
+            newPlan.setFictionName(sourcePlan.getFictionName());
+            newPlan.setFictionTime(sourcePlan.getFictionTime());
+            newPlan.setCheckId(sourcePlan.getCheckId());
+            newPlan.setCheckName(sourcePlan.getCheckName());
+            newPlan.setCheckTime(sourcePlan.getCheckTime());
+            newPlan.setRatifyId(sourcePlan.getRatifyId());
+            newPlan.setRatifyName(sourcePlan.getRatifyName());
+            newPlan.setRatifyTime(sourcePlan.getRatifyTime());
+            newPlan.setContent(sourcePlan.getContent());
+            newPlan.setObjective(sourcePlan.getObjective());
+            newPlan.setLocation(sourcePlan.getLocation());
+            newPlan.setStaff(sourcePlan.getStaff());
+            newPlan.setReport(sourcePlan.getReport());
+            newPlan.setDelFlag(0);
+            newPlan.setCreateBy(SecurityUtils.getUsername());
+            newPlan.setCreateTime(LocalDateTime.now());
+
+            int insert = managementPlanMapper.insert(newPlan);
+            if (insert <= 0) {
+                throw new RuntimeException("复制管理审批计划失败");
+            }
+        }
+
+        return CommonResult.success("复制成功");
+    }
+
 }

--
Gitblit v1.9.2