Commit 9cb4e776 authored by liuChang's avatar liuChang

导出

parent d0baa54b
...@@ -5,6 +5,7 @@ import com.google.api.client.util.SecurityUtils; ...@@ -5,6 +5,7 @@ import com.google.api.client.util.SecurityUtils;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup; import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
/** /**
...@@ -15,6 +16,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; ...@@ -15,6 +16,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication @SpringBootApplication
@EnableScheduling @EnableScheduling
@EnableAsync
public class DskOperateSysApplication { public class DskOperateSysApplication {
public static void main(String[] args) { public static void main(String[] args) {
......
...@@ -196,6 +196,7 @@ dsk: ...@@ -196,6 +196,7 @@ dsk:
# accessKeyId: aec7b3ff2y2q8x6t49a7e2c463ce21912 # accessKeyId: aec7b3ff2y2q8x6t49a7e2c463ce21912
# accessKeySecret: ee8a53c7ea04eb3ac311406c8f56f95b # accessKeySecret: ee8a53c7ea04eb3ac311406c8f56f95b
# protocol: https # protocol: https
exportBackUrl: https://szh-test.jiansheku.com/export/backUrl
sa-token: sa-token:
# 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录) # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
......
...@@ -57,7 +57,7 @@ public class SaTokenConfig implements WebMvcConfigurer { ...@@ -57,7 +57,7 @@ public class SaTokenConfig implements WebMvcConfigurer {
}); });
})).addPathPatterns("/**") })).addPathPatterns("/**")
// 排除不需要拦截的路径 // 排除不需要拦截的路径
.excludePathPatterns(securityProperties.getExcludes()); .excludePathPatterns(securityProperties.getExcludes()).excludePathPatterns("/export/backUrl");
} }
@Bean @Bean
......
...@@ -104,6 +104,11 @@ public class EnterpriseController { ...@@ -104,6 +104,11 @@ public class EnterpriseController {
return enterpriseService.uipSerach(vo); return enterpriseService.uipSerach(vo);
} }
@PostMapping(value = "/uipSerach/export")
public void uipSerachExport(@RequestBody @Valid EnterpriseUipSearchBody vo) throws Exception {
enterpriseService.uipSerachExport(vo);
}
@PostMapping(value = "uipGroupData") @PostMapping(value = "uipGroupData")
public R financial() throws Exception { public R financial() throws Exception {
return enterpriseService.uipGroupData(); return enterpriseService.uipGroupData();
......
package com.dsk.jsk.controller;
import cn.hutool.json.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.system.service.ISysUserFileRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author lc
* @date 2023/11/14 14:15
*/
@RestController
@RequestMapping("/export")
public class ExportController {
@Autowired
private ISysUserFileRecordService sysUserFileRecordService;
/**
* 导出回调接口
* @param object
* @return
*/
@PostMapping(value = "/backUrl")
public AjaxResult exportBack(@RequestBody JSONObject object) {
return sysUserFileRecordService.exportBack(object);
}
}
...@@ -53,10 +53,18 @@ public class JskCombineInfoController extends BaseController { ...@@ -53,10 +53,18 @@ public class JskCombineInfoController extends BaseController {
* 集团成员列表 * 集团成员列表
*/ */
@PostMapping("/memberList") @PostMapping("/memberList")
public TableDataInfo memberList(@RequestBody JskCombineSearchDto dto) throws Exception { public AjaxResult memberList(@RequestBody JskCombineSearchDto dto) throws Exception {
return baseService.memberList(dto); return baseService.memberList(dto);
} }
/**
* 集团成员列表导出
*/
@PostMapping("/memberList/export")
public void memberListExportPre(@RequestBody JskCombineSearchDto dto) throws Exception {
baseService.memberListExport(dto);
}
/** /**
* 分组成员数量 * 分组成员数量
*/ */
...@@ -165,30 +173,48 @@ public class JskCombineInfoController extends BaseController { ...@@ -165,30 +173,48 @@ public class JskCombineInfoController extends BaseController {
/** /**
* 导出中标业绩 * 导出中标业绩
*/ */
@PostMapping("/export/win/bid") // @PostMapping("/export/win/bid")
// @SaCheckPermission("combine:info:export:win:bid")
// public R<SysOssVo> exportWinBid(@RequestBody JskCombineSearchDto dto) {
// List<JskCombineWinBidProjectExportVo> list = baseService.exportWinBid(dto);
// String title = dto.getCombineName().concat("中标业绩清单");
// ExcelUtils<JskCombineWinBidProjectExportVo> util = new ExcelUtils<>(JskCombineWinBidProjectExportVo.class);
// ByteArrayOutputStream ba = util.exportExcel(list, "集团中标", title, true);
// return uploadComponent.upload(title, ba, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
// }
//集团中标业绩导出count
@PostMapping("/export/win/bid/pre")
@SaCheckPermission("combine:info:export:win:bid") @SaCheckPermission("combine:info:export:win:bid")
public R<SysOssVo> exportWinBid(@RequestBody JskCombineSearchDto dto) { public AjaxResult exportWinBidPre(@RequestBody JskCombineSearchDto dto) {
List<JskCombineWinBidProjectExportVo> list = baseService.exportWinBid(dto); return baseService.exportWinBidPre(dto);
String title = dto.getCombineName().concat("中标业绩清单");
ExcelUtils<JskCombineWinBidProjectExportVo> util = new ExcelUtils<>(JskCombineWinBidProjectExportVo.class);
ByteArrayOutputStream ba = util.exportExcel(list, "集团中标", title, true);
return uploadComponent.upload(title, ba, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
} }
//集团中标业绩导出
/** @PostMapping("/export/win/bid")
* 导出招标业绩 @SaCheckPermission("combine:info:export:win:bid")
*/ public void exportWinBid(@RequestBody JskCombineSearchDto dto) {
baseService.exportWinBid(dto);
}
// /**
// * 导出招标业绩
// */
// @PostMapping("/export/bid")
// @SaCheckPermission("combine:info:export:bid")
// public R<SysOssVo> exportBid(@RequestBody JskCombineBidPageDto dto) {
// List<JskCombineBidProjectExportVo> list = baseService.exportBid(dto);
// String title = dto.getCombineName().concat("招标公告清单");
// ExcelUtils<JskCombineBidProjectExportVo> util = new ExcelUtils<>(JskCombineBidProjectExportVo.class);
// ByteArrayOutputStream ba = util.exportExcel(list, "集团招标", title, true);
// return uploadComponent.upload(title, ba, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
// }
//集团招标业绩导出
@PostMapping("/export/bid") @PostMapping("/export/bid")
@SaCheckPermission("combine:info:export:bid") @SaCheckPermission("combine:info:export:win:bid")
public R<SysOssVo> exportBid(@RequestBody JskCombineBidPageDto dto) { public void exportBid(@RequestBody JskCombineSearchDto dto) {
List<JskCombineBidProjectExportVo> list = baseService.exportBid(dto); baseService.exportBid(dto);
String title = dto.getCombineName().concat("招标公告清单");
ExcelUtils<JskCombineBidProjectExportVo> util = new ExcelUtils<>(JskCombineBidProjectExportVo.class);
ByteArrayOutputStream ba = util.exportExcel(list, "集团招标", title, true);
return uploadComponent.upload(title, ba, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
} }
/** /**
* 集团招标分页列表 * 集团招标分页列表
*/ */
......
...@@ -56,4 +56,14 @@ public class UrbanInvestmentPlatformController { ...@@ -56,4 +56,14 @@ public class UrbanInvestmentPlatformController {
public AjaxResult statistics(@RequestBody UrbanInvestmentPlatformDto dto) { public AjaxResult statistics(@RequestBody UrbanInvestmentPlatformDto dto) {
return urbanInvestmentPlatformService.statistics(dto); return urbanInvestmentPlatformService.statistics(dto);
} }
@PostMapping("/export/pre")
public AjaxResult exportPre(@RequestBody UrbanInvestmentPlatformDto dto) {
return urbanInvestmentPlatformService.esportPre(dto);
}
@PostMapping("/export")
public void export(@RequestBody UrbanInvestmentPlatformDto dto) {
urbanInvestmentPlatformService.export(dto);
}
} }
...@@ -64,4 +64,9 @@ public class EnterpriseUipSearchBody extends BasePage { ...@@ -64,4 +64,9 @@ public class EnterpriseUipSearchBody extends BasePage {
*/ */
private List<String> equityRelationship; private List<String> equityRelationship;
/**
* 导出名称
*/
private String exportExeclName;
} }
...@@ -109,4 +109,12 @@ public class JskCombineSearchDto implements Serializable { ...@@ -109,4 +109,12 @@ public class JskCombineSearchDto implements Serializable {
*/ */
private String orderType; private String orderType;
private Integer exportCount;
private String exportExeclName;
private String exportBackUrl;
private String exportUniqueCode;
} }
...@@ -77,4 +77,8 @@ public class UrbanInvestmentPlatformDto extends BasePage { ...@@ -77,4 +77,8 @@ public class UrbanInvestmentPlatformDto extends BasePage {
* 含下属区:1 本级:2 * 含下属区:1 本级:2
*/ */
private Integer type =1; private Integer type =1;
/**
* 导出文档名称
*/
private String exportExeclName;
} }
package com.dsk.jsk.domain.vo;
import com.dsk.common.annotation.Excel;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 城投企业
* @author lc
* @create 2023/11/13
*/
@Data
public class UrbanInvestmentExportVo implements Serializable {
@Excel(name = "序号", width = 6)
private Integer id;
@Excel(name = "公司名称", width = 15)
private String companyName;
@Excel(name = "区域", width = 15)
private String domicile;
@Excel(name = "招标数量", width = 10)
private Integer biddingCount;
@Excel(name = "城投拿地", width = 10)
private Integer landInfoCount;
@Excel(name = "供应商", width = 10)
private Integer supplierCount;
@Excel(name = "债卷余额" , suffix = "亿元")
private Double creditBalance;
@Excel(name = "主体评级", width = 15)
private String bratingSubjectLevel;
@Excel(name = "行政级别", width = 15)
private String uipExecutiveLevel;
@Excel(name = "股东背景", width = 15)
private String shareholderBg;
@Excel(name = "股权关系", width = 15)
private String equityRelationship;
@Excel(name = "平台重要性", width = 15)
private String platformImportance;
@Excel(name = "城投业务类型", width = 15)
private String uipBusinessType;
@Excel(name = "实控人", width = 15)
private String actualController;
@Excel(name = "最新报告期", width = 15, dateFormat = "yyyy/MM/dd")
private Date latestReportPeriod;
@Excel(name = "总资产" , suffix = "亿元")
private Double totalAssets;
@Excel(name = "归母净资产" , suffix = "亿元")
private Double belongNetAssets;
}
...@@ -6,13 +6,18 @@ import cn.hutool.core.util.ObjectUtil; ...@@ -6,13 +6,18 @@ import cn.hutool.core.util.ObjectUtil;
import com.dsk.acc.openapi.client.util.CommonUtils; import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.biz.domain.vo.CustomerStatusListVo; import com.dsk.biz.domain.vo.CustomerStatusListVo;
import com.dsk.biz.service.ICustomerService; import com.dsk.biz.service.ICustomerService;
import com.dsk.biz.utils.ExcelUtils;
import com.dsk.common.constant.CacheConstants; import com.dsk.common.constant.CacheConstants;
import com.dsk.common.constant.Constants;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.common.utils.EncodeIdUtil; import com.dsk.common.utils.EncodeIdUtil;
import com.dsk.common.utils.redis.RedisUtils; import com.dsk.common.utils.redis.RedisUtils;
import com.dsk.component.UploadComponent;
import com.dsk.jsk.domain.*; import com.dsk.jsk.domain.*;
import com.dsk.jsk.domain.bo.UrbanInvestmentPlatformDto;
import com.dsk.jsk.domain.vo.UrbanInvestmentExportVo;
import com.dsk.search.service.BusinessOpportunityRadarService; import com.dsk.search.service.BusinessOpportunityRadarService;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
...@@ -20,9 +25,11 @@ import org.slf4j.Logger; ...@@ -20,9 +25,11 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import java.io.ByteArrayOutputStream;
import java.time.Duration; import java.time.Duration;
import java.util.*; import java.util.*;
...@@ -43,6 +50,8 @@ public class EnterpriseService { ...@@ -43,6 +50,8 @@ public class EnterpriseService {
@Autowired @Autowired
ICustomerService iCustomerService; ICustomerService iCustomerService;
@Autowired
private UploadComponent uploadComponent;
public R label(EnterpriseInfoLabelBody body) throws Exception { public R label(EnterpriseInfoLabelBody body) throws Exception {
List<Map<String, Object>> mapList = new ArrayList<>(); List<Map<String, Object>> mapList = new ArrayList<>();
...@@ -360,6 +369,79 @@ public class EnterpriseService { ...@@ -360,6 +369,79 @@ public class EnterpriseService {
return new TableDataInfo(list, MapUtils.getInteger(data, "totalCount", 0)); return new TableDataInfo(list, MapUtils.getInteger(data, "totalCount", 0));
} }
@Async
public void uipSerachExport(EnterpriseUipSearchBody pageDto) {
// 分页参数
pageDto.setPageNum(1);
if (null==pageDto.getPageSize()||pageDto.getPageSize()>=2000){
pageDto.setPageSize(2000);
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/export/search/urbanInvestment", BeanUtil.beanToMap(pageDto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (HttpStatus.OK.value() != code) {
throw new RuntimeException();
}
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(map, "data", ""));
int i = 0;
List<UrbanInvestmentExportVo> resultList = new ArrayList<>();
for (Object obj : list) {
UrbanInvestmentExportVo vo = new UrbanInvestmentExportVo();
Map<String, Object> dataMap = CommonUtils.assertAsMap(obj);
vo.setId(i++);
vo.setCompanyName(MapUtil.getStr(dataMap, "companyName"));
StringBuilder domicile = new StringBuilder();
if (null != dataMap.get("province")) {
domicile.append(MapUtil.getStr(dataMap,"province"));
}
if (null != dataMap.get("city")) {
domicile.append(MapUtil.getStr(dataMap,"city"));
}
if (null != dataMap.get("area")) {
domicile.append(MapUtil.getStr(dataMap,"area"));
}
if (domicile.length()>0){
vo.setDomicile(domicile.toString());
}
//招标数量
vo.setBiddingCount(MapUtil.getInt(dataMap, "biddingCount"));
//城投拿地
vo.setLandInfoCount(MapUtil.getInt(dataMap, "landInfoCount"));
//供应商
vo.setSupplierCount(MapUtil.getInt(dataMap, "supplierCount"));
//债卷余额
vo.setCreditBalance(MapUtil.getDouble(dataMap, "creditBalance"));
//主体评级
vo.setBratingSubjectLevel(MapUtil.getStr(dataMap, "bratingSubjectLevel"));
//行政级别
vo.setUipExecutiveLevel(MapUtil.getStr(dataMap, "uipExecutiveLevel"));
//股东背景
vo.setShareholderBg(MapUtil.getStr(dataMap, "shareholderBg"));
//股权关系
vo.setEquityRelationship(MapUtil.getStr(dataMap, "equityRelationship"));
//平台重要性
vo.setPlatformImportance(MapUtil.getStr(dataMap, "platformImportance"));
//城投业务类型
vo.setUipBusinessType(MapUtil.getStr(dataMap, "uipBusinessType"));
//实控人
vo.setActualController(MapUtil.getStr(dataMap, "actualController"));
//最新报告期
vo.setLatestReportPeriod(MapUtil.getDate(dataMap, "latestReportPeriod"));
//总资产
vo.setTotalAssets(MapUtil.getDouble(dataMap, "totalAssets"));
//归母净资产
vo.setBelongNetAssets(MapUtil.getDouble(dataMap, "belongNetAssets"));
resultList.add(vo);
}
String title = "查城投平台导出明细";
if (null!=pageDto.getExportExeclName()){
title = pageDto.getExportExeclName();
}
ExcelUtils<UrbanInvestmentExportVo> util = new ExcelUtils<>(UrbanInvestmentExportVo.class);
ByteArrayOutputStream ba = util.exportExcel(resultList, "查城投平台", title, true);
uploadComponent.upload(title, ba, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
}
public static void main(String[] args) { public static void main(String[] args) {
String str = String.format("%1$.2f", 0.0456); String str = String.format("%1$.2f", 0.0456);
System.out.println(str); System.out.println(str);
......
...@@ -38,4 +38,18 @@ public interface UrbanInvestmentPlatformService { ...@@ -38,4 +38,18 @@ public interface UrbanInvestmentPlatformService {
*@date: 2023/5/18 10:29 *@date: 2023/5/18 10:29
*/ */
AjaxResult statistics(UrbanInvestmentPlatformDto pageDto); AjaxResult statistics(UrbanInvestmentPlatformDto pageDto);
/**
* 城投企业导出count查询
* @param pageDto
* @return
*/
AjaxResult esportPre(UrbanInvestmentPlatformDto pageDto);
/**
* 城投企业导出
* @param pageDto
* @return
*/
void export(UrbanInvestmentPlatformDto pageDto);
} }
package com.dsk.jsk.service.service.impl; package com.dsk.jsk.service.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.dsk.acc.openapi.client.util.CommonUtils; import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.biz.domain.vo.CustomerStatusListVo; import com.dsk.biz.domain.vo.CustomerStatusListVo;
import com.dsk.biz.service.ICustomerService; import com.dsk.biz.service.ICustomerService;
import com.dsk.biz.utils.ExcelUtils;
import com.dsk.common.constant.Constants;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.component.UploadComponent;
import com.dsk.jsk.domain.bo.UrbanInvestmentPlatformDto; import com.dsk.jsk.domain.bo.UrbanInvestmentPlatformDto;
import com.dsk.jsk.domain.vo.ImportantProjectExportVo;
import com.dsk.jsk.domain.vo.UrbanInvestmentExportVo;
import com.dsk.jsk.service.service.UrbanInvestmentPlatformService; import com.dsk.jsk.service.service.UrbanInvestmentPlatformService;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.ByteArrayOutputStream;
import java.util.*; import java.util.*;
/** /**
...@@ -32,6 +40,8 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo ...@@ -32,6 +40,8 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
@Autowired @Autowired
private ICustomerService iCustomerService; private ICustomerService iCustomerService;
@Autowired
private UploadComponent uploadComponent;
@Override @Override
public AjaxResult page(UrbanInvestmentPlatformDto pageDto) { public AjaxResult page(UrbanInvestmentPlatformDto pageDto) {
...@@ -123,4 +133,94 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo ...@@ -123,4 +133,94 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/urbanInvestment/statistics", BeanUtil.beanToMap(dto, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/urbanInvestment/statistics", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
@Override
public AjaxResult esportPre(UrbanInvestmentPlatformDto pageDto) {
pageDto.setPageNum(1);
pageDto.setPageSize(0);
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/urbanInvestment/page", BeanUtil.beanToMap(pageDto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (HttpStatus.OK.value() != code) {
throw new RuntimeException();
}
Integer totalCount = MapUtils.getInteger(map, "totalCount");
HashMap<String, Object> resMap = new HashMap<>();
resMap.put("totalCount",totalCount);
return BeanUtil.toBean(resMap, AjaxResult.class);
}
@Override
@Async
public void export(UrbanInvestmentPlatformDto pageDto) {
// 分页参数
pageDto.setPageNum(1);
if (null==pageDto.getPageSize()||pageDto.getPageSize()>=2000){
pageDto.setPageSize(2000);
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/export/urbanInvestment", BeanUtil.beanToMap(pageDto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (HttpStatus.OK.value() != code) {
throw new RuntimeException();
}
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(map, "data", ""));
int i = 0;
List<UrbanInvestmentExportVo> resultList = new ArrayList<>();
for (Object obj : list) {
UrbanInvestmentExportVo vo = new UrbanInvestmentExportVo();
Map<String, Object> dataMap = CommonUtils.assertAsMap(obj);
vo.setId(i++);
vo.setCompanyName(MapUtil.getStr(dataMap, "companyName"));
StringBuilder domicile = new StringBuilder();
if (null != dataMap.get("province")) {
domicile.append(MapUtil.getStr(dataMap,"province"));
}
if (null != dataMap.get("city")) {
domicile.append(MapUtil.getStr(dataMap,"city"));
}
if (null != dataMap.get("area")) {
domicile.append(MapUtil.getStr(dataMap,"area"));
}
if (domicile.length()>0){
vo.setDomicile(domicile.toString());
}
//招标数量
vo.setBiddingCount(MapUtil.getInt(dataMap, "biddingCount"));
//城投拿地
vo.setLandInfoCount(MapUtil.getInt(dataMap, "landInfoCount"));
//供应商
vo.setSupplierCount(MapUtil.getInt(dataMap, "supplierCount"));
//债卷余额
vo.setCreditBalance(MapUtil.getDouble(dataMap, "creditBalance"));
//主体评级
vo.setBratingSubjectLevel(MapUtil.getStr(dataMap, "bratingSubjectLevel"));
//行政级别
vo.setUipExecutiveLevel(MapUtil.getStr(dataMap, "uipExecutiveLevel"));
//股东背景
vo.setShareholderBg(MapUtil.getStr(dataMap, "shareholderBg"));
//股权关系
vo.setEquityRelationship(MapUtil.getStr(dataMap, "equityRelationship"));
//平台重要性
vo.setPlatformImportance(MapUtil.getStr(dataMap, "platformImportance"));
//城投业务类型
vo.setUipBusinessType(MapUtil.getStr(dataMap, "uipBusinessType"));
//实控人
vo.setActualController(MapUtil.getStr(dataMap, "actualController"));
//最新报告期
vo.setLatestReportPeriod(MapUtil.getDate(dataMap, "latestReportPeriod"));
//总资产
vo.setTotalAssets(MapUtil.getDouble(dataMap, "totalAssets"));
//归母净资产
vo.setBelongNetAssets(MapUtil.getDouble(dataMap, "belongNetAssets"));
resultList.add(vo);
}
String title = "城投平台导出明细";
if (null!=pageDto.getExportExeclName()){
title = pageDto.getExportExeclName();
}
ExcelUtils<UrbanInvestmentExportVo> util = new ExcelUtils<>(UrbanInvestmentExportVo.class);
ByteArrayOutputStream ba = util.exportExcel(resultList, "城投平台", title, true);
uploadComponent.upload(title, ba, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
}
} }
...@@ -6,6 +6,7 @@ import com.dsk.biz.utils.ExcelUtils; ...@@ -6,6 +6,7 @@ import com.dsk.biz.utils.ExcelUtils;
import com.dsk.common.constant.Constants; import com.dsk.common.constant.Constants;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.R; import com.dsk.common.core.domain.R;
import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.poi.ExcelUtil; import com.dsk.common.utils.poi.ExcelUtil;
import com.dsk.component.UploadComponent; import com.dsk.component.UploadComponent;
import com.dsk.jsk.domain.bo.ComposeQueryDto; import com.dsk.jsk.domain.bo.ComposeQueryDto;
...@@ -188,17 +189,37 @@ public class BusinessOpportunityRadarController { ...@@ -188,17 +189,37 @@ public class BusinessOpportunityRadarController {
return opportunityRadarService.importantCondition(); return opportunityRadarService.importantCondition();
} }
/** // /**
* 导出重点项目清单 // * 导出重点项目清单
// */
// @RequestMapping("/export/important")
// @SaCheckPermission("radar:export:important")
// public R<SysOssVo> exportBid(@RequestBody JSONObject object, HttpServletResponse response) {
// List<ImportantProjectExportVo> list = opportunityRadarService.exportImportant(object);
// String title = "重点项目导出明细";
// ExcelUtils<ImportantProjectExportVo> util = new ExcelUtils<>(ImportantProjectExportVo.class);
// ByteArrayOutputStream ba = util.exportExcel(list, "重点项目", title, true);
// return uploadComponent.upload(title, ba, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
// }
/*
* 重点项目清单导出count
*/
@RequestMapping("important/export/pre")
public AjaxResult exportImportantPre(@RequestBody JSONObject object) {
return opportunityRadarService.importantExportPre(object);
}
/*
* 重点项目清单导出
*/ */
@RequestMapping("/export/important") @RequestMapping("important/export")
@SaCheckPermission("radar:export:important") public void exportImportant(@RequestBody JSONObject object) {
public R<SysOssVo> exportBid(@RequestBody JSONObject object, HttpServletResponse response) { ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
List<ImportantProjectExportVo> list = opportunityRadarService.exportImportant(object); if (StringUtils.isEmpty(compose.getExportExeclName())){
String title = "重点项目导出明细"; object.put("exportExeclName","重点项目导出");
ExcelUtils<ImportantProjectExportVo> util = new ExcelUtils<>(ImportantProjectExportVo.class); }
ByteArrayOutputStream ba = util.exportExcel(list, "重点项目", title, true); opportunityRadarService.importantExport(object);
return uploadComponent.upload(title, ba, Constants.SUFFIX_XLSX, Constants.CONTENT_TYPE_XLSX);
} }
/* /*
......
...@@ -2,6 +2,7 @@ package com.dsk.search.controller; ...@@ -2,6 +2,7 @@ package com.dsk.search.controller;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.StringUtils;
import com.dsk.jsk.domain.bo.ComposeQueryDto; import com.dsk.jsk.domain.bo.ComposeQueryDto;
import com.dsk.search.service.BusinessOpportunityRadarService; import com.dsk.search.service.BusinessOpportunityRadarService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -54,6 +55,46 @@ public class CompanySearchController { ...@@ -54,6 +55,46 @@ public class CompanySearchController {
return opportunityRadarService.enterprisePage(object); return opportunityRadarService.enterprisePage(object);
} }
/*
* 企业基本信息表导出count
*/
@PostMapping("/info/export/pre")
public AjaxResult enterpriseInfoExportPre(@RequestBody JSONObject object) {
return opportunityRadarService.enterpriseInfoExportPre(object);
}
/*
* 企业基本信息表导出
*/
@PostMapping("/info/export")
public void enterpriseInfoExport(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (StringUtils.isEmpty(compose.getExportExeclName())){
object.put("exportExeclName","企业基本信息导出");
}
opportunityRadarService.enterpriseInfoExport(object);
}
/*
* 企业资质表导出count
*/
@PostMapping("/aptitude/export/pre")
public AjaxResult enterpriseAptitudeExportPre(@RequestBody JSONObject object) {
return opportunityRadarService.enterpriseAptitudeExportPre(object);
}
/*
* 企业资质表导出
*/
@PostMapping("/aptitude/export")
public void enterpriseAptitudeExport(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (StringUtils.isEmpty(compose.getExportExeclName())){
object.put("exportExeclName","企业资质信息导出");
}
opportunityRadarService.enterpriseAptitudeExport(object);
}
/* /*
* 查业主单位 * 查业主单位
*/ */
......
...@@ -15,9 +15,13 @@ import com.dsk.common.utils.DskOpenApiUtil; ...@@ -15,9 +15,13 @@ import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.common.utils.StringUtils; import com.dsk.common.utils.StringUtils;
import com.dsk.jsk.domain.vo.ImportantProjectExportVo; import com.dsk.jsk.domain.vo.ImportantProjectExportVo;
import com.dsk.jsk.service.EnterpriseService; import com.dsk.jsk.service.EnterpriseService;
import com.dsk.system.domain.SysUserFileRecord;
import com.dsk.system.service.ISysUserFileRecordService;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
...@@ -42,6 +46,11 @@ public class BusinessOpportunityRadarService { ...@@ -42,6 +46,11 @@ public class BusinessOpportunityRadarService {
@Autowired @Autowired
private EnterpriseService enterpriseService; private EnterpriseService enterpriseService;
@Autowired
private ISysUserFileRecordService sysUserFileRecordService;
@Value("${dsk.exportBackUrl}")
private String EXPORT_BACK_URL;
public AjaxResult jskBidNewsPage(JSONObject object) { public AjaxResult jskBidNewsPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/page", object); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/news/page", object);
...@@ -83,6 +92,46 @@ public class BusinessOpportunityRadarService { ...@@ -83,6 +92,46 @@ public class BusinessOpportunityRadarService {
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
public AjaxResult enterpriseInfoExportPre(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/count/enterprise", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Async
public void enterpriseInfoExport(JSONObject object) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(object.get("exportExeclName").toString());
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
fileRecord.setRemark("企业基本信息导出");
Long fileId = sysUserFileRecordService.exportAdd(fileRecord);
object.put("exportUniqueCode",fileId);
//回调函数
object.put("exportBackUrl",EXPORT_BACK_URL);
dskOpenApiUtil.requestBody("/operate/export/enterprise", object);
}
public AjaxResult enterpriseAptitudeExportPre(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/count/enterprise", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Async
public void enterpriseAptitudeExport(JSONObject object) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(object.get("exportExeclName").toString());
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
fileRecord.setRemark("企业资质信息导出");
Long fileId = sysUserFileRecordService.exportAdd(fileRecord);
object.put("exportUniqueCode",fileId);
//回调函数
object.put("exportBackUrl",EXPORT_BACK_URL);
dskOpenApiUtil.requestBody("/operate/export/aptitude", object);
}
public AjaxResult bossCompany(JSONObject object) { public AjaxResult bossCompany(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/bossCompany", object); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/bossCompany", object);
...@@ -180,6 +229,27 @@ public class BusinessOpportunityRadarService { ...@@ -180,6 +229,27 @@ public class BusinessOpportunityRadarService {
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
public AjaxResult importantExportPre(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/count/important", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
@Async
public void importantExport(JSONObject object) {
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setFileName(object.get("exportExeclName").toString());
fileRecord.setType(1);
//生成中
fileRecord.setStatus(2);
fileRecord.setRemark("重点项目清单导出");
Long fileId = sysUserFileRecordService.exportAdd(fileRecord);
object.put("exportUniqueCode",fileId);
//回调函数
object.put("exportBackUrl",EXPORT_BACK_URL);
dskOpenApiUtil.requestBody("/operate/export/important", object);
}
public List<ImportantProjectExportVo> exportImportant(JSONObject object) { public List<ImportantProjectExportVo> exportImportant(JSONObject object) {
if (ObjectUtil.isEmpty(object.get("page"))) { if (ObjectUtil.isEmpty(object.get("page"))) {
throw new ServiceException("导出条数不能为空!"); throw new ServiceException("导出条数不能为空!");
......
package com.dsk.system.service; package com.dsk.system.service;
import cn.hutool.json.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.domain.SysUserFileRecord; import com.dsk.system.domain.SysUserFileRecord;
...@@ -13,4 +16,8 @@ public interface ISysUserFileRecordService { ...@@ -13,4 +16,8 @@ public interface ISysUserFileRecordService {
TableDataInfo<SysUserFileRecord> userList(PageQuery page); TableDataInfo<SysUserFileRecord> userList(PageQuery page);
boolean add(SysUserFileRecord bean); boolean add(SysUserFileRecord bean);
Long exportAdd(SysUserFileRecord bean);
AjaxResult exportBack(JSONObject object);
} }
...@@ -3,10 +3,13 @@ package com.dsk.system.service.impl; ...@@ -3,10 +3,13 @@ package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanException; import cn.hutool.core.bean.BeanException;
import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.PageQuery; import com.dsk.common.core.domain.PageQuery;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.helper.LoginHelper; import com.dsk.common.helper.LoginHelper;
import com.dsk.common.utils.JsonUtils;
import com.dsk.system.domain.SysUserFileRecord; import com.dsk.system.domain.SysUserFileRecord;
import com.dsk.system.mapper.SysUserFileRecordMapper; import com.dsk.system.mapper.SysUserFileRecordMapper;
import com.dsk.system.service.ISysUserFileRecordService; import com.dsk.system.service.ISysUserFileRecordService;
...@@ -57,4 +60,25 @@ public class SysUserFileRecordServiceImpl implements ISysUserFileRecordService ...@@ -57,4 +60,25 @@ public class SysUserFileRecordServiceImpl implements ISysUserFileRecordService
if(ObjectUtils.isEmpty(bean.getType())) throw new BeanException("文件类型不能为空!"); if(ObjectUtils.isEmpty(bean.getType())) throw new BeanException("文件类型不能为空!");
bean.setUserId(LoginHelper.getUserId()); bean.setUserId(LoginHelper.getUserId());
} }
@Override
public Long exportAdd(SysUserFileRecord fileRecord){
fileRecord.setUserId(LoginHelper.getUserId());
baseMapper.insert(fileRecord);
return fileRecord.getId();
}
@Override
public AjaxResult exportBack(JSONObject object) {
if (object==null||object.get("url")==null||object.get("uniqueCode")==null){
return AjaxResult.error("回调参数异常:"+object.toString());
}
SysUserFileRecord fileRecord = new SysUserFileRecord();
fileRecord.setId((Long) object.get("uniqueCode"));
fileRecord.setUrl(object.get("url").toString());
fileRecord.setType(0);
baseMapper.updateById(fileRecord);
log.info("导出回调成功:"+object.toString());
return AjaxResult.success();
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment