package com.smartor.service.impl; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUserDept; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.SecurityUtils; import com.smartor.domain.PatMedReq; import com.smartor.domain.PatMedRes; import com.smartor.mapper.SysUserDeptMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.smartor.mapper.PatMedOuthospMapper; import com.smartor.domain.PatMedOuthosp; import com.smartor.service.IPatMedOuthospService; import org.springframework.util.CollectionUtils; /** * 患者门诊记录Service业务层处理 * * @author smartor * @date 2023-03-04 */ @Service public class PatMedOuthospServiceImpl implements IPatMedOuthospService { @Autowired private PatMedOuthospMapper patMedOuthospMapper; @Autowired private SysUserDeptMapper sysUserDeptMapper; /** * 查询患者门诊记录 * * @param id 患者门诊记录主键 * @return 患者门诊记录 */ @Override public PatMedOuthosp selectPatMedOuthospById(Long id) { return patMedOuthospMapper.selectPatMedOuthospById(id); } /** * 查询患者门诊记录列表 * * @param patMedOuthosp 患者门诊记录 * @return 患者门诊记录 */ @Override public List selectPatMedOuthospList(PatMedOuthosp patMedOuthosp) { return patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp); } /** * 新增患者门诊记录 * * @param patMedOuthosp 患者门诊记录 * @return 结果 */ @Override public int insertPatMedOuthosp(PatMedOuthosp patMedOuthosp) { patMedOuthosp.setCreateTime(DateUtils.getNowDate()); patMedOuthosp.setUpdateTime(DateUtils.getNowDate()); return patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp); } /** * 修改患者门诊记录 * * @param patMedOuthosp 患者门诊记录 * @return 结果 */ @Override public int updatePatMedOuthosp(PatMedOuthosp patMedOuthosp) { patMedOuthosp.setUpdateTime(DateUtils.getNowDate()); return patMedOuthospMapper.updatePatMedOuthosp(patMedOuthosp); } /** * 批量删除患者门诊记录 * * @param ids 需要删除的患者门诊记录主键 * @return 结果 */ @Override public int deletePatMedOuthospByIds(Long[] ids) { return patMedOuthospMapper.deletePatMedOuthospByIds(ids); } /** * 删除患者门诊记录信息 * * @param id 患者门诊记录主键 * @return 结果 */ @Override public int deletePatMedOuthospById(Long id) { return patMedOuthospMapper.deletePatMedOuthospById(id); } @Override public PatMedRes selectPatMedOuthospCount(PatMedReq patMedReq) { // 获取当前登陆人的部门权限 if (CollectionUtils.isEmpty(patMedReq.getDeptcodeList())) { Long userId = SecurityUtils.getUserId(); List sysDepts = sysUserDeptMapper.selectDeptListByUserId(userId); List deptCode = new ArrayList<>(); for (SysDept sysDept : sysDepts) { deptCode.add(sysDept.getDeptId().toString()); } patMedReq.setDeptcodeList(deptCode); } return patMedOuthospMapper.selectPatMedOuthospCount(patMedReq); } @Override public PatMedOuthosp getDeptCodeByPatId(PatMedOuthosp patMedOuthosp) { List patMedOuthosps = selectPatMedOuthospList(patMedOuthosp); if (!CollectionUtils.isEmpty(patMedOuthosps)) { Collections.sort(patMedOuthosps, Comparator.comparing(PatMedOuthosp::getAdmitdate).reversed()); } return patMedOuthosps.get(0); } }