package jnpf.flowable.mapper; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import jnpf.base.mapper.SuperMapper; import jnpf.constant.MsgCode; import jnpf.exception.WorkFlowException; import jnpf.flowable.entity.TemplateJsonEntity; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; public interface TemplateJsonMapper extends SuperMapper { default List getListByTemplateIds(List id) { List list = new ArrayList<>(); if (!id.isEmpty()) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().in(TemplateJsonEntity::getTemplateId, id); list.addAll(this.selectList(queryWrapper)); } return list; } default List getList(String templateId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(TemplateJsonEntity::getTemplateId, templateId); List list = this.selectList(queryWrapper); List resList = new ArrayList<>(); if (CollectionUtil.isNotEmpty(list)) { // 启用中 List enableList = list.stream().filter(e -> ObjectUtil.equals(e.getState(), 1)) .sorted(Comparator.comparing(TemplateJsonEntity::getCreatorTime).reversed()).collect(Collectors.toList()); // 已归档 List historicList = list.stream().filter(e -> ObjectUtil.equals(e.getState(), 2)) .sorted(Comparator.comparing(TemplateJsonEntity::getCreatorTime).reversed()).collect(Collectors.toList()); // 设计中 List designList = list.stream().filter(e -> ObjectUtil.equals(e.getState(), 0)) .sorted(Comparator.comparing(TemplateJsonEntity::getCreatorTime).reversed()).collect(Collectors.toList()); resList.addAll(enableList); resList.addAll(historicList); resList.addAll(designList); } return resList; } default List getListOfEnable() { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(TemplateJsonEntity::getState, 1); return this.selectList(queryWrapper); } default TemplateJsonEntity getInfo(String id) throws WorkFlowException { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(TemplateJsonEntity::getId, id); TemplateJsonEntity jsonEntity = this.selectOne(queryWrapper); if (jsonEntity == null) { throw new WorkFlowException(MsgCode.FA001.get()); } return jsonEntity; } default boolean update(String id, TemplateJsonEntity entity) { entity.setId(id); return this.updateById(entity) > 0; } default void delete(List idList) { if (!idList.isEmpty()) { this.deleteByIds(idList); } } }