接口查询优化
This commit is contained in:
parent
079bdaa6a4
commit
d2af9fdf6b
@ -1,5 +1,6 @@
|
||||
package cn.iocoder.yudao.module.crm.service.crmachievement;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||
@ -162,12 +163,26 @@ public class CrmAchievementServiceImpl implements CrmAchievementService {
|
||||
userPageReqVO.setPageSize(pageReqVO.getPageSize());
|
||||
PageResult<AdminUserApiVO> pageResult = adminUserApi.getUserPage(userPageReqVO).getCheckedData();
|
||||
PageResult<UserAchieveRespVO> pageResult1 = BeanUtils.toBean(pageResult, UserAchieveRespVO.class);
|
||||
pageResult1.getList().forEach(v -> {
|
||||
CrmAchievementDO crmAchievementDO = achievementMapper.selectOne(new LambdaQueryWrapperX<CrmAchievementDO>()
|
||||
List<Long> typeIds = new ArrayList<>();
|
||||
for (UserAchieveRespVO vo : pageResult1.getList()) {
|
||||
typeIds.add(vo.getId());
|
||||
}
|
||||
typeIds = typeIds.stream().distinct().collect(Collectors.toList());
|
||||
List<CrmAchievementDO> crmAchievementDOS = achievementMapper.selectList(new LambdaQueryWrapper<CrmAchievementDO>()
|
||||
.eq(CrmAchievementDO::getType, FlowStepEnum.TYPE_2.getValue())
|
||||
.eq(CrmAchievementDO::getTypeId, v.getId())
|
||||
.eqIfPresent(CrmAchievementDO::getConfig, pageReqVO.getConfig())
|
||||
.eqIfPresent(CrmAchievementDO::getYear, pageReqVO.getYear()));
|
||||
.eq(CrmAchievementDO::getConfig, pageReqVO.getConfig())
|
||||
.in(CrmAchievementDO::getTypeId, typeIds)
|
||||
.eq(CrmAchievementDO::getYear, pageReqVO.getYear())
|
||||
);
|
||||
|
||||
Map<Long, List<CrmAchievementDO>> map = crmAchievementDOS.stream().collect(Collectors.groupingBy(CrmAchievementDO::getTypeId));
|
||||
|
||||
pageResult1.getList().forEach(v -> {
|
||||
List<CrmAchievementDO> doList = map.get(v.getId());
|
||||
CrmAchievementDO crmAchievementDO = null;
|
||||
if (CollUtil.isNotEmpty(doList)) {
|
||||
crmAchievementDO = doList.get(0);
|
||||
}
|
||||
if (crmAchievementDO == null) {
|
||||
crmAchievementDO = CrmAchievementDO.builder()
|
||||
.january(BigDecimal.ZERO).february(BigDecimal.ZERO).march(BigDecimal.ZERO)
|
||||
@ -178,10 +193,7 @@ public class CrmAchievementServiceImpl implements CrmAchievementService {
|
||||
.build();
|
||||
}
|
||||
v.setAchievementRespVO(BeanUtils.toBean(crmAchievementDO, CrmAchievementRespVO.class));
|
||||
|
||||
|
||||
});
|
||||
|
||||
return pageResult1;
|
||||
}
|
||||
|
||||
@ -190,12 +202,24 @@ public class CrmAchievementServiceImpl implements CrmAchievementService {
|
||||
List<DeptApiVO> list = deptService.getDeptList(
|
||||
new DeptApiDTO().setStatus(CommonStatusEnum.ENABLE.getStatus())).getCheckedData();
|
||||
List<DeptAchieveRespVO> achieveRespVOS = BeanUtils.toBean(list, DeptAchieveRespVO.class);
|
||||
achieveRespVOS.forEach(vo -> {
|
||||
CrmAchievementDO crmAchievementDO = achievementMapper.selectOne(new LambdaQueryWrapperX<CrmAchievementDO>()
|
||||
List<Long> typeIds = new ArrayList<>();
|
||||
for (DeptAchieveRespVO vo : achieveRespVOS) {
|
||||
typeIds.add(vo.getId());
|
||||
}
|
||||
typeIds = typeIds.stream().distinct().collect(Collectors.toList());
|
||||
List<CrmAchievementDO> crmAchievementDOS = achievementMapper.selectList(new LambdaQueryWrapper<CrmAchievementDO>()
|
||||
.eq(CrmAchievementDO::getType, FlowStepEnum.TYPE_3.getValue())
|
||||
.eq(CrmAchievementDO::getTypeId, vo.getId())
|
||||
.eqIfPresent(CrmAchievementDO::getConfig, type)
|
||||
.eqIfPresent(CrmAchievementDO::getYear, year));
|
||||
.eq(CrmAchievementDO::getConfig, type)
|
||||
.in(CrmAchievementDO::getTypeId, typeIds)
|
||||
.eq(CrmAchievementDO::getYear, year)
|
||||
);
|
||||
Map<Long, List<CrmAchievementDO>> map = crmAchievementDOS.stream().collect(Collectors.groupingBy(CrmAchievementDO::getTypeId));
|
||||
achieveRespVOS.forEach(vo -> {
|
||||
List<CrmAchievementDO> doList = map.get(vo.getId());
|
||||
CrmAchievementDO crmAchievementDO = null;
|
||||
if (CollUtil.isNotEmpty(doList)) {
|
||||
crmAchievementDO = doList.get(0);
|
||||
}
|
||||
if (crmAchievementDO == null) {
|
||||
crmAchievementDO = CrmAchievementDO.builder()
|
||||
.january(BigDecimal.ZERO).february(BigDecimal.ZERO).march(BigDecimal.ZERO)
|
||||
|
@ -133,6 +133,8 @@ public class CrmRecordServiceImpl implements CrmRecordService {
|
||||
}
|
||||
PageResult<CrmRecordDO> pageResult = recordMapper.selectPage(pageReqVO, ids);
|
||||
PageResult<CrmRecordRespVO> pageResult1 = BeanUtils.toBean(pageResult, CrmRecordRespVO.class);
|
||||
|
||||
|
||||
for (CrmRecordRespVO crmRecordRespVO : pageResult1.getList()) {
|
||||
DictDataRespDTO dto = dictDataApi.getDictData("follow_status", crmRecordRespVO.getRecordType().toString()).getCheckedData();
|
||||
crmRecordRespVO.setRecordTypeName(dto.getLabel());
|
||||
|
@ -23,9 +23,9 @@ public class DeptApiVO {
|
||||
*/
|
||||
private Long parentId;
|
||||
/**
|
||||
* 机构类型 | 0公司 1部门
|
||||
* 机构类型 | 字典值参考 system_dept_type
|
||||
*/
|
||||
private Integer type;
|
||||
private String type;
|
||||
/**
|
||||
* 部门层级
|
||||
*/
|
||||
|
@ -8,7 +8,6 @@ import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
|
@ -171,6 +171,7 @@
|
||||
resultType="cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO">
|
||||
select
|
||||
a.*
|
||||
from system_users AS a
|
||||
<if test="menuList != null and menuList.size() > 0">
|
||||
LEFT JOIN system_user_role AS b ON a.id = b.user_id
|
||||
AND b.deleted = 0
|
||||
|
Loading…
Reference in New Issue
Block a user