From 0f10707eaa4d58832903a2f27e19f9fb713c7715 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 06 三月 2025 11:08:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/GeneralDataVO.java | 24 +++
admin/src/api/business/visitEvent.js | 5
admin/src/views/business/dangerStatic.vue | 112 ++++++++++++++++
admin/src/views/platform/index.vue | 11 +
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerCloudController.java | 10 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerService.java | 3
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java | 86 +++++++++++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/HiddenDangerDataVO.java | 20 ++
admin/src/views/business/visitEvent.vue | 115 +++++++++------
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDanger.java | 3
10 files changed, 336 insertions(+), 53 deletions(-)
diff --git a/admin/src/api/business/visitEvent.js b/admin/src/api/business/visitEvent.js
index 94918e5..6264012 100644
--- a/admin/src/api/business/visitEvent.js
+++ b/admin/src/api/business/visitEvent.js
@@ -14,3 +14,8 @@
download: true
})
}
+export function fetchcountNum (data) {
+ return request.post('/visitsAdmin/cloudService/business/visitEvent/countNum', data, {
+ trim: true
+ })
+}
\ No newline at end of file
diff --git a/admin/src/views/business/dangerStatic.vue b/admin/src/views/business/dangerStatic.vue
new file mode 100644
index 0000000..49d5e6d
--- /dev/null
+++ b/admin/src/views/business/dangerStatic.vue
@@ -0,0 +1,112 @@
+<template>
+ <div class="main_app">
+ <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getData(1)" @clear="clear"
+ @changeForm='changeForm'>
+ <template #fastdate>
+ <el-radio-group v-model="filters.fastdate" size="small" @input="changeForm">
+ <el-radio-button label="0">褰撳ぉ</el-radio-button>
+ <el-radio-button label="6">杩�7澶�</el-radio-button>
+ <el-radio-button label="29">杩�30澶�</el-radio-button>
+ </el-radio-group>
+ </template>
+ </QueryForm>
+ <div class="main_content">
+ <div class="type_wrap">
+ <div class="title">闅愭偅绫诲瀷缁熻</div>
+ <div class="type" ref="typeRef"></div>
+ </div>
+ <div class="dept_wrap">
+ <div class="title">闅愭偅褰掑睘閮ㄩ棬缁熻</div>
+ <div class="dept" ref="deptRef"></div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import QueryForm from '@/components/common/QueryForm'
+import echarts from 'echarts'
+export default {
+ components: {
+ QueryForm,
+ },
+ data() {
+ return {
+ filters: {},
+ queryFormConfig: {
+ formItems: [
+ {
+ filed: 'status',
+ type: 'select',
+ label: '鐘舵��',
+ options: [
+ { label: '璁垮鐢宠', value: '0' },
+ { label: '璁垮鎶ュ', value: '1' },
+ { label: '鐢ㄨ溅鐢宠', value: '2' },
+ { label: '闅愭偅闅忔墜鎷�', value: '3' },
+ { label: '鐗╂祦杞︾敵璇�', value: '6' }
+ ]
+ },
+ {
+ filed1: 'startDate',
+ filed2: 'endDate',
+ type: 'datetime',
+ label: '鎻愭姤鏃堕棿'
+ },
+ {
+ type: 'slot',
+ filed: 'fastdate',
+ label: ''
+ }
+ ],
+ online: true
+ },
+ }
+ },
+ methods: {
+ getData(page) {
+ console.log(this.filters)
+ },
+ changeForm(form) {
+ console.log(form)
+ },
+ clear() {
+ this.filters = {}
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+.main_app {
+ height: 100%;
+}
+
+.main_content {
+ display: flex;
+ height: calc(100% - 110px);
+ .title {
+ font-weight: 600;
+ font-size: 16px;
+ color: #222222;
+ margin-bottom: 20px;
+ margin-top: 20px;
+ }
+
+ .type_wrap {
+ flex: 5;
+ flex-shrink: 0;
+ border: 1px solid #E5E5E5;
+ height: 100%;
+ border-right: 12px solid #f7f7f7;
+ }
+
+ .dept_wrap {
+ flex: 4;
+ flex-shrink: 0;
+ border: 1px solid #E5E5E5;
+ height: 100%;
+ padding-left: 20px;
+ }
+}
+</style>
\ No newline at end of file
diff --git a/admin/src/views/business/visitEvent.vue b/admin/src/views/business/visitEvent.vue
index 4af12b0..a95a8b9 100644
--- a/admin/src/views/business/visitEvent.vue
+++ b/admin/src/views/business/visitEvent.vue
@@ -1,58 +1,64 @@
<template>
<TableLayout :permissions="['business:visitevent:query']">
<!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="濮撳悕/鎵嬫満鍙�" prop="keyWords">
- <el-input v-model="searchForm.keyWords" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="杞︾墝鍙�" prop="carNo">
- <el-input v-model="searchForm.carNo" placeholder="璇疯緭鍏ヨ溅鐗屽彿" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="缁勭粐鍚嶇О" prop="visitorWorkUint">
- <el-input v-model="searchForm.visitorWorkUint" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="浜嬩欢绫诲瀷" prop="eventType">
- <el-select v-model="searchForm.eventType" placeholder="璇烽�夋嫨">
- <el-option label="璁垮鐧昏" value="541200006"></el-option>
- <el-option label="璁垮绛剧" value="541200007"></el-option>
- <el-option label="璁垮閫氳" value="541200060"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="杩涘嚭绫诲瀷" prop="inOrOut">
- <el-select v-model="searchForm.inOrOut" placeholder="璇烽�夋嫨">
- <el-option label="杩�" value="0"></el-option>
- <el-option label="鍑�" value="1"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="璧峰鏃堕棿" prop="carNo">
- <!-- <el-date-picker @change="seleTime" v-model="time" type="datetimerange" format="yyyy-MM-dd HH:mm:ss"
+ <div slot="search-form" ref="QueryFormRef">
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="濮撳悕/鎵嬫満鍙�" prop="keyWords">
+ <el-input v-model="searchForm.keyWords" placeholder="璇疯緭鍏ュ鍚�/鎵嬫満鍙�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="杞︾墝鍙�" prop="carNo">
+ <el-input v-model="searchForm.carNo" placeholder="璇疯緭鍏ヨ溅鐗屽彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="缁勭粐鍚嶇О" prop="visitorWorkUint">
+ <el-input v-model="searchForm.visitorWorkUint" placeholder="璇疯緭鍏ョ粍缁囧悕绉�"
+ @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="浜嬩欢绫诲瀷" prop="eventType">
+ <el-select v-model="searchForm.eventType" placeholder="璇烽�夋嫨">
+ <el-option label="璁垮鐧昏" value="541200006"></el-option>
+ <el-option label="璁垮绛剧" value="541200007"></el-option>
+ <el-option label="璁垮閫氳" value="541200060"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="杩涘嚭绫诲瀷" prop="inOrOut">
+ <el-select v-model="searchForm.inOrOut" placeholder="璇烽�夋嫨">
+ <el-option label="杩�" value="0"></el-option>
+ <el-option label="鍑�" value="1"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璧峰鏃堕棿" prop="carNo">
+ <!-- <el-date-picker @change="seleTime" v-model="time" type="datetimerange" format="yyyy-MM-dd HH:mm:ss"
value-format="yyyy-MM-dd HH:mm:ss" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡">
</el-date-picker> -->
- <el-date-picker type="datetime" v-model="searchForm.startTime" value-format="yyyy-MM-dd HH:mm:ss"
- placeholder="璇烽�夋嫨寮�濮嬫椂闂�" @change="changeRadio" />
- <el-date-picker type="datetime" v-model="searchForm.endTime" value-format="yyyy-MM-dd HH:mm:ss"
- placeholder="璇烽�夋嫨缁撴潫鏃堕棿" @change="changeRadio" />
- </el-form-item>
- <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
- <el-radio-button label="0">褰撳ぉ</el-radio-button>
- <el-radio-button label="1">杩�7澶�</el-radio-button>
- <el-radio-button label="2">杩�30澶�</el-radio-button>
- </el-radio-group>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
+ <el-date-picker type="datetime" v-model="searchForm.startTime" value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="璇烽�夋嫨寮�濮嬫椂闂�" @change="changeRadio" />
+ <el-date-picker type="datetime" v-model="searchForm.endTime" value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="璇烽�夋嫨缁撴潫鏃堕棿" @change="changeRadio" />
+ </el-form-item>
+ <el-radio-group v-model="searchForm.radio" size="small" @input="changeRadio">
+ <el-radio-button label="0">褰撳ぉ</el-radio-button>
+ <el-radio-button label="1">杩�7澶�</el-radio-button>
+ <el-radio-button label="2">杩�30澶�</el-radio-button>
+ </el-radio-group>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ </div>
+
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:visitevent:exportExcel']">
<li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:visitevent:exportExcel']"
@click="exportExcel">瀵煎嚭</el-button></li>
+ <li class="ml20"> 鎷滆浜烘锛�<span class="primaryColor">{{staticObj.eventNum}}娆�</span></li>
+ <li class="ml20"> 鎷滆浜烘暟锛�<span class="primaryColor">{{staticObj.visitorNum}}浜�</span></li>
</ul>
- <el-table v-loading="isWorking.search" :data="tableData.list" stripe>
- <el-table-column prop="personName" label="濮撳悕" min-width="100px"></el-table-column>
+ <el-table :max-height="tableHeight" v-loading="isWorking.search" :data="tableData.list" stripe>
+ <el-table-column prop="personName" label="濮撳悕" min-width="90px"></el-table-column>
<el-table-column prop="phone" label="鎵嬫満鍙风爜" min-width="100px"></el-table-column>
- <el-table-column prop="idcardDecode" label="韬唤璇佸彿鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="idcardDecode" label="韬唤璇佸彿鐮�" min-width="120px"></el-table-column>
<el-table-column prop="visitorWorkUint" label="缁勭粐" min-width="100px"></el-table-column>
<el-table-column prop="carNo" label="杞︾墝鍙�" min-width="100px"></el-table-column>
<el-table-column prop="beVisitedPersonName" label="琚浜�" min-width="100px"></el-table-column>
@@ -72,7 +78,7 @@
</el-image>
</template>
</el-table-column>
- <el-table-column prop="createDate" label="浜嬩欢鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="浜嬩欢鏃堕棿" min-width="120px"></el-table-column>
</el-table>
<pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
</pagination>
@@ -85,6 +91,7 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import { timeForMat } from '@/utils/util'
+import { fetchcountNum } from '@/api/business/visitEvent'
export default {
name: 'VisitEvent',
extends: BaseTable,
@@ -103,7 +110,9 @@
visitorWorkUint: '',
radio: '0'
},
- time: []
+ tableHeight: 400,
+ time: [],
+ staticObj: {}
}
},
created() {
@@ -117,12 +126,22 @@
this.changeRadio('0')
this.search()
},
+ mounted() {
+ this.$nextTick(() => {
+ this.tableHeight = document.body.scrollHeight - this.$refs.QueryFormRef.offsetHeight - 300
+ })
+ },
methods: {
seleTime(e) {
this.searchForm.startTime = e[0]
this.searchForm.endTime = e[1]
this.searchForm.radio = null
this.search()
+ },
+ getCountNum() {
+ fetchcountNum(this.searchForm).then(res => {
+ this.staticObj = res
+ })
},
changeRadio(e) {
if (e === '0') {
@@ -149,7 +168,11 @@
this.time = []
this.searchForm = {}
this.search()
- }
+ },
+ search() {
+ this.getCountNum()
+ this.handlePageChange(1)
+ },
}
}
</script>
diff --git a/admin/src/views/platform/index.vue b/admin/src/views/platform/index.vue
index e566346..82d288f 100644
--- a/admin/src/views/platform/index.vue
+++ b/admin/src/views/platform/index.vue
@@ -202,17 +202,26 @@
detail: {},
isShowQueuing: false,
timer: null,
+ timer2: null,
loadingOpen: false,
loadingFinish: false,
}
},
created() {
- setInterval(() => {
+ this.timer2 = setInterval(() => {
this.getPlatGroupList()
}, 1000 * 20)
this.getPlatGroupList()
},
+ beforeDestroy() {
+ if (this.timer2) {
+ clearInterval(this.timer2)
+ }
+ if (this.timer) {
+ clearInterval(this.timer)
+ }
+ },
methods: {
handleWork(item) {
this.loadingOpen = true
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerCloudController.java
index 6861738..fa14171 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HiddenDangerCloudController.java
@@ -117,4 +117,14 @@
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
+
+ @ApiOperation("闅愭偅鏁版嵁缁熻")
+ @PostMapping("/hiddenDangerData")
+ public ApiResponse hiddenDangerData (@RequestBody HiddenDanger hiddenDanger,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ hiddenDanger.setLoginUserInfo(getLoginUser(token));
+ hiddenDangerService.hiddenDangerData(hiddenDanger);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDanger.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDanger.java
index 862e7ea..1be3932 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDanger.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/HiddenDanger.java
@@ -157,5 +157,8 @@
@TableField(exist = false)
private List<Multifile> multifileList;
+ @ApiModelProperty(value = "闅愭偅鍖哄煙閮ㄩ棬涓婚敭", example = "1",hidden = true)
+ @TableField(exist = false)
+ private Integer areaCompanyId;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/GeneralDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/GeneralDataVO.java
new file mode 100644
index 0000000..f56e68e
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/GeneralDataVO.java
@@ -0,0 +1,24 @@
+package com.doumee.dao.business.vo;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.service.business.third.model.LoginUserModel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class GeneralDataVO{
+
+ @ApiModelProperty(value = "鍚嶇О")
+ private String name;
+
+ @ApiModelProperty(value = "鏁伴噺")
+ private Integer total ;
+
+ @ApiModelProperty(value = "鍗犳瘮")
+ private BigDecimal rata ;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/HiddenDangerDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/HiddenDangerDataVO.java
new file mode 100644
index 0000000..dd29a21
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/HiddenDangerDataVO.java
@@ -0,0 +1,20 @@
+package com.doumee.dao.business.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class HiddenDangerDataVO {
+
+ @ApiModelProperty(value = "鎬绘暟")
+ private Integer total;
+
+ @ApiModelProperty(value = "闅愭偅绫诲瀷缁熻")
+ private List<GeneralDataVO> cateList ;
+
+ @ApiModelProperty(value = "闅愭偅閮ㄩ棬缁熻")
+ private List<GeneralDataVO> departmentList ;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerService.java
index bfd3bd5..7cb29aa 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/HiddenDangerService.java
@@ -1,5 +1,6 @@
package com.doumee.service.business;
+import com.doumee.dao.business.vo.HiddenDangerDataVO;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
@@ -100,4 +101,6 @@
void dealHiddenDanger(HiddenDanger hiddenDanger);
void transferHiddenDanger(HiddenDanger hiddenDanger);
+
+ HiddenDangerDataVO hiddenDangerData(HiddenDanger hiddenDanger);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
index 5f7d60e..aa262d1 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -8,7 +8,9 @@
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
-import com.doumee.dao.business.dao.UserActionMapper;
+import com.doumee.dao.business.dao.*;
+import com.doumee.dao.business.vo.GeneralDataVO;
+import com.doumee.dao.business.vo.HiddenDangerDataVO;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
@@ -19,9 +21,6 @@
import com.doumee.core.wx.wxPlat.WxPlatConstants;
import com.doumee.core.wx.wxPlat.WxPlatNotice;
import com.doumee.dao.business.*;
-import com.doumee.dao.business.dao.MemberMapper;
-import com.doumee.dao.business.dao.SmsConfigMapper;
-import com.doumee.dao.business.dao.SmsEmailMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.system.MultifileMapper;
@@ -41,7 +40,9 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import java.math.BigDecimal;
import java.util.*;
+import java.util.stream.Collectors;
/**
* 闅愭偅淇℃伅琛⊿ervice瀹炵幇
@@ -73,6 +74,9 @@
private HiddenDangerLogMapper hiddenDangerLogMapper;
@Autowired
private UserActionMapper userActionMapper;
+
+ @Autowired
+ private CompanyMapper companyMapper;
@Autowired
@@ -471,8 +475,8 @@
.and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getName,pageWrap.getModel().getMemberName())
.or().like(Member::getPhone,pageWrap.getModel().getMemberName()))
- .ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), Empower::getCreateDate,pageWrap.getModel().getQueryStartTime())
- .le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()),Empower::getCreateDate,pageWrap.getModel().getQueryEndTime())
+ .ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), HiddenDanger::getCreateDate,pageWrap.getModel().getQueryStartTime())
+ .le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()),HiddenDanger::getCreateDate,pageWrap.getModel().getQueryEndTime())
.orderByDesc(Visits::getCreateDate)
;
for(PageWrap.SortData sortData: pageWrap.getSorts()) {
@@ -772,4 +776,74 @@
}
+ /**
+ * 闅忔墜鎷嶇粺璁℃暟鎹�
+ */
+ @Override
+ public HiddenDangerDataVO hiddenDangerData(HiddenDanger hiddenDanger){
+ HiddenDangerDataVO hiddenDangerDataVO = new HiddenDangerDataVO();
+ List<HiddenDanger> hiddenDangerAllList = hiddenDangerMapper.selectJoinList(HiddenDanger.class,
+ new MPJLambdaWrapper<HiddenDanger>()
+ .selectAll(HiddenDanger.class)
+ .selectAs(HiddenDangerParam::getCompanyId, HiddenDanger::getAreaCompanyId)
+ .leftJoin(HiddenDangerParam.class,HiddenDangerParam::getId,HiddenDanger::getAreaId) //闅愭偅鍖哄煙
+ .eq(Objects.nonNull(hiddenDanger.getStatus()),HiddenDanger::getStatus,hiddenDanger.getStatus())
+ .ge(Objects.nonNull(hiddenDanger.getQueryStartTime()), HiddenDanger::getCreateDate,hiddenDanger.getQueryStartTime())
+ .le(Objects.nonNull(hiddenDanger.getQueryEndTime()),HiddenDanger::getCreateDate,hiddenDanger.getQueryEndTime())
+ );
+ hiddenDangerDataVO.setTotal(hiddenDangerAllList.size());
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(hiddenDangerAllList)){
+ List<Integer> cateList = hiddenDangerAllList.stream().map(i->i.getCateId()).collect(Collectors.toList());
+ //鍏ㄩ儴闅愭偅鍒嗙被鏁版嵁
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(cateList)){
+ List<GeneralDataVO> cateGeneralDataList = new ArrayList<>();
+ Set<Integer> cateSetList = new HashSet<>(cateList);
+ List<HiddenDangerParam> hiddenDangerParamList = hiddenDangerParamMapper.selectList(new QueryWrapper<HiddenDangerParam>()
+ .lambda().eq(HiddenDangerParam::getIsdeleted,Constants.ZERO).eq(HiddenDangerParam::getType,Constants.ONE));
+ for (Integer cateId:cateSetList) {
+ Optional<HiddenDangerParam> optionalHiddenDanger = hiddenDangerParamList.stream().filter(i->Constants.equalsInteger(i.getId(),cateId)).findAny();
+ if(optionalHiddenDanger.isPresent()){
+ GeneralDataVO generalDataVO = new GeneralDataVO();
+ HiddenDangerParam hiddenDangerParam = optionalHiddenDanger.get();
+ Integer total = hiddenDangerAllList.stream().filter(i->Constants.equalsInteger(i.getCateId(),hiddenDangerParam.getId())).collect(Collectors.toList()).size();
+ generalDataVO.setName(hiddenDangerParam.getName());
+ generalDataVO.setTotal(total);
+ generalDataVO.setRata(
+ Constants.equalsInteger(total,Constants.ZERO)?
+ BigDecimal.ZERO:new BigDecimal(total.toString()).divide(new BigDecimal(hiddenDangerDataVO.getTotal().toString()),2).multiply(new BigDecimal("100"))
+ );
+ cateGeneralDataList.add(generalDataVO);
+ }
+ }
+ hiddenDangerDataVO.setCateList(cateGeneralDataList);
+ }
+ //鍏ㄩ儴闅愭偅鍖哄煙閮ㄩ棬鏁版嵁
+ List<Integer> companyIdList = hiddenDangerAllList.stream().map(i->i.getAreaCompanyId()).collect(Collectors.toList());
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(companyIdList)){
+ List<GeneralDataVO> companyGeneralDataList = new ArrayList<>();
+ Set<Integer> companyIdSetList = new HashSet<>(companyIdList);
+ List<Company> companyList = companyMapper.selectList(new QueryWrapper<Company>()
+ .lambda().eq(Company::getIsdeleted,Constants.ZERO));
+ for (Integer companyId:companyIdSetList) {
+ Optional<Company> optionalCompany = companyList.stream().filter(i->Constants.equalsInteger(i.getId(),companyId)).findAny();
+ if(optionalCompany.isPresent()){
+ GeneralDataVO generalDataVO = new GeneralDataVO();
+ Company company = optionalCompany.get();
+ Integer total = hiddenDangerAllList.stream().filter(i->Constants.equalsInteger(i.getAreaCompanyId(),company.getId())).collect(Collectors.toList()).size();
+ generalDataVO.setName(company.getName());
+ generalDataVO.setTotal(total);
+ companyGeneralDataList.add(generalDataVO);
+ }
+ }
+ hiddenDangerDataVO.setDepartmentList(companyGeneralDataList);
+ }
+ }
+
+ return hiddenDangerDataVO;
+ }
+
+
+
+
+
}
--
Gitblit v1.9.3