Selaa lähdekoodia

Merge branch 'zhuwei' into test-merge

# Conflicts:
#	blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/feign/WbsTreeContractClient.java
#	blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java
#	blade-service/blade-business/src/main/java/org/springblade/business/controller/RecycleBinController.java
#	blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java
#	blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreeContractClientImpl.java
#	blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml
#	blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java
zhuwei 1 kuukausi sitten
vanhempi
commit
d036b5cb88
15 muutettua tiedostoa jossa 129 lisäystä ja 127 poistoa
  1. 1 1
      blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/oss/OssBuilder.java
  2. 5 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVOByTabType.java
  3. 4 0
      blade-service/blade-business/pom.xml
  4. 0 40
      blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java
  5. 2 2
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/InformationQueryServiceImpl.java
  6. 2 3
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java
  7. 15 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java
  8. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml
  9. 2 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.java
  10. 55 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml
  11. 2 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreePrivateService.java
  12. 8 14
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java
  13. 13 35
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java
  14. 11 30
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsFormElementServiceImpl.java
  15. 8 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

+ 1 - 1
blade-ops/blade-resource/src/main/java/org/springblade/resource/builder/oss/OssBuilder.java

@@ -98,7 +98,7 @@ public class OssBuilder {
                 oss.setEndpoint("https://xinan1.zos.ctyun.cn");
             }
         }
-		oss.setEndpoint("https://xinan1.zos.ctyun.cn");
+		//oss.setEndpoint("https://xinan1.zos.ctyun.cn");
 		System.out.println("oss111="+oss.getEndpoint());
 		Oss ossCached = ossPool.get(tenantId);
 		OssTemplate template = templatePool.get(tenantId);

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

