diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/HouseQrcodeEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/HouseQrcodeEnum.java index a188a82a3e..09f17a92a3 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/HouseQrcodeEnum.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/HouseQrcodeEnum.java @@ -9,7 +9,8 @@ package com.epmet.commons.tools.enums; */ public enum HouseQrcodeEnum { - SUFFIX(".png", "二维码格式的后缀"); + SUFFIX(".png", "二维码格式的后缀"), + PREFIX_KEY("house_qrcode_pre", "二维码格式的前缀key"); // PREFIX("https://epmet-dev.elinkservice.cn/cqrcode-ty/", "二维码地址的前缀"); diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseListFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseListFormDTO.java index 8697f4b375..060cfd4c19 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseListFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcHouseListFormDTO.java @@ -89,4 +89,6 @@ public class IcHouseListFormDTO extends PageFormDTO { * 结束日期 eg:20220505 */ private String updateEndDate; + + private String customerId; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseQrcodeConfigDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseQrcodeConfigDTO.java new file mode 100644 index 0000000000..d1b837b86f --- /dev/null +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcHouseQrcodeConfigDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @program: epmet-cloud + * @description: + * @author: wangtong + * @create: 2022-06-07 18:34 + **/ +@Data +public class IcHouseQrcodeConfigDTO implements Serializable { + + private String customerId; + + private String qrcodePre; +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index edc1629219..bb960749f5 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java @@ -32,6 +32,7 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.form.IcHouseFormDTO; +import com.epmet.commons.tools.enums.HouseQrcodeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.feign.ResultDataResolver; @@ -47,9 +48,9 @@ import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.IcHouseDao; -import com.epmet.dto.SysDictDataDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.entity.CustomerOrgParameterEntity; import com.epmet.feign.EpmetAdminOpenFeignClient; import com.epmet.feign.EpmetCommonServiceOpenFeignClient; import com.epmet.feign.EpmetUserOpenFeignClient; @@ -432,7 +433,7 @@ public class HouseController implements ResultDataResolver { /** * @return void - * @describe: 下载房屋编码 + * @describe: 下载房屋一户一码 * @author wangtong * @date 2022/6/1 17:24 * @params [formDTO, response] @@ -446,11 +447,11 @@ public class HouseController implements ResultDataResolver { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未查到房屋信息", "未查到房屋信息"); } //url组成:小程序地址?房屋编码 - Result> dict = epmetAdminOpenFeignClient.dictDataList("house_qrcode_pre"); - if (!dict.success() || CollectionUtils.isEmpty(dict.getData())) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "一户一码前缀查询异常", "一户一码前缀查询异常"); + CustomerOrgParameterEntity codePre = icHouseDao.selectByCustomerId(house.getCustomerId(), HouseQrcodeEnum.PREFIX_KEY.getCode()); + if(null == codePre){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "请先维护二维码前缀信息", "请先维护二维码前缀信息"); } - String url = dict.getData().get(0).getDictValue() + house.getHouseCode(); + String url = codePre.getParameterValue() + house.getHouseCode(); BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnitNum() + house.getDoorName(), url); //BufferedImage 转 InputStream ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); @@ -491,6 +492,7 @@ public class HouseController implements ResultDataResolver { //效验数据 LoginUserDetailsResultDTO loginUserDetail = getLoginUserDetailsResultDTO(loginUser, "【查询房屋】查询当前staff所在组织信息失败"); formDTO.setAgencyId(loginUserDetail.getAgencyId()); + formDTO.setCustomerId(loginUser.getCustomerId()); ValidatorUtils.validateEntity(formDTO); houseService.downloadZip(response, formDTO); } @@ -548,7 +550,7 @@ public class HouseController implements ResultDataResolver { */ @PostMapping("createHouseQrcodeUrl") public String createHouseQrcodeUrl(@RequestBody TestFormDTO formDTO) throws Exception { - return houseService.createHouseQrcodeUrl(formDTO.getHouseId()); + return houseService.createHouseQrcodeUrl(formDTO.getHouseId(),null); } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java index d53b39c57c..0b6bdcfd93 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java @@ -4,6 +4,7 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.ImportGeneralDTO; import com.epmet.dto.form.IcHouseListFormDTO; import com.epmet.dto.result.*; +import com.epmet.entity.CustomerOrgParameterEntity; import com.epmet.entity.IcHouseEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -144,4 +145,13 @@ public interface IcHouseDao extends BaseDao { * @params [] */ List selectBatchHouseCodeAndUrl(@Param("customerId") String customerId); + + /** + * @describe: 通过客户id查询 + * @author wangtong + * @date 2022/6/7 18:36 + * @params [customerId] + * @return com.epmet.dto.result.IcHouseQrcodeConfigDTO + */ + CustomerOrgParameterEntity selectByCustomerId(@Param("customerId") String customerId, @Param("preKey") String preKey); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java index 5aa9ee6986..701f164790 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java @@ -144,7 +144,7 @@ public interface HouseService { * @params [houseId] * @return java.lang.String */ - String createHouseQrcodeUrl(String houseId) throws Exception; + String createHouseQrcodeUrl(String houseId,String houseCode) throws Exception; /** * @describe: 根据房屋编码获取信息 diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index 20ad6c218a..3887f57c1b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -32,10 +32,7 @@ import com.epmet.dao.*; import com.epmet.dto.*; import com.epmet.dto.form.*; import com.epmet.dto.result.*; -import com.epmet.entity.IcHouseChangeDetailEntity; -import com.epmet.entity.IcHouseChangeRecordEntity; -import com.epmet.entity.IcHouseCodeInfoEntity; -import com.epmet.entity.IcHouseEntity; +import com.epmet.entity.*; import com.epmet.enums.HouseChangeEnums; import com.epmet.enums.HousePurposeEnums; import com.epmet.enums.HouseRentFlagEnums; @@ -152,7 +149,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { IcHouseEntity entity = new IcHouseEntity(); entity.setId(icHouseDTO.getId()); try { - entity.setHouseQrcodeUrl(createHouseQrcodeUrl(icHouseDTO.getId())); + entity.setHouseQrcodeUrl(createHouseQrcodeUrl(icHouseDTO.getId(),null)); } catch (Exception e) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"二维码生成失败","二维码生成失败"); } @@ -834,14 +831,14 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { List houseList = icHouseDao.searchHouseByPage(formDTO); //获取一户一码前缀地址 - Result> dict = epmetAdminOpenFeignClient.dictDataList("house_qrcode_pre"); - if (!dict.success() || CollectionUtils.isEmpty(dict.getData())) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "一户一码前缀查询异常", "一户一码前缀查询异常"); + CustomerOrgParameterEntity codePre = icHouseDao.selectByCustomerId(formDTO.getCustomerId(), HouseQrcodeEnum.PREFIX_KEY.getCode()); + if(null == codePre){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "请先维护二维码前缀信息", "请先维护二维码前缀信息"); } for (IcHouseListResultDTO house : houseList) { BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnitNum() + house.getDoorName(), - dict.getData().get(0).getDictValue() + house.getHouseCode()); + codePre.getParameterValue() + house.getHouseCode()); try { byte[] buf = new byte[8192]; @@ -920,7 +917,7 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { } @Override - public String createHouseQrcodeUrl(String houseId) throws Exception { + public String createHouseQrcodeUrl(String houseId,String houseCode) throws Exception { if (StringUtils.isBlank(houseId)) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "房屋id不可为空", "房屋id不可为空"); } @@ -929,11 +926,18 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "未查到房屋信息", "未查到房屋信息"); } //url组成:小程序地址?房屋编码 - Result> dict = epmetAdminOpenFeignClient.dictDataList("house_qrcode_pre"); - if (!dict.success() || CollectionUtils.isEmpty(dict.getData())) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "一户一码前缀查询异常", "一户一码前缀查询异常"); + CustomerOrgParameterEntity codePre = icHouseDao.selectByCustomerId(house.getCustomerId(), HouseQrcodeEnum.PREFIX_KEY.getCode()); + if(null == codePre){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "请先维护二维码前缀信息", "请先维护二维码前缀信息"); } - String url = dict.getData().get(0).getDictValue() + house.getHouseCode(); + //默认使用传参的houseCode,如果没有则使用数据库查询到的houseCode + String url = ""; + if(StringUtils.isBlank(houseCode)){ + url = codePre.getParameterValue() + house.getHouseCode(); + }else{ + url = codePre.getParameterValue() + houseCode; + } + String fileName = house.getBuildingName() + house.getUnitNum() + house.getDoorName() + ".png"; BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(house.getBuildingName() + house.getUnitNum() + house.getDoorName(), url); @@ -990,12 +994,13 @@ public class HouseServiceImpl implements HouseService, ResultDataResolver { if(StringUtils.isNotBlank(house.getAreaCode())){ String areaCode = numberAfterFillZero(house.getAreaCode(), NumConstant.TWELVE); entity.setHouseCode(createHouseCode(house.getCustomerId(),house.getBuildingId(),areaCode)); - } - try { - entity.setHouseQrcodeUrl(createHouseQrcodeUrl(house.getHouseId())); - } catch (Exception e) { - e.printStackTrace(); - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"二维码生成失败:"+house.getHouseId(),"二维码生成失败:"+house.getHouseId()); + + try { + entity.setHouseQrcodeUrl(createHouseQrcodeUrl(house.getHouseId(),entity.getHouseCode())); + } catch (Exception e) { + e.printStackTrace(); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"二维码生成失败:"+house.getHouseId(),"二维码生成失败:"+house.getHouseId()); + } } icHouseDao.updateById(entity); }); diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.22__alter_customer_org_parameter.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.22__alter_customer_org_parameter.sql new file mode 100644 index 0000000000..40b17e3ae3 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.22__alter_customer_org_parameter.sql @@ -0,0 +1,15 @@ + +alter table customer_org_parameter modify column PARAMETER_VALUE varchar(256); + + +INSERT INTO `epmet_gov_org`.`customer_org_parameter`(`ID`, `CUSTOMER_ID`, `PARAMETER_KEY`, `PARAMETER_NAME`, `PARAMETER_VALUE`, `DESCRIPTION`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('5', '3fdd0380deff5b30f45376cdf995d1c1', 'house_qrcode_pre', '一户一码前缀', 'https://epmet-cloud.elinkservice.cn/cqrcode-wxls/', '', '0', 0, 'APP_USER', '2022-06-08 09:22:52', 'APP_USER', '2022-06-08 09:22:52'); + +INSERT INTO `epmet_gov_org`.`customer_org_parameter`(`ID`, `CUSTOMER_ID`, `PARAMETER_KEY`, `PARAMETER_NAME`, `PARAMETER_VALUE`, `DESCRIPTION`, `DEL_FLAG`, `REVISION`, `CREATED_BY`, `CREATED_TIME`, `UPDATED_BY`, `UPDATED_TIME`) VALUES ('6', '1530123370795233281', 'house_qrcode_pre', '一户一码前缀', 'https://epmet-cloud.elinkservice.cn/cqrcode-sjt/', '', '0', 0, 'APP_USER', '2022-06-08 09:22:52', 'APP_USER', '2022-06-08 09:22:52'); + +update `ic_house` + set HOUSE_CODE = null, + HOUSE_QRCODE_URL = null; + +delete + FROM `ic_house_code_info` + where 1=1; diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index 0d63aa215f..81ca8c415d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml @@ -429,6 +429,12 @@ and(h.HOUSE_CODE is null or h.HOUSE_CODE = '') order by h.CREATED_TIME desc +