Browse Source

Merge branch 'feature/user_house_import'

master
zhangyuan 3 years ago
parent
commit
bd668ffbea
  1. 21
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/AppFamilyController.java
  2. 52
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java
  3. 2
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/PlotBuildingErrorController.java
  4. 7
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java
  5. 5
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java
  6. 35
      epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/impl/EpidemicBuildingUnitServiceImpl.java
  7. 3
      epdc-cloud-vim-yushan/src/main/resources/mapper/personroom/EpidemicBuildingUnitDao.xml

21
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;
/**
@ -129,6 +118,4 @@ public class AppFamilyController {
}
}

52
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,6 +110,11 @@ public class BuildingUnitController {
return epidemicBuildingUnitService.importEpidemicHouse(file, gridId);
}
/**
* 更新房屋自增序号
*
* @return
*/
@PostMapping("updateMaCode")
public Result updateMaCode() {
epidemicBuildingUnitService.updateMaCode();
@ -132,19 +127,6 @@ public class BuildingUnitController {
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);
epidemicBuildingUnitService.createQrCode(formDTO.getId(),response);
}
/**
* 单元下拉框
*
@ -173,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: 批量生成房屋的房屋编码和一户一档二维码
@ -192,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;

7
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;
@ -74,12 +74,12 @@ public interface EpidemicBuildingUnitDao extends BaseDao<EpidemicBuildingUnitEnt
/**
* 展示所有包含房屋码的数据
*
* @param
* @param formDTO
* @return java.util.List<io.pingyin.modules.personroom.dto.EpidemicBuildingUnitDTO>
* @author zhy
* @date 2022/4/6 17:22
*/
List<EpidemicBuildingUnitDTO> listUnitHasCode();
List<EpidemicBuildingUnitDTO> listUnitHasCode(HouseQrcodeZipFormDTO formDTO);
/**
* 获取详情
@ -138,6 +138,7 @@ public interface EpidemicBuildingUnitDao extends BaseDao<EpidemicBuildingUnitEnt
/**
* 获取房屋信息
*
* @param formDTO
* @return
*/

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

@ -22,9 +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.HouseQrcodeFormDTO;
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;
@ -186,7 +185,7 @@ 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;
/**
* 实时生成一户一码

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

@ -38,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;
@ -169,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);
@ -368,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);
@ -383,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();
//文件的名称
@ -396,13 +404,13 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
response.setHeader("Content-Disposition", "attachment;filename=" + downloadFilename);
ZipOutputStream zip = new ZipOutputStream(response.getOutputStream());
List<EpidemicBuildingUnitDTO> houseList = baseDao.listUnitHasCode();
String urlRre = qrCodeProperties.getPre();
List<EpidemicBuildingUnitDTO> houseList = baseDao.listUnitHasCode(formDTO);
String urlPre = qrCodeProperties.getPre();
for (EpidemicBuildingUnitDTO house : houseList) {
try {
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnit() + house.getRoomNo(),
urlRre + house.getRoomCode());
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + StrConstant.HYPHEN + house.getUnit() + StrConstant.HYPHEN + house.getRoomNo(),
urlPre + house.getRoomCode());
byte[] buf = new byte[8192];
int len;
@ -431,7 +439,8 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl<EpidemicBui
}
//url组成:小程序地址?房屋编码
String url = qrCodeProperties.getPre() + house.getRoomCode();
BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnit() + house.getRoomNo(), url);
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);
@ -733,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() + StrConstant.HYPHEN + house.getUnit() + StrConstant.HYPHEN + 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);

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

@ -101,7 +101,7 @@
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="listUnitHasCode" resultType="com.elink.esua.epdc.dto.personroom.EpidemicBuildingUnitDTO">
@ -115,6 +115,7 @@
LEFT JOIN epidemic_plot_coordinate p ON b.PLOT_ID = p.id
WHERE
u.DEL_FLAG = '0'
AND u.GRID_ID = #{gridId}
AND u.ROOM_CODE IS NOT NULL
</select>

Loading…
Cancel
Save