|
|
|
@ -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<EpidemicUserInf |
|
|
|
private EpidemicUserInoutRecordDao inoutRecordDao; |
|
|
|
@Resource |
|
|
|
public EpidemicUserInfoDao epidemicUserInfoDao; |
|
|
|
@Resource |
|
|
|
public VaccinationInfoDao vaccinationInfoDao; |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -466,4 +471,44 @@ public class EpidemicUserInfoServiceImpl extends CrudServiceImpl<EpidemicUserInf |
|
|
|
return new Result(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Result updateVaccination() { |
|
|
|
Map<String, Object> params = new HashMap<>(); |
|
|
|
params.put("vaccinationState", 2); |
|
|
|
List<EpidemicUserInfoEntity> allUserList = baseDao.selectAllUserInfo(params); |
|
|
|
List<String> allUserIdCards = allUserList.stream().map(EpidemicUserInfoEntity::getIdCard).collect(Collectors.toList()); |
|
|
|
List<VaccinationInfoDTO> allVaccinationInfoList = vaccinationInfoDao.selectAllVaccinationInfo(allUserIdCards); |
|
|
|
|
|
|
|
// 从所有未接种完成的用户中筛选接种状态和剂次与实际不匹配的用户进行更新
|
|
|
|
allUserList.forEach(user -> { |
|
|
|
String idCard = user.getIdCard(); |
|
|
|
Optional<VaccinationInfoDTO> 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<>(); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|