Browse Source

添加日志,修改定时时间

hnsdlyy
zhangye 3 days ago
parent
commit
7f3419c473
  1. 2
      ruisi_java/ruisi-cc-common/src/main/java/com/ccsens/common/enums/DataSourceType.java
  2. 2
      ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DynamicDataSource.java
  3. 2
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/vo/DockVo.java
  4. 17
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/DockServiceImpl.java
  5. 11
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/scheduled/SyncHospitalData.java
  6. 81
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/scheduled/SyncHospitalViwe.java

2
ruisi_java/ruisi-cc-common/src/main/java/com/ccsens/common/enums/DataSourceType.java

@ -17,7 +17,7 @@ public enum DataSourceType {
SLAVE,
/**
* 柳铁
* ORACLE
*/
ORACLE
}

2
ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/datasource/DynamicDataSource.java

@ -44,7 +44,7 @@ public class DynamicDataSource extends AbstractRoutingDataSource {
DataSource dataSource;
Map<Object, DataSource> resolvedDataSources = super.getResolvedDataSources();
log.info("resolvedDataSources数据源池中的key: {}", resolvedDataSources.keySet());
// log.info("resolvedDataSources数据源池中的key: {}", resolvedDataSources.keySet());
if (CollUtil.isNotEmpty(resolvedDataSources) && resolvedDataSources.containsKey(dataSourceKey)) {
dataSource = resolvedDataSources.get(dataSourceKey);
}else {

2
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/vo/DockVo.java

@ -164,7 +164,7 @@ public class DockVo {
private String bedNumber;
@ApiModelProperty(value = "出院日期")
private Date dischargeDate;
private String dischargeDate;
@ApiModelProperty(value = "入院途径")
private String admissionMethod;

17
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/DockServiceImpl.java

@ -319,6 +319,7 @@ public class DockServiceImpl implements DockService {
@DataSource(value = DataSourceType.MASTER)
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void syncUmsUserMaster(List<SysUser> sysUsers) {
log.info("master开始同步用户数据:{}", sysUsers.size());
if (CollUtil.isNotEmpty(sysUsers)) {
for (SysUser sysUser : sysUsers) {
//根据code查找用户
@ -327,9 +328,12 @@ public class DockServiceImpl implements DockService {
List<SysUser> users = sysUserMapper.selectUserList(user);
if (CollUtil.isEmpty(users)) {
sysUser.setDeptId(hospitalId);
sysUser.setPassword(SecurityUtils.encryptPassword(generalPassword));
log.info("master新增用户信息:{}", sysUser);
sysUserMapper.insertUser(sysUser);
}else {
sysUser.setUserId(users.get(0).getUserId());
log.info("master更新用户信息:{}", sysUser);
sysUserMapper.updateUser(sysUser);
}
}
@ -467,6 +471,7 @@ public class DockServiceImpl implements DockService {
@DataSource(value = DataSourceType.MASTER)
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void syncUmsDeptMaster(List<SysDept> sysDepts) {
log.info("MASTER同步部门数据开始:{}",sysDepts.size());
if (CollUtil.isNotEmpty(sysDepts)) {
sysDepts.forEach(sysDept -> {
//根据code查找系统的部门信息
@ -474,10 +479,12 @@ public class DockServiceImpl implements DockService {
dept.setDeptCode(sysDept.getDeptCode());
List<SysDept> depts = sysDeptMapper.selectDeptList(dept);
if (CollUtil.isEmpty(depts)) {
log.info("MASTER新增部门:{}",sysDept);
sysDeptMapper.insertDept(sysDept);
} else {
SysDept sysDept1 = depts.get(0);
sysDept.setDeptId(sysDept1.getDeptId());
log.info("MASTER更新部门:{}",sysDept);
sysDeptMapper.updateDept(sysDept);
}
});
@ -976,11 +983,11 @@ public class DockServiceImpl implements DockService {
@Override
public List<DockVo.PatientVisitInfo> getPatientVisitView(Date startTime) {
Date endTime = new Date();
if(ObjectUtil.isNull(startTime)){
//如果是空,取一年前的时间
startTime = DateUtil.offset(new Date(), DateField.YEAR, -1);
//如果是空,查全部
endTime = null;
}
Date endTime = new Date();
return oracleViewDao.getPatientVisitView(startTime, endTime);
}
@ -1007,7 +1014,9 @@ public class DockServiceImpl implements DockService {
dockPatientVisit.setAdmissionDate(sysVisit.getAdmissionDate());
dockPatientVisit.setAdmissionCount(sysVisit.getAdmissionCount());
dockPatientVisit.setBedNumber(sysVisit.getBedNumber());
dockPatientVisit.setDischargeDate(sysVisit.getDischargeDate());
if(StrUtil.isNotEmpty(sysVisit.getDischargeDate())){
dockPatientVisit.setDischargeDate(DateUtil.parse(sysVisit.getDischargeDate(), "yyyy-MM-dd"));
}
dockPatientVisit.setAdmissionMethod(sysVisit.getAdmissionMethod());
dockPatientVisit.setDischargeMethod(sysVisit.getDischargeMethod());
dockPatientVisit.setHeight(sysVisit.getHeight());

11
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/scheduled/SyncHospitalData.java

@ -24,14 +24,16 @@ public class SyncHospitalData {
private DockService dockService;
@DataSource(value = DataSourceType.SLAVE)
// @Scheduled(cron = "0 */1 * * * ?")
@Scheduled(cron = "0 3/6 * * * ?")
public void syncHospitalData() {
log.info("开始同步医院数据");
dockService.syncHospitalData();
}
@DataSource(value = DataSourceType.SLAVE)
// @Scheduled(cron = "0 */1 * * * ?")
@Scheduled(cron = "0 4/6 * * * ?")
public void syncDeptData() {
log.info("开始同步部门数据");
try {
List<SysDept> sysDepts = dockService.syncUmsDeptSlave();
syncDeptMaster(sysDepts);
@ -43,13 +45,15 @@ public class SyncHospitalData {
@DataSource(value = DataSourceType.MASTER)
public void syncDeptMaster(List<SysDept> sysDepts) {
log.info("master同步部门数据");
dockService.syncUmsDeptMaster(sysDepts);
}
@DataSource(value = DataSourceType.SLAVE)
// @Scheduled(cron = "0 */1 * * * ?")
@Scheduled(cron = "0 5/6 * * * ?")
public void syncUserData() {
log.info("开始同步用户数据");
try {
List<SysUser> sysUsers = dockService.syncUmsUserSlave();
syncUserMaster(sysUsers);
@ -60,6 +64,7 @@ public class SyncHospitalData {
@DataSource(value = DataSourceType.MASTER)
public void syncUserMaster(List<SysUser> sysUser) {
log.info("master同步用户数据");
dockService.syncUmsUserMaster(sysUser);
}
}

81
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/scheduled/SyncHospitalViwe.java

@ -4,6 +4,7 @@ import com.ccsens.common.annotation.DataSource;
import com.ccsens.common.core.domain.entity.SysDept;
import com.ccsens.common.core.domain.entity.SysUser;
import com.ccsens.common.enums.DataSourceType;
import com.ccsens.framework.datasource.DynamicDataSourceContextHolder;
import com.ccsens.system.domain.vo.DockVo;
import com.ccsens.system.service.DockService;
import lombok.extern.slf4j.Slf4j;
@ -29,43 +30,69 @@ public class SyncHospitalViwe {
private DockService dockService;
@DataSource(DataSourceType.SLAVE)
@Scheduled(cron = "0 */1 * * * ?")
@Scheduled(cron = "0 */6 * * * ?")
public void getDeptView() {
List<DockVo.DeptInfo> sysDepts = dockService.getDeptView();
syncDeptView(sysDepts);
log.info("开始拉取部门信息");
try {
List<DockVo.DeptInfo> sysDepts = dockService.getDeptView();
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.SLAVE.name());
syncDeptView(sysDepts);
}catch (Exception e){
log.error("部门信息拉取失败",e);
}
}
@DataSource(DataSourceType.SLAVE)
@Scheduled(cron = "0 */1 * * * ?")
@Scheduled(cron = "0 1/6 * * * ?")
public void getEmplView() {
List<DockVo.EmplInfo> sysEmpls = dockService.getEmplView();
syncEmplView(sysEmpls);
log.info("开始拉取员工信息");
try {
List<DockVo.EmplInfo> sysEmpls = dockService.getEmplView();
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.SLAVE.name());
syncEmplView(sysEmpls);
}catch (Exception e){
log.error("员工信息拉取失败",e);
}
}
@DataSource(DataSourceType.SLAVE)
@Scheduled(cron = "0 */1 * * * ?")
@Scheduled(cron = "0 2/6 * * * ?")
public void getPatientBasicView() {
//先查询当前就诊信息最后的时间
Date startTime = dockService.getPatientVisitLastDate();
//先通过时间查询就诊信息
List<DockVo.PatientVisitInfo> sysVisits = dockService.getPatientVisitView(startTime);
//同步就诊信息
List<DockVo.PatientVisitInfo> visitList = syncPatientVisitView(sysVisits);
//去除所有的患者编号,去重
Set<String> patientNos = visitList.stream().map(DockVo.PatientVisitInfo::getPatientNo).collect(Collectors.toSet());
//取出所有的就诊号,去重
Set<String> visitNos = visitList.stream().map(DockVo.PatientVisitInfo::getVisitNo).collect(Collectors.toSet());
//根据患者编号查基本信息
List<DockVo.PatientBasicInfo> sysPatients = dockService.getPatientBasicView(new ArrayList<>(patientNos));
syncPatientBasicView(sysPatients);
//根据就诊号查诊断信息
List<DockVo.DiagnosisInfo> sysDiagnosis = dockService.getDiagnosisView(new ArrayList<>(visitNos));
syncDiagnosisView(sysDiagnosis);
//根据就诊号查用药信息
List<DockVo.MedicationInfo> sysMedications = dockService.getMedicationView(new ArrayList<>(visitNos));
syncMedicationView(sysMedications);
log.info("开始拉取患者信息");
try {
//先查询当前就诊信息最后的时间
Date startTime = dockService.getPatientVisitLastDate();
//先通过时间查询就诊信息
List<DockVo.PatientVisitInfo> sysVisits = dockService.getPatientVisitView(startTime);
log.info("查到的就诊信息:{}--{}", sysVisits.size(), sysVisits);
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.SLAVE.name());
//同步就诊信息
List<DockVo.PatientVisitInfo> visitList = syncPatientVisitView(sysVisits);
//去除所有的患者编号,去重
Set<String> patientNos = visitList.stream().map(DockVo.PatientVisitInfo::getPatientNo).collect(Collectors.toSet());
//取出所有的就诊号,去重
Set<String> visitNos = visitList.stream().map(DockVo.PatientVisitInfo::getVisitNo).collect(Collectors.toSet());
//根据患者编号查基本信息
List<DockVo.PatientBasicInfo> sysPatients = dockService.getPatientBasicView(new ArrayList<>(patientNos));
//根据就诊号查诊断信息
List<DockVo.DiagnosisInfo> sysDiagnosis = dockService.getDiagnosisView(new ArrayList<>(visitNos));
//根据就诊号查用药信息
List<DockVo.MedicationInfo> sysMedications = dockService.getMedicationView(new ArrayList<>(visitNos));
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.SLAVE.name());
syncPatientBasicView(sysPatients);
syncDiagnosisView(sysDiagnosis);
syncMedicationView(sysMedications);
}catch (Exception e){
log.error("患者信息拉取失败",e);
}
}
@DataSource(value = DataSourceType.SLAVE)

Loading…
Cancel
Save