Commit ec5d9c16 authored by 远方不远's avatar 远方不远
parents dc34e768 46f1be71
......@@ -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);
}
......
......@@ -387,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{
......
......@@ -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;
}
}
}
......
......@@ -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++){
......
......@@ -7,7 +7,7 @@
</div>
<div class="app-container">
<gjjl types="gjdt" :data="datas" isDisabled=false></gjjl>
<gjjl types="gjdt" :data="datas" isDisabled=true></gjjl>
</div>
</div>
</template>
......
......@@ -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>
......
......@@ -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
}
}
}
......
......@@ -57,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")},
......@@ -148,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){
......
......@@ -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},
......
......@@ -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>
......
......@@ -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