liuyc 2 ani în urmă
părinte
comite
33772585ce
14 a modificat fișierele cu 359 adăugiri și 729 ștergeri
  1. 2 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ContractInfoController.java
  2. 56 41
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml
  3. 0 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IContractInfoService.java
  4. 0 16
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IImageClassificationConfigService.java
  5. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeContractService.java
  6. 2 28
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java
  7. 30 213
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java
  8. 0 5
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ProjectContractAreaServiceImpl.java
  9. 0 3
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ProjectInfoServiceImpl.java
  10. 33 210
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsFormElementServiceImpl.java
  11. 8 38
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java
  12. 16 170
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java
  13. 37 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/unit/DiffListUtil.java
  14. 174 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/unit/WbsElementUtil.java

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

@@ -144,7 +144,7 @@ public class ContractInfoController extends BladeController {
     @ApiOperationSupport(order = 6)
     @ApiOperation(value = "新增或修改", notes = "传入contractInfo")
     public R submit(@Valid @RequestBody ContractInfoVO contractInfo) {
-        boolean b = contractInfoService.saveAndUpdateContract2(contractInfo);
+        boolean b = contractInfoService.saveAndUpdateContract(contractInfo);
         if (b) {
             return R.data(contractInfo, "操作成功");
         }
@@ -406,7 +406,7 @@ public class ContractInfoController extends BladeController {
     @ApiOperationSupport(order = 17)
     @ApiOperation(value = "保存或修改分配合同段wbs树", notes = "传入WbsTreeContractDTO")
     public R submitWbsTreeInContract(@RequestBody WbsTreeContractDTO wbsTreeContractDTO) {
-        boolean b = wbsTreeContractService.submitWbsTreeInContract1(wbsTreeContractDTO);
+        boolean b = wbsTreeContractService.submitWbsTreeInContract(wbsTreeContractDTO);
         if (b) {
             return R.success("关联合同段树成功");
         }

+ 56 - 41
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

@@ -95,15 +95,17 @@
 
     <update id="deleteBatch">
         DELETE FROM m_wbs_tree_contract
-        WHERE ( id OR parent_id ) IN
+        WHERE (id IN
         <foreach item="ids" collection="ids" open="(" close=")" separator=",">
             #{ids}
         </foreach>
-
+        OR parent_id IN
+        <foreach item="ids" collection="ids" open="(" close=")" separator=",">
+            #{ids}
+        </foreach>)
         AND wbs_id = #{wbsId}
         AND project_id = #{projectId}
         AND contract_id = #{contractId}
-        /*AND contract_type = 1*/
     </update>
 
     <update id="updateByCondition">
@@ -209,16 +211,16 @@
                wbs_type                                                                   AS "wbsType",
                wbs_id                                                                     AS "wbsId",
                project_id                                                                 AS "projectId",
-               (select project_name from m_project_info where id = #{projectId})          AS "projectName",
                contract_id                                                                AS "contractId",
                contract_type                                                              AS "contractType",
+               (select project_name from m_project_info where id = #{projectId})          AS "projectName",
                (select contract_name from m_contract_info ci where ci.id = t.contract_id) AS "contractName"
         FROM m_wbs_tree_contract t
         WHERE project_id = #{projectId}
           AND contract_type = 1
+          AND status = 1
           AND parent_id = 0
           AND is_deleted = 0
-          AND status = 1
     </select>
 
     <select id="selectCondition" resultType="org.springblade.manager.entity.WbsTreeContract">
@@ -397,7 +399,11 @@
     </select>
 
     <select id="queryContractSubmitWbsTreeByContractId" resultMap="ResultMap">
-        select p_key_id, contract_id, major_data_type from m_wbs_tree_contract where is_deleted = 0 and major_data_type in(1,2,3,4) and contract_id = #{contractId}
+        select p_key_id, contract_id, major_data_type
+        from m_wbs_tree_contract
+        where is_deleted = 0
+          and major_data_type in (1, 2, 3, 4)
+          and contract_id = #{contractId}
     </select>
 
     <select id="selectInformationQueryInfo" resultType="org.springblade.business.entity.InformationQuery">
@@ -410,7 +416,11 @@
     </select>
 
     <select id="selectTableListInfo" resultType="org.springblade.manager.entity.WbsTreeContract">
-        SELECT p_key_id,id,dept_name,type,parent_id,is_tab_pdf FROM m_wbs_tree_contract
+        SELECT p_key_id AS "pKeyId"
+        ,id,dept_name AS "deptName"
+        ,type,parent_id AS "parentId"
+        ,is_tab_pdf AS "isTabPdf"
+        FROM m_wbs_tree_contract
         WHERE ( id IN
         <foreach item="ids" collection="ids" open="(" close=")" separator=",">
             #{ids}
@@ -439,50 +449,50 @@
     <update id="updateBatchByIds">
         UPDATE m_wbs_tree_contract
         SET dept_name = #{wbsTree.deptName},
-            full_name = #{wbsTree.deptName},
-            dept_category = #{wbsTree.deptCategory},
-            major_data_type = #{wbsTree.majorDataType},
-            unique_code = #{wbsTree.uniqueCode},
-            partition_code = #{wbsTree.partitionCode},
-            table_type = #{wbsTree.tableType},
-            table_owner = #{wbsTree.tableOwner}
-            <if test="wbsTree.sort != null and wbsTree.sort != ''">
-                , sort = #{wbsTree.sort}
-            </if>
+        full_name = #{wbsTree.deptName},
+        dept_category = #{wbsTree.deptCategory},
+        major_data_type = #{wbsTree.majorDataType},
+        unique_code = #{wbsTree.uniqueCode},
+        partition_code = #{wbsTree.partitionCode},
+        table_type = #{wbsTree.tableType},
+        table_owner = #{wbsTree.tableOwner}
+        <if test="wbsTree.sort != null and wbsTree.sort != ''">
+            , sort = #{wbsTree.sort}
+        </if>
         WHERE id = #{wbsTree.id}
-          AND contract_id = #{id}
-          AND status = 1
-          AND is_deleted = 0
+        AND contract_id = #{id}
+        AND status = 1
+        AND is_deleted = 0
     </update>
 
     <update id="updateBatchByIds2">
         UPDATE m_wbs_tree_contract
         SET dept_name = #{wbsTreePrivate.deptName},
-            full_name = #{wbsTreePrivate.deptName},
-            dept_category = #{wbsTreePrivate.deptCategory},
-            major_data_type = #{wbsTreePrivate.majorDataType},
-            unique_code = #{wbsTreePrivate.uniqueCode},
-            partition_code = #{wbsTreePrivate.partitionCode},
-            table_type = #{wbsTreePrivate.tableType},
-            table_owner = #{wbsTreePrivate.tableOwner}
-            <if test="wbsTreePrivate.sort != null and wbsTreePrivate.sort != ''">
-                , sort = #{wbsTreePrivate.sort}
-            </if>
+        full_name = #{wbsTreePrivate.deptName},
+        dept_category = #{wbsTreePrivate.deptCategory},
+        major_data_type = #{wbsTreePrivate.majorDataType},
+        unique_code = #{wbsTreePrivate.uniqueCode},
+        partition_code = #{wbsTreePrivate.partitionCode},
+        table_type = #{wbsTreePrivate.tableType},
+        table_owner = #{wbsTreePrivate.tableOwner}
+        <if test="wbsTreePrivate.sort != null and wbsTreePrivate.sort != ''">
+            , sort = #{wbsTreePrivate.sort}
+        </if>
         WHERE id = #{wbsTreePrivate.id}
-          AND contract_id = #{id}
-          AND status = 1
-          AND is_deleted = 0
+        AND contract_id = #{id}
+        AND status = 1
+        AND is_deleted = 0
     </update>
 
     <update id="updateContractTablesInfo">
         UPDATE m_wbs_tree_contract
         SET dept_name = #{wbsTreePrivate.deptName},
-            full_name =#{wbsTreePrivate.deptName},
-            table_type  = #{wbsTreePrivate.tableType},
-            table_owner = #{wbsTreePrivate.tableOwner}
-            <if test="wbsTreePrivate.sort != null and wbsTreePrivate.sort != ''">
-                , sort = #{wbsTreePrivate.sort}
-            </if>
+        full_name =#{wbsTreePrivate.deptName},
+        table_type = #{wbsTreePrivate.tableType},
+        table_owner = #{wbsTreePrivate.tableOwner}
+        <if test="wbsTreePrivate.sort != null and wbsTreePrivate.sort != ''">
+            , sort = #{wbsTreePrivate.sort}
+        </if>
         WHERE (id = #{wbsTreePrivate.id} OR old_id = #{wbsTreePrivate.id})
         AND project_id = #{wbsTreePrivate.projectId}
         AND contract_id = #{contractInfoId}
@@ -492,7 +502,7 @@
     </update>
 
     <update id="updateBatchWbsContract" parameterType="java.util.List">
-        <foreach  collection="listContract" item="item" index="index" separator=";">
+        <foreach collection="listContract" item="item" index="index" separator=";">
             UPDATE m_wbs_tree_contract
             <set>
                 dept_name = #{item.deptName},
@@ -513,7 +523,12 @@
     </update>
 
     <select id="selectQueryValueLikeNodeName" resultMap="ResultMap">
-        select * from m_wbs_tree_contract where is_deleted = 0 and contract_id = #{contractId} and (dept_name like concat('%',#{queryValue},'%') or full_name like concat('%',#{queryValue},'%')) and `type` = '1'
+        select *
+        from m_wbs_tree_contract
+        where is_deleted = 0
+          and contract_id = #{contractId}
+          and (dept_name like concat('%', #{queryValue}, '%') or full_name like concat('%', #{queryValue}, '%'))
+          and `type` = '1'
     </select>
 
     <select id="selectQueryCurrentNodeByAncestors" resultMap="ResultMap">

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

@@ -49,8 +49,6 @@ public interface IContractInfoService extends BaseService<ContractInfo> {
 
     boolean saveAndUpdateContract(ContractInfoVO contractInfo);
 
-    boolean saveAndUpdateContract2(ContractInfoVO contractInfo);
-
     List<ContractInfo> findContractInProject(String ids);
 
     ContractInfo selectById(String contractId);

+ 0 - 16
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IImageClassificationConfigService.java

@@ -1,19 +1,3 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 庄骞 (smallchill@163.com)
- */
 package org.springblade.manager.service;
 
 import org.springblade.manager.entity.ImageClassificationConfig;

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

@@ -22,7 +22,7 @@ public interface IWbsTreeContractService extends BaseService<WbsTreeContract> {
 
     List<WbsTreeContract> queryContractSubmitWbsTreeByContractId(String contractId);
 
-    boolean submitWbsTreeInContract1(WbsTreeContractDTO wbsTreeContractDTO);
+    boolean submitWbsTreeInContract(WbsTreeContractDTO wbsTreeContractDTO);
 
     List<WbsTreeContract> findWbsTreeContract(String ids);
 

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

@@ -13,6 +13,7 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.dto.ArchiveTreeDTO;
 import org.springblade.manager.dto.ArchiveTreeSortDTO;
 import org.springblade.manager.entity.ArchiveTree;
+import org.springblade.manager.unit.DiffListUtil;
 import org.springblade.manager.vo.ArchiveTreeVO;
 import org.springblade.manager.mapper.ArchiveTreeMapper;
 import org.springblade.manager.service.IArchiveTreeService;
@@ -28,33 +29,6 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
 
     private final ArchiveTreeMapper archiveTreeMapper;
 
-    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;
-        if (list2.size() > list1.size()) {
-            maxList = list2;
-            minList = list1;
-        }
-        Map<String, Integer> map = new HashMap<String, Integer>(maxList.size());
-        for (String string : maxList) {
-            map.put(string, 1);
-        }
-        for (String string : minList) {
-            if (map.get(string) != null) {
-                map.put(string, 2);
-                continue;
-            }
-            diff.add(string);
-        }
-        for (Map.Entry<String, Integer> entry : map.entrySet()) {
-            if (entry.getValue() == 1) {
-                diff.add(entry.getKey());
-            }
-        }
-        return diff;
-    }
-
     @Override
     public boolean initArchiveTree() {
         QueryWrapper<ArchiveTree> queryWrapper = new QueryWrapper<>();
@@ -117,7 +91,7 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
         archiveTrees.forEach(id -> {
             idList2.add(String.valueOf(id.getId()));
         });
-        List<String> diffRent = getDiffRent(idList1, idList2);
+        List<String> diffRent = DiffListUtil.getDiffRent(idList1, idList2);
         if (diffRent.size() == 0) {
             return true;
         } else {

+ 30 - 213
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java

@@ -38,20 +38,17 @@ import java.util.stream.Collectors;
 
 @Service
 @AllArgsConstructor
-public class ContractInfoServiceImpl
-        extends BaseServiceImpl<ContractInfoMapper, ContractInfo>
-        implements IContractInfoService {
+public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper, ContractInfo> implements IContractInfoService {
 
     private final ContractInfoMapper contractInfoMapper;
     private final ProjectContractAreaMapper projectContractAreaMapper;
     private final SaveUserInfoByProjectMapper saveUserInfoByProjectMapper;
     private final WbsTreeContractMapper wbsTreeContractMapper;
-    private final WbsTreeContractServiceImpl wbsTreeContractService;
 
     @Override
     public List<String> getProcessContractByJLContractId(String contractId) {
         List<ContractRelationJlyz> relationJlyzs = baseMapper.selectByContractRelationJlyz(Long.parseLong(contractId));
-        if(relationJlyzs != null && relationJlyzs.size() > 0){
+        if (relationJlyzs != null && relationJlyzs.size() > 0) {
             List<Long> SGContractIds = relationJlyzs.stream().map(ContractRelationJlyz::getId).distinct().collect(Collectors.toList());
             return JSONArray.parseArray(JSONObject.toJSONString(SGContractIds), String.class);
         }
@@ -99,7 +96,6 @@ public class ContractInfoServiceImpl
         return contractInfoMapper.findUserInfoByCondition(rId, pId, userName);
     }
 
-
     @Override
     public List<User> findUserList() {
         return contractInfoMapper.findUserList();
@@ -116,7 +112,7 @@ public class ContractInfoServiceImpl
 
     @Override
     public String selectStartFileId(String startFileUrl) {
-//        return contractInfoMapper.selectStartFileId(startFileUrl);
+        //return contractInfoMapper.selectStartFileId(startFileUrl);
         return null;
     }
 
@@ -132,7 +128,7 @@ public class ContractInfoServiceImpl
         //return ForestNodeMerger.merge(baseMapper.tree(wbsId, projectId, contractId, null, null));
 
         //方式2
-        List<WbsTreeContractVO> wbsTreeContractVOS = baseMapper.tree2(wbsId, projectId, contractId,null,null);
+        List<WbsTreeContractVO> wbsTreeContractVOS = baseMapper.tree2(wbsId, projectId, contractId, null, null);
         return buildWbsTreeByStream(wbsTreeContractVOS);
     }
 
@@ -163,13 +159,6 @@ public class ContractInfoServiceImpl
         return wbsTreeContractMapper.selectListByCondition(projectId);
     }
 
-    /**
-     * 对客户端接口
-     *
-     * @param contractId 合同段ID
-     * @param wbsType    需要查询的节点类型
-     * @return 合同段自身的划分树
-     */
     @Override
     public List<WbsTreeContractTreeVO> queryContractWbsTreeByContractIdAndType(String contractId, Integer wbsType, String parentId) {
         List<WbsTreeContractTreeVO> vo = this.baseMapper.tree(null, null, contractId, wbsType, parentId);
@@ -181,16 +170,10 @@ public class ContractInfoServiceImpl
         return this.baseMapper.tree(null, null, contractId, wbsType, parentId);
     }
 
-
-    /**
-     * 新增合同段保存(施工-监理引用施工合同wbs私有树)
-     */
-    @Override
     @Transactional(rollbackFor = Exception.class)
-    @Deprecated
     public boolean saveAndUpdateContract(ContractInfoVO contractInfo) {
-        //新增
         if (contractInfo.getId() == null) {
+            //新增
             List<ContractInfo> contractInfos = baseMapper.selectList(Wrappers.<ContractInfo>query().lambda()
                     .eq(ContractInfo::getContractName, contractInfo.getContractName())
                     .eq(ContractInfo::getPId, contractInfo.getPId())
@@ -204,24 +187,12 @@ public class ContractInfoServiceImpl
 
             boolean row = saveOrUpdate(contractInfo);
 
-            //新增contract_type =2监理 =3指挥部(业主)类型Wbs树
+            //新增合同段 监理、业主与施工wbs树信息
             if (contractInfo.getContractType().equals(2) || contractInfo.getContractType().equals(3)) {
                 List<WbsTreeContractVO3> infos = contractInfo.getIdList();
                 infos.forEach(info -> {
-                    List<WbsTreeContract> wbsTreeContracts = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
-                            .eq(WbsTreeContract::getContractId, info.getContractId())
-                    );
+                    baseMapper.insertContractRelationJLYZ(SnowFlakeUtil.getId(), contractInfo.getId(), info.getContractId());
 
-                    //初始化
-                    wbsTreeContracts.forEach(i -> {
-                        Long id = SnowFlakeUtil.getId();
-                        i.setPKeyId(id);
-                        i.setContractIdRelation(i.getContractId());
-                        i.setContractId(String.valueOf(contractInfo.getId()));
-                        i.setContractType(contractInfo.getContractType());
-                    });
-
-                    wbsTreeContractService.saveBatch(wbsTreeContracts);
                 });
             }
 
@@ -237,91 +208,38 @@ public class ContractInfoServiceImpl
             if (contractInfos.size() > 0) {
                 throw new ServiceException("合同段名称已存在当前项目下,请重新输入");
             }
-            if (StringUtils.isEmpty(String.valueOf(contractInfo.getContractType()))) {
-                throw new ServiceException("合同类型不能为空");
-            }
+
+            //新增合同段
             boolean row = saveOrUpdate(contractInfo);
+
+            //关联合同段 监理、业主与施工wbs树信息
             if (contractInfo.getContractType().equals(2) || contractInfo.getContractType().equals(3)) {
-                //当前所有入参施工合同根节点合同id
-                List<String> idList1 = new ArrayList<>();
-                //当前所有已引用监理或业主根节点合同引用id
-                List<String> idList2 = new ArrayList<>();
-
-                List<WbsTreeContractVO3> list = contractInfo.getIdList();
-                if (list.size() > 0) {
-                    list.forEach(cId -> {
-                        //入参根节点id
-                        String contractId = cId.getContractId();
-                        idList1.add(contractId);
-                    });
+                //获取当前入参的施工合同段IdList
+                List<WbsTreeContractVO3> idList = contractInfo.getIdList();
+                if (idList.isEmpty()) {
+                    throw new ServiceException("请先选择关联的合同段权限");
                 }
+                List<String> idList_SG = idList.stream().map(WbsTreeContractVO3::getContractId).collect(Collectors.toList());
 
-                //获取当前所有已引用监理或业主根节点合同引用id
-                List<WbsTreeContract> wbsTreeContracts = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
-                        .eq(WbsTreeContract::getContractId, contractInfo.getId())
-                        .eq(WbsTreeContract::getContractType, contractInfo.getContractType())
-                        .eq(WbsTreeContract::getStatus, 1)
-                        .eq(WbsTreeContract::getParentId, 0)
-                );
-
-                wbsTreeContracts.forEach(id -> {
-                    String contractIdRelation = id.getContractIdRelation();
-                    idList2.add(String.valueOf(contractIdRelation));
-                });
+                //获取当前合同段存在的关系信息
+                List<ContractRelationJlyz> resultListJLTZ = baseMapper.selectByContractRelationJlyz(contractInfo.getId());
 
-                List<String> result = getDiffrent(idList1, idList2);
-
-                if (idList1.size() > idList2.size()) {
-                    //新增
-                    result.forEach(id -> {
-                        //查询当前需要引用的施工合同wbs树根节点信息
-                        WbsTreeContract wbsTreeContract = wbsTreeContractMapper.selectOne(Wrappers.<WbsTreeContract>query().lambda()
-                                .eq(WbsTreeContract::getContractId, id)
-                                .eq(WbsTreeContract::getParentId, 0)
-                                .eq(WbsTreeContract::getContractType, 1)
-                        );
-
-                        WbsTreeContract wbsTreeContractsIsDeleted = wbsTreeContractMapper.selectCondition(contractInfo.getId(), wbsTreeContract.getId(), id, contractInfo.getContractType());
-
-                        if (wbsTreeContractsIsDeleted != null) {
-                            //修改 通过当前合同id = contractInfo.getId() , 监理或业主关联的合同段id = contractIdRelation
-                            wbsTreeContractMapper.updateByCondition2(contractInfo.getId(), wbsTreeContractsIsDeleted.getContractIdRelation());
-
-                        } else {
-                            //新增 根据施工合同根节点查询当前根节点下的施工合同wbs树+表
-                            List<WbsTreeContract> wbsTreeContractsList = wbsTreeContractMapper.selectList(Wrappers.<WbsTreeContract>query().lambda()
-                                    .eq(WbsTreeContract::getContractId, id)
-                                    .eq(WbsTreeContract::getContractType, 1)
-                            );
-
-                            //初始化
-                            wbsTreeContractsList.forEach(i -> {
-                                Long id1 = SnowFlakeUtil.getId();
-                                i.setPKeyId(id1);
-                                i.setContractIdRelation(i.getContractId());
-                                i.setContractId(String.valueOf(contractInfo.getId()));
-                                i.setContractType(contractInfo.getContractType());
-                            });
-
-                            wbsTreeContractService.saveBatch(wbsTreeContractsList);
-                        }
-                    });
-                } else {
-
-                    result.forEach(id -> {
-                        //根据关联项目id = getContractIdRelation 删除树
-                        wbsTreeContractMapper.delete(Wrappers.<WbsTreeContract>update().lambda()
-                                .set(WbsTreeContract::getIsDeleted, 1)
-                                .eq(WbsTreeContract::getContractIdRelation, id)
-                                .eq(WbsTreeContract::getProjectId, contractInfo.getPId())
-                                .eq(WbsTreeContract::getContractId, contractInfo.getId())
-                        );
-                    });
+                //全部删除当前关系信息
+                if (resultListJLTZ.size() > 0) {
+                    baseMapper.deleteContractRelationJLYZ(contractInfo.getId());
                 }
+
+                //新增
+                idList_SG.forEach(ids -> {
+                    baseMapper.insertContractRelationJLYZ(SnowFlakeUtil.getId(), contractInfo.getId(), ids);
+                });
+
             }
 
             return submitContractRelevantInfo(row, contractInfo);
+
         }
+
     }
 
     private boolean submitContractRelevantInfo(boolean row, ContractInfoVO contractInfo) {
@@ -375,108 +293,6 @@ public class ContractInfoServiceImpl
         return false;
     }
 
-    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;
-        if (list2.size() > list1.size()) {
-            maxList = list2;
-            minList = list1;
-        }
-        Map<String, Integer> map = new HashMap<String, Integer>(maxList.size());
-        for (String string : maxList) {
-            map.put(string, 1);
-        }
-        for (String string : minList) {
-            if (map.get(string) != null) {
-                map.put(string, 2);
-                continue;
-            }
-            diff.add(string);
-        }
-        for (Map.Entry<String, Integer> entry : map.entrySet()) {
-            if (entry.getValue() == 1) {
-                diff.add(entry.getKey());
-            }
-        }
-        return diff;
-    }
-
-    /**
-     * 新增合同段保存2(施工-监理引用施工合同wbs私有树)
-     */
-    @Transactional(rollbackFor = Exception.class)
-    public boolean saveAndUpdateContract2(ContractInfoVO contractInfo) {
-        if (contractInfo.getId() == null) {
-            //新增
-            List<ContractInfo> contractInfos = baseMapper.selectList(Wrappers.<ContractInfo>query().lambda()
-                    .eq(ContractInfo::getContractName, contractInfo.getContractName())
-                    .eq(ContractInfo::getPId, contractInfo.getPId())
-            );
-            if (contractInfos.size() > 0) {
-                throw new ServiceException("合同段名称已存在当前项目下,请重新输入");
-            }
-            if (StringUtils.isEmpty(String.valueOf(contractInfo.getContractType()))) {
-                throw new ServiceException("合同类型不能为空");
-            }
-
-            boolean row = saveOrUpdate(contractInfo);
-
-            //新增合同段 监理、业主与施工wbs树信息
-            if (contractInfo.getContractType().equals(2) || contractInfo.getContractType().equals(3)) {
-                List<WbsTreeContractVO3> infos = contractInfo.getIdList();
-                infos.forEach(info -> {
-                    baseMapper.insertContractRelationJLYZ(SnowFlakeUtil.getId(), contractInfo.getId(), info.getContractId());
-
-                });
-            }
-
-            return submitContractRelevantInfo(row, contractInfo);
-
-        } else {
-            //编辑
-            List<ContractInfo> contractInfos = baseMapper.selectList(Wrappers.<ContractInfo>query().lambda()
-                    .eq(ContractInfo::getContractName, contractInfo.getContractName())
-                    .eq(ContractInfo::getPId, contractInfo.getPId())
-                    .ne(ContractInfo::getId, contractInfo.getId())
-            );
-            if (contractInfos.size() > 0) {
-                throw new ServiceException("合同段名称已存在当前项目下,请重新输入");
-            }
-
-            //新增合同段
-            boolean row = saveOrUpdate(contractInfo);
-
-            //关联合同段 监理、业主与施工wbs树信息
-            if (contractInfo.getContractType().equals(2) || contractInfo.getContractType().equals(3)) {
-                //获取当前入参的施工合同段IdList
-                List<WbsTreeContractVO3> idList = contractInfo.getIdList();
-                if (idList.isEmpty()) {
-                    throw new ServiceException("请先选择关联的合同段权限");
-                }
-                List<String> idList_SG = idList.stream().map(WbsTreeContractVO3::getContractId).collect(Collectors.toList());
-
-                //获取当前合同段存在的关系信息
-                List<ContractRelationJlyz> resultListJLTZ = baseMapper.selectByContractRelationJlyz(contractInfo.getId());
-
-                //全部删除当前关系信息
-                if (resultListJLTZ.size() > 0) {
-                    baseMapper.deleteContractRelationJLYZ(contractInfo.getId());
-                }
-
-                //新增
-                idList_SG.forEach(ids -> {
-                    baseMapper.insertContractRelationJLYZ(SnowFlakeUtil.getId(), contractInfo.getId(), ids);
-                });
-
-            }
-
-            return submitContractRelevantInfo(row, contractInfo);
-
-        }
-
-    }
-
     @Override
     public List<ContractInfo> findContractInProject(String ids) {
         return baseMapper.selectList(Wrappers.<ContractInfo>query().lambda().in(ContractInfo::getPId, Arrays.asList(ids.split(","))));
@@ -502,4 +318,5 @@ public class ContractInfoServiceImpl
     public List<ContractRelationJlyz> searchContractRelationInfo(String contractId) {
         return baseMapper.selectByContractRelationJlyz(Long.valueOf(contractId));
     }
+
 }

+ 0 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ProjectContractAreaServiceImpl.java

@@ -10,11 +10,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-/**
- * 客户级项目表 服务实现类
- *
- * @author liuyc
- */
 @Service
 public class ProjectContractAreaServiceImpl extends BaseServiceImpl<ProjectContractAreaMapper, ProjectContractArea> implements ProjectContractAreaService {
 

+ 0 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ProjectInfoServiceImpl.java

@@ -50,7 +50,6 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
         return this.baseMapper.selectProjectList(projectIds);
     }
 
-
     @Override
     public IPage<ProjectInfoVO> selectProjectInfoPage(IPage<ProjectInfoVO> page, ProjectInfoVO projectInfo) {
         return page.setRecords(baseMapper.selectProjectInfoPage(page, projectInfo));
@@ -61,7 +60,6 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
         return contractInfoMapper.selectContractInfoCount();
     }
 
-
     @Override
     public ProjectInfo getOne(Long id) {
         return baseMapper.selectById(id);
@@ -89,5 +87,4 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
         return projectInfoVO2;
     }
 
-
 }

+ 33 - 210
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsFormElementServiceImpl.java

@@ -4,24 +4,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
-import net.sourceforge.pinyin4j.PinyinHelper;
-import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
-import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
-import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
-import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
-import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringPool;
 import org.springblade.core.tool.utils.StringUtil;
-import org.springblade.manager.dto.FormElementDTO;
 import org.springblade.manager.dto.FormElementDTO2;
 import org.springblade.manager.dto.WbsFormElementDTO2;
 import org.springblade.manager.entity.WbsFormElement;
@@ -33,7 +25,7 @@ import org.springblade.manager.mapper.WbsFormElementMapper;
 import org.springblade.manager.mapper.WbsTreeMapper;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.IWbsFormElementService;
-import org.springblade.manager.service.IWbsTreeService;
+import org.springblade.manager.unit.WbsElementUtil;
 import org.springblade.manager.vo.WbsFormElementVO;
 import org.springblade.manager.vo.WbsFormElementVO2;
 import org.springblade.manager.vo.WbsNodeTableVO;
@@ -53,6 +45,12 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
     private final WbsTreeMapper wbsTreeMapper;
     private final WbsTreePrivateMapper wbsTreePrivateMapper;
 
+    //元素字符串、数值、时间类型默认长度
+    public static final Integer DEFAULT_ELEMENT_LENGTH_VARCHAR = 250;
+    public static final Integer DEFAULT_ELEMENT_LENGTH_NUMBER = 50;
+    public static final Integer DEFAULT_ELEMENT_LENGTH_DATE = 50;
+    //实体表字段默认长度
+    private static final String ELEMENT_LENGTH_ENTITY = "250";
 
     @Override
     public IPage<WbsFormElementVO> selectWbsFormElementPage(IPage<WbsFormElementVO> page, WbsFormElementVO wbsFormElement) {
@@ -87,30 +85,9 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
     private String createSQL(List<WbsFormElement> elementList) {
         StringBuilder sbr = new StringBuilder();
         for (WbsFormElement wbsFormElement : elementList) {
-            /* 字段类型不默认
-            //获取字段名、类型、长度
-            String fieldNameKey = wbsFormElement.getEKey();
-            String fieldType = getInitTableFiledType(wbsFormElement.getEType());
-            String fieldLength = String.valueOf(wbsFormElement.getELength());
-
-            sbr.append("" + fieldNameKey + "");
-            if ("varchar".equals(fieldType)) {
-                sbr.append(" " + fieldType + "(" + fieldLength + ") ,\n");
-            } else if ("bigint".equals(fieldType)) {
-                sbr.append(" " + fieldType + "(" + fieldLength + ") ,\n");
-            } else if ("decimal".equals(fieldType)) {
-                sbr.append(" " + fieldType + "(" + fieldLength + ") ,\n");
-            } else if ("datetime".equals(fieldType)) {
-                sbr.append(" " + fieldType + "(" + fieldLength + ") ,\n");
-            }*/
-
-            //默认字段类型=varchar 长度=255
-            String fieldNameKey = wbsFormElement.getEKey();
-            String fieldType = "varchar";
-            String fieldLength = "250";
-            sbr.append(fieldNameKey);
-            sbr.append(" ").append(fieldType).append("(").append(fieldLength).append(") ,\n");
-
+            //默认字段类型varchar 长度255
+            sbr.append(wbsFormElement.getEKey());
+            sbr.append(" ").append("varchar").append("(").append(ELEMENT_LENGTH_ENTITY).append(") ,\n");
         }
         return String.valueOf(sbr);
     }
@@ -159,7 +136,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                     String substring1 = "key_" + newFiled;
                     eKeyNum.add(substring1);
                     if (wbsFormElement.getEType() == 4) {
-                        wbsFormElement.setELength(0);
+                        wbsFormElement.setELength(DEFAULT_ELEMENT_LENGTH_DATE);
                     }
                 }
                 wbsFormElement.setEKey(eKeyNum.get(eKeyNum.size() - 1));
@@ -170,7 +147,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
             wbsFormElement.setStatus(1);
 
             StringBuilder sbr1 = new StringBuilder();
-            String fieldType = getInitTableFiledType(wbsFormElement.getEType());
+            String fieldType = WbsElementUtil.getInitTableFiledType(wbsFormElement.getEType());
 
             if ("varchar".equals(fieldType)) {
                 if (wbsFormElement.getELength() > 1000 || wbsFormElement.getELength() < 10) {
@@ -182,9 +159,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                     //同步
                     //sbr1.append(" ").append(fieldType).append("(").append(wbsFormElement.getELength()).append(")");
 
-                    wbsFormElement.setELength(250);
-
-                    sbr1.append(" ").append("varchar").append("(").append(wbsFormElement.getELength()).append(")");
+                    sbr1.append(" ").append("varchar").append("(").append(DEFAULT_ELEMENT_LENGTH_VARCHAR).append(")");
                     String sql = newName + " " + sbr1;
                     baseMapper.alterAddFiled(sql, tableName);
                     return true;
@@ -200,9 +175,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                     //同步
                     //sbr1.append(" ").append(fieldType).append("(").append(wbsFormElement.getELength()).append(")");
 
-                    wbsFormElement.setELength(250);
-
-                    sbr1.append(" ").append("varchar").append("(").append(wbsFormElement.getELength()).append(")");
+                    sbr1.append(" ").append("varchar").append("(").append(DEFAULT_ELEMENT_LENGTH_VARCHAR).append(")");
                     String sql = newName + " " + sbr1;
                     baseMapper.alterAddFiled(sql, tableName);
                     return true;
@@ -218,16 +191,14 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                     //同步
                     //sbr1.append(" ").append(fieldType).append("(").append(wbsFormElement.getELength()).append(")");
 
-                    wbsFormElement.setELength(250);
-
-                    sbr1.append(" ").append("varchar").append("(").append(wbsFormElement.getELength()).append(")");
+                    sbr1.append(" ").append("varchar").append("(").append(DEFAULT_ELEMENT_LENGTH_VARCHAR).append(")");
                     String sql = newName + " " + sbr1;
                     baseMapper.alterAddFiled(sql, tableName);
                     return true;
                 }
             } else if ("datetime".equals(fieldType)) {
-                if (wbsFormElement.getELength() != 0) {
-                    throw new ServiceException("请输入正确的长度,范围为0");
+                if (wbsFormElement.getELength() > 50 || wbsFormElement.getELength() < 0) {
+                    throw new ServiceException("请输入正确的长度,范围为0-50");
                 } else {
                     //新增
                     baseMapper.insert(wbsFormElement);
@@ -235,9 +206,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                     //同步
                     //sbr1.append(" ").append(fieldType).append("(").append(0).append(")");
 
-                    wbsFormElement.setELength(250);
-
-                    sbr1.append(" ").append("varchar").append("(").append(wbsFormElement.getELength()).append(")");
+                    sbr1.append(" ").append("varchar").append("(").append(DEFAULT_ELEMENT_LENGTH_VARCHAR).append(")");
                     String sql = newName + " " + sbr1;
                     baseMapper.alterAddFiled(sql, tableName);
                     return true;
@@ -294,7 +263,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
             for (WbsFormElement wbsFormElement : wbsFormElements) {
                 String eKey = wbsFormElement.getEKey();
                 Integer eLength = wbsFormElement.getELength();
-                String eType = getInitTableFiledType(wbsFormElement.getEType());
+                String eType = WbsElementUtil.getInitTableFiledType(wbsFormElement.getEType());
 
                 if (eType.equals("bigint") && (eLength > 255 || eLength < 10)) {
                     throw new ServiceException("请输入正确长度,该类型范围为10-255之间");
@@ -302,6 +271,8 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                     throw new ServiceException("请输入正确长度,该类型范围为10-1000之间");
                 } else if (eType.equals("decimal") && (eLength > 65 || eLength < 10)) {
                     throw new ServiceException("请输入正确长度,该类型范围为10-65之间");
+                } else if (eType.equals("datetime") && (eLength > 50 || eLength < 0)) {
+                    throw new ServiceException("请输入正确长度,该类型范围为0-50之间");
                 }
 
                 /*//当前字段类型
@@ -317,11 +288,11 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
 
                 //设置默认长度
                 if (eLength <= 255 && eLength > 65) {
-                    eLength = 250;
+                    eLength = DEFAULT_ELEMENT_LENGTH_VARCHAR;
                 } else if (eLength <= 1000 && eLength > 500) {
-                    eLength = 500;
+                    eLength = DEFAULT_ELEMENT_LENGTH_VARCHAR * 2;
                 } else if (eLength >= 0 && eLength <= 65) {
-                    eLength = 50;
+                    eLength = DEFAULT_ELEMENT_LENGTH_NUMBER;
                 }
 
                 //判断是否存在该Key字段
@@ -330,10 +301,8 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                     //修改
                     baseMapper.updateFiledType(initTableName, eKey, "varchar", eLength);
                 }
-
             }
         }
-
         return true;
     }
 
@@ -400,8 +369,8 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
         for (WbsFormElement listDatum : listData) {
             id++;
             listDatum.setFId(wbsFormElementVO2.getId());
-            String initTableFiledType = getInitTableFiledType(listDatum.getEType());
-            Integer elementLength = getElementLength2(initTableFiledType);
+            String initTableFiledType = WbsElementUtil.getInitTableFiledType(listDatum.getEType());
+            Integer elementLength = WbsElementUtil.getElementLength2(initTableFiledType);
             listDatum.setELength(elementLength);
             listDatum.setEKey("key_" + id);
         }
@@ -477,22 +446,18 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                             wbsFormElementInfo.setId(SnowFlakeUtil.getId());
                             wbsFormElementInfo.setFId(String.valueOf(tableId));
                             wbsFormElementInfo.setStatus(1);
-                            wbsFormElementInfo.setELength(Integer.parseInt(setDefaultElementLength(wbsFormElementInfo.getEType())));
+                            wbsFormElementInfo.setELength(Integer.parseInt(WbsElementUtil.setDefaultElementLength(wbsFormElementInfo.getEType())));
 
                             baseMapper.insert(wbsFormElementInfo);
 
                             //String eTypeFiled = getInitTableFiledType(wbsFormElementInfo.getEType());
                             //int eLengthFiled = Integer.parseInt(setDefaultElementLength(wbsFormElementInfo.getEType()));
 
-                            //初始化默认值varchar 长度255
-                            String eTypeFiled = "varchar";
-                            int eLengthFiled = 250;
-
                             //判断是否存在该Key字段
                             int row1 = wbsTreeMapper.isThereAField(wbsTree.getInitTableName(), key);
                             if (row1 == 0) {
                                 //追加字段到实体表中
-                                wbsTreeMapper.alterTableFiled(wbsTree.getInitTableName(), key, eTypeFiled, eLengthFiled);
+                                wbsTreeMapper.alterTableFiled(wbsTree.getInitTableName(), key, "varchar", DEFAULT_ELEMENT_LENGTH_VARCHAR);
                                 //判断是否追加成功
                                 int row2 = wbsTreeMapper.isThereAField(wbsTree.getInitTableName(), key);
                                 if (row2 != 1) {
@@ -563,22 +528,18 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                     wbsFormElementInfo.setId(SnowFlakeUtil.getId());
                     wbsFormElementInfo.setFId(String.valueOf(formElementDTO.getId()));
                     wbsFormElementInfo.setStatus(1);
-                    wbsFormElementInfo.setELength(Integer.parseInt(setDefaultElementLength(wbsFormElementInfo.getEType())));
+                    wbsFormElementInfo.setELength(Integer.parseInt(WbsElementUtil.setDefaultElementLength(wbsFormElementInfo.getEType())));
 
                     baseMapper.insert(wbsFormElementInfo);
 
                     //String eTypeFiled = getInitTableFiledType(wbsFormElementInfo.getEType());
                     //int eLengthFiled = Integer.parseInt(setDefaultElementLength(wbsFormElementInfo.getEType()));
 
-                    //初始化默认值varchar 长度255
-                    String eTypeFiled = "varchar";
-                    int eLengthFiled = 250;
-
                     //判断是否存在该Key字段
                     int row1 = wbsTreeMapper.isThereAField(wbsTree.getInitTableName(), key);
                     if (row1 == 0) {
                         //追加字段到实体表中
-                        wbsTreeMapper.alterTableFiled(wbsTree.getInitTableName(), key, eTypeFiled, eLengthFiled);
+                        wbsTreeMapper.alterTableFiled(wbsTree.getInitTableName(), key, "varchar", DEFAULT_ELEMENT_LENGTH_VARCHAR);
                         //判断是否追加成功
                         int row2 = wbsTreeMapper.isThereAField(wbsTree.getInitTableName(), key);
                         if (row2 == 0) {
@@ -621,10 +582,8 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                 }
 
                 //初始化
-                Long id = SnowFlakeUtil.getId();
-                String newTableName = "m_" + DateUtil.time() + "_" + id;
+                String newTableName = "m_" + DateUtil.time() + "_" + SnowFlakeUtil.getId();
                 formElementDTO.setInitTableName(newTableName);
-
                 //设置parentId=nodeId
                 formElementDTO.setParentId(Long.valueOf(nodeId));
 
@@ -640,7 +599,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
                             wbsFormElement.setEKey("key_" + i++);
                             wbsFormElement.setId(SnowFlakeUtil.getId());
                             wbsFormElement.setFId(String.valueOf(formElementDTO.getId()));
-                            wbsFormElement.setELength(Integer.valueOf(setDefaultElementLength(wbsFormElement.getEType())));
+                            wbsFormElement.setELength(Integer.valueOf(WbsElementUtil.setDefaultElementLength(wbsFormElement.getEType())));
                             wbsFormElement.setStatus(1);
                             wbsFormElement.setIsDeleted(0);
                         }
@@ -725,146 +684,10 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
         for (WbsFormElement listDatum : listData) {
             // String initTableFiledType = getInitTableFiledType(listDatum.getEType());
             // int elementLength = getElementLength(initTableFiledType);
-
-            //默认初始化值
-            String eKey = listDatum.getEKey();
-            String initTableFiledType = "varchar";
-            Integer elementLength = 250;
-
             //同步
-            baseMapper.addTableFiled(initTableName, eKey, initTableFiledType, elementLength);
+            baseMapper.addTableFiled(initTableName, listDatum.getEKey(), "varchar", DEFAULT_ELEMENT_LENGTH_VARCHAR);
         }
-
         return true;
     }
 
-    private String getInitTableFiledType(Integer type) {
-        switch (type) {
-            case 2:
-                //整数
-                return "bigint";
-            case 3:
-                //小数
-                return "decimal";
-            case 4:
-                //日期
-                return "datetime";
-            case 5:
-                //数值
-                return "decimal";
-            case 6:
-                //签名
-                return "varchar";
-            case 7:
-                //文件
-                return "varchar";
-            case 1:
-            default:
-                //字符串
-                return "varchar";
-        }
-    }
-
-    private Integer getElementLength(String type) {
-        switch (type) {
-            case "字符串":
-            case "签名":
-            case "文件":
-                return 250;
-            case "整数":
-            case "数值":
-            case "小数":
-                return 50;
-            case "日期":
-            default:
-                return 0;
-        }
-    }
-
-    private Integer getElementLength2(String type) {
-        switch (type) {
-            case "varchar":
-                return 250;
-            case "bigint":
-            case "decimal":
-                return 50;
-            case "datetime":
-            default:
-                return 0;
-        }
-    }
-
-    private String setDefaultElementLength(Integer type) {
-        switch (type) {
-            case 1:  //字符串
-            case 7:  //文件
-            case 6:  //签名
-                return "250";
-            case 2:  //整数
-            case 5:  //数值
-            case 3:  //小数
-                return "50";
-            case 4:  //日期
-            default:
-                return "0";
-        }
-    }
-
-    private String judgeDataType(Integer type) {
-        switch (type) {
-            case 2:
-                return "bigint";
-            case 3:
-                return "decimal";
-            case 4:
-                return "datetime";
-            case 1:
-            default:
-                return "varchar";
-        }
-    }
-
-    private static String getPinyin(String text, String separator) {
-        //text 文本, separator 转换后添加的分隔符
-        char[] chars = text.toCharArray();
-        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
-
-        // 设置大小写
-        format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
-
-        // 设置声调表示方法
-        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
-
-        // 设置字母u表示方法
-        format.setVCharType(HanyuPinyinVCharType.WITH_V);
-        String[] s;
-        String rs = "";
-        try {
-            StringBuilder sb = new StringBuilder();
-            for (int i = 0; i < chars.length; i++) {
-                // 判断是否为汉字字符
-                if (String.valueOf(chars[i]).matches("[\\u4E00-\\u9FA5]+")) {
-                    s = PinyinHelper.toHanyuPinyinStringArray(chars[i], format);
-                    if (s != null) {
-                        sb.append(s[0]).append(separator);
-                        continue;
-                    }
-                }
-
-                sb.append(chars[i]);
-
-                if ((i + 1 >= chars.length) || String.valueOf(chars[i + 1]).matches("[\\u4E00-\\u9FA5]+")) {
-                    sb.append(separator);
-                }
-            }
-
-            rs = sb.substring(0, sb.length());
-        } catch (BadHanyuPinyinOutputFormatCombination e) {
-            e.printStackTrace();
-
-        }
-        return rs;
-    }
-
-
 }

+ 8 - 38
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -9,9 +9,7 @@ import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.node.ForestNodeManager;
 import org.springblade.core.tool.node.ForestNodeMerger;
-import org.springblade.core.tool.node.INode;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.manager.dto.WbsTreeContractDTO;
@@ -19,9 +17,9 @@ import org.springblade.manager.entity.*;
 import org.springblade.manager.mapper.WbsTreeContractMapper;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.IWbsTreeContractService;
+import org.springblade.manager.unit.DiffListUtil;
 import org.springblade.manager.vo.WbsTreeContractTreeVO;
 import org.springblade.manager.vo.WbsTreeContractTreeVO3;
-import org.springblade.manager.vo.WbsTreeContractVO;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -62,7 +60,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean submitWbsTreeInContract1(WbsTreeContractDTO pawDTO) {
+    public boolean submitWbsTreeInContract(WbsTreeContractDTO pawDTO) {
         String wbsTreeIds = pawDTO.getWbsTreeIds();
         String[] ids = wbsTreeIds.split(",");
         List<String> idList = Arrays.asList(ids);
@@ -119,7 +117,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
             List<Long> collect = wbsTreePrivateList2.stream().map(WbsTreePrivate::getId).collect(Collectors.toList());
             List<String> collect2 = collect.stream().map(String::valueOf).collect(Collectors.toList());
             //获取所有wbsTreePrivate新增的表单Id
-            List<String> diffRent1 = getDiffrent(collect2, collect3);
+            List<String> diffRent1 = DiffListUtil.getDiffRent(collect2, collect3);
 
             if (collect2.size() == collect3.size()) {
                 throw new ServiceException("未检测到当前引用的私有wbs树下有新增的元素表信息");
@@ -153,14 +151,13 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
 
                 //获取当前节点、表
                 List<WbsTreeContract> wbsTreeContractList = baseMapper.selectTableListInfo(ids1, pawDTO.getWbsId(), pawDTO.getProjectId(), pawDTO.getContractId());
-
                 List<WbsTreeContract> tableNames = new ArrayList<>();
                 if (wbsTreeContractList.size() > 0) {
-                    for (WbsTreeContract wbsTreeContract : wbsTreeContractList) {
-                        if (wbsTreeContract.getIsTabPdf() == 2) {
+                    wbsTreeContractList.forEach(wbsTreeContract -> {
+                        if (wbsTreeContract.getIsTabPdf() != null && wbsTreeContract.getIsTabPdf() == 2) {
                             tableNames.add(wbsTreeContract);
                         }
-                    }
+                    });
                 }
 
                 List<String> nodeNames = tableNames.stream().map(WbsTreeContract::getDeptName).collect(Collectors.toList());
@@ -214,7 +211,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
 
                 //新增合同段节点、表
                 //baseMapper.insertBatchSomeColumn(wbsTreeContractList);
-                insertBatch(wbsTreeContractList,100);
+                insertBatch(wbsTreeContractList, 100);
 
                 //新增施工台账
                 constructionLedgerFeign.initConstructionLedger(constructionLedgerList);
@@ -361,7 +358,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         wbsTreeContract.setWbsType(wbsTree.getType());
         wbsTreeContract.setProjectId(pawDTO.getProjectId());
         wbsTreeContract.setContractId(pawDTO.getContractId());
-        wbsTreeContract.setContractType(pawDTO.getContractType());
+        wbsTreeContract.setContractType(1);
         wbsTreeContract.setTenantId(wbsTree.getTenantId());
         wbsTreeContract.setParentId(wbsTree.getParentId());
         wbsTreeContract.setAncestors(wbsTree.getAncestors());
@@ -396,31 +393,4 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         return wbsTreeContract;
     }
 
-    public static List<String> getDiffrent(List<String> list1, List<String> list2) {
-        List<String> diff = new ArrayList<String>();
-        List<String> maxList = list1;
-        List<String> minList = list2;
-        if (list2.size() > list1.size()) {
-            maxList = list2;
-            minList = list1;
-        }
-        Map<String, Integer> map = new HashMap<String, Integer>(maxList.size());
-        for (String string : maxList) {
-            map.put(string, 1);
-        }
-        for (String string : minList) {
-            if (map.get(string) != null) {
-                map.put(string, 2);
-                continue;
-            }
-            diff.add(string);
-        }
-        for (Map.Entry<String, Integer> entry : map.entrySet()) {
-            if (entry.getValue() == 1) {
-                diff.add(entry.getKey());
-            }
-        }
-        return diff;
-    }
-
 }

+ 16 - 170
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -31,7 +31,9 @@ import org.springblade.manager.mapper.*;
 import org.springblade.manager.service.IWbsFormElementService;
 import org.springblade.manager.service.IWbsTreeService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.manager.unit.DiffListUtil;
 import org.springblade.manager.unit.RedisUtil;
+import org.springblade.manager.unit.WbsElementUtil;
 import org.springblade.manager.vo.*;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.support.JdbcUtils;
@@ -218,7 +220,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
             maps.forEach(map -> {
                 String deptName = map.get("表名");
                 wbsTree.setDeptName(deptName);
-                wbsTree.setTableType(getTableType(map.get("表类型")));
+                wbsTree.setTableType(WbsElementUtil.getTableType(map.get("表类型")));
                 Long id = SnowFlakeUtil.getId();
                 String initTableName = "m_" + DateUtil.time() + "_" + id;
                 wbsTree.setInitTableName(initTableName);
@@ -255,18 +257,15 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                         String key = "key_" + keyNumb[0];
                         wbsFormElement.setEKey(key);
                         wbsFormElement.setFId(String.valueOf(elementTableId));
-                        wbsFormElement.setELength(getElementLength(map.get("数据类型")));
-                        wbsFormElement.setEType(getElementType(map.get("数据类型")));
+                        wbsFormElement.setELength(WbsElementUtil.getElementLength(map.get("数据类型")));
+                        wbsFormElement.setEType(WbsElementUtil.getElementType(map.get("数据类型")));
                         wbsFormElement.setEInspectionMethod(map.get("计算公式、方法或数值"));
                         wbsFormElement.setEAllowDeviation(map.get("允许偏差范围"));
                         wbsFormElement.setRemark(map.get("备注"));
 
                         wbsFormElementService.save(wbsFormElement);
 
-                        String eTypeFiled = getInitTableFiledType(wbsFormElement.getEType());
-                        Integer eLengthFiled = wbsFormElement.getELength();
-
-                        baseMapper.alterTableFiled(initTableName, wbsFormElement.getEKey(), eTypeFiled, eLengthFiled);
+                        baseMapper.alterTableFiled(initTableName, wbsFormElement.getEKey(), "varchar", WbsFormElementServiceImpl.DEFAULT_ELEMENT_LENGTH_VARCHAR);
                     }
 
                 });
@@ -299,97 +298,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         return false;
     }
 
-    private String getInitTableFiledType(Integer type) {
-        switch (type) {
-            case 2:
-                //整数
-                return "bigint";
-            case 3:
-                //小数
-                return "decimal";
-            case 4:
-                //日期
-                return "datetime";
-            case 5:
-                //数值
-                return "decimal";
-            case 6:
-                //签名
-                return "varchar";
-            case 7:
-                //文件
-                return "varchar";
-            case 1:
-            default:
-                //字符串
-                return "varchar";
-        }
-    }
-
-    private Integer getElementType(String type) {
-        switch (type) {
-            case "字符串":
-                return 1;
-            case "整数":
-                return 2;
-            case "小数":
-                return 3;
-            case "日期":
-                return 4;
-            case "数值":
-                return 5;
-            case "签名":
-                return 6;
-            case "文件":
-                return 7;
-            default:
-                return 0;
-        }
-    }
-
-    private Integer getElementLength(String type) {
-        switch (type) {
-            case "字符串":
-            case "签名":
-            case "文件":
-                return 255;
-            case "整数":
-            case "数值":
-            case "小数":
-                return 20;
-            case "日期":
-            default:
-                return 0;
-        }
-    }
-
-    private Integer getTableType(String tableType) {
-        switch (tableType) {
-            case "检验表":
-                return 1;
-            case "记录表":
-                return 2;
-            case "通用表":
-                return 3;
-            case "监表":
-                return 4;
-            case "评定表":
-                return 5;
-            case "测量表":
-                return 6;
-            case "竣工表":
-                return 7;
-            case "汇总表":
-                return 8;
-            case "试验记录表":
-                return 9;
-            case "试验报告表":
-                return 10;
-            default:
-                return 0;
-        }
-    }
-
     @Override
     public List<WbsNodeTableVO> selectByNodeTable(String id) {
         return wbsTreeMapper.selectByNodeTable(id);
@@ -459,7 +367,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
             ArrayList<Map<String, String>> result = excelUtil.readExcelToObj(canonicalPath);
 
             //导入excel
-            return importExcel2(result, wbsTreeFu, wbsTree1);
+            return importExcel(result, wbsTreeFu, wbsTree1);
 
         } catch (Exception e) {
             e.printStackTrace();
@@ -473,7 +381,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         }
     }
 
-    private boolean importExcel2(ArrayList<Map<String, String>> result, WbsTree wbsTreeFu, WbsTree wbsTree1) {
+    private boolean importExcel(ArrayList<Map<String, String>> result, WbsTree wbsTreeFu, WbsTree wbsTree1) {
         List<WbsTree> allNodeData = new ArrayList<>();
         //解析
         int sortNumber = 1;
@@ -757,7 +665,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                 List<Long> collect3 = collect.stream().map(WbsTreePrivate::getId).collect(Collectors.toList());
                 List<String> collect4 = collect3.stream().map(String::valueOf).collect(Collectors.toList());
 
-                List<String> diffRent1 = WbsTreeContractServiceImpl.getDiffrent(collect2, collect4);
+                List<String> diffRent1 = DiffListUtil.getDiffRent(collect2, collect4);
 
                 //修改公有wbs节点信息、元素表基础信息到项目级wbs、合同段wbs
                 updateWbsInfoPrivateAsync(wbsTreeListAll, wbsTreePrivatesAll, pawDTO.getProjectId());
@@ -873,7 +781,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                 List<Long> collect3 = wbsTreePrivateNowTypes.stream().map(WbsTreePrivate::getId).collect(Collectors.toList());
                 List<String> collect4 = collect3.stream().map(String::valueOf).collect(Collectors.toList());
 
-                List<String> diffRent1 = WbsTreeContractServiceImpl.getDiffrent(collect2, collect4);
+                List<String> diffRent1 = DiffListUtil.getDiffRent(collect2, collect4);
 
                 //修改私有wbs节点信息、元素表基础信息到项目级wbs、合同段wbs
                 updateWbsInfoContractAsync(wbsTreePrivateAllOld, wbsTreePrivatesAllNow, pawDTO.getProjectId(), pawDTO.getPrimaryKeyId());
@@ -1102,6 +1010,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                 bladeRedis.expire("submit-wbs-project:" + pawDTO.getProjectId(), 60);
             }
         }
+
         return true;
     }
 
@@ -1164,7 +1073,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         String filedType = "";
         String filedLength = "";
         for (WbsFormElement wbsFormElement : formElementDTO.getElementList()) {
-            filedName = getPinyin(wbsFormElement.getEName(), "");
+            filedName = WbsElementUtil.getPinyin(wbsFormElement.getEName(), "");
             filedType = String.valueOf(wbsFormElement.getEType());
             filedLength = String.valueOf(wbsFormElement.getELength());
         }
@@ -1177,9 +1086,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
             throw new ServiceException("表名长度错误,输入范围1-100个字符长度");
         }
 
-        //String realName = getFirstSpell(deptName);
-        Long id = SnowFlakeUtil.getId();
-        String newTableName = "m_" + DateUtil.time() + "_" + id;
+        String newTableName = "m_" + DateUtil.time() + "_" + SnowFlakeUtil.getId();
         formElementDTO.setInitTableName(newTableName);
 
         //新增表
@@ -1199,6 +1106,9 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
             if (wbsFormElement.getEType() == 3 && (wbsFormElement.getELength() > 65 || wbsFormElement.getELength() < 10)) {
                 throw new ServiceException("请输入正确的长度,该类型范围为10-65");
             }
+            if (wbsFormElement.getEType() == 4 && (wbsFormElement.getELength() > 50 || wbsFormElement.getELength() < 0)) {
+                throw new ServiceException("请输入正确的长度,该类型范围为0-50");
+            }
 
             wbsFormElement.setEKey("key_" + i++);
             wbsFormElement.setFId(String.valueOf(formElementDTO.getId()));
@@ -1237,70 +1147,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         }
     }
 
-    public static String getFirstSpell(String chinese) {
-        StringBuilder stringBuilder = new StringBuilder();
-        char[] arr = chinese.toCharArray();
-        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
-        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
-        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
-        for (int i = 0; i < arr.length; i++) {
-            if (arr[i] > 128) {
-                try {
-                    String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
-                    if (temp != null) {
-                        stringBuilder.append(temp[0].charAt(0));
-                    }
-                } catch (BadHanyuPinyinOutputFormatCombination e) {
-                    e.printStackTrace();
-                }
-            } else {
-                stringBuilder.append(arr[i]);
-            }
-        }
-        return stringBuilder.toString().replaceAll("\\W", "").trim();
-    }
-
-    public static String getPinyin(String text, String separator) {
-        //text 文本, separator 转换后添加的分隔符
-        char[] chars = text.toCharArray();
-        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
-
-        // 设置大小写
-        format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
-
-        // 设置声调表示方法
-        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
-
-        // 设置字母u表示方法
-        format.setVCharType(HanyuPinyinVCharType.WITH_V);
-        String[] s;
-        String rs = "";
-        try {
-            StringBuilder sb = new StringBuilder();
-            for (int i = 0; i < chars.length; i++) {
-                // 判断是否为汉字字符
-                if (String.valueOf(chars[i]).matches("[\\u4E00-\\u9FA5]+")) {
-                    s = PinyinHelper.toHanyuPinyinStringArray(chars[i], format);
-                    if (s != null) {
-                        sb.append(s[0]).append(separator);
-                        continue;
-                    }
-                }
-
-                sb.append(chars[i]);
-
-                if ((i + 1 >= chars.length) || String.valueOf(chars[i + 1]).matches("[\\u4E00-\\u9FA5]+")) {
-                    sb.append(separator);
-                }
-            }
-
-            rs = sb.substring(0, sb.length());
-        } catch (BadHanyuPinyinOutputFormatCombination e) {
-            e.printStackTrace();
-        }
-        return rs;
-    }
-
     private WbsTreePrivate getWbsTreePrivate1(WbsTree wbsTree, WbsTreeContractDTO pawDTO) {
         WbsTreePrivate wbsTreePrivate = new WbsTreePrivate();
         Long snowId = SnowFlakeUtil.getId();

+ 37 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/unit/DiffListUtil.java

@@ -0,0 +1,37 @@
+package org.springblade.manager.unit;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class DiffListUtil {
+
+    public static List<String> getDiffRent(List<String> list1, List<String> list2) {
+        List<String> diff = new ArrayList<String>();
+        List<String> maxList = list1;
+        List<String> minList = list2;
+        if (list2.size() > list1.size()) {
+            maxList = list2;
+            minList = list1;
+        }
+        Map<String, Integer> map = new HashMap<String, Integer>(maxList.size());
+        for (String string : maxList) {
+            map.put(string, 1);
+        }
+        for (String string : minList) {
+            if (map.get(string) != null) {
+                map.put(string, 2);
+                continue;
+            }
+            diff.add(string);
+        }
+        for (Map.Entry<String, Integer> entry : map.entrySet()) {
+            if (entry.getValue() == 1) {
+                diff.add(entry.getKey());
+            }
+        }
+        return diff;
+    }
+
+}

+ 174 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/unit/WbsElementUtil.java

@@ -0,0 +1,174 @@
+package org.springblade.manager.unit;
+
+import net.sourceforge.pinyin4j.PinyinHelper;
+import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
+import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
+import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
+import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
+import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
+
+public class WbsElementUtil {
+
+    public static String getPinyin(String text, String separator) {
+        //text 文本, separator 转换后添加的分隔符
+        char[] chars = text.toCharArray();
+        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
+
+        // 设置大小写
+        format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
+
+        // 设置声调表示方法
+        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
+
+        // 设置字母u表示方法
+        format.setVCharType(HanyuPinyinVCharType.WITH_V);
+        String[] s;
+        String rs = "";
+        try {
+            StringBuilder sb = new StringBuilder();
+            for (int i = 0; i < chars.length; i++) {
+                // 判断是否为汉字字符
+                if (String.valueOf(chars[i]).matches("[\\u4E00-\\u9FA5]+")) {
+                    s = PinyinHelper.toHanyuPinyinStringArray(chars[i], format);
+                    if (s != null) {
+                        sb.append(s[0]).append(separator);
+                        continue;
+                    }
+                }
+
+                sb.append(chars[i]);
+
+                if ((i + 1 >= chars.length) || String.valueOf(chars[i + 1]).matches("[\\u4E00-\\u9FA5]+")) {
+                    sb.append(separator);
+                }
+            }
+
+            rs = sb.substring(0, sb.length());
+        } catch (BadHanyuPinyinOutputFormatCombination e) {
+            e.printStackTrace();
+
+        }
+        return rs;
+    }
+
+    public static String setDefaultElementLength(Integer type) {
+        switch (type) {
+            case 1:  //字符串
+            case 7:  //文件
+            case 6:  //签名
+                return "250";
+            case 2:  //整数
+            case 5:  //数值
+            case 3:  //小数
+            case 4:  //日期
+                return "50";
+            default:
+                return "0";
+        }
+    }
+
+    public static Integer getElementLength2(String type) {
+        switch (type) {
+            case "varchar":
+                return 250;
+            case "bigint":
+            case "decimal":
+            case "datetime":
+                return 50;
+            default:
+                return 0;
+        }
+    }
+
+    public static Integer getElementLength(String type) {
+        switch (type) {
+            case "字符串":
+            case "签名":
+            case "文件":
+                return 250;
+            case "整数":
+            case "数值":
+            case "小数":
+            case "日期":
+                return 50;
+            default:
+                return 0;
+        }
+    }
+
+    public static String getInitTableFiledType(Integer type) {
+        switch (type) {
+            case 2:
+                //整数
+                return "bigint";
+            case 3:
+                //小数
+                return "decimal";
+            case 4:
+                //日期
+                return "datetime";
+            case 5:
+                //数值
+                return "decimal";
+            case 6:
+                //签名
+                return "varchar";
+            case 7:
+                //文件
+                return "varchar";
+            case 1:
+            default:
+                //字符串
+                return "varchar";
+        }
+    }
+
+    public static Integer getElementType(String type) {
+        switch (type) {
+            case "字符串":
+                return 1;
+            case "整数":
+                return 2;
+            case "小数":
+                return 3;
+            case "日期":
+                return 4;
+            case "数值":
+                return 5;
+            case "签名":
+                return 6;
+            case "文件":
+                return 7;
+            default:
+                return 0;
+        }
+    }
+
+    public static Integer getTableType(String tableType) {
+        switch (tableType) {
+            case "检验表":
+                return 1;
+            case "记录表":
+                return 2;
+            case "通用表":
+                return 3;
+            case "监表":
+                return 4;
+            case "评定表":
+                return 5;
+            case "测量表":
+                return 6;
+            case "竣工表":
+                return 7;
+            case "汇总表":
+                return 8;
+            case "试验记录表":
+                return 9;
+            case "试验报告表":
+                return 10;
+            default:
+                return 0;
+        }
+    }
+
+}