diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/NeighborHoodUrlEnum.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/NeighborHoodUrlEnum.java new file mode 100644 index 0000000000..cbe03f784f --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/NeighborHoodUrlEnum.java @@ -0,0 +1,33 @@ +package com.epmet.commons.tools.enums; + +public enum NeighborHoodUrlEnum { + + + URL_PRE("https://www.baidu.com/", "小区码跳转地址"); + + + private String code; + private String name; + + + NeighborHoodUrlEnum(String code, String name) { + this.code = code; + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java index ece90f219d..d318f9116b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java @@ -141,4 +141,18 @@ public class NeighborHoodController { TemplateExportParams templatePath = new TemplateExportParams("excel/neighbor_template.xlsx"); ExcelPoiUtils.exportExcel(templatePath ,new HashMap<>(),"小区信息录入表",response); } + + /** + * @describe: 批量生成小区二维码 + * @author wangtong + * @date 2022/8/4 15:15 + * @params [loginUser] + * @return com.epmet.commons.tools.utils.Result + */ + @NoRepeatSubmit + @PostMapping("createBatchNeiQrUrl") + public Result createBatchNeiQrUrl(@LoginUser TokenDto loginUser) { + return neighborHoodService.createBatchNeiQrUrl(loginUser.getCustomerId()); + + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcNeighborHoodEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcNeighborHoodEntity.java index f96edb70bb..26e278fd16 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcNeighborHoodEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcNeighborHoodEntity.java @@ -116,4 +116,9 @@ public class IcNeighborHoodEntity extends BaseEpmetEntity { * 实有楼栋数 */ private Integer realBuilding; + + /** + * 二维码地址 + */ + private String qrcodeUrl; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/NeighborHoodService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/NeighborHoodService.java index 24427a6657..b091fc4e32 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/NeighborHoodService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/NeighborHoodService.java @@ -18,6 +18,7 @@ package com.epmet.service; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.IcHouseListFormDTO; import com.epmet.dto.form.IcNeighborHoodAddFormDTO; import com.epmet.dto.form.IcNeighborHoodListFormDTO; @@ -51,4 +52,13 @@ public interface NeighborHoodService{ * @param response */ void exportNeighborhoodinfo(IcHouseListFormDTO formDTO, HttpServletResponse response) throws Exception ; + + /** + * @describe: 批量生成小区二维码 + * @author wangtong + * @date 2022/8/4 15:18 + * @params [customerId] + * @return com.epmet.commons.tools.utils.Result + */ + Result createBatchNeiQrUrl(String customerId); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java index 0f5079181b..139d978737 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java @@ -3,12 +3,17 @@ package com.epmet.service.impl; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.enums.NeighborHoodUrlEnum; import com.epmet.commons.tools.enums.OrgTypeEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ExceptionUtils; import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.BarcodeUtils; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.utils.FileUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.NeighborhoodConstant; import com.epmet.dao.CustomerGridDao; @@ -24,6 +29,7 @@ import com.epmet.dto.form.IcNeighborHoodListFormDTO; import com.epmet.dto.form.IcUserBelongToChangedFormDTO; import com.epmet.dto.result.IcNeighborHoodResultDTO; import com.epmet.dto.result.OrganizationCommunityDTO; +import com.epmet.dto.result.UploadImgResultDTO; import com.epmet.entity.IcHouseEntity; import com.epmet.entity.IcNeighborHoodEntity; import com.epmet.entity.IcNeighborHoodPropertyEntity; @@ -32,6 +38,7 @@ import com.epmet.enums.OrganizationTypeEnums; import com.epmet.excel.IcNeighborHoodExcel; import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.feign.OssFeignClient; import com.epmet.service.IcNeighborHoodPropertyService; import com.epmet.service.IcNeighborHoodService; import com.epmet.service.NeighborHoodService; @@ -39,13 +46,21 @@ import com.epmet.util.ExcelPoiUtils; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.fileupload.FileItem; +import org.apache.commons.fileupload.disk.DiskFileItemFactory; +import org.apache.http.entity.ContentType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; +import org.springframework.web.multipart.commons.CommonsMultipartFile; import javax.annotation.Resource; +import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.io.OutputStream; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -73,6 +88,8 @@ public class NeighborHoodServiceImpl extends BaseServiceImpl uploadResult = null; + try { + ImageIO.write(image, "png", os); + uploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem)); + } catch (Exception e) { + String errormsg = ExceptionUtils.getErrorStackTrace(e); + log.error("上传小区二维码:{}", errormsg); + } finally { + try { + os.close(); + } catch (IOException e) { + String errormsg = ExceptionUtils.getErrorStackTrace(e); + log.error("上传小区二维码关闭输出流:{}", errormsg); + } + try { + fileItem.delete(); + } catch (Exception e) { + String errormsg = ExceptionUtils.getErrorStackTrace(e); + log.error("上传小区二维码删除临时文件:{}", errormsg); + } + } + if (uploadResult == null || !uploadResult.success()) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "上传小区二维码失败", "上传小区二维码失败"); + } else { + return uploadResult.getData().getUrl(); + } } /** @@ -271,6 +345,28 @@ public class NeighborHoodServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda().eq(IcNeighborHoodEntity::getCustomerId,customerId) + .eq(IcNeighborHoodEntity::getDelFlag, NumConstant.ZERO_STR);; + List neiList = baseDao.selectList(queryWrapper); + //保存二维码地址 + neiList.forEach(nei->{ + if(org.apache.commons.lang3.StringUtils.isBlank(nei.getQrcodeUrl())){ + try { + nei.setQrcodeUrl(createNeiQrcodeUrl(nei.getId(),nei.getNeighborHoodName())); + } catch (Exception e) { + e.printStackTrace(); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"二维码生成失败:"+nei.getId(),"二维码生成失败:"+nei.getId()); + } + } + baseDao.updateById(nei); + }); + return new Result().ok("批量生成成功"); + } + private List searchAllNeighborhood(IcHouseListFormDTO formDTO) { IcNeighborHoodEntity neighbor = ConvertUtils.sourceToTarget(formDTO, IcNeighborHoodEntity.class); neighbor.setDelFlag("0"); diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SaveCollectFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SaveCollectFormDTO.java index 4504330e62..81f370d3c6 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SaveCollectFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SaveCollectFormDTO.java @@ -2,7 +2,6 @@ package com.epmet.dto.form; import lombok.Data; -import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; @@ -95,7 +94,7 @@ public class SaveCollectFormDTO implements Serializable { @NotNull(message = "居住成员人数不能为空") private Integer totalResi; - @Valid + @NotEmpty(message = "成员信息不能为空") private List memberList; } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java index d339ed039c..20767e69d2 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java @@ -178,7 +178,7 @@ public class IcResiCollectController { @PostMapping("saveCollectInfo") public Result saveCollectInfo(@RequestBody SaveCollectFormDTO formDTO) { //效验数据 - ValidatorUtils.validateEntity(formDTO, IcResiCollectFormDTO.class); + ValidatorUtils.validateEntity(formDTO, SaveCollectFormDTO.class); formDTO.setOrigin("internal");//固定为内部 return icResiCollectService.saveCollectInfo(formDTO); }