|
|
|
@ -2,6 +2,7 @@ package org.springblade.plugin.workbench.service.impl; |
|
|
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
|
|
|
import liquibase.pro.packaged.E; |
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
import lombok.AllArgsConstructor; |
|
|
|
import lombok.NonNull; |
|
|
|
import lombok.NonNull; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
@ -30,6 +31,8 @@ import org.springblade.plugin.operation.system.service.IModuleInfoService; |
|
|
|
import org.springblade.plugin.operation.system.service.IProjectInfoService; |
|
|
|
import org.springblade.plugin.operation.system.service.IProjectInfoService; |
|
|
|
import org.springblade.plugin.operation.task.entity.TaskInfo; |
|
|
|
import org.springblade.plugin.operation.task.entity.TaskInfo; |
|
|
|
import org.springblade.plugin.operation.task.service.ITaskInfoService; |
|
|
|
import org.springblade.plugin.operation.task.service.ITaskInfoService; |
|
|
|
|
|
|
|
import org.springblade.plugin.operation.workorder.entity.WorkOrder; |
|
|
|
|
|
|
|
import org.springblade.plugin.operation.workorder.service.IWorkOrderService; |
|
|
|
import org.springblade.plugin.workbench.cache.FlowCache; |
|
|
|
import org.springblade.plugin.workbench.cache.FlowCache; |
|
|
|
import org.springblade.plugin.workbench.entity.AutoStartModel; |
|
|
|
import org.springblade.plugin.workbench.entity.AutoStartModel; |
|
|
|
import org.springblade.plugin.workbench.enumutil.RepeatEnum; |
|
|
|
import org.springblade.plugin.workbench.enumutil.RepeatEnum; |
|
|
|
@ -37,15 +40,18 @@ import org.springblade.plugin.workbench.enumutil.RepeatTypeEnum; |
|
|
|
import org.springblade.plugin.workbench.mapper.BladeManMadeMapper; |
|
|
|
import org.springblade.plugin.workbench.mapper.BladeManMadeMapper; |
|
|
|
import org.springblade.plugin.workbench.service.IAutoStartModelService; |
|
|
|
import org.springblade.plugin.workbench.service.IAutoStartModelService; |
|
|
|
import org.springblade.plugin.workbench.vo.AutoStartModelVO; |
|
|
|
import org.springblade.plugin.workbench.vo.AutoStartModelVO; |
|
|
|
|
|
|
|
import org.springblade.plugin.workflow.core.utils.WfTaskUtil; |
|
|
|
import org.springblade.system.cache.DictBizCache; |
|
|
|
import org.springblade.system.cache.DictBizCache; |
|
|
|
import org.springblade.system.cache.SysCache; |
|
|
|
import org.springblade.system.cache.SysCache; |
|
|
|
import org.springblade.system.entity.Dept; |
|
|
|
import org.springblade.system.entity.Dept; |
|
|
|
import org.springblade.system.feign.ISysClient; |
|
|
|
import org.springblade.system.feign.ISysClient; |
|
|
|
import org.springblade.system.user.cache.UserCache; |
|
|
|
import org.springblade.system.user.cache.UserCache; |
|
|
|
import org.springframework.scheduling.annotation.Async; |
|
|
|
import org.springframework.scheduling.annotation.Async; |
|
|
|
|
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
|
|
|
import javax.validation.constraints.NotEmpty; |
|
|
|
import javax.validation.constraints.NotEmpty; |
|
|
|
|
|
|
|
import java.time.Duration; |
|
|
|
import java.util.*; |
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
@ -71,6 +77,8 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe |
|
|
|
|
|
|
|
|
|
|
|
private final IDataTableService dataTableService; |
|
|
|
private final IDataTableService dataTableService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final IWorkOrderService workOrderService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@ -166,83 +174,239 @@ public class AutoStartModelServiceImpl extends BaseServiceImpl<BladeManMadeMappe |
|
|
|
* 其次是计算下一次工单开启时间和期望结束时间 |
|
|
|
* 其次是计算下一次工单开启时间和期望结束时间 |
|
|
|
* @param processinstanceId |
|
|
|
* @param processinstanceId |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
|
|
|
|
// @Override
|
|
|
|
|
|
|
|
//// @Async("taskExecutor")
|
|
|
|
|
|
|
|
// public void updateAutoStartModel(String processinstanceId){
|
|
|
|
|
|
|
|
// try{
|
|
|
|
|
|
|
|
// Thread.sleep(200);
|
|
|
|
|
|
|
|
// }catch (Exception e){
|
|
|
|
|
|
|
|
// e.printStackTrace();
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //查询AutoStartModel status = 1 isBreak = 0的数据
|
|
|
|
|
|
|
|
// LambdaQueryWrapper<AutoStartModel> autoStartModelWrapper = Wrappers.lambdaQuery();
|
|
|
|
|
|
|
|
// autoStartModelWrapper.eq(AutoStartModel::getProcessInstanceId,processinstanceId).eq(AutoStartModel::getIsBreak,0);
|
|
|
|
|
|
|
|
// List<AutoStartModel> list = this.list(autoStartModelWrapper);
|
|
|
|
|
|
|
|
// if(list.size() > 0){
|
|
|
|
|
|
|
|
// list.forEach(autoStartModel -> {
|
|
|
|
|
|
|
|
// autoStartModel.setStatus(10);
|
|
|
|
|
|
|
|
// List<HistoricVariableInstance> variableList = historyService.createHistoricVariableInstanceQuery().processInstanceId(processinstanceId).list();
|
|
|
|
|
|
|
|
// Date qiwangwanchengshijian = DateUtil.plusDays(DateUtil.now(),1);
|
|
|
|
|
|
|
|
// for(HistoricVariableInstance hv : variableList){
|
|
|
|
|
|
|
|
// switch (hv.getVariableName()){
|
|
|
|
|
|
|
|
// case "guanlibumen":
|
|
|
|
|
|
|
|
// autoStartModel.setManagement(Long.valueOf(hv.getValue().toString()));
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
// case "renwufulei":
|
|
|
|
|
|
|
|
// autoStartModel.setTaskParent(Long.valueOf(hv.getValue().toString()));
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
// case "renwuzhonglei":
|
|
|
|
|
|
|
|
// autoStartModel.setTaskType(Long.valueOf(hv.getValue().toString()));
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
// case "renwudengji":
|
|
|
|
|
|
|
|
// autoStartModel.setTaskLevel(Long.valueOf(hv.getValue().toString()));
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
// case "xitongmingchengshujuku":
|
|
|
|
|
|
|
|
// autoStartModel.setOperateSys(Long.valueOf(hv.getValue().toString()));
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
// case "xitongmokuaishujubiao":
|
|
|
|
|
|
|
|
// autoStartModel.setOperateModule(Long.valueOf(hv.getValue().toString()));
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
// case "chongfumoshi":
|
|
|
|
|
|
|
|
// autoStartModel.setRepeatMode(Long.valueOf(hv.getValue().toString()));
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
// case "qiwangwanchengshijian":
|
|
|
|
|
|
|
|
// qiwangwanchengshijian = DateUtil.parse(hv.getValue().toString(),"yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
// case "type":
|
|
|
|
|
|
|
|
// autoStartModel.setRepeatMode(Long.valueOf(hv.getValue().toString()));
|
|
|
|
|
|
|
|
// break;
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// //获取工作流的开始时间
|
|
|
|
|
|
|
|
// HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processinstanceId).singleResult();
|
|
|
|
|
|
|
|
// Date startTime = historicProcessInstance.getStartTime();
|
|
|
|
|
|
|
|
//// Date nextStartTime;
|
|
|
|
|
|
|
|
//// Date nextEndTime;
|
|
|
|
|
|
|
|
//// //获取任务重复模式
|
|
|
|
|
|
|
|
//// Long repeatMode = autoStartModel.getRepeatMode();
|
|
|
|
|
|
|
|
//// System.out.println(Long.valueOf(RepeatEnum.每周.getCode()));
|
|
|
|
|
|
|
|
//// System.out.println(repeatMode);
|
|
|
|
|
|
|
|
//// if(StringUtils.equals(RepeatEnum.每周.getCode(),repeatMode.toString())){
|
|
|
|
|
|
|
|
//// nextStartTime = DateUtil.plusWeeks(startTime,1);
|
|
|
|
|
|
|
|
//// nextEndTime = DateUtil.plusWeeks(qiwangwanchengshijian,1);
|
|
|
|
|
|
|
|
//// }else if(StringUtils.equals(RepeatEnum.每月.getCode(),repeatMode.toString())){
|
|
|
|
|
|
|
|
//// nextStartTime = DateUtil.plusMonths(startTime,1);
|
|
|
|
|
|
|
|
//// nextEndTime = DateUtil.plusMonths(qiwangwanchengshijian,1);
|
|
|
|
|
|
|
|
//// }else if(StringUtils.equals(RepeatEnum.每季度.getCode(),repeatMode.toString())){
|
|
|
|
|
|
|
|
//// nextStartTime = DateUtil.plusMonths(startTime,3);
|
|
|
|
|
|
|
|
//// nextEndTime = DateUtil.plusMonths(qiwangwanchengshijian,3);
|
|
|
|
|
|
|
|
//// }else if(StringUtils.equals(RepeatEnum.每天.getCode(),repeatMode.toString())){
|
|
|
|
|
|
|
|
//// nextStartTime = DateUtil.plusDays(startTime,1);
|
|
|
|
|
|
|
|
//// nextEndTime = DateUtil.plusDays(qiwangwanchengshijian,1);
|
|
|
|
|
|
|
|
//// }else if(StringUtils.equals(RepeatEnum.每分钟.getCode(),repeatMode.toString())){
|
|
|
|
|
|
|
|
//// nextStartTime = DateUtil.plusMinutes(startTime,1);
|
|
|
|
|
|
|
|
//// nextEndTime = DateUtil.plusMinutes(qiwangwanchengshijian,1);
|
|
|
|
|
|
|
|
//// }
|
|
|
|
|
|
|
|
//// else{
|
|
|
|
|
|
|
|
//// return;
|
|
|
|
|
|
|
|
//// }
|
|
|
|
|
|
|
|
// //还要自动生成work_order,所以以本次的信息为依据,auto_start_model nextFlag = 1 ,表示已经生成工单了
|
|
|
|
|
|
|
|
// autoStartModel.setNextStartTime(startTime);
|
|
|
|
|
|
|
|
// autoStartModel.setNextEndTime(qiwangwanchengshijian);
|
|
|
|
|
|
|
|
// autoStartModel.setNextFlag(1);
|
|
|
|
|
|
|
|
// baseMapper.updateById(autoStartModel);
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// //生成工单
|
|
|
|
|
|
|
|
// WorkOrder workOrder = new WorkOrder();
|
|
|
|
|
|
|
|
// workOrder.setProcessInstanceId(autoStartModel.getProcessInstanceId());
|
|
|
|
|
|
|
|
// workOrder.setTenantId(autoStartModel.getTenantId());
|
|
|
|
|
|
|
|
// workOrder.setApplyUser(autoStartModel.getApplyUser().toString());
|
|
|
|
|
|
|
|
// workOrder.setMaintenanceCompany(autoStartModel.getMaintenanceCompany().toString());
|
|
|
|
|
|
|
|
// workOrder.setManagement(autoStartModel.getManagement().toString());
|
|
|
|
|
|
|
|
// workOrder.setTaskParent(autoStartModel.getTaskParent().toString());
|
|
|
|
|
|
|
|
// workOrder.setTaskType(autoStartModel.getTaskType().toString());
|
|
|
|
|
|
|
|
// workOrder.setTaskLevel(autoStartModel.getTaskLevel().toString());
|
|
|
|
|
|
|
|
// workOrder.setRepeatMode(autoStartModel.getRepeatMode().toString());
|
|
|
|
|
|
|
|
// workOrder.setType(autoStartModel.getType());
|
|
|
|
|
|
|
|
// workOrder.setOperateSys(autoStartModel.getOperateSys().toString());
|
|
|
|
|
|
|
|
// workOrder.setOperateModule(autoStartModel.getOperateModule().toString());
|
|
|
|
|
|
|
|
// //如果是运维公司发起的日常任务(普通),生成工单,并标记为已完成
|
|
|
|
|
|
|
|
// if(StringUtils.equals(autoStartModel.getApplyRole(),"运维公司") && StringUtils.equals(autoStartModel.getTaskLevel().toString(),"1624973130579636225")){
|
|
|
|
|
|
|
|
// workOrder.setIsFinish(1);
|
|
|
|
|
|
|
|
// workOrder.setFinishTime(qiwangwanchengshijian);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
//
|
|
|
|
|
|
|
|
// workOrderService.save(workOrder);
|
|
|
|
|
|
|
|
// });
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
@Async("taskExecutor") |
|
|
|
public void updateAutoStartModel(String processinstanceId,Map<String,Object> variables){ |
|
|
|
public void updateAutoStartModel(String processinstanceId){ |
|
|
|
try{ |
|
|
|
//查询AutoStartModel status = 10 isBreak = 0的数据
|
|
|
|
Thread.sleep(200); |
|
|
|
|
|
|
|
}catch (Exception e){ |
|
|
|
|
|
|
|
e.printStackTrace(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//查询AutoStartModel status = 1 isBreak = 0的数据
|
|
|
|
LambdaQueryWrapper<AutoStartModel> autoStartModelWrapper = Wrappers.lambdaQuery(); |
|
|
|
LambdaQueryWrapper<AutoStartModel> autoStartModelWrapper = Wrappers.lambdaQuery(); |
|
|
|
autoStartModelWrapper.eq(AutoStartModel::getProcessInstanceId,processinstanceId).eq(AutoStartModel::getIsBreak,0); |
|
|
|
autoStartModelWrapper.eq(AutoStartModel::getProcessInstanceId,processinstanceId).eq(AutoStartModel::getIsBreak,0); |
|
|
|
List<AutoStartModel> list = this.list(autoStartModelWrapper); |
|
|
|
AutoStartModel autoStartModel = baseMapper.selectOne(autoStartModelWrapper); |
|
|
|
if(list.size() > 0){ |
|
|
|
Date qiwangwanchengshijian; |
|
|
|
list.forEach(autoStartModel -> { |
|
|
|
if(Func.isNotEmpty(autoStartModel)){ |
|
|
|
autoStartModel.setStatus(10); |
|
|
|
autoStartModel.setStatus(10); |
|
|
|
List<HistoricVariableInstance> variableList = historyService.createHistoricVariableInstanceQuery().processInstanceId(processinstanceId).list(); |
|
|
|
|
|
|
|
Date qiwangwanchengshijian = DateUtil.plusDays(DateUtil.now(),1); |
|
|
|
autoStartModel.setManagement(Long.valueOf(variables.get("guanlibumen").toString())); |
|
|
|
for(HistoricVariableInstance hv : variableList){ |
|
|
|
|
|
|
|
switch (hv.getVariableName()){ |
|
|
|
autoStartModel.setTaskParent(Long.valueOf(variables.get("renwufulei").toString())); |
|
|
|
case "guanlibumen": |
|
|
|
|
|
|
|
autoStartModel.setManagement(Long.valueOf(hv.getValue().toString())); |
|
|
|
autoStartModel.setTaskType(Long.valueOf(variables.get("renwuzhonglei").toString())); |
|
|
|
break; |
|
|
|
|
|
|
|
case "renwufulei": |
|
|
|
autoStartModel.setTaskLevel(Long.valueOf(variables.get("renwudengji").toString())); |
|
|
|
autoStartModel.setTaskParent(Long.valueOf(hv.getValue().toString())); |
|
|
|
|
|
|
|
break; |
|
|
|
autoStartModel.setOperateSys(Long.valueOf(variables.get("xitongmingchengshujuku").toString())); |
|
|
|
case "renwuzhonglei": |
|
|
|
|
|
|
|
autoStartModel.setTaskType(Long.valueOf(hv.getValue().toString())); |
|
|
|
autoStartModel.setOperateModule(Long.valueOf(variables.get("xitongmokuaishujubiao").toString())); |
|
|
|
break; |
|
|
|
|
|
|
|
case "renwudengji": |
|
|
|
autoStartModel.setRepeatMode(Long.valueOf(variables.get("chongfumoshi").toString())); |
|
|
|
autoStartModel.setTaskLevel(Long.valueOf(hv.getValue().toString())); |
|
|
|
|
|
|
|
break; |
|
|
|
qiwangwanchengshijian = DateUtil.parse(variables.get("qiwangwanchengshijian").toString(),"yyyy-MM-dd HH:mm:ss"); |
|
|
|
case "xitongmingchengshujuku": |
|
|
|
|
|
|
|
autoStartModel.setOperateSys(Long.valueOf(hv.getValue().toString())); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "xitongmokuaishujubiao": |
|
|
|
|
|
|
|
autoStartModel.setOperateModule(Long.valueOf(hv.getValue().toString())); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "chongfumoshi": |
|
|
|
|
|
|
|
autoStartModel.setRepeatMode(Long.valueOf(hv.getValue().toString())); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "qiwangwanchengshijian": |
|
|
|
|
|
|
|
qiwangwanchengshijian = DateUtil.parse(hv.getValue().toString(),"yyyy-MM-dd HH:mm:ss"); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case "type": |
|
|
|
|
|
|
|
autoStartModel.setRepeatMode(Long.valueOf(hv.getValue().toString())); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//获取工作流的开始时间
|
|
|
|
//获取工作流的开始时间
|
|
|
|
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processinstanceId).singleResult(); |
|
|
|
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processinstanceId).singleResult(); |
|
|
|
Date startTime = historicProcessInstance.getStartTime(); |
|
|
|
Date startTime = historicProcessInstance.getStartTime(); |
|
|
|
Date nextStartTime; |
|
|
|
// Date nextStartTime;
|
|
|
|
Date nextEndTime; |
|
|
|
// Date nextEndTime;
|
|
|
|
//获取任务重复模式
|
|
|
|
// //获取任务重复模式
|
|
|
|
Long repeatMode = autoStartModel.getRepeatMode(); |
|
|
|
// Long repeatMode = autoStartModel.getRepeatMode();
|
|
|
|
System.out.println(Long.valueOf(RepeatEnum.每周.getCode())); |
|
|
|
// System.out.println(Long.valueOf(RepeatEnum.每周.getCode()));
|
|
|
|
System.out.println(repeatMode); |
|
|
|
// System.out.println(repeatMode);
|
|
|
|
if(StringUtils.equals(RepeatEnum.每周.getCode(),repeatMode.toString())){ |
|
|
|
// if(StringUtils.equals(RepeatEnum.每周.getCode(),repeatMode.toString())){
|
|
|
|
nextStartTime = DateUtil.plusWeeks(startTime,1); |
|
|
|
// nextStartTime = DateUtil.plusWeeks(startTime,1);
|
|
|
|
nextEndTime = DateUtil.plusWeeks(qiwangwanchengshijian,1); |
|
|
|
// nextEndTime = DateUtil.plusWeeks(qiwangwanchengshijian,1);
|
|
|
|
}else if(StringUtils.equals(RepeatEnum.每月.getCode(),repeatMode.toString())){ |
|
|
|
// }else if(StringUtils.equals(RepeatEnum.每月.getCode(),repeatMode.toString())){
|
|
|
|
nextStartTime = DateUtil.plusMonths(startTime,1); |
|
|
|
// nextStartTime = DateUtil.plusMonths(startTime,1);
|
|
|
|
nextEndTime = DateUtil.plusMonths(qiwangwanchengshijian,1); |
|
|
|
// nextEndTime = DateUtil.plusMonths(qiwangwanchengshijian,1);
|
|
|
|
}else if(StringUtils.equals(RepeatEnum.每季度.getCode(),repeatMode.toString())){ |
|
|
|
// }else if(StringUtils.equals(RepeatEnum.每季度.getCode(),repeatMode.toString())){
|
|
|
|
nextStartTime = DateUtil.plusMonths(startTime,3); |
|
|
|
// nextStartTime = DateUtil.plusMonths(startTime,3);
|
|
|
|
nextEndTime = DateUtil.plusMonths(qiwangwanchengshijian,3); |
|
|
|
// nextEndTime = DateUtil.plusMonths(qiwangwanchengshijian,3);
|
|
|
|
}else if(StringUtils.equals(RepeatEnum.每天.getCode(),repeatMode.toString())){ |
|
|
|
// }else if(StringUtils.equals(RepeatEnum.每天.getCode(),repeatMode.toString())){
|
|
|
|
nextStartTime = DateUtil.plusDays(startTime,1); |
|
|
|
// nextStartTime = DateUtil.plusDays(startTime,1);
|
|
|
|
nextEndTime = DateUtil.plusDays(qiwangwanchengshijian,1); |
|
|
|
// nextEndTime = DateUtil.plusDays(qiwangwanchengshijian,1);
|
|
|
|
}else if(StringUtils.equals(RepeatEnum.每分钟.getCode(),repeatMode.toString())){ |
|
|
|
// }else if(StringUtils.equals(RepeatEnum.每分钟.getCode(),repeatMode.toString())){
|
|
|
|
nextStartTime = DateUtil.plusMinutes(startTime,1); |
|
|
|
// nextStartTime = DateUtil.plusMinutes(startTime,1);
|
|
|
|
nextEndTime = DateUtil.plusMinutes(qiwangwanchengshijian,1); |
|
|
|
// nextEndTime = DateUtil.plusMinutes(qiwangwanchengshijian,1);
|
|
|
|
} |
|
|
|
// }
|
|
|
|
else{ |
|
|
|
// else{
|
|
|
|
return; |
|
|
|
// return;
|
|
|
|
} |
|
|
|
// }
|
|
|
|
autoStartModel.setNextStartTime(nextStartTime); |
|
|
|
//还要自动生成work_order,所以以本次的信息为依据,auto_start_model nextFlag = 1 ,表示已经生成工单了
|
|
|
|
autoStartModel.setNextEndTime(nextEndTime); |
|
|
|
autoStartModel.setNextStartTime(startTime); |
|
|
|
autoStartModel.setNextFlag(0); |
|
|
|
autoStartModel.setNextEndTime(qiwangwanchengshijian); |
|
|
|
|
|
|
|
autoStartModel.setNextFlag(1); |
|
|
|
baseMapper.updateById(autoStartModel); |
|
|
|
baseMapper.updateById(autoStartModel); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//生成工单
|
|
|
|
|
|
|
|
WorkOrder workOrder = new WorkOrder(); |
|
|
|
|
|
|
|
workOrder.setProcessInstanceId(autoStartModel.getProcessInstanceId()); |
|
|
|
|
|
|
|
workOrder.setTenantId(autoStartModel.getTenantId()); |
|
|
|
|
|
|
|
workOrder.setApplyUser(autoStartModel.getApplyUser().toString()); |
|
|
|
|
|
|
|
workOrder.setMaintenanceCompany(autoStartModel.getMaintenanceCompany().toString()); |
|
|
|
|
|
|
|
workOrder.setManagement(autoStartModel.getManagement().toString()); |
|
|
|
|
|
|
|
workOrder.setTaskParent(autoStartModel.getTaskParent().toString()); |
|
|
|
|
|
|
|
workOrder.setTaskType(autoStartModel.getTaskType().toString()); |
|
|
|
|
|
|
|
workOrder.setTaskLevel(autoStartModel.getTaskLevel().toString()); |
|
|
|
|
|
|
|
workOrder.setRepeatMode(autoStartModel.getRepeatMode().toString()); |
|
|
|
|
|
|
|
workOrder.setType(autoStartModel.getType()); |
|
|
|
|
|
|
|
workOrder.setOperateSys(autoStartModel.getOperateSys().toString()); |
|
|
|
|
|
|
|
workOrder.setOperateModule(autoStartModel.getOperateModule().toString()); |
|
|
|
|
|
|
|
//如果是运维公司发起的日常任务(普通),生成工单,并标记为已完成
|
|
|
|
|
|
|
|
if(StringUtils.equals(autoStartModel.getApplyRole(),"运维公司") && StringUtils.equals(autoStartModel.getTaskLevel().toString(),"1625035000825049090")){ |
|
|
|
|
|
|
|
workOrder.setIsFinish(1); |
|
|
|
|
|
|
|
workOrder.setFinishTime(qiwangwanchengshijian); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
workOrderService.save(workOrder); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void saveStartProcess(String processinstanceId,Map<String,Object> variables){ |
|
|
|
|
|
|
|
//将新增的流程实例id保存到blade_flow_autostart_model
|
|
|
|
|
|
|
|
AutoStartModel autoStartModel = new AutoStartModel(); |
|
|
|
|
|
|
|
autoStartModel.setProcessInstanceId(processinstanceId); |
|
|
|
|
|
|
|
HistoricProcessInstance processInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processinstanceId).singleResult(); |
|
|
|
|
|
|
|
Date startTime = processInstance.getStartTime(); |
|
|
|
|
|
|
|
Date qiwangwanchengshijian = DateUtil.parse(variables.get("qiwangwanchengshijian").toString(), "yyyy-MM-dd HH:mm:ss"); |
|
|
|
|
|
|
|
// Duration between = DateUtil.between(startTime, qiwangwanchengshijian);
|
|
|
|
|
|
|
|
// autoStartModel.setProcessSeconds(between.getSeconds());
|
|
|
|
|
|
|
|
autoStartModel.setApplyUser(Long.valueOf(variables.get("applyUser").toString())); |
|
|
|
|
|
|
|
autoStartModel.setApplyRole(variables.get("createRole").toString()); |
|
|
|
|
|
|
|
autoStartModel.setMaintenanceCompany(Long.valueOf(variables.get("yunweigongsi").toString())); |
|
|
|
|
|
|
|
autoStartModel.setManagement(Long.valueOf(variables.get("guanlibumen").toString())); |
|
|
|
|
|
|
|
autoStartModel.setTaskParent(Long.valueOf(variables.get("renwufulei").toString())); |
|
|
|
|
|
|
|
autoStartModel.setTaskType(Long.valueOf(variables.get("renwuzhonglei").toString())); |
|
|
|
|
|
|
|
autoStartModel.setTaskLevel(Long.valueOf(variables.get("renwudengji").toString())); |
|
|
|
|
|
|
|
autoStartModel.setRepeatMode(Long.valueOf(variables.get("chongfumoshi").toString())); |
|
|
|
|
|
|
|
autoStartModel.setType(Integer.parseInt(variables.get("type").toString())); |
|
|
|
|
|
|
|
autoStartModel.setOperateSys(Long.valueOf(variables.get("xitongmingchengshujuku").toString())); |
|
|
|
|
|
|
|
autoStartModel.setOperateModule(Long.valueOf(variables.get("xitongmokuaishujubiao").toString())); |
|
|
|
|
|
|
|
autoStartModel.setCreateTime(processInstance.getStartTime()); |
|
|
|
|
|
|
|
autoStartModel.setIsDeleted(0); |
|
|
|
|
|
|
|
autoStartModel.setUploadRecord(variables.get("uploadrecord").toString()); |
|
|
|
|
|
|
|
String deptId = AuthUtil.getDeptId(); |
|
|
|
|
|
|
|
Long userId = AuthUtil.getUser().getUserId(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
autoStartModel.setCreateUser(userId); |
|
|
|
|
|
|
|
autoStartModel.setCreateDept(Long.valueOf(deptId)); |
|
|
|
|
|
|
|
autoStartModel.setCreateTime(DateUtil.now()); |
|
|
|
|
|
|
|
baseMapper.insert(autoStartModel); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|