package com.aps.core.service.impl; import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.DateUtils; import com.aps.common.security.utils.SecurityUtils; import com.aps.core.domain.ApsPlanCycle; import com.aps.core.domain.ApsPlanManagement; import com.aps.core.mapper.ApsPlanCycleMapper; import com.aps.core.mapper.ApsPlanManagementMapper; import com.aps.core.service.IApsPlanManagementService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Objects; /** * 计划管理Service业务层处理 * * @author ruoyi * @date 2025-05-13 */ @Service public class ApsPlanManagementServiceImpl extends ServiceImpl implements IApsPlanManagementService { @Autowired private ApsPlanManagementMapper apsPlanManagementMapper; @Autowired private ApsPlanCycleMapper apsPlanCycleMapper; /** * 查询计划管理 * * @param id 计划管理主键 * @return 计划管理 */ @Override public ApsPlanManagement selectApsPlanManagementById(Long id) { return selectApsPlanManagementById(id); } /** * 查询计划管理列表 * * @param apsPlanManagement 计划管理 * @return 计划管理 */ @Override public List selectApsPlanManagementList(ApsPlanManagement apsPlanManagement) { List items = apsPlanManagementMapper.selectApsPlanManagementList(apsPlanManagement); List cycles = apsPlanCycleMapper.selectByPlanIds(items.stream().map(ApsPlanManagement::getId).toList()); cycles.forEach(cycle -> { for (ApsPlanManagement item : items) { if (Objects.equals(item.getId(), cycle.getPlanId())) { item.setCycle(cycle); break; } } }); return items; } /** * 新增计划管理 * * @param apsPlanManagement 计划管理 * @return 结果 */ @Override public int insertApsPlanManagement(ApsPlanManagement apsPlanManagement) { apsPlanManagement.setCreateTime(DateUtils.getNowDate()); apsPlanManagement.setCreateBy(SecurityUtils.getUsername()); apsPlanManagement.setId(IdUtil.getSnowflakeNextId()); return apsPlanManagementMapper.insertApsPlanManagement(apsPlanManagement); } /** * 修改计划管理 * * @param apsPlanManagement 计划管理 * @return 结果 */ @Override public int updateApsPlanManagement(ApsPlanManagement apsPlanManagement) { apsPlanManagement.setUpdateTime(DateUtils.getNowDate()); apsPlanManagement.setUpdateBy(SecurityUtils.getUsername()); return apsPlanManagementMapper.updateApsPlanManagement(apsPlanManagement); } /** * 批量删除计划管理 * * @param ids 需要删除的计划管理主键 * @return 结果 */ @Override public int deleteApsPlanManagementByIds(Long[] ids) { return apsPlanManagementMapper.deleteApsPlanManagementByIds(ids); } /** * 删除计划管理信息 * * @param id 计划管理主键 * @return 结果 */ @Override public int deleteApsPlanManagementById(Long id) { return apsPlanManagementMapper.deleteApsPlanManagementById(id); } @Transactional(rollbackFor = Exception.class) @Override public void updateApsPlanCycle(ApsPlanCycle apsPlanCycle) { ApsPlanCycle planCycle = apsPlanCycleMapper.selectByPlanId(apsPlanCycle.getPlanId()); if (planCycle == null) { apsPlanCycle.setCreateBy(SecurityUtils.getUsername()); apsPlanCycle.setCreateTime(DateUtils.getNowDate()); apsPlanCycle.setId(IdUtil.getSnowflakeNextId()); apsPlanCycleMapper.insert(apsPlanCycle); } else { BeanUtils.copyProperties(apsPlanCycle, planCycle, "id", "planId"); planCycle.setUpdateBy(SecurityUtils.getUsername()); planCycle.setUpdateTime(DateUtils.getNowDate()); apsPlanCycleMapper.updateById(planCycle); } } }