86门诊医生站-》西药方

This commit is contained in:
sindir
2026-01-26 13:25:02 +08:00
parent c1efd84332
commit c878dc19d7
7 changed files with 1035 additions and 972 deletions

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.core.common.enums.DelFlag;
import com.core.common.utils.AssignSeqUtil;
import com.core.common.utils.DateUtils;
import com.core.common.utils.SecurityUtils;
import com.openhis.common.enums.AssignSeqEnum;
import com.openhis.common.enums.DispenseStatus;
import com.openhis.medication.domain.MedicationDispense;
@@ -29,301 +30,344 @@ import java.util.List;
*/
@Service
public class MedicationDispenseServiceImpl extends ServiceImpl<MedicationDispenseMapper, MedicationDispense>
implements IMedicationDispenseService {
implements IMedicationDispenseService {
@Resource
AssignSeqUtil assignSeqUtil;
@Resource
AssignSeqUtil assignSeqUtil;
/**
* 处理药品发放信息
*
* @param medicationRequest 药品请求信息
* @param dbOpType db操作类型
* @return 发放id
*/
@Override
public Long handleMedicationDispense(MedicationRequest medicationRequest, String dbOpType) {
MedicationDispense medicationDispense = new MedicationDispense();
// 药品发放id
medicationDispense.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_DIS_NO.getPrefix(), 4));
// 药品发放状态
medicationDispense.setStatusEnum(DispenseStatus.DRAFT.getValue());
// 状态变更时间
medicationDispense.setStatusChangedTime(DateUtils.getNowDate());
// 发药类型
medicationDispense.setDispenseEnum(medicationRequest.getCategoryEnum());
// 药品编码
medicationDispense.setMedicationId(medicationRequest.getMedicationId());
// 请求数量
medicationDispense.setQuantity(medicationRequest.getQuantity());
// 请求单位编码
medicationDispense.setUnitCode(medicationRequest.getUnitCode());
// 产品批号
medicationDispense.setLotNumber(medicationRequest.getLotNumber());
// 患者id
medicationDispense.setPatientId(medicationRequest.getPatientId());
// 就诊id
medicationDispense.setEncounterId(medicationRequest.getEncounterId());
// 支持用药信息
medicationDispense.setSupportInfo(medicationRequest.getSupportInfo());
// 发药人
medicationDispense.setPractitionerId(medicationRequest.getPractitionerId());
// 发放药房
medicationDispense.setLocationId(medicationRequest.getPerformLocation());
// 药品请求id
medicationDispense.setMedReqId(medicationRequest.getId());
// 已发药数量
medicationDispense.setDispenseQuantity(BigDecimal.ZERO);
// 用法
medicationDispense.setMethodCode(medicationRequest.getMethodCode());
// 用药频次
medicationDispense.setFrequencyCode(medicationRequest.getRateCode());
// 单次剂量
medicationDispense.setDose(medicationRequest.getDose());
// 剂量单位
medicationDispense.setDoseUnitCode(medicationRequest.getDoseUnitCode());
// 单次最大剂量
medicationDispense.setMaxUnit(medicationRequest.getMaxDose());
/**
* 处理药品发放信息
*
* @param medicationRequest 药品请求信息
* @param dbOpType db操作类型
* @return 发放id
*/
@Override
public Long handleMedicationDispense(MedicationRequest medicationRequest, String dbOpType) {
MedicationDispense medicationDispense = new MedicationDispense();
// 药品发放id
medicationDispense.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_DIS_NO.getPrefix(), 4));
// 药品发放状态
medicationDispense.setStatusEnum(DispenseStatus.DRAFT.getValue());
// 状态变更时间
medicationDispense.setStatusChangedTime(DateUtils.getNowDate());
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 增加2小时
LocalDateTime newTime = now.plusHours(2);
// 转换为Date对象如果需要保持使用Date类型
Date limitTime = Date.from(newTime.atZone(ZoneId.systemDefault()).toInstant());
// 设置限制发药时间
medicationDispense.setLimitTime(limitTime);
// 【关键修改】设置创建时间,解决数据库 not-null 报错
medicationDispense.setCreateTime(DateUtils.getNowDate());
baseMapper.insert(medicationDispense);
// 发药类型
medicationDispense.setDispenseEnum(medicationRequest.getCategoryEnum());
// 药品编码
medicationDispense.setMedicationId(medicationRequest.getMedicationId());
// 请求数量
medicationDispense.setQuantity(medicationRequest.getQuantity());
// 请求单位编码
medicationDispense.setUnitCode(medicationRequest.getUnitCode());
// 产品批号
medicationDispense.setLotNumber(medicationRequest.getLotNumber());
// 患者id
medicationDispense.setPatientId(medicationRequest.getPatientId());
// 就诊id
medicationDispense.setEncounterId(medicationRequest.getEncounterId());
// 支持用药信息
medicationDispense.setSupportInfo(medicationRequest.getSupportInfo());
// 发药人
medicationDispense.setPractitionerId(medicationRequest.getPractitionerId());
// 发放药房
medicationDispense.setLocationId(medicationRequest.getPerformLocation());
// 药品请求id
medicationDispense.setMedReqId(medicationRequest.getId());
// 已发药数量
medicationDispense.setDispenseQuantity(BigDecimal.ZERO);
// 用法
medicationDispense.setMethodCode(medicationRequest.getMethodCode());
// 用药频次
medicationDispense.setFrequencyCode(medicationRequest.getRateCode());
// 单次剂量
medicationDispense.setDose(medicationRequest.getDose());
// 剂量单位
medicationDispense.setDoseUnitCode(medicationRequest.getDoseUnitCode());
// 单次最大剂量
medicationDispense.setMaxUnit(medicationRequest.getMaxDose());
// if (DbOpType.INSERT.getCode().equals(dbOpType)) {
// baseMapper.insert(medicationDispense);
// } else if (DbOpType.UPDATE.getCode().equals(dbOpType)) {
// baseMapper.update(medicationDispense, new LambdaUpdateWrapper<MedicationDispense>()
// .eq(MedicationDispense::getMedReqId, medicationRequest.getId()));
// }
return medicationDispense.getId();
}
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 增加2小时
LocalDateTime newTime = now.plusHours(2);
// 转换为Date对象
Date limitTime = Date.from(newTime.atZone(ZoneId.systemDefault()).toInstant());
// 设置限制发药时间
medicationDispense.setLimitTime(limitTime);
/**
* 医嘱执行生成药品发放,状态为待配药
*
* @param medicationRequest 药品医嘱请求
* @param procedureId 执行记录id
* @param plannedDispenseTime 预定发药时间
* @return 发放id
*/
@Override
public Long generateMedicationDispense(MedicationRequest medicationRequest, Long procedureId,
Date plannedDispenseTime) {
MedicationDispense medicationDispense = new MedicationDispense();
// 执行id
medicationDispense.setProcedureId(procedureId);
// 预定发药时间
medicationDispense.setPlannedDispenseTime(plannedDispenseTime);
// 药品发放id
medicationDispense.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_DIS_NO.getPrefix(), 4));
// 药品发放状态
medicationDispense.setStatusEnum(DispenseStatus.PREPARATION.getValue());
// 状态变更时间
medicationDispense.setStatusChangedTime(DateUtils.getNowDate());
// 发药类型
medicationDispense.setDispenseEnum(medicationRequest.getCategoryEnum());
// 药品编码
medicationDispense.setMedicationId(medicationRequest.getMedicationId());
// 请求数量
medicationDispense.setQuantity(medicationRequest.getQuantity());
// 请求单位编码
medicationDispense.setUnitCode(medicationRequest.getUnitCode());
// 产品批号
medicationDispense.setLotNumber(medicationRequest.getLotNumber());
// 患者id
medicationDispense.setPatientId(medicationRequest.getPatientId());
// 就诊id
medicationDispense.setEncounterId(medicationRequest.getEncounterId());
// 支持用药信息
medicationDispense.setSupportInfo(medicationRequest.getSupportInfo());
// 发药人
medicationDispense.setPractitionerId(medicationRequest.getPractitionerId());
// 发放药房
medicationDispense.setLocationId(medicationRequest.getPerformLocation());
// 药品请求id
medicationDispense.setMedReqId(medicationRequest.getId());
// 已发药数量
medicationDispense.setDispenseQuantity(BigDecimal.ZERO);
// 用法
medicationDispense.setMethodCode(medicationRequest.getMethodCode());
// 用药频次
medicationDispense.setFrequencyCode(medicationRequest.getRateCode());
// 单次剂量
medicationDispense.setDose(medicationRequest.getDose());
// 剂量单位
medicationDispense.setDoseUnitCode(medicationRequest.getDoseUnitCode());
// 单次最大剂量
medicationDispense.setMaxUnit(medicationRequest.getMaxDose());
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 增加12小时
LocalDateTime newTime = now.plusHours(12);
// 转换为Date对象如果需要保持使用Date类型
Date limitTime = Date.from(newTime.atZone(ZoneId.systemDefault()).toInstant());
// 设置限制发药时间
medicationDispense.setLimitTime(limitTime);
// 【关键修改】手动设置租户ID和创建人确保 create_by 非空
try {
// 尝试获取当前登录用户
medicationDispense.setTenantId(SecurityUtils.getLoginUser().getTenantId());
medicationDispense.setCreateBy(SecurityUtils.getUsername());
} catch (Exception e) {
// 如果获取失败(如系统自动执行),使用默认值兜底,防止数据库报错
medicationDispense.setTenantId(1);
medicationDispense.setCreateBy("system");
}
baseMapper.insert(medicationDispense);
// 执行插入
// 注意:如果您需要区分新增和修改,请取消下面注释并根据 dbOpType 判断
// if (DbOpType.UPDATE.getCode().equals(dbOpType)) {
// baseMapper.update(medicationDispense, new LambdaUpdateWrapper<MedicationDispense>()
// .eq(MedicationDispense::getMedReqId, medicationRequest.getId()));
// } else {
baseMapper.insert(medicationDispense);
// }
return medicationDispense.getId();
}
return medicationDispense.getId();
}
/**
* 删除药品发放信息
*
* @param medReqId 药品请求id
*/
@Override
public void deleteMedicationDispense(Long medReqId) {
baseMapper.delete(new LambdaQueryWrapper<MedicationDispense>().eq(MedicationDispense::getMedReqId, medReqId));
}
/**
* 医嘱执行生成药品发放,状态为待配药
*
* @param medicationRequest 药品医嘱请求
* @param procedureId 执行记录id
* @param plannedDispenseTime 预定发药时间
* @return 发放id
*/
@Override
public Long generateMedicationDispense(MedicationRequest medicationRequest, Long procedureId,
Date plannedDispenseTime) {
MedicationDispense medicationDispense = new MedicationDispense();
// 执行id
medicationDispense.setProcedureId(procedureId);
// 预定发药时间
medicationDispense.setPlannedDispenseTime(plannedDispenseTime);
// 药品发放id
medicationDispense.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MEDICATION_DIS_NO.getPrefix(), 4));
// 药品发放状态
medicationDispense.setStatusEnum(DispenseStatus.PREPARATION.getValue());
// 状态变更时间
medicationDispense.setStatusChangedTime(DateUtils.getNowDate());
// 发药类型
medicationDispense.setDispenseEnum(medicationRequest.getCategoryEnum());
// 药品编码
medicationDispense.setMedicationId(medicationRequest.getMedicationId());
// 请求数量
medicationDispense.setQuantity(medicationRequest.getQuantity());
// 请求单位编码
medicationDispense.setUnitCode(medicationRequest.getUnitCode());
// 产品批号
medicationDispense.setLotNumber(medicationRequest.getLotNumber());
// 患者id
medicationDispense.setPatientId(medicationRequest.getPatientId());
// 就诊id
medicationDispense.setEncounterId(medicationRequest.getEncounterId());
// 支持用药信息
medicationDispense.setSupportInfo(medicationRequest.getSupportInfo());
// 发药人
medicationDispense.setPractitionerId(medicationRequest.getPractitionerId());
// 发放药房
medicationDispense.setLocationId(medicationRequest.getPerformLocation());
// 药品请求id
medicationDispense.setMedReqId(medicationRequest.getId());
// 已发药数量
medicationDispense.setDispenseQuantity(BigDecimal.ZERO);
// 用法
medicationDispense.setMethodCode(medicationRequest.getMethodCode());
// 用药频次
medicationDispense.setFrequencyCode(medicationRequest.getRateCode());
// 单次剂量
medicationDispense.setDose(medicationRequest.getDose());
// 剂量单位
medicationDispense.setDoseUnitCode(medicationRequest.getDoseUnitCode());
// 单次最大剂量
medicationDispense.setMaxUnit(medicationRequest.getMaxDose());
/**
* 更新未发放药品状态:停止发放
*
* @param medDisIdList 发放id列表
* @param refund 停止原因:退费
*/
@Override
public void updateStopDispenseStatus(List<Long> medDisIdList, Integer refund) {
baseMapper.update(
new MedicationDispense().setStatusEnum(DispenseStatus.STOPPED.getValue()).setNotPerformedReasonEnum(refund),
new LambdaUpdateWrapper<MedicationDispense>().in(MedicationDispense::getId, medDisIdList));
}
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 增加12小时
LocalDateTime newTime = now.plusHours(12);
// 转换为Date对象如果需要保持使用Date类型
Date limitTime = Date.from(newTime.atZone(ZoneId.systemDefault()).toInstant());
// 设置限制发药时间
medicationDispense.setLimitTime(limitTime);
// 手动设置租户ID和创建人
try {
medicationDispense.setTenantId(SecurityUtils.getLoginUser().getTenantId());
medicationDispense.setCreateBy(SecurityUtils.getUsername());
} catch (Exception e) {
// 如果获取登录用户信息失败,使用默认值
medicationDispense.setTenantId(1); // 默认租户ID
medicationDispense.setCreateBy("system"); // 默认创建人
}
/**
* 更新药品状态:待配药
*
* @param medicationRequestIdList 请求id列表
*/
@Override
public void updatePreparationDispenseStatus(List<Long> medicationRequestIdList) {
baseMapper.update(null,
new LambdaUpdateWrapper<MedicationDispense>()
.set(MedicationDispense::getStatusEnum, DispenseStatus.PREPARATION.getValue())
.set(MedicationDispense::getStatusChangedTime, DateUtils.getNowDate())
.in(MedicationDispense::getMedReqId, medicationRequestIdList));
}
baseMapper.insert(medicationDispense);
/**
* 更新药品状态:暂停
*
* @param medReqIdList 请求id列表
*/
@Override
public void updateOnHoldDispenseStatus(List<Long> medReqIdList) {
baseMapper.update(null,
new LambdaUpdateWrapper<MedicationDispense>()
.set(MedicationDispense::getStatusEnum, DispenseStatus.ON_HOLD.getValue())
.set(MedicationDispense::getStatusChangedTime, DateUtils.getNowDate())
.in(MedicationDispense::getMedReqId, medReqIdList));
}
return medicationDispense.getId();
}
/**
* 验证是否发过药
*
* @param medicationDefId 药品定义id
* @return 验证结果
*/
@Override
public boolean verifyAbleEdit(Long medicationDefId) {
return baseMapper.exists(
new LambdaQueryWrapper<MedicationDispense>().eq(MedicationDispense::getMedicationId, medicationDefId)
.and(q -> q.eq(MedicationDispense::getStatusEnum, DispenseStatus.COMPLETED.getValue()).or()
.eq(MedicationDispense::getStatusEnum, DispenseStatus.REFUNDED.getValue()))
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode()));
}
/**
* 删除药品发放信息
*
* @param medReqId 药品请求id
*/
@Override
public void deleteMedicationDispense(Long medReqId) {
baseMapper.delete(new LambdaQueryWrapper<MedicationDispense>().eq(MedicationDispense::getMedReqId,
medReqId));
}
/**
* 通过请求id获取药品发放信息
*
* @param requestIdList 请求id
* @return 发放信息
*/
@Override
public List<MedicationDispense> selectByRequestIdList(List<Long> requestIdList) {
return baseMapper
.selectList(new LambdaQueryWrapper<MedicationDispense>().in(MedicationDispense::getMedReqId, requestIdList)
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode()));
}
/**
* 更新未发放药品状态:停止发放
*
* @param medDisIdList 发放id列表
* @param refund 停止原因:退费
*/
@Override
public void updateStopDispenseStatus(List<Long> medDisIdList, Integer refund) {
baseMapper.update(
new MedicationDispense().setStatusEnum(DispenseStatus.STOPPED.getValue())
.setNotPerformedReasonEnum(refund),
new LambdaUpdateWrapper<MedicationDispense>().in(MedicationDispense::getId,
medDisIdList));
}
/**
* 更新药品状态:已汇总
*
* @param medDispenseId 发放id列表
*/
@Override
public void updateDispenseStatusSummarized(List<Long> medDispenseId, String busNo) {
baseMapper.update(null,
new LambdaUpdateWrapper<MedicationDispense>()
.set(MedicationDispense::getStatusEnum, DispenseStatus.SUMMARIZED.getValue())
.set(MedicationDispense::getStatusChangedTime, DateUtils.getNowDate())
.set(MedicationDispense::getSummaryNo, busNo).in(MedicationDispense::getId, medDispenseId)
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode()));
}
/**
* 更新药品状态:待配药
*
* @param medicationRequestIdList 请求id列表
*/
@Override
public void updatePreparationDispenseStatus(List<Long> medicationRequestIdList) {
baseMapper.update(null,
new LambdaUpdateWrapper<MedicationDispense>()
.set(MedicationDispense::getStatusEnum,
DispenseStatus.PREPARATION.getValue())
.set(MedicationDispense::getStatusChangedTime, DateUtils.getNowDate())
.in(MedicationDispense::getMedReqId, medicationRequestIdList));
}
/**
* 通过执行id获取药品发放信息
*
* @param procedureIdList 执行id列表
* @return 发放信息
*/
@Override
public List<MedicationDispense> getMedDispenseByProcedureId(List<Long> procedureIdList) {
return baseMapper.selectList(
new LambdaQueryWrapper<MedicationDispense>().in(MedicationDispense::getProcedureId, procedureIdList)
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode()));
}
/**
* 更新药品状态:暂停
*
* @param medReqIdList 请求id列表
*/
@Override
public void updateOnHoldDispenseStatus(List<Long> medReqIdList) {
baseMapper.update(null,
new LambdaUpdateWrapper<MedicationDispense>()
.set(MedicationDispense::getStatusEnum,
DispenseStatus.ON_HOLD.getValue())
.set(MedicationDispense::getStatusChangedTime, DateUtils.getNowDate())
.in(MedicationDispense::getMedReqId, medReqIdList));
}
/**
* 取消汇总
*
* @param summaryNoList 汇总单号
* @return 取消结果
*/
@Override
public boolean cancelMedicationSummary(List<String> summaryNoList) {
int result = baseMapper.update(null,
new LambdaUpdateWrapper<MedicationDispense>()
.set(MedicationDispense::getStatusEnum, DispenseStatus.PREPARATION.getValue())
.set(MedicationDispense::getSummaryNo, null).in(MedicationDispense::getSummaryNo, summaryNoList)
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode()));
return result > 0;
}
/**
* 验证是否发过药
*
* @param medicationDefId 药品定义id
* @return 验证结果
*/
@Override
public boolean verifyAbleEdit(Long medicationDefId) {
return baseMapper.exists(
new LambdaQueryWrapper<MedicationDispense>()
.eq(MedicationDispense::getMedicationId, medicationDefId)
.and(q -> q.eq(MedicationDispense::getStatusEnum,
DispenseStatus.COMPLETED.getValue()).or()
.eq(MedicationDispense::getStatusEnum,
DispenseStatus.REFUNDED.getValue()))
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode()));
}
/**
* 更新药品发放状态
*
* @param dispenseIdList 发放id列表
* @param dispenseStatus 发放状态
*/
@Override
public void updateDispenseStatus(List<Long> dispenseIdList, Integer dispenseStatus) {
baseMapper.update(null,
new LambdaUpdateWrapper<MedicationDispense>().set(MedicationDispense::getStatusEnum, dispenseStatus)
.set(MedicationDispense::getStatusChangedTime, DateUtils.getNowDate())
.in(MedicationDispense::getId, dispenseIdList)
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode()));
}
/**
* 通过请求id获取药品发放信息
*
* @param requestIdList 请求id
* @return 发放信息
*/
@Override
public List<MedicationDispense> selectByRequestIdList(List<Long> requestIdList) {
return baseMapper
.selectList(new LambdaQueryWrapper<MedicationDispense>()
.in(MedicationDispense::getMedReqId, requestIdList)
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode()));
}
/**
* 通过汇总单号获取药品发放信息
*
* @param summaryNoList 汇总单号列表
* @return 发放信息
*/
@Override
public List<MedicationDispense> getMedDispenseBySummaryNo(List<String> summaryNoList) {
return baseMapper
.selectList(new LambdaQueryWrapper<MedicationDispense>().in(MedicationDispense::getSummaryNo, summaryNoList)
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode())
.eq(MedicationDispense::getStatusEnum, DispenseStatus.SUMMARIZED.getValue()));
}
/**
* 更新药品状态:已汇总
*
* @param medDispenseId 发放id列表
*/
@Override
public void updateDispenseStatusSummarized(List<Long> medDispenseId, String busNo) {
baseMapper.update(null,
new LambdaUpdateWrapper<MedicationDispense>()
.set(MedicationDispense::getStatusEnum,
DispenseStatus.SUMMARIZED.getValue())
.set(MedicationDispense::getStatusChangedTime, DateUtils.getNowDate())
.set(MedicationDispense::getSummaryNo, busNo)
.in(MedicationDispense::getId, medDispenseId)
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode()));
}
/**
* 通过执行id获取药品发放信息
*
* @param procedureIdList 执行id列表
* @return 发放信息
*/
@Override
public List<MedicationDispense> getMedDispenseByProcedureId(List<Long> procedureIdList) {
return baseMapper.selectList(
new LambdaQueryWrapper<MedicationDispense>()
.in(MedicationDispense::getProcedureId, procedureIdList)
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode()));
}
/**
* 取消汇总
*
* @param summaryNoList 汇总单号
* @return 取消结果
*/
@Override
public boolean cancelMedicationSummary(List<String> summaryNoList) {
int result = baseMapper.update(null,
new LambdaUpdateWrapper<MedicationDispense>()
.set(MedicationDispense::getStatusEnum,
DispenseStatus.PREPARATION.getValue())
.set(MedicationDispense::getSummaryNo, null)
.in(MedicationDispense::getSummaryNo, summaryNoList)
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode()));
return result > 0;
}
/**
* 更新药品发放状态
*
* @param dispenseIdList 发放id列表
* @param dispenseStatus 发放状态
*/
@Override
public void updateDispenseStatus(List<Long> dispenseIdList, Integer dispenseStatus) {
baseMapper.update(null,
new LambdaUpdateWrapper<MedicationDispense>()
.set(MedicationDispense::getStatusEnum, dispenseStatus)
.set(MedicationDispense::getStatusChangedTime, DateUtils.getNowDate())
.in(MedicationDispense::getId, dispenseIdList)
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode()));
}
/**
* 通过汇总单号获取药品发放信息
*
* @param summaryNoList 汇总单号列表
* @return 发放信息
*/
@Override
public List<MedicationDispense> getMedDispenseBySummaryNo(List<String> summaryNoList) {
return baseMapper
.selectList(new LambdaQueryWrapper<MedicationDispense>()
.in(MedicationDispense::getSummaryNo, summaryNoList)
.eq(MedicationDispense::getDeleteFlag, DelFlag.NO.getCode())
.eq(MedicationDispense::getStatusEnum,
DispenseStatus.SUMMARIZED.getValue()));
}
}

