Browse Source

Merge remote-tracking branch 'origin/feature/user_house_import' into feature/user_house_import

feature/user_house_import
wanggongfeng 3 years ago
parent
commit
7122194b46
  1. 7
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/EpidemicUserInfoService.java
  2. 31
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/AppFamilyController.java
  3. 85
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java
  4. 2
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotBuildingErrorController.java
  5. 11
      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. 25
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java
  8. 120
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicBuildingUnitServiceImpl.java
  9. 26
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml
  10. 7
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicUnitOwnerDao.xml

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

@ -7,14 +7,15 @@ import com.elink.esua.epdc.commons.tools.utils.Result;
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.GetHouseInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.GetMemberListFormDTO;
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.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.vim.dto.VaccinationInfoDTO;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;

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

@ -17,29 +17,18 @@
package com.elink.esua.epdc.vaccine.personroom.controller;
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.dto.epidemic.DictOptionDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicPlotCoordinateDTO;
import com.elink.esua.epdc.dto.personroom.form.*;
import com.elink.esua.epdc.dto.personroom.result.EpidemicPlotCoordinateResultDTO;
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.GetHouseInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.GetMemberListFormDTO;
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.service.EpidemicBuildingUnitService;
import com.elink.esua.epdc.vaccine.personroom.service.EpidemicPlotCoordinateService;
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;
/**
@ -66,7 +55,7 @@ public class AppFamilyController {
* @Author wanggongfeng
*/
@GetMapping("getFamilyMember")
public Result getFamilyMember(@RequestBody GetMemberListFormDTO formDTO){
public Result getFamilyMember(@RequestBody GetMemberListFormDTO formDTO) {
//效验数据
ValidatorUtils.validateEntity(formDTO, UpdateGroup.class, DefaultGroup.class);
return epidemicUserInfoService.getFamilyMember(formDTO);
@ -80,7 +69,7 @@ public class AppFamilyController {
* @Author wanggongfeng
*/
@PostMapping("addFamilyMember")
public Result addFamilyMember(@RequestBody FamilyMemberInfoFormDTO formDTO){
public Result addFamilyMember(@RequestBody FamilyMemberInfoFormDTO formDTO) {
//效验数据
ValidatorUtils.validateEntity(formDTO, UpdateGroup.class, DefaultGroup.class);
return epidemicUserInfoService.addFamilyMember(formDTO);
@ -94,7 +83,7 @@ public class AppFamilyController {
* @Author wanggongfeng
*/
@PostMapping("updateFamilyMember")
public Result updateFamilyMember(@RequestBody FamilyMemberInfoFormDTO formDTO){
public Result updateFamilyMember(@RequestBody FamilyMemberInfoFormDTO formDTO) {
//效验数据
ValidatorUtils.validateEntity(formDTO, UpdateGroup.class, DefaultGroup.class);
return epidemicUserInfoService.updateFamilyMember(formDTO);
@ -108,7 +97,7 @@ public class AppFamilyController {
* @Author wanggongfeng
*/
@GetMapping("getHouseInfo")
public Result getHouseInfo(@RequestBody GetHouseInfoFormDTO formDTO){
public Result getHouseInfo(@RequestBody GetHouseInfoFormDTO formDTO) {
//效验数据
ValidatorUtils.validateEntity(formDTO, UpdateGroup.class, DefaultGroup.class);
return epidemicBuildingUnitService.getHouseInfo(formDTO);
@ -122,13 +111,11 @@ public class AppFamilyController {
* @Author wanggongfeng
*/
@PostMapping("bindingFamily")
public Result bindingFamily(@RequestBody BindingFamilyFormDTO formDTO){
public Result bindingFamily(@RequestBody BindingFamilyFormDTO formDTO) {
//效验数据
ValidatorUtils.validateEntity(formDTO, UpdateGroup.class, DefaultGroup.class);
return epidemicUserInfoService.bindingFamily(formDTO);
}
}

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

@ -18,8 +18,6 @@
package com.elink.esua.epdc.vaccine.personroom.controller;
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.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
@ -32,23 +30,15 @@ import com.elink.esua.epdc.config.QrCodeProperties;
import com.elink.esua.epdc.dto.epidemic.DictOptionDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO;
import com.elink.esua.epdc.dto.personroom.form.HouseQrcodeFormDTO;
import com.elink.esua.epdc.dto.personroom.form.HouseQrcodeZipFormDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicBuildingUnitDetailResultDTO;
import com.elink.esua.epdc.vaccine.epidemic.utils.HouseQRcodeUtils;
import com.elink.esua.epdc.vaccine.personroom.excel.EpidemicBuildingUnitExcel;
import com.elink.esua.epdc.vaccine.personroom.service.EpidemicBuildingUnitService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
@ -120,54 +110,21 @@ public class BuildingUnitController {
return epidemicBuildingUnitService.importEpidemicHouse(file, gridId);
}
/**
* 更新房屋自增序号
*
* @return
*/
@PostMapping("updateMaCode")
public Result updateMaCode() {
epidemicBuildingUnitService.updateMaCode();
return new Result();
}
/**
* @return void
* @describe: 下载房屋编码
* @author wangtong
* @date 2022/6/1 17:24
* @params [formDTO, response]
*/
@PostMapping("createHouseQrcode")
public void createQrCode(@RequestBody HouseQrcodeFormDTO formDTO, HttpServletResponse response) {
ValidatorUtils.validateEntity(formDTO);
try {
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("生成房屋码失败");
}
@PostMapping("updateErrorRoom")
public Result updateErrorRoom() {
epidemicBuildingUnitService.updateErrorRoom();
return new Result();
}
/**
@ -198,6 +155,20 @@ public class BuildingUnitController {
return new Result<List<DictOptionDTO>>().ok(list);
}
/**
* @return void
* @describe: 下载房屋编码
* @author wangtong
* @date 2022/6/1 17:24
* @params [formDTO, response]
*/
@PostMapping("createHouseQrcode")
public void createQrCode(@RequestBody HouseQrcodeFormDTO formDTO, HttpServletResponse response) {
ValidatorUtils.validateEntity(formDTO);
epidemicBuildingUnitService.createQrCode(formDTO.getId(), response);
}
/**
* @return java.lang.String
* @describe: 批量生成房屋的房屋编码和一户一档二维码
@ -217,10 +188,10 @@ public class BuildingUnitController {
* @date 2022/5/31 17:58
* @params [loginUser, formDTO, response]
*/
@PostMapping(value = "/downloadZip")
public void downloadZip(HttpServletResponse response) throws Exception {
epidemicBuildingUnitService.downloadZip(response);
@PostMapping("downloadZip")
public void downloadZip(@RequestBody HouseQrcodeZipFormDTO formDTO, HttpServletResponse response) throws Exception {
ValidatorUtils.validateEntity(formDTO);
epidemicBuildingUnitService.downloadZip(formDTO, response);
}
}

2
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/EpidemicPlotBuildingErrorController.java → epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotBuildingErrorController.java

@ -44,7 +44,7 @@ import java.util.Map;
*/
@RestController
@RequestMapping("epidemicplotbuildingerror")
public class EpidemicPlotBuildingErrorController {
public class PlotBuildingErrorController {
@Autowired
private EpidemicPlotBuildingErrorService epidemicPlotBuildingErrorService;

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

@ -20,8 +20,8 @@ package com.elink.esua.epdc.vaccine.personroom.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.epidemic.DictOptionDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO;
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.HouseQrcodeZipFormDTO;
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.HouseInfoResultDTO;
@ -72,14 +72,14 @@ public interface EpidemicBuildingUnitDao extends BaseDao<EpidemicBuildingUnitEnt
List<EpidemicBuildingUnitDTO> listUnitHasNotUrl();
/**
* 展示所有没有二维码的房屋
* 展示所有包含房屋码的数据
*
* @param
* @param formDTO
* @return java.util.List<io.pingyin.modules.personroom.dto.EpidemicBuildingUnitDTO>
* @author zhy
* @date 2022/4/6 17:22
*/
List<EpidemicBuildingUnitDTO> listUnitHasUrl();
List<EpidemicBuildingUnitDTO> listUnitHasCode(HouseQrcodeZipFormDTO formDTO);
/**
* 获取详情
@ -113,6 +113,8 @@ public interface EpidemicBuildingUnitDao extends BaseDao<EpidemicBuildingUnitEnt
Integer getMaxCode();
List<EpidemicBuildingUnitEntity> getErrorRoom();
/**
* 单元列表下拉框
*
@ -136,6 +138,7 @@ public interface EpidemicBuildingUnitDao extends BaseDao<EpidemicBuildingUnitEnt
/**
* 获取房屋信息
*
* @param formDTO
* @return
*/

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);
/**
* 根据单元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);
/**
* 根据身份证和房屋物理删除
*

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

@ -22,8 +22,8 @@ import com.elink.esua.epdc.commons.mybatis.service.CrudService;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.epidemic.DictOptionDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO;
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.HouseQrcodeZipFormDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicBuildingUnitDetailResultDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicUnitInfoResultDTO;
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity;
@ -131,6 +131,16 @@ public interface EpidemicBuildingUnitService extends CrudService<EpidemicBuildin
*/
void updateMaCode();
/**
* 更新错误数据
*
* @param
* @return void
* @author zhy
* @date 2022/6/9 17:24
*/
void updateErrorRoom();
/**
* 单元列表下拉框
*
@ -175,7 +185,18 @@ public interface EpidemicBuildingUnitService extends CrudService<EpidemicBuildin
* @date 2022/5/31 18:00
* @params [formDTO]
*/
void downloadZip(HttpServletResponse response) throws Exception;
void downloadZip(HouseQrcodeZipFormDTO formDTO, HttpServletResponse response) throws Exception;
/**
* 实时生成一户一码
*
* @param roomId
* @param response
* @return void
* @author zhy
* @date 2022/6/13 10:21
*/
void createQrCode(String roomId, HttpServletResponse response);
}

120
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.tools.constant.FieldConstant;
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.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
@ -37,6 +38,7 @@ import com.elink.esua.epdc.dto.house.result.EpdcPopulationErrorResultDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicUnitOwnerDTO;
import com.elink.esua.epdc.dto.personroom.form.GetHouseInfoFormDTO;
import com.elink.esua.epdc.dto.personroom.form.HouseQrcodeZipFormDTO;
import com.elink.esua.epdc.dto.personroom.result.*;
import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserErrorEntity;
import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity;
@ -63,6 +65,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.*;
@ -105,9 +108,6 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
@Autowired
private VimOssFeignClient ossFeignClient;
//
// @Autowired
// private HouseQRcodeUtils houseQRcodeUtils;
@Autowired
private QrCodeProperties qrCodeProperties;
@ -129,6 +129,8 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
@Override
public QueryWrapper<EpidemicBuildingUnitEntity> getWrapper(Map<String, Object> params) {
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 type = (String) params.get("roomType");
String owner = (String) params.get("ownerName");
@ -137,6 +139,8 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
QueryWrapper<EpidemicBuildingUnitEntity> wrapper = new QueryWrapper<>();
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(type), "ROOM_TYPE", type);
wrapper.eq(StringUtils.isNotBlank(owner), "OWNER_NAME", owner);
@ -166,6 +170,13 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
@Override
@Transactional(rollbackFor = Exception.class)
public Result saveNew(EpidemicBuildingUnitDTO dto) {
Map<String, Object> params = new HashMap<>(8);
params.put("buildingId", dto.getBuildingId());
params.put("unit", dto.getUnit());
params.put("roomNo", dto.getRoomNo());
if (!list(params).isEmpty()) {
throw new RenException("房屋已存在");
}
checkData(dto);
EpidemicBuildingUnitEntity entity = ConvertUtils.sourceToTarget(dto, EpidemicBuildingUnitEntity.class);
insert(entity);
@ -322,6 +333,29 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
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
public void updateMaCode() {
Map<String, Object> params = new HashMap<>(4);
@ -342,13 +376,13 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
List<EpidemicBuildingUnitDTO> list = baseDao.listUnitHasNotUrl();
if (!list.isEmpty()) {
list.forEach(item -> {
String url = "";
try {
url = createHouseQrcodeUrl(item);
String name = item.getBuildingName() + StrConstant.HYPHEN + item.getUnit() + StrConstant.HYPHEN + item.getRoomNo();
String maUrl = createHouseQrCodeUrl(item.getRoomCode(), name);
item.setMaUrl(maUrl);
} catch (Exception e) {
throw new RenException("房屋码上传失败");
}
item.setMaUrl(url);
});
List<EpidemicBuildingUnitEntity> updateList = ConvertUtils.sourceToTarget(list, EpidemicBuildingUnitEntity.class);
updateBatchById(updateList);
@ -357,7 +391,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
}
@Override
public void downloadZip(HttpServletResponse response) throws Exception {
public void downloadZip(HouseQrcodeZipFormDTO formDTO, HttpServletResponse response) throws Exception {
//response
response.reset();
//文件的名称
@ -370,14 +404,14 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
response.setHeader("Content-Disposition", "attachment;filename=" + downloadFilename);
ZipOutputStream zip = new ZipOutputStream(response.getOutputStream());
List<EpidemicBuildingUnitDTO> houseList = baseDao.listUnitHasUrl();
List<EpidemicBuildingUnitDTO> houseList = baseDao.listUnitHasCode(formDTO);
String urlPre = qrCodeProperties.getPre();
for (EpidemicBuildingUnitDTO house : houseList) {
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnit() + house.getRoomNo(),
qrCodeProperties.getPre() + house.getRoomCode());
try {
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + StrConstant.HYPHEN + house.getUnit() + StrConstant.HYPHEN + house.getRoomNo(),
urlPre + house.getRoomCode());
byte[] buf = new byte[8192];
int len;
//添加到zip
@ -388,6 +422,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
zip.write(buf, 0, len);
}
inputStream.close();
zip.closeEntry();
} catch (IOException e) {
throw new RenException("组装zip失败");
}
@ -395,6 +430,43 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
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();
String name = house.getBuildingName() + StrConstant.HYPHEN + house.getUnit() + StrConstant.HYPHEN + house.getRoomNo();
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(name, 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
*
@ -570,6 +642,20 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
unitEntity.setStreetId(parentAndAllDeptDTO.getStreetId().toString());
unitEntity.setStreetName(parentAndAllDeptDTO.getStreet());
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();
entity.setIdCard(item.getIdCard());
entity.setUnitId(unitEntity.getId());
@ -647,7 +733,7 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
public Result<HouseInfoResultDTO> getHouseInfo(GetHouseInfoFormDTO formDTO) {
HouseInfoResultDTO houseInfoResultDTO = baseDao.getHouseInfo(formDTO);
if(houseInfoResultDTO != null){
if (houseInfoResultDTO != null) {
List<FamilyMemberInfoResultDTO> members = epidemicUnitOwnerDao.getFamilyMemberInfoByUnitId(houseInfoResultDTO.getId());
houseInfoResultDTO.setMembers(members);
}
@ -656,11 +742,11 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
return new Result<HouseInfoResultDTO>().ok(houseInfoResultDTO);
}
public String createHouseQrcodeUrl(EpidemicBuildingUnitDTO house) throws Exception {
public String createHouseQrCodeUrl(String roomCode, String name) throws Exception {
//url组成:小程序地址?房屋编码
String url = qrCodeProperties.getPre() + house.getRoomCode();
String fileName = house.getBuildingName() + house.getUnit() + house.getRoomNo() + ".png";
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnit() + house.getRoomNo(), url);
String url = qrCodeProperties.getPre() + roomCode;
String fileName = name + ".png";
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(name, url);
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
ImageIO.write(image, "png", out);

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

@ -101,10 +101,10 @@
LEFT JOIN epidemic_plot_coordinate p ON b.PLOT_ID = p.id
WHERE
u.DEL_FLAG = '0'
AND u.MA_URL IS NULL
AND (u.MA_URL IS NULL OR u.MA_URL = '')
</select>
<select id="listUnitHasUrl" resultType="com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO">
<select id="listUnitHasCode" resultType="com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO">
SELECT
u.*,
b.BUILDING_NAME,
@ -115,7 +115,8 @@
LEFT JOIN epidemic_plot_coordinate p ON b.PLOT_ID = p.id
WHERE
u.DEL_FLAG = '0'
AND u.MA_URL IS NOT NULL
AND u.GRID_ID = #{gridId}
AND u.ROOM_CODE IS NOT NULL
</select>
<select id="selectByBuildingId" resultType="com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity">
@ -183,6 +184,25 @@
epidemic_building_unit
</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
u.UNIT AS dictValue,

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

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

Loading…
Cancel
Save