|
|
@ -320,7 +320,7 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
System.out.println("token:"+token);*/ |
|
|
System.out.println("token:"+token);*/ |
|
|
try { |
|
|
try { |
|
|
post = HttpUtils.send(url, param, HTTP.UTF_8, userKey, token); |
|
|
post = HttpUtils.send(url, param, HTTP.UTF_8, userKey, token); |
|
|
//System.out.println("post:"+post.toString());
|
|
|
System.out.println("post:"+post.toString()); |
|
|
} catch (IOException e) { |
|
|
} catch (IOException e) { |
|
|
e.printStackTrace(); |
|
|
e.printStackTrace(); |
|
|
} |
|
|
} |
|
|
@ -2077,7 +2077,7 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public ArrayList<AsfTableFillResult> getAsfTableFill(String key, String token, String asfFormName, String glbbddbd, String currentVal,JSONArray fillFieldsChild) { |
|
|
public ArrayList<AsfTableFillResult> getAsfTableFill(String key, String token, String asfFormId, String glbbddbd, String currentVal,JSONArray fillFieldsChild) { |
|
|
//获取当前用户信息 从redis中根据userkey和usertoken拿到userdetail
|
|
|
//获取当前用户信息 从redis中根据userkey和usertoken拿到userdetail
|
|
|
Map<String,String> keytokenmap = new HashMap<>(); |
|
|
Map<String,String> keytokenmap = new HashMap<>(); |
|
|
keytokenmap.put("userkey",key); |
|
|
keytokenmap.put("userkey",key); |
|
|
@ -2087,11 +2087,76 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
return null; |
|
|
return null; |
|
|
}else{ |
|
|
}else{ |
|
|
|
|
|
|
|
|
//System.out.println(fillFieldsChild);
|
|
|
System.out.println(fillFieldsChild); |
|
|
|
|
|
|
|
|
if(fillFieldsChild.size()>0){ |
|
|
if(fillFieldsChild.size()>0){ |
|
|
|
|
|
ArrayList<AsfTableFillResult> resultList = new ArrayList<>(); |
|
|
|
|
|
//根据formId(cfid)查询关联表单表名
|
|
|
|
|
|
String asfFormName = customerFormViewMapper.getTableNameByCfid(asfFormId).getTablekey(); |
|
|
|
|
|
HashSet<String> laterIgnoreRightTableNames = new HashSet<>(); |
|
|
for(int i = 0; i<fillFieldsChild.size();i++){ |
|
|
for(int i = 0; i<fillFieldsChild.size();i++){ |
|
|
com.alibaba.fastjson2.JSONObject singleAsfChildTableFillRoleObject = (com.alibaba.fastjson2.JSONObject)fillFieldsChild.get(i); |
|
|
com.alibaba.fastjson2.JSONObject singleAsfChildTableFillRoleObject = (com.alibaba.fastjson2.JSONObject)fillFieldsChild.get(i); |
|
|
|
|
|
//System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
|
|
|
|
|
|
com.alibaba.fastjson2.JSONObject item = (com.alibaba.fastjson2.JSONObject)fillFieldsChild.get(i); |
|
|
|
|
|
String asfFormIdAndTableName = item.get("asfChildTableKey").toString(); |
|
|
|
|
|
String tableName = asfFormIdAndTableName.split(":")[2]; |
|
|
|
|
|
System.out.println("item===>"+item); |
|
|
|
|
|
System.out.println("被关联的关联表单的子表---->"+tableName); |
|
|
|
|
|
System.out.println("被关联的关联表单---->"+asfFormName); |
|
|
|
|
|
System.out.println("关联关联表单的表单---->"+glbbddbd); |
|
|
|
|
|
System.out.println("当前被关联的关联表单当前选中的值---->"+currentVal); |
|
|
|
|
|
|
|
|
|
|
|
JSONArray childRoles = item.getJSONArray("childRoles"); |
|
|
|
|
|
ArrayList<HashMap<String,String>> singleAsfChildTableFillRoleMapList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(int j = 0; j<childRoles.size();j++){ |
|
|
|
|
|
HashMap<String,String> map = new HashMap<String,String>(); |
|
|
|
|
|
com.alibaba.fastjson2.JSONObject element = (com.alibaba.fastjson2.JSONObject)childRoles.get(j); |
|
|
|
|
|
String left = element.get("leftValue").toString(); |
|
|
|
|
|
String leftTableName = left.split(":")[2]; |
|
|
|
|
|
String leftTableField = left.split(":")[3]; |
|
|
|
|
|
String right = element.get("rightValue").toString(); |
|
|
|
|
|
String rightTableName = right.split(":")[2]; |
|
|
|
|
|
String rightTableField = right.split(":")[3]; |
|
|
|
|
|
|
|
|
|
|
|
map.put("leftTableName",leftTableName); |
|
|
|
|
|
map.put("leftTableField",leftTableField); |
|
|
|
|
|
map.put("rightTableName",rightTableName); |
|
|
|
|
|
map.put("rightTableField",rightTableField); |
|
|
|
|
|
int equalCount = 0; |
|
|
|
|
|
for (String item1 : laterIgnoreRightTableNames) { |
|
|
|
|
|
if(item1.equals(rightTableName)){ |
|
|
|
|
|
equalCount++; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if(equalCount==0){ |
|
|
|
|
|
singleAsfChildTableFillRoleMapList.add(map); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
//在此循环中添加本轮新出现的要在之后忽略的rightTableName
|
|
|
|
|
|
for(int j = 0; j<childRoles.size();j++){ |
|
|
|
|
|
com.alibaba.fastjson2.JSONObject element = (com.alibaba.fastjson2.JSONObject)childRoles.get(j); |
|
|
|
|
|
String right = element.get("rightValue").toString(); |
|
|
|
|
|
String rightTableName = right.split(":")[2]; |
|
|
|
|
|
laterIgnoreRightTableNames.add(rightTableName); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//当前asf子表的条件按照www各子表名分类的list
|
|
|
|
|
|
List<List<Map<String, String>>> singleAsfChildTableFillRoleMapListsGroupedByRightTableName = splitListByRightTableName(singleAsfChildTableFillRoleMapList); |
|
|
|
|
|
//当前asf子表的条件按照www各子表名分类的查询结果list
|
|
|
|
|
|
HashMap<String,ArrayList<HashMap<String,Object>>> leftTableDetailMap = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"); |
|
|
com.alibaba.fastjson2.JSONObject filterCondition = (com.alibaba.fastjson2.JSONObject)singleAsfChildTableFillRoleObject.get("filterCondition"); |
|
|
com.alibaba.fastjson2.JSONObject filterCondition = (com.alibaba.fastjson2.JSONObject)singleAsfChildTableFillRoleObject.get("filterCondition"); |
|
|
String singleAsfChildTableConditionHtml = filterCondition.get("conditionHtml").toString(); |
|
|
String singleAsfChildTableConditionHtml = filterCondition.get("conditionHtml").toString(); |
|
|
if(!StringUtils.isBlank(singleAsfChildTableConditionHtml)){//设置了筛选条件
|
|
|
if(!StringUtils.isBlank(singleAsfChildTableConditionHtml)){//设置了筛选条件
|
|
|
@ -2099,17 +2164,80 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
String singleAsfChildTableMathsFormula = ((com.alibaba.fastjson2.JSONObject) filterCondition.get("gongShi")).get("mathsFormula").toString(); |
|
|
String singleAsfChildTableMathsFormula = ((com.alibaba.fastjson2.JSONObject) filterCondition.get("gongShi")).get("mathsFormula").toString(); |
|
|
String singleAsfChildTableMathsString = ((com.alibaba.fastjson2.JSONObject) filterCondition.get("gongShi")).get("mathsString").toString(); |
|
|
String singleAsfChildTableMathsString = ((com.alibaba.fastjson2.JSONObject) filterCondition.get("gongShi")).get("mathsString").toString(); |
|
|
}else{//没有设置筛选条件
|
|
|
}else{//没有设置筛选条件
|
|
|
//fieldRecordMapper.getDataTitlesByIds(asfFormName,currentVal,);
|
|
|
|
|
|
System.out.println(fillFieldsChild.get(i)); |
|
|
|
|
|
System.out.println(asfFormName); |
|
|
for(List<Map<String, String>> list :singleAsfChildTableFillRoleMapListsGroupedByRightTableName){ |
|
|
|
|
|
ArrayList<String> toSelectTableFeilds = new ArrayList<>(); |
|
|
|
|
|
HashMap<String,String> toSelectTableFeildsMap = new HashMap<>(); |
|
|
|
|
|
for(Map<String,String> map :list){ |
|
|
|
|
|
System.out.println("map===>"+map); |
|
|
|
|
|
toSelectTableFeilds.add("`"+map.get("leftTableField")+"`"); |
|
|
|
|
|
toSelectTableFeildsMap.put(map.get("leftTableField"),map.get("rightTableField")); |
|
|
|
|
|
} |
|
|
|
|
|
if(list.size()>0){ |
|
|
|
|
|
String leftTableName = "`"+list.get(0).get("leftTableName")+"`"; |
|
|
|
|
|
String rightTableName = list.get(0).get("rightTableName"); |
|
|
|
|
|
//根据currentVal获取currentMastersKey
|
|
|
|
|
|
String currentMastersKey = fieldRecordMapper.queryCurrentMastersKey(currentVal,asfFormName); |
|
|
|
|
|
System.out.println(list.get(0).get("leftTableName")); |
|
|
|
|
|
System.out.println(toSelectTableFeilds); |
|
|
|
|
|
ArrayList<HashMap<String,Object>> leftTableDetail = fieldRecordMapper.queryAsfLeftMapList(leftTableName,toSelectTableFeilds,currentMastersKey); |
|
|
|
|
|
replaceKeys(leftTableDetail,toSelectTableFeildsMap); |
|
|
|
|
|
leftTableDetailMap.put(rightTableName,leftTableDetail); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 遍历
|
|
|
|
|
|
for (Map.Entry<String, ArrayList<HashMap<String, Object>>> entry : leftTableDetailMap.entrySet()) { |
|
|
|
|
|
//当前子表拼装结果
|
|
|
|
|
|
AsfTableFillResult afr = new AsfTableFillResult(); |
|
|
|
|
|
|
|
|
|
|
|
String keyx = entry.getKey(); |
|
|
|
|
|
ArrayList<HashMap<String, Object>> valueList = entry.getValue(); |
|
|
|
|
|
System.out.println("Key: " + keyx); |
|
|
|
|
|
afr.setTableName(keyx); |
|
|
|
|
|
afr.setTableDetail(valueList); |
|
|
|
|
|
resultList.add(afr); |
|
|
|
|
|
} |
|
|
|
|
|
System.out.println(1); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
if(resultList.size()>0){ |
|
|
|
|
|
return resultList; |
|
|
|
|
|
}else{ |
|
|
|
|
|
return null; |
|
|
|
|
|
} |
|
|
}else{ |
|
|
}else{ |
|
|
return null; |
|
|
return null; |
|
|
} |
|
|
} |
|
|
return null; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static List<List<Map<String, String>>> splitListByRightTableName(ArrayList<HashMap<String, String>> singleAsfChildTableFillRoleMapList) { |
|
|
|
|
|
Map<String, List<Map<String, String>>> groupedMaps = new HashMap<>(); |
|
|
|
|
|
for (HashMap<String, String> map : singleAsfChildTableFillRoleMapList) { |
|
|
|
|
|
String rightTableName = map.get("rightTableName"); |
|
|
|
|
|
if (rightTableName!= null) { |
|
|
|
|
|
groupedMaps.computeIfAbsent(rightTableName, k -> new ArrayList<>()).add(map); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return new ArrayList<>(groupedMaps.values()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static void replaceKeys(ArrayList<HashMap<String, Object>> list, HashMap<String, String> map) { |
|
|
|
|
|
for (HashMap<String, Object> item : list) { |
|
|
|
|
|
for (String key : item.keySet().toArray(new String[0])) { |
|
|
|
|
|
if (map.containsKey(key)) { |
|
|
|
|
|
Object value = item.remove(key); |
|
|
|
|
|
item.put(map.get(key), value); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|