Parcourir la source

归档、项目、合同树相关调整

liuyc il y a 3 ans
Parent
commit
58411849f9

+ 12 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeVO.java

@@ -38,6 +38,7 @@ import java.util.List;
 public class ArchiveTreeVO extends ArchiveTree implements INode<ArchiveTreeVO> {
     private static final long serialVersionUID = 1L;
 
+
     /**
      * 主键ID
      */
@@ -50,6 +51,12 @@ public class ArchiveTreeVO extends ArchiveTree implements INode<ArchiveTreeVO> {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long parentId;
 
+    /**
+     * title
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long title;
+
     /**
      * 子孙节点
      */
@@ -80,5 +87,10 @@ public class ArchiveTreeVO extends ArchiveTree implements INode<ArchiveTreeVO> {
      */
     private String displayHierarchy;
 
+    /**
+     * 是否为存储节点
+     */
+    private Integer isStorageNode;
+
 
 }

+ 13 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVO2.java

@@ -35,6 +35,10 @@ public class TreeNodeVO2 extends BaseNode<TreeNode> {
      */
     private String displayHierarchy;
 
+    /**
+     * 存储节点
+     */
+    private Integer isStorageNode;
 
 
     public TreeNodeVO2() {
@@ -48,6 +52,14 @@ public class TreeNodeVO2 extends BaseNode<TreeNode> {
         this.majorDataType = majorDataType;
     }
 
+    public Integer getIsStorageNode() {
+        return isStorageNode;
+    }
+
+    public void setIsStorageNode(Integer isStorageNode) {
+        this.isStorageNode = isStorageNode;
+    }
+
     public String getDisplayHierarchy() {
         return displayHierarchy;
     }
@@ -103,6 +115,7 @@ public class TreeNodeVO2 extends BaseNode<TreeNode> {
                 + ",ancestors" + this.getAncestors()
                 + ",majorDataType" + this.getMajorDataType()
                 + ",displayHierarchy" + this.getDisplayHierarchy()
+                + ",isStorageNode" + this.getIsStorageNode()
                 + ", title=" + this.getTitle() + ", key=" + this.getKey() + ", value=" + this.getValue() + ")";
     }
 

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

@@ -111,11 +111,10 @@ public class ArchiveTreeController extends BladeController {
     @ApiOperation(value = "懒加载树形结构", notes = "传入父级id,租户id,token")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "parentId", value = "父级id", required = true),
-            @ApiImplicitParam(name = "tenantId", value = "租户id", required = true),
             @ApiImplicitParam(name = "token", value = "token", required = true)
     })
-    public R<List<ArchiveTreeVO>> lazyTree(Long parentId, BladeUser bladeUser, String tenantId) {
-        List<ArchiveTreeVO> tree = archiveTreeService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId);
+    public R<List<ArchiveTreeVO>> lazyTree(Long parentId, BladeUser bladeUser) {
+        List<ArchiveTreeVO> tree = archiveTreeService.lazyTree(bladeUser.getTenantId(), parentId);
         if (tree != null && tree.size() > 0) {
             return R.data(tree);
         }
@@ -130,12 +129,11 @@ public class ArchiveTreeController extends BladeController {
     @ApiOperation(value = "全加载树形结构/显示树", notes = "传入租户id、token、或disPlayTree=1加载显示树、nodeType")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "token", value = "token", required = true),
-            @ApiImplicitParam(name = "tenantId", value = "租户id", required = true),
             @ApiImplicitParam(name = "disPlayTree", value = "是否加载显示树 'null'=不加载 '1'=加载"),
             @ApiImplicitParam(name = "nodeType", value = "'null'=全加载 '1'=关联电子原生文件类型树 '2'=文件上传类型树")
     })
-    public R<List<ArchiveTreeVO>> tree(String tenantId, BladeUser bladeUser, Integer disPlayTree, Integer nodeType) {
-        List<ArchiveTreeVO> tree = archiveTreeService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), disPlayTree, nodeType);
+    public R<List<ArchiveTreeVO>> tree(BladeUser bladeUser, Integer disPlayTree, Integer nodeType) {
+        List<ArchiveTreeVO> tree = archiveTreeService.tree(bladeUser.getTenantId(), disPlayTree, nodeType);
         if (tree != null && tree.size() > 0) {
             return R.data(tree);
         }
@@ -149,7 +147,7 @@ public class ArchiveTreeController extends BladeController {
     @ApiOperationSupport(order = 8)
     @ApiOperation(value = "保存/修改上传文件显示配置树", notes = "传入ids")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "ids", value = "ids", required = true)
+            @ApiImplicitParam(name = "ids", value = "ids字符串拼接 ',' ", required = true)
     })
     public R<List<ArchiveTreeVO>> submitDisplayConfigTree(@RequestBody String ids) {
         return R.status(archiveTreeService.submitDisplayConfigTree(ids));

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.xml

@@ -38,6 +38,7 @@
         <result column="has_children" property="hasChildren"/>
         <result column="displayHierarchy" property="displayHierarchy"/>
         <result column="majorDataType" property="majorDataType"/>
+        <result column="isStorageNode" property="isStorageNode"/>
     </resultMap>
 
     <update id="updateBatch">
@@ -71,6 +72,7 @@
         d.id AS "key",
         d.major_data_type AS "majorDataType",
         d.display_hierarchy AS "displayHierarchy",
+        d.is_storage_node AS "isStorageNode",
         (SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM m_archive_tree WHERE parent_id = d.id and is_deleted = 0)
         AS "has_children"
         FROM

+ 7 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java

@@ -49,7 +49,7 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
 
     private final ArchiveTreeMapper archiveTreeMapper;
 
-    private static List<String> getDiffrent(List<String> list1, List<String> list2) {
+    private static List<String> getDiffRent(List<String> list1, List<String> list2) {
         List<String> diff = new ArrayList<String>();
         List<String> maxList = list1;
         List<String> minList = list2;
@@ -92,6 +92,7 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
         archiveTree.setAncestors(String.valueOf(0));
         archiveTree.setNodeName("系统级归档树");
         archiveTree.setFullName("系统级归档树");
+        archiveTree.setIsStorageNode(0);
         if (AuthUtil.getUserId() != null && AuthUtil.getDeptId() != null) {
             archiveTree.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
             archiveTree.setCreateUser(AuthUtil.getUserId());
@@ -130,7 +131,7 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
         archiveTrees.stream().forEach(id -> {
             idList2.add(String.valueOf(id.getId()));
         });
-        List<String> diffRent = getDiffrent(idList1, idList2);
+        List<String> diffRent = getDiffRent(idList1, idList2);
         if (diffRent.size() == 0) {
             return true;
         } else {
@@ -168,6 +169,10 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
         }
         archiveTreeDTO.setIsDeleted(BladeConstant.DB_NOT_DELETED);
         archiveTreeDTO.setFullName(archiveTreeDTO.getNodeName());
+        if (archiveTreeDTO.getNodeType() == 1) {
+            //如果是电子原生文件,那么默认是存储节点
+            archiveTreeDTO.setIsStorageNode(1);
+        }
         return save(archiveTreeDTO);
     }
 

+ 12 - 22
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -96,36 +96,27 @@ public class WbsTreeContractServiceImpl
             }
         } else {
             if (idList1.size() > idList2.size()) {
-                WbsInfo wbsInfo = wbsInfoMapper.selectById(pawDTO.getWbsId());
-                Integer wbsType = wbsInfo.getWbsType();
-                //List<List<WbsTreePrivate>> listWbsTreePrivate = new ArrayList<>();
                 List<WbsTreeContract> wbsTreeContractList = new ArrayList<>();
                 //获取wbs私有树下节点+表
                 List<WbsTreePrivate> wbsTreePrivateList = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
                         .eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId())
                         .eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
                 );
+                List<WbsTreePrivate> listTree = new ArrayList<>();
+                wbsTreePrivateList.stream().map(tree -> {
+                    diffRent.stream().forEach(id -> {
+                        if (id.equals(String.valueOf(tree.getId()))) {
+                            listTree.add(tree);
+                        }
+                    });
+                    return null;
+                }).collect(Collectors.toList());
                 //初始化
-                wbsTreePrivateList.stream().forEach(wbsTreePrivate -> {
-                    WbsTreeContract wbsTreeContract = getWbsTreePrivate(wbsTreePrivate, pawDTO, wbsType);
+                listTree.stream().forEach(wbsTreePrivate -> {
+                    WbsTreeContract wbsTreeContract = getWbsTreePrivate(wbsTreePrivate, pawDTO, null);
                     wbsTreeContractList.add(wbsTreeContract);
                 });
-
-                /*diffRent.stream().forEach(id -> {
-                    //获取wbs私有树下节点+表
-                    List<WbsTreePrivate> wbsTreePrivate = wbsTreePrivateMapper.selectByCondition(id, pawDTO.getWbsId(), pawDTO.getProjectId());
-                    listWbsTreePrivate.add(wbsTreePrivate);
-                });
-
-                listWbsTreePrivate.stream().forEach(wbsTreePrivates -> {
-                    wbsTreePrivates.stream().forEach(wbsTreePrivate -> {
-                        WbsTreeContract wbsTreeContract = getWbsTreePrivate(wbsTreePrivate, pawDTO, wbsType);
-                        listWbsTreeContract.add(wbsTreeContract);
-                    });
-                });*/
-
                 this.saveBatch(wbsTreeContractList, 10000);
-
                 //初始化施工台账
                 wbsTreeContractList.stream().forEach(wbsTreeContract -> {
                     if (wbsTreeContract.getDeptCategory() == 6) {
@@ -157,14 +148,13 @@ public class WbsTreeContractServiceImpl
         wbsTreeContract.setPKeyId(snowId);
         wbsTreeContract.setId(wbsTree.getId());
         wbsTreeContract.setWbsId(pawDTO.getWbsId());
-        wbsTreeContract.setWbsType(wbsType);
+        wbsTreeContract.setWbsType(wbsTree.getType());
         wbsTreeContract.setProjectId(pawDTO.getProjectId());
         wbsTreeContract.setContractId(pawDTO.getContractId());
         wbsTreeContract.setContractType(pawDTO.getContractType());
         wbsTreeContract.setTenantId(wbsTree.getTenantId());
         wbsTreeContract.setParentId(wbsTree.getParentId());
         wbsTreeContract.setAncestors(wbsTree.getAncestors());
-        //setDeptCategory = 1 施工合同
         wbsTreeContract.setDeptCategory(1);
         wbsTreeContract.setDeptName(wbsTree.getDeptName());
         wbsTreeContract.setFullName(wbsTree.getDeptName());

+ 25 - 21
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -543,7 +543,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         List<String> idList1 = idList.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
         List<String> idList2 = new ArrayList<>();
         int deletedStatus = 0;
-
         //当前公有引用
         if (pawDTO.getReferenceType().equals("public")) {
             List<WbsTreePrivate> wbsTreePrivates = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
@@ -555,7 +554,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                 idList2.add(String.valueOf(wbsTreePrivate.getId()));
             });
         }
-
         //私有引用
         else if (pawDTO.getReferenceType().equals("private")) {
             List<WbsTreePrivate> wbsTreePrivates2 = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
@@ -568,15 +566,11 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
             });
             deletedStatus = 1;
         }
-
-
         List<String> diffRent = WbsTreeContractServiceImpl.getDiffrent(idList1, idList2);
-
         //元素表同步
         if (diffRent.size() == 0) {
             List<String> tableId1 = new ArrayList<>();
             List<String> tableId2 = new ArrayList<>();
-
             if (pawDTO.getReferenceType().equals("public")) {
                 //公有同步新增元素表
                 //获取公有wbs树新增的元素表
@@ -643,9 +637,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                 wbsTreePrivates1.stream().forEach(wbsTreePrivate2 -> {
                     tableId2.add(String.valueOf(wbsTreePrivate2.getId()));
                 });
-
                 List<String> diffRent1 = WbsTreeContractServiceImpl.getDiffrent(tableId1, tableId2);
-
                 if (diffRent1.size() == 0) {
                     throw new ServiceException("未检测到引用的私有wbs树下有新增的元素表");
                 } else {
@@ -671,10 +663,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                     }
                     //TODO删除
                 }
-
             }
         }
-
         //新增
         else {
             if (idList1.size() > idList2.size()) {
@@ -684,8 +674,18 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                     //公有
                     //查询所有公共节点+表单
                     List<WbsTree> trees = baseMapper.selectList(Wrappers.<WbsTree>query().lambda().eq(WbsTree::getWbsId, pawDTO.getWbsId()));
+                    //根据id获取指定WbsTree节点数据
+                    List<WbsTree> listTree = new ArrayList<>();
+                    trees.stream().map(tree -> {
+                        diffRent.stream().forEach(id -> {
+                            if (id.equals(String.valueOf(tree.getId()))) {
+                                listTree.add(tree);
+                            }
+                        });
+                        return null;
+                    }).collect(Collectors.toList());
                     //初始化
-                    trees.stream().forEach(tree -> {
+                    listTree.stream().forEach(tree -> {
                         WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate1(tree, pawDTO);
                         insertData.add(wbsTreePrivate2);
                     });
@@ -696,8 +696,17 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                             .eq(WbsTreePrivate::getWbsId, pawDTO.getWbsId())
                             .eq(WbsTreePrivate::getProjectId, pawDTO.getReferencePrivateWbsProjectId())
                     );
+                    List<WbsTreePrivate> listTree = new ArrayList<>();
+                    wbsTreePrivatesList.stream().map(tree -> {
+                        diffRent.stream().forEach(id -> {
+                            if (id.equals(String.valueOf(tree.getId()))) {
+                                listTree.add(tree);
+                            }
+                        });
+                        return null;
+                    }).collect(Collectors.toList());
                     //初始化
-                    wbsTreePrivatesList.stream().forEach(wbsTreePrivate -> {
+                    listTree.stream().forEach(wbsTreePrivate -> {
                         WbsTreePrivate wbsTreePrivate2 = getWbsTreePrivate2(wbsTreePrivate, pawDTO);
                         insertData2.add(wbsTreePrivate2);
                     });
@@ -710,7 +719,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                     projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getPrimaryKeyId(), "private");
                 }
             }
-
             //删除节点 表单
             else {
                 ArrayList<Long> ids1 = new ArrayList<>();
@@ -883,7 +891,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         if (StringUtils.isEmpty(filedName) || StringUtils.isEmpty(filedType) || StringUtils.isEmpty(filedLength)) {
             return R.fail("操作失败,请完整填写元素参数");
         }
-
         String deptName = formElementDTO.getDeptName();
         if (deptName.length() > 100 || deptName.length() < 1) {
             throw new ServiceException("表名长度错误,输入范围1-100个字符长度");
@@ -893,10 +900,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         Long id = SnowFlakeUtil.getId();
         String newTableName = "m_wbs_form_" + DateUtil.time() + "_" + id.toString();
         formElementDTO.setInitTableName(newTableName);
-
         //创建元素表
         boolean b1 = submit2(formElementDTO);
-
         List<WbsFormElement> elementList = formElementDTO.getElementList();
         int i = 1;
         for (WbsFormElement wbsFormElement : elementList) {
@@ -915,7 +920,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         }
         //新增元素
         boolean b2 = wbsFormElementService.saveBatch(elementList);
-
         //找到当前元素表中所有元素
         List<WbsFormElement> list = wbsFormElementService.selectElementListByFid(String.valueOf(formElementDTO.getId()));
         //初始化实体表
@@ -928,7 +932,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
     }
 
     public static String getFirstSpell(String chinese) {
-        StringBuffer pybf = new StringBuffer();
+        StringBuilder stringBuilder = new StringBuilder();
         char[] arr = chinese.toCharArray();
         HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
         defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
@@ -938,16 +942,16 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                 try {
                     String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
                     if (temp != null) {
-                        pybf.append(temp[0].charAt(0));
+                        stringBuilder.append(temp[0].charAt(0));
                     }
                 } catch (BadHanyuPinyinOutputFormatCombination e) {
                     e.printStackTrace();
                 }
             } else {
-                pybf.append(arr[i]);
+                stringBuilder.append(arr[i]);
             }
         }
-        return pybf.toString().replaceAll("\\W", "").trim();
+        return stringBuilder.toString().replaceAll("\\W", "").trim();
     }
 
     public static String getPinyin(String text, String separator) {