@@ -6,6 +6,7 @@ import lombok.Data; | |||||
import lombok.NoArgsConstructor; | import lombok.NoArgsConstructor; | ||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.math.BigDecimal; | |||||
/** | /** | ||||
* 待办中心待我处理项目列表导出实体 | * 待办中心待我处理项目列表导出实体 | ||||
@@ -20,25 +21,6 @@ import java.io.Serializable; | |||||
public class ExcelExportDTO implements Serializable { | public class ExcelExportDTO implements Serializable { | ||||
private static final long serialVersionUID = 1L; | private static final long serialVersionUID = 1L; | ||||
//@ExcelProperty("项目名称") | |||||
//private String projectName; | |||||
// | |||||
//@ExcelProperty("申报单位") | |||||
//private String buildUnitName; | |||||
// | |||||
//@ExcelProperty("申报金额") | |||||
//private Integer declareAmount; | |||||
// | |||||
//@ExcelProperty("预算年度") | |||||
//private Integer projectYear; | |||||
// | |||||
//@ExcelProperty("流程状态") | |||||
//private String processStatusName; | |||||
// | |||||
//@ExcelProperty("发起时间") | |||||
//@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") | |||||
//private LocalDateTime processLaunchTime; | |||||
@ExcelProperty("项目ID") | @ExcelProperty("项目ID") | ||||
private Long id; | private Long id; | ||||
@@ -91,128 +73,128 @@ public class ExcelExportDTO implements Serializable { | |||||
private Integer isFirst; | private Integer isFirst; | ||||
@ExcelProperty("关联应用") | @ExcelProperty("关联应用") | ||||
private Boolean includeApplication; | |||||
private String relatedExistsApplication; | |||||
@ExcelProperty("关联应用IRS编码") | @ExcelProperty("关联应用IRS编码") | ||||
private Boolean includeApplicationIRSCode; | |||||
private String relatedExistsApplicationCode; | |||||
@ExcelProperty("申报金额(万元)") | @ExcelProperty("申报金额(万元)") | ||||
private Boolean declareAmount; | |||||
private BigDecimal declareAmount; | |||||
@ExcelProperty("批复金额") | @ExcelProperty("批复金额") | ||||
private Boolean approvedTotalInvestmentIncrease; | |||||
private BigDecimal approvedTotalInvestmentIncrease; | |||||
@ExcelProperty("预算来源") | @ExcelProperty("预算来源") | ||||
private Boolean budgetSource; | |||||
private String budgetSource; | |||||
@ExcelProperty("预算年度") | @ExcelProperty("预算年度") | ||||
private Boolean budgetYear; | |||||
private Integer projectYear; | |||||
@ExcelProperty("项目简介") | @ExcelProperty("项目简介") | ||||
private Boolean projectIntroduction; | |||||
private String projectIntroduction; | |||||
@ExcelProperty("立项依据") | @ExcelProperty("立项依据") | ||||
private Boolean buildBasis; | |||||
private String buildBasis; | |||||
@ExcelProperty("建设层级") | @ExcelProperty("建设层级") | ||||
private Boolean buildLevel; | |||||
private Integer buildLevel; | |||||
@ExcelProperty("发改编码") | @ExcelProperty("发改编码") | ||||
private Boolean developCode; | |||||
private String developCode; | |||||
@ExcelProperty("财政编码") | @ExcelProperty("财政编码") | ||||
private Boolean financialCode; | |||||
private String financialCode; | |||||
@ExcelProperty("信息是否有效") | @ExcelProperty("信息是否有效") | ||||
private Boolean informationValidity; | private Boolean informationValidity; | ||||
@ExcelProperty("是否数字化改革项目") | @ExcelProperty("是否数字化改革项目") | ||||
private Boolean isDigitalReform; | |||||
private Integer isDigitalReform; | |||||
@ExcelProperty("综合应用领域") | @ExcelProperty("综合应用领域") | ||||
private Boolean bizDomain; | |||||
private String bizDomain; | |||||
@ExcelProperty("是否上云") | @ExcelProperty("是否上云") | ||||
private Boolean isCloud; | |||||
private Integer isCloud; | |||||
@ExcelProperty("云类型") | @ExcelProperty("云类型") | ||||
private Boolean cloudType; | |||||
private String cloudType; | |||||
@ExcelProperty("四大体系") | @ExcelProperty("四大体系") | ||||
private Boolean fourSystems; | |||||
private Integer fourSystems; | |||||
@ExcelProperty("是否临时增补") | @ExcelProperty("是否临时增补") | ||||
private Boolean isTemporaryAugment; | |||||
private Integer isTemporaryAugment; | |||||
@ExcelProperty("等保级别") | @ExcelProperty("等保级别") | ||||
private Boolean protectionLevel; | |||||
private Integer protectionLevel; | |||||
@ExcelProperty("是否密评 0:否 1:是") | @ExcelProperty("是否密评 0:否 1:是") | ||||
private Boolean isSecretComments; | |||||
private Integer isSecretComments; | |||||
@ExcelProperty("业务编号") | @ExcelProperty("业务编号") | ||||
private Boolean businessNumber; | |||||
private String businessNumber; | |||||
@ExcelProperty("业务名称") | @ExcelProperty("业务名称") | ||||
private Boolean businessName; | |||||
private String businessName; | |||||
@ExcelProperty("单位名称") | @ExcelProperty("单位名称") | ||||
private Boolean unitName; | |||||
private String orgName; | |||||
@ExcelProperty("软件开发(万元)") | @ExcelProperty("软件开发(万元)") | ||||
private Boolean softwareDevelopmentAmount; | |||||
private BigDecimal softwareDevelopmentAmount; | |||||
@ExcelProperty("云资源、硬件购置(万元)") | @ExcelProperty("云资源、硬件购置(万元)") | ||||
private Boolean cloudHardwarePurchaseAmount; | |||||
private BigDecimal cloudHardwarePurchaseAmount; | |||||
@ExcelProperty("第三方服务(万元)") | @ExcelProperty("第三方服务(万元)") | ||||
private Boolean thirdPartyAmount; | |||||
private BigDecimal thirdPartyAmount; | |||||
@ExcelProperty("投入项") | @ExcelProperty("投入项") | ||||
private Boolean safetyInputTitle; | |||||
private String safetyInputTitle; | |||||
@ExcelProperty("内容描述") | @ExcelProperty("内容描述") | ||||
private Boolean safetyInputDescribe; | |||||
private String safetyInputDescribe; | |||||
@ExcelProperty("金额(万元)") | @ExcelProperty("金额(万元)") | ||||
private Boolean safetyInputAmount; | |||||
private BigDecimal safetyInputAmount; | |||||
@ExcelProperty("年度支付金额(万元)") | @ExcelProperty("年度支付金额(万元)") | ||||
private Boolean annualPlanAmount; | |||||
private BigDecimal annualPlanAmount; | |||||
@ExcelProperty("自有资金(万元)") | @ExcelProperty("自有资金(万元)") | ||||
private Boolean annualPlanHaveAmount; | |||||
private BigDecimal annualPlanHaveAmount; | |||||
@ExcelProperty("政府投资-本级财政资金(万元)") | @ExcelProperty("政府投资-本级财政资金(万元)") | ||||
private Boolean declareGovernmentOwnFinanceAmount; | |||||
private BigDecimal declareGovOwnFinanceAmount; | |||||
@ExcelProperty("政府投资-上级补助资金(万元)") | @ExcelProperty("政府投资-上级补助资金(万元)") | ||||
private Boolean declareGovernmentSuperiorFinanceAmount; | |||||
private BigDecimal declareGovSuperiorFinanceAmount; | |||||
@ExcelProperty("银行贷款(万元)") | @ExcelProperty("银行贷款(万元)") | ||||
private Boolean declareBankLendingAmount; | |||||
private BigDecimal declareBankLendingAmount; | |||||
@ExcelProperty("其它资金(万元)") | @ExcelProperty("其它资金(万元)") | ||||
private Boolean declareOtherAmount; | |||||
private BigDecimal declareOtherAmount; | |||||
@ExcelProperty("第一季度") | @ExcelProperty("第一季度") | ||||
private Boolean engineeringSpeedOne; | |||||
private String engineeringSpeedOne; | |||||
@ExcelProperty("第二季度") | @ExcelProperty("第二季度") | ||||
private Boolean engineeringSpeedTwo; | |||||
private String engineeringSpeedTwo; | |||||
@ExcelProperty("第三季度") | @ExcelProperty("第三季度") | ||||
private Boolean engineeringSpeedThree; | |||||
private String engineeringSpeedThree; | |||||
@ExcelProperty("第四季度") | @ExcelProperty("第四季度") | ||||
private Boolean engineeringSpeedFour; | |||||
private String engineeringSpeedFour; | |||||
@ExcelProperty("初步方案") | @ExcelProperty("初步方案") | ||||
private Boolean preliminaryPlanFile; | |||||
private String preliminaryPlanFile; | |||||
@ExcelProperty("附件-佐证材料") | @ExcelProperty("附件-佐证材料") | ||||
private Boolean supportingMaterialsFile; | |||||
private String supportingMaterialsFile; | |||||
@ExcelProperty("备注") | @ExcelProperty("备注") | ||||
private Boolean projectRemarks; | |||||
private String projectRemarks; | |||||
} | } |
@@ -16,6 +16,7 @@ import com.alibaba.excel.ExcelWriter; | |||||
import com.alibaba.excel.write.metadata.WriteSheet; | import com.alibaba.excel.write.metadata.WriteSheet; | ||||
import com.ningdatech.basic.exception.BizException; | import com.ningdatech.basic.exception.BizException; | ||||
import com.ningdatech.pmapi.common.model.entity.ExcelExportWriter; | import com.ningdatech.pmapi.common.model.entity.ExcelExportWriter; | ||||
import com.ningdatech.pmapi.todocenter.bean.entity.ExportOption; | |||||
import org.apache.commons.collections4.CollectionUtils; | import org.apache.commons.collections4.CollectionUtils; | ||||
import org.apache.http.HttpStatus; | import org.apache.http.HttpStatus; | ||||
@@ -135,4 +136,5 @@ public class ExcelDownUtil { | |||||
response.setContentType(StrPool.CONTENT_TYPE); | response.setContentType(StrPool.CONTENT_TYPE); | ||||
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + encodeName(fileName) + ".xls"); | response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + encodeName(fileName) + ".xls"); | ||||
} | } | ||||
} | } |
@@ -5,6 +5,8 @@ import lombok.AllArgsConstructor; | |||||
import lombok.Data; | import lombok.Data; | ||||
import lombok.NoArgsConstructor; | import lombok.NoArgsConstructor; | ||||
/** | /** | ||||
* 导出选项实体类 | * 导出选项实体类 | ||||
* | * | ||||
@@ -22,7 +24,7 @@ public class ExportOption { | |||||
private Boolean id; | private Boolean id; | ||||
@ApiModelProperty("项目名称") | @ApiModelProperty("项目名称") | ||||
private Boolean name; | |||||
private Boolean projectName; | |||||
@ApiModelProperty("行政区划编码") | @ApiModelProperty("行政区划编码") | ||||
private Boolean areaCode; | private Boolean areaCode; | ||||
@@ -43,25 +45,25 @@ public class ExportOption { | |||||
private Boolean contactPhone; | private Boolean contactPhone; | ||||
@ApiModelProperty("上级业务主管单位") | @ApiModelProperty("上级业务主管单位") | ||||
private Boolean higherSuperUnit; | |||||
private Boolean higherSuperOrg; | |||||
@ApiModelProperty("上级主管单位浙政钉ID") | @ApiModelProperty("上级主管单位浙政钉ID") | ||||
private Boolean higherSuperUnitCode; | |||||
private Boolean higherSuperOrgCode; | |||||
@ApiModelProperty("本级主管部门") | @ApiModelProperty("本级主管部门") | ||||
private Boolean superUnit; | |||||
private Boolean superOrg; | |||||
@ApiModelProperty("本级主管部门浙政钉ID") | @ApiModelProperty("本级主管部门浙政钉ID") | ||||
private Boolean superUnitCode; | |||||
private Boolean superOrgCode; | |||||
@ApiModelProperty("建设单位名称") | @ApiModelProperty("建设单位名称") | ||||
private Boolean constructionUnitName; | |||||
private Boolean buildOrgName; | |||||
@ApiModelProperty("建设单位浙政钉ID") | @ApiModelProperty("建设单位浙政钉ID") | ||||
private Boolean buildUnitZheJiangGovernmentDingId; | |||||
private Boolean buildOrgZheJiangGovDingId; | |||||
@ApiModelProperty("建设单位统一信用代码") | @ApiModelProperty("建设单位统一信用代码") | ||||
private Boolean buildUnitCode; | |||||
private Boolean buildOrgCode; | |||||
@ApiModelProperty("项目类型") | @ApiModelProperty("项目类型") | ||||
private Boolean projectType; | private Boolean projectType; | ||||
@@ -70,10 +72,10 @@ public class ExportOption { | |||||
private Boolean isFirst; | private Boolean isFirst; | ||||
@ApiModelProperty("关联应用") | @ApiModelProperty("关联应用") | ||||
private Boolean includeApplication; | |||||
private Boolean relatedExistsApplication; | |||||
@ApiModelProperty("关联应用IRS编码") | @ApiModelProperty("关联应用IRS编码") | ||||
private Boolean includeApplicationIRSCode; | |||||
private Boolean relatedExistsApplicationCode; | |||||
@ApiModelProperty("申报金额(万元)") | @ApiModelProperty("申报金额(万元)") | ||||
private Boolean declareAmount; | private Boolean declareAmount; | ||||
@@ -85,7 +87,7 @@ public class ExportOption { | |||||
private Boolean budgetSource; | private Boolean budgetSource; | ||||
@ApiModelProperty("预算年度") | @ApiModelProperty("预算年度") | ||||
private Boolean budgetYear; | |||||
private Boolean projectYear; | |||||
@ApiModelProperty("项目简介") | @ApiModelProperty("项目简介") | ||||
private Boolean projectIntroduction; | private Boolean projectIntroduction; | ||||
@@ -136,7 +138,7 @@ public class ExportOption { | |||||
private Boolean businessName; | private Boolean businessName; | ||||
@ApiModelProperty("单位名称") | @ApiModelProperty("单位名称") | ||||
private Boolean unitName; | |||||
private Boolean orgName; | |||||
@ApiModelProperty("软件开发(万元)") | @ApiModelProperty("软件开发(万元)") | ||||
private Boolean softwareDevelopmentAmount; | private Boolean softwareDevelopmentAmount; | ||||
@@ -163,10 +165,10 @@ public class ExportOption { | |||||
private Boolean annualPlanHaveAmount; | private Boolean annualPlanHaveAmount; | ||||
@ApiModelProperty("政府投资-本级财政资金(万元)") | @ApiModelProperty("政府投资-本级财政资金(万元)") | ||||
private Boolean declareGovernmentOwnFinanceAmount; | |||||
private Boolean declareGovOwnFinanceAmount; | |||||
@ApiModelProperty("政府投资-上级补助资金(万元)") | @ApiModelProperty("政府投资-上级补助资金(万元)") | ||||
private Boolean declareGovernmentSuperiorFinanceAmount; | |||||
private Boolean declareGovSuperiorFinanceAmount; | |||||
@ApiModelProperty("银行贷款(万元)") | @ApiModelProperty("银行贷款(万元)") | ||||
private Boolean declareBankLendingAmount; | private Boolean declareBankLendingAmount; | ||||
@@ -54,8 +54,8 @@ public class TodoCenterController { | |||||
* @param response | * @param response | ||||
* @return void | * @return void | ||||
*/ | */ | ||||
@GetMapping("/exportPending") | |||||
public void exportPendingProjectList(ReqToBeProcessedDTO param, HttpServletResponse response){ | |||||
@PostMapping("/exportPending") | |||||
public void exportPendingProjectList(@Valid @RequestBody ReqToBeProcessedDTO param, HttpServletResponse response){ | |||||
todoCenterManage.exportPendingProjectList(response,param); | todoCenterManage.exportPendingProjectList(response,param); | ||||
// ExcelDownUtil.downXlsx(response,param,todoCenterManage::exportPendingProjectList); | // ExcelDownUtil.downXlsx(response,param,todoCenterManage::exportPendingProjectList); | ||||
} | } | ||||
@@ -4,7 +4,9 @@ import cn.hutool.core.collection.CollectionUtil; | |||||
import cn.hutool.core.util.ObjectUtil; | import cn.hutool.core.util.ObjectUtil; | ||||
import cn.hutool.core.util.StrUtil; | import cn.hutool.core.util.StrUtil; | ||||
import cn.hutool.json.JSONUtil; | import cn.hutool.json.JSONUtil; | ||||
import com.alibaba.druid.support.json.JSONUtils; | |||||
import com.alibaba.excel.EasyExcel; | import com.alibaba.excel.EasyExcel; | ||||
import com.alibaba.fastjson.JSON; | |||||
import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||
import com.alibaba.xxpt.gateway.shared.api.request.OapiMessageWorkNotificationRequest; | import com.alibaba.xxpt.gateway.shared.api.request.OapiMessageWorkNotificationRequest; | ||||
import com.alibaba.xxpt.gateway.shared.api.response.OapiMessageWorkNotificationResponse; | import com.alibaba.xxpt.gateway.shared.api.response.OapiMessageWorkNotificationResponse; | ||||
@@ -221,8 +223,6 @@ public class TodoCenterManage { | |||||
* @since 2023/02/01 17:44 | * @since 2023/02/01 17:44 | ||||
*/ | */ | ||||
public void exportPendingProjectList(HttpServletResponse response, ReqToBeProcessedDTO param) { | public void exportPendingProjectList(HttpServletResponse response, ReqToBeProcessedDTO param) { | ||||
Page<Project> page = param.page(); | |||||
LambdaQueryWrapper<Project> wrapper = Wrappers.lambdaQuery(Project.class); | LambdaQueryWrapper<Project> wrapper = Wrappers.lambdaQuery(Project.class); | ||||
wrapper.like(StrUtil.isNotBlank(param.getProjectName()),Project::getProjectName,param.getProjectName()) | wrapper.like(StrUtil.isNotBlank(param.getProjectName()),Project::getProjectName,param.getProjectName()) | ||||
.like(StrUtil.isNotBlank(param.getBuildUnitName()),Project::getBuildOrgName,param.getBuildUnitName()) | .like(StrUtil.isNotBlank(param.getBuildUnitName()),Project::getBuildOrgName,param.getBuildUnitName()) | ||||
@@ -230,9 +230,7 @@ public class TodoCenterManage { | |||||
.eq(Objects.nonNull(param.getIsSupplement()),Project::getIsTemporaryAugment,param.getIsSupplement()) | .eq(Objects.nonNull(param.getIsSupplement()),Project::getIsTemporaryAugment,param.getIsSupplement()) | ||||
.ge(Objects.nonNull(param.getProcessLaunchStartTime()),Project::getBeginTime,param.getProcessLaunchStartTime()) | .ge(Objects.nonNull(param.getProcessLaunchStartTime()),Project::getBeginTime,param.getProcessLaunchStartTime()) | ||||
.le(Objects.nonNull(param.getProcessLaunchEndTime()),Project::getEndTime,param.getProcessLaunchEndTime()); | .le(Objects.nonNull(param.getProcessLaunchEndTime()),Project::getEndTime,param.getProcessLaunchEndTime()); | ||||
projectService.page(page,wrapper); | |||||
List<Project> records = page.getRecords(); | |||||
List<Project> records = projectService.list(wrapper); | |||||
ExcelExportWriter excelExportWriter = new ExcelExportWriter(); | ExcelExportWriter excelExportWriter = new ExcelExportWriter(); | ||||
@@ -244,31 +242,32 @@ public class TodoCenterManage { | |||||
} | } | ||||
excelExportWriter.setFileName(fileName); | excelExportWriter.setFileName(fileName); | ||||
List<String> sheetsName = new ArrayList<>(); | |||||
sheetsName.add("sheet1"); | |||||
List<String> sheetsNames = new ArrayList<>(); | |||||
sheetsNames.add(fileName); | |||||
// 表体列数据集合 | // 表体列数据集合 | ||||
List<String> columnList = new ArrayList<>(); | |||||
List<List<String>> columnList = new ArrayList<>(); | |||||
// 表体行数据集合 | // 表体行数据集合 | ||||
List<List<String>> rowList = new ArrayList<>(); | |||||
List<String> rowList = param.getExportOptionList(); | |||||
records.stream().forEach(record -> { | |||||
List<String> rowValues = new ArrayList<>(); | |||||
rowList.stream().forEach(c -> { | |||||
String s = JSON.toJSONString(record); | |||||
JSONObject jsonObject = JSON.parseObject(s); | |||||
String rowValue = String.valueOf(jsonObject.get(c)); | |||||
rowValues.add(rowValue); | |||||
}); | |||||
columnList.add(rowValues); | |||||
}); | |||||
// sheet列表集合 | // sheet列表集合 | ||||
List<List<List<String>>> sheets = new ArrayList<>(); | List<List<List<String>>> sheets = new ArrayList<>(); | ||||
ExportOption exportOption = param.getExportOption(); | |||||
sheets.add(columnList); | |||||
excelExportWriter.setHeads(sheets); | excelExportWriter.setHeads(sheets); | ||||
List<ExcelExportDTO> data = records.stream().map(r -> { | |||||
ExcelExportDTO res = new ExcelExportDTO(); | |||||
BeanUtils.copyProperties(r, res); | |||||
return res; | |||||
}).collect(Collectors.toList()); | |||||
excelExportWriter.setDatas(data); | |||||
excelExportWriter.setSheets(sheetsName); | |||||
excelExportWriter.setHeadPropertyClass(ExcelExportDTO.class); | |||||
excelExportWriter.setDatas(columnList); | |||||
excelExportWriter.setSheets(sheetsNames); | |||||
excelExportWriter.setHeadPropertyClass(List.class); | |||||
excelExportWriter.setHeadPropertyFlag(Boolean.FALSE); | excelExportWriter.setHeadPropertyFlag(Boolean.FALSE); | ||||
ExcelDownUtil.excelExportFile(response,excelExportWriter); | ExcelDownUtil.excelExportFile(response,excelExportWriter); | ||||
} | } | ||||
/** | /** | ||||
@@ -50,6 +50,6 @@ public class ReqToBeProcessedDTO extends PagePo implements Serializable { | |||||
private Integer isSupplement; | private Integer isSupplement; | ||||
@ApiModelProperty("导出选项") | @ApiModelProperty("导出选项") | ||||
private ExportOption exportOption; | |||||
private List<String> exportOptionList; | |||||
} | } |