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 1/2] =?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(); From 06da01fbf4ce0a66a42339ac31f2badd55a53ed1 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Thu, 7 Sep 2023 10:47:26 +0800 Subject: [PATCH 2/2] PDF --- .../ningdatech/pmapi/common/config/BeanConfig.java | 13 +++ .../gov/manage/GovProjectCollectionManage.java | 127 +++++++++++++++++---- .../pmapi/gov/model/entity/GovBizProjectApply.java | 13 +++ .../gov/model/entity/GovBizProjectApprove.java | 13 ++- .../gov/model/entity/GovBizProjectCimplement.java | 3 + 5 files changed, 145 insertions(+), 24 deletions(-) diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/config/BeanConfig.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/config/BeanConfig.java index 1dc5890..f176489 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/config/BeanConfig.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/config/BeanConfig.java @@ -17,12 +17,14 @@ import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.web.client.RestTemplate; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; /** @@ -106,4 +108,15 @@ public class BeanConfig { .setRetryHandler(new DefaultHttpRequestRetryHandler(2, true)) .build(); } + + @Bean + public ThreadPoolTaskExecutor getThreadPoolTaskExecutor(){ + ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor(); + threadPoolTaskExecutor.setCorePoolSize(5); + threadPoolTaskExecutor.setKeepAliveSeconds(200); + threadPoolTaskExecutor.setMaxPoolSize(10); + threadPoolTaskExecutor.setQueueCapacity(20); + threadPoolTaskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + return threadPoolTaskExecutor; + } } 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 a8e2e63..9c3d6ae 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 @@ -34,15 +34,21 @@ import com.ningdatech.pmapi.wps.manage.WpsConvertManage; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.client.RestTemplate; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; import java.lang.reflect.Field; import java.time.LocalDateTime; import java.util.*; @@ -80,6 +86,8 @@ public class GovProjectCollectionManage { private final WpsConvertManage wpsConvertManage; + private final ThreadPoolTaskExecutor threadPoolTaskExecutor; + @Value("${project.push-url}") private String pushUrl; @@ -89,6 +97,9 @@ public class GovProjectCollectionManage { @Value("${project.delete-all-url}") private String deleteAllUrl; + @Value("${spring.profiles.active}") + private String active; + public List dictionary(String type) { List dictionaries = dictionaryService.list(Wrappers.lambdaQuery(GovProjectDictionary.class) @@ -430,7 +441,7 @@ public class GovProjectCollectionManage { saveApply.setUpdateBy(user.getUsername()); saveApply.setUpdateOn(LocalDateTime.now()); if(projectApplyService.saveOrUpdate(saveApply)){ - uploadFileToProvincialOss(apply,oldApply,saveApply); + threadPoolTaskExecutor.execute(() -> uploadFileToProvincialOssApply(apply,oldApply,saveApply)); } } @@ -454,7 +465,9 @@ public class GovProjectCollectionManage { saveApprove.setAreaCode(RegionConst.RC_LS); saveApprove.setUpdateBy(user.getUsername()); saveApprove.setUpdateOn(LocalDateTime.now()); - approveService.saveOrUpdate(saveApprove); + if(approveService.saveOrUpdate(saveApprove)){ + threadPoolTaskExecutor.execute(() -> uploadFileToProvincialOssApprove(approve,oldApprove,saveApprove)); + } } // 4.保存 建设项目 实施信息 @@ -478,7 +491,9 @@ public class GovProjectCollectionManage { saveCimplement.setBizTime(LocalDateTime.now()); saveCimplement.setUpdateBy(user.getUsername()); saveCimplement.setUpdateOn(LocalDateTime.now()); - cimplementService.saveOrUpdate(saveCimplement); + if(cimplementService.saveOrUpdate(saveCimplement)){ + threadPoolTaskExecutor.execute(() -> uploadFileToProvincialOssCimplement(cimplement,oldCimplement,saveCimplement)); + } } // 5.保存 运维项目 实施信息 @@ -793,45 +808,93 @@ public class GovProjectCollectionManage { * @param apply * @param oldApply */ - private void uploadFileToProvincialOss(GovBizProjectApplyDTO apply, + private void uploadFileToProvincialOssApply(GovBizProjectApplyDTO apply, GovBizProjectApply oldApply,GovBizProjectApply saveApply) { if(checkFieldHas(apply.getBaseProjBasisFile(),oldApply,"baseProjBasisFile")){ - String[] baseProjBasisFileArr = apply.getBaseProjBasisFile().split(";"); - StringJoiner sj = new StringJoiner(";"); - 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); - }); - } + StringJoiner sj = convertAndUpload(apply.getBaseProjBasisFile()); saveApply.setBaseProjBasisFilePdf(sj.toString()); } + if(checkFieldHas(apply.getBaseProjApplyFile(),oldApply,"baseProjApplyFile")){ + StringJoiner sj = convertAndUpload(apply.getBaseProjApplyFile()); + saveApply.setBaseProjApplyFilePdf(sj.toString()); + } + if(checkFieldHas(apply.getBaseOperatMaintenFile(),oldApply,"baseOperatMaintenFile")){ + StringJoiner sj = convertAndUpload(apply.getBaseOperatMaintenFile()); + saveApply.setBaseOperatMaintenFilePdf(sj.toString()); + } + if(checkFieldHas(apply.getBaseResearchReportFile(),oldApply,"baseResearchReportFile")){ + StringJoiner sj = convertAndUpload(apply.getBaseResearchReportFile()); + saveApply.setBaseResearchReportFilePdf(sj.toString()); + } + if(checkFieldHas(apply.getBaseProjOtherFile(),oldApply,"baseProjOtherFile")){ + StringJoiner sj = convertAndUpload(apply.getBaseProjOtherFile()); + saveApply.setBaseProjOtherFilePdf(sj.toString()); + } projectApplyService.updateById(saveApply); } - private Boolean checkFieldHas(String field,GovBizProjectApply oldApply,String fieldName){ + private void uploadFileToProvincialOssApprove(GovBizProjectApproveDTO approve, GovBizProjectApprove oldApprove, GovBizProjectApprove saveApprove) { + if(checkFieldHas(approve.getApprovalFile(),oldApprove,"approvalFile")){ + StringJoiner sj = convertAndUpload(approve.getApprovalFile()); + saveApprove.setApprovalFilePdf(sj.toString()); + } + if(checkFieldHas(approve.getBaseReviewCommentsFile(),oldApprove,"baseReviewCommentsFile")){ + StringJoiner sj = convertAndUpload(approve.getBaseReviewCommentsFile()); + saveApprove.setBaseReviewCommentsFilePdf(sj.toString()); + } + if(checkFieldHas(approve.getPreliminaryDesignFile(),oldApprove,"preliminaryDesignFile")){ + StringJoiner sj = convertAndUpload(approve.getPreliminaryDesignFile()); + saveApprove.setPreliminaryDesignFilePdf(sj.toString()); + } + approveService.updateById(saveApprove); + } + + private void uploadFileToProvincialOssCimplement(GovBizProjectCimplementDTO cimplement, GovBizProjectCimplement oldCimplement, GovBizProjectCimplement saveCimplement) { + if(checkFieldHas(cimplement.getBaseChanFile(),oldCimplement,"baseChanFile")){ + StringJoiner sj = convertAndUpload(cimplement.getBaseChanFile()); + saveCimplement.setBaseChanFilePdf(sj.toString()); + } + cimplementService.updateById(saveCimplement); + } + + private StringJoiner convertAndUpload(String baseProjBasisFile) { + String[] baseProjBasisFileArr = baseProjBasisFile.split(";"); + StringJoiner sj = new StringJoiner(";"); + for(String bpb : baseProjBasisFileArr){ + JSONArray fileArray = JSON.parseArray(bpb); + 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"); + if(!BizConst.DEV.equals(active)){ + originalFileName = originalFileName.replace(StrPool.DOT + suffix, ".pdf"); + } +// upload(btyes,"/temp",originalFileName); + String oss = ProvincialManage.uploadToOss(btyes, originalFileName); + sj.add(oss); + }); + } + return sj; + } + + private Boolean checkFieldHas(String field, Object record, String fieldName){ if(StringUtils.isBlank(field)){ return Boolean.FALSE; } //如果没有老值 - if(Objects.isNull(oldApply)){ + if(Objects.isNull(record)){ return Boolean.TRUE; } //和老值做个对比 不一样则true - Class clazz = oldApply.getClass(); + Class clazz = record.getClass(); String oldFiled = StringUtils.EMPTY; try { Field fieldDeclared = clazz.getDeclaredField(fieldName); fieldDeclared.setAccessible(Boolean.TRUE); - oldFiled = Objects.nonNull(fieldDeclared.get(oldApply)) ? String.valueOf(fieldDeclared.get(oldApply)) : null; + oldFiled = Objects.nonNull(fieldDeclared.get(record)) ? String.valueOf(fieldDeclared.get(record)) : null; } catch (NoSuchFieldException e) { log.error("转换PDF文件出错" + e); } catch (IllegalAccessException e) { @@ -844,4 +907,24 @@ public class GovProjectCollectionManage { return Boolean.FALSE; } + + /** + * @param bytes byte数组 + * @param fileRoute 文件路径 + * @param fileName 文件名 + */ + public static void upload(byte[] bytes,String fileRoute,String fileName) { + try { + File directory=new File(fileRoute); + if (!directory.exists()){ + directory.mkdirs(); + } + File file = new File(directory, fileName); + BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); + bos.write(bytes); + bos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectApply.java b/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectApply.java index b5ec5d6..e2fc162 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectApply.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectApply.java @@ -152,4 +152,17 @@ public class GovBizProjectApply implements Serializable { @ApiModelProperty("立项依据材料PDF版") private String baseProjBasisFilePdf; + + @ApiModelProperty("项目申报书PDF版") + private String baseProjApplyFilePdf; + + @ApiModelProperty("运维方案PDF版") + private String baseOperatMaintenFilePdf; + + @ApiModelProperty("可研报告PDF版") + private String baseResearchReportFilePdf; + + @ApiModelProperty("其它文件PDF版") + private String baseProjOtherFilePdf; + } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectApprove.java b/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectApprove.java index 4542fb7..6230edb 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectApprove.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectApprove.java @@ -36,7 +36,7 @@ public class GovBizProjectApprove implements Serializable { @ApiModelProperty("基本项目名称") private String baseProjName; - @ApiModelProperty("'发改项目代码'") + @ApiModelProperty("发改项目代码") private String baseDevelopCode; @ApiModelProperty("'财政项目代码'") @@ -54,7 +54,7 @@ public class GovBizProjectApprove implements Serializable { @ApiModelProperty("建议总投资") private BigDecimal baseExpertTotalMoney; - @ApiModelProperty("'建议年度预算'") + @ApiModelProperty("建议年度预算") private BigDecimal baseExpertYearMoney; @ApiModelProperty("立项批复文件") @@ -99,4 +99,13 @@ public class GovBizProjectApprove implements Serializable { @ApiModelProperty("最后修改人") private String updateBy; + + @ApiModelProperty("立项批复文件") + private String approvalFilePdf; + + @ApiModelProperty("评审意见附件PDF") + private String baseReviewCommentsFilePdf; + + @ApiModelProperty("初步设计方案批复函PDF") + private String preliminaryDesignFilePdf; } diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectCimplement.java b/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectCimplement.java index 6154c1f..428011e 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectCimplement.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/gov/model/entity/GovBizProjectCimplement.java @@ -115,4 +115,7 @@ public class GovBizProjectCimplement implements Serializable { @ApiModelProperty("最后修改人") private String updateBy; + + @ApiModelProperty("生产批复文件PDF") + private String baseChanFilePdf; }