Administrator 2 gadi atpakaļ
vecāks
revīzija
bf767c154a

+ 5 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVOByTabType.java

@@ -16,5 +16,9 @@ public class TreeNodeVOByTabType extends BaseNode<TreeNode> {
     private String tabType;
     private String tabOwner;
     private String elementTotal;
-    private Integer fillRate;
+    private String fillRate;
+    private String initTableId;
+    private String initTableName;
+    private String excelIds;
+
 }

+ 58 - 10
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -28,10 +28,7 @@ import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.IProjectInfoService;
 import org.springblade.manager.service.IWbsTreePrivateService;
 import org.springblade.manager.service.IWbsTreeService;
-import org.springblade.manager.vo.ExcelTabVO;
-import org.springblade.manager.vo.WbsNodeTabAndParamVO;
-import org.springblade.manager.vo.WbsNodeTableVO;
-import org.springblade.manager.vo.WbsTreePrivateVO;
+import org.springblade.manager.vo.*;
 import org.springblade.manager.wrapper.WbsTreePrivateWrapper;
 import org.springframework.beans.BeanUtils;
 import org.springframework.web.bind.annotation.*;
@@ -486,10 +483,13 @@ public class WbsTreePrivateController extends BladeController {
     }
 
 
+
+
+
     /**
      * wbs私有树懒加载获取项目私有节点树形结构--(表单类型划分树)
      */
-    @GetMapping("/tab_Type_lazy-tree")
+    @GetMapping("/tab-Type-lazy-tree")
     @ApiOperationSupport(order = 16)
     @ApiOperation(value = "项目级懒加载节点树形结构-表单类型划分树", notes = "传入项目Id和父Id")
     @ApiImplicitParams(value = {
@@ -497,9 +497,9 @@ public class WbsTreePrivateController extends BladeController {
             @ApiImplicitParam(name = "projectId", value = "项目id", required = true),
             @ApiImplicitParam(name = "titleName", value = "搜索关键字", required = true)
     })
-    public R<IPage<WbsTreePrivateVO>> tabTypeLazyTree(Long parentId, String projectId, BladeUser bladeUser, String titleName, Query query) {
+    public R<IPage<TreeNodeVOByTabType>> tabTypeLazyTree(Long parentId, String projectId, BladeUser bladeUser, String titleName, Query query) {
 
-        IPage<WbsTreePrivateVO> page= wbsTreePrivateService.tabTypeLazyTree(Condition.getPage(query),parentId, projectId,titleName);
+        IPage<TreeNodeVOByTabType> page= wbsTreePrivateService.tabTypeLazyTree(Condition.getPage(query),parentId, projectId,titleName);
         return R.data(page);
     }
 
@@ -509,10 +509,58 @@ public class WbsTreePrivateController extends BladeController {
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "nodeId", value = "合同段树的最小节点id", required = true),
             @ApiImplicitParam(name = "primaryKeyIds", value = "表的注解ids(多个以,隔开)", required = true),
+            @ApiImplicitParam(name = "contractId", value = "合同段Id", required = true),
+    })
+    public R addWbsTreeContractInfo(String nodeId,String primaryKeyIds,long contractId){
+        return wbsTreePrivateService.addWbsTreeContractInfo(nodeId,primaryKeyIds,contractId);
+    }
+
+    /**
+     * 元素信息--(表单类型划分树)
+     */
+    @GetMapping("/tab-Type-lazy-tree-all")
+    @ApiOperationSupport(order = 18)
+    @ApiOperation(value = "元素信息-表单类型划分树", notes = "父Id")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "parentId", value = "父级id", required = true),
+            @ApiImplicitParam(name = "titleName", value = "搜索关键字", required = true)
+    })
+    public R<IPage<TreeNodeVOByTabType>> tabTypeLazyTreeAll(Long parentId,BladeUser bladeUser, String titleName, Query query) {
+        IPage<TreeNodeVOByTabType> page= wbsTreePrivateService.tabTypeLazyTreeAll(Condition.getPage(query),parentId,titleName);
+        return R.data(page);
+    }
+
+    @PostMapping("/add-projecttab-info")
+    @ApiOperationSupport(order = 19)
+    @ApiOperation(value = "后管-添加元素到项目", notes = "primaryKeyIds、projectId")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "primaryKeyIds", value = "表的注解ids(多个以,隔开)", required = true),
+            @ApiImplicitParam(name = "projectId", value = "合同段Id", required = true),
+    })
+    public R addProjectTabInfo(String primaryKeyIds,String projectId){
+        return wbsTreePrivateService.addWbsTreeProjectInfo(primaryKeyIds,projectId);
+    }
+
+    @PostMapping("/del-aprojecttab-info")
+    @ApiOperationSupport(order = 20)
+    @ApiOperation(value = "后管-删除项目表单", notes = "primaryKeyIds、projectId")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "primaryKeyIds", value = "表的注解ids(多个以,隔开)", required = true),
+            @ApiImplicitParam(name = "projectId", value = "项目id", required = true),
     })
