diff --git a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/task/BpmnTaskDelegateAssigner.java b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/task/BpmnTaskDelegateAssigner.java
index 440ce176e..4316baeeb 100644
--- a/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/task/BpmnTaskDelegateAssigner.java
+++ b/workflow-engine-common/src/main/java/cn/axzo/workflow/common/model/request/bpmn/task/BpmnTaskDelegateAssigner.java
@@ -8,6 +8,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.math.NumberUtils;
import org.dromara.easyes.annotation.IndexField;
import org.dromara.easyes.annotation.rely.FieldType;
import org.springframework.util.StringUtils;
@@ -78,6 +79,8 @@ public class BpmnTaskDelegateAssigner implements Serializable {
* 对应安心筑特殊的PersonId
*
* 仅安心筑使用, 应该必传
+ *
+ *
注意:该属性在部分场景下会是非 Long 类型的值,建议业务消费时,调用{@link BpmnTaskDelegateAssigner#parsePersonId()}函数进行转换
*/
@IndexField(fieldType = FieldType.KEYWORD)
private String personId;
@@ -217,4 +220,27 @@ public class BpmnTaskDelegateAssigner implements Serializable {
public static BpmnTaskDelegateAssigner toObject(String jsonStr) {
return JSON.parseObject(jsonStr, BpmnTaskDelegateAssigner.class);
}
+
+ /**
+ * @return
+ */
+ public Long parsePersonId() {
+ if (NumberUtils.isDigits(personId)) {
+ return Long.parseLong(personId);
+ } else {
+ return 0L;
+ }
+ }
+
+ public static void main(String[] args) {
+ BpmnTaskDelegateAssigner assigner = new BpmnTaskDelegateAssigner();
+ assigner.setPersonId("system");
+ System.out.println("assigner.parsePersonId() = " + assigner.parsePersonId());
+
+ assigner.setPersonId("");
+ System.out.println("assigner.parsePersonId() = " + assigner.parsePersonId());
+
+ assigner.setPersonId("123");
+ System.out.println("assigner.parsePersonId() = " + assigner.parsePersonId());
+ }
}