From 7519f9a17a3f936c3a608630f1796a17fc38aa01 Mon Sep 17 00:00:00 2001 From: zhangyuan Date: Tue, 14 Jun 2022 10:51:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=BF=E5=B1=8B=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/EpidemicUserInfoService.java | 7 +- .../controller/BuildingUnitController.java | 39 ++------ .../dao/EpidemicBuildingUnitDao.java | 6 +- .../personroom/dao/EpidemicUnitOwnerDao.java | 11 +++ .../service/EpidemicBuildingUnitService.java | 22 +++++ .../impl/EpidemicBuildingUnitServiceImpl.java | 95 +++++++++++++++++-- .../personroom/EpidemicBuildingUnitDao.xml | 23 ++++- .../personroom/EpidemicUnitOwnerDao.xml | 7 ++ 8 files changed, 162 insertions(+), 48 deletions(-) diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/EpidemicUserInfoService.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/EpidemicUserInfoService.java index 6de01a2..8b25514 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/epidemic/service/EpidemicUserInfoService.java +++ b/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; diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java index 1c6e857..7836a3c 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/BuildingUnitController.java +++ b/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(); } + @PostMapping("updateErrorRoom") + public Result updateErrorRoom() { + epidemicBuildingUnitService.updateErrorRoom(); + return new Result(); + } + /** * @return void * @describe: 下载房屋编码 @@ -136,38 +142,7 @@ public class BuildingUnitController { @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("生成房屋码失败"); - } + epidemicBuildingUnitService.createQrCode(formDTO.getId(),response); } /** diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java index 7f58b42..4eecd47 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicBuildingUnitDao.java +++ b/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 listUnitHasNotUrl(); /** - * 展示所有没有二维码的房屋 + * 展示所有包含房屋码的数据 * * @param * @return java.util.List * @author zhy * @date 2022/4/6 17:22 */ - List listUnitHasUrl(); + List listUnitHasCode(); /** * 获取详情 @@ -113,6 +113,8 @@ public interface EpidemicBuildingUnitDao extends BaseDao getErrorRoom(); + /** * 单元列表下拉框 * diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicUnitOwnerDao.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicUnitOwnerDao.java index ebd0f34..9bfde1b 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/dao/EpidemicUnitOwnerDao.java +++ b/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 { */ 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); + /** * 根据身份证和房屋物理删除 * diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java index 9f55df7..031ac45 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/service/EpidemicBuildingUnitService.java +++ b/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.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.result.EpidemicBuildingUnitDetailResultDTO; import com.elink.esua.epdc.dto.personroom.result.EpidemicUnitInfoResultDTO; import com.elink.esua.epdc.vaccine.personroom.entity.EpidemicBuildingUnitEntity; @@ -131,6 +132,16 @@ public interface EpidemicBuildingUnitService extends CrudService getWrapper(Map 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 +138,8 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl 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); @@ -322,6 +325,29 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl list = baseDao.getErrorRoom(); + list.forEach(item -> { + log.info("正在处理" + item.getBuildingId() + "/" + item.getUnit() + "/" + item.getRoomNo()); + Map params = new HashMap<>(); + params.put("buildingId", item.getBuildingId().toString()); + params.put("unit", item.getUnit()); + params.put("roomNo", item.getRoomNo()); + List 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 params = new HashMap<>(4); @@ -370,14 +396,14 @@ public class EpidemicBuildingUnitServiceImpl extends CrudServiceImpl - SELECT u.*, b.BUILDING_NAME, @@ -115,7 +115,7 @@ 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.ROOM_CODE IS NOT NULL + +