|
|
|
package com.docus.bgts.service;
|
|
|
|
|
|
|
|
import com.docus.bgts.entity.MzSync;
|
|
|
|
import com.docus.bgts.facade.IMzSyncService;
|
|
|
|
import com.docus.bgts.mapper.dbmysql.AfCollectAddMapper;
|
|
|
|
import com.docus.bgts.mapper.dboracle.MzSyncMapper;
|
|
|
|
import com.docus.bgts.utils.FileUtils;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
import java.time.LocalTime;
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
import java.util.List;
|
|
|
|
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;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
MzSyncMapper mzSyncMapper;
|
|
|
|
|
|
|
|
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 = 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) + "毫秒");
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 完整性同步方法
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public void syncIntegrality() {
|
|
|
|
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 = pageSize;
|
|
|
|
jzhs = afCollectAddMapper.listJzh(front, later);
|
|
|
|
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) + "毫秒");
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 完整性检验写入
|
|
|
|
*
|
|
|
|
* @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());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|