|
|
|
@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil; |
|
|
|
|
import cn.hutool.json.JSONUtil; |
|
|
|
|
import com.alibaba.fastjson.JSONObject; |
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
import com.logpm.factory.comfac.dto.OrderStatusDTO; |
|
|
|
@ -127,78 +128,72 @@ public class FactoryXxlJob {
|
|
|
|
|
|
|
|
|
|
// 获取请求日志 按照状态来识别
|
|
|
|
|
List<OrderLogEntity> ls = orderLogService.lambdaQuery().eq(OrderLogEntity::getType, 1).eq(OrderLogEntity::getStatus, 1).list(); |
|
|
|
|
// //XxlJobLogger.log("日志集合 {}", ls);
|
|
|
|
|
|
|
|
|
|
//XxlJobLogger.log("目前存在的数据 {}", newList);
|
|
|
|
|
|
|
|
|
|
// 查询所有的数据库内容 只包含客户单号
|
|
|
|
|
List<StationOrderEntity> allDataList = stationOrderService.list(); |
|
|
|
|
XxlJobLogger.log("allDataList{}", allDataList.size()); |
|
|
|
|
// 解析数据
|
|
|
|
|
ls.forEach(orderLogEntity -> { |
|
|
|
|
|
|
|
|
|
// 查询所有的数据库内容 只包含客户单号
|
|
|
|
|
List<StationOrderEntity> allDataList = stationOrderService.list(); |
|
|
|
|
XxlJobLogger.log("allDataList{}", allDataList.size()); |
|
|
|
|
|
|
|
|
|
// List<String> newList = new ArrayList<>();
|
|
|
|
|
// if (allDataList.size() != 0) {
|
|
|
|
|
// newList.addAll(allDataList.stream().map(StationOrderEntity::getTcWlb008).collect(Collectors.toList()));
|
|
|
|
|
// XxlJobLogger.log("newList{}", newList.size());
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
//XxlJobLogger.log("日志对象 {}", orderLogEntity);
|
|
|
|
|
Map<String, List> map = orderService.dataRelative(orderLogEntity); |
|
|
|
|
List<StationOrderEntity> dataList = map.get(StationOrderEntity.class.getName()); |
|
|
|
|
List<StationOrderEntity> dataList = (List<StationOrderEntity>) map.get(StationOrderEntity.class.getName()); |
|
|
|
|
if (dataList.isEmpty()) { |
|
|
|
|
//XxlJobLogger.log("本次解析操作没有数据");
|
|
|
|
|
//更新数据库请求日志状态
|
|
|
|
|
// 更新数据库请求日志状态
|
|
|
|
|
orderLogEntity.setStatus(0); |
|
|
|
|
orderLogService.updateById(orderLogEntity); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
dataList = checkDataExit(dataList, allDataList); |
|
|
|
|
if (dataList != null && dataList.size() != 0) { |
|
|
|
|
//XxlJobLogger.log("保存对象StationOrderEntity {}", dataList);
|
|
|
|
|
if (!dataList.isEmpty()) { |
|
|
|
|
stationOrderService.saveBatch(dataList); |
|
|
|
|
} |
|
|
|
|
//XxlJobLogger.log("日志对象 {}", dataList.get(0).getId());
|
|
|
|
|
|
|
|
|
|
List<StaorderPackagesEntity> staorderPackagesEntityList = map.get(StaorderPackagesEntity.class.getName()); |
|
|
|
|
List<StaorderPackagesEntity> allDataStaorderPackagesEntity = staorderPackagesService.lambdaQuery().select(StaorderPackagesEntity::getPackagenum).list(); |
|
|
|
|
List<String> allStaorderPackagesEntityUnionId = allDataStaorderPackagesEntity.stream().map(StaorderPackagesEntity::getPackagenum).collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
List<StaorderPackagesEntity> staorderPackagesEntityList = (List<StaorderPackagesEntity>) map.get(StaorderPackagesEntity.class.getName()); |
|
|
|
|
|
|
|
|
|
allStaorderPackagesEntityUnionId.forEach(t -> { |
|
|
|
|
for (int i = 0; i < staorderPackagesEntityList.size(); i++) { |
|
|
|
|
if (staorderPackagesEntityList.get(i).getPackagenum().equals(t)) { |
|
|
|
|
staorderPackagesEntityList.remove(i); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
Set<String> existingPackageNumbers = new HashSet<>(); |
|
|
|
|
if (staorderPackagesEntityList != null) { |
|
|
|
|
for (StaorderPackagesEntity staorderPackagesEntity : staorderPackagesEntityList) { |
|
|
|
|
existingPackageNumbers.add(staorderPackagesEntity.getPackagenum()); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
/*************** SNM 存在 相同的车次 多次推送 重复的包件的操作**************/ |
|
|
|
|
// 需要移除 当前合同号下的已经存在的包件
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
dataList.forEach(v -> { |
|
|
|
|
for (int i = 0; i < staorderPackagesEntityList.size(); i++) { |
|
|
|
|
if (staorderPackagesEntityList.get(i).getTcPoa014().equals(v.getTcWlb008())) { |
|
|
|
|
staorderPackagesEntityList.get(i).setOrderId(v.getId()); |
|
|
|
|
List<StationOrderEntity> finalDataList = dataList; |
|
|
|
|
List<StaorderPackagesEntity> filteredStaorderPackagesEntityList = staorderPackagesEntityList.stream() |
|
|
|
|
.filter(staorderPackagesEntity -> { |
|
|
|
|
|
|
|
|
|
List<StaorderPackagesEntity> list = staorderPackagesService.lambdaQuery() |
|
|
|
|
.eq(StaorderPackagesEntity::getIsDeleted, 0) |
|
|
|
|
.eq(StaorderPackagesEntity::getTcPoa014, staorderPackagesEntity.getTcPoa014()).list(); |
|
|
|
|
// 验证查询处理的包件中是否包含当前循环的包件
|
|
|
|
|
boolean exists = list.stream() |
|
|
|
|
.anyMatch(t -> t.getPackagenum().equals(staorderPackagesEntity.getPackagenum())); |
|
|
|
|
|
|
|
|
|
if (!exists) { |
|
|
|
|
// 更新订单ID
|
|
|
|
|
for (StationOrderEntity v : finalDataList) { |
|
|
|
|
if (v.getTcWlb008().equals(staorderPackagesEntity.getTcPoa014())) { |
|
|
|
|
staorderPackagesEntity.setOrderId(v.getId()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return !exists && !existingPackageNumbers.contains(staorderPackagesEntity.getPackagenum()); |
|
|
|
|
}) |
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
// 插入数据库
|
|
|
|
|
if (staorderPackagesEntityList != null && !staorderPackagesEntityList.isEmpty()) { |
|
|
|
|
//XxlJobLogger.log("保存对象StaorderPackagesEntity {}", staorderPackagesEntityList);
|
|
|
|
|
staorderPackagesService.saveBatch(staorderPackagesEntityList); |
|
|
|
|
if (!filteredStaorderPackagesEntityList.isEmpty()) { |
|
|
|
|
staorderPackagesService.saveBatch(filteredStaorderPackagesEntityList); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//更新数据库请求日志状态
|
|
|
|
|
// 更新数据库请求日志状态
|
|
|
|
|
orderLogEntity.setStatus(0); |
|
|
|
|
orderLogService.updateById(orderLogEntity); |
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
// 调用接口写入到老系统的数据库
|
|
|
|
|
if (ObjectUtil.equal(sendDataProperties.getSend(), "old")) { |
|
|
|
|
log.info("推送到老系统"); |
|
|
|
@ -212,6 +207,7 @@ public class FactoryXxlJob {
|
|
|
|
|
return ReturnT.SUCCESS; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private Timestamp initTimestamp() { |
|
|
|
|
Calendar calendar = Calendar.getInstance(); |
|
|
|
|
|
|
|
|
|