Commit 4ded92a0 authored by danfuman's avatar danfuman
parents cb05d16d 5b83a6c0
...@@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -68,7 +69,7 @@ public class CustomerController extends BaseController { ...@@ -68,7 +69,7 @@ public class CustomerController extends BaseController {
@RepeatSubmit @RepeatSubmit
public AjaxResult add(@RequestBody Customer customer) { public AjaxResult add(@RequestBody Customer customer) {
dealWithcustomerData(customer); dealWithcustomerData(customer);
return AjaxResult.success(baseService.add(customer)); return toAjax(baseService.add(customer));
} }
/** /**
...@@ -80,7 +81,13 @@ public class CustomerController extends BaseController { ...@@ -80,7 +81,13 @@ public class CustomerController extends BaseController {
public AjaxResult claim(@RequestBody Customer customer) { public AjaxResult claim(@RequestBody Customer customer) {
if (ObjectUtils.isEmpty(customer.getUipId())) throw new BeanException("城投uipId不能为空"); if (ObjectUtils.isEmpty(customer.getUipId())) throw new BeanException("城投uipId不能为空");
dealWithcustomerData(customer); dealWithcustomerData(customer);
return AjaxResult.success(baseService.add(customer)); boolean add = baseService.add(customer);
if (add) {
Map<String, Object> map = new HashMap<>();
map.put("customerId", customer.getCustomerId());
return AjaxResult.success(map);
}
return AjaxResult.error();
} }
private void dealWithcustomerData(Customer customer) { private void dealWithcustomerData(Customer customer) {
......
package com.dsk.web.controller.search.macroMarket; package com.dsk.web.controller.search.macroMarket;
import com.dsk.common.core.page.TableDataInfo; import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.ComposeQueryDto; import com.dsk.common.dtos.ComposeQueryDto;
import com.dsk.system.service.RegionalEnterprisesService; import com.dsk.system.service.RegionalEnterprisesService;
import com.dsk.web.controller.search.controller.PageQueryLimit;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -24,7 +26,15 @@ public class RegionalEnterprisesController { ...@@ -24,7 +26,15 @@ public class RegionalEnterprisesController {
private RegionalEnterprisesService regionalEnterprisesService; private RegionalEnterprisesService regionalEnterprisesService;
@PostMapping("regional/page") @PostMapping("regional/page")
public TableDataInfo page(@RequestBody ComposeQueryDto compose) throws Exception{ public AjaxResult page(@RequestBody JSONObject object) throws Exception{
return regionalEnterprisesService.page(compose); ComposeQueryDto compose = JSONObject.parseObject(object.toJSONString(), ComposeQueryDto.class);
compose.getPage().setPage(compose.getPageNum());
compose.getPage().setLimit(compose.getPageSize());
compose.getPage().setField(compose.getField());
compose.getPage().setOrder(compose.getOrder());
if (PageQueryLimit.pageLimit(compose.getPage())){
return AjaxResult.error("翻页已达到上限");
}
return regionalEnterprisesService.enterprisePage(object);
} }
} }
...@@ -114,7 +114,7 @@ public class BusinessInfo extends BaseEntity ...@@ -114,7 +114,7 @@ public class BusinessInfo extends BaseEntity
private String customerId; private String customerId;
/** 项目状态 */ /** 项目状态 */
@Excel(name = "项目状态") @Excel(name = "项目状态(0.储备中1.跟进中2.已合作)")
private Integer status; private Integer status;
/** 评标办法 */ /** 评标办法 */
......
...@@ -28,9 +28,7 @@ ...@@ -28,9 +28,7 @@
<el-table v-if="tableData.total > 0" <el-table v-if="tableData.total > 0"
:data="tableData.rows" :data="tableData.rows"
stripe border stripe border
style="width: 100%" style="width: 100%">
:default-sort = "{prop: 'date', order: 'descending'}"
>
<el-table-column <el-table-column
prop="index" prop="index"
label="序号" label="序号"
...@@ -428,8 +426,6 @@ export default { ...@@ -428,8 +426,6 @@ export default {
// //
// return; // return;
// } // }
console.log(this.queryParam)
return false
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
addCustomer(this.queryParam).then(result=>{ addCustomer(this.queryParam).then(result=>{
......
<template>
<div class="app-container operations-container">
<div class="common-title">基本信息</div>
<div class="part-swiper">
<div class="baseinfo">
<div class="row">
<div class="con">
<Elselects
title="企业性质"
:list="companyType.companyNaturelist"
:id="infos.customerId"
:val="infos.companyNature"
field="companyNature"
@changenowedit="clickNowedit" />
</div>
<div class="con i">
<Elselects
title="企业级别"
:list="companyType.companyLevellist"
:id="infos.customerId"
:val="infos.companyLevel"
field="companyLevel"
@changenowedit="clickNowedit" />
</div>
</div>
<div class="row">
<div class="con">
<span>企业母公司:</span>
<div class="inputxt" id="inputxt2">
<div class="flex" v-if="nowedit == noweditis && isDisabled == false" >
<el-input placeholder="待添加" v-model="superCompany"></el-input>
<div class="flex">
<div class="btnsmall btn_primary h28" style="width: 56px" @click="editXMSL(superCompany)">确定</div>
<div class="cancels h28" @click="clickNowedit(-1)" style="">取消</div>
</div>
</div>
<span :class="{txt:!superCompany}" v-else @click="clickNowedit(noweditis)">{{superCompany||'待添加'}}</span>
</div>
</div>
<div class="con i">
<Elselects
title="上市公司"
:list="companyType.isOnlistlist"
:id="infos.customerId"
:val="infos.isOn"
field="isOn"
@changenowedit="clickNowedit" />
</div>
</div>
<div class="row">
<div class="con">
<Elselects
title="局级大客户"
:list="companyType.isOnlistlist"
:id="infos.customerId"
:val="infos.isMajor"
field="isMajor"
@changenowedit="clickNowedit" />
</div>
<div class="con i">
<Elselects
title="资信等级"
:list="companyType.creditLevellist"
:id="infos.customerId"
:val="infos.creditLevel"
field="creditLevel"
@changenowedit="clickNowedit" />
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { customerUpdate } from '@/api/detail/party-a/cooperate'
import Elselects from "./elselects"
export default {
name: "basicIinformation",
props: ['infos','companyType','nowedit','noweditis'],
components: {
Elselects,
},
data() {
return {
isDisabled:false,
isselect:false,
superCompany:this.infos.superCompany,
}
},
created(){
},
methods:{
editXMSL(val){
if(this.isDisabled == true)
return false
let params = {
customerId: this.infos.customerId,
superCompany: val,
}
this.clickNowedit(-1)
customerUpdate(params).then(res=>{
if (res.code == 200){
this.$message.success('修改成功!')
}else{
this.$message.error(res.msg)
}
})
},
clickNowedit(e){
this.$emit("focus-nowedit", e)
}
}
}
</script>
<style lang="scss" scoped>
.operations-container {
margin: 0;
padding: 24px 16px;
background: #FFFFFF;
border-radius: 4px;
.part-swiper {
position: relative;
margin-top: 16px;
}
}
.select-popper{
top: 3px;
}
.inputxt .flex{
background: #fff;
}
.baseinfo .row{
padding-left: 0;
}
</style>
<template>
<div class="">
<el-card class="box-card noborder">
<div class="cardtitles">{{ title }}</div>
<div class="baseinfo" >
<el-input id="inputxt9" v-model="val" @focus="focusNowedit(noweditis)" class="textarea" type="textarea" :placeholder="'请输入' + title" maxlength="500" :show-word-limit="true" ></el-input>
<div class="flex btns" v-if="nowedit == noweditis">
<div class="flex">
<div class="btnsmall btn_primary h28" @click="changes(val,field)" style="width: 56px">确定</div>
<div class="cancels h28" @click="focusNowedit(-1)" style="">取消</div>
</div>
</div>
</div>
</el-card>
</div>
</template>
<script>
import { customerUpdate } from '@/api/detail/party-a/cooperate'
export default {
name: "elCardinput",
props: ['infos','title','projectDetails','nowedit','noweditis','field'],
data() {
return {
val: this.projectDetails
}
},
created() {
},
methods: {
changes(v,n){
let data = {
customerId: this.infos.customerId,
}
data[n] = v
this.$emit("focus-nowedit", -1)
customerUpdate(data).then(res=>{
if (res.code == 200){
this.$message.success('修改成功!')
}else{
this.$message.error(res.msg)
}
})
},
focusNowedit(e){
this.$emit("focus-nowedit", e)
},
}
}
</script>
<style lang="scss" scoped>
</style>
<template>
<div class="baseinfoselect">
<span class="select-title">{{ title }}</span>
<div class="select-popper " >
<span :class="{'txt':selectTxt1.name == '待添加'}">
{{selectTxt1.name}}
<i class="el-icon-caret-bottom"></i>
</span>
<el-select v-if="isDisabled==false" v-model="selectTxt1.val" class="select-multiple" placeholder="请选择" @change="editXMSL($event)">
<el-option v-for="(item,index) in list" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</div>
</div>
</template>
<script>
import { customerUpdate } from '@/api/detail/party-a/cooperate'
export default {
name: "elselects",
props: [
'title',
'list',
'id',
'val',
'field'
],
data() {
return {
isDisabled:false,
selectTxt1:this.selectTxts(),
isselect: false
}
},
created(){
this.selectTxts()
},
methods:{
editXMSL(val){
let option = this.lists(val)
if (option) {
this.selectTxt1.name = option.dictLabel;
this.selectTxt1.val = option.val;
this.$emit("changenowedit", -1);
let params = {
customerId: this.id,
}
params[this.field] = val
customerUpdate(params).then(res=>{
if (res.code == 200){
this.$message.success('修改成功!')
}else{
this.$message.error(res.msg)
}
})
}
},
lists(val){
return this.list.find(option => option.dictValue === val);
},
selectTxts(){
let option = this.lists(this.val)
if (option) {
return {
name: option.dictLabel,
val: this.val
}
}else{
return {
name:'待添加',
val:'',
}
}
}
}
}
</script>
<style lang="scss" scoped>
.baseinfoselect{
.select-title{
color: rgba(35,35,35,0.8);
}
}
</style>
<template>
<div class="app-container info-container">
<div class="company-box">
<div class="company-nav flex-box">
<div class="company-left">
<img :src="companyInfo.logoUrl" :alt="companyInfo.companyName" :title="companyInfo.companyName" v-if="companyInfo.logoUrl">
<span
:class="companyInfo.nameSimple&&companyInfo.nameSimple.length<3?'conenctLogo textOne bg'+companyInfo.nameSimple.length:'conenctLogo textTwo bg'+companyInfo.nameSimple.length"
v-else-if="companyInfo.nameSimple"
v-html="companyInfo.nameSimple"></span>
<img :src="require('@/assets/images/detail/overview/logo@2x.png')" :alt="companyInfo.companyName" :title="companyInfo.companyName" v-else>
</div>
<div class="company-title">
<div class="company-name">
{{companyInfo.companyName || ''}}
</div>
<div class="company-tag">
<div style="float: left;margin-top: 8px;" class="company-history" v-if="companyInfo.historyNames && companyInfo.historyNames.length>0">
<el-popover
placement="bottom-start"
popper-class="enterpriseLabel-item"
trigger="hover">
<el-button slot="reference">曾用名 <i class="el-icon-caret-bottom"></i></el-button>
<ul class="history-item">
<li v-for="(item, index) in companyInfo.historyNames" :key="index">{{item.value}}</li>
</ul>
</el-popover>
</div>
<span style="float: left;" :class="!labelArr.includes(companyInfo.businessStatus)?'label-bg1':'label-bg3'" v-if="companyInfo.businessStatus">{{companyInfo.businessStatus}}</span>
</div>
</div>
</div>
<div class="company-info">
<div class="info-item flex-box">
<div class="flex-box item"><label>法定代表人:</label><span class="text-cl1">{{companyInfo.corporatePerson || '--'}}</span></div>
<div class="flex-box item"><label>统一社会信用代码:</label><span class="text-cl1">{{companyInfo.creditCode || '--'}}</span></div>
</div>
<div class="info-item flex-box">
<div class="flex-box item"><label>注册资本:</label><span class="text-cl1">{{companyInfo.regCapital || '--'}}</span></div>
<div class="flex-box item"><label>注册地址:</label><span class="text-cl1">{{companyInfo.addressDetail || '--'}}</span></div>
</div>
</div>
</div>
</div>
</template>
<script>
var Swiper = require('@/assets/lib/swiper/swiper-bundle.min.js')
export default {
name: "info",
props: ['companyId', 'companyInfo'],
data() {
return {
labelArr:['失信联合惩戒企业','司法纠纷','注销'], //负向经营状态
}
},
created() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.info-container{
margin: 0;
padding: 0px 16px 10px 16px;
background: #FFFFFF;
border-radius: 4px;
.company-box{
width: 100%;
position: relative;
.company-nav{
align-items: normal;
.company-left{
width: 64px;
height: 64px;
margin-right: 12px;
flex-shrink: 0;
img{
width: 100%;
height: 100%;
border-radius: 4px;
overflow: hidden;
}
.conenctLogo{
width: 100%;
height: 100%;
color: #FFFFFF;
border-radius: 4px;
overflow: hidden;
text-align: center;
display: block;
&.textOne{
font-size: 18px;
line-height: 64px;
}
&.textTwo{
font-size: 18px;
padding: 9px 10px;
line-height: 24px;
}
&.bg1{
background: #99BE81;
}
&.bg2{
background: #76B4D4;
}
&.bg3{
background: #7A91D9;
}
&.bg4{
background: #8F8DD2;
}
&.bg5{
background: #C4A89F;
}
}
p{
font-size: 12px;
color: #999999;
text-align: center;
margin-top: 7px;
}
}
.company-title{
.company-name{
font-size: 20px;
color: #000000;
font-weight: bold;
margin-right: 100px;
}
.company-tag{
overflow: hidden;
font-size: 12px;
padding: 2px 0 10px 0;
.company-history, .company-highTech{
display: inline-block;
height: 22px;
background: #EFEFEF;
border-radius: 2px;
margin-right: 8px;
margin-left: 0;
button{
height: 22px;
line-height: 22px;
font-size: 12px;
padding: 0 8px;
background: #EFEFEF;
color: #838383;
border: 1px solid #EFEFEF;
border-radius: 2px;
}
}
.company-highTech{
button{
background: #DFEAFE;
color: #0065F9;
}
}
.enterpriseLabel-highTech{
background: #ffffff;
margin-top: 8px;
margin-right: 8px;
float: left;
}
>span{
display: inline-block;
height: 22px;
line-height: 22px;
padding: 0 8px;
border-radius: 2px;
margin-right: 8px;
margin-top: 8px;
&:last-child{
margin-right: 0;
}
}
.enterpriseLabel-span{
display: inline-block;
height: 22px;
line-height: 22px;
padding: 0 8px;
border-radius: 2px;
margin-right: 8px;
margin-top: 8px;
float: left;
}
.label-bg1{
background: #DEF6F0;
color: #0BAE8D;
}
.label-bg2{
background: #DFEAFE;
color: #0065F9;
}
.label-bg3{
background: #fbf2f1;
color: #fa5640;
}
}
}
}
.company-info{
background: #F5F9FE;
border-radius: 2px;
padding: 12px 10px 12px 16px;
.info-item{
margin-bottom: 12px;
&:last-child{
margin-bottom: 0;
}
.item-link{
color: #0081FF;
cursor: pointer;
font-size: 12px;
line-height: 20px;
&:hover{
color: #0069D0;
text-decoration: none;
}
}
.item{
font-size: 14px;
color: #333333;
&:first-child{
width: 280px;
}
&:nth-child(2){
//width: 350px;
}
&.item-line{
width: 100%;
align-items: flex-end;
.item-all{
width: calc(100% - 50px);
text-overflow: initial;
white-space: initial;
overflow: initial;
}
.item-more{
width: calc(100% - 50px);
}
}
label{
color: #666666;
flex-shrink: 0;
font-weight: 400;
}
span{
display: inline-block;
}
}
}
}
}
.history-item{
padding: 8px 8px;
li{
font-size: 12px;
color: #333333;
padding: 2px 0;
}
}
.enterpriseLabel-item{
padding: 0;
//width: 100%;
max-width: 276px;
margin-top: 8px !important;
}
.ml-4{
margin-left: 4px;
}
}
</style>
<template> <template>
<div class="app-container part-container"> <div class="app-container part-container">
<div style="background: #FFFFFF; height: 300px;"> <template v-if="isInfo">
商务信息 <!-- 企业信息 -->
<div class="view-content">
<Info :companyInfo="companyInfo" />
</div> </div>
<!-- 基本信息 -->
<div class="view-content">
<BasicIinformation
:infos="infos"
:companyType="companyType"
:nowedit="nowedit"
:noweditis="1"
@focus-nowedit="focusNowedits"/>
</div>
<!-- 发包属性 -->
<div class="view-content">
<ElCardinput
:infos="infos"
title="发包属性"
field="companyAttribute"
:projectDetails="infos.companyAttribute"
:nowedit="nowedit"
:noweditis="2"
@focus-nowedit="focusNowedits" />
</div>
<!-- 主营业务 -->
<div class="view-content">
<ElCardinput
:infos="infos"
title="主营业务"
field="mainBusiness"
:projectDetails="infos.mainBusiness"
:nowedit="nowedit"
:noweditis="3"
@focus-nowedit="focusNowedits" />
</div>
<!-- 经营范围 -->
<div class="view-content">
<ElCardinput
:infos="infos"
title="经营范围"
field="businessScope"
:projectDetails="infos.businessScope"
:nowedit="nowedit"
:noweditis="4"
@focus-nowedit="focusNowedits" />
</div>
</template>
</div> </div>
</template> </template>
<script> <script>
import { getDictType } from '@/api/main'
import { customerInfo } from '@/api/detail/party-a/cooperate'
import Info from "./component/info"
import BasicIinformation from "./component/basicIinformation"
import ElCardinput from "./component/elCardinput"
export default { export default {
name: 'Business', name: 'Business',
props: ['customerIds', 'companyInfo'],
components: {
Info,
BasicIinformation,
ElCardinput
},
data() { data() {
return { return {
isInfo:false,
infos:{},
projectDetails:'',
nowedit: -1,
companyType: {
companyNaturelist: [],//企业性质
companyLevellist: [],//企业级别
isOnlistlist:[
{
dictValue: 0,
dictLabel:'否',
},
{
dictValue: 1,
dictLabel:'是',
}
],//上市公司
isMajorlist:[
{
dictValue: 0,
dictLabel:'否',
},
{
dictValue: 1,
dictLabel:'是',
}
],//局级大客户
creditLevellist: [],//资信等级
}
} }
}, },
created() { created() {
this.customerInfos()
//企业性质
getDictType('company_nature_type').then(result=>{
this.companyType.companyNaturelist = result.code == 200 ? result.data:[]
})
//企业级别
getDictType('company_level_type').then(result=>{
this.companyType.companyLevellist = result.code == 200 ? result.data:[]
})
//资信等级
getDictType('credit_level_type').then(result=>{
this.companyType.creditLevellist = result.code == 200 ? result.data:[]
})
}, },
methods: { methods: {
customerInfos(){
customerInfo(this.customerIds).then(res=>{
this.infos = res.data
this.isInfo = true
})
},
focusNowedits(e){
this.nowedit = e
}
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.part-container{ .part-container{
margin: 0;
padding: 0; padding: 0;
.view-content{
margin-top: 16px;
} }
}
</style> </style>
...@@ -90,13 +90,14 @@ export default { ...@@ -90,13 +90,14 @@ export default {
{title: '开庭公告', pathName: 'openacourtsessionNotice'}, {title: '开庭公告', pathName: 'openacourtsessionNotice'},
// {title: '信用中国', pathName: ''} // {title: '信用中国', pathName: ''}
]}, ]},
// {title: '商务信息', pathName: 'business'}, {title: '商务信息', pathName: 'business'},
{title: '招标偏好', pathName: 'preference'}, {title: '招标偏好', pathName: 'preference'},
{title: '合作情况', pathName: 'cooperate'}, {title: '合作情况', pathName: 'cooperate'},
{title: '决策链条', pathName: 'decisionMaking'}, {title: '决策链条', pathName: 'decisionMaking'},
{title: '跟进记录', pathName: 'gjjl'} {title: '跟进记录', pathName: 'gjjl'}
], ],
customer:[ customer:[
'business',
'preference', 'preference',
'cooperate', 'cooperate',
'decisionMaking', 'decisionMaking',
......
...@@ -62,8 +62,8 @@ ...@@ -62,8 +62,8 @@
</template> </template>
</el-table> </el-table>
</div> </div>
<div class="pagination-box" v-if="paging && tableDataTotal>queryParams.pageSize"> <div class="pagination-box" v-if="show_page && tableDataTotal>queryParams.pageSize">
<el-pagination background :current-page="queryParams.pageNum" :page-size="queryParams.pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" /> <el-pagination background :current-page="current_page" :page-size="queryParams.pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div> </div>
</div> </div>
</template> </template>
...@@ -109,14 +109,29 @@ export default { ...@@ -109,14 +109,29 @@ export default {
type: Boolean, type: Boolean,
default: true default: true
}, },
MaxPage: { //最大页码
type: Number,
default: 1000000
},
}, },
data() { data() {
return { return {
current_page: this.queryParams.pageNum,
show_page: this.paging
} }
}, },
methods:{ methods:{
handleCurrentChange(e){ handleCurrentChange(e){
if(this.MaxPage<e){
this.show_page = false
this.$nextTick(() => {
this.current_page = this.queryParams.pageNum
this.$message.warning(`对不起,最多只能访问${this.MaxPage}页`)
this.show_page = true
})
}else{
this.$emit('handle-current-change',e) this.$emit('handle-current-change',e)
}
}, },
handleSizeChange(e){ handleSizeChange(e){
this.$emit('handle-current-change',e) this.$emit('handle-current-change',e)
......
...@@ -289,6 +289,7 @@ export default { ...@@ -289,6 +289,7 @@ export default {
this.addParam.customerId = this.queryParams.customerId this.addParam.customerId = this.queryParams.customerId
this.addParam.companyId = this.info.companyId this.addParam.companyId = this.info.companyId
this.addParam.userId = this.info.userId this.addParam.userId = this.info.userId
this.addParam.investmentAmount = this.addParam.investmentAmount ? this.addParam.investmentAmount : null
addProject(this.addParam).then(result=>{ addProject(this.addParam).then(result=>{
if(result.code == 200){ if(result.code == 200){
this.$message.success('添加成功!') this.$message.success('添加成功!')
......
...@@ -43,6 +43,8 @@ ...@@ -43,6 +43,8 @@
<CourtNotice v-if="currentPath.pathName=='courtNotice'" :company-id="companyId" /> <CourtNotice v-if="currentPath.pathName=='courtNotice'" :company-id="companyId" />
<OpenacourtsessionNotice v-if="currentPath.pathName=='openacourtsessionNotice'" :company-id="companyId" /> <OpenacourtsessionNotice v-if="currentPath.pathName=='openacourtsessionNotice'" :company-id="companyId" />
<template v-if="customerId"> <template v-if="customerId">
<!-- 商务信息 -->
<Business v-if="currentPath.pathName=='business'" :customer-ids="customerId" :companyInfo="companyInfo" />
<!-- 招标偏好 --> <!-- 招标偏好 -->
<Preference v-if="currentPath.pathName=='preference'" :customer-ids="customerId" /> <Preference v-if="currentPath.pathName=='preference'" :customer-ids="customerId" />
<!-- 合作情况 --> <!-- 合作情况 -->
...@@ -95,6 +97,7 @@ import Dishonesty from "./riskInformation/dishonesty" //风险信息-失信被 ...@@ -95,6 +97,7 @@ import Dishonesty from "./riskInformation/dishonesty" //风险信息-失信被
import Judgment from "./riskInformation/judgment" //风险信息-判决文书 import Judgment from "./riskInformation/judgment" //风险信息-判决文书
import CourtNotice from "./riskInformation/courtNotice" //风险信息-法院公告 import CourtNotice from "./riskInformation/courtNotice" //风险信息-法院公告
import OpenacourtsessionNotice from "./riskInformation/openacourtsessionNotice" //风险信息-开庭公告 import OpenacourtsessionNotice from "./riskInformation/openacourtsessionNotice" //风险信息-开庭公告
import Business from "./business" //商务信息
import Preference from "./preference" //招标偏好 import Preference from "./preference" //招标偏好
import Cooperate from "./cooperate" //合作情况 import Cooperate from "./cooperate" //合作情况
import DecisionMaking from "./decisionMaking" //决策链条 import DecisionMaking from "./decisionMaking" //决策链条
...@@ -134,6 +137,7 @@ export default { ...@@ -134,6 +137,7 @@ export default {
Judgment, Judgment,
CourtNotice, CourtNotice,
OpenacourtsessionNotice, OpenacourtsessionNotice,
Business,
Preference, Preference,
Cooperate, Cooperate,
DecisionMaking, DecisionMaking,
......
...@@ -60,7 +60,7 @@ export default { ...@@ -60,7 +60,7 @@ export default {
{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: '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: '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: '招标公告', 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: '标讯Pro', pathName: 'tencent', ico: require("@/assets/images/detail/overview/clue_ico6.png"), count: 0, category:'business', field:'proBiddingAnnouncement', 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")}, {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")},
] ]
} }
......
...@@ -155,7 +155,7 @@ export default { ...@@ -155,7 +155,7 @@ export default {
showState: false, showState: false,
graphList: [ graphList: [
{id: 1, name:'业务往来', isShow:true, intro:[{id: 101, name:'客户', val:0, category:'global', field:'customer'},{id: 102, name:'供应商', val:0, category:'global', field:'supplier'}], ico:require('@/assets/images/detail/overview/company_ywwl.png')}, {id: 1, name:'业务往来', isShow:true, intro:[{id: 101, name:'客户', val:0, category:'global', field:'customer'},{id: 102, name:'供应商', val:0, category:'global', field:'supplier'}], ico:require('@/assets/images/detail/overview/company_ywwl.png')},
{id: 2, name:'商机线索', isShow:true, intro:[{id: 201, name:'专项债项目', val:0, category:'xxx', field:'yy'},{id: 202, name:'招标计划', val:0, category:'xxx', field:'zz'}], ico:require('@/assets/images/detail/overview/company_sjxs.png')}, {id: 2, name:'商机线索', isShow:true, intro:[{id: 201, name:'专项债项目', val:0, category:'performance', field:'specialDebt'},{id: 202, name:'招标计划', val:0, category:'performance', field:'bidPlan'}], ico:require('@/assets/images/detail/overview/company_sjxs.png')},
{id: 3, name:'城投拿地', isShow:true, intro:[{id: 301, name:'土地交易', val:0, category:'global', field:'landInfo'},{id: 302, name:'行政许可', val:0, category:'business', field:'adminLicensing'}], ico:require('@/assets/images/detail/overview/company_ctnd.png')}, {id: 3, name:'城投拿地', isShow:true, intro:[{id: 301, name:'土地交易', val:0, category:'global', field:'landInfo'},{id: 302, name:'行政许可', val:0, category:'business', field:'adminLicensing'}], ico:require('@/assets/images/detail/overview/company_ctnd.png')},
{id: 4, name:'对外投资', isShow:true, intro:[{id: 401, name:'企业经营实力展现'}], ico:require('@/assets/images/detail/overview/company_dwtz.png')}, {id: 4, name:'对外投资', isShow:true, intro:[{id: 401, name:'企业经营实力展现'}], ico:require('@/assets/images/detail/overview/company_dwtz.png')},
{id: 5, name:'股权穿透', isShow:true, intro:[{id: 501, name:'瞬息掌握企业关系'}], ico:require('@/assets/images/detail/overview/company_gqct.png')}, {id: 5, name:'股权穿透', isShow:true, intro:[{id: 501, name:'瞬息掌握企业关系'}], ico:require('@/assets/images/detail/overview/company_gqct.png')},
......
...@@ -144,12 +144,12 @@ ...@@ -144,12 +144,12 @@
</div> </div>
<div class=" table-item-jf" v-if="tableData.length>0"> <div class=" table-item-jf" v-if="tableData.length>0">
<el-table :data="tableData" :header-cell-style="{ background:'#F0F3FA'}" element-loading-text="Loading" border highlight-current-row> <el-table :data="tableData" :header-cell-style="{ background:'#F0F3FA'}" element-loading-text="Loading" border highlight-current-row>
<el-table-column type="index" label="序号" width="60"> <el-table-column type="index" label="序号" fixed width="60">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{(pageNum - 1) *20 + scope.$index + 1}}</span> <span>{{(pageNum - 1) *20 + scope.$index + 1}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="公司名称" width="430" > <el-table-column label="公司名称" fixed width="430" >
<template slot-scope="scope"> <template slot-scope="scope">
<div class="renling"> <div class="renling">
<router-link :to="`/enterprise/${encodeStr(scope.row.companyId)}`" tag="a" class="list-titel-a" v-html="scope.row.companyName" ></router-link> <router-link :to="`/enterprise/${encodeStr(scope.row.companyId)}`" tag="a" class="list-titel-a" v-html="scope.row.companyName" ></router-link>
...@@ -825,7 +825,7 @@ export default { ...@@ -825,7 +825,7 @@ export default {
delete params.provinceIds delete params.provinceIds
} }
if(data.cityIds.length>0){ if(data.cityIds.length>0){
params['cityIds'] = data.provinceIds; params['cityIds'] = data.cityIds;
}else{ }else{
delete params.cityIds delete params.cityIds
} }
......
...@@ -74,8 +74,8 @@ export default { ...@@ -74,8 +74,8 @@ export default {
return { return {
codeUrl: "", codeUrl: "",
loginForm: { loginForm: {
username: "admin", username: "",
password: "admin123", password: "",
rememberMe: false, rememberMe: false,
code: "", code: "",
uuid: "" uuid: ""
......
...@@ -226,7 +226,7 @@ ...@@ -226,7 +226,7 @@
}, },
selCompany(item){ selCompany(item){
this.queryParam.companyId = item.jskEid this.queryParam.companyId = item.jskEid
this.queryParam.ownerCompany = item.name.replace(/<[^>]+>/g, '') this.queryParam.companyName = item.name.replace(/<[^>]+>/g, '')
this.showlist = false this.showlist = false
}, },
handleALL(event){ handleALL(event){
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<div class="con i" style="width: 100%;"> <div class="con i" style="width: 100%;">
<span style="float: left;margin-top: 2px">项目标签 :</span> <span style="float: left;margin-top: 2px">项目标签 :</span>
<div class="flex tipinput"> <div class="flex tipinput">
<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 class="tips" v-for="(item,index) in tipslit">{{item}}<img v-if="isDisabled == false" @click="deltip(item)" src="@/assets/images/project/del.png"></div>
<div style="position: relative"> <div style="position: relative">
<el-input placeholder="待添加" :disabled="isDisabled" v-model="tipsvalue" @input="getValue" :style="spanWidth"></el-input><span class="spanText">{{ tipsvalue }}</span> <el-input placeholder="待添加" :disabled="isDisabled" v-model="tipsvalue" @input="getValue" :style="spanWidth"></el-input><span class="spanText">{{ tipsvalue }}</span>
</div> </div>
......
...@@ -9,7 +9,21 @@ ...@@ -9,7 +9,21 @@
<el-input type="text" v-model="param.keyword" clearable placeholder="输入关键词查询"></el-input> <el-input type="text" v-model="param.keyword" clearable placeholder="输入关键词查询"></el-input>
<div class="btn" @click="handleCurrentChange(1)">搜索</div> <div class="btn" @click="handleCurrentChange(1)">搜索</div>
</div> </div>
<div class="btn btn_primary h32 b2" @click="getUP"><div class="img img2"></div>上传</div> <!--<div class="btn btn_primary h32 b2" @click="getUP" v-if="fileDatas.total>0"><div class="img img2"></div>上传</div>-->
<div class="btn btn_primary h32 b2" v-if="fileDatas.total>0"><div class="img img2"></div>
<el-upload
class="upload-demo"
:action="action"
:on-change="handleFileListChange"
:multiple="false"
ref="upload"
:file-list="fileList"
accept=".word,.pdf.excel,.xlsx,.doc,.docx"
:headers="headers"
:show-file-list="false"
:on-success="onSuccess">
上传
</el-upload></div>
</div> </div>
<div class="filepath" v-if="filename"><font @click="getall">全部</font> / <span> <img class="img" src="@/assets/images/folder.png">{{filename}}</span></div> <div class="filepath" v-if="filename"><font @click="getall">全部</font> / <span> <img class="img" src="@/assets/images/folder.png">{{filename}}</span></div>
<div class="uploadbox" v-if="isupload"> <div class="uploadbox" v-if="isupload">
...@@ -53,7 +67,20 @@ ...@@ -53,7 +67,20 @@
<img src="@/assets/images/project/empty.png"> <img src="@/assets/images/project/empty.png">
<div class="p1">抱歉,没找到相关数据</div> <div class="p1">抱歉,没找到相关数据</div>
<div class="p2">建议调整关键词或筛选条件,重新搜索</div> <div class="p2">建议调整关键词或筛选条件,重新搜索</div>
<div v-if="isDisabled==false" class="btn btn_primary h36 w102" @click="getUP">上传文档</div> <!--<div v-if="isDisabled==false" class="btn btn_primary h36 w102" @click="getUP">上传文档</div>-->
<div v-if="isDisabled==false" class="btn btn_primary h36 w102"> <el-upload
class="upload-demo"
:action="action"
:on-change="handleFileListChange"
:multiple="false"
ref="upload"
:file-list="fileList"
accept=".word,.pdf.excel,.xlsx,.doc,.docx"
:headers="headers"
:show-file-list="false"
:on-success="onSuccess">
上传文档
</el-upload></div>
</div> </div>
</template> </template>
<el-table-column <el-table-column
......
...@@ -15,6 +15,12 @@ ...@@ -15,6 +15,12 @@
<div class="titles"> <div class="titles">
<img src="@/assets/images/project/headimg.png" class="headimg"> <img src="@/assets/images/project/headimg.png" class="headimg">
<strong class="text">{{ProjectData.projectName}}</strong> <strong class="text">{{ProjectData.projectName}}</strong>
<div class="protypes i1" v-if="isDisabled == false">
<span v-for="(item,index) in projectStatus"><i v-if="ProjectData.status == item.dictValue">{{item.dictLabel}}</i></span>
<el-select class="sels" v-model="ProjectData.status" @change="editXMSL({status:ProjectData.status})">
<el-option v-for="(item,index) in projectStatus" :key="index" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select>
</div>
<div class="locks" v-if="ProjectData.isFounder == 1"> <div class="locks" v-if="ProjectData.isFounder == 1">
<div @click="islock=true"> <div @click="islock=true">
<img v-if="ProjectData.isPrivate == 0" src="@/assets/images/project/lock.png"> <img v-if="ProjectData.isPrivate == 0" src="@/assets/images/project/lock.png">
...@@ -167,6 +173,7 @@ ...@@ -167,6 +173,7 @@
projectStage:[],//项目阶段 projectStage:[],//项目阶段
projectType:[],//项目类型 projectType:[],//项目类型
projectCategory:[],//项目类别 projectCategory:[],//项目类别
projectStatus:[],//项目状态
nowedit:-1, nowedit:-1,
address:[], address:[],
addresstxt:'待添加', addresstxt:'待添加',
...@@ -198,6 +205,10 @@ ...@@ -198,6 +205,10 @@
getDictType('project_category').then(result=>{ getDictType('project_category').then(result=>{
this.projectCategory = result.code == 200 ? result.data:[] this.projectCategory = result.code == 200 ? result.data:[]
}) })
//项目状态
getDictType('project_status_type').then(result=>{
this.projectStatus = result.code == 200 ? result.data:[]
})
//获取基本信息 //获取基本信息
this.getXMSL() this.getXMSL()
}, },
...@@ -235,6 +246,7 @@ ...@@ -235,6 +246,7 @@
this.xmlx = result.data.projectType==""||result.data.projectType==null?"请选择":result.data.projectType this.xmlx = result.data.projectType==""||result.data.projectType==null?"请选择":result.data.projectType
this.xmlb = result.data.projectCategory==""||result.data.projectCategory==null?"请选择":result.data.projectCategory this.xmlb = result.data.projectCategory==""||result.data.projectCategory==null?"请选择":result.data.projectCategory
this.thisindex = result.data.projectStage this.thisindex = result.data.projectStage
this.ProjectData.status = result.data.status.toString()
let list = [] let list = []
let txt = '' let txt = ''
if(result.data.provinceId != ""){ if(result.data.provinceId != ""){
...@@ -271,6 +283,9 @@ ...@@ -271,6 +283,9 @@
return false return false
let params = param let params = param
params.id = this.id params.id = this.id
if(param.status){
param.status = parseInt(param.status)
}
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('修改成功!')
...@@ -398,6 +413,57 @@ ...@@ -398,6 +413,57 @@
.head{ .head{
.titles{ .titles{
line-height: 31px; line-height: 31px;
.protypes{
min-width: 96px;
padding: 0 18px;
height: 24px;
border-radius: 20px;
margin-left: 16px;
display: inline-block;
cursor: pointer;
font-size: 12px;
line-height: 24px;
text-align: center;
position: relative;
&.i1{
background: #FCF3DF;
color: #B5760B;
&:hover{
background: #F3E2BB;
}
}
&.i2{
background: #E5F6E4;
color: #09A442;
&:hover{
background: #B8EBB7;
}
}
&.i3{
background: #E5F2FF;
color: #0081FF;
&:hover{
background: #CBE5FF;
}
}
>span{
width: 100%;
}
.sels{
opacity: 0;
}
.el-select{
position: absolute;
top: 0;
width: 100%;
left: 0;
height: 24px;
::v-deep.el-input,::v-deep.el-input__inner{
height: 24px;
}
}
}
.headimg{ .headimg{
float: left; float: left;
margin-right: 16px; margin-right: 16px;
......
...@@ -57,12 +57,14 @@ export default { ...@@ -57,12 +57,14 @@ export default {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => { updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功")
store.commit('SET_TOKEN', '') store.commit('SET_TOKEN', '')
store.commit('SET_ROLES', []) store.commit('SET_ROLES', [])
store.commit('SET_PERMISSIONS', []) store.commit('SET_PERMISSIONS', [])
removeToken() removeToken()
setTimeout(function() {
location.href = '/index' location.href = '/index'
}, 2000)
}); });
} }
}); });
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div> <div>
<div class="user-info-head" @click="editCropper()"> <div class="user-info-head" @click="editCropper()">
<img v-bind:src="options.img" title="点击上传头像" class="img-circle img-lg" v-if="options.img" /> <img v-bind:src="options.img" title="点击上传头像" class="img-circle img-lg" v-if="options.img" />
<span v-else class="userInfo-avatar" v-else>{{ options.name&&options.name.slice(0, 1).toUpperCase() }}</span> <span class="userInfo-avatar" v-else>{{ options.name&&options.name.slice(0, 1).toUpperCase() }}</span>
</div> </div>
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened" @close="closeDialog"> <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="modalOpened" @close="closeDialog">
<el-row> <el-row>
......
...@@ -32,6 +32,11 @@ public class BusinessBrowseVo { ...@@ -32,6 +32,11 @@ public class BusinessBrowseVo {
*/ */
private String projectCategory; private String projectCategory;
/**
* 项目状态(0.储备中1.跟进中2.已合作)
*/
private Integer status;
/** /**
* 投资估算 * 投资估算
*/ */
......
...@@ -76,7 +76,7 @@ public class EnterpriseService { ...@@ -76,7 +76,7 @@ public class EnterpriseService {
List<CustomerStatusListVo> claimStatusList = iCustomerService.selectStatusList(uipIds); List<CustomerStatusListVo> claimStatusList = iCustomerService.selectStatusList(uipIds);
if (CollectionUtils.isNotEmpty(claimStatusList)) { if (CollectionUtils.isNotEmpty(claimStatusList)) {
companyMap.put("claimStatus", 1); companyData.put("claimStatus", 1);
} }
return R.ok(companyData); return R.ok(companyData);
......
...@@ -28,5 +28,7 @@ public interface CustomerMapper extends BaseMapper<Customer> { ...@@ -28,5 +28,7 @@ public interface CustomerMapper extends BaseMapper<Customer> {
List<CustomerStatusListVo> selectStatusList(@Param("uipIds") List<String> uipIds, @Param("userId") Long userId); List<CustomerStatusListVo> selectStatusList(@Param("uipIds") List<String> uipIds, @Param("userId") Long userId);
List<String> selectUipIdList(@Param("uipIds") List<String> uipIds, @Param("userId") Long userId);
} }
...@@ -3,10 +3,7 @@ package com.dsk.system.service; ...@@ -3,10 +3,7 @@ package com.dsk.system.service;
import com.dsk.system.domain.customer.Customer; import com.dsk.system.domain.customer.Customer;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto; import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.dto.CustomerSearchDto; import com.dsk.system.domain.customer.dto.CustomerSearchDto;
import com.dsk.system.domain.customer.vo.CustomerBusinessListVo; import com.dsk.system.domain.customer.vo.*;
import com.dsk.system.domain.customer.vo.CustomerListVo;
import com.dsk.system.domain.customer.vo.CustomerStatusListVo;
import com.dsk.system.domain.customer.vo.CustomerVo;
import java.util.List; import java.util.List;
...@@ -32,4 +29,6 @@ public interface ICustomerService { ...@@ -32,4 +29,6 @@ public interface ICustomerService {
List<CustomerStatusListVo> selectStatusList(List<String> uipIds); List<CustomerStatusListVo> selectStatusList(List<String> uipIds);
List<String> selectUipIdList(List<String> uipIds);
} }
package com.dsk.system.service; package com.dsk.system.service;
import com.dsk.common.core.page.TableDataInfo; import com.alibaba.fastjson2.JSONObject;
import com.dsk.common.dtos.ComposeQueryDto; import com.dsk.common.core.domain.AjaxResult;
/** /**
* @ClassName EconomicService * @ClassName EconomicService
...@@ -19,5 +19,5 @@ public interface RegionalEnterprisesService { ...@@ -19,5 +19,5 @@ public interface RegionalEnterprisesService {
*@Author: Dgm *@Author: Dgm
*@date: 2023/5/18 10:25 *@date: 2023/5/18 10:25
*/ */
TableDataInfo page(ComposeQueryDto compose) throws Exception; AjaxResult enterprisePage(JSONObject compose) throws Exception;
} }
...@@ -11,10 +11,7 @@ import com.dsk.system.domain.customer.Customer; ...@@ -11,10 +11,7 @@ import com.dsk.system.domain.customer.Customer;
import com.dsk.system.domain.customer.CustomerUser; import com.dsk.system.domain.customer.CustomerUser;
import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto; import com.dsk.system.domain.customer.dto.CustomerBusinessSearchDto;
import com.dsk.system.domain.customer.dto.CustomerSearchDto; import com.dsk.system.domain.customer.dto.CustomerSearchDto;
import com.dsk.system.domain.customer.vo.CustomerBusinessListVo; import com.dsk.system.domain.customer.vo.*;
import com.dsk.system.domain.customer.vo.CustomerListVo;
import com.dsk.system.domain.customer.vo.CustomerStatusListVo;
import com.dsk.system.domain.customer.vo.CustomerVo;
import com.dsk.system.dskService.EnterpriseService; import com.dsk.system.dskService.EnterpriseService;
import com.dsk.system.mapper.CustomerMapper; import com.dsk.system.mapper.CustomerMapper;
import com.dsk.system.mapper.CustomerUserMapper; import com.dsk.system.mapper.CustomerUserMapper;
...@@ -131,4 +128,10 @@ public class CustomerServiceImpl implements ICustomerService { ...@@ -131,4 +128,10 @@ public class CustomerServiceImpl implements ICustomerService {
return baseMapper.selectStatusList(uipIds, SecurityUtils.getUserId()); return baseMapper.selectStatusList(uipIds, SecurityUtils.getUserId());
} }
@Override
public List<String> selectUipIdList(List<String> uipIds) {
return baseMapper.selectUipIdList(uipIds, SecurityUtils.getUserId());
}
} }
package com.dsk.system.service.impl; package com.dsk.system.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.dsk.common.core.page.TableDataInfo; import cn.hutool.core.util.ObjectUtil;
import com.dsk.common.dtos.ComposeQueryDto; import com.alibaba.fastjson2.JSONObject;
import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.model.EnterpriseInfoHeaderBody;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.service.RegionalEnterprisesService; import com.dsk.system.service.RegionalEnterprisesService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
...@@ -24,8 +31,51 @@ public class RegionalEnterprisesServiceImpl implements RegionalEnterprisesServic ...@@ -24,8 +31,51 @@ public class RegionalEnterprisesServiceImpl implements RegionalEnterprisesServic
private DskOpenApiUtil dskOpenApiUtil; private DskOpenApiUtil dskOpenApiUtil;
@Override @Override
public TableDataInfo page(ComposeQueryDto compose) throws Exception { public AjaxResult enterprisePage(JSONObject object) {
Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page", BeanUtil.beanToMap(compose, false, false)); Map<String, Object> map = dskOpenApiUtil.requestBody("/nationzj/enterprice/page",object);
return dskOpenApiUtil.responsePage(map); 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 companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
//常合作客户id
Integer topCustomerId = MapUtils.getInteger(companyMap, "topCustomerId");
EnterpriseInfoHeaderBody body = new EnterpriseInfoHeaderBody();
body.setCompanyId(topCustomerId);
if (ObjectUtil.isNotEmpty(topCustomerId)) {
Map<String, Object> infoHeaderMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(body, false, false));
Integer infoHeaderCode = MapUtils.getInteger(infoHeaderMap, "code", 300);
if (infoHeaderCode.equals(HttpStatus.OK.value())) {
Map infoHeaderData = MapUtils.getMap(infoHeaderMap, "data", null);
String companyName = MapUtils.getString(infoHeaderData, "companyName", null);
companyMap.put("topCustomer", companyName);
} else {
companyMap.put("topCustomer", null);
}
} else {
companyMap.put("topCustomer", null);
}
//常合作供应商id
Integer topSupplierId = MapUtils.getInteger(companyMap, "topSupplierId");
body.setCompanyId(topSupplierId);
if (ObjectUtil.isNotEmpty(topSupplierId)) {
Map<String, Object> infoHeaderMap = dskOpenApiUtil.requestBody("/api/jsk/enterprise/infoHeader", BeanUtil.beanToMap(body, false, false));
Integer infoHeaderCode = MapUtils.getInteger(infoHeaderMap, "code", 300);
if (infoHeaderCode.equals(HttpStatus.OK.value())) {
Map infoHeaderData = MapUtils.getMap(infoHeaderMap, "data", null);
String companyName = MapUtils.getString(infoHeaderData, "companyName", null);
companyMap.put("topSupplier", companyName);
} else {
companyMap.put("topSupplier", null);
}
} else {
companyMap.put("topSupplier", null);
}
}
}
}
return BeanUtil.toBean(map, AjaxResult.class);
} }
} }
...@@ -5,7 +5,6 @@ import com.dsk.acc.openapi.client.util.CommonUtils; ...@@ -5,7 +5,6 @@ import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.core.domain.AjaxResult; import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.dtos.UrbanInvestmentPlatformDto; import com.dsk.common.dtos.UrbanInvestmentPlatformDto;
import com.dsk.common.utils.DskOpenApiUtil; import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.domain.customer.vo.CustomerStatusListVo;
import com.dsk.system.service.ICustomerService; import com.dsk.system.service.ICustomerService;
import com.dsk.system.service.UrbanInvestmentPlatformService; import com.dsk.system.service.UrbanInvestmentPlatformService;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
...@@ -52,23 +51,19 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo ...@@ -52,23 +51,19 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
for (Object dataMap : list) { for (Object dataMap : list) {
uipIds.add(MapUtils.getString(CommonUtils.assertAsMap(dataMap), "uipId")); uipIds.add(MapUtils.getString(CommonUtils.assertAsMap(dataMap), "uipId"));
} }
List<CustomerStatusListVo> claimStatusList = iCustomerService.selectStatusList(uipIds); List<String> claimStatusList = iCustomerService.selectUipIdList(uipIds);
//按照城投企业id合并两个list //按照城投企业id合并两个list
for (Object companyObj : list) { for (Object companyObj : list) {
Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj); Map<String, Object> companyMap = CommonUtils.assertAsMap(companyObj);
String uipId = MapUtils.getString(companyMap, "uipId","uipId"); String uipId = MapUtils.getString(companyMap, "uipId","uipId");
if (CollectionUtils.isEmpty(claimStatusList)) { if (CollectionUtils.isEmpty(claimStatusList)) {
companyMap.put("claimStatus", 0); companyMap.put("claimStatus", 0);
} } else if (claimStatusList.contains(uipId)) {
for (CustomerStatusListVo vo : claimStatusList) {
if (uipId.equals(vo.getUipId())) {
companyMap.put("claimStatus", 1); companyMap.put("claimStatus", 1);
} else { } else {
companyMap.put("claimStatus", 0); companyMap.put("claimStatus", 0);
} }
} }
}
return BeanUtil.toBean(map, AjaxResult.class); return BeanUtil.toBean(map, AjaxResult.class);
} }
......
...@@ -69,5 +69,16 @@ ...@@ -69,5 +69,16 @@
</foreach> </foreach>
</select> </select>
<select id="selectUipIdList" resultType="java.lang.String">
select
ct.uip_id
from customer ct
join customer_user ctu on ct.customer_id = ctu.customer_id
where ctu.user_id = #{userId} and ct.uip_id in
<foreach collection="uipIds" item="uipId" open="(" separator="," close=")">
#{uipId}
</foreach>
</select>
</mapper> </mapper>
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