1.小修改

main
yitonglei 3 years ago
parent aa8d126359
commit 45499f8078
  1. 4
      lab-ops/lab-xxljob/src/main/java/org/springblade/job/executor/jobhandler/RepeatXxlJob.java
  2. 32
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/controller/WorkBenchController.java
  3. 2
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/util/RepeatQuarterClass.java
  4. 5
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/util/RepeatWeekClass.java
  5. 26
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workflow/process/service/impl/WfProcessService.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<String> repeatToStartProcessJob(String param) throws Exception {
log.info("执行工作流提醒任务。。。。");
remindClient.repeat();
repeatClient.repeat();
return ReturnT.SUCCESS;
}

@ -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<Process> processes = repositoryService.getBpmnModel(processDefinitionId).getProcesses();
List<FlowElement> 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);
}
}

@ -39,7 +39,7 @@ public class RepeatQuarterClass implements RepeatOperation{
} else {
localDate = localDate.withMonth(10);
}
//如果是每个季度第一天
if(now.equals(localDate)){
list.forEach(map ->{

@ -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());

@ -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<String, Object> variables){
//判断该类型的流程是否已经发起过,true false
//variables,本次发起的工作流的表单数据
private boolean isRepeatProcess(Map<String, Object> variables){
boolean b = false;
LambdaQueryWrapper<AutoStartModel> queryWrapper = Wrappers.lambdaQuery();
@ -241,10 +242,8 @@ public class WfProcessService implements IWfProcessService {
if (processInstanceVariable.size() > 0) {
for(Map<String,Object> 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<String,Object> map1, Map<String,Object> map2){
//判断是否全部相等 ,true 是 false 否
private boolean isAllEqual(Map<String,Object> map1, Map<String,Object> map2){
boolean result = true;
Set<Map.Entry<String, Object>> entries = map1.entrySet();
Iterator<Map.Entry<String, Object>> 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

Loading…
Cancel
Save