diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatCompareRecordExcelImportListener.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatCompareRecordExcelImportListener.java index 44ed565c6e..265d492107 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatCompareRecordExcelImportListener.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/excel/handler/IcNatCompareRecordExcelImportListener.java @@ -5,9 +5,6 @@ import com.alibaba.excel.read.listener.ReadListener; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; -import com.epmet.commons.tools.dto.result.YtHscyResDTO; -import com.epmet.commons.tools.dto.result.YtHsjcResDTO; -import com.epmet.commons.tools.dto.result.YtHsjcResDetailDTO; import com.epmet.commons.tools.enums.EnvEnum; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.ExceptionUtils; @@ -15,18 +12,17 @@ import com.epmet.commons.tools.exception.ValidateException; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.ObjectUtil; -import com.epmet.commons.tools.utils.YtHsResUtils; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.entity.IcNatCompareRecordEntity; import com.epmet.excel.data.IcNatCompareRecordExcelData; import com.epmet.service.impl.IcNatCompareRecordServiceImpl; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; /** * @Description @@ -60,16 +56,22 @@ public class IcNatCompareRecordExcelImportListener implements ReadListener args = new HashMap<>(); + args.put("idcard", data.getIdCard()); + List> hscyList = yantaiNamedParamLantuJdbcTemplate.queryForList( + "select id, name,card_no, create_time, realname from hscyxxb where card_no =:idcard order by create_time desc limit 1", args); + + if (CollectionUtils.isNotEmpty(hscyList) && MapUtils.isNotEmpty(hscyList.get(0))) { + // 存在 最近一条采样记录 + Map latestCyMap = hscyList.get(0); + String create_time = (String) latestCyMap.get("create_time"); + if (StringUtils.isBlank(create_time)) { + // 最近一次采样时间为空,说明这人好久不做核酸了 + compareRecordEntity.setInternalRemark("采样时间create_time is null"); + } else { + // 赋值采样时间 + compareRecordEntity.setLatestCyTime(DateUtils.parse(create_time, DateUtils.DATE_TIME_PATTERN)); + // 查询最后一次检测结果 + List> hsjcResultList = yantaiNamedParamLantuJdbcTemplate.queryForList( + "select name, telephone, card_no, test_time, SAMPLE_TIME, SAMPLE_RESULT_PCR, SAMPLING_ORG_PCR from hsjcxxb where card_no =:idcard order by test_time desc limit 1", args); + + if (CollectionUtils.isNotEmpty(hsjcResultList) && MapUtils.isNotEmpty(hsjcResultList.get(0))) { + Map latestJcMap = hsjcResultList.get(0); + // 采样时间 + String sample_time = (String) latestJcMap.get("SAMPLE_TIME"); + // 检测时间 + String test_time = (String) latestJcMap.get("test_time"); + // 核酸采样机构 + String sampling_org_pcr = (String) latestJcMap.get("SAMPLING_ORG_PCR"); + // 核酸检测结果 1:阳性,2:阴性 + String sample_result_pcr = (String) latestJcMap.get("SAMPLE_RESULT_PCR"); + // 联系地址 + String address = (String) latestJcMap.get("address"); + + // 最近一次采样时间,与最近一次检测结果的采样时间相比较 + if (compareRecordEntity.getLatestCyTime().equals(sample_time)) { + // 一致说明出结果了 + if (StringUtils.isNotBlank(test_time)) { + // 赋值最近一次核酸时间 + compareRecordEntity.setLatestNatTime(DateUtils.parse(test_time, DateUtils.DATE_TIME_PATTERN)); + } + // 赋值检测地点 + compareRecordEntity.setNatAddress(StringUtils.isNotBlank(sampling_org_pcr) ? sampling_org_pcr : StrConstant.EPMETY_STR); + + // 核酸检测结果 1:阳性,2:阴性 + if (NumConstant.ONE_STR.equals(sample_result_pcr)) { + // 检测结果(0:阴性 1:阳性):接口填入 + compareRecordEntity.setNatResult(NumConstant.ONE_STR); + } else if (NumConstant.TWO_STR.equals(sample_result_pcr)) { + compareRecordEntity.setNatResult(NumConstant.ZERO_STR); + } + compareRecordEntity.setContactAddress(StringUtils.isNotBlank(address) ? address : StrConstant.EPMETY_STR); + } else { + // 采样时间不一致,说明未出结果 + compareRecordEntity.setInternalRemark(String.format("采样时间不一致,采样视图最近一次采样时间:%s,检测结果视图的最近一次采样时间:%s", compareRecordEntity.getLatestCyTime(), sample_time)); + } + } else { + compareRecordEntity.setInternalRemark("最近一次检测结果为空"); + } + } + } else { + // 没有核酸采样记录 + compareRecordEntity.setInternalRemark("最近一次采样结果为空"); + } + } + datas.add(compareRecordEntity); + if (datas.size() == MAX_THRESHOLD) { execPersist(); } @@ -159,6 +265,7 @@ public class IcNatCompareRecordExcelImportListener implements ReadListener