From 03e2defded6bfa2a78e59bcaaa8ec4ff56d10913 Mon Sep 17 00:00:00 2001 From: zxc <1272811460@qq.com> Date: Wed, 26 Oct 2022 16:52:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E8=AE=B0=E7=A0=81=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/CustomerAgencyConstant.java | 3 + .../controller/IcEnterpriseController.java | 16 +++++ .../epmet/service/IcEnterpriseService.java | 12 ++++ .../service/impl/IcEnterpriseServiceImpl.java | 71 +++++++++++++++++-- 4 files changed, 96 insertions(+), 6 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerAgencyConstant.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerAgencyConstant.java index d738d662f8..c41372e2a7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerAgencyConstant.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/constant/CustomerAgencyConstant.java @@ -89,4 +89,7 @@ public interface CustomerAgencyConstant { String AREA_CODE_SWITCH_CLOSED="closed"; String AREA_CODE_SWITCH_OPEN="open"; + + String JUMP_URL = "http://192.168.1.140/epmet-oper/#/staffRegister?"; +// String JUMP_URL = "https://epmet-open.elinkservice.cn/epmet-oper-gov/#/staffRegister?"; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java index 01e3778203..7d9afd1a83 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcEnterpriseController.java @@ -343,4 +343,20 @@ public class IcEnterpriseController implements ResultDataResolver { icEnterpriseService.sendEnterprisePatrolRemindMessage(); return new Result(); } + + /** + * @Description 登记码导出 + * @param formDTO + * @param tokenDto + * @Author zxc + * @Date 2022/10/26 15:55 + */ + @PostMapping("qrCodeExport") + public void qrCodeExport(@RequestBody EnterprisePageFormDTO formDTO, @LoginUser TokenDto tokenDto, HttpServletResponse response) throws IOException { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setCurrentStaffId(tokenDto.getUserId()); + formDTO.setPageFlag(false); + icEnterpriseService.qrCodeExport(formDTO,response); + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java index 23790b5caa..e141e008e3 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcEnterpriseService.java @@ -10,7 +10,11 @@ import com.epmet.dto.result.EnterpriseDetailDTO; import com.epmet.dto.result.EnterprisePatrolResultDTO; import com.epmet.entity.IcEnterpriseEntity; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.nio.file.Path; +import java.util.List; import java.util.Map; /** @@ -91,4 +95,12 @@ public interface IcEnterpriseService extends BaseService { */ PageData page(Map params); + /** + * @Description 登记码导出 + * @param formDTO + * @Author zxc + * @Date 2022/10/26 15:55 + */ + void qrCodeExport(EnterprisePageFormDTO formDTO, HttpServletResponse response) throws IOException; + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java index d0f5a1ba08..2de6c29e74 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcEnterpriseServiceImpl.java @@ -23,10 +23,7 @@ import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache; import com.epmet.commons.tools.redis.common.bean.GridInfoCache; import com.epmet.commons.tools.security.user.LoginUserUtil; -import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.DateUtils; -import com.epmet.commons.tools.utils.FileUtils; -import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.utils.*; import com.epmet.constant.SmsTemplateConstant; import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.*; @@ -60,12 +57,22 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.commons.CommonsMultipartFile; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.awt.image.BufferedImage; import java.io.IOException; +import java.io.InputStream; import java.io.OutputStream; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.nio.file.Files; import java.nio.file.Path; import java.util.*; import java.util.stream.Collectors; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +import static com.epmet.constant.CustomerAgencyConstant.JUMP_URL; +import static com.epmet.service.impl.HouseServiceImpl.bufferedImageToInputStream; /** * 企事业单位表 @@ -303,8 +310,13 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl list = baseDao.selectList(formDTO); + List list = new ArrayList<>(); + if (formDTO.getPageFlag()){ + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getPageFlag()); + list = baseDao.selectList(formDTO); + }else { + list = baseDao.selectList(formDTO); + } PageInfo pageInfo = new PageInfo<>(list); if (!org.springframework.util.CollectionUtils.isEmpty(list)) { //规模名称 @@ -562,4 +574,51 @@ public class IcEnterpriseServiceImpl extends BaseServiceImpl list = list(formDTO).getList(); + if (CollectionUtils.isEmpty(list)){ + return; + } + response.reset(); + //文件的名称 + String downloadFilename = "登记码压缩包.zip"; + //转换中文否则可能会产生乱码 + downloadFilename = URLEncoder.encode(downloadFilename, "UTF-8"); + // 指明response的返回对象是文件流 + response.setContentType("application/octet-stream; charset=UTF-8"); + //设置下载格式和名称 + response.setHeader("Content-Disposition", "attachment;filename=" + downloadFilename); + ZipOutputStream zip = new ZipOutputStream(response.getOutputStream()); + for (EnterpriseDetailDTO l : list) { + try { + String content = JUMP_URL + "enterpriseId=" + l.getEnterpriseId() + "&customerId=" + formDTO.getCustomerId() + "&placeOrgName=" + l.getPlaceOrgName(); + BufferedImage image = HouseQRcodeUtils.drawHouseQRImage(l.getPlaceOrgName(), content); + byte[] buf = new byte[8192]; + int len; + //添加到zip + zip.putNextEntry(new ZipEntry(l.getPlaceOrgName()+l.getEnterpriseId()+".png")); + InputStream inputStream = bufferedImageToInputStream(image); + //输出压缩包 + while ((len = inputStream.read(buf)) > 0) { + zip.write(buf, 0, len); + } + inputStream.close(); + } catch (IOException e) { + log.error(e.getMessage()); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "组装zip信息有误", "组装zip信息有误"); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + zip.close(); + } + } \ No newline at end of file