1.工作流元数据保存增加了相关处理,如果中途元流程中止,元数据也会删除。

2.工作流model增加了条件,自动发起的工作流跳过中间节点直接到“运维公司执行任务”
main
yitonglei 3 years ago
parent 359f051e42
commit 9c3acad106
  1. 18
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/homepage/service/impl/HomePageServiceImpl.java
  2. 1
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/service/impl/AutoStartModelServiceImpl.java
  3. 15
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/util/RepeatMonthClass.java
  4. 15
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/util/RepeatQuarterClass.java
  5. 37
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/util/RepeatWeekClass.java
  6. 4
      lab-plugin/lab-workflow/src/main/java/org/springblade/plugin/workbench/vo/AutoStartModelVO.java

@ -2,6 +2,7 @@ package org.springblade.plugin.homepage.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import liquibase.pro.packaged.E;
import lombok.AllArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.flowable.engine.HistoryService;
@ -172,13 +173,16 @@ public class HomePageServiceImpl implements IHomePageService {
for(Task task : listNeedDo){
String executionId = task.getExecutionId();
System.out.println("executionid--" + executionId);
Map<String, Object> variables = runtimeService.getVariables(task.getExecutionId());
Date qiwangwanchengshijian = DateUtil.parse(variables.get("qiwangwanchengshijian").toString(), "yyyy-MM-dd HH:mm:ss");
Duration between = DateUtil.between(qiwangwanchengshijian, DateUtil.now());
if(!between.isNegative()){ //between.isNegative() true ,现在时间小于任务结束时间,false消灾时间大于任务结束时间
expireNum ++;
try {
Date qiwangwanchengshijian = DateUtil.parse(variables.get("qiwangwanchengshijian").toString(), "yyyy-MM-dd HH:mm:ss");
Duration between = DateUtil.between(qiwangwanchengshijian, DateUtil.now());
if (!between.isNegative()) { //between.isNegative() true ,现在时间小于任务结束时间,false消灾时间大于任务结束时间
expireNum++;
}
}catch (Exception e){
e.printStackTrace();
continue;
}
}
@ -474,7 +478,7 @@ public class HomePageServiceImpl implements IHomePageService {
if(StringUtils.contains(historicActivityInstance.getActivityName(), "审批")){
map.put("审批中", map.get("审批中") == null ? 1 : map.get("审批中") + 1);
}else{
map.put("行中", map.get("行中") == null ? 1 : map.get("行中") + 1);
map.put("行中", map.get("行中") == null ? 1 : map.get("行中") + 1);
}
// map.put(historicActivityInstance.getActivityName(), map.get(historicActivityInstance.getActivityName()) == null ? 1 : map.get(historicActivityInstance.getActivityName()) + 1);
}

@ -109,6 +109,7 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe
copy.setDeptName(sysClient.getDeptName(l.getManagement()).getData());
copy.setRepeatMode(DictBizCache.getById(l.getRepeatMode()).getDictValue());
copy.setMaintenanceCompany(UserCache.getUser(l.getMaintenanceCompany()).getName());
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().processInstanceId(l.getProcessInstanceId())
.orderByHistoricTaskInstanceStartTime().desc().list().get(0);

@ -34,33 +34,20 @@ public class RepeatMonthClass implements RepeatOperation{
if(dayOfMonth == 1){ //如果是每月第一天才执行
list.forEach(map ->{
//
identityService.setAuthenticatedUserId(map.get("applyUser").toString());
//开始时间
String start = map.get("start").toString();
//definitationid
String processDefId = map.get("defid").toString();
//defnationkey
String defKey = map.get("defkey").toString();
//重复次数
Integer repeatNum = Integer.parseInt(map.get("repeatnum").toString());
//实例id
String processinstanceId = map.get("processinstanceid").toString();
//角色名称
String createRoleName = map.get("createRoleName").toString();
map.remove("defid");
map.remove("defkey");
map.remove("repeatnum");
map.remove("processinstanceid");
//如果是技术员发起的一般任务,直接指定assignee = 公司
if(Func.equals(createRoleName, WfProcessConstant.COMMENT_ROLE_NAME) && Func.equals(map.get("$renwudengji"), WfProcessConstant.COMMENT_TASK_LEVEL)){
map.put("assignee",map.get("yunweigongsi"));
}
wfProcessService.autoStartProcessInstanceById(processDefId, defKey, map);
wfProcessService.autoStartProcessInstanceById(processDefId,defKey,map);
});
}

@ -42,32 +42,19 @@ public class RepeatQuarterClass implements RepeatOperation{
if(now.equals(localDate)){
list.forEach(map ->{
//
identityService.setAuthenticatedUserId(map.get("applyUser").toString());
//开始时间
String start = map.get("start").toString();
//definitationid
String processDefId = map.get("defid").toString();
//defnationkey
String defKey = map.get("defkey").toString();
//重复次数
Integer repeatNum = Integer.parseInt(map.get("repeatnum").toString());
//实例id
String processinstanceId = map.get("processinstanceid").toString();
//角色名称
String createRoleName = map.get("createRoleName").toString();
map.remove("defid");
map.remove("defkey");
map.remove("repeatnum");
map.remove("processinstanceid");
//如果是技术员发起的一般任务,直接指定assignee = 公司
if(Func.equals(createRoleName, WfProcessConstant.COMMENT_ROLE_NAME) && Func.equals(map.get("$renwudengji"), WfProcessConstant.COMMENT_TASK_LEVEL)){
map.put("assignee",map.get("yunweigongsi"));
}
wfProcessService.autoStartProcessInstanceById(processDefId,defKey,map);
});

@ -55,47 +55,12 @@ public class RepeatWeekClass implements RepeatOperation{
//defnationkey
String defKey = map.get("defkey").toString();
//实例id
String processinstanceId = map.get("processinstanceid").toString();
//角色名称
String createRoleName = map.get("createRoleName").toString();
map.remove("defid");
map.remove("defkey");
map.remove("repeatnum");
map.remove("processinstanceid");
//如果是技术员发起的一般任务,直接指定assignee = 公司
if(Func.equals(createRoleName, WfProcessConstant.COMMENT_ROLE_NAME) && Func.equals(map.get("$renwudengji"), WfProcessConstant.COMMENT_TASK_LEVEL)){
map.put("assignee",map.get("yunweigongsi"));
}
String processInstanceId = wfProcessService.autoStartProcessInstanceById(processDefId, defKey, map);
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
// boolean b = false;
// while(!b){
// List<Task> list1 = taskService.createTaskQuery().processInstanceId(processInstanceId).list();
// while(list1.size() > 0){
// for(Task task :list1){
// String name = task.getName();
// if(!StringUtils.contains(name,"运维公司执行任务")){
// taskService.complete(task.getId());
// try {
// Thread.sleep(2000);
// }catch (Exception e){
// e.printStackTrace();
// }
// }else{
// b = true;
// }
// }
// }
// }
wfProcessService.autoStartProcessInstanceById(processDefId, defKey, map);
});
}

@ -32,4 +32,8 @@ public class AutoStartModelVO implements Serializable {
private String taskId;
private Integer isBreak;
private Date breakTime;
}

Loading…
Cancel
Save