Browse Source

1.核酸检测功能

2.疫苗接种
origin/epidemic_user
荣超 4 years ago
parent
commit
36d86513fb
  1. 2
      epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/controller/v2/PersonTestingV2Controller.java
  2. 67
      epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/PersonTestingServiceImpl.java
  3. 2
      epdc-cloud-custom/src/main/resources/application.yml
  4. 68
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/controller/v2/EpidemicUserInfoV2Controller.java
  5. 32
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dao/EpidemicUserInfoDao.java
  6. 82
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dto/EpidemicUserInfoDTOV2.java
  7. 66
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dto/result/EpidemicPageResultV2DTO.java
  8. 36
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dto/result/VaccinationInfoResultV2DTO.java
  9. 21
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/EpidemicUserInfoService.java
  10. 52
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoServiceImpl.java
  11. 21
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/controller/PopulationInformationController.java
  12. 14
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/dao/PopulationInformationDao.java
  13. 6
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/entity/PopulationInformationEntity.java
  14. 7
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/excel/BaseResidentInformationExcel.java
  15. 142
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/service/PopulationInformationService.java
  16. 5
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/service/impl/HousingInformationServiceImpl.java
  17. 69
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/service/impl/PopulationInformationServiceImpl.java
  18. 50
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/controller/v2/VaccinationInfoV2Controller.java
  19. 11
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dao/VaccinationInfoDao.java
  20. 110
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dto/VaccinationInfoV2DTO.java
  21. 19
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/VaccinationInfoService.java
  22. 37
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationInfoServiceImpl.java
  23. 472
      epdc-cloud-vim-yushan/src/main/resources/mapper/epidemic/EpidemicUserInfoDao.xml
  24. 100
      epdc-cloud-vim-yushan/src/main/resources/mapper/house/PopulationInformationDao.xml
  25. 13
      epdc-cloud-vim-yushan/src/main/resources/mapper/vim/VaccinationInfoDao.xml

2
epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/controller/v2/PersonTestingV2Controller.java

@ -74,7 +74,7 @@ public class PersonTestingV2Controller {
public Result save(@RequestBody PersonTestingDTO dto) throws ParseException {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
return personTestingService.saveScanningInfo(dto);
return personTestingService.saveScanningInfoV2(dto);
}
@PutMapping

67
epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/epidemic/service/impl/PersonTestingServiceImpl.java

@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.enums.UserSexEnum;
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;
import com.elink.esua.epdc.commons.tools.utils.Result;
@ -164,7 +165,7 @@ public class PersonTestingServiceImpl extends BaseServiceImpl<PersonTestingDao,
baseDao.deleteBatchIds(Arrays.asList(ids));
}
@Transactional
@Transactional(rollbackFor = {RuntimeException.class, Exception.class})
@Override
public Result saveScanningInfo(PersonTestingDTO dto) {
//检测时间
@ -176,7 +177,7 @@ public class PersonTestingServiceImpl extends BaseServiceImpl<PersonTestingDao,
PersonTestingEntity entity = ConvertUtils.sourceToTarget(dto, PersonTestingEntity.class);
Result<String> uploadResult = ossFeignClient.uploadBase64(form);
if (!uploadResult.success()) {
return new Result().error("上传图片错误");
throw new RenException("上传图片错误");
}
if (StringUtils.isNotBlank(uploadResult.getData())) {
entity.setImgUrl(uploadResult.getData());
@ -186,24 +187,26 @@ public class PersonTestingServiceImpl extends BaseServiceImpl<PersonTestingDao,
return new Result().ok("录入成功");
}
@Transactional
@Transactional(rollbackFor = {RuntimeException.class, Exception.class})
@Override
public Result saveScanningInfoV2(PersonTestingDTO dto) {
//检测时间
Date date = new Date();
dto.setTestingTime(date);
saveScanningInfoForUserV2(dto);
UploadFormDTO form = new UploadFormDTO();
form.setBase64String("data:image/png;base64," + dto.getImgCode());
PersonTestingEntity entity = ConvertUtils.sourceToTarget(dto, PersonTestingEntity.class);
Result<String> uploadResult = ossFeignClient.uploadBase64(form);
if (!uploadResult.success()) {
return new Result().error("上传图片错误");
}
if (StringUtils.isNotBlank(uploadResult.getData())) {
entity.setImgUrl(uploadResult.getData());
}
entity.setTestingTime(date);
if (StringUtils.isNotBlank(dto.getImgCode())) {
UploadFormDTO form = new UploadFormDTO();
form.setBase64String("data:image/png;base64," + dto.getImgCode());
Result<String> uploadResult = ossFeignClient.uploadBase64(form);
if (!uploadResult.success()) {
throw new RenException("上传图片错误");
}
if (StringUtils.isNotBlank(uploadResult.getData())) {
entity.setImgUrl(uploadResult.getData());
}
}
insert(entity);
return new Result().ok("录入成功");
}
@ -248,26 +251,6 @@ public class PersonTestingServiceImpl extends BaseServiceImpl<PersonTestingDao,
return new Result().ok("");
}
/**
* @return void
* @describe: 匹配到更新人员的核酸检测状态和最后一次核酸检测时间匹配不到用户新增一条人员信息
* @author rongchao
* @date 2021/8/26
* @params dto
*/
private void saveScanningInfoForUserV2(PersonTestingDTO dto) {
PopulationInformationEntity en = populationInformationDao.getInfoByIdentityNo(dto.getIdcard());
if (en != null) {
en.setCheckDate(dto.getTestingTime());
en.setCheckState("0");
populationInformationDao.updateById(en);
} else {
PopulationInformationEntity entity = new PopulationInformationEntity();
personTestingDTO2EpidemicUserInfoEntityTransfor(dto, entity);
populationInformationDao.insert(entity);
}
}
/**
* @return String
* @describe: 性别翻译器
@ -296,6 +279,26 @@ public class PersonTestingServiceImpl extends BaseServiceImpl<PersonTestingDao,
dDto.setCheckState("0");
}
/**
* @return void
* @describe: 匹配到更新人员的核酸检测状态和最后一次核酸检测时间匹配不到用户新增一条人员信息
* @author rongchao
* @date 2021/8/26
* @params dto
*/
private void saveScanningInfoForUserV2(PersonTestingDTO dto) {
PopulationInformationEntity en = populationInformationDao.getInfoByIdentityNo(dto.getIdcard());
if (en != null) {
en.setCheckDate(dto.getTestingTime());
en.setCheckState("0");
populationInformationDao.updateById(en);
} else {
PopulationInformationEntity entity = new PopulationInformationEntity();
personTestingDTO2EpidemicUserInfoEntityTransfor(dto, entity);
populationInformationDao.insert(entity);
}
}
/**
* 根据生日计算年龄
* dateStr 这样格式的生日 1990-01-01

2
epdc-cloud-custom/src/main/resources/application.yml

@ -74,7 +74,7 @@ mybatis-plus:
map-underscore-to-camel-case: true
cache-enabled: false
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
wx:
ma:

68
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/controller/v2/EpidemicUserInfoV2Controller.java

@ -0,0 +1,68 @@
package com.elink.esua.epdc.vaccine.epidemic.controller.v2;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import com.elink.esua.epdc.commons.api.version.ApiVersion;
import com.elink.esua.epdc.commons.tools.annotation.LogOperation;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
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.EpidemicPageResultV2DTO;
import com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultDTO;
import com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultV2DTO;
import com.elink.esua.epdc.vaccine.epidemic.excel.EpidecmicUserNewExcel;
import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicUserInfoService;
import com.elink.esua.epdc.vaccine.epidemic.service.impl.EpidemicUserInfoExportServer;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
* 疫情防控信息表
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0 2021-01-26
*/
@ApiVersion(2)
@RestController
@RequestMapping("epidemicuserinfo" + Constant.VERSION_CONTROL)
public class EpidemicUserInfoV2Controller {
@Autowired
private EpidemicUserInfoService epidemicUserInfoService;
/**
* @return io.pingyin.common.utils.Result<io.pingyin.common.page.PageData < io.pingyin.modules.epidemic.dto.result.EpidemicPageResultDTO>>
* @describe: 接种信息列表
* @author wangtong
* @date 2021/4/15 16:40
* @params [params]
*/
@GetMapping("getEpidemicPage")
public Result<PageData<EpidemicPageResultV2DTO>> getEpidemicPage(@RequestParam Map<String, Object> params) {
// 按人员录入时间倒序排列
PageData<EpidemicPageResultV2DTO> page = epidemicUserInfoService.getEpidemicPageV2(params);
return new Result<PageData<EpidemicPageResultV2DTO>>().ok(page);
}
@GetMapping("getinfo/{id}")
public Result<VaccinationInfoResultV2DTO> getinfo(@PathVariable("id") String id) {
VaccinationInfoResultV2DTO data = epidemicUserInfoService.getInfoV2(id);
return new Result<VaccinationInfoResultV2DTO>().ok(data);
}
}

32
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dao/EpidemicUserInfoDao.java

