diff --git a/lab-ops/lab-xxljob/src/main/java/org/springblade/job/executor/jobhandler/RepeatXxlJob.java b/lab-ops/lab-xxljob/src/main/java/org/springblade/job/executor/jobhandler/RepeatXxlJob.java index 3765841..fec6c3c 100644 --- a/lab-ops/lab-xxljob/src/main/java/org/springblade/job/executor/jobhandler/RepeatXxlJob.java +++ b/lab-ops/lab-xxljob/src/main/java/org/springblade/job/executor/jobhandler/RepeatXxlJob.java @@ -17,12 +17,12 @@ import org.springframework.stereotype.Component; @AllArgsConstructor @Slf4j public class RepeatXxlJob { - private final IRepeatClient remindClient; + private final IRepeatClient repeatClient; @XxlJob("repeatToStartProcessJob") public ReturnT repeatToStartProcessJob(String param) throws Exception { log.info("执行工作流提醒任务。。。。"); - remindClient.repeat(); + repeatClient.repeat(); return ReturnT.SUCCESS; } diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/controller/WorkBenchController.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/controller/WorkBenchController.java index 4491ced..1e2ec4b 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/controller/WorkBenchController.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/controller/WorkBenchController.java @@ -70,37 +70,5 @@ public class WorkBenchController extends BladeController { return R.data(maps); } - //测试的 - @GetMapping("/getStatusProcess") - public void getStatusProcess(String processinstanceid){ - HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processinstanceid).singleResult(); - String businessStatus = historicProcessInstance.getBusinessStatus(); - String endActivityId = historicProcessInstance.getEndActivityId(); - String callbackId = historicProcessInstance.getCallbackId(); - String callbackType = historicProcessInstance.getCallbackType(); - System.out.println("businessStatus--" + businessStatus +",endActivityId--" +endActivityId +",callbackId--" + callbackId +",callbackType--" + callbackType); - } - - @GetMapping("/getNodes") - public R getNodes(String processinstancid){ - HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processinstancid).singleResult(); - String processDefinitionId = historicProcessInstance.getProcessDefinitionId(); - - List processes = repositoryService.getBpmnModel(processDefinitionId).getProcesses(); - List flowElementList = new ArrayList<>(); - processes.stream().forEach(p->{ - flowElementList.addAll(p.getFlowElements().stream() - .filter(start ->start instanceof StartEvent) - .collect(Collectors.toList())); - flowElementList.addAll(p.getFlowElements().stream() - .filter(start ->start instanceof UserTask) - .collect(Collectors.toList())); - flowElementList.addAll(p.getFlowElements().stream() - .filter(start ->start instanceof EndEvent) - .collect(Collectors.toList())); - }); - - return R.data(flowElementList); - } } diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/util/RepeatQuarterClass.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/util/RepeatQuarterClass.java index b848c46..388fab6 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/util/RepeatQuarterClass.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/util/RepeatQuarterClass.java @@ -39,7 +39,7 @@ public class RepeatQuarterClass implements RepeatOperation{ } else { localDate = localDate.withMonth(10); } - +//如果是每个季度第一天 if(now.equals(localDate)){ list.forEach(map ->{ diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/util/RepeatWeekClass.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/util/RepeatWeekClass.java index ee6c013..897fd96 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/util/RepeatWeekClass.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/util/RepeatWeekClass.java @@ -1,6 +1,7 @@ package org.springblade.plugin.workbench.util; import lombok.AllArgsConstructor; +import org.apache.commons.lang.StringUtils; import org.flowable.bpmn.model.FlowNode; import org.flowable.bpmn.model.Process; import org.flowable.cmmn.engine.impl.cmd.DeleteTaskCmd; @@ -45,8 +46,8 @@ public class RepeatWeekClass implements RepeatOperation{ LocalDateTime localDateTime = LocalDateTime.now(); DayOfWeek dayOfWeek = localDateTime.getDayOfWeek(); //MONDAY - //if(StringUtils.equals(dayOfWeek.name(),"MONDAY")){ //如果是周一才执行 - if(true){ + if(StringUtils.equals(dayOfWeek.name(),"MONDAY")){ //如果是周一才执行 +// if(true){ list.forEach(map ->{ identityService.setAuthenticatedUserId(map.get("applyUser").toString()); diff --git a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workflow/process/service/impl/WfProcessService.java b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workflow/process/service/impl/WfProcessService.java index 635293d..2f402f1 100644 --- a/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workflow/process/service/impl/WfProcessService.java +++ b/lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workflow/process/service/impl/WfProcessService.java @@ -188,7 +188,7 @@ public class WfProcessService implements IWfProcessService { ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefId, definition.getKey(), variables); return handleProcessInstance(processInstance, variables); - }else if(this.isNewProcess(variables) && StringUtils.equals(variables.get("forcestart").toString(),"0")){ + }else if(this.isRepeatProcess(variables) && StringUtils.equals(variables.get("forcestart").toString(),"0")){ return "类似任务已经发起过,是否要强制发起"; }else{ //如果是技术员发起的一般任务,直接指定assignee = 公司 @@ -226,8 +226,9 @@ public class WfProcessService implements IWfProcessService { } - //判断该类型的流程是否已经发起过,false:有重复的,true:没重复 - private boolean isNewProcess(Map variables){ + //判断该类型的流程是否已经发起过,true false + //variables,本次发起的工作流的表单数据 + private boolean isRepeatProcess(Map variables){ boolean b = false; LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); @@ -241,10 +242,8 @@ public class WfProcessService implements IWfProcessService { if (processInstanceVariable.size() > 0) { for(Map hi : processInstanceVariable){ - boolean noEqual = this.isNoEqual(variables, hi); - if(noEqual){//有不相等的,直接下一次循环判断 - continue; - }else{//没有不相等的,说明有重复的,结束循环,返回b=true + boolean isAllEqual = this.isAllEqual(variables, hi); + if(isAllEqual){ b = true; break; } @@ -254,8 +253,9 @@ public class WfProcessService implements IWfProcessService { return b; } -//判断是否有不相等的,true 有 false没有 - private boolean isNoEqual(Map map1, Map map2){ +//判断是否全部相等 ,true 是 false 否 + private boolean isAllEqual(Map map1, Map map2){ + boolean result = true; Set> entries = map1.entrySet(); Iterator> iterator = entries.iterator(); while(iterator.hasNext()){ @@ -264,11 +264,13 @@ public class WfProcessService implements IWfProcessService { continue; } - if(!Func.equals(next.getValue(),map2.get(next.getKey()))){ - return true; + if(StringUtils.equals(next.getValue().toString(),map2.get(next.getKey()).toString())){ + continue; + }else{ + result = false; } } - return false; + return result; } @Override