Browse Source

1.fix 重复数据 4

newStockUp
pref_mail@163.com 2 years ago
parent
commit
27a02f8e69
  1. 221
      blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java

221
blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java

@ -69,13 +69,13 @@ public class FactoryXxlJob {
@XxlJob("factoryJobHandler")
public ReturnT<String> factoryJobHandler(String param) throws Exception {
// 获取当前时间
LocalDate date ;
LocalDate date;
List<StationlinenumEntity> ls = stationlinenumService.lambdaQuery().eq(StationlinenumEntity::getIsDeleted, 0).eq(StationlinenumEntity::getStatus, LogpmDataStatusEnum.OPEN.getValue()).list();
if (!ObjectUtils.isEmpty(ls)) {
if(StringUtils.isNotBlank(param)){
if (StringUtils.isNotBlank(param)) {
date = LocalDate.parse(param);
}else{
} else {
date = LocalDate.now();
}
//查询配置站点
@ -101,11 +101,10 @@ public class FactoryXxlJob {
// 查询所有的数据库内容 只包含客户单号
List<StationOrderEntity> allDataList = stationOrderService.lambdaQuery().select(StationOrderEntity::getTcWlb008).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())) ;
List<String> newList = new ArrayList<>();
if (allDataList.size() != 0) {
newList.addAll(allDataList.stream().map(StationOrderEntity::getTcWlb008).collect(Collectors.toList()));
XxlJobLogger.log("newList{}", newList.size());
}
@ -115,7 +114,7 @@ public class FactoryXxlJob {
//XxlJobLogger.log("日志对象 {}", orderLogEntity);
Map<String, List> map = orderService.dataRelative(orderLogEntity);
List<StationOrderEntity> dataList = map.get(StationOrderEntity.class.getName());
if(dataList.size()==0){
if (dataList.size() == 0) {
//XxlJobLogger.log("本次解析操作没有数据");
//更新数据库请求日志状态
orderLogEntity.setStatus(0);
@ -168,7 +167,7 @@ public class FactoryXxlJob {
@Transactional(rollbackFor = Exception.class)
public Boolean resoveFactoryData() {
Map<Long,List<StaorderPackagesEntity>> map = new HashMap<>();
Map<Long, List<StaorderPackagesEntity>> map = new HashMap<>();
//TODO 调用Service 获取需要处理的数据
//查询要处理的订单信息
List<StationOrderEntity> stationOrderList = stationOrderService.list(Wrappers.<StationOrderEntity>query().lambda()
@ -178,33 +177,33 @@ public class FactoryXxlJob {
//TODO 获取老系统中存在的数据 与当前需要处理的数据进行判断是否存在重复
AdvanceDTO advanceDTO = new AdvanceDTO();
List<AdvanceEntity> queryData = iAdvanceClient.getQueryData(advanceDTO);
if(queryData.size() > 0){
queryData.forEach( it ->{
if (queryData.size() > 0) {
queryData.forEach(it -> {
StationOrderEntity stationOrderEntity = collect.get(it.getOrderSelfNum());
if(ObjectUtil.isNotNull(stationOrderEntity)){
if (ObjectUtil.isNotNull(stationOrderEntity)) {
collect.remove(it.getOrderSelfNum());
}
});
}
Map<Long, Integer> longIntegerMap = new HashMap<>(); //订单ID
List<ServiceNumEntity> list = new ArrayList<>(); // 服务号 自编码
if(collect.size() > 0){
collect.forEach((k,v) ->{
if (collect.size() > 0) {
collect.forEach((k, v) -> {
List<StaorderPackagesEntity> staorderPackagesList = staorderPackagesService.list(Wrappers.<StaorderPackagesEntity>query().lambda()
.eq(StaorderPackagesEntity::getIdentification, "2")
.eq(StaorderPackagesEntity::getOrderId,k)
.eq(StaorderPackagesEntity::getOrderId, k)
);
if(staorderPackagesList.size() > 0){
map.put(k,staorderPackagesList);
if (staorderPackagesList.size() > 0) {
map.put(k, staorderPackagesList);
}
//查询基地名称
StationlinenumEntity stationlinenumEntity = stationlinenumService.selectNameByNumber(v.getTcWlb006());
String siteName = Objects.isNull(stationlinenumEntity) ? null : stationlinenumEntity.getLogisticsLineName();
Integer warehouseId = warehouseClient.selectIdByName(siteName);
logger.info("###########resoveFactoryData: warehouseId={}",warehouseId);
logger.info("###########resoveFactoryData: warehouseId={}", warehouseId);
//添加订单信息
AdvanceEntity advanceEntity = new AdvanceEntity();
AdvanceEntity advanceEntity = new AdvanceEntity();
advanceEntity.setOrderSelfNum(v.getTcWlb008()); //订单自编号
advanceEntity.setSiteName(siteName); // 基地
advanceEntity.setArea(""); // 区域
@ -241,79 +240,79 @@ public class FactoryXxlJob {
advanceEntity.setCarsNum(v.getTcWla001()); //派车单--snm 可以为空
advanceEntity.setDeleteTime(0); // 删除时间
advanceEntity.setWaybillNo("");//运单号 可以为空
advanceEntity.setWarehouseId(Objects.isNull(warehouseId)?0:warehouseId); //导入人仓库id
advanceEntity.setWarehouseId(Objects.isNull(warehouseId) ? 0 : warehouseId); //导入人仓库id
advanceEntity.setWaybillStatus(Byte.parseByte("1"));//开单状态:1=未开单,2=已开单
advanceEntity.setOldId(0);//
advanceEntity.setFreeze(Byte.parseByte("1"));//冻结状态:1=正常,2=冻结
advanceEntity.setDeleteReason("");//删除原因
advanceEntity.setDeleteAdministratorsId(0);//删除用户
Integer integer = iAdvanceClient.addAdvanceClient(advanceEntity);
if (integer > 0){
if (integer > 0) {
//订单id
longIntegerMap.put(k,integer);
longIntegerMap.put(k, integer);
// longIntegerMap.put(k,advanceEntity.getId());
}
});
//TODO 插入到老系统的的数据库
map.forEach((k,v) ->{
StationOrderEntity stationOrderEntity = collect.get(k); // 订单
Integer aLong = longIntegerMap.get(k);//订单ID
//查询基地名称
StationlinenumEntity stationlinenumEntity = stationlinenumService.selectNameByNumber(stationOrderEntity.getTcWlb006());
List<GroupByPackagesDTO> groupByPackages = staorderPackagesService.selectGroupByLxAndPackNumByOrderId(k);
groupByPackages.forEach(gpd->{
//添加订单明细
AdvanceDetailEntity advanceDetailEntity = new AdvanceDetailEntity();
advanceDetailEntity.setAdvanceId(aLong);//预仓id
advanceDetailEntity.setIsPay(Byte.parseByte("0"));//
advanceDetailEntity.setLineID("");//线下订单明细标时 可以为空
advanceDetailEntity.setSerialKey("");//序列号 可以为空
advanceDetailEntity.setArea("");//区域
advanceDetailEntity.setOrderSelfNum(stationOrderEntity.getTcWlb008());//订单自编号
advanceDetailEntity.setType("诗尼曼");//订单来源
advanceDetailEntity.setSystemType("线上");//订单类型
advanceDetailEntity.setOrderNum("");//MSCS单号 可以为空
advanceDetailEntity.setIsOpai(0);//是否干仓配:1=是,0=否
advanceDetailEntity.setMtdsNo("");//MTDS单号 可以为空
advanceDetailEntity.setFirstPackName(PackagesTypeEnum.getMes(gpd.getLx()));//一级品类
advanceDetailEntity.setFirstPackCode("");//二级品类
advanceDetailEntity.setSiteName(Objects.isNull(stationlinenumEntity)?null:stationlinenumEntity.getLogisticsLineName());//基地名称
advanceDetailEntity.setSiteCode("");//基地编码
advanceDetailEntity.setProductCode("");//货品名称 可以为空
advanceDetailEntity.setSecondPackName(PackagesTypeEnum.getMes(gpd.getLx()));//二级品类名称
advanceDetailEntity.setSecondPackCode("");//二级品类
advanceDetailEntity.setThirdPackName(PackagesTypeEnum.getMes(gpd.getLx()));//三级品类名称
advanceDetailEntity.setThirdPackCode(gpd.getLx());//三级品类
advanceDetailEntity.setGoodName("");//v产品类型 可以为空
advanceDetailEntity.setIsAddin("Y");//例放:N=正常,Y=例放
advanceDetailEntity.setIsThirdAddin("N");//三级例放:N=正常,Y=例放
advanceDetailEntity.setIsSuppin("N");//补进:N=正常,Y=例放
advanceDetailEntity.setMscsNum(gpd.getTotal().toString());//发货数量
advanceDetailEntity.setMtdsNum(0);//销售数量
advanceDetailEntity.setVolume("");//体积
advanceDetailEntity.setUnitNo(gpd.getPackagenum());//包条码
advanceDetailEntity.setMctsTruck(stationOrderEntity.getTcWla001());//车次号
advanceDetailEntity.setMctsTruckNo("");//车牌号
advanceDetailEntity.setDate100(CommonUtil.stringToLocalDate(stationOrderEntity.getTcWla002()));//基地发货日期
advanceDetailEntity.setDate2("");//预约到厂时间
advanceDetailEntity.setDate3("");//实际到厂时间
advanceDetailEntity.setDate4("");//开始装车时间
advanceDetailEntity.setDate5("");//完成装车时间
advanceDetailEntity.setDate6("");//车辆离厂时间
advanceDetailEntity.setCreateTime(LocalDate.now());//创建时间
advanceDetailEntity.setDeleteTime(0);//删除时间
advanceDetailEntity.setServiceNum(stationOrderEntity.getTcWlb008());//服务号
advanceDetailEntity.setAdmin("");//
advanceDetailEntity.setAdministratorsId(0);//导入人
map.forEach((k, v) -> {
StationOrderEntity stationOrderEntity = collect.get(k); // 订单
Integer aLong = longIntegerMap.get(k);//订单ID
//查询基地名称
StationlinenumEntity stationlinenumEntity = stationlinenumService.selectNameByNumber(stationOrderEntity.getTcWlb006());
List<GroupByPackagesDTO> groupByPackages = staorderPackagesService.selectGroupByLxAndPackNumByOrderId(k);
groupByPackages.forEach(gpd -> {
//添加订单明细
AdvanceDetailEntity advanceDetailEntity = new AdvanceDetailEntity();
advanceDetailEntity.setAdvanceId(aLong);//预仓id
advanceDetailEntity.setIsPay(Byte.parseByte("0"));//
advanceDetailEntity.setLineID("");//线下订单明细标时 可以为空
advanceDetailEntity.setSerialKey("");//序列号 可以为空
advanceDetailEntity.setArea("");//区域
advanceDetailEntity.setOrderSelfNum(stationOrderEntity.getTcWlb008());//订单自编号
advanceDetailEntity.setType("诗尼曼");//订单来源
advanceDetailEntity.setSystemType("线上");//订单类型
advanceDetailEntity.setOrderNum("");//MSCS单号 可以为空
advanceDetailEntity.setIsOpai(0);//是否干仓配:1=是,0=否
advanceDetailEntity.setMtdsNo("");//MTDS单号 可以为空
advanceDetailEntity.setFirstPackName(PackagesTypeEnum.getMes(gpd.getLx()));//一级品类
advanceDetailEntity.setFirstPackCode("");//二级品类
advanceDetailEntity.setSiteName(Objects.isNull(stationlinenumEntity) ? null : stationlinenumEntity.getLogisticsLineName());//基地名称
advanceDetailEntity.setSiteCode("");//基地编码
advanceDetailEntity.setProductCode("");//货品名称 可以为空
advanceDetailEntity.setSecondPackName(PackagesTypeEnum.getMes(gpd.getLx()));//二级品类名称
advanceDetailEntity.setSecondPackCode("");//二级品类
advanceDetailEntity.setThirdPackName(PackagesTypeEnum.getMes(gpd.getLx()));//三级品类名称
advanceDetailEntity.setThirdPackCode(gpd.getLx());//三级品类
advanceDetailEntity.setGoodName("");//v产品类型 可以为空
advanceDetailEntity.setIsAddin("Y");//例放:N=正常,Y=例放
advanceDetailEntity.setIsThirdAddin("N");//三级例放:N=正常,Y=例放
advanceDetailEntity.setIsSuppin("N");//补进:N=正常,Y=例放
advanceDetailEntity.setMscsNum(gpd.getTotal().toString());//发货数量
advanceDetailEntity.setMtdsNum(0);//销售数量
advanceDetailEntity.setVolume("");//体积
advanceDetailEntity.setUnitNo(gpd.getPackagenum());//包条码
advanceDetailEntity.setMctsTruck(stationOrderEntity.getTcWla001());//车次号
advanceDetailEntity.setMctsTruckNo("");//车牌号
advanceDetailEntity.setDate100(CommonUtil.stringToLocalDate(stationOrderEntity.getTcWla002()));//基地发货日期
advanceDetailEntity.setDate2("");//预约到厂时间
advanceDetailEntity.setDate3("");//实际到厂时间
advanceDetailEntity.setDate4("");//开始装车时间
advanceDetailEntity.setDate5("");//完成装车时间
advanceDetailEntity.setDate6("");//车辆离厂时间
advanceDetailEntity.setCreateTime(LocalDate.now());//创建时间
advanceDetailEntity.setDeleteTime(0);//删除时间
advanceDetailEntity.setServiceNum(stationOrderEntity.getTcWlb008());//服务号
advanceDetailEntity.setAdmin("");//
advanceDetailEntity.setAdministratorsId(0);//导入人
// advanceDetailEntity.setDueDate(0);//交期
advanceDetailEntity.setRemark("");//备注
advanceDetailEntity.setOldId(0);//
boolean b = advanceDetailClient.addAdvanceDetail(advanceDetailEntity);
//XxlJobLogger.log("addAdvanceDetail 添加状态 {}", b);
});
// 添加包件信息
advanceDetailEntity.setRemark("");//备注
advanceDetailEntity.setOldId(0);//
boolean b = advanceDetailClient.addAdvanceDetail(advanceDetailEntity);
//XxlJobLogger.log("addAdvanceDetail 添加状态 {}", b);
});
// 添加包件信息
// DetailProductEntity detailProductEntity = new DetailProductEntity();
@ -331,33 +330,32 @@ public class FactoryXxlJob {
// //XxlJobLogger.log("addDetailProduct 添加状态 {}", aBoolean11);
ServiceNumEntity serviceNum = new ServiceNumEntity();
serviceNum.setServiceNum(stationOrderEntity.getTcWlb007()); //服务号
serviceNum.setTotal(stationOrderEntity.getTcWlb009().toString()); //订单数量
serviceNum.setDetailTotal(stationOrderEntity.getTcWlb009().toString()); // 包数量
serviceNum.setStoreName(stationOrderEntity.getOcc02()); //商场名
serviceNum.setStoreNo(""); // 商场编号
serviceNum.setCustomerName(stationOrderEntity.getTcWlb010()); //顾客姓名
serviceNum.setCustomerPhone(stationOrderEntity.getTcWlb011()); //顾客电话
serviceNum.setCustomerRoad(""); //顾客地址
serviceNum.setIsOpai(1); //是否干仓配
serviceNum.setCompleteSet("V"); //齐套标识:Y=齐套,N=未齐套,V=未知
ServiceNumEntity serviceNum = new ServiceNumEntity();
serviceNum.setServiceNum(stationOrderEntity.getTcWlb007()); //服务号
serviceNum.setTotal(stationOrderEntity.getTcWlb009().toString()); //订单数量
serviceNum.setDetailTotal(stationOrderEntity.getTcWlb009().toString()); // 包数量
serviceNum.setStoreName(stationOrderEntity.getOcc02()); //商场名
serviceNum.setStoreNo(""); // 商场编号
serviceNum.setCustomerName(stationOrderEntity.getTcWlb010()); //顾客姓名
serviceNum.setCustomerPhone(stationOrderEntity.getTcWlb011()); //顾客电话
serviceNum.setCustomerRoad(""); //顾客地址
serviceNum.setIsOpai(1); //是否干仓配
serviceNum.setCompleteSet("V"); //齐套标识:Y=齐套,N=未齐套,V=未知
// serviceNum.setCreateTime(LocalDate.now());
serviceNum.setDeleteTime(0);
list.add(serviceNum);
v.forEach(it ->{
it.setIdentification("1");
staorderPackagesService.updateById(it);
});
serviceNum.setDeleteTime(0);
list.add(serviceNum);
v.forEach(it -> {
it.setIdentification("1");
staorderPackagesService.updateById(it);
});
});
//添加服务号和订单自编号表
});
//添加服务号和订单自编号表
Boolean aBoolean123 = serviceNumClient.addServiceNum(list);
//XxlJobLogger.log("addServiceNum添加状态 {}", aBoolean123);
//修改提交状态
stationOrderList.forEach(it ->{
stationOrderList.forEach(it -> {
it.setIdentification("1");
stationOrderService.updateById(it);
});
@ -367,15 +365,20 @@ public class FactoryXxlJob {
}
private List<StationOrderEntity> checkDataExit(List<StationOrderEntity> dataList, List<String> allDataList) {
//XxlJobLogger.log("allDataList {}", allDataList.toArray());
for (int i = 0; i < dataList.size(); i++) {
//XxlJobLogger.log("dataList.get(i).getTcWlb008() {}", dataList.get(i).getTcWlb008());
if (allDataList.contains(dataList.get(i).getTcWlb008())) {
// 如果存在 需要移除
//XxlJobLogger.log("移除对象 {}", dataList.get(i).getTcWlb008());
dataList.remove(i);
allDataList.forEach(t -> {
for (int i = 0; i < dataList.size(); i++) {
if (dataList.get(i).getTcWlb008().equals(t)) {
dataList.remove(i);
}
}
}
});
// for (int i = 0; i < dataList.size(); i++) {
// if (allDataList.contains(dataList.get(i).getTcWlb008())) {
// dataList.remove(i);
// }
// }
return dataList;
}

Loading…
Cancel
Save