-    public R addWbsTreeContractInfo(@RequestPart("nodeId") String nodeId,
-                                    @RequestParam("primaryKeyIds") String primaryKeyIds){
-        return wbsTreePrivateService.addWbsTreeContractInfo(nodeId,primaryKeyIds);
+    public R delTabProjectById(String primaryKeyIds,String projectId){
+        return wbsTreePrivateService.delTabProjectById(primaryKeyIds,projectId);
+    }
+
+    @PostMapping("/del-tab-info-all")
+    @ApiOperationSupport(order = 21)
+    @ApiOperation(value = "后管-删除元素表", notes = "primaryKeyIds")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "primaryKeyIds", value = "表的注解ids(多个以,隔开)", required = true)
+    })
+    public R delTabInfoAll(String primaryKeyIds){
+
+        return R.success("成功");
     }
 
 }

+ 6 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.java

@@ -7,6 +7,7 @@ import org.springblade.manager.dto.WbsTreePrivateDTO3;
 import org.springblade.manager.entity.WbsTree;
 import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.injector.EasyBaseMapper;
+import org.springblade.manager.vo.TreeNodeVOByTabType;
 import org.springblade.manager.vo.WbsNodeTableVO;
 import org.springblade.manager.vo.WbsTreePrivateVO;
 
