Commit 71fab115 authored by danfuman's avatar danfuman

Merge branch 'dev20230707' of http://192.168.60.201/root/dsk-operate-sys into dev20230707

parents 03aa1efa cc160b46
...@@ -8,13 +8,11 @@ import com.dsk.system.domain.business.dto.BusinessSearchDto; ...@@ -8,13 +8,11 @@ import com.dsk.system.domain.business.dto.BusinessSearchDto;
import com.dsk.system.service.IBusinessOverviewService; import com.dsk.system.service.IBusinessOverviewService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* 项目概览 * 项目概览
*
* @author lcl * @author lcl
* @create 2023/8/14 * @create 2023/8/14
*/ */
...@@ -30,40 +28,43 @@ public class BusinessOverviewController extends BaseController { ...@@ -30,40 +28,43 @@ public class BusinessOverviewController extends BaseController {
* 项目状态统计 * 项目状态统计
*/ */
@GetMapping("/status/statistics") @GetMapping("/status/statistics")
public AjaxResult statusStatistics(){ public AjaxResult statusStatistics() {
return AjaxResult.success(baseService.statusStatistics(new BusinessSearchDto(SecurityUtils.getUserId()))); return AjaxResult.success(baseService.statusStatistics(new BusinessSearchDto(SecurityUtils.getUserId())));
} }
/** /**
* 项目资金分析 * 项目资金分析
*/ */
@GetMapping("/amount/analyze") @GetMapping("/amount/analyze")
public AjaxResult amountAnalyze(){ public AjaxResult amountAnalyze() {
return AjaxResult.success(baseService.amountAnalyze(new BusinessSearchDto(SecurityUtils.getUserId(),0))); return AjaxResult.success(baseService.amountAnalyze(new BusinessSearchDto(SecurityUtils.getUserId(), 0)));
} }
/** /**
* 项目类型分析 * 项目类型分析
*/ */
@GetMapping("/type/analyze") @GetMapping("/type/analyze/{status}")
public AjaxResult typeAnalyze(){ public AjaxResult typeAnalyze(@PathVariable Integer status) {
return AjaxResult.success(baseService.typeAnalyze(new BusinessSearchDto(SecurityUtils.getUserId(),2))); return AjaxResult.success(baseService.typeAnalyze(new BusinessSearchDto(SecurityUtils.getUserId(), status)));
} }
/** /**
* 公招项目地区统计 * 公招项目地区统计
*
* @return * @return
*/ */
@GetMapping("/countGroupByProvince") @RequestMapping("/countGroupByProvince")
public AjaxResult countGroupByProvince(@RequestBody JSONObject object){ public AjaxResult countGroupByProvince(@RequestBody JSONObject object) {
return baseService.countGroupByProvince(object); return baseService.countGroupByProvince(object);
} }
/** /**
* 公招项目投资金额统计 * 公招项目投资金额统计
*
* @return * @return
*/ */
@GetMapping("/rangByMoney") @RequestMapping("/rangByMoney")
public AjaxResult rangByMoney(@RequestBody JSONObject object){ public AjaxResult rangByMoney(@RequestBody JSONObject object) {
return baseService.rangByMoney(object); return baseService.rangByMoney(object);
} }
} }
...@@ -32,35 +32,16 @@ public class IndexController { ...@@ -32,35 +32,16 @@ public class IndexController {
@Autowired @Autowired
private IndexService enterpriseService; private IndexService enterpriseService;
@ApiOperation(value = "企业中标排行榜")
@PostMapping("/winningBidsRanking")
public R winningBidsRanking(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseService.winningBidsRanking(paramMap);
}
@ApiOperation(value = "企业中标排行-项目类型")
@PostMapping("/rankingProjectType")
public R rankingProjectType(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseService.rankingProjectType(paramMap);
}
@ApiOperation(value = "大项目最新中标") @ApiOperation(value = "大项目最新中标")
@PostMapping(value = "bigWinningBidsPage") @PostMapping(value = "bigWinningBidsPage")
public TableDataInfo bigWinningBidsPage(@RequestBody IndexBigWinningBidsPageBody vo) throws Exception { public AjaxResult bigWinningBidsPage(@RequestBody JSONObject object) throws Exception {
return enterpriseService.bigWinningBidsPage(vo); return enterpriseService.bigWinningBidsPage(object);
} }
@ApiOperation(value = "大项目最新招标") @ApiOperation(value = "大项目最新招标")
@PostMapping(value = "bigBidPage") @PostMapping(value = "bigBidPage")
public TableDataInfo bigBidPage(@RequestBody IndexBigBidPageBody vo) throws Exception { public AjaxResult bigBidPage(@RequestBody JSONObject object) throws Exception {
return enterpriseService.bigBidPage(vo); return enterpriseService.bigBidPage(object);
}
@ApiOperation(value = "企业中标排行-项目类型")
@PostMapping("/bigBidProjectType")
public R bigBidProjectType(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseService.bigBidProjectType(paramMap);
} }
@ApiOperation(value = "集团中标统计") @ApiOperation(value = "集团中标统计")
......
...@@ -7,6 +7,7 @@ import lombok.ToString; ...@@ -7,6 +7,7 @@ import lombok.ToString;
import javax.validation.constraints.AssertFalse; import javax.validation.constraints.AssertFalse;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
@Data @Data
@ToString @ToString
...@@ -20,10 +21,10 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage { ...@@ -20,10 +21,10 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage {
private Integer cid; private Integer cid;
/** /**
* 企业id * 客户企业Id
*/ */
@NotNull(message = "企业id不能为空") @NotNull(message = "企业id不能为空")
private Integer unitId; private Integer companyId;
/** /**
* 查询关键字 * 查询关键字
...@@ -32,7 +33,34 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage { ...@@ -32,7 +33,34 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage {
public boolean isVaildCid() { public boolean isVaildCid() {
return 0 == cid || 0 == unitId; return 0 == cid || 0 == companyId;
} }
/**
* 来源
*/
private List<String> sources;
/**
* 项目类型
*/
private List<String> projects;
/**
* 金额起
*/
private Double amountStart;
/**
* 金额止
*/
private Double amountEnd;
/*
* 排序字段:1金额倒序,2金额正序,3时间倒序,4时间正序,5次数倒序,6次数正序
*/
private Integer sort = 3;
} }
...@@ -7,6 +7,7 @@ import lombok.ToString; ...@@ -7,6 +7,7 @@ import lombok.ToString;
import javax.validation.constraints.AssertFalse; import javax.validation.constraints.AssertFalse;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
@Data @Data
@ToString @ToString
...@@ -20,10 +21,10 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage { ...@@ -20,10 +21,10 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage {
private Integer cid; private Integer cid;
/** /**
* 企业id * 供应商企业Id
*/ */
@NotNull(message = "企业id不能为空") @NotNull(message = "企业id不能为空")
private Integer unitId; private Integer companyId;
/** /**
* 查询关键字 * 查询关键字
...@@ -32,8 +33,34 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage { ...@@ -32,8 +33,34 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage {
public boolean isVaildCid() { public boolean isVaildCid() {
return 0 == cid || 0 == unitId; return 0 == cid || 0 == companyId;
} }
/**
* 来源
*/
private List<String> sources;
/**
* 项目类型
*/
private List<String> projects;
/**
* 金额起
*/
private Double amountStart;
/**
* 金额止
*/
private Double amountEnd;
/*
* 排序字段:1金额倒序,2金额正序,3时间倒序,4时间正序,5次数倒序,6次数正序
*/
private Integer sort = 3;
} }
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
"axios": "0.24.0", "axios": "0.24.0",
"clipboard": "2.0.8", "clipboard": "2.0.8",
"core-js": "3.25.3", "core-js": "3.25.3",
"echarts": "^5.4.0", "echarts": "^5.0.0",
"element-resize-detector": "^1.2.4", "element-resize-detector": "^1.2.4",
"element-ui": "2.15.12", "element-ui": "2.15.12",
"file-saver": "2.0.5", "file-saver": "2.0.5",
......
...@@ -80,3 +80,11 @@ export function tenderPage(data) { ...@@ -80,3 +80,11 @@ export function tenderPage(data) {
data: data data: data
}) })
} }
// 客户-供应商下拉框
export function getSelect(data) {
return request({
url: '/enterpriseBussiness/select',
method: 'post',
data: data
})
}
...@@ -147,7 +147,7 @@ let centralEnterprselocalPage= function centralEnterprselocalPage(param) { ...@@ -147,7 +147,7 @@ let centralEnterprselocalPage= function centralEnterprselocalPage(param) {
data: param data: param
}) })
} }
// 民营集团 // 其他集团
let centralEnterprsesocial= function centralEnterprsesocial(param) { let centralEnterprsesocial= function centralEnterprsesocial(param) {
return request({ return request({
url: '/combine/info/centralEnterprse/social', url: '/combine/info/centralEnterprse/social',
...@@ -155,7 +155,7 @@ let centralEnterprsesocial= function centralEnterprsesocial(param) { ...@@ -155,7 +155,7 @@ let centralEnterprsesocial= function centralEnterprsesocial(param) {
data: param data: param
}) })
} }
// 民营集团更多 // 其他集团更多
let centralEnterprsesocialPage= function centralEnterprsesocialPage(param) { let centralEnterprsesocialPage= function centralEnterprsesocialPage(param) {
return request({ return request({
url: '/combine/info/centralEnterprse/social/page', url: '/combine/info/centralEnterprse/social/page',
......
...@@ -219,3 +219,52 @@ export function allRecord(param) { ...@@ -219,3 +219,52 @@ export function allRecord(param) {
params:param, params:param,
}) })
} }
//项目状态统计
export function getStatistics(param) {
return request({
url: '/business/overview/status/statistics',
method: 'get',
params:param,
})
}
//储备项目统计
export function getCount(param) {
return request({
url: '/business/overview/type/analyze/'+param,
method: 'get',
params:param,
})
}
//储备项目资金
export function getAmount(param) {
return request({
url: '/business/overview/amount/analyze',
method: 'get',
params:param,
})
}
//跟进动态
export function getAllRecord(param) {
return request({
url: '/business/record/all/list',
method: 'get',
params:param,
})
}
//公招项目地区统计
export function countGroupByProvince(param) {
return request({
url: '/business/overview/countGroupByProvince',
method: 'post',
data:param
})
}
//公招项目投资金额统计
export function rangByMoney(param) {
return request({
url: '/business/overview/rangByMoney',
method: 'post',
data:param
})
}
...@@ -1201,3 +1201,20 @@ select { ...@@ -1201,3 +1201,20 @@ select {
padding-bottom: 48px; padding-bottom: 48px;
text-align: center; text-align: center;
} }
.title_wrap{
padding: 20px;
background-color: #FFFFFF;
border-bottom: 1px solid #e0e0e0;
}
.enterprise_title{
border-left: 2px solid #445781;
padding-left: 8px;
font-size: 16px;
height: 16px;
line-height: 16px;
font-weight: 700;
color: #232323;
}
.enterprise_contatiner{
padding: 0;
}
\ No newline at end of file
<template>
<div class="no-data">
<div class="no-data-box">
<img :src="noData" alt="抱歉,没找到相关数据" />
<div>抱歉,没找到相关数据</div>
<span v-if="condition">建议调整关键词或筛选条件,重新搜索</span>
</div>
</div>
</template>
<script>
export default {
name: "NoData",
props: {
condition: {
type: Boolean,
default: false
}
},
data() {
return {
noData: require("@/assets/images/detail/noData.png")
}
},
methods:{
}
}
</script>
<style lang="scss" scoped>
.no-data {
font-size: 14px;
color: #999999;
width: 100%;
height: 100%;
min-height: 120px;
display: flex;
justify-content: center;
align-items: center;
background: #ffffff;
//border: 1px solid #eeeeee;
.no-data-box {
display: flex;
flex-direction: column;
align-items: center;
img {
width: 108px;
height: 109px;
margin-bottom: 22px;
}
div{
font-size: 16px;
line-height: 1;
color: #333333;
}
span{
margin-top: 4px;
}
}
}
</style>
...@@ -54,6 +54,13 @@ ...@@ -54,6 +54,13 @@
<label class="label">建设性质</label> <label class="label">建设性质</label>
<span>{{info.projectNature||"--"}}</span> <span>{{info.projectNature||"--"}}</span>
</p> </p>
<p>
<label class="label">招标公告</label>
<span class="span2">
<router-link :to="`/radar/Notice/details/${info.bId}`" tag="a" class="a-link" v-if="info.bId" >查看招标公告</router-link>
<span v-else>--</span>
</span>
</p>
</div> </div>
<div class="biddetail-title">招标信息</div> <div class="biddetail-title">招标信息</div>
<div class="main31-box"> <div class="main31-box">
...@@ -412,6 +419,9 @@ export default { ...@@ -412,6 +419,9 @@ export default {
.span1{ .span1{
width: 40%; width: 40%;
} }
.span2{
width: 88.9%;
}
.span-one { .span-one {
width: 90%; width: 90%;
} }
......
...@@ -148,6 +148,16 @@ export default { ...@@ -148,6 +148,16 @@ export default {
height: 32px; height: 32px;
line-height: 32px; line-height: 32px;
} }
::v-deep .el-select .el-input__inner{
border: 1px solid #D9D9D9;
height: 34px;
line-height: 34px;
padding-right: 27px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border-radius: 4px;
}
::v-deep .custom-money-select{ ::v-deep .custom-money-select{
.el-input__inner{ .el-input__inner{
border: 1px solid #D9D9D9; border: 1px solid #D9D9D9;
......
...@@ -216,5 +216,4 @@ export default { ...@@ -216,5 +216,4 @@ export default {
::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td { ::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: #DCEBFF; background-color: #DCEBFF;
} }
</style> </style>
<template> <template>
<div class="client-details"> <div class="client-details">
<el-drawer <el-dialog
:visible.sync="drawer" :visible.sync="drawer"
size="60%" size="80%"
custom-class="client-drawer" :title="title"
custom-class="client-dialog"
:with-header="false" :with-header="false"
@closed="cancel"> @closed="cancel">
<head-detail-form <head-detail-form
:title="title"
:form-data="formData" :form-data="formData"
:query-params="queryParams" :query-params="queryParams"
:total="tableDataTotal" :total="tableDataTotal"
...@@ -22,29 +22,21 @@ ...@@ -22,29 +22,21 @@
:tableDataTotal="tableDataTotal" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" :queryParams="queryParams"
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
style="margin: 12px;"
> >
<template slot="projectAllName" slot-scope="scope"> <template slot="sourceType" slot-scope="scope">
<div class="flex-box"> <div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.snapshootPic" @click="handlePic(scope.row.snapshootPic, true)"/> <div class="a-link" @click="linkTo(scope)" v-if="scope.row.sourceId&&scope.row.sourceType=='中标业绩'" v-html="scope.row.sourceType" style="cursor: pointer"></div>
<div class="a-link" @click="linkTo(scope)" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName" style="cursor: pointer"></div> <span v-else v-html="scope.row.sourceType || '--'"></span>
<span v-else v-html="scope.row.projectAllName || '--'"></span>
</div> </div>
</template> </template>
<template slot="province" slot-scope="scope">
{{scope.row.province}}{{`${scope.row.city?'-'+scope.row.city:''}`}}
</template>
<template slot="lowerRate" slot-scope="scope">
<span>{{scope.row.lowerRate ? scope.row.lowerRate+'%' : '--'}}</span>
</template>
</tables> </tables>
</el-drawer> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import mixin from '../../mixins/mixin' import mixin from '../../mixins/mixin'
import {clientProjectPage} from '@/api/detail/party-a/dealings' import {clientProjectPage,getSelect} from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm" import HeadDetailForm from "../../component/HeadDetailForm"
export default { export default {
...@@ -62,21 +54,22 @@ export default { ...@@ -62,21 +54,22 @@ export default {
drawer: false, drawer: false,
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
unitId: this.data.projectUnitId, companyId: this.data.companyId,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
}, },
formData: [ formData: [
{ type: 4, fieldName: 'projects', value: '', placeholder: '合作项目类型', options: []},
{ type: 4, fieldName: 'sources', value: '', placeholder: '数据来源', options: []},
{ type: 6, fieldName: 'money', value: '', placeholder: '合同金额', startMoney: 'amountMin', endMoney: 'amountMax' },
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入项目/工程名称查询', options: []}, { type: 3, fieldName: 'keys', value: '', placeholder: '输入项目/工程名称查询', options: []},
], ],
forData: [ forData: [
{label: '合作项目/工程名称', prop: 'projectAllName', width: '720', fixed: true, slot: true}, {label: '项目名称', prop: 'projectName', fixed: true},
{label: '项目/工程金额(万元)', prop: 'winBidAmount', width: '160'}, {label: '公布时间', prop: 'time', width: '100'},
{label: '合作时间', prop: 'winBidTime', width: '100'}, {label: '本次合同金额(万元)', prop: 'amount', width: '160'},
{label: '项目地区', prop: 'province', width: '160', slot: true}, {label: '项目类型', prop: 'projectTtype', width: '130'},
{label: '项目类型', prop: 'boundType', width: '130'}, {label: '数据来源', prop: 'sourceType', width: '90', slot: true}
{label: '工期(天)', prop: 'period', width: '90'},
{label: '下浮率', prop: 'lowerRate', width: '90', slot: true}
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
...@@ -88,8 +81,28 @@ export default { ...@@ -88,8 +81,28 @@ export default {
created() { created() {
this.drawer = true this.drawer = true
this.handleQuery() this.handleQuery()
this.handleOption()
}, },
methods: { methods: {
async handleOption(){
let res = await getSelect({})
if(res.code==200){
let data = res.data.projects
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i],
value: data[i],
})
}
let data1 = res.data.sources
for (var i=0;i<data1.length;i++){
this.formData[1].options.push({
name: data1[i],
value: data1[i],
})
}
}
},
async handleQuery(params) { async handleQuery(params) {
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
...@@ -109,7 +122,7 @@ export default { ...@@ -109,7 +122,7 @@ export default {
}, },
linkTo(scope){ linkTo(scope){
this.drawer = false this.drawer = false
this.$router.push(`/biddetail/${scope.row.id}`) this.$router.push(`/biddetail/${scope.row.sourceId}`)
}, },
cancel() { cancel() {
this.$emit('cancel') this.$emit('cancel')
...@@ -120,8 +133,27 @@ export default { ...@@ -120,8 +133,27 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.client-details { .client-details {
::v-deep .client-drawer{ ::v-deep .client-dialog{
width: 80%;
min-width: 900px;
background: #FFFFFF; background: #FFFFFF;
.el-dialog__body{
padding-top: 0;
}
.fixed-table{
.el-table__header-wrapper,.el-table__fixed-header-wrapper{
top: 0;
}
}
.el-dialog__header{
border-bottom: 1px solid #E1E1E1;
}
.el-dialog__title{
font-size: 16px;
color: #232323;
font-weight: bold;
margin-right: 4px;
}
} }
.tip-img{ .tip-img{
width: 14px; width: 14px;
......
<template> <template>
<div class="client-details"> <div class="client-details">
<el-drawer <el-dialog
:visible.sync="drawer" :visible.sync="drawer"
size="60%" size="80%"
custom-class="client-drawer" :title="title"
custom-class="client-dialog"
:with-header="false" :with-header="false"
@closed="cancel"> @closed="cancel">
<head-detail-form <head-detail-form
:title="title"
:form-data="formData" :form-data="formData"
:query-params="queryParams" :query-params="queryParams"
:total="tableDataTotal" :total="tableDataTotal"
...@@ -22,28 +22,21 @@ ...@@ -22,28 +22,21 @@
:tableDataTotal="tableDataTotal" :tableDataTotal="tableDataTotal"
:queryParams="queryParams" :queryParams="queryParams"
@handle-current-change="handleCurrentChange" @handle-current-change="handleCurrentChange"
style="margin: 12px;"
> >
<template slot="projectAllName" slot-scope="scope"> <template slot="sourceType" slot-scope="scope">
<div class="flex-box"> <div class="flex-box">
<img class="tip-img" src="@/assets/images/detail/ico_pdf.png" v-if="scope.row.snapshootPic" @click="handlePic(scope.row.snapshootPic, true)"/> <div class="a-link" @click="linkTo(scope)" v-if="scope.row.sourceId&&scope.row.sourceType=='中标业绩'" v-html="scope.row.sourceType" style="cursor: pointer"></div>
<div class="a-link" @click="linkTo(scope)" v-if="scope.row.id&&scope.row.projectAllName" v-html="scope.row.projectAllName" style="cursor: pointer"></div> <span v-else v-html="scope.row.projectAllName || '--'"></span> <span v-else v-html="scope.row.sourceType || '--'"></span>
</div> </div>
</template> </template>
<template slot="province" slot-scope="scope">
{{scope.row.province}}{{`${scope.row.city?'-'+scope.row.city:''}`}}
</template>
<template slot="lowerRate" slot-scope="scope">
<span>{{scope.row.lowerRate ? scope.row.lowerRate+'%' : '--'}}</span>
</template>
</tables> </tables>
</el-drawer> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import mixin from '../../mixins/mixin' import mixin from '../../mixins/mixin'
import { supplierProjectPage } from '@/api/detail/party-a/dealings' import { supplierProjectPage,getSelect } from '@/api/detail/party-a/dealings'
import HeadDetailForm from "../../component/HeadDetailForm" import HeadDetailForm from "../../component/HeadDetailForm"
export default { export default {
...@@ -60,22 +53,23 @@ export default { ...@@ -60,22 +53,23 @@ export default {
return { return {
drawer: false, drawer: false,
queryParams: { queryParams: {
cid: this.data.companyId, companyId: this.data.companyId,
unitId: this.companyId, cid: this.companyId,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
}, },
formData: [ formData: [
{ type: 4, fieldName: 'projects', value: '', placeholder: '合作项目类型', options: []},
{ type: 4, fieldName: 'sources', value: '', placeholder: '数据来源', options: []},
{ type: 6, fieldName: 'money', value: '', placeholder: '合同金额', startMoney: 'amountMin', endMoney: 'amountMax' },
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: [], width: 260}, { type: 3, fieldName: 'keys', value: '', placeholder: '输入合作项目/工程名称查询', options: [], width: 260},
], ],
forData: [ forData: [
{label: '合作项目/工程名称', prop: 'projectAllName', width: '720', fixed: true, slot: true}, {label: '项目名称', prop: 'projectName', fixed: true},
{label: '项目/工程金额(万元)', prop: 'winBidAmount', width: '160'}, {label: '公布时间', prop: 'time', width: '100'},
{label: '合作时间', prop: 'winBidTime', width: '100'}, {label: '本次合同金额(万元)', prop: 'amount', width: '160'},
{label: '项目地区', prop: 'province', width: '160', slot: true}, {label: '项目类型', prop: 'projectType', width: '130'},
{label: '项目类型', prop: 'boundType', width: '130'}, {label: '数据来源', prop: 'sourceType', width: '90', slot: true}
{label: '工期(天)', prop: 'period', width: '90'},
{label: '下浮率', prop: 'lowerRate', width: '90', slot: true}
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
...@@ -87,8 +81,28 @@ export default { ...@@ -87,8 +81,28 @@ export default {
created() { created() {
this.drawer = true this.drawer = true
this.handleQuery() this.handleQuery()
this.handleOption()
}, },
methods: { methods: {
async handleOption(){
let res = await getSelect({})
if(res.code==200){
let data = res.data.projects
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i],
value: data[i],
})
}
let data1 = res.data.sources
for (var i=0;i<data1.length;i++){
this.formData[1].options.push({
name: data1[i],
value: data1[i],
})
}
}
},
async handleQuery(params) { async handleQuery(params) {
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
...@@ -108,7 +122,7 @@ export default { ...@@ -108,7 +122,7 @@ export default {
}, },
linkTo(scope){ linkTo(scope){
this.drawer = false this.drawer = false
this.$router.push(`/biddetail/${scope.row.id}`) this.$router.push(`/biddetail/${scope.row.sourceId}`)
}, },
cancel() { cancel() {
this.$emit('cancel') this.$emit('cancel')
...@@ -119,8 +133,27 @@ export default { ...@@ -119,8 +133,27 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.client-details { .client-details {
::v-deep .client-drawer{ ::v-deep .client-dialog{
width: 80%;
min-width: 900px;
background: #FFFFFF; background: #FFFFFF;
.el-dialog__body{
padding-top: 0;
}
.fixed-table{
.el-table__header-wrapper,.el-table__fixed-header-wrapper{
top: 0;
}
}
.el-dialog__header{
border-bottom: 1px solid #E1E1E1;
}
.el-dialog__title{
font-size: 16px;
color: #232323;
font-weight: bold;
margin-right: 4px;
}
} }
.tip-img{ .tip-img{
width: 14px; width: 14px;
......
...@@ -25,16 +25,19 @@ ...@@ -25,16 +25,19 @@
<router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.projectUnitId)}`:`/company/${encodeStr(scope.row.projectUnitId)}`" tag="a" class="a-link" v-if="scope.row.projectUnitId&&scope.row.companyName" v-html="scope.row.companyName"></router-link> <router-link :to="scope.row.uipId?`/enterprise/${encodeStr(scope.row.projectUnitId)}`:`/company/${encodeStr(scope.row.projectUnitId)}`" tag="a" class="a-link" v-if="scope.row.projectUnitId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div> <div v-else v-html="scope.row.companyName || '--'"></div>
</template> </template>
<template slot="projectAllName" slot-scope="scope"> <!-- <template slot="projectAllName" slot-scope="scope">
<router-link :to="`/biddetail/${scope.row.projectInfo.projectId}`" tag="a" class="a-link" v-if="scope.row.projectInfo.projectId&&scope.row.projectInfo.projectAllName" >{{ scope.row.projectInfo.projectAllName }}</router-link> <router-link :to="`/biddetail/${scope.row.projectInfo.projectId}`" tag="a" class="a-link" v-if="scope.row.projectInfo.projectId&&scope.row.projectInfo.projectAllName" >{{ scope.row.projectInfo.projectAllName }}</router-link>
<div v-else v-html="scope.row.projectInfo&&scope.row.projectInfo.projectAllName || '--'"></div> <div v-else v-html="scope.row.projectInfo&&scope.row.projectInfo.projectAllName || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">有{{scope.row.count}}个合作项目/工程 ></div> <div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">有{{scope.row.count}}个合作项目/工程 ></div>
</template> -->
<template slot="count" slot-scope="scope">
<div v-if="scope.row.count>0" class="a-link" style="cursor: pointer;" @click="handleClick($event, scope.row)" >{{scope.row.count}}</div>
</template> </template>
</tables> </tables>
<client-detail <client-detail
v-if="isDetails" v-if="isDetails"
:data="rowData" :data="rowData"
:title="'合作项目/工程明细'" :title="title"
:company-id="companyId" :company-id="companyId"
@cancel="isDetails=false" /> @cancel="isDetails=false" />
</div> </div>
...@@ -42,7 +45,7 @@ ...@@ -42,7 +45,7 @@
<script> <script>
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import { clientPage } from '@/api/detail/party-a/dealings' import { clientPage,getSelect } from '@/api/detail/party-a/dealings'
import ClientDetail from './component/customDetail' import ClientDetail from './component/customDetail'
export default { export default {
name: 'Custom', name: 'Custom',
...@@ -53,21 +56,25 @@ export default { ...@@ -53,21 +56,25 @@ export default {
}, },
data() { data() {
return { return {
title:'',
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
sort: 3, sort: 3,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
}, },
defaultSort: {prop: 'time', order: 'descending'}, defaultSort: {},
forData: [ forData: [
{label: '客户名称', prop: 'companyName', minWidth: '350', slot: true}, {label: '客户名称', prop: 'companyName', minWidth: '350', slot: true},
{label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', slot: true, sortable: 'custom', descending: '5', ascending: '6'}, // {label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', slot: true, sortable: 'custom', descending: '5', ascending: '6'},
{label: '最近合作时间', prop: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'},
{label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom', descending: '1', ascending: '2'}, {label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom', descending: '1', ascending: '2'},
{label: '最近一次合作时间', prop: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'} {label: '合作次数', prop: 'count', minWidth: '150', sortable: 'custom',slot: true, descending: '5', ascending: '6'},
], ],
formData: [ formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []}, { type: 4, fieldName: 'projects', value: '', placeholder: '合作项目类型', options: []},
{ type: 4, fieldName: 'sources', value: '', placeholder: '数据来源', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索客户名称', options: []},
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
...@@ -81,8 +88,28 @@ export default { ...@@ -81,8 +88,28 @@ export default {
}, },
created() { created() {
this.handleQuery() this.handleQuery()
this.handleOption()
}, },
methods: { methods: {
async handleOption(){
let res = await getSelect({})
if(res.code==200){
let data = res.data.projects
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i],
value: data[i],
})
}
let data1 = res.data.sources
for (var i=0;i<data1.length;i++){
this.formData[1].options.push({
name: data1[i],
value: data1[i],
})
}
}
},
async handleQuery(params) { async handleQuery(params) {
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
...@@ -102,7 +129,8 @@ export default { ...@@ -102,7 +129,8 @@ export default {
}, },
handleClick(e, data) { handleClick(e, data) {
this.rowData = data this.rowData = data
this.isDetails = true this.isDetails = true;
this.title = '与客户'+data.companyName+'合作记录'
}, },
handleDetail(row){ handleDetail(row){
if(row.sourceUrl){ if(row.sourceUrl){
......
...@@ -25,16 +25,14 @@ ...@@ -25,16 +25,14 @@
<router-link :to="`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link> <router-link :to="`/company/${encodeStr(scope.row.companyId)}`" tag="a" class="a-link" v-if="scope.row.companyId&&scope.row.companyName" v-html="scope.row.companyName"></router-link>
<div v-else v-html="scope.row.companyName || '--'"></div> <div v-else v-html="scope.row.companyName || '--'"></div>
</template> </template>
<template slot="projectAllName" slot-scope="scope"> <template slot="count" slot-scope="scope">
<router-link :to="`/biddetail/${scope.row.projectInfo.projectId}`" tag="a" class="a-link" v-if="scope.row.projectInfo.projectId&&scope.row.projectInfo.projectAllName" >{{ scope.row.projectInfo.projectAllName }}</router-link> <div v-if="scope.row.count>0" class="a-link" style="cursor: pointer;" @click="handleClick($event, scope.row)" >{{scope.row.count}}</div>
<div v-else v-html="scope.row.projectInfo&&scope.row.projectInfo.projectAllName || '--'"></div>
<div v-if="scope.row.count>1" @click="handleClick($event, scope.row)" style="color: #FF7E38;cursor: pointer;">{{scope.row.count}}个合作项目/工程 ></div>
</template> </template>
</tables> </tables>
<client-detail <client-detail
v-if="isDetails" v-if="isDetails"
:data="rowData" :data="rowData"
:title="'合作项目/工程明细'" :title="title"
:company-id="companyId" :company-id="companyId"
@cancel="isDetails=false" /> @cancel="isDetails=false" />
</div> </div>
...@@ -42,7 +40,7 @@ ...@@ -42,7 +40,7 @@
<script> <script>
import mixin from '../mixins/mixin' import mixin from '../mixins/mixin'
import { supplierPage } from '@/api/detail/party-a/dealings' import { supplierPage,getSelect } from '@/api/detail/party-a/dealings'
import ClientDetail from './component/supplierDetail' import ClientDetail from './component/supplierDetail'
export default { export default {
name: 'Supplier', name: 'Supplier',
...@@ -53,21 +51,24 @@ export default { ...@@ -53,21 +51,24 @@ export default {
}, },
data() { data() {
return { return {
title:'',
queryParams: { queryParams: {
cid: this.companyId, cid: this.companyId,
sort: 3, sort: 5,
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20
}, },
defaultSort: {prop: 'time', order: 'descending'}, defaultSort: {},
forData: [ forData: [
{label: '供应商', prop: 'companyName', minWidth: '350', slot: true}, {label: '供应商', prop: 'companyName', minWidth: '350', slot: true},
{label: '合作项目/工程名称', prop: 'projectAllName', minWidth: '400', slot: true, sortable: 'custom', descending: '5', ascending: '6'}, {label: '最近合作时间', prop: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'},
{label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom', descending: '1', ascending: '2'}, {label: '合作总金额(万元)', prop: 'amount', minWidth: '150', sortable: 'custom', descending: '1', ascending: '2'},
{label: '最近一次合作时间', prop: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'} {label: '合作次数', prop: 'count', minWidth: '150', sortable: 'custom',slot: true, descending: '5', ascending: '6'},
], ],
formData: [ formData: [
{ type: 3, fieldName: 'keys', value: '', placeholder: '输入企业名称查询', options: []}, { type: 4, fieldName: 'projects', value: '', placeholder: '合作项目类型', options: []},
{ type: 4, fieldName: 'sources', value: '', placeholder: '数据来源', options: []},
{ type: 3, fieldName: 'keys', value: '', placeholder: '搜索供应商名称', options: []},
], ],
//列表 //列表
tableLoading:false, tableLoading:false,
...@@ -81,8 +82,28 @@ export default { ...@@ -81,8 +82,28 @@ export default {
}, },
created() { created() {
this.handleQuery() this.handleQuery()
this.handleOption()
}, },
methods: { methods: {
async handleOption(){
let res = await getSelect({})
if(res.code==200){
let data = res.data.projects
for (var i=0;i<data.length;i++){
this.formData[0].options.push({
name: data[i],
value: data[i],
})
}
let data1 = res.data.sources
for (var i=0;i<data1.length;i++){
this.formData[1].options.push({
name: data1[i],
value: data1[i],
})
}
}
},
async handleQuery(params) { async handleQuery(params) {
this.tableLoading = true this.tableLoading = true
let param = params?params:this.queryParams let param = params?params:this.queryParams
...@@ -103,6 +124,7 @@ export default { ...@@ -103,6 +124,7 @@ export default {
handleClick(e, data) { handleClick(e, data) {
this.rowData = data this.rowData = data
this.isDetails = true this.isDetails = true
this.title = '与供应商'+data.companyName+'合作记录'
}, },
handleDetail(row){ handleDetail(row){
if(row.sourceUrl){ if(row.sourceUrl){
......
<template> <template>
<!-- <div style="width:calc(100% - 100px);" @click="showlist = false"> --> <!-- <div style="width:calc(100% - 100px);" @click="showlist = false"> -->
<div @click="showlist = false"> <div class="app-container enterprise_contatiner" @click="showlist = false">
<div class="title_wrap">
<div class="enterprise_title">
查集团户
</div>
</div>
<div class="content"> <div class="content">
<div class="content_item"> <div class="content_item">
<div class="content_right"> <div class="content_right">
...@@ -52,7 +57,7 @@ ...@@ -52,7 +57,7 @@
<div class="count1" >{{item.type}}<span> {{ item.total }}</span></div> <div class="count1" >{{item.type}}<span> {{ item.total }}</span></div>
<div :key="index"> <div :key="index">
<div class="infinite-list-item" v-for="(item1,index1) in item.list" @click="selCompany(item1)" :key="index1+'i'"> <div class="infinite-list-item" v-for="(item1,index1) in item.list" @click="selCompany(item1)" :key="index1+'i'">
<img v-if="item.logoUrl" :src="item.logoUrl" alt="" > <img v-if="item1.logoUrl" :src="item1.logoUrl" alt="" >
<div v-else class="logo" :style="{background:colors[index1%5]}">{{ item1.combineMemberName.slice(0,4) }}</div> <div v-else class="logo" :style="{background:colors[index1%5]}">{{ item1.combineMemberName.slice(0,4) }}</div>
<div style="float: left;"> <div style="float: left;">
<span class="name" v-html="item1.combineName" ></span> <span class="name" v-html="item1.combineName" ></span>
...@@ -95,7 +100,7 @@ ...@@ -95,7 +100,7 @@
<div class="count1" >{{item.address}}<span> {{ item.total }}</span></div> <div class="count1" >{{item.address}}<span> {{ item.total }}</span></div>
<div :key="index"> <div :key="index">
<div class="infinite-list-item" v-for="(item1,index1) in item.result" @click="selCompany(item1)" :key="index1+'i'"> <div class="infinite-list-item" v-for="(item1,index1) in item.result" @click="selCompany(item1)" :key="index1+'i'">
<img v-if="item.logoUrl" :src="item.logoUrl" alt="" > <img v-if="item1.logoUrl" :src="item1.logoUrl" alt="" >
<div v-else class="logo" :style="{background:colors[index1%5]}">{{ item1.combineMemberName.slice(0,4) }}</div> <div v-else class="logo" :style="{background:colors[index1%5]}">{{ item1.combineMemberName.slice(0,4) }}</div>
<div style="float: left;"> <div style="float: left;">
<span class="name" v-html="item1.combineName" ></span> <span class="name" v-html="item1.combineName" ></span>
...@@ -108,7 +113,7 @@ ...@@ -108,7 +113,7 @@
</div> </div>
</template> </template>
<!-- 民营集团 --> <!-- 其他集团 -->
<template v-if="activeIndex==3"> <template v-if="activeIndex==3">
<div class="count">{{ childListTotal }}</div> <div class="count">{{ childListTotal }}</div>
<div class="child-wrap" :id="'anchor-'+index" v-for="(item,index) in childList" :key="index"> <div class="child-wrap" :id="'anchor-'+index" v-for="(item,index) in childList" :key="index">
...@@ -116,7 +121,7 @@ ...@@ -116,7 +121,7 @@
<div class="count1" >{{item.type}}<span> {{ item.total }}</span></div> <div class="count1" >{{item.type}}<span> {{ item.total }}</span></div>
<div :key="index"> <div :key="index">
<div class="infinite-list-item" v-for="(item1,index1) in item.list" @click="selCompany(item1)" :key="index1+'i'"> <div class="infinite-list-item" v-for="(item1,index1) in item.list" @click="selCompany(item1)" :key="index1+'i'">
<img v-if="item.logoUrl" :src="item.logoUrl" alt="" > <img v-if="item1.logoUrl" :src="item1.logoUrl" alt="" >
<div v-else class="logo" :style="{background:colors[index1%5]}">{{ item1.combineMemberName.slice(0,4) }}</div> <div v-else class="logo" :style="{background:colors[index1%5]}">{{ item1.combineMemberName.slice(0,4) }}</div>
<div style="float: left;"> <div style="float: left;">
<span class="name" v-html="item1.combineName" ></span> <span class="name" v-html="item1.combineName" ></span>
...@@ -145,6 +150,7 @@ ...@@ -145,6 +150,7 @@
<script> <script>
import api from '@/api/enterpriseData/enterpriseData.js'; import api from '@/api/enterpriseData/enterpriseData.js';
import skeleton from '@/views/project/projectList/component/skeleton' import skeleton from '@/views/project/projectList/component/skeleton'
import "@/assets/styles/public.css";
export default { export default {
name: 'Group', name: 'Group',
...@@ -168,7 +174,7 @@ export default { ...@@ -168,7 +174,7 @@ export default {
provinces:[], provinces:[],
total:0, total:0,
isscroll:false, isscroll:false,
groups:['央企','央企子集团','地方国企','民营集团'], groups:['央企','央企子集团','地方国企','其他集团'],
companData:[], companData:[],
searchList:[], searchList:[],
page:1, page:1,
......
<template> <template>
<div > <div class="app-container enterprise_contatiner">
<div class="title_wrap">
<div class="enterprise_title">
查城投平台
</div>
</div>
<div class="content"> <div class="content">
<div class="content_item"> <div class="content_item">
<div class="content_right item_ckquery_list"> <div class="content_right item_ckquery_list">
...@@ -495,6 +500,7 @@ import {encodeStr} from "@/assets/js/common.js" ...@@ -495,6 +500,7 @@ import {encodeStr} from "@/assets/js/common.js"
import jsk_data from '../../../../../public/jsk.json'; import jsk_data from '../../../../../public/jsk.json';
import skeleton from '@/views/project/projectList/component/skeleton' import skeleton from '@/views/project/projectList/component/skeleton'
import api from '@/api/enterpriseData/enterpriseData.js'; import api from '@/api/enterpriseData/enterpriseData.js';
import "@/assets/styles/public.css";
export default { export default {
name: 'Owner', name: 'Owner',
components:{skeleton}, components:{skeleton},
......
<template> <template>
<div > <div class="app-container enterprise_contatiner">
<div class="title_wrap">
<div class="enterprise_title">
查企业
<img style="position: relative;top:-10px;width:80px;height:16px;" src="@/assets/images/owner/tip.png" alt="">
</div>
</div>
<div class="content"> <div class="content">
<div class="content_item content_item_padding0"> <div class="content_item content_item_padding0">
<div class="content_right item_ckquery_list"> <div class="content_right item_ckquery_list">
...@@ -585,6 +592,8 @@ ...@@ -585,6 +592,8 @@
import api from '@/api/enterpriseData/enterpriseData.js'; import api from '@/api/enterpriseData/enterpriseData.js';
import {encodeStr} from "@/assets/js/common.js" import {encodeStr} from "@/assets/js/common.js"
import skeleton from '@/views/project/projectList/component/skeleton' import skeleton from '@/views/project/projectList/component/skeleton'
import "@/assets/styles/public.css";
export default { export default {
name: 'EnterpriseQuery', name: 'EnterpriseQuery',
components:{skeleton}, components:{skeleton},
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<Owner v-if="personnelHerf=='Owner'" /> <Owner v-if="personnelHerf=='Owner'" />
<!-- 查企业 --> <!-- 查企业 -->
<SearchEnterprise v-if="personnelHerf=='SearchEnterprise'" /> <SearchEnterprise v-if="personnelHerf=='SearchEnterprise'" />
<!-- 查企业 --> <!-- 查集团户 -->
<Group v-if="personnelHerf=='Group'" /> <Group v-if="personnelHerf=='Group'" />
...@@ -77,9 +77,14 @@ ...@@ -77,9 +77,14 @@
personnelHerf:'Owner' personnelHerf:'Owner'
} }
}, },
created() {}, created() {
if(this.$route.query.type==2){
this.personnelHerf='Group';
this.personnelList[0].status = false;
this.personnelList[2].status = true;
}
},
methods: { methods: {
handleClick(){},
personnelListbtn(index) { personnelListbtn(index) {
for (var i = 0; i < this.personnelList.length; i++) { for (var i = 0; i < this.personnelList.length; i++) {
this.personnelList[i].status = false; this.personnelList[i].status = false;
......
...@@ -86,6 +86,21 @@ ...@@ -86,6 +86,21 @@
<el-option v-for="(item,index) in projectStage" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="(item,index) in projectStage" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
</div> </div>
<div class="select-popper">
<el-dropdown trigger="click" placement='bottom-start'>
<div class="el-dropdown-link " :class="searchParam.status!=null?'select-active':''">
项目状态{{searchParam.status!=null?' 1项':''}}
<i class="el-icon-caret-bottom"></i>
</div>
<el-dropdown-menu slot="dropdown" class="select-list select-radio">
<el-dropdown-item v-for="(itme,i) in statusList" :key="i">
<el-radio :label="itme.value" v-model="searchParam.status" @input="statusBtn()">
{{itme.label}}
</el-radio>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div> </div>
</div> </div>
<div class="scbtns"> <div class="scbtns">
...@@ -219,10 +234,25 @@ export default { ...@@ -219,10 +234,25 @@ export default {
districtId: [], districtId: [],
pageNum:1, pageNum:1,
pageSize:20, pageSize:20,
status:null,
}, },
domicile:[], domicile:[],
projectType:[],//项目类型 projectType:[],//项目类型
projectCategory:[],//项目类别 projectCategory:[],//项目类别
statusList:[
{
value:'0',
label:'储备中'
},
{
value:'1',
label:'跟进中'
},
{
value:'2',
label:'已合作'
},
],
amountOptions:[ amountOptions:[
{ {
label: "5000万以下", label: "5000万以下",
...@@ -253,7 +283,6 @@ export default { ...@@ -253,7 +283,6 @@ export default {
}, },
mounted(){ mounted(){
this.prvinceTree() this.prvinceTree()
this.getList(1)
//项目阶段 //项目阶段
getDictType('project_stage_type').then(result=>{ getDictType('project_stage_type').then(result=>{
this.projectStage = result.code == 200 ? result.data:[] this.projectStage = result.code == 200 ? result.data:[]
...@@ -266,8 +295,21 @@ export default { ...@@ -266,8 +295,21 @@ export default {
getDictType('project_category').then(result=>{ getDictType('project_category').then(result=>{
this.projectCategory = result.code == 200 ? result.data:[] this.projectCategory = result.code == 200 ? result.data:[]
}) })
if(this.$route.query.type==1){
this.activeName = 'second';
}
if(this.$route.query.status){
this.searchParam.status = this.$route.query.status;
}
if(this.$route.query.projectName){
this.searchParam.projectName = this.$route.query.projectName;
}
this.getList(1)
}, },
methods: { methods: {
statusBtn(){
},
dc(){ dc(){
this.$message.warning('功能正在开发中') this.$message.warning('功能正在开发中')
}, },
...@@ -345,6 +387,7 @@ export default { ...@@ -345,6 +387,7 @@ export default {
districtId: [], districtId: [],
pageNum:1, pageNum:1,
pageSize:20, pageSize:20,
status:null
} }
this.getList(1) this.getList(1)
}, },
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
</div> </div>
<div class="list-content" v-if="textList.projectAmount||textList.contact"> <div class="list-content" v-if="textList.projectAmount||textList.contact">
<p class="list-content-text" v-if="textList.projectAmount"> <p class="list-content-text" v-if="textList.projectAmount">
<span>预算金</span> <span>预算金</span>
<span v-if="textList.projectAmount">{{textList.projectAmount}}万元</span> <span v-if="textList.projectAmount">{{textList.projectAmount}}万元</span>
<span v-else>--</span> <span v-else>--</span>
</p> </p>
...@@ -65,6 +65,10 @@ ...@@ -65,6 +65,10 @@
<span>报名截止日期:</span> <span>报名截止日期:</span>
<span >{{textList.overTime||'--'}}</span> <span >{{textList.overTime||'--'}}</span>
</p> </p>
<p class="list-content-text" v-if="textList.projectId">
<span>中标公告:</span>
<router-link :to="`/biddetail/${textList.projectId}`" tag="a" class="a-link" >查看中标公告</router-link>
</p>
<p class="list-content-text" v-if="textList.dataSource"> <p class="list-content-text" v-if="textList.dataSource">
<span>来源网站:</span> <span>来源网站:</span>
<span >{{textList.dataSource||'--'}}</span> <span >{{textList.dataSource||'--'}}</span>
...@@ -122,8 +126,6 @@ ...@@ -122,8 +126,6 @@
}).then(res => { }).then(res => {
// console.log(res); // console.log(res);
this.textList = res.data; this.textList = res.data;
console.log(this.textList);
}).catch(error => { }).catch(error => {
}); });
......
...@@ -238,7 +238,7 @@ ...@@ -238,7 +238,7 @@
</div> </div>
<div class="list-content" v-if="item.bidMoney||item.contactTel || item.agencyContactTel"> <div class="list-content" v-if="item.bidMoney||item.contactTel || item.agencyContactTel">
<p class="list-content-text" v-if="item.bidMoney"> <p class="list-content-text" v-if="item.bidMoney">
<span>预算金</span> <span>预算金</span>
<span>{{item.bidMoney||'--'}}万元</span> <span>{{item.bidMoney||'--'}}万元</span>
</p> </p>
<p class="list-content-text" v-if="item.contactTel || item.agencyContactTel"> <p class="list-content-text" v-if="item.contactTel || item.agencyContactTel">
......
...@@ -20,6 +20,10 @@ public class JskCombineCertificateDto implements Serializable { ...@@ -20,6 +20,10 @@ public class JskCombineCertificateDto implements Serializable {
*/ */
@NotNull(message = "id不能为空!") @NotNull(message = "id不能为空!")
private Long id; private Long id;
/**
* 企业名称
*/
private String companyName;
/** /**
* 页码 * 页码
......
...@@ -58,14 +58,14 @@ public class EnterpriseBussinessService { ...@@ -58,14 +58,14 @@ public class EnterpriseBussinessService {
public TableDataInfo clientPage(EnterpriseBussinessClientPageBody body) throws Exception { public TableDataInfo clientPage(EnterpriseBussinessClientPageBody body) throws Exception {
if (body.isVaildCid()) return new TableDataInfo(new ArrayList<>(), 0); if (body.isVaildCid()) return new TableDataInfo(new ArrayList<>(), 0);
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/clientPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/clientPage2", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo clientProjectPage(EnterpriseBussinessClientProjectPageBody body) throws Exception { public TableDataInfo clientProjectPage(EnterpriseBussinessClientProjectPageBody body) throws Exception {
if (body.isVaildCid()) return null; if (body.isVaildCid()) return null;
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/clientProjectPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/clientProjectPage2", BeanUtil.beanToMap(body, false, false));
Integer code = MapUtils.getInteger(map, "code", 300); Integer code = MapUtils.getInteger(map, "code", 300);
if (200 != code) { if (200 != code) {
throw new RuntimeException(); throw new RuntimeException();
...@@ -145,7 +145,7 @@ public class EnterpriseBussinessService { ...@@ -145,7 +145,7 @@ public class EnterpriseBussinessService {
if (body.isVaildCid()) { if (body.isVaildCid()) {
return new TableDataInfo(new ArrayList<>(), 0); return new TableDataInfo(new ArrayList<>(), 0);
} }
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/supplierPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/supplierPage2", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
...@@ -154,7 +154,7 @@ public class EnterpriseBussinessService { ...@@ -154,7 +154,7 @@ public class EnterpriseBussinessService {
if (body.isVaildCid()) { if (body.isVaildCid()) {
return new TableDataInfo(new ArrayList<>(), 0); return new TableDataInfo(new ArrayList<>(), 0);
} }
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/supplierProjectPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseBussiness/supplierProjectPage2", BeanUtil.beanToMap(body, false, false));
log.info(JSONUtil.toJsonStr(map)); log.info(JSONUtil.toJsonStr(map));
Integer code = MapUtils.getInteger(map, "code", 300); Integer code = MapUtils.getInteger(map, "code", 300);
......
...@@ -289,22 +289,22 @@ public class EnterpriseService { ...@@ -289,22 +289,22 @@ public class EnterpriseService {
List<CustomerStatusListVo> claimStatusList = iCustomerService.selectStatusListByCompanyName(companyNames); List<CustomerStatusListVo> claimStatusList = iCustomerService.selectStatusListByCompanyName(companyNames);
Map<String, Object> bondCreditRatingBatchMap = new HashMap<>(1); // Map<String, Object> bondCreditRatingBatchMap = new HashMap<>(1);
bondCreditRatingBatchMap.put("cIds", cIds); // bondCreditRatingBatchMap.put("cIds", cIds);
Map<String, Object> bondCreditRatingMap = dskOpenApiUtil.requestBody("/operate/enterprise/bondCreditRatingBatch", bondCreditRatingBatchMap); // Map<String, Object> bondCreditRatingMap = dskOpenApiUtil.requestBody("/operate/enterprise/bondCreditRatingBatch", bondCreditRatingBatchMap);
Integer codeRating = MapUtils.getInteger(bondCreditRatingMap, "code", 300); // Integer codeRating = MapUtils.getInteger(bondCreditRatingMap, "code", 300);
ArrayList<Map<String, Object>> objArrayList = new ArrayList(1); // ArrayList<Map<String, Object>> objArrayList = new ArrayList(1);
if (codeRating.equals(HttpStatus.OK.value())) { // if (codeRating.equals(HttpStatus.OK.value())) {
Object object = bondCreditRatingMap.get("data"); // Object object = bondCreditRatingMap.get("data");
if (ObjectUtil.isNotEmpty(object)) { // if (ObjectUtil.isNotEmpty(object)) {
objArrayList = (ArrayList) object; // objArrayList = (ArrayList) object;
} // }
} // }
//按照城投企业id合并两个list //按照城投企业id合并两个list
for (Object companyObj : list) { for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj); Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
companyMap.put("bratingSubjectLevel", null); // companyMap.put("bratingSubjectLevel", null);
String uipId = MapUtils.getString(companyMap, "uipId"); String uipId = MapUtils.getString(companyMap, "uipId");
String companyName = MapUtils.getString(companyMap, "companyName", ""); String companyName = MapUtils.getString(companyMap, "companyName", "");
if (ObjectUtil.isNotEmpty(companyName) && ObjectUtil.isNotEmpty(body.getKeys())) { if (ObjectUtil.isNotEmpty(companyName) && ObjectUtil.isNotEmpty(body.getKeys())) {
...@@ -354,12 +354,12 @@ public class EnterpriseService { ...@@ -354,12 +354,12 @@ public class EnterpriseService {
companyMap.put("claimStatus", vo.getStatus()); companyMap.put("claimStatus", vo.getStatus());
} }
} }
for (Map<String, Object> m : objArrayList) { // for (Map<String, Object> m : objArrayList) {
Long companyIdCredit = MapUtils.getLong(m, "companyId", 0L); // Long companyIdCredit = MapUtils.getLong(m, "companyId", 0L);
if (companyIdCredit.equals(companyId)) { // if (companyIdCredit.equals(companyId)) {
companyMap.put("bratingSubjectLevel", m.get("bratingSubjectLevel")); // companyMap.put("bratingSubjectLevel", m.get("bratingSubjectLevel"));
} // }
} // }
} }
return new TableDataInfo(list, MapUtils.getInteger(data, "totalCount", 0)); return new TableDataInfo(list, MapUtils.getInteger(data, "totalCount", 0));
......
package com.dsk.system.dskService; package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
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.core.domain.R; import com.dsk.common.utils.DateUtils;
import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -29,29 +28,53 @@ public class IndexService { ...@@ -29,29 +28,53 @@ public class IndexService {
@Autowired @Autowired
private DskOpenApiUtil dskOpenApiUtil; private DskOpenApiUtil dskOpenApiUtil;
public R winningBidsRanking(Map<String, Object> paramMap) throws Exception { public AjaxResult bigWinningBidsPage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/winningBidsRanking", paramMap); ArrayList recentlyBidQueryDtoList = object.getJSONArray("recentlyBidQueryDto");
return BeanUtil.toBean(map, R.class); Map<String,Object> objectMap = new HashMap<>();
Map<String,Object> pageMap = new HashMap<>(4);
pageMap.put("page", object.get("pageNum"));
pageMap.put("limit", object.get("pageSize"));
pageMap.put("field", "tenderDate");
pageMap.put("order", "desc");
objectMap.put("page", pageMap);
if (ObjectUtil.isEmpty(recentlyBidQueryDtoList)) {
Map<String,Object> recentlyBidQueryMap = new HashMap<>();
recentlyBidQueryDtoList = new ArrayList();
recentlyBidQueryMap.put("startTenderTime", DateUtils.dateTime(DateUtils.addDays(new Date(), -6)));
recentlyBidQueryMap.put("endTenderTime", DateUtils.getDate());
recentlyBidQueryMap.put("startMoney", 20000);
recentlyBidQueryMap.put("tenderType","施工,工程总承包");
recentlyBidQueryDtoList.add(recentlyBidQueryMap);
objectMap.put("recentlyBidQueryDto", recentlyBidQueryDtoList);
} else {
Map<String,Object> recentlyBidQueryMap = (Map<String,Object>)recentlyBidQueryDtoList.get(0);
recentlyBidQueryMap.put("tenderType","施工,工程总承包");
objectMap.put("recentlyBidQueryDto", recentlyBidQueryDtoList);
} }
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/project/recently", objectMap);
public R rankingProjectType(Map<String, Object> paramMap) throws Exception { return BeanUtil.toBean(map, AjaxResult.class);
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/rankingProjectType", paramMap);
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo bigWinningBidsPage(IndexBigWinningBidsPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bigWinningBidsPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
} }
public TableDataInfo bigBidPage(IndexBigBidPageBody body) throws Exception { public AjaxResult bigBidPage(JSONObject body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bigBidPage", BeanUtil.beanToMap(body, false, false)); Object jskBidQueryDto = body.get("jskBidQueryDto");
return dskOpenApiUtil.responsePage(map); Map<String,Object> objectMap = new HashMap<>(2);
Map<String,Object> pageMap = new HashMap<>(4);
pageMap.put("page", body.get("pageNum"));
pageMap.put("limit", body.get("pageSize"));
pageMap.put("field", "punishDate");
pageMap.put("order", "desc");
objectMap.put("page", pageMap);
if (ObjectUtil.isEmpty(jskBidQueryDto)) {
Map<String,Object> jskBidQueryDtoMap = new HashMap<>(1);
// jskBidQueryDtoMap.put("startTenderTime", DateUtils.dateTime(DateUtils.addDays(new Date(), -6)));
// jskBidQueryDtoMap.put("endTenderTime", DateUtils.getDate());
jskBidQueryDtoMap.put("startBidMoney", 20000);
objectMap.put("jskBidQueryDto", jskBidQueryDtoMap);
} else {
objectMap.put("jskBidQueryDto", jskBidQueryDto);
} }
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/page", objectMap);
public R bigBidProjectType(Map<String, Object> paramMap) throws Exception { return BeanUtil.toBean(map, AjaxResult.class);
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bigBidProjectType", paramMap);
return BeanUtil.toBean(map, R.class);
} }
public AjaxResult countByCompany(JSONObject object) { public AjaxResult countByCompany(JSONObject object) {
...@@ -63,4 +86,8 @@ public class IndexService { ...@@ -63,4 +86,8 @@ public class IndexService {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/bidRank", object); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/bidRank", object);
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
public static void main(String[] args) {
System.out.println(DateUtils.getDate());
}
} }
...@@ -37,17 +37,17 @@ public class JskCombineInfoService { ...@@ -37,17 +37,17 @@ public class JskCombineInfoService {
public TableDataInfo memberList(JskCombineSearchDto dto) throws Exception { public TableDataInfo memberList(JskCombineSearchDto dto) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/memberList", BeanUtil.beanToMap(dto, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/memberList", BeanUtil.beanToMap(dto, false, false));
if (!ObjectUtils.isEmpty(map.get("data"))) { // if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data")); // Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
if (!ObjectUtils.isEmpty(data.get("list"))) { // if (!ObjectUtils.isEmpty(data.get("list"))) {
List<Map<String, Object>> list = (List<Map<String, Object>>) data.get("list"); // List<Map<String, Object>> list = (List<Map<String, Object>>) data.get("list");
list.parallelStream().forEach(res -> { // list.parallelStream().forEach(res -> {
Integer companyId = MapUtils.getInteger(res, "companyId"); // Integer companyId = MapUtils.getInteger(res, "companyId");
String companyName = MapUtils.getString(res, "companyName"); // String companyName = MapUtils.getString(res, "companyName");
res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId)); // res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId));
}); // });
} // }
} // }
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
...@@ -83,17 +83,17 @@ public class JskCombineInfoService { ...@@ -83,17 +83,17 @@ public class JskCombineInfoService {
public TableDataInfo menberCertificateList(JskCombineCertificateDto dto)throws Exception { public TableDataInfo menberCertificateList(JskCombineCertificateDto dto)throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/member/certificateList", BeanUtil.beanToMap(dto, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/member/certificateList", BeanUtil.beanToMap(dto, false, false));
if (!ObjectUtils.isEmpty(map.get("data"))) { // if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data")); // Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
if (!ObjectUtils.isEmpty(data.get("list"))) { // if (!ObjectUtils.isEmpty(data.get("list"))) {
List<Map<String, Object>> list = (List<Map<String, Object>>) data.get("list"); // List<Map<String, Object>> list = (List<Map<String, Object>>) data.get("list");
list.parallelStream().forEach(res -> { // list.parallelStream().forEach(res -> {
Integer companyId = MapUtils.getInteger(res, "companyId"); // Integer companyId = MapUtils.getInteger(res, "companyId");
String companyName = MapUtils.getString(res, "companyName"); // String companyName = MapUtils.getString(res, "companyName");
res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId)); // res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId));
}); // });
} // }
} // }
return dskOpenApiUtil.responsePage(map); return dskOpenApiUtil.responsePage(map);
} }
......
...@@ -62,17 +62,17 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo ...@@ -62,17 +62,17 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
} }
List<CustomerStatusListVo> customerStatusListVos = iCustomerService.selectStatusListByCompanyName(companyNames); List<CustomerStatusListVo> customerStatusListVos = iCustomerService.selectStatusListByCompanyName(companyNames);
Map<String, Object> bondCreditRatingBatchMap = new HashMap<>(1); // Map<String, Object> bondCreditRatingBatchMap = new HashMap<>(1);
bondCreditRatingBatchMap.put("cIds", cIds); // bondCreditRatingBatchMap.put("cIds", cIds);
Map<String, Object> bondCreditRatingMap = dskOpenApiUtil.requestBody("/operate/operate/enterprise/bondCreditRatingBatch", bondCreditRatingBatchMap); // Map<String, Object> bondCreditRatingMap = dskOpenApiUtil.requestBody("/operate/operate/enterprise/bondCreditRatingBatch", bondCreditRatingBatchMap);
Integer codeRating = MapUtils.getInteger(bondCreditRatingMap, "code", 300); // Integer codeRating = MapUtils.getInteger(bondCreditRatingMap, "code", 300);
ArrayList<Map<String, Object>> objArrayList = new ArrayList(1); // ArrayList<Map<String, Object>> objArrayList = new ArrayList(1);
if (codeRating.equals(HttpStatus.OK.value())) { // if (codeRating.equals(HttpStatus.OK.value())) {
Object object = bondCreditRatingMap.get("data"); // Object object = bondCreditRatingMap.get("data");
if (ObjectUtil.isNotEmpty(object)) { // if (ObjectUtil.isNotEmpty(object)) {
objArrayList = (ArrayList)object; // objArrayList = (ArrayList)object;
} // }
} // }
//按照城投企业id合并两个list //按照城投企业id合并两个list
//按照城投企业id合并两个list //按照城投企业id合并两个list
...@@ -86,27 +86,27 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo ...@@ -86,27 +86,27 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
companyName = companyName.replaceAll("</font>",""); companyName = companyName.replaceAll("</font>","");
} }
companyMap.put("claimStatus", null); companyMap.put("claimStatus", null);
companyMap.put("bratingSubjectLevel", null); // companyMap.put("bratingSubjectLevel", null);
for (CustomerStatusListVo vo : customerStatusListVos) { for (CustomerStatusListVo vo : customerStatusListVos) {
if (companyName.equals(vo.getCompanyName())) { if (companyName.equals(vo.getCompanyName())) {
companyMap.put("claimStatus", vo.getStatus()); companyMap.put("claimStatus", vo.getStatus());
} }
} }
// 去除重复的数据 // 去除重复的数据
Set<UrbanInvestmentPlatformSubjectLevelDto> subjectLevelDtoSet = new HashSet<>(); // Set<UrbanInvestmentPlatformSubjectLevelDto> subjectLevelDtoSet = new HashSet<>();
for (Map<String, Object> m : objArrayList) { // for (Map<String, Object> m : objArrayList) {
UrbanInvestmentPlatformSubjectLevelDto dto = new UrbanInvestmentPlatformSubjectLevelDto(); // UrbanInvestmentPlatformSubjectLevelDto dto = new UrbanInvestmentPlatformSubjectLevelDto();
Long companyIdCredit = MapUtils.getLong(m, "companyId", 0L); // Long companyIdCredit = MapUtils.getLong(m, "companyId", 0L);
String rate = MapUtils.getString(m, "bratingSubjectLevel"); // String rate = MapUtils.getString(m, "bratingSubjectLevel");
dto.setCompanyId(companyIdCredit); // dto.setCompanyId(companyIdCredit);
dto.setBratingSubjectLevel(rate); // dto.setBratingSubjectLevel(rate);
subjectLevelDtoSet.add(dto); // subjectLevelDtoSet.add(dto);
} // }
for (UrbanInvestmentPlatformSubjectLevelDto dto : subjectLevelDtoSet) { // for (UrbanInvestmentPlatformSubjectLevelDto dto : subjectLevelDtoSet) {
if (dto.getCompanyId().equals(companyId)) { // if (dto.getCompanyId().equals(companyId)) {
companyMap.put("bratingSubjectLevel", dto.getBratingSubjectLevel()); // companyMap.put("bratingSubjectLevel", dto.getBratingSubjectLevel());
} // }
} // }
} }
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
......
...@@ -391,14 +391,14 @@ ...@@ -391,14 +391,14 @@
<select id="selectAmountAnalyze" resultType="com.dsk.system.domain.business.vo.BusinessAnalyzeVo"> <select id="selectAmountAnalyze" resultType="com.dsk.system.domain.business.vo.BusinessAnalyzeVo">
select select
bi.amount_source,count(bi.id) businessCount,sum(bi.investment_amount) totalAmount bi.amount_source,count(bi.id) businessCount, ROUND(sum(bi.investment_amount), 4) totalAmount
<include refid="businessSearchSql"/> <include refid="businessSearchSql"/>
group by bi.amount_source group by bi.amount_source
</select> </select>
<select id="selectTypeAnalyze" resultType="com.dsk.system.domain.business.vo.BusinessAnalyzeVo"> <select id="selectTypeAnalyze" resultType="com.dsk.system.domain.business.vo.BusinessAnalyzeVo">
select select
bi.project_type,count(bi.id) businessCount,sum(bi.investment_amount) totalAmount bi.project_type,count(bi.id) businessCount, ROUND(sum(bi.investment_amount), 4) totalAmount
<include refid="businessSearchSql"/> <include refid="businessSearchSql"/>
group by bi.project_type group by bi.project_type
</select> </select>
......
...@@ -112,7 +112,7 @@ ...@@ -112,7 +112,7 @@
<select id="selectCooperationTop" resultType="com.dsk.system.domain.customer.vo.CustomerAnalyzeVo"> <select id="selectCooperationTop" resultType="com.dsk.system.domain.customer.vo.CustomerAnalyzeVo">
select select
ct.customer_id, ct.company_name, ct.company_id, ct.uip_id, count(bi.id) businessCount, ct.customer_id, ct.company_name, ct.company_id, ct.uip_id, count(bi.id) businessCount,
sum(bi.investment_amount) totalAmount ROUND(sum(bi.investment_amount), 4) totalAmount
from customer ct from customer ct
join customer_user ctu on ct.customer_id = ctu.customer_id join customer_user ctu on ct.customer_id = ctu.customer_id
left join business_info bi on (bi.customer_id = ct.customer_id and bi.status = 2) left join business_info bi on (bi.customer_id = ct.customer_id and bi.status = 2)
......
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