|
|
|
@ -697,14 +697,6 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles); |
|
|
|
//System.out.println(dataTitleMapList);
|
|
|
|
}else{ |
|
|
|
/*数据填充start*/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*数据填充end*/ |
|
|
|
HashMap<String,String> leftOperatorsAndRight = splitString(rangeFormula); |
|
|
|
if(null!=leftOperatorsAndRight){ |
|
|
|
String left = leftOperatorsAndRight.get("left"); |
|
|
|
@ -1570,37 +1562,8 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
|
|
|
|
|
|
|
|
//数据填充规则数据字段准备 start
|
|
|
|
|
|
|
|
|
|
|
|
System.out.println(fillFieldsChild); |
|
|
|
|
|
|
|
if(fillFieldsChild.size()>0){ |
|
|
|
for(int i = 0; i<fillFieldsChild.size();i++){ |
|
|
|
System.out.println(fillFieldsChild.get(i)); |
|
|
|
|
|
|
|
com.alibaba.fastjson2.JSONObject singleAsfChildTableFillRoleObject = (com.alibaba.fastjson2.JSONObject)fillFieldsChild.get(i); |
|
|
|
com.alibaba.fastjson2.JSONObject filterCondition = (com.alibaba.fastjson2.JSONObject)singleAsfChildTableFillRoleObject.get("filterCondition"); |
|
|
|
System.out.println(1); |
|
|
|
String singleAsfChildTableConditionHtml = filterCondition.get("conditionHtml").toString(); |
|
|
|
if(!StringUtils.isBlank(singleAsfChildTableConditionHtml)){ |
|
|
|
if(containsDangerousWords(filterCondition.get("conditionHtml").toString())){//子表条件带有非法字符
|
|
|
|
logger.error("子表条件带有非法字符"); |
|
|
|
|
|
|
|
}else{ |
|
|
|
|
|
|
|
String singleAsfChildTableFormulaHtml = ((com.alibaba.fastjson2.JSONObject) filterCondition.get("gongShi")).get("formulaHtml").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(); |
|
|
|
|
|
|
|
System.out.println(1); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ArrayList<String> masterFillRoleFields = new ArrayList<>(); |
|
|
|
ArrayList<String> masterFillRoleFields1 = new ArrayList<>(); |
|
|
|
if(fillFieldsMaster.length()>0){ |
|
|
|
fillFieldsMaster = fillFieldsMaster.substring(0, fillFieldsMaster.length() - 1); |
|
|
|
String[] masterFillRoleFieldsArray = fillFieldsMaster.split(";"); |
|
|
|
@ -1623,7 +1586,10 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
//asfFormName 关联表单的表名
|
|
|
|
//关联表单子表名数组
|
|
|
|
if(masterIds.size()>0){ |
|
|
|
List<HashMap<String, Object>> asfDetailList = fieldRecordMapper.getAsfDetail(asfFormName, masterFillRoleFields, masterIds); |
|
|
|
for (int i = 0; i < masterFillRoleFields.size(); i++) { |
|
|
|
masterFillRoleFields1.add(i, "`" + masterFillRoleFields.get(i) + "`"); |
|
|
|
} |
|
|
|
List<HashMap<String, Object>> asfDetailList = fieldRecordMapper.getAsfDetail(asfFormName, masterFillRoleFields1, masterIds); |
|
|
|
System.out.println(asfDetailList); |
|
|
|
for(TreeMap<String,Object> toSortTreeMap : dataTitleMapList){ |
|
|
|
for(HashMap<String, Object> map :asfDetailList){ |
|
|
|
@ -1721,6 +1687,7 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static HashMap<String, String> splitString(String str) { |
|
|
|
List<String> operators = Arrays.asList("==", ">", ">=", "<", "<=", "!=", "不包含", "包含"); |
|
|
|
for (String operator : operators) { |
|
|
|
@ -1740,7 +1707,14 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
|
|
|
|
private List<TreeMap<String, Object>> getDataTitles(String asfFormName,ArrayList<String> toSelectDataTitles){ |
|
|
|
List<TreeMap<String, Object>> newDataTitles = new ArrayList<>(); |
|
|
|
List<TreeMap<String, Object>> dataTitles = fieldRecordMapper.getDataTitles(asfFormName, toSelectDataTitles); |
|
|
|
/*for(String item :toSelectDataTitles){ |
|
|
|
item = "`"+item+"`"; |
|
|
|
}*/ |
|
|
|
ArrayList<String> toSelectDataTitles1 = new ArrayList<>(); |
|
|
|
for (int i = 0; i < toSelectDataTitles.size(); i++) { |
|
|
|
toSelectDataTitles1.add(i, "`" + toSelectDataTitles.get(i) + "`"); |
|
|
|
} |
|
|
|
List<TreeMap<String, Object>> dataTitles = fieldRecordMapper.getDataTitles(asfFormName, toSelectDataTitles1); |
|
|
|
//没有owner的,creater的key改为owner,有owner但owner为空的,creater的value给owner
|
|
|
|
//没有org的
|
|
|
|
processDataTitles(dataTitles); |
|
|
|
@ -1748,7 +1722,17 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
} |
|
|
|
private List<TreeMap<String, Object>> getDataTitlesWithWhere_Asf_NotTable(String asfFormName,ArrayList<String> toSelectDataTitles,String operator,String whereCondition,String leftValue){ |
|
|
|
List<TreeMap<String, Object>> newDataTitles = new ArrayList<>(); |
|
|
|
List<TreeMap<String, Object>> dataTitles = fieldRecordMapper.getDataTitlesWithWhere_Asf_NotTable(asfFormName, toSelectDataTitles,operator,whereCondition,leftValue); |
|
|
|
/*for(String item :toSelectDataTitles){ |
|
|
|
item = "`"+item+"`"; |
|
|
|
}*/ |
|
|
|
ArrayList<String> toSelectDataTitles1 = new ArrayList<>(); |
|
|
|
for (int i = 0; i < toSelectDataTitles.size(); i++) { |
|
|
|
toSelectDataTitles1.add(i, "`" + toSelectDataTitles.get(i) + "`"); |
|
|
|
} |
|
|
|
if(!StringUtils.isBlank(leftValue)) { |
|
|
|
leftValue = "`" + leftValue + "`"; |
|
|
|
} |
|
|
|
List<TreeMap<String, Object>> dataTitles = fieldRecordMapper.getDataTitlesWithWhere_Asf_NotTable(asfFormName, toSelectDataTitles1,operator,whereCondition,leftValue); |
|
|
|
//没有owner的,creater的key改为owner,有owner但owner为空的,creater的value给owner
|
|
|
|
//没有org的
|
|
|
|
processDataTitles(dataTitles); |
|
|
|
@ -1757,10 +1741,14 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
private List<TreeMap<String, Object>> getDataTitlesWithWhere_Master_NotTable(String asfFormName,ArrayList<String> toSelectDataTitles, String masterFormName, String masterOnField, String whereConditionField, String operator, String whereConditionValue) { |
|
|
|
ArrayList<String> toSelectDataTitles1 = new ArrayList<>(); |
|
|
|
for(String item : toSelectDataTitles){ |
|
|
|
String a = "asf."+item; |
|
|
|
String a = "asf.`"+item+"`"; |
|
|
|
toSelectDataTitles1.add(a); |
|
|
|
} |
|
|
|
List<TreeMap<String, Object>> newDataTitles = new ArrayList<>(); |
|
|
|
if(!StringUtils.isBlank(whereConditionField)){ |
|
|
|
whereConditionField = "asf.`"+whereConditionField+"`"; |
|
|
|
} |
|
|
|
|
|
|
|
List<TreeMap<String, Object>> dataTitles = fieldRecordMapper.getDataTitlesWithWhere_Master_NotTable(asfFormName, toSelectDataTitles1,masterFormName,masterOnField,whereConditionField,operator,whereConditionValue); |
|
|
|
//没有owner的,creater的key改为owner,有owner但owner为空的,creater的value给owner
|
|
|
|
//没有org的
|
|
|
|
@ -1772,9 +1760,12 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
private List<TreeMap<String, Object>> getDataTitlesWithWhere_Master_IsTable(String parent,ArrayList<String> toSelectDataTitles, String child, String whereConditionField, String operator, String whereConditionValue) { |
|
|
|
ArrayList<String> toSelectDataTitles1 = new ArrayList<>(); |
|
|
|
for(String item : toSelectDataTitles){ |
|
|
|
String a = "parent."+item; |
|
|
|
String a = "parent.`"+item+"`"; |
|
|
|
toSelectDataTitles1.add(a); |
|
|
|
} |
|
|
|
if(!StringUtils.isBlank(whereConditionField)){ |
|
|
|
whereConditionField = "`"+whereConditionField+"`"; |
|
|
|
} |
|
|
|
List<TreeMap<String, Object>> newDataTitles = new ArrayList<>(); |
|
|
|
List<TreeMap<String, Object>> dataTitles = fieldRecordMapper.getDataTitlesWithWhere_Master_IsTable(parent, toSelectDataTitles1,child,whereConditionField,operator,whereConditionValue); |
|
|
|
//没有owner的,creater的key改为owner,有owner但owner为空的,creater的value给owner
|
|
|
|
@ -1840,6 +1831,7 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
|
|
|
|
//关联表单的数据标题list
|
|
|
|
ArrayList<String> toSelectDataTitles = new ArrayList<>(); |
|
|
|
ArrayList<String> toSelectDataTitles1 = new ArrayList<>(); |
|
|
|
for(String title : dataTitleArray){ |
|
|
|
String[] titleArr = title.split(":"); |
|
|
|
toSelectDataTitles.add(titleArr[2]); |
|
|
|
@ -1849,8 +1841,14 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
if(toSelectDataTitles.size()==0){ |
|
|
|
toSelectDataTitles.add("id"); |
|
|
|
} |
|
|
|
/*for(String item : toSelectDataTitles){ |
|
|
|
item = "`"+item+"`"; |
|
|
|
}*/ |
|
|
|
|
|
|
|
List<TreeMap<String, Object>> dataTitleMapList = fieldRecordMapper.getDataTitlesByIds(asfFormName,toSelectDataTitles,asfIds); |
|
|
|
for (int i = 0; i < toSelectDataTitles.size(); i++) { |
|
|
|
toSelectDataTitles1.add(i, "`" + toSelectDataTitles.get(i) + "`"); |
|
|
|
} |
|
|
|
List<TreeMap<String, Object>> dataTitleMapList = fieldRecordMapper.getDataTitlesByIds(asfFormName,toSelectDataTitles1,asfIds); |
|
|
|
|
|
|
|
// 自定义比较器用以排序dataTitleMapList
|
|
|
|
Comparator<String> customComparator = new Comparator<String>() { |
|
|
|
@ -2078,5 +2076,40 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public ArrayList<AsfTableFillResult> getAsfTableFill(String key, String token, String asfFormName, String glbbddbd, String currentVal,JSONArray fillFieldsChild) { |
|
|
|
//获取当前用户信息 从redis中根据userkey和usertoken拿到userdetail
|
|
|
|
Map<String,String> keytokenmap = new HashMap<>(); |
|
|
|
keytokenmap.put("userkey",key); |
|
|
|
keytokenmap.put("usertoken",token); |
|
|
|
UserDetail userDetail = userService.getUserDetailFromRedis(keytokenmap); |
|
|
|
if(userDetail==null){ |
|
|
|
return null; |
|
|
|
}else{ |
|
|
|
|
|
|
|
//System.out.println(fillFieldsChild);
|
|
|
|
|
|
|
|
if(fillFieldsChild.size()>0){ |
|
|
|
for(int i = 0; i<fillFieldsChild.size();i++){ |
|
|
|
com.alibaba.fastjson2.JSONObject singleAsfChildTableFillRoleObject = (com.alibaba.fastjson2.JSONObject)fillFieldsChild.get(i); |
|
|
|
com.alibaba.fastjson2.JSONObject filterCondition = (com.alibaba.fastjson2.JSONObject)singleAsfChildTableFillRoleObject.get("filterCondition"); |
|
|
|
String singleAsfChildTableConditionHtml = filterCondition.get("conditionHtml").toString(); |
|
|
|
if(!StringUtils.isBlank(singleAsfChildTableConditionHtml)){//设置了筛选条件
|
|
|
|
String singleAsfChildTableFormulaHtml = ((com.alibaba.fastjson2.JSONObject) filterCondition.get("gongShi")).get("formulaHtml").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(); |
|
|
|
}else{//没有设置筛选条件
|
|
|
|
//fieldRecordMapper.getDataTitlesByIds(asfFormName,currentVal,);
|
|
|
|
System.out.println(fillFieldsChild.get(i)); |
|
|
|
System.out.println(asfFormName); |
|
|
|
} |
|
|
|
} |
|
|
|
}else{ |
|
|
|
return null; |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|