|
|
@@ -40,7 +40,7 @@ public class SupplierServiceImpl implements SupplierService {
|
|
|
@Autowired
|
|
|
private DDClient_Notice ddClient_notice;
|
|
|
@Override
|
|
|
- public List<Map<String,Object>> getAllSupplierInfos() {
|
|
|
+ public List<Map<String,Object>> getAllSupplierInfos(int startRow) {
|
|
|
log.info("开始从金蝶获取供应商信息");
|
|
|
Map meta = _getMeta();
|
|
|
meta = (Map) meta.get("SUPPLIER");
|
|
|
@@ -49,7 +49,8 @@ public class SupplierServiceImpl implements SupplierService {
|
|
|
Query query = new Query();
|
|
|
query.setFormId("BD_Supplier");
|
|
|
query.setFieldKeys(fieldKeys);
|
|
|
- query.setLimit(10000);
|
|
|
+ query.setLimit(9999);
|
|
|
+ query.setStartRow(startRow);
|
|
|
try {
|
|
|
//调用接口
|
|
|
List<List<Object>> billQuery = client.executeBillQuery(JSON.toJSONString(query));
|
|
|
@@ -90,8 +91,20 @@ public class SupplierServiceImpl implements SupplierService {
|
|
|
// String isoStartTime = startTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
|
|
|
// String isoEndTime = startTime.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
|
|
|
//获取所有供应商数据
|
|
|
- List<Map<String,Object>> allSupplierInfos = getAllSupplierInfos();
|
|
|
- log.info("获取供应商:{}",allSupplierInfos.toString());
|
|
|
+ List<Map<String,Object>> allSupplierInfos = new ArrayList<>();
|
|
|
+ boolean hasMore = true;
|
|
|
+ int page = 0;
|
|
|
+ while (hasMore){
|
|
|
+ int startRow = page * 2000;
|
|
|
+ List<Map<String,Object>> supplierInfos = getAllSupplierInfos(startRow);
|
|
|
+ log.info("单次获取供应商:{}",supplierInfos.toString());
|
|
|
+ allSupplierInfos.addAll(supplierInfos);
|
|
|
+ if (supplierInfos.size() < 2000){
|
|
|
+ hasMore = false;
|
|
|
+ }else {
|
|
|
+ page++;
|
|
|
+ }
|
|
|
+ }
|
|
|
//所有供应商数据分组过滤是否含统一信用代码
|
|
|
Map<String, List<Map<String, Object>>> grouped = allSupplierInfos.stream()
|
|
|
.filter(map -> startTime.isBefore(LocalDateTime.parse(UtilMap.getString(map, "FModifyDate"))) &&
|
|
|
@@ -114,20 +127,6 @@ public class SupplierServiceImpl implements SupplierService {
|
|
|
})
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
-// Map<String, List<Map<String, String>>> collect = result.stream()
|
|
|
-// .collect(Collectors.groupingBy(
|
|
|
-// m -> m.get("FName") + "|" + m.get("FNumber") + "|" + m.get("FSOCIALCRECODE"), // 组合键
|
|
|
-// Collectors.mapping(
|
|
|
-// map -> {
|
|
|
-// // 将每个记录的账号和开户行提取为独立的 Map
|
|
|
-// Map<String, String> accountInfo = new HashMap<>();
|
|
|
-// accountInfo.put("FBankCode", (String) map.get("FBankCode"));
|
|
|
-// accountInfo.put("FOpenBankName", (String) map.get("FOpenBankName"));
|
|
|
-// return accountInfo;
|
|
|
-// },
|
|
|
-// Collectors.toList() // 组内收集为 List
|
|
|
-// )
|
|
|
-// ));
|
|
|
Map<String, List<Map<String, String>>> collect = result.stream()
|
|
|
.collect(Collectors.groupingBy(
|
|
|
m -> m.get("FName") + "|" + m.get("FNumber") + "|" + m.get("FSOCIALCRECODE"),
|