|
@@ -321,19 +321,60 @@ public class WbsTreePrivateController extends BladeController {
|
|
|
@RequestParam("projectId") String projectId) {
|
|
|
List<WbsNodeTableVO> rs = wbsTreePrivateService.selectByNodeTable(parentId, wbsId, projectId);
|
|
|
if (rs.size() > 0) {
|
|
|
+ /*表单对应的initTableIdMaps*/
|
|
|
+ Set<String> ids = rs.stream().map(WbsNodeTableVO::getId).collect(Collectors.toSet());
|
|
|
+ Map<Long, Long> initTableIdMaps = wbsTreeService.getBaseMapper().selectList(Wrappers.<WbsTree>lambdaQuery()
|
|
|
+ .select(WbsTree::getInitTableId, WbsTree::getId)
|
|
|
+ .in(WbsTree::getId, ids)).stream().collect(Collectors.toMap(WbsTree::getId, WbsTree::getInitTableId));
|
|
|
+
|
|
|
+ /*元素FidSet,统计数量*/
|
|
|
+ Set<Long> formElementFids = new HashSet<>();
|
|
|
+
|
|
|
+ /*initTabId赋值*/
|
|
|
for (WbsNodeTableVO r : rs) {
|
|
|
if (StringUtil.isBlank(r.getHtmlUrl())) {
|
|
|
r.setIsLinkTable(1);
|
|
|
}
|
|
|
if (StringUtil.isBlank(r.getInitTableId())) {
|
|
|
- WbsTree wbsTree = wbsTreeService.getById(r.getId());
|
|
|
- if (wbsTree != null) {
|
|
|
- r.setInitTableId(com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotEmpty(wbsTree.getInitTableId()) ? wbsTree.getInitTableId().toString() : "");
|
|
|
+
|
|
|
+ /*提出去,不for循环查询
|
|
|
+ WbsTree wbsTree = wbsTreeService.getById(r.getId());*/
|
|
|
+
|
|
|
+ Long initTabId = initTableIdMaps.getOrDefault(Long.parseLong(r.getId()), null);
|
|
|
+
|
|
|
+ if (initTabId != null) {
|
|
|
+ r.setInitTableId(String.valueOf(initTabId));
|
|
|
+
|
|
|
+ formElementFids.add(initTabId);
|
|
|
+
|
|
|
+ /*提出去,不for循环查询
|
|
|
r.setElementTotal(Math.toIntExact(wbsFormElementService.count(
|
|
|
- new LambdaQueryWrapper<WbsFormElement>().eq(WbsFormElement::getFId, r.getInitTableId()))));
|
|
|
+ new LambdaQueryWrapper<WbsFormElement>().eq(WbsFormElement::getFId, r.getInitTableId()))));*/
|
|
|
+
|
|
|
+ } else {
|
|
|
+ r.setInitTableId("");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if (formElementFids.size() > 0) {
|
|
|
+ /*查询所有相关的元素记录*/
|
|
|
+ List<WbsFormElement> wbsFormElements = wbsFormElementService.getBaseMapper().selectList(Wrappers.<WbsFormElement>lambdaQuery()
|
|
|
+ .select(WbsFormElement::getFId)
|
|
|
+ .in(WbsFormElement::getFId, formElementFids));
|
|
|
+
|
|
|
+ /*elementCountMap分组*/
|
|
|
+ Map<String, Integer> elementCountMap = wbsFormElements.stream()
|
|
|
+ .collect(Collectors.groupingBy(WbsFormElement::getFId, Collectors.collectingAndThen(Collectors.counting(), Long::intValue)));
|
|
|
+
|
|
|
+ /*元素数量赋值*/
|
|
|
+ for (WbsNodeTableVO r : rs) {
|
|
|
+ if (StringUtil.isNotBlank(r.getInitTableId())) {
|
|
|
+ r.setElementTotal(elementCountMap.getOrDefault(r.getInitTableId(), 0));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return R.data(rs);
|
|
|
}
|
|
|
return R.fail(200, "未查询到数据");
|