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.flowable.entity.NodeRecordEntity; import jnpf.flowable.enums.NodeStateEnum; import jnpf.flowable.model.record.NodeRecordModel; import jnpf.util.JsonUtil; import jnpf.util.RandomUtil; import java.util.List; /** * 类的描述 * * @author JNPF@YinMai Info. Co., Ltd * @version 5.0.x * @since 2024/6/25 17:06 */ public interface NodeRecordMapper extends SuperMapper { default List getNodeRecord(String taskId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(NodeRecordEntity::getTaskId, taskId).ne(NodeRecordEntity::getNodeStatus, NodeStateEnum.back.getCode()) .orderByDesc(NodeRecordEntity::getCreatorTime); List list = this.selectList(queryWrapper); return list; } default List getList(String taskId) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda().eq(NodeRecordEntity::getTaskId, taskId).orderByAsc(NodeRecordEntity::getCreatorTime); return this.selectList(wrapper); } default void create(NodeRecordModel model) { NodeRecordEntity entity = JsonUtil.getJsonToBean(model, NodeRecordEntity.class); entity.setId(RandomUtil.uuId()); this.insert(entity); } default void update(NodeRecordModel model) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda().eq(NodeRecordEntity::getTaskId, model.getTaskId()) .eq(NodeRecordEntity::getNodeCode, model.getNodeCode()); if (ObjectUtil.isNotEmpty(model.getNodeId())) { wrapper.lambda().eq(NodeRecordEntity::getNodeId, model.getNodeId()); } wrapper.lambda().orderByDesc(NodeRecordEntity::getCreatorTime); List list = this.selectList(wrapper); if (CollectionUtil.isNotEmpty(list)) { NodeRecordEntity entity = list.get(0); entity.setNodeStatus(model.getNodeStatus()); this.updateById(entity); } } }