| | |
| | | package com.smartor.service.impl; |
| | | |
| | | import com.ruoyi.common.exception.base.BaseException; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.DtoConversionUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.smartor.domain.PatMaternityArchive; |
| | | import com.smartor.domain.PatMaternityArchiveDetail; |
| | | import com.smartor.mapper.PatMaternityArchiveMapper; |
| | | import com.smartor.service.IPatMaternityArchiveDetailService; |
| | | import com.smartor.service.IPatMaternityArchiveService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections4.CollectionUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | * @author ruoyi |
| | | * @date 2026-10-09 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | public class PatMaternityArchiveServiceImpl implements IPatMaternityArchiveService |
| | | { |
| | | @Autowired |
| | | private PatMaternityArchiveMapper patMaternityArchiveMapper; |
| | | |
| | | @Autowired |
| | | private IPatMaternityArchiveDetailService patMaternityArchiveDetailService; |
| | | |
| | | @Override |
| | | public PatMaternityArchive selectPatMaternityArchiveById(Long id) |
| | |
| | | { |
| | | return patMaternityArchiveMapper.deletePatMaternityArchiveById(id); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public int insertOrUpdateMaternityArchive(PatMaternityArchiveDetail patMaternityArchiveDetail) { |
| | | if (patMaternityArchiveDetail == null) { |
| | | log.error("insertOrUpdateMaternityArchive入参为空,请检查入参"); |
| | | throw new BaseException("妇科档案入参为空,请检查入参"); |
| | | } |
| | | |
| | | // 只传了详情id时,反查出对应的档案主键id,保证后续能正确更新主表 |
| | | if (patMaternityArchiveDetail.getId() != null && patMaternityArchiveDetail.getArchiveid() == null) { |
| | | PatMaternityArchiveDetail existDetail = patMaternityArchiveDetailService.selectPatMaternityArchiveDetailById(patMaternityArchiveDetail.getId()); |
| | | if (existDetail != null) { |
| | | patMaternityArchiveDetail.setArchiveid(existDetail.getArchiveid()); |
| | | } |
| | | } |
| | | |
| | | // 将详情中的公共字段复制到主表对象 |
| | | PatMaternityArchive patMaternityArchive = DtoConversionUtils.sourceToTarget(patMaternityArchiveDetail, PatMaternityArchive.class); |
| | | if (patMaternityArchive == null) { |
| | | throw new BaseException("妇科档案对象转换失败,请检查入参"); |
| | | } |
| | | // 防止把详情表id(patMaternityArchiveDetail.id)当作主表id,主表id必须以archiveid为准 |
| | | patMaternityArchive.setId(patMaternityArchiveDetail.getArchiveid()); |
| | | |
| | | // 主表:有id且库中存在则修改,否则新增 |
| | | if (patMaternityArchive.getId() != null |
| | | && patMaternityArchiveMapper.selectPatMaternityArchiveById(patMaternityArchive.getId()) != null) { |
| | | patMaternityArchive.setUpdateTime(DateUtils.getNowDate()); |
| | | patMaternityArchiveMapper.updatePatMaternityArchive(patMaternityArchive); |
| | | } else { |
| | | patMaternityArchive.setCreateTime(DateUtils.getNowDate()); |
| | | if (StringUtils.isEmpty(patMaternityArchive.getDelFlag())) { |
| | | patMaternityArchive.setDelFlag("0"); |
| | | } |
| | | patMaternityArchiveMapper.insertPatMaternityArchive(patMaternityArchive); |
| | | } |
| | | |
| | | // 回填主表id到详情,同步生成/更新详情表 |
| | | patMaternityArchiveDetail.setArchiveid(patMaternityArchive.getId()); |
| | | |
| | | Long detailId = patMaternityArchiveDetail.getId(); |
| | | if (detailId == null && patMaternityArchiveDetail.getArchiveid() != null) { |
| | | PatMaternityArchiveDetail query = new PatMaternityArchiveDetail(); |
| | | query.setArchiveid(patMaternityArchiveDetail.getArchiveid()); |
| | | List<PatMaternityArchiveDetail> existList = patMaternityArchiveDetailService.selectPatMaternityArchiveDetailList(query); |
| | | if (CollectionUtils.isNotEmpty(existList)) { |
| | | detailId = existList.get(0).getId(); |
| | | } |
| | | } |
| | | |
| | | if (detailId != null) { |
| | | patMaternityArchiveDetail.setId(detailId); |
| | | patMaternityArchiveDetailService.updatePatMaternityArchiveDetail(patMaternityArchiveDetail); |
| | | } else { |
| | | if (StringUtils.isEmpty(patMaternityArchiveDetail.getDelFlag())) { |
| | | patMaternityArchiveDetail.setDelFlag("0"); |
| | | } |
| | | patMaternityArchiveDetailService.insertPatMaternityArchiveDetail(patMaternityArchiveDetail); |
| | | } |
| | | |
| | | log.info("insertOrUpdateMaternityArchive处理完成,主表id:{},详情id:{}", patMaternityArchive.getId(), patMaternityArchiveDetail.getId()); |
| | | return patMaternityArchive.getId().intValue(); |
| | | } |
| | | } |