Browse Source

Merge branch 'feature/user_house_import'

master
zhangyuan 3 years ago
parent
commit
53dedaf12f
  1. 15
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/EpidemicUserInfoService.java
  2. 28
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoServiceImpl.java
  3. 19
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/AppFamilyController.java
  4. 39
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java
  5. 6
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java
  6. 11
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicUnitOwnerDao.java
  7. 22
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java
  8. 102
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicBuildingUnitServiceImpl.java
  9. 23
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml
  10. 7
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicUnitOwnerDao.xml

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

@ -5,15 +5,17 @@ import com.elink.esua.epdc.commons.mybatis.service.CrudService;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.personroom.EpidemicUnitOwnerDTO; import com.elink.esua.epdc.dto.personroom.EpidemicUnitOwnerDTO;
import com.elink.esua.epdc.dto.personroom.form.BindingFamilyFormDTO;
import com.elink.esua.epdc.dto.personroom.form.FamilyMemberInfoFormDTO; import com.elink.esua.epdc.dto.personroom.form.FamilyMemberInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.GetHouseInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.GetMemberListFormDTO; import com.elink.esua.epdc.dto.personroom.form.GetMemberListFormDTO;
import com.elink.esua.epdc.dto.personroom.result.FamilyMemberInfoResultDTO; import com.elink.esua.epdc.dto.personroom.result.FamilyMemberInfoResultDTO;
import com.elink.esua.epdc.vaccine.epidemic.dto.*; import com.elink.esua.epdc.vaccine.epidemic.dto.*;
import com.elink.esua.epdc.vaccine.epidemic.dto.result.*; 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.EpidemicUserInfoEntity;
import com.elink.esua.epdc.vaccine.vim.dto.VaccinationInfoDTO; import com.elink.esua.epdc.vaccine.vim.dto.VaccinationInfoDTO;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
@ -229,4 +231,11 @@ public interface EpidemicUserInfoService extends CrudService<EpidemicUserInfoEnt
*/ */
Result updateFamilyMember(FamilyMemberInfoFormDTO formDTO); Result updateFamilyMember(FamilyMemberInfoFormDTO formDTO);
/**
* 绑定我的家庭
* @param formDTO
* @return
*/
Result bindingFamily(BindingFamilyFormDTO formDTO);
} }

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

@ -24,6 +24,7 @@ import com.elink.esua.epdc.dto.house.SysPopulationSimpleDictDTO;
import com.elink.esua.epdc.dto.house.form.SysPopulationSimpleDictFormDTO; import com.elink.esua.epdc.dto.house.form.SysPopulationSimpleDictFormDTO;
import com.elink.esua.epdc.dto.house.result.EpdcPopulationErrorResultDTO; import com.elink.esua.epdc.dto.house.result.EpdcPopulationErrorResultDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicUnitOwnerDTO; import com.elink.esua.epdc.dto.personroom.EpidemicUnitOwnerDTO;
import com.elink.esua.epdc.dto.personroom.form.BindingFamilyFormDTO;
import com.elink.esua.epdc.dto.personroom.form.FamilyMemberInfoFormDTO; import com.elink.esua.epdc.dto.personroom.form.FamilyMemberInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.GetMemberListFormDTO; import com.elink.esua.epdc.dto.personroom.form.GetMemberListFormDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicPlotBuildingResultDTO; import com.elink.esua.epdc.dto.personroom.result.EpidemicPlotBuildingResultDTO;
@ -1679,4 +1680,31 @@ public class EpidemicUserInfoServiceImpl extends CrudServiceImpl<EpidemicUserInf
return new Result(); return new Result();
} }
@Override
public Result bindingFamily(BindingFamilyFormDTO formDTO) {
// 新增人员
if("1".equals(formDTO.getFlag())){
// 获取部门信息
Result<ParentAndAllDeptDTO> result = adminVimFeignClient.getParentAndAllDept(formDTO.getDeptId());
ParentAndAllDeptDTO parentAndAllDeptDTO = result.getData();
formDTO.setAllDeptIds(parentAndAllDeptDTO.getAllDeptIds());
formDTO.setAllDeptNames(parentAndAllDeptDTO.getAllDeptNames());
formDTO.setParentDeptIds(parentAndAllDeptDTO.getParentDeptIds());
formDTO.setParentDeptNames(parentAndAllDeptDTO.getParentDeptNames());
formDTO.setGridName(parentAndAllDeptDTO.getGrid());
formDTO.setDeptName(parentAndAllDeptDTO.getGrid());
// 新增epidemic_user_info
EpidemicUserInfoEntity epidemicUserInfoEntity = ConvertUtils.sourceToTarget(formDTO, EpidemicUserInfoEntity.class);
baseDao.insert(epidemicUserInfoEntity);
}
// 绑定房屋
EpidemicUnitOwnerEntity epidemicUnitOwnerEntity = ConvertUtils.sourceToTarget(formDTO, EpidemicUnitOwnerEntity.class);
epidemicUnitOwnerEntity.setOwnerName(formDTO.getUserName());
epidemicUnitOwnerEntity.setAddress(formDTO.getHouseAddress());
epidemicUnitOwnerService.insert(epidemicUnitOwnerEntity);
return new Result();
}
} }

