Jelajahi Sumber

发起人自选新增校验

hubin 1 tahun lalu
induk
melakukan
03a5670c8a

+ 4 - 0
src/main/java/com/aizuda/boot/modules/flw/entity/FlwFormTemplate.java

@@ -61,6 +61,10 @@ public class FlwFormTemplate extends BaseEntity {
 	@Size(max = 10000)
 	private String content;
 
+	@Schema(description = "备注")
+	@Size(max = 255)
+	private String remark;
+
 	@Schema(description = "状态 0、禁用 1、正常")
 	@NotNull(groups = Create.class)
 	@PositiveOrZero

+ 10 - 2
src/main/java/com/aizuda/boot/modules/flw/service/impl/FlwProcessServiceImpl.java

@@ -128,8 +128,16 @@ public class FlwProcessServiceImpl extends ServiceImpl<FlwProcessMapper, FlwProc
     @Transactional(rollbackFor = Exception.class)
     @Override
     public boolean launchProcess(ProcessStartDTO dto, FlowCreator flowCreator) {
-        Map<String, DynamicAssignee> assigneeMap = dto.getAssigneeMap();
-        if (MapUtils.isNotEmpty(assigneeMap)) {
+        FlwProcess flwProcess = flowLongEngine.processService().getProcessById(dto.getProcessId());
+        if (null == flwProcess) {
+            ApiAssert.fail("指定流程模型不存在");
+        }
+        List<NodeModel> unsetAssigneeNodes = ModelHelper.getUnsetAssigneeNodes(flwProcess.model().getNodeConfig());
+        if (CollectionUtils.isNotEmpty(unsetAssigneeNodes)) {
+            Map<String, DynamicAssignee> assigneeMap = dto.getAssigneeMap();
+            ApiAssert.fail(MapUtils.isEmpty(assigneeMap), "发起人自选节点未设置处理人员");
+            unsetAssigneeNodes.forEach(t -> ApiAssert.fail(null == assigneeMap.get(t.getNodeKey()),
+                    "节点【 " + t.getNodeName() + " 】未设置处理人员"));
             // 传递动态分配处理人员
             FlowDataTransfer.dynamicAssignee(Collections.unmodifiableMap(assigneeMap));
         }