Commit debf17b7 by huangjinxin

fix:1:工单分组优化,2:一家多单查询优化

1 parent abcf561c
...@@ -36,5 +36,7 @@ public interface OrderInfoDao extends JpaRepository<OrderInfoEntity, Long>, JpaS ...@@ -36,5 +36,7 @@ public interface OrderInfoDao extends JpaRepository<OrderInfoEntity, Long>, JpaS
List<OrderInfoEntity> findByDtAndAddressId(LocalDate dt, String addressId); List<OrderInfoEntity> findByDtAndAddressId(LocalDate dt, String addressId);
List<OrderInfoEntity> findByMultipleOrdersAndOrderIdNot(String multipleOrders, String orderId);
List<OrderInfoEntity> findByMultipleOrders(String multipleOrders); List<OrderInfoEntity> findByMultipleOrders(String multipleOrders);
} }
package com.dituhui.pea.order.enums; package com.dituhui.pea.order.enums;
public enum OrderGroupEnum { public enum OrderGroupEnum {
// 0:工单优先级,1:耗时,2:意向时间,3:分站/网点,4:技能,5:一家多单
zero("0"), zero("0"),
one("1"), one("1"),
......
...@@ -253,7 +253,7 @@ public class DispatchServiceImpl implements DispatchService { ...@@ -253,7 +253,7 @@ public class DispatchServiceImpl implements DispatchService {
item.setBeanPriority(o.getBeanPriority()); item.setBeanPriority(o.getBeanPriority());
item.setIsSpecialTime(o.getIsSpecialTime()); item.setIsSpecialTime(o.getIsSpecialTime());
if (isContinue && StringUtils.isNotEmpty(o.getMultipleOrders())) { if (isContinue && StringUtils.isNotEmpty(o.getMultipleOrders())) {
List<OrderInfoEntity> byMultipleOrders = orderInfoDao.findByMultipleOrders(o.getMultipleOrders()); List<OrderInfoEntity> byMultipleOrders = orderInfoDao.findByMultipleOrdersAndOrderIdNot(o.getMultipleOrders(), o.getOrderId());
List<DispatchEngineerOrderListResp.OrderInfo> multipleItems = new ArrayList<>(); List<DispatchEngineerOrderListResp.OrderInfo> multipleItems = new ArrayList<>();
for (OrderInfoEntity info : byMultipleOrders) { for (OrderInfoEntity info : byMultipleOrders) {
addOrderToItems(info, multipleItems, skillInfo, false); addOrderToItems(info, multipleItems, skillInfo, false);
...@@ -390,19 +390,36 @@ public class DispatchServiceImpl implements DispatchService { ...@@ -390,19 +390,36 @@ public class DispatchServiceImpl implements DispatchService {
item.setIsSpecialTime(o.getIsSpecialTime()); item.setIsSpecialTime(o.getIsSpecialTime());
item.setOrgGroupName(groupMap.get(o.getOrgGroupId())); item.setOrgGroupName(groupMap.get(o.getOrgGroupId()));
if (isContinue && StringUtils.isNotEmpty(o.getMultipleOrders())) { if (isContinue && StringUtils.isNotEmpty(o.getMultipleOrders())) {
List<OrderInfoEntity> byMultipleOrders = orderInfoDao.findByMultipleOrders(o.getMultipleOrders()); List<OrderInfoEntity> byMultipleOrders = orderInfoDao.findByMultipleOrdersAndOrderIdNot(o.getMultipleOrders(), o.getOrderId());
List<DispatchOrderListResp.Order> multipleItems = new ArrayList<>(); List<DispatchOrderListResp.Order> multipleItems = new ArrayList<>();
for (OrderInfoEntity info : byMultipleOrders) { for (OrderInfoEntity info : byMultipleOrders) {
multipleItems.add(orderItemByOrderInfo(info, skillInfo, false, groupMap, groupByMap, groupTagId)); multipleItems.add(orderItemByOrderInfo(info, skillInfo, false, groupMap, groupByMap, groupTagId));
} }
item.setMultipleOrderList(multipleItems); item.setMultipleOrderList(multipleItems);
} }
Object groupkey = null;
// 0:工单优先级,1:耗时,2:意向时间,3:分站/网点,4:技能,5:一家多单
if (groupTagId.equals(OrderGroupEnum.zero.getCode()) && StringUtils.isNotEmpty(item.getBeanPriority())) { if (groupTagId.equals(OrderGroupEnum.zero.getCode()) && StringUtils.isNotEmpty(item.getBeanPriority())) {
// 分组字段:紧急、正常
makeOrderMap(groupByMap, item, item.getBeanPriority()); makeOrderMap(groupByMap, item, item.getBeanPriority());
} else if (groupTagId.equals(OrderGroupEnum.one.getCode()) && null != item.getDuration()) { } else if (groupTagId.equals(OrderGroupEnum.one.getCode()) && null != item.getDuration()) {
makeOrderMap(groupByMap, item, item.getDuration()); // - 耗时长短-分组字段:长(60分钟及以上)、中(30-60分钟)、短(30分钟及以内);
if (item.getDuration() >= 60) {
groupkey = "长";
} else if (item.getDuration() <= 30) {
groupkey = "短";
} else {
groupkey = "中";
}
makeOrderMap(groupByMap, item, groupkey);
} else if (groupTagId.equals(OrderGroupEnum.two.getCode()) && StringUtils.isNotEmpty(item.getExpectTimeDesc())) { } else if (groupTagId.equals(OrderGroupEnum.two.getCode()) && StringUtils.isNotEmpty(item.getExpectTimeDesc())) {
makeOrderMap(groupByMap, item, item.getExpectTimeDesc()); // - 客户意向时间-分组字段:上午、下午、晚间、其他。
if (!item.getExpectTimeDesc().equals("上午") && !item.getExpectTimeDesc().equals("下午") && !item.getExpectTimeDesc().equals("晚间")) {
groupkey = "其他";
} else {
groupkey = item.getExpectTimeDesc();
}
makeOrderMap(groupByMap, item, groupkey);
} else if (groupTagId.equals(OrderGroupEnum.three.getCode()) && StringUtils.isNotEmpty(item.getOrgGroupName())) { } else if (groupTagId.equals(OrderGroupEnum.three.getCode()) && StringUtils.isNotEmpty(item.getOrgGroupName())) {
makeOrderMap(groupByMap, item, item.getOrgGroupName()); makeOrderMap(groupByMap, item, item.getOrgGroupName());
} else if (groupTagId.equals(OrderGroupEnum.four.getCode()) && StringUtils.isNotEmpty(item.getSkill())) { } else if (groupTagId.equals(OrderGroupEnum.four.getCode()) && StringUtils.isNotEmpty(item.getSkill())) {
...@@ -410,7 +427,7 @@ public class DispatchServiceImpl implements DispatchService { ...@@ -410,7 +427,7 @@ public class DispatchServiceImpl implements DispatchService {
} else if (groupTagId.equals(OrderGroupEnum.five.getCode()) && StringUtils.isNotEmpty(item.getMultipleOrders())) { } else if (groupTagId.equals(OrderGroupEnum.five.getCode()) && StringUtils.isNotEmpty(item.getMultipleOrders())) {
makeOrderMap(groupByMap, item, item.getMultipleOrders()); makeOrderMap(groupByMap, item, item.getMultipleOrders());
} else { } else {
makeOrderMap(groupByMap, item, "默认分类"); makeOrderMap(groupByMap, item, "其他");
} }
return item; return item;
} }
......
...@@ -157,7 +157,7 @@ public class OrderServiceListServiceImpl implements OrderServiceListService { ...@@ -157,7 +157,7 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
record.setTranscend(o.getTranscend()); record.setTranscend(o.getTranscend());
record.setIsSpecialTime(o.getIsSpecialTime()); record.setIsSpecialTime(o.getIsSpecialTime());
if (StringUtils.isNotEmpty(o.getMultipleOrders())) { if (StringUtils.isNotEmpty(o.getMultipleOrders())) {
List<OrderInfoEntity> byMultipleOrders = orderInfoDao.findByMultipleOrders(o.getMultipleOrders()); List<OrderInfoEntity> byMultipleOrders = orderInfoDao.findByMultipleOrdersAndOrderIdNot(o.getMultipleOrders(), o.getOrderId());
List<OrderServiceList> multipleItems = new ArrayList<>(); List<OrderServiceList> multipleItems = new ArrayList<>();
for (OrderInfoEntity info : byMultipleOrders) { for (OrderInfoEntity info : byMultipleOrders) {
multipleItems.add(toMultipleOrders(info, branchNames, engineerNames)); multipleItems.add(toMultipleOrders(info, branchNames, engineerNames));
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!