| | |
| | | import com.ruoyi.common.core.domain.entity.SysUserRole; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.http.HttpUtils; |
| | | import com.smartor.common.DistinctByProperty; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.mapper.*; |
| | | import com.smartor.service.IPatArchiveService; |
| | |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Slf4j |
| | | @Service |
| | |
| | | |
| | | private Boolean outHospitalDate(List<ServiceSLTDInhospResDTO> resultList) { |
| | | List<PatMedOuthosp> batchList = new ArrayList<>(); |
| | | |
| | | |
| | | for (ServiceSLTDInhospResDTO dto : resultList) { |
| | | if (Objects.isNull(dto)) { |
| | | continue; |
| | |
| | | PatMedOuthosp patMedOuthosp = buildPatMedOuthosp(dto, patArchive); |
| | | batchList.add(patMedOuthosp); |
| | | } |
| | | |
| | | |
| | | // 批量插入,自动忽略重复 |
| | | if (CollectionUtils.isNotEmpty(batchList)) { |
| | | try { |
| | | //这里用自动忽略重复会有问题,如果表重新建,serialnum索引会丢失。就无法去重,所以还是需要内存里去重 |
| | | batchList = DistinctByProperty.distinctByProperty(batchList, PatMedOuthosp::getSerialnum); |
| | | int insertCount = patMedOuthospMapper.batchInsertIgnore(batchList); |
| | | log.info("批量插入门急诊记录,总数:{}, 实际插入:{}", batchList.size(), insertCount); |
| | | |
| | | } catch (Exception e) { |
| | | log.error("批量插入门急诊记录失败", e); |
| | | // 降级为逐条插入 |