|
|
@@ -153,7 +153,7 @@ public class KwtWaybillOrderV1Service {
|
|
|
private RemoteSystemService remoteSystemService;
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false, timeout = 6000)
|
|
|
private RemoteUserService remoteUserService;
|
|
|
- @DubboReference(version = "1.0.0", group = "design", check = false)
|
|
|
+ @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 10000)
|
|
|
private RemoteFleetService remoteFleetService;
|
|
|
@DubboReference(version = "1.0.0", group = "design", check = false)
|
|
|
private TradeOrderInfoService tradeOrderInfoService;
|
|
|
@@ -4632,46 +4632,51 @@ public class KwtWaybillOrderV1Service {
|
|
|
* @param billOrder
|
|
|
*/
|
|
|
protected void calculateAutoDispatchScore(KwtWaybillOrder billOrder, Integer status) {
|
|
|
- if (!DispatchWayEnums.AUTO_DISPATCH.getCode().equals(billOrder.getDispatchWay())) {
|
|
|
- return;
|
|
|
- }
|
|
|
- //查询物流订单
|
|
|
- KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderRepository.queryByLogisticsOrderId(billOrder.getLOrderId());
|
|
|
+ try {
|
|
|
+ if (!DispatchWayEnums.AUTO_DISPATCH.getCode().equals(billOrder.getDispatchWay())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //查询物流订单
|
|
|
+ KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderRepository.queryByLogisticsOrderId(billOrder.getLOrderId());
|
|
|
+
|
|
|
+ //查询运单装卸货地址
|
|
|
+ List<KwtWaybillOrderAddress> addressList = waybillOrderAddressRepository.queryByWOrderId(billOrder.getId());
|
|
|
+ if (CollectionUtils.isEmpty(addressList)) {
|
|
|
+ log.info("物流运单无装卸货地址信息,运单id:{}", billOrder.getId());
|
|
|
+ throw new BusinessPlatfromException(ErrorCodeEnum.LOGISTICS_ORDER_NOT_ADDRESS, "物流订单无装卸货地址信息");
|
|
|
+ }
|
|
|
+ Map<Integer, KwtWaybillOrderAddress> addressMap = addressList.stream()
|
|
|
+ .filter(addr -> addr.getAddressType() != null)
|
|
|
+ .collect(Collectors.toMap(KwtWaybillOrderAddress::getAddressType, Function.identity(),
|
|
|
+ (x,y) ->x));
|
|
|
+
|
|
|
+ // 获取司机行为规则配置(司机违规取消运单分钟数)
|
|
|
+ DriverConductRulesVO driverRulesVO = remoteFleetService.findDriverConductRulesByEntId(billOrder.getEntId());
|
|
|
+ if (driverRulesVO == null) {
|
|
|
+ throw new BusinessPlatfromException(ErrorCodeEnum.DATA_NOT_EXIST, "未找到司机行为规则数据!");
|
|
|
+ }
|
|
|
|
|
|
- //查询运单装卸货地址
|
|
|
- List<KwtWaybillOrderAddress> addressList = waybillOrderAddressRepository.queryByWOrderId(billOrder.getId());
|
|
|
- if (CollectionUtils.isEmpty(addressList)) {
|
|
|
- log.info("物流运单无装卸货地址信息,运单id:{}", billOrder.getId());
|
|
|
- throw new BusinessPlatfromException(ErrorCodeEnum.LOGISTICS_ORDER_NOT_ADDRESS, "物流订单无装卸货地址信息");
|
|
|
- }
|
|
|
- Map<Integer, KwtWaybillOrderAddress> addressMap = addressList.stream()
|
|
|
- .filter(addr -> addr.getAddressType() != null)
|
|
|
- .collect(Collectors.toMap(KwtWaybillOrderAddress::getAddressType, Function.identity(),
|
|
|
- (x,y) ->x));
|
|
|
|
|
|
- // 获取司机行为规则配置(司机违规取消运单分钟数)
|
|
|
- DriverConductRulesVO driverRulesVO = remoteFleetService.findDriverConductRulesByEntId(billOrder.getEntId());
|
|
|
- if (driverRulesVO == null) {
|
|
|
- throw new BusinessPlatfromException(ErrorCodeEnum.DATA_NOT_EXIST, "未找到司机行为规则数据!");
|
|
|
- }
|
|
|
+ //1. 运单单据错误被驳回
|
|
|
+ checkRefuseScore(billOrder, status, driverRulesVO);
|
|
|
|
|
|
+ //运单没通过,不执行以下逻辑
|
|
|
+ if (!Objects.equals(status, CarWaybillV1Enum.COMPLETED.getCode())) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- //1. 运单单据错误被驳回
|
|
|
- checkRefuseScore(billOrder, status, driverRulesVO);
|
|
|
+ //2. 校验司机运单完成是否超时
|
|
|
+ checkCompletionTimeout(billOrder, logisticsOrder, driverRulesVO);
|
|
|
|
|
|
- //运单没通过,不执行以下逻辑
|
|
|
- if (!Objects.equals(status, CarWaybillV1Enum.COMPLETED.getCode())) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- //2. 校验司机运单完成是否超时
|
|
|
- checkCompletionTimeout(billOrder, logisticsOrder, driverRulesVO);
|
|
|
+ //3. 校验司机连续准时卸货(审核通过)
|
|
|
+ checkContinuousUnload(billOrder, logisticsOrder);
|
|
|
|
|
|
- //3. 校验司机连续准时卸货(审核通过)
|
|
|
- checkContinuousUnload(billOrder, logisticsOrder);
|
|
|
+ //4. 校验司机连续准确填写卸货信息(审核通过)
|
|
|
+ checkContinuousPass(billOrder, addressMap);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.info("司机分数计算失败!", e);
|
|
|
+ }
|
|
|
|
|
|
- //4. 校验司机连续准确填写卸货信息(审核通过)
|
|
|
- checkContinuousPass(billOrder, addressMap);
|
|
|
|
|
|
}
|
|
|
|