Commit 563d64b9 authored by yht15023815643's avatar yht15023815643

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

parents f30fcd45 a9c26765
......@@ -4,6 +4,7 @@ import com.dsk.common.core.controller.BaseController;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.system.domain.business.BusinessBacklog;
import com.dsk.common.core.page.TableDataInfo;
import com.dsk.system.domain.business.dto.BusinessBacklogListDto;
import com.dsk.system.service.IBusinessBacklogService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -31,10 +32,10 @@ public class BusinessBacklogController extends BaseController
*/
// @PreAuthorize("@ss.hasPermi('system:backlog:list')")
@GetMapping("/list")
public TableDataInfo list(BusinessBacklog businessBacklog)
public TableDataInfo list(BusinessBacklogListDto dto)
{
startPage();
return getDataTable(businessBacklogService.selectBusinessBacklogList(businessBacklog));
return getDataTable(businessBacklogService.selectBusinessBacklogList(dto));
}
/**
......
......@@ -52,8 +52,7 @@ public class BusinessInfoController extends BaseController
public TableDataInfo list(BusinessListDto dto)
{
startPage();
List<BusinessListVo> list = businessInfoService.selectBusinessInfoList(dto);
return getDataTable(list);
return getDataTable(businessInfoService.selectBusinessInfoList(dto));
}
/**
......
......@@ -69,6 +69,9 @@ public class SysUser extends BaseEntity
@Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", type = Excel.Type.EXPORT)
private Date loginDate;
//是否体验用户 0否 1是
private Integer isExperience;
/** 部门对象 */
@Excels({
@Excel(name = "部门名称", targetAttr = "deptName", type = Excel.Type.EXPORT),
......@@ -296,6 +299,14 @@ public class SysUser extends BaseEntity
this.roleId = roleId;
}
public Integer getIsExperience() {
return isExperience;
}
public void setIsExperience(Integer isExperience) {
this.isExperience = isExperience;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
......@@ -312,6 +323,7 @@ public class SysUser extends BaseEntity
.append("delFlag", getDelFlag())
.append("loginIp", getLoginIp())
.append("loginDate", getLoginDate())
.append("isExperience", getIsExperience())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
......
package com.dsk.common.dtos;
import lombok.Data;
import java.util.Objects;
/**
* @ClassName UrbanInvestmentPlatformSubjectLevelDto
* @Description 信用评级
* @Author Dgm
* @Date 2023/5/23 14:05
* @Version
*/
@Data
public class UrbanInvestmentPlatformSubjectLevelDto {
/**
* 企业Id
*/
private Long companyId;
/**
* 主体评级
*/
private String bratingSubjectLevel;
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
UrbanInvestmentPlatformSubjectLevelDto that = (UrbanInvestmentPlatformSubjectLevelDto) o;
return Objects.equals(companyId, that.companyId);
}
@Override
public int hashCode() {
return Objects.hash(companyId);
}
}
......@@ -38,7 +38,7 @@
width="316">
<template slot-scope="scope">
<div class="ps1">
<div class="wordprimary ps2" @click="toDetail(scope.row,'')">{{scope.row.companyName}}</div>
<div class="wordprimary ps2" @click="toDetail(scope.row,'')" v-html="scope.row.companyName"></div>
<div class="ps3">
<el-tooltip class="item" effect="dark" content="重新认领" placement="top">
<div @click="toRL(scope.row)"><img class="i" src="@/assets/images/project/khrl1.png"><img class="o" src="@/assets/images/project/khrl2.png"></div>
......
<template>
<el-skeleton animated>
<template slot="template">
<el-skeleton-item variant="text" style="width: 60%;"/>
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 60%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
<el-skeleton-item variant="text" style="width: 100%;" />
</template>
</el-skeleton>
</template>
<script>
export default {
name: 'skeleton'
}
</script>
<style lang="scss" scoped>
.el-skeleton__item{
height: 20px;
border-radius: 0;
margin: 9px 0;
background: #f0f0f0;
}
</style>
......@@ -8,9 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
:tableLoading="tableLoading"
v-if="!isSkeleton"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
......@@ -27,11 +27,12 @@ import {
abnormalYears
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default {
name: 'BusinessAnomaly',
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
......@@ -56,6 +57,7 @@ export default {
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true
}
},
created() {
......@@ -68,11 +70,11 @@ export default {
methods: {
handleQuery(params) {
let data = params ? params : this.queryParams
this.tableLoading = true
this.isSkeleton = true
abnormalPage(data).then(res => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.tableLoading = false
this.isSkeleton = false
})
},
years(){
......
......@@ -8,9 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
:tableLoading="tableLoading"
v-if="!isSkeleton"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
......@@ -29,11 +29,12 @@ import {
noticesCaseReason
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default {
name: 'CourtNotice',
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
......@@ -60,6 +61,7 @@ export default {
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true
}
},
created() {
......@@ -74,11 +76,11 @@ export default {
methods: {
handleQuery(params) {
let data = params ? params : this.queryParams
this.tableLoading = true
this.isSkeleton = true
noticesPage(data).then(res => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.tableLoading = false
this.isSkeleton = false
})
},
// 公告
......
......@@ -8,10 +8,10 @@
:isExcel="false"
@handle-search="handleSearch"
/>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
v-if="!isSkeleton"
:index-fixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
......@@ -27,11 +27,12 @@ import {
executedPage
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default {
name: 'Dishonesty',
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
......@@ -56,6 +57,7 @@ export default {
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true
}
},
created() {
......@@ -67,11 +69,11 @@ export default {
methods: {
handleQuery(params) {
let data = params ? params : this.queryParams
this.tableLoading = true
this.isSkeleton = true
executedPage(data).then(res => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.tableLoading = false
this.isSkeleton = false
})
}
}
......
......@@ -8,9 +8,9 @@
:isExcel="false"
@handle-search="handleSearch"
/>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
:tableLoading="tableLoading"
v-if="!isSkeleton"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
......@@ -26,11 +26,12 @@ import {
executedPersonsPage
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default {
name: 'IfThePerson',
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
......@@ -53,6 +54,7 @@ export default {
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true
}
},
created() {
......@@ -64,11 +66,11 @@ export default {
methods: {
handleQuery(params) {
let data = params ? params : this.queryParams
this.tableLoading = true
this.isSkeleton = true
executedPersonsPage(data).then(res => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.tableLoading = false
this.isSkeleton = false
})
}
}
......
......@@ -8,9 +8,9 @@
:isExcel="false"
@handle-search="handleSearch"
/>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
:tableLoading="tableLoading"
v-if="!isSkeleton"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
......@@ -35,11 +35,12 @@ import {
lawsuitsRole
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default {
name: 'Judgment',
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
......@@ -68,6 +69,7 @@ export default {
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true
}
},
created() {
......@@ -81,14 +83,14 @@ export default {
methods: {
handleQuery(params) {
let data = params ? params : this.queryParams
this.tableLoading = true
this.isSkeleton = true
lawsuitsPage(data).then(res => {
this.tableData = res.rows
for (var i=0;i<this.tableData.length;i++){
this.tableData[i].relatedCompanies = JSON.parse(this.tableData[i].relatedCompanies)
}
this.tableDataTotal = res.total
this.tableLoading = false
this.isSkeleton = false
})
},
lawsuitsCauseActions(){
......
......@@ -8,10 +8,10 @@
:isExcel="false"
@handle-search="handleSearch"
/>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
:index-fixed="true"
:tableLoading="tableLoading"
v-if="!isSkeleton"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
......@@ -35,11 +35,12 @@ import {
kaitingPureRole
} from '@/api/detail/party-a/riskInformation'
import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default {
name: 'OpenacourtsessionNotice',
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
......@@ -71,6 +72,7 @@ export default {
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true
}
},
created() {
......@@ -88,14 +90,14 @@ export default {
},
handleQuery(params) {
let data = params ? params : this.queryParams
this.tableLoading = true
this.isSkeleton = true
kaitingPage(data).then(res => {
this.tableData = res.rows
for (var i=0;i<this.tableData.length;i++){
this.tableData[i].relatedCompanies = JSON.parse(this.tableData[i].relatedCompanies)
}
this.tableDataTotal = res.total
this.tableLoading = false
this.isSkeleton = false
})
},
kaitingCauseActions(){
......
......@@ -8,10 +8,10 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
v-if="!isSkeleton"
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
:tableDataTotal="tableDataTotal"
......@@ -35,11 +35,12 @@ import {
penalizePage,
penalizeReasonType
} from '@/api/detail/party-a/riskInformation'
import skeleton from '../component/skeleton'
export default {
name: 'Punish',
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
......@@ -66,6 +67,7 @@ export default {
tableData:[],
tableDataTotal:0,
showList:[],
isSkeleton:true
}
},
created() {
......@@ -78,11 +80,11 @@ export default {
methods: {
handleQuery(params) {
let data = params ? params : this.queryParams
this.tableLoading = true
this.isSkeleton = true
penalizePage(data).then((res) => {
this.tableData = res.rows
this.tableDataTotal = res.total
this.tableLoading = false
this.isSkeleton = false
})
},
penalizeReasonTypeData(){
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
v-if="!isSkeleton"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
......@@ -32,11 +33,12 @@ import {
landUse
} from '@/api/detail/party-a/urbanLnvestment'
import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
export default {
name: 'landAcquisition',
mixins: [mixin],
components: {
skeleton
},
props: ['companyId'],
data() {
......@@ -66,6 +68,7 @@ export default {
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true
}
},
created() {
......@@ -78,11 +81,11 @@ export default {
methods: {
handleQuery(params) {
let data = params ? params : this.queryParams
this.tableLoading = true
this.isSkeleton = true
landTransactionPage(data).then(res=>{
this.tableData = res.rows
this.tableDataTotal = res.total
this.tableLoading = false
this.isSkeleton = false
})
},
//土地用途
......
......@@ -6,7 +6,8 @@
</div>
<div class="params-dw"><img src="@/assets/images/addree.png" />{{ addressList }}</div>
</div>
<div class="table-item">
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div class="table-item" v-if="!isSkeleton">
<el-table
:tableLoading="tableLoading"
:data="getValues"
......@@ -29,13 +30,14 @@
<script>
import dataRegion from '@/assets/json/dataRegion'
import skeleton from '../component/skeleton'
import {
regionalEconomy
} from '@/api/detail/party-a/urbanLnvestment'
export default {
name: 'regionalEconomies',
components: {
skeleton
},
props: ['companyId','companyInfo'],
data() {
......@@ -209,7 +211,8 @@ export default {
label: '债务率-宽口径(%)',
},
],
tableLoading: true
tableLoading: true,
isSkeleton:true
}
},
created() {
......@@ -228,11 +231,11 @@ export default {
methods: {
//地区
regionalEconomys() {
this.tableLoading = true
this.isSkeleton = true
if(this.companyInfo){
regionalEconomy(this.params).then(res => {
this.tableData = res.data
this.tableLoading = false
this.isSkeleton = false
})
this.dataRegion(this.companyInfo.provinceId, this.companyInfo.cityId)
}
......
......@@ -87,8 +87,9 @@
</div>
</template>
</head-form>
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<tables
v-if="!isSkeleton"
:tableLoading="tableLoading"
:tableData="tableData"
:forData="forData"
......@@ -118,6 +119,7 @@
<script>
import mixin from '../mixins/mixin'
import skeleton from '../component/skeleton'
import dataRegion from '@/assets/json/dataRegion'
import {
urbanInvestmentPage,
......@@ -127,7 +129,7 @@ export default {
name: 'SameRegion',
mixins: [mixin],
components: {
skeleton
},
props: ['companyId', 'companyInfo'],
data() {
......@@ -200,6 +202,7 @@ export default {
tableLoading:false,
tableData:[],
tableDataTotal:0,
isSkeleton:true
}
},
watch:{
......@@ -338,12 +341,12 @@ export default {
},
handleQuery(params){
this.tableLoading = true
this.isSkeleton = true
let data = params ? params : this.queryParams
urbanInvestmentPage(data).then(res => {
this.tableData = res.data.list
this.tableDataTotal = res.data.totalCount
this.tableLoading = false
this.isSkeleton = false
})
},
//排序
......
......@@ -108,6 +108,9 @@
export default {
name: 'comparison',
props:['dataQuery','provinceId'],
components: {
},
data() {
return {
queryParams: {
......@@ -292,7 +295,8 @@ export default {
regionData:[],
compareList:[{},{},{},{},{}],
fixed: false,
StyWidth:null
StyWidth:null,
isSkeleton:true
}
},
watch: {
......
<template>
<div class="regionalEconomy">
<div class="flex-box query-box">
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div v-if="!isSkeleton" class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">主要指标</span>
<el-form ref="queryForm" :model="queryParams" :inline="true" size="small">
......@@ -15,7 +16,7 @@
<span class="flex-box" @click="handleMessage"><img src="@/assets/images/ability_excel.png">导出EXCEL</span>
</div>
</div>
<div class="content">
<div v-if="!isSkeleton" class="content">
<div class="content-left">
<div id="echarts" style="height: 400px"></div>
<p class="tips"> 注:数据均来源于统计公报、统计年鉴,实际披露中由于部分地区最新年度数据不全,导致年份间数据差距较大</p>
......@@ -29,18 +30,19 @@
highlight-current-row
:summary-method="getSummaries"
show-summary
@sort-change="sortChange"
>
<el-table-column label="序号" width="60" align="left">
<template slot-scope="scope">{{ scope.$index + 2 }}</template>
</el-table-column>
<el-table-column label="产业类型" prop="projectType"></el-table-column>
<el-table-column :label="oneYear">
<el-table-column prop="money" label="金额(亿元)" sortable></el-table-column>
<el-table-column prop="rate" label="占比(%)"> </el-table-column>
<el-table-column prop="money" label="金额(亿元)" sortable="custom" :formatter="formatStatus"></el-table-column>
<el-table-column prop="rate" label="占比(%)" sortable> </el-table-column>
</el-table-column>
<el-table-column :label="twoYear">
<el-table-column prop="lastMoney" label="金额(亿元)" sortable> </el-table-column>
<el-table-column prop="lastRate" label="占比(%)" > </el-table-column>
<el-table-column prop="lastMoney" label="金额(亿元)" sortable="custom" :formatter="formatStatus"> </el-table-column>
<el-table-column prop="lastRate" label="占比(%)" sortable> </el-table-column>
</el-table-column>
</el-table>
</div>
......@@ -57,9 +59,13 @@
<script>
import * as echarts from 'echarts';
import { bidGroupCountByProjectType,bidMoneyGroupByProjectType,getYears } from '@/api/macro/macro'
import skeleton from '../../component/skeleton'
export default {
name: 'industrialStructure',
props:['dataQuery','provinceId'],
components: {
skeleton
},
data() {
return {
queryParams: {
......@@ -68,11 +74,13 @@ export default {
},
yearOptions: [],
tableData:[],
tabData:[],
tableLoading: false,
data:[],
oneYear:'',
twoYear:'',
state:false
state:false,
isSkeleton:true
}
},
watch: {
......@@ -86,11 +94,11 @@ export default {
this.yearOptions=res.data.reverse();
this.queryParams.year = this.yearOptions[0].year;
})
this.getData()
this.getGroupCount()
this.$nextTick(()=>{
this.$nextTick(()=>{
this.getData()
this.getGroupCount()
})
},
methods: {
......@@ -112,6 +120,7 @@ export default {
if(this.provinceId.length >= 2){
params.county=this.provinceId[2]
}
bidMoneyGroupByProjectType(params).then(res => {
if(res.data.length > 0){
let list=[]
......@@ -133,16 +142,18 @@ export default {
}
}
for(let i=0; i<list.length; i++){
list[i].money=list[i].money ? Number(list[i].money).toFixed(2) : '-';
// list[i].money=list[i].money ? Number(list[i].money).toFixed(2) : '-';
list[i].rate=list[i].rate ? Number(list[i].rate).toFixed(2) : '-';
list[i].lastMoney=list[i].lastMoney ? Number(list[i].lastMoney).toFixed(2) : '-';
// list[i].lastMoney=list[i].lastMoney ? Number(list[i].lastMoney).toFixed(2) : '-';
list[i].lastRate=list[i].lastRate ? Number(list[i].lastRate).toFixed(2) : '-';
}
this.tableData=list.reverse()
this.tabData=list.reverse()
}
})
},
getGroupCount(){
this.isSkeleton = true
let mydate=new Date();
let startTime=''
let endTime=''
......@@ -164,6 +175,7 @@ export default {
params.county=this.provinceId[2]
}
bidGroupCountByProjectType(params).then(res => {
this.isSkeleton = false
if(res.code === 200){
let list=[]
for(let i=0; i<res.data.length; i++){
......@@ -174,7 +186,9 @@ export default {
}
this.data=list;
// if(list.length > 0){
this.$nextTick(() => {
this.initChart()
})
// }
}
})
......@@ -270,6 +284,47 @@ export default {
});
return sums;
},
sortChange(column) {
if (column.order !== null && column.prop) {
let data1 = [];
let data2 = [];
for (let i = 0; i < this.tableData.length; i++) {
this.tableData[i].money=this.tableData[i].money ? Number(this.tableData[i].money) : 0
this.tableData[i].lastMoney=Number(this.tableData[i].lastMoney)
let temp = null;
temp = this.tableData[i][column.prop];
if (temp === null || typeof temp == "undefined") {
data2.push(this.tableData[i]);
} else {
data1.push(this.tableData[i]);
}
}
if (column.order === "ascending") {
data1 = data1.sort(this.compare(column.prop, "ascending"));
} else {
data1 = data1.sort(this.compare(column.prop, "descending"));
}
this.$nextTick(() => {
this.tableData = data1.concat(data2);
});
}
if (column.order === null) {
this.tableData = this.tabData; // tabData存放的是list副本,不排序时恢复到初始状态
}
this.$forceUpdate()
},
compare(property, type, prop) {
return function(obj1, obj2) {
if (type === "ascending") {
return obj1[property] - obj2[property];
} else {
return obj2[property] - obj1[property];
}
};
},
formatStatus: function(row, column, cellValue) {
return cellValue? Number(cellValue).toFixed(2) : '-'
},
}
}
......
<template>
<div class="regionalEconomy">
<div class="content">
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div v-if="!isSkeleton" class="content">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">经济数据</span>
......@@ -52,15 +53,18 @@
<el-pagination background :current-page="pageIndex" :page-size="pageSize" :total="tableDataTotal" layout="prev, pager, next, jumper" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
</div>
</div>
</div>
</template>
<script>
import { nationalPage,getYears } from '@/api/macro/macro'
import skeleton from '../../component/skeleton'
export default {
name: 'localEconomy',
props:['dataQuery','provinceId'],
components: {
skeleton
},
data() {
return {
queryParams: {
......@@ -74,7 +78,8 @@ export default {
pageSize: 20,
tableDataTotal: 0,
show_page:true,
MaxPage:500
MaxPage:500,
isSkeleton:true
}
},
watch: {
......@@ -95,6 +100,7 @@ export default {
},
methods: {
getData(){
this.isSkeleton = true
const params = { pageNum: this.pageIndex, pageSize: this.pageSize, year: this.queryParams.year,type:2 }
if(this.queryParams.field){
params.field=this.queryParams.field
......@@ -113,6 +119,7 @@ export default {
}
// params.provinceIds=[this.dataQuery.provinceId]
nationalPage(params).then(res => {
this.isSkeleton = false
this.tableData = res.data.list
this.tableDataTotal = res.data.totalCount
})
......
<template>
<div class="regionalEconomy">
<skeleton v-if="isSkeleton" style="padding: 16px"></skeleton>
<div v-if="!isSkeleton">
<div class="content content1">
<div class="common-title">经济数据</div>
<div class="content-box">
<div class="item">
<div class="item-title"><i style="background: #4E8EFF;"></i>{{recentlyYear.year}}年GDP</div>
<div class="item-count">
<span>{{recentlyYear.gdp}}</span>亿
<img v-if="Number(recentlyYear.gdpCompare) > 0" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png">
<span>{{recentlyYear.gdp}}</span>{{recentlyYear.gdp ? '亿':'-'}}
<img v-if="Number(recentlyYear.gdpCompare) > 0 && recentlyYear.gdp" src="@/assets/images/economies/icon_up.png">
<img v-if="Number(recentlyYear.gdpCompare) <= 0 && recentlyYear.gdp" src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsGDP" style="height: 75px;"></div>
<div class="item-text up" v-if="Number(recentlyYear.gdpCompare) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpCompare}}亿</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gdpCompare).toString().substring(1)}}亿</span></div>
<div class="item-text up" v-if="Number(recentlyYear.gdpCompare) > 0 && recentlyYear.gdp">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpCompare}}亿</span></div>
<div class="item-text down" v-if="Number(recentlyYear.gdpCompare) <= 0 && recentlyYear.gdp">{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gdpCompare).toString().substring(1)}}亿</span></div>
</div>
<div class="item">
<div class="item-title"><i style="background: #718AFF;"></i>{{recentlyYear.year}}年GDP增速</div>
<div class="item-count">
<span>{{recentlyYear.gdpGrowth}}</span>%
<img v-if="Number(recentlyYear.gdpGrowthCompare) > 0" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png">
<span>{{recentlyYear.gdpGrowth}}</span>{{recentlyYear.gdpGrowth ? '%':'-'}}
<img v-if="Number(recentlyYear.gdpGrowthCompare) > 0 && recentlyYear.gdpGrowth" src="@/assets/images/economies/icon_up.png">
<img v-if="Number(recentlyYear.gdpGrowthCompare) <= 0 && recentlyYear.gdpGrowth" src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsZS" style="height: 75px;"></div>
<div class="item-text up" v-if="Number(recentlyYear.gdpGrowthCompare) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpGrowthCompare}}%</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gdpGrowthCompare).toString().substring(1)}}%</span></div>
<div class="item-text up" v-if="Number(recentlyYear.gdpGrowthCompare) > 0 && recentlyYear.gdpGrowth">{{nextYearMap.year}}年上升<span>{{recentlyYear.gdpGrowthCompare}}%</span></div>
<div class="item-text down" v-if="Number(recentlyYear.gdpGrowthCompare) <= 0 && recentlyYear.gdpGrowth">{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gdpGrowthCompare).toString().substring(1)}}%</span></div>
</div>
<div class="item">
<div class="item-title"><i style="background: #3AD0D1;"></i>{{recentlyYear.year}}年人口</div>
<div class="item-count">
<span>{{recentlyYear.population}}</span>
<img v-if="Number(recentlyYear.populationCompare) > 0" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png">
<span>{{recentlyYear.population}}</span>{{recentlyYear.population ? '万':'-'}}
<img v-if="Number(recentlyYear.populationCompare) > 0 && recentlyYear.population" src="@/assets/images/economies/icon_up.png">
<img v-if="Number(recentlyYear.populationCompare) <= 0 && recentlyYear.population" src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsRK" style="height: 75px;"></div>
<div class="item-text up" v-if="Number(recentlyYear.populationCompare) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.populationCompare}}</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.populationCompare).toString().substring(1)}}</span></div>
<div class="item-text up" v-if="Number(recentlyYear.populationCompare) > 0 && recentlyYear.population">{{nextYearMap.year}}年上升<span>{{recentlyYear.populationCompare}}</span></div>
<div class="item-text down" v-if="Number(recentlyYear.populationCompare) <= 0 && recentlyYear.population">{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.populationCompare).toString().substring(1)}}</span></div>
</div>
<div class="item">
<div class="item-title"><i style="background: #FFBE5D;"></i>{{recentlyYear.year}}年一般公共预算收入</div>
<div class="item-count">
<span>{{recentlyYear.gbr}}</span>亿
<img v-if="Number(recentlyYear.gbrCompare) > 0" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png">
<span>{{recentlyYear.gbr}}</span>{{recentlyYear.gbr ? '亿':'-'}}
<img v-if="Number(recentlyYear.gbrCompare) > 0 && recentlyYear.gbr" src="@/assets/images/economies/icon_up.png">
<img v-if="Number(recentlyYear.gbrCompare) <= 0 && recentlyYear.gbr" src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsSR" style="height: 75px;"></div>
<div class="item-text up" v-if="Number(recentlyYear.gbrCompare) > 0">{{nextYearMap.year}}年上升<span>{{recentlyYear.gbrCompare}}亿</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gbrCompare).toString().substring(1)}}亿</span></div>
<div class="item-text up" v-if="Number(recentlyYear.gbrCompare) > 0 && recentlyYear.gbr">{{nextYearMap.year}}年上升<span>{{recentlyYear.gbrCompare}}亿</span></div>
<div class="item-text down" v-if="Number(recentlyYear.gbrCompare) <= 0 && recentlyYear.gbr">{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.gbrCompare).toString().substring(1)}}亿</span></div>
</div>
<div class="item">
<div class="item-title"><i style="background: #FF8935;"></i>{{recentlyYear.year}}年地方政府债务余额</div>
<div class="item-count">
<span>{{recentlyYear.govDebtBalance}}</span>亿
<img v-if="Number(recentlyYear.govDebtBalanceCompare) > 0" src="@/assets/images/economies/icon_up.png">
<img v-else src="@/assets/images/economies/icon_down.png">
<span>{{recentlyYear.govDebtBalance}}</span>{{recentlyYear.gbr ? '亿':'-'}}
<img v-if="Number(recentlyYear.govDebtBalanceCompare) > 0 && recentlyYear.govDebtBalance" src="@/assets/images/economies/icon_up.png">
<img v-if="Number(recentlyYear.govDebtBalanceCompare) <= 0 && recentlyYear.govDebtBalance" src="@/assets/images/economies/icon_down.png">
</div>
<div id="echartsYE" style="height: 75px;"></div>
<div class="item-text up" v-if="Number(recentlyYear.govDebtBalanceCompare) > 0">
<div class="item-text up" v-if="Number(recentlyYear.govDebtBalanceCompare) > 0 && recentlyYear.govDebtBalance">
{{nextYearMap.year}}年上升<span>{{recentlyYear.govDebtBalanceCompare}}亿</span></div>
<div class="item-text down" v-else>{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.govDebtBalanceCompare).toString().substring(1)}}亿</span></div>
<div class="item-text down" v-if="Number(recentlyYear.govDebtBalanceCompare) <= 0 && recentlyYear.govDebtBalance">{{nextYearMap.year}}年下降<span>{{Number(recentlyYear.govDebtBalanceCompare).toString().substring(1)}}亿</span></div>
</div>
</div>
</div>
......@@ -99,14 +101,20 @@
</div>
</div>
</div>
</div>
</template>
<script>
import * as echarts from 'echarts';
import { regional,regionalList,location } from '@/api/macro/macro'
import skeleton from '../../component/skeleton'
export default {
name: 'regionalEconomy',
props:['dataQuery','provinceId'],
components: {
skeleton
},
data() {
return {
tableData: [],
......@@ -276,6 +284,7 @@ export default {
valData4:[],
recentlyYear:{},
nextYearMap:{},
isSkeleton:true
}
},
created() {
......@@ -286,6 +295,13 @@ export default {
// console.log(this.dataQuery)
})
},
// updated(){
// this.initChart()
// this.initChart1()
// this.initChart2()
// this.initChart3()
// this.initChart4()
// },
computed: {
getHeaders() {
return this.tableData.reduce((pre, cur, index) => pre.concat(`value${index}`), ['title'])
......@@ -306,6 +322,7 @@ export default {
},
methods: {
getData(){
this.isSkeleton = true
let params={}
if(this.dataQuery.id){
params.id=this.dataQuery.id
......@@ -320,6 +337,7 @@ export default {
params.areaId=this.provinceId[2]
}
regional(params).then(res => {
this.isSkeleton = false
this.recentlyYear=res.data[0].recentlyYear;
this.nextYearMap=res.data[0].nextYearMap;
this.valData=[this.getMoneyNum(this.nextYearMap.gdp),this.getMoneyNum(this.recentlyYear.gdp)]
......@@ -327,12 +345,14 @@ export default {
this.valData2=[this.getMoneyNum(this.nextYearMap.population),this.getMoneyNum(this.recentlyYear.population)]
this.valData3=[this.getMoneyNum(this.nextYearMap.gbr),this.getMoneyNum(this.recentlyYear.gbr)]
this.valData4=[this.getMoneyNum(this.nextYearMap.govDebtBalance),this.getMoneyNum(this.recentlyYear.govDebtBalance)]
this.$nextTick(() => {
this.initChart()
this.initChart1()
this.initChart2()
this.initChart3()
this.initChart4()
})
})
regionalList(params).then(res => {
this.tableData=res.data;
})
......
<template>
<div class="zhongbiao">
<div class="zb-content content1">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">全国建筑企业概览</span>
</div>
</div>
<div class="text">截止{{currentdate}},全国共有{{glDetail.major}}资质的企业{{total}}家,其中特级资质企业{{glDetail.tjCount}}家,占比{{glDetail.tjRate}}%;一级资质企业{{glDetail.tjCount}}家,占比{{glDetail.oneRate}}%;二级资质企业{{glDetail.twoCount}}家,占比{{glDetail.twoRate}}%;三级资质企业{{glDetail.threeCount}}家,占比{{glDetail.threeRate}}%</div>
<div class="main1">
<div style="height: 300px;">
<div class="left">
<div class="item" v-for="(item,index) in glData" :class="typeIndex === index ? 'color':''" @click="handleClick(1,index)">{{item.major}}施工总承包<i></i></div>
</div>
<div class="right">
<div id="gl-echarts" style="height: 260px;background: #ffffff;"></div>
</div>
</div>
<p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为有效期内资质,未公开不包含在内</p>
</div>
<div class="main2">
<!--<div class="flex-box query-box head">-->
<!--<span>近五年全国招标总数<span class="number">10,610,000 </span></span>-->
<!--<el-select v-model="year" filterable multiple collapse-tags class="form-content-width" placeholder="请选择">-->
<!--<el-option v-for="(item, index) in yearOptions" :key="index" :label="item.name" :value="item.value" />-->
<!--</el-select>-->
<!--</div>-->
<div class="table-item">
<el-table
:data="zzTableData"
border
fit
highlight-current-row
>
<el-table-column label="序号" width="60" align="left">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column prop="major" label="资质类型"/>
<el-table-column label="特级" align="right">
<el-table-column prop="tjCount" label="数量(个)" align="right"/>
<el-table-column prop="tjRate" label="占比(%)" align="right"/>
</el-table-column>
<el-table-column label="一级" align="right">
<el-table-column prop="oneCount" label="数量(个)" align="right"/>
<el-table-column prop="oneRate" label="占比(%)" align="right"/>
</el-table-column>
<el-table-column label="二级" align="right">
<el-table-column prop="twoCount" label="数量(个)" align="right"/>
<el-table-column prop="twoRate" label="占比(%)" align="right"/>
</el-table-column>
<el-table-column label="三级" align="right">
<el-table-column prop="threeCount" label="数量(个)" align="right"/>
<el-table-column prop="threeRate" label="占比(%)" align="right"/>
</el-table-column>
</el-table>
</div>
</div>
</div>
<div class="zb-content content2">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">全国建筑企业地区分布</span>
</div>
</div>
<div class="main1">
<div class="tabs">
<div class="item" v-for="(item,index) in dqData" :class="qydqIndex === index ? 'color':''" @click="handleClick(2,index)">{{item.major}}<i></i></div>
</div>
<div id="jzqy-echarts" style="height: 250px"></div>
<p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为有效期内资质,未公开不包含在内</p>
</div>
<div class="table-item">
<el-table
:data="jzdqData"
border
height="470"
fit
highlight-current-row
>
<el-table-column label="序号" width="60" align="left">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column prop="province" label="地区"/>
<el-table-column label="特级" align="right">
<el-table-column prop="tjCount" label="数量(个)" align="right"/>
<el-table-column prop="tjRate" label="占比(%)" align="right"/>
</el-table-column>
<el-table-column label="一级" align="right">
<el-table-column prop="oneCount" label="数量(个)" align="right"/>
<el-table-column prop="oneRate" label="占比(%)" align="right"/>
</el-table-column>
<el-table-column label="二级" align="right">
<el-table-column prop="twoCount" label="数量(个)" align="right"/>
<el-table-column prop="twoRate" label="占比(%)" align="right"/>
</el-table-column>
<el-table-column label="三级" align="right">
<el-table-column prop="threeCount" label="数量(个)" align="right"/>
<el-table-column prop="threeRate" label="占比(%)" align="right"/>
</el-table-column>
</el-table>
</div>
</div>
<div class="zb-content content3">
<div class="flex-box query-box">
<div class="flex-box query-params">
<span class="common-title">全国建筑企业备案分布</span>
</div>
</div>
<div class="text">
通过对全国建筑工程总承包一级及以上资质企业的备案数据分析,我们发现这些优质企业主要去了<span v-for="(item,index) in rankList">{{item.province}}{{ rankList.length === index+1 ? '':'、'}}</span>等地开展经营。</div>
<div class="main1">
<div id="ba-echarts" style="height: 250px"></div>
<p class="tips"><i class="el-icon-info"></i>数据来源大司空建筑大数据平台,统计范围为公开企业备案地数据。</p>
</div>
<div class="table-item">
<el-table
:data="zbData"
border
height="430"
fit
highlight-current-row
>
<el-table-column label="序号" width="60" align="left">
<template slot-scope="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column prop="province" label="地区" />
<el-table-column prop="count" label="企业异地备案数量(个)" sortable align="right"/>
<!--<el-table-column prop="zb" label="占比"/>-->
</el-table>
</div>
</div>
</div>
</template>
<script>
import * as echarts from 'echarts';
import { certGroupByMajorAndLevel,certGroupByMajorProvinceLevel,areaGroupByProvince } from '@/api/macro/macro'
export default {
name: 'NationalEconomies',
data() {
return {
typeIndex:0,
glData:[],
jzglData:[],
zzTableData:[],
tableOption:[
{
label:'资质类型',
prop:'major'
},
{
label: '特级',
prop: 'levelValue',
child:[
{
label: '数量(个)',
prop: 'count'
},
{
label: '占比(%)',
prop: 'rate'
},
]
},
{
label: '一级',
prop: 'levelValue',
child:[
{
label: '数量(个)',
prop: 'count'
},
{
label: '占比(%)',
prop: 'rate'
},
]
},
{
label: '二级',
prop: 'levelValue',
child:[
{
label: '数量(个)',
prop: 'count'
},
{
label: '占比(%)',
prop: 'rate'
},
]
},
{
label: '三级',
prop: 'levelValue',
child:[
{
label: '数量(个)',
prop: 'count'
},
{
label: '占比(%)',
prop: 'rate'
},
]
},
],
dqData:[],
qydqIndex:0,
zbData:[],
rankList:[],
jzdqData:[],
currentdate:'',
total:'',
glDetail:{},
}
},
created() {
this.getData()
var date = new Date()
var year = date.getFullYear()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth()+ 1
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
this.currentdate=year + '-' +month + '-' + day;
},
methods: {
getData(){
//全国建筑企业概览
certGroupByMajorAndLevel().then(res => {
let list=[];
for (let i=0; i<res.data.length; i++){
res.data[i].levelList=res.data[i].levelList.reverse();
let item={};
item.major=res.data[i].major+'施工总承包';
for (let j=0; j<res.data[i].levelList.length; j++){
if(res.data[i].levelList[j].levelValue === '特级'){
item.tjCount=res.data[i].levelList[j].count;
item.tjRate=res.data[i].levelList[j].rate;
}
if(res.data[i].levelList[j].levelValue === '一级'){
item.oneCount=res.data[i].levelList[j].count;
item.oneRate=res.data[i].levelList[j].rate;
}
if(res.data[i].levelList[j].levelValue === '二级'){
item.twoCount=res.data[i].levelList[j].count;
item.twoRate=res.data[i].levelList[j].rate;
}
if(res.data[i].levelList[j].levelValue === '三级'){
item.threeCount=res.data[i].levelList[j].count;
item.threeRate=res.data[i].levelList[j].rate;
}
}
// item.levelList=res.data[i].levelList.reverse();
list.push(item)
}
this.zzTableData=list;
this.glData=res.data;
this.jzglData=this.glData[0].levelList;
this.glDetail=list[0]
let total=0;
for(let i=0; i<this.jzglData.length; i++){
total=total+this.jzglData[i].count
}
this.total=total;
this.initChart()
})
certGroupByMajorProvinceLevel().then(res => {
this.dqData=res.data;
let data=this.dqData[0].province;
let list=[];
for(let i=0; i<data.length; i++){
let item={};
item.province=data[i].province;
for (let j=0; j<data[i].levelList.length; j++){
if(data[i].levelList[j].levelValue === '特级'){
item.tjCount=data[i].levelList[j].count;
item.tjRate=data[i].levelList[j].rate;
}
if(data[i].levelList[j].levelValue === '一级'){
item.oneCount=data[i].levelList[j].count;
item.oneRate=data[i].levelList[j].rate;
}
if(data[i].levelList[j].levelValue === '二级'){
item.twoCount=data[i].levelList[j].count;
item.twoRate=data[i].levelList[j].rate;
}
if(data[i].levelList[j].levelValue === '三级'){
item.threeCount=data[i].levelList[j].count;
item.threeRate=data[i].levelList[j].rate;
}
}
list.push(item)
}
this.jzdqData=list
this.initChart1()
})
areaGroupByProvince().then(res => {
this.zbData=res.data;
//定义一个变量 保存数据 因为sort方法排序会改变原数组 使用JSON方法深拷贝 将原数值暂存
// let dataArr = JSON.parse(JSON.stringify(res.data))
let arr=res.data.sort((old,New)=>{
return New.count - old.count
})
let data=[]
for(let i=0; i<5; i++){
data.push(arr[i])
}
this.rankList=data;
//将原数组数据赋值回去 保持数据不变
// this.zbData = JSON.parse(JSON.stringify(dataArr))
this.initChart2()
})
},
initChart() {
let myChart = echarts.init(document.getElementById("gl-echarts"))
let option ={
tooltip: {
// show:false
},
xAxis: {
type: 'category',
boundaryGap: false,
data: this.jzglData.map(item => item.levelValue),
},
yAxis: {
type: 'value',
},
grid: {
top:40,
left:70,
right:40,
bottom:40,
},
series: [
{
data: this.jzglData.map(item => item.count),
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 1,
color: "#0081FF",
},
itemStyle:{
color: "#4E8EFF",
},
//设置面积区域为渐变效果
areaStyle: {
color: echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.2,
color: "#DFEAFF",
},
{
offset: 1,
color: "#5895FF",
},
]),
},
}
]
}
myChart.clear(); //图表清除
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
},
initChart1() {
let myChart = echarts.init(document.getElementById("jzqy-echarts"))
let option ={
legend: {
x:'right',
padding:[0,30,0,0],
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'line',
label: {
backgroundColor: '#FFFFFF'
}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: this.jzdqData.map(item => item.province),
},
yAxis: {
type: 'value',
},
grid: {
top:35,
left:60,
right:30,
bottom:20,
},
series: [
{
data: this.jzdqData.map(item => item.tjCount),
name:'特级',
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 2,
color: "#0081FF",
},
itemStyle:{
color: "#4E8EFF",
},
//设置面积区域为渐变效果
areaStyle: {
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.2,
color: "#DFEAFF",
},
{
offset: 1,
color: "#5895FF",
},
]),
},
},
{
data: this.jzdqData.map(item => item.oneCount),
name:'一级',
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 2,
color: "#FA6C6C",
},
itemStyle:{
color: "#FA6C6C",
},
//设置面积区域为渐变效果
areaStyle: {
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.1,
color: "#FDF8F5",
},
{
offset: 1,
color: "#FCD7C8",
},
]),
},
},
{
data: this.jzdqData.map(item => item.twoCount),
name:'二级',
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 2,
color: "#8077F2",
},
itemStyle:{
color: "#8077F2",
},
//设置面积区域为渐变效果
areaStyle: {
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.1,
color: "#ECE8FF",
},
{
offset: 1,
color: "#BCC0FF",
},
]),
},
},
{
data: this.jzdqData.map(item => item.threeCount),
name:'三级',
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 2,
color: "#FA936C",
},
itemStyle:{
color: "#FA936C",
},
//设置面积区域为渐变效果
areaStyle: {
opacity:0.8,
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.1,
color: "#FEFBFA",
},
{
offset: 1,
color: "#FCD7C8",
},
]),
},
},
]
}
myChart.clear();
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
},
initChart2() {
let myChart = echarts.init(document.getElementById("ba-echarts"))
let option ={
tooltip: {
// show:false
},
legend:{},
xAxis: {
type: 'category',
boundaryGap: false,
data: this.zbData.map(item => item.province),
},
yAxis: {
type: 'value',
},
grid: {
top:20,
left:65,
right:50,
bottom:20,
},
series: [
{
data: this.zbData.map(item => item.count),
type: 'line',
smooth: true,
emphasis: {
disabled: true,
focus: 'none'
},
//设置折线颜色和粗细
lineStyle: {
width: 1,
color: "#FFAB44",
},
itemStyle:{
color: "#FFAB44",
},
//设置面积区域为渐变效果
areaStyle: {
color: echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0.2,
color: "#FFEDD0",
},
{
offset: 1,
color: "#FFC671",
},
]),
},
}
]
}
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();//图表跟随页面大小变化宽度
});
},
handleClick(type,index){
if(type === 1){
this.typeIndex=index;
this.jzglData=this.glData[index].levelList;
let total=0
for(let i=0; i<this.jzglData.length; i++){
total=total+this.jzglData[i].count
}
this.total=total;
this.glDetail=this.zzTableData[index]
this.initChart()
}
if(type === 2){
this.qydqIndex=index;
let data=this.dqData[index].province;
let list=[];
for(let i=0; i<data.length; i++){
let item={};
item.province=data[i].province;
for (let j=0; j<data[i].levelList.length; j++){
if(data[i].levelList[j].levelValue === '特级'){
item.tjCount=data[i].levelList[j].count;
item.tjRate=data[i].levelList[j].rate;
}
if(data[i].levelList[j].levelValue === '一级'){
item.oneCount=data[i].levelList[j].count;
item.oneRate=data[i].levelList[j].rate;
}
if(data[i].levelList[j].levelValue === '二级'){
item.twoCount=data[i].levelList[j].count;
item.twoRate=data[i].levelList[j].rate;
}
if(data[i].levelList[j].levelValue === '三级'){
item.threeCount=data[i].levelList[j].count;
item.threeRate=data[i].levelList[j].rate;
}
}
list.push(item)
}
this.jzdqData=list;
this.$nextTick(()=>{
this.initChart1()
})
}
},
}
}
</script>
<style lang="scss" scoped>
.zhongbiao{
.zb-content{
background: #ffffff;
border-radius: 4px;
margin-top: 12px;
padding: 16px;
}
.text{
width: 100%;
line-height: 28px;
padding: 0 16px;
margin-top: 24px;
font-size: 12px;
color: rgba(35,35,35,0.8);
background: #F4F4F5;
border-radius: 2px;
margin-bottom: 24px;
}
.tips{
margin: 0;
padding-top: 16px;
font-size: 12px;
color: rgba(35,35,35,0.4);
i{
color:#909399;
margin-right: 9px;
font-size: 14px;
}
}
.content1{
.main1{
.left{
width: 20%;
float: left;
.item{
height: 74px;
line-height: 74px;
color: #333333;
font-size: 16px;
padding-left: 30px;
border-top: 1px solid #EAF3FF;
border-left: 1px solid #EAF3FF;
border-right: 1px solid #EAF3FF;
cursor: pointer;
}
.item:last-child{
border-bottom: 1px solid #EAF3FF;
}
.color{
background: #F0F3FA;
color:#0081FF;
i{
width: 4px;
height: 29px;
background: #0081FF;
border-radius: 10px;
display: inline-block;
float: right;
margin-top: 22px;
}
}
}
.right{
width: 79%;
float: right;
background: #F0F3FA;
height: 295px;
padding: 16px;
}
}
.main2{
margin-top: 30px;
.head{
span{
font-size: 12px;
color: rgba(35,35,35,0.8);
}
.number{
color:#FF3C3C;
}
::v-deep .el-select{
width: 100px;
height: 32px;
.el-input{
width: 100%;
height: 32px;
}
.el-input__inner{
height: 32px !important;
line-height: 32px;
}
}
}
}
.table-item{
margin-top: 12px;
}
}
.content2{
.tabs{
margin-top: 32px;
margin-bottom: 24px;
.item{
display: inline-block;
color: #3D3D3D;
font-size: 14px;
margin-right: 24px;
cursor: pointer;
}
.color{
color: #3D3D3D;
font-weight: 700;
position: relative;
i{
width: 42px;
height: 2px;
background: #0081FF;
display: inline-block;
position: absolute;
bottom:-4px;
left: 50%;
transform: translate(-50%,0);
}
}
}
.table-item{
margin-top: 32px;
}
}
.content3{
.table-item{
margin-top: 32px;
}
.table-item {
::v-deep .el-table {
.has-gutter{
tr{
th:nth-child(3){
border-right:0;
.cell{
padding-right: 24px !important;
}
}
}
}
}
}
}
.table-item{
::v-deep .el-table{
.el-table__header-wrapper{
th{
padding: 0;
}
}
.el-table__cell.is-right{
text-align: right;
}
.has-gutter{
tr{
th:nth-child(6),th:nth-child(8){
border-right:0;
.cell{
padding-right: 24px !important;
}
}
}
}
.el-table__cell.gutter{
/*background: #F0F3FA;*/
width: 16px !important;
}
.el-table__row{
td:last-child{
.cell{
padding-right: 24px !important;
}
}
}
th{
font-size: 12px !important;
font-weight: 400 !important;
}
.el-table__fixed-header-wrapper th{
background: #F0F3FA;
}
td.el-table__cell{
border-bottom: 0;
}
.caret-wrapper{
width: 10px;
}
}
}
}
</style>
......@@ -3,25 +3,28 @@
<div class="header">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="全国经济大全" name="first"></el-tab-pane>
<el-tab-pane label="全国招标市场分析" name="second"></el-tab-pane>
<el-tab-pane label="全国商机项目分析" name="second"></el-tab-pane>
<el-tab-pane label="全国中标市场分析" name="third"></el-tab-pane>
<el-tab-pane label="全国建筑企业分析" name="fourth"></el-tab-pane>
</el-tabs>
</div>
<Economic v-if="activeName === 'first'"></Economic>
<ZhaoBiao v-if="activeName === 'second'"></ZhaoBiao>
<ZhongBiao v-if="activeName === 'third'"></ZhongBiao>
<Sjxmfx v-if="activeName === 'second'"></Sjxmfx>
<Zhongbiao v-if="activeName === 'third'"></Zhongbiao>
<Jzqyfx v-if="activeName === 'fourth'"></Jzqyfx>
</div>
</template>
<script>
import Economic from './component/qgjjdq'
import ZhaoBiao from './component/zhaobiao'
import ZhongBiao from './component/zhongbiao'
import Sjxmfx from './component/sjxmfx'
import Jzqyfx from './component/jzqyfx'
import Zhongbiao from './component/zhongbiao'
export default {
name: 'NationalEconomies',
components: {
Economic,ZhaoBiao,ZhongBiao
Economic,Sjxmfx,Jzqyfx,Zhongbiao
},
data() {
return {
......
......@@ -99,35 +99,35 @@
<div class="list-box">
<div class="item">
<div class="left">
<p>{{statistics.count}}<span></span></p>
<p>{{statistics.count ? statistics.count:'-'}}<span></span></p>
<span>平台家数</span>
</div>
<img src="@/assets/images/urban/img1.png">
</div>
<div class="item">
<div class="left">
<p>{{statistics.creditBalance}}<span>亿元</span></p>
<p>{{statistics.creditBalance ? statistics.creditBalance:'-'}}<span>亿元</span></p>
<span>授信余额</span>
</div>
<img src="@/assets/images/urban/img2.png">
</div>
<div class="item">
<div class="left">
<p>{{statistics.totalAssets}}<span>亿元</span></p>
<p>{{statistics.totalAssets ? statistics.totalAssets:'-'}}<span>亿元</span></p>
<span>资产总额</span>
</div>
<img src="@/assets/images/urban/img3.png">
</div>
<div class="item">
<div class="left">
<p>{{statistics.accountsReceivable}}<span>亿元</span></p>
<p>{{statistics.accountsReceivable ? statistics.accountsReceivable:'-'}}<span>亿元</span></p>
<span>应收账款</span>
</div>
<img src="@/assets/images/urban/img4.png">
</div>
<div class="item">
<div class="left">
<p>{{statistics.nonStandardBalance}}<span>亿元</span></p>
<p>{{statistics.nonStandardBalance ? statistics.nonStandardBalance:'-'}}<span>亿元</span></p>
<span>非标余额</span>
</div>
<img src="@/assets/images/urban/img5.png">
......
......@@ -128,7 +128,6 @@
}
getGZDB(params).then(result=>{
this.datalist = result.code == 200?result:[]
console.log(this.datalist.rows)
if(this.datalist){
this.yqnum = `已逾期 ${this.datalist.rows.length} 条`;
}
......@@ -140,7 +139,6 @@
this.value = ""
},
add(){
// if(this.queryParam.task == '' || this.queryParam.dueTime == '')
if(this.queryParam.task == '')
return this.$message.warning('时间和内容需填写完整!')
......
......@@ -118,7 +118,7 @@
<div class="datalist" v-if="!isSkeleton">
<div class="datali" v-for="(item,index) in datalist">
<div class="det-title" @click="toDetail(item.id,'xmsl')">
{{item.projectName}}<span v-if="activeName!='first' && item.followTime" class="people"><i>{{item.nickName1}}</i>
<span v-html="item.projectName"></span> <span v-if="activeName!='first' && item.followTime" class="people"><i>{{item.nickName1}}</i>
<span v-if="item.provinceName != '' && item.provinceName!==null">{{item.provinceName}}-</span>
{{item.nickName}} <font color="#FA8A00">正在跟进</font></span></div>
<div class="det-tips">
......@@ -206,7 +206,7 @@ export default {
minAmount:'',//投资估算最小值
maxAmount:'',//投资估算最大值
searchParam: {
userId:null,//个人项目需传,公司项目不传
isPrivate:1,//0 公司 1 个人
projectName:'',//项目名称
ownerCompany:'',//业主单位
projectType:'',//项目类型
......@@ -299,9 +299,9 @@ export default {
this.isSkeleton = true
this.searchParam.pageNum = pageNum
if(this.activeName == 'first'){
this.searchParam.userId = this.$store.state.user.userId
this.searchParam.isPrivate = 1
}else{
this.searchParam.userId = null
this.searchParam.isPrivate = 0
}
this.searchParam.ownerCompany = this.searchParam.projectName
getProjectlist(this.searchParam).then(result=>{
......@@ -332,7 +332,7 @@ export default {
this.$refs.myCascader.$refs.panel.activePath = []
})
this.searchParam ={
userId:null,
isPrivate:1,
projectName:'',//项目名称
ownerCompany:'',//业主单位
projectType:'',//项目类型
......
......@@ -16,7 +16,7 @@ import org.apache.commons.lang3.builder.ToStringStyle;
* @date 2023-05-17
*/
@Data
public class BusinessBacklog extends BaseEntity
public class BusinessBacklog
{
private static final long serialVersionUID = 1L;
......@@ -49,4 +49,8 @@ public class BusinessBacklog extends BaseEntity
@Excel(name = "状态 0:进行中 1:已到期")
private Integer state;
private Date createTime;
private Date updateTime;
}
package com.dsk.system.domain.business.dto;
import com.dsk.common.annotation.Excel;
import com.dsk.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* 项目工作待办对象 business_backlog
*
* @author lxl
* @date 2023-05-17
*/
@Data
public class BusinessBacklogListDto extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 项目id */
private Integer businessId;
/** 状态 (0进行中 1已完成 2逾期) */
private Integer state;
private Date startTime;
private Date endTime;
}
......@@ -11,6 +11,11 @@ import java.util.List;
**/
@Data
public class BusinessListDto {
/**
* 是否私人数据 0:否 1:是
*/
private Integer isPrivate;
/**
* 项目名称
*/
......@@ -19,12 +24,7 @@ public class BusinessListDto {
/**
* 用户id
*/
private Integer userId;
/**
* 用户查看全部他人可见项目标示
*/
private Long others;
private Long userId;
/**
* 省id
......
......@@ -245,7 +245,14 @@ public class EnterpriseService {
ArrayList<String> companyNames = new ArrayList<>();
ArrayList<Long> cIds = new ArrayList<>();
for (Object dataMap : list) {
companyNames.add(MapUtils.getString(CommonUtils.assertAsMap(dataMap), "companyName"));
String name = MapUtils.getString(CommonUtils.assertAsMap(dataMap), "companyName");
if (ObjectUtil.isNotEmpty(name) && ObjectUtil.isNotEmpty(body.getKeys())) {
name = name.replaceAll("<font color='red'>","");
name = name.replaceAll("</font>","");
companyNames.add(name);
} else {
companyNames.add(name);
}
cIds.add(MapUtils.getLong(CommonUtils.assertAsMap(dataMap), "companyId"));
}
......@@ -269,6 +276,10 @@ public class EnterpriseService {
companyMap.put("bratingSubjectLevel", null);
String uipId = MapUtils.getString(companyMap, "uipId");
String companyName = MapUtils.getString(companyMap, "companyName", "");
if (ObjectUtil.isNotEmpty(companyName) && ObjectUtil.isNotEmpty(body.getKeys())) {
companyName = companyName.replace("<font color='red'>","");
companyName = companyName.replace("</font>","");
}
Long companyId = MapUtils.getLong(companyMap, "companyId");
companyMap.put("bondBalance",MapUtils.getDouble(companyMap, "bondBalance")==null?null:String.format("%.2f", MapUtils.getDouble(companyMap, "bondBalance")));
companyMap.put("totalAssets",MapUtils.getDouble(companyMap, "totalAssets")==null?null:String.format("%.2f", MapUtils.getDouble(companyMap, "totalAssets")));
......
package com.dsk.system.mapper;
import com.dsk.system.domain.business.BusinessBacklog;
import com.dsk.system.domain.business.dto.BusinessBacklogListDto;
import com.dsk.system.domain.business.vo.BusinessBacklogListVo;
import java.util.List;
......@@ -23,11 +24,8 @@ public interface BusinessBacklogMapper
/**
* 查询项目工作待办列表
*
* @param businessBacklog 项目工作待办
* @return 项目工作待办集合
*/
public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklog businessBacklog);
public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklogListDto dto);
/**
* 新增项目工作待办
......
package com.dsk.system.service;
import com.dsk.system.domain.business.BusinessBacklog;
import com.dsk.system.domain.business.dto.BusinessBacklogListDto;
import com.dsk.system.domain.business.vo.BusinessBacklogListVo;
import java.util.List;
......@@ -23,11 +24,8 @@ public interface IBusinessBacklogService
/**
* 查询项目工作待办列表
*
* @param businessBacklog 项目工作待办
* @return 项目工作待办集合
*/
public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklog businessBacklog);
public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklogListDto dto);
/**
* 新增项目工作待办
......
......@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.dsk.system.domain.business.BusinessBacklog;
import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.DateUtils;
import com.dsk.system.domain.business.dto.BusinessBacklogListDto;
import com.dsk.system.domain.business.vo.BusinessBacklogListVo;
import com.dsk.system.mapper.BusinessBacklogMapper;
import com.dsk.system.service.IBusinessBacklogService;
......@@ -43,15 +44,31 @@ public class BusinessBacklogServiceImpl implements IBusinessBacklogService {
/**
* 查询项目工作待办列表
*
* @param businessBacklog 项目工作待办
* @param dto 项目工作待办
* @return 项目工作待办
*/
@Override
public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklog businessBacklog) {
if (ObjectUtil.isEmpty(businessBacklog.getBusinessId())) {
public List<BusinessBacklogListVo> selectBusinessBacklogList(BusinessBacklogListDto dto) {
if (ObjectUtil.isEmpty(dto.getBusinessId())) {
throw new BeanException("项目id不能为空!");
}
return businessBacklogMapper.selectBusinessBacklogList(businessBacklog);
if (ObjectUtil.isEmpty(dto.getState())) {
throw new BeanException("工作代办状态不能为空!");
}
switch (dto.getState()){
case 0:
dto.setStartTime(new Date());
break;
case 1:
break;
case 2:
dto.setState(0);
dto.setEndTime(new Date());
break;
default:
throw new BeanException("工作代办状态参数错误!");
}
return businessBacklogMapper.selectBusinessBacklogList(dto);
}
/**
......
......@@ -9,10 +9,7 @@ import com.dsk.acc.openapi.client.util.CommonUtils;
import com.dsk.common.config.RuoYiConfig;
import com.dsk.common.constant.HttpStatus;
import com.dsk.common.core.domain.AjaxResult;
import com.dsk.common.core.domain.entity.BusinessInfo;
import com.dsk.common.core.domain.entity.BusinessLabel;
import com.dsk.common.core.domain.entity.BusinessRelateCompany;
import com.dsk.common.core.domain.entity.BusinessUser;
import com.dsk.common.core.domain.entity.*;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.exception.base.BaseException;
import com.dsk.common.utils.*;
......@@ -95,18 +92,12 @@ public class BusinessInfoServiceImpl implements IBusinessInfoService {
*/
@Override
public List<BusinessListVo> selectBusinessInfoList(BusinessListDto dto) {
List<BusinessListVo> othersList = new ArrayList<>();
//userId不传值,就查询全部他人可见项目+自己的
if (dto.getUserId() == null) {
dto.setOthers(SecurityUtils.getUserId());
//查询他人可见项目
othersList = businessInfoMapper.selectBusinessInfoList(dto);
}
dto.setOthers(null);
//查询自己参与的项目
List<BusinessListVo> businessList = businessInfoMapper.selectBusinessInfoList(dto);
businessList.addAll(othersList);
return businessList;
SysUser user = SecurityUtils.getLoginUser().getUser();
dto.setUserId(user.getUserId());
if(user.getIsExperience() == 1){
dto.setIsPrivate(1);
}
return businessInfoMapper.selectBusinessInfoList(dto);
}
@Override
......
......@@ -7,6 +7,7 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dsk.common.annotation.DataScope;
import com.dsk.common.core.domain.R;
import com.dsk.common.core.domain.entity.SysUser;
import com.dsk.common.exception.ServiceException;
import com.dsk.common.utils.SecurityUtils;
import com.dsk.common.utils.StringUtils;
......
......@@ -5,6 +5,7 @@ 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.UrbanInvestmentPlatformDto;
import com.dsk.common.dtos.UrbanInvestmentPlatformSubjectLevelDto;
import com.dsk.common.utils.DskOpenApiUtil;
import com.dsk.system.domain.customer.vo.CustomerStatusListVo;
import com.dsk.system.service.ICustomerService;
......@@ -15,10 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* @ClassName EconomicServiceImpl
......@@ -52,7 +50,14 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
ArrayList<String> companyNames = new ArrayList<>();
ArrayList<Long> cIds = new ArrayList<>();
for (Object dataMap : list) {
companyNames.add(MapUtils.getString(CommonUtils.assertAsMap(dataMap), "companyName"));
String name = MapUtils.getString(CommonUtils.assertAsMap(dataMap), "companyName");
if (ObjectUtil.isNotEmpty(name) && ObjectUtil.isNotEmpty(pageDto.getKeyword())) {
name = name.replace("<font color='red'>","");
name = name.replace("</font>","");
companyNames.add(name);
} else {
companyNames.add(name);
}
cIds.add(MapUtils.getLong(CommonUtils.assertAsMap(dataMap), "companyId"));
}
List<CustomerStatusListVo> customerStatusListVos = iCustomerService.selectStatusListByCompanyName(companyNames);
......@@ -76,6 +81,10 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
Long companyId = MapUtils.getLong(companyMap, "companyId");
String uipId = MapUtils.getString(companyMap, "uipId");
String companyName = MapUtils.getString(companyMap, "companyName", "");
if (ObjectUtil.isNotEmpty(companyName) && ObjectUtil.isNotEmpty(pageDto.getKeyword())) {
companyName = companyName.replace("<font color='red'>","");
companyName = companyName.replace("</font>","");
}
companyMap.put("claimStatus", 0);
companyMap.put("bratingSubjectLevel", null);
for (CustomerStatusListVo vo : customerStatusListVos) {
......@@ -83,11 +92,19 @@ public class UrbanInvestmentPlatformServiceImpl implements UrbanInvestmentPlatfo
companyMap.put("claimStatus", 1);
}
}
// 去除重复的数据
Set<UrbanInvestmentPlatformSubjectLevelDto> subjectLevelDtoSet = new HashSet<>();
for (Map<String, Object> m : objArrayList) {
UrbanInvestmentPlatformSubjectLevelDto dto = new UrbanInvestmentPlatformSubjectLevelDto();
Long companyIdCredit = MapUtils.getLong(m, "companyId", 0L);
if (companyIdCredit.equals(companyId)) {
companyMap.put("bratingSubjectLevel", m.get("bratingSubjectLevel"));
String rate = MapUtils.getString(m, "bratingSubjectLevel");
dto.setCompanyId(companyIdCredit);
dto.setBratingSubjectLevel(rate);
subjectLevelDtoSet.add(dto);
}
for (UrbanInvestmentPlatformSubjectLevelDto dto : subjectLevelDtoSet) {
if (dto.getCompanyId().equals(companyId)) {
companyMap.put("bratingSubjectLevel", dto.getBratingSubjectLevel());
}
}
}
......
......@@ -28,14 +28,13 @@
from business_backlog
</sql>
<select id="selectBusinessBacklogList" parameterType="com.dsk.system.domain.business.vo.BusinessBacklogListVo"
resultMap="BusinessBacklogResult">
<select id="selectBusinessBacklogList" parameterType="com.dsk.system.domain.business.dto.BusinessBacklogListDto"
resultType="com.dsk.system.domain.business.vo.BusinessBacklogListVo">
<include refid="selectBusinessBacklogVo"/>
where business_id = #{businessId}
<if test="target != null and target != ''">and target = #{target}</if>
<if test="task != null and task != ''">and task = #{task}</if>
<if test="finishTime != null ">and finish_time = #{finishTime}</if>
<if test="state != null ">and state = #{state}</if>
<if test="state != null "> and state = #{state} </if>
<if test="startTime != null "> and(due_time &gt;= #{startTime} or due_time is null) </if>
<if test="endTime != null "> and due_time &lt;= #{endTime} </if>
ORDER BY create_time DESC
</select>
......
......@@ -105,9 +105,12 @@
LEFT JOIN business_label l on l.business_id = i.id
LEFT JOIN sys_user u on u.user_id = bu.user_id
<where>
<if test="userId != null">
<if test="isPrivate == 1 ">
and bu.user_id = #{userId}
</if>
<if test="isPrivate == 0 ">
and (bu.user_id = #{userId} or i.is_private = 1)
</if>
<if test="projectType != null and projectType != ''">
and i.project_type in
<foreach collection="projectType" item="projectType" open="(" separator="," close=")">
......@@ -123,85 +126,27 @@
</foreach>
</if>
<if test="projectName != null and projectName != ''">
and i.project_name like concat('%',#{projectName},'%')
</if>
<if test="ownerCompany != null and ownerCompany != ''">
or i.construction_unit like concat('%',#{ownerCompany},'%')
</if>
<if test="others != null">
and bu.user_id != #{others} and i.is_private = 1
and ( i.project_name like concat('%',#{projectName},'%')
or i.construction_unit like concat('%',#{projectName},'%') )
</if>
<if test="provinceId != null and provinceId.size > 0 and cityId == null and districtId == null">
<if test="provinceId != null and provinceId.size > 0 ">
and i.province_id in
<foreach collection="provinceId" item="provinceId" open="(" separator="," close=")">
#{provinceId}
</foreach>
</if>
<if test="cityId != null and cityId.size > 0 and provinceId == null and districtId == null">
<if test="cityId != null and cityId.size > 0 ">
and i.city_id in
<foreach collection="cityId" item="cityId" open="(" separator="," close=")">
#{cityId}
</foreach>
</if>
<if test="districtId != null and districtId.size > 0 and provinceId == null and cityId == null">
<if test="districtId != null and districtId.size > 0">
and i.district_id in
<foreach collection="districtId" item="districtId" open="(" separator="," close=")">
#{districtId}
</foreach>
</if>
<if test="provinceId != null and provinceId.size > 0 and cityId != null and cityId.size > 0 and districtId == null">
and (
i.province_id in
<foreach collection="provinceId" item="provinceId" open="(" separator="," close=")">
#{provinceId}
</foreach>
or i.city_id in
<foreach collection="cityId" item="cityId" open="(" separator="," close=")">
#{cityId}
</foreach>
)
</if>
<if test="provinceId != null and provinceId.size > 0 and districtId != null and districtId.size > 0 and cityId == null">
and (
i.province_id in
<foreach collection="provinceId" item="provinceId" open="(" separator="," close=")">
#{provinceId}
</foreach>
or i.district_id in
<foreach collection="districtId" item="districtId" open="(" separator="," close=")">
#{districtId}
</foreach>
)
</if>
<if test="cityId != null and cityId.size > 0 and districtId != null and districtId.size > 0 and provinceId ==null">
and (
i.city_id in
<foreach collection="cityId" item="cityId" open="(" separator="," close=")">
#{cityId}
</foreach>
or i.district_id in
<foreach collection="districtId" item="districtId" open="(" separator="," close=")">
#{districtId}
</foreach>
)
</if>
<if test="provinceId != null and provinceId.size > 0 and cityId != null and cityId.size > 0 and districtId != null and districtId.size > 0">
and (
i.province_id in
<foreach collection="provinceId" item="provinceId" open="(" separator="," close=")">
#{provinceId}
</foreach>
or i.city_id in
<foreach collection="cityId" item="cityId" open="(" separator="," close=")">
#{cityId}
</foreach>
or i.district_id in
<foreach collection="districtId" item="districtId" open="(" separator="," close=")">
#{districtId}
</foreach>
)
</if>
</where>
GROUP BY i.id
ORDER BY i.create_time DESC
......
......@@ -18,6 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="delFlag" column="del_flag" />
<result property="loginIp" column="login_ip" />
<result property="loginDate" column="login_date" />
<result property="isExperience" column="is_experience"/>
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
......@@ -47,7 +48,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber,
u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.is_experience, u.create_by, u.create_time, u.remark,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u
......@@ -57,7 +59,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status,
u.del_flag, u.login_ip, u.login_date, u.is_experience, u.create_by, u.create_time, u.remark, d.dept_name, d.leader
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0'
<if test="userId != null and userId != 0">
......@@ -154,6 +158,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sex != null and sex != ''">sex,</if>
<if test="password != null and password != ''">password,</if>
<if test="status != null and status != ''">status,</if>
<if test="isExperience != null ">is_experience,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
<if test="remark != null and remark != ''">remark,</if>
create_time
......@@ -168,6 +173,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sex != null and sex != ''">#{sex},</if>
<if test="password != null and password != ''">#{password},</if>
<if test="status != null and status != ''">#{status},</if>
<if test="isExperience != null ">#{isExperience},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="remark != null and remark != ''">#{remark},</if>
sysdate()
......@@ -188,6 +194,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != ''">status = #{status},</if>
<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
<if test="loginDate != null">login_date = #{loginDate},</if>
<if test="isExperience != null">is_experience = #{isExperience},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if>
update_time = sysdate()
......
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