@ -6,7 +6,9 @@ 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.EpidemicUserInfoDTO;
import com.elink.esua.epdc.vaccine.epidemic.dto.result.EpidemicPageResultDTO;
import com.elink.esua.epdc.vaccine.epidemic.dto.result.EpidemicPageResultV2DTO;
import com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultDTO;
import com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultV2DTO;
import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -71,12 +73,12 @@ public interface EpidemicUserInfoDao extends BaseDao<EpidemicUserInfoEntity> {
EpidemicUserInfoEntity selectByIdCard(@Param("id") Long id);
/**
* @describe: 根据身份证号查询信息
* @author wangtong
* @date 2021/8/21 16:15
* @params [idCard]
* @return com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity
*/
* @return com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity
* @describe: 根据身份证号查询信息
* @author wangtong
* @date 2021/8/21 16:15
* @params [idCard]
*/
EpidemicUserInfoEntity selectInfoByIdCard(@Param("idCard") String idCard);
/**
@ -97,6 +99,15 @@ public interface EpidemicUserInfoDao extends BaseDao<EpidemicUserInfoEntity> {
*/
List<EpidemicPageResultDTO> getEpidemicPage(Map<String, Object> params);
/**
* @return List<EpidemicPageResultDTO>
* @describe: 接种信息列表
* @author rongchao
* @date 2021/8/30
* @params params
*/
List<EpidemicPageResultV2DTO> getEpidemicPageV2(Map<String, Object> params);
/**
* 查询接种信息
*
@ -107,6 +118,15 @@ public interface EpidemicUserInfoDao extends BaseDao<EpidemicUserInfoEntity> {
*/
VaccinationInfoResultDTO selectInfo(Long id);
/**
* @return VaccinationInfoResultDTO
* @describe: 查询接种信息
* @author rongchao
* @date 2021/8/31
* @params id
*/
VaccinationInfoResultV2DTO selectInfoV2(String id);
/**
* 查询异类接种信息
*

82
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dto/EpidemicUserInfoDTOV2.java

@ -0,0 +1,82 @@
package com.elink.esua.epdc.vaccine.epidemic.dto;
// import io.swagger.annotations.ApiModel;
// import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 疫情防控信息表
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0 2021-01-26
*/
@Data
// @ApiModel(value = "疫情防控信息表")
public class EpidemicUserInfoDTOV2 implements Serializable {
private static final long serialVersionUID = 1L;
// @ApiModelProperty(value = "主键")
private String id;
// @ApiModelProperty(value = "姓名")
private String userName;
// @ApiModelProperty(value = "身份证号")
private String idCard;
// @ApiModelProperty(value = "户籍地code")
private String householdRegisterCode;
// @ApiModelProperty(value = "户籍地名称")
private String householdRegisterName;
// @ApiModelProperty(value = "户籍地详细地址")
private String householdRegisterDetail;
// @ApiModelProperty(value = "乐观锁")
private Integer revision;
// @ApiModelProperty(value = "创建人")
private String createdBy;
// @ApiModelProperty(value = "创建时间")
private Date createdTime;
// @ApiModelProperty(value = "更新人")
private String updatedBy;
// @ApiModelProperty(value = "更新时间")
private Date updatedTime;
// @ApiModelProperty(value = "逻辑删除标识")
private String delFlag;
// @ApiModelProperty(value = "接种次数")
private Integer vaccinationNum;
// @ApiModelProperty(value = "接种状态")
private Integer vaccinationState;
// @ApiModelProperty(value = "是否接种")
private String isInoculate;
private Integer maxDose;
/**
* 县内居住地名称
*/
private String liveAddressName;
/**
* 社区/村庄
*/
private String community;
/**
* 网格名称
*/
private String gridName;
}

66
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dto/result/EpidemicPageResultV2DTO.java

@ -0,0 +1,66 @@
package com.elink.esua.epdc.vaccine.epidemic.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @author rongchao
* @since 2021/8/31
*/
@Data
public class EpidemicPageResultV2DTO implements Serializable {
/**
*
*/
private String id;
/**
* 姓名
*/
private String residentsName;
/**
* 性别
*/
private String residentsSex;
/**
* 手机号
*/
private String residentsPhone;
/**
* 身份证号
*/
private String residentsIdentityNo;
/**
*
*/
private String residentsNation;
/**
* 户籍
*/
private String householdRegistrationPlace;
/**
*
*/
private String helpStatus;
/**
* 出生年月
*/
private String residentsBirthday;
/**
*
*/
private String familyCategory;
/**
* 疫苗接种状态
*/
private String vaccinationState;
/**
* 疫苗接种次数
*/
private String vaccinationNum;
/**
* 房屋地址
*/
private String houseAddress;
}

36
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/dto/result/VaccinationInfoResultV2DTO.java

@ -0,0 +1,36 @@
package com.elink.esua.epdc.vaccine.epidemic.dto.result;
// import io.swagger.annotations.ApiModel;
// import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 接种信息
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0 2021-04-16
*/
@Data
public class VaccinationInfoResultV2DTO implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String residentsName;
private String residentsIdentityNo;
private String residentsPhone;
private String residentsSex;
private String residentsBirthday;
private Integer vaccinationNum;
private String vaccinationState;
private String companyId;
private String siteId;
private Integer dose;
private String batchNo;
}

21
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/EpidemicUserInfoService.java

