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;
import com.dsk.system.service.IBusinessOverviewService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* 项目概览
*
* @author lcl
* @create 2023/8/14
*/
......@@ -30,40 +28,43 @@ public class BusinessOverviewController extends BaseController {
* 项目状态统计
*/
@GetMapping("/status/statistics")
public AjaxResult statusStatistics(){
public AjaxResult statusStatistics() {
return AjaxResult.success(baseService.statusStatistics(new BusinessSearchDto(SecurityUtils.getUserId())));
}
/**
* 项目资金分析
*/
@GetMapping("/amount/analyze")
public AjaxResult amountAnalyze(){
return AjaxResult.success(baseService.amountAnalyze(new BusinessSearchDto(SecurityUtils.getUserId(),0)));
public AjaxResult amountAnalyze() {
return AjaxResult.success(baseService.amountAnalyze(new BusinessSearchDto(SecurityUtils.getUserId(), 0)));
}
/**
* 项目类型分析
*/
@GetMapping("/type/analyze")
public AjaxResult typeAnalyze(){
return AjaxResult.success(baseService.typeAnalyze(new BusinessSearchDto(SecurityUtils.getUserId(),2)));
@GetMapping("/type/analyze/{status}")
public AjaxResult typeAnalyze(@PathVariable Integer status) {
return AjaxResult.success(baseService.typeAnalyze(new BusinessSearchDto(SecurityUtils.getUserId(), status)));
}
/**
* 公招项目地区统计
*
* @return
*/
@GetMapping("/countGroupByProvince")
public AjaxResult countGroupByProvince(@RequestBody JSONObject object){
@RequestMapping("/countGroupByProvince")
public AjaxResult countGroupByProvince(@RequestBody JSONObject object) {
return baseService.countGroupByProvince(object);
}
/**
* 公招项目投资金额统计
*
* @return
*/
@GetMapping("/rangByMoney")
public AjaxResult rangByMoney(@RequestBody JSONObject object){
@RequestMapping("/rangByMoney")
public AjaxResult rangByMoney(@RequestBody JSONObject object) {
return baseService.rangByMoney(object);
}
}
......@@ -32,35 +32,16 @@ public class IndexController {
@Autowired
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 = "大项目最新中标")
@PostMapping(value = "bigWinningBidsPage")
public TableDataInfo bigWinningBidsPage(@RequestBody IndexBigWinningBidsPageBody vo) throws Exception {
return enterpriseService.bigWinningBidsPage(vo);
public AjaxResult bigWinningBidsPage(@RequestBody JSONObject object) throws Exception {
return enterpriseService.bigWinningBidsPage(object);
}
@ApiOperation(value = "大项目最新招标")
@PostMapping(value = "bigBidPage")
public TableDataInfo bigBidPage(@RequestBody IndexBigBidPageBody vo) throws Exception {
return enterpriseService.bigBidPage(vo);
}
@ApiOperation(value = "企业中标排行-项目类型")
@PostMapping("/bigBidProjectType")
public R bigBidProjectType(@RequestBody Map<String, Object> paramMap) throws Exception {
return enterpriseService.bigBidProjectType(paramMap);
public AjaxResult bigBidPage(@RequestBody JSONObject object) throws Exception {
return enterpriseService.bigBidPage(object);
}
@ApiOperation(value = "集团中标统计")
......
......@@ -7,6 +7,7 @@ import lombok.ToString;
import javax.validation.constraints.AssertFalse;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
......@@ -20,10 +21,10 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage {
private Integer cid;
/**
* 企业id
* 客户企业Id
*/
@NotNull(message = "企业id不能为空")
private Integer unitId;
private Integer companyId;
/**
* 查询关键字
......@@ -32,7 +33,34 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage {
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;
import javax.validation.constraints.AssertFalse;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@ToString
......@@ -20,10 +21,10 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage {
private Integer cid;
/**
* 企业id
* 供应商企业Id
*/
@NotNull(message = "企业id不能为空")
private Integer unitId;
private Integer companyId;
/**
* 查询关键字
......@@ -32,8 +33,34 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage {
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 @@
"axios": "0.24.0",
"clipboard": "2.0.8",
"core-js": "3.25.3",
"echarts": "^5.4.0",
"echarts": "^5.0.0",
"element-resize-detector": "^1.2.4",
"element-ui": "2.15.12",
"file-saver": "2.0.5",
......
......@@ -80,3 +80,11 @@ export function tenderPage(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) {
data: param
})
}
// 民营集团
// 其他集团
let centralEnterprsesocial= function centralEnterprsesocial(param) {
return request({
url: '/combine/info/centralEnterprse/social',
......@@ -155,7 +155,7 @@ let centralEnterprsesocial= function centralEnterprsesocial(param) {
data: param
})
}
// 民营集团更多
// 其他集团更多
let centralEnterprsesocialPage= function centralEnterprsesocialPage(param) {
return request({
url: '/combine/info/centralEnterprse/social/page',
......
......@@ -219,3 +219,52 @@ export function allRecord(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 {
padding-bottom: 48px;
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 @@
<label class="label">建设性质</label>
<span>{{info.projectNature||"--"}}</span>
</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 class="biddetail-title">招标信息</div>
<div class="main31-box">
......@@ -412,6 +419,9 @@ export default {
.span1{
width: 40%;
}
.span2{
width: 88.9%;
}
.span-one {
width: 90%;
}
......
......@@ -148,6 +148,16 @@ export default {
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{
.el-input__inner{
border: 1px solid #D9D9D9;
......
......@@ -216,5 +216,4 @@ export default {
::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: #DCEBFF;
}
</style>
<template>
<div class="client-details">
<el-drawer
<el-dialog
:visible.sync="drawer"
size="60%"
custom-class="client-drawer"
size="80%"
:title="title"
custom-class="client-dialog"
:with-header="false"
@closed="cancel">
<head-detail-form
:title="title"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
......@@ -22,29 +22,21 @@
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
style="margin: 12px;"
>
<template slot="projectAllName" slot-scope="scope">
<template slot="sourceType" slot-scope="scope">
<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.id&&scope.row.projectAllName" v-html="scope.row.projectAllName" style="cursor: pointer"></div>
<span v-else v-html="scope.row.projectAllName || '--'"></span>
<div class="a-link" @click="linkTo(scope)" v-if="scope.row.sourceId&&scope.row.sourceType=='中标业绩'" v-html="scope.row.sourceType" style="cursor: pointer"></div>
<span v-else v-html="scope.row.sourceType || '--'"></span>
</div>
</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>
</el-drawer>
</el-dialog>
</div>
</template>
<script>
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"
export default {
......@@ -62,21 +54,22 @@ export default {
drawer: false,
queryParams: {
cid: this.companyId,
unitId: this.data.projectUnitId,
companyId: this.data.companyId,
pageNum: 1,
pageSize: 20
},
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: []},
],
forData: [
{label: '合作项目/工程名称', prop: 'projectAllName', width: '720', fixed: true, slot: true},
{label: '项目/工程金额(万元)', prop: 'winBidAmount', width: '160'},
{label: '合作时间', prop: 'winBidTime', width: '100'},
{label: '项目地区', prop: 'province', width: '160', slot: true},
{label: '项目类型', prop: 'boundType', width: '130'},
{label: '工期(天)', prop: 'period', width: '90'},
{label: '下浮率', prop: 'lowerRate', width: '90', slot: true}
{label: '项目名称', prop: 'projectName', fixed: true},
{label: '公布时间', prop: 'time', width: '100'},
{label: '本次合同金额(万元)', prop: 'amount', width: '160'},
{label: '项目类型', prop: 'projectTtype', width: '130'},
{label: '数据来源', prop: 'sourceType', width: '90', slot: true}
],
//列表
tableLoading:false,
......@@ -88,8 +81,28 @@ export default {
created() {
this.drawer = true
this.handleQuery()
this.handleOption()
},
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) {
this.tableLoading = true
let param = params?params:this.queryParams
......@@ -109,7 +122,7 @@ export default {
},
linkTo(scope){
this.drawer = false
this.$router.push(`/biddetail/${scope.row.id}`)
this.$router.push(`/biddetail/${scope.row.sourceId}`)
},
cancel() {
this.$emit('cancel')
......@@ -120,8 +133,27 @@ export default {
<style lang="scss" scoped>
.client-details {
::v-deep .client-drawer{
::v-deep .client-dialog{
width: 80%;
min-width: 900px;
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{
width: 14px;
......
<template>
<div class="client-details">
<el-drawer
<el-dialog
:visible.sync="drawer"
size="60%"
custom-class="client-drawer"
size="80%"
:title="title"
custom-class="client-dialog"
:with-header="false"
@closed="cancel">
<head-detail-form
:title="title"
:form-data="formData"
:query-params="queryParams"
:total="tableDataTotal"
......@@ -22,28 +22,21 @@
:tableDataTotal="tableDataTotal"
:queryParams="queryParams"
@handle-current-change="handleCurrentChange"
style="margin: 12px;"
>
<template slot="projectAllName" slot-scope="scope">
<template slot="sourceType" slot-scope="scope">
<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.id&&scope.row.projectAllName" v-html="scope.row.projectAllName" style="cursor: pointer"></div> <span v-else v-html="scope.row.projectAllName || '--'"></span>
<div class="a-link" @click="linkTo(scope)" v-if="scope.row.sourceId&&scope.row.sourceType=='中标业绩'" v-html="scope.row.sourceType" style="cursor: pointer"></div>
<span v-else v-html="scope.row.sourceType || '--'"></span>
</div>
</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>
</el-drawer>
</el-dialog>
</div>
</template>
<script>
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"
export default {
......@@ -60,22 +53,23 @@ export default {
return {
drawer: false,
queryParams: {
cid: this.data.companyId,
unitId: this.companyId,
companyId: this.data.companyId,
cid: this.companyId,
pageNum: 1,
pageSize: 20
},
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},
],
forData: [
{label: '合作项目/工程名称', prop: 'projectAllName', width: '720', fixed: true, slot: true},
{label: '项目/工程金额(万元)', prop: 'winBidAmount', width: '160'},
{label: '合作时间', prop: 'winBidTime', width: '100'},
{label: '项目地区', prop: 'province', width: '160', slot: true},
{label: '项目类型', prop: 'boundType', width: '130'},
{label: '工期(天)', prop: 'period', width: '90'},
{label: '下浮率', prop: 'lowerRate', width: '90', slot: true}
{label: '项目名称', prop: 'projectName', fixed: true},
{label: '公布时间', prop: 'time', width: '100'},
{label: '本次合同金额(万元)', prop: 'amount', width: '160'},
{label: '项目类型', prop: 'projectType', width: '130'},
{label: '数据来源', prop: 'sourceType', width: '90', slot: true}
],
//列表
tableLoading:false,
......@@ -87,8 +81,28 @@ export default {
created() {
this.drawer = true
this.handleQuery()
this.handleOption()
},
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) {
this.tableLoading = true
let param = params?params:this.queryParams
......@@ -108,7 +122,7 @@ export default {
},
linkTo(scope){
this.drawer = false
this.$router.push(`/biddetail/${scope.row.id}`)
this.$router.push(`/biddetail/${scope.row.sourceId}`)
},
cancel() {
this.$emit('cancel')
......@@ -119,8 +133,27 @@ export default {
<style lang="scss" scoped>
.client-details {
::v-deep .client-drawer{
::v-deep .client-dialog{
width: 80%;
min-width: 900px;
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{
width: 14px;
......
......@@ -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>
<div v-else v-html="scope.row.companyName || '--'"></div>
</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>
<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 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>
</tables>
<client-detail
v-if="isDetails"
:data="rowData"
:title="'合作项目/工程明细'"
:title="title"
:company-id="companyId"
@cancel="isDetails=false" />
</div>
......@@ -42,7 +45,7 @@
<script>
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'
export default {
name: 'Custom',
......@@ -53,21 +56,25 @@ export default {
},
data() {
return {
title:'',
queryParams: {
cid: this.companyId,
sort: 3,
pageNum: 1,
pageSize: 20
},
defaultSort: {prop: 'time', order: 'descending'},
defaultSort: {},
forData: [
{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: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'}
{label: '合作次数', prop: 'count', minWidth: '150', sortable: 'custom',slot: true, descending: '5', ascending: '6'},
],
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,
......@@ -81,8 +88,28 @@ export default {
},
created() {
this.handleQuery()
this.handleOption()
},
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) {
this.tableLoading = true
let param = params?params:this.queryParams
......@@ -102,7 +129,8 @@ export default {
},
handleClick(e, data) {
this.rowData = data
this.isDetails = true
this.isDetails = true;
this.title = '与客户'+data.companyName+'合作记录'
},
handleDetail(row){
if(row.sourceUrl){
......
......@@ -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>
<div v-else v-html="scope.row.companyName || '--'"></div>
</template>
<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>
<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 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>
</tables>
<client-detail
v-if="isDetails"
:data="rowData"
:title="'合作项目/工程明细'"
:title="title"
:company-id="companyId"
@cancel="isDetails=false" />
</div>
......@@ -42,7 +40,7 @@
<script>
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'
export default {
name: 'Supplier',
......@@ -53,21 +51,24 @@ export default {
},
data() {
return {
title:'',
queryParams: {
cid: this.companyId,
sort: 3,
sort: 5,
pageNum: 1,
pageSize: 20
},
defaultSort: {prop: 'time', order: 'descending'},
defaultSort: {},
forData: [
{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: 'time', minWidth: '140', sortable: 'custom', descending: '3', ascending: '4'}
{label: '合作次数', prop: 'count', minWidth: '150', sortable: 'custom',slot: true, descending: '5', ascending: '6'},
],
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,
......@@ -81,8 +82,28 @@ export default {
},
created() {
this.handleQuery()
this.handleOption()
},
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) {
this.tableLoading = true
let param = params?params:this.queryParams
......@@ -103,6 +124,7 @@ export default {
handleClick(e, data) {
this.rowData = data
this.isDetails = true
this.title = '与供应商'+data.companyName+'合作记录'
},
handleDetail(row){
if(row.sourceUrl){
......
<template>
<!-- <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_item">
<div class="content_right">
......@@ -52,7 +57,7 @@
<div class="count1" >{{item.type}}<span> {{ item.total }}</span></div>
<div :key="index">
<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 style="float: left;">
<span class="name" v-html="item1.combineName" ></span>
......@@ -95,7 +100,7 @@
<div class="count1" >{{item.address}}<span> {{ item.total }}</span></div>
<div :key="index">
<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 style="float: left;">
<span class="name" v-html="item1.combineName" ></span>
......@@ -108,7 +113,7 @@
</div>
</template>
<!-- 民营集团 -->
<!-- 其他集团 -->
<template v-if="activeIndex==3">
<div class="count">{{ childListTotal }}</div>
<div class="child-wrap" :id="'anchor-'+index" v-for="(item,index) in childList" :key="index">
......@@ -116,7 +121,7 @@
<div class="count1" >{{item.type}}<span> {{ item.total }}</span></div>
<div :key="index">
<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 style="float: left;">
<span class="name" v-html="item1.combineName" ></span>
......@@ -145,6 +150,7 @@
<script>
import api from '@/api/enterpriseData/enterpriseData.js';
import skeleton from '@/views/project/projectList/component/skeleton'
import "@/assets/styles/public.css";
export default {
name: 'Group',
......@@ -168,7 +174,7 @@ export default {
provinces:[],
total:0,
isscroll:false,
groups:['央企','央企子集团','地方国企','民营集团'],
groups:['央企','央企子集团','地方国企','其他集团'],
companData:[],
searchList:[],
page:1,
......
<template>
<div >
<div class="app-container enterprise_contatiner">
<div class="title_wrap">
<div class="enterprise_title">
查城投平台
</div>
</div>
<div class="content">
<div class="content_item">
<div class="content_right item_ckquery_list">
......@@ -495,6 +500,7 @@ import {encodeStr} from "@/assets/js/common.js"
import jsk_data from '../../../../../public/jsk.json';
import skeleton from '@/views/project/projectList/component/skeleton'
import api from '@/api/enterpriseData/enterpriseData.js';
import "@/assets/styles/public.css";
export default {
name: 'Owner',
components:{skeleton},
......
<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_item content_item_padding0">
<div class="content_right item_ckquery_list">
......@@ -585,6 +592,8 @@
import api from '@/api/enterpriseData/enterpriseData.js';
import {encodeStr} from "@/assets/js/common.js"
import skeleton from '@/views/project/projectList/component/skeleton'
import "@/assets/styles/public.css";
export default {
name: 'EnterpriseQuery',
components:{skeleton},
......
......@@ -34,7 +34,7 @@
<Owner v-if="personnelHerf=='Owner'" />
<!-- 查企业 -->
<SearchEnterprise v-if="personnelHerf=='SearchEnterprise'" />
<!-- 查企业 -->
<!-- 查集团户 -->
<Group v-if="personnelHerf=='Group'" />
......@@ -77,9 +77,14 @@
personnelHerf:'Owner'
}
},
created() {},
created() {
if(this.$route.query.type==2){
this.personnelHerf='Group';
this.personnelList[0].status = false;
this.personnelList[2].status = true;
}
},
methods: {
handleClick(){},
personnelListbtn(index) {
for (var i = 0; i < this.personnelList.length; i++) {
this.personnelList[i].status = false;
......
......@@ -86,6 +86,21 @@
<el-option v-for="(item,index) in projectStage" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</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 class="scbtns">
......@@ -219,10 +234,25 @@ export default {
districtId: [],
pageNum:1,
pageSize:20,
status:null,
},
domicile:[],
projectType:[],//项目类型
projectCategory:[],//项目类别
statusList:[
{
value:'0',
label:'储备中'
},
{
value:'1',
label:'跟进中'
},
{
value:'2',
label:'已合作'
},
],
amountOptions:[
{
label: "5000万以下",
......@@ -253,7 +283,6 @@ export default {
},
mounted(){
this.prvinceTree()
this.getList(1)
//项目阶段
getDictType('project_stage_type').then(result=>{
this.projectStage = result.code == 200 ? result.data:[]
......@@ -266,8 +295,21 @@ export default {
getDictType('project_category').then(result=>{
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: {
statusBtn(){
},
dc(){
this.$message.warning('功能正在开发中')
},
......@@ -345,6 +387,7 @@ export default {
districtId: [],
pageNum:1,
pageSize:20,
status:null
}
this.getList(1)
},
......
......@@ -46,7 +46,7 @@
</div>
<div class="list-content" v-if="textList.projectAmount||textList.contact">
<p class="list-content-text" v-if="textList.projectAmount">
<span>预算金</span>
<span>预算金</span>
<span v-if="textList.projectAmount">{{textList.projectAmount}}万元</span>
<span v-else>--</span>
</p>
......@@ -65,6 +65,10 @@
<span>报名截止日期:</span>
<span >{{textList.overTime||'--'}}</span>
</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">
<span>来源网站:</span>
<span >{{textList.dataSource||'--'}}</span>
......@@ -122,8 +126,6 @@
}).then(res => {
// console.log(res);
this.textList = res.data;
console.log(this.textList);
}).catch(error => {
});
......
......@@ -238,7 +238,7 @@
</div>
<div class="list-content" v-if="item.bidMoney||item.contactTel || item.agencyContactTel">
<p class="list-content-text" v-if="item.bidMoney">
<span>预算金</span>
<span>预算金</span>
<span>{{item.bidMoney||'--'}}万元</span>
</p>
<p class="list-content-text" v-if="item.contactTel || item.agencyContactTel">
......
......@@ -20,6 +20,10 @@ public class JskCombineCertificateDto implements Serializable {
*/
@NotNull(message = "id不能为空!")
private Long id;
/**
* 企业名称
*/
private String companyName;
/**
* 页码
......
......@@ -58,14 +58,14 @@ public class EnterpriseBussinessService {
public TableDataInfo clientPage(EnterpriseBussinessClientPageBody body) throws Exception {
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);
}
public TableDataInfo clientProjectPage(EnterpriseBussinessClientProjectPageBody body) throws Exception {
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);
if (200 != code) {
throw new RuntimeException();
......@@ -145,7 +145,7 @@ public class EnterpriseBussinessService {
if (body.isVaildCid()) {
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);
}
......@@ -154,7 +154,7 @@ public class EnterpriseBussinessService {
if (body.isVaildCid()) {
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));
Integer code = MapUtils.getInteger(map, "code", 300);
......
......@@ -289,22 +289,22 @@ public class EnterpriseService {
List<CustomerStatusListVo> claimStatusList = iCustomerService.selectStatusListByCompanyName(companyNames);
Map<String, Object> bondCreditRatingBatchMap = new HashMap<>(1);
bondCreditRatingBatchMap.put("cIds", cIds);
Map<String, Object> bondCreditRatingMap = dskOpenApiUtil.requestBody("/operate/enterprise/bondCreditRatingBatch", bondCreditRatingBatchMap);
Integer codeRating = MapUtils.getInteger(bondCreditRatingMap, "code", 300);
ArrayList<Map<String, Object>> objArrayList = new ArrayList(1);
if (codeRating.equals(HttpStatus.OK.value())) {
Object object = bondCreditRatingMap.get("data");
if (ObjectUtil.isNotEmpty(object)) {
objArrayList = (ArrayList) object;
}
}
// Map<String, Object> bondCreditRatingBatchMap = new HashMap<>(1);
// bondCreditRatingBatchMap.put("cIds", cIds);
// Map<String, Object> bondCreditRatingMap = dskOpenApiUtil.requestBody("/operate/enterprise/bondCreditRatingBatch", bondCreditRatingBatchMap);
// Integer codeRating = MapUtils.getInteger(bondCreditRatingMap, "code", 300);
// ArrayList<Map<String, Object>> objArrayList = new ArrayList(1);
// if (codeRating.equals(HttpStatus.OK.value())) {
// Object object = bondCreditRatingMap.get("data");
// if (ObjectUtil.isNotEmpty(object)) {
// objArrayList = (ArrayList) object;
// }
// }
//按照城投企业id合并两个list
for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
companyMap.put("bratingSubjectLevel", null);
// companyMap.put("bratingSubjectLevel", null);
String uipId = MapUtils.getString(companyMap, "uipId");
String companyName = MapUtils.getString(companyMap, "companyName", "");
if (ObjectUtil.isNotEmpty(companyName) && ObjectUtil.isNotEmpty(body.getKeys())) {
......@@ -354,12 +354,12 @@ public class EnterpriseService {
companyMap.put("claimStatus", vo.getStatus());
}
}
for (Map<String, Object> m : objArrayList) {
Long companyIdCredit = MapUtils.getLong(m, "companyId", 0L);
if (companyIdCredit.equals(companyId)) {
companyMap.put("bratingSubjectLevel", m.get("bratingSubjectLevel"));
}
}
// for (Map<String, Object> m : objArrayList) {
// Long companyIdCredit = MapUtils.getLong(m, "companyId", 0L);
// if (companyIdCredit.equals(companyId)) {
// companyMap.put("bratingSubjectLevel", m.get("bratingSubjectLevel"));
// }
// }
}
return new TableDataInfo(list, MapUtils.getInteger(data, "totalCount", 0));
......
package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DateUtils;
import com.dsk.common.utils.DskOpenApiUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -29,29 +28,53 @@ public class IndexService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
public R winningBidsRanking(Map<String, Object> paramMap) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/winningBidsRanking", paramMap);
return BeanUtil.toBean(map, R.class);
public AjaxResult bigWinningBidsPage(JSONObject object) {
ArrayList recentlyBidQueryDtoList = object.getJSONArray("recentlyBidQueryDto");
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);
}
public R rankingProjectType(Map<String, Object> paramMap) throws Exception {
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);
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/project/recently", objectMap);
return BeanUtil.toBean(map, AjaxResult.class);
}
public TableDataInfo bigBidPage(IndexBigBidPageBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bigBidPage", BeanUtil.beanToMap(body, false, false));
return dskOpenApiUtil.responsePage(map);
public AjaxResult bigBidPage(JSONObject body) throws Exception {
Object jskBidQueryDto = body.get("jskBidQueryDto");
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);
}
public R bigBidProjectType(Map<String, Object> paramMap) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bigBidProjectType", paramMap);
return BeanUtil.toBean(map, R.class);
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/jskBid/page", objectMap);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countByCompany(JSONObject object) {
......@@ -63,4 +86,8 @@ public class IndexService {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/bidRank", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public static void main(String[] args) {
System.out.println(DateUtils.getDate());
}
}
......@@ -37,17 +37,17 @@ public class JskCombineInfoService {
public TableDataInfo memberList(JskCombineSearchDto dto) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/memberList", BeanUtil.beanToMap(dto, false, false));
if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
if (!ObjectUtils.isEmpty(data.get("list"))) {
List<Map<String, Object>> list = (List<Map<String, Object>>) data.get("list");
list.parallelStream().forEach(res -> {
Integer companyId = MapUtils.getInteger(res, "companyId");
String companyName = MapUtils.getString(res, "companyName");
res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId));
});
}
}
// if (!ObjectUtils.isEmpty(map.get("data"))) {
// Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
// if (!ObjectUtils.isEmpty(data.get("list"))) {
// List<Map<String, Object>> list = (List<Map<String, Object>>) data.get("list");
// list.parallelStream().forEach(res -> {
// Integer companyId = MapUtils.getInteger(res, "companyId");
// String companyName = MapUtils.getString(res, "companyName");
// res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId));
// });
// }
// }
return dskOpenApiUtil.responsePage(map);
}
......@@ -83,17 +83,17 @@ public class JskCombineInfoService {
public TableDataInfo menberCertificateList(JskCombineCertificateDto dto)throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/member/certificateList", BeanUtil.beanToMap(dto, false, false));
if (!ObjectUtils.isEmpty(map.get("data"))) {
Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
if (!ObjectUtils.isEmpty(data.get("list"))) {
List<Map<String, Object>> list = (List<Map<String, Object>>) data.get("list");
list.parallelStream().forEach(res -> {
Integer companyId = MapUtils.getInteger(res, "companyId");
String companyName = MapUtils.getString(res, "companyName");
res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId));
});
}
}
// if (!ObjectUtils.isEmpty(map.get("data"))) {
// Map<String, Object> data = BeanUtil.beanToMap(map.get("data"));
// if (!ObjectUtils.isEmpty(data.get("list"))) {
// List<Map<String, Object>> list = (List<Map<String, Object>>) data.get("list");
// list.parallelStream().forEach(res -> {
// Integer companyId = MapUtils.getInteger(res, "companyId");
// String companyName = MapUtils.getString(res, "companyName");
// res.put("uipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(companyName, companyId));
// });
// }
// }
return dskOpenApiUtil.responsePage(map);
}
......
......@@ -62,17 +62,17 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
}
List<CustomerStatusListVo> customerStatusListVos = iCustomerService.selectStatusListByCompanyName(companyNames);
Map<String, Object> bondCreditRatingBatchMap = new HashMap<>(1);
bondCreditRatingBatchMap.put("cIds", cIds);
Map<String, Object> bondCreditRatingMap = dskOpenApiUtil.requestBody("/operate/operate/enterprise/bondCreditRatingBatch", bondCreditRatingBatchMap);
Integer codeRating = MapUtils.getInteger(bondCreditRatingMap, "code", 300);
ArrayList<Map<String, Object>> objArrayList = new ArrayList(1);
if (codeRating.equals(HttpStatus.OK.value())) {
Object object = bondCreditRatingMap.get("data");
if (ObjectUtil.isNotEmpty(object)) {
objArrayList = (ArrayList)object;
}
}
// Map<String, Object> bondCreditRatingBatchMap = new HashMap<>(1);
// bondCreditRatingBatchMap.put("cIds", cIds);
// Map<String, Object> bondCreditRatingMap = dskOpenApiUtil.requestBody("/operate/operate/enterprise/bondCreditRatingBatch", bondCreditRatingBatchMap);
// Integer codeRating = MapUtils.getInteger(bondCreditRatingMap, "code", 300);
// ArrayList<Map<String, Object>> objArrayList = new ArrayList(1);
// if (codeRating.equals(HttpStatus.OK.value())) {
// Object object = bondCreditRatingMap.get("data");
// if (ObjectUtil.isNotEmpty(object)) {
// objArrayList = (ArrayList)object;
// }
// }
//按照城投企业id合并两个list
//按照城投企业id合并两个list
......@@ -86,27 +86,27 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
companyName = companyName.replaceAll("</font>","");
}
companyMap.put("claimStatus", null);
companyMap.put("bratingSubjectLevel", null);
// companyMap.put("bratingSubjectLevel", null);
for (CustomerStatusListVo vo : customerStatusListVos) {
if (companyName.equals(vo.getCompanyName())) {
companyMap.put("claimStatus", vo.getStatus());
}
}
// 去除重复的数据
Set<UrbanInvestmentPlatformSubjectLevelDto> subjectLevelDtoSet = new HashSet<>();
for (Map<String, Object> m : objArrayList) {
UrbanInvestmentPlatformSubjectLevelDto dto = new UrbanInvestmentPlatformSubjectLevelDto();
Long companyIdCredit = MapUtils.getLong(m, "companyId", 0L);
String rate = MapUtils.getString(m, "bratingSubjectLevel");
dto.setCompanyId(companyIdCredit);
dto.setBratingSubjectLevel(rate);
subjectLevelDtoSet.add(dto);
}
for (UrbanInvestmentPlatformSubjectLevelDto dto : subjectLevelDtoSet) {
if (dto.getCompanyId().equals(companyId)) {
companyMap.put("bratingSubjectLevel", dto.getBratingSubjectLevel());
}
}
// Set<UrbanInvestmentPlatformSubjectLevelDto> subjectLevelDtoSet = new HashSet<>();
// for (Map<String, Object> m : objArrayList) {
// UrbanInvestmentPlatformSubjectLevelDto dto = new UrbanInvestmentPlatformSubjectLevelDto();
// Long companyIdCredit = MapUtils.getLong(m, "companyId", 0L);
// String rate = MapUtils.getString(m, "bratingSubjectLevel");
// dto.setCompanyId(companyIdCredit);
// dto.setBratingSubjectLevel(rate);
// subjectLevelDtoSet.add(dto);
// }
// for (UrbanInvestmentPlatformSubjectLevelDto dto : subjectLevelDtoSet) {
// if (dto.getCompanyId().equals(companyId)) {
// companyMap.put("bratingSubjectLevel", dto.getBratingSubjectLevel());
// }
// }
}
return BeanUtil.toBean(map, AjaxResult.class);
}
......
......@@ -391,14 +391,14 @@
<select id="selectAmountAnalyze" resultType="com.dsk.system.domain.business.vo.BusinessAnalyzeVo">
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"/>
group by bi.amount_source
</select>
<select id="selectTypeAnalyze" resultType="com.dsk.system.domain.business.vo.BusinessAnalyzeVo">
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"/>
group by bi.project_type
</select>
......
......@@ -112,7 +112,7 @@
<select id="selectCooperationTop" resultType="com.dsk.system.domain.customer.vo.CustomerAnalyzeVo">
select
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
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)
......
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