瀏覽代碼

元素识别相关

liuyc 3 年之前
父節點
當前提交
0454f156b6

+ 42 - 13
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsFormElementServiceImpl.java

@@ -388,6 +388,9 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
             this.saveFormElement(formElementDTO);
 
         } else if (formElementDTO.getSubmitStatus() == 1) {
+            if (formElementDTO.getElementList().size() <=0 ){
+                throw new ServiceException("请添加至少一个元素信息");
+            }
             //关联-在已有元素表中新增元素,在实体表中追加字段
             //获取当前清表关联的所有tableIds
             List<WbsTabRelationExcelTab> WbsTabRelationExcelTabs = baseMapper.selectWbsTabRelationExcelTab(null, String.valueOf(formElementDTO.getExcelTabId()));
@@ -412,13 +415,25 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                         //获取表单下的元素信息
                         List<WbsFormElement> wbsFormElements = baseMapper.selectList(Wrappers.<WbsFormElement>query().lambda()
                                 .eq(WbsFormElement::getFId, tableId));
-                        Collections.reverse(wbsFormElements);
-                        WbsFormElement firstWbsFormElement = wbsFormElements.stream().findFirst().orElse(wbsFormElements.get(wbsFormElements.size() - 1));
 
-                        //去重,元素表中名称已存在的元素不添加
-                        List<WbsFormElement> newList = formElementDTO.getElementList().stream().filter(a ->
-                                !wbsFormElements.stream().map(WbsFormElement::getEName).collect(Collectors.toList()).contains(a.getEName())
-                        ).collect(Collectors.toList());
+                        WbsFormElement firstWbsFormElement;
+                        List<WbsFormElement> newList;
+                        //存在元素
+                        if(wbsFormElements.size() > 0){
+                            Collections.reverse(wbsFormElements);
+                            firstWbsFormElement = wbsFormElements.stream().findFirst().orElse(wbsFormElements.get(wbsFormElements.size() - 1));
+
+                            //去重,元素表中名称已存在的元素不添加
+                            newList = formElementDTO.getElementList().stream().filter(a ->
+                                    !wbsFormElements.stream().map(WbsFormElement::getEName).collect(Collectors.toList()).contains(a.getEName())
+                            ).collect(Collectors.toList());
+
+                        }else {
+                            //不存在元素
+                            firstWbsFormElement = new WbsFormElement();
+                            firstWbsFormElement.setEKey("key_0");
+                            newList = formElementDTO.getElementList();
+                        }
 
                         //初始化eKey字段
                         int keyNumber = Integer.parseInt(firstWbsFormElement.getEKey().split("_")[1]);
@@ -484,13 +499,25 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                 //获取表单下的元素信息
                 List<WbsFormElement> wbsFormElements = baseMapper.selectList(Wrappers.<WbsFormElement>query().lambda()
                         .eq(WbsFormElement::getFId, formElementDTO.getId()));
-                Collections.reverse(wbsFormElements);
-                WbsFormElement firstWbsFormElement = wbsFormElements.stream().findFirst().orElse(wbsFormElements.get(wbsFormElements.size() - 1));
 
-                //去重,元素表中名称已存在的元素不添加
-                List<WbsFormElement> newList = formElementDTO.getElementList().stream().filter(a ->
-                        !wbsFormElements.stream().map(WbsFormElement::getEName).collect(Collectors.toList()).contains(a.getEName())
-                ).collect(Collectors.toList());
+                WbsFormElement firstWbsFormElement;
+                List<WbsFormElement> newList;
+                //存在元素
+                if(wbsFormElements.size() > 0){
+                    Collections.reverse(wbsFormElements);
+                    firstWbsFormElement = wbsFormElements.stream().findFirst().orElse(wbsFormElements.get(wbsFormElements.size() - 1));
+
+                    //去重,元素表中名称已存在的元素不添加
+                    newList = formElementDTO.getElementList().stream().filter(a ->
+                            !wbsFormElements.stream().map(WbsFormElement::getEName).collect(Collectors.toList()).contains(a.getEName())
+                    ).collect(Collectors.toList());
+
+                }else {
+                    //不存在元素
+                    firstWbsFormElement = new WbsFormElement();
+                    firstWbsFormElement.setEKey("key_0");
+                    newList = formElementDTO.getElementList();
+                }
 
                 //初始化eKey字段
                 int keyNumber = Integer.parseInt(firstWbsFormElement.getEKey().split("_")[1]);
@@ -537,7 +564,9 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
         if (nodeIds.size() <= 0) {
             throw new ServiceException("请至少选择一个节点进行新增操作");
         } else {
-
+            if (formElementDTO.getElementList().size() <=0 ){
+                throw new ServiceException("请添加至少一个元素信息");
+            }
             for (String nodeId : nodeIds) {
                 String deptName = formElementDTO.getDeptName();
                 if (deptName.length() > 100 || deptName.length() < 1) {