|
|
|
@@ -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,27 +68,43 @@ 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) {
|
|
|
|
|
Sys_local_process_instance_task task = new Sys_local_process_instance_task();
|
|
|
|
|
task.setProcessUniqueId(processUniqueId);
|
|
|
|
|
task.setTaskUniqueId(taskUniqueId);
|
|
|
|
|
task.setTaskNodeName(taskNodeName);
|
|
|
|
|
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)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
task.setCreatedById(createdById);
|
|
|
|
|
Sql sql = Sqls.create("select username,loginname,unitname from `user` where id = @id").setParam("id", createdById);
|
|
|
|
|
Record creator = (Record) Daos.query(dao, sql.toString(), Sqls.callback.record());
|
|
|
|
|
task.setCreatedByUserName(creator.getString("username"));
|
|
|
|
|
task.setCreatedByUserLoginName(creator.getString("loginname"));
|
|
|
|
|
task.setCreatedByDept(creator.getString("unitname"));
|
|
|
|
|
Sys_local_process_instance_task task = new Sys_local_process_instance_task();
|
|
|
|
|
task.setProcessUniqueId(processUniqueId);
|
|
|
|
|
task.setTaskUniqueId(taskUniqueId);
|
|
|
|
|
task.setTaskNodeName(taskNodeName);
|
|
|
|
|
|
|
|
|
|
task.setAssignments(assignments);
|
|
|
|
|
task.setCreatedOn(new Date());
|
|
|
|
|
task.setFormUrl(formUrl);
|
|
|
|
|
task.setFormUrlView(formUrlView);
|
|
|
|
|
task.setFormMobileUrl(formMobileUrl);
|
|
|
|
|
task.setFormMobileUrlView(formMobileUrlView);
|
|
|
|
|
task.setStatus(1);
|
|
|
|
|
task.setTaskDeleteFlag(false);
|
|
|
|
|
dao.insert(task);
|
|
|
|
|
task.setCreatedById(createdById);
|
|
|
|
|
Sql sql = Sqls.create("select username,loginname,unitname from `user` where id = @id").setParam("id", createdById);
|
|
|
|
|
Record creator = (Record) Daos.query(dao, sql.toString(), Sqls.callback.record());
|
|
|
|
|
task.setCreatedByUserName(creator.getString("username"));
|
|
|
|
|
task.setCreatedByUserLoginName(creator.getString("loginname"));
|
|
|
|
|
task.setCreatedByDept(creator.getString("unitname"));
|
|
|
|
|
|
|
|
|
|
task.setAssignments(assignments);
|
|
|
|
|
task.setCreatedOn(new Date());
|
|
|
|
|
task.setFormUrl(formUrl);
|
|
|
|
|
task.setFormUrlView(formUrlView);
|
|
|
|
|
task.setFormMobileUrl(formMobileUrl);
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@@ -121,7 +138,7 @@ public class SysLocalProcessServiceImpl implements SysLocalProcessService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void refuseProcess(String processUniqueId,String nodeName) {
|
|
|
|
|
public void refuseProcess(String processUniqueId, String nodeName) {
|
|
|
|
|
dao.update(Sys_local_process_instance.class, Chain.make("processInstanceStatus", 2).add("nodeName", nodeName), Cnd.where("processUniqueId", "=", processUniqueId));
|
|
|
|
|
dao.update(Sys_local_process_instance_task.class, Chain.make("status", 2), Cnd.where("status", "=", 1).and("taskDeleteFlag", "=", 0).and("processUniqueId", "=", processUniqueId));
|
|
|
|
|
// handleCpuCommonService.finishProcessTask(processUniqueId);
|
|
|
|
@@ -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("无法撤回,请联系管理员!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|