Browse Source

fix:优化欧派数据回传

pre-production
pref_mail@163.com 3 weeks ago
parent
commit
6d1939e9e0
  1. 191
      blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java

191
blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java

@ -461,7 +461,10 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
queryWrapper.eq(FactoryPackageEntity::getCosourcingCode, unitNo);
List<FactoryPackageEntity> list = factoryPackageService.list(queryWrapper);
if (list.isEmpty()) {
return doPackageInfo(orderStatusDTO, isRetry, unitNo, status);
// 查询不到和包码 直接进行异常记录
//return doPackageInfo(orderStatusDTO, isRetry, unitNo, status);
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO);
return Resp.fail(400, "未查询到该单据推送订单信息");
} else {
try {
for (FactoryPackageEntity factoryPackageEntity : list) {
@ -667,92 +670,122 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService {
// 查询这个包件对应到新系统的订单
FactoryOrderEntity factoryOrder = factoryOrderService.selectEntityByOrderPackageCode(unitNo);
if (Objects.isNull(factoryOrder)) {
// 不是重试的时候,记录对应数据
log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo);
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO);
return Resp.fail(400, "未查询到该单据推送订单信息");
}
// 如何判断这个包间是非干仓配的数据
if (!"经销商".equals(factoryOrder.getBusinessModel())) {
log.info("oupai- 该包条为干仓配的数据类型 不进行推送 >>> unitNo={} businessModel:{}", unitNo, factoryOrder.getBusinessModel());
return Resp.fail(400, "包条为干仓配的数据类型");
}
boolean isPushHtNomal = checkOpfactoryOrderBusinessModel(factoryOrder);
if (isPushHtNomal) {
log.info("oupai- 该包条为汇通使用欧派系统进行作业类型型 不进行推送 >>> unitNo={} businessModel:{}", unitNo, factoryOrder.getBusinessModel());
return Resp.fail(400, "该包条为汇通使用欧派系统进行作业类型");
}
// 通过仓库编码查询
ReceivingOrderEntity receivingOrderEntity = receivingOrderMapper.selectById(factoryOrder.getReceivingId());
if (Objects.isNull(receivingOrderEntity)) {
log.info(" 该订单为没有收货单 不进行推送 >>> receivingId={} ", factoryOrder.getReceivingId());
return Resp.fail(400, "未查询到该单据推送收货单信息");
}
if(unitNo.startsWith("HB")){
// 需要判断当前操作的码 是否是和包码
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);
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO);
return Resp.fail(400, "未查询到该单据推送订单信息");
} else {
try {
for (FactoryPackageEntity factoryPackageEntity : list) {
if (StringUtil.isBlank(receivingOrderEntity.getCurrentWarehouseOid())) {
log.info(" 该订单为没有收货仓 不进行推送 >>> getCurrentWarehouseOid={} ", receivingOrderEntity.getCurrentWarehouseOid());
return Resp.fail(400, "收货仓信息不能为null");
}
if (!receivingOrderEntity.getCurrentWarehouseName().contains("仓")) {
log.info(" 该订单为没有收货仓信息不正确 getCurrentWarehouseName={} ", receivingOrderEntity.getCurrentWarehouseName());
return Resp.fail(400, "该订单为没有收货仓信息不正确");
}
R r = doPackageInfo(orderStatusDTO, false, factoryPackageEntity.getCode(), status);
}
} catch (Exception e) {
log.error("合包码推送出现异常", e);
}
return Resp.success("物流状态传递成功");
JSONObject detailObject = new JSONObject();
detailObject.put("WarehouseOid", receivingOrderEntity.getCurrentWarehouseOid());
detailObject.put("WarehouseBelong", "oppein");
detailObject.put("Creator", orderStatusDTO.getUsername());
detailObject.put("PackageCode", unitNo);
// 增加当仓直接入库的 就没有卸车收货的状态 直接 进行入库 入库就表示货物进入当前仓库
if ("4".equals(status) || "1".equals(status)) {
detailObject.put("Operate", "收货");
} else if ("7".equals(status)) {
detailObject.put("Operate", "发货");
} else {
log.info(" 该包件的状态不正确 status={} ", status);
return Resp.fail(400, "该包件的状态不正确");
}
}else{
return doPackageInfo(orderStatusDTO, false, unitNo, status);
}
// 查询系统的包件对象
LambdaQueryWrapper<FactoryPackageEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(FactoryPackageEntity::getCode, unitNo);
FactoryPackageEntity factoryPackageEntity = factoryPackageService.getOne(lambdaQueryWrapper);
if (ObjectUtils.isNotNull(factoryPackageEntity)) {
// 推送数据
String url = ouPaiProperties.getUri() + "tims_odata_api/api/odata/PackageFeedbackRecord";
OpPackagePushLogEntity opPackagePushLogEntity = sendPushOuPaiData(factoryPackageEntity.getId(), url, 1, detailObject);
if (opPackagePushLogEntity == null) {
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 包件 {} 已推送欧派 状态 {}", unitNo, detailObject.get("Operate"));
} else {
if (opPackagePushLogEntity.getId().equals(-1L)) {
log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo);
opPushFailedPackageRecordService.record(unitNo, orderStatusDTO);
}
// 需要盘点这个对象的
String resp = opPackagePushLogEntity.getResp();
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 推送欧派返回数据 {}", resp);
// TODO: 2023/10/25 不知道返回成功的状态是多少
// 需要修改包件对应的状态
checkOpFactoryPackagePushStatus(factoryPackageEntity);
}
}
log.info(" >>>>>>>>>>>>>>>>>>>>>>> 物流状态传递成功");
return Resp.success("物流状态传递成功");
// 查询这个包件对应到新系统的订单
// FactoryOrderEntity factoryOrder = factoryOrderService.selectEntityByOrderPackageCode(unitNo);
//
// if (Objects.isNull(factoryOrder)) {
//
// // 不是重试的时候,记录对应数据
// log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo);
// opPushFailedPackageRecordService.record(unitNo, orderStatusDTO);
//
// return Resp.fail(400, "未查询到该单据推送订单信息");
// }
// // 如何判断这个包间是非干仓配的数据
//
// if (!"经销商".equals(factoryOrder.getBusinessModel())) {
// log.info("oupai- 该包条为干仓配的数据类型 不进行推送 >>> unitNo={} businessModel:{}", unitNo, factoryOrder.getBusinessModel());
// return Resp.fail(400, "包条为干仓配的数据类型");
// }
//
// boolean isPushHtNomal = checkOpfactoryOrderBusinessModel(factoryOrder);
// if (isPushHtNomal) {
// log.info("oupai- 该包条为汇通使用欧派系统进行作业类型型 不进行推送 >>> unitNo={} businessModel:{}", unitNo, factoryOrder.getBusinessModel());
// return Resp.fail(400, "该包条为汇通使用欧派系统进行作业类型");
// }
//
// // 通过仓库编码查询
// ReceivingOrderEntity receivingOrderEntity = receivingOrderMapper.selectById(factoryOrder.getReceivingId());
//
// if (Objects.isNull(receivingOrderEntity)) {
// log.info(" 该订单为没有收货单 不进行推送 >>> receivingId={} ", factoryOrder.getReceivingId());
// return Resp.fail(400, "未查询到该单据推送收货单信息");
// }
//
// if (StringUtil.isBlank(receivingOrderEntity.getCurrentWarehouseOid())) {
// log.info(" 该订单为没有收货仓 不进行推送 >>> getCurrentWarehouseOid={} ", receivingOrderEntity.getCurrentWarehouseOid());
// return Resp.fail(400, "收货仓信息不能为null");
// }
// if (!receivingOrderEntity.getCurrentWarehouseName().contains("仓")) {
// log.info(" 该订单为没有收货仓信息不正确 getCurrentWarehouseName={} ", receivingOrderEntity.getCurrentWarehouseName());
// return Resp.fail(400, "该订单为没有收货仓信息不正确");
// }
//
//
// JSONObject detailObject = new JSONObject();
// detailObject.put("WarehouseOid", receivingOrderEntity.getCurrentWarehouseOid());
// detailObject.put("WarehouseBelong", "oppein");
// detailObject.put("Creator", orderStatusDTO.getUsername());
// detailObject.put("PackageCode", unitNo);
// // 增加当仓直接入库的 就没有卸车收货的状态 直接 进行入库 入库就表示货物进入当前仓库
// if ("4".equals(status) || "1".equals(status)) {
// detailObject.put("Operate", "收货");
// } else if ("7".equals(status)) {
// detailObject.put("Operate", "发货");
// } else {
// log.info(" 该包件的状态不正确 status={} ", status);
// return Resp.fail(400, "该包件的状态不正确");
// }
//
// // 查询系统的包件对象
// LambdaQueryWrapper<FactoryPackageEntity> lambdaQueryWrapper = new LambdaQueryWrapper<>();
// lambdaQueryWrapper.eq(FactoryPackageEntity::getCode, unitNo);
// FactoryPackageEntity factoryPackageEntity = factoryPackageService.getOne(lambdaQueryWrapper);
// if (ObjectUtils.isNotNull(factoryPackageEntity)) {
// // 推送数据
// String url = ouPaiProperties.getUri() + "tims_odata_api/api/odata/PackageFeedbackRecord";
// OpPackagePushLogEntity opPackagePushLogEntity = sendPushOuPaiData(factoryPackageEntity.getId(), url, 1, detailObject);
//
// if (opPackagePushLogEntity == null) {
// log.info(" >>>>>>>>>>>>>>>>>>>>>>> 包件 {} 已推送欧派 状态 {}", unitNo, detailObject.get("Operate"));
// } else {
//
// if (opPackagePushLogEntity.getId().equals(-1L)) {
// log.info(">>> new保存没有查询到欧派订单包件推送 的记录 {}", unitNo);
// opPushFailedPackageRecordService.record(unitNo, orderStatusDTO);
// }
//
// // 需要盘点这个对象的
// String resp = opPackagePushLogEntity.getResp();
//
// log.info(" >>>>>>>>>>>>>>>>>>>>>>> 推送欧派返回数据 {}", resp);
// // TODO: 2023/10/25 不知道返回成功的状态是多少
// // 需要修改包件对应的状态
// checkOpFactoryPackagePushStatus(factoryPackageEntity);
// }
// }
// log.info(" >>>>>>>>>>>>>>>>>>>>>>> 物流状态传递成功");
// return Resp.success("物流状态传递成功");
}
/**

Loading…
Cancel
Save