Browse Source

生成小区二维码;批量生成

master
Jackwang 3 years ago
parent
commit
37856b2b02
  1. 33
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/NeighborHoodUrlEnum.java
  2. 14
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/NeighborHoodController.java
  3. 5
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcNeighborHoodEntity.java
  4. 10
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/NeighborHoodService.java
  5. 96
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java
  6. 3
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SaveCollectFormDTO.java
  7. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiCollectController.java

33
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;
}
}

14
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());
}
}

5
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;
}

10
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);
}

96
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<IcNeighborHoodDao,I
private IcOrganizationCodeInfoDao icOrganizationCodeInfoDao;
@Autowired
private IcOrganizationCodeInfoServiceImpl icOrganizationCodeInfoServiceImpl;
@Autowired
private OssFeignClient ossFeignClient;
@Override
@ -113,6 +130,63 @@ public class NeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao,I
icNeighborHoodPropertyDTO.setPropertyId(propertyId);
icNeighborHoodPropertyService.save(icNeighborHoodPropertyDTO);
}
//生成小区码
IcNeighborHoodEntity neiEntity = new IcNeighborHoodEntity();
neiEntity.setId(entity.getId());
try {
neiEntity.setQrcodeUrl(createNeiQrcodeUrl(entity.getId(),entity.getNeighborHoodName()));
} catch (Exception e) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"二维码生成失败","二维码生成失败");
}
baseDao.updateById(neiEntity);
}
/**
* @describe: 生成小区二维码地址
* @author wangtong
* @date 2022/8/4 14:28
* @params [NeighborHood]
* @return java.lang.String
*/
private String createNeiQrcodeUrl(String NeighborHood,String neighborHoodName) throws Exception {
if (org.apache.commons.lang3.StringUtils.isBlank(NeighborHood)) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "小区id不可为空", "小区id不可为空");
}
//二维码内容地址
String url = NeighborHoodUrlEnum.URL_PRE.getCode()+"?neiId="+NeighborHood;
String fileName = neighborHoodName + ".png";
BufferedImage image = BarcodeUtils.drawQRImage(neighborHoodName, url);
FileItem fileItem = new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, FileUtils.getAndCreateDirUnderEpmetFilesDir("temp").toFile())
.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName);
OutputStream os = fileItem.getOutputStream();
Result<UploadImgResultDTO> 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<IcNeighborHoodDao,I
ExcelPoiUtils.exportExcel(templatePath ,map,"小区信息录入表",response);
}
@Override
public Result createBatchNeiQrUrl(String customerId) {
//查询该客户下没有二维码的小区
QueryWrapper<IcNeighborHoodEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(IcNeighborHoodEntity::getCustomerId,customerId)
.eq(IcNeighborHoodEntity::getDelFlag, NumConstant.ZERO_STR);;
List<IcNeighborHoodEntity> 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(),"二维码生成失败<neiId>:"+nei.getId(),"二维码生成失败<neiId>:"+nei.getId());
}
}
baseDao.updateById(nei);
});
return new Result().ok("批量生成成功");
}
private List<IcNeighborHoodExcel> searchAllNeighborhood(IcHouseListFormDTO formDTO) {
IcNeighborHoodEntity neighbor = ConvertUtils.sourceToTarget(formDTO, IcNeighborHoodEntity.class);
neighbor.setDelFlag("0");

3
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<IcResiCollectMemFormDTO> memberList;
}

2
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);
}

Loading…
Cancel
Save