refactor(sales): 优化销售出库单数据处理逻辑
- 新增代码注释和调试信息,便于排查问题 - 优化数据查询和处理逻辑,提高效率 - 使用 Set 和 List转换,避免重复数据 - 重构部分代码结构,提高可读性
This commit is contained in:
parent
f522db520c
commit
1ffef190ef
|
@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.http.HttpRequest;
|
import cn.hutool.http.HttpRequest;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
import com.hzya.frame.base.PluginBaseEntity;
|
import com.hzya.frame.base.PluginBaseEntity;
|
||||||
import com.hzya.frame.beanutil.BeanUtil;
|
import com.hzya.frame.beanutil.BeanUtil;
|
||||||
import com.hzya.frame.plugin.lets.constant.OverallConstant;
|
import com.hzya.frame.plugin.lets.constant.OverallConstant;
|
||||||
|
@ -39,6 +40,7 @@ import com.hzya.frame.u8c.ax.entity.Ass;
|
||||||
import com.hzya.frame.web.entity.BaseResult;
|
import com.hzya.frame.web.entity.BaseResult;
|
||||||
import com.hzya.frame.web.entity.JsonResultEntity;
|
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||||
import com.hzya.frame.web.exception.BaseSystemException;
|
import com.hzya.frame.web.exception.BaseSystemException;
|
||||||
|
import org.apache.commons.collections.ListUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -572,6 +574,12 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
|
||||||
allTocofsSaleoutDetailedEntityList.addAll(tocofsSaleoutDetailedEntityList);
|
allTocofsSaleoutDetailedEntityList.addAll(tocofsSaleoutDetailedEntityList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 判断重启的key
|
||||||
|
// allTocofsSaleoutDetailedEntityList.stream().collect(Collectors.groupingBy(s -> s, Collectors.counting())).forEach((key, count) -> {
|
||||||
|
// if (count > 1) {
|
||||||
|
// System.out.println("重复的键: " + key + ", 出现次数: " + count);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
return filterDataRowsAsPushOrFailedStock(allTocofsSaleoutDetailedEntityList, headerDetailsDtoList);
|
return filterDataRowsAsPushOrFailedStock(allTocofsSaleoutDetailedEntityList, headerDetailsDtoList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -657,6 +665,14 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
|
||||||
}
|
}
|
||||||
return obj;
|
return obj;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
|
//排查代码
|
||||||
|
// resultList.stream().collect(Collectors.groupingBy(s -> s, Collectors.counting())).forEach((key, count) -> {
|
||||||
|
// if (count > 1) {
|
||||||
|
// System.out.println("重复的键: " + key + ", 出现次数: " + count);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
Map<String, String> no2NameMap = resultList.stream().collect(Collectors.toMap(TocofsSaleoutDetailedEntity::getId, TocofsSaleoutDetailedEntity::getNewstate));
|
Map<String, String> no2NameMap = resultList.stream().collect(Collectors.toMap(TocofsSaleoutDetailedEntity::getId, TocofsSaleoutDetailedEntity::getNewstate));
|
||||||
|
|
||||||
//字段Y(成功)或者为H(手工处理)可以视为成功,完成了小段业务闭环的数据行
|
//字段Y(成功)或者为H(手工处理)可以视为成功,完成了小段业务闭环的数据行
|
||||||
|
@ -4044,16 +4060,19 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
|
||||||
// tocofsSaleoutDetailedEntity.setBusinessDateEnd();
|
// tocofsSaleoutDetailedEntity.setBusinessDateEnd();
|
||||||
// tocofsSaleoutDetailedEntity.setBusinesstype("TOC_ORDER");
|
// tocofsSaleoutDetailedEntity.setBusinesstype("TOC_ORDER");
|
||||||
|
|
||||||
//底表O销售出库单表头对象
|
//底表O销售出库单表头对象 34479
|
||||||
List<TocofsSaleoutEntity> allTocofsSaleoutEntityList = new ArrayList<>();
|
List<TocofsSaleoutEntity> allTocofsSaleoutEntityList = new ArrayList<>();
|
||||||
//底表O销售出库单明细行
|
//底表O销售出库单明细行 71874
|
||||||
List<TocofsSaleoutDetailedEntity> tocofsSaleoutDetailedEntityList = iTocofsSaleoutDetailedDao.query(tocofsSaleoutDetailedEntity);
|
List<TocofsSaleoutDetailedEntity> tocofsSaleoutDetailedEntityList = iTocofsSaleoutDetailedDao.query(tocofsSaleoutDetailedEntity);
|
||||||
if (tocofsSaleoutDetailedEntityList != null && tocofsSaleoutDetailedEntityList.size() > 0) {
|
if (tocofsSaleoutDetailedEntityList != null && tocofsSaleoutDetailedEntityList.size() > 0) {
|
||||||
List<List<TocofsSaleoutDetailedEntity>> splitListByCount = SplitListByCountUtil.splitListByCount(tocofsSaleoutDetailedEntityList, 1000);
|
Set<String> mainTableIdSet = tocofsSaleoutDetailedEntityList.stream().map(TocofsSaleoutDetailedEntity::getMaintableid).collect(Collectors.toSet());
|
||||||
|
List<String> mainTableIdList = Lists.newArrayList(mainTableIdSet);
|
||||||
|
|
||||||
|
List<List<String>> splitListByCount = SplitListByCountUtil.splitListByCount(mainTableIdList, 1000);
|
||||||
for (int i = 0; i < splitListByCount.size(); i++) {
|
for (int i = 0; i < splitListByCount.size(); i++) {
|
||||||
List<TocofsSaleoutDetailedEntity> tocofsSaleoutDetailedEntityList1 = splitListByCount.get(i);
|
List<String> tocofsSaleoutDetailedEntityList1 = splitListByCount.get(i);
|
||||||
Set<String> mainTableIdSet = tocofsSaleoutDetailedEntityList1.stream().map(TocofsSaleoutDetailedEntity::getMaintableid).collect(Collectors.toSet());
|
// Set<String> mainTableIdSet = tocofsSaleoutDetailedEntityList1.stream().map(TocofsSaleoutDetailedEntity::getMaintableid).collect(Collectors.toSet());
|
||||||
String mainTableIds = mainTableIdSet.stream().map(id -> "'" + id + "'").collect(Collectors.joining(","));
|
String mainTableIds = tocofsSaleoutDetailedEntityList1.stream().map(id -> "'" + id + "'").collect(Collectors.joining(","));
|
||||||
//查询对应的O销售出库单表头
|
//查询对应的O销售出库单表头
|
||||||
TocofsSaleoutEntity tocofsSaleoutEntity = new TocofsSaleoutEntity();
|
TocofsSaleoutEntity tocofsSaleoutEntity = new TocofsSaleoutEntity();
|
||||||
tocofsSaleoutEntity.setIds(mainTableIds);
|
tocofsSaleoutEntity.setIds(mainTableIds);
|
||||||
|
@ -4063,6 +4082,7 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
//通过「O销售出库单表头」匹配「底表O销售出库单明细行」
|
//通过「O销售出库单表头」匹配「底表O销售出库单明细行」
|
||||||
|
List<TocofsSaleoutDetailedEntity> tocofsSaleoutDetailedEntitiesAll = new ArrayList<>();
|
||||||
if (allTocofsSaleoutEntityList.size() > 0) {
|
if (allTocofsSaleoutEntityList.size() > 0) {
|
||||||
Map<String, List<TocofsSaleoutDetailedEntity>> stringListMap = convertToMap(tocofsSaleoutDetailedEntityList);
|
Map<String, List<TocofsSaleoutDetailedEntity>> stringListMap = convertToMap(tocofsSaleoutDetailedEntityList);
|
||||||
|
|
||||||
|
@ -4076,6 +4096,7 @@ public class SoSaleOutPluginInitializerToC extends PluginBaseEntity {
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
List<TocofsSaleoutDetailedEntity> tocofsSaleoutDetailedEntities = stringListMap.get(tocofsSaleoutEntity.getId());
|
List<TocofsSaleoutDetailedEntity> tocofsSaleoutDetailedEntities = stringListMap.get(tocofsSaleoutEntity.getId());
|
||||||
|
tocofsSaleoutDetailedEntitiesAll.addAll(tocofsSaleoutDetailedEntities);
|
||||||
tocofsSaleoutEntity.setTocofsSaleoutDetailedEntityList(tocofsSaleoutDetailedEntities);
|
tocofsSaleoutEntity.setTocofsSaleoutDetailedEntityList(tocofsSaleoutDetailedEntities);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue