Commit e2adff84 authored by danfuman's avatar danfuman
parents 179af76b 5f0f2b4b
......@@ -96,7 +96,7 @@ public class BusinessFileController extends BaseController {
// 上传并返回文件全路径
String fileName = FileUploadUtils.upload(filePath, file);
String url = serverConfig.getUrl() + fileName;
// String url = serverConfig.getUrl() + fileName;
AjaxResult ajax = AjaxResult.success();
ajax.put("url", fileName);
return ajax;
......
......@@ -133,10 +133,6 @@ public class BusinessOpportunityRadarController {
*/
@RequestMapping("/bidSourceList")
public AjaxResult bidSourceList(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return opportunityRadarService.bidSourceList(object);
}
}
package com.dsk.web.controller.search.controller;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto;
......@@ -46,14 +47,11 @@ public class CompanySearchController {
* 完全匹配企业名称
*/
@PostMapping("/page")
public AjaxResult page(@RequestBody ComposeQueryDto compose) {
public AjaxResult page(@RequestBody JSONObject object) {
ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
compose.getPage().setPage(compose.getPageNum());
compose.getPage().setLimit(compose.getPageSize());
compose.getPage().setField(compose.getField());
compose.getPage().setOrder(compose.getOrder());
return opportunityRadarService.enterprisePage(compose);
return opportunityRadarService.enterprisePage(object);
}
}
......@@ -26,7 +26,7 @@ public interface BusinessOpportunityRadarService {
AjaxResult enterpriseByName(String keyword);
AjaxResult enterprisePage(ComposeQueryDto compose);
AjaxResult enterprisePage(JSONObject object);
AjaxResult bondProjectPage( JSONObject object);
......
......@@ -63,8 +63,8 @@ public class BusinessOpportunityRadarServiceImpl implements BusinessOpportunityR
}
@Override
public AjaxResult enterprisePage(ComposeQueryDto compose) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page",BeanUtil.beanToMap(compose, false, false));
public AjaxResult enterprisePage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page",object);
return BeanUtil.toBean(map, AjaxResult.class);
}
......
......@@ -20,6 +20,7 @@ let keywordList = function keywordList(param) {
return request({
url: '/radar/keywordList',
method: 'post',
data: param
})
}
......
......@@ -270,12 +270,15 @@ ul, li {
.table-item{
width: 100%;
.el-table{
font-size: 12px;
font-size: 13px;
color: #232323;
th{
font-size: 12px !important;
font-size: 13px !important;
font-weight: 400 !important;
}
td{
font-size: 13px;
}
.cell{
padding-right: 12px !important;
padding-left: 12px !important;
......@@ -384,21 +387,13 @@ ul, li {
}
.common-title{
border-left: 2px solid #445781;
padding-left: 8px;
font-size: 16px;
color: #232323;
height: 16px;
line-height: 16px;
font-weight: 700;
line-height: 0.9;
position: relative;
padding: 0 0 0 8px;
&:before{
position: absolute;
left: 0;
top: 0;
width: 2px;
height: 14px;
background: #445781;
content:"";
}
color: #232323;
}
.pagination-box{
......
......@@ -282,7 +282,7 @@
.el-table .el-table__header-wrapper th,.el-table th.el-table__cell.is-leaf{
color: #4f4f4f;
background: #F0F3FA;
font-size: 12px;
font-size: 13px;
font-weight: 400;
}
.el-table__fixed::before{
......@@ -306,7 +306,7 @@
line-height: 20px;
padding: 0 12px;
color: #232323;
font-size: 12px;
font-size: 13px;
}
.el-table--border .el-table__cell{
border-color: #E6EAF1;
......@@ -897,7 +897,7 @@
}
.el-table__header-wrapper th{
background: #FFFFFF;
font-size: 12px;
font-size: 13px;
opacity: 0.8;
font-weight: 400;
}
......
......@@ -1126,3 +1126,6 @@ select {
.performance_pagination_wrap .common-pagination {
margin-top: 16px;
}
.table-item .el-table tr,.table-item .el-table td{
font-size: 13px;
}
\ No newline at end of file
......@@ -126,25 +126,25 @@ export default {
}
}).catch(error => {
});
this.dialogVisible = true;
if(localStorage.getItem("keyword")){
this.keywordList = JSON.parse(localStorage.getItem("keyword"));
this.options = this.keywordList;
this.content = this.keywordList[this.activeIndex].content;
this.dialogVisible = true;
}else{
api.keywordList().then(res => {
console.log(res);
if(res.code==200){
this.keywordList = res.data
this.options = res.data
localStorage.setItem("keyword",JSON.stringify(res.data.data))
this.content = this.keywordList[this.activeIndex].content;
this.dialogVisible = true;
}
}).catch(error => {
});
}
// this.dialogVisible = true;
// if(localStorage.getItem("keyword")){
// this.keywordList = JSON.parse(localStorage.getItem("keyword"));
// this.options = this.keywordList;
// this.content = this.keywordList[this.activeIndex].content;
// this.dialogVisible = true;
// }else{
// api.keywordList().then(res => {
// console.log(res);
// if(res.code==200){
// this.keywordList = res.data
// this.options = res.data
// localStorage.setItem("keyword",JSON.stringify(res.data.data))
// this.content = this.keywordList[this.activeIndex].content;
// this.dialogVisible = true;
// }
// }).catch(error => {
// });
// }
},
},
......
......@@ -4,8 +4,8 @@
<tags-view />
</div>
<div ref="rightMenu" class="flex-box right-menu">
<!--<div class="menu-bells"><img src="@/assets/images/message.png"><i /></div>-->
<i class="menu-line" />
<!-- <div class="menu-bells"><img src="@/assets/images/message.png"><i /></div>-->
<!-- <i class="menu-line" />-->
<el-dropdown class="avatar-container" trigger="hover">
<div class="flex-box avatar-wrapper">
<img v-if="avatar" class="pic-avatar" :src="avatar">
......
......@@ -355,9 +355,9 @@ export default {
transition: all .3s cubic-bezier(.645, .045, .355, 1);
transform-origin: 100% 50%;
&:before {
transform: scale(.6);
transform: scale(.95);
display: inline-block;
vertical-align: -3px;
vertical-align: -2.5px;
}
}
}
......
......@@ -100,8 +100,7 @@ service.interceptors.response.use(res => {
} else {
return res.data
}
},
error => {
},error => {
console.log('err' + error)
let { message } = error;
if (message == "Network Error") {
......
......@@ -16,7 +16,7 @@
</div>
<div class="table_search">
<div class="searchInput">
<el-input type="text" clearable v-model="searchParam.companyName" placeholder="输入企业名称查询"></el-input>
<el-input type="text" clearable v-model="searchParam.companyName" @change="clearname" placeholder="输入企业名称查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div>
<div class="dc">
......@@ -338,6 +338,11 @@ export default {
let path = type
this.$router.push({path:'/enterprise/'+encodeStr(companyId),query:{customerId:customerId,path:path}})
},
clearname(value){
if(value == ""){
this.handleCurrentChange(1)
}
},
//翻页
handleCurrentChange(val) {
this.pldr=false
......@@ -382,6 +387,7 @@ export default {
}
},
selCompany(item){
console.log(item)
this.queryParam.companyId = item.jskEid
this.queryParam.companyName = item.name.replace(/<[^>]+>/g, '')
this.queryParam.legalPerson = item.legalPerson
......@@ -404,8 +410,15 @@ export default {
list.push(item.cityId)
if(item.districtId != null && item.districtId != "")
list.push(item.districtId)
this.queryParam.address = list
this.queryParam.registerAddress = item.registerAddress
this.$nextTick(()=>{
this.queryParam.address = list
let _this = this
setTimeout(function() {
if(_this.$refs.address){
_this.queryParam.registerAddress = _this.$refs.address.getCheckedNodes()[0].pathLabels.join("-")
}
},1000)
})
this.showlist = false
},
//添加客户
......@@ -415,6 +428,8 @@ export default {
//
// return;
// }
console.log(this.queryParam)
return false
this.$refs[formName].validate((valid) => {
if (valid) {
addCustomer(this.queryParam).then(result=>{
......@@ -546,7 +561,7 @@ export default {
width: 270px;
}
.ps3{
width: 150px;
width: 155px;
display: flex;
justify-content: right;
>div{
......@@ -572,4 +587,9 @@ export default {
.app-container{
height: auto;
}
.searchInput{
.el-input{
width: 260px;
}
}
</style>
......@@ -408,7 +408,7 @@ export default {
let labels = []
switch (type) {
case 1:
time = time.getDay()
time = time.getDay()== 0?7:time.getDay()
// week.length = time
weekdata.length = time
for(var i=0;i<7;i++){
......
......@@ -4,6 +4,7 @@
<el-breadcrumb separator="/">
<el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
<el-breadcrumb-item :to="{ path: fromPath }" v-if="fromName">{{fromName}}</el-breadcrumb-item>
<el-breadcrumb-item v-if="cooDetail"><el-link :underline="false" @click="cooperateList">合作情况</el-link></el-breadcrumb-item>
<!-- <el-breadcrumb-item :to="{ path: '/enterpriseData?tag=1' }">查企业</el-breadcrumb-item>-->
<el-breadcrumb-item>{{companyInfo.simpleName || companyInfo.companyName || '--'}}</el-breadcrumb-item>
</el-breadcrumb>
......@@ -18,7 +19,7 @@
<script>
export default {
name: 'Header',
props: ['companyId', 'companyInfo', 'fromPath', 'fromName'],
props: ['companyId', 'companyInfo', 'fromPath', 'fromName', 'cooDetail'],
data() {
return {
}
......@@ -26,6 +27,10 @@ export default {
created() {
},
methods: {
// 跳转到企业详情合作情况
cooperateList(){
this.$emit('close-detail')
},
}
}
</script>
......
......@@ -125,7 +125,7 @@ export default {
this.$emit('sort-change',e)
},
flexWidth(tableData) {
let currentMax = this.queryParams.pageNum*this.queryParams.pageSize - this.queryParams.pageSize + tableData.length, wdth = 50
let currentMax = this.queryParams.pageNum*this.queryParams.pageSize - this.queryParams.pageSize + tableData.length, wdth = 55
// return currentMax.toString().length*25 + 'px'
if(currentMax.toString().length>3){
wdth = wdth + (currentMax.toString().length-3)*10
......
......@@ -78,7 +78,7 @@ export default {
border-right: 1px solid #e5e9f5;
border-bottom: 1px solid #e5e9f5;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-size: 12px;
font-size: 13px;
}
.infoTable-form-view {
width: 100%;
......@@ -87,7 +87,7 @@ export default {
border-right: 1px solid #e5e9f5;
border-bottom: 1px solid #e5e9f5;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-size: 12px;
font-size: 13px;
}
.infoTable-form-row {
width: 33%;
......@@ -96,13 +96,13 @@ export default {
border-right: 1px solid #e5e9f5;
border-bottom: 1px solid #e5e9f5;
font-family: Microsoft YaHei-Regular, Microsoft YaHei;
font-size: 12px;
font-size: 13px;
}
::v-deep .el-form-item__label {
height: 100%;
background-color: #F0F3FA;
padding: 8px 12px 8px 12px;
font-size: 12px;
font-size: 13px;
font-weight: normal;
color: rgba(35,35,35,0.8);
display: flex;
......@@ -111,7 +111,7 @@ export default {
}
::v-deep .el-form-item__content {
padding-left: 12px;
font-size: 12px;
font-size: 13px;
color: #232323;
}
::v-deep .el-form-item__content {
......
......@@ -146,14 +146,14 @@ export default {
components: {
Detail
},
props: ['customerIds','companyInfo'],
props: ['customerIds','companyInfo','cooDetail'],
data() {
return {
ifEmpty:false,
queryParams: {
customerId: this.customerIds,
pageNum: 1,
pageSize: 10
pageSize: 20
},
forData: [
{label: '项目名称', prop: 'projectName', slot: true},
......@@ -222,6 +222,11 @@ export default {
isDetailId: false,
}
},
watch:{
cooDetail(newVal, oldVal){
this.isDetailId = newVal
}
},
created() {
this.list()
this.customerInfos()
......@@ -301,10 +306,6 @@ export default {
if (value.length>=2){
let param = {
projectName:value,
// page:{
// limit:20,
// page:1
// }
}
queryProject(JSON.stringify(param)).then(result=>{
if(result.code != 200)
......@@ -361,6 +362,7 @@ export default {
clickDetail(id){
this.detailId = id
this.isDetailId = true
this.$emit('detail')
},
//关闭详情
closeDetail(){
......@@ -369,7 +371,7 @@ export default {
},
// 转科学计算
numbers(v){
return new Number(v);
return Number(v);
}
}
......
......@@ -88,7 +88,7 @@ export default {
queryParams:{
customerId:this.customerIds,
pageNum:1,
pageSize:10,
pageSize:20,
},
forData: [
{label: '姓名', prop: 'name', width: '124'},
......@@ -96,7 +96,7 @@ export default {
{label: '公司/机关', prop: 'position', width: '268'},
{label: '职位', prop: 'workUnit', width: '110'},
{label: '联系方式', prop: 'contactInformation', width: '105'},
{label: '内部维护人', prop: 'updateBy', width: '88'},
{label: '内部维护人', prop: 'updateBy', width: '100'},
{label: '备注', prop: 'remark'},
],
addRorm: {
......
<template>
<div class="app-container part-container">
<Header :company-id="companyId" :companyInfo="companyInfo" :fromPath="fromPath" :fromName="fromName" v-if="companyId" />
<Header :company-id="companyId" :companyInfo="companyInfo" :fromPath="fromPath" :fromName="fromName" :cooDetail="cooDetail" v-if="companyId" @close-detail="closeDetail" />
<div class="flex-box part-main">
<div class="part-left">
<side-bar @currentPath="showPartPage" :pathName="currentPath.pathName" :partBoxHeight="partBoxHeight" :customerId="customerId" />
......@@ -46,7 +46,7 @@
<!-- 招标偏好 -->
<Preference v-if="currentPath.pathName=='preference'" :customer-ids="customerId" />
<!-- 合作情况 -->
<Cooperate v-if="currentPath.pathName=='cooperate'" :customer-ids="customerId" :companyInfo="companyInfo" />
<Cooperate v-if="currentPath.pathName=='cooperate'" :customer-ids="customerId" :companyInfo="companyInfo" :cooDetail="cooDetail" @detail="cooperateDetail" />
<!-- 决策链条 -->
<DecisionMaking v-if="currentPath.pathName=='decisionMaking'" :customer-ids="customerId" :companyInfo="companyInfo" />
<!-- 跟进记录 -->
......@@ -149,13 +149,19 @@ export default {
},
partBoxHeight: null,
fromPath: '',
fromName: ''
fromName: '',
cooDetail: false
}
},
beforeRouteEnter(to, from, next) {
next(vm => {
vm.fromPath = from.path
vm.fromName = from.meta.title
if(from.name == 'CustomList'){
if (to.query.path){
vm.currentPath.pathName = to.query.path
}
}
})
},
created() {
......@@ -173,14 +179,6 @@ export default {
mounted() {
},
activated(){
if (this.$route.query.path) { // 获取跳转对应板块
this.currentPath.pathName = this.$route.query.path
}else{
this.currentPath.pathName = 'overview'
}
if (this.$route.query.customerId) { // 判断是否显示
this.customerId = this.$route.query.customerId
}
},
methods: {
showPartPage(e){
......@@ -208,6 +206,12 @@ export default {
erd.listenTo(partBox, element => {
_this.partBoxHeight = partBox.offsetHeight
})
},
cooperateDetail(){
this.cooDetail = true
},
closeDetail(){
this.cooDetail = false
}
}
}
......
......@@ -48,18 +48,18 @@ export default {
pageSize: 20
},
forData: [
{label: '许可决定日期', prop: 'deciTime', width: '100'},
{label: '许可决定日期', prop: 'deciTime', width: '110'},
{label: '决定文书号', prop: 'deciWritNo', width: '200'},
{label: '许可编号', prop: 'permitNo', width: '100'},
{label: '决定文书名称', prop: 'deciWritName', width: '190', slot: true},
{label: '许可内容', prop: 'content', width: '300', slot: true},
{label: '有效期自', prop: 'valiBegin', width: '100'},
{label: '有效期至', prop: 'valiEnd', width: '100'},
{label: '行政许可类别', prop: 'permitType', width: '100'},
{label: '行政许可类别', prop: 'permitType', width: '110'},
{label: '许可机关', prop: 'office', width: '180'},
{label: '行政许可机关统一社会信用代码', prop: 'officeCreditCode', width: '200'},
{label: '行政许可机关统一社会信用代码', prop: 'officeCreditCode', width: '210'},
{label: '数据来源单位', prop: 'dataSourceOffice', width: '110'},
{label: '数据来源单位统一社会信用代码', prop: 'dataSourceOfficeCreditCode', width: '200'},
{label: '数据来源单位统一社会信用代码', prop: 'dataSourceOfficeCreditCode', width: '210'},
{label: '来源', prop: 'dataSource', width: '80'}
],
formData: [
......
......@@ -57,12 +57,12 @@ export default {
{label: '预算金额(万元)', prop: 'projectAmount', sortable: 'custom', descending: '1', ascending: '2', width: '140'},
{label: '项目地区', prop: 'province', width: '120', slot: true},
{label: '项目类别', prop: 'tenderStage', width: '90'},
{label: '招采单位联系人', prop: 'contact', width: '110'},
{label: '招采单位联系人', prop: 'contact', width: '120'},
{label: '招采单位联系方式', prop: 'contactTel', width: '130'},
{label: '代理单位', prop: 'agency', minWidth: '170'},
{label: '代理单位联系人', prop: 'agencyContact', width: '110'},
{label: '代理单位联系人', prop: 'agencyContact', width: '120'},
{label: '代理单位联系方式', prop: 'agencyContactTel', width: '130'},
{label: '报名截止日期', prop: 'overTime', width: '100'}
{label: '报名截止日期', prop: 'overTime', width: '110'}
],
formData: [
{ type: 7, fieldName: 'province', value: '',props: {multiple: true}, placeholder: '项目地区', options: []},
......
......@@ -52,7 +52,7 @@ export default {
forData: [
{label: '项目名称', prop: 'projectName', minWidth: '400', slot: true},
{label: '发布日期', prop: 'issueTime', sortable: 'custom', descending: '3', ascending: '4', width: '120'},
{label: '合同预估金额(万元)', prop: 'planTenderAmount', sortable: 'custom', descending: '1', ascending: '2', width: '160'},
{label: '合同预估金额(万元)', prop: 'planTenderAmount', sortable: 'custom', descending: '1', ascending: '2', width: '170'},
{label: '资金来源', prop: 'projecetCapitalSource', minWidth: '100'},
{label: '项目地区', prop: 'province', minWidth: '110', slot: true},
{label: '项目类型', prop: 'buildingProjectType', minWidth: '100'},
......
......@@ -49,8 +49,8 @@ export default {
defaultSort: {prop: 'projectTotalInvestment', order: 'descending'},
forData: [
{label: '项目名称', prop: 'projectName', minWidth: '300', slot: true},
{label: '项目总投资(亿元)', prop: 'projectTotalInvestment', sortable: 'custom', descending: '1', ascending: '2', width: '150'},
{label: '项目资本金(亿元)', prop: 'projectCapital', sortable: 'custom', descending: '17', ascending: '18', width: '150'},
{label: '项目总投资(亿元)', prop: 'projectTotalInvestment', sortable: 'custom', descending: '1', ascending: '2', width: '160'},
{label: '项目资本金(亿元)', prop: 'projectCapital', sortable: 'custom', descending: '17', ascending: '18', width: '160'},
{label: '专项债用作资本金(亿元)', prop: 'specialBondCapital', sortable: 'custom', descending: '19', ascending: '20', width: '200'}
],
formData: [
......
......@@ -58,13 +58,13 @@ export default {
{label: '项目名称', prop: 'projectName', minWidth: '320', slot: true},
{label: '发布日期', prop: 'pubdate', width: '110'},
{label: '金额(万元)', prop: '', children: [
{ label: '建安费暂估', prop: 'projectSafeAmount', width: '88px'},
{ label: '勘察费暂估', prop: 'projectSurveyAmount', width: '88px'},
{ label: '保证金', prop: 'projectEnsureAmount', width: '88px'}
{ label: '建安费暂估', prop: 'projectSafeAmount', width: '98px'},
{ label: '勘察费暂估', prop: 'projectSurveyAmount', width: '98px'},
{ label: '保证金', prop: 'projectEnsureAmount', width: '98px'}
]},
{label: '招标人及联系方式', prop: '', children: [
{ label: '招标人', prop: 'tenderee', width: '88px', slot: true},
{ label: '联系人', prop: 'tendereeTel', width: '88px'}
{ label: '招标人', prop: 'tenderee', width: '98px', slot: true},
{ label: '联系人', prop: 'tendereeTel', width: '98px'}
]},
{label: '代理机构及联系方式', prop: '', children: [
{ label: '代理机构', prop: 'agency', width: '88px', slot: true},
......
......@@ -69,7 +69,7 @@
align="right"
label="合作次数">
<template slot-scope="scope">
<span style="padding-right: 88px;">{{ scope.row.count }}</span>
<span style="padding-right: 86px;">{{ scope.row.count }}</span>
</template>
</el-table-column>
<el-table-column
......@@ -77,7 +77,7 @@
align="right"
label="合作总金额(万元)">
<template slot-scope="scope">
<span style="padding-right: 34px;">{{ scope.row.amount }}</span>
<span style="padding-right: 28px;">{{ scope.row.amount }}</span>
</template>
</el-table-column>
</el-table>
......
......@@ -22,10 +22,12 @@
label="名称"></el-table-column>
<el-table-column
prop="value"
align="right"
label="数量">
</el-table-column>
<el-table-column
prop="percent"
align="right"
label="占比">
</el-table-column>
</el-table>
......@@ -55,8 +57,8 @@ export default {
typeList:[
{name: '土地交易', pathName: 'landtransaction', ico: require("@/assets/images/detail/overview/clue_ico1.png"), count: 0, category:'global', field:'landInfo', dis_ico: require("@/assets/images/detail/overview/clue_dis_ico1.png")},
{name: '拟建项目', pathName: 'proposed', ico: require("@/assets/images/detail/overview/clue_ico2.png"), count: 0, category:'global', field:'proposedProject', dis_ico: require("@/assets/images/detail/overview/clue_dis_ico2.png")},
{name: '专项债项目', pathName: 'bond', ico: require("@//assets/images/detail/overview/clue_ico3.png"), count: 0, category:'xxx', field:'yy', dis_ico: require("@/assets/images/detail/overview/clue_dis_ico3.png")},
{name: '招标计划', pathName: 'biddingplan', ico: require("@/assets/images/detail/overview/clue_ico4.png"), count: 0, category:'xxx', field:'zz', dis_ico: require("@/assets/images/detail/overview/clue_dis_ico4.png")},
{name: '专项债项目', pathName: 'bond', ico: require("@//assets/images/detail/overview/clue_ico3.png"), count: 0, category:'performance', field:'specialDebt', dis_ico: require("@/assets/images/detail/overview/clue_dis_ico3.png")},
{name: '招标计划', pathName: 'biddingplan', ico: require("@/assets/images/detail/overview/clue_ico4.png"), count: 0, category:'performance', field:'bidPlan', dis_ico: require("@/assets/images/detail/overview/clue_dis_ico4.png")},
{name: '招标公告', pathName: 'announcement', ico: require("@/assets/images/detail/overview/clue_ico5.png"), count: 0, category:'business', field:'biddingAnnouncement', dis_ico: require("@/assets/images/detail/overview/clue_dis_ico5.png")},
{name: '标讯Pro', pathName: 'tencent', ico: require("@/assets/images/detail/overview/clue_ico6.png"), count: 0, category:'business', field:'proCount', dis_ico: require("@/assets/images/detail/overview/clue_dis_ico6.png")},
{name: '行政许可', pathName: 'administrative', ico: require("@/assets/images/detail/overview/clue_ico7.png"), count: 0, category:'business', field:'adminLicensing', dis_ico: require("@/assets/images/detail/overview/clue_dis_ico7.png")},
......@@ -146,8 +148,8 @@ export default {
this.typeList.forEach((item, index) => {
item.count = this.statistic[item.category]?this.statistic[item.category][item.field]:0
})
this.typeList[2].count = 10 //写死代表有数据,英文统计里面没这项
this.typeList[3].count = 10 //写死代表有数据,英文统计里面没这项
//this.typeList[2].count = 10 //写死代表有数据,英文统计里面没这项
//this.typeList[3].count = 10 //写死代表有数据,英文统计里面没这项
},
handleType(it, idx){
if(it.count){
......
......@@ -14,6 +14,7 @@
label="风险纬度分布"></el-table-column>
<el-table-column
prop="value"
align="right"
label="数量">
<template slot-scope="scope">
<span>{{ scope.row.value }}</span>
......@@ -21,6 +22,7 @@
</el-table-column>
<el-table-column
prop="bl"
align="right"
label="占比">
<template slot-scope="scope">
<span>{{ scope.row.bl }}</span>
......
......@@ -39,7 +39,7 @@ export default {
queryParams: {
cid: this.companyId,//382724726
pageNum: 1,
pageSize: 10
pageSize: 20
},
forData: [
{label: '列入原因', prop: 'inReason', width: '508'},
......
......@@ -41,7 +41,7 @@ export default {
queryParams: {
cid: this.companyId, //20734
pageNum: 1,
pageSize: 10
pageSize: 20
},
forData: [
{label: '案由', prop: 'caseReason'},
......
......@@ -39,7 +39,7 @@ export default {
queryParams: {
cid: this.companyId,//5504335
pageNum: 1,
pageSize: 10
pageSize: 20
},
forData: [
{label: '失信被执行人行为具体情形', prop: 'executionDesc', width: '508', fixed: true},
......
......@@ -38,7 +38,7 @@ export default {
queryParams: {
cid: this.companyId,//194738907
pageNum: 1,
pageSize: 10
pageSize: 20
},
forData: [
{label: '执行标的(元)', prop: 'amount', width: '140'},
......
......@@ -47,7 +47,7 @@ export default {
queryParams: {
cid: this.companyId,//5504335
pageNum: 1,
pageSize: 10
pageSize: 20
},
forData: [
{label: '案由', prop: 'causeAction', width: '240'},
......
......@@ -47,7 +47,7 @@ export default {
queryParams: {
cid: this.companyId,//20734
pageNum: 1,
pageSize: 10
pageSize: 20
},
forData: [
{label: '案由', prop: 'causeAction', width: '240', fixed: true},
......
......@@ -47,7 +47,7 @@ export default {
queryParams: {
cid: this.companyId,
pageNum: 1,
pageSize: 10
pageSize: 20
},
forData: [
{label: '处罚原因', prop: 'punishReason', width: '508', slot: true, fixed: true},
......
......@@ -45,7 +45,7 @@ export default {
cid: this.companyId,//3068
sort: 3,
pageNum: 1,
pageSize: 10
pageSize: 20
},
forData: [
{label: '项目名称', prop: 'projectName', width: '508', slot: true},
......
......@@ -143,7 +143,7 @@ export default {
platformImportance: [],
developmentZone: [],
pageNum: 1,
pageSize: 15
pageSize: 20
},
forData: [
{label: '企业名称', prop: 'companyName', width: '369', slot: true},
......
......@@ -697,9 +697,8 @@ export default {
},
checkuipBusinessbtn(val){
if(val){
this.uipBusinessText =[];
}
this.uipBusinessText =[];
this.checkuipBusiness=true;
this.search();
},
uipBusinessTypebtn(val){
......@@ -711,10 +710,9 @@ export default {
this.search();
},
checkbratingSubjectbtn(val){
if(val){
this.bratingSubjectText =[];
}
this.bratingSubjectText =[];
this.search();
this.checkbratingSubject=true;
},
bratingSubjectLevelbtn(val){
if(val.length>0){
......@@ -725,9 +723,8 @@ export default {
this.search();
},
checkshareholderbtn(val){
if(val){
this.shareholderText =[];
}
this.shareholderText =[];
this.checkshareholder=true;
this.search();
},
shareholderBgbtn(val){
......@@ -739,9 +736,8 @@ export default {
this.search();
},
checkequityRelationshipbtn(val){
if(val){
this.equityRelationshipText =[];
}
this.equityRelationshipText =[];
this.checkequityRelationship=true;
this.search();
},
equityRelationshipbtn(val){
......@@ -820,7 +816,7 @@ export default {
};
var data = JSON.parse(JSON.stringify(this.jskBidQueryDto));
if(this.keys){
params['keys'] = this.keys;
params['keys'] = this.keys.split(' ');
}else{
delete params.keys
}
......
......@@ -30,7 +30,7 @@
import "@/assets/styles/public.css";
export default {
name: 'enterpriseData',
name: 'EnterpriseData',
components: { SearchEnterprise,Owner },
data() {
return {
......
......@@ -122,6 +122,7 @@
},
//获取建设库客户
getCompany(value){
this.queryParam.companyId = ''
if (value.length>=2){
let param = {
keyword:value,
......
......@@ -254,14 +254,14 @@
}
},
resetForm(){
this.projectId = null
this.addParam={
customerId:'', //客户id
visitMode:'',//拜访方式
nextVisitTime:'',//下次拜访时间
name:'',//拜访对象姓名
position:'',//拜访对象职务
content:'',//拜访内容
visitMode:'',//拜访方式
nextVisitTime:'',//下次拜访时间
name:'',//拜访对象姓名
position:'',//拜访对象职务
content:'',//拜访内容
}
},
//删除跟进动态
......
......@@ -91,7 +91,7 @@
},
searchPram:{
businessId:this.detailId ? this.detailId : parseInt(this.$route.query.id),
pageSize:10,
pageSize:20,
pageNum:1,
state:null,
},
......
......@@ -155,7 +155,7 @@
<span>保证金金额(万元) :</span>
<div class="inputxt" id="inputxt6">
<div class="flex" v-if="nowedit == 6 && isDisabled == false">
<el-input placeholder="待添加" v-model="earnestMoney"></el-input>
<el-input placeholder="待添加" @input="number1" v-model="earnestMoney"></el-input>
<div class="flex">
<div class="btnsmall btn_primary h28" @click="changes({'earnestMoney':earnestMoney})" style="width: 56px">确定</div>
<div class="cancels h28" @click="nowedit = -1" style="">取消</div>
......@@ -329,6 +329,9 @@
number(value){
this.investmentAmount = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入6位小数
},
number1(value){
this.earnestMoney = value.replace(/^\D*(\d*(?:\.\d{0,6})?).*$/g, '$1')//输入6位小数
},
}
}
</script>
......
......@@ -14,7 +14,7 @@
<img src="@/assets/images/project/empty.png">
<div class="p1">暂无数据展示</div>
<div class="p2">抱歉,你还未添加相关数据,快去添加吧</div>
<div class="btn btn_primary h36 w102" @click="opennew" v-if="isDisabled==false">新增联系人</div>
<div class="btn btn_primary h36 w102" @click="opennew" v-if="isDisabled == false">新增联系人</div>
</div>
</template>
<el-table-column
......@@ -78,7 +78,7 @@
</el-table-column>
</el-table>
<div class="bottems">
<div class="btn btn_primary h28" @click="opennew" v-if="total>0"><div class="img img1"></div>新增联系人</div>
<div class="btn btn_primary h28" @click="opennew" v-if="total>0 && isDisabled == false" ><div class="img img1" ></div>新增联系人</div>
<el-pagination v-if="total>searchParam.pageSize"
background
:page-size="searchParam.pageSize"
......@@ -170,6 +170,10 @@
},
methods:{
getDetail(item){
if(this.isDisabled == true){
return this.$message.warning("您无权限进行操作")
}
this.dialogVisible = true
item.sex = item.sex.toString()
this.queryParam = item
......
......@@ -86,19 +86,21 @@
class="popups"
:visible.sync="dialogVisible"
width="464px">
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>新建相关企业</span>
</div>
<div class="types">
<div v-for="(item,index) in companytype" :class="{'on':types==item.dictValue}" @click="totype(item.dictValue)"><i></i>{{item.dictLabel}}</div>
</div>
<div class="popform">
<div @click = 'handleALL'>
<div class="poptitle">
<img src="@/assets/images/economies/icon.png">
<span>新建相关企业</span>
</div>
<div class="types">
<div v-for="(item,index) in companytype" :class="{'on':types==item.dictValue}" @click="totype(item.dictValue)"><i></i>{{item.dictLabel}}</div>
</div>
<div class="popform">
<div class="popbot" style="padding-right: 0">
<div class="btn btn_cancel h32" @click="cancel(0)">返回</div>
<div class="btn btn_primary h32" @click="gettype">下一步</div>
</div>
</div>
</div>
</el-dialog>
<el-dialog
class="popups"
......@@ -110,7 +112,10 @@
</div>
<el-form class="popform i":model="queryParam" label-width="85px" :rules="rules" ref="ruleForm" >
<el-form-item label="企业名称:" prop="companyName" class="row">
<el-input type="text" v-model="queryParam.companyName" placeholder="请输入"></el-input>
<el-input type="text" v-model="queryParam.companyName" @input="getCompany" placeholder="请输入"></el-input>
<div class="resultlist" v-if="showlist" id="box">
<div v-for="(item,index) in companData" @click="selCompany(item)"><span v-html="item.name"></span></div>
</div>
</el-form-item>
<el-form-item :label="typename" class="row">
<el-input type="text" v-model="queryParam.depth" placeholder="请输入"></el-input>
......@@ -136,7 +141,7 @@
<script>
import "@/assets/styles/project.scss"
import {getXGQY,addXGQY,delXGQY} from '@/api/project/project'
import {getDictType} from '@/api/main'
import {getDictType,getEnterprise} from '@/api/main'
export default {
name: 'xgqy',
props: {
......@@ -181,6 +186,8 @@
},
ondel:-1,
isDisabled:this.isDisabled,
showlist:false,
companData:[],
}
},
created(){
......@@ -195,7 +202,41 @@
})
this.getlist()
},
mounted(){
},
methods:{
//获取建设库客户
getCompany(value){
this.queryParam.companyId = ''
if (value.length>=2){
let param = {
keyword:value,
page:{
limit:20,
page:1
}
}
getEnterprise(JSON.stringify(param)).then(result=>{
if(result.code != 200)
return
this.showlist = true
this.companData = result.data.list
})
}
},
selCompany(item){
this.queryParam.companyId = item.jskEid
this.queryParam.ownerCompany = item.name.replace(/<[^>]+>/g, '')
this.showlist = false
},
handleALL(event){
var one = document.getElementById("box");
if(one){
if(!one.contains(event.target)){
this.showlist = false
}
}
},
delQY(){
let id = this.ondel
delXGQY(id).then(res=>{
......
......@@ -36,7 +36,7 @@
<div class="con i" style="width: 100%;">
<span style="float: left;margin-top: 2px">项目标签 :</span>
<div class="flex tipinput">
<div class="tips" v-for="(item,index) in tipslit">{{item}}<img @click="deltip(item)" src="@/assets/images/project/del.png"></div>
<div class="tips" v-for="(item,index) in tipslit">{{item}}<img v-if="disabled == false" @click="deltip(item)" src="@/assets/images/project/del.png"></div>
<div style="position: relative">
<el-input placeholder="待添加" :disabled="isDisabled" v-model="tipsvalue" @input="getValue" :style="spanWidth"></el-input><span class="spanText">{{ tipsvalue }}</span>
</div>
......
<template>
<div @click="handleALL">
<div id="jsnr">
<div class="miantitle">
<template v-if="!detailId">
<span>项目管理</span>
<span class="on" @click="tolist"> / 商机列表</span>
<span> / 项目详情</span>
</template>
<span class="on" v-else @click="cooperateList">合作情况</span>
<span> / 项目详情</span>
<!-- <span class="on" v-else @click="cooperateList">合作情况</span>-->
<!-- <span> / 项目详情</span>-->
</div>
<div class="app-container" v-if="ProjectData">
<el-card class="box-card noborder pad16 overflows">
......@@ -56,9 +57,9 @@
</div>
</span>
</div>
<div class="det-con con" id="inputxt">
<div class="det-con con" >
<span>投资估算(万元):</span>
<div class="inputxt i" :class="{'nomar':nowedit != 3}" :key="keys2">
<div class="inputxt i" :class="{'nomar':nowedit != 3}" :key="keys2" id="inputxt">
<div class="flex" v-if="nowedit == 3 && isDisabled == false">
<el-input v-model="ProjectData.investmentAmount" placeholder="待添加" @input="number"></el-input>
<div class="flex">
......@@ -73,11 +74,11 @@
<span>建设地点:</span>
<div class="select-popper">
<span :class="{ color_text:addresstxt != '待添加'}">
<span >
{{addresstxt}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-cascader :disabled="isDisabled" class="cascader-region select-location" v-model="ProjectData.address"
<el-cascader separator="-" :disabled="isDisabled" class="cascader-region select-location" v-model="ProjectData.address"
ref="myCascader" :props="props"
:options="addressList"
@change="handleChange"></el-cascader>
......@@ -200,24 +201,31 @@
//获取基本信息
this.getXMSL()
},
methods: {
getsl(data){
this.choose(data.projectStage)
},
handleALL(event){
if(this.isDisabled == true)
mounted(){
document.getElementById('jsnr').addEventListener('mouseup',(e) => {
if (this.isDisabled == true)
return false
var one = document.getElementById("inputxt");
if(one){
if(!one.contains(event.target)){
if(this.nowedit != -1){
this.editXMSL({investmentAmount:this.ProjectData.investmentAmount})
if (one) {
if (!one.contains(event.target)) {
if (this.nowedit != -1) {
this.editXMSL({ investmentAmount: this.ProjectData.investmentAmount })
}
this.nowedit = -1
}else{
} else {
this.nowedit = 3
}
}
})
},
methods: {
getsl(data){
this.choose(data.projectStage)
},
handleALL(event){
if(this.isDisabled == true)
return false
},
getXMSL(){
getXMSL(this.id).then(result=>{
......@@ -242,10 +250,10 @@
txt += result.data.provinceName
}
if(result.data.cityName){
txt += '/'+result.data.cityName
txt += '-'+result.data.cityName
}
if(result.data.districtName){
txt += '/'+result.data.districtName
txt += '-'+result.data.districtName
}
this.address = list.length>0?list:"待添加"
this.addresstxt = txt == "" ? "待添加":txt
......@@ -344,7 +352,7 @@
labelString.forEach((item,index)=>{
let str = ''
if(index >0){
str = '/'
str = '-'
}
txt += str + item
if(index == 0){
......
......@@ -212,7 +212,7 @@ export default {
cityId: [],
districtId: [],
pageNum:1,
pageSize:10,
pageSize:20,
},
domicile:[],
projectType:[],//项目类型
......@@ -332,7 +332,7 @@ export default {
cityId: [],
districtId: [],
pageNum:1,
pageSize:10,
pageSize:20,
}
this.getList(1)
},
......@@ -465,7 +465,7 @@ export default {
}
.btns{
position: absolute;
top: 11px;
top: -6px;
right: 12px;
z-index: 2;
.img.img1{
......
<template>
<div class="app-container">
<gjjl types="projectgjdt" isDisabled=false></gjjl>
<gjjl types="projectgjdt" isDisabled=true></gjjl>
</div>
</template>
......
......@@ -37,7 +37,7 @@
</div>
</div>
<div class="content_item">
<div class="label">土地信息</div>
<div class="label">项目信息</div>
<div class="content_right">
<div class="select-popper">
<span :class="{ color_text: establishmentDto.projectType.length }">
......@@ -231,7 +231,7 @@
<div class="list-content" v-if="item.buildScale">
<p class="list-content-text">
<span class="content-text-gc">建设规模:</span>
<span class="content-text-p">{{item.buildScale||'--'}}</span>
<span class="content-text-p" v-html="item.buildScale"></span>
</p>
</div>
......@@ -1266,7 +1266,7 @@
background: #F3F3FF;
color: #8491E8;
border-radius: 1px 1px 1px 1px;
margin-right: 8px;
padding: 3px 7px;
font-size: 12px;
......@@ -1293,7 +1293,7 @@
margin-top: 7px;
display: flex;
justify-content: start;
align-items: center;
align-items: flex-start;
margin-right: 27px;
font-size: 14px;
......
......@@ -235,7 +235,7 @@
<p class="list-content-text">
<span>受让人:</span>
<span v-if="item.companyName">
<router-link :to="'/company/' + encodeStr(item.id) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="item.companyName"></router-link>
<router-link :to="'/company/' + encodeStr(item.companyId) + '/?index=true'" tag="a" class="list-titel-a blue" v-html="item.companyName"></router-link>
</span>
<span v-else>--</span>
......
......@@ -881,7 +881,7 @@
},
created() {
this.searchDic();
this.clickProvince(0,1);
// this.clickProvince(0,1);
this.search();
this.changeDown(false)
},
......
......@@ -102,32 +102,32 @@
<p>
<label class="label">项目总收益/项目总债务融资本息(覆盖倍数)</label>
<span v-if="textList.econData_007">{{textList.econData_007}}</span>
<span>--</span>
<span v-else>--</span>
</p>
<p>
<label class="label">项目总收益/项目总地方债券融资本息</label>
<span v-if="textList.econData_008">{{textList.econData_008}}</span>
<span>--</span>
<span v-else>--</span>
</p>
<p>
<label class="label">项目总收益/项目总投资</label>
<span v-if="textList.econData_009">{{textList.econData_009}}</span>
<span>--</span>
<span v-else>--</span>
</p>
<p>
<label class="label">项目总收益/项目总地方债券融资本金</label>
<span v-if="textList.econData_010">{{textList.econData_010}}</span>
<span>--</span>
<span v-else>--</span>
</p>
<p>
<label class="label">项目总收益/项目总债务融资本金</label>
<span v-if="textList.econData_011">{{textList.econData_011}}</span>
<span>--</span>
<span v-else>--</span>
</p>
<p>
<label class="label">项目预测总收益</label>
<span v-if="textList.projectForecastTotalRevenue">{{textList.projectForecastTotalRevenue}}万元</span>
<span>--</span>
<span v-else>--</span>
</p>
</div>
</div>
......@@ -135,11 +135,17 @@
<div class="common-title">项目当事人</div>
<div class="main4-box">
<label class="label">项目主体</label>
<span>{{textList.projectEntity||'--'}}</span>
<span>
<router-link v-if="textList.projectEntity" :to="'/company/' + encodeStr(textList.projectEntityId) + '/?index=true'" tag="a" class=" blue" v-html="textList.projectEntity"></router-link>
<template v-else>--</template>
</span>
<label class="label">主管部门</label>
<span>{{textList.chargeDepartment||'--'}}</span>
<label class="label">实施单位</label>
<span>{{textList.piu||'--'}}</span>
<span>
<router-link v-if="textList.piu" :to="'/company/' + encodeStr(textList.piuId) + '/?index=true'" tag="a" class=" blue" v-html="textList.piu"></router-link>
<template v-else>--</template>
</span>
</div>
</div>
<div class="content main5">
......@@ -183,6 +189,7 @@
name: 'debtProjectDetails',
data() {
return {
encodeStr,
id: '',
tableData: [],
"pageNum": 1,
......@@ -436,6 +443,9 @@
border-bottom: 1px solid #E6E9F0;
padding-left: 12px;
font-size: 12px;
.blue{
color: #0081FF;
}
}
span:last-child {
......
......@@ -18,6 +18,8 @@
<script>
import { updateUserPwd } from "@/api/system/user";
import {removeToken} from "@/utils/auth";
import store from "@/store";
export default {
data() {
......@@ -56,6 +58,11 @@ export default {
if (valid) {
updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
this.$modal.msgSuccess("修改成功");
store.commit('SET_TOKEN', '')
store.commit('SET_ROLES', [])
store.commit('SET_PERMISSIONS', [])
removeToken()
location.href = '/index'
});
}
});
......
......@@ -2,6 +2,7 @@ package com.dsk.system.domain.customer.vo;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
......@@ -57,6 +58,7 @@ public class CustomerFollowRecordListVo implements Serializable {
private String content;
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
......
......@@ -83,8 +83,33 @@ public class EnterpriseService {
}
public R statistic(EnterpriseStatisticBody body) throws Exception {
Map<String, Object> map = dskOpenApiUtil.requestBody("/api/jsk/enterprise/statistic", BeanUtil.beanToMap(body, false, false));
return BeanUtil.toBean(map, R.class);
Map<String, Object> statisticMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/statistic", BeanUtil.beanToMap(body, false, false));
Integer statisticMapCode = MapUtils.getInteger(statisticMap, "code", 300);
if (200 != statisticMapCode) throw new RuntimeException();
Map statisticMapData = MapUtils.getMap(statisticMap, "data", null);
if (MapUtils.isEmpty(statisticMapData)) return R.ok();
Map performance = MapUtils.getMap(statisticMapData, "performance");
Map business = MapUtils.getMap(statisticMapData, "business");
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("cid", body.getCompanyId());
Map<String, Object> projectStatisticMap = dskOpenApiUtil.requestBody("/operate/enterpriseProject/statistic", paramMap);
Integer projectStatisticMapCode = MapUtils.getInteger(projectStatisticMap, "code", 300);
if (200 != projectStatisticMapCode) return R.ok(statisticMapData);
Map projectStatisticMapData = MapUtils.getMap(projectStatisticMap, "data", null);
performance.put("specialDebt", MapUtils.getInteger(projectStatisticMapData, "specialDebt", 0));
performance.put("bidPlan", MapUtils.getInteger(projectStatisticMapData, "bidPlan", 0));
business.put("historySend", MapUtils.getInteger(projectStatisticMapData, "historySend", 0));
statisticMapData.put("performance", performance);
statisticMapData.put("business", business);
return R.ok(statisticMapData);
}
public R bidDataGroup(EnterpriseBidDataGroupBody body) throws Exception {
......
package com.dsk.system.mapper;
import com.dsk.common.core.domain.entity.BusinessBacklog;
import java.util.List;
/**
......@@ -17,7 +18,7 @@ public interface BusinessBacklogMapper
* @param id 项目工作待办主键
* @return 项目工作待办
*/
public BusinessBacklog selectBusinessBacklogById(Long id);
public BusinessBacklog selectBusinessBacklogById(Integer id);
/**
* 查询项目工作待办列表
......
package com.dsk.system.service;
import java.util.List;
import com.dsk.common.core.domain.entity.BusinessBacklog;
import java.util.List;
/**
* 项目工作待办Service接口
*
......@@ -17,7 +18,7 @@ public interface IBusinessBacklogService
* @param id 项目工作待办主键
* @return 项目工作待办
*/
public BusinessBacklog selectBusinessBacklogById(Long id);
public BusinessBacklog selectBusinessBacklogById(Integer id);
/**
* 查询项目工作待办列表
......
package com.dsk.system.service.impl;
import com.dsk.common.core.domain.entity.BusinessBacklog;
import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.DateUtils;
import com.dsk.system.mapper.BusinessBacklogMapper;
import com.dsk.system.service.IBusinessBacklogService;
......@@ -10,6 +11,7 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
......@@ -32,7 +34,7 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService
* @return 项目工作待办
*/
@Override
public BusinessBacklog selectBusinessBacklogById(Long id)
public BusinessBacklog selectBusinessBacklogById(Integer id)
{
return businessBacklogMapper.selectBusinessBacklogById(id);
}
......@@ -59,6 +61,7 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService
@Transactional
public int insertBusinessBacklog(BusinessBacklog businessBacklog)
{
if(businessBacklog.getFinishTime().before(new Date())) throw new BaseException("完成时间必须大于当前时间");
businessBacklog.setCreateTime(DateUtils.getNowDate());
//新增记录,状态默认 进行中
businessBacklog.setState(1);
......@@ -75,7 +78,14 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService
@Transactional
public int updateBusinessBacklog(BusinessBacklog businessBacklog)
{
businessBacklog.setUpdateTime(DateUtils.getNowDate());
//从完成状态修改到为完成,判断是否已逾期
BusinessBacklog backlog = selectBusinessBacklogById(businessBacklog.getId());
if (businessBacklog.getState() == 1 && backlog.getState() == 2 && backlog.getFinishTime().before(new Date())) {
businessBacklog.setState(0);
businessBacklog.setUpdateTime(new Date());
return businessBacklogMapper.updateBusinessBacklog(businessBacklog);
}
businessBacklog.setUpdateTime(new Date());
return businessBacklogMapper.updateBusinessBacklog(businessBacklog);
}
......
......@@ -65,7 +65,7 @@ public class BusinessContactsServiceImpl implements IBusinessContactsService
LoginUser loginUser = SecurityUtils.getLoginUser();
if (ObjectUtil.isEmpty(loginUser)) throw new BaseException("请登录");
//维护人员为当前登录用户
businessContacts.setAccendant(loginUser.getUsername());
businessContacts.setAccendant(loginUser.getUser().getNickName());
return businessContactsMapper.insertBusinessContacts(businessContacts);
}
......
......@@ -148,7 +148,8 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
row++;
if (count > 0) {
//如果存在,跳过该项目,不保存
result.add("第" + row + "行的" + businessInfo.getProjectName() + "的项目已存在,跳过该项目,保存下一条");
// result.add("第" + row + "行的" + businessInfo.getProjectName() + "的项目已存在,跳过该项目,保存下一条");
log.info("第" + row + "行的" + businessInfo.getProjectName() + "的项目已存在,跳过该项目,保存下一条");
errorCount++;
} else {
//保存到数据库
......
......@@ -29,7 +29,8 @@ public class CustomerDecisionChainServiceImpl implements ICustomerDecisionChainS
@Override
public List<CustomerDecisionChain> selectList(CustomerDecisionChainSearchDto dto) {
return baseMapper.selectList(Wrappers.<CustomerDecisionChain>lambdaQuery()
.eq(CustomerDecisionChain::getCustomerId,dto.getCustomerId()));
.eq(CustomerDecisionChain::getCustomerId, dto.getCustomerId())
.orderByDesc(CustomerDecisionChain::getCreateTime));
}
/**
......@@ -63,7 +64,7 @@ public class CustomerDecisionChainServiceImpl implements ICustomerDecisionChainS
*/
@Override
public boolean update(CustomerDecisionChain customerDecisionChain) {
if(ObjectUtils.isEmpty(customerDecisionChain.getId())) throw new BeanException("id不能为空!");
if (ObjectUtils.isEmpty(customerDecisionChain.getId())) throw new BeanException("id不能为空!");
verifyParameter(customerDecisionChain);
return baseMapper.updateById(customerDecisionChain) > 0;
}
......@@ -81,10 +82,11 @@ public class CustomerDecisionChainServiceImpl implements ICustomerDecisionChainS
/**
* 参数验证
*
* @param customerDecisionChain
*/
private void verifyParameter(CustomerDecisionChain customerDecisionChain){
if(ObjectUtils.isEmpty(customerDecisionChain.getCustomerId())) throw new BeanException("客户id不能为空!");
private void verifyParameter(CustomerDecisionChain customerDecisionChain) {
if (ObjectUtils.isEmpty(customerDecisionChain.getCustomerId())) throw new BeanException("客户id不能为空!");
customerDecisionChain.setUpdateId(SecurityUtils.getUserId());
customerDecisionChain.setUpdateBy(SecurityUtils.getLoginUser().getUser().getNickName());
}
......
package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.SpecialBondInformationDetailsDto;
import com.dsk.common.dtos.SpecialBondInformationPageDto;
......@@ -8,9 +10,13 @@ import com.dsk.common.dtos.SpecialPurposeBondsDto;
import com.dsk.common.dtos.SpecialPurposeBondsPageDto;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.service.SpecialPurposeBondsService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
......@@ -29,12 +35,64 @@ public class SpecialPurposeBondsServiceImpl implements SpecialPurposeBondsServic
@Override
public AjaxResult page(SpecialPurposeBondsPageDto dto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/specialPurposeBonds/projects/page", BeanUtil.beanToMap(dto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (code.equals(HttpStatus.OK.value())) {
Map data = MapUtils.getMap(map, "data", null);
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", ""));
if (CollectionUtils.isNotEmpty(list)) {
for (Object projectObj : list) {
Map<String, Object> projectMap = CommonUtils.assertAsMap(projectObj);
// 项目总投资
Double projectTotalInvestment = MapUtils.getDouble(projectMap, "projectTotalInvestment",0.00);
projectMap.put("projectTotalInvestment", projectTotalInvestment / 10000);
// 专项债用作资本金
Double specialBondCapital = MapUtils.getDouble(projectMap, "specialBondCapital",0.00);
projectMap.put("specialBondCapital", specialBondCapital / 10000);
// 项目资本金
Double projectCapital = MapUtils.getDouble(projectMap, "projectCapital",0.00);
projectMap.put("projectCapital", projectCapital / 10000);
}
}
}
return BeanUtil.toBean(map, AjaxResult.class);
}
@Override
public AjaxResult details(SpecialBondInformationDetailsDto detailsDto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/specialPurposeBonds/details", BeanUtil.beanToMap(detailsDto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (code.equals(HttpStatus.OK.value())) {
Map projectMap = MapUtils.getMap(map, "data", null);
if (ObjectUtil.isNotEmpty(projectMap)) {
// 项目总投资
Double projectTotalInvestment = MapUtils.getDouble(projectMap, "projectTotalInvestment",0.00);
projectMap.put("projectTotalInvestment", projectTotalInvestment / 10000);
// 专项债用作资本金
Double specialBondCapital = MapUtils.getDouble(projectMap, "specialBondCapital",0.00);
projectMap.put("specialBondCapital", specialBondCapital / 10000);
// 项目资本金
Double projectCapital = MapUtils.getDouble(projectMap, "projectCapital",0.00);
projectMap.put("projectCapital", projectCapital / 10000);
// 其他资金
Double otherFunds = MapUtils.getDouble(projectMap, "otherFunds",0.00);
projectMap.put("otherFunds", otherFunds / 10000);
// 计划使用专项债融资额
Double econData012 = MapUtils.getDouble(projectMap, "econData012",0.00);
projectMap.put("econData012", econData012 / 10000);
// 当前使用专项债融资额
Double econData013 = MapUtils.getDouble(projectMap, "econData013",0.00);
projectMap.put("econData013", econData013 / 10000);
// 其他融资
Double otherFinancing = MapUtils.getDouble(projectMap, "otherFinancing",0.00);
projectMap.put("otherFinancing", otherFinancing / 10000);
// 政府安排资金
Double govSupportFunds = MapUtils.getDouble(projectMap, "govSupportFunds",0.00);
projectMap.put("govSupportFunds", govSupportFunds / 10000);
// 项目预测总收益
Double projectForecastTotalRevenue = MapUtils.getDouble(projectMap, "projectForecastTotalRevenue",0.00);
projectMap.put("projectForecastTotalRevenue", projectForecastTotalRevenue / 10000);
}
}
return BeanUtil.toBean(map, AjaxResult.class);
}
......@@ -47,6 +105,19 @@ public class SpecialPurposeBondsServiceImpl implements SpecialPurposeBondsServic
@Override
public AjaxResult bondPage(SpecialBondInformationPageDto pageDto) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/specialPurposeBonds/bond/page", BeanUtil.beanToMap(pageDto, false, false));
Integer code = MapUtils.getInteger(map, "code", 300);
if (code.equals(HttpStatus.OK.value())) {
Map data = MapUtils.getMap(map, "data", null);
List<Object> list = CommonUtils.assertAsArray(MapUtils.getObject(data, "list", ""));
if (CollectionUtils.isNotEmpty(list)) {
for (Object informationObj : list) {
Map<String, Object> informationMap = CommonUtils.assertAsMap(informationObj);
// 专项债用于项目规模
Double isUsedProjectScale = MapUtils.getDouble(informationMap, "isUsedProjectScale",0.00);
informationMap.put("isUsedProjectScale", isUsedProjectScale / 10000);
}
}
}
return BeanUtil.toBean(map, AjaxResult.class);
}
}
......@@ -57,13 +57,15 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
//按照城投企业id合并两个list
for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
String uipId = MapUtils.getString(companyMap, "uipId");
String uipId = MapUtils.getString(companyMap, "uipId","uipId");
if (CollectionUtils.isEmpty(claimStatusList)) {
companyMap.put("claimStatus", 0);
}
for (CustomerStatusListVo vo : claimStatusList) {
if (uipId.equals(vo.getUipId())) {
companyMap.put("claimStatus", 1);
} else {
companyMap.put("claimStatus", 0);
}
}
}
......
......@@ -84,7 +84,8 @@
<update id="updateBacklogState">
update business_backlog
set state = 0
where finish_time &lt; CURRENT_TIMESTAMP
where state = 1
and finish_time &lt; CURRENT_TIMESTAMP
</update>
<delete id="deleteBusinessBacklogById" parameterType="Long">
......
......@@ -111,7 +111,7 @@
and i.investment_amount &gt;= #{minAmount}
</if>
<if test="maxAmount != null and maxAmount != '' and maxAmount != minAmount">
and i.investment_amount &lt;= #{maxAmount}
and i.investment_amount &lt; #{maxAmount}
</if>
<if test="minAmount != null and minAmount != '' and maxAmount != null and maxAmount != '' and maxAmount == minAmount">
and i.investment_amount = #{minAmount}
......
......@@ -39,6 +39,7 @@
) bi3 on bi3.customer_id = ct.customer_id
where ctu.user_id = #{dto.userId}
<if test="dto.companyName != null and dto.companyName != '' "> and ct.company_name like concat('%',#{dto.companyName},'%')</if>
order by ct.create_time desc
</select>
<select id="selectUserList" resultType="com.dsk.system.domain.customer.Customer">
......
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