|
@ -40,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
|
|
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
|
|
|
|
|
|
|
|
import java.lang.reflect.Method;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
|
@ -253,6 +254,26 @@ public class CurrentMysqlToEsQuotaJob implements Job {
|
|
private boolean updateData(List<SaveModel> sms, Date quotaDate, String quotaCode, String timeLevel) {
|
|
private boolean updateData(List<SaveModel> sms, Date quotaDate, String quotaCode, String timeLevel) {
|
|
JestClient jestClient = null;
|
|
JestClient jestClient = null;
|
|
try {
|
|
try {
|
|
|
|
//执行指标对象
|
|
|
|
QuartzJobConfig quartzJobConfigTarget = quartzJobConfigDao.findById(quotaCode);
|
|
|
|
//获取指标统计最小单位
|
|
|
|
String areaLevel = quartzJobConfigTarget.getAreaLevel();
|
|
|
|
String methodName="";
|
|
|
|
if (org.apache.commons.lang3.StringUtils.isBlank(areaLevel)){
|
|
|
|
areaLevel="6";
|
|
|
|
}
|
|
|
|
switch (areaLevel) {
|
|
|
|
case "2":
|
|
|
|
methodName = "getCity";
|
|
|
|
break;
|
|
|
|
case "4":
|
|
|
|
methodName = "getHospital";
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
methodName = "getDoctor";
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
jestClient = elasticFactory.getJestClient();
|
|
jestClient = elasticFactory.getJestClient();
|
|
//先根据条件查找出来
|
|
//先根据条件查找出来
|
|
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
|
|
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
|
|
@ -273,14 +294,19 @@ public class CurrentMysqlToEsQuotaJob implements Job {
|
|
List<SaveModel> saveModels = new ArrayList<>();
|
|
List<SaveModel> saveModels = new ArrayList<>();
|
|
//把新的值赋值给ES查询出来的值
|
|
//把新的值赋值给ES查询出来的值
|
|
Map<String, SaveModel> newSaveModelMaps = new HashMap<>();
|
|
Map<String, SaveModel> newSaveModelMaps = new HashMap<>();
|
|
|
|
String unitKey="";
|
|
//list转map
|
|
//list转map
|
|
for (SaveModel newSaveModel : sms) {
|
|
for (SaveModel newSaveModel : sms) {
|
|
StringBuffer key = new StringBuffer(newSaveModel.getDoctor() + "-" + newSaveModel.getSlaveKey1() + "-" + newSaveModel.getSlaveKey2() + "-" + newSaveModel.getSlaveKey3() + "-" + newSaveModel.getSlaveKey4());
|
|
|
|
|
|
Method method = newSaveModel.getClass().getMethod(methodName);
|
|
|
|
unitKey = (String) method.invoke(newSaveModel);
|
|
|
|
StringBuffer key = new StringBuffer(unitKey + "-" + newSaveModel.getSlaveKey1() + "-" + newSaveModel.getSlaveKey2() + "-" + newSaveModel.getSlaveKey3() + "-" + newSaveModel.getSlaveKey4());
|
|
newSaveModelMaps.put(key.toString(), newSaveModel);
|
|
newSaveModelMaps.put(key.toString(), newSaveModel);
|
|
}
|
|
}
|
|
|
|
|
|
for (SaveModel esSavemodel : quarySaveModels) {
|
|
for (SaveModel esSavemodel : quarySaveModels) {
|
|
StringBuffer key = new StringBuffer(esSavemodel.getDoctor() + "-" + esSavemodel.getSlaveKey1() + "-" + esSavemodel.getSlaveKey2() + "-" + esSavemodel.getSlaveKey3() + "-" + esSavemodel.getSlaveKey4());
|
|
|
|
|
|
Method method = esSavemodel.getClass().getMethod(methodName);
|
|
|
|
unitKey = (String) method.invoke(esSavemodel);
|
|
|
|
StringBuffer key = new StringBuffer(unitKey + "-" + esSavemodel.getSlaveKey1() + "-" + esSavemodel.getSlaveKey2() + "-" + esSavemodel.getSlaveKey3() + "-" + esSavemodel.getSlaveKey4());
|
|
SaveModel newSaveMode = newSaveModelMaps.get(key.toString());
|
|
SaveModel newSaveMode = newSaveModelMaps.get(key.toString());
|
|
if (newSaveMode != null) {
|
|
if (newSaveMode != null) {
|
|
esSavemodel.setResult1(newSaveMode.getResult1());
|
|
esSavemodel.setResult1(newSaveMode.getResult1());
|