@ -9,9 +9,12 @@ 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.EpidemicPageResultV2DTO;
import com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultDTO;
import com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultV2DTO;
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.VaccinationInfoV2DTO;
import java.util.List;
import java.util.Map;
@ -100,6 +103,15 @@ public interface EpidemicUserInfoService extends CrudService<EpidemicUserInfoEnt
*/
PageData<EpidemicPageResultDTO> getEpidemicPage(Map<String, Object> params);
/**
* @return PageData<EpidemicPageResultDTO>
* @describe: 接种信息列表
* @author rongchao
* @date 2021/8/30
* @params params
*/
PageData<EpidemicPageResultV2DTO> getEpidemicPageV2(Map<String, Object> params);
/**
* 查询接种信息
*
@ -110,6 +122,15 @@ public interface EpidemicUserInfoService extends CrudService<EpidemicUserInfoEnt
*/
VaccinationInfoResultDTO getInfo(Long id);
/**
* @return VaccinationInfoResultDTO
* @describe: 查询接种信息
* @author rongchao
* @date 2021/8/31
* @params id
*/
VaccinationInfoResultV2DTO getInfoV2(String id);
/**
* 更新年龄
*

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

@ -25,14 +25,19 @@ 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.EpidemicPageResultV2DTO;
import com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultDTO;
import com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultV2DTO;
import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity;
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.house.entity.PopulationInformationEntity;
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.dto.VaccinationInfoV2DTO;
import com.elink.esua.epdc.vaccine.vim.enums.VaccinationStateEnum;
import com.elink.esua.epdc.vaccine.vim.service.VaccinationInfoService;
import com.elink.esua.epdc.vaccine.vim.service.VaccinationUserRoleService;
import lombok.extern.slf4j.Slf4j;
@ -458,6 +463,32 @@ public class EpidemicUserInfoServiceImpl extends CrudServiceImpl<EpidemicUserInf
return page;
}
/**
* 获取分页对象
*
* @param params 分页查询参数
*/
protected IPage<EpidemicPageResultV2DTO> getEpiPageV2(Map<String, Object> params) {
//分页参数
long curPage = 1;
long limit = 10;
if (params.get(Constant.PAGE) != null) {
curPage = Long.parseLong((String) params.get(Constant.PAGE));
}
if (params.get(Constant.LIMIT) != null) {
limit = Long.parseLong((String) params.get(Constant.LIMIT));
}
//分页对象
Page<EpidemicPageResultV2DTO> page = new Page<>(curPage, limit);
//分页参数
params.put(Constant.PAGE, page);
return page;
}
@Override
public PageData<EpidemicPageResultDTO> getEpidemicPage(Map<String, Object> params) {
IPage<EpidemicPageResultDTO> page = getEpiPage(params);
@ -473,6 +504,21 @@ public class EpidemicUserInfoServiceImpl extends CrudServiceImpl<EpidemicUserInf
return new PageData<>(list, page.getTotal());
}
@Override
public PageData<EpidemicPageResultV2DTO> getEpidemicPageV2(Map<String, Object> params) {
IPage<EpidemicPageResultV2DTO> page = getEpiPageV2(params);
UserDetail user = SecurityUser.getUser();
if (user == null) {
throw new RenException("用户未登录");
}
Map<String, Object> authParams = vaccinationUserRoleService.getVaccinationAuthParams(user.getId());
params.putAll(authParams);
List<EpidemicPageResultV2DTO> list = baseDao.getEpidemicPageV2(params);
return new PageData<>(list, page.getTotal());
}
@Override
public VaccinationInfoResultDTO getInfo(Long id) {
VaccinationInfoResultDTO dto = baseDao.selectInfo(id);
@ -489,6 +535,12 @@ public class EpidemicUserInfoServiceImpl extends CrudServiceImpl<EpidemicUserInf
return dto;
}
@Override
public VaccinationInfoResultV2DTO getInfoV2(String id) {
VaccinationInfoResultV2DTO dto = baseDao.selectInfoV2(id);
return dto;
}
@Override
public Result updateAge() {
baseDao.updateUserAge();

21
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/controller/PopulationInformationController.java

@ -35,11 +35,13 @@ import com.elink.esua.epdc.dto.SysSimpleDictDTO;
import com.elink.esua.epdc.dto.house.form.SysPopulationSimpleDictFormDTO;
import com.elink.esua.epdc.dto.house.result.EpdcScreenResidentInfoByCurrentAddressResultDTO;
import com.elink.esua.epdc.vaccine.feign.VimAdminFeignClient;
import com.elink.esua.epdc.vaccine.house.entity.PopulationInformationEntity;
import com.elink.esua.epdc.vaccine.house.excel.EpdcScreenResidentInfoByCurrentAddressExcel;
import com.elink.esua.epdc.vaccine.house.excel.FamilyInformationExcel;
import com.elink.esua.epdc.vaccine.house.excel.PopulationInformationExcel;
import com.elink.esua.epdc.vaccine.house.excel.PopulationMotorVehicleExcel;
import com.elink.esua.epdc.vaccine.house.service.PopulationInformationService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -70,6 +72,12 @@ public class PopulationInformationController {
return new Result<PageData<PopulationInformationDTO>>().ok(page);
}
@GetMapping("pageV2")
public Result<PageData<PopulationInformationDTO>> pageV2(@RequestParam Map<String, Object> params) {
PageData<PopulationInformationDTO> page = populationInformationService.listPageV2(params);
return new Result<PageData<PopulationInformationDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<PopulationInformationDTO> get(@PathVariable("id") String id) {
PopulationInformationDTO populationInformationDTOS = populationInformationService.get(id);
@ -89,6 +97,19 @@ public class PopulationInformationController {
return populationInformationService.save(dto);
}
@PutMapping("updatePopulationInformation")
public Result updatePopulationInformation(@RequestBody PopulationInformationDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
PopulationInformationEntity entity = new PopulationInformationEntity();
BeanUtils.copyProperties(dto, entity);
boolean success = populationInformationService.updateById(entity);
if (success) {
return new Result();
}
return new Result().error();
}
@PutMapping
public Result update(@RequestBody PopulationInformationDTO dto) {
//效验数据

14
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/dao/PopulationInformationDao.java

@ -23,6 +23,7 @@ import com.elink.esua.epdc.dto.house.PopulationInformationDTO;
import com.elink.esua.epdc.dto.house.form.*;
import com.elink.esua.epdc.dto.house.result.*;
import com.elink.esua.epdc.vaccine.epidemic.dto.EpidemicUserInfoDTO;
import com.elink.esua.epdc.vaccine.epidemic.dto.EpidemicUserInfoDTOV2;
import com.elink.esua.epdc.vaccine.house.entity.PopulationInformationEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -54,7 +55,7 @@ public interface PopulationInformationDao extends BaseDao<PopulationInformationE
* @date 2021/8/27
* @params residentsIdentityNos
*/
List<EpidemicUserInfoDTO> selectListByIdentityNos(@Param("residentsIdentityNos") List<String> residentsIdentityNos);
List<EpidemicUserInfoDTOV2> selectListByIdentityNos(@Param("residentsIdentityNos") List<String> residentsIdentityNos);
/**
* @return com.elink.esua.epdc.dto.PopulationInformationDTO
@ -74,6 +75,15 @@ public interface PopulationInformationDao extends BaseDao<PopulationInformationE
**/
List<PopulationInformationDTO> selectListOfPopulationInformationDTO(Map<String, Object> params);
/**
* @return List<PopulationInformationDTO>
* @describe:
* @author rongchao
* @date 2021/8/28
* @params params
*/
List<PopulationInformationDTO> selectListOfPopulationInformationDTOV2(Map<String, Object> params);
/**
* @return java.util.List<com.elink.esua.epdc.dto.PopulationInformationDTO>
* @Description 人口信息详细列表
@ -244,4 +254,6 @@ public interface PopulationInformationDao extends BaseDao<PopulationInformationE
* @params entity
*/
void updatePersonInfo(PopulationInformationEntity entity);
PopulationInformationEntity checkCompleteInfo(@Param("idCard") String idCard, @Param("vaccinationState") Integer vaccinationState);
}

6
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/entity/PopulationInformationEntity.java

@ -142,6 +142,11 @@ public class PopulationInformationEntity extends BaseEpdcEntity {
*/
private String unemploymentRegister;
/**
* 特殊人群
*/
private String specialCrowd;
/**
* 失业登记时间
*/
@ -216,5 +221,4 @@ public class PopulationInformationEntity extends BaseEpdcEntity {
* 接种状态 0未接种 1接种中 2接种完成
*/
private Integer vaccinationState;
}

7
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/excel/BaseResidentInformationExcel.java

@ -32,13 +32,13 @@ public class BaseResidentInformationExcel {
@Excel(name = "户主身份证号码")
private String residentsIdentityNo;
@Excel(name = "与户主关系",replace = {"子女_0","夫妻_1","父母_2","其他_3"})
@Excel(name = "与户主关系", replace = {"子女_0", "夫妻_1", "父母_2", "其他_3"})
private String houseHeadRelation;
@Excel(name = "居住人姓名")
private String residentsName;
@Excel(name = "性别",replace = {"女_0","男_1"})
@Excel(name = "性别", replace = {"女_0", "男_1"})
private String residentsSex;
@Excel(name = "民族")
@ -47,6 +47,9 @@ public class BaseResidentInformationExcel {
@Excel(name = "现工作单位或学校")
private String currentEmployer;
@Excel(name = "居民身份证号码")
private String residentsFamilyIdentityNo;
@Excel(name = "现居住地")
private String currentAddress;

142
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/service/PopulationInformationService.java

@ -25,6 +25,8 @@ import com.elink.esua.epdc.dto.house.PopulationInformationDTO;
import com.elink.esua.epdc.dto.house.form.*;
import com.elink.esua.epdc.dto.house.result.*;
import com.elink.esua.epdc.vaccine.house.entity.PopulationInformationEntity;
import com.elink.esua.epdc.vaccine.vim.dto.VaccinationInfoV2DTO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@ -96,144 +98,169 @@ public interface PopulationInformationService extends BaseService<PopulationInfo
* @date 2020-08-19
*/
void delete(String[] ids);
/**
* @Description 根据房屋ID获取户主信息
* @return com.elink.esua.epdc.dto.PopulationInformationDTO
* @Description 根据房屋ID获取户主信息
* @Author songyunpeng
* @Date 2020/8/21
* @Date 2020/8/21
* @Param [id]
* @return com.elink.esua.epdc.dto.PopulationInformationDTO
**/
PopulationInformationDTO getHouseHeadInfo(String id);
/**
* @Description 根据身份证获取人口信息
* @return com.elink.esua.epdc.dto.PopulationInformationDTO
* @Description 根据身份证获取人口信息
* @Author songyunpeng
* @Date 2020/8/21
* @Date 2020/8/21
* @Param [residentsIdentityNo]
* @return com.elink.esua.epdc.dto.PopulationInformationDTO
**/
PopulationInformationEntity getInfoByIdentityNo(String residentsIdentityNo);
/**
* @Description 人口信息列表
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.PopulationInformationDTO>
* @Description 人口信息列表
* @Author songyunpeng
* @Date 2020/8/25
* @Date 2020/8/25
* @Param [params]
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.PopulationInformationDTO>
**/
PageData<PopulationInformationDTO> listPage(Map<String, Object> params);
/**
* @Description 获取机动车列表信息
* @return PageData<PopulationInformationDTO>
* @describe: 人口信息列表
* @author rongchao
* @date 2021/8/28
* @params params
*/
PageData<PopulationInformationDTO> listPageV2(Map<String, Object> params);
/**
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.PopulationInformationDTO>
* @Description 获取机动车列表信息
* @Author songyunpeng
* @Date 2020/8/26
* @Date 2020/8/26
* @Param [params]
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.PopulationInformationDTO>
**/
PageData<PopulationInformationDTO> motorVehiclePage(Map<String, Object> params);
/**
* @Description 获取机动车列表信息 --导出查询
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.PopulationInformationDTO>
* @Description 获取机动车列表信息 --导出查询
* @Author songyunpeng
* @Date 2020/8/26
* @Date 2020/8/26
* @Param [params]
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.PopulationInformationDTO>
**/
List<PopulationInformationDTO> motorVehicleList(Map<String, Object> params);
/**
* @Description 获取居民信息采集总览数据
* @return com.elink.esua.epdc.dto.PopulationInfoOverviewDTO
* @Description 获取居民信息采集总览数据
* @Author songyunpeng
* @Date 2020/8/28
* @Date 2020/8/28
* @Param []
* @return com.elink.esua.epdc.dto.PopulationInfoOverviewDTO
**/
PopulationInfoOverviewDTO getPopulationInfoOverview();
/**
* @Description 获取居民信息采集总览
* @return com.elink.esua.epdc.dto.PopulationInfoOverviewDTO
* @Description 获取居民信息采集总览
* @Author songyunpeng
* @Date 2021/6/23
* @Date 2021/6/23
* @Param [communityId]
* @return com.elink.esua.epdc.dto.PopulationInfoOverviewDTO
**/
PopulationInfoOverviewDTO getPopulationInfoOverviewForScreen(String communityId);
/**
* @Description 清空入党时间
* @return void
* @Description 清空入党时间
* @Author songyunpeng
* @Date 2020/9/4
* @Date 2020/9/4
* @Param [id]
* @return void
**/
void setJionTimeToNull(String id);
/**
* @Description 清空失业登记时间
* @return void
* @Description 清空失业登记时间
* @Author songyunpeng
* @Date 2020/9/4
* @Date 2020/9/4
* @Param [id]
* @return void
**/
void setUnemploymentRegisterTimeToNull(String id);
/**
* @Description 大屏找人接口
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.EpdcScreenSelectPeopleResultDTO>>
* @Description 大屏找人接口
* @Author songyunpeng
* @Date 2020/9/14
* @Date 2020/9/14
* @Param [epdcScreenSelectPeopleFormDTO]
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcScreenSelectPeopleResultDTO>>
**/
PageData<EpdcScreenSelectPeopleResultDTO> selectPeople(EpdcScreenSelectPeopleFormDTO epdcScreenSelectPeopleFormDTO);
/**
* @Description 大屏找人详情接口
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcScreenSelectPeopleDetailResultDTO>
* @Description 大屏找人详情接口
* @Author songyunpeng
* @Date 2020/9/14
* @Date 2020/9/14
* @Param [dto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcScreenSelectPeopleDetailResultDTO>
**/
Result<EpdcScreenSelectPeopleDetailResultDTO> selectPeopleDetail(EpdcScreenSelectPeopleDetailFormDTO dto);
/**
* @Description 房屋用途数据接口
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcScreenHouseUseResultDTO>
* @Description 房屋用途数据接口
* @Author songyunpeng
* @Date 2020/9/15
* @Date 2020/9/15
* @Param []
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcScreenHouseUseResultDTO>
**/
Result<EpdcScreenHouseUseResultDTO> housingUse();
/**
* @Description 网格排名
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcScreenGridRankingResultDTO>
* @Description 网格排名
* @Author songyunpeng
* @Date 2020/9/15
* @Date 2020/9/15
* @Param [dto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcScreenGridRankingResultDTO>
**/
PageData<EpdcScreenGridRankingResultDTO> gridRanking(EpdcScreenGridRankingFormDTO dto);
/**
* @Description 一人找房接口
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.epdc.result.EpdcScreenSelectPeopleResultDTO>
* @Description 一人找房接口
* @Author songyunpeng
* @Date 2020/9/19
* @Date 2020/9/19
* @Param [dto]
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.epdc.result.EpdcScreenSelectPeopleResultDTO>
**/
PageData<EpdcScreenHouseInfoByPeopleResultDTO> selectHouseByPeople(EpdcScreenHouseInfoByPeopleFormDTO dto);
/**
* @Description 以房找人接口
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.epdc.result.EpdcScreenPopulationInfoByHouseResultDTO>
* @Description 以房找人接口
* @Author songyunpeng
* @Date 2020/9/19
* @Date 2020/9/19
* @Param [dto]
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.epdc.result.EpdcScreenPopulationInfoByHouseResultDTO>
**/
PageData<EpdcScreenPopulationInfoByHouseResultDTO> selectPeopleByHouse(EpdcScreenPopulationInfoByHouseFormDTO dto);
/**
* @Description 以城找人
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.epdc.form.EpdcScreenResidentInfoByCurrentAddressFormDTO>
* @Description 以城找人
* @Author songyunpeng
* @Date 2020/9/19
* @Date 2020/9/19
* @Param [dto]
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.epdc.form.EpdcScreenResidentInfoByCurrentAddressFormDTO>
**/
PageData<EpdcScreenResidentInfoByCurrentAddressResultDTO> selectPeopleByCurrentAddress(EpdcScreenResidentInfoByCurrentAddressFormDTO dto);
/**
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcScreenResidentInfoByCurrentAddressResultDTO>
* @Description 以城找人 - pc
* @Author songyunpeng
* @Date 2021/1/4
* @Date 2021/1/4
* @Param [params]
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcScreenResidentInfoByCurrentAddressResultDTO>
**/
List<EpdcScreenResidentInfoByCurrentAddressResultDTO> selectPeopleByCurrentAddressForPc(Map<String, Object> params);
/**
* 以城找人 - pc导出
*
@ -243,12 +270,23 @@ public interface PopulationInformationService extends BaseService<PopulationInfo
* @date 2020-08-19
*/
List<EpdcScreenResidentInfoByCurrentAddressResultDTO> selectPeopleByCurrentAddressExportList(Map<String, Object> params);
/**
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcScreenResidentInfoByCurrentAddressResultDTO>
* @Description 以城找人 - pc - count
* @Author songyunpeng
* @Date 2021/1/4
* @Date 2021/1/4
* @Param [params]
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcScreenResidentInfoByCurrentAddressResultDTO>
**/
Integer selectCountPeopleByCurrentAddressForPc(Map<String, Object> params);
/**
* @return Result
* @describe:
* @author rongchao
* @date 2021/8/31
* @params dto
* @params methodFlag
*/
Result updateVaccinationInfo(VaccinationInfoV2DTO dto, boolean methodFlag);
}

5
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/service/impl/HousingInformationServiceImpl.java

@ -450,7 +450,7 @@ public class HousingInformationServiceImpl extends BaseServiceImpl<HousingInform
for (BaseResidentInformationExcel baseResidentInformationExcel : baseResidentInformationExcels) {
//插入居民信息
PopulationInformationEntity populationInformationEntity = ConvertUtils.sourceToTarget(baseResidentInformationExcel, PopulationInformationEntity.class);
populationInformationEntity.setResidentsIdentityNo(null);
populationInformationEntity.setResidentsIdentityNo(baseResidentInformationExcel.getResidentsFamilyIdentityNo());
populationInformationService.insert(populationInformationEntity);
//插入房屋人员关联关系表
HouseResidentEntity houseResidentEntity = ConvertUtils.sourceToTarget(baseResidentInformationExcel, HouseResidentEntity.class);
@ -506,10 +506,11 @@ public class HousingInformationServiceImpl extends BaseServiceImpl<HousingInform
//插入户主信息
PopulationInformationEntity populationInformationEntity = ConvertUtils.sourceToTarget(basePopulationInformationExcel, PopulationInformationEntity.class);
PopulationInformationEntity oldPopulationInformationEntity = populationInformationService.getInfoByIdentityNo(populationInformationEntity.getResidentsIdentityNo());
//校验户主信息
validateHouseHeadInfo(populationInformationEntity, basePopulationInformationExcel);
if (oldPopulationInformationEntity != null) {
//身份证在列表已存在,则更新户主信息
//身份证在列表已存在,则更新户主信息,所属辖区以最后一次更新为准
populationInformationEntity.setId(oldPopulationInformationEntity.getId());
populationInformationService.updateById(populationInformationEntity);
} else {

69
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/house/service/impl/PopulationInformationServiceImpl.java

@ -35,6 +35,7 @@ import com.elink.esua.epdc.dto.SysSimpleDictDTO;
import com.elink.esua.epdc.dto.house.*;
import com.elink.esua.epdc.dto.house.form.*;
import com.elink.esua.epdc.dto.house.result.*;
import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity;
import com.elink.esua.epdc.vaccine.feign.VimAdminFeignClient;
import com.elink.esua.epdc.vaccine.house.dao.HouseResidentDao;
import com.elink.esua.epdc.vaccine.house.dao.PopulationInformationDao;
@ -45,6 +46,9 @@ import com.elink.esua.epdc.vaccine.house.redis.PopulationInformationRedis;
import com.elink.esua.epdc.vaccine.house.service.HouseResidentService;
import com.elink.esua.epdc.vaccine.house.service.HousingInformationService;
import com.elink.esua.epdc.vaccine.house.service.PopulationInformationService;
import com.elink.esua.epdc.vaccine.vim.dto.VaccinationInfoV2DTO;
import com.elink.esua.epdc.vaccine.vim.enums.VaccinationStateEnum;
import com.elink.esua.epdc.vaccine.vim.service.VaccinationInfoService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -77,6 +81,8 @@ public class PopulationInformationServiceImpl extends BaseServiceImpl<Population
private HousingInformationService housingInformationService;
@Autowired
private VimAdminFeignClient adminFeignClient;
@Autowired
private VaccinationInfoService vaccinationInfoService;
@Override
@ -286,6 +292,13 @@ public class PopulationInformationServiceImpl extends BaseServiceImpl<Population
return new PageData<>(list, page.getTotal());
}
@Override
public PageData<PopulationInformationDTO> listPageV2(Map<String, Object> params) {
IPage<PopulationInformationDTO> page = getPage(params);
List<PopulationInformationDTO> list = baseDao.selectListOfPopulationInformationDTOV2(params);
return new PageData<>(list, page.getTotal());
}
@Override
public PageData<PopulationInformationDTO> motorVehiclePage(Map<String, Object> params) {
IPage<PopulationInformationDTO> page = getPage(params);
@ -583,4 +596,60 @@ public class PopulationInformationServiceImpl extends BaseServiceImpl<Population
break;
}
}
@Override
public Result updateVaccinationInfo(VaccinationInfoV2DTO dto, boolean methodFlag) {
PopulationInformationEntity entity = new PopulationInformationEntity();
entity.setId(dto.getId());
entity.setResidentsIdentityNo(dto.getResidentsIdentityNo());
// 如果是新增和修改
if (methodFlag) {
// 如果是接种完成的记录,直接插入
if (dto.getVaccinationState() == 2) {
entity.setVaccinationNum(dto.getDose());
entity.setVaccinationState(dto.getVaccinationState());
} else {
// 否则先检查是否有接种完成的记录
PopulationInformationEntity completeInfo = baseDao.checkCompleteInfo(dto.getResidentsIdentityNo(), VaccinationStateEnum.VACCINATION_STATE_FINISH.state());
// 没有接种完成的记录需要继续查询最大接种剂次
if (completeInfo == null) {
// 检查最大剂次
completeInfo = baseDao.checkCompleteInfo(dto.getResidentsIdentityNo(), null);
if (completeInfo == null || completeInfo.getVaccinationNum() < dto.getDose()) {
// 如果没有接种记录或者接种记录的剂次小于本次,那么更新最新的状态
entity.setVaccinationNum(dto.getDose());
entity.setVaccinationState(dto.getVaccinationState());
} else {
// 有更大接种剂次记录,doNothing
}
} else {
// 有接种完成记录,doNothing
}
}
} else {
// 如果是删除操作
// 检查还有没有接种记录
int dose = dto.getDose();
dto.setDose(null);
int vaccinationNum = vaccinationInfoService.checkVaccinationV2(dto).size();
if (vaccinationNum > 0) {
// 如果还有接种记录那么就是接种中
// 虽然更新接种剂次为最大值-1,但实际上不一定能查到最大值-1条数据,数据不对应时需要补录
entity.setVaccinationNum(dose - 1);
entity.setVaccinationState(1);
} else {
// 如果库里没有接种记录了,直接归为未接种,数据需要补录
entity.setVaccinationNum(0);
entity.setVaccinationState(0);
}
}
int successNum = baseDao.updateById(entity);
if (successNum == 0) {
return new Result();
} else {
return new Result().error();
}
}
}

50
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/controller/v2/VaccinationInfoV2Controller.java

@ -0,0 +1,50 @@
package com.elink.esua.epdc.vaccine.vim.controller.v2;
import com.elink.esua.epdc.commons.api.version.ApiVersion;
import com.elink.esua.epdc.commons.tools.annotation.LogOperation;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.vaccine.vim.dto.VaccinationInfoDTO;
import com.elink.esua.epdc.vaccine.vim.dto.VaccinationInfoV2DTO;
import com.elink.esua.epdc.vaccine.vim.dto.result.EpdcAppVimInfoResultDTO;
import com.elink.esua.epdc.vaccine.vim.excel.VaccinationInfoExcel;
import com.elink.esua.epdc.vaccine.vim.service.VaccinationInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* 接种信息
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0 2021-04-16
*/
@ApiVersion(2)
@RestController
@RequestMapping("vaccinationinfo" + Constant.VERSION_CONTROL)
public class VaccinationInfoV2Controller {
@Autowired
private VaccinationInfoService vaccinationInfoService;
@PostMapping
@LogOperation("保存")
public Result save(@RequestBody VaccinationInfoV2DTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
return vaccinationInfoService.saveNewV2(dto);
}
}

11
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dao/VaccinationInfoDao.java

@ -2,6 +2,7 @@ package com.elink.esua.epdc.vaccine.vim.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.vaccine.vim.dto.VaccinationInfoDTO;
import com.elink.esua.epdc.vaccine.vim.dto.VaccinationInfoV2DTO;
import com.elink.esua.epdc.vaccine.vim.dto.result.EpdcAppVimInfoResultDTO;
import com.elink.esua.epdc.vaccine.vim.entity.VaccinationInfoEntity;
import org.apache.ibatis.annotations.Mapper;
@ -39,6 +40,16 @@ public interface VaccinationInfoDao extends BaseDao<VaccinationInfoEntity> {
*/
List<VaccinationInfoEntity> checkVaccination(VaccinationInfoDTO dto);
/**
* 检验接种情况
*
* @param dto
* @return java.util.List<com.elink.esua.epdc.vaccine.vim.entity.VaccinationInfoEntity>
* @author zhy
* @date 2021/4/22 18:35
*/
List<VaccinationInfoEntity> checkVaccinationV2(VaccinationInfoV2DTO dto);
/**
* 查询地址为空的记录
*

110
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/dto/VaccinationInfoV2DTO.java

@ -0,0 +1,110 @@
package com.elink.esua.epdc.vaccine.vim.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* 接种信息
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0 2021-04-16
*/
@Data
// @ApiModel(value = "接种信息")
public class VaccinationInfoV2DTO implements Serializable {
private static final long serialVersionUID = 1L;
// @ApiModelProperty(value = "ID")
private String id;
// @ApiModelProperty(value = "真实姓名")
private String residentsName;
// @ApiModelProperty(value = "身份证号")
private String residentsIdentityNo;
// @ApiModelProperty(value = "手机号")
private String residentsPhone;
// @ApiModelProperty(value = "性别(女性-0,男性-1)")
private String sex;
// @ApiModelProperty(value = "接种人县/区")
private String county;
// @ApiModelProperty(value = "接种人街道/乡镇")
private String street;
// @ApiModelProperty(value = "接种人街道/乡镇ID")
private String streetId;
// @ApiModelProperty(value = "接种人社区/村")
private String community;
// @ApiModelProperty(value = "接种人网格")
private String grid;
// @ApiModelProperty(value = "小区名称")
private String villageName;
// @ApiModelProperty(value = "住处(楼栋-单元-房间)")
private String dwellingPlace;
// @ApiModelProperty(value = "接种时间")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private String vaccinationTime;
// @ApiModelProperty(value = "接种时年龄")
private Integer age;
// @ApiModelProperty(value = "剂次,第几针")
private Integer dose;
private Integer maxDose;
// @ApiModelProperty(value = "疫苗种类id")
private Long vaccineId;
// @ApiModelProperty(value = "生产企业id")
private Long companyId;
private String company;
// @ApiModelProperty(value = "接种单位/地点ID")
private Long siteId;
private String site;
// @ApiModelProperty(value = "疫苗生成批次、批号")
private String batchNo;
// @ApiModelProperty(value = "接种状态")
private Integer vaccinationState;
// @ApiModelProperty(value = "删除标识 0:未删除,1:已删除")
private String delFlag;
// @ApiModelProperty(value = "乐观锁")
private Integer revision;
// @ApiModelProperty(value = "创建人")
private String createdBy;
// @ApiModelProperty(value = "创建时间")
private Date createdTime;
// @ApiModelProperty(value = "更新人")
private String updatedBy;
// @ApiModelProperty(value = "更新时间")
private Date updatedTime;
// @ApiModelProperty(value = "创建人姓名")
private String creatorName;
}

19
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/VaccinationInfoService.java

@ -4,6 +4,7 @@ package com.elink.esua.epdc.vaccine.vim.service;
import com.elink.esua.epdc.commons.mybatis.service.CrudService;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.vaccine.vim.dto.VaccinationInfoDTO;
import com.elink.esua.epdc.vaccine.vim.dto.VaccinationInfoV2DTO;
import com.elink.esua.epdc.vaccine.vim.dto.result.EpdcAppVimInfoResultDTO;
import com.elink.esua.epdc.vaccine.vim.entity.VaccinationInfoEntity;
import org.springframework.web.multipart.MultipartFile;
@ -29,6 +30,15 @@ public interface VaccinationInfoService extends CrudService<VaccinationInfoEntit
*/
List<VaccinationInfoEntity> checkVaccination(VaccinationInfoDTO dto);
/**
* @return List<VaccinationInfoEntity>
* @describe: 检验接种情况
* @author rongchao
* @date 2021/8/31
* @params dto
*/
List<VaccinationInfoEntity> checkVaccinationV2(VaccinationInfoV2DTO dto);
/**
* 获取接种信息
*
@ -59,6 +69,15 @@ public interface VaccinationInfoService extends CrudService<VaccinationInfoEntit
*/
Result saveNew(VaccinationInfoDTO dto);
/**
* @return Result
* @describe: 新增时增加校验
* @author rongchao
* @date 2021/8/31
* @params dto
*/
Result saveNewV2(VaccinationInfoV2DTO dto);
/**
* 更新时增加校验
*

37
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/vim/service/impl/VaccinationInfoServiceImpl.java

@ -19,15 +19,18 @@ import com.elink.esua.epdc.vaccine.epidemic.constant.StrConstant;
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.dto.EpidemicUserInfoDTO;
import com.elink.esua.epdc.vaccine.epidemic.dto.EpidemicUserInfoDTOV2;
import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity;
import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInoutRecordEntity;
import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicUserInfoService;
import com.elink.esua.epdc.vaccine.epidemic.utils.StreamUtils;
import com.elink.esua.epdc.vaccine.house.dao.PopulationInformationDao;
import com.elink.esua.epdc.vaccine.house.entity.PopulationInformationEntity;
import com.elink.esua.epdc.vaccine.house.service.PopulationInformationService;
import com.elink.esua.epdc.vaccine.vim.dao.VaccinationErrorDao;
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.dto.VaccinationInfoV2DTO;
import com.elink.esua.epdc.vaccine.vim.dto.result.EpdcAppVimInfoResultDTO;
import com.elink.esua.epdc.vaccine.vim.dto.result.VaccineDto;
import com.elink.esua.epdc.vaccine.vim.entity.VaccinationErrorEntity;
@ -77,6 +80,8 @@ public class VaccinationInfoServiceImpl extends BaseVimCurdServiceImpl<Vaccinati
private EpidemicUserInoutRecordDao epidemicUserInoutRecordDao;
@Autowired
private PopulationInformationDao populationInformationDao;
@Autowired
private PopulationInformationService populationInformationService;
@Override
@ -128,6 +133,11 @@ public class VaccinationInfoServiceImpl extends BaseVimCurdServiceImpl<Vaccinati
return baseDao.checkVaccination(dto);
}
@Override
public List<VaccinationInfoEntity> checkVaccinationV2(VaccinationInfoV2DTO dto) {
return baseDao.checkVaccinationV2(dto);
}
@Override
public boolean beforeDelete(VaccinationInfoDTO dto) {
VaccinationInfoDTO checkDto = new VaccinationInfoDTO();
@ -155,6 +165,24 @@ public class VaccinationInfoServiceImpl extends BaseVimCurdServiceImpl<Vaccinati
return new Result();
}
@Transactional(rollbackFor = {RenException.class, Exception.class})
@Override
public Result saveNewV2(VaccinationInfoV2DTO dto) {
// 剂次重复校验
if (checkVaccinationV2(dto).isEmpty()) {
dto.setId(null);
VaccinationInfoEntity entity = ConvertUtils.sourceToTarget(dto, VaccinationInfoEntity.class);
entity.setIdentityNo(dto.getResidentsIdentityNo());
entity.setRealName(dto.getResidentsName());
entity.setMobile(dto.getResidentsPhone());
baseDao.insert(entity);
populationInformationService.updateVaccinationInfo(dto, true);
} else {
return new Result().error("接种剂次重复");
}
return new Result();
}
@Override
public Result updateNew(VaccinationInfoDTO dto) {
// 剂次重复校验
@ -216,10 +244,8 @@ public class VaccinationInfoServiceImpl extends BaseVimCurdServiceImpl<Vaccinati
if (!idCards.isEmpty()) {
addressList = epidemicUserInoutRecordDao.getAddressInfo(idCards);
List<EpidemicUserInfoDTO> updateList = Lists.newArrayList();
// List<EpidemicUserInfoDTO> existUserList = epidemicUserInfoDao.selectByIdCards(idCards);
List<EpidemicUserInfoDTO> existUserList = populationInformationDao.selectListByIdentityNos(idCards);
for (EpidemicUserInfoDTO item : existUserList) {
List<EpidemicUserInfoDTOV2> existUserList = populationInformationDao.selectListByIdentityNos(idCards);
for (EpidemicUserInfoDTOV2 item : existUserList) {
if (null == item) {
continue;
}
@ -246,7 +272,6 @@ public class VaccinationInfoServiceImpl extends BaseVimCurdServiceImpl<Vaccinati
populationInformationDao.updatePersonInfo(updateDto);
}
}
log.info("实际需要更新的人员信息数量为:" + updateList.size());
}
return Boolean.TRUE;
// log.info("待处理人员数量为:" + idCards.size() + "||可用地址数量为" + addressList.size() + "||实际需要更新的人员信息数量为:" + updateList.size());
@ -478,7 +503,7 @@ public class VaccinationInfoServiceImpl extends BaseVimCurdServiceImpl<Vaccinati
}
// 插入接种数据
if (insertBatchVaccination(addList, addressList, deleteIdCardArr)) {
if (!insertBatchVaccination(addList, addressList, deleteIdCardArr)) {
throw new RenException("插入接种数据失败");
}

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

@ -20,8 +20,7 @@
<update id="updateByIdCard">
UPDATE epidemic_user_info
set DEL_FLAG = '1'
WHERE
ID_CARD = #{idCard}
WHERE ID_CARD = #{idCard}
</update>
<update id="updateVaccinationInfo">
UPDATE epidemic_user_info
@ -30,7 +29,7 @@
,VACCINATION_STATE = #{vaccinationState}
</if>
WHERE
ID_CARD = #{idCard}
ID_CARD = #{idCard}
</update>
<select id="getEpidemicUserRecordList" resultType="com.elink.esua.epdc.vaccine.epidemic.dto.EpidemicRecordListDTO">
select
@ -148,90 +147,86 @@
</if>
</select>
<select id="getDetailById" resultType="com.elink.esua.epdc.vaccine.epidemic.dto.EpidemicRecordDetailDTO">
SELECT
ui.USER_NAME,
ui.ID_CARD,
ui.HOUSEHOLD_REGISTER_CODE,
ui.HOUSEHOLD_REGISTER_NAME,
ui.HOUSEHOLD_REGISTER_DETAIL,
SELECT ui.USER_NAME,
ui.ID_CARD,
ui.HOUSEHOLD_REGISTER_CODE,
ui.HOUSEHOLD_REGISTER_NAME,
ui.HOUSEHOLD_REGISTER_DETAIL,
uir.ID,
uir.MOBILE,
CASE uir.RETURN_STATE
WHEN '1' THEN '1'
WHEN '2' THEN '2'
ELSE ''
END AS RETURN_STATE,
uir.LIVE_ADDRESS_CODE,
uir.LIVE_ADDRESS_NAME,
uir.LIVE_ADDRESS_DETAIL,
uir.ID,
uir.MOBILE,
CASE uir.RETURN_STATE
WHEN '1' THEN '1'
WHEN '2' THEN '2'
ELSE ''
END AS RETURN_STATE,
uir.LIVE_ADDRESS_CODE,
uir.LIVE_ADDRESS_NAME,
uir.LIVE_ADDRESS_DETAIL,
uir.RELATION_PEOPLE,
uir.RELATION_PEOPLE_MOBILE,
uir.OUT_LIVE_ADDRESS_CODE,
uir.OUT_LIVE_ADDRESS_NAME,
uir.OUT_LIVE_ADDRESS_DETAIL,
CASE uir.RISK_GRADE
WHEN '1' THEN '1'
WHEN '2' THEN '2'
WHEN '3' THEN '3'
ELSE ''
end as RISK_GRADE,
DATE_FORMAT(GO_BARK_TIME,'%Y-%m-%d %H:%i:%s') as GO_BARK_TIME,
uir.RELATION_PEOPLE,
uir.RELATION_PEOPLE_MOBILE,
uir.OUT_LIVE_ADDRESS_CODE,
uir.OUT_LIVE_ADDRESS_NAME,
uir.OUT_LIVE_ADDRESS_DETAIL,
CASE uir.RISK_GRADE
WHEN '1' THEN '1'
WHEN '2' THEN '2'
WHEN '3' THEN '3'
ELSE ''
end as RISK_GRADE,
DATE_FORMAT(GO_BARK_TIME, '%Y-%m-%d %H:%i:%s') as GO_BARK_TIME,
DATE_FORMAT(LEAVE_TIME,'%Y-%m-%d %H:%i:%s') as LEAVE_TIME,
uir.DESTINATION_ADDRESS_CODE,
uir.DESTINATION_ADDRESS_NAME,
uir.DESTINATION_ADDRESS_DETAIL,
DATE_FORMAT(LEAVE_TIME, '%Y-%m-%d %H:%i:%s') as LEAVE_TIME,
uir.DESTINATION_ADDRESS_CODE,
uir.DESTINATION_ADDRESS_NAME,
uir.DESTINATION_ADDRESS_DETAIL,
ui.GENDER,
ui.NATION,
ui.FORMER_NAME,
ui.BIRTHDAY,
ui.HEIGHT,
ui.STANDARD_OF_CULTURE,
ui.HEALTH,
ui.MARITAL_STATUS,
ui.RELATION,
ui.NATIONALITY,
ui.POLITICS_STATUS,
ui.FAITH,
ui.GRADUATE_SCHOOL,
ui.PROFESSIONAL,
ui.WORK_STATUS,
ui.INDUSTRY_CATEGORY,
ui.WORK_UNITS,
ui.MILITARY,
ui.PEOPLE_CATEGORIES,
ui.SPECIAL_CROWD,
ui.CAR,
ui.CAR_NO,
ui.HUSHAI_STATUS,
ui.NATIVE_PLACE,
ui.BLOOD_TYPE,
ui.GENDER,
ui.NATION,
ui.FORMER_NAME,
ui.BIRTHDAY,
ui.HEIGHT,
ui.STANDARD_OF_CULTURE,
ui.HEALTH,
ui.MARITAL_STATUS,
ui.RELATION,
ui.NATIONALITY,
ui.POLITICS_STATUS,
ui.FAITH,
ui.GRADUATE_SCHOOL,
ui.PROFESSIONAL,
ui.WORK_STATUS,
ui.INDUSTRY_CATEGORY,
ui.WORK_UNITS,
ui.MILITARY,
ui.PEOPLE_CATEGORIES,
ui.SPECIAL_CROWD,
ui.CAR,
ui.CAR_NO,
ui.HUSHAI_STATUS,
ui.NATIVE_PLACE,
ui.BLOOD_TYPE,
uir.COMMUNITY,
uir.GRID_NAME,
uir.PLOT,
uir.BUILDING_NO,
uir.UNIT,
uir.ROOM_NO,
uir.HOUSE_PROPERTY,
uir.FAMILY_SECURITY,
uir.LIVING_SITUATION
uir.COMMUNITY,
uir.GRID_NAME,
uir.PLOT,
uir.BUILDING_NO,
uir.UNIT,
uir.ROOM_NO,
uir.HOUSE_PROPERTY,
uir.FAMILY_SECURITY,
uir.LIVING_SITUATION
FROM `epidemic_user_inout_record` uir
left join epidemic_user_info ui on ui.ID_CARD=uir.ID_CARD and ui.DEL_FLAG='0'
where uir.ID=#{detailId,jdbcType=BIGINT}
FROM `epidemic_user_inout_record` uir
left join epidemic_user_info ui on ui.ID_CARD = uir.ID_CARD and ui.DEL_FLAG = '0'
where uir.ID = #{detailId,jdbcType=BIGINT}
</select>
<select id="selectByIdCard" resultMap="epidemicUserInfoMap">
SELECT
*
FROM
epidemic_user_info
WHERE
DEL_FLAG = 0
AND ID_CARD = ( SELECT ID_CARD FROM epidemic_user_inout_record WHERE DEL_FLAG = 0 AND ID = #{id} )
SELECT *
FROM epidemic_user_info
WHERE DEL_FLAG = 0
AND ID_CARD = (SELECT ID_CARD FROM epidemic_user_inout_record WHERE DEL_FLAG = 0 AND ID = #{id})
</select>
<select id="selectByIdCards" resultType="com.elink.esua.epdc.vaccine.epidemic.dto.EpidemicUserInfoDTO">
SELECT
@ -252,6 +247,193 @@
#{idCard}
</foreach>
</select>
<select id="selectInfo" resultType="com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultDTO">
select r.id AS inoutId,
'平阴县' AS county,
'榆山街道' AS street,
'370124001' AS streetId,
i.GENDER sex,
r.COMMUNITY community,
r.GRID_NAME grid,
r.PLOT villageName,
CONCAT(
r.BUILDING_NO,
r.UNIT,
'单元',
r.ROOM_NO
) dwellingPlace,
i.USER_NAME realName,
i.ID_CARD identityNo,
r.MOBILE mobile,
i.GENDER,
i.BIRTHDAY,
r.CREATED_TIME,
i.PEOPLE_CATEGORIES,
i.SPECIAL_CROWD,
i.HUSHAI_STATUS,
i.VACCINATION_STATE
from epidemic_user_info i
left join (select *
from epidemic_user_inout_record as b
where DEL_FLAG = '0'
and not exists(select 1
from epidemic_user_inout_record
where ID_CARD = b.ID_CARD
and b.CREATED_TIME &lt; CREATED_TIME)) r on r.ID_CARD = i.ID_CARD
where i.DEL_FLAG = '0'
and i.id = #{id}
</select>
<select id="selectDistinctInfo"
resultType="com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultDTO">
SELECT IFNULL(
COUNT(DISTINCT vi.COMPANY_ID),
0
) AS distinctNum,
vi.COMPANY_ID,
IFNULL(COUNT(0), 0) AS vaccinationNum,
ui.ID
FROM epidemic_user_info ui
LEFT JOIN vaccination_info vi ON ui.ID_CARD = vi.IDENTITY_NO
WHERE ui.DEL_FLAG = '0'
AND vi.DEL_FLAG = '0'
AND ui.id = #{id}
</select>
<select id="checkCompleteInfo" resultType="com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity">
SELECT
ID,VACCINATION_NUM
FROM
epidemic_user_info
WHERE
DEL_FLAG = '0'
<if test="vaccinationState!=null and vaccinationState!=''">
AND VACCINATION_STATE = '2'
</if>
AND ID_CARD = #{idCard}
LIMIT 1
</select>
<select id="selectAllUserInfo" resultType="com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity">
SELECT
ui.id,
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">
UPDATE epidemic_user_info
SET age = IFNULL(
(
YEAR (now()) - IFNULL(substring (ID_CARD, 7, 4), 0)
),
0
)
WHERE DEL_FLAG = '0'
AND ID_CARD IS NOT NULL
AND REVISION = '0'
AND LENGTH(ID_CARD) = 18
</update>
<select id="selectInfoByIdCard" resultMap="epidemicUserInfoMap">
select *
from epidemic_user_info
where ID_CARD = #{idCard}
and del_flag = '0'
</select>
<select id="getEpidemicPageV2"
resultType="com.elink.esua.epdc.vaccine.epidemic.dto.result.EpidemicPageResultV2DTO">
select
t.ID,
t.RESIDENTS_NAME,
t.RESIDENTS_SEX,
t.RESIDENTS_PHONE,
t.RESIDENTS_IDENTITY_NO,
t.RESIDENTS_NATION,
t.HOUSEHOLD_REGISTRATION_PLACE,
t.RESIDENTS_BIRTHDAY,
t.HELP_STATUS,
t.FAMILY_CATEGORY,
t.VACCINATION_NUM,
t.VACCINATION_STATE,
group_concat(DISTINCT substring_index(t2.ALL_DEPT_NAMES,'-',-1)) as grid_name,
group_concat(t2.HOUSE_ADDRESS) as HOUSE_ADDRESS
from epdc_population_information t
left join
(
select
*
from
epdc_house_resident
where
DEL_FLAG = '0')
t1 on
t.ID = t1.RESIDENT_ID
left join
(
select
*
from
epdc_housing_information
where
DEL_FLAG = '0') t2
on
t1.HOUSE_ID = t2.ID
where t.DEL_FLAG ='0' and t.RESIDENTS_IDENTITY_NO is not null and t.RESIDENTS_IDENTITY_NO != ''
<if test="streetId != '' and streetId != null">
AND (find_in_set(#{streetId},t2.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},t2.ALL_DEPT_IDS))
</if>
<if test="communityId != '' and communityId != null">
AND (find_in_set(#{communityId},t2.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},t2.ALL_DEPT_IDS))
</if>
<if test="gridId != '' and gridId != null">
and (t2.grid_id = #{gridId}
OR find_in_set(#{gridId},t2.ALL_DEPT_IDS))
</if>
<if test="residentsName != '' and residentsName != null">and t.RESIDENTS_NAME like
concat('%',#{residentsName},'%')
</if>
<if test="residentsPhone != '' and residentsPhone != null">and t.RESIDENTS_PHONE like
concat('%',#{residentsPhone},'%')
</if>
<if test="residentsIdentityNo != '' and residentsIdentityNo != null">and t.RESIDENTS_IDENTITY_NO like
concat('%',#{residentsIdentityNo},'%')
</if>
<if test="familyCategory != '' and familyCategory != null">and FAMILY_CATEGORY = #{familyCategory}</if>
<if test="helpStatus != '' and helpStatus != null">and HELP_STATUS = #{helpStatus}</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 0">
and t.VACCINATION_STATE = 0
</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 1">
and t.VACCINATION_NUM = 1
</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 2">
and t.VACCINATION_NUM = 2
</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 3">
and t.VACCINATION_NUM = 3
</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 10">
and t.VACCINATION_STATE = 1
</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 11">
and t.VACCINATION_STATE = 2
</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 12">
and t.VACCINATION_STATE IN ('1', '2')
</if>
group by t.ID
order by t.CREATED_TIME desc
</select>
<select id="getEpidemicPage" resultType="com.elink.esua.epdc.vaccine.epidemic.dto.result.EpidemicPageResultDTO">
select i.id as infoId,
r.id as inoutId,
@ -306,104 +488,42 @@
GROUP BY i.ID
ORDER BY i.CREATED_TIME DESC
</select>
<select id="selectInfo" resultType="com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultDTO">
select
r.id AS inoutId,
'平阴县' AS county,
'榆山街道' AS street,
'370124001' AS streetId,
i.GENDER sex,
r.COMMUNITY community,
r.GRID_NAME grid,
r.PLOT villageName,
CONCAT(
r.BUILDING_NO,
r.UNIT,
'单元',
r.ROOM_NO
) dwellingPlace,
i.USER_NAME realName,
i.ID_CARD identityNo,
r.MOBILE mobile,
i.GENDER,
i.BIRTHDAY,
r.CREATED_TIME,
i.PEOPLE_CATEGORIES,
i.SPECIAL_CROWD,
i.HUSHAI_STATUS,
i.VACCINATION_STATE
from epidemic_user_info i
left join (select *
from epidemic_user_inout_record as b
where DEL_FLAG='0'
and not exists(select 1 from epidemic_user_inout_record where ID_CARD= b.ID_CARD
and b.CREATED_TIME &lt; CREATED_TIME ))r on r.ID_CARD=i.ID_CARD
where i.DEL_FLAG='0'and i.id = #{id}
</select>
<select id="selectDistinctInfo" resultType="com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultDTO">
SELECT
IFNULL(
COUNT(DISTINCT vi.COMPANY_ID),
0
) AS distinctNum,
vi.COMPANY_ID,
IFNULL(COUNT(0), 0) AS vaccinationNum,
ui.ID
FROM
epidemic_user_info ui
LEFT JOIN vaccination_info vi ON ui.ID_CARD = vi.IDENTITY_NO
WHERE
ui.DEL_FLAG = '0'
AND vi.DEL_FLAG = '0'
AND ui.id = #{id}
</select>
<select id="checkCompleteInfo" resultType="com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity">
SELECT
ID,VACCINATION_NUM
FROM
epidemic_user_info
WHERE
DEL_FLAG = '0'
<if test="vaccinationState!=null and vaccinationState!=''">
AND VACCINATION_STATE = '2'
</if>
AND ID_CARD = #{idCard}
LIMIT 1
</select>
<select id="selectAllUserInfo" resultType="com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity">
SELECT
ui.id,
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">
UPDATE epidemic_user_info
SET age = IFNULL(
<select id="selectInfoV2"
resultType="com.elink.esua.epdc.vaccine.epidemic.dto.result.VaccinationInfoResultV2DTO">
select
i.id,
i.RESIDENTS_NAME,
i.RESIDENTS_IDENTITY_NO,
i.RESIDENTS_PHONE,
i.RESIDENTS_SEX,
i.RESIDENTS_BIRTHDAY,
i.VACCINATION_NUM,
i.VACCINATION_STATE,
t.COMPANY_ID,
t.SITE_ID,
t.DOSE,
t.BATCH_NO
from
epdc_population_information i
left join
(
YEAR (now()) - IFNULL(substring(ID_CARD, 7, 4), 0)
),
0
)
WHERE
DEL_FLAG = '0'
AND ID_CARD IS NOT NULL
AND REVISION = '0'
AND LENGTH(ID_CARD) = 18
</update>
<select id="selectInfoByIdCard" resultMap="epidemicUserInfoMap">
select * from epidemic_user_info
where ID_CARD=#{idCard}
and del_flag='0'
select
id,
MAX(DOSE) DOSE,
COMPANY_ID,
SITE_ID,
BATCH_NO,
IDENTITY_NO
from
vaccination_info
group by
IDENTITY_NO)
t on
i.RESIDENTS_IDENTITY_NO = t.IDENTITY_NO
where
i.DEL_FLAG = '0'
and i.id = #{id}
</select>
</mapper>

100
epdc-cloud-vim-yushan/src/main/resources/mapper/house/PopulationInformationDao.xml

@ -145,6 +145,90 @@
group by t.ID
order by t.CREATED_TIME desc
</select>
<select id="selectListOfPopulationInformationDTOV2"
resultType="com.elink.esua.epdc.dto.house.PopulationInformationDTO">
select
t.ID,
t.RESIDENTS_NAME,
t.RESIDENTS_SEX,
t.RESIDENTS_PHONE,
t.RESIDENTS_IDENTITY_NO,
t.RESIDENTS_NATION,
t.HOUSEHOLD_REGISTRATION_PLACE,
t.HELP_STATUS,
t.FAMILY_CATEGORY,
t.VACCINATION_NUM,
t.VACCINATION_STATE,
t.CHECK_STATE,
t.CHECK_DATE
from epdc_population_information t
<if test="(streetId != '' and streetId != null)||(communityId != '' and communityId != null)||(gridId != '' and gridId != null)">
left join epdc_house_resident t1 on t.ID = t1.RESIDENT_ID
left join epdc_housing_information t2 on t1.HOUSE_ID = t2.ID
</if>
where t.DEL_FLAG ='0' and t.RESIDENTS_IDENTITY_NO is not null and t.RESIDENTS_IDENTITY_NO != ''
<if test="(streetId != '' and streetId != null)||(communityId != '' and communityId != null)||(gridId != '' and gridId != null)">
and t1.DEL_FLAG ='0' and t2.DEL_FLAG ='0'
</if>
<if test="streetId != '' and streetId != null">
AND (find_in_set(#{streetId},t2.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},t2.ALL_DEPT_IDS))
</if>
<if test="communityId != '' and communityId != null">
AND (find_in_set(#{communityId},t2.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},t2.ALL_DEPT_IDS))
</if>
<if test="gridId != '' and gridId != null">
and (t2.grid_id = #{gridId}
OR find_in_set(#{gridId},t2.ALL_DEPT_IDS))
</if>
<if test="residentsName != '' and residentsName != null">and t.RESIDENTS_NAME like
concat('%',#{residentsName},'%')
</if>
<if test="residentsPhone != '' and residentsPhone != null">and t.RESIDENTS_PHONE like
concat('%',#{residentsPhone},'%')
</if>
<if test="residentsIdentityNo != '' and residentsIdentityNo != null">and t.RESIDENTS_IDENTITY_NO like
concat('%',#{residentsIdentityNo},'%')
</if>
<if test="familyCategory != '' and familyCategory != null">and FAMILY_CATEGORY = #{familyCategory}</if>
<if test="helpStatus != '' and helpStatus != null">and HELP_STATUS = #{helpStatus}</if>
<if test="specialCrowd != null and specialCrowd != ''">
and t.SPECIAL_CROWD = #{specialCrowd}
</if>
<if test="checkState != null and checkState != '' and checkState== '0'.toString()">
and t.check_state = #{checkState}
</if>
<if test="checkState != null and checkState != '' and checkState== '1'.toString()">
and ( t.check_state = #{checkState} or t.check_state is null)
</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 0">
and t.VACCINATION_STATE = 0
</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 1">
and t.VACCINATION_NUM = 1
</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 2">
and t.VACCINATION_NUM = 2
</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 3">
and t.VACCINATION_NUM = 3
</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 10">
and t.VACCINATION_STATE = 1
</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 11">
and t.VACCINATION_STATE = 2
</if>
<if test="isInoculate != null and isInoculate != '' and isInoculate == 12">
and t.VACCINATION_STATE IN ('1', '2')
</if>
group by t.ID
order by t.CREATED_TIME desc
</select>
<resultMap type="com.elink.esua.epdc.dto.house.PopulationInformationDTO" id="populationInformationMap2">
<result property="id" column="ID"/>
<result property="residentsName" column="RESIDENTS_NAME"/>
@ -662,7 +746,7 @@
</select>
<select id="selectListByIdentityNos"
resultType="com.elink.esua.epdc.vaccine.epidemic.dto.EpidemicUserInfoDTO">
resultType="com.elink.esua.epdc.vaccine.epidemic.dto.EpidemicUserInfoDTOV2">
SELECT
ui.ID as ID,
ui.RESIDENTS_IDENTITY_NO as idCard,
@ -682,6 +766,20 @@
#{residentsIdentityNo}
</foreach>
</select>
<select id="checkCompleteInfo"
resultType="com.elink.esua.epdc.vaccine.house.entity.PopulationInformationEntity">
SELECT
ID,VACCINATION_NUM
FROM
epdc_population_information
WHERE
DEL_FLAG = '0'
<if test="vaccinationState != null">
AND VACCINATION_STATE = #{vaccinationState}
</if>
AND RESIDENTS_IDENTITY_NO = #{idCard}
LIMIT 1
</select>
<update id="updatePersonInfo">
UPDATE epdc_population_information

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

@ -90,6 +90,19 @@
v.CREATED_TIME DESC
</select>
<select id="checkVaccinationV2" resultType="com.elink.esua.epdc.vaccine.vim.entity.VaccinationInfoEntity">
SELECT
id,dose
FROM
vaccination_info
WHERE
DEL_FLAG = '0'
AND IDENTITY_NO = #{residentsIdentityNo}
<if test="dose != null and dose != ''">
AND DOSE = #{dose}
</if>
</select>
<select id="checkVaccination" resultType="com.elink.esua.epdc.vaccine.vim.entity.VaccinationInfoEntity">
SELECT
id,dose

Loading…
Cancel
Save