@@ -13,6 +13,7 @@ public class TreeNodeVOByTabType extends BaseNode<TreeNode> {
     private static final long serialVersionUID = 1L;
     private String title;
     private String primaryKeyId;
+    private Long pkeyId;
     private String tabType;
     private String tabOwner;
     private String elementTotal;
@@ -20,5 +21,9 @@ public class TreeNodeVOByTabType extends BaseNode<TreeNode> {
     private String initTableId;
     private String initTableName;
     private String excelIds;
+    private String excelId;
+
+    private String tableType;
+    private String tableOwner;
 
 }

+ 4 - 0
blade-service/blade-business/pom.xml

@@ -31,6 +31,10 @@
             <groupId>org.springblade</groupId>
             <artifactId>blade-core-boot</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-test</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.springblade</groupId>
             <artifactId>blade-starter-swagger</artifactId>

+ 0 - 40
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -1217,48 +1217,8 @@ public class InformationWriteQueryController extends BladeController {
                 return R.data(300, false, "未查询到填报信息,上报失败");
             }
         } else { //质检
-            //记录选中节点的所有表单旧html
-            List<Long> list = Arrays.stream(startTaskVO.getIds().split(",")).map(Long::parseLong).collect(Collectors.toList());
-            List<WbsTreeContract> wbsTreeContracts =  wbsTreeContractClient.queryListByPIds(list);
-
-
             businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery().eq(InformationQuery::getWbsId, startTaskVO.getIds().replaceAll(",", "")).eq(InformationQuery::getClassify, startTaskVO.getClassify().toString()).eq(InformationQuery::getType, 1).last("order by id desc limit 1"));
             if (businessData != null) {
-
-                //处理html 复制之后记录在新表中w
-                if (CollectionUtils.isNotEmpty(wbsTreeContracts)) {
-                    List<WbsTreeContractOldHtml> data = new ArrayList<>();
-                    try {
-                        for (WbsTreeContract wbsTreeContract : wbsTreeContracts) {
-                            ExcelTab byId = excelTabClient.getById(String.valueOf(wbsTreeContract.getExcelId()));
-                            WbsTreeContractOldHtml oldHtml = new WbsTreeContractOldHtml();
-                            oldHtml.setId(SnowFlakeUtil.getId());
-                            oldHtml.setCreateUser(getUser().getUserId());
-                            String htmlUrl = wbsTreeContract.getHtmlUrl();
-                            // 获取或下载文件
-                            Path sourcePath = FileUtils.getOrDownloadFile(htmlUrl);
-                            // 生成副本路径
-                            Path copyPath = FileUtils.generateCopyPath(sourcePath,wbsTreeContract.getPKeyId());
-                            // 执行复制操作(覆盖已存在的文件)
-                            Files.copy(sourcePath, copyPath, StandardCopyOption.REPLACE_EXISTING);
-
-                            oldHtml.setContractFormId(wbsTreeContract.getPKeyId());
-                            oldHtml.setOldHtmlUrl(copyPath.toFile().getAbsolutePath());
-                            //记录历史excel路径
-                            oldHtml.setOldExcelUrl(byId.getFileUrl());
-                            data.add(oldHtml);
-                        }
-                        List<Long> collect = data.stream().map(WbsTreeContractOldHtml::getContractFormId).collect(Collectors.toList());
-                        //删除旧记录
-                        wbsTreeContractOldHtmlClient.deleteByContractFormIds(collect);
-
-                        wbsTreeContractOldHtmlClient.save(data);
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                        throw new ServiceException(e.getMessage());
-                    }
-                }
-
                 //设置业务数据ID
                 startTaskVO.setIds(businessData.getId().toString());
                 return this.batchTask(startTaskVO);

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/InformationQueryServiceImpl.java

@@ -392,7 +392,7 @@ public class InformationQueryServiceImpl extends BaseServiceImpl<InformationQuer
             if(type>=3 || type<=0){
                 type = 1;
             }
-            if (DistributedRedisLock.acquire("saveOrUpdateInformationQueryData:" + primaryKeyId + ":" + contractTree.getContractId() + ":" + classify + ":" + type,5)) {
+            if (DistributedRedisLock.acquire("saveOrUpdateInformationQueryData:" + primaryKeyId + ":" + contractTree.getContractId() + ":" + classify + ":" + type,20)) {
                 try {
                     //判断当前填报节点下是否已经存在相应数据
                     InformationQuery oldData = this.baseMapper.getInformationQueryByWbsId(contractTree.getPKeyId(), classify,contractTree.getContractId());
@@ -1071,7 +1071,7 @@ public class InformationQueryServiceImpl extends BaseServiceImpl<InformationQuer
         List<InformationQuery> informationQueries = this.getBaseMapper().selectBatchIds(ids);
         if (informationQueries != null && !informationQueries.isEmpty()) {
             for (InformationQuery informationQuery : informationQueries) {
-                if (DistributedRedisLock.acquire("informationQueryLock_" + informationQuery.getWbsId() + "_" + informationQuery.getContractId() + "_" + informationQuery.getClassify() + "_" + informationQuery.getType(),5)) {
+                if (DistributedRedisLock.acquire("informationQueryLock_" + informationQuery.getWbsId() + "_" + informationQuery.getContractId() + "_" + informationQuery.getClassify() + "_" + informationQuery.getType(),20)) {
                     try {
                         List<InformationQuery> queryList = this.list(Wrappers.<InformationQuery>lambdaQuery().select(InformationQuery::getId, InformationQuery::getStatus)
                                 .eq(InformationQuery::getWbsId, informationQuery.getWbsId())

+ 2 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -1709,7 +1709,7 @@ public class ExcelTabController extends BladeController {
         wbsTreeContract.setTabGroupId(tabGroupId);
         wbsTreeContract.setCopyPkId(wbsInfo.getCopyPkId() == null ? pkeyId + "" : wbsInfo.getCopyPkId());
         String nodeName;
-        nodeName = wbsTreeContractList2.isEmpty() ? wbsInfo.getNodeName() :wbsTreeContractList2.get(wbsTreeContractList2.size() - 1).getNodeName();
+        nodeName = wbsTreeContractList2.get(wbsTreeContractList2.size() - 1).getNodeName();
         if (nodeName.indexOf("__") >= 0) {
             String[] oldName = nodeName.split("__");
             nodeName = oldName[0] + "__" + (Integer.parseInt(oldName[1]) + 1);
@@ -2089,7 +2089,7 @@ public class ExcelTabController extends BladeController {
         }
         executionTime.info("----数据合并前----");
         List<String> errorPKeyIds = new ArrayList<>();
-        //单个pdf加载
+        //单个pdf加载F
         tableInfoList = (List<TableInfo>) result.getData();
         if (tableInfoList != null) {
             String finalSingnType = singnType;
@@ -4736,7 +4736,6 @@ public class ExcelTabController extends BladeController {
                 js2.put("orderList", array);
                 js.put("dataInfo", js2);
                 js.put("signType", "1");
-                js.put("isNotDelOldHtml", 1);
                 /*if(infoB!=null && (infoB.getStatus()==1 || infoB.getStatus()==2)){
                     js.put("signType", "1");
                 }*/

+ 15 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -1016,4 +1016,19 @@ public class WbsTreePrivateController extends BladeController {
             .collect(Collectors.joining(","));
     }
 
+    /**
+     * wbs私有树懒加载获取项目私有节点树形结构--(表单类型划分树)
+     */
+    @GetMapping("/tab-Type-lazy-tree-project")
+    @ApiOperationSupport(order = 40)
+    @ApiOperation(value = "项目级懒加载节点树形结构-表单类型划分树", notes = "传入项目Id和父Id")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "parentId", value = "父级id", required = true),
+            @ApiImplicitParam(name = "projectId", value = "项目id", required = true),
+            @ApiImplicitParam(name = "titleName", value = "搜索关键字", required = true)
+    })
+    public R<IPage<TreeNodeVOByTabType>> tabTypeLazyTreeByProject(Long parentId, String projectId, String titleName, Query query) {
+        IPage<TreeNodeVOByTabType> page = wbsTreePrivateService.tabTypeLazyTreeByProject(Condition.getPage(query), parentId, projectId, titleName);
+        return R.data(page);
+    }
 }

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

@@ -343,7 +343,7 @@
         and a.project_id = #{projectId}
         <choose>
             <when test="extType != null and extType == 1">
-                and (b.node_id in( select id from  m_archive_tree_contract where FIND_IN_SET(#{id},ancestors) or a.id = #{id}) OR
+                and ( 	b.node_id in( select id from  m_archive_tree_contract where FIND_IN_SET(#{id},ancestors) or a.id = #{id}) OR
                 b.node_ext_id in(  select id from  m_archive_tree_contract where FIND_IN_SET(#{id},ancestors) or a.id = #{id}))
             </when>
             <otherwise>

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

@@ -43,6 +43,8 @@ public interface WbsTreePrivateMapper extends EasyBaseMapper<WbsTreePrivate> {
 
     List<TreeNodeVOByTabType> tabTypeLazyTree(IPage page, Long parentId, String projectId, String titleName);
 
+    List<TreeNodeVOByTabType> tabTypeLazyTreeByProject(IPage page, Long parentId, String projectId, String titleName);
+
     List<TreeNodeVOByTabType> tabTypeLazyTreeAll(Long parentId, String titleName);
 
     int updateByPKeyId(@Param("pKeyId") Long pKeyId, @Param("wbsTP") WbsTreePrivate wbsTP);

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

@@ -97,12 +97,17 @@
         <result column="title" property="title"/>
         <result column="has_children" property="hasChildren"/>
         <result column="primaryKeyId" property="primaryKeyId"/>
+        <result column="pkeyId" property="pkeyId"/>
         <result column="tabOwner" property="tabOwner"/>
         <result column="tabType" property="tabType"/>
         <result column="elementTotal" property="elementTotal"/>
         <result column="fillRate" property="fillRate"/>
         <result column="initTableId" property="initTableId"/>
+        <result column="initTableName" property="initTableName"/>
         <result column="excelIds" property="excelIds"/>
+        <result column="excelId" property="excelId"/>
+        <result column="table_type" property="tableType"/>
+        <result column="table_owner" property="tableOwner"/>
     </resultMap>
 
 
@@ -875,7 +880,7 @@
         delete
         from m_wbs_tree_private
         WHERE p_key_id = #{pKeyId}
-          and project_id = #{projectId}AND type = 10
+          and project_id = #{projectId} AND type in(2, 10)
     </delete>
 
     <delete id="delTableById">
@@ -958,4 +963,53 @@
         from u_contract_log ucl
         where contract_id = #{contractId} and is_deleted = 0 and pdf_url IS NOT NULL order by record_time
     </select>
+
+
+    <!-- 项目级 表单类型分类 wbs树 -->
+    <select id="tabTypeLazyTreeByProject" resultMap="treeNodeResultMapTabType">
+        SELECT a.exceIds AS excelIds,initTableName,a.exceIds as excelId,table_type, table_owner,
+        p_key_id as id,p_key_id as primaryKeyId,title,parent_id,fill_rate as fillRate,initTableId,p_key_id as pkeyId,
+        (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 sort FROM m_wbs_node_sort c WHERE a.p_key_id = c.p_key_id) AS sort,
+        (
+        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 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 in(2,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 initTableId,0 as exceIds,0 as initTableName
+        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 exceIsd,0 as initTableName 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 as initTableId,excel_id AS excelIds,init_table_name as  initTableName
+        from m_wbs_tree_private WHERE project_id=#{projectId} and type in(2,10) and
+        is_deleted=0 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>
+        /*排序*/
+        -- order by sort,title
+    </select>
 </mapper>

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreePrivateService.java

@@ -31,6 +31,8 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
     // 项目级 表单类型划分
     IPage<TreeNodeVOByTabType> tabTypeLazyTree(IPage<TreeNodeVOByTabType> page, Long parentId, String projectId, String titleName);
 
+    IPage<TreeNodeVOByTabType> tabTypeLazyTreeByProject(IPage<TreeNodeVOByTabType> page, Long parentId, String projectId, String titleName);
+
     // 元素
     IPage<TreeNodeVOByTabType> tabTypeLazyTreeAll(IPage<TreeNodeVOByTabType> page, Long parentId, String titleName,Boolean hasPartFormula);
 

+ 8 - 14
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -1241,9 +1241,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                     String delSql = "delete from " + tabName + " where p_key_id=" + tableInfo.getPkeyId();
                     String sqlInfo = "";
                     LinkedHashMap<String, String> dataMap2 = tableInfo.getDataMap();
-                    if (!updateFieldLength(tabName, dataMap2)) {
-                        throw new ServiceException("字段长度超出限制, 系统无法进行自增,请前往后台管理系统手动设置");
-                    }
+                    updateFieldLength(tabName, dataMap2);
                     /*检查发现有p_key_id缺失的情况,导致表单数据丢失,所以强制覆盖*/
                     dataMap2.put("p_key_id", tableInfo.getPkeyId());
                     //统计保存的字段
@@ -1354,17 +1352,14 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
        // return R.success(fileName1);
     }
 
-    public boolean updateFieldLength(String tableName, Map<String, String> fieldNameAndLengthMap) {
+    public void updateFieldLength(String tableName, Map<String, String> fieldNameAndLengthMap) {
         if (fieldNameAndLengthMap == null || fieldNameAndLengthMap.isEmpty()) {
-            return true;
+            return;
         }
-        fieldNameAndLengthMap.remove("id");
-        fieldNameAndLengthMap.remove("p_key_id");
-        fieldNameAndLengthMap.remove("group_id");
-        if (fieldNameAndLengthMap.isEmpty()) {
-            return true;
+        String fields = fieldNameAndLengthMap.keySet().stream().filter(key -> !key.equals("id") && !key.equals("p_key_id") && !key.equals("group_id")).map(key -> "'" + key + "'").collect(Collectors.joining(","));
+        if (fields.isEmpty()) {
+            return;
         }
-        String fields = fieldNameAndLengthMap.keySet().stream().map(key -> "'" + key + "'").collect(Collectors.joining(","));
         List<Map<String, Object>> fieldMap = jdbcTemplate.queryForList("select distinct COLUMN_NAME as fieldName, CHARACTER_MAXIMUM_LENGTH as fieldLength from information_schema.COLUMNS where  TABLE_NAME = '" + tableName +
                 "' and COLUMN_NAME in (" + fields + ")");
         Map<String, Integer> map = fieldMap.stream().collect(toMap(k -> k.get("fieldName") + "", v -> {
@@ -1405,10 +1400,9 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
             } catch (Exception e) {
                 transactionManager1.rollback(transactionStatus);
                 log.error("更新字段长度失败, error: " + e.getMessage());
-                return false;
+                throw new ServiceException("字段长度超出限制, 系统无法进行扩容,请尝试缩小字段长度或者联系系统管理员处理");
             }
         }
-        return true;
     }
 
     public String reason(String log) {
@@ -2387,7 +2381,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                                     anchor.setAnchorType(ClientAnchor.AnchorType.MOVE_AND_RESIZE);
                                     // 插入图片
                                     Picture pict = drawing.createPicture(anchor, pictureIdx); // 调整图片占单元格百分比的大小,1.0就是100%
-                                    pict.resize(1, 1);
+                                    pict.resize(0.9, 0.9);
                                     FileUtils.imageOrientation(sheet, anchor, new DataVO(x1 - 1, y1 - 1));
                                 }
 

+ 13 - 35
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -2501,7 +2501,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         String sql = "Select * from s_contract_meter_period where contract_id=" + contractId + " and is_deleted=0" + " order by start_date";
         List<ContractMeterPeriod> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ContractMeterPeriod.class));
         //获取所有excel报表源数据
-        String sqlForExcel = "SELECT p.p_key_id,e.name,e.id,p.html_url,e.file_url,p.init_table_name as tabName FROM m_wbs_tree_private as p LEFT JOIN m_excel_tab as e on p.excel_id=e.id where p.wbs_type=3 AND p.is_deleted=0 AND p.type=2" + " and p.project_id=" + projectId;
+        String sqlForExcel = "SELECT p.p_key_id,e.name,e.id,p.html_url,e.file_url FROM m_wbs_tree_private as p LEFT JOIN m_excel_tab as e on p.excel_id=e.id where p.wbs_type=3 AND p.is_deleted=0 AND p.type=2" + " and p.project_id=" + projectId;
         List<ExcelTabVo1> excelTabs = jdbcTemplate.query(sqlForExcel, new BeanPropertyRowMapper<>(ExcelTabVo1.class));
         ArrayList<ReportResult> reportResults = new ArrayList<>();
         //中期支付报表封面
@@ -2547,25 +2547,25 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         String htmlUrl6 = excel6.get().getHtmlUrl();
         Long pKeyId6 = excel6.get().getPKeyId();
         // 获取中期支付报表封面的pdfurl
-        ReportResult CoverOfMidtermPaymentReportPDF = getCoverOfMidtermPaymentReportPDF(url, contractId, periodId, htmlUrl, projectName, list, pKeyId, excel.get().getTabName());
+        ReportResult CoverOfMidtermPaymentReportPDF = getCoverOfMidtermPaymentReportPDF(url, contractId, periodId, htmlUrl, projectName, list, pKeyId);
 
         //获取中间支付审核表的pdfurl
-        ReportResult intermediatePaymentPDF = getIntermediatePaymentPDF(url1, contractId, periodId, list, redisId, htmlUrl1, blReserveFundsRatioNew, projectName, changeMoneyNew, pKeyId1, excel1.get().getTabName());
+        ReportResult intermediatePaymentPDF = getIntermediatePaymentPDF(url1, contractId, periodId, list, redisId, htmlUrl1, blReserveFundsRatioNew, projectName, changeMoneyNew, pKeyId1);
 
         //获取补助款申请支付审核表pdfUrl
-        ReportResult subsidyApplicationPaymentReviewPDF = getSubsidyApplicationPaymentReviewPDF(url2, contractId, periodId, list, htmlUrl2, blReserveFundsRatioNew, projectName, projectId, reportId, pKeyId2,excel2.get().getTabName());
+        ReportResult subsidyApplicationPaymentReviewPDF = getSubsidyApplicationPaymentReviewPDF(url2, contractId, periodId, list, htmlUrl2, blReserveFundsRatioNew, projectName, projectId, reportId, pKeyId2);
 
         //获取中间计量支付证书pdfUrl
-        ReportResult intermediateMeasurementPaymentCertificatePDF = getIntermediateMeasurementPaymentCertificatePDF(url3, contractId, periodId, list, htmlUrl3, blReserveFundsRatioNew, projectName, pKeyId3,excel3.get().getTabName());
+        ReportResult intermediateMeasurementPaymentCertificatePDF = getIntermediateMeasurementPaymentCertificatePDF(url3, contractId, periodId, list, htmlUrl3, blReserveFundsRatioNew, projectName, pKeyId3);
 
         //获取清单支付报表PDF
-        ReportResult inventoryPayReportPDF = getInventoryPayReportPDF(url6, contractId, periodId, projectId, list, redisId, htmlUrl6, pKeyId6, excel6.get().getTabName());
+        ReportResult inventoryPayReportPDF = getInventoryPayReportPDF(url6, contractId, periodId, projectId, list, redisId, htmlUrl6, pKeyId6);
 
         //获取工程支付月报pdfUrl
-        ReportResult monthlyReportPDF = getMonthlyReportPDF(url5, reportId, contractId, periodId, projectId, list, redisId, htmlUrl5, pKeyId5, excel5.get().getTabName());
+        ReportResult monthlyReportPDF = getMonthlyReportPDF(url5, reportId, contractId, periodId, projectId, list, redisId, htmlUrl5, pKeyId5);
 
         //获取中间支付申请表pdfUrl
-        ReportResult intermediateApplyPDF = getIntermediateApplyPDF(url4, periodId, projectId, htmlUrl4, projectName, contractId, pKeyId4, excel4.get().getTabName());
+        ReportResult intermediateApplyPDF = getIntermediateApplyPDF(url4, periodId, projectId, htmlUrl4, projectName, contractId, pKeyId4);
 
         reportResults.add(CoverOfMidtermPaymentReportPDF);
         reportResults.add(intermediatePaymentPDF);
@@ -2583,7 +2583,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     /**
      * 中期支付报表封面
      */
-    private ReportResult getCoverOfMidtermPaymentReportPDF(String url, Long contractId, Long periodId, String htmlUrl, String projectName, List<ContractMeterPeriod> list, Long pkeyId, String tabName) {
+    private ReportResult getCoverOfMidtermPaymentReportPDF(String url, Long contractId, Long periodId, String htmlUrl, String projectName, List<ContractMeterPeriod> list, Long pkeyId) {
 
         //获取本期计量期
         String sqlForMeterPeriodById = "SELECT id,period_number,start_date,end_date FROM s_contract_meter_period WHERE id=" + periodId + " and is_deleted = 0 ";
@@ -2634,7 +2634,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 Cell c10 = getCellByAddress(sheet, "C10");
                 c10.setCellValue(contractInfo.getSupervisionUnitName());
             }
-            dianqian(htmlUrl, sheet, workbook, tabName);
+            dianqian(htmlUrl, sheet, workbook);
             if (!periodId.equals(1867838908899852290L)) {
                 dianqianTime(htmlUrl, sheet, workbook, pkeyId, periodId, contractId);
             }
@@ -2670,7 +2670,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     }
 
     /*设置电签ID*/
-    public void dianqian(String htmlUrl, Sheet sheet, Workbook workbook, String tabName) {
+    public void dianqian(String htmlUrl, Sheet sheet, Workbook workbook) {
         try {
             InputStream inputStreamByUrl = FileUtils.getInputStreamByUrl(htmlUrl);
             String htmlString = IoUtil.readToString(inputStreamByUrl);
@@ -2678,30 +2678,8 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             Element table = doc.select("table").first();
             // 组装电签设置
             Elements dqids = table.getElementsByAttribute("dqid");
-            // 电签组装2
-            String dqSql = "select e_key,GROUP_CONCAT(DISTINCT concat('*✹',id)) ids from u_sign_key_role_info where tab_en_name='" + tabName + "' GROUP BY e_key";
-            List<Map<String, Object>> mapList = jdbcTemplate.queryForList(dqSql);
-            if(mapList!=null && mapList.size()>0){
-                for(Map<String, Object> map : mapList) {
-                    Elements elementsBy = table.getElementsByAttributeValueStarting("keyname", map.get("e_key") + "_");
-                    if(elementsBy!=null && elementsBy.size()>0){
-                        for(Element element : elementsBy){
-                            String dqIds = (String) map.get("ids");
-                            dqIds = dqIds.replace(",","");
-                            dqIds = dqIds.substring(1);
-                            element.attr("sign_type", dqIds);
-                            dqids.add(element);
-                        }
-                    }
-                }
-            }
             for (Element element : dqids) {
-                String dqid="";
-                if(element.hasAttr("sign_type")){
-                    dqid = element.attr("sign_type");
-                }else{
-                    dqid = element.attr("dqid");
-                }
+                String dqid = element.attr("dqid");
 
                 int x1 = 0;
                 int y1 = 0;
@@ -3508,7 +3486,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             //顶部项目名称
             Cell a1 = getCellByAddress(sheet, "A1");
             a1.setCellValue(projectName);
-            dianqian(htmlUrl, sheet, workbook, tabName);
+            dianqian(htmlUrl, sheet, workbook);
             if (!periodId.equals(1867838908899852290L)) {
                 dianqianTime(htmlUrl, sheet, workbook, pkeyId, periodId, contractId);
             }

+ 11 - 30
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsFormElementServiceImpl.java

@@ -323,22 +323,6 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
         //修改元素基础信息
         wbsFormElementList.forEach(obj -> obj.setStatus(1));
         boolean b = this.updateBatchById(wbsFormElementList);
-
-
-        //当前设置的字段总长度
-        Integer nowTotalLength = 0;
-        for (WbsFormElement wbsFormElement : wbsFormElementList) {
-            // + 10 预留字段长度,用来保存在excel中的位置信息,比如:xx_^_12_12, 不适合一个字段存储多个位置
-            nowTotalLength += wbsFormElement.getELength() + 10;
-        }
-        //当前表总字段长度
-        int sumLength = baseMapper.selectSumColumnLength(jdbcTemplate.queryForObject("SELECT DATABASE()", String.class), initTableName);
-        if (nowTotalLength > MYSQL_MAX_COLUMN_LENGTH) {
-            //修改元素字段长度
-            throw new ServiceException("无法添加字段,可用长度:" + (MYSQL_MAX_COLUMN_LENGTH - sumLength));
-        }
-
-
         //修改实体表信息
         if (b) {
             String fId = "";
@@ -377,21 +361,18 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
 //                } else if (eLength >= 0 && eLength <= 65) {
 //                    eLength = DEFAULT_ELEMENT_LENGTH_NUMBER;
 //                }
-
-                //判断是否存在该Key字段
-                int row1 = wbsTreeMapper.isThereAField(initTableName, eKey);
-                if (row1 > 0) {
-                    try {
-                        // + 10 预留字段长度,用来保存在excel中的位置信息,比如:xx_^_12_12, 不适合一个字段存储多个位置
-                        baseMapper.updateFiledType(initTableName, eKey, "varchar", eLength + 10);
-                    } catch (Exception e) {
-                        // 数据库字段长度大于修改长度,则忽略
-                        if (e.getMessage().contains("Data truncated for column '" + eKey + "' at row 1")) {
-                            continue;
+                Integer length = eLengthMap.get(wbsFormElement.getId());
+                if (length == null || !length.equals(eLength)) {
+                    //判断是否存在该Key字段
+                    int row1 = wbsTreeMapper.isThereAField(initTableName, eKey);
+                    if (row1 > 0) {
+                        try {
+                            baseMapper.updateFiledType(initTableName, eKey, "varchar", eLength);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                            this.updateBatchById(beforeUpdateWbsFormElements);
+                            return R.fail(eName + "长度范围超出总最大限制,请尝试缩小当前字段与其他字段长度或者联系系统管理员处理");
                         }
-                        e.printStackTrace();
-                        this.updateBatchById(beforeUpdateWbsFormElements);
-                        throw new RuntimeException("字段长度范围超出总最大限制,请尝试缩小当前字段长度或其他字段长度");
                     }
                 }
             }

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

@@ -295,6 +295,14 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         return page.setRecords(baseMapper.tabTypeLazyTree(page, parentId, projectId, titleName));
     }
 
+    @Override
+    public IPage<TreeNodeVOByTabType> tabTypeLazyTreeByProject(IPage<TreeNodeVOByTabType> page, Long parentId, String projectId, String titleName) {
+        if ((parentId + "").equals("12345678910")) {
+            page.setSize(100);
+        }
+        return page.setRecords(baseMapper.tabTypeLazyTreeByProject(page, parentId, projectId, titleName));
+    }
+
     @Override
     public IPage<TreeNodeVOByTabType> tabTypeLazyTreeAll(IPage<TreeNodeVOByTabType> page, Long parentId, String titleName, Boolean hasPartFormula) {
         if (parentId == null) {