From edc45b1334b768aed6569baf6e12515868ad88ea Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期四, 24 十月 2024 17:16:00 +0800 Subject: [PATCH] 工单联系人回显、流程图情况说明回显、数据中心OSD优化 --- ycl-server/src/main/java/com/ycl/utils/MongoUtil.java | 77 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 77 insertions(+), 0 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java b/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java index 3cff535..0072d2c 100644 --- a/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java +++ b/ycl-server/src/main/java/com/ycl/utils/MongoUtil.java @@ -114,4 +114,81 @@ query.with(Sort.by(Sort.Order.desc(timeFiled))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); } + + /** + * 鏋勯�犳暟鎹腑蹇冩悳绱㈢殑鏉′欢 + * + * @param params 鏁版嵁涓績璇锋眰鍙傛暟 + * @param timeFiled 鏃堕棿瀛楁鏄摢涓�涓� + * @param dataAuth 鐐逛綅绫诲瀷锛歯ull 鎵�鏈� 1 閮ㄧ骇 2 鐪佸巺 3 閲嶇偣 4 閲嶇偣鎸囨尌 5 鏄惁鏂拌澶� + * @param likeFileds 浣跨敤like鏌ヨ鐨勫瓧娈� + */ + public static List<Criteria> getAndCriteria(DataCenterQuery params, String timeFiled, List<String> likeFileds, Integer dataAuth) { + // 鍏抽敭瀛� + List<Criteria> likeList = null; + if (StringUtils.hasText(params.getKeyword()) && !CollectionUtils.isEmpty(likeFileds)) { + // 杞箟 + String keyword = Pattern.quote(params.getKeyword()); + likeList = likeFileds.stream().map(filed -> { + return Criteria.where(filed).regex(".*?" + keyword + ".*"); + }).collect(Collectors.toList()); + } + // 灏唋ike瀛楁or璧锋潵 + Criteria or = null; + if (! CollectionUtils.isEmpty(likeList)) { + or = new Criteria(); + or.orOperator(likeList); + } + + Criteria tag = null; + // in + if (Objects.nonNull(dataAuth)) { + switch (dataAuth) { + case 1: + tag = Criteria.where("deptTag").is(Boolean.TRUE); + break; + case 2: + tag = Criteria.where("provinceTag").is(Boolean.TRUE); + break; + case 3: + tag = Criteria.where("importantTag").is(Boolean.TRUE); + break; + case 4: + tag = Criteria.where("importantCommandImageTag").is(Boolean.TRUE); + break; + case 5: + tag = Criteria.where("newDevice").is(Boolean.TRUE); + break; + default: + break; + } + } + + // 鏃堕棿 + Criteria time = Criteria.where(timeFiled).gte(params.getStartTime()).lte(params.getEndTime()); + + // 鏁版嵁绫诲瀷 + Criteria dType = null; + if (params.getDataType().equals(1)) { + dType = Criteria.where("provinceTag").is(Boolean.TRUE); + }else if(params.getDataType().equals(2)){ + dType = Criteria.where("deptTag").is(Boolean.TRUE); + } + + List<Criteria> qList = new ArrayList<>(3); + qList.add(time); + if (Objects.nonNull(tag)) { + qList.add(tag); + } + if (Objects.nonNull(or)) { + qList.add(or); + } + if (Objects.nonNull(dType)) { + qList.add(dType); + } + + // 杩斿洖鏌ヨ + return qList; + } + } -- Gitblit v1.8.0