|
@@ -1667,15 +1667,15 @@ public class WaybillOrderService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void comeInto(WaybillOrderCmeIntoWeighParam param) {
|
|
public void comeInto(WaybillOrderCmeIntoWeighParam param) {
|
|
|
log.info("[过磅]开始过磅,入参参数:{}", JSON.toJSONString(param));
|
|
log.info("[过磅]开始过磅,入参参数:{}", JSON.toJSONString(param));
|
|
|
- if (param.getEntId() == null){
|
|
|
|
|
- throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "地磅企业id不能为空!");
|
|
|
|
|
- }
|
|
|
|
|
if (StringUtils.isBlank(param.getTruckNo())){
|
|
if (StringUtils.isBlank(param.getTruckNo())){
|
|
|
throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "车牌号不能为空!");
|
|
throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "车牌号不能为空!");
|
|
|
}
|
|
}
|
|
|
if (param.getWeighAmount() == null) {
|
|
if (param.getWeighAmount() == null) {
|
|
|
throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "称重重量不能为空!");
|
|
throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "称重重量不能为空!");
|
|
|
}
|
|
}
|
|
|
|
|
+ if (param.getWeighbridgeId() == null) {
|
|
|
|
|
+ throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "地磅id不能为空!");
|
|
|
|
|
+ }
|
|
|
// 定义运单可以过磅的状态集合
|
|
// 定义运单可以过磅的状态集合
|
|
|
List<Integer> FORBIDDEN_STATUSES = Arrays.asList(
|
|
List<Integer> FORBIDDEN_STATUSES = Arrays.asList(
|
|
|
CarWaybillV1Enum.PENDING_VEHICLE.getCode(),
|
|
CarWaybillV1Enum.PENDING_VEHICLE.getCode(),
|
|
@@ -1685,67 +1685,47 @@ public class WaybillOrderService {
|
|
|
CarWaybillV1Enum.WAIT_LEAVE.getCode(),
|
|
CarWaybillV1Enum.WAIT_LEAVE.getCode(),
|
|
|
CarWaybillV1Enum.UNLOADING.getCode(),
|
|
CarWaybillV1Enum.UNLOADING.getCode(),
|
|
|
CarWaybillV1Enum.REPLENISHING.getCode(),
|
|
CarWaybillV1Enum.REPLENISHING.getCode(),
|
|
|
- CarWaybillV1Enum.REPLENISH_FINISH.getCode(),
|
|
|
|
|
- CarWaybillV1Enum.WAIT_LOADING.getCode(),
|
|
|
|
|
- CarWaybillV1Enum.UNLOADING_POINT.getCode()
|
|
|
|
|
|
|
+ CarWaybillV1Enum.REPLENISH_FINISH.getCode()
|
|
|
);
|
|
);
|
|
|
List<KwtWaybillOrder> waybillOrders = waybillOrderRepository.findWbOrderByTruckNoAndStatus(param.getTruckNo(), FORBIDDEN_STATUSES);
|
|
List<KwtWaybillOrder> waybillOrders = waybillOrderRepository.findWbOrderByTruckNoAndStatus(param.getTruckNo(), FORBIDDEN_STATUSES);
|
|
|
- if (CollectionUtils.isEmpty(waybillOrders)) {
|
|
|
|
|
- throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_FOUND, "[称重过磅]当前车辆没有称重过磅状态的运单!");
|
|
|
|
|
- }
|
|
|
|
|
- if (waybillOrders.size() > 1) {
|
|
|
|
|
- throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_FOUND, "[称重过磅]当前车辆过磅称重运单数据存在多条!");
|
|
|
|
|
- }
|
|
|
|
|
- KwtWaybillOrder waybillOrder = waybillOrders.get(0);
|
|
|
|
|
-
|
|
|
|
|
- //查询物流订单
|
|
|
|
|
- KwtLogisticsOrder logisticsOrder = logisticsOrderRepository.queryByLogisticsOrderId(waybillOrder.getLOrderId());
|
|
|
|
|
- if (logisticsOrder == null) {
|
|
|
|
|
- throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_FOUND, "[称重过磅]当前物流运单不存在!");
|
|
|
|
|
- }
|
|
|
|
|
- // 山上/山下企业
|
|
|
|
|
- List<Long> mockEntIds = Arrays.asList(538039617157337089L, 538040297439891457L);
|
|
|
|
|
- // 原矿运输
|
|
|
|
|
- if (Objects.equals(1, logisticsOrder.getOrderType())) {
|
|
|
|
|
- log.info("[过磅]该过磅订单为原矿运输,订单信息:{}", JSON.toJSONString(logisticsOrder));
|
|
|
|
|
- //查询原矿运输企业的供应商
|
|
|
|
|
- KwtLogisticsOrderUnit logisticsOrderUnit = logisticsOrderUnitRepository.queryByLOrderIdAndUnitType(logisticsOrder.getId(), 1);
|
|
|
|
|
- if (logisticsOrderUnit == null) {
|
|
|
|
|
- throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_FOUND, "[称重过磅]当前物流订单关联企业信息不存在!");
|
|
|
|
|
- }
|
|
|
|
|
- if (mockEntIds.contains(logisticsOrderUnit.getEntId())) {
|
|
|
|
|
- //校验走山上还是山下
|
|
|
|
|
- if (Objects.equals(param.getEntId(), mockEntIds.get(0))) {
|
|
|
|
|
- // 1. 山上装货过磅
|
|
|
|
|
- comeIntoHandler(param, waybillOrder);
|
|
|
|
|
- } else if (Objects.equals(param.getEntId(), mockEntIds.get(1))) {
|
|
|
|
|
- // 2. 山下卸货过磅
|
|
|
|
|
- unloadingWeighHnadler(param, waybillOrder);
|
|
|
|
|
- } else {
|
|
|
|
|
- log.info("[称重过磅]过磅称重匹配失败,地磅企业:{},供应企业:{}",
|
|
|
|
|
- JSON.toJSONString(param.getEntId()), JSON.toJSONString(logisticsOrderUnit.getEntId()));
|
|
|
|
|
- throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_FOUND, "[称重过磅]过磅称重匹配失败!");
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // 山下称重过磅
|
|
|
|
|
+ if (param.getWeighbridgeId() == 10003L) {
|
|
|
|
|
+ log.info("[山下称重过磅]山下开始称重过磅,入参参数:{}", JSON.toJSONString(param));
|
|
|
|
|
+ //若无运单,直接返回
|
|
|
|
|
+ if (CollectionUtils.isEmpty(waybillOrders)) {
|
|
|
|
|
+ return;
|
|
|
} else {
|
|
} else {
|
|
|
- throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_FOUND, "[称重过磅]原矿运输的供应商不属于山上山下企业!");
|
|
|
|
|
|
|
+ commonComeInto(param, waybillOrders, FORBIDDEN_STATUSES);
|
|
|
}
|
|
}
|
|
|
|
|
+ log.info("[山下称重过磅]山下称重过磅结束!");
|
|
|
} else {
|
|
} else {
|
|
|
- log.info("[过磅]该过磅订单为产品销售,订单信息:{}", JSON.toJSONString(logisticsOrder));
|
|
|
|
|
- // 查询贸易订单企业id
|
|
|
|
|
- List<OrderUnitInfoDetailVO> unitInfoDetailVOS = tradeOrderInfoService.queryOrderUnitByTradeOrderId(logisticsOrder.getTOrderId());
|
|
|
|
|
- OrderUnitInfoDetailVO unitInfoDetailVO = unitInfoDetailVOS.stream()
|
|
|
|
|
- .filter(unit -> Objects.equals(unit.getUnitType(), "2"))
|
|
|
|
|
- .findFirst().orElse(new OrderUnitInfoDetailVO());
|
|
|
|
|
-
|
|
|
|
|
- //产品销售流程只能过自己接单的企业所属地磅
|
|
|
|
|
- if (Objects.equals(param.getEntId(), unitInfoDetailVO.getEntId())) {
|
|
|
|
|
- // 装货过磅
|
|
|
|
|
- comeIntoHandler(param, waybillOrder);
|
|
|
|
|
|
|
+ // 山上称重过磅
|
|
|
|
|
+ log.info("[山上称重过磅]山上开始称重过磅,入参参数:{}", JSON.toJSONString(param));
|
|
|
|
|
+ if (CollectionUtils.isEmpty(waybillOrders)) {
|
|
|
|
|
+ throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_FOUND, "[山上称重过磅]当前车辆没有称重过磅状态的运单!");
|
|
|
}
|
|
}
|
|
|
|
|
+ commonComeInto(param, waybillOrders, FORBIDDEN_STATUSES);
|
|
|
|
|
+ log.info("[山上称重过磅]山上称重过磅结束!");
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
log.info("[过磅]过磅结束!");
|
|
log.info("[过磅]过磅结束!");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 655称重过磅
|
|
|
|
|
+ * @param param
|
|
|
|
|
+ * @param waybillOrders
|
|
|
|
|
+ * @param FORBIDDEN_STATUSES
|
|
|
|
|
+ */
|
|
|
|
|
+ private void commonComeInto(WaybillOrderCmeIntoWeighParam param, List<KwtWaybillOrder> waybillOrders, List<Integer> FORBIDDEN_STATUSES) {
|
|
|
|
|
+ if (waybillOrders.size() > 1) {
|
|
|
|
|
+ throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_NOT_FOUND, "[称重过磅]当前车辆过磅称重运单数据存在多条!");
|
|
|
|
|
+ }
|
|
|
|
|
+ KwtWaybillOrder waybillOrder = waybillOrders.get(0);
|
|
|
|
|
+ param.setWaybillOrderId(waybillOrder.getId());
|
|
|
|
|
+ comeIntoHandler.handler(param);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 获取企业id
|
|
* 获取企业id
|
|
|
* @param logOrder
|
|
* @param logOrder
|