|
@@ -2866,12 +2866,12 @@ public class InformationWriteQueryController extends BladeController {
|
|
|
throw new ServiceException("只能选择单节点进行新增操作");
|
|
|
}
|
|
|
//查询数据
|
|
|
- selectedNodeList = this.unifiedCode(allSelectedNodeList, treeContract, "0", query);
|
|
|
+ selectedNodeList = this.unifiedCode2(allSelectedNodeList, treeContract, "0", query);
|
|
|
if (ObjectUtil.isEmpty(selectedNodeList)) {
|
|
|
return R.data(null);
|
|
|
}
|
|
|
//检查当前操作的节点是否是填报节点,如果是则需要查询相关联表格
|
|
|
- List<Long> lowNodeIds = selectedNodeList.stream().filter(f -> f.getLow() == 0).map(WbsTreePrivateAddVO::getId).collect(Collectors.toList()); //最底层节点id
|
|
|
+ List<Long> lowNodeIds = selectedNodeList.stream().filter(f -> f.getLow() == 1).map(WbsTreePrivateAddVO::getId).collect(Collectors.toList()); //最底层节点id
|
|
|
List<WbsTreePrivateAddVO> childList = new ArrayList<>();
|
|
|
if (lowNodeIds.size() > 0) {
|
|
|
//只取原始表
|
|
@@ -3188,6 +3188,38 @@ public class InformationWriteQueryController extends BladeController {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ private List<WbsTreePrivateAddVO> unifiedCode2
|
|
|
+ (List<AddContractTreeNodeVO.Node> allSelectedNodeList, WbsTreeContract treeContract, String
|
|
|
+ saveType, List<WbsTreePrivate> queryResultP) {
|
|
|
+ //获取项目节点树的主键
|
|
|
+ List<Long> halfSelectedList = allSelectedNodeList.stream().map(AddContractTreeNodeVO.Node::getPrimaryKeyId).map(Long::parseLong).distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ //获取项目对应的合同段的树原始节点的信息
|
|
|
+ List<WbsTreePrivateAddVO> query = jdbcTemplate.query("select *," +
|
|
|
+ "(SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM m_wbs_tree_private b WHERE b.parent_id = a.id" +
|
|
|
+ " AND b.type = 2 and b.status = 1 AND b.is_deleted = 0 AND b.project_id = " + treeContract.getProjectId() +
|
|
|
+ ") AS low " +
|
|
|
+ " FROM m_wbs_tree_private a WHERE p_key_id IN (" + StringUtils.join(halfSelectedList, ",") + ")",
|
|
|
+ new BeanPropertyRowMapper<>(WbsTreePrivateAddVO.class));
|
|
|
+
|
|
|
+ if (query.size() > 0) {
|
|
|
+ //返回结果集,匹配节点名称使用
|
|
|
+ queryResultP.addAll(query);
|
|
|
+
|
|
|
+ //剔除与当前操作节点相同的ID,(如果saveType=1,表示当前及子级节点,那么就要剔除自己本身,否则视为仅当前节点操作,会存在自己本身)
|
|
|
+ if ("1".equals(saveType)) {
|
|
|
+ query.removeIf(wbsTreePrivate -> {
|
|
|
+ Long id = wbsTreePrivate.getId();
|
|
|
+ return treeContract.getId() != null && treeContract.getId().equals(id);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ return query;
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
@NotNull
|
|
|
public R<Boolean> saveOrCopyNodeTree
|
|
|
(List<WbsTreeContract> saveList, List<ConstructionLedger> saveLedger, Integer
|