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 9e8ffba..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 @@ -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.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; @@ -229,4 +231,11 @@ public interface EpidemicUserInfoService extends CrudService 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(); + } + } diff --git a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/AppFamilyController.java b/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/AppFamilyController.java index ec3b2df..cf4840a 100644 --- a/epdc-cloud-vim-yushan/src/main/java/com/elink/esua/epdc/vaccine/personroom/controller/AppFamilyController.java +++ b/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.dto.epidemic.DictOptionDTO; 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.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.*; import com.elink.esua.epdc.dto.personroom.result.EpidemicPlotCoordinateResultDTO; import com.elink.esua.epdc.vaccine.epidemic.service.EpidemicUserInfoService; import com.elink.esua.epdc.vaccine.personroom.excel.EpidemicPlotCoordinateExcel; @@ -117,6 +114,20 @@ public class AppFamilyController { 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); + } + 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 getHouseInfo(GetHouseInfoFormDTO formDTO) { HouseInfoResultDTO houseInfoResultDTO = baseDao.getHouseInfo(formDTO); - List members = epidemicUnitOwnerDao.getFamilyMemberInfoByUnitId(houseInfoResultDTO.getId()); - houseInfoResultDTO.setMembers(members); + if(houseInfoResultDTO != null){ + List members = epidemicUnitOwnerDao.getFamilyMemberInfoByUnitId(houseInfoResultDTO.getId()); + houseInfoResultDTO.setMembers(members); + } + return new Result().ok(houseInfoResultDTO); } @@ -656,7 +736,7 @@ 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 + +