@@ -41,7 +42,10 @@ public interface WbsTreePrivateMapper extends EasyBaseMapper<WbsTreePrivate> {
 
     List<WbsTreePrivateVO> lazyTree(String wbsId, Integer wbsType, Long parentId, String projectId);
 
-    List<WbsTreePrivateVO> tabTypeLazyTree(IPage page, Long parentId, String projectId, String titleName);
+    List<TreeNodeVOByTabType> tabTypeLazyTree(IPage page, Long parentId, String projectId, String titleName);
+
+
+    List<TreeNodeVOByTabType> tabTypeLazyTreeAll(IPage page, Long parentId, String titleName);
 
     int updateByPKeyId(@Param("pKeyId") Long pKeyId, @Param("wbsTP") WbsTreePrivate wbsTP);
 
@@ -79,4 +83,5 @@ public interface WbsTreePrivateMapper extends EasyBaseMapper<WbsTreePrivate> {
 
     List<WbsNodeTableVO> selectNodeTabAndParamList(String id, String wbsId, String projectId);
 
+    void delTabProjectById(String pKeyId,String projectId);
 }

+ 45 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml

@@ -77,6 +77,8 @@
         <result column="tabType" property="tabType"/>
         <result column="elementTotal" property="elementTotal"/>
         <result column="fillRate" property="fillRate"/>
+        <result column="initTableId" property="initTableId"/>
+        <result column="excelIds" property="excelIds"/>
     </resultMap>
 
 
@@ -533,7 +535,7 @@
     <select id="tabTypeLazyTree" resultMap="treeNodeResultMapTabType">
         SELECT p_key_id as id,p_key_id as primaryKeyId,title,parent_id,fill_rate as fillRate,
         (SELECT dict_value from blade_dict where  code='table_type' and dict_key not in(-1,0) and dict_key=table_type )	 as tabType,
-        (SELECT count(1) FROM m_wbs_form_element WHERE f_id = init_table_id and is_deleted=0) AS "elementTotal",
+        (SELECT count(1) FROM m_wbs_form_element WHERE f_id = initTableId and is_deleted=0) AS "elementTotal",
         (SELECT dict_value from blade_dict where code='owner_type' and dict_key not in(-1,0) and dict_key=table_owner ) as tabOwner,
                (
                    SELECT
@@ -544,17 +546,17 @@
                            union all
                            SELECT dict_key as p_key_id ,dict_value as node_name,'12345678910' as parent_id from blade_dict where code='table_type' and dict_key not in(-1,0)
                            union all
-                           SELECT p_key_id,node_name,table_type as  parent_id from m_wbs_tree_private WHERE project_id=#{projectId} and is_deleted=0 and type=2 and table_type is not NULL GROUP BY node_name
+                           SELECT p_key_id,node_name,table_type as  parent_id from m_wbs_tree_private WHERE project_id=#{projectId} and is_deleted=0 and type=10 and table_type is not NULL GROUP BY node_name
                        ) b
                    WHERE
                        b.parent_id = a.p_key_id
                ) AS "has_children"
                from (
-        SELECT  '12345678910' as p_key_id , '表单类型' as title, 0 as parent_id,0 as table_type,0 as fill_rate,0 as table_owner,0 as init_table_id
+        SELECT  '12345678910' as p_key_id , '表单类型' as title, 0 as parent_id,0 as table_type,0 as fill_rate,0 as table_owner,0 as initTableId,0 as exceIds
                  union all
-            SELECT dict_key as p_key_id ,dict_value as title,'12345678910' as parent_id,0 as table_type,0 as fill_rate,0 as table_owner,0 as init_table_id from blade_dict where code='table_type' and dict_key not in(-1,0)
+            SELECT dict_key as p_key_id ,dict_value as title,'12345678910' as parent_id,0 as table_type,0 as fill_rate,0 as table_owner,0 as initTableId,0 as exceIds from blade_dict where code='table_type' and dict_key not in(-1,0)
                  union all
-            SELECT p_key_id,node_name as title,table_type as  parent_id,table_type,fill_rate,table_owner,init_table_id from m_wbs_tree_private WHERE project_id=#{projectId} and is_deleted=0 and type=2 and table_type is not NULL GROUP BY node_name
+            SELECT p_key_id,node_name as title,table_type as  parent_id,table_type,fill_rate,table_owner,init_table_id as initTableId,GROUP_CONCAT(excel_id) as excelIds from m_wbs_tree_private WHERE project_id=#{projectId} and is_deleted=0 and type=10 and table_type is not NULL GROUP BY node_name
            ) a where 1=1
         <if test="parentId != null and parentId != ''">
            and a.parent_id = #{parentId}
@@ -564,4 +566,42 @@
         </if>
     </select>
 
