diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/controller/EpidemicUserInfoController.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/controller/EpidemicUserInfoController.java index d04b5d7..d05f199 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/controller/EpidemicUserInfoController.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/controller/EpidemicUserInfoController.java @@ -122,4 +122,8 @@ public class EpidemicUserInfoController { return epidemicUserInfoService.updateAge(); } + @GetMapping("updateVacc") + public Result updateVaccination() { + return epidemicUserInfoService.updateVaccination(); + } } diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dao/EpidemicUserInfoDao.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dao/EpidemicUserInfoDao.java index be66877..4290db7 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dao/EpidemicUserInfoDao.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dao/EpidemicUserInfoDao.java @@ -125,7 +125,7 @@ public interface EpidemicUserInfoDao extends BaseDao { * @author zhy * @date 2021/4/30 10:06 */ - List selectAllUserInfo(); + List selectAllUserInfo(Map params); /** * 更新年龄信息 @@ -136,4 +136,5 @@ public interface EpidemicUserInfoDao extends BaseDao { * @date 2021/5/11 10:06 */ void updateUserAge(); + } \ No newline at end of file diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/EpidemicUserInfoService.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/EpidemicUserInfoService.java index a2221d0..1deedfd 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/EpidemicUserInfoService.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/EpidemicUserInfoService.java @@ -120,4 +120,14 @@ public interface EpidemicUserInfoService extends CrudService addErrorList = new ArrayList<>(); log.info("准备进入Excel数据导入循环"); - List allUserList = epidemicUserInfoDao.selectAllUserInfo(); + List allUserList = epidemicUserInfoDao.selectAllUserInfo(null); List allUserIdCards = allUserList.stream().map(EpidemicUserInfoEntity::getIdCard).collect(Collectors.toList()); EpidemicReportUserInfoAllExcel epidemicReportUserInfoAllExcel; diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoServiceImpl.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoServiceImpl.java index 7e396b8..6b5152d 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoServiceImpl.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.elink.esua.epdc.commons.mybatis.service.impl.CrudServiceImpl; import com.elink.esua.epdc.commons.tools.constant.Constant; +import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; @@ -15,7 +16,10 @@ import com.elink.esua.epdc.vaccine.common.uitls.ValidateUtils; import com.elink.esua.epdc.vaccine.epidemic.dao.EpidemicUserInfoDao; import com.elink.esua.epdc.vaccine.epidemic.dao.EpidemicUserInoutRecordDao; import com.elink.esua.epdc.vaccine.epidemic.dao.SelectAreaDao; -import com.elink.esua.epdc.vaccine.epidemic.dto.*; +import com.elink.esua.epdc.vaccine.epidemic.dto.EpidemicRecordDetailDTO; +import com.elink.esua.epdc.vaccine.epidemic.dto.EpidemicRecordListDTO; +import com.elink.esua.epdc.vaccine.epidemic.dto.EpidemicReportUserInfoDTO; +import com.elink.esua.epdc.vaccine.epidemic.dto.EpidemicUserInfoDTO; import com.elink.esua.epdc.vaccine.epidemic.dto.result.EpidemicPageResultDTO; import com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultDTO; import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity; @@ -23,6 +27,7 @@ import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInoutRecordEntity import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicReportUserInfoService; import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicUserInfoService; import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicUserInoutRecordService; +import com.elink.esua.epdc.vaccine.vim.dao.VaccinationInfoDao; import com.elink.esua.epdc.vaccine.vim.dto.VaccinationInfoDTO; import com.elink.esua.epdc.vaccine.vim.service.VaccinationInfoService; import lombok.extern.slf4j.Slf4j; @@ -33,10 +38,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * 疫情防控信息表 @@ -64,6 +67,8 @@ public class EpidemicUserInfoServiceImpl extends CrudServiceImpl params = new HashMap<>(); + params.put("vaccinationState", 2); + List allUserList = baseDao.selectAllUserInfo(params); + List allUserIdCards = allUserList.stream().map(EpidemicUserInfoEntity::getIdCard).collect(Collectors.toList()); + List allVaccinationInfoList = vaccinationInfoDao.selectAllVaccinationInfo(allUserIdCards); + + // 从所有未接种完成的用户中筛选接种状态和剂次与实际不匹配的用户进行更新 + allUserList.forEach(user -> { + String idCard = user.getIdCard(); + Optional vaccinationInfoOptional = allVaccinationInfoList.stream().filter(item -> idCard.equals(item.getIdentityNo())).findFirst(); + // 有接种记录的 + if (vaccinationInfoOptional.isPresent()) { + if (NumConstant.ZERO == user.getVaccinationState() || vaccinationInfoOptional.get().getDose().equals(user.getVaccinationNum())) { + EpidemicUserInfoDTO entity = new EpidemicUserInfoDTO(); + entity.setIdCard(idCard); + entity.setVaccinationNum(vaccinationInfoOptional.get().getDose()); + if (vaccinationInfoOptional.get().getDose().equals(vaccinationInfoOptional.get().getMaxDose())) { + entity.setVaccinationState(NumConstant.TWO); + } else { + entity.setVaccinationState(NumConstant.ONE); + } + baseDao.updateVaccinationInfo(entity); + } + } else { + // 没有接种记录的 + if (NumConstant.ONE == user.getVaccinationState()) { + EpidemicUserInfoDTO entity = new EpidemicUserInfoDTO(); + entity.setIdCard(idCard); + entity.setVaccinationNum(NumConstant.ZERO); + entity.setVaccinationState(NumConstant.ZERO); + baseDao.updateVaccinationInfo(entity); + } + + } + }); + return new Result<>(); + } + } diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dao/VaccinationInfoDao.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dao/VaccinationInfoDao.java index 5c87336..dbad100 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dao/VaccinationInfoDao.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dao/VaccinationInfoDao.java @@ -1,6 +1,7 @@ package com.elink.esua.epdc.vaccine.vim.dao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; +import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity; import com.elink.esua.epdc.vaccine.vim.dto.VaccinationInfoDTO; import com.elink.esua.epdc.vaccine.vim.dto.result.EpdcAppVimInfoResultDTO; import com.elink.esua.epdc.vaccine.vim.entity.VaccinationInfoEntity; @@ -49,6 +50,16 @@ public interface VaccinationInfoDao extends BaseDao { */ void deleteDistinctDose(@Param("deleteVaccArr") List deleteVaccArr); + /** + * 查询实际接种情况 + * + * @param idCards + * @return void + * @author zhy + * @date 2021/5/7 15:16 + */ + List selectAllVaccinationInfo(@Param("idCards") List idCards); + /** * 查询用户疫苗接种信息 * diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dto/VaccinationInfoDTO.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dto/VaccinationInfoDTO.java index b8a5bc6..8542ebe 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dto/VaccinationInfoDTO.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dto/VaccinationInfoDTO.java @@ -68,6 +68,8 @@ public class VaccinationInfoDTO implements Serializable { // @ApiModelProperty(value = "剂次,第几针") private Integer dose; + private Integer maxDose; + // @ApiModelProperty(value = "疫苗种类id") private Long vaccineId; diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationInfoServiceImpl.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationInfoServiceImpl.java index 4e06b38..2ac6afa 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationInfoServiceImpl.java +++ b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationInfoServiceImpl.java @@ -194,7 +194,7 @@ public class VaccinationInfoServiceImpl extends BaseVimCurdServiceImpl allUserList = epidemicUserInfoDao.selectAllUserInfo(); + List allUserList = epidemicUserInfoDao.selectAllUserInfo(null); List allUserIdCards = allUserList.stream().map(EpidemicUserInfoEntity::getIdCard).collect(Collectors.toList()); VaccinationInfoAllExcel epidemicReportUserInfoAllExcel; diff --git a/epdc-cloud-vim-yushan/src/main/resources/mapper/epidemic/EpidemicUserInfoDao.xml b/epdc-cloud-vim-yushan/src/main/resources/mapper/epidemic/EpidemicUserInfoDao.xml index cf6264f..45e0f15 100644 --- a/epdc-cloud-vim-yushan/src/main/resources/mapper/epidemic/EpidemicUserInfoDao.xml +++ b/epdc-cloud-vim-yushan/src/main/resources/mapper/epidemic/EpidemicUserInfoDao.xml @@ -334,11 +334,16 @@ @@ -355,4 +360,5 @@ AND REVISION = '0' AND LENGTH(ID_CARD) = 18 + \ No newline at end of file diff --git a/epdc-cloud-vim-yushan/src/main/resources/mapper/vim/VaccinationInfoDao.xml b/epdc-cloud-vim-yushan/src/main/resources/mapper/vim/VaccinationInfoDao.xml index bec7e52..3c6a07e 100644 --- a/epdc-cloud-vim-yushan/src/main/resources/mapper/vim/VaccinationInfoDao.xml +++ b/epdc-cloud-vim-yushan/src/main/resources/mapper/vim/VaccinationInfoDao.xml @@ -69,6 +69,24 @@ + +