梅州完整性增量

docus-active-query-service_1.3
lzy 3 years ago
parent d4e140a006
commit 1fedb12f4f

@ -48,6 +48,13 @@
//oracle
"collectTimeName":"ARCHIVE_DATE_TIME",
// ----------
"pageSize":"1000"
//----------
//0 1
"syncFlag":"0",
"pageSize":"1000",
//
"newSyncTime":"",
//
"syncTableName":"CIS_EMR_DOCUMENT",
"syncTableNamespaces":"CDR"
}

@ -0,0 +1,60 @@
{
//,
"directory":["Msg","ReportInfo"],
//
"indexFlag":"就诊号",
//
"serialnum":"手术申请单号",
//
"filetitle":"文书名",
//
"downurl":"WEB_ADDRESS",
//id
"assortid":"15E7FE7803F545CB81390BC88E725240",
//id
"collectorid":"14",
//( 1:2)
"filesource":1,
//(1:2ftp3)
"filestoragetype":1,
//
"uploadConnector":"http://192.168.1.107:9291/api/downplatform/report",
//doubleBasic
"basicDirectory":["Msg","ReportInfo"],
//
"doubleBasic":["TestItemInfo","BioTestInfo"],
//
"bgtsParam":["Request","Msg","EMPI_ID"],
//
"bgtsRespon":["MsgInfo","Msg"],
//key
"examNo":"EXAM_NO",
//key
"examItemName":"EXAM_ITEM_NAME",
//
"pdfUrl":"PDF_URL",
//
"bgtsDetailParam":["Request","Msg","EXAM_NO"],
//
"bgtsDetailRespon":["MsgInfo","Msg","ReportInfo"],
//
"startCollectTime":"2016-04-11",
// 1: 0 :
"isStartCollect":"0",
//oracle
"namespace":"DOCUS",
//oracle
"tableName":"V_DOCUMENT_PDF",
//oracle
"collectTimeName":"ARCHIVE_DATE_TIME",
//----------
//0 1
"syncFlag":"0",
"pageSize":"1000",
//
"newSyncTime":"",
//
"syncTableName":"CIS_EMR_DOCUMENT",
"syncTableNamespaces":"CDR"
}

