Commit c7500d25 authored by danfuman's avatar danfuman

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

parents 7ed7865d dd3840a0
package com.dsk.web.controller.dsk;
import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.domain.dsk.dto.JskCombineSearchDto;
import com.dsk.system.dskService.JskCombineInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 集团户相关信息
* @author lcl
* @create 2023/8/7
*/
@Slf4j
@RestController
@RequestMapping(value = "/combine/info")
public class JskCombineInfoController extends BaseController {
@Autowired
private JskCombineInfoService baseService;
/**
* 集团成员列表
*/
@GetMapping("/memberList")
public TableDataInfo memberList(JskCombineSearchDto dto) throws Exception {
return baseService.memberList(dto);
}
/**
* 分组成员数量
*/
@GetMapping("/group/memberCount")
public R groupMemberCount(JskCombineSearchDto dto) {
return baseService.groupMemberCount(dto);
}
/**
* 集团业绩列表
*/
@GetMapping("/businessList")
public TableDataInfo businessList(JskCombineSearchDto dto) throws Exception {
return baseService.businessList(dto);
}
}
...@@ -55,8 +55,6 @@ public class MarketAnalysisController extends BaseController { ...@@ -55,8 +55,6 @@ public class MarketAnalysisController extends BaseController {
return marketAnalysisService.certGroupByMajorProvinceLevel(); return marketAnalysisService.certGroupByMajorProvinceLevel();
} }
/* /*
* 产业结构-按年份选择 各个项目类型项目总数 * 产业结构-按年份选择 各个项目类型项目总数
*/ */
...@@ -72,6 +70,14 @@ public class MarketAnalysisController extends BaseController { ...@@ -72,6 +70,14 @@ public class MarketAnalysisController extends BaseController {
return marketAnalysisService.bidMoneyGroupByProjectType(object); return marketAnalysisService.bidMoneyGroupByProjectType(object);
} }
//-----------------------------------中标----------------------------------
//全攻中标项目统计
@RequestMapping("/countBidByType")
public AjaxResult countBidByType(@RequestBody JSONObject object) {
return marketAnalysisService.countBidByType( object);
}
/* /*
* 全国各地区中标统计TOP10 * 全国各地区中标统计TOP10
*/ */
...@@ -80,7 +86,32 @@ public class MarketAnalysisController extends BaseController { ...@@ -80,7 +86,32 @@ public class MarketAnalysisController extends BaseController {
return marketAnalysisService.countBidGroupByProvince(object); return marketAnalysisService.countBidGroupByProvince(object);
} }
//全国中标金额分析
@RequestMapping("/rangeBidMoney")
public AjaxResult rangeBidMoney(@RequestBody JSONObject object) {
return marketAnalysisService.rangeBidMoney( object);
}
//全国中标趋势分析
@RequestMapping("/rangeBidFiveYears")
public AjaxResult rangeBidFiveYears() {
return marketAnalysisService.rangeBidFiveYears();
}
//全国中标下浮率分析
@RequestMapping("/lowerRateByYear")
public AjaxResult lowerRateByYear(@RequestBody JSONObject object) {
return marketAnalysisService.lowerRateByYear( object);
}
//全国中标业绩项目类型下浮率
@RequestMapping("/lowerRangeTenderType")
public AjaxResult lowerRangeTenderType(@RequestBody JSONObject object) {
return marketAnalysisService.lowerRangeTenderType( object);
}
//-----------------------------------土地----------------------------------
//央企数字化经营系统 土地交易 //央企数字化经营系统 土地交易
@RequestMapping("/countLandMarketByType") @RequestMapping("/countLandMarketByType")
public AjaxResult countLandMarketByType(@RequestBody JSONObject object){ public AjaxResult countLandMarketByType(@RequestBody JSONObject object){
...@@ -99,6 +130,10 @@ public class MarketAnalysisController extends BaseController { ...@@ -99,6 +130,10 @@ public class MarketAnalysisController extends BaseController {
return marketAnalysisService.countLandMarketByYear(); return marketAnalysisService.countLandMarketByYear();
} }
//-----------------------------------招标----------------------------------
//央企数字化经营系统 全国公招项目统计 //央企数字化经营系统 全国公招项目统计
@RequestMapping("/countNewsBidByYear") @RequestMapping("/countNewsBidByYear")
public AjaxResult countNewsBidByYear(){ public AjaxResult countNewsBidByYear(){
......
...@@ -206,6 +206,7 @@ ...@@ -206,6 +206,7 @@
class="popups" class="popups"
:visible.sync="dialogVisible" :visible.sync="dialogVisible"
width="534px" width="534px"
:close-on-click-modal="false"
@close="resetForm('ruleForm')" @close="resetForm('ruleForm')"
> >
<div class="poptitle"> <div class="poptitle">
...@@ -214,9 +215,9 @@ ...@@ -214,9 +215,9 @@
</div> </div>
<el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px"> <el-form class="popform j" :model="queryParam" :rules="rules" ref="ruleForm" label-width="130px">
<el-form-item label="企业名称:" class="row" prop="companyName"> <el-form-item label="企业名称:" class="row" prop="companyName">
<el-input type="text" placeholder="请输入" v-model="queryParam.companyName" @input="getCompany"></el-input> <el-input type="text" placeholder="请输入" v-model="queryParam.companyName" @input="getCompany(1)"></el-input>
<div class="resultlist" v-if="showlist" id="box"> <div class="resultlist infinite-list" v-if="showlist" id="box" v-infinite-scroll="load" style="overflow:auto">
<div v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name"></span></div> <div class="infinite-list-item" v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name" :key="companypage"></span></div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="客户等级:" class="row"> <el-form-item label="客户等级:" class="row">
...@@ -310,6 +311,8 @@ ...@@ -310,6 +311,8 @@
showlist:false, showlist:false,
keys:1, keys:1,
isSkeleton:true, isSkeleton:true,
companypage:1,
isscroll:false,
} }
}, },
created() { created() {
...@@ -428,22 +431,48 @@ ...@@ -428,22 +431,48 @@
//获取建设库客户 //获取建设库客户
getCompany(value){ getCompany(value){
this.queryParam.companyId = null this.queryParam.companyId = null
if (value.length>=2){ if(value == 1){
this.companData = []
this.companypage = 1
}
if (this.queryParam.companyName.length>=2){
let param = { let param = {
keyword:value, keyword:this.queryParam.companyName,
page:{ page:{
limit:20, limit:20,
page:1 page:this.companypage
} }
} }
getEnterprise(JSON.stringify(param)).then(result=>{ getEnterprise(JSON.stringify(param)).then(result=>{
if(result.code != 200) if(result.code != 200){
return return false
this.showlist = true }
if(result.data.list != null && result.data.list.length>0){
this.isscroll = true
if (this.companData.length===0) {
this.companData = result.data.list this.companData = result.data.list
} else {
let arr2 = result.data.list
arr2.unshift(2, 0);
Array.prototype.splice.apply(this.companData, arr2);
}
if(this.companData.length===0) {
this.showlist = false
}else{
this.showlist = true
}
this.companypage += 1
}else{
this.isscroll = false
}
}) })
} }
}, },
load(){
if(this.isscroll){
this.getCompany(2)
}
},
selCompany(item){ selCompany(item){
this.queryParam.companyId = item.jskEid this.queryParam.companyId = item.jskEid
this.queryParam.companyName = item.name.replace(/<[^>]+>/g, '') this.queryParam.companyName = item.name.replace(/<[^>]+>/g, '')
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
class="popups" class="popups"
width="534px" width="534px"
:visible.sync="isshow" :visible.sync="isshow"
:close-on-click-modal="false"
@close="resetForm('ruleForm')" @close="resetForm('ruleForm')"
> >
<div @click = 'handleALL'> <div @click = 'handleALL'>
......
...@@ -313,7 +313,7 @@ ...@@ -313,7 +313,7 @@
return false return false
editXMNR(param).then(result=>{ editXMNR(param).then(result=>{
if(result.code == 200){ if(result.code == 200){
this.$message.success('修改成功!') // this.$message.success('修改成功!')
if(param.investmentAmount){//修改项目阶段 if(param.investmentAmount){//修改项目阶段
this.$emit('Refrehmoney') this.$emit('Refrehmoney')
} }
......
...@@ -276,7 +276,7 @@ ...@@ -276,7 +276,7 @@
editXMNR(JSON.stringify(params)).then(res=>{ editXMNR(JSON.stringify(params)).then(res=>{
if (res.code == 200){ if (res.code == 200){
if(!param.projectStage){ if(!param.projectStage){
this.$message.success('修改成功!') // this.$message.success('修改成功!')
} }
}else{ }else{
this.$message.error(res.msg) this.$message.error(res.msg)
...@@ -314,7 +314,7 @@ ...@@ -314,7 +314,7 @@
} }
addLabel(JSON.stringify(param)).then(res=>{ addLabel(JSON.stringify(param)).then(res=>{
if (res.code == 200){ if (res.code == 200){
this.$message.success('修改成功!') // this.$message.success('修改成功!')
this.tipsvalue = "" this.tipsvalue = ""
this.getXMSL() this.getXMSL()
}else{ }else{
...@@ -330,7 +330,7 @@ ...@@ -330,7 +330,7 @@
} }
removeLabel(JSON.stringify(param)).then(res=>{ removeLabel(JSON.stringify(param)).then(res=>{
if (res.code == 200){ if (res.code == 200){
this.$message.success('修改成功!') // this.$message.success('修改成功!')
this.getXMSL() this.getXMSL()
}else{ }else{
this.$message.error(res.msg) this.$message.error(res.msg)
......
...@@ -287,7 +287,7 @@ ...@@ -287,7 +287,7 @@
} }
editXMNR(JSON.stringify(params)).then(res=>{ editXMNR(JSON.stringify(params)).then(res=>{
if (res.code == 200){ if (res.code == 200){
this.$message.success('修改成功!') // this.$message.success('修改成功!')
if(this.nowedit == 1){ if(this.nowedit == 1){
let _this = this let _this = this
setTimeout(function() { setTimeout(function() {
......
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
<ul class="bottomlist-content" v-if="!isSkeleton&&tableData.length>0"> <ul class="bottomlist-content" v-if="!isSkeleton&&tableData.length>0">
<li class="bottomlist-list" v-for="item in tableData"> <li class="bottomlist-list" v-for="item in tableData">
<p class="list-titel"> <p class="list-titel">
<router-link :to="'/radar/debtProject/details/'+ item.uuid" tag="a" class="list-titel-a" v-html="item.projectName" ></router-link> <router-link :to="'/radar/debtProject/details/'+ item.id" tag="a" class="list-titel-a" v-html="item.projectName" ></router-link>
</p> </p>
<div class="content-label" v-if="item.domicile"> <div class="content-label" v-if="item.domicile">
......
<template> <template>
<div class="app-container qyzx-details"> <div class="app-container qyzx-details">
<div class="content main1"> <div class="content main1">
<div class="title"> <div class="cont-title"><img src="@/assets/images/financing/head_icon.png" />{{details.projectName}}</div>
<img src="@/assets/images/financing/head_icon.png" /> <p>{{details.projectScale}}</p>
<span>{{textList.projectName}}</span>
</div>
<p>{{textList.projectScale}}</p>
</div> </div>
<div class="content main2"> <div class="content main2">
<div class="common-title">项目筹资</div> <div class="common-title">项目筹资</div>
...@@ -13,40 +10,28 @@ ...@@ -13,40 +10,28 @@
<div class="list"> <div class="list">
<div class="item color1"> <div class="item color1">
<div class="item-left"> <div class="item-left">
<h4 v-if="textList.projectTotalInvestment">{{textList.projectTotalInvestment}}<span>亿元</span></h4> <h4>{{details.projectTotalInvestment || '-'}}<span>{{details.projectTotalInvestment ? '亿' : ''}}</span></h4>
<h4 v-else>
--
</h4>
<p>项目总投资额</p> <p>项目总投资额</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon1.png" /> <img class="img" src="@/assets/images/financing/icon1.png" />
</div> </div>
<div class="item color2"> <div class="item color2">
<div class="item-left"> <div class="item-left">
<h4 v-if="textList.projectCapital">{{textList.projectCapital}}<span>亿元</span></h4> <h4>{{details.projectCapital || '-'}}<span>{{details.projectCapital ? '亿' : ''}}</span></h4>
<h4 v-else>
--
</h4>
<p>项目资本金</p> <p>项目资本金</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon2.png" /> <img class="img" src="@/assets/images/financing/icon2.png" />
</div> </div>
<div class="item color3"> <div class="item color3">
<div class="item-left"> <div class="item-left">
<h4 v-if="textList.econData_013">{{textList.econData_013}}<span>亿元</span></h4> <h4>{{details.specialBondFinancing || '-'}}<span>{{details.specialBondFinancing ? '亿' : ''}}</span></h4>
<h4 v-else>
--
</h4>
<p>专项债融资</p> <p>专项债融资</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon3.png" /> <img class="img" src="@/assets/images/financing/icon3.png" />
</div> </div>
<div class="item color4"> <div class="item color4">
<div class="item-left"> <div class="item-left">
<h4 v-if="textList.specialBondCapital">{{textList.specialBondCapital}}<span>亿元</span></h4> <h4>{{details.specialBondCapital || '-'}}<span>{{details.specialBondCapital ? '亿' : ''}}</span></h4>
<h4 v-else>
--
</h4>
<p>专项债用作资本金</p> <p>专项债用作资本金</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon4.png" /> <img class="img" src="@/assets/images/financing/icon4.png" />
...@@ -55,40 +40,28 @@ ...@@ -55,40 +40,28 @@
<div class="list"> <div class="list">
<div class="item color4"> <div class="item color4">
<div class="item-left"> <div class="item-left">
<h4 v-if="textList.otherFunds">{{textList.otherFunds}}<span>亿元</span></h4> <h4>{{details.otherFunds || '-'}}<span>{{details.otherFunds ? '亿' : ''}}</span></h4>
<h4 v-else>
--
</h4>
<p>其他资金</p> <p>其他资金</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon5.png" /> <img class="img" src="@/assets/images/financing/icon5.png" />
</div> </div>
<div class="item color3"> <div class="item color3">
<div class="item-left"> <div class="item-left">
<h4 v-if="textList.specialBondIssue_number">{{textList.specialBondIssue_number}}<span>亿元/ 10只</span></h4> <h4>{{details.specialBondFinancingAmount || '-'}}<span>{{details.specialBondFinancingAmount ? '亿' : ''}} / {{details.specialBondIssueNumber || '-'}}{{details.specialBondIssueNumber ? '只' : ''}}</span></h4>
<h4 v-else>
--
</h4>
<p>专项债融资额/专项债只数</p> <p>专项债融资额/专项债只数</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon6.png" /> <img class="img" src="@/assets/images/financing/icon6.png" />
</div> </div>
<div class="item color4"> <div class="item color4">
<div class="item-left"> <div class="item-left">
<h4 v-if="textList.otherFinancing">{{textList.otherFinancing}}<span>亿元</span></h4> <h4>{{details.otherFinancing || '-'}}<span>{{details.otherFinancing ? '亿' : ''}}</span></h4>
<h4 v-else>
--
</h4>
<p>其他融资</p> <p>其他融资</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon7.png" /> <img class="img" src="@/assets/images/financing/icon7.png" />
</div> </div>
<div class="item color2"> <div class="item color2">
<div class="item-left"> <div class="item-left">
<h4 v-if="textList.govSupportFunds">{{textList.govSupportFunds}}<span>亿元</span></h4> <h4>{{details.govSupportFunds || '-'}}<span>{{details.govSupportFunds ? '亿' : ''}}</span></h4>
<h4 v-else>
--
</h4>
<p>政府安排资金</p> <p>政府安排资金</p>
</div> </div>
<img class="img" src="@/assets/images/financing/icon8.png" /> <img class="img" src="@/assets/images/financing/icon8.png" />
...@@ -101,33 +74,27 @@ ...@@ -101,33 +74,27 @@
<div class="main3-box"> <div class="main3-box">
<p> <p>
<label class="label">项目总收益/项目总债务融资本息(覆盖倍数)</label> <label class="label">项目总收益/项目总债务融资本息(覆盖倍数)</label>
<span v-if="textList.econData_007">{{textList.econData_007}}</span> <span>{{details.econData007 || '-'}}{{details.econData007 ? '倍' : ''}}</span>
<span v-else>--</span>
</p> </p>
<p> <p>
<label class="label">项目总收益/项目总地方债券融资本息</label> <label class="label">项目总收益/项目总地方债券融资本息</label>
<span v-if="textList.econData_008">{{textList.econData_008}}</span> <span>{{details.econData008 || '-'}}{{details.econData008 ? '倍' : ''}}</span>
<span v-else>--</span>
</p> </p>
<p> <p>
<label class="label">项目总收益/项目总投资</label> <label class="label">项目总收益/项目总投资</label>
<span v-if="textList.econData_009">{{textList.econData_009}}</span> <span>{{details.econData009 || '-'}}{{details.econData009 ? '倍' : ''}}</span>
<span v-else>--</span>
</p> </p>
<p> <p>
<label class="label">项目总收益/项目总地方债券融资本金</label> <label class="label">项目总收益/项目总地方债券融资本金</label>
<span v-if="textList.econData_010">{{textList.econData_010}}</span> <span>{{details.econData010 || '-'}}{{details.econData010 ? '倍' : ''}}</span>
<span v-else>--</span>
</p> </p>
<p> <p>
<label class="label">项目总收益/项目总债务融资本金</label> <label class="label">项目总收益/项目总债务融资本金</label>
<span v-if="textList.econData_011">{{textList.econData_011}}</span> <span>{{details.econData011 || '-'}}{{details.econData011 ? '倍' : ''}}</span>
<span v-else>--</span>
</p> </p>
<p> <p>
<label class="label">项目预测总收益</label> <label class="label">项目预测总收益</label>
<span v-if="textList.projectForecastTotalRevenue">{{textList.projectForecastTotalRevenue}}亿元</span> <span>{{details.projectForecastTotalRevenue || '-'}}{{details.projectForecastTotalRevenue ? '亿' : ''}}</span>
<span v-else>--</span>
</p> </p>
</div> </div>
</div> </div>
...@@ -135,264 +102,216 @@ ...@@ -135,264 +102,216 @@
<div class="common-title">项目当事人</div> <div class="common-title">项目当事人</div>
<div class="main4-box"> <div class="main4-box">
<label class="label">项目主体</label> <label class="label">项目主体</label>
<span> <span>{{details.projectEntity || '-'}}</span>
<router-link v-if="textList.projectEntity" :to="textList.projectEntityUipId?'/enterprise/' + encodeStr(textList.projectEntityId) :'/company/' + encodeStr(textList.projectEntityId) " tag="a" class="list-titel-a blue" v-html="textList.projectEntity"></router-link>
<template v-else>--</template>
</span>
<label class="label">主管部门</label> <label class="label">主管部门</label>
<span>{{textList.chargeDepartment||'--'}}</span> <span>{{details.chargeDepartment || '-'}}</span>
<label class="label">实施单位</label> <label class="label">实施单位</label>
<span> <span>{{details.piu || '-'}}</span>
<router-link v-if="textList.piu" :to="textList.piuUipId?'/enterprise/' +encodeStr(textList.piuId):'/company/' + encodeStr(textList.piuId) " tag="a" class="list-titel-a blue" v-html="textList.piu"></router-link>
<template v-else>--</template>
</span>
</div> </div>
</div> </div>
<div class="content main5"> <div class="content main5">
<div class="common-title">专项债</div> <div class="common-title">专项债</div>
<div class="table-item"> <div class="table-item">
<el-table :data="tableData" element-loading-text="Loading" border fit highlight-current-row> <el-table
<el-table-column prop="name" label="债券简称"> :data="tableData"
<template slot-scope="scope"> element-loading-text="Loading"
{{ scope.row.bondAbbreviation}} border
</template> fit
highlight-current-row
>
<el-table-column prop="bondAbbreviation" label="债券简称">
<!--<template slot-scope="scope">-->
<!--<router-link :to="'/macro/financing/details/'+ scope.row.id" tag="a" class="a-link">{{ scope.row.bondAbbreviation}}</router-link>-->
<!--</template>-->
</el-table-column> </el-table-column>
<el-table-column prop="tenderDate" label="招标日期" width="220" /> <el-table-column label="招标日期" width="220">
<el-table-column prop="actualBondIssueScale" label="专项债规模(亿)" width="260" />
<el-table-column prop="isUsedProjectScale" label="用于项目规模(亿)" width="260" />
<el-table-column label="是否资本金" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.isUsedCapital==1"></span> {{formatDate(scope.row.tenderDate)}}
<span v-else-if="scope.row.isUsedCapital==2"></span>
<span v-else>--</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="actualBondIssueScale" label="专项债规模(亿)" width="260" :formatter="formatStatus"/>
<el-table-column prop="isUsedProjectScale" label="用于项目规模(亿)" width="260" :formatter="formatStatus"/>
<el-table-column prop="isUsedCapital" label="是否资本金" width="200" :formatter="formatStatus"/>
</el-table> </el-table>
<div class="pagination clearfix" v-show="total>0">
<el-pagination background :page-size="pageSize" :current-page="pageNum"
@current-change="handleCurrentChange" layout="prev, pager, next" :total="total">
</el-pagination>
</div> </div>
</div> </div>
</div> </div>
</div> </template>
</template>
<script> <script>
import { import { details,bondPage } from '@/api/macro/macro'
encodeStr
} from "@/assets/js/common.js"
import api from '@/api/radar/radar.js';
export default { export default {
name: 'debtProjectDetails', name: 'debtProjectDetails',
data() { data() {
return { return {
encodeStr, id:'',
id: '', tableData:[],
tableData: [], details:{},
"pageNum": 1, tableLoading: false,
"pageSize": 10, pageIndex: 1,
total: 0, pageSize: 10,
textList: {} tableDataTotal: 1,
} }
}, },
created() { created() {
this.id = this.$route.params.id; this.id=this.$route.params.id;
this.specialDebtPage(); this.getDetails()
this.specialDebtProjectDetail();
}, },
methods: { methods: {
specialDebtProjectDetail() { getDetails(){
api.specialDebtProjectDetail({ details({id:this.id}).then(res => {
id: this.id this.details=res.data;
}).then(res => { this.getData()
// console.log(res); })
this.textList = res.data;
console.log(this.textList);
}).catch(error => {
});
}, },
handleCurrentChange(pageNum) { getData(){
this.pageNum = pageNum; // const params = { pageNum: this.pageIndex, pageSize: this.pageSize,specialBondUuid:'2e59fca0-21a6-47db-975d-5481e1c52f45_74'}
this.search(pageNum, this.pageSize); const params = { pageNum: this.pageIndex, pageSize: this.pageSize,specialBondUuid:this.details.specialBondUuid}
bondPage(params).then(res => {
this.tableData=res.data.list;
this.tableDataTotal=res.data.totalCount;
})
},
formatDate(cellValue) {
if (cellValue == null || cellValue == "") return "";
var date = new Date(cellValue)
var year = date.getFullYear()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
// var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
// var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
// var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
// return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
return year + '-' + month + '-' + day
},
formatStatus: function(row, column, cellValue) {
return cellValue? cellValue : '-'
}, },
specialDebtPage(pageNum, pageSize) {
if (!pageNum) {
this.pageNum = 1;
}
if (!pageSize) {
this.pageSize = 20;
}
var data = {
id: this.id,
pageNum: this.pageNum,
pageSize: this.pageSize
}
api.specialDebtPage(data).then(res => {
// console.log(res);
this.tableData = res.rows;
this.total = res.total;
console.log(this.tableData);
}).catch(error => {
});
}
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.app-container { .app-container{
padding: 0; padding: 0;
} }
.qyzx-details{
.qyzx-details { .tab{
.tab {
font-size: 12px; font-size: 12px;
color: #A1A1A1; color:#A1A1A1;
span{
span { color:#232323;
color: #232323;
} }
} }
.content{
.content {
margin-top: 16px; margin-top: 16px;
background: #FFFFFF; background: #FFFFFF;
padding: 16px; padding: 16px;
border-radius: 4px; border-radius: 4px;
} }
.common-title{
.common-title {
margin-bottom: 8px; margin-bottom: 8px;
} }
.main1{
.main1 { .cont-title{
.title {
display: inline-flex;
color: #232323; color: #232323;
font-size: 16px; font-size: 16px;
line-height: 28px; line-height: 28px;
font-weight: bold; font-weight: bold;
margin-bottom: 8px; margin-bottom: 8px;
text-align: left; text-align: left;
padding: 0px; img{
border: none;
img {
width: 28px; width: 28px;
height: 28px; height: 28px;
margin-bottom: -9px; // margin-bottom: -9px;
margin-right: 17px; margin-right: 17px;
} }
} }
p{
p {
color: #3D3D3D; color: #3D3D3D;
font-size: 14px; font-size: 14px;
margin: 0; margin: 0;
} }
} }
.main2{
.main2 { .list{
.list {
display: flex; display: flex;
margin: 16px 0; margin: 16px 0;
} }
.item{
.item {
width: 24.5%; width: 24.5%;
margin-right: 16px; margin-right: 16px;
height: 100px; height: 100px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
border-radius: 8px; border-radius: 8px;
.item-left{
.item-left {
margin-left: 16px; margin-left: 16px;
margin-top: 24px; margin-top: 24px;
h4{
h4 {
color: #232323; color: #232323;
font-size: 22px; font-size: 22px;
line-height: 22px; line-height: 22px;
font-weight: bold; font-weight: bold;
margin: 0; margin: 0;
span{
span {
font-weight: 400; font-weight: 400;
margin-left: 4px; margin-left: 4px;
font-size: 18px; font-size: 18px;
} }
} }
p{
p {
margin: 0; margin: 0;
color: #3D3D3D; color: #3D3D3D;
font-size: 14px; font-size: 14px;
padding-top: 8px; padding-top: 8px;
} }
} }
.img{
.img {
width: 56px; width: 56px;
height: 56px; height: 56px;
margin-top: 22px; margin-top: 22px;
margin-right: 12px; margin-right: 12px;
} }
} }
.color1{
.color1 { background: rgba(246,190,59,0.08);
background: rgba(246, 190, 59, 0.08); border: 1px solid rgba(246,190,59,0.2);
border: 1px solid rgba(246, 190, 59, 0.2);
} }
.color2{
.color2 { background: rgba(148,216,196,0.102);
background: rgba(148, 216, 196, 0.102); border: 1px solid rgba(73,187,154,0.1);
border: 1px solid rgba(73, 187, 154, 0.1);
} }
.color3{
.color3 { background: rgba(57,100,199,0.06);
background: rgba(57, 100, 199, 0.06); border: 1px solid rgba(57,100,199,0.1);
border: 1px solid rgba(57, 100, 199, 0.1);
} }
.color4{
.color4 { background: rgba(0,129,255,0.04);
background: rgba(0, 129, 255, 0.04); border: 1px solid rgba(0,129,255,0.1);
border: 1px solid rgba(0, 129, 255, 0.1);
} }
} }
.main3{
.main3 { .main3-box{
.main3-box {
margin-top: 22px; margin-top: 22px;
p{
p {
margin: 0; margin: 0;
display: inline-flex; display: inline-block;
width: 50%; width: 50%;
border-top: 1px solid #E6E9F0; border-top: 1px solid #E6E9F0;
border-left: 1px solid #E6E9F0; border-left: 1px solid #E6E9F0;
} }
p:nth-child(2n){
p:nth-child(2n) {
border-right: 1px solid #E6E9F0; border-right: 1px solid #E6E9F0;
} }
p:nth-child(5){
p:nth-child(5) {
border-bottom: 1px solid #E6E9F0; border-bottom: 1px solid #E6E9F0;
} }
p:last-child{
p:last-child {
border-bottom: 1px solid #E6E9F0; border-bottom: 1px solid #E6E9F0;
} }
.label{
.label {
width: 60%; width: 60%;
background: #F0F3FA; background: #F0F3FA;
display: inline-block; display: inline-block;
...@@ -401,11 +320,10 @@ ...@@ -401,11 +320,10 @@
border-right: 1px solid #E6E9F0; border-right: 1px solid #E6E9F0;
line-height: 40px; line-height: 40px;
font-size: 12px; font-size: 12px;
color: rgba(35, 35, 35, 0.8); color: rgba(35,35,35,0.8);
padding-left: 12px; padding-left: 12px;
} }
span{
span {
width: 40%; width: 40%;
display: inline-block; display: inline-block;
height: 40px; height: 40px;
...@@ -415,13 +333,10 @@ ...@@ -415,13 +333,10 @@
} }
} }
} }
.main4{
.main4 { .main4-box{
.main4-box {
margin-top: 22px; margin-top: 22px;
display: flex; .label{
.label {
width: 14%; width: 14%;
background: #F0F3FA; background: #F0F3FA;
border: 1px solid #E6E9F0; border: 1px solid #E6E9F0;
...@@ -429,11 +344,10 @@ ...@@ -429,11 +344,10 @@
height: 40px; height: 40px;
line-height: 40px; line-height: 40px;
font-size: 12px; font-size: 12px;
color: rgba(35, 35, 35, 0.8); color: rgba(35,35,35,0.8);
padding-left: 12px; padding-left: 12px;
} }
span{
span {
width: 19%; width: 19%;
display: inline-block; display: inline-block;
height: 40px; height: 40px;
...@@ -442,30 +356,18 @@ ...@@ -442,30 +356,18 @@
border-bottom: 1px solid #E6E9F0; border-bottom: 1px solid #E6E9F0;
padding-left: 12px; padding-left: 12px;
font-size: 12px; font-size: 12px;
.blue{
color: #0081FF;
}
} }
span:last-child{
span:last-child {
width: 20%; width: 20%;
border-right: 1px solid #E6E9F0; border-right: 1px solid #E6E9F0;
} }
} }
} }
.main5{
.main5 { .table-item{
.table-item {
margin-top: 22px; margin-top: 22px;
.pagination {
padding: 14px;
.el-pagination {
float: right;
} }
} }
} }
} </style>
}
</style> \ No newline at end of file
\ No newline at end of file
package com.dsk.system.domain.dsk.dto;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 集团户相关查询条件实体类
*
* @author lcl
* @create 2023/8/7
*/
@Data
public class JskCombineSearchDto implements Serializable {
/**
* 集团id
*/
@NotNull(message = "集团id不能为空!")
private String combineId;
/**
* 筛选参数
*/
private String searchValue;
/**
* 集团层级
*/
private String combineMemberLevel;
/**
* 省id
*/
private List<Integer> provinceIds;
/**
* 市id
*/
private List<Integer> cityIds;
/**
* 区id
*/
private List<Integer> districtIds;
/**
* 最大金额
*/
private Integer maxAmount;
/**
* 最小金额
*/
private Integer minAmount;
/**
* 业务类型
*/
private String businessType;
/**
* 科技型企业类型
*/
private List<String> companyTypes;
/**
* 企业类型
*/
private String companyType;
/**
* 最大持股比例
*/
private Double maxStockPercent;
/**
* 最小持股比例
*/
private Double minStockPercent;
/**
* 中标时间(开始)
*/
private Date startBidTime;
/**
* 中标时间(结束)
*/
private Date endBidTime;
/**
* 业绩类型
*/
private List<String> boundTypes;
/**
* 项目类型
*/
private List<String> projectTypes;
/**
* 页码
*/
private Integer pageNum;
/**
* 每页条数
*/
private Integer pageSize;
}
...@@ -415,22 +415,34 @@ public class EnterpriseService { ...@@ -415,22 +415,34 @@ public class EnterpriseService {
if (!ObjectUtils.isEmpty(map.get("data"))) { if (!ObjectUtils.isEmpty(map.get("data"))) {
result.put("companyId", MapUtil.getInt(BeanUtil.beanToMap(map.get("data")), "jskEid")); result.put("companyId", MapUtil.getInt(BeanUtil.beanToMap(map.get("data")), "jskEid"));
} }
if (!ObjectUtil.isEmpty(result.get("companyId"))) { result.put("uipId", this.getUipIdByCompanyNameOrCompanyId(companyName, MapUtils.getInteger(result, "companyId")));
R res = this.getUipIdByCid(Collections.singletonList(MapUtils.getInteger(result,"companyId"))); } catch (Exception e) {
log.debug("获取企业id错误!error:{}", e.getMessage());
}
return result;
}
//企业uipId
public String getUipIdByCompanyNameOrCompanyId(String companyName, Integer companyId) {
try {
String uipId = null;
if (!ObjectUtil.isEmpty(companyId)) {
R res = this.getUipIdByCid(Collections.singletonList(companyId));
if (!ObjectUtils.isEmpty(res.getData())) { if (!ObjectUtils.isEmpty(res.getData())) {
List<Map<String, Object>> data = (List<Map<String, Object>>) res.getData(); List<Map<String, Object>> data = (List<Map<String, Object>>) res.getData();
result.put("uipId", MapUtil.getStr(BeanUtil.beanToMap(data.get((0))), "uipId")); uipId = MapUtil.getStr(BeanUtil.beanToMap(data.get((0))), "uipId");
} }
} }
if (ObjectUtil.isEmpty(result.get("uipId"))) { if (ObjectUtil.isEmpty(uipId)) {
R res = this.getUipId(companyName); R res = this.getUipId(companyName);
if (!ObjectUtils.isEmpty(res.getData())) { if (!ObjectUtils.isEmpty(res.getData())) {
result.put("uipId", MapUtil.getStr(BeanUtil.beanToMap(res.getData()), "uipId")); uipId = MapUtil.getStr(BeanUtil.beanToMap(res.getData()), "uipId");
} }
} }
return uipId;
} catch (Exception e) { } catch (Exception e) {
log.debug("获取企业id错误!error:{}", e.getMessage()); log.debug("获取企业uipId错误!error:{}", e.getMessage());
} }
return result; return null;
} }
} }
package com.dsk.system.dskService;
import cn.hutool.core.bean.BeanException;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.domain.dsk.dto.JskCombineSearchDto;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.apache.ibatis.util.MapUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.List;
import java.util.Map;
/**
* @author lcl
* @create 2023/8/7
*/
@Slf4j
@Service
public class JskCombineInfoService {
@Autowired
private DskOpenApiUtil dskOpenApiUtil;
@Autowired
private EnterpriseService enterpriseService;
public TableDataInfo memberList(JskCombineSearchDto dto) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/memberList", BeanUtil.beanToMap(dto, false, false));
return dskOpenApiUtil.responsePage(map);
}
public R groupMemberCount(JskCombineSearchDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/group/memberCount", BeanUtil.beanToMap(dto, false, false));
return BeanUtil.toBean(map, R.class);
}
public TableDataInfo businessList(JskCombineSearchDto dto) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/operate/combine/businessList", 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));
Integer projectUnitId = MapUtils.getInteger(res, "projectUnitId");
String projectUnit = MapUtils.getString(res, "projectUnit");
res.put("projectUnitUipId", enterpriseService.getUipIdByCompanyNameOrCompanyId(projectUnit, projectUnitId));
});
}
}
return dskOpenApiUtil.responsePage(map);
}
}
...@@ -80,13 +80,38 @@ public class MarketAnalysisService { ...@@ -80,13 +80,38 @@ public class MarketAnalysisService {
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
public AjaxResult countLandMarketByType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countLandMarketByType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult countBidGroupByProvince(JSONObject object) { public AjaxResult countBidGroupByProvince(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countBidGroupByProvince", object); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countBidGroupByProvince", object);
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
public AjaxResult countLandMarketByType(JSONObject object) { public AjaxResult countBidByType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countLandMarketByType", object); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/countBidByType", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult rangeBidMoney(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/rangeBidMoney", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult rangeBidFiveYears() {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/rangeBidFiveYears", null);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult lowerRateByYear(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/lowerRateByYear", object);
return BeanUtil.toBean(map, AjaxResult.class);
}
public AjaxResult lowerRangeTenderType(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/marketAnalysis/lowerRangeTenderType", object);
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
} }
...@@ -148,7 +148,9 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -148,7 +148,9 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
BusinessLikeProjectNameListVo vo = new BusinessLikeProjectNameListVo(); BusinessLikeProjectNameListVo vo = new BusinessLikeProjectNameListVo();
vo.setProjectName(StringUtils.markInRed(MapUtil.getStr(map, "projectName"), dto.getProjectName())); vo.setProjectName(StringUtils.markInRed(MapUtil.getStr(map, "projectName"), dto.getProjectName()));
vo.setCompanyName(MapUtil.getStr(map, "tenderee")); vo.setCompanyName(MapUtil.getStr(map, "tenderee"));
vo.setInvestmentAmount(Double.parseDouble(MapUtil.getStr(map, "projectContractAmount"))); if (null!=map.get("projectContractAmount")&&ObjectUtil.isNotEmpty(map.get("projectContractAmount"))){
vo.setInvestmentAmount(MapUtil.getDouble(map, "projectContractAmount"));
}
vo.setProjectType(MapUtil.getStr(map, "projectType")); vo.setProjectType(MapUtil.getStr(map, "projectType"));
vo.setProjectCategory(MapUtil.getStr(map, "projectPurposes")); vo.setProjectCategory(MapUtil.getStr(map, "projectPurposes"));
vos.add(vo); vos.add(vo);
...@@ -156,7 +158,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService { ...@@ -156,7 +158,7 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error("模糊查询项目名称调用失败!"); log.error("模糊查询项目名称调用失败!",e);
} }
return vos; return vos;
......
...@@ -83,25 +83,7 @@ public class CustomerServiceImpl implements ICustomerService { ...@@ -83,25 +83,7 @@ public class CustomerServiceImpl implements ICustomerService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean add(Customer customer) { public boolean add(Customer customer) {
dealWithcustomerData(customer); dealWithcustomerData(customer);
if (ObjectUtils.isEmpty(customer.getUipId())) { customer.setUipId(enterpriseService.getUipIdByCompanyNameOrCompanyId(customer.getCompanyName(), customer.getCompanyId()));
try {
List<Integer> list = new ArrayList<>();
list.add(customer.getCompanyId());
R res = enterpriseService.getUipIdByCid(list);
if (!ObjectUtils.isEmpty(res.getData())) {
List<Map<String, Object>> data = (List<Map<String, Object>>) res.getData();
customer.setUipId(MapUtil.getStr(BeanUtil.beanToMap(data.get((0))), "uipId"));
}
if (ObjectUtils.isEmpty(customer.getUipId())) {
res = enterpriseService.getUipId(customer.getCompanyName());
if (!ObjectUtils.isEmpty(res.getData())) {
customer.setUipId(MapUtil.getStr(BeanUtil.beanToMap(res.getData()), "uipId"));
}
}
} catch (Exception e) {
log.error("获取城投平台企业id错误!error:{}", e.getMessage());
}
}
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
customer.setCreateId(userId); customer.setCreateId(userId);
customer.setUpdateId(userId); customer.setUpdateId(userId);
......
...@@ -40,29 +40,25 @@ public class EconomicServiceImpl implements EconomicService { ...@@ -40,29 +40,25 @@ public class EconomicServiceImpl implements EconomicService {
*/ */
private static final Integer TYPE = 1; private static final Integer TYPE = 1;
/**
* 默认排序
*/
private static final String FIELD = "gdp";
private static final String ORDER = "desc";
@Override @Override
public AjaxResult nationalPage(OpRegionalEconomicDataV1PageDto dto) { public AjaxResult nationalPage(OpRegionalEconomicDataV1PageDto dto) {
if (ObjectUtil.isEmpty(dto.getYear())) { if (ObjectUtil.isEmpty(dto.getYear())) {
dto.setYear(DateUtils.getYear() - 1); dto.setYear(DateUtils.getYear() - 1);
} }
String redisKey = CacheConstants.DATA_ECONOMIC + dto.getYear() + dto.getProvinceIds() + dto.getCityIds() + dto.getAreaIds();
Map<String, Object> cacheMap = redisCache.getCacheObject(redisKey);
if (ObjectUtil.isNotEmpty(cacheMap)) {
return BeanUtil.toBean(cacheMap, AjaxResult.class);
}
Map<String, Object> map = dskOpenApiUtil.requestBody("/economic/national/nationalPage", BeanUtil.beanToMap(dto, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/economic/national/nationalPage", BeanUtil.beanToMap(dto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300); Integer code = MapUtils.getInteger(map, "code", 300);
if (!code.equals(HttpStatus.OK.value())) { if (!code.equals(HttpStatus.OK.value())) {
throw new RuntimeException(); throw new RuntimeException();
} }
Map data = MapUtils.getMap(map, "data", null);
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", ""));
if (ObjectUtil.isNotEmpty(list) && TYPE.equals(dto.getType())) {
if (ObjectUtil.isEmpty(dto.getProvinceIds()) && ObjectUtil.isEmpty(dto.getCityIds()) && ObjectUtil.isEmpty(dto.getAreaIds())) {
redisCache.setCacheObject(redisKey, map);
}
}
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
......
...@@ -73,7 +73,7 @@ public class RegionalEnterprisesServiceImpl implements RegionalEnterprisesServic ...@@ -73,7 +73,7 @@ public class RegionalEnterprisesServiceImpl implements RegionalEnterprisesServic
List<Map<String, Object>> companyNameList = (List<Map<String, Object>>)MapUtils.getObject(topSupplierMap, "data", null); List<Map<String, Object>> companyNameList = (List<Map<String, Object>>)MapUtils.getObject(topSupplierMap, "data", null);
for (Map<String, Object> comMap : companyNameList) { for (Map<String, Object> comMap : companyNameList) {
Integer id = MapUtils.getInteger(comMap, "id", 0); Integer id = MapUtils.getInteger(comMap, "id", 0);
if (id.equals(topCustomerId)) { if (id.equals(topSupplierId)) {
String companyName = MapUtils.getString(comMap, "companyName", null); String companyName = MapUtils.getString(comMap, "companyName", null);
companyMap.put("topSupplier", companyName); companyMap.put("topSupplier", companyName);
} }
......
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