Browse Source

更新接种信息按钮

feature/yujt_vim
zhangyuan 5 years ago
parent
commit
51cad7fa8b
  1. 4
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/controller/EpidemicUserInfoController.java
  2. 3
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dao/EpidemicUserInfoDao.java
  3. 10
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/EpidemicUserInfoService.java
  4. 2
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicReportUserInfoServiceImpl.java
  5. 55
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoServiceImpl.java
  6. 11
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dao/VaccinationInfoDao.java
  7. 2
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dto/VaccinationInfoDTO.java
  8. 2
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationInfoServiceImpl.java
  9. 8
      epdc-cloud-vim-yushan/src/main/resources/mapper/epidemic/EpidemicUserInfoDao.xml
  10. 18
      epdc-cloud-vim-yushan/src/main/resources/mapper/vim/VaccinationInfoDao.xml

4
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();
}
}

3
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<EpidemicUserInfoEntity> {
* @author zhy
* @date 2021/4/30 10:06
*/
List<EpidemicUserInfoEntity> selectAllUserInfo();
List<EpidemicUserInfoEntity> selectAllUserInfo(Map<String, Object> params);
/**
* 更新年龄信息
@ -136,4 +136,5 @@ public interface EpidemicUserInfoDao extends BaseDao<EpidemicUserInfoEntity> {
* @date 2021/5/11 10:06
*/
void updateUserAge();
}

10
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<EpidemicUserInfoEnt
*/
Result updateAge();
/**
* 更新接种信息
*
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author zhy
* @date 2021/5/11 11:08
*/
Result updateVaccination();
}

2
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicReportUserInfoServiceImpl.java

@ -280,7 +280,7 @@ public class EpidemicReportUserInfoServiceImpl extends CrudServiceImpl<EpidemicR
List<EpidemicReportUserInfoAllExcel> addErrorList = new ArrayList<>();
log.info("准备进入Excel数据导入循环");
List<EpidemicUserInfoEntity> allUserList = epidemicUserInfoDao.selectAllUserInfo();
List<EpidemicUserInfoEntity> allUserList = epidemicUserInfoDao.selectAllUserInfo(null);
List<String> allUserIdCards = allUserList.stream().map(EpidemicUserInfoEntity::getIdCard).collect(Collectors.toList());
EpidemicReportUserInfoAllExcel epidemicReportUserInfoAllExcel;

55
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<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<>();
}
}

11
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<VaccinationInfoEntity> {
*/
void deleteDistinctDose(@Param("deleteVaccArr") List<Long> deleteVaccArr);
/**
* 查询实际接种情况
*
* @param idCards
* @return void
* @author zhy
* @date 2021/5/7 15:16
*/
List<VaccinationInfoDTO> selectAllVaccinationInfo(@Param("idCards") List<String> idCards);
/**
* 查询用户疫苗接种信息
*

2
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;

2
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<Vaccinati
// 校验疫苗接种点
String siteName;
List<EpidemicUserInfoEntity> allUserList = epidemicUserInfoDao.selectAllUserInfo();
List<EpidemicUserInfoEntity> allUserList = epidemicUserInfoDao.selectAllUserInfo(null);
List<String> allUserIdCards = allUserList.stream().map(EpidemicUserInfoEntity::getIdCard).collect(Collectors.toList());
VaccinationInfoAllExcel epidemicReportUserInfoAllExcel;

8
epdc-cloud-vim-yushan/src/main/resources/mapper/epidemic/EpidemicUserInfoDao.xml

@ -334,11 +334,16 @@
<select id="selectAllUserInfo" resultType="com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity">
SELECT
ui.id,
ui.ID_CARD
ui.ID_CARD,
ui.VACCINATION_STATE,
ui.VACCINATION_NUM
FROM
epidemic_user_info ui
WHERE
ui.DEL_FLAG = '0'
<if test="vaccinationState!=null and vaccinationState!=''">
AND ui.VACCINATION_STATE != '2'
</if>
</select>
<update id="updateUserAge">
@ -355,4 +360,5 @@
AND REVISION = '0'
AND LENGTH(ID_CARD) = 18
</update>
</mapper>

18
epdc-cloud-vim-yushan/src/main/resources/mapper/vim/VaccinationInfoDao.xml

@ -69,6 +69,24 @@
</foreach>
</update>
<select id="selectAllVaccinationInfo" resultType="com.elink.esua.epdc.vaccine.vim.dto.VaccinationInfoDTO">
SELECT
COUNT(0) AS dose,
vi.IDENTITY_NO,
vi.COMPANY_ID,
max(vc.MAX_DOSE) AS MAX_DOSE
FROM
vaccination_info vi
LEFT JOIN vaccine_company vc ON vc.id = vi.COMPANY_ID
WHERE
vi.DEL_FLAG = '0'
AND vc.DEL_FLAG = '0'
AND IDENTITY_NO in
<foreach collection="idCards" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<resultMap id="userVimInfoResultMap" type="com.elink.esua.epdc.vaccine.vim.dto.result.EpdcAppVimInfoResultDTO">
<result column="USER_NAME" property="userName" />
<result column="ID_CARD" property="idCard" />

Loading…
Cancel
Save