@ -2,6 +2,8 @@ package com.docus.bgts.config;
import com.docus.bgts.enums.Codes;
import com.docus.bgts.facade.IBgtsService;
import com.docus.bgts.facade.IMzSyncService;
import com.docus.bgts.service.MzSyncService;
import com.docus.bgts.utils.FileUtils;
import com.docus.bgts.utils.HttpUtils;
import org.apache.logging.log4j.LogManager;
@ -10,6 +12,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
@ -18,9 +21,18 @@ public class MyScheduling {
@Value("${beat.url}")
private String beatUrl;
public static String syncFlag;
static {
syncFlag=FileUtils.getJsonByName("syncFlag").toString();
}
@Autowired
IBgtsService bgtsService;
@Autowired
IMzSyncService mzSyncService;
private Logger logger = LogManager.getLogger(MyScheduling.class);
//5分钟执行一次
@ -41,19 +53,28 @@ public class MyScheduling {
* 10
*/
@Scheduled(fixedRate = 1000 * 60 * 10)
public void collect(){
public void collect() {
String collectorid = String.valueOf(FileUtils.getJsonByName("collectorid"));
String isStartCollect = String.valueOf(FileUtils.getJsonByName("isStartCollect"));
if(isStartCollect.equals("0")){
if (isStartCollect.equals("0")) {
return;
}
if((!collectorid.equals(Codes.SMCODE.getCode()))&&(!collectorid.equals(Codes.ZZCODE.getCode()))){
if ((!collectorid.equals(Codes.SMCODE.getCode())) && (!collectorid.equals(Codes.ZZCODE.getCode()))) {
return;
}
bgtsService.timerCollect();
}
/**
*
*/
@Scheduled(fixedRate = 1000 * 60 * 1)
public void syncIntegrality() {
if (null == syncFlag || "0".equals(syncFlag)) {
} else {
mzSyncService.addSyncIntegrality();
}
}
}

@ -1,6 +1,7 @@
package com.docus.bgts.controller;
import com.docus.bgts.config.MyScheduling;
import com.docus.bgts.entity.CommonResult;
import com.docus.bgts.facade.IAfCollectTaskService;
import com.docus.bgts.facade.IBgtsService;
@ -16,9 +17,6 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@Api(value = "采集接口", tags = "采集接口")
@RestController
@ -35,6 +33,12 @@ public class BgtsController {
@Autowired
IAfCollectTaskService afCollectTaskService;
@ApiOperation("完整性同步程序开关0关闭 1开启")
@GetMapping("/onOffSync")
public void onOffSync(@RequestParam(value = "flag",defaultValue = "0") String flag){
MyScheduling.syncFlag=flag;
}
@GetMapping("/test")
public String test(@RequestParam("empId") String empId,
@RequestParam("collectSubId") String collectSubId){

@ -1,5 +1,13 @@
package com.docus.bgts.facade;
public interface IMzSyncService {
/**
*
*/
void syncIntegrality();
/**
*
*/
void addSyncIntegrality();
}

@ -44,4 +44,13 @@ public interface AfCollectAddMapper extends BaseMapper<AfCollectAdd> {
* @param jzh
*/
void updateTBasic(@Param("result") String result,@Param("jzh") String jzh);
/**
* jzh
* @param front
* @param later
* @param newSyncTime
* @return
*/
List<String> listJzhAndAdd(@Param("front") int front,@Param("later") int later,@Param("newSyncTime") String newSyncTime);
}

@ -9,6 +9,8 @@ public interface MzSyncMapper {
List<MzSync> listMzSync(@Param("jzhs") List<String> jzhs,
@Param("front") int front ,
@Param("later") int later);
@Param("later") int later,
@Param("tableName") String tableName,
@Param("tableNamespace") String tableNamespace);
}

@ -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());
}
}
}

@ -34,6 +34,7 @@ public class FileUtils {
String path = FileUtils.currentPath();
return path + Codes.REQUEST_XML.getMessage();
}
/**
* xml
*

@ -0,0 +1,32 @@
server:
port: 9308
# http
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
field-strategy: NOT_EMPTY
db-type: MYSQL
beat:
url: http://localhost:9399/beat
ws:
url: http://192.168.1.115:8010/ws_server/weather?wsdl
localMethod: OperationA
spring:
datasource:
mysql-docus:
driver-class-name: com.mysql.cj.jdbc.Driver
username: docus
password: docus702
url: jdbc:mysql://db.docus.cn:3306/docus_archivefile?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true&allowMultiQueries=true
oracle-docus:
driver-class-name: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@192.168.117.100:1521:helowin
username: docus
password: docus702

@ -46,4 +46,18 @@
set integrity_desc=#{result}
where jzh=#{jzh}
</update>
<select id="listJzhAndAdd" resultType="string">
SELECT
jzh
FROM
docus_medicalrecord.t_basic a
JOIN t_scan_assort b ON a.patient_id = b.patient_id
WHERE
b.create_time >= #{newSyncTime}
AND a.jzh IS NOT NULL
GROUP BY
jzh
limit ${front},${later}
</select>
</mapper>

@ -13,7 +13,7 @@
a.UNIQUE_ID as serialnum,
a.VISITING_SERIAL_NUMBER as jzh,
ROWID "NAVICAT_ROWID"
FROM "CDR"."CIS_EMR_DOCUMENT" a
FROM "${tableNamespace}"."${tableName}" a
where VISITING_SERIAL_NUMBER in
<foreach collection="jzhs" item="jzh" close=")" open="(" separator=",">
#{jzh}

Loading…
Cancel
Save