+    <!-- 项目级 表单类型分类 wbs树 -->
+    <select id="tabTypeLazyTreeAll" resultMap="treeNodeResultMapTabType">
+        SELECT p_key_id as id,p_key_id as primaryKeyId,title,parent_id,fill_rate as fillRate,
+        (SELECT dict_value from blade_dict where  code='table_type' and dict_key not in(-1,0) and dict_key=table_type )	 as tabType,
+        (SELECT count(1) FROM m_wbs_form_element WHERE f_id = initTableId and is_deleted=0) AS "elementTotal",
+        (SELECT dict_value from blade_dict where code='owner_type' and dict_key not in(-1,0) and dict_key=table_owner ) as tabOwner,
+        (
+        SELECT
+        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+        FROM
+        (
+        SELECT  '12345678910' as p_key_id , '表单类型' as node_name, 0 as parent_id
+        union all
+        SELECT dict_key as p_key_id ,dict_value as node_name,'12345678910' as parent_id from blade_dict where code='table_type' and dict_key not in(-1,0)
+        union all
+        SELECT id as p_key_id,node_name,table_type as  parent_id from m_wbs_tree_private WHERE  is_deleted=0 and type=2 and table_type is not NULL GROUP BY node_name
+        ) b
+        WHERE
+        b.parent_id = a.p_key_id
+        ) AS "has_children"
+        from (
+        SELECT  '12345678910' as p_key_id , '表单类型' as title, 0 as parent_id,0 as table_type,0 as fill_rate,0 as table_owner,0 as initTableId,0 as exceIds
+        union all
+        SELECT dict_key as p_key_id ,dict_value as title,'12345678910' as parent_id,0 as table_type,0 as fill_rate,0 as table_owner,0 as initTableId,0 as exceIds from blade_dict where code='table_type' and dict_key not in(-1,0)
+        union all
+        SELECT id as p_key_id,node_name as title,table_type as  parent_id,table_type,fill_rate,table_owner,init_table_id as initTableId,GROUP_CONCAT(excel_id) as excelIds from m_wbs_tree_private WHERE is_deleted=0 and type=2 and  init_table_id is not null and table_type is not NULL GROUP BY node_name
+        ) a where 1=1
+        <if test="parentId != null and parentId != ''">
+            and a.parent_id = #{parentId}
+        </if>
+        <if test="titleName != null and titleName != ''">
+            and a.title like concat('%',#{titleName},'%') and LENGTH(a.p_key_id)>11
+        </if>
+    </select>
+
+    <delete id="delTabProjectById">
+        delete m_wbs_tree_private WHERE p_key_id = #{pKeyId} and project_id=#{projectId}AND type = 10
+    </delete>
 </mapper>

+ 10 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreePrivateService.java

@@ -7,10 +7,7 @@ import org.springblade.manager.dto.WbsTreePrivateDTO2;
 import org.springblade.manager.dto.WbsTreePrivateDTO3;
 import org.springblade.manager.entity.WbsTree;
 import org.springblade.manager.entity.WbsTreePrivate;
-import org.springblade.manager.vo.ExcelTabVO;
-import org.springblade.manager.vo.WbsNodeTabAndParamVO;
-import org.springblade.manager.vo.WbsNodeTableVO;
-import org.springblade.manager.vo.WbsTreePrivateVO;
+import org.springblade.manager.vo.*;
 
 
 import java.util.List;
@@ -28,7 +25,10 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
     List<WbsTreePrivateVO> lazyTree(String wbsId, String wbsType, Long parentId, String projectId);
 
     // 项目级 表单类型划分
-    IPage<WbsTreePrivateVO> tabTypeLazyTree(IPage<WbsTreePrivateVO> page, Long parentId, String projectId, String titleName);
+    IPage<TreeNodeVOByTabType> tabTypeLazyTree(IPage<TreeNodeVOByTabType> page, Long parentId, String projectId, String titleName);
+
+    // 元素
+    IPage<TreeNodeVOByTabType> tabTypeLazyTreeAll(IPage<TreeNodeVOByTabType> page, Long parentId,String titleName);
 
     List<WbsTreePrivateDTO2> findWbsTreePrivateSameLevel(String projectId, String parentId, String wbsId);
 
@@ -56,6 +56,10 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
 
     boolean syncNodeTable(String primaryKeyId);
 
-    R addWbsTreeContractInfo(String nodeId, String primaryKeyIds);
+    R addWbsTreeContractInfo(String nodeId, String primaryKeyIds,long contractId);
+
+    // 向项目添加元素
+    R addWbsTreeProjectInfo (String primaryKeyIds,String projectId);
 
+    R delTabProjectById(String primaryKeyIds,String projectId);
 }

+ 50 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -20,10 +20,7 @@ import org.springblade.manager.entity.*;
 
 import org.springblade.manager.mapper.*;
 import org.springblade.manager.service.IWbsTreePrivateService;
-import org.springblade.manager.vo.ExcelTabVO;
-import org.springblade.manager.vo.WbsNodeTabAndParamVO;
-import org.springblade.manager.vo.WbsNodeTableVO;
-import org.springblade.manager.vo.WbsTreePrivateVO;
+import org.springblade.manager.vo.*;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -166,13 +163,21 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
     }
 
     @Override
