|
@@ -684,7 +684,8 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
**/
|
|
|
public Map<String,Object> getWpMap(Long wbsNodeId,Long wtpPkeyId){
|
|
|
Map<String,Object> result = new HashMap<>(100);
|
|
|
- List<WbsParam> total = new ArrayList<>();
|
|
|
+ List<WbsParam> total=this.getNodeWps(wbsNodeId,wtpPkeyId);
|
|
|
+ /* List<WbsParam> total = new ArrayList<>();
|
|
|
List<WbsParam> wpsPublic = this.wpService.list(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId,wbsNodeId).eq(WbsParam::getType,1));
|
|
|
if(Func.isNotEmpty(wpsPublic)){
|
|
|
total.addAll(wpsPublic);
|
|
@@ -692,7 +693,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
List<WbsParam> wpsPrivate = this.wpService.list(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId,wtpPkeyId).eq(WbsParam::getType,1));
|
|
|
if(Func.isNotEmpty(wpsPrivate)){
|
|
|
total.addAll(wpsPrivate);
|
|
|
- }
|
|
|
+ }*/
|
|
|
Map<String,String> logMap =new HashMap<>();
|
|
|
if(CollectionUtil.isNotEmpty(total)){
|
|
|
/*同名参数私有覆盖公用*/
|
|
@@ -704,11 +705,28 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
this.tec.getLog().put(FormulaLog.PARAM,result.entrySet().stream().map(p->logMap.get(p.getKey())+":"+p.getValue()).collect(Collectors.joining(";")));
|
|
|
/*元素动态绑定*/
|
|
|
/*绑定节点参数公式*/
|
|
|
- total= new ArrayList<>(total.stream().collect(Collectors.toMap(WbsParam::getK, w -> w, (v1, v2) -> v2)).values());
|
|
|
+ /* total= new ArrayList<>(total.stream().collect(Collectors.toMap(WbsParam::getK, w -> w, (v1, v2) -> v2)).values());*/
|
|
|
this.bindParamFormula(total);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<WbsParam> getNodeWps(Long wbsNodeId, Long wtpPkeyId) {
|
|
|
+ List<WbsParam> total = new ArrayList<>();
|
|
|
+ List<WbsParam> wpsPublic = this.wpService.list(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId,wbsNodeId).eq(WbsParam::getType,1));
|
|
|
+ if(Func.isNotEmpty(wpsPublic)){
|
|
|
+ total.addAll(wpsPublic);
|
|
|
+ }
|
|
|
+ List<WbsParam> wpsPrivate = this.wpService.list(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId,wtpPkeyId).eq(WbsParam::getType,1));
|
|
|
+ if(Func.isNotEmpty(wpsPrivate)){
|
|
|
+ total.addAll(wpsPrivate);
|
|
|
+ }
|
|
|
+ if(total.size()>0) {
|
|
|
+ total = new ArrayList<>(total.stream().collect(Collectors.toMap(WbsParam::getK, w -> w, (v1, v2) -> v2)).values());
|
|
|
+ }
|
|
|
+ return total;
|
|
|
+ }
|
|
|
+
|
|
|
public void bindParamFormula(List<WbsParam> total){
|
|
|
Map<String,Formula> formulaIdMap = this.wpService.formulaKeyMap(total.stream().map(WbsParam::getK).collect(Collectors.toList()));
|
|
|
/*查找无绑定公式且单元格只有一个的当前表单元素*/
|
|
@@ -1168,9 +1186,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
JSONArray dataArray = new JSONArray();
|
|
|
for (NodeTable data : subTabList) {
|
|
|
/*自动挂载附表情况下,装配TableInfo数据*/
|
|
|
- R bussDataInfo = this.excelTabService.getBussDataInfo(data.getPKeyId(), 1);
|
|
|
- @SuppressWarnings("unchecked")
|
|
|
- Map<String, Object> data1 = (Map<String, Object>) bussDataInfo.getData();
|
|
|
+ Map<String, Object> data1 = this.excelTabService.getBussDataInfo(data.getPKeyId(), 1);
|
|
|
data1.put("pkeyId",data.getPKeyId());
|
|
|
dataArray.add(data1);
|
|
|
}
|
|
@@ -2331,24 +2347,23 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
WbsTreePrivate publicWtp = this.getOriginWtp(privatePkeyId);
|
|
|
|
|
|
Map<String,Object> result = new HashMap<>(100);
|
|
|
- List<WbsParam> total = new ArrayList<>();
|
|
|
- List<WbsParam> wpsPublic = this.wpService.list(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId,publicWtp.getId()).eq(WbsParam::getType,1));
|
|
|
+ List<WbsParam> total = this.getNodeWps(publicWtp.getId(),privatePkeyId);
|
|
|
+/* List<WbsParam> wpsPublic = this.wpService.list(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId,publicWtp.getId()).eq(WbsParam::getType,1));
|
|
|
if(Func.isNotEmpty(wpsPublic)){
|
|
|
total.addAll(wpsPublic);
|
|
|
}
|
|
|
List<WbsParam> wpsPrivate = this.wpService.list(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId,privatePkeyId).eq(WbsParam::getType,1));
|
|
|
if(Func.isNotEmpty(wpsPrivate)){
|
|
|
total.addAll(wpsPrivate);
|
|
|
- }
|
|
|
+ }*/
|
|
|
if(CollectionUtil.isNotEmpty(total)){
|
|
|
- /*同名参数私有覆盖公用*/
|
|
|
for(WbsParam p:total){
|
|
|
result.put(p.getK(),p.getV());
|
|
|
}
|
|
|
}else{
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+ /* total= new ArrayList<>(total.stream().collect(Collectors.toMap(WbsParam::getK, w -> w, (v1, v2) -> v2)).values());*/
|
|
|
Map<String,Formula> formulaIdMap = this.wpService.formulaKeyMap(total.stream().map(WbsParam::getK).collect(Collectors.toList()));
|
|
|
//元素动态绑定 获取已配置节点公式 未查明的bug暂时关闭
|
|
|
Map<Long,String> paramIdKeyMap= total.stream().collect(Collectors.toMap(WbsParam::getId,WbsParam::getK));
|
|
@@ -2369,9 +2384,10 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
// 检查是否可以自动绑定参数公式
|
|
|
List<FormData> notFormulaFds=fds.stream().filter(f->f.getFormulaId()==null).collect(Collectors.toList());
|
|
|
if(notFormulaFds.size()>0){
|
|
|
+ List<WbsParam> finalTotal = total;
|
|
|
notFormulaFds.forEach(e->{
|
|
|
//暂时用参数名称是否包含元素名称作为匹配规则
|
|
|
- total.stream().filter(p->e.getEName().contains(p.getName().replaceAll("【[\\u4E00-\\u9FFF]+】|\\s+",""))).findAny().ifPresent(d->{
|
|
|
+ finalTotal.stream().filter(p->e.getEName().contains(p.getName().replaceAll("【[\\u4E00-\\u9FFF]+】|\\s+",""))).findAny().ifPresent(d->{
|
|
|
Formula tf= formulaIdMap.get(d.getK());
|
|
|
if(tf!=null&&e.getId()!=null) {
|
|
|
e.setFormula(tf);
|