19
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/AppFamilyController.java

@ -27,10 +27,7 @@ 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.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.dto.epidemic.DictOptionDTO; import com.elink.esua.epdc.dto.epidemic.DictOptionDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicPlotCoordinateDTO; import com.elink.esua.epdc.dto.personroom.EpidemicPlotCoordinateDTO;
import com.elink.esua.epdc.dto.personroom.form.EpidemicPlotCoordinateFormDTO; import com.elink.esua.epdc.dto.personroom.form.*;
import com.elink.esua.epdc.dto.personroom.form.FamilyMemberInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.GetHouseInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.GetMemberListFormDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicPlotCoordinateResultDTO; import com.elink.esua.epdc.dto.personroom.result.EpidemicPlotCoordinateResultDTO;
import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicUserInfoService; import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicUserInfoService;
import com.elink.esua.epdc.vaccine.personroom.excel.EpidemicPlotCoordinateExcel; import com.elink.esua.epdc.vaccine.personroom.excel.EpidemicPlotCoordinateExcel;
@ -117,6 +114,20 @@ public class AppFamilyController {
return epidemicBuildingUnitService.getHouseInfo(formDTO); return epidemicBuildingUnitService.getHouseInfo(formDTO);
} }
/**
* 绑定我的家庭房屋
*
* @param formDTO
* @return
* @Author wanggongfeng
*/
@PostMapping("bindingFamily")
public Result bindingFamily(@RequestBody BindingFamilyFormDTO formDTO){
//效验数据
ValidatorUtils.validateEntity(formDTO, UpdateGroup.class, DefaultGroup.class);
return epidemicUserInfoService.bindingFamily(formDTO);
}

39
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java