View File

@@ -77,6 +77,9 @@ public class DeviceDispenseServiceImpl extends ServiceImpl<DeviceDispenseMapper,
deviceDispense.setDispenseQuantity(BigDecimal.ZERO);
// 发药频次
deviceDispense.setDispenseFrequencyCode(deviceRequest.getRateCode());
// 设置租户id
LoginUser loginUser = getLoginUser();
deviceDispense.setTenantId(loginUser.getTenantId());
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
@@ -150,6 +153,9 @@ public class DeviceDispenseServiceImpl extends ServiceImpl<DeviceDispenseMapper,
deviceDispense.setDispenseQuantity(BigDecimal.ZERO);
// 发药频次
deviceDispense.setDispenseFrequencyCode(deviceRequest.getRateCode());
// 设置租户id
LoginUser loginUser = getLoginUser();
deviceDispense.setTenantId(loginUser.getTenantId());
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
@@ -230,6 +236,9 @@ public class DeviceDispenseServiceImpl extends ServiceImpl<DeviceDispenseMapper,
deviceDispense.setDispenseTime(now);
// id
deviceDispense.setId(null);
// 设置租户id
LoginUser currentLoginUser = getLoginUser();
deviceDispense.setTenantId(currentLoginUser.getTenantId());
// 新增器材发放
baseMapper.insert(deviceDispense);
@@ -397,6 +406,8 @@ public class DeviceDispenseServiceImpl extends ServiceImpl<DeviceDispenseMapper,
// todo 存疑,是否用请求人作为发药人
LoginUser loginUser = getLoginUser();
deviceDispense.setPerformerId(loginUser.getPractitionerId());
// 设置租户id
deviceDispense.setTenantId(loginUser.getTenantId());
// 发放器材房
deviceDispense.setLocationId(locationId);
// 支持用药信息