MeiZhongYiHeServiceImpl.java 2.43 KB
package com.infoloop.tianting.service.impl;

import com.infoloop.tianting.model.dto.ClientLabelDTO.HisAllergy;
import com.infoloop.tianting.model.dto.ClientLabelDTO.HisMedicalAdviceDto;
import com.infoloop.tianting.service.MeiZhongYiHeService;
import com.infoloop.tianting.service.client.MeiZhongYiHeServiceClient;
import com.infoloop.tianting.utils.DateUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Slf4j
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class MeiZhongYiHeServiceImpl implements MeiZhongYiHeService {

  private final MeiZhongYiHeServiceClient meiZhongYiHeServiceClient;

  @Override
  public List<HisAllergy> getHisCustomerAllergiesByCustomerId(String hisCustomerId) {
    final var response = meiZhongYiHeServiceClient.getHisCustomerAllergiesByCustomerId(hisCustomerId);
    if (response.getCustomerAllergiesCount() == 0) {
      return new ArrayList<>();
    }
    return response.getCustomerAllergies(0).getAllergiesList().stream().map(allergy ->
        HisAllergy.builder()
            .allergyCode(allergy.getAllergyCode())
            .allergyDescription(allergy.getAllergyDescription())
            .allergyId(allergy.getAllergyId())
            .createdAt(DateUtil.formatDate(allergy.getCreatedAt()))
            .build()).collect(Collectors.toList());
  }

  @Override
  public List<HisMedicalAdviceDto> getHisCustomerMedicalAdvicesByContractNo(String contractNo){
    final var response = meiZhongYiHeServiceClient.getHisCustomerMedicalAdvicesByContractNo(
        contractNo);
    if (response.getCustomerMedicalAdvicesCount() == 0){
      return new ArrayList<>();
    }
    return response.getCustomerMedicalAdvices(0).getMedicalAdvicesList().stream().map(
        advice ->
        HisMedicalAdviceDto.builder()
            .connotation(advice.getConnotation())
            .effectDate(DateUtil.formatDate(advice.getEffectDate()))
            .medicalAdvice(advice.getMedicalAdvice())
            .medicalAdviceCode(advice.getMedicalAdviceCode())
            .medicalAdviceId(advice.getMedicalAdviceId())
            .medicalAdviceType(advice.getMedicalAdviceType())
            .medicalTime(DateUtil.formatDate(advice.getMedicalTime()))
            .build()
    ).collect(Collectors.toList());
  }

}