“djh”
3 days ago c26e227abe288476c11b0a8b7875045e71efa14c
multi-system/src/main/java/com/gkhy/exam/system/service/impl/ManagementPlanServiceImpl.java
@@ -1,6 +1,7 @@
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;
@@ -11,6 +12,7 @@
import com.gkhy.exam.system.service.ManagementPlanService;
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;
@@ -79,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("复制成功");
    }
}