修改标签查询

master
wujingtao 2 years ago
parent b68722bb7d
commit 7c7f95a51d

@ -25,6 +25,7 @@ public class ClueQueryCriteria {
@ApiModelProperty(value = "任务id") @ApiModelProperty(value = "任务id")
private Long taskId; private Long taskId;
private Set<Long> taskIds; private Set<Long> taskIds;
@ApiModelProperty(value = "所属组员id") @ApiModelProperty(value = "所属组员id")
private Long memberId; private Long memberId;

@ -601,8 +601,15 @@ public class OrganizeServiceImpl implements OrganizeService {
TaskOrganizeDto taskOrganizeDto = taskOrganizeDtos.get(0); TaskOrganizeDto taskOrganizeDto = taskOrganizeDtos.get(0);
map.put("organizeLabel", taskOrganizeDto.getOrganizeLabel()); map.put("organizeLabel", taskOrganizeDto.getOrganizeLabel());
} }
Task task = taskRepository.findById(taskId).orElseGet(Task::new); Task task = taskRepository.findById(taskId).orElseGet(Task::new);
map.put("baseLabel", task.getBaseLabel()); Long labelOrganizeId = task.getLabelOrganizeId();
if (labelOrganizeId != null) {
List<String> labelList = labelService.findLabelList(labelOrganizeId);
map.put("baseLabel", labelList);
} else {
map.put("baseLabel", task.getBaseLabel());
}
return map; return map;
} }

