From c14b3a54eb77a63f822fd50298362a9be8f69056 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Wed, 6 Sep 2023 11:37:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ding/controller/DingInfoPullController.java | 5 +++ .../pmapi/ding/task/OrganizationBatchGetTask.java | 47 +++++++++++++++++++++- .../gov/manage/GovProjectCollectionManage.java | 20 +++++---- .../pmapi/wps/manage/WpsConvertManage.java | 25 +----------- 4 files changed, 65 insertions(+), 32 deletions(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/ding/controller/DingInfoPullController.java b/pmapi/src/main/java/com/ningdatech/pmapi/ding/controller/DingInfoPullController.java index 356c8c0..516cf06 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/ding/controller/DingInfoPullController.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/ding/controller/DingInfoPullController.java @@ -84,6 +84,11 @@ public class DingInfoPullController { organizationBatchGetTask.batchGetOrganizationTask(); } + @GetMapping("/organization/{orgCode}") + public void organizationGetSubs(@PathVariable String orgCode) { + organizationBatchGetTask.organizationGetSubs(orgCode); + } + @GetMapping("/employeeByRegionCode/{regionCode}") public void employeeBatchGetByRegionCode(@PathVariable String regionCode) { employeeBatchGetTask.batchGetEmployeeTaskByRegionCode(regionCode); diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/OrganizationBatchGetTask.java b/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/OrganizationBatchGetTask.java index f183d2f..2845e5a 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/OrganizationBatchGetTask.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/ding/task/OrganizationBatchGetTask.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.common.collect.Lists; import com.ningdatech.basic.model.GenericResult; +import com.ningdatech.pmapi.common.constant.BizConst; import com.ningdatech.pmapi.ding.model.DingOrgInfoTreeDTO; import com.ningdatech.pmapi.organization.model.entity.DingOrganization; import com.ningdatech.pmapi.organization.service.IDingOrganizationService; @@ -21,6 +22,7 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -103,6 +105,50 @@ public class OrganizationBatchGetTask { } } + /** + * 更新 其 子单位 + * @param orgCode + */ + public void organizationGetSubs(String orgCode) { + log.info("----拉取浙政钉组织子单位开始---,顶级code:" + orgCode); + DingOrganization topOrg = iDingOrganizationService.getOne(Wrappers.lambdaQuery(DingOrganization.class) + .eq(DingOrganization::getOrganizationCode, orgCode) + .last(BizConst.LIMIT_1)); + // 顶级组织code + List topOrgCodes = Lists.newArrayList(orgCode); + GenericResult> listGenericResult = zwddClient.listOrganizationsByCodes(topOrgCodes); + log.info("listGenericResult: {}" + JSON.toJSONString(listGenericResult)); + List dingOrgInfoDtos = listGenericResult.getData(); + + for(DingOrgInfoDTO dingOrgInfo : dingOrgInfoDtos){ + DingOrganization old = iDingOrganizationService.getOne(Wrappers.lambdaQuery(DingOrganization.class) + .eq(DingOrganization::getOrganizationCode, dingOrgInfo.getOrganizationCode()) + .last(BizConst.LIMIT_1)); + if(Objects.nonNull(old)){ + log.info("该单位已经存在 :{}",old.getOrganizationName()); + continue; + } + + DingOrganization organization = new DingOrganization(); + organization.setOrganizationCode(dingOrgInfo.getOrganizationCode()); + organization.setOrganizationName(dingOrgInfo.getOrganizationName()); + //和顶级单位一个区域 + organization.setDivisionCode(topOrg.getDivisionCode()); + organization.setParentCode(dingOrgInfo.getParentCode()); + organization.setTypeName(dingOrgInfo.getTypeName()); + organization.setAddress(dingOrgInfo.getAddress()); + organization.setBusinessStripCodes(dingOrgInfo.getBusinessStripCodes()); + organization.setDisplayOrder(dingOrgInfo.getDisplayOrder()); + organization.setGmtCreate(LocalDateTime.now()); + organization.setInstitutionLevelCode(dingOrgInfo.getInstitutionLevelCode()); + organization.setParentName(dingOrgInfo.getParentName()); + iDingOrganizationService.save(organization); + } + + log.info("----拉取浙政钉组织子单位结束---,顶级code:" + orgCode); + + } + private void buildSaveRecordList(List treeDTOList, List saveRecordList) { if (CollectionUtils.isEmpty(treeDTOList)) { return; @@ -167,7 +213,6 @@ public class OrganizationBatchGetTask { } } } - } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/gov/manage/GovProjectCollectionManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/gov/manage/GovProjectCollectionManage.java index df0f4a0..a8e2e63 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/gov/manage/GovProjectCollectionManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/gov/manage/GovProjectCollectionManage.java @@ -796,14 +796,20 @@ public class GovProjectCollectionManage { private void uploadFileToProvincialOss(GovBizProjectApplyDTO apply, GovBizProjectApply oldApply,GovBizProjectApply saveApply) { if(checkFieldHas(apply.getBaseProjBasisFile(),oldApply,"baseProjBasisFile")){ - JSONArray fileArray = JSON.parseArray(apply.getBaseProjBasisFile()); + String[] baseProjBasisFileArr = apply.getBaseProjBasisFile().split(";"); StringJoiner sj = new StringJoiner(";"); - fileArray.forEach(j -> { - JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(j)); - byte[] btyes = wpsConvertManage.downloadToPdfStream(jsonObject.getLong("id")); - String oss = ProvincialManage.uploadToOss(btyes, jsonObject.getString("originalFileName")); - sj.add(oss); - }); + for(String baseProjBasisFile : baseProjBasisFileArr){ + JSONArray fileArray = JSON.parseArray(baseProjBasisFile); + fileArray.forEach(j -> { + JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(j)); + byte[] btyes = wpsConvertManage.downloadToPdfStream(jsonObject.getLong("id")); + String suffix = jsonObject.getString("suffix"); + String originalFileName = jsonObject.getString("originalFileName"); + String pdfName = originalFileName.replace(StrPool.DOT + suffix, ".pdf"); + String oss = ProvincialManage.uploadToOss(btyes, pdfName); + sj.add(oss); + }); + } saveApply.setBaseProjBasisFilePdf(sj.toString()); } projectApplyService.updateById(saveApply); diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/wps/manage/WpsConvertManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/wps/manage/WpsConvertManage.java index ce99659..2c399db 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/wps/manage/WpsConvertManage.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/wps/manage/WpsConvertManage.java @@ -13,15 +13,12 @@ import com.suwell.ofd.custom.agent.AtomAgent; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.stereotype.Component; - import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.net.URLEncoder; -import java.nio.file.Path; import java.util.ArrayList; import java.util.List; @@ -44,13 +41,11 @@ public class WpsConvertManage { @Value("${spring.profiles.active}") private String active; -// HTTPAgent ha = new HTTPAgent("http://127.0.0.1:8090"); //2、定义方法实现 多个文件合并转为1个pdf文件 public String offs2Pdf() { - AtomAgent ha = new AtomAgent("http://10.53.157.47"); + AtomAgent ha = new AtomAgent(WpsContant.WPS_CONVERT_URL_ONLINE); try { - //2-1、传参文件对象转换输出PDF文件 //1)、定义集合,存储待转换的原文件 List fileList =new ArrayList(); @@ -58,25 +53,10 @@ public class WpsConvertManage { OutputStream out = null; //3)、添加原文件到集合 fileList.add(new File("/temp/111.xlsx")); -// fileList.add(new File("D:/cs.doc")); -// fileList.add(new File("D:/a.pdf")); -// fileList.add(new File("D:\\555.ofd")); //4)、赋值转换后的pdf文件输出流 out=new FileOutputStream(new File("/temp/offices2_pdf.pdf")); //5)、调用方法,执行将多个文件转为pdf文件 ha.OFDToPDF(fileList, out); - - //2-2、传参文件流转换输出PDF文件(与2-1二选一即可) - //1)、定义集合,存储待转换的原文件(支持传文件流) -// Param[] params = new Param[] { -// new Param(PackEntry.wrap(new FileInputStream("D:\\temp\\111.ofd")), "ofd"), -// new Param(PackEntry.wrap(new FileInputStream("D:\\2.ofd")), "ofd"), -// new Param(PackEntry.wrap(new FileInputStream("D:\\T3.txt")), "txt") -// }; - //2)、赋值转换后的pdf文件输出流 -// out=new FileOutputStream(new File("D:/convert/offices_pdf.pdf")); - //3)、调用方法,执行将多个文件转为pdf文件 -// ha.OFDToPDF(params,out); return "转换成功"; } catch (Exception e) { log.error(e.getMessage()); @@ -164,8 +144,6 @@ public class WpsConvertManage { AtomAgent ha = new AtomAgent(WpsContant.WPS_CONVERT_URL_ONLINE); try (OSSObject ossObject = oss.getObject(file.getBucket(), file.getPath()); InputStream stream = ossObject.getObjectContent();) { - String fileName = null; - byte[] bytes = new byte[4096]; int read; //测试环境 转不了PDF 请求不了 WPS转换服务器 if(BizConst.DEV.equals(active)){ @@ -188,7 +166,6 @@ public class WpsConvertManage { //5)、调用方法,执行将多个文件转为pdf文件 ha.OFDToPDF(fileList, out); FileInputStream fileInputStream = new FileInputStream(pdfFile); - fileName = URLEncoder.encode(WpsContant.PDF_NAME, CharsetUtil.UTF_8); for(File f : fileList){ //用完就删 f.deleteOnExit();