按需采集更新

# 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.facade.IBgtsService;
import com.docus.bgts.utils.FileUtils; import com.docus.bgts.utils.FileUtils;
import org.apache.commons.lang3.StringUtils; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@ -15,20 +17,37 @@ public class MyConstruct {
@Autowired @Autowired
IBgtsService bgtsService; 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 @PostConstruct
public void startCollectAll(){ public void startCollectAll(){
String collectorid = String.valueOf(FileUtils.getJsonByName("collectorid")); String collectorid = String.valueOf(FileUtils.getJsonByName("collectorid"));
String startCollectTime = String.valueOf(FileUtils.getJsonByName("startCollectTime")); String startCollectTime = String.valueOf(FileUtils.getJsonByName("startCollectTime"));
String isStartCollect = String.valueOf(FileUtils.getJsonByName("isStartCollect")); 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(); bgtsService.collectAll();
} }
} }
//在spring容器关闭时释放 //在spring容器关闭时释放
@PreDestroy @PreDestroy
public void destroy() { public void destroy() {

@ -56,7 +56,7 @@ public class MyScheduling {
/** /**
* * /
* 10 * 10
*/ */
// @Scheduled(fixedRate = 1000 * 60 * 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.entity.CommonResult;
import com.docus.bgts.facade.IAfCollectTaskService; import com.docus.bgts.facade.IAfCollectTaskService;
import com.docus.bgts.facade.IBgtsService; 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.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
@ -25,7 +25,7 @@ public class BgtsController {
private final Logger logger = LoggerFactory.getLogger(getClass()); private final Logger logger = LoggerFactory.getLogger(getClass());
@Autowired @Autowired
CheckIntegrityService checkIntegrityService; IMzSyncService mzSyncService;
@Autowired @Autowired
IBgtsService bgtsService; IBgtsService bgtsService;
@ -44,13 +44,9 @@ public class BgtsController {
checkIntegrityService.addSyncIntegrality(startDate,endDate); checkIntegrityService.addSyncIntegrality(startDate,endDate);
} }
@GetMapping("/addSyncIntegralityByJzhs") @GetMapping("/syncIntegrality")
public CommonResult<String> addSyncIntegrality(@RequestParam("jzhs")String jzhs){ public void syncIntegrality(){
if(jzhs.split(",").length > 100){ mzSyncService.syncIntegrality();
return CommonResult.failed("jzh个数不能超过100个");
}
checkIntegrityService.addSyncIntegralityByJzhs(jzhs);
return CommonResult.success("完成");
} }
@ -111,4 +107,19 @@ public class BgtsController {
return CommonResult.success("ok"); 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 startDate
* @param endDate * @param endDate
*/ */
private void collectByDates(String startDate, String endDate) { /* private void collectByDates(String startDate, String endDate) {
//页码 //页码
int current; int current;
//每页10条数据 //每页10条数据
@ -142,7 +142,7 @@ public class BgtsServiceImpl implements IBgtsService {
//2.获取第一页10条数据开始采集 //2.获取第一页10条数据开始采集
for (current = 1; ; current++) { for (current = 1; ; current++) {
size = 10 * 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); logger.info("处理采集数据:"+maps);
if (null == maps || maps.size() <= 0) { if (null == maps || maps.size() <= 0) {
break; 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 @Override
@ -290,6 +373,7 @@ public class BgtsServiceImpl implements IBgtsService {
Element esbEntry = reqXmlUtils.getMsgElement(); Element esbEntry = reqXmlUtils.getMsgElement();
esbEntry.element("EXAM_NO").setText(exam[0]); esbEntry.element("EXAM_NO").setText(exam[0]);
String resXml = invokeWs(reqXmlUtils.getDocument().asXML()); String resXml = invokeWs(reqXmlUtils.getDocument().asXML());
logger.info("明细入参------------"+reqXmlUtils.getDocument().asXML());
//解析XML //解析XML
XmlUtils xmlUtils = new XmlUtils(new ByteArrayInputStream(resXml.getBytes("UTF-8"))); XmlUtils xmlUtils = new XmlUtils(new ByteArrayInputStream(resXml.getBytes("UTF-8")));
String success = xmlUtils.isSuccess(); String success = xmlUtils.isSuccess();
@ -364,29 +448,34 @@ public class BgtsServiceImpl implements IBgtsService {
//通过日期查询patientId集合 //通过日期查询patientId集合
List<String> patientIds = afCollectTaskService.getjzhByDate(startDate,endDate); List<String> patientIds = afCollectTaskService.getjzhByDate(startDate,endDate);
//通过patientId集合与采集器编号查询报告单号 //通过patientId集合与采集器编号查询报告单号
//List<String> c1s = afCollectTaskMapper.getC1ByPatientId(patientIds,collectorId); //List<String> c1s = afCollectTaskService.getC1ByPatientId(patientIds, collectorId);
List<String> c1s = afCollectTaskService.getC1ByPatientId(patientIds, collectorId);
//通过唯一报告单号查询patient_id //通过唯一报告单号查询patient_id
List<String> patientIdByC1 = afCollectTaskService.getPatientIdByC1(c1s); //List<String> patientIdByC1 = afCollectTaskService.getPatientIdByC1(c1s);
//通过patientId集合查询jzh //通过patientId集合查询jzh
//List<String> jzhs = afCollectTaskMapper.getJzhByPatientId(patientIds); List<String> jzhs = afCollectTaskService.getJzhByPatientId(patientIds);
List<String> jzhs = afCollectTaskService.getJzhByPatientId(patientIdByC1); //int i = -1;
int i = -1;
//循环jzh与报告单号c1调用按需采集 //循环jzh与报告单号c1调用按需采集
for (String c1 : c1s) { // for (String c1 : c1s) {
try { // try {
if (i<c1s.size()) { // if (i<c1s.size()) {
i++; // i++;
//System.err.println(c1s.get(i) + "--------" + jzhs.get(i)); // //System.err.println(c1s.get(i) + "--------" + jzhs.get(i));
//HttpUtils.get("127.0.0.1:"+port+"/collectByExamNo?emamNo="+c1+"&empId="+jzh); // //HttpUtils.get("127.0.0.1:"+port+"/collectByExamNo?emamNo="+c1+"&empId="+jzh);
collectByExamNo(c1s.get(i), jzhs.get(i)); // collectByExamNo(c1s.get(i), jzhs.get(i));
} // }
//
//
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // 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"> <mapper namespace="com.docus.bgts.mapper.dboracle.VDocumentPdfMapper">
<select id="listCollectPage" resultType="map"> <select id="listCollectPage" resultType="map">
SELECT SELECT
* *
FROM FROM
( (
SELECT SELECT
"NAVICAT_TABLE".*, "NAVICAT_TABLE".*,
ROWNUM "NAVICAT_ROWNUM" ROWNUM "NAVICAT_ROWNUM"
FROM FROM
( (
SELECT SELECT
<foreach collection="fieldArr" item="field" separator=","> <foreach collection="fieldArr" item="field" separator=",">
${namespace}.${tableName}.${field} ${namespace}.${tableName}.${field}
</foreach> </foreach>
FROM FROM
${namespace}.${tableName} ${namespace}.${tableName}
WHERE WHERE
${collectTimeName} BETWEEN TO_DATE ( #{startTime}, 'YYYY-MM-DD HH24:MI:SS' ) ${collectTimeName} BETWEEN TO_DATE ( #{startTime}, 'YYYY-MM-DD HH24:MI:SS' )
AND TO_DATE ( #{endTime}, 'YYYY-MM-DD HH24:MI:SS' ) AND TO_DATE ( #{endTime}, 'YYYY-MM-DD HH24:MI:SS' )
) "NAVICAT_TABLE" ) "NAVICAT_TABLE"
WHERE
ROWNUM &lt;= ${size}
)
WHERE WHERE
ROWNUM &lt;= ${size} ) WHERE "NAVICAT_ROWNUM" &gt;= ${current} "NAVICAT_ROWNUM" &gt; ${current}
</select> </select>
</mapper> </mapper>
Loading…
Cancel
Save