package com.ycl.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.ycl.domain.entity.ProjectProcess; import com.ycl.mapper.ProjectProcessMapper; import com.ycl.service.ProjectProcessService; import com.ycl.common.base.Result; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.domain.form.ProjectProcessForm; import com.ycl.domain.vo.ProjectProcessVO; import com.ycl.domain.query.ProjectProcessQuery; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import com.ycl.framework.utils.PageUtil; import org.springframework.beans.BeanUtils; import org.springframework.util.Assert; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** * 项目流程关系表 服务实现类 * * @author xp * @since 2024-11-26 */ @Service @RequiredArgsConstructor public class ProjectProcessServiceImpl extends ServiceImpl implements ProjectProcessService { private final ProjectProcessMapper projectProcessMapper; /** * 分页查询 * @param query * @return */ @Override public Result page(ProjectProcessQuery query) { IPage page = PageUtil.getPage(query, ProjectProcessVO.class); baseMapper.getPage(page, query); return Result.ok().data(page.getRecords()).total(page.getTotal()); } /** * 根据id查找 * @param id * @return */ @Override public Result detail(Integer id) { ProjectProcessVO vo = baseMapper.getById(id); Assert.notNull(vo, "记录不存在"); return Result.ok().data(vo); } @Override public Result projectSetProcess(ProjectProcessForm form) { // 查询该项目是否已经绑定过流程了,检查绑定的流程是否在运行,在运行就删了 ProjectProcess pp = new LambdaQueryChainWrapper<>(baseMapper) .eq(ProjectProcess::getProjectId, form.getProjectId()) .one(); if (Objects.nonNull(pp)) { // TODO 处理之前绑定过的流程数据 new LambdaUpdateChainWrapper<>(baseMapper) .eq(ProjectProcess::getProjectId, form.getProjectId()) .set(ProjectProcess::getFlowableProcessId, form.getFlowableProcessId()) .update(); } else { ProjectProcess entity = ProjectProcessForm.getEntityByForm(form, null); baseMapper.insert(entity); } return Result.ok("流程变更成功"); } }