diff --git a/src/main/java/cn/palmte/work/controller/backend/ActScriptController.java b/src/main/java/cn/palmte/work/controller/backend/ActScriptController.java deleted file mode 100644 index 113a38b..0000000 --- a/src/main/java/cn/palmte/work/controller/backend/ActScriptController.java +++ /dev/null @@ -1,119 +0,0 @@ -package cn.palmte.work.controller.backend; - - -import cn.palmte.work.bean.ResponseMsg; -import cn.palmte.work.model.ActScript; -import cn.palmte.work.model.ActScriptRepository; -import cn.palmte.work.service.ActScriptService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; - -/** - * 流程脚本管理 - */ -@Controller -@RequestMapping("/actScript") -public class ActScriptController extends BaseController { - - private static final Logger logger = LoggerFactory.getLogger(ActScriptController.class); - - @Autowired - private ActScriptService actScriptService; - - @Autowired - private ActScriptRepository actScriptRepository; - - @RequestMapping("/list") - public String list(@RequestParam(value = "keywords", required = false) String keywords, - @RequestParam(value = PAGE_NUMBER, defaultValue = DEFAULT_PAGE_NUMBER) int pageNumber, - @RequestParam(value = PAGE_SIZE, defaultValue = DEFAULT_PAGE_SIZE) int pageSize, - Map model) { - ConcurrentHashMap searchInfo = getSearchInfo(keywords, model); - model.put("pager", actScriptService.list(searchInfo, pageNumber, pageSize)); - return "/admin/act_script_list"; - } - - @GetMapping(value = "/add") - public String add(Map model) { - List list = getScriptList(); - model.put("actScript", new ActScript()); - model.put("classList", list); - - List methodList = new ArrayList<>(); - for (String l : list) { - methodList.addAll(getMethodList(l)); - } - - model.put("methodList", methodList); - return "/admin/act_script_input"; - } - - private List getScriptList() { - List list = new ArrayList<>(1); - list.add("cn.palmte.work.service.ActCallbackScript"); - return list; - } - - private List getMethodList(String className) { - List list = new ArrayList<>(); - - try { - Method[] methods = Class.forName(className).getDeclaredMethods(); - for (Method method : methods) { - list.add(method.getName()); - } - } catch (ClassNotFoundException e) { - logger.error("", e); - } - - return list; - } - - @GetMapping(value = "/edit") - public String edit(@RequestParam int id, Map model) { - List list = getScriptList(); - model.put("actScript", actScriptRepository.findOne(id)); - model.put("classList", list); - List methodList = new ArrayList<>(); - for (String l : list) { - methodList.addAll(getMethodList(l)); - } - - model.put("methodList", methodList); - return "/admin/act_script_input"; - } - - @RequestMapping("/save") - public String save(ActScript actScript) { - actScriptService.save(actScript); - return "redirect:/actScript/list"; - } - - - @ResponseBody - @GetMapping(value = "/delete") - public ResponseMsg delete(@RequestParam("ids") String ids){ - if ("".equals(ids)){ - return ResponseMsg.buildFailedMsg("删除失败,无选中项!"); - }else { - String[] deleteIds=ids.split("#%#"); - for (String id : deleteIds) { - actScriptService.delete(Integer.parseInt(id)); - } - return ResponseMsg.buildSuccessMsg("删除成功"); - } - } - - -} diff --git a/src/main/java/cn/palmte/work/controller/backend/ActTaskDefController.java b/src/main/java/cn/palmte/work/controller/backend/ActTaskDefController.java index 882a093..9b89180 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ActTaskDefController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ActTaskDefController.java @@ -1,8 +1,6 @@ package cn.palmte.work.controller.backend; - import cn.palmte.work.bean.ResponseMsg; -import cn.palmte.work.model.ActScriptRepository; import cn.palmte.work.model.ActTaskDef; import cn.palmte.work.model.AdminRepository; import cn.palmte.work.pojo.ActHisTask; @@ -19,6 +17,7 @@ import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 流程任务 @@ -35,8 +34,6 @@ public class ActTaskDefController extends BaseController { @Autowired private SysRoleService sysRoleService; - @Autowired - private ActScriptRepository actScriptRepository; @Autowired private ActTaskDefService actTaskDefService; @@ -51,12 +48,14 @@ public class ActTaskDefController extends BaseController { @RequestMapping("/config/{procDefId}") public String list(@PathVariable String procDefId, Map model) { List list = actTaskDefService.findByProcDefId(procDefId); + //过滤掉发起节点的全是审批节点 + List approveList = list.stream().filter(t-> t.getTaskIndex() == 0).collect(Collectors.toList()); model.put("procDefId", procDefId); model.put("taskList", list); + model.put("approveList", approveList); model.put("procDefName", list.get(0).getProcDefName()); model.put("roleList", sysRoleService.getAllEnableSysRole()); model.put("adminList", adminRepository.getAllEnable()); - model.put("scriptList", actScriptRepository.findAll()); return "/admin/act_task_def"; } diff --git a/src/main/java/cn/palmte/work/model/ActScript.java b/src/main/java/cn/palmte/work/model/ActScript.java deleted file mode 100644 index d09728a..0000000 --- a/src/main/java/cn/palmte/work/model/ActScript.java +++ /dev/null @@ -1,41 +0,0 @@ -package cn.palmte.work.model; - -import lombok.Data; - -import javax.persistence.*; -import java.util.Date; - -/** - * 流程脚本 - */ -@Data -@Entity -@Table(name = "act_script") -public class ActScript { - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private int id; - - @Column(name = "script_name") - private String scriptName; - - /** - * 脚本所在类 - */ - @Column(name = "class_name") - private String className; - - /** - * 脚本方法名 - */ - @Column(name = "class_method") - private String classMethod; - - @Column(name = "created_time") - private Date createdTime; - - @Column(name = "last_updated_time") - private Date lastUpdatedTime; - -} diff --git a/src/main/java/cn/palmte/work/model/ActScriptRepository.java b/src/main/java/cn/palmte/work/model/ActScriptRepository.java deleted file mode 100644 index b90895e..0000000 --- a/src/main/java/cn/palmte/work/model/ActScriptRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package cn.palmte.work.model; - -import org.springframework.data.jpa.repository.JpaRepository; - - -public interface ActScriptRepository extends JpaRepository { - -} diff --git a/src/main/java/cn/palmte/work/model/ActTaskDef.java b/src/main/java/cn/palmte/work/model/ActTaskDef.java index 201a4e0..3e78f9c 100644 --- a/src/main/java/cn/palmte/work/model/ActTaskDef.java +++ b/src/main/java/cn/palmte/work/model/ActTaskDef.java @@ -69,13 +69,13 @@ public class ActTaskDef { /** - * 审批通过执行的脚本 act_script表id + * 审批通过执行的脚本 act_script(弃用)表id 弃用 */ @Column(name = "end_script") private int endScript; /** - * 审批驳回执行的脚本 act_script表id + * 审批驳回执行的脚本 act_script(弃用)表id 弃用 */ @Column(name = "rollback_script") private int rollbackScript; diff --git a/src/main/java/cn/palmte/work/service/ActScriptService.java b/src/main/java/cn/palmte/work/service/ActScriptService.java deleted file mode 100644 index ea8483c..0000000 --- a/src/main/java/cn/palmte/work/service/ActScriptService.java +++ /dev/null @@ -1,55 +0,0 @@ -package cn.palmte.work.service; - -import cn.palmte.work.model.ActScript; -import cn.palmte.work.model.ActScriptRepository; -import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import top.jfunc.common.db.QueryHelper; -import top.jfunc.common.db.bean.Page; -import top.jfunc.common.db.utils.Pagination; - -import java.util.Date; -import java.util.concurrent.ConcurrentHashMap; - - -@Service -public class ActScriptService { - private static final Logger logger = LoggerFactory.getLogger(ActScriptService.class); - @Autowired - private ActScriptRepository actScriptRepository; - - @Autowired - Pagination pagination; - - - public Page list(ConcurrentHashMap searchInfo, int pageNumber, int pageSize) { - QueryHelper queryHelper = new QueryHelper("a.*", " act_script a"); - String name = searchInfo.get("name"); - queryHelper.addCondition(StringUtils.isNotEmpty(name), "a.script_name=? ", name); - queryHelper.addOrderProperty("a.last_updated_time", false); - return pagination.paginate(queryHelper.getSql(), ActScript.class, pageNumber, pageSize); - } - - public void save(ActScript actScript) { - Date now = new Date(); - int id = actScript.getId(); - if (id == 0) { - actScript.setCreatedTime(now); - }else { - ActScript one = actScriptRepository.findOne(id); - actScript.setCreatedTime(one.getCreatedTime()); - } - actScript.setLastUpdatedTime(now); - actScriptRepository.save(actScript); - } - - - public void delete(int id) { - actScriptRepository.delete(id); - } - - -} diff --git a/src/main/java/cn/palmte/work/service/ActTaskDefService.java b/src/main/java/cn/palmte/work/service/ActTaskDefService.java index cad28bb..80c67b7 100644 --- a/src/main/java/cn/palmte/work/service/ActTaskDefService.java +++ b/src/main/java/cn/palmte/work/service/ActTaskDefService.java @@ -152,14 +152,6 @@ public class ActTaskDefService { //审批通过 taskService.complete(taskId); - //执行配置的审批通过脚本 - int endScript = actTaskDef.getEndScript(); - if (endScript != 0) { - actUtil.invokeEventScript(endScript, processInstance.getId(), actTaskDef); - } else { - logger.info("未配置审批通过脚本 task:{}", actTaskDef.getTaskName()); - } - if (actUtil.isProjectProcessIns(procDefKey)) { //最后一个任务完成后 更新项目状态为审批通过 updateProjectPassed(processInstance, actTaskDef, procDefKey); @@ -170,14 +162,6 @@ public class ActTaskDefService { String rollbackTaskKey = actTaskDef.getRollbackTaskKey(); actUtil.jumpToTargetTask(taskId, rollbackTaskKey); - //执行配置的驳回脚本 - int rollbackScript = actTaskDef.getRollbackScript(); - if (rollbackScript != 0) { - actUtil.invokeEventScript(rollbackScript, processInstance.getId(), actTaskDef); - } else { - logger.info("未配置驳回脚本 task:{}", actTaskDef.getTaskName()); - } - //驳回后 更新项目状态为审批不通过 if (actUtil.isProjectProcessIns(procDefKey)) { int projectId = Integer.parseInt(processInstance.getBusinessKey()); @@ -292,8 +276,6 @@ public class ActTaskDefService { one.setCandidateUsers(taskDef.getCandidateUsers()); one.setCandidateRoles(taskDef.getCandidateRoles()); one.setRollbackTaskKey(taskDef.getRollbackTaskKey()); - one.setEndScript(taskDef.getEndScript()); - one.setRollbackScript(taskDef.getRollbackScript()); one.setLastUpdatedTime(new Date()); actTaskDefRepository.save(one); diff --git a/src/main/java/cn/palmte/work/utils/ActUtil.java b/src/main/java/cn/palmte/work/utils/ActUtil.java index f07af08..b875623 100644 --- a/src/main/java/cn/palmte/work/utils/ActUtil.java +++ b/src/main/java/cn/palmte/work/utils/ActUtil.java @@ -3,9 +3,6 @@ package cn.palmte.work.utils; import cn.palmte.work.config.activiti.ActConstant; import cn.palmte.work.config.activiti.DeleteTaskCommand; import cn.palmte.work.config.activiti.JumpCommand; -import cn.palmte.work.model.ActScript; -import cn.palmte.work.model.ActScriptRepository; -import cn.palmte.work.model.ActTaskDef; import cn.palmte.work.service.AccountService; import org.activiti.bpmn.model.BpmnModel; import org.activiti.bpmn.model.FlowNode; @@ -32,11 +29,8 @@ import javax.servlet.http.HttpServletResponse; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; -import java.lang.reflect.Method; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; @Component public class ActUtil { @@ -47,8 +41,6 @@ public class ActUtil { private RepositoryService repositoryService; @Autowired Pagination pagination; - @Autowired - private ActScriptRepository actScriptRepository; @Resource private ApplicationContext applicationContext; @Autowired @@ -91,46 +83,6 @@ public class ActUtil { } - /** - * 反射执行脚本 - * - * @param scriptId - * @param procInsId - */ - public void invokeEventScript(int scriptId, String procInsId, ActTaskDef actTaskDef) { - ActScript actScript = actScriptRepository.findOne(scriptId); - if (actScript == null) { - logger.info("脚本配置错误"); - return; - } - - Map map = new HashMap<>(); - map.put(ActConstant.PROC_INS_ID, procInsId); - map.put(ActConstant.PROC_DEF_KEY, actTaskDef.getProcDefKey()); - List variables = getVariables(procInsId); - for (Record variable : variables) { - map.put(variable.getStr("name"), variable.get("text")); - } - - //调用方法传递的参数 - Object[] args = new Object[1]; - args[0] = map; - - logger.info("invokeEventScript class:{}, methond:{}, param:{}", actScript.getClassName(), actScript.getClassMethod(), map); - try { - Class ownerClass = Class.forName(actScript.getClassName()); - Object bean = applicationContext.getBean(ownerClass); - Class[] paramsType = new Class[1]; - paramsType[0] = Class.forName("java.util.Map"); - //找到脚本方法对应的方法 注意:有且只有一个以Map为参数的方法 - Method method = ownerClass.getDeclaredMethod(actScript.getClassMethod(), paramsType); - method.invoke(bean, args); - } catch (Exception e) { - logger.error("", e); - } - - } - /** * 跳转到指定任务节点 diff --git a/src/main/resources/templates/admin/act_proc_def_list.ftl b/src/main/resources/templates/admin/act_proc_def_list.ftl index 45c85aa..0f5e1c2 100644 --- a/src/main/resources/templates/admin/act_proc_def_list.ftl +++ b/src/main/resources/templates/admin/act_proc_def_list.ftl @@ -109,15 +109,7 @@ class="am-btn am-btn-default am-btn-xs am-text-secondary" onclick="location.href='${base}/actTaskDef/config/${list.id}'"> - 任务配置 - - - - @@ -252,23 +244,6 @@ }; - var startProcIns = function (procDefKey) { - var params = { - projectType: 3 - }; - $.ajax({ - url: '${base}/actProcIns/startProcIns/' + procDefKey, - data: JSON.stringify(params), - dataType: "json", - contentType: "application/json", - type: 'post', - async: false, - success: function (data) { - layer.msg(data.msg); - } - }); - } - var pngView = function (id) { layer.open({ type: 2, diff --git a/src/main/resources/templates/admin/act_script_input.ftl b/src/main/resources/templates/admin/act_script_input.ftl deleted file mode 100644 index b2e7d88..0000000 --- a/src/main/resources/templates/admin/act_script_input.ftl +++ /dev/null @@ -1,203 +0,0 @@ -<#assign base=request.contextPath /> -<#import "../common/defaultLayout.ftl" as defaultLayout> -<@defaultLayout.layout> - -
-
-
-
工作流程 / 流程脚本
-
-
- -
- -
-
- - - - - -
-
- * - 脚本名称 -
-
- -
-
-
- -
-
*脚本所在类
-
- -
-
-
- - -
-
*方法名称
-
- -
-
-
-
-
-
- -
- - -
-
- -
- -
- - - - - - - \ No newline at end of file diff --git a/src/main/resources/templates/admin/act_script_list.ftl b/src/main/resources/templates/admin/act_script_list.ftl deleted file mode 100644 index 0c4a424..0000000 --- a/src/main/resources/templates/admin/act_script_list.ftl +++ /dev/null @@ -1,204 +0,0 @@ -<#assign base=request.contextPath /> -<#import "../common/defaultLayout.ftl" as defaultLayout> -<@defaultLayout.layout> - -
-
- -
工作流程 / - 脚本管理 -
-
-
- -
-
-
-
- <#--<@shiro.hasPermission name="ROLE_ADD">--> - - <#-- - <@shiro.hasPermission name="ROLE_DELRTE">--> - - <#----> -
-
-
-
-
- - - - -
-
-
-
-
-
- - - - - - - - - - - - - - - - <#if (pager.list)?exists> - <#list pager.list as list> - - - - - - - - - - - - - -
- id脚本名称脚本所在类脚本方法创建日期最后更新日期操作
- - ${list.id!}${list.scriptName!}${list.className!}${list.classMethod!}<#if list.createdTime??>${list.createdTime?datetime}<#if list.lastUpdatedTime??>${list.lastUpdatedTime?datetime} -
-
- - - -
-
-
- -
- - <#if (pager.list)?exists && (pager.list?size>0) > -
- <#include "../common/common_pager.ftl"> -
- <#else> -
-

没有找到任何记录!

-
- -
-
-
-
- - - - - diff --git a/src/main/resources/templates/admin/act_task_def.ftl b/src/main/resources/templates/admin/act_task_def.ftl index a599a94..b6fbaef 100644 --- a/src/main/resources/templates/admin/act_task_def.ftl +++ b/src/main/resources/templates/admin/act_task_def.ftl @@ -17,109 +17,74 @@ 序号 - 任务名称 - <#--任务类型--> - 回退任务 + 任务节点名称 + 回退任务节点 按人员设置审批人 按角色设置审批人 - 审批通过脚本 - 审批驳回脚本 操作 - <#list taskList as list> + <#list approveList as list> ${list_index+1} ${list.taskName!} - <#-- - <#if list.taskIndex != 1> - <#if list.taskType == 0> - 或签 - <#else> - 会签 - - - --> - <#if list.taskIndex != 1> - - + + + - <#if list.taskIndex != 1> - - + + + - <#if list.taskIndex != 1> - - + + + - - <#if list.taskIndex != 1> - - - - <#if list.taskIndex != 1> - - - - - <#if list.taskIndex != 1> -
-
- +
+
+ -
- +
+