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; import com.gkhy.exam.common.utils.SecurityUtils; import com.gkhy.exam.system.domain.ManagementPlan; import com.gkhy.exam.system.mapper.ManagementPlanMapper; 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; /** *

* 管理审批计划 服务实现类 *

* * @author hh * @since 2025-07-10 15:11:50 */ @Service public class ManagementPlanServiceImpl extends ServiceImpl implements ManagementPlanService { @Autowired private ManagementPlanMapper managementPlanMapper; @Override public CommonPage selectManagementPlanList(ManagementPlan managementPlan) { PageUtils.startPage(); List managementPlans = managementPlanMapper.selectManagementPlanById(managementPlan); return CommonPage.restPage(managementPlans); } @Override public CommonResult insertManagementPlan(ManagementPlan managementPlan) { if (managementPlan == null || managementPlan.getCompanyId() == null){ return CommonResult.failed("企业id不能为空"); } List managementPlans = managementPlanMapper.selectManagementPlanById(managementPlan); if (ObjectUtil.isNotEmpty(managementPlans)) { return CommonResult.failed("当前企业已有数据,请勿重复添加"); } managementPlan.setCreateBy(SecurityUtils.getUsername()); managementPlan.setCreateTime(LocalDateTime.now()); int insert = managementPlanMapper.insert(managementPlan); if (insert > 0) { return CommonResult.success(insert); } return CommonResult.failed(); } @Override public CommonResult updateManagementPlan(ManagementPlan managementPlan) { managementPlan.setUpdateBy(SecurityUtils.getUsername()); managementPlan.setUpdateTime(LocalDateTime.now()); int update = managementPlanMapper.updateById(managementPlan); if (update > 0) { return CommonResult.success(update); } return CommonResult.failed(); } @Override public CommonResult deletedManagementPlan(Integer id) { ManagementPlan managementPlan = new ManagementPlan(); managementPlan.setId(id); managementPlan.setDelFlag(1); managementPlan.setUpdateBy(SecurityUtils.getUsername()); managementPlan.setUpdateTime(LocalDateTime.now()); int delete = managementPlanMapper.updateById(managementPlan); if (delete > 0) { return CommonResult.success(delete); } 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 queryWrapperTarget = new LambdaQueryWrapper<>(); queryWrapperTarget.eq(ManagementPlan::getCompanyId, companyId) .eq(ManagementPlan::getYear, targetYear) .eq(ManagementPlan::getDelFlag, 0); List 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 queryWrapperSource = new LambdaQueryWrapper<>(); queryWrapperSource.eq(ManagementPlan::getCompanyId, companyId) .eq(ManagementPlan::getYear, sourceYear) .eq(ManagementPlan::getDelFlag, 0); List 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("复制成功"); } }