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