You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
151 lines
5.3 KiB
Java
151 lines
5.3 KiB
Java
package com.docus.bgts.service;
|
|
|
|
import com.docus.bgts.entity.*;
|
|
import com.docus.bgts.facade.IMzSyncService;
|
|
import com.docus.bgts.mapper.dbmysql.AfCollectAddMapper;
|
|
import com.docus.bgts.mapper.dbmysql.TScanAssortMapper;
|
|
import com.docus.bgts.mapper.dboracle.MzSyncMapper;
|
|
import com.docus.bgts.utils.FileUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
import java.time.LocalDate;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.*;
|
|
|
|
/**
|
|
* 梅州完整性检验
|
|
*/
|
|
@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;
|
|
|
|
@Autowired
|
|
TScanAssortMapper tScanAssortMapper;
|
|
|
|
@Autowired
|
|
UpdateFileService updateFileService;
|
|
|
|
/**
|
|
* 梅州完整性校验规则
|
|
* @param jzhs
|
|
* @return
|
|
*/
|
|
@Override
|
|
public List<Map> getCompleteIntegrity(List<String> jzhs){
|
|
//根据记帐号查询任务视图
|
|
List<MzSync> mzSyncs = mzSyncMapper.listMzSync(jzhs,tableName, tableNamespaces);
|
|
//校验完整性
|
|
List<Map> maps = verifyIntegrity(mzSyncs,jzhs);
|
|
return maps;
|
|
}
|
|
|
|
/**
|
|
* 梅州校验完整性
|
|
* @param mzSyncs
|
|
* @param jzhs
|
|
* @return
|
|
*/
|
|
private List<Map> verifyIntegrity(List<MzSync> mzSyncs, List<String> jzhs) {
|
|
List<Map> maps = new ArrayList<>();
|
|
//根据记账号集合查询文件表有效的文件集合
|
|
List<MzSync> fileList = tScanAssortMapper.selectFilesByJzhs(jzhs);
|
|
//遍历按记账号分组的任务视图
|
|
for(MzSync mzSync : mzSyncs){
|
|
//定义返回map
|
|
Map map = new HashMap();
|
|
//获取jzh
|
|
String jzh = mzSync.getJzh();
|
|
//遍历任务试图文件集合
|
|
List<MzSyncDetails> mzSyncDetails = mzSync.getMzSyncDetails();
|
|
//定义是否存在
|
|
boolean recordFlag = false;
|
|
//定义缺失文件集合
|
|
StringBuilder faultFileTitles = new StringBuilder();
|
|
for(MzSyncDetails mzSyncDetail : mzSyncDetails){
|
|
//获取文件名称
|
|
String fileTitle = mzSyncDetail.getFileTitle();
|
|
if(StringUtils.isNotBlank(fileTitle) && fileTitle.contains("急诊病历")){
|
|
recordFlag = true;
|
|
}
|
|
//获取文件序列号
|
|
String serialnum = mzSyncDetail.getSerialnum();
|
|
//获取采集器标识
|
|
String collectid = mzSyncDetail.getCollectid();
|
|
//定义是否存在
|
|
boolean flag = false;
|
|
if(!CollectionUtils.isEmpty(fileList)){
|
|
for(MzSync obj : fileList){
|
|
//获取jzh
|
|
String jzh1 = obj.getJzh();
|
|
if(jzh1.equals(jzh)){
|
|
List<MzSyncDetails> mzSyncDetails1 = obj.getMzSyncDetails();
|
|
for(MzSyncDetails vo : mzSyncDetails1){
|
|
//获取文件序列号
|
|
String serialnum1 = vo.getSerialnum();
|
|
//获取采集器标识
|
|
String collectid1 = vo.getCollectid();
|
|
if(serialnum.equals(serialnum1) && collectid.equals(collectid1)){
|
|
flag = true;
|
|
mzSyncDetail.setCollectid(vo.getCollectid());
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//遍历文件
|
|
if(!flag){
|
|
if(StringUtils.isNotBlank(faultFileTitles)){
|
|
faultFileTitles.append(",");
|
|
}
|
|
faultFileTitles.append(fileTitle + "缺失");
|
|
//调下载服务
|
|
updateFileService.updateFile(jzh,mzSyncDetail);
|
|
}
|
|
}
|
|
//添加急诊病历缺失
|
|
if(!recordFlag){
|
|
if(StringUtils.isNotBlank(faultFileTitles)){
|
|
faultFileTitles.append(",");
|
|
}
|
|
faultFileTitles.append("急诊病历缺失");
|
|
}
|
|
if(StringUtils.isBlank(faultFileTitles)){
|
|
faultFileTitles = new StringBuilder("完整");
|
|
}
|
|
map.put("jzh",jzh);
|
|
map.put("file_title",faultFileTitles.toString());
|
|
maps.add(map);
|
|
}
|
|
return maps;
|
|
}
|
|
}
|