commit
This commit is contained in:
@@ -5,19 +5,14 @@
|
||||
|
||||
package io.v.nutz.base.model;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.wizzer.framework.base.model.BaseModel;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import java.util.Date;
|
||||
import org.nutz.dao.entity.annotation.ColDefine;
|
||||
import org.nutz.dao.entity.annotation.ColType;
|
||||
import org.nutz.dao.entity.annotation.Column;
|
||||
import org.nutz.dao.entity.annotation.Comment;
|
||||
import org.nutz.dao.entity.annotation.EL;
|
||||
import org.nutz.dao.entity.annotation.Name;
|
||||
import org.nutz.dao.entity.annotation.Prev;
|
||||
import org.nutz.dao.entity.annotation.Table;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Table("audit")
|
||||
public class Audit extends BaseModel {
|
||||
@Column
|
||||
@@ -93,6 +88,20 @@ public class Audit extends BaseModel {
|
||||
)
|
||||
private Integer auditType;
|
||||
|
||||
|
||||
public JSONObject getExt() {
|
||||
return ext;
|
||||
}
|
||||
|
||||
public void setExt(JSONObject ext) {
|
||||
this.ext = ext;
|
||||
}
|
||||
|
||||
@Column
|
||||
@Comment("扩展信息")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private JSONObject ext;
|
||||
|
||||
public Date nowDate() {
|
||||
return new Date();
|
||||
}
|
||||
|
||||
@@ -121,4 +121,9 @@ public class Sys_local_process_instance_task extends BaseModel {
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
private Boolean taskDeleteFlag;
|
||||
|
||||
@Column
|
||||
@Comment("上个任务ID")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Long prevTaskId;
|
||||
|
||||
}
|
||||
|
||||
@@ -107,4 +107,12 @@ public interface SysLocalProcessService {
|
||||
*/
|
||||
void revoke(String processUniqueId,String restoreTaskId);
|
||||
|
||||
|
||||
/**
|
||||
* 撤销任务
|
||||
*
|
||||
* @param processUniqueId 流程实例ID
|
||||
* @param taskNodeName 撤回后的节点名称 不相等会抛出异常
|
||||
*/
|
||||
void revokeTask(String processUniqueId, String taskNodeName);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package io.v.nutz.sys.services.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import io.v.nutz.sys.models.Sys_local_process_instance;
|
||||
import io.v.nutz.sys.models.Sys_local_process_instance_task;
|
||||
import io.v.nutz.sys.services.SysLocalProcessService;
|
||||
import io.v.nutz.web.commons.base.Globals;
|
||||
import io.v.nutz.zhgh.needhandlebycpu.service.HandleCpuCommonService;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.NoArgsConstructor;
|
||||
@@ -21,6 +21,7 @@ import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@IocBean
|
||||
@AllArgsConstructor
|
||||
@@ -29,8 +30,8 @@ public class SysLocalProcessServiceImpl implements SysLocalProcessService {
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
// @Inject
|
||||
// private HandleCpuCommonService handleCpuCommonService;
|
||||
@Inject
|
||||
private HandleCpuCommonService handleCpuCommonService;
|
||||
|
||||
@Override
|
||||
public void startProcess(String processName, String processUniqueId, String nodeName, String processInitiatorId, String pcUrl, String mobileUrl) {
|
||||
@@ -67,6 +68,20 @@ public class SysLocalProcessServiceImpl implements SysLocalProcessService {
|
||||
|
||||
@Override
|
||||
public void createTask(String processUniqueId, String taskUniqueId, String taskNodeName, String createdById, List<String> assignments, String formUrl, String formUrlView, String formMobileUrl, String formMobileUrlView) {
|
||||
int count = dao.count(Sys_local_process_instance_task.class, Cnd.where("processUniqueId", "=", processUniqueId)
|
||||
.and("taskNodeName", "=", taskNodeName)
|
||||
.and("processUniqueId", "=", processUniqueId)
|
||||
.and("taskUniqueId", "=", taskUniqueId)
|
||||
.and("taskDeleteFlag", "=", 0)
|
||||
.and("delFlag", "=", 0)
|
||||
.and("status", "=", 1)
|
||||
);
|
||||
if (count == 0) {
|
||||
Sys_local_process_instance_task prevTask = dao.fetch(Sys_local_process_instance_task.class, Cnd.where("processUniqueId", "=", processUniqueId)
|
||||
.and("taskDeleteFlag", "=", 0)
|
||||
.and("delFlag", "=", 0)
|
||||
);
|
||||
|
||||
Sys_local_process_instance_task task = new Sys_local_process_instance_task();
|
||||
task.setProcessUniqueId(processUniqueId);
|
||||
task.setTaskUniqueId(taskUniqueId);
|
||||
@@ -87,7 +102,9 @@ public class SysLocalProcessServiceImpl implements SysLocalProcessService {
|
||||
task.setFormMobileUrlView(formMobileUrlView);
|
||||
task.setStatus(1);
|
||||
task.setTaskDeleteFlag(false);
|
||||
task.setPrevTaskId(Optional.ofNullable(prevTask).map(Sys_local_process_instance_task::getId).orElse(null));
|
||||
dao.insert(task);
|
||||
}
|
||||
|
||||
// handleCpuCommonService.createExecTask(processUniqueId, taskUniqueId);
|
||||
}
|
||||
@@ -103,7 +120,7 @@ public class SysLocalProcessServiceImpl implements SysLocalProcessService {
|
||||
|
||||
dao.update(task);
|
||||
|
||||
// Sys_local_process_instance_task instanceTask = dao.fetch(Sys_local_process_instance_task.class, Cnd.where("taskUniqueId", "=", taskUniqueId).and("processUniqueId", "=", processUniqueId));
|
||||
Sys_local_process_instance_task instanceTask = dao.fetch(Sys_local_process_instance_task.class, Cnd.where("taskUniqueId", "=", taskUniqueId).and("processUniqueId", "=", processUniqueId));
|
||||
// handleCpuCommonService.finishTask(instanceTask.getId() + taskUniqueId);
|
||||
}
|
||||
}
|
||||
@@ -152,6 +169,23 @@ public class SysLocalProcessServiceImpl implements SysLocalProcessService {
|
||||
task.setStatus(1);
|
||||
dao.update(task, "status");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void revokeTask(String processUniqueId, String taskNodeName) {
|
||||
//待办撤回
|
||||
List<Sys_local_process_instance_task> tasks = dao.query(Sys_local_process_instance_task.class, Cnd.where("processUniqueId", "=", processUniqueId)
|
||||
.and("taskDeleteFlag", "=", 0)
|
||||
.and("delFlag", "=", 0)
|
||||
.limit(1, 2).desc("createdAt"));
|
||||
if (ObjectUtil.isNotEmpty(tasks) && tasks.size() == 2) {
|
||||
dao.update(Sys_local_process_instance_task.class, Chain.make("taskDeleteFlag", 1)
|
||||
.add("delFlag", 1), Cnd.where("id", "=", tasks.get(0).getId()));
|
||||
dao.update(Sys_local_process_instance_task.class, Chain.make("status", 1), Cnd.where("id", "=", tasks.get(1).getId()));
|
||||
dao.update(Sys_local_process_instance.class,Chain.make("processInstanceStatus",1).add("nodeName",taskNodeName),Cnd.where("processUniqueId","=",processUniqueId));
|
||||
}else{
|
||||
throw new RuntimeException("无法撤回,请联系管理员!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user