@ -298,10 +298,10 @@ public class ClueJpa {
clueDto.setNewestCallTime((Date) row.get("newestCallTime")); clueDto.setNewestCallTime((Date) row.get("newestCallTime"));
clueDto.setAmount((String) row.get("amount")); clueDto.setAmount((String) row.get("amount"));
clueDto.setPlatform((String) row.get("platform")); clueDto.setPlatform((String) row.get("platform"));
clueDtoList.add(clueDto);
clueDto.setTurnoverAmount((Double) row.get("turnoverAmount")); clueDto.setTurnoverAmount((Double) row.get("turnoverAmount"));
clueDto.setCastInfo((String) row.get("castInfo")); clueDto.setCastInfo((String) row.get("castInfo"));
clueDto.setClueType((Integer) row.get("clueType")); clueDto.setClueType((Integer) row.get("clueType"));
clueDtoList.add(clueDto);
} }
return clueDtoList; return clueDtoList;
} }
@ -371,6 +371,9 @@ public class ClueJpa {
} }
if (pageable != null) { if (pageable != null) {
Integer memberStatus = clueQueryCriteria.getMemberStatus(); Integer memberStatus = clueQueryCriteria.getMemberStatus();
if (clueQueryCriteria.getUserId() != null) {
sql.append("AND tc.create_by = :userId ");
}
if (memberStatus != null && memberStatus == 0) { if (memberStatus != null && memberStatus == 0) {
sql.append("AND tcm.member_id is null "); sql.append("AND tcm.member_id is null ");
} }
@ -407,6 +410,9 @@ public class ClueJpa {
query.setParameter("taskId", taskIds); query.setParameter("taskId", taskIds);
} }
if (pageable != null) { if (pageable != null) {
if (clueQueryCriteria.getUserId() != null) {
query.setParameter("userId", clueQueryCriteria.getUserId());
}
if (origin != null) { if (origin != null) {
query.setParameter("origin", origin); query.setParameter("origin", origin);
} }
@ -502,65 +508,68 @@ public class ClueJpa {
if (CollUtil.isNotEmpty(taskIds)) { if (CollUtil.isNotEmpty(taskIds)) {
sql.append("AND cm.task_id IN (:taskId) "); sql.append("AND cm.task_id IN (:taskId) ");
Integer memberStatus = clueQueryCriteria.getMemberStatus(); }
if (memberStatus != null && memberStatus == 0) { if (clueQueryCriteria.getUserId() != null) {
sql.append("AND cm.member_id is null "); sql.append("AND c.create_by = :userId ");
} }
if (memberStatus != null && memberStatus > 0) { Integer memberStatus = clueQueryCriteria.getMemberStatus();
sql.append("AND cm.member_id is not null "); if (memberStatus != null && memberStatus == 0) {
} sql.append("AND cm.member_id is null ");
if (StringUtils.isNotBlank(name)) { }
sql.append("and c.name like :name "); if (memberStatus != null && memberStatus > 0) {
} sql.append("AND cm.member_id is not null ");
if (origin != null) { }
sql.append("and c.origin = :origin "); if (StringUtils.isNotBlank(name)) {
} sql.append("and c.name like :name ");
if (createTimeList != null && createTimeList.size() == 2) { }
sql.append("and c.create_time between :createTimeBegin and :createTimeEnd "); if (origin != null) {
} sql.append("and c.origin = :origin ");
}
if (createTimeList != null && createTimeList.size() == 2) {
sql.append("and c.create_time between :createTimeBegin and :createTimeEnd ");
}
if (userIdList != null && userIdList.size() > 0) { if (userIdList != null && userIdList.size() > 0) {
sql.append("and cm.member_id in (:userIdList)"); sql.append("and cm.member_id in (:userIdList)");
} }
if (clueStage != null) { if (clueStage != null) {
sql.append("AND cm.clue_stage = :clueStage "); sql.append("AND cm.clue_stage = :clueStage ");
} }
if (clueType != null) { if (clueType != null) {
sql.append("AND cm.clue_type = :clueType "); sql.append("AND cm.clue_type = :clueType ");
} else {
sql.append("AND cm.clue_type < :clueType ");
}
} }
Query query = entityManager.createNativeQuery(sql.toString()); Query query = entityManager.createNativeQuery(sql.toString());
if (CollUtil.isNotEmpty(taskIds)) { if (CollUtil.isNotEmpty(taskIds)) {
query.setParameter("taskId", taskIds); query.setParameter("taskId", taskIds);
if (origin != null) {
query.setParameter("origin", origin);
}
if (StringUtils.isNotBlank(name)) {
query.setParameter("name", "%" + name + "%");
}
if (createTimeList != null && createTimeList.size() == 2) {
String createTimeBegin = this.format.format(createTimeList.get(0));
String createTimeEnd = this.format.format(createTimeList.get(1));
query.setParameter("createTimeBegin", createTimeBegin);
query.setParameter("createTimeEnd", createTimeEnd);
}
if (clueStage != null) {
query.setParameter("clueStage", clueStage);
}
if (userIdList != null && userIdList.size() > 0) {
query.setParameter("userIdList", userIdList);
}
if (clueType != null) {
query.setParameter("clueType", clueType);
} else {
query.setParameter("clueType", DefaultNumberConstants.FOUR_NUMBER);
}
} }
if (clueQueryCriteria.getUserId() != null) {
query.setParameter("userId", clueQueryCriteria.getUserId());
}
if (origin != null) {
query.setParameter("origin", origin);
}
if (StringUtils.isNotBlank(name)) {
query.setParameter("name", "%" + name + "%");
}
if (createTimeList != null && createTimeList.size() == 2) {
String createTimeBegin = this.format.format(createTimeList.get(0));
String createTimeEnd = this.format.format(createTimeList.get(1));
query.setParameter("createTimeBegin", createTimeBegin);
query.setParameter("createTimeEnd", createTimeEnd);
}
if (clueStage != null) {
query.setParameter("clueStage", clueStage);
}
if (userIdList != null && userIdList.size() > 0) {
query.setParameter("userIdList", userIdList);
}
if (clueType != null) {
query.setParameter("clueType", clueType);
}
query.unwrap(NativeQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); query.unwrap(NativeQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List confirmReceipt = query.getResultList(); List confirmReceipt = query.getResultList();
Long count = 0L; long count = 0L;
for (Object obj : confirmReceipt) { for (Object obj : confirmReceipt) {
Map row = (Map) obj; Map row = (Map) obj;
BigInteger countBig = (BigInteger) row.get("countNum"); BigInteger countBig = (BigInteger) row.get("countNum");
@ -585,7 +594,7 @@ public class ClueJpa {
public Long getPoolCount(PublicCluePoolQueryCriteria clueQueryCriteria) { public Long getPoolCount(PublicCluePoolQueryCriteria clueQueryCriteria) {
StringBuilder sql = new StringBuilder("select count(*) as countNum from tb_public_clue_pool as p left join tb_clue_middle as cm on p.clue_id=cm.clue_id where 1=1 "); StringBuilder sql = new StringBuilder("select count(*) as countNum from tb_public_clue_pool as p left join tb_clue_middle as cm on p.clue_id=cm.clue_id where 1=1 ");
List confirmReceipt = getCluePoolListCondition(clueQueryCriteria, sql, null); List confirmReceipt = getCluePoolListCondition(clueQueryCriteria, sql, null);
Long count = 0L; long count = 0L;
for (Object obj : confirmReceipt) { for (Object obj : confirmReceipt) {
Map row = (Map) obj; Map row = (Map) obj;
BigInteger countBig = (BigInteger) row.get("countNum"); BigInteger countBig = (BigInteger) row.get("countNum");

@ -602,20 +602,23 @@ public class ClueServiceImpl implements ClueService {
@Override @Override
public Map<String, Object> queryCluePool(ClueQueryCriteria clueQueryCriteria, Pageable pageable) { public Map<String, Object> queryCluePool(ClueQueryCriteria clueQueryCriteria, Pageable pageable) {
if (clueQueryCriteria.getMemberId() != null) { if (clueQueryCriteria.getMemberId() != null) {
clueQueryCriteria.setUserId(clueQueryCriteria.getMemberId());
Set<Long> taskIds;
TaskQueryCriteria taskQueryCriteria = new TaskQueryCriteria(); TaskQueryCriteria taskQueryCriteria = new TaskQueryCriteria();
taskQueryCriteria.setCreateBy(clueQueryCriteria.getMemberId()); taskQueryCriteria.setCreateBy(clueQueryCriteria.getMemberId());
if (clueQueryCriteria.getTaskName() != null) {
taskQueryCriteria.setBlurry(clueQueryCriteria.getTaskName());
}
if (clueQueryCriteria.getTaskId() != null) { if (clueQueryCriteria.getTaskId() != null) {
taskQueryCriteria.setId(clueQueryCriteria.getTaskId()); taskQueryCriteria.setId(clueQueryCriteria.getTaskId());
} }
if (clueQueryCriteria.getTaskId() == null && clueQueryCriteria.getTaskName() != null) {
taskQueryCriteria.setBlurry(clueQueryCriteria.getTaskName());
}
if (clueQueryCriteria.getClueType() == null) { if (clueQueryCriteria.getClueType() == null) {
taskQueryCriteria.setIsForms(Arrays.asList(ClueTypeConstants.SCREEN_TYPE)); taskQueryCriteria.setIsForms(Arrays.asList(ClueTypeConstants.SCREEN_TYPE));
} else { } else {
taskQueryCriteria.setIsForms(Arrays.asList(ClueTypeConstants.TOKER_TYPE)); taskQueryCriteria.setIsForms(Arrays.asList(ClueTypeConstants.TOKER_TYPE));
} }
return findClueList(taskQueryCriteria, clueQueryCriteria, pageable); taskIds = findTaskId(taskQueryCriteria);
return findClueList(taskIds, clueQueryCriteria, pageable);
} else { } else {
log.info("========================用户id为空============================"); log.info("========================用户id为空============================");
throw new BadRequestException("刷新后重试"); throw new BadRequestException("刷新后重试");
@ -669,12 +672,14 @@ public class ClueServiceImpl implements ClueService {
@Override @Override
public Object findCompanyClue(ClueQueryCriteria clueQueryCriteria, Pageable pageable) { public Object findCompanyClue(ClueQueryCriteria clueQueryCriteria, Pageable pageable) {
TaskQueryCriteria taskQueryCriteria = new TaskQueryCriteria(); Set<Long> taskIds = new HashSet<>();
taskQueryCriteria.setCreateBy(clueQueryCriteria.getUserId());
if (clueQueryCriteria.getTaskName() != null) { if (clueQueryCriteria.getTaskName() != null) {
TaskQueryCriteria taskQueryCriteria = new TaskQueryCriteria();
taskQueryCriteria.setCreateBy(clueQueryCriteria.getUserId());
taskQueryCriteria.setBlurry(clueQueryCriteria.getTaskName()); taskQueryCriteria.setBlurry(clueQueryCriteria.getTaskName());
taskIds = findTaskId(taskQueryCriteria);
} }
return findClueList(taskQueryCriteria, clueQueryCriteria, pageable); return findClueList(taskIds, clueQueryCriteria, pageable);
} }
@Override @Override
@ -1098,27 +1103,22 @@ public class ClueServiceImpl implements ClueService {
* @param pageable * @param pageable
* @return * @return
*/ */
private Map<String, Object> findClueList(TaskQueryCriteria taskQueryCriteria, ClueQueryCriteria clueQueryCriteria, Pageable pageable) { private Map<String, Object> findClueList(Set<Long> taskIds, ClueQueryCriteria clueQueryCriteria, Pageable pageable) {
//获取所有任务id List<Clue> clueAll = clueJpa.findClue(taskIds, pageable, clueQueryCriteria);
Set<Long> taskIds = findTaskId(taskQueryCriteria); Set<Long> memberIds = clueAll.stream().map(Clue::getMemberId).collect(Collectors.toSet());
if (CollUtil.isNotEmpty(taskIds)) { Map<Long, String> userNickNameMap = userClient.findById(memberIds);
List<Clue> clueAll = clueJpa.findClue(taskIds, pageable, clueQueryCriteria); for (Clue clue : clueAll) {
Set<Long> memberIds = clueAll.stream().map(Clue::getMemberId).collect(Collectors.toSet()); //获取缓存中任务名称
Map<Long, String> userNickNameMap = userClient.findById(memberIds); String str = findTaskName(clue.getTaskId());
for (Clue clue : clueAll) { clue.setTaskName(str);
//获取缓存中任务名称 //查询分配人的用户名称
String str = findTaskName(clue.getTaskId()); Long memberId = clue.getMemberId();
clue.setTaskName(str); if (memberId != null && userNickNameMap.containsKey(memberId)) {
//查询分配人的用户名称 clue.setDistributeUserName(userNickNameMap.get(memberId));
Long memberId = clue.getMemberId();
if (memberId != null && userNickNameMap.containsKey(memberId)) {
clue.setDistributeUserName(userNickNameMap.get(memberId));
}
} }
Long count = clueJpa.getTaskCount(taskIds, clueQueryCriteria);
return PageUtil.toPage(clueAll, count);
} }
return PageUtil.toPage(new ArrayList<>(), 0); Long count = clueJpa.getTaskCount(taskIds, clueQueryCriteria);
return PageUtil.toPage(clueAll, count);
} }
/** /**

Loading…
Cancel
Save