|
|
|
@ -10,8 +10,11 @@ import org.slf4j.LoggerFactory;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.Iterator;
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.time.LocalTime;
|
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
@ -20,6 +23,25 @@ import java.util.Map;
|
|
|
|
|
*/
|
|
|
|
|
@Service
|
|
|
|
|
public class MzSyncService implements IMzSyncService {
|
|
|
|
|
/**
|
|
|
|
|
* oracle表名
|
|
|
|
|
*/
|
|
|
|
|
private String tableName;
|
|
|
|
|
/**
|
|
|
|
|
* oracle表命名空间
|
|
|
|
|
*/
|
|
|
|
|
private String tableNamespaces;
|
|
|
|
|
/**
|
|
|
|
|
* 增量同步开始时间
|
|
|
|
|
*/
|
|
|
|
|
private String newSyncTime;
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
tableName = String.valueOf(FileUtils.getJsonByName("syncTableName"));
|
|
|
|
|
tableNamespaces = String.valueOf(FileUtils.getJsonByName("syncTableNamespaces"));
|
|
|
|
|
DateTimeFormatter isoDate = DateTimeFormatter.ISO_DATE;
|
|
|
|
|
newSyncTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN).minusDays(1).format(isoDate);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
AfCollectAddMapper afCollectAddMapper;
|
|
|
|
@ -29,6 +51,35 @@ public class MzSyncService implements IMzSyncService {
|
|
|
|
|
|
|
|
|
|
private final Logger log = LoggerFactory.getLogger(getClass());
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void addSyncIntegrality() {
|
|
|
|
|
log.info("增量完整性同步开始");
|
|
|
|
|
long startTime = System.currentTimeMillis();
|
|
|
|
|
//获取分页数
|
|
|
|
|
Integer pageSize = Integer.parseInt(String.valueOf(FileUtils.getJsonByName("pageSize")));
|
|
|
|
|
List<String> jzhs;
|
|
|
|
|
int front;
|
|
|
|
|
int later;
|
|
|
|
|
List<MzSync> mzSyncs;
|
|
|
|
|
for (int i = 0; ; i++) {
|
|
|
|
|
front = i * pageSize;
|
|
|
|
|
later = front + pageSize;
|
|
|
|
|
jzhs=afCollectAddMapper.listJzhAndAdd(front, later,newSyncTime);
|
|
|
|
|
if (null == jzhs || jzhs.size() == 0) {
|
|
|
|
|
break;
|
|
|
|
|
} else {
|
|
|
|
|
mzSyncs = mzSyncMapper.listMzSync(jzhs, front, later, tableName, tableNamespaces);
|
|
|
|
|
//完整性检验写入
|
|
|
|
|
integralityBySyncs(mzSyncs);
|
|
|
|
|
}
|
|
|
|
|
if (mzSyncs.size() != 0) {
|
|
|
|
|
log.info("本次成功同步数:" + mzSyncs.size());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
long endTime = System.currentTimeMillis();
|
|
|
|
|
log.info("增量完整性同步结束,程序执行时间为:" + (endTime - startTime) + "毫秒");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 完整性同步方法
|
|
|
|
|
*/
|
|
|
|
@ -42,7 +93,6 @@ public class MzSyncService implements IMzSyncService {
|
|
|
|
|
int front;
|
|
|
|
|
int later;
|
|
|
|
|
List<MzSync> mzSyncs;
|
|
|
|
|
StringBuilder sql;
|
|
|
|
|
for (int i = 0; ; i++) {
|
|
|
|
|
front = i * pageSize;
|
|
|
|
|
later = front + pageSize;
|
|
|
|
@ -50,40 +100,44 @@ public class MzSyncService implements IMzSyncService {
|
|
|
|
|
if (null == jzhs || jzhs.size() == 0) {
|
|
|
|
|
break;
|
|
|
|
|
} else {
|
|
|
|
|
mzSyncs = mzSyncMapper.listMzSync(jzhs, front, later);
|
|
|
|
|
System.out.println(Arrays.asList(mzSyncs));
|
|
|
|
|
if (null != mzSyncs && mzSyncs.size() != 0) {
|
|
|
|
|
List<Map> maps = afCollectAddMapper.integrality(mzSyncs);
|
|
|
|
|
System.out.println(maps);
|
|
|
|
|
sql=new StringBuilder();
|
|
|
|
|
for (Map map : maps) {
|
|
|
|
|
sql.append("update docus_medicalrecord.t_basic set integrity_desc=");
|
|
|
|
|
sql.append("'");
|
|
|
|
|
sql.append(map.get("file_title"));
|
|
|
|
|
sql.append("'");
|
|
|
|
|
sql.append(" where jzh=");
|
|
|
|
|
sql.append("'");
|
|
|
|
|
sql.append(map.get("jzh"));
|
|
|
|
|
sql.append("'");
|
|
|
|
|
sql.append(";");
|
|
|
|
|
}
|
|
|
|
|
System.out.println(sql);
|
|
|
|
|
afCollectAddMapper.dynamicSql(sql.toString());
|
|
|
|
|
}
|
|
|
|
|
//创建并行流
|
|
|
|
|
// mzSyncs.parallelStream().forEach(mzSync -> {
|
|
|
|
|
// String result = afCollectAddMapper.integrality(mzSync);
|
|
|
|
|
// System.out.println(result);
|
|
|
|
|
//
|
|
|
|
|
// afCollectAddMapper.updateTBasic(result, mzSync.getJzh());
|
|
|
|
|
// });
|
|
|
|
|
mzSyncs = mzSyncMapper.listMzSync(jzhs, front, later, tableName, tableNamespaces);
|
|
|
|
|
//完整性检验写入
|
|
|
|
|
integralityBySyncs(mzSyncs);
|
|
|
|
|
}
|
|
|
|
|
if (mzSyncs.size() != 0) {
|
|
|
|
|
log.info("本次成功同步数:" + mzSyncs.size());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
long endTime = System.currentTimeMillis();
|
|
|
|
|
System.out.println(endTime - startTime);
|
|
|
|
|
log.info("完整性同步结束");
|
|
|
|
|
log.info("完整性同步结束,程序执行时间为:" + (endTime - startTime) + "毫秒");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 完整性检验写入
|
|
|
|
|
*
|
|
|
|
|
* @param mzSyncs
|
|
|
|
|
*/
|
|
|
|
|
private void integralityBySyncs(List<MzSync> mzSyncs) {
|
|
|
|
|
StringBuilder sql;
|
|
|
|
|
if (null != mzSyncs && mzSyncs.size() != 0) {
|
|
|
|
|
List<Map> maps = afCollectAddMapper.integrality(mzSyncs);
|
|
|
|
|
System.out.println(maps);
|
|
|
|
|
sql = new StringBuilder();
|
|
|
|
|
for (Map map : maps) {
|
|
|
|
|
sql.append("update docus_medicalrecord.t_basic set integrity_desc=");
|
|
|
|
|
sql.append("'");
|
|
|
|
|
sql.append(map.get("file_title"));
|
|
|
|
|
sql.append("'");
|
|
|
|
|
sql.append(" where jzh=");
|
|
|
|
|
sql.append("'");
|
|
|
|
|
sql.append(map.get("jzh"));
|
|
|
|
|
sql.append("'");
|
|
|
|
|
sql.append(";");
|
|
|
|
|
}
|
|
|
|
|
System.out.println(sql);
|
|
|
|
|
afCollectAddMapper.dynamicSql(sql.toString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|