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
ccf097cebf
  1. 8
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/controller/EpidemicUserErrorController.java
  2. 42
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/excel/EpidemicUserError4RoomExcel.java
  3. 2
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/impl/EpidemicUserInfoServiceImpl.java
  4. 156
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/utils/FileUtils.java
  5. 30
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/feign/VimOssFeignClient.java
  6. 22
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/feign/fallback/VimOssFeignClientFallback.java
  7. 26
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java
  8. 20
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java
  9. 5
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicBuildingUnitEntity.java
  10. 22
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java
  11. 135
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicBuildingUnitServiceImpl.java
  12. 28
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml

8
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/controller/EpidemicUserErrorController.java

@ -88,4 +88,12 @@ public class EpidemicUserErrorController {
ExcelUtils.exportExcelToTarget(response, null, list, EpidemicUserErrorExcel.class);
}
@GetMapping("export4Room")
@LogOperation("导出")
public void export4Room(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<EpidemicUserErrorDTO> list = epidemicUserErrorService.getErrorInfoByMax();
ExcelUtils.exportExcelToTarget(response, null, list, EpidemicUserErrorExcel.class);
}
}

42
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/excel/EpidemicUserError4RoomExcel.java

@ -0,0 +1,42 @@
package com.elink.esua.epdc.vaccine.epidemic.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
/**
* 错误人员信息表
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0 2021-03-02
*/
@Data
public class EpidemicUserError4RoomExcel {
@Excel(name = "错误信息")
private String errorInfo;
@Excel(name = "姓名")
private String userName;
@Excel(name = "身份证号码")
private String selfIdentityNo;
@Excel(name = "联系电话")
private String mobile;
@Excel(name = "小区")
private String plot;
@Excel(name = "楼号")
private String buildingNo;
@Excel(name = "单元")
private String unit;
@Excel(name = "房号")
private String roomNo;
@Excel(name = "与户主关系")
private String relation;
}

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

@ -777,6 +777,8 @@ public class EpidemicUserInfoServiceImpl extends CrudServiceImpl<EpidemicUserInf
} catch (Exception e1) {
e1.printStackTrace();
throw new RenException("导入失败:请检查导入模板或导入数据!");
} finally {
ExcelUtils.deleteAllFilesOfDir(f);
}
return new Result();
}

156
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/utils/FileUtils.java

