按需采集更新

# Conflicts:
#	src/main/java/com/docus/bgts/config/MyScheduling.java
#	src/main/java/com/docus/bgts/controller/BgtsController.java
#	src/main/java/com/docus/bgts/facade/IMzSyncService.java
docus-active-query-service_1.3
tan 3 years ago
parent f62d172d71
commit a31072036e

@ -4,6 +4,8 @@ import com.docus.bgts.enums.Codes;
import com.docus.bgts.facade.IBgtsService;
import com.docus.bgts.utils.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@ -15,20 +17,37 @@ public class MyConstruct {
@Autowired
IBgtsService bgtsService;
/**
*
*/
// @PostConstruct
// public void startCollectAll(){
// logger.info("全量采集开始------");
// String collectorid = String.valueOf(FileUtils.getJsonByName("collectorid"));
// String startCollectTime = String.valueOf(FileUtils.getJsonByName("startCollectTime"));
// String isStartCollect = String.valueOf(FileUtils.getJsonByName("isStartCollect"));
// if(collectorid.equals(Codes.SMCODE.getCode())&& StringUtils.isNotBlank(startCollectTime)&&isStartCollect!=null&&isStartCollect.equals("1")){
// bgtsService.collectAll();
// }
// }
/**
*
*
*/
@PostConstruct
public void startCollectAll(){
String collectorid = String.valueOf(FileUtils.getJsonByName("collectorid"));
String startCollectTime = String.valueOf(FileUtils.getJsonByName("startCollectTime"));
String isStartCollect = String.valueOf(FileUtils.getJsonByName("isStartCollect"));
if(collectorid.equals(Codes.SMCODE.getCode())&& StringUtils.isNotBlank(startCollectTime)&&isStartCollect!=null&&isStartCollect.equals("1")){
if(collectorid.equals(Codes.ZZCODE.getCode())&& StringUtils.isNotBlank(startCollectTime)&&isStartCollect!=null&&isStartCollect.equals("1")){
bgtsService.collectAll();
}
}
//在spring容器关闭时释放
@PreDestroy
public void destroy() {

@ -56,7 +56,7 @@ public class MyScheduling {
/**
*
* /
* 10
*/
// @Scheduled(fixedRate = 1000 * 60 * 10)

@ -5,7 +5,7 @@ import com.docus.bgts.config.MyScheduling;
import com.docus.bgts.entity.CommonResult;
import com.docus.bgts.facade.IAfCollectTaskService;
import com.docus.bgts.facade.IBgtsService;
import com.docus.bgts.service.CheckIntegrityService;
import com.docus.bgts.facade.IMzSyncService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@ -25,7 +25,7 @@ public class BgtsController {
private final Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
CheckIntegrityService checkIntegrityService;
IMzSyncService mzSyncService;
@Autowired
IBgtsService bgtsService;
@ -44,13 +44,9 @@ public class BgtsController {
checkIntegrityService.addSyncIntegrality(startDate,endDate);
}
@GetMapping("/addSyncIntegralityByJzhs")
public CommonResult<String> addSyncIntegrality(@RequestParam("jzhs")String jzhs){
if(jzhs.split(",").length > 100){
return CommonResult.failed("jzh个数不能超过100个");
}
checkIntegrityService.addSyncIntegralityByJzhs(jzhs);
return CommonResult.success("完成");
@GetMapping("/syncIntegrality")
public void syncIntegrality(){
mzSyncService.syncIntegrality();
}
@ -111,4 +107,19 @@ public class BgtsController {
return CommonResult.success("ok");
}
/**
*
*/
@GetMapping("/collectByEx")
public CommonResult<String> collectByEx(@RequestParam("empId") String empId){
try{
bgtsService.collect(empId);
}catch (Exception e){
e.printStackTrace();
return CommonResult.failed(e.getMessage());
}
return CommonResult.success("ok");
}
}

@ -107,12 +107,12 @@ public class BgtsServiceImpl implements IBgtsService {
}
/**
*
*
*
* @param startDate
* @param endDate
*/
private void collectByDates(String startDate, String endDate) {
/* private void collectByDates(String startDate, String endDate) {
//页码
int current;
//每页10条数据
@ -142,7 +142,7 @@ public class BgtsServiceImpl implements IBgtsService {
//2.获取第一页10条数据开始采集
for (current = 1; ; current++) {
size = 10 * current;
maps = vDocumentPdfMapper.listCollectPage(current, size, startDate, endDate, namespace, tableName, fieldArr, collectTimeName);
maps = vDocumentPdfMapper.listCollectPage(size-10, size, startDate, endDate, namespace, tableName, fieldArr, collectTimeName);
logger.info("处理采集数据:"+maps);
if (null == maps || maps.size() <= 0) {
break;
@ -186,6 +186,89 @@ public class BgtsServiceImpl implements IBgtsService {
}
});
}
}*/
/**
*
*
* @param startDate
* @param endDate
*/
private void collectByDates(String startDate, String endDate) {
//页码
int current;
//每页10条数据
int size;
String collectorid = String.valueOf(FileUtils.getJsonByName("collectorid"));
String assortid = String.valueOf(FileUtils.getJsonByName("assortid"));
int filesource = Integer.parseInt(String.valueOf(FileUtils.getJsonByName("filesource")));
int filestoragetype = Integer.parseInt(String.valueOf(FileUtils.getJsonByName("filestoragetype")));
Map<String, Object> headMap = new HashMap<>();
headMap.put("Content-Type", "application/json");
SnowflakeIdWorker idWorker = new SnowflakeIdWorker(0, 0);
String indexFlag = String.valueOf(FileUtils.getJsonByName("indexFlag"));
String serialnum = String.valueOf(FileUtils.getJsonByName("serialnum"));
//String filetitle = String.valueOf(FileUtils.getJsonByName("filetitle"));
String downurl = String.valueOf(FileUtils.getJsonByName("downurl"));
List<String> fieldArr=new ArrayList<>();
fieldArr.add(indexFlag);
fieldArr.add(serialnum);
// if(StringUtils.isNotBlank(filetitle)){
// fieldArr.add(filetitle);
// }
fieldArr.add(downurl);
String namespace = String.valueOf(FileUtils.getJsonByName("namespace"));
String tableName = String.valueOf(FileUtils.getJsonByName("tableName"));
String collectTimeName = String.valueOf(FileUtils.getJsonByName("collectTimeName"));
List<Map> maps;
//2.获取第一页10条数据开始采集
logger.info("开始时间-----"+startDate+"结束时间-----"+"\n"+endDate);
for (current = 1; ; current++) {
size = 10 * current;
maps = vDocumentPdfMapper.listCollectPage(size-10, size, startDate, endDate, namespace, tableName, fieldArr, collectTimeName);
logger.info("处理采集数据:"+maps);
if (null == maps || maps.size() <= 0) {
break;
}
maps.stream().forEach(map -> {
ReportDownDto reportDownDto = new ReportDownDto();
reportDownDto.setCollectorid(collectorid);
reportDownDto.setAssortid(assortid);
ReportDownPatientDto reportDownPatientDto = new ReportDownPatientDto();
reportDownPatientDto.setJzh(String.valueOf(map.get(indexFlag)));
reportDownDto.setPatient(reportDownPatientDto);
List<ReportDownScanFileDto> reportDownScanFileDtos = new ArrayList<>();
ReportDownScanFileDto reportDownScanFileDto = new ReportDownScanFileDto();
reportDownScanFileDto.setDownurl(String.valueOf(map.get(downurl)));
reportDownScanFileDto.setFilestoragetype(filestoragetype);
reportDownScanFileDto.setFilesource(filesource);
//reportDownScanFileDto.setFiletitle(map.get(filetitle)==null?"重症"+(System.currentTimeMillis()):String.valueOf(map.get(filetitle)));
reportDownScanFileDto.setFiletitle(StringUtils.isNotBlank(String.valueOf(map.get(serialnum)))?String.valueOf(map.get(serialnum)):String.valueOf(idWorker.nextId()));
reportDownScanFileDto.setSerialnum(StringUtils.isNotBlank(String.valueOf(map.get(serialnum)))?String.valueOf(map.get(serialnum)):String.valueOf(idWorker.nextId()));
reportDownScanFileDtos.add(reportDownScanFileDto);
reportDownDto.setScanfiles(reportDownScanFileDtos);
String post;
try {
afCollectTaskService.insert(reportDownDto);
//String uploadConnector = String.valueOf(FileUtils.getJsonByName("uploadConnector"));
post = HttpUtils.post(String.valueOf(FileUtils.getJsonByName(Codes.UPLOAD.getMessage())), headMap, JSON.parseObject(JSON.toJSONString(reportDownDto), Map.class));
Map resMap = JSON.parseObject(post, Map.class);
logger.info(reportDownDto);
if (String.valueOf(resMap.get("code")).equals("500")) {
throw new RuntimeException(String.valueOf(resMap.get("msg")));
}
} catch (Exception e) {
//打印错误日志
logger.info("采集出错:"+reportDownDto);
logger.info(e);
String stackTrace = ExceptionUtils.getStackTrace(e);
logger.info("错误信息----------"+stackTrace);
addMrReportErrorLog(reportDownDto);
e.printStackTrace();
}
});
}
}
@Override
@ -290,6 +373,7 @@ public class BgtsServiceImpl implements IBgtsService {
Element esbEntry = reqXmlUtils.getMsgElement();
esbEntry.element("EXAM_NO").setText(exam[0]);
String resXml = invokeWs(reqXmlUtils.getDocument().asXML());
logger.info("明细入参------------"+reqXmlUtils.getDocument().asXML());
//解析XML
XmlUtils xmlUtils = new XmlUtils(new ByteArrayInputStream(resXml.getBytes("UTF-8")));
String success = xmlUtils.isSuccess();
@ -364,29 +448,34 @@ public class BgtsServiceImpl implements IBgtsService {
//通过日期查询patientId集合
List<String> patientIds = afCollectTaskService.getjzhByDate(startDate,endDate);
//通过patientId集合与采集器编号查询报告单号
//List<String> c1s = afCollectTaskMapper.getC1ByPatientId(patientIds,collectorId);
List<String> c1s = afCollectTaskService.getC1ByPatientId(patientIds, collectorId);
//List<String> c1s = afCollectTaskService.getC1ByPatientId(patientIds, collectorId);
//通过唯一报告单号查询patient_id
List<String> patientIdByC1 = afCollectTaskService.getPatientIdByC1(c1s);
//List<String> patientIdByC1 = afCollectTaskService.getPatientIdByC1(c1s);
//通过patientId集合查询jzh
//List<String> jzhs = afCollectTaskMapper.getJzhByPatientId(patientIds);
List<String> jzhs = afCollectTaskService.getJzhByPatientId(patientIdByC1);
int i = -1;
List<String> jzhs = afCollectTaskService.getJzhByPatientId(patientIds);
//int i = -1;
//循环jzh与报告单号c1调用按需采集
for (String c1 : c1s) {
try {
if (i<c1s.size()) {
i++;
//System.err.println(c1s.get(i) + "--------" + jzhs.get(i));
//HttpUtils.get("127.0.0.1:"+port+"/collectByExamNo?emamNo="+c1+"&empId="+jzh);
collectByExamNo(c1s.get(i), jzhs.get(i));
}
} catch (Exception e) {
e.printStackTrace();
}
}
// for (String c1 : c1s) {
// try {
// if (i<c1s.size()) {
// i++;
// //System.err.println(c1s.get(i) + "--------" + jzhs.get(i));
// //HttpUtils.get("127.0.0.1:"+port+"/collectByExamNo?emamNo="+c1+"&empId="+jzh);
// collectByExamNo(c1s.get(i), jzhs.get(i));
// }
//
//
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
try {
for (String jzh : jzhs) {
collect(jzh);
}
}catch (Exception e){
e.printStackTrace();
}
}

@ -5,26 +5,29 @@
<mapper namespace="com.docus.bgts.mapper.dboracle.VDocumentPdfMapper">
<select id="listCollectPage" resultType="map">
SELECT
*
*
FROM
(
SELECT
"NAVICAT_TABLE".*,
ROWNUM "NAVICAT_ROWNUM"
FROM
(
SELECT
<foreach collection="fieldArr" item="field" separator=",">
${namespace}.${tableName}.${field}
</foreach>
FROM
${namespace}.${tableName}
WHERE
${collectTimeName} BETWEEN TO_DATE ( #{startTime}, 'YYYY-MM-DD HH24:MI:SS' )
AND TO_DATE ( #{endTime}, 'YYYY-MM-DD HH24:MI:SS' )
) "NAVICAT_TABLE"
SELECT
"NAVICAT_TABLE".*,
ROWNUM "NAVICAT_ROWNUM"
FROM
(
SELECT
<foreach collection="fieldArr" item="field" separator=",">
${namespace}.${tableName}.${field}
</foreach>
FROM
${namespace}.${tableName}
WHERE
${collectTimeName} BETWEEN TO_DATE ( #{startTime}, 'YYYY-MM-DD HH24:MI:SS' )
AND TO_DATE ( #{endTime}, 'YYYY-MM-DD HH24:MI:SS' )
) "NAVICAT_TABLE"
WHERE
ROWNUM &lt;= ${size}
)
WHERE
ROWNUM &lt;= ${size} ) WHERE "NAVICAT_ROWNUM" &gt;= ${current}
"NAVICAT_ROWNUM" &gt; ${current}
</select>
</mapper>
Loading…
Cancel
Save