|
@@ -1157,19 +1157,24 @@ public List<ElementData> setScale(Integer scale,List<ElementData> data){
|
|
private List<KeyMapper> listForContract(List<Long> ids,String projectId,String nodeId){
|
|
private List<KeyMapper> listForContract(List<Long> ids,String projectId,String nodeId){
|
|
String pkIds=ids.stream().map(String::valueOf).collect(Collectors.joining(","));
|
|
String pkIds=ids.stream().map(String::valueOf).collect(Collectors.joining(","));
|
|
List<Map<String,Object>> listMap = listMap(ids,ExecuteType.INSPECTION);
|
|
List<Map<String,Object>> listMap = listMap(ids,ExecuteType.INSPECTION);
|
|
- List<Long> nodeIds= this.jdbcTemplate.queryForList("select b.parent_id from m_wbs_tree_contract a join m_wbs_tree_private b on a.is_type_private_pid=b.p_key_id where a.p_key_id in("+pkIds+")",Long.class);
|
|
|
|
|
|
+ Map<String,Object> wtpMap= this.jdbcTemplate.queryForMap("select b.parent_id parentId,b.wbs_id wbsId from m_wbs_tree_contract a join m_wbs_tree_private b on a.is_type_private_pid=b.p_key_id where a.p_key_id ="+ids.get(0)+" limit 1");
|
|
if(Func.isNotEmpty(listMap)){
|
|
if(Func.isNotEmpty(listMap)){
|
|
/*当前节点的某个元素存在多种作用域的公式,作用域范围越小优先级越高*/
|
|
/*当前节点的某个元素存在多种作用域的公式,作用域范围越小优先级越高*/
|
|
List<KeyMapper> list= listMap.stream().map(m->BeanUtil.toBean(m,KeyMapper.class)).collect(Collectors.toList());
|
|
List<KeyMapper> list= listMap.stream().map(m->BeanUtil.toBean(m,KeyMapper.class)).collect(Collectors.toList());
|
|
- String nodeIdStr=nodeIds.stream().map(Object::toString).distinct().collect(Collectors.joining(StringPool.COMMA));
|
|
|
|
|
|
+ String nodeIdStr= StringUtils.handleNull(wtpMap.get("parentId"));
|
|
if(Func.isBlank(nodeIdStr)){
|
|
if(Func.isBlank(nodeIdStr)){
|
|
/*暂时这么处理,严格上说要查找到项目级对应的节点*/
|
|
/*暂时这么处理,严格上说要查找到项目级对应的节点*/
|
|
- nodeIdStr="1";
|
|
|
|
|
|
+ nodeIdStr="''";
|
|
|
|
+ }
|
|
|
|
+ String wbsId =StringUtils.handleNull(wtpMap.get("wbsId"));
|
|
|
|
+ if(Func.isBlank(wbsId)){
|
|
|
|
+ /*暂时这么处理,严格上说要查找到项目级对应的节点*/
|
|
|
|
+ wbsId="''";
|
|
}
|
|
}
|
|
List<Map<String,Object>> efMap= this.jdbcTemplate.queryForList("select element_id elementId,formula_id formulaId,scope " +
|
|
List<Map<String,Object>> efMap= this.jdbcTemplate.queryForList("select element_id elementId,formula_id formulaId,scope " +
|
|
"from m_element_formula_mapping " +
|
|
"from m_element_formula_mapping " +
|
|
"where element_id in(" + list.stream().map(KeyMapper::getFieldId).map(Func::toStr).collect(Collectors.joining(",")) + ") " +
|
|
"where element_id in(" + list.stream().map(KeyMapper::getFieldId).map(Func::toStr).collect(Collectors.joining(",")) + ") " +
|
|
- "and is_deleted=0 " + " and ( scope<2 or (scope=2 and node_id in(" + nodeIdStr + ")) or (scope =10 and project_id = " + projectId + ") or (scope=20 and project_id =" + projectId + " and node_id in (" + nodeIdStr + ")))");
|
|
|
|
|
|
+ "and is_deleted=0 " + " and (scope=0 or (scope=1 and wbs_id="+wbsId+") or(scope=2 and wbs_id="+wbsId+" and node_id="+nodeIdStr+")or (scope =10 and project_id = " + projectId + ") or (scope=20 and project_id =" + projectId + " and node_id=" +nodeIdStr +"))");
|
|
setFormula(list,efMap);
|
|
setFormula(list,efMap);
|
|
/*节点参数公式*/
|
|
/*节点参数公式*/
|
|
setParamsFormula( nodeId, list);
|
|
setParamsFormula( nodeId, list);
|