fix:任务审批高级检索

pull/67/head
DELL 1 year ago committed by sunchenliang
parent ee43a048ae
commit 123dd65e97

@ -124,6 +124,9 @@ public class SearchQuery implements java.io.Serializable{
public void addGreaterEqual(String field,Date value){ public void addGreaterEqual(String field,Date value){
addQuery(field,value, SearchQueryConstant.SEARCH_GREATER_EQUAL); 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){ public void addLess(String field,Integer value){
addQuery(field,value, SearchQueryConstant.SEARCH_LESS); addQuery(field,value, SearchQueryConstant.SEARCH_LESS);
} }
@ -155,6 +158,10 @@ public class SearchQuery implements java.io.Serializable{
addQuery(field,value, SearchQueryConstant.SEARCH_LESS_EQUAL); 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){ public void addRulesOp(String field,String rulesOp){
SearchQueryForm searchQueryForm = new SearchQueryForm(); SearchQueryForm searchQueryForm = new SearchQueryForm();
if(query.get(field)!=null){ if(query.get(field)!=null){

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

@ -482,6 +482,74 @@
</trim> </trim>
</where> </where>
</sql> </sql>
<sql id="Base_Where_Union_New">
<where>
<trim prefixOverrides="and|or">
<if test="izupuser != null">
${izupuser.rulesOp} tcp.FROMUSERID ${izupuser.dataOp} ${izupuser.likestar}
<!-- #{fromuserid.value}-->
<if test="izupuser.value instanceof java.util.List">
<foreach item="item" collection="izupuser.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!izupuser.value instanceof java.util.List">
#{izupuser.value}
</if>
${izupuser.likeend}
</if>
<if test="izApprovalStatus != null">
${izApprovalStatus.rulesOp} tcp.FROMUSERID ${izApprovalStatus.dataOp} ${izApprovalStatus.likestar}
<!-- #{fromuserid.value}-->
<if test="izApprovalStatus.value instanceof java.util.List">
<foreach item="item" collection="izApprovalStatus.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!izApprovalStatus.value instanceof java.util.List">
#{izApprovalStatus.value}
</if>
${izApprovalStatus.likeend}
</if>
<if test="iztaskrrom != null">
${iztaskrrom.rulesOp} tcp.FROMSOURCEID ${iztaskrrom.dataOp} ${iztaskrrom.likestar}
<!-- #{fromuserid.value}-->
<if test="iztaskrrom.value instanceof java.util.List">
<foreach item="item" collection="iztaskrrom.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!iztaskrrom.value instanceof java.util.List">
#{iztaskrrom.value}
</if>
${iztaskrrom.likeend}
</if>
<if test="izproject != null">
${izproject.rulesOp} tcp.FROMPROJECTID ${izproject.dataOp} ${izproject.likestar}
<!-- #{fromuserid.value}-->
<if test="izproject.value instanceof java.util.List">
<foreach item="item" collection="izproject.value" open="" separator="," close="">
#{item}
</foreach>
</if>
<if test="!izproject.value instanceof java.util.List">
#{izproject.value}
</if>
${izproject.likeend}
</if>
<!-- <if test="izuptime != null">-->
<!-- ${izuptime.rulesOp} tcp.FROMUPTIME ${izuptime.dataOp} ${izuptime.likestar}#{izuptime.value}${izuptime.likeend}-->
<!-- </if>-->
<if test="izuptimeStart != null">
and tcp.FROMUPTIME &gt;= '${izuptimeStart.value}'
</if>
<if test="izuptimeEnd != null">
and tcp.FROMUPTIME &lt;= '${izuptimeEnd.value}'
</if>
</trim>
</where>
</sql>
<select id="listFinal" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture" <select id="listFinal" resultType="cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture"
parameterType="java.util.Map"> parameterType="java.util.Map">
select tcp.*, pic.field11 reporttime, pic.similarity_score similarityscore from ( select tcp.*, pic.field11 reporttime, pic.similarity_score similarityscore from (
@ -556,42 +624,45 @@
parameterType="java.util.Map"> parameterType="java.util.Map">
select tcp.* from ( select tcp.* from (
select tc.*, select tc.*,
uf.COMMENTHIS, uf.COMMENTHIS,
uf.TASKNAME as TASKNAMEHIS, uf.TASKNAME as TASKNAMEHIS,
uf.STATSHIS, uf.STATSHIS,
uf.TASKINDEX, uf.TASKINDEX,
uf.TASKNO, uf.TASKNO,
op.field6 as fromCustomerLevel, op.field6 as fromCustomerLevel,
op.releaseArea as fromCity op.releaseArea as fromCity
from ocr_taskchild_picture tc from ocr_taskchild_picture tc
LEFT JOIN OA_USERAPPROVE_T uf ON tc.ID = uf.ID LEFT JOIN OA_USERAPPROVE_T uf ON tc.ID = uf.ID
left join ocr_picture op on tc.PICTUREID = op.ID and op.suspiciousfile = 0 left join ocr_picture op on tc.PICTUREID = op.ID and op.suspiciousfile = 0
where tc.ASSIGNEE = #{searchassignee} where tc.ASSIGNEE = #{searchassignee}
and tc.TENANTID = #{searchtenantid} and tc.TENANTID = #{searchtenantid}
and tc.STATES = 2 and tc.STATES = 2
UNION UNION
select tc.*, select tc.*,
uf.COMMENTHIS, uf.COMMENTHIS,
uf.TASKNAME as TASKNAMEHIS, uf.TASKNAME as TASKNAMEHIS,
uf.STATSHIS, uf.STATSHIS,
uf.TASKINDEX, uf.TASKINDEX,
uf.TASKNO, uf.TASKNO,
op.field6 as fromCustomerLevel, op.field6 as fromCustomerLevel,
op.releaseArea as fromCity op.releaseArea as fromCity
from ocr_taskchild_picture tc, from ocr_taskchild_picture tc,
OA_USERAPPROVE_T uf, OA_USERAPPROVE_T uf,
ocr_picture op ocr_picture op
where tc.ID = uf.FORMID where tc.ID = uf.FORMID
and tc.PICTUREID = op.ID and tc.PICTUREID = op.ID
and op.suspiciousfile = 0 and op.suspiciousfile = 0
and tc.TENANTID = #{searchtenantid} and tc.TENANTID = #{searchtenantid}
<if test="thisLoginUserid != null"> <if test="thisLoginUserid != null">
and uf.USERID = #{thisLoginUserid} and uf.USERID = #{thisLoginUserid}
</if> </if>
) as tcp ) as tcp
<include refid="Base_Where_union"> <include refid="Base_Where_union">
</include> </include>
<include refid="Base_Where_Union_New">
</include>
<if test="page != null"> <if test="page != null">
<if test="page.sortname != null"> <if test="page.sortname != null">
order by tcp.${page.sortname} ${page.sortorder} order by tcp.${page.sortname} ${page.sortorder}
@ -604,20 +675,22 @@
select tc.* select tc.*
from ocr_taskchild_picture tc from ocr_taskchild_picture tc
where tc.ASSIGNEE = #{searchassignee} where tc.ASSIGNEE = #{searchassignee}
and tc.TENANTID = #{searchtenantid} and tc.TENANTID = #{searchtenantid}
and tc.STATES = 2 and tc.STATES = 2
UNION UNION
select tc.* select tc.*
from ocr_taskchild_picture tc, from ocr_taskchild_picture tc,
OA_USERAPPROVE_T uf OA_USERAPPROVE_T uf
where tc.ID = uf.FORMID where tc.ID = uf.FORMID
and tc.TENANTID = #{searchtenantid} and tc.TENANTID = #{searchtenantid}
<if test="thisLoginUserid != null"> <if test="thisLoginUserid != null">
and uf.USERID = #{thisLoginUserid} and uf.USERID = #{thisLoginUserid}
</if> </if>
) as tcp ) as tcp
<include refid="Base_Where_union"> <include refid="Base_Where_union">
</include> </include>
<include refid="Base_Where_Union_New">
</include>
</select> </select>

Loading…
Cancel
Save