Commit 05d7f0ee by chamberone

Merge branch 'develop' of https://zhangguoping@gitlab.dituhui.com/bsh/project/pr…

…oject.git into develop
2 parents 7b3aff47 2779f4d0
...@@ -4,31 +4,38 @@ import lombok.Data; ...@@ -4,31 +4,38 @@ import lombok.Data;
@Data @Data
public class OrderServiceList { public class OrderServiceList {
private String orderId; private String orderId;
private String type; private String type;
private String brand; private String brand;
private String skill; private String skill;
private String faultDescribe; private String faultDescribe;
private String name; private String name;
private String phone; private String phone;
private String address; private String address;
private String x; private String x;
private String y; private String y;
private Integer priority; private Integer priority;
private Integer takeTime; private Integer takeTime;
private String expectTimeBegin; private String expectTimeBegin;
private String expectTimeEnd; private String expectTimeEnd;
private String expectTimeDesc; private String expectTimeDesc;
private String source; private String source;
private String description; private String description;
private String orgBranchName; private String orgBranchName;
private Integer engineerNum; private Integer engineerNum;
private String engineerNames; private String engineerNames;
private String dispatcher; private String dispatcher;
private String appointmentTime; private String appointmentTime;
private String appointmentType; private String appointmentType;
private String appointmentStatus; private String appointmentStatus;
private String orderStatus; private String orderStatus;
private String serviceStatus; private String serviceStatus;
private String createTime; private String createTime;
/**
* bean优先级,例如:紧急、正常
*/
private String beanPriority;
} }
...@@ -24,177 +24,179 @@ import java.util.stream.Collectors; ...@@ -24,177 +24,179 @@ import java.util.stream.Collectors;
@Service @Service
public class OrderServiceListServiceImpl implements OrderServiceListService { public class OrderServiceListServiceImpl implements OrderServiceListService {
@Autowired @Autowired
private OrderInfoMPDao orderInfoMPDao; private OrderInfoMPDao orderInfoMPDao;
@Autowired @Autowired
private EngineerInfoDao engineerInfoDao; private EngineerInfoDao engineerInfoDao;
@Autowired @Autowired
private OrgBranchDao orgBranchDao; private OrgBranchDao orgBranchDao;
@Transactional @Transactional
@Override @Override
public Result<OrderServiceListResp> getOrderServiceList(OrderServiceListReq reqDTO) throws BusinessException { public Result<OrderServiceListResp> getOrderServiceList(OrderServiceListReq reqDTO) throws BusinessException {
//分页 //分页
Page<OrderInfo> pg = new Page(reqDTO.getPage(), reqDTO.getSize()); Page<OrderInfo> pg = new Page(reqDTO.getPage(), reqDTO.getSize());
LocalDate startDate = TimeUtils.IsoDate2LocalDate(reqDTO.getStartDate()); LocalDate startDate = TimeUtils.IsoDate2LocalDate(reqDTO.getStartDate());
LocalDate endDate = TimeUtils.IsoDate2LocalDate(reqDTO.getEndDate()); LocalDate endDate = TimeUtils.IsoDate2LocalDate(reqDTO.getEndDate());
LambdaQueryWrapper<OrderInfo> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OrderInfo> lqw = new LambdaQueryWrapper<>();
lqw.eq(reqDTO.getLevelType().equals("cluster"), OrderInfo::getOrgClusterId, reqDTO.getLevelValue()); lqw.eq(reqDTO.getLevelType().equals("cluster"), OrderInfo::getOrgClusterId, reqDTO.getLevelValue());
lqw.eq(reqDTO.getLevelType().equals("branch"), OrderInfo::getOrgBranchId, reqDTO.getLevelValue()); lqw.eq(reqDTO.getLevelType().equals("branch"), OrderInfo::getOrgBranchId, reqDTO.getLevelValue());
lqw.eq(reqDTO.getLevelType().equals("group"), OrderInfo::getOrgGroupId, reqDTO.getLevelValue()); lqw.eq(reqDTO.getLevelType().equals("group"), OrderInfo::getOrgGroupId, reqDTO.getLevelValue());
lqw.ge(OrderInfo::getDt, startDate); //预约开始日期 lqw.ge(OrderInfo::getDt, startDate); //预约开始日期
lqw.le(OrderInfo::getDt, endDate); //预约开始日期 lqw.le(OrderInfo::getDt, endDate); //预约开始日期
//筛选项 //筛选项
lqw.eq(StringUtils.isNotEmpty(reqDTO.getPhone()), OrderInfo::getPhone, reqDTO.getPhone()); lqw.eq(StringUtils.isNotEmpty(reqDTO.getPhone()), OrderInfo::getPhone, reqDTO.getPhone());
lqw.eq(StringUtils.isNotEmpty(reqDTO.getOrderId()), OrderInfo::getOrderId, reqDTO.getOrderId()); lqw.eq(StringUtils.isNotEmpty(reqDTO.getOrderId()), OrderInfo::getOrderId, reqDTO.getOrderId());
lqw.in(ListUtils.isNotEmpty(reqDTO.getBranchIds()), OrderInfo::getOrgBranchId, reqDTO.getBranchIds()); lqw.in(ListUtils.isNotEmpty(reqDTO.getBranchIds()), OrderInfo::getOrgBranchId, reqDTO.getBranchIds());
lqw.in(ListUtils.isNotEmpty(reqDTO.getGroupIds()), OrderInfo::getOrgGroupId, reqDTO.getGroupIds()); lqw.in(ListUtils.isNotEmpty(reqDTO.getGroupIds()), OrderInfo::getOrgGroupId, reqDTO.getGroupIds());
lqw.in(ListUtils.isNotEmpty(reqDTO.getTeamIds()), OrderInfo::getOrgTeamId, reqDTO.getTeamIds()); lqw.in(ListUtils.isNotEmpty(reqDTO.getTeamIds()), OrderInfo::getOrgTeamId, reqDTO.getTeamIds());
lqw.in(ListUtils.isNotEmpty(reqDTO.getAppointmentType()), OrderInfo::getAppointmentMethod, reqDTO.getAppointmentType()); lqw.in(ListUtils.isNotEmpty(reqDTO.getAppointmentType()), OrderInfo::getAppointmentMethod, reqDTO.getAppointmentType());
lqw.in(ListUtils.isNotEmpty(reqDTO.getAppointmentStatus()), OrderInfo::getAppointmentStatus, reqDTO.getAppointmentStatus()); lqw.in(ListUtils.isNotEmpty(reqDTO.getAppointmentStatus()), OrderInfo::getAppointmentStatus, reqDTO.getAppointmentStatus());
if (ListUtils.isNotEmpty(reqDTO.getPriorities())) { if (ListUtils.isNotEmpty(reqDTO.getPriorities())) {
List<Integer> p = reqDTO.getPriorities(); List<Integer> p = reqDTO.getPriorities();
if (p.contains(0) && p.contains(1)) { if (p.contains(0) && p.contains(1)) {
lqw.ge(OrderInfo::getPriority, 1); lqw.ge(OrderInfo::getPriority, 1);
} else if (p.contains(0) && !p.contains(1)) { } else if (p.contains(0) && !p.contains(1)) {
lqw.le(OrderInfo::getPriority, 1); lqw.le(OrderInfo::getPriority, 1);
} else if (p.contains(1) && !p.contains(0)) { } else if (p.contains(1) && !p.contains(0)) {
lqw.ge(OrderInfo::getPriority, 5); lqw.ge(OrderInfo::getPriority, 5);
} }
} }
if (ListUtils.isNotEmpty(reqDTO.getEngineerCodes())){ if (ListUtils.isNotEmpty(reqDTO.getEngineerCodes())) {
lqw.and(w -> lqw.and(w ->
w.in(OrderInfo::getEngineerCode, reqDTO.getEngineerCodes()) w.in(OrderInfo::getEngineerCode, reqDTO.getEngineerCodes())
.or() .or()
.in(OrderInfo::getEngineerCodeSub, reqDTO.getEngineerCodes()) .in(OrderInfo::getEngineerCodeSub, reqDTO.getEngineerCodes())
); );
} }
if (ListUtils.isNotEmpty(reqDTO.getTypeCategory())) { if (ListUtils.isNotEmpty(reqDTO.getTypeCategory())) {
String types = "'" + String.join("','", reqDTO.getTypeCategory()) + "'"; String types = "'" + String.join("','", reqDTO.getTypeCategory()) + "'";
String sql = String.format("select 1 from skill_info sk where sk.brand = order_info.brand and sk.type = order_info.type and sk.skill = order_info.skill and type_category in (%s)", types); String sql = String.format("select 1 from skill_info sk where sk.brand = order_info.brand and sk.type = order_info.type and sk.skill = order_info.skill and type_category in (%s)", types);
lqw.exists(sql); lqw.exists(sql);
} }
if (ListUtils.isNotEmpty(reqDTO.getSkillCategory())) { if (ListUtils.isNotEmpty(reqDTO.getSkillCategory())) {
String skills = "'" + String.join("','", reqDTO.getSkillCategory()) + "'"; String skills = "'" + String.join("','", reqDTO.getSkillCategory()) + "'";
String sql = String.format("select 1 from skill_info sk where sk.brand = order_info.brand and sk.type = order_info.type and sk.skill = order_info.skill and skill_category in (%s)", skills); String sql = String.format("select 1 from skill_info sk where sk.brand = order_info.brand and sk.type = order_info.type and sk.skill = order_info.skill and skill_category in (%s)", skills);
lqw.exists(sql); lqw.exists(sql);
} }
if (ListUtils.isNotEmpty(reqDTO.getGroupCategory())) { if (ListUtils.isNotEmpty(reqDTO.getGroupCategory())) {
String groupCategory = reqDTO.getGroupCategory().stream().map(Object::toString).collect(Collectors.joining(",")); String groupCategory = reqDTO.getGroupCategory().stream().map(Object::toString).collect(Collectors.joining(","));
String sql = String.format("select 1 from org_group g where g.group_id = order_info.org_group_id and g.category in (%s)", groupCategory); String sql = String.format("select 1 from org_group g where g.group_id = order_info.org_group_id and g.category in (%s)", groupCategory);
lqw.exists(sql); lqw.exists(sql);
} }
// 查询工单表列表 // 查询工单表列表
orderInfoMPDao.selectPage(pg, lqw); orderInfoMPDao.selectPage(pg, lqw);
List<OrderInfo> orders = pg.getRecords(); List<OrderInfo> orders = pg.getRecords();
// 获取技术员姓名 // 获取技术员姓名
Map<String, String> engineerNames = this.getEngineerNames(orders); Map<String, String> engineerNames = this.getEngineerNames(orders);
// 获取branch // 获取branch
Map<String, String> branchNames = this.getBranchNames(orders); Map<String, String> branchNames = this.getBranchNames(orders);
// 获取工程师工号列表 // 获取工程师工号列表
List<OrderServiceList> content = new ArrayList<>(); List<OrderServiceList> content = new ArrayList<>();
for (OrderInfo o : orders) { for (OrderInfo o : orders) {
OrderServiceList record = new OrderServiceList(); OrderServiceList record = new OrderServiceList();
record.setOrderId(o.getOrderId()); record.setOrderId(o.getOrderId());
record.setType(o.getType()); record.setType(o.getType());
record.setBrand(o.getBrand()); record.setBrand(o.getBrand());
record.setSkill(o.getSkill()); record.setSkill(o.getSkill());
record.setTakeTime(o.getTakeTime()); record.setTakeTime(o.getTakeTime());
record.setFaultDescribe(o.getFaultDescribe()); record.setFaultDescribe(o.getFaultDescribe());
record.setName(o.getName()); record.setName(o.getName());
record.setPhone(o.getPhone()); record.setPhone(o.getPhone());
record.setAddress(String.format("%s-%s-%s", o.getCity(), o.getCounty(), o.getAddress())); record.setAddress(String.format("%s-%s-%s", o.getCity(), o.getCounty(), o.getAddress()));
record.setX(o.getX()); record.setX(o.getX());
record.setY(o.getY()); record.setY(o.getY());
record.setSource(o.getSource()); record.setSource(o.getSource());
record.setDescription(o.getDescription()); record.setDescription(o.getDescription());
record.setPriority(o.getPriority()); record.setPriority(o.getPriority());
record.setOrgBranchName(branchNames.getOrDefault(o.getOrgBranchId(), "")); record.setOrgBranchName(branchNames.getOrDefault(o.getOrgBranchId(), ""));
// 获取工程师信息 // 获取工程师信息
List<String> names = this.getOrderEngineerNames(o.getEngineerCode(), o.getEngineerCodeSub(), engineerNames); List<String> names = this.getOrderEngineerNames(o.getEngineerCode(), o.getEngineerCodeSub(), engineerNames);
record.setEngineerNum(names.size()); //工程师数量 record.setEngineerNum(names.size()); //工程师数量
record.setEngineerNames(String.join("、", names)); //工程师姓名列表 record.setEngineerNames(String.join("、", names)); //工程师姓名列表
record.setExpectTimeBegin(TimeUtils.IsoTimestamp2DateTime(o.getExpectTimeBegin())); record.setExpectTimeBegin(TimeUtils.IsoTimestamp2DateTime(o.getExpectTimeBegin()));
record.setExpectTimeEnd(TimeUtils.IsoTimestamp2DateTime(o.getExpectTimeEnd())); record.setExpectTimeEnd(TimeUtils.IsoTimestamp2DateTime(o.getExpectTimeEnd()));
record.setExpectTimeDesc(o.getExpectTimeDesc()); record.setExpectTimeDesc(o.getExpectTimeDesc());
record.setAppointmentType(o.getAppointmentMethod()); record.setAppointmentType(o.getAppointmentMethod());
record.setAppointmentStatus(o.getAppointmentStatus()); record.setAppointmentStatus(o.getAppointmentStatus());
record.setOrderStatus(o.getOrderStatus()); record.setOrderStatus(o.getOrderStatus());
record.setServiceStatus(o.getServiceStatus()); record.setServiceStatus(o.getServiceStatus());
record.setDispatcher(o.getDispatcher()); record.setDispatcher(o.getDispatcher());
record.setCreateTime(TimeUtils.IsoTimestamp2DateTime(o.getCreateTime())); record.setCreateTime(TimeUtils.IsoTimestamp2DateTime(o.getCreateTime()));
content.add(record); record.setBeanPriority(o.getBeanPriority());
}
content.add(record);
// 组装 }
OrderServiceListResp res = new OrderServiceListResp();
res.setTotal(pg.getTotal()); // 组装
res.setPages(pg.getPages()); OrderServiceListResp res = new OrderServiceListResp();
res.setPageCurrent(pg.getCurrent()); res.setTotal(pg.getTotal());
res.setPageSize(pg.getSize()); res.setPages(pg.getPages());
res.setContent(content); res.setPageCurrent(pg.getCurrent());
res.setPageSize(pg.getSize());
return Result.success(res); res.setContent(content);
}
return Result.success(res);
private Map<String, String> getEngineerNames(List<OrderInfo> orders) { }
// 获取技术员姓名
Set<String> engineerCodes = new HashSet<>(); private Map<String, String> getEngineerNames(List<OrderInfo> orders) {
for(OrderInfo r: orders){ // 获取技术员姓名
if(StringUtils.isNotEmpty(r.getEngineerCode())){ Set<String> engineerCodes = new HashSet<>();
engineerCodes.add(r.getEngineerCode()); for (OrderInfo r : orders) {
} if (StringUtils.isNotEmpty(r.getEngineerCode())) {
if(StringUtils.isNotEmpty(r.getEngineerCodeSub())){ engineerCodes.add(r.getEngineerCode());
engineerCodes.add(r.getEngineerCodeSub()); }
} if (StringUtils.isNotEmpty(r.getEngineerCodeSub())) {
} engineerCodes.add(r.getEngineerCodeSub());
if(engineerCodes.isEmpty()){ }
return new HashMap<>(); }
} if (engineerCodes.isEmpty()) {
List<EngineerInfoEntity> engineers = engineerInfoDao.findByEngineerCodeIn(new ArrayList<>(engineerCodes)); return new HashMap<>();
return engineers.stream().collect(Collectors.toMap(EngineerInfoEntity::getEngineerCode, EngineerInfoEntity::getName)); }
} List<EngineerInfoEntity> engineers = engineerInfoDao.findByEngineerCodeIn(new ArrayList<>(engineerCodes));
return engineers.stream().collect(Collectors.toMap(EngineerInfoEntity::getEngineerCode, EngineerInfoEntity::getName));
private Map<String, String> getBranchNames(List<OrderInfo> orders){ }
// 获取branch名称
Set<String> branches = new HashSet<>(); private Map<String, String> getBranchNames(List<OrderInfo> orders) {
for(OrderInfo r: orders){ // 获取branch名称
if(StringUtils.isNotEmpty(r.getOrgBranchId())){ Set<String> branches = new HashSet<>();
branches.add(r.getOrgBranchId()); for (OrderInfo r : orders) {
} if (StringUtils.isNotEmpty(r.getOrgBranchId())) {
} branches.add(r.getOrgBranchId());
if(branches.isEmpty()){ }
return new HashMap<>(); }
} if (branches.isEmpty()) {
List<OrgBranchEntity> records = orgBranchDao.findByBranchIdIn(new ArrayList<>(branches)); return new HashMap<>();
return records.stream().collect(Collectors.toMap(OrgBranchEntity::getBranchId, OrgBranchEntity::getBranchName)); }
} List<OrgBranchEntity> records = orgBranchDao.findByBranchIdIn(new ArrayList<>(branches));
return records.stream().collect(Collectors.toMap(OrgBranchEntity::getBranchId, OrgBranchEntity::getBranchName));
private List<String> getOrderEngineerNames(String engineerCode, String engineerCodeSub, Map<String,String> engineerNames){ }
// 获取订单技术员姓名信息
List<String> names = new ArrayList<>(); private List<String> getOrderEngineerNames(String engineerCode, String engineerCodeSub, Map<String, String> engineerNames) {
for(String code: List.of(engineerCode, engineerCodeSub)){ // 获取订单技术员姓名信息
String name = engineerNames.getOrDefault(code, ""); List<String> names = new ArrayList<>();
if(StringUtils.isNotEmpty(name)){ for (String code : List.of(engineerCode, engineerCodeSub)) {
names.add(name); String name = engineerNames.getOrDefault(code, "");
} if (StringUtils.isNotEmpty(name)) {
} names.add(name);
return names; }
} }
return names;
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!