Commit dbc75fa1 authored by MyName's avatar MyName
parents 5df1e280 5b7e1a75
......@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
......@@ -69,17 +70,6 @@ public class BusinessFileController extends BaseController {
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 文件流
......@@ -87,7 +77,7 @@ public class BusinessFileController extends BaseController {
* @return
*/
@PostMapping("/upload")
public AjaxResult uploadFolder(@RequestPart("file") MultipartFile file,HttpServletRequest request){
public AjaxResult uploadFolder(@RequestPart("file") MultipartFile file, HttpServletRequest request){
try {
String businessFileName = request.getHeader("FilePath");
// 上传文件路径
......@@ -96,7 +86,7 @@ public class BusinessFileController extends BaseController {
String fileName = FileUploadUtils.upload(filePath, file);
String url = serverConfig.getUrl() + fileName;
AjaxResult ajax = AjaxResult.success();
ajax.put("url", url);
ajax.put("url", fileName);
return ajax;
} catch (IOException e) {
return AjaxResult.error(e.getMessage());
......@@ -105,12 +95,11 @@ public class BusinessFileController extends BaseController {
/**
* 下载文件
* @param url
* @param targetFolder
* @return
* @param filePath 要下载的文件路径
* @param response 返回的响应
*/
@GetMapping("/download/{url}/{targetFolder}")
public AjaxResult downloadFolder(@PathVariable("url") String url,@PathVariable("targetFolder") String targetFolder) throws IOException {
return toAjax(FileUtils.downloadFolder(url, targetFolder));
@PostMapping("/download")
public void downloadFolder(@RequestBody BusinessIdDto filePath, HttpServletResponse response) {
FileUtils.downloadByFilePath(filePath.getFilePath(),response);
}
}
......@@ -123,4 +123,10 @@ public class EnterpriseController {
return enterpriseService.remark(vo);
}
@ApiOperation(value = "企业主体信用评级")
@PostMapping(value = "bondCreditRating")
public R remark(@RequestBody @Valid EnterpriseBondCreditRatingBody vo) throws Exception {
return enterpriseService.bondCreditRating(vo);
}
}
package com.dsk.web.controller.search.macroMarket;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.system.service.RegionalEnterprisesService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -24,7 +24,7 @@ public class RegionalEnterprisesController {
private RegionalEnterprisesService regionalEnterprisesService;
@PostMapping("regional/page")
public AjaxResult page(@RequestBody ComposeQueryDto compose) {
public TableDataInfo page(@RequestBody ComposeQueryDto compose) throws Exception{
return regionalEnterprisesService.page(compose);
}
}
package com.dsk.common.core.domain.model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import javax.validation.constraints.NotNull;
@Data
@ToString
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class EnterpriseBondCreditRatingBody
{
/**
* 企业id
*/
@NotNull(message = "企业id不能为空")
private Integer cid;
}
......@@ -18,5 +18,6 @@ public class EnterpriseStatisticBody
*/
@NotNull(message = "企业id不能为空")
private Integer companyId;
private Boolean isFy = false;
}
......@@ -12,6 +12,11 @@ import lombok.Data;
@Data
public class SpecialPurposeBondsDto {
/**
* 省Id
*/
private Integer provinceId;
/**
* 项目类型
*/
......
......@@ -12,4 +12,8 @@ import lombok.Data;
*/
@Data
public class SpecialPurposeBondsPageDto extends BasePage {
/**
* 省Id
*/
private Integer provinceId;
}
......@@ -4,6 +4,7 @@ import com.dsk.common.config.RuoYiConfig;
import com.dsk.common.core.domain.entity.BusinessFileVo;
import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.DateUtils;
import com.dsk.common.utils.ServletUtils;
import com.dsk.common.utils.StringUtils;
import com.dsk.common.utils.uuid.IdUtils;
import lombok.extern.slf4j.Slf4j;
......@@ -29,8 +30,6 @@ import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
/**
* 文件处理工具类
......@@ -313,46 +312,95 @@ public class FileUtils
}
/**
* 下载文件
* @param url 要下载的文件链接
* @param targetFolder 目标文件
* 根据文件路径下载文件
* @param filePath 要下载的文件路径
* @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
* @throws IOException
*/
public static boolean downloadFolder(String url, String targetFolder) throws IOException {
URL downloadUrl = new URL(url);
HttpURLConnection connection = (HttpURLConnection) downloadUrl.openConnection();
connection.setRequestMethod("GET");
connection.connect();
if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) {
throw new RuntimeException("下载文件夹失败: " + connection.getResponseMessage());
}
try (ZipInputStream zipInputStream = new ZipInputStream(connection.getInputStream())) {
ZipEntry entry;
while ((entry = zipInputStream.getNextEntry()) != null) {
String entryName = entry.getName();
if (StringUtils.isBlank(entryName)) {
continue;
}
public static void downloadByUrl(String filePath, HttpServletResponse response){
// String fileUrl = request.getParameter("fileUrl"); // 获取文件链接
File entryFile = new File(targetFolder, entryName);
if (entry.isDirectory()) {
entryFile.mkdirs();
} else {
File parent = entryFile.getParentFile();
if (!parent.exists()) {
parent.mkdirs();
}
try (FileOutputStream outputStream = new FileOutputStream(entryFile)) {
IOUtils.copy(zipInputStream, outputStream);
}
}
try {
URL url = new URL(filePath);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
// 设置响应头,告诉浏览器下载文件
String contentType = connection.getContentType(); // 获取文件类型
response.setContentType(contentType);
String filename = extractFilenameFromUrl(filePath); // 从链接中提取文件名
response.setHeader("Content-Disposition", "attachment; filename=" + filename + "");
// 将文件流写入响应输出流
InputStream inputStream = connection.getInputStream();
byte[] buffer = new byte[4096];
int bytesRead = -1;
while ((bytesRead = inputStream.read(buffer)) != -1) {
response.getOutputStream().write(buffer, 0, bytesRead);
}
inputStream.close();
connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
// 从文件链接中提取文件名
public static String extractFilenameFromUrl(String url) {
int slashIndex = url.lastIndexOf('/');
int dotIndex = url.lastIndexOf('.');
if (dotIndex == -1 || dotIndex < slashIndex) {
return "download";
}
return url.substring(slashIndex + 1);
}
/**
......@@ -568,4 +616,17 @@ public class FileUtils
String baseName = FilenameUtils.getBaseName(fileName);
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
// 过滤请求
.authorizeRequests()
// 对于登录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("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
......
......@@ -40,6 +40,16 @@ function changeStr(str, index, changeStr) {
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 {
encodeStr
encodeStr,
changePath
}
......@@ -89,34 +89,51 @@ export const constantRoutes = [
]
},
{
path: '/party',
path: '/enterprise',
component: Layout,
hidden: true,
name: 'Party',
name: 'Enterprise',
redirect: 'noredirect',
children: [
{
path: 'party-a',
path: '/enterprise/:id',
component: () => import('@/views/detail/party-a/index'),
name: 'PartyA',
meta: { title: '甲方详情' },
},
}
]
},
{
path: '/company',
component: Layout,
hidden: true,
name: 'Company',
redirect: 'noredirect',
children: [
{
path: 'party-b',
path: '/company/:id',
component: () => import('@/views/detail/party-b/index'),
name: 'PartyB',
meta: { title: '已方详情' }
},
}
]
},
{
path: '/structure',
component: Layout,
hidden: true,
redirect: 'noredirect',
children: [
{
path: 'structure',
path: 'graph',
component: () => import('@/views/detail/structure/index'),
name: 'Structure',
name: 'Graph',
meta: { title: '企业链图' }
}
]
},
{
path: '/financingDetails',
path: '/financing',
component: Layout,
hidden: true,
redirect: 'noredirect',
......@@ -125,7 +142,7 @@ export const constantRoutes = [
path: '/macro/financing/details/:id(\\d+)',
component: () => import('@/views/macro/financing/details'),
name: 'financingDetails',
meta: { title: '区域专项债详情'}
meta: { title: '区域专项债详情',icon: ''}
}
]
},
......
......@@ -4,36 +4,27 @@
<el-breadcrumb separator="/">
<el-breadcrumb-item :to="{ path: '/enterpriseData' }">企业数据</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>
</div>
<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>
</template>
<script>
import { infoHeader } from '@/api/detail/party-a/index'
export default {
name: 'Header',
props: ['companyId'],
props: ['companyId', 'companyInfo'],
data() {
return {
enterprise: {}
}
},
created() {
this.getInfoHeader()
},
methods: {
async getInfoHeader(){
let { data } = await infoHeader({companyId:this.companyId})
if( data.code == 200){
this.enterprise = data.data
}
}
}
}
</script>
......
......@@ -8,6 +8,7 @@
</el-input>
<el-menu
:default-active="routeIndex"
:unique-opened="true"
class="detail-menu"
@open="handleOpen">
<template v-for="(item, index) in sideRoute">
......@@ -119,7 +120,7 @@ export default {
break
}else if(sideArr[i].children){
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
break
}
......
<template>
<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="part-left">
<side-bar @currentPath="showPartPage" :pathName="currentPath.pathName" :partBoxHeight="partBoxHeight" :customerId="customerId" />
......@@ -8,7 +8,7 @@
<div class="part-right">
<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" />
<Holderinfo v-if="currentPath.pathName=='holderinfo'" :company-id="companyId" />
<Execuinfo v-if="currentPath.pathName=='execuinfo'" :company-id="companyId" />
......@@ -142,7 +142,7 @@ export default {
data() {
return {
companyInfo: {},
companyId: 10361319, //企业Id(测试默认3068)
companyId: '', //企业Id(测试默认3068)
customerId: '', //企业Id(测试默认'a00d582a6041f32c16aac804e4924736')
currentPath: {
pathName: 'overview' //默认展示页
......@@ -151,9 +151,9 @@ export default {
}
},
created() {
if (this.$route.query.companyId) { // 获取companyId
let id = this.$route.query.companyId
this.getCompanyId(id)
if (this.$route.params.id) { // 获取companyId
let companyId = this.$route.params.id
this.getCompanyId(companyId)
}
if (this.$route.query.path) { // 获取跳转对应板块
this.currentPath.pathName = this.$route.query.path
......@@ -163,12 +163,6 @@ export default {
}
},
mounted() {
const _this = this, erd = elementResizeDetectorMaker(), partBox = document.getElementById("partBox")
erd.listenTo(partBox, element => {
_this.$nextTick(() => {
_this.partBoxHeight = partBox.offsetHeight
})
})
},
methods: {
showPartPage(e){
......@@ -176,9 +170,12 @@ export default {
},
// 解密
async getCompanyId(companyId){
let { data } = await idRemark({companyId})
if( data.code == 200){
this.companyId = data.data
let { data } = await idRemark({mark:companyId})
if( data ){
this.companyId = data
this.$nextTick(() => {
this.listenSider()
})
this.handleQuery()
}
},
......@@ -187,6 +184,12 @@ export default {
if(res.code==200){
this.companyInfo = res.data
}
},
listenSider(){
const _this = this, erd = elementResizeDetectorMaker(), partBox = document.getElementById("partBox")
erd.listenTo(partBox, element => {
_this.partBoxHeight = partBox.offsetHeight
})
}
}
}
......@@ -206,5 +209,6 @@ export default {
.part-right{
min-width: 1088px;
width: 100%;
background: #FFFFFF;
}
</style>
<template>
<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"><Bidding /></div><!--招标偏好、业务往来-->
<div class="view-content"><Busclue /></div><!--商机线索-->
......@@ -22,7 +22,7 @@ import Risk from './component/risk'
import Tender from "./component/tender"
export default {
name: 'Overview',
props: ['companyId'],
props: ['companyId', 'companyInfo'],
components: {
Infoheader,
Operations,
......
......@@ -19,9 +19,9 @@ export default {
}
},
created() {
if (this.$route.query.companyId) { // 获取companyId
if (this.$route.params.id) { // 获取companyId
this.loading = true
this.src = `https://pre-plug.jiansheku.com/enterprise/${this.$route.query.companyId}?secretId=${this.secretId}`
this.src = `https://pre-plug.jiansheku.com/enterprise/${this.$route.params.id}?secretId=${this.secretId}`
}
},
mounted() {
......
......@@ -32,7 +32,7 @@ export default {
},
data() {
return {
activeName: 'four',
activeName: 'first',
dataQuery:{},
province:''
}
......
......@@ -68,7 +68,7 @@
// import LocalEnterprises from './component/localEnterprises'
// import Offsite from './component/offsite'
import aptitudeCode from '@/assets/json/aptitudeCode'
import { countGroupByMonth,countGroupByProvince,getYear } from '@/api/macro/macro'
import { enterprise } from '@/api/macro/macro'
export default {
name: 'Enterprises',
// components: {LocalEnterprises,Offsite},
......
......@@ -11,15 +11,16 @@
:data="tableData"
element-loading-text="Loading"
border
show-summary
height="360"
fit
@sort-change="sortChange"
highlight-current-row
>
<el-table-column prop="name" label="项目类型" width="150" />
<el-table-column prop="value" label="项目个数" sortable="custom" width="140" />
<el-table-column prop="totalInvestment" label="投资额(亿元)" sortable="custom" width="140" />
<el-table-column prop="proportion" label="比例" width="140" sortable="custom" />
<el-table-column prop="number" 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>
</div>
</div>
......@@ -37,6 +38,7 @@
v-loading="tableLoading"
:data="listData"
element-loading-text="Loading"
@sort-change="sortChange1"
border
fit
highlight-current-row
......@@ -49,10 +51,10 @@
<router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.projectName}}</router-link>
</template>
</el-table-column>
<el-table-column prop="projectTotalInvestment" label="项目总投资(亿)" sortable width="155" />
<el-table-column prop="projectCapital" label="项目资本金(亿)" sortable width="155" />
<el-table-column prop="econData007" label="项目收益倍数(倍)" width="150" />
<el-table-column prop="zxz" label="专项债金额(亿)" width="150" />
<el-table-column prop="projectTotalInvestment" label="项目总投资(亿)" sortable="custom" width="155" />
<el-table-column prop="projectCapital" label="项目资本金(亿)" sortable="custom" width="155" />
<el-table-column prop="econData007" label="项目收益倍数(倍)" sortable="custom" width="150" />
<el-table-column prop="zxz" label="专项债金额(亿)" sortable="custom" width="150" />
<el-table-column prop="specialCapital" label="专项债用作资本金(亿)" width="170" />
<el-table-column prop="projectEntity" label="项目主体">
<!--<template slot-scope="scope">-->
......@@ -126,8 +128,9 @@ export default {
for(var i=0;i<res.data.length;i++){
var obj={};
obj.name=res.data[i].projectType;
obj.value=res.data[i].count;
obj.totalInvestment=res.data[i].totalInvestment;
obj.value=res.data[i].totalInvestment;
obj.number=res.data[i].count;
// obj.totalInvestment=res.data[i].totalInvestment;
obj.proportion=res.data[i].proportion;
list.push(obj)
}
......@@ -140,8 +143,6 @@ export default {
for(let i=0; i<10; i++){
data.push(arr[i])
}
console.log(arr)
console.log(data)
this.initChart(data)
})
},
......@@ -156,8 +157,8 @@ export default {
formatter: function (params) {
var result = ''
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.totalInvestment +'亿元</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.value +'亿元</p>'
result+='<p style="color: rgba(35,35,35,0.8);padding: 0;margin: 0;">'+ params.data.proportion +'%</p>'
return result;
},
......@@ -189,8 +190,10 @@ export default {
myChart.setOption(option);
},
sortChange({ column, prop, order }){
if(prop === 'value'){
if(prop === 'number'){
this.queryParams.field = 'count'
}else if(prop === 'value'){
this.queryParams.field = 'totalInvestment '
}else {
this.queryParams.field = prop
}
......@@ -233,6 +236,19 @@ export default {
this.pageIndex = val
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>
......
......@@ -11,12 +11,6 @@ import java.util.List;
**/
@Data
public class BusinessListDto {
/**
* 拜访方式
*/
private String visitWay;
/**
* 项目名称
*/
......
......@@ -121,9 +121,14 @@ public class BusinessBrowseVo {
private Integer backlogCount;
/**
* 资料文档统计
* 相关企业统计
*/
private Integer relateCompanyCount;
/**
* 资料文档统计
*/
private Integer fileCount;
}
......@@ -193,4 +193,9 @@ public class EnterpriseService {
public R remark(EnterpriseRemarkBody vo) throws Exception {
return R.ok(EncodeIdUtil.avDecode(EncodeIdUtil.binaryToUnicode(vo.mark)));
}
public R bondCreditRating(EnterpriseBondCreditRatingBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterprise/bondCreditRating", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
}
}
......@@ -3,6 +3,7 @@ package com.dsk.system.mapper;
import com.dsk.common.core.domain.entity.BusinessFollowRecord;
import com.dsk.system.domain.BusinessIdDto;
import com.dsk.system.domain.BusinessListDto;
import com.dsk.system.domain.vo.BusinessListVo;
import java.util.List;
......@@ -20,7 +21,7 @@ public interface BusinessFollowRecordMapper
* @param userId
* @return
*/
List<String> selectRelateProject (Integer userId);
List<BusinessListVo> selectRelateProject (Integer userId);
/**
* 查询关联业主企业
......
......@@ -3,6 +3,7 @@ package com.dsk.system.service;
import com.dsk.common.core.domain.entity.BusinessFollowRecord;
import com.dsk.system.domain.BusinessIdDto;
import com.dsk.system.domain.BusinessListDto;
import com.dsk.system.domain.vo.BusinessListVo;
import java.util.List;
......@@ -59,7 +60,7 @@ public interface IBusinessFollowRecordService
* @param userId
* @return
*/
List<String> selectRelateProject (Integer userId);
List<BusinessListVo> selectRelateProject (Integer userId);
/**
* 查询关联业主企业
......
package com.dsk.system.service;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.dtos.ComposeQueryDto;
/**
......@@ -19,5 +19,5 @@ public interface RegionalEnterprisesService {
*@Author: Dgm
*@date: 2023/5/18 10:25
*/
AjaxResult page(ComposeQueryDto compose);
TableDataInfo page(ComposeQueryDto compose) throws Exception;
}
package com.dsk.system.service.impl;
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.SecurityUtils;
import com.dsk.system.domain.BusinessIdDto;
import com.dsk.system.domain.BusinessListDto;
import com.dsk.system.domain.vo.BusinessListVo;
import com.dsk.system.mapper.BusinessFollowRecordMapper;
import com.dsk.system.service.IBusinessFollowRecordService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -45,11 +48,11 @@ public class BusinessFollowRecordServiceImpl implements IBusinessFollowRecordSer
@Override
public List<BusinessFollowRecord> allFollow(BusinessListDto dto) {
//userId不传值,就查询全部门项目
// if (dto.getUserId() == null) {
// Long deptId = SecurityUtils.getLoginUser().getDeptId();
// if (deptId == null) throw new BaseException("请登录");
// dto.setDeptId(deptId.intValue());
// }
if (dto.getUserId() == null) {
Long deptId = SecurityUtils.getLoginUser().getDeptId();
if (deptId == null) throw new BaseException("请登录");
dto.setDeptId(deptId.intValue());
}
return businessFollowRecordMapper.allFollow(dto);
}
......@@ -72,7 +75,7 @@ public class BusinessFollowRecordServiceImpl implements IBusinessFollowRecordSer
}
@Override
public List<String> selectRelateProject(Integer userId) {
public List<BusinessListVo> selectRelateProject(Integer userId) {
return businessFollowRecordMapper.selectRelateProject(userId);
}
......
......@@ -80,11 +80,11 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
@Override
public List<BusinessListVo> selectBusinessInfoList(BusinessListDto dto) {
//userId不传值,就查询全部门项目
// if (dto.getUserId() == null) {
// Long deptId = SecurityUtils.getLoginUser().getDeptId();
// if (deptId == null) throw new BaseException("请登录");
// dto.setDeptId(deptId.intValue());
// }
if (dto.getUserId() == null) {
Long deptId = SecurityUtils.getLoginUser().getDeptId();
if (deptId == null) throw new BaseException("请登录");
dto.setDeptId(deptId.intValue());
}
return businessInfoMapper.selectBusinessInfoList(dto);
}
......@@ -105,7 +105,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
businessBrowseVo.setFollowRecordCount(total.getFollowRecordCount());
businessBrowseVo.setRelateCompanyCount(total.getRelateCompanyCount());
//资料文档统计
businessBrowseVo.setRelateCompanyCount(FileUtils.getAllFileNames(RuoYiConfig.getProfile()+businessId).size());
businessBrowseVo.setFileCount(FileUtils.getAllFileNames(RuoYiConfig.getProfile()+businessId).size());
return businessBrowseVo;
}
......
package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.service.RegionalEnterprisesService;
......@@ -24,8 +24,8 @@ public class RegionalEnterprisesServiceImpl implements RegionalEnterprisesServic
private DskOpenApiUtil dskOpenApiUtil;
@Override
public AjaxResult page(ComposeQueryDto compose) {
public TableDataInfo page(ComposeQueryDto compose) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page", BeanUtil.beanToMap(compose, false, false));
return BeanUtil.toBean(map, AjaxResult.class);
return dskOpenApiUtil.responsePage(map);
}
}
......@@ -75,29 +75,20 @@
<if test="deptId != null">
and u.dept_id = #{deptId}
</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>
ORDER BY f.creat_time DESC
</select>
<select id="selectRelateProject" resultType="java.lang.String">
select i.project_name
<select id="selectRelateProject" resultType="com.dsk.system.domain.vo.BusinessListVo">
select i.id,i.project_name as projectName
from business_info i
left join business_follow_record f on f.business_id = i.id
where f.user_id = #{userId}
left join business_user u on u.business_id = i.id
where u.user_id = #{userId}
</select>
<select id="selectRelateCompany" resultType="java.lang.String">
select i.construction_unit
from business_info i
left join business_follow_record f on f.business_id = i.id
where f.user_id = #{userId}
left join business_user u on u.business_id = i.id
where u.user_id = #{userId}
</select>
<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