diff --git a/module-activiti/src/main/java/ink/wgink/module/activiti/pojo/vos/oa/page/ConfirmAssigneeVO.java b/module-activiti/src/main/java/ink/wgink/module/activiti/pojo/vos/oa/page/ConfirmAssigneeVO.java index 3675f875..75de7882 100644 --- a/module-activiti/src/main/java/ink/wgink/module/activiti/pojo/vos/oa/page/ConfirmAssigneeVO.java +++ b/module-activiti/src/main/java/ink/wgink/module/activiti/pojo/vos/oa/page/ConfirmAssigneeVO.java @@ -13,6 +13,8 @@ import java.util.List; public class ConfirmAssigneeVO { private String nodeType; + private String assigneeType; + private String formAssigneeField; private String btnText; private String btnExc; private Boolean isNextEndEvent; @@ -26,6 +28,22 @@ public class ConfirmAssigneeVO { this.nodeType = nodeType; } + public String getAssigneeType() { + return assigneeType == null ? "" : assigneeType.trim(); + } + + public void setAssigneeType(String assigneeType) { + this.assigneeType = assigneeType; + } + + public String getFormAssigneeField() { + return formAssigneeField == null ? "" : formAssigneeField.trim(); + } + + public void setFormAssigneeField(String formAssigneeField) { + this.formAssigneeField = formAssigneeField; + } + public String getBtnText() { return btnText == null ? "提交" : btnText.trim(); } diff --git a/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaFormReportRouteServiceImpl.java b/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaFormReportRouteServiceImpl.java index bcc7d35a..f2c0f840 100644 --- a/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaFormReportRouteServiceImpl.java +++ b/module-activiti/src/main/java/ink/wgink/module/activiti/service/oa/impl/OaFormReportRouteServiceImpl.java @@ -6,6 +6,7 @@ import ink.wgink.common.base.DefaultBaseService; import ink.wgink.exceptions.SearchException; import ink.wgink.interfaces.user.IUserBaseService; import ink.wgink.module.activiti.enums.oa.TaskCommentTypeEnum; +import ink.wgink.module.activiti.enums.oa.assignee.AssigneeTypeEnum; import ink.wgink.module.activiti.pojo.bos.oa.TaskCommentBO; import ink.wgink.module.activiti.pojo.dtos.oa.NodeButtonDTO; import ink.wgink.module.activiti.pojo.dtos.oa.NodeFieldDTO; @@ -432,6 +433,11 @@ public class OaFormReportRouteServiceImpl extends DefaultBaseService implements continue; } OaNodeAssigneePO oaNodeAssigneePO = nodeAssigneeService.getPOByDeploymentIdAndNodeId(deploymentId, userTask.getId()); + confirmAssigneeVO.setAssigneeType(oaNodeAssigneePO.getAssigneeType()); + // 候选人来源于表单,设置表单候选人字段,表单候选人的字段值为 assignee 的值 + if (StringUtils.equals(AssigneeTypeEnum.FORM.getValue(), oaNodeAssigneePO.getAssigneeType())) { + confirmAssigneeVO.setFormAssigneeField(oaNodeAssigneePO.getAssignee()); + } // 设置节点类型 confirmAssigneeVO.setNodeType(oaNodeAssigneePO.getNodeType()); // 设置节点代理人列表 @@ -441,13 +447,15 @@ public class OaFormReportRouteServiceImpl extends DefaultBaseService implements } else { assigneeList = nodeAssigneeService.listAssigneeUserId(processInstanceId, currentUserId, oaNodeAssigneePO); } - List userDTOs = userBaseService.listByUserIds(assigneeList); - List assigneeVOs = userDTOs.stream().map(userDTO -> { - ConfirmAssigneeVO.AssigneeVO assigneeVO = new ConfirmAssigneeVO.AssigneeVO(); - BeanUtils.copyProperties(userDTO, assigneeVO); - return assigneeVO; - }).collect(Collectors.toList()); - confirmAssigneeVO.setAssignees(assigneeVOs); + if(!assigneeList.isEmpty()) { + List userDTOs = userBaseService.listByUserIds(assigneeList); + List assigneeVOs = userDTOs.stream().map(userDTO -> { + ConfirmAssigneeVO.AssigneeVO assigneeVO = new ConfirmAssigneeVO.AssigneeVO(); + BeanUtils.copyProperties(userDTO, assigneeVO); + return assigneeVO; + }).collect(Collectors.toList()); + confirmAssigneeVO.setAssignees(assigneeVOs); + } } confirmAssigneeVOs.add(confirmAssigneeVO); } diff --git a/module-activiti/src/main/resources/static/editor-app/configuration/properties-oa-node-manage-controller.js b/module-activiti/src/main/resources/static/editor-app/configuration/properties-oa-node-manage-controller.js index d196f502..99b18c5f 100644 --- a/module-activiti/src/main/resources/static/editor-app/configuration/properties-oa-node-manage-controller.js +++ b/module-activiti/src/main/resources/static/editor-app/configuration/properties-oa-node-manage-controller.js @@ -616,6 +616,17 @@ var OaNodeManagePopupCtrl = ['$scope', '$timeout', '$http', function ($scope, $t } } } + if (assignee.assigneeType === 'form') { + if (!assignee.assignee) { + top.dialog.msg('请输入表单代理人表单字段名') + return; + } + if (!(/[\w\d\_]+/g.test(assignee.assignee))) { + top.dialog.msg('代理人表单字段名只能是 字母、数字、下划线 的组合'); + return; + } + assignee.assigneeName = '' + } $scope.property.value = {}; $scope.property.value = $scope.oaNodeManage; diff --git a/module-activiti/src/main/resources/static/editor-app/configuration/properties/oa-node-manage-popup.html b/module-activiti/src/main/resources/static/editor-app/configuration/properties/oa-node-manage-popup.html index 46498ef3..ce61a46f 100644 --- a/module-activiti/src/main/resources/static/editor-app/configuration/properties/oa-node-manage-popup.html +++ b/module-activiti/src/main/resources/static/editor-app/configuration/properties/oa-node-manage-popup.html @@ -301,6 +301,20 @@ + + + +
代理人字段名
+ + + + +
+ +
+ + + diff --git a/module-activiti/src/main/resources/templates/oa/list-history-task-of-mine.html b/module-activiti/src/main/resources/templates/oa/list-history-task-of-mine.html index c7359f23..4b6e7dc5 100644 --- a/module-activiti/src/main/resources/templates/oa/list-history-task-of-mine.html +++ b/module-activiti/src/main/resources/templates/oa/list-history-task-of-mine.html @@ -57,7 +57,7 @@ cols: [ [ {field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '{{d.LAY_INDEX}}'}, - {field:'taskName', width:200, title: '流程名称', align:'center', + {field:'processName', width:200, title: '流程名称', align:'center', templet: function(row) { var rowData = row[this.field]; if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {