Pārlūkot izejas kodu

供应商档案分页获取

fyz 2 mēneši atpakaļ
vecāks
revīzija
9ab5d0afe3

+ 16 - 4
mjava-jiuyousimu/src/main/java/com/malk/jiuyousimu/service/Impl/SupplierServiceImpl.java

@@ -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");
@@ -50,7 +50,7 @@ public class SupplierServiceImpl implements SupplierService {
         query.setFormId("BD_Supplier");
         query.setFieldKeys(fieldKeys);
         query.setLimit(9999);
-        query.setStartRow(2000);
+        query.setStartRow(startRow);
         try {
             //调用接口
             List<List<Object>> billQuery = client.executeBillQuery(JSON.toJSONString(query));
@@ -91,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"))) &&

+ 1 - 2
mjava-jiuyousimu/src/main/java/com/malk/jiuyousimu/service/SupplierService.java

@@ -15,8 +15,7 @@ public interface SupplierService {
      * 获取金蝶所有供应商信息
      * @return
      */
-    List<Map<String,Object>>  getAllSupplierInfos();
-
+    List<Map<String,Object>>  getAllSupplierInfos(int startRow);
 
     /**
      * 推送供应商信息到钉钉OA底表