Commit 2f358a25 authored by yht15023815643's avatar yht15023815643

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

parents 38db4af6 dad1d309
...@@ -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);
} }
} }
package com.dsk.web.controller.dsk; package com.dsk.web.controller.dsk;
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.R;
import com.dsk.common.core.domain.model.*; import com.dsk.common.core.domain.model.*;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.page.TableDataInfo;
...@@ -30,36 +32,27 @@ public class IndexController { ...@@ -30,36 +32,27 @@ 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 = "企业中标排行-项目类型") @ApiOperation(value = "集团中标统计")
@PostMapping("/bigBidProjectType") @PostMapping("/countByCompany")
public R bigBidProjectType(@RequestBody Map<String, Object> paramMap) throws Exception { public AjaxResult countByCompany(@RequestBody JSONObject object) {
return enterpriseService.bigBidProjectType(paramMap); return enterpriseService.countByCompany(object);
} }
@ApiOperation(value = "建筑企业中标排行榜")
@PostMapping("/bidRank")
public AjaxResult bidRank(@RequestBody JSONObject object) {
return enterpriseService.bidRank(object);
}
} }
...@@ -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,29 @@ public class EnterpriseBussinessClientProjectPageBody extends BasePage { ...@@ -32,7 +33,29 @@ 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;
} }
...@@ -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,28 @@ public class EnterpriseBussinessSupplierProjectPageBody extends BasePage { ...@@ -32,8 +33,28 @@ 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;
} }
import request from '@/utils/request' import request from '@/utils/request'
// 客户概览-客户统计
export function statistics() {
return request({
url: '/customer/overview/statistics',
method: 'get',
})
}
// 客户概览-客户合作情况
export function cooperationTop() {
return request({
url: '/customer/overview/cooperation/top',
method: 'get',
})
}
// 客户概览-客户信资评级
export function creditLevel() {
return request({
url: '/customer/overview/credit/level',
method: 'get',
})
}
// 导入客户列表 // 导入客户列表
export function importData(param) { export function importData(param) {
return request({ return request({
......
import request from "@/utils/request"; import request from "@/utils/request";
// 企业中标排行榜
export function bidRank(data) {
return request({
url: '/index/bidRank',
method: 'post',
data: data
})
}
// 大项目最新中标 // 大项目最新中标
export function bigWinningBidsPage(data) { export function bigWinningBidsPage(data) {
return request({ return request({
......
...@@ -977,6 +977,11 @@ ...@@ -977,6 +977,11 @@
font-size: 12px; font-size: 12px;
} }
} }
.el-form {
.el-form-item--small.el-form-item {
margin-bottom: 0;
}
}
} }
.p10{ .p10{
padding: 0 10px; padding: 0 10px;
......
...@@ -43,7 +43,7 @@ export default { ...@@ -43,7 +43,7 @@ export default {
.app-main { .app-main {
/* 84 = navbar + tags-view = 50 + 34 */ /* 84 = navbar + tags-view = 50 + 34 */
min-height: calc(100vh - 68px); min-height: calc(100vh - 68px);
min-width:1440px; min-width:1240px;
background: #F5F5F5; background: #F5F5F5;
overflow: initial; overflow: initial;
} }
......
...@@ -127,7 +127,7 @@ export const constantRoutes = [ ...@@ -127,7 +127,7 @@ export const constantRoutes = [
path: '/enterprise/:id', path: '/enterprise/:id',
component: () => import('@/views/detail/party-a/index'), component: () => import('@/views/detail/party-a/index'),
name: 'PartyA', name: 'PartyA',
meta: { title: '企业详情', icon: 'enterprise', noCache: false }, meta: { title: '甲方详情', icon: 'enterprise', noCache: false },
} }
] ]
}, },
......
...@@ -61,7 +61,7 @@ export default { ...@@ -61,7 +61,7 @@ export default {
timeList: { timeList: {
type: Array, type: Array,
default: () => [], default: () => [],
} },
}, },
computed: { computed: {
isClear() { isClear() {
...@@ -319,6 +319,9 @@ export default { ...@@ -319,6 +319,9 @@ export default {
left: -400px; left: -400px;
} }
} }
.el-date-editor{
left: -400px;
}
} }
.picker-block { .picker-block {
......
...@@ -15,10 +15,44 @@ ...@@ -15,10 +15,44 @@
<div class="btn btn_primary btn_shallow h36 w88" @click="pldrs">批量导入</div> <div class="btn btn_primary btn_shallow h36 w88" @click="pldrs">批量导入</div>
</div> </div>
<div class="table_search"> <div class="table_search">
<div class="searchInput"> <div>
<el-input type="text" clearable v-model="searchParam.companyName" @change="clearname" placeholder="输入企业名称查询"></el-input> <el-form ref="queryForm" :model="searchParam" :inline="true" size="small">
<div class="btn" @click="handleCurrentChange(1)">搜索</div> <el-form-item prop="companyName">
<div class="searchInput">
<el-input type="text" clearable v-model="searchParam.companyName" @change="clearname" placeholder="输入企业名称查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div>
</el-form-item>
<el-form-item>
<el-cascader
ref="address1"
:options="addressList"
:props="addressProps"
v-model="address"
@change="handleSearch"
placeholder="地区选择"
collapse-tags
style="width: 200px;"
clearable></el-cascader>
</el-form-item>
<el-form-item prop="companyNatures">
<el-select v-model="searchParam.companyNatures" style="width: 175px;" @change="handleSearch" filterable collapse-tags multiple class="form-content-width" placeholder="客户性质">
<el-option v-for="(item, index) in companyNaturelist" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
<el-form-item prop="isOn">
<el-select v-model="searchParam.isOn" filterable clearable style="width: 175px;" @change="handleSearch" class="form-content-width" placeholder="上市公司">
<el-option v-for="(item, index) in isMajorlist" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
<el-form-item prop="creditLevels">
<el-select v-model="searchParam.creditLevels" style="width: 175px;" @change="handleSearch" multiple filterable collapse-tags class="form-content-width" placeholder="资信评级">
<el-option v-for="(item, index) in creditLevellist" :key="index" :label="item.dictLabel" :value="item.dictValue" />
</el-select>
</el-form-item>
</el-form>
</div> </div>
<div class="dc"> <div class="dc">
<div class="total">{{tableData.total}}</div> <div class="total">{{tableData.total}}</div>
<div class="btn-export" @click="pldrs"><img src="@/assets/images/project/import.png">批量导入</div> <div class="btn-export" @click="pldrs"><img src="@/assets/images/project/import.png">批量导入</div>
...@@ -259,7 +293,6 @@ ...@@ -259,7 +293,6 @@
import batchimport from '../../project/projectList/component/batchImport' import batchimport from '../../project/projectList/component/batchImport'
import skeleton from '../../project/projectList/component/skeleton' import skeleton from '../../project/projectList/component/skeleton'
import { encodeStr } from '@/assets/js/common' import { encodeStr } from '@/assets/js/common'
export default { export default {
name: 'CustomList', name: 'CustomList',
components:{batchimport,skeleton}, components:{batchimport,skeleton},
...@@ -273,6 +306,7 @@ ...@@ -273,6 +306,7 @@
pageNum:1, pageNum:1,
pageSize:20 pageSize:20
}, },
address:'',
props:{ checkStrictly: true, expandTrigger: 'hover' }, props:{ checkStrictly: true, expandTrigger: 'hover' },
dialogVisible:false, dialogVisible:false,
textarea:"", textarea:"",
...@@ -281,7 +315,23 @@ ...@@ -281,7 +315,23 @@
tipsvalue:"",//标签填写内容 tipsvalue:"",//标签填写内容
tableData: [],//列表 tableData: [],//列表
companData:[],//联想企业列表 companData:[],//联想企业列表
addressProps: {
multiple: true,
expandTrigger: 'hover'
},
//上市公司
isMajorlist:[
{
dictValue: 0,
dictLabel:'否',
},
{
dictValue: 1,
dictLabel:'是',
}
],
companyNaturelist:[], //客户性质
creditLevellist:[], //资信评级
customerLevel:[],//客户等级 customerLevel:[],//客户等级
addressList:[],//地区 addressList:[],//地区
//添加客户 //添加客户
...@@ -316,12 +366,20 @@ ...@@ -316,12 +366,20 @@
} }
}, },
created() { created() {
this.$watch( if(this.$route.query.type === '1'){
() => this.$route.params, this.searchParam.companyNatures=['国有企业']
() => { }
if(this.$route.query.type === '2'){
this.searchParam.companyNatures=['央企']
}
if(this.$route.query.type ==='3'){
this.searchParam.companyNatures=['事业单位','机关单位']
}
this.$watch(() => this.$route.params,() => {
this.getCustomerList() this.getCustomerList()
this.getDictType() this.getDictType()
this.prvinceTree() this.prvinceTree()
this.handleQuery()
this.searchParam.companyName='' this.searchParam.companyName=''
}, },
// 组件创建完后获取数据, // 组件创建完后获取数据,
...@@ -330,6 +388,22 @@ ...@@ -330,6 +388,22 @@
) )
}, },
methods:{ methods:{
async handleQuery() {
let [type1,type2] = await Promise.all([
getDictType('company_nature_type'),
getDictType('credit_level_type'),
])
if(type1.code==200){
type1.data.forEach(item => {
this.companyNaturelist.push({dictLabel:item.dictLabel,dictValue:item.dictLabel})
})
}
if(type2.code==200){
type2.data.forEach(item => {
this.creditLevellist.push({dictLabel:item.dictLabel,dictValue:item.dictLabel})
})
}
},
sq1(item,sq){ sq1(item,sq){
this.$nextTick(()=>{ this.$nextTick(()=>{
item.sq1 = sq item.sq1 = sq
...@@ -367,7 +441,42 @@ ...@@ -367,7 +441,42 @@
}, },
//获取客户列表 //获取客户列表
getCustomerList(){ getCustomerList(){
getCustomerList(this.searchParam).then(result=>{ let params=this.searchParam
if(this.address.length > 0){
let arr = this.$refs.address1.getCheckedNodes();
let provinceCode = [],cityCode = [],countyCode = [];
for (var i in arr) {
if (arr[i].parent) {
if (!arr[i].parent.checked) {
arr[i].hasChildren && cityCode.push(arr[i].value);
!arr[i].hasChildren && countyCode.push(arr[i].value);
}
} else {
provinceCode.push(arr[i].value)
}
}
if(provinceCode.length > 0){
params.provinceIds=provinceCode
}
if(cityCode.length > 0){
params.cityIds=cityCode
}
if(countyCode.length > 0){
params.areaIds=countyCode
}
}else {
if(params.provinceIds){
delete params.provinceIds
}
if(params.cityIds){
delete params.cityIds
}
if(params.areaIds){
delete params.areaIds
}
}
getCustomerList(params).then(result=>{
this.isSkeleton = false this.isSkeleton = false
this.tableData = result this.tableData = result
this.tableData.rows.forEach(item=>{ this.tableData.rows.forEach(item=>{
...@@ -398,6 +507,12 @@ ...@@ -398,6 +507,12 @@
// } // }
this.$router.push({path:'/enterprise/'+encodeStr(companyId),query:{customerId:customerId,path:path}}) this.$router.push({path:'/enterprise/'+encodeStr(companyId),query:{customerId:customerId,path:path}})
}, },
handleSearch(){
this.$nextTick(() => {
this.searchParam.pageNum = 1
this.getCustomerList()
})
},
clearname(value){ clearname(value){
if(value == ""){ if(value == ""){
this.handleCurrentChange(1) this.handleCurrentChange(1)
...@@ -650,6 +765,27 @@ ...@@ -650,6 +765,27 @@
margin-top: 16px; margin-top: 16px;
} }
} }
.table_search{
::v-deep .el-cascader{
height: 32px;
line-height: 32px;
.el-input{
input{
height: 32px !important;
}
}
.el-cascader__tags{
flex-wrap: inherit;
margin-top: 1px;
.el-tag{
max-width: 120px;
}
}
.el-input__suffix{
top: 1px;
}
}
}
} }
.ps1{ .ps1{
display: flex; display: flex;
...@@ -696,8 +832,9 @@ ...@@ -696,8 +832,9 @@
height: auto; height: auto;
} }
.searchInput{ .searchInput{
width: 240px;
.el-input{ .el-input{
width: 260px; /*width: 260px;*/
} }
} }
</style> </style>
...@@ -400,16 +400,22 @@ ...@@ -400,16 +400,22 @@
}, },
sortChange({ column, prop, order }){ sortChange({ column, prop, order }){
this.queryParams.orderName = prop this.queryParams.orderName = prop
this.paramsData.orderName = prop
if(column.order === "ascending"){ if(column.order === "ascending"){
this.queryParams.orderType = 'asc' this.queryParams.orderType = 'asc'
this.paramsData.orderType = 'asc'
}else if(column.order === "descending"){ }else if(column.order === "descending"){
this.queryParams.orderType = 'desc' this.queryParams.orderType = 'desc'
this.paramsData.orderType = 'desc'
}else { }else {
this.queryParams.orderType='' this.queryParams.orderType=''
this.queryParams.orderName='' this.queryParams.orderName=''
this.paramsData.orderType=''
this.paramsData.orderName=''
} }
this.pageIndex = 1; this.queryParams.pageNum =1
this.handleQuery() this.paramsData.pageNum =1
this.handleQuery(this.paramsData)
}, },
//分页 //分页
handleCurrentChange(e){ handleCurrentChange(e){
......
This diff is collapsed.
This diff is collapsed.
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="gyflState"> <div class="content_box">
<div class="box-left"> <div class="box-left">
<div id="echarts1" style="height: 280px"></div> <div id="echarts1" style="height: 280px"></div>
</div> </div>
...@@ -38,12 +38,12 @@ ...@@ -38,12 +38,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="!gyflState"> <!--<div class="empty">-->
<img class="img" src="@/assets/images/project/empty.png"> <!--<img class="img" src="@/assets/images/project/empty.png">-->
<div class="p1">抱歉,暂无数据展示</div> <!--<div class="p1">抱歉,暂无数据展示</div>-->
</div> <!--</div>-->
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!zbtjState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国各地区中标统计TOP10</span> <span class="common-title">全国各地区中标统计TOP10</span>
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="tdytState"> <div class="content_box">
<div class="box-left"> <div class="box-left">
<div id="echarts2" style="height: 280px"></div> <div id="echarts2" style="height: 280px"></div>
</div> </div>
...@@ -79,12 +79,12 @@ ...@@ -79,12 +79,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="!tdytState"> <!--<div class="empty" v-if="!zbtjState">-->
<img class="img" src="@/assets/images/project/empty.png"> <!--<img class="img" src="@/assets/images/project/empty.png">-->
<div class="p1">抱歉,暂无数据展示</div> <!--<div class="p1">抱歉,暂无数据展示</div>-->
</div> <!--</div>-->
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!jefxState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国中标金额分析</span> <span class="common-title">全国中标金额分析</span>
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="tdytState"> <div class="content_box">
<div class="box-left"> <div class="box-left">
<div id="echarts3" style="height: 280px"></div> <div id="echarts3" style="height: 280px"></div>
</div> </div>
...@@ -118,12 +118,12 @@ ...@@ -118,12 +118,12 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="!tdytState"> <!--<div class="empty" v-if="!jefxState">-->
<img class="img" src="@/assets/images/project/empty.png"> <!--<img class="img" src="@/assets/images/project/empty.png">-->
<div class="p1">抱歉,暂无数据展示</div> <!--<div class="p1">抱歉,暂无数据展示</div>-->
</div> <!--</div>-->
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!qsfxState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国中标趋势分析</span> <span class="common-title">全国中标趋势分析</span>
...@@ -155,7 +155,7 @@ ...@@ -155,7 +155,7 @@
</div> </div>
</div> </div>
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!xflState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国中标下浮率分析</span> <span class="common-title">全国中标下浮率分析</span>
...@@ -164,7 +164,7 @@ ...@@ -164,7 +164,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="tdytState"> <div class="content_box">
<div class="box-left"> <div class="box-left">
<div id="echarts5" style="height: 280px"></div> <div id="echarts5" style="height: 280px"></div>
</div> </div>
...@@ -189,13 +189,13 @@ ...@@ -189,13 +189,13 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="!tdytState"> <!--<div class="empty" v-if="!xflState">-->
<img class="img" src="@/assets/images/project/empty.png"> <!--<img class="img" src="@/assets/images/project/empty.png">-->
<div class="p1">抱歉,暂无数据展示</div> <!--<div class="p1">抱歉,暂无数据展示</div>-->
</div> <!--</div>-->
</div> </div>
<div v-if="!isSkeleton" class="td_content"> <div v-if="!xmlxState" class="td_content">
<div class="flex-box query-box"> <div class="flex-box query-box">
<div class="flex-box query-params"> <div class="flex-box query-params">
<span class="common-title">全国中标业绩项目类型下浮率</span> <span class="common-title">全国中标业绩项目类型下浮率</span>
...@@ -207,7 +207,7 @@ ...@@ -207,7 +207,7 @@
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="content_box" v-if="topList.length > 0 && !isSkeleton"> <div class="content_box">
<div class="box-left"> <div class="box-left">
<div id="echarts6" style="height: 300px"></div> <div id="echarts6" style="height: 300px"></div>
</div> </div>
...@@ -233,10 +233,10 @@ ...@@ -233,10 +233,10 @@
</el-table> </el-table>
</div> </div>
</div> </div>
<div class="empty" v-if="topList.length === 0 && !isSkeleton"> <!--<div class="empty">-->
<img class="img" src="@/assets/images/project/empty.png"> <!--<img class="img" src="@/assets/images/project/empty.png">-->
<div class="p1">抱歉,暂无数据展示</div> <!--<div class="p1">抱歉,暂无数据展示</div>-->
</div> <!--</div>-->
</div> </div>
</div> </div>
...@@ -269,24 +269,24 @@ ...@@ -269,24 +269,24 @@
xflList :[], xflList :[],
xmxflList :[], xmxflList :[],
isSkeleton:true, isSkeleton:true,
gyflState:true, zbtjState:true,
tdytState:true, jefxState:true,
topState:true, qsfxState:true,
xflState:true,
xmlxState:true,
} }
}, },
created() { created() {
this.dataRegion() this.dataRegion()
this.yearsData() this.yearsData()
this.getCountBidByType() this.getCountBidByType()
this.$nextTick(() => { this.getCountBidGroupByProvince()
this.getRangeBidMoney()
}) this.getRangeBidFiveYears()
this.getLowerRateByYear()
this.getLowerRangeTenderType()
setTimeout(() => { setTimeout(() => {
this.getCountBidGroupByProvince()
this.getRangeBidMoney()
this.getRangeBidFiveYears()
this.getLowerRateByYear()
this.getLowerRangeTenderType()
}, 1000); }, 1000);
}, },
mounted() { mounted() {
...@@ -322,6 +322,7 @@ ...@@ -322,6 +322,7 @@
yearStr:this.years1.join(",") yearStr:this.years1.join(",")
} }
countBidGroupByProvince(params).then(res => { countBidGroupByProvince(params).then(res => {
this.zbtjState=false;
this.topList=res.data; this.topList=res.data;
if(res.data){ if(res.data){
this.$nextTick(() => { this.$nextTick(() => {
...@@ -335,6 +336,7 @@ ...@@ -335,6 +336,7 @@
yearStr:this.years2.join(",") yearStr:this.years2.join(",")
} }
rangeBidMoney(params).then(res => { rangeBidMoney(params).then(res => {
this.jefxState=false;
this.zbjeList=res.data; this.zbjeList=res.data;
var list=[]; var list=[];
for(var i=0;i<res.data.length;i++){ for(var i=0;i<res.data.length;i++){
...@@ -353,6 +355,7 @@ ...@@ -353,6 +355,7 @@
}, },
getRangeBidFiveYears(){ getRangeBidFiveYears(){
rangeBidFiveYears().then(res => { rangeBidFiveYears().then(res => {
this.qsfxState=false;
this.zbqsList=res.data; this.zbqsList=res.data;
if(res.data){ if(res.data){
this.$nextTick(() => { this.$nextTick(() => {
...@@ -366,6 +369,7 @@ ...@@ -366,6 +369,7 @@
yearStr:this.years3 yearStr:this.years3
} }
lowerRateByYear(params).then(res => { lowerRateByYear(params).then(res => {
this.xflState=false;
for (var i=0; i<res.data.length; i++){ for (var i=0; i<res.data.length; i++){
res.data[i].rate=res.data[i].rate.toFixed(2) res.data[i].rate=res.data[i].rate.toFixed(2)
} }
...@@ -385,7 +389,7 @@ ...@@ -385,7 +389,7 @@
params.provinceId=this.address params.provinceId=this.address
} }
lowerRangeTenderType(params).then(res => { lowerRangeTenderType(params).then(res => {
this.xmlxState=false;
for (var i=0; i<res.data.length; i++){ for (var i=0; i<res.data.length; i++){
for (let j=0; j<res.data[i].typeList.length; j++){ for (let j=0; j<res.data[i].typeList.length; j++){
if(res.data[i].typeList[j].tenderType === '施工'){ if(res.data[i].typeList[j].tenderType === '施工'){
...@@ -526,7 +530,6 @@ ...@@ -526,7 +530,6 @@
}, },
initChart2(data) { initChart2(data) {
this.$nextTick(() => { this.$nextTick(() => {
// console.log(typeList)
let myChart = echarts.init(document.getElementById("echarts2")) let myChart = echarts.init(document.getElementById("echarts2"))
let seriesData=[] let seriesData=[]
let color=['#FCD68A', '#67B3FD', '#FFB8AD', '#FFD7AD', '#A9F1E5', '#D0FAB7', '#ADC0FF', '#BEECFF', '#81D5BC', '#FFE48A']; let color=['#FCD68A', '#67B3FD', '#FFB8AD', '#FFD7AD', '#A9F1E5', '#D0FAB7', '#ADC0FF', '#BEECFF', '#81D5BC', '#FFE48A'];
......
...@@ -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);
......
package com.dsk.system.dskService; package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.domain.R; import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.core.domain.model.*; import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.page.TableDataInfo; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.utils.DateUtils;
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;
...@@ -27,28 +28,66 @@ public class IndexService { ...@@ -27,28 +28,66 @@ 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);
return BeanUtil.toBean(map, AjaxResult.class);
} }
public R rankingProjectType(Map<String, Object> paramMap) throws Exception { public AjaxResult bigBidPage(JSONObject body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/rankingProjectType", paramMap); Object jskBidQueryDto = body.get("jskBidQueryDto");
return BeanUtil.toBean(map, R.class); 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);
return BeanUtil.toBean(map, AjaxResult.class);
} }
public TableDataInfo bigWinningBidsPage(IndexBigWinningBidsPageBody body) throws Exception { public AjaxResult countByCompany(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bigWinningBidsPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/centralEnterprse/countByCompany", object);
return dskOpenApiUtil.responsePage(map); return BeanUtil.toBean(map, AjaxResult.class);
} }
public TableDataInfo bigBidPage(IndexBigBidPageBody body) throws Exception { public AjaxResult bidRank(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bigBidPage", BeanUtil.beanToMap(body, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/bidRank", object);
return dskOpenApiUtil.responsePage(map); return BeanUtil.toBean(map, AjaxResult.class);
} }
public R bigBidProjectType(Map<String, Object> paramMap) throws Exception { public static void main(String[] args) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/enterpriseProject/bigBidProjectType", paramMap); System.out.println(DateUtils.getDate());
return BeanUtil.toBean(map, R.class);
} }
} }
...@@ -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);
} }
......
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