-    public IPage<WbsTreePrivateVO> tabTypeLazyTree(IPage<WbsTreePrivateVO> page, Long parentId, String projectId, String titleName) {
+    public IPage<TreeNodeVOByTabType> tabTypeLazyTree(IPage<TreeNodeVOByTabType> page, Long parentId, String projectId, String titleName) {
         if((parentId+"").equals("12345678910")){
             page.setSize(100);
         }
         return page.setRecords(baseMapper.tabTypeLazyTree(page,parentId, projectId,titleName));
     }
 
+    @Override
+    public IPage<TreeNodeVOByTabType> tabTypeLazyTreeAll(IPage<TreeNodeVOByTabType> page, Long parentId, String titleName) {
+        if((parentId+"").equals("12345678910")){
+            page.setSize(100);
+        }
+        return page.setRecords(baseMapper.tabTypeLazyTreeAll(page,parentId,titleName));
+    }
+
     @Override
     public List<WbsTreePrivateDTO2> findWbsTreePrivateSameLevel(String projectId, String parentId, String wbsId) {
         return baseMapper.selectNodeListByCondition(projectId, parentId, wbsId);
@@ -878,7 +883,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
     }
 
     @Override
-    public R addWbsTreeContractInfo(String nodeId, String primaryKeyIds) {
+    public R addWbsTreeContractInfo(String nodeId, String primaryKeyIds,long contractId) {
         if(com.alibaba.cloud.commons.lang.StringUtils.isEmpty(nodeId)){
             return  R.fail("nodeId不能为空");
         }
@@ -886,11 +891,48 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
             return   R.fail("primaryKeyIds不能为空");
         }
         List<Long> longs = Func.toLongList(primaryKeyIds);
-        WbsTreeContract contractInfo = wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, nodeId));
         for(Long id:longs){
             WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.getByPKeyId(id);
             Long pKeyId1 = SnowFlakeUtil.getId();
-            wbsTreeContractMapper.insertByCondition(wbsTreePrivate, contractInfo.getId(), pKeyId1, Integer.valueOf(wbsTreePrivate.getWbsType()));
+            wbsTreeContractMapper.insertByCondition(wbsTreePrivate, contractId, pKeyId1, Integer.valueOf(wbsTreePrivate.getWbsType()));
+        }
+        return R.success("添加成功");
+    }
+
+    @Override
+    public R addWbsTreeProjectInfo (String primaryKeyIds,String projectId) {
+        if(com.alibaba.cloud.commons.lang.StringUtils.isEmpty(projectId)){
+            return  R.fail("projectId不能为空");
+        }
+        if(com.alibaba.cloud.commons.lang.StringUtils.isEmpty(primaryKeyIds)){
+            return   R.fail("primaryKeyIds不能为空");
+        }
+
+        List<Long> longs = Func.toLongList(primaryKeyIds);
+        for(Long id:longs){
+            WbsTree wbsTree = wbsTreeMapper.selectById(id);
+            WbsTreePrivate wbsPrivate = BeanUtil.copyProperties(wbsTree, WbsTreePrivate.class);
+            Long pKeyId1 = SnowFlakeUtil.getId();
+            wbsPrivate.setPKeyId(pKeyId1);
+            wbsPrivate.setProjectId(projectId);
+            wbsPrivate.setType(10);//带过来的元素信息
+            wbsPrivate.setParentId(-10l);
+            wbsTreePrivateMapper.insert(wbsPrivate);
+        }
+        return R.success("添加成功");
+    }
+
+    @Override
+    public R delTabProjectById(String primaryKeyIds, String projectId) {
+        if(com.alibaba.cloud.commons.lang.StringUtils.isEmpty(projectId)){
+            return  R.fail("projectId不能为空");
+        }
+        if(com.alibaba.cloud.commons.lang.StringUtils.isEmpty(primaryKeyIds)){
+            return   R.fail("primaryKeyIds不能为空");
+        }
+        List<String> longs = Func.toStrList(primaryKeyIds);
+        for(String id:longs){
+            wbsTreePrivateMapper.delTabProjectById(id,projectId);
         }
         return R.success("添加成功");
     }