Forráskód Böngészése

wbs导入划分相关

liuyc 3 éve
szülő
commit
f7afc43cf9

+ 2 - 2
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/WbsTreePrivateDTO2.java

@@ -14,9 +14,9 @@ public class WbsTreePrivateDTO2 implements Serializable {
     private Long pKeyId;
 
     /**
-     * 节点名称
+     * 表单名称
      */
-    private String deptName;
+    private String tableName;
 
     /**
      * 排序

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeController.java

@@ -85,6 +85,7 @@ public class ArchiveTreeController extends BladeController {
     @ApiOperationSupport(order = 4)
     @ApiOperation(value = "修改", notes = "传入ArchiveTree")
     public R update(@Valid @RequestBody ArchiveTree archiveTree) {
+        archiveTree.setFullName(archiveTree.getNodeName());
         return R.status(archiveTreeService.updateById(archiveTree));
     }
 

+ 7 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeController.java

@@ -293,7 +293,7 @@ public class WbsTreeController extends BladeController {
     public R importWbsTree(@RequestPart("excelFile") MultipartFile excelFile,
                            @RequestPart("wbsTreeFu") WbsTree wbsTreeFu) throws IOException {
         WbsTree wbsTree1 = wbsTreeService.getById(wbsTreeFu.getParentId());
-        if (wbsTree1.getProjectNodeId().equals(wbsTreeFu.getParentId())) {
+        /*if (wbsTree1.getProjectNodeId().equals(wbsTreeFu.getParentId())) {
             wbsTreeService.deleteBatchByProjectNodeId(wbsTree1.getProjectNodeId());
             boolean result = wbsTreeService.importWbsTree(excelFile, wbsTreeFu, wbsTree1);
             if (result) {
@@ -301,14 +301,14 @@ public class WbsTreeController extends BladeController {
             } else {
                 return R.fail("请选择正确模板导入");
             }
+        } else {*/
+        boolean result = wbsTreeService.importWbsTree(excelFile, wbsTreeFu, wbsTree1);
+        if (result) {
+            return R.success("新增导入成功");
         } else {
-            boolean result = wbsTreeService.importWbsTree(excelFile, wbsTreeFu, wbsTree1);
-            if (result) {
-                return R.success("新增导入成功");
-            } else {
-                return R.fail("请选择正确模板导入");
-            }
+            return R.fail("请选择正确模板导入");
         }
+        //}
     }
 
     /**

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/excel/WbsExcelUtil.java

@@ -19,7 +19,7 @@ public class WbsExcelUtil {
         WbsExcelUtil excelUtil = new WbsExcelUtil();
         //读取excel数据
         int sum = 0;
-        ArrayList<Map<String, String>> result = excelUtil.readExcelToObj("D:\\Download\\WBS划分模板1.xls");
+        ArrayList<Map<String, String>> result = excelUtil.readExcelToObj("D:\\Download\\特大斜拉桥、特大悬索桥.xls");
         for (Map<String, String> map : result) {
             System.out.println("输出:" + map);
             sum++;

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

@@ -169,9 +169,9 @@
         AND project_id = #{projectId}
     </delete>
 
-    <update id="deleteLogicById">
-        UPDATE  m_wbs_tree SET is_deleted = 1 WHERE id = #{id} OR project_node_id = #{id} OR ancestors like concat('%',#{id},'%')
-    </update>
+    <delete id="deleteLogicById">
+        DELETE FROM m_wbs_tree WHERE id = #{id} OR project_node_id = #{id} OR ancestors like concat('%',#{id},'%')
+    </delete>
 
     <update id="deleteLogicByWbsId">
         update m_wbs_tree set is_deleted = 1 where wbs_id = #{ids} and status = 1

+ 29 - 30
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -403,7 +403,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
             //导入excel
             return importExcel(result, wbsTreeFu, wbsTree1);
         } catch (Exception e) {
-            throw new ServiceException("导入失败,请确认模板格式内容是否正确");
+            e.printStackTrace();
+            return false;
         } finally {
             //资源删除
             File file2 = new File(canonicalPath);
@@ -421,6 +422,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                 if (StringUtils.isNotEmpty(nodeName)) {
                     //初始化节点参数
                     WbsTree wbsTreeZi = new WbsTree();
+                    wbsTreeZi.setId(SnowFlakeUtil.getId());
                     wbsTreeZi.setTenantId(AuthUtil.getTenantId());
                     wbsTreeZi.setDeptName(nodeName);
                     wbsTreeZi.setDeptCategory(Integer.valueOf(nodeType));
@@ -428,22 +430,18 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                     wbsTreeZi.setParentId(wbsTreeFu.getParentId());
                     wbsTreeZi.setAncestors(wbsTreeFu.getAncestors());
                     wbsTreeZi.setProjectNodeId(wbsTree1.getProjectNodeId());
-
-                    //新增节点返回未创建成功查询出来的wbsTree对象、成功后的wbsTreeZi对象
+                    //新增节点返回 未创建成功为wbsTree对象、成功为null
                     WbsTree wbsTree = importTree(wbsTreeZi);
-
                     if (wbsTree == null) {
                         //后置赋值
                         Long id = wbsTreeZi.getId();
                         StringBuilder stringBuffer = new StringBuilder();
                         StringBuilder appendStr = stringBuffer.append(",").append(wbsTreeZi.getParentId());
                         String ancestors = wbsTreeZi.getAncestors() + appendStr;
-
                         //修改节点ancestors
                         updateData(ancestors, id);
                         wbsTreeFu.setParentId(id);
                         wbsTreeFu.setAncestors(ancestors);
-
                     } else {
                         wbsTreeFu.setParentId(wbsTree.getId());
                         wbsTreeFu.setAncestors(wbsTree.getAncestors());
@@ -459,15 +457,14 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
     private WbsTree importTree(WbsTree wbsTreeZi) {
         //判断节点名称是否重复
-        QueryWrapper<WbsTree> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("wbs_id", wbsTreeZi.getWbsId());
-        queryWrapper.eq("dept_name", wbsTreeZi.getDeptName());
-        queryWrapper.eq("dept_category", wbsTreeZi.getDeptCategory());
-        queryWrapper.eq("project_node_id", wbsTreeZi.getProjectNodeId());
-        queryWrapper.ne("ancestors", wbsTreeZi.getAncestors());
-        List<WbsTree> wbsTrees = baseMapper.selectList(queryWrapper);
-        WbsTree wbsTree = null;
-
+        List<WbsTree> wbsTrees = baseMapper.selectList(Wrappers.<WbsTree>query().lambda()
+                .eq(WbsTree::getWbsId, wbsTreeZi.getWbsId())
+                .eq(WbsTree::getDeptName, wbsTreeZi.getDeptName())
+                .eq(WbsTree::getDeptCategory, wbsTreeZi.getDeptCategory())
+                .eq(WbsTree::getProjectNodeId, wbsTreeZi.getProjectNodeId())
+                .ne(WbsTree::getAncestors, wbsTreeZi.getAncestors())
+        );
+        WbsTree trees = null;
         if (wbsTrees.size() <= 0) { //不重复-直接新增
             wbsTreeZi.setStatus(1);
             wbsTreeZi.setType(1);
@@ -477,29 +474,31 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                 wbsTreeZi.setIsExpernode(0);
             }
             baseMapper.insert(wbsTreeZi);
-
         } else { //重复-判断是否同级,同级跳过,不同级新增
-
             //获取当前相同节点对象信息
-            wbsTree = wbsTrees.stream().findFirst().orElse(wbsTrees.get(wbsTrees.size() - 1));
-
-            //只判断4 5 6级节点类型的名称是否重复,后续可根据实际情况更改控制的层级
-            if (wbsTreeZi.getDeptCategory() == 4 || wbsTreeZi.getDeptCategory() == 5 || wbsTreeZi.getDeptCategory() == 6) {
-                if (wbsTreeZi.getDeptName().equals(wbsTree.getDeptName()) && !wbsTreeZi.getParentId().equals(wbsTree.getParentId())) {
-                    wbsTreeZi.setStatus(1);
-                    wbsTreeZi.setType(1);
-                    wbsTreeZi.setMajorDataType(0);
-                    if (wbsTreeZi.getDeptCategory() == 6) {
-                        wbsTreeZi.setIsConcrete(0);
-                        wbsTreeZi.setIsExpernode(0);
+            for (WbsTree tree : wbsTrees) {
+                //只判断2 3 4 5 6级节点类型的名称是否重复,可根据实际情况更改控制的层级
+                if (wbsTreeZi.getDeptCategory() == 2 || wbsTreeZi.getDeptCategory() == 3 || wbsTreeZi.getDeptCategory() == 4
+                        || wbsTreeZi.getDeptCategory() == 5 || wbsTreeZi.getDeptCategory() == 6) {
+                    if (!wbsTreeZi.getParentId().equals(tree.getParentId()) && wbsTreeZi.getDeptName().equals(tree.getDeptName())) {
+                        wbsTreeZi.setStatus(1);
+                        wbsTreeZi.setType(1);
+                        wbsTreeZi.setMajorDataType(0);
+                        if (wbsTreeZi.getDeptCategory() == 6) {
+                            wbsTreeZi.setIsConcrete(0);
+                            wbsTreeZi.setIsExpernode(0);
+                        }
+                        baseMapper.insert(wbsTreeZi);
+                        break;
                     }
-                    baseMapper.insert(wbsTreeZi);
                 }
+                trees = tree;
             }
         }
-        return wbsTree;
+        return trees;
     }
 
+
     @Override
     public int deleteBatchByProjectNodeId(Long projectNodeId) {
         return baseMapper.deleteBatchProjectNodeId(projectNodeId);