From 1d78b977329123fede3c8e41e20058acfb962b38 Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: Sun, 10 Dec 2023 11:18:34 +0800 Subject: [PATCH 1/3] =?UTF-8?q?update=20=20=E8=B0=83=E6=95=B4=E8=AF=B7?= =?UTF-8?q?=E5=81=87=E6=9F=A5=E8=AF=A2=20=E4=BF=AE=E6=94=B9=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=AE=9A=E4=B9=89=E6=9F=A5=E7=9C=8Bxml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ActProcessDefinitionController.java | 4 ++-- .../org/dromara/workflow/domain/bo/TestLeaveBo.java | 10 ++++++++++ .../workflow/service/impl/TestLeaveServiceImpl.java | 4 ++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessDefinitionController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessDefinitionController.java index 62c40188d..9b85168dd 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessDefinitionController.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActProcessDefinitionController.java @@ -4,7 +4,6 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; -import org.dromara.common.core.utils.StringUtils; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.TableDataInfo; @@ -16,6 +15,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -73,7 +73,7 @@ public class ActProcessDefinitionController extends BaseController { public R> getXml(@NotBlank(message = "流程定义id不能为空") @PathVariable String processDefinitionId) { Map map = new HashMap<>(); String xmlStr = actProcessDefinitionService.processDefinitionXml(processDefinitionId); - map.put("xml", StringUtils.splitList("\n")); + map.put("xml", Arrays.asList(xmlStr.split("\n"))); map.put("xmlStr", xmlStr); return R.ok(map); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java index 207eb16ae..e71be591a 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/TestLeaveBo.java @@ -56,6 +56,16 @@ public class TestLeaveBo extends BaseEntity { @NotNull(message = "请假天数不能为空", groups = {AddGroup.class, EditGroup.class}) private Integer leaveDays; + /** + * 开始时间 + */ + private Integer startLeaveDays; + + /** + * 结束时间 + */ + private Integer endLeaveDays; + /** * 请假原因 */ 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 6e291d2c3..af4f93123 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 @@ -71,10 +71,10 @@ public class TestLeaveServiceImpl implements ITestLeaveService { } private LambdaQueryWrapper buildQueryWrapper(TestLeaveBo bo) { - Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(StringUtils.isNotBlank(bo.getLeaveType()), TestLeave::getLeaveType, bo.getLeaveType()); - lqw.eq(bo.getLeaveDays() != null, TestLeave::getLeaveDays, bo.getLeaveDays()); + lqw.ge(bo.getStartLeaveDays() != null,TestLeave::getLeaveDays, bo.getStartLeaveDays()); + lqw.le(bo.getEndLeaveDays() != null,TestLeave::getLeaveDays, bo.getEndLeaveDays()); return lqw; } From 0774b7f25bdab87fa8e798ef23e526ba77294a4d Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: Sun, 10 Dec 2023 12:31:51 +0800 Subject: [PATCH 2/3] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=AE=A1=E6=89=B9=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ActProcessInstanceServiceImpl.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java index 323cc5e91..b1dee83b8 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java @@ -31,10 +31,7 @@ import org.dromara.workflow.flowable.cmd.ExecutionChildByExecutionIdCmd; import org.dromara.workflow.service.IActHiProcinstService; import org.dromara.workflow.service.IActProcessInstanceService; import org.dromara.workflow.utils.WorkflowUtils; -import org.flowable.bpmn.model.BpmnModel; -import org.flowable.bpmn.model.FlowElement; -import org.flowable.bpmn.model.GraphicInfo; -import org.flowable.bpmn.model.UserTask; +import org.flowable.bpmn.model.*; import org.flowable.engine.*; import org.flowable.engine.history.HistoricActivityInstance; import org.flowable.engine.history.HistoricProcessInstance; @@ -294,6 +291,18 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService graphicInfoVo.setNodeName(flowElement.getName()); graphicInfoVos.add(graphicInfoVo); } + if (flowElement instanceof SubProcess) { + Collection subFlowElements = ((SubProcess) flowElement).getFlowElements(); + for (FlowElement element : subFlowElements) { + if (element instanceof UserTask) { + GraphicInfo graphicInfo = bpmnModel.getGraphicInfo(element.getId()); + GraphicInfoVo graphicInfoVo = BeanUtil.toBean(graphicInfo, GraphicInfoVo.class); + graphicInfoVo.setNodeId(element.getId()); + graphicInfoVo.setNodeName(element.getName()); + graphicInfoVos.add(graphicInfoVo); + } + } + } } //节点图形信息 map.put("graphicInfoVos", graphicInfoVos); From b262fd64b743fc85fea7363d7eb1bdf8310cedfe Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: Tue, 12 Dec 2023 21:37:18 +0800 Subject: [PATCH 3/3] =?UTF-8?q?add=20=E6=B7=BB=E5=8A=A0=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E7=9B=91=E5=90=AC=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/TestLeaveExecutionListener.java | 30 ++++++++++++++++++ .../listener/TestLeaveTaskListener.java | 21 ++++++++++++ script/bpmn/请假流程(监听)-leave8.zip | Bin 0 -> 1535 bytes 3 files changed, 51 insertions(+) create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestLeaveExecutionListener.java create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestLeaveTaskListener.java create mode 100644 script/bpmn/请假流程(监听)-leave8.zip diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestLeaveExecutionListener.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestLeaveExecutionListener.java new file mode 100644 index 000000000..a3c220f15 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestLeaveExecutionListener.java @@ -0,0 +1,30 @@ +package org.dromara.workflow.listener; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.flowable.engine.RuntimeService; +import org.flowable.engine.TaskService; +import org.flowable.engine.delegate.DelegateExecution; +import org.flowable.engine.delegate.ExecutionListener; +import org.flowable.task.api.Task; +import org.springframework.stereotype.Component; + +/** + * 流程实例监听测试 + * + * @author may + * @date 2023-12-12 + */ +@Slf4j +@RequiredArgsConstructor +@Component("testLeaveExecutionListener") +public class TestLeaveExecutionListener implements ExecutionListener { + + private final TaskService taskService; + + @Override + public void notify(DelegateExecution execution) { + Task task = taskService.createTaskQuery().executionId(execution.getId()).singleResult(); + log.info("执行监听【" + task.getName() + "】"); + } +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestLeaveTaskListener.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestLeaveTaskListener.java new file mode 100644 index 000000000..5c62417a2 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestLeaveTaskListener.java @@ -0,0 +1,21 @@ +package org.dromara.workflow.listener; + +import lombok.extern.slf4j.Slf4j; +import org.flowable.task.service.delegate.DelegateTask; +import org.flowable.task.service.delegate.TaskListener; +import org.springframework.stereotype.Component; + +/** + * 流程任务监听测试 + * + * @author may + * @date 2023-12-12 + */ +@Slf4j +@Component("testLeaveTaskListener") +public class TestLeaveTaskListener implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + log.info("执行监听【" + delegateTask.getName() + "】"); + } +} diff --git a/script/bpmn/请假流程(监听)-leave8.zip b/script/bpmn/请假流程(监听)-leave8.zip new file mode 100644 index 0000000000000000000000000000000000000000..4c655036e6429cd7df284b01ac88fb038fdd6f7a GIT binary patch literal 1535 zcma)+Yd8}M7{|AWsW5lpq;kU4TnaHH=1>+%2SdswF}F}Ib4}!$OD?%J#9VUEZI(+e z*+NZji!BzJEzz2`WWuRWr}ORn-Vg8pdH&D)yx)E{2tIyE00;yEB-Y<|0Q`p9&&+JX z(c_Yq+v6BDX{_#KM)3oBRz0gb1?uPN7V4>|?jGnLa8gq}+~02wX_ZDbm+fUZ)Rez< zM4VDWUGJ9X2<`7G&hkT8f=r&ObRLt!64{%S-!MW1hb)9VV{1k?K!^fQ&y8k zbPdiQjxC;%YZ$*)o0S}FAp?V+XP~|2=SbYiaU1;w$3xY_jkPTA+JT$^N?OiNBdJW(A1ltq9|((qk;2ur-z84? zQv>Gk2c`IsM@D$vda34yiWYP9j|hmo7fQx79ysDTQU89nQO^EyuDnNyDsJ*TnLgr1 z`2a70E=MD`M&7x-ukZ0qop`bc(MpCbjSG3zX7}laPCqZ*{kHN^CU%?0;kGu>x__*5 zGiklNWyWcZ=eBuzqSojz+gAzD79kA}6YW4tdwvx|$jBY^J9x>Eg8O&%iJIl3ayI+5 z(gczzC5Oa)WRHwb_gMP^8{DmeOa8FftU&)sBNo-6l}~E2!CWDD#z(R16073zo%~6i z^FKbZV&b-UHy7`LTr6r&4;z=9y%hAI4IQ}bG&Sz8c-P=ed87Pcfk=3j;>lOd4aISd zYUsjQ=N}8sfpu+|c&vAFf_4WUattV}of!d~Fe>kFd1apAB`!(PJ<{=6Q0^*rX=9Ak zy9>ATF=$r`^fq45tf98w@RA2q5}vOP&HBi z0;6!?UShM+KxMBm~Nq|Hx7;wl2fO8Xp>7w18F z)$V^|9qpLY*sqzTK4AMORwKiJNOD=AM{c+ZQsc)iPf@az^vB{jF#rO*Ci8$EzXPk8&?wH!`8a@=(hVj3xLUqqWd*Cb3uIFe)tr^rVS&sDiUg-SxWA-DaMe7sw$?Fy!9FXPHcj5T{x92HU7{5NJfpi=;v2hg#^>vDo1t{D7IcSy0<(buMQd#h=DtQ z?(4dvdqbGgD&y*pN~0+6J`8>HsnmgDn~r?#^rBNkv^Y$cb}#R-2z2y8dCPC>2BOf|+9>5OWiW_*A%a;QtGGG+N3F-UH{ z#pn5}ITj+JQtQmy#fEey8CyiiHe9ZpMop3Oo+xePe=ULqH(RYR3A!Qn=CmNTtGAYA zh^%LaKT^4;?M&L%*1kH6TGq9uLy(zRcHpVoZ-||3%89DIo0-Fyba{>=@5(o7t9oot zE3J!+(%Gr&+7Put2!e6}_%Qvw0Kh(J0Kf(T+#?D2SINJ3zm)u6{=cAY5PJoF-2#6O M^5=f=^B(~44@aE$iU0rr literal 0 HcmV?d00001