Commit beb4ea05 by huangjinxin

fix:格式化代码

1 parent 05eb6669
...@@ -20,334 +20,335 @@ import java.util.stream.Collectors; ...@@ -20,334 +20,335 @@ import java.util.stream.Collectors;
@Service @Service
public class OrderServiceDetailImpl implements OrderServiceDetail { public class OrderServiceDetailImpl implements OrderServiceDetail {
@Autowired @Autowired
private OrderInfoDao orderInfoDao; private OrderInfoDao orderInfoDao;
@Autowired @Autowired
private EngineerInfoDao engineerInfoDao; private EngineerInfoDao engineerInfoDao;
@Autowired @Autowired
private OrderEventDao orderEventDao; private OrderEventDao orderEventDao;
@Autowired @Autowired
private OrgGroupDao orgGroupDao; private OrgGroupDao orgGroupDao;
@Autowired @Autowired
private EngineerSkillGroupDao engineerSkillGroupDao; private EngineerSkillGroupDao engineerSkillGroupDao;
@Autowired @Autowired
private SkillInfoDao skillInfoDao; private SkillInfoDao skillInfoDao;
@Transactional @Transactional
@Override @Override
public Result<?> getOrderServiceDetail(String orderId) { public Result<?> getOrderServiceDetail(String orderId) {
OrderInfoEntity order = orderInfoDao.getByOrderId(orderId); OrderInfoEntity order = orderInfoDao.getByOrderId(orderId);
List<KV> items = this.packOrderDetail(order); List<KV> items = this.packOrderDetail(order);
// 设置订单详情信息 // 设置订单详情信息
OrderServiceDetailResp.OrderDetail detail = new OrderServiceDetailResp.OrderDetail(); OrderServiceDetailResp.OrderDetail detail = new OrderServiceDetailResp.OrderDetail();
detail.setAddress(String.format("%s%s%s", order.getCity(), order.getCounty(), order.getAddress())); detail.setAddress(String.format("%s%s%s", order.getCity(), order.getCounty(), order.getAddress()));
detail.setLocation(String.format("%s,%s", order.getX(), order.getY())); detail.setLocation(String.format("%s,%s", order.getX(), order.getY()));
detail.setDate(TimeUtils.IsoLocalDate2String(order.getDt())); detail.setDate(TimeUtils.IsoLocalDate2String(order.getDt()));
detail.setBrand(order.getBrand()); detail.setBrand(order.getBrand());
detail.setType(order.getType()); detail.setType(order.getType());
detail.setSkill(order.getSkill()); detail.setSkill(order.getSkill());
OrderServiceDetailResp res = new OrderServiceDetailResp(); OrderServiceDetailResp res = new OrderServiceDetailResp();
res.setOrderId(orderId); res.setOrderId(orderId);
res.setRisk(""); res.setRisk("");
res.setRiskDesc(""); res.setRiskDesc("");
res.setStatusDesc("正常"); res.setStatusDesc("正常");
res.setStatus(order.getOrderStatus()); res.setStatus(order.getOrderStatus());
res.setAppointmentStatus(order.getAppointmentStatus()); res.setAppointmentStatus(order.getAppointmentStatus());
res.setOrderStatus(order.getOrderStatus()); res.setOrderStatus(order.getOrderStatus());
res.setServiceStatus(order.getServiceStatus()); res.setServiceStatus(order.getServiceStatus());
res.setLocation(String.format("%s,%s", order.getX(), order.getY())); res.setLocation(String.format("%s,%s", order.getX(), order.getY()));
res.setReschedulingParams(detail); res.setReschedulingParams(detail);
res.setItems(items); res.setItems(items);
return Result.success(res); return Result.success(res);
} }
@Transactional @Transactional
@Override @Override
public Result<?> getOrderServiceDynamics(String orderId) { public Result<?> getOrderServiceDynamics(String orderId) {
// 获取服务单动态 // 获取服务单动态
List<OrderEventEntity> events = orderEventDao.findByOrderId(orderId); List<OrderEventEntity> events = orderEventDao.findByOrderId(orderId);
// pack 动态items // pack 动态items
List<OrderServiceDynamicsResp.Dynamics> dynamics = this.packOrderDynamics(events); List<OrderServiceDynamicsResp.Dynamics> dynamics = this.packOrderDynamics(events);
OrderServiceDynamicsResp res = new OrderServiceDynamicsResp(); OrderServiceDynamicsResp res = new OrderServiceDynamicsResp();
res.setOrderId(orderId); res.setOrderId(orderId);
res.setDynamics(dynamics); res.setDynamics(dynamics);
return Result.success(res); return Result.success(res);
} }
@Transactional @Transactional
@Override @Override
public Result<?> getOrderAppointmentList(String orderId) throws BusinessException { public Result<?> getOrderAppointmentList(String orderId) throws BusinessException {
// 获取预约单里列表 // 获取预约单里列表
OrderAppointmentListResp res = new OrderAppointmentListResp(); OrderAppointmentListResp res = new OrderAppointmentListResp();
// 查询预约单列表 // 查询预约单列表
List<OrderInfoEntity> orders = orderInfoDao.findByOrderId(orderId); List<OrderInfoEntity> orders = orderInfoDao.findByOrderId(orderId);
if (orders.isEmpty()) { if (orders.isEmpty()) {
// 没有指派单列表,返回 // 没有指派单列表,返回
res.setOrderId(orderId); res.setOrderId(orderId);
res.setOrders(new ArrayList<>()); res.setOrders(new ArrayList<>());
return Result.success(res); return Result.success(res);
} }
// 获取工程师基础信息列表 // 获取工程师基础信息列表
Set<String> set = new HashSet<>(); Set<String> set = new HashSet<>();
orders.stream().map(OrderInfoEntity::getEngineerCode).forEach(set::add); orders.stream().map(OrderInfoEntity::getEngineerCode).forEach(set::add);
orders.stream().map(OrderInfoEntity::getEngineerCodeSub).forEach(set::add); orders.stream().map(OrderInfoEntity::getEngineerCodeSub).forEach(set::add);
List<String> engineerCodes = new ArrayList<>(set); List<String> engineerCodes = new ArrayList<>(set);
HashMap<String, EngineerInfoEntity> egInfo = this.getEngineerInfos(engineerCodes); HashMap<String, EngineerInfoEntity> egInfo = this.getEngineerInfos(engineerCodes);
// 获取groupIds 和 group信息 // 获取groupIds 和 group信息
List<String> groupIds = egInfo.values().stream().map(EngineerInfoEntity::getGroupId).collect(Collectors.toList()); List<String> groupIds = egInfo.values().stream().map(EngineerInfoEntity::getGroupId).collect(Collectors.toList());
HashMap<String, OrgGroupEntity> groups = this.queryOrgGroups(groupIds); HashMap<String, OrgGroupEntity> groups = this.queryOrgGroups(groupIds);
// 获取工程师技能列表<engineerCode, skills> // 获取工程师技能列表<engineerCode, skills>
Map<String, String> egSkill = this.getEngineerSkills(engineerCodes); Map<String, String> egSkill = this.getEngineerSkills(engineerCodes);
Comparator<OrderInfoEntity> dtDesc = Comparator.comparing(OrderInfoEntity::getDt).reversed(); Comparator<OrderInfoEntity> dtDesc = Comparator.comparing(OrderInfoEntity::getDt).reversed();
List<OrderInfoEntity> results = orders.stream().sorted(dtDesc).collect(Collectors.toList()); List<OrderInfoEntity> results = orders.stream().sorted(dtDesc).collect(Collectors.toList());
LocalDate lastDt = results.get(0).getDt(); //最新预约 LocalDate lastDt = results.get(0).getDt(); //最新预约
List<OrderAppointmentListResp.OrderAppointment> items = new ArrayList<>(); List<OrderAppointmentListResp.OrderAppointment> items = new ArrayList<>();
for (OrderInfoEntity o : results) { for (OrderInfoEntity o : results) {
EngineerInfoEntity eg = egInfo.getOrDefault(o.getEngineerCode(), null); EngineerInfoEntity eg = egInfo.getOrDefault(o.getEngineerCode(), null);
if(eg == null) { if (eg == null) {
log.warn("未获得工程师{}基础信息, 订单:{}", o.getEngineerCode(), o.getOrderId()); log.warn("未获得工程师{}基础信息, 订单:{}", o.getEngineerCode(), o.getOrderId());
continue; continue;
} }
String skill = egSkill.getOrDefault(o.getEngineerCode(), null); String skill = egSkill.getOrDefault(o.getEngineerCode(), null);
if(skill == null) { if (skill == null) {
log.warn("未获得工程师{}基础技能, 订单:{}", o.getEngineerCode(), o.getOrderId()); log.warn("未获得工程师{}基础技能, 订单:{}", o.getEngineerCode(), o.getOrderId());
} }
// 获取工程师姓名 // 获取工程师姓名
String engineerName = (eg != null) ? eg.getName() : o.getEngineerCode(); String engineerName = (eg != null) ? eg.getName() : o.getEngineerCode();
// 获取title // 获取title
String title = engineerName; String title = engineerName;
if (o.getDt().isBefore(lastDt)) { if (o.getDt().isBefore(lastDt)) {
title = String.format("%s_%s", engineerName, TimeUtils.IsoLocalDate2String(o.getDt())); title = String.format("%s_%s", engineerName, TimeUtils.IsoLocalDate2String(o.getDt()));
} }
OrderAppointmentListResp.OrderAppointment item = new OrderAppointmentListResp.OrderAppointment(); OrderAppointmentListResp.OrderAppointment item = new OrderAppointmentListResp.OrderAppointment();
item.setTitle(title); item.setTitle(title);
item.setEngineerCode(o.getEngineerCode()); item.setEngineerCode(o.getEngineerCode());
item.setExpectTime(TimeUtils.IsoLocalDateTime2String(o.getExpectTimeBegin())); item.setExpectTime(TimeUtils.IsoLocalDateTime2String(o.getExpectTimeBegin()));
item.setTimelines(null); // TODO item.setTimelines(null); // TODO
item.setItems(this.packEngineerItems(eg, skill, groups.get(eg.getGroupId()))); item.setItems(this.packEngineerItems(eg, skill, groups.get(eg.getGroupId())));
items.add(item); items.add(item);
} }
res.setOrderId(orderId); res.setOrderId(orderId);
res.setOrders(items); res.setOrders(items);
return Result.success(res); return Result.success(res);
} }
@Transactional @Transactional
@Override @Override
public Result<?> getOrderTeamBlock(String orderId) { public Result<?> getOrderTeamBlock(String orderId) {
List<String> block = new ArrayList<>(); List<String> block = new ArrayList<>();
// 获取订单详情 // 获取订单详情
OrderInfoEntity order = orderInfoDao.getByOrderId(orderId); OrderInfoEntity order = orderInfoDao.getByOrderId(orderId);
OrderTeamBlockResp res = new OrderTeamBlockResp(); OrderTeamBlockResp res = new OrderTeamBlockResp();
res.setOrderId(orderId); res.setOrderId(orderId);
res.setBlock(block); res.setBlock(block);
res.setLocation(String.format("%s,%s", order.getX(), order.getY())); res.setLocation(String.format("%s,%s", order.getX(), order.getY()));
res.setSkill(order.getSkill()); res.setSkill(order.getSkill());
return Result.success(res); return Result.success(res);
} }
private HashMap<String, OrgGroupEntity> queryOrgGroups(List<String> groupIds) { private HashMap<String, OrgGroupEntity> queryOrgGroups(List<String> groupIds) {
HashMap<String, OrgGroupEntity> map = new HashMap<>(); HashMap<String, OrgGroupEntity> map = new HashMap<>();
if (groupIds.isEmpty()) { if (groupIds.isEmpty()) {
return map; return map;
} }
List<OrgGroupEntity> records = orgGroupDao.findByGroupIdIn(groupIds); List<OrgGroupEntity> records = orgGroupDao.findByGroupIdIn(groupIds);
for (OrgGroupEntity r : records) { for (OrgGroupEntity r : records) {
map.put(r.getGroupId(), r); map.put(r.getGroupId(), r);
} }
return map; return map;
} }
private HashMap<String, EngineerInfoEntity> getEngineerInfos(List<String> egCodes) { private HashMap<String, EngineerInfoEntity> getEngineerInfos(List<String> egCodes) {
// 获取工程师信息列表 // 获取工程师信息列表
HashMap<String, EngineerInfoEntity> map = new HashMap<>(); HashMap<String, EngineerInfoEntity> map = new HashMap<>();
if (egCodes.isEmpty()) { if (egCodes.isEmpty()) {
return map; return map;
} }
List<EngineerInfoEntity> rows = engineerInfoDao.findByEngineerCodeIn(egCodes);; List<EngineerInfoEntity> rows = engineerInfoDao.findByEngineerCodeIn(egCodes);
for (EngineerInfoEntity row : rows) { ;
map.put(row.getEngineerCode(), row); for (EngineerInfoEntity row : rows) {
} map.put(row.getEngineerCode(), row);
return map; }
} return map;
}
private Map<String, String> getEngineerSkills(List<String> egCodes) {
// 获取工程师技能列表 private Map<String, String> getEngineerSkills(List<String> egCodes) {
// 获取工程师技能列表
Map<String, String> map = new HashMap<>();
if (egCodes.isEmpty()) { Map<String, String> map = new HashMap<>();
return map; if (egCodes.isEmpty()) {
} return map;
List<EngineerSkillGroupEntity> rows = engineerSkillGroupDao.findByEngineerCodeInAndStatus(egCodes, true); }
List<EngineerSkillGroupEntity> rows = engineerSkillGroupDao.findByEngineerCodeInAndStatus(egCodes, true);
// 根据engineerCode排序
Comparator<EngineerSkillGroupEntity> cmp = Comparator.comparing(EngineerSkillGroupEntity::getEngineerCode); // 根据engineerCode排序
List<EngineerSkillGroupEntity> sortedResults = rows.stream().sorted(cmp).collect(Collectors.toList()); Comparator<EngineerSkillGroupEntity> cmp = Comparator.comparing(EngineerSkillGroupEntity::getEngineerCode);
List<EngineerSkillGroupEntity> sortedResults = rows.stream().sorted(cmp).collect(Collectors.toList());
// 根据engineerCode分组
Map<String, List<EngineerSkillGroupEntity>> results = sortedResults.stream().collect( // 根据engineerCode分组
Collectors.groupingBy(EngineerSkillGroupEntity::getEngineerCode)); Map<String, List<EngineerSkillGroupEntity>> results = sortedResults.stream().collect(
Collectors.groupingBy(EngineerSkillGroupEntity::getEngineerCode));
// 获取所有技能
HashMap<String, String> skills = this.queryAllSkills(); // 获取所有技能
for (Map.Entry<String, List<EngineerSkillGroupEntity>> entry : results.entrySet()) { HashMap<String, String> skills = this.queryAllSkills();
String engineerCode = entry.getKey(); for (Map.Entry<String, List<EngineerSkillGroupEntity>> entry : results.entrySet()) {
List<String> engineerSkills = new ArrayList<>(); String engineerCode = entry.getKey();
for (EngineerSkillGroupEntity r : entry.getValue()) { List<String> engineerSkills = new ArrayList<>();
String skill = skills.getOrDefault(r.getSkillGroupCode(), ""); for (EngineerSkillGroupEntity r : entry.getValue()) {
if (skill.isEmpty()) { String skill = skills.getOrDefault(r.getSkillGroupCode(), "");
continue; if (skill.isEmpty()) {
} continue;
engineerSkills.add(skill); }
} engineerSkills.add(skill);
map.put(engineerCode, String.join("、", engineerSkills)); }
} map.put(engineerCode, String.join("、", engineerSkills));
return map; }
} return map;
}
private HashMap<String, String> queryAllSkills() {
HashMap<String, String> map = new HashMap<>(); private HashMap<String, String> queryAllSkills() {
List<SkillInfoEntity> records = skillInfoDao.findAll(); HashMap<String, String> map = new HashMap<>();
List<SkillInfoEntity> records = skillInfoDao.findAll();
Comparator<SkillInfoEntity> cmp = Comparator.comparing(SkillInfoEntity::getSkillGroupCode);
List<SkillInfoEntity> sortedResults = records.stream().sorted(cmp).collect(Collectors.toList()); Comparator<SkillInfoEntity> cmp = Comparator.comparing(SkillInfoEntity::getSkillGroupCode);
Map<String, List<SkillInfoEntity>> results = sortedResults.stream().collect(Collectors.groupingBy(SkillInfoEntity::getSkillGroupCode)); List<SkillInfoEntity> sortedResults = records.stream().sorted(cmp).collect(Collectors.toList());
for (Map.Entry<String, List<SkillInfoEntity>> entry : results.entrySet()) { Map<String, List<SkillInfoEntity>> results = sortedResults.stream().collect(Collectors.groupingBy(SkillInfoEntity::getSkillGroupCode));
String skillGroupCode = entry.getKey(); for (Map.Entry<String, List<SkillInfoEntity>> entry : results.entrySet()) {
HashSet<String> categories = new HashSet<>(); String skillGroupCode = entry.getKey();
for (SkillInfoEntity s : entry.getValue()) { HashSet<String> categories = new HashSet<>();
categories.add(String.format("%s%s", s.getTypeCategory(), s.getSkillCategory())); for (SkillInfoEntity s : entry.getValue()) {
} categories.add(String.format("%s%s", s.getTypeCategory(), s.getSkillCategory()));
List<String> skills = new ArrayList<>(categories); }
map.put(skillGroupCode, String.join("、", skills)); List<String> skills = new ArrayList<>(categories);
} map.put(skillGroupCode, String.join("、", skills));
return map; }
} return map;
}
private List<KV> packEngineerItems(EngineerInfoEntity eg, String skill, OrgGroupEntity group) {
// 获取工程师信息 private List<KV> packEngineerItems(EngineerInfoEntity eg, String skill, OrgGroupEntity group) {
List<KV> items = new ArrayList<>(); // 获取工程师信息
List<KV> items = new ArrayList<>();
if (eg == null && skill == null) {
return items; if (eg == null && skill == null) {
} return items;
}
if (eg != null) {
String groupName = ""; if (eg != null) {
String kind = ""; String groupName = "";
if (group != null) { String kind = "";
groupName = group.getGroupName(); if (group != null) {
switch (group.getKind()) { groupName = group.getGroupName();
case 1: switch (group.getKind()) {
kind = "分站"; case 1:
break; kind = "分站";
case 2: break;
kind = "外围"; case 2:
break; kind = "外围";
case 3: break;
kind = "小组"; case 3:
break; kind = "小组";
case 4: break;
kind = "网点"; case 4:
break; kind = "网点";
case 5: break;
kind = "自保点"; case 5:
break; kind = "自保点";
default: break;
break; default:
} break;
} }
}
items.add(this.packEngineer("技术员", eg.getName(), "engineer"));
items.add(this.packEngineer("小组", groupName, "")); items.add(this.packEngineer("技术员", eg.getName(), "engineer"));
items.add(this.packEngineer("类型", kind, "")); items.add(this.packEngineer("小组", groupName, ""));
items.add(this.packEngineer("性别", eg.getGender(), "")); items.add(this.packEngineer("类型", kind, ""));
items.add(this.packEngineer("工号", eg.getEngineerCode(), "")); items.add(this.packEngineer("性别", eg.getGender(), ""));
items.add(this.packEngineer("手机号", eg.getPhone(), "")); items.add(this.packEngineer("工号", eg.getEngineerCode(), ""));
} items.add(this.packEngineer("手机号", eg.getPhone(), ""));
items.add(this.packEngineer("技能", skill, "")); }
items.add(this.packEngineer("技能", skill, ""));
return items;
} return items;
}
private List<KV> packOrderDetail(OrderInfoEntity order) {
List<KV> items = new ArrayList<>(); private List<KV> packOrderDetail(OrderInfoEntity order) {
items.add(this.packOrderItem("客户姓名", order.getName())); List<KV> items = new ArrayList<>();
items.add(this.packOrderItem("客户电话", order.getPhone())); items.add(this.packOrderItem("客户姓名", order.getName()));
items.add(this.packOrderItem("客户地址", String.format("%s%s%s", order.getCity(), order.getCounty(), order.getAddress()))); items.add(this.packOrderItem("客户电话", order.getPhone()));
items.add(this.packOrderItem("品牌", order.getBrand())); items.add(this.packOrderItem("客户地址", String.format("%s%s%s", order.getCity(), order.getCounty(), order.getAddress())));
items.add(this.packOrderItem("设备", order.getType())); items.add(this.packOrderItem("品牌", order.getBrand()));
items.add(this.packOrderItem("服务", order.getSkill())); items.add(this.packOrderItem("设备", order.getType()));
items.add(this.packOrderItem("故障描述", order.getFaultDescribe())); items.add(this.packOrderItem("服务", order.getSkill()));
items.add(this.packOrderItem("意向时间", TimeUtils.IsoLocalDateTime2String(order.getExpectTimeBegin()))); items.add(this.packOrderItem("故障描述", order.getFaultDescribe()));
items.add(this.packOrderItem("时间要求", order.getExpectTimeDesc())); items.add(this.packOrderItem("意向时间", TimeUtils.IsoLocalDateTime2String(order.getExpectTimeBegin())));
items.add(this.packOrderItem("预约方式", order.getSource())); items.add(this.packOrderItem("时间要求", order.getExpectTimeDesc()));
items.add(this.packOrderItem("标签", order.getTags())); items.add(this.packOrderItem("预约方式", order.getSource()));
items.add(this.packOrderItem("创建时间", TimeUtils.IsoLocalDateTime2String(order.getCreateTime()))); items.add(this.packOrderItem("标签", order.getTags()));
items.add(this.packOrderItem("备注", order.getApplyNote())); items.add(this.packOrderItem("创建时间", TimeUtils.IsoLocalDateTime2String(order.getCreateTime())));
return items; items.add(this.packOrderItem("备注", order.getApplyNote()));
} return items;
}
private List<OrderServiceDynamicsResp.Dynamics> packOrderDynamics(List<OrderEventEntity> events) {
List<OrderServiceDynamicsResp.Dynamics> dynamics = new ArrayList<>(); private List<OrderServiceDynamicsResp.Dynamics> packOrderDynamics(List<OrderEventEntity> events) {
List<OrderServiceDynamicsResp.Dynamics> dynamics = new ArrayList<>();
// 根据happen排序
Comparator<OrderEventEntity> happen = Comparator.comparing(OrderEventEntity::getHappen); // 根据happen排序
List<OrderEventEntity> results = events.stream().sorted(happen).collect(Collectors.toList()); Comparator<OrderEventEntity> happen = Comparator.comparing(OrderEventEntity::getHappen);
for (OrderEventEntity o : results) { List<OrderEventEntity> results = events.stream().sorted(happen).collect(Collectors.toList());
OrderServiceDynamicsResp.Dynamics d = new OrderServiceDynamicsResp.Dynamics(); for (OrderEventEntity o : results) {
d.setTitle(o.getEvent()); OrderServiceDynamicsResp.Dynamics d = new OrderServiceDynamicsResp.Dynamics();
d.setSubTitle(String.format("操作人: %s", o.getOperatorName())); d.setTitle(o.getEvent());
d.setTime(TimeUtils.IsoLocalDateTime2String(o.getHappen())); d.setSubTitle(String.format("操作人: %s", o.getOperatorName()));
d.setMemo(o.getMemo()); d.setTime(TimeUtils.IsoLocalDateTime2String(o.getHappen()));
dynamics.add(d); d.setMemo(o.getMemo());
} dynamics.add(d);
return dynamics; }
} return dynamics;
}
private KV packEngineer(String title, String value, String type) {
return this.PackKV(title, value, type, null, null); private KV packEngineer(String title, String value, String type) {
} return this.PackKV(title, value, type, null, null);
}
private KV packOrderItem(String title, String value) {
return this.PackKV(title, value, null, null, null); private KV packOrderItem(String title, String value) {
} return this.PackKV(title, value, null, null, null);
}
private KV PackKV(String title, String value, String type, String status, Object params) {
KV item = new KV(); private KV PackKV(String title, String value, String type, String status, Object params) {
item.setLabel(title); KV item = new KV();
item.setValue(value); item.setLabel(title);
item.setType(type); item.setValue(value);
item.setStatus(status); item.setType(type);
item.setParams(params); item.setStatus(status);
return item; item.setParams(params);
} return item;
}
} }
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!