@ -0,0 +1,156 @@
package com.elink.esua.epdc.vaccine.epidemic.utils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
/**
* @author kamui
*/
@Slf4j
public class FileUtils {
/**
* epmet文件根路径
*/
private static Path epmetFilePath;
static {
// linux || mac
epmetFilePath = Paths.get("/opt/epmet_files");
// windows
}
/**
* 获取在epmetfiles下的文件路径,输入相对路径即可获取完整绝对路径
* @param pathParts 目录片段可以是文件夹或者文件名
* @return
*/
public static Path getPathUnderEpmetFilesDir(String... pathParts) {
Path path;
if (pathParts == null || pathParts.length == 0) {
path = epmetFilePath.resolve("temp");
} else {
path = Paths.get(epmetFilePath.toString(), pathParts);
}
return path;
}
/**
* 创建并且返回epmet_files下的文件夹
* @param dirParts 文件夹列表
* @return
* @throws IOException
*/
public static Path getAndCreateDirUnderEpmetFilesDir(String... dirParts) throws IOException {
Path pathUnderEpmetFilesDir = getPathUnderEpmetFilesDir(dirParts);
if (Files.notExists(pathUnderEpmetFilesDir)) {
Files.createDirectories(pathUnderEpmetFilesDir);
}
return pathUnderEpmetFilesDir;
}
/**
* 创建临时文件
*
* @param inputStream
* @param name 文件名
* @param ext 扩展名
* @param tmpDirFile 临时文件夹目录
*/
public static File createTmpFile(InputStream inputStream, String name, String ext, File tmpDirFile) throws IOException {
File tmpFile;
if (tmpDirFile == null) {
tmpFile = File.createTempFile(name, '.' + ext);
} else {
tmpFile = File.createTempFile(name, '.' + ext, tmpDirFile);
}
tmpFile.deleteOnExit();
FileOutputStream fos = new FileOutputStream(tmpFile);
try {
int read = 0;
byte[] bytes = new byte[1024 * 100];
while ((read = inputStream.read(bytes)) != -1) {
fos.write(bytes, 0, read);
}
fos.flush();
} catch (Exception e) {
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
}
}
}
return tmpFile;
}
/**
* 创建临时文件
*
* @param inputStream
* @param name 文件名
* @param ext 扩展名
*/
public static File createTmpFile(InputStream inputStream, String name, String ext) throws IOException {
return createTmpFile(inputStream, name, ext, null);
}
/**
* 将classpath文件复制到宿主机
* @param fileName
* @return
* @throws IOException
*/
public static String copyClassPathResourcesToHostMachine(String fileName, String fileClassPath, String fileHostPath, Class loaderClass) throws IOException {
// 宿主机目录准备
if (StringUtils.isNotBlank(fileHostPath) && !fileHostPath.endsWith("/")) {
fileHostPath = fileHostPath.concat("/");
}
String homeDir = System.getProperty("user.home");
Path epmetFilesPath = Paths.get(homeDir, "epmet_files", fileHostPath);
if (Files.notExists(epmetFilesPath)) {
Files.createDirectories(epmetFilesPath);
}
Path templateFilePath = epmetFilesPath.resolve(fileName);
String templateFilePathStr = templateFilePath.toString();
if (Files.exists(templateFilePath)) {
return templateFilePathStr;
}
if (StringUtils.isNotBlank(fileClassPath) && !fileClassPath.endsWith("/")) {
fileClassPath = fileClassPath.concat("/");
}
// 将项目中的模板拷贝至用户家目录中
OutputStream os = null;
InputStream is = null;
try {
is = loaderClass.getClassLoader().getResourceAsStream(fileClassPath + fileName);
os = new FileOutputStream(templateFilePathStr);
IOUtils.copy(is, os);
} finally {
if (is != null) {
is.close();
}
if (os != null) {
os.close();
}
}
return templateFilePathStr;
}
}

30
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/feign/VimOssFeignClient.java

@ -0,0 +1,30 @@
package com.elink.esua.epdc.vaccine.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UploadToOssDTO;
import com.elink.esua.epdc.vaccine.feign.fallback.VimOssFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
/**
* @author work@yujt.net.cn
* @date 19/9/19 10:12
*/
@FeignClient(name = ServiceConstant.EPDC_OSS_SERVER, fallback = VimOssFeignClientFallback.class)
public interface VimOssFeignClient {
/**
* File文件上传到文件服务器
*
* @param dto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.lang.String>
* @author work@yujt.net.cn
* @date 2019/9/19 10:15
*/
@PostMapping(value = "oss/file/uploadFile", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<String> uploadFile(UploadToOssDTO dto);
}

22
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/feign/fallback/VimOssFeignClientFallback.java

@ -0,0 +1,22 @@
package com.elink.esua.epdc.vaccine.feign.fallback;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.UploadToOssDTO;
import com.elink.esua.epdc.vaccine.feign.VimOssFeignClient;
import org.springframework.stereotype.Component;
/**
* @author work@yujt.net.cn
* @date 19/9/19 10:12
*/
@Component
public class VimOssFeignClientFallback implements VimOssFeignClient {
@Override
public Result<String> uploadFile(UploadToOssDTO dto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_OSS_SERVER, "uploadFile", dto.getFileName());
}
}

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

