소스 검색

后管WBS树,编辑表单动态配置

qianxb 1 년 전
부모
커밋
5d564efb47

+ 7 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsFormElement.java

@@ -64,4 +64,11 @@ public class WbsFormElement extends BaseEntity {
     @ApiModelProperty(value = "备注")
     @JsonProperty(value = "remark")
     private String remark;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "动态字典,征拆统计")
+    @JsonProperty(value = "dynamicDict")
+    private Integer dynamicDict;
 }

+ 3 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeMapper.xml

@@ -94,6 +94,7 @@
         <result column="nodeId" property="nodeId"/>
         <result column="globalFormula" property="globalFormula"/>
         <result column="isBussTime" property="isBussTime"/>
+        <result column="dynamic_dict" property="dynamicDict"/>
     </resultMap>
 
     <insert id="addFormElement" parameterType="org.springblade.manager.dto.WbsFormElementDTO">
@@ -406,6 +407,7 @@
         select f_id,
                e_key,
                a.id,
+               a.dynamic_dict,
                e_name,
                e_type,
                e_length,
@@ -423,6 +425,7 @@
         select f_id,
                e_key,
                a.id,
+               a.dynamic_dict,
                e_name,
                e_type,
                e_length,

+ 11 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsFormElementServiceImpl.java

@@ -35,10 +35,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
 import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -270,6 +267,16 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
         if (StringUtils.isEmpty(initTableName)) {
             throw new ServiceException("未获取到initTableName对应实体表名称,操作失败");
         }
+        //校验,不能在同一个表单中,为多个字段配置相同的统计标识
+        Map<Integer, List<WbsFormElement>> collect = wbsFormElementList.stream()
+                .filter(l->Objects.nonNull(l.getDynamicDict()))
+                .filter(l-> l.getDynamicDict() != 0)
+                .collect(Collectors.groupingBy(WbsFormElement::getDynamicDict));
+        for (Integer integer : collect.keySet()) {
+            if (collect.get(integer).size() >= 2){
+                throw new ServiceException("不能在一张表中,为多个字段配置相同的统计标识,请重新配置");
+            }
+        }
 
         //修改元素基础信息
         wbsFormElementList.forEach(obj -> obj.setStatus(1));