diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineDao.java index d4db61ad5b..55b4591be3 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineDao.java @@ -64,4 +64,12 @@ public interface IcVaccineDao extends BaseDao { IcVaccineDTO getVaccineDTO(@Param("customerId") String customerId, @Param("icVaccineId") String icVaccineId, @Param("idCard") String idCard, @Param("inoculateTime") String inoculateTime); + /** + * 根据身份证号以及接种时间查询接种信息 + * @param idCard + * @param time + * @return + */ + List getVaccineListByIdCard(@Param("idCard") String idCard,@Param("time") String time); + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineRelationDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineRelationDao.java index 60d80b3f61..6d087a1055 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineRelationDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcVaccineRelationDao.java @@ -14,4 +14,8 @@ import org.apache.ibatis.annotations.Param; @Mapper public interface IcVaccineRelationDao extends BaseDao { int delRelation(@Param("icVaccineId") String icNatId, @Param("agencyId") String agencyId); -} \ No newline at end of file + + void updateRelationInfoByVaccineId(IcVaccineRelationEntity icVaccineRelationEntity); + + +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccinePrarmeterServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccinePrarmeterServiceImpl.java index 83cb4a4f29..6c68f85c19 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccinePrarmeterServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccinePrarmeterServiceImpl.java @@ -22,16 +22,15 @@ import com.epmet.commons.tools.utils.ExcelPoiUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.IcResiUserDao; +import com.epmet.dao.IcVaccineDao; import com.epmet.dao.IcVaccinePrarmeterDao; +import com.epmet.dao.IcVaccineRelationDao; import com.epmet.dto.IcVaccinePrarmeterDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.GridInfoByNameResultDTO; import com.epmet.dto.result.IcHouseInfoCollectResultDTO; import com.epmet.dto.result.UploadImgResultDTO; -import com.epmet.entity.IcResiCollectEntity; -import com.epmet.entity.IcResiUserEntity; -import com.epmet.entity.IcUserChangeRecordEntity; -import com.epmet.entity.IcVaccinePrarmeterEntity; +import com.epmet.entity.*; import com.epmet.excel.IcVaccinePrarmeterImportExcel; import com.epmet.excel.error.IcVaccinePrarmeterImportErrorModel; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; @@ -40,6 +39,7 @@ import com.epmet.feign.OssFeignClient; import com.epmet.redis.IcVaccinePrarmeterRedis; import com.epmet.service.IcUserChangeRecordService; import com.epmet.service.IcVaccinePrarmeterService; +import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.fileupload.FileItem; @@ -57,6 +57,7 @@ import org.springframework.web.multipart.commons.CommonsMultipartFile; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.text.SimpleDateFormat; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -89,6 +90,12 @@ public class IcVaccinePrarmeterServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -447,31 +454,31 @@ public class IcVaccinePrarmeterServiceImpl extends BaseServiceImpl userMap = queryOriginUserByHomeId(icResiCollectEntity.getHomeId(),icResiCollectEntity.getCustomerId()); if(userIdCardEntity != null){ + icResiUserId = userIdCardEntity.getId(); // 已存在人员 if(userMap.containsKey(icResiCollectEntity.getIdCard())){ // 人员房屋一致(只更新人员信息) @@ -482,12 +489,135 @@ public class IcVaccinePrarmeterServiceImpl extends BaseServiceImpl icVaccineEntityFirstList = icVaccineDao.getVaccineListByIdCard(icResiCollectEntity.getIdCard(),sdf.format(firstDate)); + if(icVaccineEntityFirstList.size() > 0){ + // 更新疫苗接种记录 and 疫苗接种记录关系 + for(IcVaccineEntity entity : icVaccineEntityFirstList){ + updateVaccineInfo(entity,icResiCollectEntity); + + } + + }else{ + // 新增疫苗接种记录 and 疫苗接种记录关系 + insertVaccineInfo(icResiCollectEntity,icResiUserId,firstDate); + + } + + // 查询第二次接种信息 + List icVaccineEntitySecondList = icVaccineDao.getVaccineListByIdCard(icResiCollectEntity.getIdCard(),sdf.format(secondDate)); + if(icVaccineEntitySecondList.size() > 0){ + // 更新疫苗接种记录 and 疫苗接种记录关系 + for(IcVaccineEntity entity : icVaccineEntitySecondList){ + updateVaccineInfo(entity,icResiCollectEntity); + + } + + }else{ + // 新增疫苗接种记录 and 疫苗接种记录关系 + insertVaccineInfo(icResiCollectEntity,icResiUserId,firstDate); + + } + + // 查询第三次接种信息 + List icVaccineEntityThirdList = icVaccineDao.getVaccineListByIdCard(icResiCollectEntity.getIdCard(),sdf.format(thirdDate)); + if(icVaccineEntityThirdList.size() > 0){ + // 更新疫苗接种记录 and 疫苗接种记录关系 + for(IcVaccineEntity entity : icVaccineEntityThirdList){ + updateVaccineInfo(entity,icResiCollectEntity); + + } + + }else{ + // 新增疫苗接种记录 and 疫苗接种记录关系 + insertVaccineInfo(icResiCollectEntity,icResiUserId,firstDate); + + } + } + + /** + * 更新疫苗接种记录 and 疫苗接种记录关系 + * @param entity + * @param icResiCollectEntity + */ + private void updateVaccineInfo(IcVaccineEntity entity,IcVaccinePrarmeterEntity icResiCollectEntity){ + // 更新疫苗接种记录 + entity.setInoculateAddress(icResiCollectEntity.getFirstVacSite()); + entity.setUserType("prarmeter"); + entity.setCustomerId(icResiCollectEntity.getCustomerId()); + icVaccineDao.updateById(entity); + + // 更新疫苗接种记录关系 + IcVaccineRelationEntity icVaccineRelationEntity = new IcVaccineRelationEntity(); + icVaccineRelationEntity.setIcVaccineId(entity.getId()); + icVaccineRelationEntity.setUserType("prarmeter"); + icVaccineRelationEntity.setCustomerId(icResiCollectEntity.getCustomerId()); + icVaccineRelationDao.updateRelationInfoByVaccineId(icVaccineRelationEntity); + + } + + /** + * 新增疫苗接种记录 and 疫苗接种记录关系 + * @param icResiCollectEntity + * @param icResiUserId + * @param time + */ + private void insertVaccineInfo(IcVaccinePrarmeterEntity icResiCollectEntity,String icResiUserId,Date time){ + IcVaccineEntity icVaccineEntity = new IcVaccineEntity(); + icVaccineEntity.setCustomerId(icResiCollectEntity.getCustomerId()); + icVaccineEntity.setName(icResiCollectEntity.getName()); + icVaccineEntity.setMobile(icResiCollectEntity.getMobile()); + icVaccineEntity.setIdCard(icResiCollectEntity.getIdCard()); + icVaccineEntity.setIsResiUser("1"); + icVaccineEntity.setUserType("prarmeter"); + icVaccineEntity.setUserId(icResiUserId); + icVaccineEntity.setInoculateTime(time); + icVaccineEntity.setInoculateAddress(icResiCollectEntity.getFirstVacSite()); + icVaccineDao.insert(icVaccineEntity); + + // 新增关系 + IcVaccineRelationEntity icVaccineRelationEntity = new IcVaccineRelationEntity(); + icVaccineRelationEntity.setCustomerId(icResiCollectEntity.getCustomerId()); + icVaccineRelationEntity.setAgencyId(icResiCollectEntity.getAgencyId()); + icVaccineRelationEntity.setPids(icResiCollectEntity.getPids()); + icVaccineRelationEntity.setIcVaccineId(icVaccineEntity.getId()); + icVaccineRelationEntity.setUserType("prarmeter"); + icVaccineRelationDao.insert(icVaccineRelationEntity); + } + /** * 更新新冠病毒疫苗接种人员信息台账表房屋ID * @param icResiCollectEntity @@ -601,7 +731,7 @@ public class IcVaccinePrarmeterServiceImpl extends BaseServiceImpl + + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/IcVaccineRelationDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVaccineRelationDao.xml index 011c1c7de1..acaf54c95f 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/IcVaccineRelationDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/IcVaccineRelationDao.xml @@ -12,5 +12,10 @@ AND AGENCY_ID = #{agencyId} + + update ic_vaccine_relation + set CUSTOMER_ID = #{customerId},USER_TYPE = #{userType} + where IC_VACCINE_ID = #{icVaccineId} + - \ No newline at end of file +