Browse Source

关联表单---数据范围条件效果实现---组织机构条件

lwx_v1
liwenxuan 1 year ago
parent
commit
17927228e4
  1. 401
      src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java

401
src/main/java/com/hxgk/lowcode/service/impl/CustomerFormServiceImpl.java

@ -635,6 +635,10 @@ public class CustomerFormServiceImpl implements CustomerFormService {
}
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);
if(operator.equals("包含")){
if(right.equals("数据拥有者")){
//此时条件为数据拥有者owner需判断关联表单是否含有owner字段,若不存在,则不过滤
boolean owner = fieldRecordMapper.checkFieldExists(asfFormName, "owner");
try {
// 可能抛出异常的代码
String[] leftArr = left.split(":");
@ -689,11 +695,11 @@ public class CustomerFormServiceImpl implements CustomerFormService {
List<TreeMap<String, Object>> filteredDataTitleMapList = new ArrayList<>();
//此时条件为数据拥有者owner需判断关联表单是否含有owner字段,若不存在,则不过滤
boolean owner = fieldRecordMapper.checkFieldExists(asfFormName, "owner");
if(owner){//有owner字段 也就是数据拥有者
//增加owner条件
toSelectDataTitles.add("owner");
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);
for(TreeMap<String, Object> map :dataTitleMapList){
if(StringUtils.isBlank(map.get("owner").toString())){//本条数据owner为空
@ -703,11 +709,11 @@ public class CustomerFormServiceImpl implements CustomerFormService {
String ownerValue = map.get("owner").toString();
ownerValue = "owner:"+ownerValue;
/*要判断本条数据的ownerValue是否在targetOrgOrPerson之内
* 1.获取ownerValue的maindeparment(主部门),
* 2.从1获取到的主部门id向上查询到所有祖先部门数组,
* 3.查看targetOrgOrPerson是否在2查询到的数组中
* 故此处应该调用 queryIfOrgOrPersonContainsCurrentUser方法
* */
* 1.获取ownerValue的maindeparment(主部门),
* 2.从1获取到的主部门id向上查询到所有祖先部门数组,
* 3.查看targetOrgOrPerson是否在2查询到的数组中
* 故此处应该调用 queryIfOrgOrPersonContainsCurrentUser方法
* */
Boolean ownerInOrg = queryIfOrgOrPersonContainsCurrentUser( key, token, targetOrgOrPerson, operator, ownerValue);//有效参数: targetOrgOrPerson
if(ownerInOrg){
filteredDataTitleMapList.add(map);
@ -715,20 +721,30 @@ public class CustomerFormServiceImpl implements CustomerFormService {
}
}
dataTitleMapList = filteredDataTitleMapList;
}else{//返回所有数据标题
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
}
for(TreeMap<String, Object> item : dataTitleMapList){
/*for(TreeMap<String, Object> item : dataTitleMapList){
System.out.println(item);
}
}*/
}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")){
System.out.println(right+"----"+operator+"----"+left+"----"+toSelectDataTitles);//高管包含数据拥有者
String roleId = leftArr[2];
/*
* */
//查出
}else if(leftArr[0].equals("formField")){
}else{//不应该存在的东西
logger.error("数据范围条件查询出现异常直接返回全部数据标题--不应该存在的东西" + leftOperatorsAndRight);
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
logger.error("数据范围条件查询出现不应该存在的条件---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
@ -736,18 +752,76 @@ public class CustomerFormServiceImpl implements CustomerFormService {
} catch (Exception e) {
e.printStackTrace();
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight);
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else if(right.equals("数据所属部门")){
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) {
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight);
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题d
e.printStackTrace();
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else{//无法处理的情况,直接返回全部数据标题
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);
logger.error("数据范围条件查询出现无法处理的情况---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else if(operator.equals("不包含")){
if(right.equals("数据拥有者")){
@ -789,16 +863,16 @@ public class CustomerFormServiceImpl implements CustomerFormService {
}else{//返回所有数据标题
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
}
for(TreeMap<String, Object> item : dataTitleMapList){
/*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 = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
logger.error("数据范围条件查询出现不应该存在的条件---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
@ -806,18 +880,76 @@ public class CustomerFormServiceImpl implements CustomerFormService {
} catch (Exception e) {
e.printStackTrace();
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight);
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else if(right.equals("数据所属部门")){
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) {
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight);
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
e.printStackTrace();
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else{//无法处理的情况,直接返回全部数据标题
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);
logger.error("数据范围条件查询出现无法处理的情况---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else{// == != > < 等符号的情况
if(right.equals("数据拥有者")){
@ -860,16 +992,16 @@ public class CustomerFormServiceImpl implements CustomerFormService {
}else{//返回所有数据标题
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
}
for(TreeMap<String, Object> item : dataTitleMapList){
/*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 = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
logger.error("数据范围条件查询出现不应该存在的条件---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
@ -877,8 +1009,8 @@ public class CustomerFormServiceImpl implements CustomerFormService {
} catch (Exception e) {
e.printStackTrace();
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight);
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else if(operator.equals("!=")){
try {
@ -919,16 +1051,16 @@ public class CustomerFormServiceImpl implements CustomerFormService {
}else{//返回所有数据标题
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//全部数据标题
}
for(TreeMap<String, Object> item : dataTitleMapList){
/*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 = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
logger.error("数据范围条件查询出现不应该存在的条件---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else if(leftArr.length==4){// formField:44:table1722576832462:input1722576838785 子表字段条件
@ -936,38 +1068,157 @@ public class CustomerFormServiceImpl implements CustomerFormService {
} catch (Exception e) {
e.printStackTrace();
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight);
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else{//无法处理的情况,直接返回全部数据标题
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);
logger.error("数据范围条件查询出现无法处理的情况---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else if(right.equals("数据所属部门")){
if(operator.equals("==")){
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) {
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight);
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
e.printStackTrace();
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else if(operator.equals("!=")){
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) {
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight);
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
e.printStackTrace();
logger.error("数据范围条件查询出现异常---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else{//无法处理的情况,直接返回全部数据标题
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight);
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);
logger.error("数据范围条件查询出现无法处理的情况---返回空数据标题列表---" + leftOperatorsAndRight+"---"+dataTitleMapList);
dataTitleMapList = new ArrayList<>();
}
}else{//这边对于数字的情况>,>=,<,<=是生效的,文字的情况则不生效,==和!=条件必定生效
try {
// 可能抛出异常的代码
int a = 1/0;
System.out.println(right+"----"+operator+"----"+left);
} catch (Exception e) {
logger.error("数据范围条件查询出现异常直接返回全部数据标题" + leftOperatorsAndRight);
dataTitleMapList = getDataTitles(asfFormName,toSelectDataTitles);//数据范围条件查询出现异常直接返回全部数据标题
e.printStackTrace();
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>> dataTitles = fieldRecordMapper.getDataTitles(asfFormName, toSelectDataTitles);
//没有owner的,creater的key改为owner,有owner但owner为空的,creater的value给owner
//没有org的
processDataTitles(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) {
if (!map.containsKey("owner")) {
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())){
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分支");
return false;
}

Loading…
Cancel
Save