|
|
|
@ -1316,14 +1316,14 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
|
query.put("searchassignee", user.getLoginname());
|
|
|
|
|
query.putAll(searchQuery);
|
|
|
|
|
|
|
|
|
|
if (!StringUtils.isBlank(userSearchId)) {
|
|
|
|
|
OcrUsersearch ocrUsersearch = ocrUsersearchService.selectByUserSearchId(userSearchId);
|
|
|
|
|
SearchQuery additionalQuery = new SearchQuery();
|
|
|
|
|
for (OcrUsersearchchild usersearchchild : ocrUsersearch.getOcrUsersearchchildList()) {
|
|
|
|
|
this.formattingSearchChild1(additionalQuery, usersearchchild);
|
|
|
|
|
}
|
|
|
|
|
query.putAll(additionalQuery.getQuery());
|
|
|
|
|
}
|
|
|
|
|
// if (!StringUtils.isBlank(userSearchId)) {
|
|
|
|
|
// OcrUsersearch ocrUsersearch = ocrUsersearchService.selectByUserSearchId(userSearchId);
|
|
|
|
|
// SearchQuery additionalQuery = new SearchQuery();
|
|
|
|
|
// for (OcrUsersearchchild usersearchchild : ocrUsersearch.getOcrUsersearchchildList()) {
|
|
|
|
|
// this.formattingSearchChild1(additionalQuery, usersearchchild);
|
|
|
|
|
// }
|
|
|
|
|
// query.putAll(additionalQuery.getQuery());
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
Long count = ocrTaskchildPictureService.listmytaskCount(query);
|
|
|
|
|
|
|
|
|
@ -1951,132 +1951,132 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
|
|
|
|
|
return queryWrapper;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private SearchQuery formattingSearchChild1(SearchQuery searchQuery, OcrUsersearchchild usersearchchild) {
|
|
|
|
|
switch (usersearchchild.getSearchRelationType()) {
|
|
|
|
|
case "where":
|
|
|
|
|
// 添加 "where" 查询条件
|
|
|
|
|
this.formattingSearchType1(searchQuery, usersearchchild);
|
|
|
|
|
break;
|
|
|
|
|
case "and":
|
|
|
|
|
// 添加 "and" 查询条件
|
|
|
|
|
searchQuery.addRulesOp(usersearchchild.getSearchfield(),"and");
|
|
|
|
|
SearchQuery andQuery = this.formattingSearchType1(searchQuery, usersearchchild);
|
|
|
|
|
searchQuery.setSearchQuery(andQuery);
|
|
|
|
|
break;
|
|
|
|
|
case "or":
|
|
|
|
|
// 添加 "or" 查询条件
|
|
|
|
|
searchQuery.addRulesOp(usersearchchild.getSearchfield(),"or");
|
|
|
|
|
SearchQuery orQuery = this.formattingSearchType1(searchQuery, usersearchchild);
|
|
|
|
|
searchQuery.setSearchQuery(orQuery);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return searchQuery;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private SearchQuery formattingSearchType1(SearchQuery searchQuery, OcrUsersearchchild usersearchchild) {
|
|
|
|
|
//查询类型 相等true 不相等fase
|
|
|
|
|
boolean queryType = "eq".equals(usersearchchild.getSearchtype());
|
|
|
|
|
|
|
|
|
|
// 1.获取检查数据,确定数据类型
|
|
|
|
|
String valueType = SearchParaFormatting.clickSearchValue(usersearchchild.getSearchvalue());
|
|
|
|
|
List<String> arrayData = null; //集合型数据
|
|
|
|
|
List<Integer> sectionInts = null; //纯数字区间型数据
|
|
|
|
|
String[] sections = null; //字符串区间型数据
|
|
|
|
|
DateTime beginTime = null; //日期时间区间型数据
|
|
|
|
|
DateTime endTime = null; //日期时间区间型数据
|
|
|
|
|
|
|
|
|
|
// 2.根据数据类型,解构数据
|
|
|
|
|
switch (valueType) {
|
|
|
|
|
case "array":
|
|
|
|
|
//处理多文件
|
|
|
|
|
String[] datas = usersearchchild.getSearchvalue().split(",");
|
|
|
|
|
arrayData = Arrays.asList(datas);
|
|
|
|
|
break;
|
|
|
|
|
case "section":
|
|
|
|
|
//格式化数据,仅在做区间的时候去除空格,其他地方不进行空格去除.
|
|
|
|
|
sections = usersearchchild.getSearchvalue().trim().replaceAll("\\s+", "").split("-");
|
|
|
|
|
//校验是否纯数字,纯数字的话,要转成int,否则比对时会有问题
|
|
|
|
|
sectionInts = new ArrayList<>();
|
|
|
|
|
for (String data : sections) {
|
|
|
|
|
if (data.matches("\\d+")) {
|
|
|
|
|
sectionInts.add(Integer.parseInt(data));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case "time":
|
|
|
|
|
//格式化时间数据
|
|
|
|
|
String[] times = usersearchchild.getSearchvalue().trim().replaceAll("\\s+", "").split("-");
|
|
|
|
|
beginTime = DateUtil.parse(times[0], "yyyy/MM/dd");
|
|
|
|
|
endTime = DateUtil.parse(times[1], "yyyy/MM/dd");
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 3.根据查询类型 组装查询条件 相等
|
|
|
|
|
switch (valueType) {
|
|
|
|
|
case "array":
|
|
|
|
|
//集合数据
|
|
|
|
|
//相等
|
|
|
|
|
if (queryType) {
|
|
|
|
|
searchQuery.addIn(usersearchchild.getSearchfield(), arrayData);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
//不相等
|
|
|
|
|
searchQuery.addNotIn(usersearchchild.getSearchfield(), arrayData);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
case "section":
|
|
|
|
|
//数字区间查询
|
|
|
|
|
if (sectionInts != null && sectionInts.size() == 2) {
|
|
|
|
|
if (queryType) {
|
|
|
|
|
//相等
|
|
|
|
|
searchQuery.addGreaterEqual(usersearchchild.getSearchfield(), sectionInts.get(0));
|
|
|
|
|
searchQuery.addLessEqual(usersearchchild.getSearchfield(), sectionInts.get(1));
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
//不相等
|
|
|
|
|
searchQuery.addLess(usersearchchild.getSearchfield(), sectionInts.get(0));
|
|
|
|
|
searchQuery.addGreater(usersearchchild.getSearchfield(), sectionInts.get(1));
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//字符串区间查询
|
|
|
|
|
if (queryType) {
|
|
|
|
|
//相等
|
|
|
|
|
searchQuery.addGreaterEqual(usersearchchild.getSearchfield(), sections[0]);
|
|
|
|
|
searchQuery.addLessEqual(usersearchchild.getSearchfield(), sections[1]);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
//不相等
|
|
|
|
|
searchQuery.addLess(usersearchchild.getSearchfield(), sections[0]);
|
|
|
|
|
searchQuery.addGreater(usersearchchild.getSearchfield(), sections[1]);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case "time":
|
|
|
|
|
//时间区间数据
|
|
|
|
|
//相等
|
|
|
|
|
if (queryType) {
|
|
|
|
|
searchQuery.addGreaterEqual(usersearchchild.getSearchfield(), beginTime);
|
|
|
|
|
searchQuery.addLessEqual(usersearchchild.getSearchfield(), endTime);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
//不相等
|
|
|
|
|
searchQuery.addLess(usersearchchild.getSearchfield(), beginTime);
|
|
|
|
|
searchQuery.addGreater(usersearchchild.getSearchfield(), endTime);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
if (queryType) {
|
|
|
|
|
searchQuery.addEqual(usersearchchild.getSearchfield(), usersearchchild.getSearchvalue());
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
searchQuery.addNotEqual(usersearchchild.getSearchfield(), usersearchchild.getSearchvalue());
|
|
|
|
|
}
|
|
|
|
|
return searchQuery;
|
|
|
|
|
}
|
|
|
|
|
// private SearchQuery formattingSearchChild1(SearchQuery searchQuery, OcrUsersearchchild usersearchchild) {
|
|
|
|
|
// switch (usersearchchild.getSearchRelationType()) {
|
|
|
|
|
// case "where":
|
|
|
|
|
// // 添加 "where" 查询条件
|
|
|
|
|
// this.formattingSearchType1(searchQuery, usersearchchild);
|
|
|
|
|
// break;
|
|
|
|
|
// case "and":
|
|
|
|
|
// // 添加 "and" 查询条件
|
|
|
|
|
// searchQuery.addRulesOp(usersearchchild.getSearchfield(),"and");
|
|
|
|
|
// SearchQuery andQuery = this.formattingSearchType1(searchQuery, usersearchchild);
|
|
|
|
|
// searchQuery.setSearchQuery(andQuery);
|
|
|
|
|
// break;
|
|
|
|
|
// case "or":
|
|
|
|
|
// // 添加 "or" 查询条件
|
|
|
|
|
// searchQuery.addRulesOp(usersearchchild.getSearchfield(),"or");
|
|
|
|
|
// SearchQuery orQuery = this.formattingSearchType1(searchQuery, usersearchchild);
|
|
|
|
|
// searchQuery.setSearchQuery(orQuery);
|
|
|
|
|
// break;
|
|
|
|
|
// default:
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
// return searchQuery;
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// private SearchQuery formattingSearchType1(SearchQuery searchQuery, OcrUsersearchchild usersearchchild) {
|
|
|
|
|
// //查询类型 相等true 不相等fase
|
|
|
|
|
// boolean queryType = "eq".equals(usersearchchild.getSearchtype());
|
|
|
|
|
//
|
|
|
|
|
// // 1.获取检查数据,确定数据类型
|
|
|
|
|
// String valueType = SearchParaFormatting.clickSearchValue(usersearchchild.getSearchvalue());
|
|
|
|
|
// List<String> arrayData = null; //集合型数据
|
|
|
|
|
// List<Integer> sectionInts = null; //纯数字区间型数据
|
|
|
|
|
// String[] sections = null; //字符串区间型数据
|
|
|
|
|
// DateTime beginTime = null; //日期时间区间型数据
|
|
|
|
|
// DateTime endTime = null; //日期时间区间型数据
|
|
|
|
|
//
|
|
|
|
|
// // 2.根据数据类型,解构数据
|
|
|
|
|
// switch (valueType) {
|
|
|
|
|
// case "array":
|
|
|
|
|
// //处理多文件
|
|
|
|
|
// String[] datas = usersearchchild.getSearchvalue().split(",");
|
|
|
|
|
// arrayData = Arrays.asList(datas);
|
|
|
|
|
// break;
|
|
|
|
|
// case "section":
|
|
|
|
|
// //格式化数据,仅在做区间的时候去除空格,其他地方不进行空格去除.
|
|
|
|
|
// sections = usersearchchild.getSearchvalue().trim().replaceAll("\\s+", "").split("-");
|
|
|
|
|
// //校验是否纯数字,纯数字的话,要转成int,否则比对时会有问题
|
|
|
|
|
// sectionInts = new ArrayList<>();
|
|
|
|
|
// for (String data : sections) {
|
|
|
|
|
// if (data.matches("\\d+")) {
|
|
|
|
|
// sectionInts.add(Integer.parseInt(data));
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// break;
|
|
|
|
|
// case "time":
|
|
|
|
|
// //格式化时间数据
|
|
|
|
|
// String[] times = usersearchchild.getSearchvalue().trim().replaceAll("\\s+", "").split("-");
|
|
|
|
|
// beginTime = DateUtil.parse(times[0], "yyyy/MM/dd");
|
|
|
|
|
// endTime = DateUtil.parse(times[1], "yyyy/MM/dd");
|
|
|
|
|
// break;
|
|
|
|
|
// default:
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // 3.根据查询类型 组装查询条件 相等
|
|
|
|
|
// switch (valueType) {
|
|
|
|
|
// case "array":
|
|
|
|
|
// //集合数据
|
|
|
|
|
// //相等
|
|
|
|
|
// if (queryType) {
|
|
|
|
|
// searchQuery.addIn(usersearchchild.getSearchfield(), arrayData);
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
// //不相等
|
|
|
|
|
// searchQuery.addNotIn(usersearchchild.getSearchfield(), arrayData);
|
|
|
|
|
// break;
|
|
|
|
|
//
|
|
|
|
|
// case "section":
|
|
|
|
|
// //数字区间查询
|
|
|
|
|
// if (sectionInts != null && sectionInts.size() == 2) {
|
|
|
|
|
// if (queryType) {
|
|
|
|
|
// //相等
|
|
|
|
|
// searchQuery.addGreaterEqual(usersearchchild.getSearchfield(), sectionInts.get(0));
|
|
|
|
|
// searchQuery.addLessEqual(usersearchchild.getSearchfield(), sectionInts.get(1));
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
// //不相等
|
|
|
|
|
// searchQuery.addLess(usersearchchild.getSearchfield(), sectionInts.get(0));
|
|
|
|
|
// searchQuery.addGreater(usersearchchild.getSearchfield(), sectionInts.get(1));
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// //字符串区间查询
|
|
|
|
|
// if (queryType) {
|
|
|
|
|
// //相等
|
|
|
|
|
// searchQuery.addGreaterEqual(usersearchchild.getSearchfield(), sections[0]);
|
|
|
|
|
// searchQuery.addLessEqual(usersearchchild.getSearchfield(), sections[1]);
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
// //不相等
|
|
|
|
|
// searchQuery.addLess(usersearchchild.getSearchfield(), sections[0]);
|
|
|
|
|
// searchQuery.addGreater(usersearchchild.getSearchfield(), sections[1]);
|
|
|
|
|
// break;
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// case "time":
|
|
|
|
|
// //时间区间数据
|
|
|
|
|
// //相等
|
|
|
|
|
// if (queryType) {
|
|
|
|
|
// searchQuery.addGreaterEqual(usersearchchild.getSearchfield(), beginTime);
|
|
|
|
|
// searchQuery.addLessEqual(usersearchchild.getSearchfield(), endTime);
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
// //不相等
|
|
|
|
|
// searchQuery.addLess(usersearchchild.getSearchfield(), beginTime);
|
|
|
|
|
// searchQuery.addGreater(usersearchchild.getSearchfield(), endTime);
|
|
|
|
|
// break;
|
|
|
|
|
//
|
|
|
|
|
// default:
|
|
|
|
|
// if (queryType) {
|
|
|
|
|
// searchQuery.addEqual(usersearchchild.getSearchfield(), usersearchchild.getSearchvalue());
|
|
|
|
|
// break;
|
|
|
|
|
// }
|
|
|
|
|
// searchQuery.addNotEqual(usersearchchild.getSearchfield(), usersearchchild.getSearchvalue());
|
|
|
|
|
// }
|
|
|
|
|
// return searchQuery;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|