@ -126,6 +126,12 @@ public class BuildingUnitController {
return new Result(); return new Result();
} }
@PostMapping("updateErrorRoom")
public Result updateErrorRoom() {
epidemicBuildingUnitService.updateErrorRoom();
return new Result();
}
/** /**
* @return void * @return void
* @describe: 下载房屋编码 * @describe: 下载房屋编码
@ -136,38 +142,7 @@ public class BuildingUnitController {
@PostMapping("createHouseQrcode") @PostMapping("createHouseQrcode")
public void createQrCode(@RequestBody HouseQrcodeFormDTO formDTO, HttpServletResponse response) { public void createQrCode(@RequestBody HouseQrcodeFormDTO formDTO, HttpServletResponse response) {
ValidatorUtils.validateEntity(formDTO); ValidatorUtils.validateEntity(formDTO);
try { epidemicBuildingUnitService.createQrCode(formDTO.getId(),response);
EpidemicBuildingUnitDetailResultDTO house = epidemicBuildingUnitService.get(formDTO.getId());
if (null == house) {
throw new RenException("未查到房屋信息");
}
//url组成:小程序地址?房屋编码
String url = qrCodeProperties.getPre() + house.getRoomCode();
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnit() + house.getRoomNo(), url);
//BufferedImage 转 InputStream
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageOutputStream imageOutput = ImageIO.createImageOutputStream(byteArrayOutputStream);
ImageIO.write(image, "png", imageOutput);
InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
long length = imageOutput.length();
String fileName = house.getBuildingName() + house.getUnit() + house.getRoomNo() + ".png";
response.setContentType("application/octet-stream");
response.setContentLength((int) length);
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, StrConstant.UTF_8));
//输出流
byte[] bytes = new byte[1024];
OutputStream outputStream = response.getOutputStream();
long count = 0;
while (count < length) {
int len = inputStream.read(bytes, 0, 1024);
count += len;
outputStream.write(bytes, 0, len);
}
outputStream.flush();
} catch (Exception e) {
throw new RenException("生成房屋码失败");
}
} }
/** /**

6
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java

@ -72,14 +72,14 @@ public interface EpidemicBuildingUnitDao extends BaseDao<EpidemicBuildingUnitEnt
List<EpidemicBuildingUnitDTO> listUnitHasNotUrl(); List<EpidemicBuildingUnitDTO> listUnitHasNotUrl();
/** /**
* 展示所有没有二维码的房屋 * 展示所有包含房屋码的数据
* *
* @param * @param
* @return java.util.List<io.pingyin.modules.personroom.dto.EpidemicBuildingUnitDTO> * @return java.util.List<io.pingyin.modules.personroom.dto.EpidemicBuildingUnitDTO>
* @author zhy * @author zhy
* @date 2022/4/6 17:22 * @date 2022/4/6 17:22
*/ */
List<EpidemicBuildingUnitDTO> listUnitHasUrl(); List<EpidemicBuildingUnitDTO> listUnitHasCode();
/** /**
* 获取详情 * 获取详情
@ -113,6 +113,8 @@ public interface EpidemicBuildingUnitDao extends BaseDao<EpidemicBuildingUnitEnt
Integer getMaxCode(); Integer getMaxCode();
List<EpidemicBuildingUnitEntity> getErrorRoom();
/** /**
* 单元列表下拉框 * 单元列表下拉框
* *

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

@ -44,6 +44,17 @@ public interface EpidemicUnitOwnerDao extends BaseDao<EpidemicUnitOwnerEntity> {
*/ */
int deleteByUnitId(@Param("unitId") Long unitId); int deleteByUnitId(@Param("unitId") Long unitId);
/**
* 根据单元ID修改
*
* @param unitId
* @param newUnitId
* @return int
* @author zhy
* @date 2022/4/2 14:02
*/
int updateByUnitId(@Param("unitId") Long unitId,@Param("newUnitId") Long newUnitId);
/** /**
* 根据身份证和房屋物理删除 * 根据身份证和房屋物理删除
* *

22
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java

@ -24,6 +24,7 @@ import com.elink.esua.epdc.dto.epidemic.DictOptionDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO; import com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicPlotBuildingDTO; import com.elink.esua.epdc.dto.personroom.EpidemicPlotBuildingDTO;
import com.elink.esua.epdc.dto.personroom.form.GetHouseInfoFormDTO; import com.elink.esua.epdc.dto.personroom.form.GetHouseInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.HouseQrcodeFormDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicBuildingUnitDetailResultDTO; import com.elink.esua.epdc.dto.personroom.result.EpidemicBuildingUnitDetailResultDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicUnitInfoResultDTO; import com.elink.esua.epdc.dto.personroom.result.EpidemicUnitInfoResultDTO;
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity; import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity;
@ -131,6 +132,16 @@ public interface EpidemicBuildingUnitService extends CrudService<EpidemicBuildin
*/ */
void updateMaCode(); void updateMaCode();
/**
* 更新错误数据
*
* @param
* @return void
* @author zhy
* @date 2022/6/9 17:24
*/
void updateErrorRoom();
/** /**
* 单元列表下拉框 * 单元列表下拉框
* *
@ -177,5 +188,16 @@ public interface EpidemicBuildingUnitService extends CrudService<EpidemicBuildin
*/ */
void downloadZip(HttpServletResponse response) throws Exception; void downloadZip(HttpServletResponse response) throws Exception;
/**
* 实时生成一户一码
*
* @param roomId
* @param response
* @return void
* @author zhy
* @date 2022/6/13 10:21
*/
void createQrCode(String roomId, HttpServletResponse response);
} }

