|
|
@ -1,6 +1,7 @@ |
|
|
|
package com.kms.web.synchronous; |
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil; |
|
|
|
import cn.hutool.core.util.ArrayUtil; |
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
import cn.hutool.http.HttpRequest; |
|
|
|
import cn.hutool.http.HttpResponse; |
|
|
@ -18,6 +19,8 @@ import com.kms.yg.sk.service.AttResBaseService; |
|
|
|
import com.kms.yg.sk.service.AttResRsppService; |
|
|
|
import com.kms.yg.xgxd.domain.AttDpdsBase; |
|
|
|
import com.kms.yg.xgxd.service.AttDpdsBaseService; |
|
|
|
import io.swagger.models.auth.In; |
|
|
|
import lombok.Data; |
|
|
|
import org.apache.commons.lang.SerializationUtils; |
|
|
|
import org.checkerframework.checker.units.qual.A; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
@ -29,12 +32,11 @@ import org.springframework.web.bind.annotation.GetMapping; |
|
|
|
import org.springframework.web.bind.annotation.RestController; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.concurrent.CopyOnWriteArrayList; |
|
|
|
import java.util.concurrent.ExecutorService; |
|
|
|
import java.util.concurrent.Executors; |
|
|
|
import java.util.concurrent.ThreadPoolExecutor; |
|
|
|
import java.util.concurrent.*; |
|
|
|
import java.util.concurrent.atomic.AtomicBoolean; |
|
|
|
import java.util.concurrent.atomic.AtomicInteger; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@Configuration |
|
|
@ -81,39 +83,59 @@ public class YgSynchronous { |
|
|
|
static final String xgxdsj = "http://19.25.35.205:31190/ZHSL_ZY/jck/yggx/dws_att_dpds_base" ; |
|
|
|
//流域基本数据
|
|
|
|
static final String llsj = "http://19.25.35.205:31190/ZHSL_ZY/jck/ytjgx/dws_att_bas_base" ; |
|
|
|
//
|
|
|
|
|
|
|
|
/** |
|
|
|
* 同步 |
|
|
|
*/ |
|
|
|
@GetMapping("sktz1") |
|
|
|
public void synchronous(){ |
|
|
|
int pageNum = 1; |
|
|
|
int pageSize = 1000; |
|
|
|
Boolean f = true; |
|
|
|
while (f) { |
|
|
|
String s = sendRequest(ddsj + "?pageNum=" + pageNum + "&pageSize=" + pageSize); |
|
|
|
String data = JSONObject.parseObject(s).getString("data"); |
|
|
|
List<AttDiscBase> attResRspps = JSONObject.parseArray(data, AttDiscBase.class); |
|
|
|
if (attResRspps.size()<pageSize){ |
|
|
|
f = false; |
|
|
|
}else { |
|
|
|
pageNum++; |
|
|
|
// @GetMapping("sktz1")
|
|
|
|
// public void synchronous() throws ExecutionException, InterruptedException {
|
|
|
|
// int pageNum = 1;
|
|
|
|
// int pageSize = 1000;
|
|
|
|
// Boolean f = true;
|
|
|
|
// HashMap<String, Object> hashMap = new HashMap<>();
|
|
|
|
// int i = 1;
|
|
|
|
// while (f) {
|
|
|
|
// String s = sendRequest(ddsj + "?pageNum=" + pageNum + "&pageSize=" + pageSize);
|
|
|
|
// String data = JSONObject.parseObject(s).getString("data");
|
|
|
|
// List<AttDiscBase> attResRspps = JSONObject.parseArray(data, AttDiscBase.class);
|
|
|
|
// if(attResRspps.size()<pageSize){
|
|
|
|
// f = false;
|
|
|
|
// }
|
|
|
|
// for (AttDiscBase attDiscBase : attResRspps) {
|
|
|
|
// hashMap.put(attDiscBase.getDiscCode(),i++);
|
|
|
|
// attDiscBase.preInsert();
|
|
|
|
// attDiscBase.setId(attDiscBase.getDiscCode());
|
|
|
|
// attDiscBaseService.save(attDiscBase);
|
|
|
|
// }
|
|
|
|
//// CopyOnWriteArrayList<AttDiscBase> attDiscBases = CollectionUtil.newCopyOnWriteArrayList(attResRspps);
|
|
|
|
//// executorService.execute(new sktz(attResRspps));
|
|
|
|
// pageNum++;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
@Data |
|
|
|
class sktz implements Runnable{ |
|
|
|
|
|
|
|
private List<AttDiscBase> list; |
|
|
|
|
|
|
|
public sktz(List<AttDiscBase> list){ |
|
|
|
this.list = list; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
int a = 1; |
|
|
|
for (AttDiscBase attDiscBase : list) { |
|
|
|
attDiscBase.preInsert(); |
|
|
|
// attResRspp.setId(attResRspp.getDiscCode());
|
|
|
|
boolean save = attDiscBaseService.save(attDiscBase); |
|
|
|
if(save){ |
|
|
|
System.out.println(a++); |
|
|
|
if(a>=1000){ |
|
|
|
System.out.println("批量处理完成1000条------------------------------------"); |
|
|
|
} } |
|
|
|
} |
|
|
|
Runnable runnable = new Runnable() { |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
List<AttDiscBase> attDiscBases = new ArrayList(); |
|
|
|
synchronized (attResRspps){ |
|
|
|
attDiscBases = CollectionUtil.newCopyOnWriteArrayList(attResRspps); |
|
|
|
} |
|
|
|
attDiscBases.forEach(attResRspp -> { |
|
|
|
attResRspp.preInsert(); |
|
|
|
attResRspp.setId(attResRspp.getDiscCode()); |
|
|
|
attDiscBaseService.save(attResRspp); |
|
|
|
}); |
|
|
|
} |
|
|
|
}; |
|
|
|
executorService.execute(runnable); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -249,4 +271,6 @@ public class YgSynchronous { |
|
|
|
attBasBaseService.saveOrUpdate(attResRspp); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|