You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
377 lines
14 KiB
377 lines
14 KiB
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;
|
|
import cn.hutool.http.HttpUtil;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.kms.yg.dd.domain.AttDiscBase;
|
|
import com.kms.yg.dd.service.AttDiscBaseService;
|
|
import com.kms.yg.df.domain.BsSgcDfJbxx;
|
|
import com.kms.yg.df.domain.BsSgcDfSafeJbxx;
|
|
import com.kms.yg.df.domain.BsSgcDfSwtz;
|
|
import com.kms.yg.df.domain.dto.BsSgcDfSwtzDto;
|
|
import com.kms.yg.df.service.BsSgcDfJbxxService;
|
|
import com.kms.yg.df.service.BsSgcDfSafeJbxxService;
|
|
import com.kms.yg.df.service.BsSgcDfSwtzService;
|
|
import com.kms.yg.ly.domain.AttBasBase;
|
|
import com.kms.yg.ly.service.AttBasBaseService;
|
|
import com.kms.yg.rv.domain.AttRvBase;
|
|
import com.kms.yg.rv.service.AttRvBaseService;
|
|
import com.kms.yg.sk.domain.AttResBase;
|
|
import com.kms.yg.sk.domain.AttResRspp;
|
|
import com.kms.yg.sk.service.AttResBaseService;
|
|
import com.kms.yg.sk.service.AttResRsppService;
|
|
import com.kms.yg.sz.domain.BsSgcSzSafeJbxx;
|
|
import com.kms.yg.sz.service.BsSgcSzSafeJbxxService;
|
|
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;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
import org.springframework.stereotype.Controller;
|
|
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.*;
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
import java.util.stream.Collectors;
|
|
|
|
@Configuration
|
|
@RestController
|
|
public class YgSynchronous {
|
|
|
|
@Autowired
|
|
AttResRsppService attResRsppService;
|
|
@Autowired
|
|
AttResBaseService attResBaseService;
|
|
@Autowired
|
|
AttRvBaseService attRvBaseService;
|
|
|
|
@Autowired
|
|
AttDpdsBaseService attDpdsBaseService;
|
|
@Autowired
|
|
AttBasBaseService attBasBaseService;
|
|
@Autowired
|
|
AttDiscBaseService attDiscBaseService;
|
|
|
|
@Autowired
|
|
BsSgcSzSafeJbxxService bsSgcSzSafeJbxxService;
|
|
|
|
@Autowired
|
|
BsSgcDfSafeJbxxService bsSgcDfSafeJbxxService;
|
|
|
|
@Autowired
|
|
BsSgcDfSwtzService bsSgcDfSwtzService;
|
|
|
|
private static String XH3CID = "3359137640337";
|
|
private static String XH3CAPPKEY = "q7sli9ch";
|
|
|
|
ExecutorService executorService = Executors.newFixedThreadPool(50);
|
|
|
|
public String sendRequest(String url){
|
|
HttpRequest httpRequest = HttpRequest.get(url);
|
|
httpRequest.header("X-H3C-APPKEY",XH3CAPPKEY)
|
|
.header("X-H3C-ID",XH3CID)
|
|
.header("Content-Type", "application/json");
|
|
HttpResponse execute = httpRequest.execute();
|
|
return execute.body();
|
|
}
|
|
|
|
//水库特征
|
|
static final String sktz = "http://19.25.35.205:31190/ZHSL_ZY/jck/ytjgx/dws_att_res_rspp" ;
|
|
//水库基本数据
|
|
static final String sksj = "http://19.25.35.205:31190/ZHSL_ZY/jck/ygtjgx/dws_att_res_base" ;
|
|
//河流基本数据
|
|
static final String rvsj = "http://19.25.35.205:31190/ZHSL_ZY/jck/yggx/dws_att_rv_base" ;
|
|
//提段基本数据
|
|
static final String ddsj = "http://19.25.35.205:31190/ZHSL_ZY/jck/yggx/dws_att_disc_base" ;
|
|
//险工险段基本数据
|
|
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" ;
|
|
//水闸基础信息
|
|
static final String dawb="http://19.25.35.205:31190/ZHSL_ZY/jck/yggx/dws_att_waga_base";
|
|
//堤防基础信息
|
|
static final String dadb= "http://19.25.35.205:31190/ZHSL_ZY/jck/yggx/dws_att_dike_base";
|
|
//水闸行政区划关系数据
|
|
static final String drwa="http://19.25.35.205:31190/ZHSL_ZY/dws_rel_waga_ad";
|
|
//堤防行政区划关系数据
|
|
static final String drda="http://19.25.35.205:31190/ZHSL_ZY/dws_rel_dike_ad";
|
|
//堤防水文特征数据
|
|
static final String dadt="http://19.25.35.205:31190/ZHSL_ZY/jck/ytjgx/dws_att_dike_bsfst";
|
|
/**
|
|
* 同步
|
|
*/
|
|
@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条------------------------------------");
|
|
} }
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/***
|
|
* 提段线程
|
|
* @param list
|
|
* @return
|
|
*/
|
|
// public Runnable discRun(List list){
|
|
// return new Runnable() {
|
|
// @Override
|
|
// public void run() {
|
|
// CopyOnWriteArrayList<AttDiscBase> attResRspps1 = CollectionUtil.newCopyOnWriteArrayList(list);
|
|
// attResRspps1.forEach(attResRspp -> {
|
|
// attResRspp.preInsert();
|
|
// });
|
|
// attDiscBaseService.saveBatch(attResRspps1);
|
|
// }
|
|
// };
|
|
// }
|
|
|
|
|
|
/**
|
|
* 水库特征信息
|
|
*/
|
|
@GetMapping("sktz")
|
|
@Scheduled(cron = "0 0 0 * * ?")
|
|
public void sktz(){
|
|
int pageNum = 1;
|
|
int pageSize = 999999;
|
|
String s = sendRequest(sktz + "?pageNum=" + pageNum + "&pageSize=" + pageSize);
|
|
String data = JSONObject.parseObject(s).getString("data");
|
|
List<AttResRspp> attResRspps = JSONObject.parseArray(data, AttResRspp.class);
|
|
attResRspps.forEach(attResRspp -> {
|
|
attResRspp.preInsert();
|
|
attResRspp.setId(attResRspp.getResCode());
|
|
attResRsppService.saveOrUpdate(attResRspp);
|
|
});
|
|
}
|
|
|
|
@GetMapping("dadt")
|
|
@Scheduled(initialDelay = 0, fixedRate = Long.MAX_VALUE)
|
|
public void dadt(){
|
|
int pageNum=1;
|
|
int pageSize=999999;
|
|
String s=sendRequest(dadt+"?pageNum=" + pageNum + "&pageSize=" + pageSize);
|
|
String data=JSONObject.parseObject(s).getString("data");
|
|
List<BsSgcDfSwtzDto>sgcDfSwtzDtos=JSONObject.parseArray(data, BsSgcDfSwtzDto.class);
|
|
sgcDfSwtzDtos.forEach(bsSgcDfSwtzDto -> {
|
|
BsSgcDfSwtz bsSgcDfSwtz=new BsSgcDfSwtz();
|
|
bsSgcDfSwtz.setId(bsSgcDfSwtzDto.getDikeCode());
|
|
bsSgcDfSwtz.setDikeCode(bsSgcDfSwtzDto.getDikeCode());
|
|
bsSgcDfSwtz.setDsflStd(bsSgcDfSwtzDto.getFlcnst());
|
|
bsSgcDfSwtz.setDsflLev(bsSgcDfSwtzDto.getDsfllv());
|
|
bsSgcDfSwtz.setAlwtLev(bsSgcDfSwtzDto.getWrwl());
|
|
bsSgcDfSwtz.setNote(bsSgcDfSwtzDto.getNote());
|
|
bsSgcDfSwtz.setEffDate(bsSgcDfSwtzDto.getEffDate());
|
|
bsSgcDfSwtzService.saveOrUpdate(bsSgcDfSwtz);
|
|
});
|
|
}
|
|
|
|
@GetMapping("dadb")
|
|
@Scheduled(initialDelay = 0, fixedRate = Long.MAX_VALUE)
|
|
public void dadb(){
|
|
int pageNum=1;
|
|
int pageSize=999999;
|
|
String s=sendRequest(dadb+"?pageNum=" + pageNum + "&pageSize=" + pageSize);
|
|
String s1=sendRequest(drda+"?pageNum=" + pageNum + "&pageSize=" + pageSize);
|
|
String data=JSONObject.parseObject(s).getString("data");
|
|
String dataAcad=JSONObject.parseObject(s1).getString("data");
|
|
List<BsSgcDfSafeJbxx> bsSgcDfSafeJbxxes=JSONObject.parseArray(data, BsSgcDfSafeJbxx.class);
|
|
List<BsSgcDfSafeJbxx> bsSgcDfSafeJbxxesAcad=JSONObject.parseArray(dataAcad, BsSgcDfSafeJbxx.class);
|
|
bsSgcDfSafeJbxxesAcad.forEach(bsSgcDfSafeJbxx -> {
|
|
bsSgcDfSafeJbxx.preInsert();
|
|
bsSgcDfSafeJbxx.setId(bsSgcDfSafeJbxx.getDikeCode());
|
|
bsSgcDfSafeJbxx.setAdcd(bsSgcDfSafeJbxx.getAdcd().substring(0, Math.min(bsSgcDfSafeJbxx.getAdcd().length(), 6)));
|
|
bsSgcDfSafeJbxxService.saveOrUpdate(bsSgcDfSafeJbxx);
|
|
});
|
|
bsSgcDfSafeJbxxes.forEach(bsSgcDfSafeJbxx -> {
|
|
bsSgcDfSafeJbxx.preInsert();
|
|
bsSgcDfSafeJbxx.setStatus("6");
|
|
bsSgcDfSafeJbxx.setId(bsSgcDfSafeJbxx.getDikeCode());
|
|
bsSgcDfSafeJbxxService.saveOrUpdate(bsSgcDfSafeJbxx);
|
|
});
|
|
}
|
|
|
|
@GetMapping("dawb")
|
|
@Scheduled(initialDelay = 0, fixedRate = Long.MAX_VALUE)
|
|
public void dawb(){
|
|
int pageNum=1;
|
|
int pageSize=999999;
|
|
String s=sendRequest(dawb+"?pageNum=" + pageNum + "&pageSize=" + pageSize);
|
|
String s1=sendRequest(drwa+"?pageNum=" + pageNum + "&pageSize=" + pageSize);
|
|
String data=JSONObject.parseObject(s).getString("data");
|
|
String dataAcad=JSONObject.parseObject(s1).getString("data");
|
|
List<BsSgcSzSafeJbxx> bsSgcSzSafeJbxxes=JSONObject.parseArray(data, BsSgcSzSafeJbxx.class);
|
|
List<BsSgcSzSafeJbxx> bsSgcSzSafeJbxxesAcad=JSONObject.parseArray(dataAcad, BsSgcSzSafeJbxx.class);
|
|
|
|
bsSgcSzSafeJbxxesAcad.forEach(bsSgcSzSafeJbxx-> {
|
|
bsSgcSzSafeJbxx.preInsert();
|
|
bsSgcSzSafeJbxx.setId(bsSgcSzSafeJbxx.getWagaCode());
|
|
bsSgcSzSafeJbxx.setAdcd(bsSgcSzSafeJbxx.getAdcd().substring(0, Math.min(bsSgcSzSafeJbxx.getAdcd().length(), 6)));
|
|
bsSgcSzSafeJbxxService.saveOrUpdate(bsSgcSzSafeJbxx);
|
|
});
|
|
bsSgcSzSafeJbxxes.forEach(bsSgcSzSafeJbxx -> {
|
|
bsSgcSzSafeJbxx.preInsert();
|
|
bsSgcSzSafeJbxx.setStatus("6");
|
|
bsSgcSzSafeJbxx.setId(bsSgcSzSafeJbxx.getWagaCode());
|
|
bsSgcSzSafeJbxxService.saveOrUpdate(bsSgcSzSafeJbxx);
|
|
});
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 水库基本信息
|
|
*/
|
|
@GetMapping("sksj")
|
|
@Scheduled(cron = "0 0 0 * * ?")
|
|
public void sksj(){
|
|
int pageNum = 1;
|
|
int pageSize = 999999;
|
|
String s = sendRequest(sksj + "?pageNum=" + pageNum + "&pageSize=" + pageSize);
|
|
String data = JSONObject.parseObject(s).getString("data");
|
|
List<AttResBase> attResRspps = JSONObject.parseArray(data, AttResBase.class);
|
|
attResRspps.forEach(attResRspp -> {
|
|
attResRspp.preInsert();
|
|
attResRspp.setId(attResRspp.getResCode());
|
|
attResBaseService.saveOrUpdate(attResRspp);
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 河流基础信息
|
|
*/
|
|
@GetMapping("rvsj")
|
|
@Scheduled(cron = "0 0 0 * * ?")
|
|
public void rvsj(){
|
|
int pageNum = 1;
|
|
int pageSize = 999999;
|
|
String s = sendRequest(rvsj + "?pageNum=" + pageNum + "&pageSize=" + pageSize);
|
|
String data = JSONObject.parseObject(s).getString("data");
|
|
List<AttRvBase> attRvBases = JSONObject.parseArray(data, AttRvBase.class);
|
|
attRvBases.forEach(attResRspp -> {
|
|
attResRspp.preInsert();
|
|
attResRspp.setId(attResRspp.getRvCode());
|
|
attRvBaseService.saveOrUpdate(attResRspp);
|
|
});
|
|
}
|
|
|
|
|
|
/**
|
|
* 险工险峻信息
|
|
*/
|
|
@GetMapping("dpds")
|
|
@Scheduled(cron = "0 0 0 * * ?")
|
|
public void dpds(){
|
|
int pageNum = 1;
|
|
int pageSize = 999999;
|
|
String s = sendRequest(xgxdsj + "?pageNum=" + pageNum + "&pageSize=" + pageSize);
|
|
String data = JSONObject.parseObject(s).getString("data");
|
|
List<AttDpdsBase> attRvBases = JSONObject.parseArray(data, AttDpdsBase.class);
|
|
attRvBases.forEach(attResRspp -> {
|
|
attResRspp.preInsert();
|
|
attResRspp.setId(attResRspp.getDpdsCode());
|
|
attDpdsBaseService.saveOrUpdate(attResRspp);
|
|
});
|
|
}
|
|
|
|
|
|
/**
|
|
* 提段基本数据
|
|
*/
|
|
@GetMapping("disc")
|
|
@Scheduled(cron = "0 0 0 * * ?")
|
|
public void disc(){
|
|
int pageNum = 1;
|
|
int pageSize = 999999;
|
|
String s = sendRequest(ddsj + "?pageNum=" + pageNum + "&pageSize=" + pageSize);
|
|
String data = JSONObject.parseObject(s).getString("data");
|
|
List<AttDiscBase> attRvBases = JSONObject.parseArray(data, AttDiscBase.class);
|
|
attRvBases.forEach(attResRspp -> {
|
|
attResRspp.preInsert();
|
|
attResRspp.setId(attResRspp.getDiscCode());
|
|
attDiscBaseService.saveOrUpdate(attResRspp);
|
|
});
|
|
}
|
|
|
|
|
|
/**
|
|
* 流域基本数据
|
|
*/
|
|
@GetMapping("bas")
|
|
@Scheduled(cron = "0 0 0 * * ?")
|
|
public void bas(){
|
|
int pageNum = 1;
|
|
int pageSize = 99999;
|
|
String s = sendRequest( llsj+ "?pageNum=" + pageNum + "&pageSize=" + pageSize);
|
|
String data = JSONObject.parseObject(s).getString("data");
|
|
List<AttBasBase> attRvBases = JSONObject.parseArray(data, AttBasBase.class);
|
|
attRvBases.forEach(attResRspp -> {
|
|
attResRspp.preInsert();
|
|
// attResRspp.setId(attResRspp.getBasCode());
|
|
attBasBaseService.saveOrUpdate(attResRspp);
|
|
});
|
|
}
|
|
|
|
|
|
}
|
|
|