102
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicBuildingUnitServiceImpl.java

@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.CrudServiceImpl; import com.elink.esua.epdc.commons.mybatis.service.impl.CrudServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant; import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.constant.StrConstant;
import com.elink.esua.epdc.commons.tools.exception.RenException; 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.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
@ -63,6 +64,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.*; import java.io.*;
@ -105,9 +107,6 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
@Autowired @Autowired
private VimOssFeignClient ossFeignClient; private VimOssFeignClient ossFeignClient;
//
// @Autowired
// private HouseQRcodeUtils houseQRcodeUtils;
@Autowired @Autowired
private QrCodeProperties qrCodeProperties; private QrCodeProperties qrCodeProperties;
@ -129,6 +128,8 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
@Override @Override
public QueryWrapper<EpidemicBuildingUnitEntity> getWrapper(Map<String, Object> params) { public QueryWrapper<EpidemicBuildingUnitEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP); String id = (String) params.get(FieldConstant.ID_HUMP);
String buildingId = (String) params.get("buildingId");
String unit = (String) params.get("unit");
String roomNo = (String) params.get("roomNo"); String roomNo = (String) params.get("roomNo");
String type = (String) params.get("roomType"); String type = (String) params.get("roomType");
String owner = (String) params.get("ownerName"); String owner = (String) params.get("ownerName");
@ -137,6 +138,8 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
QueryWrapper<EpidemicBuildingUnitEntity> wrapper = new QueryWrapper<>(); QueryWrapper<EpidemicBuildingUnitEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank(buildingId), "BUILDING_ID", buildingId);
wrapper.eq(StringUtils.isNotBlank(unit), "UNIT", unit);
wrapper.eq(StringUtils.isNotBlank(roomNo), "ROOM_NO", roomNo); wrapper.eq(StringUtils.isNotBlank(roomNo), "ROOM_NO", roomNo);
wrapper.eq(StringUtils.isNotBlank(type), "ROOM_TYPE", type); wrapper.eq(StringUtils.isNotBlank(type), "ROOM_TYPE", type);
wrapper.eq(StringUtils.isNotBlank(owner), "OWNER_NAME", owner); wrapper.eq(StringUtils.isNotBlank(owner), "OWNER_NAME", owner);
@ -322,6 +325,29 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
return maxCode; return maxCode;
} }
@Override
public void updateErrorRoom() {
List<EpidemicBuildingUnitEntity> list = baseDao.getErrorRoom();
list.forEach(item -> {
log.info("正在处理" + item.getBuildingId() + "/" + item.getUnit() + "/" + item.getRoomNo());
Map<String, Object> params = new HashMap<>();
params.put("buildingId", item.getBuildingId().toString());
params.put("unit", item.getUnit());
params.put("roomNo", item.getRoomNo());
List<EpidemicBuildingUnitDTO> dtos = list(params);
EpidemicBuildingUnitDTO base = dtos.get(0);
dtos.forEach(dto -> {
// 更新关系表的房屋ID
epidemicUnitOwnerDao.updateByUnitId(dto.getId(), base.getId());
if (!dto.getId().equals(base.getId())) {
String[] ids = new String[]{dto.getId().toString()};
// 删除无用的房屋
delete(ids);
}
});
});
}
@Override @Override
public void updateMaCode() { public void updateMaCode() {
Map<String, Object> params = new HashMap<>(4); Map<String, Object> params = new HashMap<>(4);
@ -370,14 +396,14 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
response.setHeader("Content-Disposition", "attachment;filename=" + downloadFilename); response.setHeader("Content-Disposition", "attachment;filename=" + downloadFilename);
ZipOutputStream zip = new ZipOutputStream(response.getOutputStream()); ZipOutputStream zip = new ZipOutputStream(response.getOutputStream());
List<EpidemicBuildingUnitDTO> houseList = baseDao.listUnitHasUrl(); List<EpidemicBuildingUnitDTO> houseList = baseDao.listUnitHasCode();
String urlRre = qrCodeProperties.getPre();
for (EpidemicBuildingUnitDTO house : houseList) { for (EpidemicBuildingUnitDTO house : houseList) {
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnit() + house.getRoomNo(),
qrCodeProperties.getPre() + house.getRoomCode());
try { try {
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnit() + house.getRoomNo(),
urlRre + house.getRoomCode());
byte[] buf = new byte[8192]; byte[] buf = new byte[8192];
int len; int len;
//添加到zip //添加到zip
@ -388,6 +414,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
zip.write(buf, 0, len); zip.write(buf, 0, len);
} }
inputStream.close(); inputStream.close();
zip.closeEntry();
} catch (IOException e) { } catch (IOException e) {
throw new RenException("组装zip失败"); throw new RenException("组装zip失败");
} }
@ -395,6 +422,42 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
zip.close(); zip.close();
} }
@Override
public void createQrCode(String roomId, HttpServletResponse response) {
try {
EpidemicBuildingUnitDetailResultDTO house = get(roomId);
if (null == house) {
throw new RenException("未查到房屋信息");
}
//url组成:小程序地址?房屋编码
String url = qrCodeProperties.getPre() + house.getRoomCode();
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnit() + house.getRoomNo(), url);
//BufferedImage 转 InputStream
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
ImageOutputStream imageOutput = ImageIO.createImageOutputStream(byteArrayOutputStream);
ImageIO.write(image, "png", imageOutput);
InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
long length = imageOutput.length();
String fileName = house.getBuildingName() + house.getUnit() + house.getRoomNo() + ".png";
response.setContentType("application/octet-stream");
response.setContentLength((int) length);
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, StrConstant.UTF_8));
//输出流
byte[] bytes = new byte[1024];
OutputStream outputStream = response.getOutputStream();
long count = 0;
while (count < length) {
int len = inputStream.read(bytes, 0, 1024);
count += len;
outputStream.write(bytes, 0, len);
}
outputStream.flush();
} catch (Exception e) {
throw new RenException("生成房屋码失败");
}
}
/** /**
* 将BufferedImage转换为InputStream * 将BufferedImage转换为InputStream
* *
@ -570,6 +633,20 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
unitEntity.setStreetId(parentAndAllDeptDTO.getStreetId().toString()); unitEntity.setStreetId(parentAndAllDeptDTO.getStreetId().toString());
unitEntity.setStreetName(parentAndAllDeptDTO.getStreet()); unitEntity.setStreetName(parentAndAllDeptDTO.getStreet());
insert(unitEntity); insert(unitEntity);
// 新增的房屋也要放到待筛选列表,后续循环便可认为该房屋是已存在的
EpidemicUnitInfoResultDTO newUnit = new EpidemicUnitInfoResultDTO();
newUnit.setBuildingId(buildingOptional.get().getId());
newUnit.setBuildingName(buildingOptional.get().getBuildingName());
newUnit.setGridId(buildingOptional.get().getGridId());
newUnit.setPlotId(buildingOptional.get().getPlotId());
newUnit.setPlotName(buildingOptional.get().getPlotName());
newUnit.setUnit(item.getUnit().trim().toUpperCase());
newUnit.setUnitId(unitEntity.getId());
newUnit.setRoomNo(item.getRoomNo().trim().toUpperCase());
newUnit.setRoomMaCode(roomCode);
unitList.add(newUnit);
EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity(); EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity();
entity.setIdCard(item.getIdCard()); entity.setIdCard(item.getIdCard());
entity.setUnitId(unitEntity.getId()); entity.setUnitId(unitEntity.getId());
@ -647,8 +724,11 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
public Result<HouseInfoResultDTO> getHouseInfo(GetHouseInfoFormDTO formDTO) { public Result<HouseInfoResultDTO> getHouseInfo(GetHouseInfoFormDTO formDTO) {
HouseInfoResultDTO houseInfoResultDTO = baseDao.getHouseInfo(formDTO); HouseInfoResultDTO houseInfoResultDTO = baseDao.getHouseInfo(formDTO);
List<FamilyMemberInfoResultDTO> members = epidemicUnitOwnerDao.getFamilyMemberInfoByUnitId(houseInfoResultDTO.getId()); if(houseInfoResultDTO != null){
houseInfoResultDTO.setMembers(members); List<FamilyMemberInfoResultDTO> members = epidemicUnitOwnerDao.getFamilyMemberInfoByUnitId(houseInfoResultDTO.getId());
houseInfoResultDTO.setMembers(members);
}
return new Result<HouseInfoResultDTO>().ok(houseInfoResultDTO); return new Result<HouseInfoResultDTO>().ok(houseInfoResultDTO);
} }
@ -656,7 +736,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
public String createHouseQrcodeUrl(EpidemicBuildingUnitDTO house) throws Exception { public String createHouseQrcodeUrl(EpidemicBuildingUnitDTO house) throws Exception {
//url组成:小程序地址?房屋编码 //url组成:小程序地址?房屋编码
String url = qrCodeProperties.getPre() + house.getRoomCode(); String url = qrCodeProperties.getPre() + house.getRoomCode();
String fileName = house.getBuildingName() + house.getUnit() + house.getRoomNo() + ".png"; String fileName = house.getBuildingName() + StrConstant.HYPHEN + house.getUnit() + StrConstant.HYPHEN + house.getRoomNo() + ".png";
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnit() + house.getRoomNo(), url); BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnit() + house.getRoomNo(), url);
ByteArrayOutputStream out = new ByteArrayOutputStream(); ByteArrayOutputStream out = new ByteArrayOutputStream();
try { try {

23
epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml

@ -104,7 +104,7 @@
AND u.MA_URL IS NULL AND u.MA_URL IS NULL
</select> </select>
<select id="listUnitHasUrl" resultType="com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO"> <select id="listUnitHasCode" resultType="com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO">
SELECT SELECT
u.*, u.*,
b.BUILDING_NAME, b.BUILDING_NAME,
@ -115,7 +115,7 @@
LEFT JOIN epidemic_plot_coordinate p ON b.PLOT_ID = p.id LEFT JOIN epidemic_plot_coordinate p ON b.PLOT_ID = p.id
WHERE WHERE
u.DEL_FLAG = '0' u.DEL_FLAG = '0'
AND u.MA_URL IS NOT NULL AND u.ROOM_CODE IS NOT NULL
</select> </select>
<select id="selectByBuildingId" resultType="com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity"> <select id="selectByBuildingId" resultType="com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity">
@ -183,6 +183,25 @@
epidemic_building_unit epidemic_building_unit
</select> </select>
<select id="getErrorRoom" resultType="com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity">
SELECT
BUILDING_ID,
UNIT,
ROOM_NO
FROM
epidemic_building_unit
WHERE
BUILDING_ID IS NOT NULL
AND UNIT IS NOT NULL
AND ROOM_NO IS NOT NULL
GROUP BY
BUILDING_ID,
UNIT,
ROOM_NO
HAVING
COUNT( 0 )>1
</select>
<select id="getUnitOption" resultType="com.elink.esua.epdc.dto.epidemic.DictOptionDTO"> <select id="getUnitOption" resultType="com.elink.esua.epdc.dto.epidemic.DictOptionDTO">
SELECT SELECT
u.UNIT AS dictValue, u.UNIT AS dictValue,

7
epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicUnitOwnerDao.xml

@ -26,6 +26,13 @@
UNIT_ID = #{unitId} UNIT_ID = #{unitId}
</delete> </delete>
<update id="updateByUnitId">
UPDATE epidemic_unit_owner
SET UNIT_ID = #{newUnitId}
WHERE
UNIT_ID = #{unitId}
</update>
<delete id="deleteByIdCard"> <delete id="deleteByIdCard">
DELETE DELETE
FROM FROM

Loading…
Cancel
Save