Commit 4c1ac7ba authored by zhangyi's avatar zhangyi

Merge remote-tracking branch 'origin/master'

parents 2df62e52 26282b9d
...@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -69,17 +70,6 @@ public class BusinessFileController extends BaseController { ...@@ -69,17 +70,6 @@ public class BusinessFileController extends BaseController {
return getDataTable(allFiles); return getDataTable(allFiles);
} }
/* *//**
* 上传文件及文件夹
* @param url
* @param folderPath
* @return
*//*
@GetMapping("/upload/{url}/{folderPath}")
public AjaxResult uploadFolder(@PathVariable("url") String url,@PathVariable("folderPath") String folderPath) throws IOException {
return toAjax(FileUtils.uploadFolder(url, LOCALPATH + folderPath));
}*/
/** /**
* 上传文件及文件夹 * 上传文件及文件夹
* @param file 文件流 * @param file 文件流
...@@ -87,7 +77,7 @@ public class BusinessFileController extends BaseController { ...@@ -87,7 +77,7 @@ public class BusinessFileController extends BaseController {
* @return * @return
*/ */
@PostMapping("/upload") @PostMapping("/upload")
public AjaxResult uploadFolder(@RequestPart("file") MultipartFile file,HttpServletRequest request){ public AjaxResult uploadFolder(@RequestPart("file") MultipartFile file, HttpServletRequest request){
try { try {
String businessFileName = request.getHeader("FilePath"); String businessFileName = request.getHeader("FilePath");
// 上传文件路径 // 上传文件路径
...@@ -96,7 +86,7 @@ public class BusinessFileController extends BaseController { ...@@ -96,7 +86,7 @@ public class BusinessFileController extends BaseController {
String fileName = FileUploadUtils.upload(filePath, file); String fileName = FileUploadUtils.upload(filePath, file);
String url = serverConfig.getUrl() + fileName; String url = serverConfig.getUrl() + fileName;
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
ajax.put("url", url); ajax.put("url", fileName);
return ajax; return ajax;
} catch (IOException e) { } catch (IOException e) {
return AjaxResult.error(e.getMessage()); return AjaxResult.error(e.getMessage());
...@@ -105,12 +95,11 @@ public class BusinessFileController extends BaseController { ...@@ -105,12 +95,11 @@ public class BusinessFileController extends BaseController {
/** /**
* 下载文件 * 下载文件
* @param url * @param filePath 要下载的文件路径
* @param targetFolder * @param response 返回的响应
* @return
*/ */
@GetMapping("/download/{url}/{targetFolder}") @PostMapping("/download")
public AjaxResult downloadFolder(@PathVariable("url") String url,@PathVariable("targetFolder") String targetFolder) throws IOException { public void downloadFolder(@RequestBody BusinessIdDto filePath, HttpServletResponse response) {
return toAjax(FileUtils.downloadFolder(url, targetFolder)); FileUtils.downloadByFilePath(filePath.getFilePath(),response);
} }
} }
...@@ -4,6 +4,7 @@ import com.dsk.common.config.RuoYiConfig; ...@@ -4,6 +4,7 @@ import com.dsk.common.config.RuoYiConfig;
import com.dsk.common.core.domain.entity.BusinessFileVo; import com.dsk.common.core.domain.entity.BusinessFileVo;
import com.dsk.common.exception.base.BaseException; import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.DateUtils; import com.dsk.common.utils.DateUtils;
import com.dsk.common.utils.ServletUtils;
import com.dsk.common.utils.StringUtils; import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.uuid.IdUtils; import com.dsk.common.utils.uuid.IdUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -29,8 +30,6 @@ import java.nio.charset.StandardCharsets; ...@@ -29,8 +30,6 @@ import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
/** /**
* 文件处理工具类 * 文件处理工具类
...@@ -313,46 +312,95 @@ public class FileUtils ...@@ -313,46 +312,95 @@ public class FileUtils
} }
/** /**
* 下载文件 * 根据文件路径下载文件
* @param url 要下载的文件链接 * @param filePath 要下载的文件路径
* @param targetFolder 目标文件 * @param response 返回的响应
*/
public static void downloadByFilePath(String filePath, HttpServletResponse response) {
try {
// path是指想要下载的文件的路径
File file = new File(filePath);
// log.info(file.getPath());
if (!file.exists()) throw new BaseException("文件不存在!");
// 获取文件名
String filename = file.getName();
// log.info("文件名: "+filename);
// 获取文件后缀名
// String ext = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase();
// log.info("文件后缀名:" + ext);
// 将文件写入输入流
FileInputStream fileInputStream = new FileInputStream(file);
InputStream fis = new BufferedInputStream(fileInputStream);
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
// 清空response
response.reset();
// 设置response的Header
response.setCharacterEncoding("UTF-8");
//文件类型
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
//文件名称
response.addHeader("Download-filename", URLEncoder.encode(filename, "UTF-8"));
// 告知浏览器文件的大小
response.addHeader("Content-Length", "" + file.length());
OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
outputStream.write(buffer);
fis.close();
outputStream.flush();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* 根据文件url下载文件
* @param filePath 要下载的文件链接
* @param response 响应体
* @return * @return
* @throws IOException * @throws IOException
*/ */
public static boolean downloadFolder(String url, String targetFolder) throws IOException { public static void downloadByUrl(String filePath, HttpServletResponse response){
URL downloadUrl = new URL(url); // String fileUrl = request.getParameter("fileUrl"); // 获取文件链接
HttpURLConnection connection = (HttpURLConnection) downloadUrl.openConnection();
connection.setRequestMethod("GET");
connection.connect();
if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { try {
throw new RuntimeException("下载文件夹失败: " + connection.getResponseMessage()); URL url = new URL(filePath);
} HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
try (ZipInputStream zipInputStream = new ZipInputStream(connection.getInputStream())) { // 设置响应头,告诉浏览器下载文件
ZipEntry entry; String contentType = connection.getContentType(); // 获取文件类型
while ((entry = zipInputStream.getNextEntry()) != null) { response.setContentType(contentType);
String entryName = entry.getName(); String filename = extractFilenameFromUrl(filePath); // 从链接中提取文件名
if (StringUtils.isBlank(entryName)) { response.setHeader("Content-Disposition", "attachment; filename=" + filename + "");
continue;
}
File entryFile = new File(targetFolder, entryName); // 将文件流写入响应输出流
if (entry.isDirectory()) { InputStream inputStream = connection.getInputStream();
entryFile.mkdirs(); byte[] buffer = new byte[4096];
} else { int bytesRead = -1;
File parent = entryFile.getParentFile(); while ((bytesRead = inputStream.read(buffer)) != -1) {
if (!parent.exists()) { response.getOutputStream().write(buffer, 0, bytesRead);
parent.mkdirs();
} }
inputStream.close();
try (FileOutputStream outputStream = new FileOutputStream(entryFile)) { connection.disconnect();
IOUtils.copy(zipInputStream, outputStream); } catch (Exception e) {
} e.printStackTrace();
} }
} }
// 从文件链接中提取文件名
public static String extractFilenameFromUrl(String url) {
int slashIndex = url.lastIndexOf('/');
int dotIndex = url.lastIndexOf('.');
if (dotIndex == -1 || dotIndex < slashIndex) {
return "download";
} }
return true; return url.substring(slashIndex + 1);
} }
/** /**
...@@ -568,4 +616,17 @@ public class FileUtils ...@@ -568,4 +616,17 @@ public class FileUtils
String baseName = FilenameUtils.getBaseName(fileName); String baseName = FilenameUtils.getBaseName(fileName);
return baseName; return baseName;
} }
/**
* 获取本地服务的域名,端口
* @return
*/
public static String getUrl()
{
HttpServletRequest request = ServletUtils.getRequest();
StringBuffer url = request.getRequestURL();
String contextPath = request.getServletContext().getContextPath();
return url.delete(url.length() - request.getRequestURI().length(), url.length()).append(contextPath).toString();
}
} }
...@@ -111,7 +111,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter ...@@ -111,7 +111,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
// 过滤请求 // 过滤请求
.authorizeRequests() .authorizeRequests()
// 对于登录login 注册register 验证码captchaImage 允许匿名访问 // 对于登录login 注册register 验证码captchaImage 允许匿名访问
.antMatchers("/login", "/register", "/captchaImage","/economic/**","/enterprises/**","/specialPurposeBonds/**","/urbanInvestment/**","/enterprise/**").permitAll() .antMatchers("/login", "/register", "/captchaImage").permitAll()
// 静态资源,可匿名访问 // 静态资源,可匿名访问
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
......
...@@ -40,6 +40,16 @@ function changeStr(str, index, changeStr) { ...@@ -40,6 +40,16 @@ function changeStr(str, index, changeStr) {
return str.substr(0, index) + changeStr + str.substr(index + changeStr.length) return str.substr(0, index) + changeStr + str.substr(index + changeStr.length)
} }
//甲方详情子页面互跳
function changePath(that, pathName){
try {
that.$parent.showPartPage({pathName})
} catch {
that.$parent.$parent.showPartPage({pathName})
}
}
export { export {
encodeStr encodeStr,
changePath
} }
...@@ -116,7 +116,7 @@ export const constantRoutes = [ ...@@ -116,7 +116,7 @@ export const constantRoutes = [
] ]
}, },
{ {
path: '/financingDetails', path: '/financing',
component: Layout, component: Layout,
hidden: true, hidden: true,
redirect: 'noredirect', redirect: 'noredirect',
...@@ -125,7 +125,7 @@ export const constantRoutes = [ ...@@ -125,7 +125,7 @@ export const constantRoutes = [
path: '/macro/financing/details/:id(\\d+)', path: '/macro/financing/details/:id(\\d+)',
component: () => import('@/views/macro/financing/details'), component: () => import('@/views/macro/financing/details'),
name: 'financingDetails', name: 'financingDetails',
meta: { title: '区域专项债详情'} meta: { title: '区域专项债详情',icon: ''}
} }
] ]
}, },
......
...@@ -4,36 +4,27 @@ ...@@ -4,36 +4,27 @@
<el-breadcrumb separator="/"> <el-breadcrumb separator="/">
<el-breadcrumb-item :to="{ path: '/enterpriseData' }">企业数据</el-breadcrumb-item> <el-breadcrumb-item :to="{ path: '/enterpriseData' }">企业数据</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: '/enterpriseData?tag=1' }">查企业</el-breadcrumb-item> <el-breadcrumb-item :to="{ path: '/enterpriseData?tag=1' }">查企业</el-breadcrumb-item>
<el-breadcrumb-item>中铁一建</el-breadcrumb-item> <el-breadcrumb-item>{{companyInfo.simpleName || companyInfo.companyName || '--'}}</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
</div> </div>
<div class="flex-box part-header"> <div class="flex-box part-header">
<img class="header-logo" src="@/assets/images/avatar.png"> <img class="header-logo" :src="companyInfo.logoUrl || require('@/assets/images/detail/company_logo.png')">
中交第二航务工程局有限公司 {{companyInfo.companyName || '--'}}
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { infoHeader } from '@/api/detail/party-a/index'
export default { export default {
name: 'Header', name: 'Header',
props: ['companyId'], props: ['companyId', 'companyInfo'],
data() { data() {
return { return {
enterprise: {}
} }
}, },
created() { created() {
this.getInfoHeader()
}, },
methods: { methods: {
async getInfoHeader(){
let { data } = await infoHeader({companyId:this.companyId})
if( data.code == 200){
this.enterprise = data.data
}
}
} }
} }
</script> </script>
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
</el-input> </el-input>
<el-menu <el-menu
:default-active="routeIndex" :default-active="routeIndex"
:unique-opened="true"
class="detail-menu" class="detail-menu"
@open="handleOpen"> @open="handleOpen">
<template v-for="(item, index) in sideRoute"> <template v-for="(item, index) in sideRoute">
...@@ -119,7 +120,7 @@ export default { ...@@ -119,7 +120,7 @@ export default {
break break
}else if(sideArr[i].children){ }else if(sideArr[i].children){
for(let j=0; j< sideArr[i].children.length ; j++){ for(let j=0; j< sideArr[i].children.length ; j++){
if(sideArr[i].children.pathName == this.pathName){ if(sideArr[i].children[j].pathName == this.pathName){
idx = i+'-'+j idx = i+'-'+j
break break
} }
......
<template> <template>
<div class="app-container part-container"> <div class="app-container part-container">
<Header :company-id="companyId" v-if="companyId" /> <Header :company-id="companyId" :companyInfo="companyInfo" v-if="companyId" />
<div class="flex-box part-main"> <div class="flex-box part-main">
<div class="part-left"> <div class="part-left">
<side-bar @currentPath="showPartPage" :pathName="currentPath.pathName" :partBoxHeight="partBoxHeight" :customerId="customerId" /> <side-bar @currentPath="showPartPage" :pathName="currentPath.pathName" :partBoxHeight="partBoxHeight" :customerId="customerId" />
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="part-right"> <div class="part-right">
<div id="partBox" v-if="companyId"> <div id="partBox" v-if="companyId">
<!-- 企业概览 --> <!-- 企业概览 -->
<Overview v-if="currentPath.pathName=='overview'" :company-id="companyId" /> <Overview v-if="currentPath.pathName=='overview'" :company-id="companyId" :companyInfo="companyInfo" />
<Businfo v-if="currentPath.pathName=='businfo'" :company-id="companyId" /> <Businfo v-if="currentPath.pathName=='businfo'" :company-id="companyId" />
<Holderinfo v-if="currentPath.pathName=='holderinfo'" :company-id="companyId" /> <Holderinfo v-if="currentPath.pathName=='holderinfo'" :company-id="companyId" />
<Execuinfo v-if="currentPath.pathName=='execuinfo'" :company-id="companyId" /> <Execuinfo v-if="currentPath.pathName=='execuinfo'" :company-id="companyId" />
...@@ -142,7 +142,7 @@ export default { ...@@ -142,7 +142,7 @@ export default {
data() { data() {
return { return {
companyInfo: {}, companyInfo: {},
companyId: 10361319, //企业Id(测试默认3068) companyId: '565476563130566e69', //企业Id(测试默认3068)
customerId: '', //企业Id(测试默认'a00d582a6041f32c16aac804e4924736') customerId: '', //企业Id(测试默认'a00d582a6041f32c16aac804e4924736')
currentPath: { currentPath: {
pathName: 'overview' //默认展示页 pathName: 'overview' //默认展示页
...@@ -152,8 +152,10 @@ export default { ...@@ -152,8 +152,10 @@ export default {
}, },
created() { created() {
if (this.$route.query.companyId) { // 获取companyId if (this.$route.query.companyId) { // 获取companyId
let id = this.$route.query.companyId let companyId = this.$route.query.companyId
this.getCompanyId(id) this.getCompanyId(companyId)
}else{ //测试
this.getCompanyId(this.companyId)
} }
if (this.$route.query.path) { // 获取跳转对应板块 if (this.$route.query.path) { // 获取跳转对应板块
this.currentPath.pathName = this.$route.query.path this.currentPath.pathName = this.$route.query.path
...@@ -176,9 +178,9 @@ export default { ...@@ -176,9 +178,9 @@ export default {
}, },
// 解密 // 解密
async getCompanyId(companyId){ async getCompanyId(companyId){
let { data } = await idRemark({companyId}) let { data } = await idRemark({mark:companyId})
if( data.code == 200){ if( data ){
this.companyId = data.data this.companyId = data
this.handleQuery() this.handleQuery()
} }
}, },
......
<template> <template>
<div class="app-container part-container"> <div class="app-container part-container">
<div class="view-content"><Infoheader /></div><!-- 企业信息 --> <div class="view-content"><Infoheader :companyId="companyId" :companyInfo="companyInfo" /></div><!-- 企业信息 -->
<div class="view-content"><Operations /></div><!-- 公司经营 --> <div class="view-content"><Operations /></div><!-- 公司经营 -->
<div class="view-content"><Bidding /></div><!--招标偏好、业务往来--> <div class="view-content"><Bidding /></div><!--招标偏好、业务往来-->
<div class="view-content"><Busclue /></div><!--商机线索--> <div class="view-content"><Busclue /></div><!--商机线索-->
...@@ -22,7 +22,7 @@ import Risk from './component/risk' ...@@ -22,7 +22,7 @@ import Risk from './component/risk'
import Tender from "./component/tender" import Tender from "./component/tender"
export default { export default {
name: 'Overview', name: 'Overview',
props: ['companyId'], props: ['companyId', 'companyInfo'],
components: { components: {
Infoheader, Infoheader,
Operations, Operations,
......
...@@ -32,7 +32,7 @@ export default { ...@@ -32,7 +32,7 @@ export default {
}, },
data() { data() {
return { return {
activeName: 'four', activeName: 'first',
dataQuery:{}, dataQuery:{},
province:'' province:''
} }
......
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
// import LocalEnterprises from './component/localEnterprises' // import LocalEnterprises from './component/localEnterprises'
// import Offsite from './component/offsite' // import Offsite from './component/offsite'
import aptitudeCode from '@/assets/json/aptitudeCode' import aptitudeCode from '@/assets/json/aptitudeCode'
import { countGroupByMonth,countGroupByProvince,getYear } from '@/api/macro/macro' import { enterprise } from '@/api/macro/macro'
export default { export default {
name: 'Enterprises', name: 'Enterprises',
// components: {LocalEnterprises,Offsite}, // components: {LocalEnterprises,Offsite},
......
...@@ -11,15 +11,16 @@ ...@@ -11,15 +11,16 @@
:data="tableData" :data="tableData"
element-loading-text="Loading" element-loading-text="Loading"
border border
show-summary
height="360" height="360"
fit fit
@sort-change="sortChange" @sort-change="sortChange"
highlight-current-row highlight-current-row
> >
<el-table-column prop="name" label="项目类型" width="150" /> <el-table-column prop="name" label="项目类型" width="150" />
<el-table-column prop="value" label="项目个数" sortable="custom" width="140" /> <el-table-column prop="number" label="项目个数" sortable="custom" width="140" />
<el-table-column prop="totalInvestment" label="投资额(亿元)" sortable="custom" width="140" /> <el-table-column prop="value" label="投资额(亿元)" sortable="custom" width="140" />
<el-table-column prop="proportion" label="比例" width="140" sortable="custom" /> <el-table-column prop="proportion" label="比例(%)" width="140" sortable="custom" />
</el-table> </el-table>
</div> </div>
</div> </div>
...@@ -37,6 +38,7 @@ ...@@ -37,6 +38,7 @@
v-loading="tableLoading" v-loading="tableLoading"
:data="listData" :data="listData"
element-loading-text="Loading" element-loading-text="Loading"
@sort-change="sortChange1"
border border
fit fit
highlight-current-row highlight-current-row
...@@ -49,10 +51,10 @@ ...@@ -49,10 +51,10 @@
<router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.projectName}}</router-link> <router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.projectName}}</router-link>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="projectTotalInvestment" label="项目总投资(亿)" sortable width="155" /> <el-table-column prop="projectTotalInvestment" label="项目总投资(亿)" sortable="custom" width="155" />
<el-table-column prop="projectCapital" label="项目资本金(亿)" sortable width="155" /> <el-table-column prop="projectCapital" label="项目资本金(亿)" sortable="custom" width="155" />
<el-table-column prop="econData007" label="项目收益倍数(倍)" width="150" /> <el-table-column prop="econData007" label="项目收益倍数(倍)" sortable="custom" width="150" />
<el-table-column prop="zxz" label="专项债金额(亿)" width="150" /> <el-table-column prop="zxz" label="专项债金额(亿)" sortable="custom" width="150" />
<el-table-column prop="specialCapital" label="专项债用作资本金(亿)" width="170" /> <el-table-column prop="specialCapital" label="专项债用作资本金(亿)" width="170" />
<el-table-column prop="projectEntity" label="项目主体"> <el-table-column prop="projectEntity" label="项目主体">
<!--<template slot-scope="scope">--> <!--<template slot-scope="scope">-->
...@@ -126,8 +128,9 @@ export default { ...@@ -126,8 +128,9 @@ export default {
for(var i=0;i<res.data.length;i++){ for(var i=0;i<res.data.length;i++){
var obj={}; var obj={};
obj.name=res.data[i].projectType; obj.name=res.data[i].projectType;
obj.value=res.data[i].count; obj.value=res.data[i].totalInvestment;
obj.totalInvestment=res.data[i].totalInvestment; obj.number=res.data[i].count;
// obj.totalInvestment=res.data[i].totalInvestment;
obj.proportion=res.data[i].proportion; obj.proportion=res.data[i].proportion;
list.push(obj) list.push(obj)
} }
...@@ -140,8 +143,6 @@ export default { ...@@ -140,8 +143,6 @@ export default {
for(let i=0; i<10; i++){ for(let i=0; i<10; i++){
data.push(arr[i]) data.push(arr[i])
} }
console.log(arr)
console.log(data)
this.initChart(data) this.initChart(data)
}) })
}, },
...@@ -156,8 +157,8 @@ export default { ...@@ -156,8 +157,8 @@ export default {
formatter: function (params) { formatter: function (params) {
var result = '' var result = ''
result+='<h3 style="color: #232226;padding: 0 0 5px 0;margin: 0;">'+ params.data.name +'</h3>' result+='<h3 style="color: #232226;padding: 0 0 5px 0;margin: 0;">'+ params.data.name +'</h3>'
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.value +'个</p>' result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.number +'个</p>'
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.totalInvestment +'亿元</p>' result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.value +'亿元</p>'
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.proportion +'%</p>' result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.proportion +'%</p>'
return result; return result;
}, },
...@@ -189,8 +190,10 @@ export default { ...@@ -189,8 +190,10 @@ export default {
myChart.setOption(option); myChart.setOption(option);
}, },
sortChange({ column, prop, order }){ sortChange({ column, prop, order }){
if(prop === 'value'){ if(prop === 'number'){
this.queryParams.field = 'count' this.queryParams.field = 'count'
}else if(prop === 'value'){
this.queryParams.field = 'totalInvestment '
}else { }else {
this.queryParams.field = prop this.queryParams.field = prop
} }
...@@ -233,6 +236,19 @@ export default { ...@@ -233,6 +236,19 @@ export default {
this.pageIndex = val this.pageIndex = val
this.getData() this.getData()
}, },
sortChange1({ column, prop, order }){
this.tableParams.field = prop;
if(column.order === "ascending"){
this.tableParams.order = 'asc'
}else if(column.order === "descending"){
this.tableParams.order = 'desc'
}else {
this.tableParams.order=''
this.tableParams.field=''
}
this.pageIndex=1;
this.getData()
},
} }
} }
</script> </script>
......
...@@ -11,12 +11,6 @@ import java.util.List; ...@@ -11,12 +11,6 @@ import java.util.List;
**/ **/
@Data @Data
public class BusinessListDto { public class BusinessListDto {
/**
* 拜访方式
*/
private String visitWay;
/** /**
* 项目名称 * 项目名称
*/ */
......
...@@ -121,9 +121,14 @@ public class BusinessBrowseVo { ...@@ -121,9 +121,14 @@ public class BusinessBrowseVo {
private Integer backlogCount; private Integer backlogCount;
/** /**
* 资料文档统计 * 相关企业统计
*/ */
private Integer relateCompanyCount; private Integer relateCompanyCount;
/**
* 资料文档统计
*/
private Integer fileCount;
} }
...@@ -3,6 +3,7 @@ package com.dsk.system.mapper; ...@@ -3,6 +3,7 @@ package com.dsk.system.mapper;
import com.dsk.common.core.domain.entity.BusinessFollowRecord; import com.dsk.common.core.domain.entity.BusinessFollowRecord;
import com.dsk.system.domain.BusinessIdDto; import com.dsk.system.domain.BusinessIdDto;
import com.dsk.system.domain.BusinessListDto; import com.dsk.system.domain.BusinessListDto;
import com.dsk.system.domain.vo.BusinessListVo;
import java.util.List; import java.util.List;
...@@ -20,7 +21,7 @@ public interface BusinessFollowRecordMapper ...@@ -20,7 +21,7 @@ public interface BusinessFollowRecordMapper
* @param userId * @param userId
* @return * @return
*/ */
List<String> selectRelateProject (Integer userId); List<BusinessListVo> selectRelateProject (Integer userId);
/** /**
* 查询关联业主企业 * 查询关联业主企业
......
...@@ -3,6 +3,7 @@ package com.dsk.system.service; ...@@ -3,6 +3,7 @@ package com.dsk.system.service;
import com.dsk.common.core.domain.entity.BusinessFollowRecord; import com.dsk.common.core.domain.entity.BusinessFollowRecord;
import com.dsk.system.domain.BusinessIdDto; import com.dsk.system.domain.BusinessIdDto;
import com.dsk.system.domain.BusinessListDto; import com.dsk.system.domain.BusinessListDto;
import com.dsk.system.domain.vo.BusinessListVo;
import java.util.List; import java.util.List;
...@@ -59,7 +60,7 @@ public interface IBusinessFollowRecordService ...@@ -59,7 +60,7 @@ public interface IBusinessFollowRecordService
* @param userId * @param userId
* @return * @return
*/ */
List<String> selectRelateProject (Integer userId); List<BusinessListVo> selectRelateProject (Integer userId);
/** /**
* 查询关联业主企业 * 查询关联业主企业
......
package com.dsk.system.service.impl; package com.dsk.system.service.impl;
import com.dsk.common.core.domain.entity.BusinessFollowRecord; import com.dsk.common.core.domain.entity.BusinessFollowRecord;
import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.DateUtils; import com.dsk.common.utils.DateUtils;
import com.dsk.common.utils.SecurityUtils;
import com.dsk.system.domain.BusinessIdDto; import com.dsk.system.domain.BusinessIdDto;
import com.dsk.system.domain.BusinessListDto; import com.dsk.system.domain.BusinessListDto;
import com.dsk.system.domain.vo.BusinessListVo;
import com.dsk.system.mapper.BusinessFollowRecordMapper; import com.dsk.system.mapper.BusinessFollowRecordMapper;
import com.dsk.system.service.IBusinessFollowRecordService; import com.dsk.system.service.IBusinessFollowRecordService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -45,11 +48,11 @@ public class BusinessFollowRecordServiceImpl implements IBusinessFollowRecordSer ...@@ -45,11 +48,11 @@ public class BusinessFollowRecordServiceImpl implements IBusinessFollowRecordSer
@Override @Override
public List<BusinessFollowRecord> allFollow(BusinessListDto dto) { public List<BusinessFollowRecord> allFollow(BusinessListDto dto) {
//userId不传值,就查询全部门项目 //userId不传值,就查询全部门项目
// if (dto.getUserId() == null) { if (dto.getUserId() == null) {
// Long deptId = SecurityUtils.getLoginUser().getDeptId(); Long deptId = SecurityUtils.getLoginUser().getDeptId();
// if (deptId == null) throw new BaseException("请登录"); if (deptId == null) throw new BaseException("请登录");
// dto.setDeptId(deptId.intValue()); dto.setDeptId(deptId.intValue());
// } }
return businessFollowRecordMapper.allFollow(dto); return businessFollowRecordMapper.allFollow(dto);
} }
...@@ -72,7 +75,7 @@ public class BusinessFollowRecordServiceImpl implements IBusinessFollowRecordSer ...@@ -72,7 +75,7 @@ public class BusinessFollowRecordServiceImpl implements IBusinessFollowRecordSer
} }
@Override @Override
public List<String> selectRelateProject(Integer userId) { public List<BusinessListVo> selectRelateProject(Integer userId) {
return businessFollowRecordMapper.selectRelateProject(userId); return businessFollowRecordMapper.selectRelateProject(userId);
} }
......
...@@ -80,11 +80,11 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -80,11 +80,11 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
@Override @Override
public List<BusinessListVo> selectBusinessInfoList(BusinessListDto dto) { public List<BusinessListVo> selectBusinessInfoList(BusinessListDto dto) {
//userId不传值,就查询全部门项目 //userId不传值,就查询全部门项目
// if (dto.getUserId() == null) { if (dto.getUserId() == null) {
// Long deptId = SecurityUtils.getLoginUser().getDeptId(); Long deptId = SecurityUtils.getLoginUser().getDeptId();
// if (deptId == null) throw new BaseException("请登录"); if (deptId == null) throw new BaseException("请登录");
// dto.setDeptId(deptId.intValue()); dto.setDeptId(deptId.intValue());
// } }
return businessInfoMapper.selectBusinessInfoList(dto); return businessInfoMapper.selectBusinessInfoList(dto);
} }
...@@ -105,7 +105,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -105,7 +105,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
businessBrowseVo.setFollowRecordCount(total.getFollowRecordCount()); businessBrowseVo.setFollowRecordCount(total.getFollowRecordCount());
businessBrowseVo.setRelateCompanyCount(total.getRelateCompanyCount()); businessBrowseVo.setRelateCompanyCount(total.getRelateCompanyCount());
//资料文档统计 //资料文档统计
businessBrowseVo.setRelateCompanyCount(FileUtils.getAllFileNames(RuoYiConfig.getProfile()+businessId).size()); businessBrowseVo.setFileCount(FileUtils.getAllFileNames(RuoYiConfig.getProfile()+businessId).size());
return businessBrowseVo; return businessBrowseVo;
} }
......
...@@ -75,29 +75,20 @@ ...@@ -75,29 +75,20 @@
<if test="deptId != null"> <if test="deptId != null">
and u.dept_id = #{deptId} and u.dept_id = #{deptId}
</if> </if>
<if test="projectName != null and projectName != ''">
and i.project_name = #{projectName}
</if>
<if test="ownerCompany != null and ownerCompany != ''">
and i.construction_unit = #{ownerCompany}
</if>
<if test="visitWay != null and visitWay != ''">
and f.visit_way = #{visitWay}
</if>
</where> </where>
ORDER BY f.creat_time DESC ORDER BY f.creat_time DESC
</select> </select>
<select id="selectRelateProject" resultType="java.lang.String"> <select id="selectRelateProject" resultType="com.dsk.system.domain.vo.BusinessListVo">
select i.project_name select i.id,i.project_name as projectName
from business_info i from business_info i
left join business_follow_record f on f.business_id = i.id left join business_user u on u.business_id = i.id
where f.user_id = #{userId} where u.user_id = #{userId}
</select> </select>
<select id="selectRelateCompany" resultType="java.lang.String"> <select id="selectRelateCompany" resultType="java.lang.String">
select i.construction_unit select i.construction_unit
from business_info i from business_info i
left join business_follow_record f on f.business_id = i.id left join business_user u on u.business_id = i.id
where f.user_id = #{userId} where u.user_id = #{userId}
</select> </select>
<insert id="insertBusinessFollowRecord" parameterType="com.dsk.common.core.domain.entity.BusinessFollowRecord" useGeneratedKeys="true" <insert id="insertBusinessFollowRecord" parameterType="com.dsk.common.core.domain.entity.BusinessFollowRecord" useGeneratedKeys="true"
......
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