| | |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.DtoConversionUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.smartor.domain.PatChildArchive; |
| | | import com.smartor.domain.PatChildArchiveDetail; |
| | | import com.smartor.domain.PatMaternityArchive; |
| | | import com.smartor.domain.PatMaternityArchiveDetail; |
| | | import com.smartor.mapper.PatMaternityArchiveDetailMapper; |
| | | import com.smartor.mapper.PatMaternityArchiveMapper; |
| | | import com.smartor.service.IPatMaternityArchiveDetailService; |
| | | import com.smartor.service.IPatMaternityArchiveService; |
| | |
| | | |
| | | @Autowired |
| | | private IPatMaternityArchiveDetailService patMaternityArchiveDetailService; |
| | | @Autowired |
| | | private PatMaternityArchiveDetailMapper patMaternityArchiveDetailMapper; |
| | | |
| | | @Override |
| | | public PatMaternityArchive selectPatMaternityArchiveById(Long id) |
| | |
| | | throw new BaseException("妇科档案入参为空,请检查入参"); |
| | | } |
| | | |
| | | //保证同一就诊记录同一档案类型只能生成一条 |
| | | PatMaternityArchiveDetail patMaternityArchiveDetailVo = new PatMaternityArchiveDetail(); |
| | | patMaternityArchiveDetailVo.setOrgid(patMaternityArchiveDetail.getOrgid()); |
| | | patMaternityArchiveDetailVo.setPatid(patMaternityArchiveDetail.getPatid()); |
| | | patMaternityArchiveDetailVo.setOuthospno(patMaternityArchiveDetail.getOuthospno()); |
| | | patMaternityArchiveDetailVo.setInhospno(patMaternityArchiveDetail.getInhospno()); |
| | | patMaternityArchiveDetailVo.setArchiveType(patMaternityArchiveDetail.getArchiveType()); |
| | | List<PatMaternityArchiveDetail> patMaternityArchiveDetailOlds |
| | | = patMaternityArchiveDetailService.selectPatMaternityArchiveDetailList(patMaternityArchiveDetailVo); |
| | | |
| | | |
| | | if (StringUtils.isEmpty(patMaternityArchiveDetail.getOuthospno()) |
| | | && StringUtils.isEmpty(patMaternityArchiveDetail.getInhospno())) { |
| | | throw new BaseException("妇科档案入参门诊编号outhospno和住院编号inhospno不能同时为空"); |
| | | } |
| | | if (StringUtils.isEmpty(patMaternityArchiveDetail.getArchiveType())) { |
| | | throw new BaseException("妇科档案入参档案类型archiveType为空,请检查入参档案类型"); |
| | | } |
| | | |
| | | // 按业务键查详情 |
| | | PatMaternityArchiveDetail key = new PatMaternityArchiveDetail(); |
| | | key.setOrgid(patMaternityArchiveDetail.getOrgid()); |
| | | key.setPatid(patMaternityArchiveDetail.getPatid()); |
| | | key.setOuthospno(patMaternityArchiveDetail.getOuthospno()); |
| | | key.setInhospno(patMaternityArchiveDetail.getInhospno()); |
| | | key.setArchiveType(patMaternityArchiveDetail.getArchiveType()); |
| | | List<PatMaternityArchiveDetail> olds = |
| | | patMaternityArchiveDetailService.selectPatMaternityArchiveDetailList(key); |
| | | |
| | | Long existArchiveId = null; |
| | | Long existDetailId = null; |
| | | if (CollectionUtils.isNotEmpty(olds)) { |
| | | existArchiveId = olds.get(0).getArchiveid(); |
| | | existDetailId = olds.get(0).getId(); |
| | | } |
| | | |
| | | // 详情没查到,再兜底按同样键查主表,避免主表重复 |
| | | if (existArchiveId == null) { |
| | | PatMaternityArchive mainKey = new PatMaternityArchive(); |
| | | mainKey.setOrgid(patMaternityArchiveDetail.getOrgid()); |
| | | mainKey.setPatid(patMaternityArchiveDetail.getPatid()); |
| | | mainKey.setOuthospno(patMaternityArchiveDetail.getOuthospno()); |
| | | mainKey.setInhospno(patMaternityArchiveDetail.getInhospno()); |
| | | mainKey.setArchiveType(patMaternityArchiveDetail.getArchiveType()); |
| | | List<PatMaternityArchive> mainOlds = |
| | | patMaternityArchiveMapper.selectPatMaternityArchiveList(mainKey); |
| | | if (CollectionUtils.isNotEmpty(mainOlds)) { |
| | | existArchiveId = mainOlds.get(0).getId(); |
| | | } |
| | | } |
| | | patMaternityArchiveDetail.setArchiveid(existArchiveId); |
| | | |
| | | // 后面更新详情时,优先用业务键匹配到的 detail id |
| | | Long detailId = patMaternityArchiveDetail.getId(); |
| | | if (detailId == null) { |
| | | detailId = existDetailId; |
| | | } |
| | | |
| | | // 只传了详情id时,反查出对应的档案主键id,保证后续能正确更新主表 |
| | | if (patMaternityArchiveDetail.getId() != null && patMaternityArchiveDetail.getArchiveid() == null) { |
| | | PatMaternityArchiveDetail existDetail = patMaternityArchiveDetailService.selectPatMaternityArchiveDetailById(patMaternityArchiveDetail.getId()); |
| | | if (CollectionUtils.isNotEmpty(patMaternityArchiveDetailOlds)) { |
| | | PatMaternityArchiveDetail existDetail = patMaternityArchiveDetailOlds.get(0); |
| | | if (existDetail != null) { |
| | | patMaternityArchiveDetail.setArchiveid(existDetail.getArchiveid()); |
| | | } |
| | | } |
| | | |
| | | // 新增档案时补默认来源,更新时保留原来源 |
| | | if (existArchiveId == null && patMaternityArchiveDetail.getId() == null) { |
| | | if (StringUtils.isEmpty(patMaternityArchiveDetail.getSourceType())) { |
| | | patMaternityArchiveDetail.setSourceType("3"); |
| | | } |
| | | if (StringUtils.isEmpty(patMaternityArchiveDetail.getSourceBizNo())) { |
| | | patMaternityArchiveDetail.setSourceBizNo(StringUtils.isNotEmpty(patMaternityArchiveDetail.getOuthospno()) |
| | | ? patMaternityArchiveDetail.getOuthospno() : patMaternityArchiveDetail.getInhospno()); |
| | | } |
| | | } |
| | | |
| | |
| | | // 回填主表id到详情,同步生成/更新详情表 |
| | | patMaternityArchiveDetail.setArchiveid(patMaternityArchive.getId()); |
| | | |
| | | Long detailId = patMaternityArchiveDetail.getId(); |
| | | // Long detailId = patMaternityArchiveDetail.getId(); |
| | | if (detailId == null && patMaternityArchiveDetail.getArchiveid() != null) { |
| | | PatMaternityArchiveDetail query = new PatMaternityArchiveDetail(); |
| | | query.setArchiveid(patMaternityArchiveDetail.getArchiveid()); |