@ -31,7 +31,6 @@ import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
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.EpidemicPlotBuildingDTO;
import com.elink.esua.epdc.dto.personroom.form.HouseQrcodeFormDTO;
import com.elink.esua.epdc.dto.personroom.result.EpidemicBuildingUnitDetailResultDTO;
import com.elink.esua.epdc.vaccine.epidemic.utils.HouseQRcodeUtils;
@ -199,4 +198,29 @@ public class BuildingUnitController {
return new Result<List<DictOptionDTO>>().ok(list);
}
/**
* @return java.lang.String
* @describe: 批量生成房屋的房屋编码和一户一档二维码
* @author wangtong
* @date 2022/6/6 14:39
* @params []
*/
@PostMapping("createBatchHouseCodeAndUrl")
public Result createBatchHouseCodeAndUrl() {
return epidemicBuildingUnitService.createBatchHouseCodeAndUrl();
}
/**
* @return void
* @describe: 批量下载一户一档的二维码
* @author wangtong
* @date 2022/5/31 17:58
* @params [loginUser, formDTO, response]
*/
@PostMapping(value = "/downloadZip")
public void downloadZip(HttpServletResponse response) throws Exception {
epidemicBuildingUnitService.downloadZip(response);
}
}

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

@ -61,6 +61,26 @@ public interface EpidemicBuildingUnitDao extends BaseDao<EpidemicBuildingUnitEnt
*/
List<EpidemicBuildingUnitDTO> getUnitPage(Map<String, Object> params);
/**
* 展示所有没有二维码的房屋
*
* @param
* @return java.util.List<io.pingyin.modules.personroom.dto.EpidemicBuildingUnitDTO>
* @author zhy
* @date 2022/4/6 17:22
*/
List<EpidemicBuildingUnitDTO> listUnitHasNotUrl();
/**
* 展示所有没有二维码的房屋
*
* @param
* @return java.util.List<io.pingyin.modules.personroom.dto.EpidemicBuildingUnitDTO>
* @author zhy
* @date 2022/4/6 17:22
*/
List<EpidemicBuildingUnitDTO> listUnitHasUrl();
/**
* 获取详情
*

5
epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/entity/EpidemicBuildingUnitEntity.java

@ -180,4 +180,9 @@ public class EpidemicBuildingUnitEntity extends BasePingyinEntity {
* 房屋码(5位数字自增)
*/
private Integer roomMaCode;
/**
* 二维码
*/
private String maUrl;
}

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

@ -29,6 +29,7 @@ import com.elink.esua.epdc.dto.personroom.result.EpidemicUnitInfoResultDTO;
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@ -129,6 +130,7 @@ public interface EpidemicBuildingUnitService extends CrudService<EpidemicBuildin
* @date 2022/6/9 17:24
*/
void updateMaCode();
/**
* 单元列表下拉框
*
@ -151,9 +153,29 @@ public interface EpidemicBuildingUnitService extends CrudService<EpidemicBuildin
/**
* 获取房屋信息
*
* @param formDTO
* @return
*/
Result getHouseInfo(GetHouseInfoFormDTO formDTO);
/**
* @return com.epmet.commons.tools.utils.Result
* @describe: 批量生成房屋的房屋编码和一户一档二维码
* @author wangtong
* @date 2022/6/6 14:44
* @params []
*/
Result createBatchHouseCodeAndUrl();
/**
* @return void
* @describe: 批量下载一户一档的二维码
* @author wangtong
* @date 2022/5/31 18:00
* @params [formDTO]
*/
void downloadZip(HttpServletResponse response) throws Exception;
}

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

