Commit 26b5b2b7 authored by danfuman's avatar danfuman

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

parents 7b20ff30 c9b8058d
......@@ -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);
}
}
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -81,11 +82,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await oftenAgencyPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows.map((item)=>{
item.projectInfo = typeof item.projectInfo == 'string' ? JSON.parse(item.projectInfo) : item.projectInfo
return item
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
......@@ -70,11 +71,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await tenderPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
}
this.tableDataTotal = res.total
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -83,11 +84,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await clientPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){
this.tableData.forEach(item => {
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -93,11 +94,13 @@ export default {
},
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await historySendPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
}
this.tableDataTotal = res.total
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -83,11 +84,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await supplierPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){
this.tableData.forEach(item => {
......
......@@ -2,7 +2,9 @@
<div class="app-container part-container">
<div class="financial-header">
<div class="common-title">财务简析</div>
<div class="flex-box header-box">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="flex-box header-box" v-else>
<div class="header-item">总资产<div class="header-item-amount"><template v-if="financialDetail.totalAssets"><span>{{saveFixed(financialDetail.totalAssets)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header01_ico.png"></div>
<div class="header-item">净资产<div class="header-item-amount"><template v-if="financialDetail.belongNetAssets"><span>{{saveFixed(financialDetail.belongNetAssets)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header02_ico.png"></div>
<div class="header-item">营业收入<div class="header-item-amount"><template v-if="financialDetail.operatingIncome"><span>{{saveFixed(financialDetail.operatingIncome)}}</span>亿元</template><template v-else>--</template></div><img src="@/assets/images/detail/financial/financial_header03_ico.png"></div>
......@@ -11,7 +13,9 @@
</div>
<div class="financial-zcqk">
<div class="common-title">资产情况</div>
<ul class="zcqk-list">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="zcqk-list" v-else>
<li v-for="(item, index) in zcqkList" :key="index" :style="zcqkList.length==1?'border-right: 0;':''">
<div class="zcqk-list-box" :style="(parity(zcqkList) && index==zcqkList.length-2) || (index == zcqkList.length-1)?'border-bottom: 0':''">
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{saveFixed(item.amount)}}</i>{{item.unit}}</span><span v-else>--</span></div>
......@@ -22,7 +26,9 @@
</div>
<div class="financial-ylnl">
<div class="common-title">盈利能力</div>
<ul class="flex-box ylnl-list">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="flex-box ylnl-list" v-else>
<li v-for="(item, index) in ylnlList" :key="index" :style="index===0?'border-left: 0;':''">
<div class="ylnl-amount"><template v-if="item.amount"><span>{{saveFixed(item.amount)}}</span>{{item.unit}}</template><template v-else>--</template></div>
<div class="ylnl-title">{{item.name}}</div>
......@@ -31,7 +37,9 @@
</div>
<div class="financial-zwqk">
<div class="common-title">负债情况及偿债能力</div>
<div class="flex-box zwqk-box">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="flex-box zwqk-box" v-else>
<div class="zwqk-info">
<div class="zwqk-title">总负债</div>
<div class="zwqk-amount"><template v-if="financialDetail.totalLiabilities"><span>{{saveFixed(financialDetail.totalLiabilities)}}</span>亿元</template><template v-else><span>--</span></template></div>
......@@ -53,7 +61,9 @@
</div>
<div class="financial-zcqk">
<div class="common-title">资金情况</div>
<ul class="zcqk-list">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<ul class="zcqk-list" v-else>
<li v-for="(item, index) in zjqkList" :key="index" :style="zjqkList.length==1?'border-right: 0;':''">
<div class="zcqk-list-box" :style="(parity(zjqkList) && index==zjqkList.length-2) || (index == zjqkList.length-1)?'border-bottom: 0':''">
<div class="flex-box zcqk-list-line"><span class="flex-box"><img :src="item.ico">{{item.name}}</span><span v-if="item.amount"><i>{{saveFixed(item.amount)}}</i>{{item.unit}}</span></div>
......@@ -69,15 +79,17 @@
import {saveFixed} from "@/assets/js/common"
import { financial } from '@/api/detail/party-a/financial'
import * as echarts from 'echarts'
import skeleton from '@/views/project/projectList/component/skeleton'
import NoData from '../component/noData'
export default {
name: 'Financial',
props: ['companyId'],
components: {
NoData
NoData,skeleton
},
data() {
return {
isSkeleton:true,
saveFixed,
financialDetail: {},
// 资产情况
......@@ -138,10 +150,12 @@ export default {
},
methods: {
async handleQuery() {
this.isSkeleton = true;
this.tableLoading = true
let res = await financial({cid:this.companyId})
this.tableLoading = false
if(res.code==200 && res.data){
this.isSkeleton = false;
this.financialDetail = res.data
//资产情况
let { totalAssets, belongNetAssets, monetaryFunds, accountsReceivable, landAssets, otherReceivable, restrictedAssets, receivableFromGovRatio, govSubsidy } = this.financialDetail
......
......@@ -9,7 +9,7 @@
<div id="partBox" v-if="companyId">
<template v-if="isCompany">
<!-- 企业概览 -->
<Overview v-if="currentPath.pathName=='overview'" :company-id="companyId" :companyInfo="companyInfo" />
<Overview v-if="currentPath.pathName=='overview'" :company-id="companyId" :isSkeleton="isSkeleton" :companyInfo="companyInfo" />
<Businfo v-if="currentPath.pathName=='businfo'" :company-id="companyId" />
<Holderinfo v-if="currentPath.pathName=='holderinfo'" :company-id="companyId" />
<Execuinfo v-if="currentPath.pathName=='execuinfo'" :company-id="companyId" />
......@@ -150,6 +150,7 @@ export default {
},
data() {
return {
isSkeleton:true,
companyInfo: {},
customerInfo: {},
companyId: '', //企业Id(测试默认3068)
......@@ -250,8 +251,10 @@ export default {
}
},
async handleQuery() {
this.isSkeleton = true;
let res = await infoHeader({companyId:this.companyId})
if(res.code==200){
this.isSkeleton = false;
this.companyInfo = res.data || {}
let data = {
pageNum: 1,
......
import {encodeStr} from "@/assets/js/common"
import HeadForm from "../component/HeadForm"
import Tables from "../component/Tables"
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
components: {
HeadForm,
Tables
Tables,
skeleton
},
data() {
return {
isSkeleton:true,
encodeStr
}
},
......
......@@ -7,8 +7,9 @@
:total="tableDataTotal"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
......@@ -33,15 +34,18 @@
<script>
import mixin from '../mixins/mixin'
import skeleton from '@/views/project/projectList/component/skeleton'
import {creditXzxkPage} from '@/api/detail/party-a/opport'
export default {
name: 'Administrative',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
isSkeleton:true,
queryParams: {
cid: this.companyId,
pageNum: 1,
......@@ -79,11 +83,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await creditXzxkPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
if(res.rows&&res.rows.length>0){
res.rows.forEach(item => {
item.smallContent = item.content.replace(/<.*?>/ig,"")
......
......@@ -9,8 +9,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -35,15 +36,18 @@
<script>
import mixin from '../mixins/mixin'
import skeleton from '@/views/project/projectList/component/skeleton'
import {bidNoticeArea, bidNoticeTenderStage, bidNoticePage} from '@/api/detail/party-a/opport'
export default {
name: 'Announcement',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
isSkeleton:true,
queryParams: {
cid: this.companyId,
sort: 3,
......@@ -119,11 +123,13 @@ export default {
}
},
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = this.getAreaList(params || this.queryParams)
let res = await bidNoticePage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
}
this.tableDataTotal = res.total
......
......@@ -8,8 +8,9 @@
@handle-search="handleSearch"
:total="tableDataTotal"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -35,14 +36,17 @@
<script>
import mixin from '../mixins/mixin'
import {bidPlanPage,bidPlanProjectType} from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Biddingplan',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
isSkeleton:true,
queryParams: {
cid: this.companyId,
sort: 3,
......@@ -88,11 +92,13 @@ export default {
}
},
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await bidPlanPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
}
this.tableDataTotal = res.total
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -32,14 +33,17 @@
<script>
import mixin from '../mixins/mixin'
import {specialDebtProjectPage} from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Bond',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
isSkeleton:true,
queryParams: {
cid: this.companyId,
sort: 1,
......@@ -69,11 +73,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await specialDebtProjectPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
}
this.tableDataTotal = res.total
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -32,14 +33,17 @@
<script>
import mixin from '../mixins/mixin'
import {landUse, landTransactionPage} from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Landtransaction',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
isSkeleton:true,
queryParams: {
cid: this.companyId,
sort: 3,
......@@ -86,11 +90,13 @@ export default {
}
},
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await landTransactionPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
if(this.tableData.length>0){
this.tableData.map(item=>{
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:defaultSort="defaultSort"
:tableLoading="tableLoading"
......@@ -35,11 +36,13 @@
<script>
import mixin from '../mixins/mixin'
import { approvalProjectPage } from '@/api/detail/party-a/opport'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Proposed',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
......@@ -66,7 +69,8 @@ export default {
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
tableDataTotal:0,
isSkeleton:true,
}
},
computed: {
......@@ -76,11 +80,13 @@ export default {
},
methods: {
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await approvalProjectPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
}
this.tableDataTotal = res.total
......
......@@ -8,8 +8,9 @@
:isExcel="true"
@handle-search="handleSearch"
/>
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<tables
v-else
:indexFixed="true"
:tableLoading="tableLoading"
:tableData="tableData"
......@@ -40,12 +41,14 @@
<script>
import mixin from '../mixins/mixin'
import skeleton from '@/views/project/projectList/component/skeleton'
import { bidNoticeProProjectType, bidNoticeProProjectPurposes, bidNoticeProAssessmentWay, bidNoticeProPage } from '@/api/detail/party-a/opport'
export default {
name: 'Tencent',
props: ['companyId'],
mixins: [mixin],
components: {
skeleton
},
data() {
return {
......@@ -86,7 +89,8 @@ export default {
//列表
tableLoading:false,
tableData:[],
tableDataTotal:0
tableDataTotal:0,
isSkeleton:true,
}
},
computed: {
......@@ -125,11 +129,13 @@ export default {
}
},
async handleQuery(params) {
this.isSkeleton = true;
this.tableLoading = true
let param = params?params:this.queryParams
let res = await bidNoticeProPage(param)
this.tableLoading = false
if(res.code==200){
this.isSkeleton = false;
this.tableData = res.rows
if(this.tableData&&this.tableData.length>0){
this.tableData.forEach(item => {
......
......@@ -2,7 +2,8 @@
<div class="flex-box app-container part-container">
<div class="bid-zbph">
<div class="common-title">招标偏好</div>
<template v-if="dataAll.totalCount||dataAll.lastYearCount||dataAll.bidAmount||this.dtdata.length>0">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<template v-if="(dataAll.totalCount||dataAll.lastYearCount||dataAll.bidAmount||this.dtdata.length>0)&& !isSkeleton">
<div class="flex-box zbph-item">
<div>历史招标总数
<el-popover
......@@ -45,9 +46,10 @@
</div>
<div class="bid-ywwl">
<div class="common-title">业务往来供应商TOP5</div>
<skeleton style="margin-left:16px;" v-if="isSkeleton1"></skeleton>
<div class="table-item">
<el-table
v-if="tableData.length>0"
v-if="tableData.length>0&& !isSkeleton1"
:data="tableData"
style="width: 100%"
>
......@@ -96,15 +98,18 @@ import {encodeStr} from "@/assets/js/common"
import {bidDataGroup, supplierPage} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts'
import NoData from '../../component/noData'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Bidding',
props: ['companyId'],
components: {
NoData
NoData,skeleton
},
data() {
return {
encodeStr,
isSkeleton:true,
isSkeleton1:true,
datatype:'1',//切换类型
dataAll: {},
dtdata:[],//数据
......@@ -121,8 +126,10 @@ export default {
},
methods: {
async handleBid(){
this.isSkeleton = true;
let res = await bidDataGroup({cid: this.companyId, spanId: this.datatype})
if(res.code==200 && res.data){
this.isSkeleton = false;
let {totalCount, lastYearCount, bidAmount} = res.data
this.dataAll = {totalCount, lastYearCount, bidAmount}
this.dtdata=res.data.groupCount.map(item=>{
......@@ -139,8 +146,10 @@ export default {
}
},
async handleSupplier() {
this.isSkeleton1 = true;
let res = await supplierPage({cid: this.companyId, sort: 1, pageNum: 1, pageSize: 5})
if(res.code==200){
this.isSkeleton1 = false;
this.tableData = res.rows
this.tableData.forEach((item, index) => {
item.amount = item.amount?parseFloat(item.amount.toFixed(6)):0
......
......@@ -5,7 +5,8 @@
<el-tab-pane label="按金额" name="0"></el-tab-pane>
<el-tab-pane label="按项目" name="1"></el-tab-pane>
</el-tabs>
<div class="flex-box clue-box">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="flex-box clue-box" v-else>
<div class="clue-echarts" v-if="viewData.length>0"><div id="echartsClue" style="width: 100%;height:300px; margin: 0 auto;"></div></div>
<div class="table-item" v-if="viewData.length>0">
......@@ -43,6 +44,7 @@
</template>
<script>
import skeleton from '@/views/project/projectList/component/skeleton'
import {projectTenderDataGroup} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts'
import {changePath} from "@/assets/js/common"
......@@ -51,11 +53,12 @@ export default {
name: 'Busclue',
props: ['companyId', 'statistic'],
components: {
NoData
NoData,skeleton
},
data() {
return {
viewData:[],
isSkeleton:true,
activeIndex:0,
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")},
......@@ -75,8 +78,10 @@ export default {
},
methods: {
async handleQuery(){
this.isSkeleton = true;
let res = await projectTenderDataGroup({cid: this.companyId, type: this.activeIndex})
if(res.code==200 && res.data){
this.isSkeleton = false;
let data = res.data, totalVal = data.map(item => item.value).reduce((prev, cur) => prev + cur)
this.viewData = data.map(item => {
let it = {name:item.name, value:item.value, percent:parseFloat(Number(Number(item.value)/Number(totalVal)*100).toFixed(2))}
......
......@@ -12,7 +12,8 @@
<el-tab-pane label="总资产" name="2"></el-tab-pane>
<el-tab-pane label="净资产" name="3"></el-tab-pane>
</el-tabs>
<div class="flex-box finance-box">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="flex-box finance-box" v-else>
<div class="finance-echarts" v-if="viewData.length>0"><div id="echartsFinance" style="width: 100%;height:300px; margin: 0 auto;"></div></div>
<div class="finance-no-data" v-else>
<no-data />
......@@ -61,6 +62,7 @@
</template>
<script>
import skeleton from '@/views/project/projectList/component/skeleton'
import {financialData} from '@/api/detail/party-a/overview'
import * as echarts from 'echarts'
import NoData from '../../component/noData'
......@@ -68,11 +70,12 @@ export default {
name: 'Finance',
props: ['companyId'],
components: {
NoData
NoData,skeleton
},
data() {
return {
viewData:[],
isSkeleton:true,
activeIndex:0,
vals:['operatingIncome','netProfit','totalAssets','netAssets'],
names:['营业收入(亿)','净利润(亿)','总资产(亿)','净资产(亿)'],
......@@ -85,8 +88,10 @@ export default {
},
methods: {
async handleQuery(val){
this.isSkeleton = true;
let res = await financialData({cid: this.companyId})
if(res.code==200 && res.data){
this.isSkeleton = false;
this.viewData = res.data
if(this.viewData.length>0){
this.$nextTick(() => {
......
<template>
<div class="app-container operations-container">
<div class="common-title">公司经营</div>
<div class="part-swiper" v-if="operList.length>0">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="part-swiper" v-if="operList.length>0&&!isSkeleton">
<div class="swiper-containers swiper-oper" :style="operList.length<=6?'margin-left:0px; width: 100%;':''">
<ul class="swiper-wrapper">
<li class="swiper-slide" v-for="(item, index) in operList" :key="index">
......@@ -18,7 +19,7 @@
<div class="swiper-button-prev swiper-oper-prev" slot="button-prev" style="left: 0;"><i class="el-icon-arrow-left"></i></div>
<div class="swiper-button-next swiper-oper-next" slot="button-next" style="right: 0"><i class="el-icon-arrow-right"></i></div>
</div>
<div class="part-swiper" v-else>
<div class="part-swiper" v-if="operList.length==0&&!isSkeleton">
<no-data />
</div>
<div class="flex-box operations-list">
......@@ -33,17 +34,19 @@
<script>
import {bondCreditRating} from '@/api/detail/party-a/overview'
var Swiper = require('@/assets/lib/swiper/swiper-bundle.min.js')
import skeleton from '@/views/project/projectList/component/skeleton'
import "@/assets/lib/swiper/swiper-bundle.css"
import NoData from '../../component/noData'
export default {
name: 'Overview',
props: ['companyId', 'financial'],
components: {
NoData
NoData,skeleton
},
data() {
return {
operList: [],
isSkeleton:true,
gsjyList: [
{ name: '总资产', ico: require('@/assets/images/detail/overview/gsjy_ico1.png'), amount: ''},
{ name: '净资产', ico: require('@/assets/images/detail/overview/gsjy_ico2.png'), amount: ''},
......@@ -71,8 +74,10 @@ export default {
})
},
async handleQuery() {
this.isSkeleton = true;
let res = await bondCreditRating({cid: this.companyId})
if(res.code==200){
this.isSkeleton = false;
this.operList = res.data || []
this.$nextTick(() => {
this.companySwiper()
......
......@@ -6,7 +6,8 @@
<el-tab-pane label="对外投资" :disabled="shipTotal<1" name="second"></el-tab-pane>
<el-tab-pane label="分支机构" :disabled="affiliatesTotal<1" name="third"></el-tab-pane>
</el-tabs>
<div class="table-item">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="table-item" v-else>
<div class="rela-person" v-show="activeName=='first'">实际控制人:{{financial&&financial.actualController || '--'}}</div>
<el-table :data="holderData" border style="width: 100%" v-show="activeName=='first'">
<el-table-column label="序号" width="55" align="left" fixed>
......@@ -103,14 +104,16 @@
import {encodeStr, changePath} from "@/assets/js/common"
import {bestStockPage, investment,affiliates} from '@/api/detail/party-a/overview'
import NoData from '../../component/noData'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Relationship',
props: ['companyId', 'financial'],
components: {
NoData
NoData,skeleton
},
data() {
return {
isSkeleton:true,
encodeStr,
activeName:'first',
//表格数据
......@@ -147,8 +150,10 @@ export default {
},
methods: {
async handleQuery(){
this.isSkeleton = true;
let res = await bestStockPage(this.holderParams)
if(res.code==200){
this.isSkeleton = false;
if(res.rows&&res.rows.length>0){
res.rows.forEach(item => {
item.stockPercent?item.stockPercent = parseFloat(Number(item.stockPercent*100).toFixed(4))+'%':''
......
<template>
<div class="app-container rela-container">
<div class="common-title">高管</div>
<div class="table-item">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<div class="table-item" v-else>
<el-table
v-if="tableData.length>0"
:data="tableData"
......@@ -36,12 +37,13 @@
<script>
import {keymembers} from "@/api/detail/party-a/overview"
import NoData from '../../component/noData'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Senior',
props: ['companyId'],
data() {
return {
isSkeleton:true,
queryParams: {
cid: this.companyId,
pageNum: 1,
......@@ -52,7 +54,7 @@ export default {
}
},
components: {
NoData
NoData,skeleton
},
created() {
this.handleQuery()
......@@ -61,8 +63,10 @@ export default {
},
methods: {
async handleQuery(){
this.isSkeleton = true;
let res = await keymembers(this.queryParams)
if(res.code==200){
this.isSkeleton = false;
let tempRows = []
if(res.rows&&res.rows.length>0){
let arrLength = res.rows.length%2==0?(res.rows.length/2):(Math.floor(res.rows.length/2)+1)
......
<template>
<div class="flex-box app-container part-container">
<div class="tender-list" ref="zbggScroll" @scroll="scrollbottom()">
<div class="common-title">招标公告</div>
<template v-if="zbggList.length>0">
<skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton>
<template v-if="zbggList.length>0&&!isSkeleton">
<div class="tender-item" v-for="(item, index) in zbggList" :key="index">
<div class="flex-box tender-title"><div class="text-cl2" :title="item.projectName"><router-link :to="'/radar/Notice/details/'+item.bid" tag="a" class="a-link">{{item.projectName}}</router-link></div><span :class="item.projectCategory=='项目动态'?'style2':item.tag=='招投标'?'style4':'style1'" v-if="item.projectCategory">{{item.projectCategory}}</span></div>
<span class="tender-time"><span @click="handleUrl(item.url)" style="cursor: pointer;">{{item.dataSource}}</span> {{item.issueTime}}</span>
</div>
</template>
<div class="tender-no-data" v-else>
<div class="tender-no-data" v-if="zbggList.length==0&&!isSkeleton">
<no-data />
</div>
</div>
<div class="tender-list" ref="trendScroll" @scroll="scrollbottom(true)">
<div class="tender-list" ref="trendScroll" @scroll="scrollbottom(true)" >
<div class="common-title">企业动态</div>
<template v-if="trendList.length>0">
<skeleton style="margin-left:16px;" v-if="isSkeleton1"></skeleton>
<template v-if="trendList.length>0&&!isSkeleton1">
<div class="tender-item" v-for="(item, index) in trendList" :key="index">
<div class="flex-box tender-title"><div class="text-cl2" :title="tendTitle(item.details)">{{tendTitle(item.details)}}</div><span :class="item.parentDimension=='新增分支机构'?'style2':item.parentDimension=='新增施工工法'?'style3':'style1'">{{item.parentDimension}}</span></div>
<span class="tender-time">{{item.createTime}}</span>
</div>
</template>
<div class="tender-no-data" v-else>
<div class="tender-no-data" v-if="trendList.length==0&&!isSkeleton1">
<no-data />
</div>
</div>
......@@ -30,14 +33,17 @@
<script>
import {bidNoticePage, dynamicPage} from "@/api/detail/party-a/overview"
import NoData from '../../component/noData'
import skeleton from '@/views/project/projectList/component/skeleton'
export default {
name: 'Tender',
props: ['companyId'],
components: {
NoData
NoData,skeleton
},
data() {
return {
isSkeleton:true,
isSkeleton1:true,
zbggParams: {
cid: this.companyId,
sort: 3,
......@@ -81,15 +87,19 @@ export default {
},
methods: {
async handleQuery() {
this.isSkeleton = true;
this.isSkeleton1 = true;
let [notice, namic] = await Promise.all([
bidNoticePage(this.zbggParams),
dynamicPage(this.trendParams)
])
if(notice.code==200){
this.isSkeleton = false;
this.zbggList = notice.rows;
this.zbggTotal = notice.total;
}
if(namic.code==200){
this.isSkeleton1 = false;
this.trendList = namic.rows;
this.trendTotal = namic.total;
}
......
<template>
<div class="app-container part-container">
<div class="view-content"><Infoheader :companyId="companyId" :companyInfo="companyInfo" :statistic="statistic" /></div><!-- 企业信息 -->
<div class="view-content"><skeleton style="margin-left:16px;" v-if="isSkeleton"></skeleton><Infoheader v-else :companyId="companyId" :companyInfo="companyInfo" :statistic="statistic" /></div><!-- 企业信息 -->
<div class="view-content"><Operations :companyId="companyId" :financial="financial" /></div><!-- 公司经营 -->
<div class="view-content"><Bidding :companyId="companyId" /></div><!--招标偏好、业务往来-->
<div class="view-content"><Busclue :companyId="companyId" :statistic="statistic" /></div><!--商机线索-->
......@@ -23,10 +23,11 @@ import Finance from './component/finance'
import Relationship from './component/relationship'
import Senior from './component/senior'
import Risk from './component/risk'
import skeleton from '@/views/project/projectList/component/skeleton'
import Tender from "./component/tender"
export default {
name: 'Overview',
props: ['companyId', 'companyInfo'],
props: ['companyId', 'companyInfo','isSkeleton'],
components: {
Infoheader,
Operations,
......@@ -36,6 +37,7 @@ export default {
Senior,
Risk,
Finance,
skeleton,
Tender
},
data() {
......
......@@ -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