|
@@ -205,89 +205,90 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
ArrayList<Map<String, String>> result = excelUtil.readExcelToObj(canonicalPath);
|
|
|
List<Map<String, String>> result2 = WbsExcelBatchUtil.deepCopy(result);
|
|
|
List<Map<String, String>> maps = WbsExcelBatchUtil.removeRepeatMapByKey(result, "表名");
|
|
|
- assert maps != null;
|
|
|
- List<WbsTreeBatchImportDTO> list = new ArrayList<>();
|
|
|
-
|
|
|
- //初始化
|
|
|
- wbsTree.setTenantId(wbsTree.getTenantId());
|
|
|
- wbsTree.setNodeType(1);
|
|
|
- wbsTree.setWbsId(wbsTree.getWbsId());
|
|
|
- wbsTree.setParentId(wbsTree.getId());
|
|
|
- String ancestors = wbsTree.getAncestors() + StringPool.COMMA + wbsTree.getId();
|
|
|
- wbsTree.setAncestors(ancestors);
|
|
|
- wbsTree.setType(2);
|
|
|
- wbsTree.setIsDeleted(BladeConstant.DB_NOT_DELETED);
|
|
|
- wbsTree.setStatus(1);
|
|
|
-
|
|
|
- maps.forEach(map -> {
|
|
|
- String tabName = map.get("表名");
|
|
|
- wbsTree.setNodeName(tabName);
|
|
|
- wbsTree.setTableType(WbsElementUtil.getTableType(map.get("表类型")));
|
|
|
- Long id = SnowFlakeUtil.getId();
|
|
|
- String initTableName = "m_" + DateUtil.time() + "_" + id;
|
|
|
- wbsTree.setInitTableName(initTableName);
|
|
|
- wbsTree.setId(id);
|
|
|
- if (StringUtils.isEmpty(wbsTree.getFillRate())) {
|
|
|
- wbsTree.setFillRate("80%");
|
|
|
- }
|
|
|
- //新增表单
|
|
|
- boolean b = submit3(wbsTree);
|
|
|
+ if (maps != null) {
|
|
|
+ List<WbsTreeBatchImportDTO> list = new ArrayList<>();
|
|
|
+ //初始化
|
|
|
+ wbsTree.setTenantId(wbsTree.getTenantId());
|
|
|
+ wbsTree.setNodeType(1);
|
|
|
+ wbsTree.setWbsId(wbsTree.getWbsId());
|
|
|
+ wbsTree.setParentId(wbsTree.getId());
|
|
|
+ String ancestors = wbsTree.getAncestors() + StringPool.COMMA + wbsTree.getId();
|
|
|
+ wbsTree.setAncestors(ancestors);
|
|
|
+ wbsTree.setType(2);
|
|
|
+ wbsTree.setIsDeleted(BladeConstant.DB_NOT_DELETED);
|
|
|
+ wbsTree.setStatus(1);
|
|
|
+
|
|
|
+ maps.forEach(map -> {
|
|
|
+ String tabName = map.get("表名");
|
|
|
+ wbsTree.setNodeName(tabName);
|
|
|
+ wbsTree.setTableType(WbsElementUtil.getTableType(map.get("表类型")));
|
|
|
+ Long id = SnowFlakeUtil.getId();
|
|
|
+ String initTableName = "m_" + DateUtil.time() + "_" + id;
|
|
|
+ wbsTree.setInitTableName(initTableName);
|
|
|
+ wbsTree.setId(id);
|
|
|
+ if (StringUtils.isEmpty(wbsTree.getFillRate())) {
|
|
|
+ wbsTree.setFillRate("80%");
|
|
|
+ }
|
|
|
+ //新增表单
|
|
|
+ boolean b = submit3(wbsTree);
|
|
|
|
|
|
- if (b) {
|
|
|
- //新增实体表
|
|
|
- initTable(initTableName);
|
|
|
+ if (b) {
|
|
|
+ //新增实体表
|
|
|
+ initTable(initTableName);
|
|
|
|
|
|
- WbsTreeBatchImportDTO wbsTreeBatchImportDTO = new WbsTreeBatchImportDTO();
|
|
|
- wbsTreeBatchImportDTO.setId(id);
|
|
|
- wbsTreeBatchImportDTO.setTableName(tabName);
|
|
|
- wbsTreeBatchImportDTO.setInitTableName(initTableName);
|
|
|
- list.add(wbsTreeBatchImportDTO);
|
|
|
+ WbsTreeBatchImportDTO wbsTreeBatchImportDTO = new WbsTreeBatchImportDTO();
|
|
|
+ wbsTreeBatchImportDTO.setId(id);
|
|
|
+ wbsTreeBatchImportDTO.setTableName(tabName);
|
|
|
+ wbsTreeBatchImportDTO.setInitTableName(initTableName);
|
|
|
+ list.add(wbsTreeBatchImportDTO);
|
|
|
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- //新增元素
|
|
|
- list.forEach(i -> {
|
|
|
- Long elementTableId = i.getId();
|
|
|
- String tableName = i.getTableName();
|
|
|
- String initTableName = i.getInitTableName();
|
|
|
- final int[] keyNumb = {0};
|
|
|
-
|
|
|
- result2.forEach(map -> {
|
|
|
- if (tableName.equals(map.get("表名"))) {
|
|
|
- keyNumb[0]++;
|
|
|
- WbsFormElement wbsFormElement = new WbsFormElement();
|
|
|
- wbsFormElement.setEName(map.get("字段名"));
|
|
|
- String key = "key_" + keyNumb[0];
|
|
|
- wbsFormElement.setEKey(key);
|
|
|
- wbsFormElement.setFId(String.valueOf(elementTableId));
|
|
|
- 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);
|
|
|
-
|
|
|
- baseMapper.alterTableFiled(initTableName, wbsFormElement.getEKey(), "varchar", WbsFormElementServiceImpl.DEFAULT_ELEMENT_LENGTH_VARCHAR);
|
|
|
}
|
|
|
-
|
|
|
});
|
|
|
- });
|
|
|
- return true;
|
|
|
|
|
|
+ //新增元素
|
|
|
+ list.forEach(i -> {
|
|
|
+ Long elementTableId = i.getId();
|
|
|
+ String tableName = i.getTableName();
|
|
|
+ String initTableName = i.getInitTableName();
|
|
|
+ final int[] keyNumb = {0};
|
|
|
+
|
|
|
+ result2.forEach(map -> {
|
|
|
+ if (tableName.equals(map.get("表名"))) {
|
|
|
+ keyNumb[0]++;
|
|
|
+ WbsFormElement wbsFormElement = new WbsFormElement();
|
|
|
+ wbsFormElement.setEName(map.get("字段名"));
|
|
|
+ String key = "key_" + keyNumb[0];
|
|
|
+ wbsFormElement.setEKey(key);
|
|
|
+ wbsFormElement.setFId(String.valueOf(elementTableId));
|
|
|
+ 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);
|
|
|
+
|
|
|
+ baseMapper.alterTableFiled(initTableName, wbsFormElement.getEKey(), "varchar", WbsFormElementServiceImpl.DEFAULT_ELEMENT_LENGTH_VARCHAR);
|
|
|
+ }
|
|
|
+
|
|
|
+ });
|
|
|
+ });
|
|
|
+ return true;
|
|
|
+ }
|
|
|
} catch (
|
|
|
IOException | ClassNotFoundException e) {
|
|
|
throw new ServiceException("操作失败,请上传正确模板内容");
|
|
|
} finally {
|
|
|
- assert canonicalPath != null;
|
|
|
- File file2 = new File(canonicalPath);
|
|
|
- if (file2.isFile() && file2.exists()) {
|
|
|
- if (file2.delete()) {
|
|
|
- System.gc();
|
|
|
+ if (canonicalPath != null){
|
|
|
+ File file2 = new File(canonicalPath);
|
|
|
+ if (file2.isFile() && file2.exists()) {
|
|
|
+ if (file2.delete()) {
|
|
|
+ System.gc();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -326,73 +327,74 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
//获取当前项目引用
|
|
|
String sql = "select reference_wbs_template_id,reference_wbs_template_type,reference_wbs_template_id_trial,reference_wbs_template_type_trial from m_project_info where id = " + wbsTreePrivate.getProjectId();
|
|
|
ProjectInfo projectInfo = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ProjectInfo.class)).stream().findAny().orElse(null);
|
|
|
- assert projectInfo != null;
|
|
|
- if (("1").equals(wbsTreePrivate.getWbsType())) {
|
|
|
- //质检公有
|
|
|
- if (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateId()) && (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateType()) && ("public").equals(projectInfo.getReferenceWbsTemplateType()))) {
|
|
|
- //获取公有树
|
|
|
- List<WbsTree> wbsTreeListAll = wbsTreeMapper.selectList(Wrappers.<WbsTree>lambdaQuery().eq(WbsTree::getWbsId, projectInfo.getReferenceWbsTemplateId()).eq(WbsTree::getType, 1).eq(WbsTree::getStatus, 1));
|
|
|
- //获取项目私节点、元素表
|
|
|
- List<WbsTreePrivate> wbsTreePrivatesAll = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getWbsId, projectInfo.getReferenceWbsTemplateId()).eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId()).eq(WbsTreePrivate::getStatus, 1));
|
|
|
- //同步修改
|
|
|
- this.updateWbsInfoPrivateAsync(wbsTreeListAll, wbsTreePrivatesAll, wbsTreePrivate.getProjectId(), Integer.parseInt(wbsTreePrivate.getWbsType()));
|
|
|
-
|
|
|
- //质检私有
|
|
|
- } else if (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateId()) && ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateType()) && ("private").equals(projectInfo.getReferenceWbsTemplateType())) {
|
|
|
- //获取私有引用根节点
|
|
|
- WbsTreePrivate wbsTreePrivateRecord = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
- .select(WbsTreePrivate::getProjectId, WbsTreePrivate::getWbsId)
|
|
|
- .eq(WbsTreePrivate::getPKeyId, projectInfo.getReferenceWbsTemplateId()));
|
|
|
- //获取私有引用项目树
|
|
|
- List<WbsTreePrivate> wbsTreePrivateAllOld = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
- .select(WbsTreePrivate::getId, WbsTreePrivate::getNodeName, WbsTreePrivate::getNodeType, WbsTreePrivate::getMajorDataType, WbsTreePrivate::getTableType, WbsTreePrivate::getTableOwner, WbsTreePrivate::getImportMatchingInfo, WbsTreePrivate::getMixRatioTestIds, WbsTreePrivate::getInitTableId, WbsTreePrivate::getInitTableName, WbsTreePrivate::getHtmlUrl)
|
|
|
- .eq(WbsTreePrivate::getStatus, 1)
|
|
|
- .eq(WbsTreePrivate::getProjectId, Long.parseLong(wbsTreePrivateRecord.getProjectId()))
|
|
|
- .and(obj -> obj.eq(WbsTreePrivate::getWbsId, Long.parseLong(wbsTreePrivateRecord.getWbsId())).or().isNull(WbsTreePrivate::getWbsId))
|
|
|
- );
|
|
|
- //获取当前项目私有树、元素表
|
|
|
- List<WbsTreePrivate> wbsTreePrivatesAllNow = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
- .select(WbsTreePrivate::getId, WbsTreePrivate::getNodeName, WbsTreePrivate::getNodeType, WbsTreePrivate::getMajorDataType, WbsTreePrivate::getTableType, WbsTreePrivate::getTableOwner, WbsTreePrivate::getImportMatchingInfo, WbsTreePrivate::getMixRatioTestIds, WbsTreePrivate::getInitTableId, WbsTreePrivate::getInitTableName, WbsTreePrivate::getHtmlUrl)
|
|
|
- .eq(WbsTreePrivate::getStatus, 1)
|
|
|
- .eq(WbsTreePrivate::getProjectId, Long.parseLong(wbsTreePrivate.getProjectId()))
|
|
|
- .and(obj -> obj.eq(WbsTreePrivate::getWbsId, projectInfo.getReferenceWbsTemplateId()).or().isNull(WbsTreePrivate::getWbsId))
|
|
|
- );
|
|
|
- //同步修改
|
|
|
- this.updateWbsInfoContractAsync(wbsTreePrivateAllOld, wbsTreePrivatesAllNow, wbsTreePrivate.getProjectId(), projectInfo.getReferenceWbsTemplateId().toString(), Integer.parseInt(wbsTreePrivate.getWbsType()));
|
|
|
- }
|
|
|
+ if (projectInfo != null) {
|
|
|
+ if (("1").equals(wbsTreePrivate.getWbsType())) {
|
|
|
+ //质检公有
|
|
|
+ if (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateId()) && (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateType()) && ("public").equals(projectInfo.getReferenceWbsTemplateType()))) {
|
|
|
+ //获取公有树
|
|
|
+ List<WbsTree> wbsTreeListAll = wbsTreeMapper.selectList(Wrappers.<WbsTree>lambdaQuery().eq(WbsTree::getWbsId, projectInfo.getReferenceWbsTemplateId()).eq(WbsTree::getType, 1).eq(WbsTree::getStatus, 1));
|
|
|
+ //获取项目私节点、元素表
|
|
|
+ List<WbsTreePrivate> wbsTreePrivatesAll = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getWbsId, projectInfo.getReferenceWbsTemplateId()).eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId()).eq(WbsTreePrivate::getStatus, 1));
|
|
|
+ //同步修改
|
|
|
+ this.updateWbsInfoPrivateAsync(wbsTreeListAll, wbsTreePrivatesAll, wbsTreePrivate.getProjectId(), Integer.parseInt(wbsTreePrivate.getWbsType()));
|
|
|
+
|
|
|
+ //质检私有
|
|
|
+ } else if (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateId()) && ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateType()) && ("private").equals(projectInfo.getReferenceWbsTemplateType())) {
|
|
|
+ //获取私有引用根节点
|
|
|
+ WbsTreePrivate wbsTreePrivateRecord = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
+ .select(WbsTreePrivate::getProjectId, WbsTreePrivate::getWbsId)
|
|
|
+ .eq(WbsTreePrivate::getPKeyId, projectInfo.getReferenceWbsTemplateId()));
|
|
|
+ //获取私有引用项目树
|
|
|
+ List<WbsTreePrivate> wbsTreePrivateAllOld = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
+ .select(WbsTreePrivate::getId, WbsTreePrivate::getNodeName, WbsTreePrivate::getNodeType, WbsTreePrivate::getMajorDataType, WbsTreePrivate::getTableType, WbsTreePrivate::getTableOwner, WbsTreePrivate::getImportMatchingInfo, WbsTreePrivate::getMixRatioTestIds, WbsTreePrivate::getInitTableId, WbsTreePrivate::getInitTableName, WbsTreePrivate::getHtmlUrl)
|
|
|
+ .eq(WbsTreePrivate::getStatus, 1)
|
|
|
+ .eq(WbsTreePrivate::getProjectId, Long.parseLong(wbsTreePrivateRecord.getProjectId()))
|
|
|
+ .and(obj -> obj.eq(WbsTreePrivate::getWbsId, Long.parseLong(wbsTreePrivateRecord.getWbsId())).or().isNull(WbsTreePrivate::getWbsId))
|
|
|
+ );
|
|
|
+ //获取当前项目私有树、元素表
|
|
|
+ List<WbsTreePrivate> wbsTreePrivatesAllNow = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
+ .select(WbsTreePrivate::getId, WbsTreePrivate::getNodeName, WbsTreePrivate::getNodeType, WbsTreePrivate::getMajorDataType, WbsTreePrivate::getTableType, WbsTreePrivate::getTableOwner, WbsTreePrivate::getImportMatchingInfo, WbsTreePrivate::getMixRatioTestIds, WbsTreePrivate::getInitTableId, WbsTreePrivate::getInitTableName, WbsTreePrivate::getHtmlUrl)
|
|
|
+ .eq(WbsTreePrivate::getStatus, 1)
|
|
|
+ .eq(WbsTreePrivate::getProjectId, Long.parseLong(wbsTreePrivate.getProjectId()))
|
|
|
+ .and(obj -> obj.eq(WbsTreePrivate::getWbsId, projectInfo.getReferenceWbsTemplateId()).or().isNull(WbsTreePrivate::getWbsId))
|
|
|
+ );
|
|
|
+ //同步修改
|
|
|
+ this.updateWbsInfoContractAsync(wbsTreePrivateAllOld, wbsTreePrivatesAllNow, wbsTreePrivate.getProjectId(), projectInfo.getReferenceWbsTemplateId().toString(), Integer.parseInt(wbsTreePrivate.getWbsType()));
|
|
|
+ }
|
|
|
|
|
|
- } else if (("2").equals(wbsTreePrivate.getWbsType())) {
|
|
|
- //试验公有
|
|
|
- if (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateIdTrial()) && (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateTypeTrial()) && ("public").equals(projectInfo.getReferenceWbsTemplateTypeTrial()))) {
|
|
|
+ } else if (("2").equals(wbsTreePrivate.getWbsType())) {
|
|
|
+ //试验公有
|
|
|
+ if (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateIdTrial()) && (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateTypeTrial()) && ("public").equals(projectInfo.getReferenceWbsTemplateTypeTrial()))) {
|
|
|
|
|
|
- List<WbsTree> wbsTreeListAll = wbsTreeMapper.selectList(Wrappers.<WbsTree>lambdaQuery().eq(WbsTree::getWbsId, projectInfo.getReferenceWbsTemplateId()).eq(WbsTree::getType, 1).eq(WbsTree::getStatus, 1));
|
|
|
+ List<WbsTree> wbsTreeListAll = wbsTreeMapper.selectList(Wrappers.<WbsTree>lambdaQuery().eq(WbsTree::getWbsId, projectInfo.getReferenceWbsTemplateId()).eq(WbsTree::getType, 1).eq(WbsTree::getStatus, 1));
|
|
|
|
|
|
- List<WbsTreePrivate> wbsTreePrivatesAll = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getWbsId, projectInfo.getReferenceWbsTemplateId()).eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId()).eq(WbsTreePrivate::getStatus, 1));
|
|
|
+ List<WbsTreePrivate> wbsTreePrivatesAll = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda().eq(WbsTreePrivate::getWbsId, projectInfo.getReferenceWbsTemplateId()).eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId()).eq(WbsTreePrivate::getStatus, 1));
|
|
|
|
|
|
- this.updateWbsInfoPrivateAsync(wbsTreeListAll, wbsTreePrivatesAll, wbsTreePrivate.getProjectId(), Integer.parseInt(wbsTreePrivate.getWbsType()));
|
|
|
+ this.updateWbsInfoPrivateAsync(wbsTreeListAll, wbsTreePrivatesAll, wbsTreePrivate.getProjectId(), Integer.parseInt(wbsTreePrivate.getWbsType()));
|
|
|
|
|
|
- //试验私有
|
|
|
- } else if (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateIdTrial()) && (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateTypeTrial()) && ("private").equals(projectInfo.getReferenceWbsTemplateTypeTrial()))) {
|
|
|
+ //试验私有
|
|
|
+ } else if (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateIdTrial()) && (ObjectUtil.isNotEmpty(projectInfo.getReferenceWbsTemplateTypeTrial()) && ("private").equals(projectInfo.getReferenceWbsTemplateTypeTrial()))) {
|
|
|
|
|
|
- WbsTreePrivate wbsTreePrivateRecord = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
- .select(WbsTreePrivate::getProjectId, WbsTreePrivate::getWbsId)
|
|
|
- .eq(WbsTreePrivate::getPKeyId, projectInfo.getReferenceWbsTemplateIdTrial()));
|
|
|
+ WbsTreePrivate wbsTreePrivateRecord = wbsTreePrivateMapper.selectOne(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
+ .select(WbsTreePrivate::getProjectId, WbsTreePrivate::getWbsId)
|
|
|
+ .eq(WbsTreePrivate::getPKeyId, projectInfo.getReferenceWbsTemplateIdTrial()));
|
|
|
|
|
|
- List<WbsTreePrivate> wbsTreePrivateAllOld = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
- .select(WbsTreePrivate::getId, WbsTreePrivate::getNodeName, WbsTreePrivate::getNodeType, WbsTreePrivate::getMajorDataType, WbsTreePrivate::getTableType, WbsTreePrivate::getTableOwner, WbsTreePrivate::getImportMatchingInfo, WbsTreePrivate::getMixRatioTestIds, WbsTreePrivate::getInitTableId, WbsTreePrivate::getInitTableName, WbsTreePrivate::getHtmlUrl)
|
|
|
- .eq(WbsTreePrivate::getStatus, 1)
|
|
|
- .eq(WbsTreePrivate::getProjectId, Long.parseLong(wbsTreePrivate.getProjectId()))
|
|
|
- .and(obj -> obj.eq(WbsTreePrivate::getWbsId, Long.parseLong(wbsTreePrivateRecord.getWbsId())).or().isNull(WbsTreePrivate::getWbsId))
|
|
|
- );
|
|
|
+ List<WbsTreePrivate> wbsTreePrivateAllOld = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
+ .select(WbsTreePrivate::getId, WbsTreePrivate::getNodeName, WbsTreePrivate::getNodeType, WbsTreePrivate::getMajorDataType, WbsTreePrivate::getTableType, WbsTreePrivate::getTableOwner, WbsTreePrivate::getImportMatchingInfo, WbsTreePrivate::getMixRatioTestIds, WbsTreePrivate::getInitTableId, WbsTreePrivate::getInitTableName, WbsTreePrivate::getHtmlUrl)
|
|
|
+ .eq(WbsTreePrivate::getStatus, 1)
|
|
|
+ .eq(WbsTreePrivate::getProjectId, Long.parseLong(wbsTreePrivate.getProjectId()))
|
|
|
+ .and(obj -> obj.eq(WbsTreePrivate::getWbsId, Long.parseLong(wbsTreePrivateRecord.getWbsId())).or().isNull(WbsTreePrivate::getWbsId))
|
|
|
+ );
|
|
|
|
|
|
- List<WbsTreePrivate> wbsTreePrivatesAllNow = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
- .select(WbsTreePrivate::getId, WbsTreePrivate::getNodeName, WbsTreePrivate::getNodeType, WbsTreePrivate::getMajorDataType, WbsTreePrivate::getTableType, WbsTreePrivate::getTableOwner, WbsTreePrivate::getImportMatchingInfo, WbsTreePrivate::getMixRatioTestIds, WbsTreePrivate::getInitTableId, WbsTreePrivate::getInitTableName, WbsTreePrivate::getHtmlUrl)
|
|
|
- .eq(WbsTreePrivate::getStatus, 1)
|
|
|
- .eq(WbsTreePrivate::getProjectId, Long.parseLong(wbsTreePrivate.getProjectId()))
|
|
|
- .and(obj -> obj.eq(WbsTreePrivate::getWbsId, projectInfo.getReferenceWbsTemplateIdTrial()).or().isNull(WbsTreePrivate::getWbsId))
|
|
|
- );
|
|
|
+ List<WbsTreePrivate> wbsTreePrivatesAllNow = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>query().lambda()
|
|
|
+ .select(WbsTreePrivate::getId, WbsTreePrivate::getNodeName, WbsTreePrivate::getNodeType, WbsTreePrivate::getMajorDataType, WbsTreePrivate::getTableType, WbsTreePrivate::getTableOwner, WbsTreePrivate::getImportMatchingInfo, WbsTreePrivate::getMixRatioTestIds, WbsTreePrivate::getInitTableId, WbsTreePrivate::getInitTableName, WbsTreePrivate::getHtmlUrl)
|
|
|
+ .eq(WbsTreePrivate::getStatus, 1)
|
|
|
+ .eq(WbsTreePrivate::getProjectId, Long.parseLong(wbsTreePrivate.getProjectId()))
|
|
|
+ .and(obj -> obj.eq(WbsTreePrivate::getWbsId, projectInfo.getReferenceWbsTemplateIdTrial()).or().isNull(WbsTreePrivate::getWbsId))
|
|
|
+ );
|
|
|
|
|
|
- this.updateWbsInfoContractAsync(wbsTreePrivateAllOld, wbsTreePrivatesAllNow, wbsTreePrivate.getProjectId(), projectInfo.getReferenceWbsTemplateIdTrial().toString(), Integer.parseInt(wbsTreePrivate.getWbsType()));
|
|
|
+ this.updateWbsInfoContractAsync(wbsTreePrivateAllOld, wbsTreePrivatesAllNow, wbsTreePrivate.getProjectId(), projectInfo.getReferenceWbsTemplateIdTrial().toString(), Integer.parseInt(wbsTreePrivate.getWbsType()));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
@@ -919,69 +921,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @Async
|
|
|
- public boolean insertTextDictInfoAsync(List<WbsTreePrivate> wbsTreePrivateOldTables, List<WbsTreePrivate> wbsTreePrivateNewTables) {
|
|
|
- //wbsTreePrivateOldTables=原始引用的元素表+独立表 wbsTreePrivateNewTables=现在项目树的元素表+独立表
|
|
|
- Map<Long, List<TextdictInfo>> textDictInfoData = new HashMap<>();
|
|
|
- if (wbsTreePrivateOldTables.size() > 0) {
|
|
|
- //只同步了独立库的元素表电签信息,type=2以前的节点下同步形式,现在type=10为独立库
|
|
|
- List<Long> pIdsDL = wbsTreePrivateOldTables.stream().filter(f -> f.getType().equals(10) || f.getType().equals(2)).collect(Collectors.toList()).stream().map(WbsTreePrivate::getPKeyId).collect(Collectors.toList());
|
|
|
- String ids = StringUtils.join(pIdsDL, ",");
|
|
|
- String sql = "select `id`,`name`,`type`,tab_id,col_key,sig_role_id,is_deleted,sig_role_name,col_name,pyzbx,pyzby from m_textdict_info where tab_id in (" + ids + ") and is_deleted = 0";
|
|
|
- List<TextdictInfo> textDictInfos = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(TextdictInfo.class));
|
|
|
-
|
|
|
- for (WbsTreePrivate wbsTreePrivate : wbsTreePrivateOldTables) {
|
|
|
- //私有引用-电签匹配数据、默认信息数据,根据元素表pKeyId,获取电签位置匹配信息、编辑默认信息
|
|
|
- List<TextdictInfo> collect = textDictInfos.stream().filter(f -> f.getTabId().equals(String.valueOf(wbsTreePrivate.getPKeyId()))).collect(Collectors.toList());
|
|
|
- if (collect.size() > 0) {
|
|
|
- textDictInfoData.put(wbsTreePrivate.getId(), collect);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (textDictInfoData.size() > 0) {
|
|
|
- //同步电签配置信息 构造电签位置配置信息、编辑默认信息数据
|
|
|
- List<TextdictInfo> insertData = new ArrayList<>();
|
|
|
- for (WbsTreePrivate wbsTreePrivateNewTable : wbsTreePrivateNewTables) {
|
|
|
- textDictInfoData.forEach((k, v) -> {
|
|
|
- if (wbsTreePrivateNewTable.getId().equals(k)) {
|
|
|
- for (TextdictInfo textdictInfo : v) {
|
|
|
- TextdictInfo obj = BeanUtil.copyProperties(textdictInfo, TextdictInfo.class);
|
|
|
- assert obj != null;
|
|
|
- obj.setTabId(String.valueOf(wbsTreePrivateNewTable.getPKeyId()));
|
|
|
- obj.setId(SnowFlakeUtil.getId());
|
|
|
- insertData.add(obj);
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
- //判断是否存在
|
|
|
- List<Long> pIdsDLNew = wbsTreePrivateNewTables.stream().filter(f -> f.getType().equals(10) || f.getType().equals(2)).collect(Collectors.toList()).stream().map(WbsTreePrivate::getPKeyId).collect(Collectors.toList());
|
|
|
- String ids = StringUtils.join(pIdsDLNew, ",");
|
|
|
- String sql = "select `id`,`name`,`type`,tab_id,col_key,sig_role_id,is_deleted,sig_role_name,col_name,pyzbx,pyzby from m_textdict_info where tab_id in (" + ids + ") and is_deleted = 0";
|
|
|
- List<TextdictInfo> textDictInfosNew = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(TextdictInfo.class));
|
|
|
-
|
|
|
- Iterator<TextdictInfo> iterator = insertData.iterator();
|
|
|
- while (iterator.hasNext()) {
|
|
|
- TextdictInfo textDictInfo = iterator.next();
|
|
|
- textDictInfosNew.stream().filter(f ->
|
|
|
- //判断每张表TabId的每个位置ColKey、类型Type唯一
|
|
|
- f.getColKey().equals(textDictInfo.getColKey())
|
|
|
- && f.getType().equals(textDictInfo.getType())
|
|
|
- && f.getTabId().equals(textDictInfo.getTabId())
|
|
|
- ).findAny().ifPresent(textDict -> iterator.remove());
|
|
|
- }
|
|
|
-
|
|
|
- if (insertData.size() > 0) {
|
|
|
- textDictInfoService.insertBatch(insertData, 1000);
|
|
|
- }
|
|
|
-
|
|
|
- return true;
|
|
|
- }
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
public WbsTreeAllListVO findWbsTreeList(Integer type) {
|
|
|
WbsTreeAllListVO wbsTreeAllListVO = new WbsTreeAllListVO();
|