Commit a988a1c8 by 王力

Merge branch 'dev_orderassigncheck0801' into 'develop'

Dev orderassigncheck0801

See merge request !318
2 parents f5a3de5e ef7041f2
...@@ -74,9 +74,9 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -74,9 +74,9 @@ public class OrderAssignImpl implements OrderAssign {
List<OrderAssignRecommendResp.Engineer> items = new ArrayList<>(); List<OrderAssignRecommendResp.Engineer> items = new ArrayList<>();
for (EngineerInfo engineer : engineers) { for (EngineerInfo engineer : engineers) {
OrderAssignCheck.Result result = orderAssignCheck.orderAssignCheck(orderId, engineer.getEngineerCode()); OrderAssignCheck.Result result = orderAssignCheck.orderAssignCheck(orderId, order.getDt(), engineer.getEngineerCode());
log.info("指派检查结果:{}", result); log.info("指派检查结果:{}", result);
if (!result.getCanAssign()) { if (result.getIndex() < 0) {
continue; continue;
} }
...@@ -87,7 +87,7 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -87,7 +87,7 @@ public class OrderAssignImpl implements OrderAssign {
HashMap<String, List<LabelValueDTO>> orderTips = new HashMap<>(); HashMap<String, List<LabelValueDTO>> orderTips = new HashMap<>();
List<String> orderIds = orderAppointments.stream().map(OrderInfo::getOrderId).collect(Collectors.toList()); List<String> orderIds = orderAppointments.stream().map(OrderInfo::getOrderId).collect(Collectors.toList());
if (!orderIds.isEmpty()) { if (!orderIds.isEmpty()) {
List<OrderInfo> orders = orderInfoMPDao.selectByDtAndOrderIds(TimeUtils.IsoDate2LocalDate(date), orderIds); List<OrderInfo> orders = orderInfoMPDao.selectByDtAndOrderIds(order.getDt(), orderIds);
orderTips = this.packOrderTips(orders); orderTips = this.packOrderTips(orders);
} }
...@@ -95,8 +95,8 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -95,8 +95,8 @@ public class OrderAssignImpl implements OrderAssign {
OrderAssignRecommendResp.InsertInfo insertInfo = new OrderAssignRecommendResp.InsertInfo(); OrderAssignRecommendResp.InsertInfo insertInfo = new OrderAssignRecommendResp.InsertInfo();
insertInfo.setNumber(String.format("%d/%d", result.getIndex(), orderAppointments.size() + 1)); insertInfo.setNumber(String.format("%d/%d", result.getIndex(), orderAppointments.size() + 1));
insertInfo.setTimeDesc(String.format("+%d分钟", result.getMinuteAddition())); insertInfo.setTimeDesc(String.format("+%d分钟", result.getAdditionElapsed()));
insertInfo.setDistanceDesc(String.format("+%d公里", result.getDistanceAddition() / 1000)); insertInfo.setDistanceDesc(String.format("+%d公里", result.getAdditionDistance() / 1000));
item.setEngineerCode(engineer.getEngineerCode()); item.setEngineerCode(engineer.getEngineerCode());
item.setEngineerName(engineer.getName()); item.setEngineerName(engineer.getName());
...@@ -106,7 +106,7 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -106,7 +106,7 @@ public class OrderAssignImpl implements OrderAssign {
item.setTimeDesc(""); item.setTimeDesc("");
int index = result.getIndex() + 1; int index = result.getIndex() + 1;
item.setDesc(String.format("将被插入在第%d单,受此影响原第%d单变化第%d单,第%d单将增加%d公里路程,比预计晚到%d分钟,建议调整;", index, index, index + 1, index + 1, result.getDistanceAddition() / 1000, result.getMinuteAddition())); item.setDesc(String.format("将被插入在第%d单,受此影响原第%d单变化第%d单,第%d单将增加%d公里路程,比预计晚到%d分钟,建议调整;", index, index, index + 1, index + 1, result.getAdditionDistance() / 1000, result.getAdditionElapsed()));
item.setStartTime(String.format("%s 08:00:00", date)); item.setStartTime(String.format("%s 08:00:00", date));
item.setEndTime(String.format("%s 18:00:00", date)); item.setEndTime(String.format("%s 18:00:00", date));
item.setOrders(this.packTimelines(orderAppointments, orderTips)); item.setOrders(this.packTimelines(orderAppointments, orderTips));
...@@ -141,13 +141,14 @@ public class OrderAssignImpl implements OrderAssign { ...@@ -141,13 +141,14 @@ public class OrderAssignImpl implements OrderAssign {
throw new BusinessException(String.format("订单已指派个技术员[%s], 不必重复指派给同一个技术员", engineer.getName())); throw new BusinessException(String.format("订单已指派个技术员[%s], 不必重复指派给同一个技术员", engineer.getName()));
} }
OrderAssignCheck.Result result = orderAssignCheck.orderAssignCheck(orderId, engineerCode); OrderAssignCheck.Result result = orderAssignCheck.orderAssignCheck(orderId, order.getDt(), engineerCode);
log.info("指派检查结果:{}", result); log.info("指派检查结果:{}", result);
if (!result.getCanAssign()) { if (result.getIndex() < 0) {
throw new BusinessException("指派失败, 未能找到合适的时间段, 请选择其他技术员"); throw new BusinessException("指派失败, 未能找到合适的时间段, 请选择其他技术员");
} }
Timestamp planStartTime = Timestamp.valueOf(result.getStart()); OrderAssignCheck.OrderNode insertNode = result.getCurOrderNode();
Timestamp planEndTime = Timestamp.valueOf(result.getEnd()); Timestamp planStartTime = Timestamp.valueOf(insertNode.getPlanStartTime());
Timestamp planEndTime = Timestamp.valueOf(insertNode.getPlanEndTime());
// 更新order_info表状态 // 更新order_info表状态
LambdaUpdateWrapper<OrderInfo> wrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<OrderInfo> wrapper = new LambdaUpdateWrapper<>();
......
...@@ -210,9 +210,9 @@ public class OrderCreateServiceImpl implements OrderCreateService { ...@@ -210,9 +210,9 @@ public class OrderCreateServiceImpl implements OrderCreateService {
OrderAssignCheck.Result checkResult = null; OrderAssignCheck.Result checkResult = null;
log.info("=== 准备调用指派,候选的技术员列表: {}", matchEngineerCodes); log.info("=== 准备调用指派,候选的技术员列表: {}", matchEngineerCodes);
for (String engineerCode : matchEngineerCodes) { for (String engineerCode : matchEngineerCodes) {
checkResult = orderAssignCheck.orderAssignCheck(entity.getOrderId(), engineerCode); checkResult = orderAssignCheck.orderAssignCheck(entity.getOrderId(), entity.getDt(), engineerCode);
log.info("orderAssignCheck ===> orderId[{}]engineerCode[{}] ==> result[{}]", entity.getOrderId(), engineerCode, checkResult); log.info("orderAssignCheck ===> orderId[{}]engineerCode[{}] ==> result[{}]", entity.getOrderId(), engineerCode, checkResult);
if (checkResult.getCanAssign()) { if (checkResult.getIndex() < 0) {
assignEngineerCode = engineerCode; assignEngineerCode = engineerCode;
break; break;
} }
...@@ -221,16 +221,18 @@ public class OrderCreateServiceImpl implements OrderCreateService { ...@@ -221,16 +221,18 @@ public class OrderCreateServiceImpl implements OrderCreateService {
// 虚拟指派 // 虚拟指派
if (StringUtils.isNotBlank(assignEngineerCode)) { if (StringUtils.isNotBlank(assignEngineerCode)) {
// 修改当前工单 // 修改当前工单
OrderAssignCheck.OrderNode insertNode = checkResult.getCurOrderNode();
entity.setEngineerCode(assignEngineerCode); entity.setEngineerCode(assignEngineerCode);
EngineerInfoEntity engineerInfo = engineerInfoDao.getByEngineerCode(assignEngineerCode); EngineerInfoEntity engineerInfo = engineerInfoDao.getByEngineerCode(assignEngineerCode);
entity.setEngineerName(engineerInfo.getName()); entity.setEngineerName(engineerInfo.getName());
entity.setEngineerPhone(engineerInfo.getPhone()); entity.setEngineerPhone(engineerInfo.getPhone());
entity.setAppointmentStatus("PRE"); entity.setAppointmentStatus("PRE");
entity.setDispatcher("AUTO_NOW"); entity.setDispatcher("AUTO_NOW");
entity.setPlanStartTime(checkResult.getStart()); entity.setPlanStartTime(insertNode.getPlanStartTime());
entity.setPlanEndTime(checkResult.getEnd()); entity.setPlanEndTime(insertNode.getPlanEndTime());
entity.setArriveDistance(checkResult.getDistanceAddition()); entity.setArriveDistance(checkResult.getAdditionDistance());
entity.setArriveElapsed(checkResult.getMinuteAddition()); entity.setArriveElapsed(checkResult.getAdditionElapsed());
orderInfoDao.save(entity); orderInfoDao.save(entity);
// 如果影响到原有工单,修改原有工单 // 如果影响到原有工单,修改原有工单
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!