package cn.iocoder.yudao.module.bpm.dal.mysql.definition;
|
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmProcessDefinitionInfoDO;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import org.apache.ibatis.annotations.Mapper;
|
|
import java.util.Collection;
|
import java.util.List;
|
|
@Mapper
|
public interface BpmProcessDefinitionInfoMapper extends BaseMapperX<BpmProcessDefinitionInfoDO> {
|
|
default List<BpmProcessDefinitionInfoDO> selectListByProcessDefinitionIds(Collection<String> processDefinitionIds) {
|
return selectList(BpmProcessDefinitionInfoDO::getProcessDefinitionId, processDefinitionIds);
|
}
|
|
/**
|
* 查询流程定义的扩展信息
|
*
|
* 历史原因同一 processDefinitionId 可能存在多条记录(例如重复部署/重复保存模型),
|
* 直接用 selectOne 会抛 TooManyResultsException 导致接口 500,
|
* 这里改为取最新的一条,保证接口可用。
|
*/
|
default BpmProcessDefinitionInfoDO selectByProcessDefinitionId(String processDefinitionId) {
|
List<BpmProcessDefinitionInfoDO> list = selectList(new LambdaQueryWrapperX<BpmProcessDefinitionInfoDO>()
|
.eq(BpmProcessDefinitionInfoDO::getProcessDefinitionId, processDefinitionId)
|
.orderByDesc(BpmProcessDefinitionInfoDO::getId));
|
return list.isEmpty() ? null : list.get(0);
|
}
|
|
default void updateByModelId(String modelId, BpmProcessDefinitionInfoDO updateObj) {
|
update(updateObj,
|
new LambdaQueryWrapperX<BpmProcessDefinitionInfoDO>().eq(BpmProcessDefinitionInfoDO::getModelId, modelId));
|
}
|
|
default List<BpmProcessDefinitionInfoDO> selectListByCategory(String category) {
|
return selectList(new LambdaQueryWrapperX<BpmProcessDefinitionInfoDO>()
|
.eq(BpmProcessDefinitionInfoDO::getCategory, category)
|
.eq(BpmProcessDefinitionInfoDO::getVisible, true));
|
}
|
|
}
|