package cn.huge.module.flow.service; import cn.huge.base.common.exception.ServiceException; import cn.huge.base.common.utils.DateUtils; import cn.huge.base.common.utils.IdUtils; import cn.huge.module.client.api.impl.UtilsClientImpl; import cn.huge.module.flow.dao.mapper.FlowNodeMapper; import cn.huge.module.flow.domain.po.FlowNode; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; import java.util.Date; import java.util.List; import java.util.Map; /** * @title: 业务流程节点表业务逻辑处理 * @Description 业务流程节点表业务逻辑处理 * @company hugeinfo * @author liyj * @Time 2024-09-08 15:09:08 * @version 1.0.0 */ @Slf4j @Service @Transactional(rollbackFor = Exception.class) public class FlowNodeService extends ServiceImpl{ @Autowired private FlowNodeMapper mapper; @Autowired private UtilsClientImpl utilsClient; /** * 更新对象 * @param entity 对象 */ public void updateFlowNode(FlowNode entity){ try{ mapper.updateFlowNode(entity); }catch (Exception e){ log.error("[FlowNodeService.updateFlowNode]调用失败,异常信息:"+e, e); throw new ServiceException("FlowNodeService.updateFlowNode", e); } } /** * 条件更新对象 * @param entity 对象 * @param terms 条件 */ public void updateFlowNodeTerms(FlowNode entity, Map terms){ try{ mapper.updateFlowNodeTerms(entity, terms); }catch (Exception e){ log.error("[FlowNodeService.updateFlowNodeTerms]调用失败,异常信息:"+e, e); throw new ServiceException("FlowNodeService.updateFlowNodeTerms", e); } } /** * 根据编号物理删除 * @param id 查询条件集合 */ public void deleteFlowNode(String id){ try{ mapper.deleteFlowNode(id); }catch (Exception e){ log.error("[FlowNodeService.deleteFlowNode]调用失败,异常信息:"+e, e); throw new ServiceException("FlowNodeService.deleteFlowNode", e); } } /** * 按条件查询 * @param terms 条件 * @return List */ public List listTerms(Map terms){ return mapper.listTerms(terms); } /** * 按条件统计 * @param terms 条件 * @return long */ public long countTerms(Map terms){ return mapper.countTerms(terms); } /** * 按条件分页查询 * @param page 分页对象 * @param terms 条件 * @return Page */ public Page pageQuery(PageRequest page, Map terms){ long total = mapper.countTerms(terms); List content = mapper.pageTerms(page, terms); return new PageImpl(content, page, total); } /** * 新增或更新对象 * @param flowNode 实体对象 */ public void saveFlowNode(FlowNode flowNode){ try{ Date nowDate = DateUtils.getNowDate(); // 判断是否新增 if (IdUtils.checkNewId(flowNode.getId())){ flowNode.setId(utilsClient.getNewTimeId()); flowNode.setCreateTime(nowDate); } flowNode.setUpdateTime(nowDate); this.saveOrUpdate(flowNode); }catch (Exception e){ log.error("[FlowNodeService.saveFlowNode]调用失败,异常信息:"+e, e); throw new ServiceException("FlowNodeService.saveFlowNode", e); } } /** * 根据流程定义编号和节点编号查询 * @param flowableId 流程定义编号 * @param nodeId 节点编号 * @return FlowNode */ public FlowNode listByFlowAndNode(String flowableId, String nodeId){ QueryWrapper flowNodeQueryWrapper = new QueryWrapper<>(); flowNodeQueryWrapper.eq("flowable_id", flowableId).eq("node_id", nodeId); return mapper.selectOne(flowNodeQueryWrapper); } }