diff --git a/src/main/java/com/docus/server/archive/job/PatientInfoSyncJob.java b/src/main/java/com/docus/server/archive/job/PatientInfoSyncJob.java index 78b6b41..c9fc2ac 100644 --- a/src/main/java/com/docus/server/archive/job/PatientInfoSyncJob.java +++ b/src/main/java/com/docus/server/archive/job/PatientInfoSyncJob.java @@ -134,7 +134,7 @@ public class PatientInfoSyncJob { } - private static class PatientInfoSyncJobConfig { + public static class PatientInfoSyncJobConfig { private String startDate; private String startTime; private String cyrqStart; diff --git a/src/main/java/com/docus/server/archive/mapper/TBasicMapper.java b/src/main/java/com/docus/server/archive/mapper/TBasicMapper.java index ddb8069..15ebc0b 100644 --- a/src/main/java/com/docus/server/archive/mapper/TBasicMapper.java +++ b/src/main/java/com/docus/server/archive/mapper/TBasicMapper.java @@ -28,4 +28,8 @@ public interface TBasicMapper { int delZkInfo(@Param("patientId") String patientId); int addZkInfo(@Param("basicZkList") List tBasicZkInfoList); + + List getJzhByDisDate(@Param("cyrqStart") String cyrqStart,@Param("offset") int offset,@Param("size") int size); + + int cancenlByJzhs(@Param("jzhs") List cancelJzhs); } diff --git a/src/main/java/com/docus/server/mzsy/job/BasicCheckJob.java b/src/main/java/com/docus/server/mzsy/job/BasicCheckJob.java new file mode 100644 index 0000000..5196c03 --- /dev/null +++ b/src/main/java/com/docus/server/mzsy/job/BasicCheckJob.java @@ -0,0 +1,71 @@ +package com.docus.server.mzsy.job; + +import cn.hutool.core.collection.CollUtil; +import com.docus.core.util.Func; +import com.docus.infrastructure.core.utils.TableJsonRead; +import com.docus.server.archive.job.PatientInfoSyncJob; +import com.docus.server.archive.mapper.TBasicMapper; +import com.docus.server.mzsy.entity.MzsyPatientInfoView; +import com.docus.server.mzsy.mapper.MzsyPatientInfoViewMapper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * + * @author YongBin Wen + * @date 2026/2/27 10:38 + */ +@Component +@Slf4j +public class BasicCheckJob { + @Resource + private MzsyPatientInfoViewMapper mzsyPatientInfoViewMapper; + + @Resource + private TBasicMapper tBasicMapper; + + @XxlJob("MzsyBasicSyncCheckJob") + public void basicSyncCheckJob() { + log.info("梅州三院基础数据检查任务开始了"); + try { + String jobConfigPath = "data-config\\job-config"; + String jobConfigName = "ViewPatientInfoSyncJob.json"; + TableJsonRead jsonReader = new TableJsonRead(); + PatientInfoSyncJob.PatientInfoSyncJobConfig syncJobConfig = jsonReader.Read(jobConfigPath, jobConfigName, PatientInfoSyncJob.PatientInfoSyncJobConfig.class); + syncJobConfig = PatientInfoSyncJob.PatientInfoSyncJobConfig.checkAndInit(syncJobConfig); + String cyrqStart = syncJobConfig.getCyrqStart(); + int offset = 0; + int size = 2000; + while (true) { + List jzhs = tBasicMapper.getJzhByDisDate(cyrqStart, offset, size); + if (CollUtil.isEmpty(jzhs)) { + break; + } + List views = mzsyPatientInfoViewMapper.getByJzh(cyrqStart, jzhs); + List viewJzhs = views.stream().map(MzsyPatientInfoView::getJZH).collect(Collectors.toList()); + List cancelJzhs = new ArrayList<>(); + for (String jzh : jzhs) { + if (viewJzhs.contains(jzh)) { + continue; + } + cancelJzhs.add(jzh); + } + if(CollUtil.isNotEmpty(cancelJzhs)){ + tBasicMapper.cancenlByJzhs(cancelJzhs); + log.info("jzhs:{} 视图数据为无需同步数据或者不存在,作废基础数据!", Func.toJson(cancelJzhs)); + } + offset = offset + size; + } + log.info("梅州三院基础数据检查任务结束了"); + } catch (Exception e) { + log.error("梅州三院基础数据检查出错了," + e.getMessage(), e); + } + } + +} diff --git a/src/main/java/com/docus/server/mzsy/mapper/MzsyPatientInfoViewMapper.java b/src/main/java/com/docus/server/mzsy/mapper/MzsyPatientInfoViewMapper.java index 2595747..bccdffb 100644 --- a/src/main/java/com/docus/server/mzsy/mapper/MzsyPatientInfoViewMapper.java +++ b/src/main/java/com/docus/server/mzsy/mapper/MzsyPatientInfoViewMapper.java @@ -19,4 +19,6 @@ public interface MzsyPatientInfoViewMapper { List listZkInfo(@Param("jzh") String jzh); + + List getByJzh(@Param("cyrqStart") String cyrqStart,@Param("jzhs") List jzhs); } diff --git a/src/main/resources/mapper/MzsyPatientInfoViewMapper.xml b/src/main/resources/mapper/MzsyPatientInfoViewMapper.xml index f459d71..19f17a6 100644 --- a/src/main/resources/mapper/MzsyPatientInfoViewMapper.xml +++ b/src/main/resources/mapper/MzsyPatientInfoViewMapper.xml @@ -23,4 +23,11 @@ from dbo.V_JSWZH_BASE_ZK where jzh = #{jzh} + diff --git a/src/main/resources/mapper/TBasicMapper.xml b/src/main/resources/mapper/TBasicMapper.xml index 43d3e20..2d6c2ec 100644 --- a/src/main/resources/mapper/TBasicMapper.xml +++ b/src/main/resources/mapper/TBasicMapper.xml @@ -45,7 +45,7 @@ `admiss_date`=#{basic.admissDate},`admiss_dept`=#{basic.admissDept}, `admiss_dept_name`=#{basic.admissDeptName}, `dis_date`= #{basic.disDate},`dis_dept`=#{basic.disDept}, `dis_dept_name`=#{basic.disDeptName}, `attending`= #{basic.attending}, `attending_name`=#{basic.attendingName}, - `is_dead`=#{basic.isDead},`file_source`=#{basic.fileSource}, + `is_dead`=#{basic.isDead},`file_source`=#{basic.fileSource},`is_cancel`= 0, `jzh`= #{basic.jzh},`bed_no`=#{basic.bedNo}, `jz_card_no`=#{basic.jzCardNo}, `total_cost`=#{basic.totalCost}, `create_time`= #{basic.createTime}, `update_time`=#{basic.updateTime},`admiss_days`=#{basic.admissDays},`grounding_no`=#{basic.groundingNo} WHERE patient_id= #{basic.patientId}; @@ -61,6 +61,13 @@ leave_method=#{basic.leaveMethod}; + + UPDATE `docus_medicalrecord`.`t_basic` + set `is_cancel` = 0 + where jzh in + #{jzh} + + delete from docus_medicalrecord.t_basic_zk_info where patient_id = #{patientId} @@ -79,4 +86,11 @@ #{jzh} +