@ -29,8 +29,9 @@ 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.IdentityNoUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.utils.StreamUtils;
import com.elink.esua.epdc.config.QrCodeProperties;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.UploadToOssDTO;
import com.elink.esua.epdc.dto.epidemic.DictOptionDTO;
import com.elink.esua.epdc.dto.house.result.EpdcPopulationErrorResultDTO;
import com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO;
@ -41,12 +42,14 @@ import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserErrorEntity;
import com.elink.esua.epdc.vaccine.epidemic.entity.EpidemicUserInfoEntity;
import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicUserErrorService;
import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicUserInfoService;
import com.elink.esua.epdc.vaccine.epidemic.utils.HouseQRcodeUtils;
import com.elink.esua.epdc.vaccine.epidemic.utils.StreamUtils;
import com.elink.esua.epdc.vaccine.feign.VimAdminFeignClient;
import com.elink.esua.epdc.vaccine.feign.VimOssFeignClient;
import com.elink.esua.epdc.vaccine.house.excel.BaseResidentInformationUpdateExcel;
import com.elink.esua.epdc.vaccine.personroom.dao.EpidemicBuildingUnitDao;
import com.elink.esua.epdc.vaccine.personroom.dao.EpidemicUnitOwnerDao;
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity;
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicPlotBuildingEntity;
import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicUnitOwnerEntity;
import com.elink.esua.epdc.vaccine.personroom.redis.EpidemicBuildingUnitRedis;
import com.elink.esua.epdc.vaccine.personroom.service.EpidemicBuildingUnitService;
@ -59,9 +62,15 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
* 楼栋房屋信息
@ -94,6 +103,15 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
@Autowired
private EpidemicUnitOwnerDao epidemicUnitOwnerDao;
@Autowired
private VimOssFeignClient ossFeignClient;
//
// @Autowired
// private HouseQRcodeUtils houseQRcodeUtils;
@Autowired
private QrCodeProperties qrCodeProperties;
@Override
public PageData<EpidemicBuildingUnitDTO> page(Map<String, Object> params) {
IPage<EpidemicBuildingUnitDTO> page = getPage(params);
@ -317,6 +335,88 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
}
}
@Override
public Result createBatchHouseCodeAndUrl() {
epidemicPlotBuildingService.updateMaCode();
this.updateMaCode();
List<EpidemicBuildingUnitDTO> list = baseDao.listUnitHasNotUrl();
if (!list.isEmpty()) {
list.forEach(item -> {
String url = "";
try {
url = createHouseQrcodeUrl(item);
} catch (Exception e) {
throw new RenException("房屋码上传失败");
}
item.setMaUrl(url);
});
List<EpidemicBuildingUnitEntity> updateList = ConvertUtils.sourceToTarget(list, EpidemicBuildingUnitEntity.class);
updateBatchById(updateList);
}
return new Result().ok("批量生成成功");
}
@Override
public void downloadZip(HttpServletResponse response) throws Exception {
//response
response.reset();
//文件的名称
String downloadFilename = "二维码压缩包.zip";
//转换中文否则可能会产生乱码
downloadFilename = URLEncoder.encode(downloadFilename, "UTF-8");
// 指明response的返回对象是文件流
response.setContentType("application/octet-stream; charset=UTF-8");
//设置下载格式和名称
response.setHeader("Content-Disposition", "attachment;filename=" + downloadFilename);
ZipOutputStream zip = new ZipOutputStream(response.getOutputStream());
List<EpidemicBuildingUnitDTO> houseList = baseDao.listUnitHasUrl();
for (EpidemicBuildingUnitDTO house : houseList) {
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnit() + house.getRoomNo(),
qrCodeProperties.getPre() + house.getRoomCode());
try {
byte[] buf = new byte[8192];
int len;
//添加到zip
zip.putNextEntry(new ZipEntry(getFileName(house)));
InputStream inputStream = bufferedImageToInputStream(image);
//输出压缩包
while ((len = inputStream.read(buf)) > 0) {
zip.write(buf, 0, len);
}
inputStream.close();
} catch (IOException e) {
throw new RenException("组装zip失败");
}
}
zip.close();
}
/**
* 将BufferedImage转换为InputStream
*
* @param image: 图片流
* @date 2022/4/8 15:29
* @author YD
*/
public static InputStream bufferedImageToInputStream(BufferedImage image) throws IOException {
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, "png", os);
try (InputStream input = new ByteArrayInputStream(os.toByteArray())) {
return input;
}
}
/**
* 获取文件名
*/
public static String getFileName(EpidemicBuildingUnitDTO house) {
return house.getPlotName() + File.separator + house.getBuildingName() + File.separator + house.getUnit() + File.separator + house.getRoomNo() + ".png";
}
private void saveOrUpdateOwners(List<EpidemicUnitOwnerDTO> owners, Long unitId) {
List<EpidemicUnitOwnerDTO> dtoList = owners.stream().filter(item -> StringUtils.isNotBlank(item.getIdCard())).collect(Collectors.toList());
List<EpidemicUnitOwnerEntity> list = ConvertUtils.sourceToTarget(dtoList, EpidemicUnitOwnerEntity.class);
@ -435,19 +535,14 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
if (!updateList.isEmpty()) {
epidemicUserInfoService.updateBatchById(updateList);
}
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>A");
// 补充人房关系
int roomCode = getMaxCode();
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>B" + roomCode);
List<EpidemicUnitInfoResultDTO> unitList = listAllUnitInfo(parentAndAllDeptDTO.getGrid());
List<EpidemicUnitOwnerEntity> addOwner = new ArrayList<>();
for (EpidemicUserInfoEntity item : addList) {
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>C");
// 只有信息完整的才进行匹配
Optional<EpidemicUnitInfoResultDTO> unitOptional = unitList.stream().filter(unit -> unit.getPlotName().equals(item.getPlot()) && unit.getBuildingName().equals(item.getBuildingNo()) && unit.getUnit().equals(item.getUnit()) && unit.getRoomNo().equals(item.getRoomNo())).findFirst();
if (unitOptional.isPresent()) {
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>D");
EpidemicUnitOwnerEntity entity = new EpidemicUnitOwnerEntity();
entity.setIdCard(item.getIdCard());
entity.setUnitId(unitOptional.get().getUnitId());
@ -455,10 +550,8 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
entity.setMobile(item.getMobile());
addOwner.add(entity);
} else {
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>E" + buildingList.toString());
Optional<EpidemicPlotBuildingResultDTO> buildingOptional = buildingList.stream().filter(build -> build.getPlotName().equals(item.getPlot()) && build.getBuildingName().equals(item.getBuildingNo())).findFirst();
if (buildingOptional.isPresent()) {
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>F" + buildingOptional.get());
EpidemicBuildingUnitEntity unitEntity = new EpidemicBuildingUnitEntity();
unitEntity.setBuildingId(buildingOptional.get().getId());
unitEntity.setUnit(item.getUnit().trim().toUpperCase());
@ -560,4 +653,26 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
return new Result<HouseInfoResultDTO>().ok(houseInfoResultDTO);
}
public String createHouseQrcodeUrl(EpidemicBuildingUnitDTO house) 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);
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
ImageIO.write(image, "png", out);
UploadToOssDTO dto = new UploadToOssDTO();
dto.setFileName(fileName);
dto.setFileByte(out.toByteArray());
Result<String> ossResult = ossFeignClient.uploadFile(dto);
if (null == ossResult || !ossResult.success() || null == ossResult.getData()) {
throw new RenException("房屋码上传失败");
} else {
return ossResult.getData();
}
} catch (IOException e) {
throw new RenException("上传一户一档二维码失败");
}
}
}

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

@ -90,6 +90,34 @@
ORDER BY u.CREATED_TIME DESC
</select>
<select id="listUnitHasNotUrl" resultType="com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO">
SELECT
u.*,
b.BUILDING_NAME,
p.PLOT_NAME
FROM
epidemic_building_unit u
LEFT JOIN epidemic_plot_building b ON u.BUILDING_ID = b.id
LEFT JOIN epidemic_plot_coordinate p ON b.PLOT_ID = p.id
WHERE
u.DEL_FLAG = '0'
AND u.MA_URL IS NULL
</select>
<select id="listUnitHasUrl" resultType="com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO">
SELECT
u.*,
b.BUILDING_NAME,
p.PLOT_NAME
FROM
epidemic_building_unit u
LEFT JOIN epidemic_plot_building b ON u.BUILDING_ID = b.id
LEFT JOIN epidemic_plot_coordinate p ON b.PLOT_ID = p.id
WHERE
u.DEL_FLAG = '0'
AND u.MA_URL IS NOT NULL
</select>
<select id="selectByBuildingId" resultType="com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity">
SELECT
id

Loading…
Cancel
Save