commit
This commit is contained in:
@@ -5,19 +5,14 @@
|
|||||||
|
|
||||||
package io.v.nutz.base.model;
|
package io.v.nutz.base.model;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONObject;
|
||||||
import cn.wizzer.framework.base.model.BaseModel;
|
import cn.wizzer.framework.base.model.BaseModel;
|
||||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||||
import java.util.Date;
|
import org.nutz.dao.entity.annotation.*;
|
||||||
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.interceptor.annotation.PrevInsert;
|
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
@Table("audit")
|
@Table("audit")
|
||||||
public class Audit extends BaseModel {
|
public class Audit extends BaseModel {
|
||||||
@Column
|
@Column
|
||||||
@@ -93,6 +88,20 @@ public class Audit extends BaseModel {
|
|||||||
)
|
)
|
||||||
private Integer auditType;
|
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() {
|
public Date nowDate() {
|
||||||
return new Date();
|
return new Date();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,4 +121,9 @@ public class Sys_local_process_instance_task extends BaseModel {
|
|||||||
@ColDefine(type = ColType.BOOLEAN)
|
@ColDefine(type = ColType.BOOLEAN)
|
||||||
private Boolean taskDeleteFlag;
|
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);
|
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;
|
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;
|
||||||
import io.v.nutz.sys.models.Sys_local_process_instance_task;
|
import io.v.nutz.sys.models.Sys_local_process_instance_task;
|
||||||
import io.v.nutz.sys.services.SysLocalProcessService;
|
import io.v.nutz.sys.services.SysLocalProcessService;
|
||||||
import io.v.nutz.web.commons.base.Globals;
|
|
||||||
import io.v.nutz.zhgh.needhandlebycpu.service.HandleCpuCommonService;
|
import io.v.nutz.zhgh.needhandlebycpu.service.HandleCpuCommonService;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@@ -21,6 +21,7 @@ import org.nutz.ioc.loader.annotation.IocBean;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@IocBean
|
@IocBean
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@@ -29,8 +30,8 @@ public class SysLocalProcessServiceImpl implements SysLocalProcessService {
|
|||||||
@Inject
|
@Inject
|
||||||
private Dao dao;
|
private Dao dao;
|
||||||
|
|
||||||
// @Inject
|
@Inject
|
||||||
// private HandleCpuCommonService handleCpuCommonService;
|
private HandleCpuCommonService handleCpuCommonService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startProcess(String processName, String processUniqueId, String nodeName, String processInitiatorId, String pcUrl, String mobileUrl) {
|
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
|
@Override
|
||||||
public void createTask(String processUniqueId, String taskUniqueId, String taskNodeName, String createdById, List<String> assignments, String formUrl, String formUrlView, String formMobileUrl, String formMobileUrlView) {
|
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();
|
Sys_local_process_instance_task task = new Sys_local_process_instance_task();
|
||||||
task.setProcessUniqueId(processUniqueId);
|
task.setProcessUniqueId(processUniqueId);
|
||||||
task.setTaskUniqueId(taskUniqueId);
|
task.setTaskUniqueId(taskUniqueId);
|
||||||
@@ -87,7 +102,9 @@ public class SysLocalProcessServiceImpl implements SysLocalProcessService {
|
|||||||
task.setFormMobileUrlView(formMobileUrlView);
|
task.setFormMobileUrlView(formMobileUrlView);
|
||||||
task.setStatus(1);
|
task.setStatus(1);
|
||||||
task.setTaskDeleteFlag(false);
|
task.setTaskDeleteFlag(false);
|
||||||
|
task.setPrevTaskId(Optional.ofNullable(prevTask).map(Sys_local_process_instance_task::getId).orElse(null));
|
||||||
dao.insert(task);
|
dao.insert(task);
|
||||||
|
}
|
||||||
|
|
||||||
// handleCpuCommonService.createExecTask(processUniqueId, taskUniqueId);
|
// handleCpuCommonService.createExecTask(processUniqueId, taskUniqueId);
|
||||||
}
|
}
|
||||||
@@ -103,7 +120,7 @@ public class SysLocalProcessServiceImpl implements SysLocalProcessService {
|
|||||||
|
|
||||||
dao.update(task);
|
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);
|
// handleCpuCommonService.finishTask(instanceTask.getId() + taskUniqueId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -152,6 +169,23 @@ public class SysLocalProcessServiceImpl implements SysLocalProcessService {
|
|||||||
task.setStatus(1);
|
task.setStatus(1);
|
||||||
dao.update(task, "status");
|
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