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, SLAVE,
/** /**
* 柳铁 * ORACLE
*/ */
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; DataSource dataSource;
Map<Object, DataSource> resolvedDataSources = super.getResolvedDataSources(); 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)) { if (CollUtil.isNotEmpty(resolvedDataSources) && resolvedDataSources.containsKey(dataSourceKey)) {
dataSource = resolvedDataSources.get(dataSourceKey); dataSource = resolvedDataSources.get(dataSourceKey);
}else { }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; private String bedNumber;
@ApiModelProperty(value = "出院日期") @ApiModelProperty(value = "出院日期")
private Date dischargeDate; private String dischargeDate;
@ApiModelProperty(value = "入院途径") @ApiModelProperty(value = "入院途径")
private String admissionMethod; 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) @DataSource(value = DataSourceType.MASTER)
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void syncUmsUserMaster(List<SysUser> sysUsers) { public void syncUmsUserMaster(List<SysUser> sysUsers) {
log.info("master开始同步用户数据:{}", sysUsers.size());
if (CollUtil.isNotEmpty(sysUsers)) { if (CollUtil.isNotEmpty(sysUsers)) {
for (SysUser sysUser : sysUsers) { for (SysUser sysUser : sysUsers) {
//根据code查找用户 //根据code查找用户
@ -327,9 +328,12 @@ public class DockServiceImpl implements DockService {
List<SysUser> users = sysUserMapper.selectUserList(user); List<SysUser> users = sysUserMapper.selectUserList(user);
if (CollUtil.isEmpty(users)) { if (CollUtil.isEmpty(users)) {
sysUser.setDeptId(hospitalId); sysUser.setDeptId(hospitalId);
sysUser.setPassword(SecurityUtils.encryptPassword(generalPassword));
log.info("master新增用户信息:{}", sysUser);
sysUserMapper.insertUser(sysUser); sysUserMapper.insertUser(sysUser);
}else { }else {
sysUser.setUserId(users.get(0).getUserId()); sysUser.setUserId(users.get(0).getUserId());
log.info("master更新用户信息:{}", sysUser);
sysUserMapper.updateUser(sysUser); sysUserMapper.updateUser(sysUser);
} }
} }
@ -467,6 +471,7 @@ public class DockServiceImpl implements DockService {
@DataSource(value = DataSourceType.MASTER) @DataSource(value = DataSourceType.MASTER)
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void syncUmsDeptMaster(List<SysDept> sysDepts) { public void syncUmsDeptMaster(List<SysDept> sysDepts) {
log.info("MASTER同步部门数据开始:{}",sysDepts.size());
if (CollUtil.isNotEmpty(sysDepts)) { if (CollUtil.isNotEmpty(sysDepts)) {
sysDepts.forEach(sysDept -> { sysDepts.forEach(sysDept -> {
//根据code查找系统的部门信息 //根据code查找系统的部门信息
@ -474,10 +479,12 @@ public class DockServiceImpl implements DockService {
dept.setDeptCode(sysDept.getDeptCode()); dept.setDeptCode(sysDept.getDeptCode());
List<SysDept> depts = sysDeptMapper.selectDeptList(dept); List<SysDept> depts = sysDeptMapper.selectDeptList(dept);
if (CollUtil.isEmpty(depts)) { if (CollUtil.isEmpty(depts)) {
log.info("MASTER新增部门:{}",sysDept);
sysDeptMapper.insertDept(sysDept); sysDeptMapper.insertDept(sysDept);
} else { } else {
SysDept sysDept1 = depts.get(0); SysDept sysDept1 = depts.get(0);
sysDept.setDeptId(sysDept1.getDeptId()); sysDept.setDeptId(sysDept1.getDeptId());
log.info("MASTER更新部门:{}",sysDept);
sysDeptMapper.updateDept(sysDept); sysDeptMapper.updateDept(sysDept);
} }
}); });
@ -976,11 +983,11 @@ public class DockServiceImpl implements DockService {
@Override @Override
public List<DockVo.PatientVisitInfo> getPatientVisitView(Date startTime) { public List<DockVo.PatientVisitInfo> getPatientVisitView(Date startTime) {
Date endTime = new Date();
if(ObjectUtil.isNull(startTime)){ if(ObjectUtil.isNull(startTime)){
//如果是空,取一年前的时间 //如果是空,查全部
startTime = DateUtil.offset(new Date(), DateField.YEAR, -1); endTime = null;
} }
Date endTime = new Date();
return oracleViewDao.getPatientVisitView(startTime, endTime); return oracleViewDao.getPatientVisitView(startTime, endTime);
} }
@ -1007,7 +1014,9 @@ public class DockServiceImpl implements DockService {
dockPatientVisit.setAdmissionDate(sysVisit.getAdmissionDate()); dockPatientVisit.setAdmissionDate(sysVisit.getAdmissionDate());
dockPatientVisit.setAdmissionCount(sysVisit.getAdmissionCount()); dockPatientVisit.setAdmissionCount(sysVisit.getAdmissionCount());
dockPatientVisit.setBedNumber(sysVisit.getBedNumber()); 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.setAdmissionMethod(sysVisit.getAdmissionMethod());
dockPatientVisit.setDischargeMethod(sysVisit.getDischargeMethod()); dockPatientVisit.setDischargeMethod(sysVisit.getDischargeMethod());
dockPatientVisit.setHeight(sysVisit.getHeight()); 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; private DockService dockService;
@DataSource(value = DataSourceType.SLAVE) @DataSource(value = DataSourceType.SLAVE)
// @Scheduled(cron = "0 */1 * * * ?") @Scheduled(cron = "0 3/6 * * * ?")
public void syncHospitalData() { public void syncHospitalData() {
log.info("开始同步医院数据");
dockService.syncHospitalData(); dockService.syncHospitalData();
} }
@DataSource(value = DataSourceType.SLAVE) @DataSource(value = DataSourceType.SLAVE)
// @Scheduled(cron = "0 */1 * * * ?") @Scheduled(cron = "0 4/6 * * * ?")
public void syncDeptData() { public void syncDeptData() {
log.info("开始同步部门数据");
try { try {
List<SysDept> sysDepts = dockService.syncUmsDeptSlave(); List<SysDept> sysDepts = dockService.syncUmsDeptSlave();
syncDeptMaster(sysDepts); syncDeptMaster(sysDepts);
@ -43,13 +45,15 @@ public class SyncHospitalData {
@DataSource(value = DataSourceType.MASTER) @DataSource(value = DataSourceType.MASTER)
public void syncDeptMaster(List<SysDept> sysDepts) { public void syncDeptMaster(List<SysDept> sysDepts) {
log.info("master同步部门数据");
dockService.syncUmsDeptMaster(sysDepts); dockService.syncUmsDeptMaster(sysDepts);
} }
@DataSource(value = DataSourceType.SLAVE) @DataSource(value = DataSourceType.SLAVE)
// @Scheduled(cron = "0 */1 * * * ?") @Scheduled(cron = "0 5/6 * * * ?")
public void syncUserData() { public void syncUserData() {
log.info("开始同步用户数据");
try { try {
List<SysUser> sysUsers = dockService.syncUmsUserSlave(); List<SysUser> sysUsers = dockService.syncUmsUserSlave();
syncUserMaster(sysUsers); syncUserMaster(sysUsers);
@ -60,6 +64,7 @@ public class SyncHospitalData {
@DataSource(value = DataSourceType.MASTER) @DataSource(value = DataSourceType.MASTER)
public void syncUserMaster(List<SysUser> sysUser) { public void syncUserMaster(List<SysUser> sysUser) {
log.info("master同步用户数据");
dockService.syncUmsUserMaster(sysUser); 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.SysDept;
import com.ccsens.common.core.domain.entity.SysUser; import com.ccsens.common.core.domain.entity.SysUser;
import com.ccsens.common.enums.DataSourceType; import com.ccsens.common.enums.DataSourceType;
import com.ccsens.framework.datasource.DynamicDataSourceContextHolder;
import com.ccsens.system.domain.vo.DockVo; import com.ccsens.system.domain.vo.DockVo;
import com.ccsens.system.service.DockService; import com.ccsens.system.service.DockService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -29,43 +30,69 @@ public class SyncHospitalViwe {
private DockService dockService; private DockService dockService;
@DataSource(DataSourceType.SLAVE) @DataSource(DataSourceType.SLAVE)
@Scheduled(cron = "0 */1 * * * ?") @Scheduled(cron = "0 */6 * * * ?")
public void getDeptView() { public void getDeptView() {
List<DockVo.DeptInfo> sysDepts = dockService.getDeptView(); log.info("开始拉取部门信息");
syncDeptView(sysDepts); try {
List<DockVo.DeptInfo> sysDepts = dockService.getDeptView();
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.SLAVE.name());
syncDeptView(sysDepts);
}catch (Exception e){
log.error("部门信息拉取失败",e);
}
} }
@DataSource(DataSourceType.SLAVE) @DataSource(DataSourceType.SLAVE)
@Scheduled(cron = "0 */1 * * * ?") @Scheduled(cron = "0 1/6 * * * ?")
public void getEmplView() { public void getEmplView() {
List<DockVo.EmplInfo> sysEmpls = dockService.getEmplView(); log.info("开始拉取员工信息");
syncEmplView(sysEmpls); try {
List<DockVo.EmplInfo> sysEmpls = dockService.getEmplView();
DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.SLAVE.name());
syncEmplView(sysEmpls);
}catch (Exception e){
log.error("员工信息拉取失败",e);
}
} }
@DataSource(DataSourceType.SLAVE) @DataSource(DataSourceType.SLAVE)
@Scheduled(cron = "0 */1 * * * ?") @Scheduled(cron = "0 2/6 * * * ?")
public void getPatientBasicView() { public void getPatientBasicView() {
//先查询当前就诊信息最后的时间 log.info("开始拉取患者信息");
Date startTime = dockService.getPatientVisitLastDate(); try {
//先通过时间查询就诊信息 //先查询当前就诊信息最后的时间
List<DockVo.PatientVisitInfo> sysVisits = dockService.getPatientVisitView(startTime); Date startTime = dockService.getPatientVisitLastDate();
//同步就诊信息 //先通过时间查询就诊信息
List<DockVo.PatientVisitInfo> visitList = syncPatientVisitView(sysVisits); List<DockVo.PatientVisitInfo> sysVisits = dockService.getPatientVisitView(startTime);
//去除所有的患者编号,去重 log.info("查到的就诊信息:{}--{}", sysVisits.size(), sysVisits);
Set<String> patientNos = visitList.stream().map(DockVo.PatientVisitInfo::getPatientNo).collect(Collectors.toSet()); DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.SLAVE.name());
//取出所有的就诊号,去重 //同步就诊信息
Set<String> visitNos = visitList.stream().map(DockVo.PatientVisitInfo::getVisitNo).collect(Collectors.toSet()); List<DockVo.PatientVisitInfo> visitList = syncPatientVisitView(sysVisits);
//去除所有的患者编号,去重
//根据患者编号查基本信息 Set<String> patientNos = visitList.stream().map(DockVo.PatientVisitInfo::getPatientNo).collect(Collectors.toSet());
List<DockVo.PatientBasicInfo> sysPatients = dockService.getPatientBasicView(new ArrayList<>(patientNos)); //取出所有的就诊号,去重
syncPatientBasicView(sysPatients); Set<String> visitNos = visitList.stream().map(DockVo.PatientVisitInfo::getVisitNo).collect(Collectors.toSet());
//根据就诊号查诊断信息
List<DockVo.DiagnosisInfo> sysDiagnosis = dockService.getDiagnosisView(new ArrayList<>(visitNos)); //根据患者编号查基本信息
syncDiagnosisView(sysDiagnosis); List<DockVo.PatientBasicInfo> sysPatients = dockService.getPatientBasicView(new ArrayList<>(patientNos));
//根据就诊号查用药信息
List<DockVo.MedicationInfo> sysMedications = dockService.getMedicationView(new ArrayList<>(visitNos)); //根据就诊号查诊断信息
syncMedicationView(sysMedications); 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) @DataSource(value = DataSourceType.SLAVE)

Loading…
Cancel
Save