diff --git a/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/util/requestFormat/SearchQuery.java b/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/util/requestFormat/SearchQuery.java index 1eef9ec5..242d3277 100644 --- a/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/util/requestFormat/SearchQuery.java +++ b/jyjz-common/jyjz-common-base/src/main/java/cn/jyjz/xiaoyao/common/base/util/requestFormat/SearchQuery.java @@ -124,6 +124,9 @@ public class SearchQuery implements java.io.Serializable{ public void addGreaterEqual(String field,Date value){ addQuery(field,value, SearchQueryConstant.SEARCH_GREATER_EQUAL); } + public void addGreaterEqual(String field,Long value){ + addQuery(field,value, SearchQueryConstant.SEARCH_GREATER_EQUAL); + } public void addLess(String field,Integer value){ addQuery(field,value, SearchQueryConstant.SEARCH_LESS); } @@ -155,6 +158,10 @@ public class SearchQuery implements java.io.Serializable{ addQuery(field,value, SearchQueryConstant.SEARCH_LESS_EQUAL); } + public void addLessEqual(String field,Long value){ + addQuery(field,value, SearchQueryConstant.SEARCH_LESS_EQUAL); + } + public void addRulesOp(String field,String rulesOp){ SearchQueryForm searchQueryForm = new SearchQueryForm(); if(query.get(field)!=null){ diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java index c4b7735d..61974825 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/flowable/service/impl/FlowTaskServiceImpl.java @@ -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); @@ -1948,132 +1948,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 arrayData = null; //集合型数据 -// List 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 arrayData = null; //集合型数据 + List 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]+" 00:00:00", "yyyy/MM/dd HH:mm:ss"); + endTime = DateUtil.parse(times[1]+" 23:59:59", "yyyy/MM/dd HH:mm:ss"); + 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()+"Start", beginTime.getTime()); + searchQuery.addLessEqual(usersearchchild.getSearchfield()+"End", endTime.getTime()); + break; + } + //不相等 + searchQuery.addLess(usersearchchild.getSearchfield()+"Start", beginTime); + searchQuery.addGreater(usersearchchild.getSearchfield()+"End", endTime); + break; + + default: + if (queryType) { + searchQuery.addEqual(usersearchchild.getSearchfield(), usersearchchild.getSearchvalue()); + break; + } + searchQuery.addNotEqual(usersearchchild.getSearchfield(), usersearchchild.getSearchvalue()); + } + return searchQuery; + } } diff --git a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml index 6c9c4995..e6cde812 100644 --- a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml +++ b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrTaskchildPictureMapper.xml @@ -480,6 +480,74 @@ + + + + + + ${izupuser.rulesOp} tcp.FROMUSERID ${izupuser.dataOp} ${izupuser.likestar} + + + + #{item} + + + + #{izupuser.value} + + ${izupuser.likeend} + + + ${izApprovalStatus.rulesOp} tcp.FROMUSERID ${izApprovalStatus.dataOp} ${izApprovalStatus.likestar} + + + + #{item} + + + + #{izApprovalStatus.value} + + ${izApprovalStatus.likeend} + + + ${iztaskrrom.rulesOp} tcp.FROMSOURCEID ${iztaskrrom.dataOp} ${iztaskrrom.likestar} + + + + #{item} + + + + #{iztaskrrom.value} + + ${iztaskrrom.likeend} + + + ${izproject.rulesOp} tcp.FROMPROJECTID ${izproject.dataOp} ${izproject.likestar} + + + + #{item} + + + + #{izproject.value} + + ${izproject.likeend} + + + + + + and tcp.FROMUPTIME >= '${izuptimeStart.value}' + + + and tcp.FROMUPTIME <= '${izuptimeEnd.value}' + + + +