|
|
@ -635,6 +635,10 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
} |
|
|
} |
|
|
return str; |
|
|
return str; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/*private List<TreeMap<String, Object>> handleLeftArrLength3(String right,String operator,String left,ArrayList<String> toSelectDataTitles){ |
|
|
|
|
|
return null; |
|
|
|
|
|
}*/ |
|
|
/* |
|
|
/* |
|
|
关联表单组件下拉数据标题选项获取(所有) |
|
|
关联表单组件下拉数据标题选项获取(所有) |
|
|
*/ |
|
|
*/ |
|
|
@ -681,6 +685,8 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
//System.out.println(right);
|
|
|
//System.out.println(right);
|
|
|
if(operator.equals("包含")){ |
|
|
if(operator.equals("包含")){ |
|
|
if(right.equals("数据拥有者")){ |
|
|
if(right.equals("数据拥有者")){ |
|
|
|
|
|
//此时条件为数据拥有者owner需判断关联表单是否含有owner字段,若不存在,则不过滤
|
|
|
|
|
|
boolean owner = fieldRecordMapper.checkFieldExists(asfFormName, "owner"); |
|
|
try { |
|
|
try { |
|
|
// 可能抛出异常的代码
|
|
|
// 可能抛出异常的代码
|
|
|
String[] leftArr = left.split(":"); |
|
|
String[] leftArr = left.split(":"); |
|
|
@ -689,11 +695,11 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<TreeMap<String, Object>> filteredDataTitleMapList = new ArrayList<>(); |
|
|
List<TreeMap<String, Object>> filteredDataTitleMapList = new ArrayList<>(); |
|
|
//此时条件为数据拥有者owner需判断关联表单是否含有owner字段,若不存在,则不过滤
|
|
|
|
|
|
boolean owner = fieldRecordMapper.checkFieldExists(asfFormName, "owner"); |
|
|
|
|
|
if(owner){//有owner字段 也就是数据拥有者
|
|
|
if(owner){//有owner字段 也就是数据拥有者
|
|
|
//增加owner条件
|
|
|
//增加owner条件
|
|
|
toSelectDataTitles.add("owner"); |
|
|
toSelectDataTitles.add("owner"); |
|
|
|
|
|
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles); |
|
|
for(TreeMap<String, Object> map :dataTitleMapList){ |
|
|
for(TreeMap<String, Object> map :dataTitleMapList){ |
|
|
if(StringUtils.isBlank(map.get("owner").toString())){//本条数据owner为空
|
|
|
if(StringUtils.isBlank(map.get("owner").toString())){//本条数据owner为空
|
|
|
@ -703,11 +709,11 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
String ownerValue = map.get("owner").toString(); |
|
|
String ownerValue = map.get("owner").toString(); |
|
|
ownerValue = "owner:"+ownerValue; |
|
|
ownerValue = "owner:"+ownerValue; |
|
|
/*要判断本条数据的ownerValue是否在targetOrgOrPerson之内 |
|
|
/*要判断本条数据的ownerValue是否在targetOrgOrPerson之内 |
|
|
* 1.获取ownerValue的maindeparment(主部门), |
|
|
* 1.获取ownerValue的maindeparment(主部门), |
|
|
* 2.从1获取到的主部门id向上查询到所有祖先部门数组, |
|
|
* 2.从1获取到的主部门id向上查询到所有祖先部门数组, |
|
|
* 3.查看targetOrgOrPerson是否在2查询到的数组中 |
|
|
* 3.查看targetOrgOrPerson是否在2查询到的数组中 |
|
|
* 故此处应该调用 queryIfOrgOrPersonContainsCurrentUser方法 |
|
|
* 故此处应该调用 queryIfOrgOrPersonContainsCurrentUser方法 |
|
|
* */ |
|
|
* */ |
|
|
Boolean ownerInOrg = queryIfOrgOrPersonContainsCurrentUser( key, token, targetOrgOrPerson, operator, ownerValue);//有效参数: targetOrgOrPerson
|
|
|
Boolean ownerInOrg = queryIfOrgOrPersonContainsCurrentUser( key, token, targetOrgOrPerson, operator, ownerValue);//有效参数: targetOrgOrPerson
|
|
|
if(ownerInOrg){ |
|
|
if(ownerInOrg){ |
|
|
filteredDataTitleMapList.add(map); |
|
|
filteredDataTitleMapList.add(map); |
|
|
@ -715,20 +721,30 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
dataTitleMapList = filteredDataTitleMapList; |
|
|
dataTitleMapList = filteredDataTitleMapList; |
|
|
|
|
|
|
|
|
}else{//返回所有数据标题
|
|
|
}else{//返回所有数据标题
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
|
|
|
} |
|
|
} |
|
|
for(TreeMap<String, Object> item : dataTitleMapList){ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*for(TreeMap<String, Object> item : dataTitleMapList){ |
|
|
System.out.println(item); |
|
|
System.out.println(item); |
|
|
} |
|
|
}*/ |
|
|
}else if(leftArr.length==3){// roleid:rootid:4 formField:15:id 1.主表字段条件 2.角色权限条件
|
|
|
}else if(leftArr.length==3){// roleid:rootid:4 formField:15:id 1.主表字段条件 2.角色权限条件
|
|
|
|
|
|
//System.out.println(right+"----"+operator+"----"+left+"----"+toSelectDataTitles);
|
|
|
|
|
|
//dataTitleMapList = handleLeftArrLength3(right, operator, left, toSelectDataTitles);
|
|
|
if(leftArr[0].equals("roleid")){ |
|
|
if(leftArr[0].equals("roleid")){ |
|
|
|
|
|
System.out.println(right+"----"+operator+"----"+left+"----"+toSelectDataTitles);//高管包含数据拥有者
|
|
|
|
|
|
String roleId = leftArr[2]; |
|
|
|
|
|
/* |
|
|
|
|
|
|
|
|
|
|
|
* */ |
|
|
|
|
|
//查出
|
|
|
}else if(leftArr[0].equals("formField")){ |
|
|
}else if(leftArr[0].equals("formField")){ |
|
|
|
|
|
|
|
|
}else{//不应该存在的东西
|
|
|
}else{//不应该存在的东西
|
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题--不应该存在的东西" + leftOperatorsAndRight); |
|
|
logger.error("数据范围条件查询出现不应该存在的条件---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
|
|
|
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
|
|
|
|
|
|
|
|
|
@ -736,18 +752,76 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
e.printStackTrace(); |
|
|
e.printStackTrace(); |
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight); |
|
|
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else if(right.equals("数据所属部门")){ |
|
|
}else if(right.equals("数据所属部门")){ |
|
|
try { |
|
|
try { |
|
|
// 可能抛出异常的代码
|
|
|
// 可能抛出异常的代码
|
|
|
|
|
|
String[] leftArr = left.split(":"); |
|
|
|
|
|
if(leftArr.length==2){//orgOrPerson:102 组织机构条件 例:企管部包含数据拥有者
|
|
|
|
|
|
String targetOrgOrPerson = leftArr[1]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<TreeMap<String, Object>> filteredDataTitleMapList = new ArrayList<>(); |
|
|
|
|
|
//此时条件为数据拥有者owner需判断关联表单是否含有owner字段,若不存在,则不过滤
|
|
|
|
|
|
boolean org = fieldRecordMapper.checkFieldExists(asfFormName, "org"); |
|
|
|
|
|
boolean owner = fieldRecordMapper.checkFieldExists(asfFormName, "owner"); |
|
|
|
|
|
if(owner){//有owner字段 也就是数据拥有者
|
|
|
|
|
|
//增加owner条件
|
|
|
|
|
|
toSelectDataTitles.add("owner"); |
|
|
|
|
|
} |
|
|
|
|
|
if(org){//有org字段 也就是数据所属部门
|
|
|
|
|
|
//增加org条件
|
|
|
|
|
|
toSelectDataTitles.add("org"); |
|
|
|
|
|
|
|
|
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles); |
|
|
|
|
|
for(TreeMap<String, Object> map :dataTitleMapList){ |
|
|
|
|
|
if(StringUtils.isBlank(map.get("org").toString())){//本条数据owner为空
|
|
|
|
|
|
//filteredDataTitleMapList.add(map);
|
|
|
|
|
|
}else{//org有值
|
|
|
|
|
|
//本条数据的org 值为hr系统orgcont表的id
|
|
|
|
|
|
String orgValue = map.get("org").toString(); |
|
|
|
|
|
orgValue = "org:"+orgValue; |
|
|
|
|
|
/*要判断本条数据的orgValue是否在targetOrgOrPerson之内 |
|
|
|
|
|
* |
|
|
|
|
|
* 1.orgValue向上查询到所有祖先部门数组,数组中也要加入orgValue |
|
|
|
|
|
* 2.查看targetOrgOrPerson是否在1查询到的数组中 |
|
|
|
|
|
* 故此处应该调用 queryIfOrgOrPersonContainsCurrentUser方法 |
|
|
|
|
|
* */ |
|
|
|
|
|
Boolean orgInOrg = queryIfOrgOrPersonContainsCurrentUser( key, token, targetOrgOrPerson, operator, orgValue);//有效参数: targetOrgOrPerson
|
|
|
|
|
|
if(orgInOrg){ |
|
|
|
|
|
filteredDataTitleMapList.add(map); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
dataTitleMapList = filteredDataTitleMapList; |
|
|
|
|
|
|
|
|
|
|
|
}else{//返回所有数据标题
|
|
|
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
|
|
|
|
|
|
} |
|
|
|
|
|
/*for(TreeMap<String, Object> item : dataTitleMapList){ |
|
|
|
|
|
System.out.println(item); |
|
|
|
|
|
}*/ |
|
|
|
|
|
}else if(leftArr.length==3){// roleid:rootid:4 formField:15:id 1.主表字段条件 2.角色权限条件
|
|
|
|
|
|
if(leftArr[0].equals("roleid")){ |
|
|
|
|
|
}else if(leftArr[0].equals("formField")){ |
|
|
|
|
|
|
|
|
|
|
|
}else{//不应该存在的东西
|
|
|
|
|
|
logger.error("数据范围条件查询出现不应该存在的条件---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
|
|
|
} |
|
|
|
|
|
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight); |
|
|
e.printStackTrace(); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题d
|
|
|
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else{//无法处理的情况,直接返回全部数据标题
|
|
|
}else{//无法处理的情况,直接返回全部数据标题
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles); |
|
|
logger.error("数据范围条件查询出现无法处理的情况---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else if(operator.equals("不包含")){ |
|
|
}else if(operator.equals("不包含")){ |
|
|
if(right.equals("数据拥有者")){ |
|
|
if(right.equals("数据拥有者")){ |
|
|
@ -789,16 +863,16 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
}else{//返回所有数据标题
|
|
|
}else{//返回所有数据标题
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
|
|
|
} |
|
|
} |
|
|
for(TreeMap<String, Object> item : dataTitleMapList){ |
|
|
/*for(TreeMap<String, Object> item : dataTitleMapList){ |
|
|
System.out.println(item); |
|
|
System.out.println(item); |
|
|
} |
|
|
}*/ |
|
|
}else if(leftArr.length==3){// roleid:rootid:4 formField:15:id 1.主表字段条件 2.角色权限条件
|
|
|
}else if(leftArr.length==3){// roleid:rootid:4 formField:15:id 1.主表字段条件 2.角色权限条件
|
|
|
if(leftArr[0].equals("roleid")){ |
|
|
if(leftArr[0].equals("roleid")){ |
|
|
}else if(leftArr[0].equals("formField")){ |
|
|
}else if(leftArr[0].equals("formField")){ |
|
|
|
|
|
|
|
|
}else{//不应该存在的东西
|
|
|
}else{//不应该存在的东西
|
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题--不应该存在的东西" + leftOperatorsAndRight); |
|
|
logger.error("数据范围条件查询出现不应该存在的条件---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
|
|
|
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
|
|
|
|
|
|
|
|
|
@ -806,18 +880,76 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
e.printStackTrace(); |
|
|
e.printStackTrace(); |
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight); |
|
|
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else if(right.equals("数据所属部门")){ |
|
|
}else if(right.equals("数据所属部门")){ |
|
|
try { |
|
|
try { |
|
|
// 可能抛出异常的代码
|
|
|
// 可能抛出异常的代码
|
|
|
|
|
|
String[] leftArr = left.split(":"); |
|
|
|
|
|
if(leftArr.length==2){//orgOrPerson:102 组织机构条件 例:企管部包含数据拥有者
|
|
|
|
|
|
String targetOrgOrPerson = leftArr[1]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<TreeMap<String, Object>> filteredDataTitleMapList = new ArrayList<>(); |
|
|
|
|
|
//此时条件为数据拥有者owner需判断关联表单是否含有owner字段,若不存在,则不过滤
|
|
|
|
|
|
boolean org = fieldRecordMapper.checkFieldExists(asfFormName, "org"); |
|
|
|
|
|
boolean owner = fieldRecordMapper.checkFieldExists(asfFormName, "owner"); |
|
|
|
|
|
if(owner){//有owner字段 也就是数据拥有者
|
|
|
|
|
|
//增加owner条件
|
|
|
|
|
|
toSelectDataTitles.add("owner"); |
|
|
|
|
|
} |
|
|
|
|
|
if(org){//有org字段 也就是数据所属部门
|
|
|
|
|
|
//增加org条件
|
|
|
|
|
|
toSelectDataTitles.add("org"); |
|
|
|
|
|
|
|
|
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles); |
|
|
|
|
|
for(TreeMap<String, Object> map :dataTitleMapList){ |
|
|
|
|
|
if(StringUtils.isBlank(map.get("org").toString())){//本条数据owner为空
|
|
|
|
|
|
filteredDataTitleMapList.add(map); |
|
|
|
|
|
}else{//org有值
|
|
|
|
|
|
//本条数据的org 值为hr系统orgcont表的id
|
|
|
|
|
|
String orgValue = map.get("org").toString(); |
|
|
|
|
|
orgValue = "org:"+orgValue; |
|
|
|
|
|
/*要判断本条数据的orgValue是否在targetOrgOrPerson之内 |
|
|
|
|
|
* |
|
|
|
|
|
* 1.orgValue向上查询到所有祖先部门数组,数组中也要加入orgValue |
|
|
|
|
|
* 2.查看targetOrgOrPerson是否在1查询到的数组中 |
|
|
|
|
|
* 故此处应该调用 queryIfOrgOrPersonContainsCurrentUser方法 |
|
|
|
|
|
* */ |
|
|
|
|
|
Boolean orgInOrg = queryIfOrgOrPersonContainsCurrentUser( key, token, targetOrgOrPerson, operator, orgValue);//有效参数: targetOrgOrPerson
|
|
|
|
|
|
if(!orgInOrg){ |
|
|
|
|
|
filteredDataTitleMapList.add(map); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
dataTitleMapList = filteredDataTitleMapList; |
|
|
|
|
|
|
|
|
|
|
|
}else{//返回所有数据标题
|
|
|
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
|
|
|
|
|
|
} |
|
|
|
|
|
/*for(TreeMap<String, Object> item : dataTitleMapList){ |
|
|
|
|
|
System.out.println(item); |
|
|
|
|
|
}*/ |
|
|
|
|
|
}else if(leftArr.length==3){// roleid:rootid:4 formField:15:id 1.主表字段条件 2.角色权限条件
|
|
|
|
|
|
if(leftArr[0].equals("roleid")){ |
|
|
|
|
|
}else if(leftArr[0].equals("formField")){ |
|
|
|
|
|
|
|
|
|
|
|
}else{//不应该存在的东西
|
|
|
|
|
|
logger.error("数据范围条件查询出现不应该存在的条件---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
|
|
|
} |
|
|
|
|
|
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight); |
|
|
e.printStackTrace(); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
|
|
|
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else{//无法处理的情况,直接返回全部数据标题
|
|
|
}else{//无法处理的情况,直接返回全部数据标题
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles); |
|
|
logger.error("数据范围条件查询出现无法处理的情况---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else{// == != > < 等符号的情况
|
|
|
}else{// == != > < 等符号的情况
|
|
|
if(right.equals("数据拥有者")){ |
|
|
if(right.equals("数据拥有者")){ |
|
|
@ -860,16 +992,16 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
}else{//返回所有数据标题
|
|
|
}else{//返回所有数据标题
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
|
|
|
} |
|
|
} |
|
|
for(TreeMap<String, Object> item : dataTitleMapList){ |
|
|
/*for(TreeMap<String, Object> item : dataTitleMapList){ |
|
|
System.out.println(item); |
|
|
System.out.println(item); |
|
|
} |
|
|
}*/ |
|
|
}else if(leftArr.length==3){// roleid:rootid:4 formField:15:id 1.主表字段条件 2.角色权限条件
|
|
|
}else if(leftArr.length==3){// roleid:rootid:4 formField:15:id 1.主表字段条件 2.角色权限条件
|
|
|
if(leftArr[0].equals("roleid")){ |
|
|
if(leftArr[0].equals("roleid")){ |
|
|
}else if(leftArr[0].equals("formField")){ |
|
|
}else if(leftArr[0].equals("formField")){ |
|
|
|
|
|
|
|
|
}else{//不应该存在的东西
|
|
|
}else{//不应该存在的东西
|
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题--不应该存在的东西" + leftOperatorsAndRight); |
|
|
logger.error("数据范围条件查询出现不应该存在的条件---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
|
|
|
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
|
|
|
|
|
|
|
|
|
@ -877,8 +1009,8 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
e.printStackTrace(); |
|
|
e.printStackTrace(); |
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight); |
|
|
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else if(operator.equals("!=")){ |
|
|
}else if(operator.equals("!=")){ |
|
|
try { |
|
|
try { |
|
|
@ -919,16 +1051,16 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
}else{//返回所有数据标题
|
|
|
}else{//返回所有数据标题
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
|
|
|
} |
|
|
} |
|
|
for(TreeMap<String, Object> item : dataTitleMapList){ |
|
|
/*for(TreeMap<String, Object> item : dataTitleMapList){ |
|
|
System.out.println(item); |
|
|
System.out.println(item); |
|
|
} |
|
|
}*/ |
|
|
}else if(leftArr.length==3){// roleid:rootid:4 formField:15:id 1.主表字段条件 2.角色权限条件
|
|
|
}else if(leftArr.length==3){// roleid:rootid:4 formField:15:id 1.主表字段条件 2.角色权限条件
|
|
|
if(leftArr[0].equals("roleid")){ |
|
|
if(leftArr[0].equals("roleid")){ |
|
|
}else if(leftArr[0].equals("formField")){ |
|
|
}else if(leftArr[0].equals("formField")){ |
|
|
|
|
|
|
|
|
}else{//不应该存在的东西
|
|
|
}else{//不应该存在的东西
|
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题--不应该存在的东西" + leftOperatorsAndRight); |
|
|
logger.error("数据范围条件查询出现不应该存在的条件---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
|
|
|
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
|
|
|
|
|
|
|
|
|
@ -936,38 +1068,157 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
e.printStackTrace(); |
|
|
e.printStackTrace(); |
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight); |
|
|
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else{//无法处理的情况,直接返回全部数据标题
|
|
|
}else{//无法处理的情况,直接返回全部数据标题
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles); |
|
|
logger.error("数据范围条件查询出现无法处理的情况---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else if(right.equals("数据所属部门")){ |
|
|
}else if(right.equals("数据所属部门")){ |
|
|
if(operator.equals("==")){ |
|
|
if(operator.equals("==")){ |
|
|
try { |
|
|
try { |
|
|
// 可能抛出异常的代码
|
|
|
// 可能抛出异常的代码
|
|
|
|
|
|
String[] leftArr = left.split(":"); |
|
|
|
|
|
if(leftArr.length==2){//orgOrPerson:102 组织机构条件 例:企管部包含数据拥有者
|
|
|
|
|
|
String targetOrgOrPerson = leftArr[1]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<TreeMap<String, Object>> filteredDataTitleMapList = new ArrayList<>(); |
|
|
|
|
|
//此时条件为数据拥有者owner需判断关联表单是否含有owner字段,若不存在,则不过滤
|
|
|
|
|
|
boolean org = fieldRecordMapper.checkFieldExists(asfFormName, "org"); |
|
|
|
|
|
boolean owner = fieldRecordMapper.checkFieldExists(asfFormName, "owner"); |
|
|
|
|
|
if(owner){//有owner字段 也就是数据拥有者
|
|
|
|
|
|
//增加owner条件
|
|
|
|
|
|
toSelectDataTitles.add("owner"); |
|
|
|
|
|
} |
|
|
|
|
|
if(org){//有org字段 也就是数据所属部门
|
|
|
|
|
|
//增加org条件
|
|
|
|
|
|
toSelectDataTitles.add("org"); |
|
|
|
|
|
|
|
|
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles); |
|
|
|
|
|
for(TreeMap<String, Object> map :dataTitleMapList){ |
|
|
|
|
|
if(StringUtils.isBlank(map.get("org").toString())){//本条数据owner为空
|
|
|
|
|
|
//filteredDataTitleMapList.add(map);
|
|
|
|
|
|
}else{//org有值
|
|
|
|
|
|
//本条数据的org 值为hr系统orgcont表的id
|
|
|
|
|
|
String orgValue = map.get("org").toString(); |
|
|
|
|
|
orgValue = "org:"+orgValue; |
|
|
|
|
|
/*要判断本条数据的orgValue是否在targetOrgOrPerson之内 |
|
|
|
|
|
* |
|
|
|
|
|
* 1.orgValue向上查询到所有祖先部门数组,数组中也要加入orgValue |
|
|
|
|
|
* 2.查看targetOrgOrPerson是否在1查询到的数组中 |
|
|
|
|
|
* 故此处应该调用 queryIfOrgOrPersonContainsCurrentUser方法 |
|
|
|
|
|
* */ |
|
|
|
|
|
Boolean orgEqualsOrg = queryIfOrgOrPersonContainsCurrentUser( key, token, targetOrgOrPerson, operator, orgValue);//有效参数: targetOrgOrPerson
|
|
|
|
|
|
if(orgEqualsOrg){ |
|
|
|
|
|
filteredDataTitleMapList.add(map); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
dataTitleMapList = filteredDataTitleMapList; |
|
|
|
|
|
|
|
|
|
|
|
}else{//返回所有数据标题
|
|
|
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
|
|
|
|
|
|
} |
|
|
|
|
|
/*for(TreeMap<String, Object> item : dataTitleMapList){ |
|
|
|
|
|
System.out.println(item); |
|
|
|
|
|
}*/ |
|
|
|
|
|
}else if(leftArr.length==3){// roleid:rootid:4 formField:15:id 1.主表字段条件 2.角色权限条件
|
|
|
|
|
|
if(leftArr[0].equals("roleid")){ |
|
|
|
|
|
}else if(leftArr[0].equals("formField")){ |
|
|
|
|
|
|
|
|
|
|
|
}else{//不应该存在的东西
|
|
|
|
|
|
logger.error("数据范围条件查询出现不应该存在的条件---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
|
|
|
} |
|
|
|
|
|
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight); |
|
|
e.printStackTrace(); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
|
|
|
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else if(operator.equals("!=")){ |
|
|
}else if(operator.equals("!=")){ |
|
|
try { |
|
|
try { |
|
|
// 可能抛出异常的代码
|
|
|
// 可能抛出异常的代码
|
|
|
|
|
|
String[] leftArr = left.split(":"); |
|
|
|
|
|
if(leftArr.length==2){//orgOrPerson:102 组织机构条件 例:企管部包含数据拥有者
|
|
|
|
|
|
String targetOrgOrPerson = leftArr[1]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<TreeMap<String, Object>> filteredDataTitleMapList = new ArrayList<>(); |
|
|
|
|
|
//此时条件为数据拥有者owner需判断关联表单是否含有owner字段,若不存在,则不过滤
|
|
|
|
|
|
boolean org = fieldRecordMapper.checkFieldExists(asfFormName, "org"); |
|
|
|
|
|
boolean owner = fieldRecordMapper.checkFieldExists(asfFormName, "owner"); |
|
|
|
|
|
if(owner){//有owner字段 也就是数据拥有者
|
|
|
|
|
|
//增加owner条件
|
|
|
|
|
|
toSelectDataTitles.add("owner"); |
|
|
|
|
|
} |
|
|
|
|
|
if(org){//有org字段 也就是数据所属部门
|
|
|
|
|
|
//增加org条件
|
|
|
|
|
|
toSelectDataTitles.add("org"); |
|
|
|
|
|
|
|
|
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles); |
|
|
|
|
|
for(TreeMap<String, Object> map :dataTitleMapList){ |
|
|
|
|
|
if(StringUtils.isBlank(map.get("org").toString())){//本条数据owner为空
|
|
|
|
|
|
//filteredDataTitleMapList.add(map);
|
|
|
|
|
|
}else{//org有值
|
|
|
|
|
|
//本条数据的org 值为hr系统orgcont表的id
|
|
|
|
|
|
String orgValue = map.get("org").toString(); |
|
|
|
|
|
orgValue = "org:"+orgValue; |
|
|
|
|
|
/*要判断本条数据的orgValue是否在targetOrgOrPerson之内 |
|
|
|
|
|
* |
|
|
|
|
|
* 1.orgValue向上查询到所有祖先部门数组,数组中也要加入orgValue |
|
|
|
|
|
* 2.查看targetOrgOrPerson是否在1查询到的数组中 |
|
|
|
|
|
* 故此处应该调用 queryIfOrgOrPersonContainsCurrentUser方法 |
|
|
|
|
|
* */ |
|
|
|
|
|
Boolean orgEqualsOrg = queryIfOrgOrPersonContainsCurrentUser( key, token, targetOrgOrPerson, operator, orgValue);//有效参数: targetOrgOrPerson
|
|
|
|
|
|
if(!orgEqualsOrg){ |
|
|
|
|
|
filteredDataTitleMapList.add(map); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
dataTitleMapList = filteredDataTitleMapList; |
|
|
|
|
|
|
|
|
|
|
|
}else{//返回所有数据标题
|
|
|
|
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
|
|
|
|
|
|
} |
|
|
|
|
|
/*for(TreeMap<String, Object> item : dataTitleMapList){ |
|
|
|
|
|
System.out.println(item); |
|
|
|
|
|
}*/ |
|
|
|
|
|
}else if(leftArr.length==3){// roleid:rootid:4 formField:15:id 1.主表字段条件 2.角色权限条件
|
|
|
|
|
|
if(leftArr[0].equals("roleid")){ |
|
|
|
|
|
}else if(leftArr[0].equals("formField")){ |
|
|
|
|
|
|
|
|
|
|
|
}else{//不应该存在的东西
|
|
|
|
|
|
|
|
|
|
|
|
logger.error("数据范围条件查询出现不应该出现的条件---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
|
|
|
} |
|
|
|
|
|
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight); |
|
|
e.printStackTrace(); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
|
|
|
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else{//无法处理的情况,直接返回全部数据标题
|
|
|
}else{//无法处理的情况,直接返回全部数据标题
|
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight); |
|
|
logger.error("数据范围条件查询出现无法处理的情况---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles); |
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
} |
|
|
} |
|
|
}else{//这边对于数字的情况>,>=,<,<=是生效的,文字的情况则不生效,==和!=条件必定生效
|
|
|
}else{//这边对于数字的情况>,>=,<,<=是生效的,文字的情况则不生效,==和!=条件必定生效
|
|
|
try { |
|
|
try { |
|
|
// 可能抛出异常的代码
|
|
|
System.out.println(right+"----"+operator+"----"+left); |
|
|
int a = 1/0; |
|
|
|
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
} catch (Exception e) { |
|
|
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight); |
|
|
e.printStackTrace(); |
|
|
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
|
|
|
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList); |
|
|
|
|
|
dataTitleMapList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -1042,11 +1293,12 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
List<TreeMap<String, Object>> newDataTitles = new ArrayList<>(); |
|
|
List<TreeMap<String, Object>> newDataTitles = new ArrayList<>(); |
|
|
List<TreeMap<String, Object>> dataTitles = fieldRecordMapper.getDataTitles(asfFormName, toSelectDataTitles); |
|
|
List<TreeMap<String, Object>> dataTitles = fieldRecordMapper.getDataTitles(asfFormName, toSelectDataTitles); |
|
|
//没有owner的,creater的key改为owner,有owner但owner为空的,creater的value给owner
|
|
|
//没有owner的,creater的key改为owner,有owner但owner为空的,creater的value给owner
|
|
|
|
|
|
//没有org的
|
|
|
processDataTitles(dataTitles); |
|
|
processDataTitles(dataTitles); |
|
|
return dataTitles; |
|
|
return dataTitles; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public static void processDataTitles(List<TreeMap<String, Object>> dataTitles) { |
|
|
public void processDataTitles(List<TreeMap<String, Object>> dataTitles) { |
|
|
for (TreeMap<String, Object> map : dataTitles) { |
|
|
for (TreeMap<String, Object> map : dataTitles) { |
|
|
if (!map.containsKey("owner")) { |
|
|
if (!map.containsKey("owner")) { |
|
|
Object creatorValue = map.get("creater"); |
|
|
Object creatorValue = map.get("creater"); |
|
|
@ -1056,6 +1308,23 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
} else if(map.get("owner") != null&&StringUtils.isBlank(map.get("owner").toString())){ |
|
|
} else if(map.get("owner") != null&&StringUtils.isBlank(map.get("owner").toString())){ |
|
|
map.put("owner", map.get("creater")); |
|
|
map.put("owner", map.get("creater")); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!map.containsKey("org")) { |
|
|
|
|
|
Object creatorValue = map.get("creater"); |
|
|
|
|
|
String maindeparment = userService.getManContByKey(creatorValue.toString()).getMaindeparment().toString(); |
|
|
|
|
|
Object maindeparmentObj = maindeparment; |
|
|
|
|
|
map.put("org", maindeparment); |
|
|
|
|
|
} else if (map.get("org") == null) { |
|
|
|
|
|
Object creatorValue = map.get("creater"); |
|
|
|
|
|
String maindeparment = userService.getManContByKey(creatorValue.toString()).getMaindeparment().toString(); |
|
|
|
|
|
Object maindeparmentObj = maindeparment; |
|
|
|
|
|
map.put("org", maindeparmentObj); |
|
|
|
|
|
} else if(map.get("org") != null&&StringUtils.isBlank(map.get("org").toString())){ |
|
|
|
|
|
Object creatorValue = map.get("creater"); |
|
|
|
|
|
String maindeparment = userService.getManContByKey(creatorValue.toString()).getMaindeparment().toString(); |
|
|
|
|
|
Object maindeparmentObj = maindeparment; |
|
|
|
|
|
map.put("org", maindeparmentObj); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -1263,9 +1532,37 @@ public class CustomerFormServiceImpl implements CustomerFormService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}/*else if(){ |
|
|
}else if(rightArr[0].equals("org")){ |
|
|
|
|
|
//System.out.println(targetOrgOrPerson+"-----"+condition+"-----"+right);
|
|
|
|
|
|
if(condition.equals("==")||condition.equals("!=")){ |
|
|
|
|
|
System.out.println(targetOrgOrPerson+"-----"+condition+"-----"+right); |
|
|
|
|
|
if(rightArr[1].equals(targetOrgOrPerson)){ |
|
|
|
|
|
return true; |
|
|
|
|
|
}else{ |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
}else{ |
|
|
|
|
|
//System.out.println(targetOrgOrPerson+"-----"+condition+"-----"+right);
|
|
|
|
|
|
String orgId = rightArr[1]; |
|
|
|
|
|
Tree orgAndManTree = hrService.getOrgAndManTree(); |
|
|
|
|
|
//所有祖先部门
|
|
|
|
|
|
List<String> ancestorIds = orgAndManTree.getAncestorIds(orgId); |
|
|
|
|
|
ancestorIds.add(orgId); |
|
|
|
|
|
int count = 0; |
|
|
|
|
|
for(String str : ancestorIds){ |
|
|
|
|
|
if(str.equals(targetOrgOrPerson)){ |
|
|
|
|
|
count++; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
//count=0代表owner不在指定的部门内
|
|
|
|
|
|
if(count==0){ |
|
|
|
|
|
return false; |
|
|
|
|
|
}else{ |
|
|
|
|
|
return true; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
}*/else{ |
|
|
}else{ |
|
|
logger.error("queryIfOrgOrPersonContainsCurrentUser的参数right的值走到了else分支"); |
|
|
logger.error("queryIfOrgOrPersonContainsCurrentUser的参数right的值走到了else分支"); |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
|