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.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Map; /** * 梅州完整性检验 */ @Service public class MzSyncService implements IMzSyncService { @Autowired AfCollectAddMapper afCollectAddMapper; @Autowired MzSyncMapper mzSyncMapper; private final Logger log = LoggerFactory.getLogger(getClass()); /** * 完整性同步方法 */ @Override public void syncIntegrality() { log.info("完整性同步开始"); long startTime = System.currentTimeMillis(); //获取分页数 Integer pageSize = Integer.parseInt(String.valueOf(FileUtils.getJsonByName("pageSize"))); List jzhs; int front; int later; List mzSyncs; StringBuilder sql; for (int i = 0; ; i++) { front = i * pageSize; later = front + pageSize; jzhs = afCollectAddMapper.listJzh(front, later); 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 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()); // }); } if (mzSyncs.size() != 0) { log.info("本次成功同步数:" + mzSyncs.size()); } } long endTime = System.currentTimeMillis(); System.out.println(endTime - startTime); log.info("完整性同步结束"); } }