diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/ftSyncPatientTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/ftSyncPatientTask.java index 1e3f19712..ae0e3fd25 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/ftSyncPatientTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/ftSyncPatientTask.java @@ -2,12 +2,15 @@ package com.ruoyi.quartz.task; import com.ruoyi.common.annotation.DataSource; import com.ruoyi.common.enums.DataSourceType; +import com.ruoyi.system.fantang.domain.FtRemotePatientDao; import com.ruoyi.system.fantang.mapper.FtFoodDaoMapper; import com.ruoyi.system.fantang.mapper.FtRemotePatientDaoMapper; import com.ruoyi.system.service.impl.SyncPatientServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.List; + /** * 定时任务调度测试 * @@ -24,6 +27,8 @@ public class ftSyncPatientTask { public void ftGetRemotePatient() { System.out.println("执行同步远程病患数据"); +// List list = ftRemotePatientDaoMapper.selectList(null); +// System.out.println(list); syncPatientService.insertToLocalSync(ftRemotePatientDaoMapper.selectList(null)); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/mapper/FtPatientDaoMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/mapper/FtPatientDaoMapper.java index 9688db1f1..e16124f08 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/mapper/FtPatientDaoMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/mapper/FtPatientDaoMapper.java @@ -21,7 +21,7 @@ public interface FtPatientDaoMapper extends BaseMapper { @Update("update ft_patient set sync_flag = 0 where off_flag = 0") public int initForSync(); - @Update("update ft_patient a, ft_sync b set a.name= b.name, a.bed_id = b.bed_id, a.sync_flag = 1 where a.hospital_id = b.hospital_id and a.name = b.name and a.bed_id = b.bed_id and a.depart_name = b.depart_name") + @Update("update ft_patient a, ft_sync b set a.name= b.name, a.bed_id = b.bed_id, a.sync_flag = 1 where a.hospital_id = b.hospital_id and a.name = b.name and a.bed_id = b.bed_id and a.depart_id = b.depart_id") public int syncEqual(); @Update("update ft_patient a, ft_sync b set a.name= b.name, a.bed_id = b.bed_id, a.sync_flag = 1 where a.hospital_id = b.hospital_id and a.name = b.name") @@ -39,7 +39,7 @@ public interface FtPatientDaoMapper extends BaseMapper { @Update("update ft_patient a inner join ft_sync b on a.hospital_id = b.hospital_id and a.sync_flag = 2 set a.depart_id = (select depart_id from ft_depart c where b.depart_name = c.depart_name )") public int updateDepartIDToNewPatient(); - @Update("update ft_patient a inner join ft_sync b on a.hospital_id = b.hospital_id and a.sync_flag = 2 set a.depart_id = (select depart_id from ft_depart c where b.depart_name = c.depart_name )") + @Update("update ft_sync, ft_depart set ft_sync.depart_id = ft_depart.depart_id where ft_sync.depart_name = ft_depart.depart_name") public int updateDepartIDToPatient(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/service/impl/FtOrderDaoServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/service/impl/FtOrderDaoServiceImpl.java index 905ea2c5e..fbca1f883 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/fantang/service/impl/FtOrderDaoServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/fantang/service/impl/FtOrderDaoServiceImpl.java @@ -28,7 +28,9 @@ public class FtOrderDaoServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); - wrapper.eq("type", type); - int ret = this.baseMapper.update(dao, wrapper); + + int ret = this.baseMapper.updateById(dao); if (ret == 0) return AjaxResult.error("更新订餐状态失败"); return AjaxResult.success(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SyncPatientServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SyncPatientServiceImpl.java index ed9ab6f41..385dfd9e9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SyncPatientServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SyncPatientServiceImpl.java @@ -45,25 +45,22 @@ public class SyncPatientServiceImpl implements ISyncPatientService { @Transactional @Override public Integer insertToLocalSync(List remotePatientDaoList) { - System.out.println("开始同步................"); + System.out.println("开始同步.................."); StringBuilder syncMessage = new StringBuilder(); syncMessage.append("同步信息:"); // 清空本地中间表数据,准备接收同步数据 - syncPatientDaoMapper.clearAll(); + syncPatientDaoMapper.delete(null); // 遍历数据源,逐条插入本地中间表 for (FtRemotePatientDao dao : remotePatientDaoList) { syncPatientDaoMapper.insert(dao); } - // 为记录填入对应的科室id - patientDaoMapper.updateDepartIDToNewPatient(); - - System.out.println("完成遍历数据源,逐条插入本地中间表.."); + // 为新记录填入对应的科室id + patientDaoMapper.updateDepartIDToPatient(); // 初始化本地病患表准备同步,将标志位置“0” int ret = patientDaoMapper.initForSync(); syncMessage.append(String.format("本地初始化记录:%d 条", ret)); - System.out.println("完成 初始化本地病患表准备同步,将标志位置“0”.."); // 自动同步:住院号相同,姓名,科室,床号相同 // 同步逻辑1:更新住院号、科室、床号、姓名全部相同的记录,并标注flag=1