Administrator 2 年之前
父節點
當前提交
13123cedc1

+ 1 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContract.java

@@ -20,6 +20,7 @@ public class WbsTreeContract extends BaseEntity {
     /**
      * 主键id
      */
+    @ApiModelProperty(value = "主键id")
     private Long pKeyId;
 
     /**

+ 20 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVOByTabType.java

@@ -0,0 +1,20 @@
+package org.springblade.manager.vo;
+
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tool.node.BaseNode;
+import org.springblade.core.tool.node.TreeNode;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class TreeNodeVOByTabType extends BaseNode<TreeNode> {
+
+    private static final long serialVersionUID = 1L;
+    private String title;
+    private String primaryKeyId;
+    private String tabType;
+    private String tabOwner;
+    private String elementTotal;
+    private Integer fillRate;
+}

+ 1 - 1
blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java

@@ -1078,7 +1078,7 @@ public class CustomFunction {
 		return StringPool.EMPTY;
 	}
 
-	public static void main(String[] args) {
+	public static void main11(String[] args) {
 		Date d= new Date();
 		DateTime d2= new DateTime("2022-11-13 12:12:12");
 		System.out.println(dateMin(d,d2));

+ 4 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java

@@ -358,7 +358,10 @@ public class TextdictInfoController extends BladeController {
             textdictInfoService.saveOrUpdate(textdictInfo);
             element.removeAttr("dqId");
             element.attr("dqId", textdictInfo.getId() + "");
-            element.children().get(0).attr(":readonly","true");
+            if(!jsonObject.getInteger("type").equals("6")){
+                element.children().get(0).attr(":readonly","true");
+            }
+
         }
 
         // 写入 excel

+ 3 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java

@@ -1,10 +1,12 @@
 package org.springblade.manager.controller;
 
+import com.alibaba.cloud.commons.lang.StringUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.dto.WbsTreeContractDTO2;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.service.IWbsTreeContractService;
@@ -23,6 +25,7 @@ public class WbsTreeContractController extends BladeController {
 
     private final IWbsTreeContractService iWbsTreeContractService;
 
+
     @GetMapping("/search-node-tables")
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "查询当前节点下所有元素表信息", notes = "传入节点primaryKeyId、type、合同段id、项目id")

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

@@ -1,5 +1,6 @@
 package org.springblade.manager.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.mixsmart.utils.StringUtils;
@@ -11,6 +12,7 @@ import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.support.Kv;
@@ -26,6 +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;
@@ -35,6 +38,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 
+import java.io.IOException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -43,7 +47,7 @@ import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
 @RestController
 @AllArgsConstructor
 @RequestMapping("/wbsPrivate")
-@Api(value = "私有wbs树", tags = "私有wbs树接口")
+@Api(value = "wbsPrivate", tags = "私有wbs树接口")
 public class WbsTreePrivateController extends BladeController {
 
     private final IWbsTreePrivateService wbsTreePrivateService;
@@ -491,13 +495,24 @@ public class WbsTreePrivateController extends BladeController {
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "parentId", value = "父级id", required = true),
             @ApiImplicitParam(name = "projectId", value = "项目id", required = true),
+            @ApiImplicitParam(name = "titleName", value = "搜索关键字", required = true)
     })
-    public R<List<WbsTreePrivateVO>> tabTypeLazyTree(Long parentId, String projectId, BladeUser bladeUser, String tenantId) {
-        List<WbsTreePrivateVO> tree = wbsTreePrivateService.tabTypeLazyTree(parentId, projectId);
-        if (tree != null && tree.size() > 0) {
-            return R.data(tree);
-        }
-        return R.fail(200, "未查询到信息");
+    public R<IPage<WbsTreePrivateVO>> tabTypeLazyTree(Long parentId, String projectId, BladeUser bladeUser, String titleName, Query query) {
+
+        IPage<WbsTreePrivateVO> page= wbsTreePrivateService.tabTypeLazyTree(Condition.getPage(query),parentId, projectId,titleName);
+        return R.data(page);
+    }
+
+    @PostMapping("/add-wbs-contract-info")
+    @ApiOperationSupport(order = 17)
+    @ApiOperation(value = "客户端-添加合同段节点树", notes = "传入file、primaryKeyId、isSplicingNumber")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "nodeId", value = "合同段树的最小节点id", required = true),
+            @ApiImplicitParam(name = "primaryKeyIds", value = "表的注解ids(多个以,隔开)", required = true),
+    })
+    public R addWbsTreeContractInfo(@RequestPart("nodeId") String nodeId,
+                                    @RequestParam("primaryKeyIds") String primaryKeyIds){
+        return wbsTreePrivateService.addWbsTreeContractInfo(nodeId,primaryKeyIds);
     }
 
 }

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

@@ -325,7 +325,7 @@
             wt.wbs_id AS "wbsId",
             wt.fill_rate AS "fillRate",
             wt.init_table_id AS initTableId,
-            (SELECT count(*) FROM m_wbs_form_element WHERE f_id = wt.id and is_deleted = 0 and status = 1) AS "elementTotal"
+            (SELECT count(*) FROM m_wbs_form_element WHERE f_id = wt.init_table_id and is_deleted = 0 and status = 1) AS "elementTotal"
         FROM
             m_wbs_tree AS wt
         WHERE

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

@@ -1,5 +1,6 @@
 package org.springblade.manager.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.manager.dto.WbsTreePrivateDTO2;
 import org.springblade.manager.dto.WbsTreePrivateDTO3;
@@ -40,7 +41,7 @@ public interface WbsTreePrivateMapper extends EasyBaseMapper<WbsTreePrivate> {
 
     List<WbsTreePrivateVO> lazyTree(String wbsId, Integer wbsType, Long parentId, String projectId);
 
-    List<WbsTreePrivateVO> tabTypeLazyTree(Long parentId, String projectId);
+    List<WbsTreePrivateVO> tabTypeLazyTree(IPage page, Long parentId, String projectId, String titleName);
 
     int updateByPKeyId(@Param("pKeyId") Long pKeyId, @Param("wbsTP") WbsTreePrivate wbsTP);
 

+ 31 - 9
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml

@@ -66,6 +66,20 @@
         <result column="has_children" property="hasChildren"/>
         <result column="primaryKeyId" property="primaryKeyId"/>
     </resultMap>
+
+    <resultMap id="treeNodeResultMapTabType" type="org.springblade.manager.vo.TreeNodeVOByTabType">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="title" property="title"/>
+        <result column="has_children" property="hasChildren"/>
+        <result column="primaryKeyId" property="primaryKeyId"/>
+        <result column="tabOwner" property="tabOwner"/>
+        <result column="tabType" property="tabType"/>
+        <result column="elementTotal" property="elementTotal"/>
+        <result column="fillRate" property="fillRate"/>
+    </resultMap>
+
+
     <insert id="insertCombination1">
         INSERT INTO m_wbs_tree_private(p_key_id, id, wbs_id, wbs_type, project_id, tenant_id, parent_id, ancestors,
                                        node_type, node_name, full_name, sort, remark, `type`,
@@ -393,11 +407,12 @@
                wt.table_owner AS tableOwner,
                wt.is_link_table,
                wt.init_table_name,
+               wt.init_table_id as initTableId,
                wt.excel_id AS excelId,
                wt.sort,
                wt.status,
                wt.fill_rate AS "fillRate",
-               (SELECT count(1) FROM m_wbs_form_element WHERE f_id = wt.id and is_deleted=0) AS "elementTotal"
+               (SELECT count(1) FROM m_wbs_form_element WHERE f_id = wt.init_table_id and is_deleted=0) AS "elementTotal"
         FROM m_wbs_tree_private AS wt
         WHERE wt.type = 2
           AND wt.is_deleted = 0
@@ -515,8 +530,11 @@
     </select>
 
     <!-- 项目级 表单类型分类 wbs树 -->
-    <select id="tabTypeLazyTree" resultMap="treeNodeResultMap2">
-        SELECT p_key_id as id,p_key_id as primaryKeyId,title,parent_id,
+    <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 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
@@ -531,15 +549,19 @@
                    WHERE
                        b.parent_id = a.p_key_id
                ) AS "has_children"
-
                from (
-            SELECT  '12345678910' as p_key_id , '表单类型' as title, 0 as parent_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 init_table_id
                  union all
-            SELECT dict_key as p_key_id ,dict_value as title,'12345678910' as parent_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 init_table_id 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 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
-           ) a where a.parent_id = #{parentId}
+            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
+           ) 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>
 
-
 </mapper>

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

@@ -1,10 +1,13 @@
 package org.springblade.manager.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.base.BaseService;
+import org.springblade.core.tool.api.R;
 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;
@@ -25,7 +28,7 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
     List<WbsTreePrivateVO> lazyTree(String wbsId, String wbsType, Long parentId, String projectId);
 
     // 项目级 表单类型划分
-    List<WbsTreePrivateVO> tabTypeLazyTree(Long parentId, String projectId);
+    IPage<WbsTreePrivateVO> tabTypeLazyTree(IPage<WbsTreePrivateVO> page, Long parentId, String projectId, String titleName);
 
     List<WbsTreePrivateDTO2> findWbsTreePrivateSameLevel(String projectId, String parentId, String wbsId);
 
@@ -53,4 +56,6 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
 
     boolean syncNodeTable(String primaryKeyId);
 
+    R addWbsTreeContractInfo(String nodeId, String primaryKeyIds);
+
 }

+ 27 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -2,6 +2,7 @@ package org.springblade.manager.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -9,14 +10,17 @@ import lombok.AllArgsConstructor;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.dto.WbsTreePrivateDTO2;
 import org.springblade.manager.dto.WbsTreePrivateDTO3;
 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;
@@ -162,8 +166,11 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
     }
 
     @Override
-    public List<WbsTreePrivateVO> tabTypeLazyTree(Long parentId, String projectId) {
-        return ForestNodeMerger.merge(baseMapper.tabTypeLazyTree(parentId, projectId));
+    public IPage<WbsTreePrivateVO> tabTypeLazyTree(IPage<WbsTreePrivateVO> page, Long parentId, String projectId, String titleName) {
+        if((parentId+"").equals("12345678910")){
+            page.setSize(100);
+        }
+        return page.setRecords(baseMapper.tabTypeLazyTree(page,parentId, projectId,titleName));
     }
 
     @Override
@@ -870,6 +877,24 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         return false;
     }
 
+    @Override
+    public R addWbsTreeContractInfo(String nodeId, String primaryKeyIds) {
+        if(com.alibaba.cloud.commons.lang.StringUtils.isEmpty(nodeId)){
+            return  R.fail("nodeId不能为空");
+        }
+        if(com.alibaba.cloud.commons.lang.StringUtils.isEmpty(primaryKeyIds)){
+            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()));
+        }
+        return R.success("添加成功");
+    }
+
     @Transactional(rollbackFor = Exception.class)
     public boolean insertBatch(Collection<WbsTreePrivate> entityList, int batchSize) {
         try {