Merge remote-tracking branch 'origin/master'
| | |
| | | <div class="df_ac mb20"> |
| | | <span>æç´¢è½¦è¾ï¼</span> |
| | | <el-input class="flex1 mr20" v-model="carCodeFront" placeholder="请è¾å
¥è½¦çå·"></el-input> |
| | | <el-button type="primary" @click="getList">æ¥æ¾</el-button> |
| | | <el-button type="primary" @click="getList(1)">æ¥æ¾</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </div> |
| | | <div class="list"> |
| | |
| | | this.getList() |
| | | }) |
| | | }, |
| | | getList() { |
| | | getList(page) { |
| | | const { activePlat, pagination, carCodeFront } = this |
| | | if(page){ |
| | | pagination.page = page |
| | | } |
| | | platformJobPage({ |
| | | model: { platformGroupId: activePlat.id, queryStatus: '0,1', carCodeFront }, |
| | | page: pagination.page, |
| | |
| | | <el-button v-if="task.status == 5 || task.status == 8" plain |
| | | @click="handleTransform(item, task)">转移æå°</el-button> |
| | | <el-button v-if="task.status == 4" plain @click="handlePass(task)">è¿å·</el-button> |
| | | <el-button v-preventReClick :loading="loadingFinish" v-if="task.status == 5 || task.status == 8" type="primary" |
| | | @click="handleFinish(task)">ä½ä¸å®æ</el-button> |
| | | <el-button v-preventReClick :loading="loadingOpen" v-if="task.status == 4" type="primary" @click="handleWork(task)">å¼å§ä½ä¸</el-button> |
| | | <el-button v-preventReClick :loading="loadingFinish" v-if="task.status == 5 || task.status == 8" |
| | | type="primary" @click="handleFinish(task)">ä½ä¸å®æ</el-button> |
| | | <el-button v-preventReClick :loading="loadingOpen" v-if="task.status == 4" type="primary" |
| | | @click="handleWork(task)">å¼å§ä½ä¸</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | {
|
| | | "path": "pages/staff/task/visitorApprove",
|
| | | "style": {
|
| | | "navigationBarTitleText": "访客审æ¹",
|
| | | "navigationBarTitleText": "å
¥å审æ¹",
|
| | | "enablePullDownRefresh": false
|
| | | }
|
| | | },
|
| | |
| | | <view class="h1">访客é¢çº¦å®¡æ ¸ä¸éè¿</view> |
| | | <view class="h2">æ¨çæ¥è®¿ç³è¯·å·²è¢«é©³åï¼å¦æçé®ï¼å¯è系被访人</view> |
| | | </view> |
| | | <view class="head_wrap head_error" v-if="info.status == 4"> |
| | | <view class="h1">访客é¢çº¦å®¡æ ¸å·²åæ¶</view> |
| | | <view class="h2">æ¨çæ¥è®¿ç³è¯·å·²åæ¶ï¼è¯·éæ°ç³è¯·</view> |
| | | </view> |
| | | <view class="head_wrap head_success" v-if="info.status == 7"> |
| | | <view class="h1">访客é¢çº¦æè®¿ä¸</view> |
| | | <view class="h2">ä½ ç访ç³è¯·æ£å¨è¿è¡,妿çé®ï¼å¯è系被访人</view> |
| | | </view> |
| | | <view class="head_wrap head_success" v-if="info.status == 8"> |
| | | <view class="h1">访客é¢çº¦å·²ç¾ç¦»</view> |
| | | <view class="h2">æ¨çæ¥è®¿ç³è¯·å·²å¤±æï¼è¯·éæ°ç³è¯·</view> |
| | | </view> |
| | | <view class="head_wrap head_error" v-if="info.status == 9"> |
| | | <view class="h1">访客é¢çº¦å·²å¤±æ</view> |
| | | <view class="h2">æ¨çæ¥è®¿ç³è¯·å·²å¤±æï¼è¯·éæ°ç³è¯·</view> |
| | |
| | | return true |
| | | }, |
| | | onLoad(option) { |
| | | uni.setStorageSync('ywinfo',{}) |
| | | this.detail = option.detail || '' |
| | | this.getDetail(option.id) |
| | | // visitorSubDetail({ id: option.id }) |
| | |
| | | color: #ffffff; |
| | | } |
| | | } |
| | | .head_gray{ |
| | | background-color: #666666; |
| | | color: #fff; |
| | | } |
| | | .head_error { |
| | | background: #fdeded; |
| | | .h1 { |
| | |
| | | <view class="sub">
|
| | | <view class="time" v-if="item.arriveDate && item.contractNum">{{ item.arriveDate.slice(5) }}</view>
|
| | | <view class="time" v-if="item.type != 4 && item.platformWmsJob && item.platformWmsJob.ioCreatedate">
|
| | | {{ item.platformWmsJob.ioCreatedate.slice(5, 19) }}</view>
|
| | | {{ item.platformWmsJob.ioCreatedate.slice(5, 19) }}
|
| | | </view>
|
| | | <view v-if="item.status == 0" class="sub_btn">确认任å¡</view>
|
| | | <view v-if="item.status == 1" class="sub_btn">ç«å³ç¾å°</view>
|
| | | <view v-if="item.status == 2" class="sub_btn" @click.stop="handleQueue(item)">æ¥çæé</view>
|
| | |
| | | return {
|
| | | taskList: [],
|
| | | driverInfo: uni.getStorageSync('driverInfo'),
|
| | |
|
| | | }
|
| | | }, |
| | | onLoad() { |
| | | const ywinfo = uni.getStorageSync('ywinfo') || {} |
| | | if(ywinfo.ywid && ywinfo.type == 0){ |
| | | setTimeout(() => { |
| | | uni.removeStorageSync('ywinfo') |
| | | }, 500) |
| | | uni.setStorageSync('ywinfo',{})
|
| | | const yw = ywinfo.yw |
| | | setTimeout(() => {
|
| | | if(yw == 7){ |
| | | this.jump('/pages/driver/reservedDetail?id=' + ywinfo.ywid) |
| | | }else if(yw == 8){ |
| | | this.jump('/pages/driver/taskDetail?id=' + ywinfo.ywid) |
| | | }else if(yw == 0) { |
| | | getLastWaitJob({ uuid: ywinfo.ywid }).then(res => { |
| | | getLastWaitJob({
|
| | | uuid: ywinfo.ywid
|
| | | }).then(res => {
|
| | | if(res.data && res.data.id){ |
| | | this.taskClick(res.data) |
| | | } |
| | | }) |
| | | } |
| | | }, 100)
|
| | | } |
| | | },
|
| | | onShow() {
|
| | |
| | | })
|
| | | },
|
| | | loginOut() { |
| | | logoutPost({isH5: 1}).then(res => { |
| | | logoutPost({
|
| | | isH5: 1
|
| | | }).then(res => {
|
| | | this.$store.commit('empty') |
| | | setTimeout(() => { |
| | | window.location.href = app_url |
| | |
| | | <view class="address">{{ item.platformName || 'çå¾
åé
æå°' }}</view> |
| | | <view class="time" v-if="item.status == 5"> |
| | | <u-icon class="mr6" name="clock" color="#4d98a8"></u-icon> |
| | | <text>{{item.callDateTemp}}</text> |
| | | <text>{{item.startDateTemp}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | | uni.setStorageSync('ywinfo',{}) |
| | | this.getDetail(option.id) |
| | | }, |
| | | methods: { |
| | |
| | | }
|
| | | },
|
| | | onLoad(option) {
|
| | | uni.setStorageSync('ywinfo',{})
|
| | | this.jobId = option.id
|
| | | if (option.status && option.status == '1') {
|
| | | // wx.config({
|
| | |
| | | onLoad() {
|
| | | const ywinfo = uni.getStorageSync('ywinfo') || {}
|
| | | if (ywinfo.ywid && ywinfo.type == 1) {
|
| | | setTimeout(() => {
|
| | | uni.removeStorageSync('ywinfo')
|
| | | }, 500)
|
| | | uni.setStorageSync('ywinfo',{})
|
| | | const yw = ywinfo.yw
|
| | | setTimeout(() => {
|
| | | if (yw == 2) { |
| | | uni.navigateTo({ |
| | | url: '/pages/appointmentDetails/appointmentDetails?id=' + ywinfo.ywid |
| | | })
|
| | | }
|
| | | }, 100)
|
| | | }
|
| | | },
|
| | | methods: {
|
| | |
| | | onLoad() {
|
| | | const ywinfo = uni.getStorageSync('ywinfo') || {}
|
| | | if (ywinfo.ywid && ywinfo.type == 2) {
|
| | | setTimeout(() => {
|
| | | uni.removeStorageSync('ywinfo')
|
| | | }, 500)
|
| | | uni.setStorageSync('ywinfo',{})
|
| | | const yw = ywinfo.yw
|
| | | setTimeout(() => {
|
| | | if (yw == 1 || yw == 6) {
|
| | | this.jump('/pages/staff/meetingDetail?id=' + ywinfo.ywid)
|
| | | } else if (yw == 2) {
|
| | |
| | | } else if (yw == 5) {
|
| | | this.jump('/pages/staff/vehicle/index')
|
| | | }
|
| | | }, 100)
|
| | | }
|
| | | },
|
| | | onShow() {
|
| | |
| | | },
|
| | | onLoad() {
|
| | | this.currentDate = dayja().format('YYYY-MM-DD')
|
| | | this.initData()
|
| | | this.getRoomList() |
| | | this.tabClick('0')
|
| | | },
|
| | | onShow() {
|
| | | // this.tabClick('0') |
| | | |
| | | this.initData() |
| | | this.tabClick(this.activeTab)
|
| | | },
|
| | | onReachBottom() {
|
| | | const { activeTab, total, myMeetingList, recordList } = this |
| | | console.log(total); |
| | | console.log(recordList);
|
| | | if (activeTab == '0') { |
| | | if(total <= myMeetingList.length) return this.showToast('ææ æ´å¤æ°æ®')
|
| | | this.myPage = this.myPage + 1
|
| | |
| | | </view> |
| | | </view> |
| | | <view class="empty empty2"></view> |
| | | <view class="main_footer" v-if="detail.meetingStatus == '1'"> |
| | | <view class="main_footer" v-if="detail.meetingStatus == '1' && (detail.isAdmin == 1 || detail.showHandle)"> |
| | | <view class="btn" @click="openCancel">æ¤å</view> |
| | | <view class="btn edit" @click="handleEdit">ä¿®æ¹</view> |
| | | <view class="btn agree" @click="handleStart">å¼å§ä¼è®®</view> |
| | | </view> |
| | | <view class="main_footer" v-if="detail.meetingStatus == '2' && detail.isAdmin == 1"> |
| | | <view class="btn agree" @click="openClose">ç»æ</view> |
| | | <view class="btn" @click="openClose">ç»æä¼è®®</view> |
| | | </view> |
| | | <!-- æ¤å --> |
| | | <u-popup |
| | |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | | uni.setStorageSync('ywinfo',{}) |
| | | this.id = option.id |
| | | this.getDetail() |
| | | }, |
| | |
| | | const { id } = this |
| | | meetingDetail({ id }).then(res => { |
| | | this.detail = res.data |
| | | const userInfo = uni.getStorageSync('userInfo') || {} |
| | | // const index = this.detail.userResponseList.findIndex(i => i.id == userInfo.id) |
| | | |
| | | this.$set(this.detail, 'showHandle', this.detail.bookingUserId == userInfo.id) |
| | | }) |
| | | }, |
| | | openCancel() { |
| | |
| | | } = this
|
| | | userPagePost({
|
| | | model: {
|
| | | ...param
|
| | | ...param, |
| | | workStatus: 0
|
| | | },
|
| | | ...pagination,
|
| | |
|
| | |
| | | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in submitFileList" :key="i">
|
| | | <u-icon class="close" size="20" name="close-circle-fill" color="red" @click="fileDel(i)"></u-icon>
|
| | | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image> |
| | | <video v-if="item.type == 1"
|
| | | :src="item.fileurlFull" :controls="false" :show-center-play-btn="false"></video>
|
| | | <!-- <video v-if="item.type == 1"
|
| | | :src="item.fileurlFull" :controls="false" :show-center-play-btn="false"></video> -->
|
| | | <view v-if="item.type == 1" class="video_wrap">
|
| | | <video :src="item.fileurlFull" :initial-time="0.01" :show-center-play-btn="false" :controls="false"
|
| | | class="video" :enable-progress-gesture="false" muted />
|
| | | <image src="@/static/play.png" class="play" mode=""></image>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
| | | this.isShowTime = false
|
| | | },
|
| | | initConfig() {
|
| | | deptListPost({queryHiddenDanger: 1}).then(res => {
|
| | | deptListPost({
|
| | | queryHiddenDanger: 1
|
| | | }).then(res => {
|
| | | this.deptList = [res.data]
|
| | | })
|
| | | DangerConfigType({
|
| | |
| | | display: flex;
|
| | | flex-wrap: wrap;
|
| | | }
|
| | |
|
| | | textarea{ |
| | | width: 100%; |
| | | }
|
| | | .adduser_list_item_ipt1_upload {
|
| | | margin-top: 24rpx;
|
| | | width: 156rpx;
|
| | |
| | | align-items: center;
|
| | | justify-content: center;
|
| | | position: relative;
|
| | |
|
| | | &:nth-of-type(4n){ |
| | | margin-right: 0; |
| | | }
|
| | |
|
| | | .close {
|
| | | position: absolute;
|
| | | right: -20rpx;
|
| | |
| | | z-index: 9999;
|
| | | }
|
| | |
|
| | | .video_wrap {
|
| | | position: relative;
|
| | | border: 1px solid;
|
| | | width: 156rpx;
|
| | | height: 156rpx;
|
| | | border-radius: 4rpx;
|
| | |
|
| | | .play {
|
| | | width: 60rpx !important;
|
| | | height: 60rpx !important;
|
| | | position: absolute;
|
| | | top: 50%;
|
| | | left: 50%;
|
| | | transform: translate(-50%, -50%);
|
| | | }
|
| | | }
|
| | |
|
| | | image {
|
| | | width: 100%;
|
| | | height: 100%;
|
| | |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | | uni.setStorageSync('ywinfo',{}) |
| | | this.type = option.objType |
| | | this.infoStatus = option.info |
| | | this.getDetail(option.id) |
| | |
| | | } |
| | | if (objType === 2) { |
| | | uni.navigateTo({ |
| | | url: `/pages/staff/vehicle/sendACarDetail?id=${objId}&appr=1&info=${info}` |
| | | url: `/pages/staff/vehicle/sendACarDetail?id=${objId}&info=${info}` |
| | | }) |
| | | } else if (objType === 1) { |
| | | uni.navigateTo({ |
| | |
| | | <image v-if="item.type == 0" :src="item.fileurlFull" @click="priviewImage(item.fileurlFull)" mode="widthFix"
|
| | | class="img" />
|
| | | <view v-if="item.type == 1" @click="videoClick(item, i)" class="video_wrap">
|
| | | <video :id="'id' + i" :show-center-play-btn="false" :src="item.fileurlFull" muted class="video"
|
| | | :controls="false" />
|
| | | <video :src="item.fileurlFull" initial-time="0.01" :show-center-play-btn="false" :controls="false"
|
| | | class="video" :enable-progress-gesture="false" autoplay muted />
|
| | | <image src="@/static/play.png" class="play" mode=""></image>
|
| | | </view>
|
| | | </view>
|
| | |
| | | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealBeforeFileList" :key="i">
|
| | | <image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull"
|
| | | mode="widthFix"></image>
|
| | | <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" :controls="false"></video>
|
| | | <!-- <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" :show-center-play-btn="false" :controls="false" class="video"
|
| | | :enable-progress-gesture="false" autoplay muted></video> -->
|
| | | <view v-if="item.type == 1" @click="videoClick(item, i)" class="video_wrap">
|
| | | <video :src="item.fileurlFull" :initial-time="0.01" :show-center-play-btn="false" :controls="false"
|
| | | class="video" :enable-progress-gesture="false" muted />
|
| | | <image src="@/static/play.png" class="play" mode=""></image>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
| | | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealAfterFileList" :key="i">
|
| | | <image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull"
|
| | | mode="widthFix"></image>
|
| | | <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" :controls="false"></video>
|
| | | <!-- <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" initial-time="0.01" :show-center-play-btn="false" :controls="false" class="video"
|
| | | :enable-progress-gesture="false" autoplay muted></video> -->
|
| | | <view v-if="item.type == 1" @click="videoClick(item, i)" class="video_wrap">
|
| | | <video :src="item.fileurlFull" :initial-time="0.01" :show-center-play-btn="false" :controls="false"
|
| | | class="video" :enable-progress-gesture="false" muted />
|
| | | <image src="@/static/play.png" class="play" mode=""></image>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | |
| | | @click="fileDel('dealBeforeFileList', i)"></u-icon>
|
| | | <image v-if="item.type == 0" @click="priviewImage(item.fileurlFull)" :src="item.fileurlFull"
|
| | | mode="widthFix"></image>
|
| | | <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" :controls="false"></video>
|
| | | <!-- <video v-if="item.type == 1" @click="videoClick(item, i)" :src="item.fileurlFull" show-center-play-btn="false" :controls="false" class="video"
|
| | | :enable-progress-gesture="false" autoplay muted></video> -->
|
| | | <view v-if="item.type == 1" @click="videoClick(item, i)" class="video_wrap">
|
| | | <video :src="item.fileurlFull" :initial-time="0.01" :show-center-play-btn="false" :controls="false"
|
| | | class="video" :enable-progress-gesture="false" muted />
|
| | | <image src="@/static/play.png" class="play" mode=""></image>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="label">éå说æ</view>
|
| | |
| | | <u-icon class="close" size="20" name="close-circle-fill" color="red"
|
| | | @click="fileDel('dealBeforeFileList', i)"></u-icon>
|
| | | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
|
| | | <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
|
| | | <!-- <video v-if="item.type == 1" :src="item.fileurlFull" :show-center-play-btn="false" :controls="false" class="video"
|
| | | :enable-progress-gesture="false" muted></video> -->
|
| | | <view v-if="item.type == 1" class="video_wrap">
|
| | | <video :src="item.fileurlFull" :initial-time="0.01" :show-center-play-btn="false" :controls="false"
|
| | | class="video" :enable-progress-gesture="false" muted />
|
| | | <image src="@/static/play.png" class="play" mode=""></image>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="label">
|
| | |
| | | <u-icon class="close" size="20" name="close-circle-fill" color="red"
|
| | | @click="fileDel('dealAfterFileList', i)"></u-icon>
|
| | | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
|
| | | <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
|
| | | <!-- <video v-if="item.type == 1" :src="item.fileurlFull" :show-center-play-btn="false" :controls="false"></video> -->
|
| | | <view v-if="item.type == 1" class="video_wrap">
|
| | | <video :src="item.fileurlFull" :initial-time="0.01" :show-center-play-btn="false" :controls="false"
|
| | | class="video" :enable-progress-gesture="false" muted />
|
| | | <image src="@/static/play.png" class="play" mode=""></image>
|
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="label">æ´æ¹è¯´æ</view>
|
| | |
| | | <!-- -->
|
| | |
|
| | | <view v-if="videoPlay" class="video_app" >
|
| | | <video controls autoplay muted x5-video-player-type="h5" |
| | | x5-video-player-fullscreen="true" id="myvideo" :src="videoUrl" @fullscreenchange="screenChange"></video> |
| | | <video controls autoplay muted x5-video-player-type="h5" x5-video-player-fullscreen="true" id="myvideo"
|
| | | :src="videoUrl" @fullscreenchange="screenChange"></video>
|
| | | <view class="bg" @click="closeVideo"></view>
|
| | | </view>
|
| | | </view>
|
| | |
| | | };
|
| | | },
|
| | | onLoad(op) {
|
| | | uni.setStorageSync('ywinfo',{})
|
| | | this.id = op.id;
|
| | | this.type = op.objType;
|
| | | this.getDetail();
|
| | | },
|
| | | methods: {
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | .video_wrap {
|
| | | position: relative;
|
| | | border: 1px solid;
|
| | | width: 156rpx;
|
| | | height: 156rpx;
|
| | | border-radius: 4rpx;
|
| | |
|
| | | .play {
|
| | | width: 60rpx;
|
| | | height: 60rpx;
|
| | | position: absolute;
|
| | | top: 50%;
|
| | | left: 50%;
|
| | | transform: translate(-50%, -50%);
|
| | | }
|
| | | }
|
| | |
|
| | | .img {
|
| | | width: 100%;
|
| | |
| | | position: absolute;
|
| | | right: -20rpx;
|
| | | top: -20rpx;
|
| | | z-index: 9999;
|
| | | z-index: 999999999999;
|
| | | color: #fff;
|
| | | }
|
| | |
|
| | | image {
|
| | |
| | | margin: 0 -30rpx;
|
| | | }
|
| | | }
|
| | | .video_wrap {
|
| | | position: relative;
|
| | | border: 1px solid;
|
| | | width: 156rpx;
|
| | | height: 156rpx;
|
| | | border-radius: 4rpx;
|
| | |
|
| | | .play {
|
| | | width: 60rpx !important;
|
| | | height: 60rpx !important;
|
| | | position: absolute;
|
| | | top: 50%;
|
| | | left: 50%;
|
| | | transform: translate(-50%, -50%);
|
| | | }
|
| | | }
|
| | | .sel_upload_wrap {
|
| | | width: 100%;
|
| | | border-top: 1px solid #333333;
|
| | |
| | | height: 100vh; |
| | | display: flex; |
| | | align-items: center;
|
| | | z-index: 9990;
|
| | | .bg{ |
| | | background-color: rgba(0,0,0,.6); |
| | | position: absolute; |
| | |
| | | height: 100%; |
| | | z-index: -1; |
| | | }
|
| | |
|
| | | video {
|
| | | width: 100%;
|
| | | height: 42vh;
|
| | |
| | | <template>
|
| | | <view class="main_app">
|
| | | <view class="status_wrap">
|
| | | <view class="name">{{ info.name }}æäº¤ç{{ cateList[type].name }}</view>
|
| | | <view class="name">{{ info.name }}æäº¤ç访客ç³è¯·</view>
|
| | | <view class="desc" :class="{
|
| | | gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4',
|
| | | }">{{ infoStatus }}</view>
|
| | | }">{{ statusMap[info.businessStatus] }}</view>
|
| | | <view v-if="info.businessStatus == '0' || info.businessStatus == '1'" class="status">{{
|
| | | statusMap[info.businessStatus]
|
| | | info.info
|
| | | }}</view>
|
| | | <image v-if="info.businessStatus == '2'" src="@/static/ic_passed@2x.png" mode="widthFix" class="status_img">
|
| | | </image>
|
| | |
| | | }
|
| | | },
|
| | | onLoad(op) {
|
| | | uni.setStorageSync('ywinfo',{})
|
| | | this.id = op.id
|
| | | this.type = op.objType
|
| | | this.infoStatus = op.info
|
| | | this.getDetail()
|
| | | },
|
| | | methods: {
|
| | |
| | | <template> |
| | | <view class="main_app"> |
| | | <view class="status_wrap"> |
| | | <view class="name">{{ info.createMemberName }}æäº¤ç{{ cateList[type].name }}</view> |
| | | <view class="name">{{ info.createMemberName }}æäº¤ç访客æ¥å¤</view> |
| | | <view |
| | | class="desc" |
| | | :class="{ |
| | | gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4', |
| | | }" |
| | | >{{ infoStatus }}</view |
| | | >{{ info.info }}</view |
| | | > |
| | | <view v-if="info.businessStatus == '0' || info.businessStatus == '1'" class="status">{{ |
| | | statusMap[info.businessStatus] |
| | |
| | | } |
| | | }, |
| | | onLoad(op) { |
| | | uni.setStorageSync('ywinfo',{}) |
| | | this.id = op.id |
| | | this.type = op.objType |
| | | this.infoStatus = op.info |
| | | this.getDetail() |
| | | }, |
| | | methods: { |
| | |
| | | return { |
| | | param: {} |
| | | } |
| | | }, |
| | | onLoad() { |
| | | uni.setStorageSync('ywinfo',{}) |
| | | } |
| | | } |
| | | </script> |
| | |
| | | userInfo: uni.getStorageSync('userInfo') || {},
|
| | | id: '',
|
| | | appr: '',
|
| | | infoStatus: '',
|
| | | info: {},
|
| | | param: {
|
| | | status: ''
|
| | |
| | | },
|
| | | onLoad(option) {
|
| | | this.id = option.id
|
| | | this.appr = option.appr || ''
|
| | | this.infoStatus = option.info
|
| | | this.appr = 1
|
| | | this.getDetail()
|
| | | },
|
| | | methods: {
|
| | |
| | | },
|
| | | success: (uploadFileRes) => {
|
| | | let res = JSON.parse(uploadFileRes.data)
|
| | | if(res.code !== 200){ |
| | | return this.showToast(res.message) |
| | | }
|
| | | this.visitorData.faceImg = res.data.halfPath
|
| | | this.visitorData.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
|
| | | },
|
| | | fail(err) {
|
| | | alert('失败')
|
| | | fail: (err) => {
|
| | | // this.showToast(err)
|
| | | },
|
| | | complete() {
|
| | | uni.hideLoading();
|
| | |
| | | v-model="form.code" |
| | | placeholder="请è¾å
¥éªè¯ç " |
| | | placeholder-class="placeholder9" |
| | | :maxlength="6" |
| | | type="number" |
| | | /> |
| | | <text class="captcha" v-if="countDown == 0" @click="initCaptcha" |
| | |
| | | </view>
|
| | | </u-popup>
|
| | | <!-- -->
|
| | | <u-datetime-picker :show="showStarttime" v-model="form.starttime" mode="date" @confirm="confirmStart"
|
| | | <u-datetime-picker :show="showStarttime" v-model="defaultDate" mode="date" @confirm="confirmStart"
|
| | | @cancel="showStarttime = false"></u-datetime-picker>
|
| | | <u-datetime-picker :show="showEndtime" v-model="form.endtime" mode="date" @confirm="confirmEnd"
|
| | | <u-datetime-picker :show="showEndtime" v-model="defaultDate2" mode="date" :minDate="defaultDate" @confirm="confirmEnd"
|
| | | @cancel="showEndtime = false"></u-datetime-picker>
|
| | | <u-picker :show="showPri" :columns="provinceList" @cancel="showPri = false" @confirm="confirmPro"></u-picker>
|
| | |
|
| | |
| | | showModal: false,
|
| | | showStarttime: false,
|
| | | showEndtime: false,
|
| | | defaultDate: Number(new Date()), |
| | | defaultDate2: Number(new Date()),
|
| | | showPri: false,
|
| | | form: {},
|
| | | provinceList: [
|
| | |
| | | this.$nextTick(() => {
|
| | | this.$set(this.form, 'ncCreateDateTimeStart', dayjs(e.value).format('YYYY-MM-DD'))
|
| | | })
|
| | | this.defaultDate2 = Number(new Date()) |
| | | this.$set(this.form, 'ncCreateDateTimeEnd', '')
|
| | | this.showStarttime = false
|
| | | },
|
| | | confirmEnd(e) {
|
| | |
| | | </div> |
| | | </div> |
| | | <div class="center_box_bg"> |
| | | <img class="point_icon" src="@/assets/ani/apngb-animated.png" alt=""> |
| | | <div class="work_modal" @click="showWorkModal = false" v-if="showWorkModal"> |
| | | <img v-if="showWorkModal" class="point_icon" :style="{ left: workModalParam.left + 'px', top: workModalParam.top + 'px' }" |
| | | src="@/assets/ani/apngb-animated.png" alt=""> |
| | | <div class="work_modal" :style="{ left: workModalParam.left2 + 'px', top: workModalParam.top + 'px' }" |
| | | @click="showWorkModal = false" v-if="showWorkModal"> |
| | | <img class="bg" src="@/assets/images/LogisticsCenter/bg_yuetai@2x.png" alt=""> |
| | | <div class="head"> |
| | | <div class="left"> |
| | |
| | | <div class="val">{{ workModalParam.finishTimeStr }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="modal_bg" v-if="showWorkModal" @click="showWorkModal = false"></div> |
| | | </div> |
| | | <div class="center_box_two"> |
| | | <div v-if="data4.videoIndexCodes && data4.videoIndexCodes.length > 0" class="videos"> |
| | | <div class="video" v-for="indexCode in data4.videoIndexCodes"> |
| | | <Video v-if="indexCode" :href="data4.videoPluginUrl" :indexCode="indexCode" /> |
| | | </div> |
| | | </div> |
| | | <!-- <div v-if="data4.videoIndexCodes && data4.videoIndexCodes.length > 0" class="videos"> |
| | | <Videos :href="data4.videoPluginUrl" :indexCodes="data4.videoIndexCodes" /> |
| | | </div> --> |
| | | <div class="list"> |
| | | <div class="line header"> |
| | | <div>æå°åç§°</div> |
| | |
| | | dayjs.extend(duration) |
| | | import 'swiper/css/swiper.min.css' |
| | | import Swiper from 'swiper' |
| | | import Video from './videoUrl/Video.vue' |
| | | import Videos from './videoUrl/Videos.vue' |
| | | import { |
| | | cnplatformGroupFinish, |
| | | cnplatformDuration, |
| | |
| | | temp.push({ name: 'å·²å«å·', value: data4.value?.calledNum || 0, rate: data4.value?.signedNum ? (data4.value.calledNum / data4.value?.signedNum * 100).toFixed(1) : 0 }) |
| | | temp.push({ name: 'å·²ä½ä¸', value: data4.value?.workedNum || 0, rate: data4.value?.signedNum ? (data4.value.workedNum / data4.value?.signedNum * 100).toFixed(1) : 0 }) |
| | | temp.push({ name: '已宿', value: data4.value?.doneNum || 0, rate: data4.value?.signedNum ? (data4.value.doneNum / data4.value?.signedNum * 100).toFixed(1) : 0 }) |
| | | console.log('temp', temp) |
| | | |
| | | const option = { |
| | | color: colors, |
| | |
| | | i.finishTime = dayjs(i.finishTime).format('HH:mm') |
| | | return i |
| | | }) |
| | | console.log('dataList5', dataList5.value) |
| | | |
| | | }) |
| | | } |
| | | |
| | |
| | | const showWorkModal = ref(false) |
| | | const workModalParam = ref({}) |
| | | // point_icon |
| | | const pointList = ref([ |
| | | { left: 230, top: 190 }, |
| | | { left: 265, top: 180 }, |
| | | { left: 300, top: 170 }, |
| | | { left: 335, top: 160 }, |
| | | { left: 370, top: 150 }, |
| | | const pointList = [ |
| | | { left: 230, top: 190, left2: 290, top2: 190, name: 'åºåºæå°3' }, |
| | | { left: 265, top: 180, left2: 325, top2: 190, name: 'åºåºæå°2' }, |
| | | { left: 300, top: 170, left2: 360, top2: 190, name: 'åºåºæå°1' }, |
| | | { left: 335, top: 160, left2: 390, top2: 190, name: 'æ´æçåºåº2' }, |
| | | { left: 370, top: 150, left2: 430, top2: 190, name: 'æ´æçåºåº1' }, |
| | | |
| | | { left: 530, top: 50 }, |
| | | { left: 550, top: 65 }, |
| | | { left: 570, top: 75 }, |
| | | { left: 590, top: 75 }, |
| | | { left: 600, top: 80 }, |
| | | { left: 850, top: 60 }, |
| | | { left: 530, top: 50, left2: 590, top2: 190, name: 'å
¥åºæå°2' }, |
| | | { left: 550, top: 65, left2: 610, top2: 190, name: 'å
¥åºæå°1' }, |
| | | { left: 570, top: 75, left2: 630, top2: 190, name: 'å
¥åºæå°3' }, |
| | | { left: 590, top: 75, left2: 650, top2: 190, name: '1095æ´æçå
¥åº' }, |
| | | { left: 600, top: 80, left2: 660, top2: 190, name: '1099æ´æçå
¥åº' }, |
| | | { left: 850, top: 60, left2: 520, top2: 190, name: 'å¸å
¬å¸æå°' }, |
| | | |
| | | ]) |
| | | ] |
| | | |
| | | const platformClick = (val) => { |
| | | workModalParam.value = val |
| | | console.log(val) |
| | | |
| | | showWorkModal.value = !showWorkModal.value |
| | | const index = pointList.findIndex(i => i.name == val.platformName) |
| | | workModalParam.value = { ...val, ...pointList[index], index: pointList } |
| | | showWorkModal.value = true |
| | | } |
| | | const loopFn2 = () => { |
| | | var newSwiper1 = new Swiper('.one-swiper', { |
| | |
| | | justify-content: center; |
| | | align-items: center; |
| | | position: relative; |
| | | |
| | | .point_icon { |
| | | position: absolute; |
| | | left: 850px; |
| | |
| | | .work_modal { |
| | | width: 314px; |
| | | height: 180px; |
| | | position: relative; |
| | | position: absolute; |
| | | padding: 22px 20px; |
| | | left: 850px; |
| | | top: 60px; |
| | | |
| | | .head { |
| | | display: flex; |
| | |
| | | } |
| | | |
| | | } |
| | | .modal_bg{ |
| | | position: fixed; |
| | | left: 0; |
| | | top: 0; |
| | | width: 100vw; |
| | | height: 100vh; |
| | | /* background-color: rgba(0,0,0,.1); */ |
| | | } |
| | | } |
| | | |
| | | .center_box_two { |
| | | width: 100%; |
| | | |
| | | |
| | | .videos { |
| | | width: 100%; |
| | | height: 150px; |
| | | display: flex; |
| | | margin-bottom: 15px; |
| | | |
| | |
| | | overflow-y: auto; |
| | | background: rgba(0, 86, 255, 0.05); |
| | | backdrop-filter: blur(5px); |
| | | |
| | | .two-swiper { |
| | | height: 180px; |
| | | overflow: hidden; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="video_app"> |
| | | <div class="player_bg" ref="videoRef" style="width: 100%;height: 100%;" id="playWnd"> </div> |
| | | </div> |
| | | <!-- <img style="width: 34px;margin-bottom: 16px;" src="../../assets/images/SecurityControl/ic_unable@2x.png" > --> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { defineProps, ref, onMounted, onUnmounted, watch } from 'vue' |
| | | const props = defineProps({ |
| | | indexCodes: Array, |
| | | href: String, |
| | | }) |
| | | const templateA = ` |
| | | <div style="width:100%;height: 100%;display: flex;justify-content: center;align-items: center;flex-direction: column;"> |
| | | <div style="font-weight: 500;font-size: 15px;color: #CCCCCC;margin-bottom: 4px;">æ æ³ææ¾çæ§ç»é¢ï¼</div> |
| | | <div style="font-weight: 500;font-size: 15px;color: #CCCCCC;margin-bottom: 20px;">ç¹å»ä¸è½½å¹¶å®è£
è§å±ææ¾æä»¶</div> |
| | | <a href="${props.href}" target="_blank" style="font-weight: 500;font-size: 15px;color: #01D9FE;">ç¹å»ä¸è½½</a> |
| | | </div> |
| | | ` |
| | | |
| | | |
| | | const width = ref(0) |
| | | const height = ref(0) |
| | | const videoRef = ref(null) |
| | | |
| | | onMounted(() => { |
| | | const rect = videoRef.value.getBoundingClientRect() |
| | | width.value = rect.width |
| | | height.value = rect.height |
| | | console.log('rect', rect); |
| | | |
| | | initPlugin() |
| | | window.addEventListener('resize', function () { // æ§è¡ |
| | | if (oWebControl.value) { |
| | | const rect = videoRef.value.getBoundingClientRect() |
| | | width.value = rect.width |
| | | height.value = rect.height |
| | | oWebControl.value.JS_Resize($('#playWnd').width(), $('#playWnd').height()) |
| | | } |
| | | }) |
| | | }) |
| | | onUnmounted(() => { |
| | | destroyed() |
| | | }) |
| | | const oWebControl = ref(null) |
| | | const initCount = ref() |
| | | const pubKey = ref('') |
| | | |
| | | watch( |
| | | () => props.indexCodes, |
| | | (newValue, oldValue) => { |
| | | console.log('ç¶ç»ä»¶ä¼ å¼ååï¼', newValue) |
| | | videoPlayFor() |
| | | } |
| | | ) |
| | | |
| | | const initPlugin = () => { |
| | | oWebControl.value = new WebControl({ |
| | | szPluginContainer: "playWnd", // æå®å®¹å¨id |
| | | iServicePortStart: 15900, // æå®èµ·æ¢ç«¯å£å·ï¼å»ºè®®ä½¿ç¨è¯¥å¼ |
| | | iServicePortEnd: 15900, |
| | | szClassId: "23BF3B0A-2C56-4D97-9C03-0CB103AA8F11", // ç¨äºIE10使ç¨ActiveXçclsid |
| | | cbConnectSuccess: function () { |
| | | // å建WebControlå®ä¾æå |
| | | console.log('1--å建WebControlå®ä¾æå') |
| | | |
| | | oWebControl.value.JS_StartService("window", { // WebControlå®ä¾å建æååéè¦å¯å¨æå¡ |
| | | dllPath: "./VideoPluginConnect.dll" // å¼"./VideoPluginConnect.dll"åæ» |
| | | }).then(function () { |
| | | oWebControl.value.JS_SetWindowControlCallback({ // è®¾ç½®æ¶æ¯åè° |
| | | cbIntegrationCallBack: cbIntegrationCallBack |
| | | })// å¯å¨æä»¶æå¡æå |
| | | console.log('----',width.value, height.value); |
| | | |
| | | oWebControl.value.JS_CreateWnd("playWnd", width.value, height.value).then(function () { //JS_CreateWndå建è§é¢ææ¾çªå£ï¼å®½é«å¯è®¾å®ï¼boxWidth, boxHeightå®¹å¨ |
| | | // oWebControl.value.JS_CreateWnd("playWnd").then(function () { //JS_CreateWndå建è§é¢ææ¾çªå£ï¼å®½é«å¯è®¾å®ï¼boxWidth, boxHeightå®¹å¨ |
| | | init() // åå»ºææ¾å®ä¾æåååå§å |
| | | }) |
| | | }, function () { // å¯å¨æä»¶æå¡å¤±è´¥ |
| | | }) |
| | | }, |
| | | cbConnectError: function () { // å建WebControlå®ä¾å¤±è´¥ |
| | | console.log('å建WebControlå®ä¾å¤±è´¥') |
| | | oWebControl.value = null |
| | | $("#playWnd").html("æä»¶æªå¯å¨ï¼æ£å¨å°è¯å¯å¨ï¼è¯·ç¨å...") |
| | | WebControl.JS_WakeUp("VideoWebPlugin://") // ç¨åºæªå¯å¨æ¶æ§è¡error彿°ï¼éç¨wakeupæ¥å¯å¨ç¨åº |
| | | initCount.value++ |
| | | if (initCount.value < 3) { |
| | | setTimeout(function () { |
| | | initPlugin() |
| | | }, 3000) |
| | | } else { |
| | | $("#playWnd").html(templateA) |
| | | } |
| | | }, |
| | | cbConnectClose: function (bNormalClose) { |
| | | // å¼å¸¸æå¼ï¼bNormalClose = false |
| | | // JS_Disconnectæ£å¸¸æå¼ï¼bNormalClose = true |
| | | console.log('å¼å¸¸æå¼ï¼bNormalClose') |
| | | oWebControl.value = null |
| | | $("#playWnd").html("æä»¶æªå¯å¨ï¼æ£å¨å°è¯å¯å¨ï¼è¯·ç¨å...") |
| | | WebControl.JS_WakeUp("VideoWebPlugin://") |
| | | initCount.value++ |
| | | if (initCount.value < 3) { |
| | | setTimeout(function () { |
| | | initPlugin() |
| | | }, 3000) |
| | | } else { |
| | | $("#playWnd").html(templateA) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | // åå§å |
| | | const init = () => { |
| | | getPubKey(function () { |
| | | ////////////////////////////////// 请èªè¡ä¿®æ¹ä»¥ä¸åéå¼ //////////////////////////////////// |
| | | let appkey = "23154099" //综åå®é²ç®¡ç平尿ä¾çappkeyï¼å¿
å¡« |
| | | // let secret = '88wFsg3xfn7o8QMsWEO2' //综åå®é²ç®¡ç平尿ä¾çsecretï¼å¿
å¡« |
| | | let secret = setEncrypt("88wFsg3xfn7o8QMsWEO2") //综åå®é²ç®¡ç平尿ä¾çsecretï¼å¿
å¡« |
| | | let ip = "10.50.250.253" //综åå®é²ç®¡çå¹³å°IPå°åï¼å¿
å¡« |
| | | let playMode = 0 //åå§ææ¾æ¨¡å¼ï¼0-é¢è§(宿¶æµ)ï¼1-åæ¾(è§é¢) |
| | | let port = 443 //综åå®é²ç®¡çå¹³å°ç«¯å£ï¼è¥å¯ç¨HTTPSåè®®ï¼é»è®¤443 |
| | | let snapDir = "D:\\SnapDir" //æå¾åå¨è·¯å¾ |
| | | let videoDir = "D:\\VideoDir" //ç´§æ¥å½åæå½ååªè¾åå¨è·¯å¾ |
| | | let layout = "1x4" //playModeæå®æ¨¡å¼çå¸å± |
| | | let enableHTTPS = 1 //æ¯å¦å¯ç¨HTTPSåè®®ä¸ç»¼åå®é²ç®¡çå¹³å°äº¤äºï¼è¿éæ»æ¯å¡«1 |
| | | let encryptedFields = 'secret' //å å¯å段ï¼é»è®¤å å¯é¢å为secret |
| | | let showToolbar = 1 //æ¯å¦æ¾ç¤ºå·¥å
·æ ï¼0-䏿¾ç¤ºï¼é0-æ¾ç¤º |
| | | let showSmart = 0 //æ¯å¦æ¾ç¤ºæºè½ä¿¡æ¯ï¼å¦é
置移å¨ä¾¦æµåç»é¢ä¸ç线æ¡ï¼ï¼0-䏿¾ç¤ºï¼é0-æ¾ç¤º |
| | | // let buttonIDs = "0,16,256,257,258,259,260,513,514,515,516,517,768" //èªå®ä¹å·¥å
·æ¡æé® |
| | | oWebControl.value.JS_RequestInterface({ |
| | | funcName: "init", |
| | | argument: JSON.stringify({ |
| | | appkey: appkey, //APIç½å
³æä¾çappkey |
| | | secret: secret, //APIç½å
³æä¾çsecret |
| | | ip: ip, //APIç½å
³IPå°å |
| | | playMode: playMode, //ææ¾æ¨¡å¼ï¼å³å®æ¾ç¤ºé¢è§è¿æ¯åæ¾çé¢ï¼ |
| | | port: port, //ç«¯å£ |
| | | snapDir: snapDir, //æå¾åå¨è·¯å¾ |
| | | videoDir: videoDir, //ç´§æ¥å½åæå½ååªè¾åå¨è·¯å¾ |
| | | layout: layout, //å¸å± |
| | | enableHTTPS: enableHTTPS, //æ¯å¦å¯ç¨HTTPSåè®® |
| | | encryptedFields: encryptedFields, //å å¯å段 |
| | | showToolbar: showToolbar, //æ¯å¦æ¾ç¤ºå·¥å
·æ |
| | | showSmart: showSmart, //æ¯å¦æ¾ç¤ºæºè½ä¿¡æ¯ |
| | | buttonIDs: buttonIDs //èªå®ä¹å·¥å
·æ¡æé® |
| | | }) |
| | | }).then(function (oData) { |
| | | console.log('åå§åæå') |
| | | videoPlayFor() |
| | | // oWebControl.value.JS_Resize(that.boxWidth, that.boxHeight) // åå§ååresize䏿¬¡ï¼è§é¿firefoxä¸é¦æ¬¡æ¾ç¤ºçªå£åæä»¶çªå£æªä¸DIVçªå£éåé®é¢ |
| | | }) |
| | | }) |
| | | } |
| | | const videoPlayFor = () => { |
| | | const indexCodes = props.indexCodes |
| | | indexCodes.forEach(item => { |
| | | videoPlay(item) |
| | | }) |
| | | } |
| | | const videoPlay = (indexCode) => { |
| | | oWebControl.value.JS_RequestInterface({ |
| | | funcName: "startPreview", |
| | | argument: JSON.stringify({ |
| | | cameraIndexCode: indexCode, //çæ§ç¹ç¼å· |
| | | streamMode: 0, //主åç æµæ è¯ï¼0-ä¸»ç æµï¼1-åç æµ |
| | | transMode: 1, //ä¼ è¾åè®®ï¼0-UDPï¼1-TCP |
| | | gpuMode: 0, //æ¯å¦å¯ç¨GPU硬解ï¼0-ä¸å¯ç¨ï¼1-å¯ç¨ |
| | | wndId: -1 //ææ¾çªå£åºå·ï¼å¨2x2以ä¸å¸å±ä¸å¯æå®ææ¾çªå£ï¼ |
| | | }) |
| | | }).then((oData) => { |
| | | if (oData.responseMsg.code === 1) { |
| | | console.log('ææ¾æå', oData) |
| | | } |
| | | }, err => { |
| | | console.log('err', err) |
| | | |
| | | }) |
| | | } |
| | | // 鿝 |
| | | const destroyed = () => { |
| | | if (oWebControl.value) { |
| | | oWebControl.value.JS_HideWnd() // å
让çªå£éèï¼è§é¿æä»¶çªå£æ»åäºæµè§å¨æ¶å¤±é®é¢ |
| | | oWebControl.value.JS_Disconnect().then(function () { }, function () { }) |
| | | } |
| | | } |
| | | |
| | | function fileDown() { |
| | | window.open('./videoUrl/VideoWebPlugin.exe') |
| | | } |
| | | // æ¶æ¯åè° |
| | | const cbIntegrationCallBack = (oData) => { |
| | | let response = oData.responseMsg |
| | | // response.type=1 éä¸çªå£æ¶æ¯ type=2 ææ¾æ¶æ¯ |
| | | } |
| | | // çæ§ |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | // è·åå
¬é¥ |
| | | function getPubKey(callback) { |
| | | oWebControl.value.JS_RequestInterface({ |
| | | funcName: 'getRSAPubKey', |
| | | argument: JSON.stringify({ |
| | | keyLength: 1024, |
| | | }), |
| | | }).then((oData) => { |
| | | if (oData.responseMsg.data) { |
| | | pubKey.value = oData.responseMsg.data |
| | | callback() |
| | | } |
| | | }) |
| | | } |
| | | |
| | | // RSAå å¯ |
| | | function setEncrypt(value) { |
| | | let that = this |
| | | let encrypt = new JSEncrypt() |
| | | encrypt.setPublicKey(pubKey.value) |
| | | return encrypt.encrypt(value) |
| | | } |
| | | |
| | | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .video_app { |
| | | width: 100%; |
| | | height: 100%; |
| | | |
| | | } |
| | | </style> |
| | |
| | | //åéä¼è®®é¢çº¦æåéç¥ |
| | | if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){ |
| | | this.sendNotice(bookings, MeetConstants.TWO); |
| | | } |
| | | SystemUser systemUser = systemUserMapper.selectById(user.getId()); |
| | | this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ZERO); |
| | | } |
| | | |
| | | return bookings.getId(); |
| | | } |
| | |
| | | //åéä¼è®®éç¥ |
| | | if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){ |
| | | this.sendNotice(bookings, MeetConstants.TWO); |
| | | } |
| | | SystemUser systemUser = systemUserMapper.selectById(bookings.getUserId()); |
| | | this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ZERO); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | //åæ¶ä¼è®® åéåæ¶éç¥ |
| | | if(Constants.equalsInteger(bookings.getJoinNotice(),Constants.ZERO)){ |
| | | this.sendNotice(bookings, 3); |
| | | } |
| | | this.sendWxNotice(bookings,Objects.isNull(systemUser)||StringUtils.isBlank(systemUser.getOpenid())?null:systemUser.getOpenid(),Constants.ONE); |
| | | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | if(Constants.equalsInteger(sendType,Constants.ZERO)){ |
| | | wxPlatNotice.sendMeetingBookTemplateNotice(systemDictDataBiz,bookings,"CuoDoxOl6SFwi4NhNgOQgKSJVjDD4VCIaPYlnbv_zdY", |
| | | systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),openIds); |
| | | }else{ |
| | | }else if(Constants.equalsInteger(sendType,Constants.ONE)){ |
| | | wxPlatNotice.sendMeetingBookCancelTemplateNotice(systemDictDataBiz,bookings,"CiB6vCT2InovAoQfudY-lvzLSV0-3lfz3a5GsSFCzd8", |
| | | systemDictDataBiz.queryByCode(Constants.WX_PLATFORM, Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(),openIds); |
| | | } |
| | |
| | | public static final String HK_WXTOKEN_CONFIGID ="HK_WXTOKEN_CONFIGID" ; |
| | | public static final String HK_WXTOKEN_TAGID ="HK_WXTOKEN_TAGID" ; |
| | | public static final String WMS_TOTAL_STOCK_NUM ="WMS_TOTAL_STOCK_NUM" ; |
| | | public static final String WMS_LIQUID_LEVEL ="WMS_LIQUID_LEVEL" ; |
| | | public static final String WMS_PRESSURE_LEVEL ="WMS_PRESSURE_LEVEL" ; |
| | | public static final String WX_REDIRECT_URL = "WX_REDIRECT_URL"; |
| | | public static final String HK_CHANGNEI_SCREEN_INDEXCODES = "HK_CHANGNEI_SCREEN_INDEXCODES"; |
| | | public static final String CITY_XH_REASON_ID ="CITY_XH_REASON_ID" ; |
| | |
| | | // System.out.println(DateUtil.afterMinutesDate(-5)); |
| | | |
| | | |
| | | List<Date> list =getThisMonthDateList(); |
| | | for(Date d :list){ |
| | | System.out.println(getPlusTime2(d)); |
| | | } |
| | | List<Date> list1 =getThisYearMonthList(); |
| | | for(Date d :list1){ |
| | | System.out.println(getPlusTime2(d)); |
| | | } |
| | | System.out.println(DateUtil.getBeforMonthStr(new Date(),1)); |
| | | System.out.println(DateUtil.getBeforMonthStr(new Date(),12)); |
| | | |
| | | // List<Date> list =getThisMonthDateList(); |
| | | // for(Date d :list){ |
| | | // System.out.println(getPlusTime2(d)); |
| | | // } |
| | | // List<Date> list1 =getThisYearMonthList(); |
| | | // for(Date d :list1){ |
| | | // System.out.println(getPlusTime2(d)); |
| | | // } |
| | | |
| | | // Date startTime = DateUtil.StringToDate("2024-05-01 08:00:00" ,"yyyy-MM-dd HH:mm:ss"); |
| | | // Date endTime = DateUtil.StringToDate("2024-05-01 17:00:00" ,"yyyy-MM-dd HH:mm:ss"); |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * è·åX天åçæ¥æ |
| | | * @param date |
| | | * @param beforMonths 䏿 -1 䏿 1 |
| | | * @return |
| | | */ |
| | | public static String getBeforMonthStr(Date date,Integer beforMonths){ |
| | | ZonedDateTime zonedDateTime = date.toInstant().atZone(ZoneId.systemDefault()); |
| | | // 转æ¢ä¸ºjava.time.LocalDate,计ç®xå¤©çæ¥æ |
| | | LocalDate dateBeforeDay = zonedDateTime.toLocalDate().minusMonths(beforMonths); |
| | | return dateBeforeDay.toString(); |
| | | } |
| | | |
| | | } |
| | |
| | | visits.setMemberId(loginUserInfo.getMemberId()); |
| | | visits.setCreateMemberId(loginUserInfo.getMemberId()); |
| | | visits.setReceptMemberId(visits.getMemberId()); |
| | | visits.setLoginUserInfo(loginUserInfo); |
| | | return ApiResponse.success("æ¥è¯¢æå", visitsService.visitReporting(visits)); |
| | | } |
| | | |
| | |
| | | List<AlarmEventDataVO> data = boardService.fightingAdminAlertList(); |
| | | return ApiResponse.success(data); |
| | | } |
| | | |
| | | @LoginNoRequired |
| | | @ApiOperation("æ£æµæ°æ®éå") |
| | | @GetMapping("/monitorDataList") |
| | |
| | | public ApiResponse<List<PlatformStatusListResponse>> getStatusList() { |
| | | return ApiResponse.success(platformService.getPlatformStatusList()); |
| | | } |
| | | |
| | | } |
| | |
| | | String[] findHomeAlarmInfoPage= new String[]{"/api/v1/alarm/findHomeAlarmInfoPage","å®é²çæ¿-- å页æ¥è¯¢æªå¤çæ¥è¦ä¿¡æ¯6"};//å®é²çæ¿-- å页æ¥è¯¢æªå¤çæ¥è¦ä¿¡æ¯6 |
| | | String[] minitorDataSearchV1= new String[]{"/api/fem/v1/minitor/data/search","å页æ¥è¯¢è®¾å¤çæµå岿°æ®"};//å页æ¥è¯¢è®¾å¤çæµå岿°æ® |
| | | String[] minitorDataSearch= new String[]{"/api/fpms/v2/minitor/data/search","å页æ¥è¯¢è®¾å¤çæµå岿°æ®"};//å页æ¥è¯¢è®¾å¤çæµå岿°æ® |
| | | String[] monitorDataSearch= new String[]{"/api/fpms/v2/monitor/data/search","å页æ¥è¯¢è®¾å¤çæµå岿°æ®"};//å页æ¥è¯¢è®¾å¤çæµå岿°æ® |
| | | String[] fireMonitorData= new String[]{"/api/v2/monitor/fireMonitorData","å页æ¥è¯¢è®¾å¤çæµå岿°æ®"};//å页æ¥è¯¢è®¾å¤çæµå岿°æ® |
| | | |
| | | String[] userOpenidSave= new String[]{"/api/v1/oa/userOpenId/saveV2","ä¿åç¨æ·åopenIdç»å®ä¿¡æ¯å¾®ä¿¡å
¬ä¼å·"};//ä¿åç¨æ·åopenIdç»å®ä¿¡æ¯å¾®ä¿¡å
¬ä¼å· |
| | | String[] temperatureHumidityDataStatistic= new String[]{"/api/v2/public/monitor/sensor/list","æ¶é²çæ¿-4温湿度ç»è®¡"};//æ¶é²çæ¿-温湿度 |
| | | String[] regionDataRanking= new String[]{"/api/ecm/v1/energy/regionDataRanking","æ¶é²çæ¿-4è·ååºåç¨éæå-è½èçæ¿"};//æ¶é²çæ¿-è·ååºåç¨éæå - è½èçæ¿ |
| | |
| | | * @return |
| | | */ |
| | | public static String minitorDataSearch(String body) { |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.minitorDataSearch,body); |
| | | return startDoPostStringArtemis(HKConstants.InterfacePath.minitorDataSearchV1,body); |
| | | } |
| | | /** |
| | | * ç»è®¡ååºæ»ä½çå®é²è®¾å¤æ°éï¼å¨çº¿æ°ãå¨çº¿çã离线æ°ã离线ç |
| | |
| | | @TableField(exist = false) |
| | | private String finishTimeStr; |
| | | |
| | | @ApiModelProperty(value = "ä½ä¸æå°ç¼ç ") |
| | | @TableField(exist = false) |
| | | private String platformCode; |
| | | |
| | | @ApiModelProperty(value = "ä½ä¸æå°åç§°") |
| | | @TableField(exist = false) |
| | | private String platformName ; |
| | |
| | | |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.model.LoginUserModel; |
| | | import com.doumee.dao.business.vo.ApproveDataVO; |
| | | import io.swagger.annotations.ApiModel; |
| | |
| | | @TableField(exist = false) |
| | | private String createMobile; |
| | | |
| | | @ApiModelProperty(value = "å端å建人", example = "1",hidden = true) |
| | | @TableField(exist = false) |
| | | private LoginUserInfo loginUserInfo; |
| | | |
| | | @ApiModelProperty(value = "审æ¹ä¿¡æ¯æ°æ®") |
| | | @TableField(exist = false) |
| | | private ApproveDataVO approveDateVO; |
| | |
| | | |
| | | @ApiModelProperty(value = "è®¾å¤æè
ä¼ æå¨åç§°") |
| | | private String name; |
| | | |
| | | @ApiModelProperty(value = "éå¼") |
| | | private String level; |
| | | |
| | | @ApiModelProperty(value = "çæµæ°æ®éå") |
| | | private List<MonitorDataInfoVO> dataList; |
| | | |
| | |
| | | |
| | | @ApiModelProperty(value = "æå°åç§°") |
| | | private String platformName; |
| | | @ApiModelProperty(value = "æå°ç¼ç ") |
| | | @ApiModelProperty(value = "æå°ä¸»é®") |
| | | private Integer platformId; |
| | | @ApiModelProperty(value = "æå°æåº") |
| | | private Integer platformSort; |
| | | |
| | | @ApiModelProperty(value = "æå°ç¼ç ") |
| | | private String platformCode; |
| | | @ApiModelProperty(value = "车çå·") |
| | | private String carNo; |
| | | |
| | |
| | | //åå§åè®¿å®¢ä¿¡æ¯ |
| | | // initVisitInfo(visits,date); |
| | | visitsMapper.insert(visits); |
| | | if(Objects.nonNull(visits.getLoginUserInfo())){ |
| | | SystemUser systemUser = systemUserMapper.selectById(visits.getLoginUserInfo().getId()); |
| | | if(Objects.nonNull(systemUser)&&StringUtils.isNotBlank(systemUser.getOpenid())){ |
| | | WxPlatNotice wxPlatNotice = new WxPlatNotice(); |
| | | wxPlatNotice.sendVisitTemplateNotice(systemDictDataBiz, |
| | | wxNoticeConfigMapper,visits, |
| | | Constants.equalsInteger(visits.getType(),Constants.TWO)?WxPlatConstants.visitReportContent.visitReportUpload:WxPlatConstants.visitContent.visitUpload, |
| | | systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_ACCESS_TOKEN).getCode(), |
| | | Arrays.asList(systemUser.getOpenid().split(",")) |
| | | ); |
| | | } |
| | | } |
| | | |
| | | approveService.createApproveFlow(visits.getType(),visits.getId(),visits.getReceptMemberId()); |
| | | return visits.getId(); |
| | | } |
| | |
| | | param.setPage(1); |
| | | param.setUserId("admin"); |
| | | // param.setRegionIndexCodes("root000000"); |
| | | param.setAlarmStartTime(DateUtil.getPlusTime2(DateUtil.addDaysToDate(new Date(),-1))); |
| | | param.setAlarmStartTime(DateUtil.getFomartDate(new Date(),"yyyy-MM-dd") + " 00:00:00"); |
| | | param.setAlarmEndTime(DateUtil.getPlusTime2(new Date())); |
| | | param.setPageSize(20); |
| | | BaseResponse<BaseListPageResponse<FindHomeAlarmInfoPageResponse>> response = HKService.findHomeAlarmInfoPage(param); |
| | |
| | | MinitorDataSearchRequest param = new MinitorDataSearchRequest(); |
| | | param.setResourceTypeCodes(new String[]{}); |
| | | param.setRegionIndexCode("root000000"); |
| | | param.setResourceTypeCodes("60,61".split(",")); |
| | | param.setIncludeDown("1"); |
| | | param.setUserId("admin"); |
| | | param.setPageNo(1); |
| | | param.setPageSize(100); |
| | | BaseResponse<BaseListPageResponse<MonitorDataSearchResponse>> response = HKService.minitorDataSearch(param); |
| | | String pressure = systemDictDataBiz.queryByCode(Constants.WMS_PARAM,Constants.WMS_PRESSURE_LEVEL).getCode(); |
| | | String liquid = systemDictDataBiz.queryByCode(Constants.WMS_PARAM,Constants.WMS_LIQUID_LEVEL).getCode(); |
| | | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) |
| | | && response.getData()!=null ) { |
| | | List<MonitorDataSearchResponse> r = response.getData().getList(); |
| | |
| | | for(MonitorDataSearchResponse model : r){ |
| | | MonitorDataVO m = new MonitorDataVO(); |
| | | m.setName(model.getName()); |
| | | m.setLevel(Constants.equalsInteger(model.getType(),60)?liquid:pressure); |
| | | m.setDataList(new ArrayList<>()); |
| | | if(model.getValues()!=null){ |
| | | List<MonitorDataInfoVO> dataList = new ArrayList<>(); |
| | | for(MonitorDataValResponse v : model.getValues()){ |
| | | if(Constants.equalsInteger(model.getType(),60)){ |
| | | if(v.getMonitorTypeCode().equals("254001")){ |
| | | MonitorDataInfoVO vm = new MonitorDataInfoVO(); |
| | | vm.setValue(v.getMonitorValue()); |
| | | vm.setCateName(v.getMonitorSpecificName()); |
| | | vm.setCateCode(v.getMonitorTypeKey()); |
| | | vm.setTypeCode(v.getMonitorTypeCode()); |
| | | vm.setTypeName(v.getMonitorTypeName()); |
| | | dataList.add(vm); |
| | | } |
| | | }else{ |
| | | if(v.getMonitorTypeCode().equals("253958")){ |
| | | MonitorDataInfoVO vm = new MonitorDataInfoVO(); |
| | | vm.setValue(v.getMonitorValue()); |
| | | vm.setCateName(v.getMonitorSpecificName()); |
| | | vm.setCateCode(v.getMonitorTypeKey()); |
| | | vm.setTypeCode(v.getMonitorTypeCode()); |
| | | vm.setTypeName(v.getMonitorTypeName()); |
| | | dataList.add(vm); |
| | | } |
| | | } |
| | | |
| | | } |
| | | m.setDataList(dataList); |
| | | } |
| | | list.add(m); |
| | | } |
| | | } |
| | | } |
| | |
| | | BigDecimal carbonWater = new BigDecimal(0);//æ¬æç¨æ°´ |
| | | BigDecimal carbonElec = new BigDecimal(0);//ç¨çµ |
| | | |
| | | data.setYesterdayElectricity(getDefaultData());//æ¨æ¥ç¨çµ |
| | | data.setTodayElectricity(getDefaultData());//仿¥ç¨çµ |
| | | data.setElectricityQuantity(getDefaultData());//䏿ç¨çµ |
| | | data.setWaterQuantity(getDefaultData());//ä¸æç¨æ°´ |
| | | data.setGasQuantity(getDefaultData());//ä¸æç¨æ° |
| | | data.setMonthElectricity(getDefaultData());//æ¬æç¨çµ |
| | | data.setYesterdayElectricity(getDefaultData());//æ¨æ¥ç¨çµ |
| | | |
| | | |
| | | getMonthElectricityData(data.getMonthElectricity());//éè¿å®é²å¹³è·åæ¬æç¨çµéæ°æ® |
| | | carbonElec = new BigDecimal(StringUtils.defaultString(data.getMonthElectricity().getTotal(), "0")); |
| | | |
| | | getLastMonthElectricityData(data.getElectricityQuantity());//éè¿å®é²å¹³è·å䏿ç¨çµéæ°æ® |
| | | getCurrentDateElectircityData(data.getTodayElectricity(),0);//éè¿å®é²å¹³è·å仿¥ç¨çµéæ°æ® |
| | | getCurrentDateElectircityData(data.getYesterdayElectricity(),-1);//éè¿å®é²å¹³è·åæ¨æ¥ç¨çµéæ°æ® |
| | | getCurrentDateElectircityData(data.getTodayElectricity(),0);//éè¿å®é²å¹³è·å仿¥ç¨çµéæ°æ® |
| | | |
| | | data.setWaterQuantity(getDefaultData());//ä¸æç¨æ°´ |
| | | data.setGasQuantity(getDefaultData());//ä¸æç¨æ° |
| | | carbonElec = new BigDecimal(StringUtils.defaultString(data.getMonthElectricity().getTotal(), "0")); |
| | | String firstDate = DateUtil.getFirstDayCurrentMonth() +" 00:00:00"; |
| | | Date month0 = DateUtil.getDateFromString(firstDate); |
| | | Date month1 = DateUtil.increaseMonth(month0,-1);//䏿 |
| | |
| | | */ |
| | | private void getLastMonthElectricityData(EnergyModelDataVO data) { |
| | | BaseResponse<LastMonthFeeByMeterTypeResponse> response = HKService.lastMonthFeeByMeterType("1"); |
| | | if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){ |
| | | data.setRingRate(StringUtils.defaultString(response.getData().getRingPercent(),"0")); |
| | | data.setSameRate(StringUtils.defaultString(response.getData().getSamePercent(),"0")); |
| | | data.setTotal(StringUtils.defaultString(response.getData().getValue(),"0")); |
| | | // if(response != null && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) && response.getData()!=null ){ |
| | | // data.setRingRate(StringUtils.defaultString(response.getData().getRingPercent(),"0")); |
| | | // data.setSameRate(StringUtils.defaultString(response.getData().getSamePercent(),"0")); |
| | | // data.setTotal(StringUtils.defaultString(response.getData().getValue(),"0")); |
| | | // } |
| | | // String nowMonth = DateUtil.getFomartDate(new Date(),"yyyy-MM-dd"); |
| | | // //ä¸ææ¥æ |
| | | // DateUtil.getBeforMonthStr(new Date(),1); |
| | | // //ä¸ä¸ææ¥æ |
| | | // DateUtil.getBeforMonthStr(new Date(),2); |
| | | // //ä¸å¹´æ¥æ |
| | | // DateUtil.getBeforMonthStr(new Date(),13); |
| | | |
| | | EnergyTotalDataRequest param = new EnergyTotalDataRequest(); |
| | | param.setPeriodType("month"); |
| | | param.setDate(DateUtil.getBeforMonthStr(new Date(),1).substring(0,7)); |
| | | BaseResponse<EnergyTotalDataResponse> beforMonthResponse = HKService.energyTotal(param); |
| | | if(beforMonthResponse != null && StringUtils.equals(beforMonthResponse.getCode(), HKConstants.RESPONSE_SUCCEE) && beforMonthResponse.getData()!=null ){ |
| | | data.setTotal(beforMonthResponse.getData().getElectricity()); |
| | | data.setTotalNum(new BigDecimal(beforMonthResponse.getData().getElectricity())); |
| | | } |
| | | param.setDate(DateUtil.getBeforMonthStr(new Date(),2).substring(0,7)); |
| | | BaseResponse<EnergyTotalDataResponse> beforBeforMonthResponse = HKService.energyTotal(param); |
| | | if(beforBeforMonthResponse != null && StringUtils.equals(beforBeforMonthResponse.getCode(), HKConstants.RESPONSE_SUCCEE) && beforBeforMonthResponse.getData()!=null ){ |
| | | if(Objects.nonNull(beforBeforMonthResponse.getData()) && StringUtils.isNotBlank(beforBeforMonthResponse.getData().getElectricity())){ |
| | | data.setRingNum(new BigDecimal(beforBeforMonthResponse.getData().getElectricity())); |
| | | }else{ |
| | | data.setRingNum(BigDecimal.ZERO); |
| | | } |
| | | if(Objects.isNull(data.getTotal()) || Objects.isNull(data.getRingNum()) |
| | | || data.getTotalNum().compareTo(BigDecimal.ZERO) ==0 || data.getRingNum().compareTo(BigDecimal.ZERO) ==0 ){ |
| | | data.setRingRate("0"); |
| | | }else{ |
| | | data.setRingRate(new BigDecimal(data.getTotal()).divide(data.getRingNum(),2,BigDecimal.ROUND_HALF_UP).toString()); |
| | | } |
| | | } |
| | | param.setDate(DateUtil.getBeforMonthStr(new Date(),13).substring(0,7)); |
| | | BaseResponse<EnergyTotalDataResponse> beforYearMonthResponse = HKService.energyTotal(param); |
| | | if(beforYearMonthResponse != null && StringUtils.equals(beforYearMonthResponse.getCode(), HKConstants.RESPONSE_SUCCEE) && beforBeforMonthResponse.getData()!=null ){ |
| | | if(Objects.nonNull(beforYearMonthResponse.getData()) && StringUtils.isNotBlank(beforYearMonthResponse.getData().getElectricity())){ |
| | | data.setSameNum(new BigDecimal(beforYearMonthResponse.getData().getElectricity())); |
| | | }else{ |
| | | data.setSameNum(BigDecimal.ZERO); |
| | | } |
| | | if(Objects.isNull(data.getTotal()) || Objects.isNull(data.getSameNum()) |
| | | || data.getTotalNum().compareTo(BigDecimal.ZERO) ==0 || data.getSameNum().compareTo(BigDecimal.ZERO) ==0 ){ |
| | | data.setSameRate("0"); |
| | | }else{ |
| | | data.setSameRate(new BigDecimal(data.getTotal()).divide(data.getSameNum(),2,BigDecimal.ROUND_HALF_UP).toString()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * éè¿å®é²å¹³è·å仿¥ç¨çµé |
| | |
| | | if(platformList!=null && platformList.size()>0){ |
| | | List<PlatformJob> jobList = platformJobMapper.selectJoinList(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAll( PlatformJob.class) |
| | | // .selectAs(Platform::getCode,PlatformJob::getPlatformCode) |
| | | .select("( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = "+Constants.PlatformJobLogType.WORKING.getKey()+" order by pl.CREATE_DATE desc limit 1 ) as newStartDate") |
| | | //.select(" ( select sum(ifnull(pl.IO_QTY , 0 )) from platform_wms_detail pl where pl.job_id = t.id and pl.isdeleted=0 )",PlatformJob::getWorkNum) |
| | | .select(" ( case when t.total_num is null then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = t.id ) else t.total_num end )",PlatformJob::getWorkNum) |
| | | .apply("to_days(t.create_date) = to_days(now())") |
| | | .eq(Platform::getIsdeleted, Constants.ZERO) |
| | | .in(PlatformJob ::getStatus,new Integer[]{Constants.PlatformJobStatus.WORKING.getKey(),Constants.PlatformJobStatus.CALLED.getKey() }) |
| | | // .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) |
| | | .orderByDesc(PlatformJob::getStatus )); |
| | | //æå°ç¶æï¼0=ä½ä¸ä¸ï¼1=空é²ä¸ï¼2=ä½ä¸è¶
æ¶;3=å«å· |
| | | for(Platform model : platformList){ |
| | | PlatformWorkDataVO platformDurationVO = new PlatformWorkDataVO(); |
| | | platformDurationVO.setPlatformName(model.getName()); |
| | | platformDurationVO.setPlatformId(model.getId()); |
| | | platformDurationVO.setPlatformCode(model.getCode()); |
| | | platformDurationVO.setPlatformSort(model.getSortnum()); |
| | | PlatformJob job = getJobFromListById(model.getId(),jobList); |
| | | if(job != null){ |