|
|
@@ -8,11 +8,12 @@ import com.zzsmart.qomo.kn.cost.manage.service.BomTreeService;
|
|
8
|
8
|
import com.zzsmart.qomo.kn.cost.manage.util.BomTreeBuilder;
|
|
9
|
9
|
import com.zzsmart.qomo.kn.cost.manage.vo.BomTreeInfoVO;
|
|
10
|
10
|
import com.zzsmart.qomo.kn.cost.manage.vo.CostStandardDetailVO;
|
|
|
11
|
+import org.springframework.beans.BeanUtils;
|
|
11
|
12
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
12
|
13
|
import org.springframework.stereotype.Service;
|
|
13
|
14
|
|
|
14
|
|
-import java.util.Arrays;
|
|
15
|
|
-import java.util.List;
|
|
|
15
|
+import java.util.*;
|
|
|
16
|
+import java.util.stream.Collectors;
|
|
16
|
17
|
|
|
17
|
18
|
@Service
|
|
18
|
19
|
public class BomTreeServiceImpl implements BomTreeService {
|
|
|
@@ -38,7 +39,25 @@ public class BomTreeServiceImpl implements BomTreeService {
|
|
38
|
39
|
wrapper.like("c2.version_number", version_number);
|
|
39
|
40
|
}
|
|
40
|
41
|
List<CostStandardDetailVO> costStandardDetailVOS = costStandardDetailMapper.queryListResult(wrapper);
|
|
41
|
|
- List<BomTreeInfoVO> bomTreeInfoVOS = BomTreeBuilder.buildBomTree(costStandardDetailVOS);
|
|
|
42
|
+ //查询所有满足条件的父节点
|
|
|
43
|
+ Map<String, CostStandardDetailVO> parentDataMap = new TreeMap<>();
|
|
|
44
|
+ if ((StrUtil.isNotEmpty(materialNumber) || StrUtil.isNotEmpty(version_number)) && costStandardDetailVOS.size() > 0) {
|
|
|
45
|
+ parentDataMap = costStandardDetailVOS.stream().collect(Collectors.toMap(CostStandardDetailVO::getMaterialNumber, vo -> vo));
|
|
|
46
|
+ //查询所有父节点下的子节点
|
|
|
47
|
+ QueryWrapper<CostStandardDetail> wrapper1 = new QueryWrapper<>();
|
|
|
48
|
+ for (String materialNumber1 : parentDataMap.keySet()) {
|
|
|
49
|
+ wrapper1.like("parent_material_number", materialNumber1);
|
|
|
50
|
+ }
|
|
|
51
|
+ List<CostStandardDetail> costStandardDetails = costStandardDetailMapper.selectList(wrapper1);
|
|
|
52
|
+ costStandardDetailVOS=new ArrayList<>();
|
|
|
53
|
+ for (int i=0;i<costStandardDetails.size();i++){
|
|
|
54
|
+ CostStandardDetail costStandardDetail = costStandardDetails.get(i);
|
|
|
55
|
+ CostStandardDetailVO vo=new CostStandardDetailVO();
|
|
|
56
|
+ BeanUtils.copyProperties(costStandardDetail,vo);
|
|
|
57
|
+ costStandardDetailVOS.add(vo);
|
|
|
58
|
+ }
|
|
|
59
|
+ }
|
|
|
60
|
+ List<BomTreeInfoVO> bomTreeInfoVOS = BomTreeBuilder.buildBomTree(costStandardDetailVOS, parentDataMap);
|
|
42
|
61
|
return bomTreeInfoVOS;
|
|
43
|
62
|
}
|
|
44
|
63
|
}
|