From 5d3af1a9321da023b7d14b2da1daa6d9544cf445 Mon Sep 17 00:00:00 2001 From: songgaoshuai <1742057357@qq.com> Date: 星期一, 03 六月 2024 13:48:30 +0800 Subject: [PATCH] add 添加单据暂存状态 --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java | 52 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 44 insertions(+), 8 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java index bee5627..2ae88ad 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java @@ -5,6 +5,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.event.ProcessEvent; +import org.dromara.common.core.domain.event.ProcessTaskEvent; +import org.dromara.common.core.enums.BusinessStatusEnum; +import org.dromara.common.core.service.WorkflowService; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StringUtils; @@ -15,9 +20,8 @@ import org.dromara.workflow.domain.bo.TestLeaveBo; import org.dromara.workflow.domain.vo.TestLeaveVo; import org.dromara.workflow.mapper.TestLeaveMapper; -import org.dromara.workflow.service.IActProcessInstanceService; import org.dromara.workflow.service.ITestLeaveService; -import org.dromara.workflow.utils.WorkflowUtils; +import org.springframework.context.event.EventListener; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -32,10 +36,11 @@ */ @RequiredArgsConstructor @Service +@Slf4j public class TestLeaveServiceImpl implements ITestLeaveService { private final TestLeaveMapper baseMapper; - private final IActProcessInstanceService actProcessInstanceService; + private final WorkflowService workflowService; /** * 鏌ヨ璇峰亣 @@ -43,7 +48,7 @@ @Override public TestLeaveVo queryById(Long id) { TestLeaveVo testLeaveVo = baseMapper.selectVoById(id); - WorkflowUtils.setProcessInstanceVo(testLeaveVo, String.valueOf(id)); + workflowService.setBusinessInstanceDTO(testLeaveVo, String.valueOf(id)); return testLeaveVo; } @@ -58,7 +63,7 @@ List<TestLeaveVo> rows = build.getRows(); if (CollUtil.isNotEmpty(rows)) { List<String> ids = StreamUtils.toList(rows, e -> String.valueOf(e.getId())); - WorkflowUtils.setProcessInstanceListVo(rows, ids, "id"); + workflowService.setBusinessInstanceListDTO(rows, ids, "id"); } return build; } @@ -87,12 +92,15 @@ @Override public TestLeaveVo insertByBo(TestLeaveBo bo) { TestLeave add = MapstructUtils.convert(bo, TestLeave.class); + if (StringUtils.isBlank(add.getStatus())) { + add.setStatus(BusinessStatusEnum.DRAFT.getStatus()); + } boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); } TestLeaveVo testLeaveVo = MapstructUtils.convert(add, TestLeaveVo.class); - WorkflowUtils.setProcessInstanceVo(testLeaveVo, String.valueOf(add.getId())); + workflowService.setBusinessInstanceDTO(testLeaveVo, String.valueOf(add.getId())); return testLeaveVo; } @@ -104,7 +112,7 @@ TestLeave update = MapstructUtils.convert(bo, TestLeave.class); baseMapper.updateById(update); TestLeaveVo testLeaveVo = MapstructUtils.convert(update, TestLeaveVo.class); - WorkflowUtils.setProcessInstanceVo(testLeaveVo, String.valueOf(update.getId())); + workflowService.setBusinessInstanceDTO(testLeaveVo, String.valueOf(update.getId())); return testLeaveVo; } @@ -115,7 +123,35 @@ @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection<Long> ids) { List<String> idList = StreamUtils.toList(ids, String::valueOf); - actProcessInstanceService.deleteRunAndHisInstanceByBusinessKeys(idList); + workflowService.deleteRunAndHisInstance(idList); return baseMapper.deleteBatchIds(ids) > 0; } + + /** + * 鎬讳綋娴佺▼鐩戝惉(渚嬪: 鎻愪氦 閫�鍥� 鎾ら攢 缁堟 浣滃簾绛�) + * + * @param processEvent 鍙傛暟 + */ + @EventListener(condition = "#processEvent.key=='leave1'") + public void processHandler(ProcessEvent processEvent) { + log.info("褰撳墠浠诲姟鎵ц浜唟}", processEvent.toString()); + TestLeave testLeave = baseMapper.selectById(Long.valueOf(processEvent.getBusinessKey())); + testLeave.setStatus(processEvent.getStatus()); + baseMapper.updateById(testLeave); + } + + /** + * 鎵ц鍔炵悊浠诲姟鐩戝惉 + * + * @param processTaskEvent 鍙傛暟 + */ + @EventListener(condition = "#processTaskEvent.keyNode=='leave1_Activity_14633hx'") + public void processTaskHandler(ProcessTaskEvent processTaskEvent) { + log.info("褰撳墠浠诲姟鎵ц浜唟}", processTaskEvent.toString()); + TestLeave testLeave = baseMapper.selectById(Long.valueOf(processTaskEvent.getBusinessKey())); + testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus()); + baseMapper.updateById(testLeave); + } + + } -- Gitblit v1.9.3