Commit 06b95e5c by wangli

修改

1 parent cc38a216
......@@ -2,8 +2,6 @@ package com.dituhui.pea.order.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dituhui.pea.common.BusinessException;
import com.dituhui.pea.common.Result;
import com.dituhui.pea.order.common.ListUtils;
......@@ -13,8 +11,13 @@ import com.dituhui.pea.order.dto.*;
import com.dituhui.pea.order.entity.*;
import com.dituhui.pea.order.service.ScheduleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import javax.persistence.criteria.Predicate;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
......@@ -30,22 +33,19 @@ public class ScheduleServiceImpl implements ScheduleService {
private OrderInfoDao orderInfoDao;
@Autowired
private OrgTeamMPDao orgTeamMPDao;
private OrgTeamDao orgTeamDao;
@Autowired
private OrgTeamEngineerDao orgTeamEngineerDao;
@Autowired
private OrgGroupMPDao orgGroupMPDao;
@Autowired
private OrgGroupDao orgGroupDao;
@Autowired
private EngineerInfoDao engineerInfoDao;
@Autowired
private SkillInfoMPDao skillInfoMPDao;
private SkillInfoDao skillInfoDao;
@Override
public Result<?> getScheduleSummary(LocalDate date, String levelType, List<String> levelValue) {
......@@ -76,8 +76,8 @@ public class ScheduleServiceImpl implements ScheduleService {
// 排班结果
// 获取team列表, 以team排序分页
IPage<OrgTeam> pg = this.queryOrgTeams(page, size, levelType, levelIds);
List<OrgTeam> orgTeams = pg.getRecords();
Page<OrgTeamEntity> pg = this.queryOrgTeams(page, size, levelType, levelIds);
List<OrgTeamEntity> orgTeams = pg.getContent();
List<ScheduleOverviewResp.Team> teams = new ArrayList<>();
......@@ -85,7 +85,7 @@ public class ScheduleServiceImpl implements ScheduleService {
HashMap<String, String> skillMapping = this.getSkillMapping();
// 获取工单列表
for (OrgTeam t : orgTeams) {
for (OrgTeamEntity t : orgTeams) {
ScheduleOverviewResp.Team team = new ScheduleOverviewResp.Team();
team.setName(t.getTeamName());
team.setValue(t.getTeamId());
......@@ -137,12 +137,11 @@ public class ScheduleServiceImpl implements ScheduleService {
teams.add(team);
}
ScheduleOverviewResp res = new ScheduleOverviewResp();
res.setTotal(pg.getTotal());
res.setPages(pg.getPages());
res.setTotal(pg.getTotalElements());
res.setPages(pg.getTotalPages());
res.setPageSize(pg.getSize());
res.setPageCurrent(pg.getCurrent());
res.setPageCurrent(pg.getNumber() + 1);
res.setContent(teams);
return Result.success(res);
}
......@@ -230,20 +229,25 @@ public class ScheduleServiceImpl implements ScheduleService {
return Result.success(res);
}
private IPage<OrgTeam> queryOrgTeams(long page, long size, String levelType, List<String> levelIds) {
IPage<OrgTeam> pg = new Page<>(page, size);
public Page<OrgTeamEntity> queryOrgTeams(long page, long size, String levelType, List<String> levelIds) {
Pageable pageable = PageRequest.of((int) page, (int) size);
LambdaQueryWrapper<OrgTeam> lqw = new LambdaQueryWrapper<>();
lqw.eq(OrgTeam::getStatus, 1);
lqw.in(levelType.equals("cluster"), OrgTeam::getClusterId, levelIds);
lqw.in(levelType.equals("branch"), OrgTeam::getBranchId, levelIds);
lqw.in(levelType.equals("group"), OrgTeam::getGroupId, levelIds);
Specification<OrgTeamEntity> spec = (root, query, cb) -> {
Predicate statusPredicate = cb.equal(root.get("status"), 1);
lqw.orderByAsc(OrgTeam::getTeamId); // 根据teamId排序
Predicate levelPredicate = null;
if ("cluster".equals(levelType)) {
levelPredicate = root.get("clusterId").in(levelIds);
} else if ("branch".equals(levelType)) {
levelPredicate = root.get("branchId").in(levelIds);
} else if ("group".equals(levelType)) {
levelPredicate = root.get("groupId").in(levelIds);
}
orgTeamMPDao.selectPage(pg, lqw);
return cb.and(statusPredicate, levelPredicate);
};
return pg;
return orgTeamDao.findAll(spec, pageable);
}
private List<OrderInfo> queryOrderRequests(String teamId, LocalDate date) {
......@@ -281,13 +285,9 @@ public class ScheduleServiceImpl implements ScheduleService {
}
private HashMap<String, String> getSkillMapping() {
LambdaQueryWrapper<SkillInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(SkillInfo::getSkill, SkillInfo::getSkillCategory)
.groupBy(SkillInfo::getSkill, SkillInfo::getSkillCategory);
List<SkillInfo> skillList = skillInfoMPDao.selectList(queryWrapper);
return skillList.stream().collect(Collectors.toMap(
SkillInfo::getSkill, SkillInfo::getSkillCategory, (oldValue, newValue) -> newValue, HashMap::new));
List<SkillInfoEntity> skills = skillInfoDao.findAll();
return skills.stream().collect(Collectors.toMap(
SkillInfoEntity::getSkill, SkillInfoEntity::getSkillCategory, (oldValue, newValue) -> newValue, HashMap::new));
}
private HashMap<String, Integer> queryCountBySkill(LocalDate date, String levelType, List<String> levelValue) {
......@@ -384,29 +384,23 @@ public class ScheduleServiceImpl implements ScheduleService {
private HashMap<String, String> getSkillCategoryMapping() {
// 获取skill与skillCategory(面向前端)的映射
HashMap<String, String> skillMap = new HashMap<>();
QueryWrapper<SkillInfo> wrapper = new QueryWrapper<>();
wrapper.select("skill, skill_category")
.lambda()
.groupBy(SkillInfo::getSkill, SkillInfo::getSkillCategory);
List<Map<String, Object>> results = skillInfoMPDao.selectMaps(wrapper);
for (Map<String, Object> result : results) {
String skill = (String) result.get("skill");
String skillCategory = (String) result.get("skill_category");
skillMap.put(skill, skillCategory);
}
return skillMap;
List<SkillInfoEntity> skillList = skillInfoDao.findAll();
return skillList.stream()
.collect(Collectors.toMap(
SkillInfoEntity::getSkill, SkillInfoEntity::getSkillCategory, (oldValue, newValue) -> newValue, HashMap::new));
}
private HashMap<String, Integer> getGroupCategoryMapping(String levelType, List<String> levelValue) {
HashMap<String, Integer> map = new HashMap<>();
LambdaQueryWrapper<OrgGroup> lqw = new LambdaQueryWrapper<>();
lqw.select(OrgGroup::getGroupId, OrgGroup::getCategory);
lqw.in(levelType.equals("cluster"), OrgGroup::getClusterId, levelValue);
lqw.in(levelType.equals("branch"), OrgGroup::getBranchId, levelValue);
lqw.in(levelType.equals("group"), OrgGroup::getGroupId, levelValue);
List<OrgGroup> groups = orgGroupMPDao.selectList(lqw);
for (OrgGroup g : groups) {
List<OrgGroupEntity> groups = new ArrayList<>();
if(levelType.equals("cluster")){
groups = orgGroupDao.findAllByClusterIdIn(levelValue);
} else if (levelType.equals("branch")){
groups = orgGroupDao.findAllByBranchIdIn(levelValue);
} else if (levelType.equals("group")){
groups = orgGroupDao.findAllByGroupIdIn(levelValue);
}
for (OrgGroupEntity g : groups) {
map.put(g.getGroupId(), g.getCategory());
}
return map;
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!