¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '../../utils/request' |
| | | |
| | | // æ¥è¯¢ |
| | | export function fetchList (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/retention/pageCars', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // 导åºExcel |
| | | export function exportExcel (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/retention/exportExcelCars', data, { |
| | | trim: true, |
| | | download: true |
| | | }) |
| | | } |
| | | // å é¤ |
| | | export function deleteById (id) { |
| | | return request.get(`/visitsAdmin/cloudService/business/retention/delete/${id}`) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:retention:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <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="keyWords"> |
| | | <el-input v-model="searchForm.keyWords" placeholder="请è¾å
¥å§å/ææºå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ç»" prop="companyName"> |
| | | <el-input v-model="searchForm.companyName" placeholder="请è¾å
¥ç»ç»åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="车è¾ç±»å" prop="carType"> |
| | | <el-select v-model="searchForm.carType" placeholder="è¯·éæ©"> |
| | | <el-option label="å
é¨è½¦è¾" value="0"></el-option> |
| | | <el-option label="ç¸å
³æ¹è½¦è¾" value="1"></el-option> |
| | | <el-option label="访客车è¾" value="2"></el-option> |
| | | <el-option label="å
è¿ç©æµè½¦" value="3"></el-option> |
| | | <el-option label="å¤å车è¾" value="4"></el-option> |
| | | <el-option label="å¸å
¬å¸å¸è´§è½¦" value="5"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·æ¢æ¶é´" prop="startTime"> |
| | | <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-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> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:retention:exportExcel']"> |
| | | <li> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:retention:exportExcel']" |
| | | @click="exportExcel">导åº</el-button> |
| | | </li> |
| | | </ul> |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="createDate" label="è¿åºæ¶é´" min-width="150px"></el-table-column> |
| | | <el-table-column prop="carNo" label="车çå·" min-width="100px"></el-table-column> |
| | | <el-table-column prop="companyName" label="ç»ç»" min-width="250px"> |
| | | <template slot-scope="{ row }"> |
| | | <span>{{row.companyName || row.visitCompanyName || '' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="carType" label="车è¾ç±»å" min-width="100px"> |
| | | <template slot-scope="{ row }"> |
| | | <span v-if="row.carType == 0">å
é¨è½¦è¾</span> |
| | | <span v-else-if="row.carType == 1">ç¸å
³æ¹è½¦è¾</span> |
| | | <span v-else-if="row.carType == 2">访客车è¾</span> |
| | | <span v-else-if="row.carType == 3">å
è¿ç©æµè½¦</span> |
| | | <span v-else-if="row.carType == 4">å¤å车è¾</span> |
| | | <span v-else-if="row.carType == 5">å¸å
¬å¸å¸è´§è½¦</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="å§å" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="ææºå·" min-width="100px"></el-table-column> |
| | | <!-- <el-table-column label="è¿åºé¨ç¦" min-width="100px"> |
| | | <template slot-scope="{ row }"> |
| | | <!– <span v-if="row.type === 1">-</span> –> |
| | | <span>{{ row.deviceName || '-' }}</span> |
| | | </template> |
| | | </el-table-column>--> |
| | | <el-table-column label="æä½" min-width="120" fixed="right"> |
| | | <template slot-scope="{ row }"> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" |
| | | v-permissions="['business:retention:delete']">æ 记离åº</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { timeForMat } from '@/utils/util' |
| | | export default { |
| | | name: 'Retention', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination }, |
| | | data() { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | carNo: '', |
| | | carType: '', |
| | | keyWords: '', |
| | | startTime: '', |
| | | endTime: '', |
| | | radio: 0 |
| | | }, |
| | | time: [] |
| | | } |
| | | }, |
| | | created() { |
| | | this.config({ |
| | | module: 'å¨å人åä¿¡æ¯ è¡¨ï¼æ»çï¼', |
| | | api: '/business/retentionCars', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.changeRadio('0') |
| | | }, |
| | | methods: { |
| | | changeRadio(e) { |
| | | if (e === '0') { |
| | | this.searchForm.startTime = timeForMat(0)[0] |
| | | this.searchForm.endTime = timeForMat(0)[1] |
| | | this.time = timeForMat(0) |
| | | } else if (e === '1') { |
| | | this.searchForm.startTime = timeForMat(6)[0] |
| | | this.searchForm.endTime = timeForMat(6)[1] |
| | | this.time = timeForMat(6) |
| | | } else if (e === '2') { |
| | | this.searchForm.startTime = timeForMat(29)[0] |
| | | this.searchForm.endTime = timeForMat(29)[1] |
| | | this.time = timeForMat(29) |
| | | } |
| | | this.search() |
| | | }, |
| | | reset() { |
| | | this.$refs.searchForm.resetFields() |
| | | this.searchForm.startTime = '' |
| | | this.searchForm.radio = '0' |
| | | this.searchForm.endTime = '' |
| | | this.time = [] |
| | | this.search() |
| | | }, |
| | | seleTime(e) { |
| | | if(e && e.length >2){ |
| | | this.searchForm.startTime = e[0] |
| | | this.searchForm.endTime = e[1] |
| | | this.searchForm.radio = null |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | <el-input v-model="form.limitNum" type="number" placeholder="请è¾å
¥å®¹çº³äººæ°" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="管çå" prop="sysList"> |
| | | <el-select v-model="form.sysList" filterable multiple clearable placeholder="è¯·éæ©é¨é¨"> |
| | | <el-select style="width: 100%" v-model="form.sysList" filterable multiple clearable placeholder="è¯·éæ©é¨é¨"> |
| | | <!-- :label="`${item.department.name}-${item.realname}`" --> |
| | | <el-option v-for="item in userList()" :key="item.id" :value="item.id" |
| | | :label="item.companyId ? `${item.companyName}-${item.companyName}` : item.realname" /> |
| | | :label="item.companyId ? `${item.realname}-${item.companyName}` : item.realname" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æä¾æå¡é¡¹ç®" prop="projectList"> |
| | |
| | | v-for="item in userList" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | :label="item.companyId?`${item.companyName}-${item.companyName}`:item.realname" |
| | | :label="item.companyId?`${item.realname}-${item.companyName}`:item.realname" |
| | | ></el-option> |
| | | <!-- :label="`${item.department.name}-${item.realname}`" --> |
| | | <!-- <el-option :key="1" :value="1" label="ç¦ç¨" /> --> |
| | |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaRoomsWindow from '@/views/meeting/components/OperaRoomsWindow' |
| | | import { fetchList as userList } from '@/api/system/user' |
| | | import { findAllList as userList } from '@/api/system/user' |
| | | // import selectMember from '@/components/meeting/selectMember' |
| | | import { updateStatusById } from '@/api/meeting/rooms' |
| | | export default { |
| | |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | userList({ |
| | | page: 1, |
| | | capacity: 9999, |
| | | memberType: 2, |
| | | model: { realname: this.filterText } |
| | | }) |
| | | userList({ queryParam: this.filterText ,workStatus:0,type:2} ) |
| | | .then(res => { |
| | | this.userList = res.records |
| | | this.userList = res |
| | | }) |
| | | this.search() |
| | | }, |
| | |
| | | "type" : "uni-app:h5" |
| | | }, |
| | | { |
| | | "app-plus" : |
| | | { |
| | | "app-plus" : { |
| | | "launchtype" : "local" |
| | | }, |
| | | "type" : "uniCloud" |
| | | }, |
| | | { |
| | | "playground" : "standard", |
| | | "type" : "uni-app:app-android" |
| | | } |
| | | ] |
| | | } |
| | |
| | | { |
| | | "name" : "宿³°ä¼è®®å®¤", |
| | | "appid" : "__UNI__EF8BAA7", |
| | | "appid" : "__UNI__C77DAC4", |
| | | "description" : "", |
| | | "versionName" : "1.0.0", |
| | | "versionCode" : "100", |
| | |
| | | "disableHostCheck" : true, |
| | | "proxy" : { |
| | | "/gateway_interface" : { |
| | | // "target" : "http://10.50.250.253:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | "target" : "http://10.50.250.253:8088/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | |
| | | // "target" : "http://192.168.0.173/gateway_interface", // 代çæå¡å¨ååæIPå°å |
| | | "target" : "https://atwl.ahzyssl.com/zhyq_interface", // 代çæå¡å¨ååæIPå°å |
| | | // "target" : "https://atwl.ahzyssl.com/zhyq_interface", // 代çæå¡å¨ååæIPå°å |
| | | "changeOrigin" : true, // å
许跨å |
| | | "pathRewrite" : { |
| | | "^/gateway_interface" : "" |
| | |
| | | "dependencies": { |
| | | "dayjs": { |
| | | "version": "1.11.13", |
| | | "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", |
| | | "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz", |
| | | "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" |
| | | }, |
| | | "qrcodejs": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmmirror.com/qrcodejs/-/qrcodejs-1.0.0.tgz", |
| | | "integrity": "sha512-67rj3mMBhSBepaD57qENnltO+r8rSYlqM7HGThks/BiyDAkc86sLvkKqjkqPS5v13f7tvnt6dbEf3qt7zq+BCg==" |
| | | }, |
| | | "uqrcodejs": { |
| | | "version": "4.0.7", |
| | | "resolved": "https://registry.npmjs.org/uqrcodejs/-/uqrcodejs-4.0.7.tgz", |
| | |
| | | { |
| | | "dependencies": { |
| | | "dayjs": "^1.11.13", |
| | | "qrcodejs": "^1.0.0", |
| | | "uqrcodejs": "^4.0.7" |
| | | } |
| | | } |
| | |
| | | <text
|
| | | v-if="info.meetingListResponseList && info.meetingListResponseList.length > 0 && info.meetingListResponseList[0].meetingStatus == 5">å·²æ¤é</text>
|
| | | </view>
|
| | | <view v-if="meetingInfo.meetingName" class="meeting_name">{{meetingInfo.meetingName}}</view>
|
| | | <view v-if="meetingInfo.meetingName" class="meeting_name_box"><view class="meeting_name">{{meetingInfo.meetingName}}</view></view>
|
| | | <view class="">
|
| | | <view v-if="meetingInfo.meetingTime && meetingInfo.bookingUser" class="meeting_con">
|
| | | <view class="content">
|
| | |
| | | </view>
|
| | | <view class="list">
|
| | | <view class="item" v-for="item in info.meetingListResponseList">
|
| | | <view class="nameBox">
|
| | | <view class="name">{{item.meetingName}}</view>
|
| | | </view>
|
| | | <view class="line">é¢çº¦äººï¼{{item.bookingUser}}</view>
|
| | | <view class="line">{{item.meetingTime}}ï¼{{statusMap[item.meetingStatus]}}ï¼</view>
|
| | | <image src="@/static/ic_meeting@2x.png" class="item_bg"></image>
|
| | |
| | | roomId: this.param.code
|
| | | }).then(res => {
|
| | | this.info = res.data
|
| | | /* if(this.info.title && this.info.title.length>0){
|
| | | this.info.title = this.info.title.slice(0,20)+"..."
|
| | | } */
|
| | | if (this.info.meetingListResponseList && this.info.meetingListResponseList.length > 0) {
|
| | | this.meetingInfo = this.info.meetingListResponseList[0]
|
| | | this.$nextTick(() => {
|
| | |
| | | qr.data =
|
| | | "https://atwl.ahzyssl.com/zhyq_h5/#/pages/login/login/?type=2&yw=1&ywid=" + this.meetingInfo.id
|
| | | // 设置äºç»´ç 大å°ï¼å¿
é¡»ä¸canvas设置ç宽é«ä¸è´
|
| | | qr.size = 104;
|
| | | qr.size = this.rpxToPx(208);
|
| | | // è°ç¨å¶ä½äºç»´ç æ¹æ³
|
| | | qr.make();
|
| | | // è·åcanvasä¸ä¸æ
|
| | |
| | | }
|
| | | this.touchNum = 0
|
| | | }, 250)
|
| | | },
|
| | | |
| | | //rpx转px
|
| | | rpxToPx(rpx) {
|
| | | const screenWidth = uni.getSystemInfoSync().screenWidth
|
| | | return (screenWidth * Number.parseInt(rpx)) / 750
|
| | | },
|
| | | //px转rpx
|
| | | pxToRpx(px) {
|
| | | const screenWidth = uni.getSystemInfoSync().screenWidth
|
| | | return (750 * Number.parseInt(px)) / screenWidth |
| | | },
|
| | | initDatetime() {
|
| | | let weeks = ['卿¥', 'å¨ä¸', 'å¨äº', 'å¨ä¸', 'å¨å', 'å¨äº', 'å¨å
']
|
| | |
| | | .meeting_wrap {
|
| | | margin-left: 42rpx;
|
| | | // margin-top: 60rpx;
|
| | |
|
| | | .titleBox{
|
| | | height: 124rpx;
|
| | | }
|
| | | .title {
|
| | | font-weight: 500;
|
| | | font-size: 42rpx;
|
| | |
| | | bottom: 0;
|
| | | // z-index: -1;
|
| | | }
|
| | |
|
| | | .name {
|
| | | .nameBox{
|
| | | flex: 1;
|
| | | font-weight: bold;
|
| | | font-size: 39rpx;
|
| | | width: 100%;
|
| | | }
|
| | | .name {
|
| | | |
| | | font-weight: bold; |
| | | line-height: 40rpx;
|
| | | max-height: 120rpx;
|
| | | font-size: 39rpx;
|
| | | word-break: break-all;
|
| | | text-overflow: ellipsis;
|
| | | display: -webkit-box;
|
| | | -webkit-box-orient: vertical;
|
| | | -webkit-line-clamp: 3;
|
| | | overflow: hidden; |
| | | white-space: normal; /* ä¿è¯ææ¬æ£å¸¸æ¢è¡ */
|
| | | /* è¶
åºå è¡çç¥ */
|
| | | }
|
| | |
|
| | |
| | |
|
| | |
|
| | | .qrcode_wrap {
|
| | | width: 110px;
|
| | | height: 110px;
|
| | | width: 208rpx;
|
| | | height: 208rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | background-color: #fff;
|
| | |
|
| | | .qrcode {
|
| | | width: 104px;
|
| | | height: 104px;
|
| | | width: 200rpx;
|
| | | height: 200rpx;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | display: flex;
|
| | | justify-content: flex-end;
|
| | | color: rgba(255, 255, 255, 0.6);
|
| | | padding-right: 64rpx;
|
| | | padding-right: 65rpx;
|
| | | margin-top: 18rpx;
|
| | | .text {
|
| | | width: 110px;
|
| | | text-align: center;
|
| | | font-size: 22rpx; |
| | | width: 200rpx;
|
| | | text-align: right;
|
| | | padding-right: 8rpx;
|
| | | font-size: 21rpx; |
| | | // transform: scale(.84);
|
| | | }
|
| | | }
|
| | |
|
| | | .meeting_name_box {
|
| | | // max-height: 150rpx;
|
| | | }
|
| | | .meeting_name {
|
| | | margin-bottom: 12rpx;
|
| | | font-weight: bold;
|
| | | font-size: 49rpx;
|
| | | // height: 150rpx;
|
| | | padding-left: 42rpx;
|
| | | padding-right: 64rpx;
|
| | | word-break: break-all;
|
| | | text-overflow: ellipsis;
|
| | | display: -webkit-box;
|
| | | -webkit-box-orient: vertical;
|
| | | -webkit-line-clamp: 2; |
| | | overflow: hidden; |
| | | white-space: normal; /* ä¿è¯ææ¬æ£å¸¸æ¢è¡ */
|
| | | }
|
| | |
|
| | | .home_status {
|
| | |
| | | |
| | | // export const baseUrl = 'gateway_interface/' |
| | | // export const baseUrl = 'http://192.168.5.13/gateway_interface/' |
| | | export const baseUrl = 'http://192.168.0.173/gateway_interface/' |
| | | export const baseUrl = 'http://192.168.5.13/gateway_interface/' |
| | | // export const baseUrl = 'http://10.50.250.253:8088/gateway_interface/' |
| | | // export const baseUrl = 'https://atwl.ahzyssl.com/zhyq_interface/' |
| | | |
| | | export const statusMap = { |
| | |
| | | |
| | | roomsMapper.update(rooms, Wrappers.<Rooms>lambdaUpdate() |
| | | .set(Rooms::getFileType, rooms.getFileType()) |
| | | // .set(Rooms::getEndTime, rooms.getEndTime()) |
| | | // .set(Rooms::getStartTime, rooms.getStartTime()) |
| | | .set(Rooms::getLimitNum, rooms.getLimitNum()) |
| | | .set(Rooms::getTips, rooms.getTips()) |
| | | .set(Rooms::getImgurl, rooms.getImgurl()) |
| | |
| | | public class TmsOutQtyAndVehicleQtyResponse { |
| | | |
| | | @ApiModelProperty(value = "累计åºåºé 累计å¼") |
| | | private BigDecimal totalOutQty;//æ°å 累计åºåºé(totalOutT01Qty+totalOutT03Qty) |
| | | private BigDecimal totalOutQty;//æ°å |
| | | @ApiModelProperty(value = "çå¤ç´¯è®¡åºåºé 累计å¼") |
| | | private BigDecimal outSideProvinceOutQty;// æ°å çå¤ç´¯è®¡åºåºé |
| | | @ApiModelProperty(value = "çå
累计åºåºé 累计å¼") |
| | |
| | | import com.doumee.config.annotation.CloudRequiredPermission; |
| | | import com.doumee.core.annotation.excel.ExcelExporter; |
| | | import com.doumee.core.annotation.pr.PreventRepeat; |
| | | import com.doumee.dao.business.vo.RetentionCarsVO; |
| | | import com.doumee.service.business.third.model.ApiResponse; |
| | | import com.doumee.service.business.third.model.PageData; |
| | | import com.doumee.service.business.third.model.PageWrap; |
| | |
| | | public ApiResponse<PageData<Retention>> findPage (@RequestBody PageWrap<Retention> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ |
| | | return ApiResponse.success(retentionService.findTrainTimePage(pageWrap)); |
| | | } |
| | | @ApiOperation("å页æ¥è¯¢") |
| | | @PostMapping("/pageCars") |
| | | @CloudRequiredPermission("business:retention:query") |
| | | public ApiResponse<PageData<RetentionCarsVO>> findPageForCars (@RequestBody PageWrap<RetentionCarsVO> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ |
| | | return ApiResponse.success(retentionService.findPageForCars(pageWrap)); |
| | | } |
| | | |
| | | @ApiOperation("导åºè½¦è¾Excel") |
| | | @PostMapping("/exportExcelCars") |
| | | @CloudRequiredPermission("business:retention:exportExcel") |
| | | public void exportExcelCars (@RequestBody PageWrap<RetentionCarsVO> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){ |
| | | ExcelExporter.build(RetentionCarsVO.class).export(retentionService.findPageForCars(pageWrap).getRecords(), "宿¶å¨åºè½¦è¾", response); |
| | | } |
| | | @ApiOperation("导åºExcel") |
| | | @PostMapping("/exportExcel") |
| | | @CloudRequiredPermission("business:retention:exportExcel") |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.doumee.dao.business.vo; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.service.business.third.model.LoginUserModel; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * å¨å人åä¿¡æ¯ è¡¨ï¼æ»çï¼ |
| | | * @author æ±è¹è¹ |
| | | * @date 2023/11/30 15:33 |
| | | */ |
| | | @Data |
| | | @ApiModel("å¨å人åä¿¡æ¯ è¡¨ï¼è½¦è¾ï¼") |
| | | public class RetentionCarsVO extends LoginUserModel { |
| | | |
| | | @ApiModelProperty(value = "主é®") |
| | | private Integer id; |
| | | @ApiModelProperty(value = "è¿åºæ¶é´") |
| | | @ExcelColumn(name="è¿åºæ¶é´" ,index = 1,width = 12,dateFormat = "yyyy-MM-dd HH:mm:ss") |
| | | private Date createDate; |
| | | @ApiModelProperty(value = "车çå· ") |
| | | @ExcelColumn(name="车çå·" ,index = 2,width = 8) |
| | | private String carNo; |
| | | @ApiModelProperty(value = "访客ID(å
³èmember)") |
| | | private Integer memberId; |
| | | @ApiModelProperty(value = "车è¾ç±»å 0å
é¨è½¦è¾ 1ç¸å
³æ¹è½¦è¾ 2è®¿å®¢è½¦è¾ 3å
è¿ç©æµè½¦ 4å¤åè½¦è¾ 5å¸å
¬å¸å¸è´§è½¦ ") |
| | | @ExcelColumn(name="车è¾ç±»å" ,index = 3, valueMapping="0=å
é¨è½¦è¾;1=ç¸å
³æ¹è½¦è¾;2=访客车è¾;3=å
è¿ç©æµè½¦;4=å¤å车è¾;5=å¸å
¬å¸å¸è´§è½¦;",width = 8) |
| | | private Integer carType ; |
| | | @ApiModelProperty(value = "å
¬å¸ç»ç»") |
| | | @ExcelColumn(name="å
¬å¸ç»ç»" ,index = 4,width = 12) |
| | | public String companyName; |
| | | @ApiModelProperty(value = "人åå§å") |
| | | @ExcelColumn(name="人åå§å" ,index = 5,width = 8) |
| | | public String name; |
| | | @ApiModelProperty(value = "äººåææºå·") |
| | | @ExcelColumn(name="äººåææºå·" ,index = 6,width = 12) |
| | | public String phone; |
| | | @ApiModelProperty(value = "海康é¨ç¦åç§°") |
| | | // @ExcelColumn(name="è¿åé¨ç¦" ,index = 7,width = 12) |
| | | private String deviceName; |
| | | @ApiModelProperty(value = "å§å/ææºå·") |
| | | private String keyWords; |
| | | @ApiModelProperty(value = "å¼å§æ¶é´") |
| | | private Date startTime; |
| | | @ApiModelProperty(value = "ç»ææ¶é´") |
| | | private Date endTime; |
| | | @ApiModelProperty(value = "访客å
¬å¸åç§°") |
| | | private String visitCompanyName; |
| | | } |
| | |
| | | package com.doumee.service.business; |
| | | |
| | | import com.doumee.dao.business.vo.RetentionCarsVO; |
| | | import com.doumee.service.business.third.model.PageData; |
| | | import com.doumee.service.business.third.model.PageWrap; |
| | | import com.doumee.dao.business.model.Retention; |
| | |
| | | * @return PageData<RetentionVo> |
| | | */ |
| | | List<RetentionVo> findPageExcel(PageWrap<Retention> pageWrap); |
| | | |
| | | PageData<RetentionCarsVO> findPageForCars(PageWrap<RetentionCarsVO> pageWrap); |
| | | } |
| | |
| | | import cn.hutool.core.lang.PatternPool; |
| | | import cn.hutool.core.lang.Validator; |
| | | import cn.hutool.core.util.ReUtil; |
| | | import com.doumee.dao.business.vo.RetentionCarsVO; |
| | | import com.doumee.service.business.third.model.PageData; |
| | | import com.doumee.service.business.third.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | |
| | | } |
| | | return PageData.from(retentionIPage); |
| | | } |
| | | @Override |
| | | public PageData<RetentionCarsVO> findPageForCars(PageWrap<RetentionCarsVO> pageWrap) { |
| | | IPage<RetentionCarsVO> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<Retention> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | queryWrapper.select(Retention::getId,Retention::getCarNo,Retention::getCreateDate,Retention::getCarType,Retention::getType) |
| | | .leftJoin(Member.class,Member::getId,Retention::getMemberId) |
| | | .leftJoin(Member.class,Member::getId,Retention::getMemberId) |
| | | .leftJoin(Company.class,Company::getId,Member::getCompanyId) |
| | | .selectAs(Company::getCompanyNamePath,Retention::getCompanyName) |
| | | .selectAs(Member::getName,Retention::getName) |
| | | .selectAs(Member::getPhone,Retention::getPhone) |
| | | .selectAs(Member::getVisitCompanyName,Retention::getVisitCompanyName) |
| | | .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),w->{ |
| | | w.like( Retention::getPhone,pageWrap.getModel().getKeyWords()) |
| | | .or().like( Retention::getName,pageWrap.getModel().getKeyWords()); }) |
| | | .eq(Retention::getType,3) |
| | | .eq(Retention::getIsdeleted,Constants.ZERO) |
| | | .and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()), |
| | | p-> p.like(Company::getName, pageWrap.getModel().getCompanyName()) |
| | | .or().like(Member::getVisitCompanyName, pageWrap.getModel().getCompanyName())) |
| | | .eq(Objects.nonNull(pageWrap.getModel().getCarType()), |
| | | Retention::getCarType,pageWrap.getModel().getCarType()) |
| | | .like(Objects.nonNull(pageWrap.getModel().getCarNo()), |
| | | Retention::getCarNo,pageWrap.getModel().getCarNo()) |
| | | .ge(Objects.nonNull(pageWrap.getModel().getStartTime()), |
| | | Retention::getCreateDate,pageWrap.getModel().getStartTime()) |
| | | .le(Objects.nonNull(pageWrap.getModel().getEndTime()), |
| | | Retention::getCreateDate,pageWrap.getModel().getEndTime()); |
| | | queryWrapper.orderByDesc(Retention::getCreateDate); |
| | | IPage<RetentionCarsVO> retentionIPage = retentionJoinMapper.selectJoinPage(page, RetentionCarsVO.class, queryWrapper); |
| | | if(retentionIPage!=null && retentionIPage.getRecords()!=null){ |
| | | for(RetentionCarsVO model : retentionIPage.getRecords()){ |
| | | model.setCompanyName(StringUtils.defaultString(model.getCompanyName(),model.getVisitCompanyName())); |
| | | } |
| | | } |
| | | return PageData.from(retentionIPage); |
| | | } |
| | | |
| | | |
| | | @Override |
| | |
| | | |
| | | private IPage<Retention> getDataInfo(PageWrap<Retention> pageWrap) { |
| | | //æ¯å¦æ¯æ°å |
| | | boolean number = Validator.isNumber(pageWrap.getModel().getKeyWords()); |
| | | //æ¯å¦å
å«ä¸æ |
| | | boolean b = Validator.hasChinese(pageWrap.getModel().getKeyWords()); |
| | | //æ¯å¦å
å«è±æ |
| | | boolean hasWord = ReUtil.contains(PatternPool.WORD, pageWrap.getModel().getKeyWords()); |
| | | // boolean number = Validator.isNumber(pageWrap.getModel().getKeyWords()); |
| | | // //æ¯å¦å
å«ä¸æ |
| | | // boolean b = Validator.hasChinese(pageWrap.getModel().getKeyWords()); |
| | | // //æ¯å¦å
å«è±æ |
| | | // boolean hasWord = ReUtil.contains(PatternPool.WORD, pageWrap.getModel().getKeyWords()); |
| | | |
| | | IPage<Retention> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<Retention> queryWrapper = new MPJLambdaWrapper<>(); |
| | |
| | | .selectAs(Company::getType,Retention::getCompanyType) |
| | | .select(" ( SELECT v.company_name FROM visits v WHERE v.member_id = t.member_id and v.status = "+Constants.VisitStatus.signin+" ORDER BY create_date DESC limit 1 ) as visitCompanyName "); |
| | | queryWrapper.eq(Retention::getIsdeleted,Constants.ZERO) |
| | | .like(number,Retention::getPhone,pageWrap.getModel().getKeyWords()) |
| | | .like((b||hasWord),Retention::getName,pageWrap.getModel().getKeyWords()) |
| | | .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),w->{ |
| | | w.like( Retention::getPhone,pageWrap.getModel().getKeyWords()) |
| | | .or().like( Retention::getName,pageWrap.getModel().getKeyWords()); }) |
| | | .eq(Objects.nonNull(pageWrap.getModel().getType()), |
| | | Retention::getType, |
| | | pageWrap.getModel().getType()) |
| | |
| | | List<SmsEmail> smsEmails = smsEmailMapper.selectList(wrapper); |
| | | if(smsEmails!=null && smsEmails.size()>0){ |
| | | for(SmsEmail model : smsEmails){ |
| | | if(Constants.equalsInteger(model.getType(),Constants.ONE)){ |
| | | if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ |
| | | if(model.getPhone() == null){ |
| | | model.setStatus(Constants.THREE);//åé失败 |
| | | model.setRemark("ææºå·ä¸ºç©ºï¼åæ¶ä»»å¡åéï¼"); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 访客ç³è¯·ä¸å¡çä¿¡éç¥ |
| | | * @param systemDictDataBiz |
| | |
| | | ); |
| | | for (Company company:companyList) { |
| | | Integer count = retentionList.stream().filter(i->Constants.equalsInteger(i.getCompanyId(),company.getId())).collect(Collectors.toList()).size(); |
| | | if(count>0){ |
| | | InterestedListVO lw = new InterestedListVO(); |
| | | lw.setNum(count); |
| | | lw.setName(company.getName()); |
| | | lwList.add(lw); |
| | | } |
| | | } |
| | | } |
| | | |
| | | pcWorkPlatformDataVO.setLwList(lwList ); |
| | | }else if(Constants.equalsInteger(queryType,Constants.THREE)) { |
| | |
| | | data.setCurrentOutNum(data.getCurrentOutNum().add(Constants.formatBigdecimal(model.getOutSideProvinceOutQty()))); |
| | | data.setCurrentInNum(data.getCurrentInNum().add(Constants.formatBigdecimal(model.getInSideProvinceOutQty()))); |
| | | data.setTotalCarNum(data.getTotalCarNum()+Constants.formatIntegerNum(model.getVehicleQty()));//累计车次 |
| | | data.setCurrentProvinceNum(data.getCurrentProvinceNum().add(model.getOutSideProvinceOutQty()).add(model.getInSideProvinceOutT01Qty()));//çå
çå¤éå®é |
| | | data.setCurrentOtherNum(data.getCurrentOtherNum().add(model.getOutSideProvinceOutT03Qty()).add(model.getInSideProvinceOutT03Qty()));//çå
çå¤å
¶ä»åºåºé |
| | | data.setCurrentProvinceNum(data.getCurrentProvinceNum().add(Constants.formatBigdecimal(model.getOutSideProvinceOutQty())) |
| | | .add(Constants.formatBigdecimal(model.getInSideProvinceOutT01Qty())));//çå
çå¤éå®é |
| | | data.setCurrentOtherNum(data.getCurrentOtherNum().add(Constants.formatBigdecimal(model.getOutSideProvinceOutT03Qty())) |
| | | .add(Constants.formatBigdecimal(model.getInSideProvinceOutT03Qty())));//çå
çå¤å
¶ä»åºåºé |
| | | } |
| | | } |
| | | param.setDateEnd(DateUtil.getShortTime(lastEnd)); |