|
|
@ -117,7 +117,7 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { |
|
|
|
handleData(code); |
|
|
|
handleData(code); |
|
|
|
if (ObjectUtils.isNotNull(code)) { |
|
|
|
if (ObjectUtils.isNotNull(code)) { |
|
|
|
// 暂停推送
|
|
|
|
// 暂停推送
|
|
|
|
if(ObjectUtil.equal(sendDataProperties.getSend(), "new")){ |
|
|
|
if (ObjectUtil.equal(sendDataProperties.getSend(), "new")) { |
|
|
|
log.info("推送新系统"); |
|
|
|
log.info("推送新系统"); |
|
|
|
asyncDataService.handlerOuPaiDataToHt(code); |
|
|
|
asyncDataService.handlerOuPaiDataToHt(code); |
|
|
|
} |
|
|
|
} |
|
|
@ -164,7 +164,7 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { |
|
|
|
|
|
|
|
|
|
|
|
LambdaQueryWrapper<OpOrderStatusLogEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
LambdaQueryWrapper<OpOrderStatusLogEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
lambdaQueryWrapper.eq(OpOrderStatusLogEntity::getType, 3); |
|
|
|
lambdaQueryWrapper.eq(OpOrderStatusLogEntity::getType, 3); |
|
|
|
lambdaQueryWrapper.like(OpOrderStatusLogEntity::getArgs, code); |
|
|
|
lambdaQueryWrapper.like(OpOrderStatusLogEntity::getArgs, code); |
|
|
|
lambdaQueryWrapper.orderByAsc(OpOrderStatusLogEntity::getCreateTime); |
|
|
|
lambdaQueryWrapper.orderByAsc(OpOrderStatusLogEntity::getCreateTime); |
|
|
|
lambdaQueryWrapper.last("limit 1"); |
|
|
|
lambdaQueryWrapper.last("limit 1"); |
|
|
|
return opOrderStatusLogService.getOne(lambdaQueryWrapper); |
|
|
|
return opOrderStatusLogService.getOne(lambdaQueryWrapper); |
|
|
@ -424,22 +424,22 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 重推 |
|
|
|
* 重推 |
|
|
|
* @see #handleStatusData(OrderStatusDTO, boolean) |
|
|
|
* |
|
|
|
* @param orderStatusDTO |
|
|
|
* @param orderStatusDTO |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
|
|
|
|
* @see #handleStatusData(OrderStatusDTO, boolean) |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public boolean retryHandleStatusData(OrderStatusDTO orderStatusDTO){ |
|
|
|
public boolean retryHandleStatusData(OrderStatusDTO orderStatusDTO) { |
|
|
|
R res = handleStatusData(orderStatusDTO, true); |
|
|
|
R res = handleStatusData(orderStatusDTO, true); |
|
|
|
return res.getCode() == 200; |
|
|
|
return res.getCode() == 200; |
|
|
|
// 测试功能时使用
|
|
|
|
// 测试功能时使用
|
|
|
|
// return res.getCode() == 200 || Math.random() < 0.5;
|
|
|
|
// return res.getCode() == 200 || Math.random() < 0.5;
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* |
|
|
|
|
|
|
|
* @param orderStatusDTO |
|
|
|
* @param orderStatusDTO |
|
|
|
* @param isRetry 是否是重推调用 |
|
|
|
* @param isRetry 是否是重推调用 |
|
|
|
* @return |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
private R handleStatusData(OrderStatusDTO orderStatusDTO, boolean isRetry) { |
|
|
|
private R handleStatusData(OrderStatusDTO orderStatusDTO, boolean isRetry) { |
|
|
@ -453,6 +453,33 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { |
|
|
|
return Resp.fail(400, "当前数据的状态不推送"); |
|
|
|
return Resp.fail(400, "当前数据的状态不推送"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 需要判断当前操作的码 是否是和包码
|
|
|
|
|
|
|
|
LambdaQueryWrapper<FactoryPackageEntity> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
|
|
queryWrapper.eq(FactoryPackageEntity::getCosourcingCode, unitNo); |
|
|
|
|
|
|
|
List<FactoryPackageEntity> list = factoryPackageService.list(queryWrapper); |
|
|
|
|
|
|
|
if (list.isEmpty()) { |
|
|
|
|
|
|
|
return doPackageInfo(orderStatusDTO, isRetry, unitNo, status); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
for (FactoryPackageEntity factoryPackageEntity : list) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
R r = doPackageInfo(orderStatusDTO, isRetry, factoryPackageEntity.getCode(), status); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
|
|
log.error("合包码推送出现异常", e); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return Resp.success("物流状态传递成功"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@NotNull |
|
|
|
|
|
|
|
private R doPackageInfo(OrderStatusDTO orderStatusDTO, boolean isRetry, String unitNo, String status) { |
|
|
|
//继续判断是否到达目的仓
|
|
|
|
//继续判断是否到达目的仓
|
|
|
|
String currentWarehouseId = orderStatusDTO.getCurrentWarehouse();//当前仓Id
|
|
|
|
String currentWarehouseId = orderStatusDTO.getCurrentWarehouse();//当前仓Id
|
|
|
|
//查询destinationWarehouse logiBillNo plantId数据
|
|
|
|
//查询destinationWarehouse logiBillNo plantId数据
|
|
|
@ -479,7 +506,7 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { |
|
|
|
|
|
|
|
|
|
|
|
// 不是重试的时候,记录对应数据
|
|
|
|
// 不是重试的时候,记录对应数据
|
|
|
|
if (!isRetry) { |
|
|
|
if (!isRetry) { |
|
|
|
log.info(">>> 保存没有查询到欧派订单包件推送 的记录 {}" ,unitNo); |
|
|
|
log.info(">>> 保存没有查询到欧派订单包件推送 的记录 {}", unitNo); |
|
|
|
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); |
|
|
|
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -547,11 +574,11 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { |
|
|
|
if (opPackagePushLogEntity == null) { |
|
|
|
if (opPackagePushLogEntity == null) { |
|
|
|
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 包件 {} 已推送欧派 状态 {}", unitNo, detailObject.get("Operate")); |
|
|
|
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 包件 {} 已推送欧派 状态 {}", unitNo, detailObject.get("Operate")); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
if(opPackagePushLogEntity.getId().equals(-1L)){ |
|
|
|
if (opPackagePushLogEntity.getId().equals(-1L)) { |
|
|
|
// 保存异常
|
|
|
|
// 保存异常
|
|
|
|
// 不是重试的时候,记录对应数据
|
|
|
|
// 不是重试的时候,记录对应数据
|
|
|
|
if (!isRetry) { |
|
|
|
if (!isRetry) { |
|
|
|
log.info(">>> 保存没有查询到欧派订单包件推送 的记录 {}" ,unitNo); |
|
|
|
log.info(">>> 保存没有查询到欧派订单包件推送 的记录 {}", unitNo); |
|
|
|
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); |
|
|
|
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -635,14 +662,16 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { |
|
|
|
// return Resp.fail(400, "不是目的仓");
|
|
|
|
// return Resp.fail(400, "不是目的仓");
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 查询这个包件对应到新系统的订单
|
|
|
|
// 查询这个包件对应到新系统的订单
|
|
|
|
FactoryOrderEntity factoryOrder = factoryOrderService.selectEntityByOrderPackageCode(unitNo); |
|
|
|
FactoryOrderEntity factoryOrder = factoryOrderService.selectEntityByOrderPackageCode(unitNo); |
|
|
|
|
|
|
|
|
|
|
|
if (Objects.isNull(factoryOrder)) { |
|
|
|
if (Objects.isNull(factoryOrder)) { |
|
|
|
|
|
|
|
|
|
|
|
// 不是重试的时候,记录对应数据
|
|
|
|
// 不是重试的时候,记录对应数据
|
|
|
|
log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}" ,unitNo); |
|
|
|
log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo); |
|
|
|
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); |
|
|
|
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); |
|
|
|
|
|
|
|
|
|
|
|
return Resp.fail(400, "未查询到该单据推送订单信息"); |
|
|
|
return Resp.fail(400, "未查询到该单据推送订单信息"); |
|
|
|
} |
|
|
|
} |
|
|
@ -705,13 +734,13 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { |
|
|
|
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 包件 {} 已推送欧派 状态 {}", unitNo, detailObject.get("Operate")); |
|
|
|
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 包件 {} 已推送欧派 状态 {}", unitNo, detailObject.get("Operate")); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
|
|
if(opPackagePushLogEntity.getId().equals(-1L)){ |
|
|
|
if (opPackagePushLogEntity.getId().equals(-1L)) { |
|
|
|
log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}" ,unitNo); |
|
|
|
log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo); |
|
|
|
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); |
|
|
|
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 需要盘点这个对象的
|
|
|
|
// 需要盘点这个对象的
|
|
|
|
String resp = opPackagePushLogEntity.getResp(); |
|
|
|
String resp = opPackagePushLogEntity.getResp(); |
|
|
|
|
|
|
|
|
|
|
|
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 推送欧派返回数据 {}", resp); |
|
|
|
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 推送欧派返回数据 {}", resp); |
|
|
|
// TODO: 2023/10/25 不知道返回成功的状态是多少
|
|
|
|
// TODO: 2023/10/25 不知道返回成功的状态是多少
|
|
|
@ -842,20 +871,20 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { |
|
|
|
|
|
|
|
|
|
|
|
private OpPackagePushLogEntity sendPushOuPaiDataNew(Long refId, String url, Integer pushType, JSONObject data) { |
|
|
|
private OpPackagePushLogEntity sendPushOuPaiDataNew(Long refId, String url, Integer pushType, JSONObject data) { |
|
|
|
|
|
|
|
|
|
|
|
OpPackagePushLogEntity opPackagePushLogEntity = new OpPackagePushLogEntity(); |
|
|
|
OpPackagePushLogEntity opPackagePushLogEntity = new OpPackagePushLogEntity(); |
|
|
|
opPackagePushLogEntity.setArgs(data.toJSONString()); |
|
|
|
opPackagePushLogEntity.setArgs(data.toJSONString()); |
|
|
|
opPackagePushLogEntity.setPushType(pushType); |
|
|
|
opPackagePushLogEntity.setPushType(pushType); |
|
|
|
opPackagePushLogEntity.setUrl(url); |
|
|
|
opPackagePushLogEntity.setUrl(url); |
|
|
|
opPackagePushLogEntity.setRefId(refId); |
|
|
|
opPackagePushLogEntity.setRefId(refId); |
|
|
|
opPackagePushLogEntity.setPushOupaiNode(data.getString("Operate")); |
|
|
|
opPackagePushLogEntity.setPushOupaiNode(data.getString("Operate")); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String token = buildToken(); |
|
|
|
String token = buildToken(); |
|
|
|
HttpResponse httpResponse = HttpRequest.post(url).header("Authorization", token).body(data.toJSONString()).execute(); |
|
|
|
HttpResponse httpResponse = HttpRequest.post(url).header("Authorization", token).body(data.toJSONString()).execute(); |
|
|
|
String result = httpResponse.body(); |
|
|
|
String result = httpResponse.body(); |
|
|
|
opPackagePushLogEntity.setResp(result); |
|
|
|
opPackagePushLogEntity.setResp(result); |
|
|
|
opPackagePushLogService.save(opPackagePushLogEntity); |
|
|
|
opPackagePushLogService.save(opPackagePushLogEntity); |
|
|
|
return opPackagePushLogEntity; |
|
|
|
return opPackagePushLogEntity; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -877,26 +906,26 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { |
|
|
|
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushOupaiNode, "收货"); |
|
|
|
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushOupaiNode, "收货"); |
|
|
|
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushType, pushType);// 查询包件
|
|
|
|
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushType, pushType);// 查询包件
|
|
|
|
List<OpPackagePushLogEntity> list = opPackagePushLogService.list(lambdaQueryWrapper); |
|
|
|
List<OpPackagePushLogEntity> list = opPackagePushLogService.list(lambdaQueryWrapper); |
|
|
|
if(list.isEmpty()){ |
|
|
|
if (list.isEmpty()) { |
|
|
|
data.put("Operate","收货"); |
|
|
|
data.put("Operate", "收货"); |
|
|
|
OpPackagePushLogEntity opPackagePushLogEntity = sendPushOuPaiDataNew(refId, url, 1, data); |
|
|
|
OpPackagePushLogEntity opPackagePushLogEntity = sendPushOuPaiDataNew(refId, url, 1, data); |
|
|
|
|
|
|
|
|
|
|
|
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 由于欧派数据延迟推送作业,作业上没有进行入库作业回传,在出库回传欧派 再次进行补传入库数据, 包条ID:{}",refId); |
|
|
|
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 由于欧派数据延迟推送作业,作业上没有进行入库作业回传,在出库回传欧派 再次进行补传入库数据, 包条ID:{}", refId); |
|
|
|
// 由于现在无法进行异步任务的绑定,所以对于没有入库数据的说发,导致无法进行延迟 再加上欧派现在没有进行发货数据的考核 所以在检查到没有收货数据的发货推送的时间只传收货
|
|
|
|
// 由于现在无法进行异步任务的绑定,所以对于没有入库数据的说发,导致无法进行延迟 再加上欧派现在没有进行发货数据的考核 所以在检查到没有收货数据的发货推送的时间只传收货
|
|
|
|
// 将当前的发货的原始数据保存在定时任务 晚上再次执行该原始数据
|
|
|
|
// 将当前的发货的原始数据保存在定时任务 晚上再次执行该原始数据
|
|
|
|
opPackagePushLogEntity.setId(-1L); |
|
|
|
opPackagePushLogEntity.setId(-1L); |
|
|
|
return opPackagePushLogEntity; |
|
|
|
return opPackagePushLogEntity; |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
return sendOupaiDataAndSaveLogs(refId, url, pushType, data); |
|
|
|
return sendOupaiDataAndSaveLogs(refId, url, pushType, data); |
|
|
|
} |
|
|
|
} |
|
|
|
}else { |
|
|
|
} else { |
|
|
|
return sendOupaiDataAndSaveLogs(refId, url, pushType, data); |
|
|
|
return sendOupaiDataAndSaveLogs(refId, url, pushType, data); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Nullable |
|
|
|
@Nullable |
|
|
|
private OpPackagePushLogEntity sendOupaiDataAndSaveLogs(Long refId, String url, Integer pushType, JSONObject data) { |
|
|
|
private OpPackagePushLogEntity sendOupaiDataAndSaveLogs(Long refId, String url, Integer pushType, JSONObject data) { |
|
|
|
LambdaQueryWrapper<OpPackagePushLogEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
LambdaQueryWrapper<OpPackagePushLogEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getRefId, refId); |
|
|
|
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getRefId, refId); |
|
|
|
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushOupaiNode, data.getString("Operate")); |
|
|
|
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushOupaiNode, data.getString("Operate")); |
|
|
|
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushType, pushType);// 查询包件
|
|
|
|
lambdaQueryWrapper.eq(OpPackagePushLogEntity::getPushType, pushType);// 查询包件
|
|
|
@ -1288,11 +1317,11 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { |
|
|
|
|
|
|
|
|
|
|
|
String receiveCode = receivingOrderMapper.selectReceivingOrderByOrderId(factoryPackageEntity.getOrderId()); |
|
|
|
String receiveCode = receivingOrderMapper.selectReceivingOrderByOrderId(factoryPackageEntity.getOrderId()); |
|
|
|
|
|
|
|
|
|
|
|
if(receiveCode.equals(code)){ |
|
|
|
if (receiveCode.equals(code)) { |
|
|
|
log.error("############handleData: 包件码已存在 packageCode={} ,订单 id {} 收货单号 {}", packageCode, factoryPackageEntity.getOrderId(), code); |
|
|
|
log.error("############handleData: 包件码已存在 packageCode={} ,订单 id {} 收货单号 {}", packageCode, factoryPackageEntity.getOrderId(), code); |
|
|
|
|
|
|
|
|
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
log.error("############handleData: 该包件存在于其它收货单 packageCode={} 订单ID {} 收货单号 {}", packageCode,factoryPackageEntity.getOrderId(), receiveCode); |
|
|
|
log.error("############handleData: 该包件存在于其它收货单 packageCode={} 订单ID {} 收货单号 {}", packageCode, factoryPackageEntity.getOrderId(), receiveCode); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//throw new CustomerException(403, "包件码已存在");
|
|
|
|
//throw new CustomerException(403, "包件码已存在");
|
|
|
|