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;
|
|
/**
|
* <p>
|
* 管理审批计划 服务实现类
|
* </p>
|
*
|
* @author hh
|
* @since 2025-07-10 15:11:50
|
*/
|
@Service
|
public class ManagementPlanServiceImpl extends ServiceImpl<ManagementPlanMapper, ManagementPlan> implements ManagementPlanService {
|
|
@Autowired
|
private ManagementPlanMapper managementPlanMapper;
|
|
@Override
|
public CommonPage selectManagementPlanList(ManagementPlan managementPlan) {
|
PageUtils.startPage();
|
List<ManagementPlan> 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<ManagementPlan> 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<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("复制成功");
|
}
|
|
}
|