Commit df5651fa by 丁伟峰

虚拟指派异常捕获,不影响主流程

1 parent 03360c7c
......@@ -106,7 +106,7 @@ public class OrderCreateServiceImpl implements OrderCreateService {
String orderId = req.getOrderId();
if (StringUtils.isEmpty(orderId)) {
String s = UUID.randomUUID().toString().replace("-", "");
orderId = s.substring(s.length()-9);
orderId = s.substring(s.length() - 9);
}
entity.setOrderId(orderId);
entity.setName(req.getName());
......@@ -131,7 +131,7 @@ public class OrderCreateServiceImpl implements OrderCreateService {
List<String> blockIds = null;
List<String> layerIds = capacityUtils.getLayers(req.getBrand(), req.getType(), req.getSkill());
if(req.getLocation() != null){
if (req.getLocation() != null) {
String loc = String.format("%f,%f", req.getLocation().getLng(), req.getLocation().getLat());
blockIds = saasUtils.queryBlocksByLocation(loc).stream().map(SaasUtils.BlockInfo::getBlockId).collect(Collectors.toList());
} else {
......@@ -165,31 +165,30 @@ public class OrderCreateServiceImpl implements OrderCreateService {
entity.setAppointmentMethod("AUTO_NOW");
orderRequestDao.save(entity);
// 登记
commonService.addOrderEvent(orderId, "", req.getSource(), "API", "创建订单", "创建订单", "" );
commonService.addOrderEvent(orderId, "", req.getSource(), "API", "创建订单", "创建订单", "");
// 指派检查,简单处理,遇到第一个可以指派的就停止检查
tryVirtualAppointment(req, entity, orderId, teamId);
return Result.success(null);
}
private void tryVirtualAppointment(OrderCreateReqDTO req, OrderRequestEntity entity, String orderId, String teamId) {
try {
List<String> engineerCodes = engineerUtils.getEngineersByLevel("team", teamId).stream()
.map(EngineerInfoEntity::getEngineerCode).collect(Collectors.toList());
List<String> matchEngineerCodes = engineerSkillDao.findAllByBrandAndTypeAndSkillAndEngineerCodeIn(req.getBrand(), req.getType(), req.getSkill(), engineerCodes).stream()
.map(EngineerSkillEntity::getEngineerCode).collect(Collectors.toList());
String assignEngineerCode = null;
for(String engineerCode: matchEngineerCodes){
for (String engineerCode : matchEngineerCodes) {
OrderAssignCheck.Result checkResult = orderAssignCheck.orderAssignCheck(entity.getOrderId(), engineerCode);
if (checkResult.getCanAssign()){
if (checkResult.getCanAssign()) {
assignEngineerCode = engineerCode;
break;
}
}
// 虚拟指派
if (StringUtils.isNotBlank(assignEngineerCode)){
tryVirtualAppointment(req, entity, orderId, assignEngineerCode);
}
return Result.success(null);
}
private void tryVirtualAppointment(OrderCreateReqDTO req, OrderRequestEntity entity, String orderId, String assignEngineerCode) {
try {
// 虚拟指派登记
if (StringUtils.isNotBlank(assignEngineerCode)) {
OrderAppointmentEntity oa = new OrderAppointmentEntity();
oa.setDt(entity.getDt());
oa.setOrderId(entity.getOrderId());
......@@ -215,12 +214,11 @@ public class OrderCreateServiceImpl implements OrderCreateService {
orderAppointmentDao.save(oa);
// 登记
commonService.addOrderEvent(orderId, "", req.getSource(), "API", "虚拟指派", "虚拟指派", "");
}
log.info("==== 已经完成虚拟指派 ====");
} catch (Exception e){
} catch (Exception e) {
log.error("虚拟指派错误: {}", e.getMessage());
}
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!