package com.ruoyi.inhospvisit.api; import com.ruoyi.common.core.service.dto.PatMedReq; import com.ruoyi.common.core.service.dto.PatMedRes; import com.ruoyi.common.utils.DtoConversionUtils; import com.ruoyi.inhospvisit.domain.PatMedInhosp; import com.ruoyi.inhospvisit.domain.PatMedInhospDTO; import com.ruoyi.inhospvisit.domain.PatMedInhospVO; import com.ruoyi.inhospvisit.mapper.PatMedInhospMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; import java.util.Map; /** * {@link InhospVisitDataService} 的唯一实现(常驻 Bean)。 * *

本类是对 {@link PatMedInhospMapper} 的逐方法纯转发,不含任何业务判断: *

* *

⚠️ 调用方请注入常驻门面 {@link InhospVisitFacade} 或本接口, * 不要直接注入 {@link PatMedInhospMapper} —— 那样会绕过模块边界。 */ @Slf4j @Component public class DefaultInhospVisitDataService implements InhospVisitDataService { @Autowired private PatMedInhospMapper patMedInhospMapper; @Override public PatMedInhosp selectPatMedInhospByInhospid(Long inhospid) { return patMedInhospMapper.selectPatMedInhospByInhospid(inhospid); } @Override public List selectPatMedInhosp(PatMedInhosp patMedInhosp) { return patMedInhospMapper.selectPatMedInhosp(patMedInhosp); } @Override public List selectOutInhospByPatnoAndOutDate(String patno, Date dayStart, Date dayEnd) { return patMedInhospMapper.selectOutInhospByPatnoAndOutDate(patno, dayStart, dayEnd); } @Override public String getTagnameBypatid(Long patid) { return patMedInhospMapper.getTagnameBypatid(patid); } @Override public List> getTagnameByPatids(List patids) { return patMedInhospMapper.getTagnameByPatids(patids); } @Override public List selectPatMedInhospList(PatMedInhosp patMedInhosp) { return patMedInhospMapper.selectPatMedInhospList(patMedInhosp); } @Override public List selectPatMedInhospListBySerialnum(PatMedInhosp patMedInhosp) { return patMedInhospMapper.selectPatMedInhospListBySerialnum(patMedInhosp); } @Override public List selectPatMedInhospListByCondition(PatMedInhospVO patMedInhospVO) { return patMedInhospMapper.selectPatMedInhospListByCondition(patMedInhospVO); } @Override public PatMedRes selectPatMedInhospCount(PatMedReq patMedReq) { return patMedInhospMapper.selectPatMedInhospCount(patMedReq); } @Override public List selectNeedProcessList() { return patMedInhospMapper.selectNeedProcessList(); } /** * 查询患者住院记录(通过入院申请单信息)。 * *

⚠️ 逐行保留原实现的缺陷({@code PatMedInhospServiceImpl#selectPatMedInhospByApplication} * 原 L196-211):第一个判断是 {@code if (!CollectionUtils.isEmpty(rows)) return null;} —— * 条件写反了,查到记录反而返回 {@code null}。 *

* 后果:原实现里"补 finishFlag"的循环永远执行不到,所以那个循环体依赖的 * {@code serviceSubtaskMapper.selectServiceSubtaskList(...)}({@code service_subtask} 表) * 在本模块里不需要存在 —— 这也是本方法能干净搬进模块的原因。 *

* 迁移差异登记(唯一一处):原实现里那段不可达的循环代码未随迁, * 改为下面的注释说明。可观察行为完全一致(因为它在原实现里也从不执行)。 * 这样既避免了"把死代码搬进新模块",又不会让后来者以为这里本来就该没有 finishFlag 逻辑。 */ @Override public List selectPatMedInhospByApplication(PatMedInhosp patMedInhosp) { List patMedInhosps = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); if (!org.springframework.util.CollectionUtils.isEmpty(patMedInhosps)) { // ⚠️ 原样保留的反向判断:查到记录时直接返回 null(原实现 L198-200 一模一样) return null; } // 原实现在此处还有一段循环:为每条记录查 service_type="4" 的子任务以补 finishFlag。 // 由于上面那个反向判断,它【永远不可达】,故未随迁。 // 修缺陷时要连同它一起恢复,见 InhospVisitDataService#selectPatMedInhospByApplication 的说明。 return DtoConversionUtils.sourceToTarget(patMedInhosps, PatMedInhospDTO.class); } @Override public int insertPatMedInhosp(PatMedInhosp patMedInhosp) { return patMedInhospMapper.insertPatMedInhosp(patMedInhosp); } @Override public int insertPatMedInhospBatch(List list) { return patMedInhospMapper.insertPatMedInhospBatch(list); } @Override public int updatePatMedInhosp(PatMedInhosp patMedInhosp) { return patMedInhospMapper.updatePatMedInhosp(patMedInhosp); } @Override public int deletePatMedInhospByInhospid(Long inhospid) { return patMedInhospMapper.deletePatMedInhospByInhospid(inhospid); } @Override public int deletePatMedInhospByInhospno(String inhospno) { return patMedInhospMapper.deletePatMedInhospByInhospno(inhospno); } @Override public int deletePatMedInhospByInhospids(Long[] inhospids) { return patMedInhospMapper.deletePatMedInhospByInhospids(inhospids); } }