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<ProjectProcessMapper, ProjectProcess> implements ProjectProcessService {
|
|
private final ProjectProcessMapper projectProcessMapper;
|
|
/**
|
* 分页查询
|
* @param query
|
* @return
|
*/
|
@Override
|
public Result page(ProjectProcessQuery query) {
|
IPage<ProjectProcessVO> 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("流程变更成功");
|
}
|
}
|