From 843d0abd014ec20424844546fc57a9f976f366ba Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 02 九月 2024 10:52:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
pda/utils/service.js | 3
h5/main.js | 12
admin/src/views/platform/components/PlatformQueuing.vue | 124 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java | 3
h5/pages/driver/forgetPsd.vue | 21
admin/src/assets/style/style.scss | 5
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/CarNumByStatusResponse.java | 11
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java | 606 +++++-
pda/utils/config.js | 15
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java | 18
admin/src/components/common/CommonHeader.vue | 29
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/GasByMonthRequest.java | 3
pda/pages/index/center.vue | 534 ++++-
h5/manifest.json | 2
admin/.env.development | 2
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java | 5
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java | 24
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java | 4
h5/utils/config.js | 15
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java | 52
h5/utils/service.js | 3
h5/pages/driver/reservedDetail.vue | 18
pda/pages/index/login.vue | 73
pda/App.vue | 327 ++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java | 6
admin/src/components/common/GlobalWindow.vue | 6
h5/pages/driver/taskDetail.vue | 161 +
h5/pages/staff/task/index.vue | 1
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformOrderNumByDateResponse.java | 5
pda/pages/index/set.vue | 105
admin/src/views/platform/index.vue | 564 +++++-
h5/pages/driver/reservedRecord.vue | 6
h5/pages/driver/login.vue | 2
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java | 2
server/system_service/src/main/java/com/doumee/core/utils/Constants.java | 25
admin/src/assets/icons/shengyin.png | 0
pda/api/index.js | 124 +
admin/src/views/platform/config.js | 14
h5/api/driver.js | 16
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformWorkVO.java | 31
admin/src/layouts/TableLayout1.vue | 1
admin/src/assets/images/default_nodata.png | 0
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/WaterByMonthResponse.java | 4
h5/pages/driver/reserved.vue | 7
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataListResponse.java | 2
pda/pages.json | 4
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java | 10
pda/static/default_nodata@2x.png | 0
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java | 9
pda/pages/index/queueup.vue | 122 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java | 62
h5/pages/staff/task/driver.vue | 17
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataInfoResponse.java | 1
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java | 62
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java | 8
pda/package-lock.json | 11
pda/pages/index/control.vue | 47
admin/src/components/common/Pagination.vue | 2
h5/pages/driver/register.vue | 14
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java | 95 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java | 3
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java | 7
admin/src/layouts/TableLayout.vue | 4
admin/src/components/common/QueryForm/queryForm.vue | 4
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java | 33
admin/src/views/platform/queueUp.vue | 232 --
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java | 37
h5/pages/driver/index.vue | 61
admin/src/api/platform/index.js | 45
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java | 9
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformOrderNumByDateRequest.java | 3
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java | 113 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java | 2
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ConfirmTaskDTO.java | 29
h5/pages/driver/queueUp.vue | 76
h5/static/driver/ic_truck_mine@2x.png | 0
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java | 17
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java | 9
server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformDataDTO.java | 25
h5/pages/driver/queueUpRecord.vue | 314 ++-
pda/main.js | 11
h5/App.vue | 6
server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/GasByMonthResponse.java | 4
h5/pages/driver/taskConfirm.vue | 809 ++++----
pda/manifest.json | 24
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java | 32
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java | 13
88 files changed, 3,912 insertions(+), 1,471 deletions(-)
diff --git a/admin/.env.development b/admin/.env.development
index cf6b164..5ae3033 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -2,4 +2,4 @@
NODE_ENV = 'development'
VUE_APP_API_URL = 'http://localhost:10010'
-#VUE_APP_API_URL = 'http://192.168.0.173/admin_interface'
+VUE_APP_API_URL = 'http://192.168.0.139:10010'
diff --git a/admin/src/api/platform/index.js b/admin/src/api/platform/index.js
index c399bb2..c0f68ec 100644
--- a/admin/src/api/platform/index.js
+++ b/admin/src/api/platform/index.js
@@ -1,10 +1,45 @@
import request from '@/utils/request'
-// 鏈堝彴鍒楄〃
-export function getPlatform (data) {
- return request.post('/visitsAdmin/cloudService/business/platform/page', data, {
- trim: true
- })
+// 鑾峰彇鏈堝彴缁勪俊鎭�
+export function getPlatformGroupList (data) {
+ return request.post('/visitsAdmin/cloudService/business/platform/getPlatformGroupList', data)
+}
+// 鍙彿鍒楄〃
+export function platformCallList (data) {
+ return request.post('/visitsAdmin/cloudService/business/platform/platformCallList', data)
+}
+// 鍙彿
+export function platformCallNumber (data) {
+ return request.post('/visitsAdmin/cloudService/business/platform/platformCallNumber', data)
+}
+// 寮�濮嬩綔涓�
+export function platformBeginWork (data) {
+ return request.post('/visitsAdmin/cloudService/business/platform/beginWork', data)
+}
+// 瀹屾垚浣滀笟
+export function platformFinishWork (data) {
+ return request.post('/visitsAdmin/cloudService/business/platform/finishWork', data)
+}
+// 杩囧彿
+export function platformOverNumber (data) {
+ return request.post('/visitsAdmin/cloudService/business/platform/platformOverNumber', data)
+}
+// 寮傚父鎸傝捣
+export function platformErr (data) {
+ return request.post('/visitsAdmin/cloudService/business/platform/platformErr', data)
+}
+// 寮傚父鎸傝捣
+export function platformMove (data) {
+ return request.post('/visitsAdmin/cloudService/business/platform/platformMove', data)
+}
+// 鏈堝彴閰嶇疆
+export function updUserPlatformConfig (data) {
+ return request.get('/visitsAdmin/cloudService/business/platform/updUserPlatformConfig?ids=' + data)
+}
+
+// 鏍规嵁鏈堝彴缁勮幏鍙栨湀鍙板垪琛ㄤ俊鎭�
+export function listByGroupId (id) {
+ return request.get('/visitsAdmin/cloudService/business/platform/listByGroupId?groupId=' + id)
}
// 鏈堝彴鍒楄〃 缂栬緫
export function PlatformEdit (data) {
diff --git a/admin/src/assets/icons/shengyin.png b/admin/src/assets/icons/shengyin.png
new file mode 100644
index 0000000..6ef8cce
--- /dev/null
+++ b/admin/src/assets/icons/shengyin.png
Binary files differ
diff --git a/admin/src/assets/images/default_nodata.png b/admin/src/assets/images/default_nodata.png
new file mode 100644
index 0000000..0b58506
--- /dev/null
+++ b/admin/src/assets/images/default_nodata.png
Binary files differ
diff --git a/admin/src/assets/style/style.scss b/admin/src/assets/style/style.scss
index 754466b..91b6a3e 100644
--- a/admin/src/assets/style/style.scss
+++ b/admin/src/assets/style/style.scss
@@ -138,8 +138,9 @@
.main_app {
background-color: #fff;
- padding: 30px;
- margin: 0 16px;
+ margin-top: 10px;
+ margin-left: 16px;
+ padding: 20px;
}
.fs12{
font-size: 12px;
diff --git a/admin/src/components/common/CommonHeader.vue b/admin/src/components/common/CommonHeader.vue
index 5afc768..aa3672e 100644
--- a/admin/src/components/common/CommonHeader.vue
+++ b/admin/src/components/common/CommonHeader.vue
@@ -4,7 +4,10 @@
<div class="logo">
<div>{{ title }}</div>
<div class="list">
- <div class="item">鏈嶅姟涓績</div>
+ <div class="item active">
+ <div>鏈嶅姟涓績</div>
+ <div class="linellae"></div>
+ </div>
<div class="item">瀹夐槻涓績</div>
<div class="item">娑堥槻涓績</div>
<div class="item">鑳界涓績</div>
@@ -204,6 +207,30 @@
.common-header {
background-color: #2080f7;
}
+.list{
+ display: flex;
+ align-items: center;
+ margin-left: 60px;
+ .item{
+ margin-right: 40px;
+ font-size: 16px;
+ font-weight: 400;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: flex-start;
+ height: 40px;
+ cursor: pointer;
+ .linellae{
+ width: 64px;
+ height: 2px;
+ background: #FFFFFF;
+ }
+ }
+ .active{
+ font-weight: 500;
+ }
+}
.header {
overflow: hidden;
// background: #fff;
diff --git a/admin/src/components/common/GlobalWindow.vue b/admin/src/components/common/GlobalWindow.vue
index 64bcabe..4ae9ce1 100644
--- a/admin/src/components/common/GlobalWindow.vue
+++ b/admin/src/components/common/GlobalWindow.vue
@@ -20,7 +20,7 @@
</div>
<div v-if="withFooter" class="window__footer">
<slot name="footer">
- <el-button @click="confirm" :loading="confirmWorking" type="primary">{{text}}</el-button>
+ <el-button v-if="showConfirm" @click="confirm" :loading="confirmWorking" type="primary">{{text}}</el-button>
<slot name="btns" />
<el-button @click="close">{{ backText }}</el-button>
</slot>
@@ -55,6 +55,10 @@
type: Boolean,
default: false
},
+ showConfirm: {
+ type: Boolean,
+ default: true
+ },
// 鏍囬
title: {
type: String,
diff --git a/admin/src/components/common/Pagination.vue b/admin/src/components/common/Pagination.vue
index 86ea4d2..61d5103 100644
--- a/admin/src/components/common/Pagination.vue
+++ b/admin/src/components/common/Pagination.vue
@@ -1,7 +1,7 @@
<template>
<div class="table-pagination">
<el-pagination
- :current-page="pagination.pageIndex"
+ :current-page="pagination.pageIndex || pagination.page"
:page-sizes="pagination.pageSizes||[10, 20, 30, 40]"
:page-size="pagination.pageSize"
layout="total, sizes, prev, pager, next, jumper"
diff --git a/admin/src/components/common/QueryForm/queryForm.vue b/admin/src/components/common/QueryForm/queryForm.vue
index 4755b31..9eedeab 100644
--- a/admin/src/components/common/QueryForm/queryForm.vue
+++ b/admin/src/components/common/QueryForm/queryForm.vue
@@ -191,8 +191,8 @@
align-items: center;
background-color: #fff;
border-bottom: 10px solid #f7f8f9;
- margin: 0 -30px;
- padding: 0 0 0 30px;
+ margin: 0 -20px;
+ padding: 0 0 0 20px;
.el-input,
.el-select {
diff --git a/admin/src/layouts/TableLayout.vue b/admin/src/layouts/TableLayout.vue
index 28ab4c7..c33073b 100644
--- a/admin/src/layouts/TableLayout.vue
+++ b/admin/src/layouts/TableLayout.vue
@@ -6,7 +6,7 @@
<el-breadcrumb-item v-for="path in paths" :key="path">{{path}}</el-breadcrumb-item>
</el-breadcrumb>
</div>-->
- <div style="height:10px;"></div>
+ <!-- <div style="height:10px;"></div> -->
<Profile :roles="roles" :permissions="permissions">
<!-- 鎼滅储琛ㄥ崟閮ㄥ垎 -->
<div class="table-search-form">
@@ -60,6 +60,7 @@
height: 100%;
display: flex;
flex-direction: column;
+ margin-top: 10px;
.not-allow-wrap {
padding-top: 0;
}
@@ -104,7 +105,6 @@
}
// 鍒楄〃鍜屽垎椤�
.table-content {
- margin-top: 10px;
padding: 0 16px;
.table-wrap {
padding: 16px 16px 0 16px;
diff --git a/admin/src/layouts/TableLayout1.vue b/admin/src/layouts/TableLayout1.vue
index c5070e9..dd2e38d 100644
--- a/admin/src/layouts/TableLayout1.vue
+++ b/admin/src/layouts/TableLayout1.vue
@@ -110,7 +110,6 @@
}
// 鍒楄〃鍜屽垎椤�
.table-content {
- margin-top: 10px;
/*padding: 0 16px;*/
.table-wrap {
padding: 16px 16px 0 16px;
diff --git a/admin/src/views/platform/components/PlatformQueuing.vue b/admin/src/views/platform/components/PlatformQueuing.vue
index 592bbda..4cbc85b 100644
--- a/admin/src/views/platform/components/PlatformQueuing.vue
+++ b/admin/src/views/platform/components/PlatformQueuing.vue
@@ -2,75 +2,135 @@
<GlobalWindow
title="鏈堝彴鍙彿-xx鍙锋湀鍙�"
:visible.sync="isShowModal"
+ :showConfirm="false"
width="800px"
- :confirm-working="subLoading"
- @confirm="handleSub"
>
<div class="queuing_modal">
<div class="df_ac mb20">
<span>鎼滅储杞﹁締锛�</span>
<el-input
class="flex1 mr20"
- v-model="param.aa"
+ v-model="carCodeFront"
placeholder="璇疯緭鍏ヨ溅鐗屽彿"
></el-input>
- <el-button type="primary">鏌ユ壘</el-button>
- <el-button>閲嶇疆</el-button>
+ <el-button type="primary" @click="getList">鏌ユ壘</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
</div>
<div class="list">
- <div class="item">
+ <div class="item" v-for="item in dataList" :key="item.id">
<div class="head df_sb">
- <div class="plate">鐨朅12122</div>
- <div class="status">宸茬鍒�</div>
+ <div v-if="item.carCodeFront" class="code">
+ <span>{{ item.carCodeFront.slice(0, 1) }}</span>
+ <span>{{ item.carCodeFront.slice(1, 2) }}</span>
+ <span>路</span>
+ <span>{{ item.carCodeFront.slice(2) }}</span>
+ </div>
+ <div class="status">{{ statusMap[item.status] }}</div>
</div>
<div class="info">
- <div class="ite">
+ <div v-if="item.type == 4" class="ite">
+ <span>鍚堝悓鍗曞彿锛�</span>
+ <span>{{ item.contractNum }}</span>
+ </div>
+ <div v-else class="ite">
<span>杩愯緭鍗曞彿锛�</span>
- <span>12312</span>
+ <span>{{ item.code }}</span>
</div>
<div class="ite">
<span>椹鹃┒鍛橈細</span>
- <span>12312</span>
+ <span>{{ item.driverName }}</span>
</div>
<div class="ite">
<span>鎵嬫満鍙凤細</span>
- <span>12312</span>
+ <span>{{ item.drivierPhone }}</span>
</div>
<div class="ite">
<span>鎬昏繍杈撻噺锛�</span>
- <span>12312</span>
+ <span>{{ item.totalNum }}涓囨敮</span>
</div>
- <div class="ite" style="width: 66%">
+ <div v-if="item.type != 4" class="ite" style="width: 66%">
<span>杩愯緭鍏徃锛�</span>
- <span>12312</span>
+ <span>{{ item.carrierName }}</span>
</div>
</div>
<div class="footer df_sb">
- <div class="detail">杩愬崟璇︽儏</div>
- <el-button type="primary">鍙彿</el-button>
+ <div v-if="item.type != 4" class="detail">杩愬崟璇︽儏</div>
+ <div v-else></div>
+ <el-button type="primary" @click="handleCall(item)">鍙彿</el-button>
</div>
</div>
</div>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="pagination"
+ >
+ </pagination>
</div>
</GlobalWindow>
</template>
<script>
import GlobalWindow from '@/components/common/GlobalWindow'
-import { getPlatform, PlatformEdit, PlatformDel } from '@/api'
+import Pagination from '@/components/common/Pagination'
+import { platformCallList, platformCallNumber } from '@/api'
+import { statusMap } from '../config'
+import { Message } from 'element-ui'
export default {
components: {
- GlobalWindow
+ GlobalWindow,
+ Pagination
},
data () {
return {
+ statusMap,
isShowModal: false,
subLoading: false,
- param: {}
+ pagination: {
+ total: 0,
+ pageSize: 10,
+ page: 1
+ },
+ carCodeFront: '',
+ activePlat: {},
+ dataList: []
}
},
methods: {
+ handleCall (item) {
+ const activePlatform = this.activePlat
+ platformCallNumber({ platformId: activePlatform.id, jobId: item.id }).then(res => {
+ Message.success('鍙彿鎴愬姛')
+ this.$emit('success')
+ this.getList()
+ })
+ },
+ getList () {
+ const { activePlat, pagination, carCodeFront } = this
+ platformCallList({
+ model: { callType: '2', platformId: activePlat.id, carCodeFront },
+ page: pagination.page,
+ capacity: pagination.pageSize
+ }).then(res => {
+ this.dataList = res.records
+ this.pagination.total = res.total
+ })
+ },
+ reset () {
+ this.carCodeFront = ''
+ this.pagination.page = 1
+ this.pagination.pageSize = 10
+ this.getList()
+ },
+ handleSizeChange (e) {
+ this.pagination.pageSize = e
+ this.getList()
+ },
+ handlePageChange (e) {
+ this.pagination.page = e
+ this.getList()
+ },
handleSub () {
const { param } = this
this.subLoading = true
@@ -84,7 +144,7 @@
}, () => {
this.subLoading = false
})
- },
+ }
}
}
@@ -116,6 +176,28 @@
.status {
color: $primaryColor;
}
+ .code {
+ display: flex;
+ font-weight: 600;
+ height: 30px;
+ line-height: 30px;
+ font-size: 15px;
+ color: #111111;
+ background-color: #fff;
+ border-radius: 4px;
+ border: 1px solid $primaryColor;
+ padding-right: 4px;
+ span {
+ &:nth-of-type(1) {
+ background: $primaryColor;
+ padding: 0 8px;
+ color: #fff;
+ }
+ &:nth-of-type(2) {
+ padding-left: 4px;
+ }
+ }
+ }
}
.info {
display: flex;
diff --git a/admin/src/views/platform/config.js b/admin/src/views/platform/config.js
new file mode 100644
index 0000000..e4a6ab5
--- /dev/null
+++ b/admin/src/views/platform/config.js
@@ -0,0 +1,14 @@
+export const statusMap = {
+ 0: '寰呯‘璁�',
+ 1: '寰呯鍒�',
+ 2: '绛夊緟鍙彿',
+ 3: '鍏ュ洯绛夊緟',
+ 4: '鏈堝彴绛夊緟', // 宸插彨鍙�
+ 5: '浣滀笟涓�',
+ 6: '浣滀笟瀹屾垚',
+ 7: '杞Щ涓�',
+ 8: '寮傚父鎸傝捣',
+ 9: '宸叉巿鏉冪鍥�',
+ 10: '宸茬鍥�',
+ 11: '宸茶繃鍙�'
+}
diff --git a/admin/src/views/platform/index.vue b/admin/src/views/platform/index.vue
index 7bc61bf..7e712e4 100644
--- a/admin/src/views/platform/index.vue
+++ b/admin/src/views/platform/index.vue
@@ -1,155 +1,394 @@
<template>
<div class="main_app">
- <div class="mb20">
- <el-select v-model="platformId" @change="getList()">
- <el-option v-for="item in PlatformList" :key="item.id" :value="item.id" :label="item.name" />
- </el-select>
+ <div class="mb20 main_header">
+ <div class="platgroup_tabs">
+ <div
+ class="tab"
+ :class="{ active: activeGroup.id === item.id }"
+ @click="platgroupClick(item)"
+ v-for="(item, i) in PlatGroupList"
+ :key="i"
+ >
+ {{ item.name }}
+ </div>
+ <!-- <el-tabs v-model="activeGroup.id" @tab-click="platgroupClick">
+ <el-tab-pane
+ v-for="item,i in PlatGroupList"
+ :key="i"
+ :label="item.name"
+ :name="String(item.id)"
+ />
+ </el-tabs> -->
+ </div>
<el-button type="primary" class="ml20" @click="handleSet"
>閰嶇疆鏈堝彴</el-button
>
</div>
<!-- -->
- <div class="platform_list">
- <div class="item" v-for="i in 2">
+ <div v-if="activeGroup.platformList" class="platform_list">
+ <div class="item" :class="{ emyty: item.workStatus == 0 }" v-for="(item, i) in activeGroup.platformList" :key="i">
<div class="head">
<div class="left">
- <div class="status mr10">浣滀笟涓�</div>
- <div class="name">6鍙锋湀鍙�</div>
+ <div class="status mr10">
+ {{ item.workStatus == "0" ? "绌洪棽" : "浣滀笟涓�" }}
+ </div>
+ <div class="name">{{ item.name }}</div>
<div class="ite">
- <span class="placeholder9">浣滀笟锛�</span><span>1</span>
+ <span class="placeholder9">浣滀笟锛�</span
+ ><span>{{ item.platformWorkVO.workNum }}</span>
</div>
<div class="ite">
- <span class="placeholder9">浣滀笟锛�</span><span>1</span>
+ <span class="placeholder9">宸插彨锛�</span
+ ><span>{{ item.platformWorkVO.callNum }}</span>
</div>
<div class="ite">
- <span class="placeholder9">浣滀笟锛�</span><span class="red">1</span>
+ <span class="placeholder9">绛夊緟锛�</span
+ ><span>{{ item.platformWorkVO.waitNum }}</span>
+ </div>
+ <div class="ite">
+ <span class="placeholder9">寮傚父锛�</span
+ ><span class="red">{{ item.platformWorkVO.exceptionNum }}</span>
</div>
</div>
- <el-button type="primary" @click="handleQueuing()">鍙彿</el-button>
+ <el-button type="primary" @click="handleQueuing(item)">
+ <div class="df_ac">
+ <img class="shengyin" src="@/assets/icons/shengyin.png" alt="">
+ <span>鍙彿</span>
+ </div>
+ </el-button>
</div>
- <div class="list">
- <div class="info" v-for="j in 3">
+ <div
+ class="list"
+ v-if="item.platformWorkVO && item.platformWorkVO.platformJobList"
+ >
+ <div
+ class="info"
+ v-for="task in item.platformWorkVO.platformJobList"
+ :key="task.id"
+ >
<div class="line">
<div class="left">
- <span class="plate">鐨朅12122</span>
+ <div v-if="task.carCodeFront" class="code">
+ <span>{{ task.carCodeFront.slice(0, 1) }}</span>
+ <span>{{ task.carCodeFront.slice(1, 2) }}</span>
+ <span>路</span>
+ <span>{{ task.carCodeFront.slice(2) }}</span>
+ </div>
</div>
<div class="right">
- <span class="green">浣滀笟涓�</span>
- <span class="green ml20">23鍒嗛挓26绉�</span>
+ <div
+ class="status"
+ v-if="task.status != 4 && task.status != 5"
+ :class="{ red: task.status == 8 }"
+ >
+ <span class="lab">{{ statusMap[task.status] }}</span>
+ </div>
+ <div class="status" v-if="task.status == 4">
+ <span class="lab">鍙彿涓�</span> {{ task.callDateTemp }}
+ </div>
+ <div class="status scs" v-if="task.status == 5">
+ <span class="lab">宸蹭綔涓�</span> {{ task.startDateTemp }}
+ </div>
</div>
</div>
<div class="line">
- <div class="ite">
+ <div v-if="task.type == 4" class="ite">
+ <span>鍚堝悓鍗曞彿锛�</span>
+ <span>{{ task.contractNum }}</span>
+ </div>
+ <div v-else class="ite">
<span>杩愯緭鍗曞彿锛�</span>
- <span>202020</span>
+ <span>{{ task.code }}</span>
</div>
<div class="ite">
<span>椹鹃┒鍛橈細</span>
- <span>202020</span>
+ <span>{{ task.driverName }}</span>
</div>
<div class="ite">
<span>鎵嬫満鍙凤細</span>
- <span>202020</span>
+ <span>{{ task.drivierPhone }}</span>
</div>
<div class="ite">
<span>鎬昏繍杈撻噺锛�</span>
- <span>202020</span>
+ <span>{{ task.totalNum }}涓囨敮</span>
</div>
- <div class="ite" style="width: 66.6%">
+ <div v-if="task.type != 4" class="ite" style="width: 66.6%">
<span>杩愯緭鍏徃锛�</span>
- <span>20202dasd鐜╁効鐜╁効鐜╁効棰濆 棰濆0</span>
+ <span>{{ task.carrierName }}</span>
</div>
<div class="ite"></div>
</div>
<div class="line">
- <div class="left">
+ <div v-if="task.type != 4" class="left">
<span class="primaryColor pointer" @click="handleDetail"
>杩愬崟璇︽儏</span
>
</div>
+ <div v-else></div>
<div class="right">
- <el-button type="primary" @click="handleFinish()"
+ <el-button
+ v-if="task.status == 5"
+ plain
+ @click="handleErr(task)"
+ >寮傚父鎸傝捣</el-button
+ >
+ <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-if="task.status == 5 || task.status == 8"
+ type="primary"
+ @click="handleFinish(task)"
>浣滀笟瀹屾垚</el-button
>
- <el-button plain>杞Щ鏈堝彴</el-button>
- <el-button plain>寮傚父鎸傝捣</el-button>
+ <el-button
+ v-if="task.status == 4"
+ type="primary"
+ @click="handleWork(task)"
+ >寮�濮嬩綔涓�</el-button
+ >
</div>
</div>
</div>
</div>
+ <div v-if="!item.platformWorkVO.platformJobList || item.platformWorkVO.platformJobList.length == 0" class="empty_plat">
+ <img src="@/assets/images/default_nodata.png" alt="">
+ <div>鏆傛棤杞﹁締</div>
+ </div>
</div>
</div>
<!-- 閰嶇疆鏄剧ず鏈堝彴 -->
- <el-dialog
+ <GlobalWindow
title="閰嶇疆鏄剧ず鏈堝彴"
:visible.sync="isShowSet"
- center
- width="420px"
+ :confirm-working="setLoading"
+ @confirm="handleSetSub"
+ width="560px"
>
<div class="set_modal">
- <div class="mb20">
- <div class="title">鍏ュ簱鏈堝彴缁�</div>
+ <div class="mb10" v-for="group in PlatGroupList" :key="group.id">
+ <div class="title">{{group.name}}</div>
<div class="list">
- <div class="item active">1鍙锋湀鍙�</div>
- <div class="item">2鍙锋湀鍙�</div>
- <div class="item">1鍙锋湀鍙�</div>
- <div class="item">2鍙锋湀鍙�</div>
- </div>
- </div>
- <div>
- <div class="title">鍏ュ簱鏈堝彴缁�</div>
- <div class="list">
- <div class="item">1鍙锋湀鍙�</div>
- <div class="item">2鍙锋湀鍙�</div>
- <div class="item">1鍙锋湀鍙�</div>
- <div class="item">2鍙锋湀鍙�</div>
+ <div class="item" @click="platformSetClick(item.id)" :class="{ active: item.showConfig }" v-for="item in group.platformList" :key="item.id">
+ <div>{{item.name}}</div>
+ <div v-if="item.showConfig" class="bg"></div>
+ <i v-if="item.showConfig" class="el-icon-check scs"></i>
+ </div>
</div>
</div>
</div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="setReset">閲嶇疆</el-button>
- <el-button type="primary" @click="setSub">纭畾</el-button>
- </span>
- </el-dialog>
+ </GlobalWindow>
<!-- 杩愬崟璇︽儏 -->
<!-- -->
<!-- 鍙彿 -->
- <PlatformQueuing ref="PlatformQueuingRef" v-if="isShowQueuing" @success="getList" @close="isShowQueuing = false" />
- <WaybillDetail ref="WaybillDetailRef" v-if="isShowDetail" @success="getList" @close="isShowDetail = false" />
+ <PlatformQueuing
+ ref="PlatformQueuingRef"
+ v-if="isShowQueuing"
+ @success="getPlatGroupList"
+ @close="isShowQueuing = false"
+ />
+ <WaybillDetail
+ ref="WaybillDetailRef"
+ v-if="isShowDetail"
+ @success="getList"
+ @close="isShowDetail = false"
+ />
+ <el-dialog
+ title="杞Щ鏈堝彴"
+ :visible.sync="isShowTransform"
+ width="500px"
+ style="margin-top: 12vh"
+ >
+ <div class="df_ac">
+ <span>閫夋嫨杞Щ鍒扮殑鏈堝彴锛�</span>
+ <el-select v-model="activePlatId">
+ <el-option
+ v-for="item in activeGroup.platformList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ >
+ </el-option>
+ </el-select>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="isShowTransform = false">鍙栨秷</el-button>
+ <el-button type="primary" @click="transformSub">纭畾</el-button>
+ </span>
+ </el-dialog>
</div>
</template>
<script>
-import { getPlatform, getPlatformJob } from '@/api'
+import {
+ getPlatformGroupList,
+ platformBeginWork,
+ platformFinishWork,
+ platformOverNumber,
+ platformErr,
+ platformMove,
+ updUserPlatformConfig,
+
+ listByGroupId
+} from '@/api'
import PlatformQueuing from './components/PlatformQueuing.vue'
import WaybillDetail from './components/WaybillDetail.vue'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import dayjs from 'dayjs'
+import duration from 'dayjs/plugin/duration'
+import { Message } from 'element-ui'
+import { statusMap } from './config'
+dayjs.extend(duration)
export default {
components: {
PlatformQueuing,
- WaybillDetail
+ WaybillDetail,
+ GlobalWindow
},
data () {
return {
- platformId: '',
- PlatformList: [],
- dataList: [],
+ statusMap,
+ activeGroup: {},
+ PlatGroupList: [],
+ platList: [],
+ platCallList: [],
+ isShowTransform: false,
+ activePlatId: '', // 杞Щ鏈堝彴
+ activetaskId: '',
isShowSet: false, // 鏈堝彴閰嶇疆
+ setLoading: false,
+
setParam: {},
isShowDetail: false, // 杩愬崟璇︽儏
detail: {},
- isShowQueuing: false
+ isShowQueuing: false,
+ timer: null
}
},
created () {
- this.getPlatList()
- this.getList()
+ this.getPlatGroupList()
+ // this.getList()
},
methods: {
- handleQueuing (row) {
+ handleWork (item) {
+ platformBeginWork({ jobId: item.id }).then(res => {
+ Message.success('宸插紑濮嬩綔涓�')
+ this.getPlatGroupList()
+ })
+ },
+ handleFinish (item) {
+ platformFinishWork({ jobId: item.id }).then(res => {
+ Message.success('瀹屾垚浣滀笟')
+ this.getPlatGroupList()
+ })
+ },
+ handleTransform (item, task) {
+ this.activePlatId = item.id
+ this.activetaskId = task.id
+ this.isShowTransform = true
+ },
+ transformSub () {
+ const { activePlatId, activetaskId } = this
+ platformMove({ platformId: activePlatId, jobId: activetaskId }).then(res => {
+ Message.success('杞Щ鏈堝彴鎴愬姛')
+ this.isShowTransform = false
+ this.getPlatGroupList()
+ })
+ },
+ handlePass (item) {
+ this.$confirm('鎮ㄧ‘璁よ瀵硅浠诲姟杩涜杩囧彿鍚�', '娓╅Θ鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ platformOverNumber({ jobId: item.id }).then(ress => {
+ Message.success('杩囧彿鎴愬姛')
+ this.getPlatGroupList()
+ })
+ })
+ },
+ handleErr (item) {
+ this.$confirm('鎮ㄧ‘璁よ瀵硅浠诲姟杩涜寮傚父鎸傝捣鍚�', '娓╅Θ鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ platformErr({ jobId: item.id }).then(ress => {
+ Message.success('寮傚父鎸傝捣鎴愬姛')
+ this.getPlatGroupList()
+ })
+ })
+ },
+ platgroupClick (item) {
+ this.activeGroup = { ...item }
+ this.circulInitTaskList()
+ this.timer = setInterval(() => {
+ this.circulInitTaskList()
+ }, 1000)
+ },
+ getPlatGroupList () {
+ getPlatformGroupList({
+ queryData: 1,
+ queryType: 1
+ }).then(res => {
+ this.PlatGroupList = res || []
+ if (res.length > 0) {
+ if (this.activeGroup && this.activeGroup.id) {
+ this.activeGroup = res.find(item => item.id === this.activeGroup.id)
+ } else {
+ this.activeGroup = res[0]
+ }
+ this.circulInitTaskList()
+ this.timer = setInterval(() => {
+ this.circulInitTaskList()
+ }, 1000)
+ }
+ })
+ },
+ circulInitTaskList () {
+ if (this.activeGroup && this.activeGroup.platformList && this.activeGroup.platformList.length > 0) {
+ const time = new Date()
+ this.activeGroup.platformList.forEach(plat => {
+ if (plat.platformWorkVO.platformJobList && plat.platformWorkVO.platformJobList.length > 0) {
+ plat.platformWorkVO.platformJobList.forEach(item => {
+ if (item.callDate) {
+ const timeNum = time.getTime() - new Date(item.callDate).getTime()
+ if (timeNum > 3600000) {
+ item.callDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖绉�')
+ } else {
+ item.callDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
+ }
+ }
+ if (item.startDate) {
+ const timeNum = time.getTime() - new Date(item.startDate).getTime()
+ if (timeNum > 3600000) {
+ item.startDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖s绉�')
+ } else {
+ item.startDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
+ }
+ }
+ })
+ }
+ })
+ this.$forceUpdate()
+ }
+ },
+ handleQueuing (item) {
this.isShowQueuing = true
this.$nextTick(() => {
this.$refs.PlatformQueuingRef.isShowModal = true
+ this.$refs.PlatformQueuingRef.activePlat = { ...item }
+ this.$refs.PlatformQueuingRef.getList()
})
},
handleDetail () {
@@ -159,32 +398,44 @@
})
},
getList () {
- const { platformId } = this
- getPlatformJob({
- model: { platformId }
- }).then(res => {
- this.dataList = res.records
- })
- },
- handleFinish (item) {
- this.$confirm('楂樻灦搴�6鍙锋湀鍙� 鐨朅12345 浣滀笟缁撴潫', '娓╅Θ鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- })
- },
- getPlatList () {
- getPlatform({
- model: {}
- }).then(res => {
- this.PlatformList = res.records
+ const { groupId } = this
+ listByGroupId(groupId).then(res => {
+ this.platList = res
})
},
handleSet () {
this.isShowSet = true
},
- setReset () { },
- setSub () { }
+ handleSetSub () {
+ const { PlatGroupList } = this
+ const ids = []
+ PlatGroupList.forEach(item => {
+ item.platformList.forEach(platform => {
+ if (platform.showConfig) {
+ ids.push(platform.id)
+ }
+ })
+ })
+ this.setLoading = true
+ updUserPlatformConfig(ids).then(res => {
+ this.setLoading = false
+ Message.success('鏇存柊鎴愬姛')
+ this.isShowSet = false
+ this.getPlatGroupList()
+ }, () => {
+ this.setLoading = false
+ })
+ },
+ platformSetClick (id) {
+ const { PlatGroupList } = this
+ PlatGroupList.forEach(item => {
+ item.platformList.forEach(platform => {
+ if (platform.id === id) {
+ platform.showConfig = !platform.showConfig
+ }
+ })
+ })
+ }
}
}
</script>
@@ -192,20 +443,27 @@
<style lang="scss" scoped>
@import "@/assets/style/variables.scss";
.platform_list {
+ width: 100%;
.item {
/* padding: 16px 24px; */
background: #ffffff;
border-radius: 2px;
border: 1px solid #dfe2e8;
margin-bottom: 12px;
+ width: 100%;
.head {
display: flex;
justify-content: space-between;
align-items: center;
height: 50px;
- background: linear-gradient(270deg, #ffffff 0%, #ebf6f7 100%);
+ background: linear-gradient( 270deg, #FFFFFF 0%, #EBF6F7 100%);
border-radius: 2px 2px 0px 0px;
- padding: 0 28px;
+ padding: 0 20px;
+ .shengyin{
+ width: 12px;
+ height: 12px;
+ margin-right: 3px;
+ }
.left {
flex: 1;
display: flex;
@@ -217,10 +475,10 @@
.status {
line-height: 25px;
height: 25px;
- padding: 0 4px;
background: #00ba67;
border-radius: 2px;
color: #ffffff;
+ padding: 0 6px;
}
.ite {
margin-right: 30px;
@@ -233,37 +491,53 @@
justify-content: space-between;
margin-top: 10px;
padding: 16px;
+ width: calc( 100% - 48px );
.info {
- background: #effbf5;
+ background: #f4fafb;
border-radius: 2px;
border: 1px solid #dfe2e8;
padding: 16px;
border-radius: 2px;
margin-bottom: 10px;
- width: 30%;
+ width: calc( 31.6% - 16px );
+ .status {
+ .lab {
+ font-weight: 500;
+ }
+ color: #00ba67;
+ }
.line {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
margin-bottom: 6px;
- span {
- &:nth-child(1) {
- color: #999999;
- }
- }
.ite {
width: 33.3%;
margin-top: 8px;
}
.left {
- .plate {
+ .code {
+ display: flex;
+ font-weight: 600;
+ height: 30px;
+ line-height: 30px;
font-size: 15px;
color: #111111;
- padding: 4px 5px;
- font-weight: 700;
- border: 1px solid #279baa;
background-color: #fff;
+ border-radius: 4px;
+ border: 1px solid $primaryColor;
+ padding-right: 4px;
+ span {
+ &:nth-of-type(1) {
+ background: $primaryColor;
+ padding: 0 8px;
+ color: #fff;
+ }
+ &:nth-of-type(2) {
+ padding-left: 4px;
+ }
+ }
}
}
.right {
@@ -272,16 +546,69 @@
}
}
}
+ .jobing {
+ background: #effbf5;
+ .status {
+ color: #00ba67;
+ }
+ }
+ .err {
+ background: #fef6f6;
+ .status {
+ color: #ed4545;
+ }
+ }
+ }
+ .empty_plat{
+ width: 100%;
+ height: 170px;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ font-size: 12px;
+ color: #B2B2B2;
+ img{
+ width: 110px;
+ }
+ }
+ }
+ .emyty{
+ .head{
+ background: linear-gradient( 270deg, #FFFFFF 0%, #F7F7F7 100%) !important;
+ }
+ .status{
+ background: #CCCCCC !important;
}
}
}
-
-.main_head {
+.main_header {
display: flex;
- justify-content: space-between;
- align-items: center;
- .tabs {
+ position: relative;
+ .platgroup_tabs {
flex: 1;
+ display: flex;
+ border-bottom: 1px solid #dfe2e8;
+ .tab {
+ color: #666666;
+ margin-right: 40px;
+ cursor: pointer;
+ padding-bottom: 18px;
+ border-bottom: 2px solid #fff;
+ }
+ .active {
+ font-weight: 500;
+ font-size: 15px;
+ color: #222222;
+ border-bottom: 2px solid $primary-color;
+ }
+ }
+ .ml20 {
+ position: absolute;
+ width: 120px;
+ height: 36px;
+ right: 0;
+ top: -4px;
}
}
/* */
@@ -293,23 +620,42 @@
}
.list {
display: flex;
- justify-content: space-between;
flex-wrap: wrap;
.item {
cursor: pointer;
- width: 30%;
- height: 32px;
+ padding: 0 36px;
+ height: 36px;
border: 1px solid #dfe2e8;
display: flex;
justify-content: center;
align-items: center;
border-radius: 2px;
- margin-bottom: 12px;
+ margin-bottom: 10px;
+ margin-right: 13px;
+ position: relative;
+ overflow: hidden;
+ .bg{
+ position: absolute;
+ right: -12px;
+ bottom: -12px;
+ width: 24px;
+ height: 24px;
+ background: $primaryColor;
+ transform: rotate(45deg);
+ }
+ .scs{
+ position: absolute;
+ right: -1px;
+ bottom: -1px;
+ color: #fff;
+ z-index: 99999;
+ transform:scale(.8)
+ }
}
.active {
- background: rgba(39, 155, 170, 0.06);
- border: 1px solid #279baa;
- color: #279baa;
+ background: rgba(39,155,170,0.06);
+ border: 1px solid $primaryColor;
+ color: $primaryColor;
}
}
}
diff --git a/admin/src/views/platform/queueUp.vue b/admin/src/views/platform/queueUp.vue
index 9ad3106..785983c 100644
--- a/admin/src/views/platform/queueUp.vue
+++ b/admin/src/views/platform/queueUp.vue
@@ -1,129 +1,31 @@
<template>
<div class="main_app">
- <div class="df_ac mb20">
- <el-select v-model="filters.currentPlatform" class="w300">
- <el-option v-for="item in platformList" :key="item.id"></el-option>
- </el-select>
- <el-input v-model="filters.id" placeholder="杞︾墝鍙�" class="ml20 w200" />
- <el-button type="primary" class="ml20" @click="getList()">鏌ヨ</el-button>
- <el-button class="ml20" @click="clear">閲嶇疆</el-button>
+ <div class="mb20 main_header">
+ <div class="platgroup_tabs">
+ <div
+ class="tab"
+ :class="{ active: activeGroup.id === item.id }"
+ @click="platgroupClick(item)"
+ v-for="(item, i) in PlatGroupList"
+ :key="i"
+ >
+ {{ item.name }}
+ </div>
</div>
- <!-- -->
- <div class="platform_list">
- <div class="item" v-for="i in 2">
- <div class="head">
- <div class="name">6鍙锋湀鍙�</div>
- <div class="status">
- <span class="green">浣滀笟涓�</span>
- <span class="">浣滀笟锛�1</span>
- <span>鍙彿锛�1</span>
- <span>绛夊緟锛�1</span>
- <span class="red">寮傚父锛�1</span>
- </div>
- <!-- <el-button type="primary">鍙彿</el-button> -->
- </div>
- <div class="info" v-for="j in 3">
- <div class="line">
- <div class="left">
- <span class="plate mr20">鐨朅12122</span>
- <span class="placeholder9">椹鹃┒鍛�</span>
- <span>鐜嬫煇鏌�</span>
- <span>18888888888</span>
- </div>
- <div class="right">
- <span class="green">浣滀笟涓�</span>
- <span class="placeholder9 ml20">浣滀笟鏃堕暱锛�23鍒嗛挓26绉�</span>
- </div>
- </div>
- <div class="line">
- <div class="left">
- <div>
- <span>杩愯緭鍗曞彿</span
- ><span class="ml10 placeholder9">1231231</span>
- </div>
- <div>
- <span>鎬昏繍杈撻噺</span
- ><span class="ml10 placeholder9">3000涓囨敮</span
- ><span class="primaryColor ml10 pointer">杩愬崟璇︽儏</span>
- </div>
- </div>
- </div>
- </div>
- </div>
</div>
- <!-- 閰嶇疆鏄剧ず鏈堝彴 -->
- <el-dialog
- title="閰嶇疆鏄剧ず鏈堝彴"
- :visible.sync="isShowSet"
- center
- width="420px"
- >
- <div class="set_modal">
- <div class="mb20">
- <div class="title">鍏ュ簱鏈堝彴缁�</div>
- <div class="list">
- <div class="item">1鍙锋湀鍙�</div>
- <div class="item">2鍙锋湀鍙�</div>
- <div class="item">1鍙锋湀鍙�</div>
- <div class="item">2鍙锋湀鍙�</div>
- </div>
- </div>
- <div>
- <div class="title">鍏ュ簱鏈堝彴缁�</div>
- <div class="list">
- <div class="item">1鍙锋湀鍙�</div>
- <div class="item">2鍙锋湀鍙�</div>
- <div class="item">1鍙锋湀鍙�</div>
- <div class="item">2鍙锋湀鍙�</div>
- </div>
- </div>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="setReset">閲嶇疆</el-button>
- <el-button type="primary" @click="setSub">纭畾</el-button>
- </span>
- </el-dialog>
- <!-- 杩愬崟璇︽儏 -->
- <el-dialog
- title="閰嶇疆鏄剧ず鏈堝彴"
- :visible.sync="isShowSet"
- center
- width="420px"
- >
- <div class="set_modal">
- <div class="mb20">
- <div class="title">鍏ュ簱鏈堝彴缁�</div>
- <div class="list">
- <div class="item">1鍙锋湀鍙�</div>
- <div class="item">2鍙锋湀鍙�</div>
- <div class="item">1鍙锋湀鍙�</div>
- <div class="item">2鍙锋湀鍙�</div>
- </div>
- </div>
- <div>
- <div class="title">鍏ュ簱鏈堝彴缁�</div>
- <div class="list">
- <div class="item">1鍙锋湀鍙�</div>
- <div class="item">2鍙锋湀鍙�</div>
- <div class="item">1鍙锋湀鍙�</div>
- <div class="item">2鍙锋湀鍙�</div>
- </div>
- </div>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="setReset">閲嶇疆</el-button>
- <el-button type="primary" @click="setSub">纭畾</el-button>
- </span>
- </el-dialog>
</div>
</template>
<script>
+import {
+ getPlatformGroupList
+} from '@/api'
export default {
data () {
return {
filters: {},
- platformList: [],
+ activeGroup: {},
+ PlatGroupList: [],
isShowSet: false, // 鏈堝彴閰嶇疆
setParam: {},
@@ -131,7 +33,26 @@
detail: {}
}
},
+ created () {
+ this.getPlatGroupList()
+ },
methods: {
+ getPlatGroupList () {
+ getPlatformGroupList({
+ queryData: 1,
+ queryType: 1
+ }).then(res => {
+ this.PlatGroupList = res || []
+ if (this.activeGroup && this.activeGroup.id) {
+ this.activeGroup = res.find(item => item.id === this.activeGroup.id)
+ } else {
+ this.activeGroup = res[0]
+ }
+ })
+ },
+ platgroupClick (item) {
+ this.activeGroup = { ...item }
+ },
getList () { },
clear () { }
}
@@ -139,75 +60,24 @@
</script>
<style lang="scss" scoped>
-.platform_list {
- .item {
- padding: 16px 24px;
- border-radius: 2px;
- border: 2px solid #cccccc;
- margin-bottom: 12px;
- .head {
- display: flex;
- justify-content: space-between;
- .name {
- font-size: 16px;
- }
- .status {
- flex: 1;
- margin-left: 50px;
- span {
- margin-right: 30px;
- }
- }
- }
- .info {
- margin-top: 10px;
- border: 1px solid #999999;
- padding: 6px 8px;
- border-radius: 2px;
- margin-bottom: 10px;
- .line {
- display: flex;
- align-items: center;
- justify-content: space-between;
- margin-bottom: 6px;
- .left {
- .plate {
- border: 1px solid #4969f6;
- border-radius: 2px;
- padding: 0 5px;
- }
- }
- .right {
- display: flex;
- align-items: center;
- }
- }
- }
- }
-}
-
-/* */
-.set_modal {
- .title {
- font-size: 16px;
- font-weight: 600;
- margin-bottom: 16px;
- }
- .list {
+@import "@/assets/style/variables.scss";
+.main_header {
+ .platgroup_tabs {
+ flex: 1;
display: flex;
- justify-content: space-between;
- flex-wrap: wrap;
- .item {
+ border-bottom: 1px solid #dfe2e8;
+ .tab {
+ color: #666666;
+ margin-right: 40px;
cursor: pointer;
- width: 30%;
- height: 32px;
- background-color: #d9d9d9;
- border: 1px solid #4d99a7;
- display: flex;
- justify-content: center;
- align-items: center;
- border-radius: 6px;
- margin-bottom: 12px;
+ padding-bottom: 18px;
+ border-bottom: 2px solid #fff;
+ }
+ .active {
+ font-weight: 500;
+ font-size: 15px;
+ color: #222222;
+ border-bottom: 2px solid $primary-color;
}
}
}
diff --git a/h5/App.vue b/h5/App.vue
index fbec5c3..137957d 100644
--- a/h5/App.vue
+++ b/h5/App.vue
@@ -125,6 +125,9 @@
color: #999999 !important;
font-size: 28rpx;
}
+.red{
+ color: red !important;
+}
//璁剧疆鍦嗚
checkbox .uni-checkbox-input {
@@ -225,6 +228,9 @@
.ml12 {
margin-left: 12rpx;
}
+.ml6 {
+ margin-left: 6rpx;
+}
.mt6 {
margin-top: 6rpx;
}
diff --git a/h5/api/driver.js b/h5/api/driver.js
index 99bc2ca..22aaa04 100644
--- a/h5/api/driver.js
+++ b/h5/api/driver.js
@@ -96,4 +96,20 @@
method: 'post',
data
})
+}
+// 浠诲姟纭
+export const driverConfirmTask = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/driverPlatform/confirmTask',
+ method: 'post',
+ data
+ })
+}
+// 浠诲姟绛惧埌
+export const driverSignInTask = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/driverPlatform/signIn',
+ method: 'post',
+ data
+ })
}
\ No newline at end of file
diff --git a/h5/main.js b/h5/main.js
index 41c035c..8a3b147 100644
--- a/h5/main.js
+++ b/h5/main.js
@@ -16,12 +16,14 @@
Vue.component('navigation', navigation)
Vue.prototype.$store = store
Vue.prototype.$jump = (url) => {uni.navigateTo({url})}
-Vue.prototype.$goBack = () => { uni.navigateBack() }
+Vue.prototype.$goBack = () => { setTimeout(() => {uni.navigateBack()},300) }
Vue.prototype.showToast = (str) => {
- uni.showToast({
- title: str,
- icon: 'none',
- duration: 2000
+ setTimeout(() => {
+ uni.showToast({
+ title: str,
+ icon: 'none',
+ duration: 2000
+ })
})
}
Vue.prototype.$eventBus = new Vue()
diff --git a/h5/manifest.json b/h5/manifest.json
index 22a90b7..ad55f2c 100644
--- a/h5/manifest.json
+++ b/h5/manifest.json
@@ -92,7 +92,7 @@
"/admin_interface" : {
// 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
// "target" : "http://192.168.0.173/admin_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
- "target" : "http://192.168.0.135:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ "target" : "http://192.168.0.139:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
"changeOrigin" : true, // 鍏佽璺ㄥ煙
"pathRewrite" : {
"^/admin_interface" : "" // 閲嶅啓鍦板潃锛屽鏋滃疄闄呮帴鍙d腑鏄笉甯�/dev-api锛岄渶瑕佸皢杩欎釜鍓嶇紑缃┖锛屽洜涓鸿繖涓墠缂�鍙槸涓轰簡璇嗗埆鐢紝璇嗗埆瀹屼箣鍚庡氨娌$敤浜�
diff --git a/h5/pages/driver/forgetPsd.vue b/h5/pages/driver/forgetPsd.vue
index 7512424..2330ee2 100644
--- a/h5/pages/driver/forgetPsd.vue
+++ b/h5/pages/driver/forgetPsd.vue
@@ -7,7 +7,7 @@
<view class="login_list">
<view class="login_list_item">
<image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
- <input v-model="form.phone" maxlength="18" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
+ <input v-model="form.phone" :maxlength="11" placeholder="璇疯緭鍏ユ墜鏈哄彿" />
</view>
<view class="login_list_item">
<image src="@/static/ic_captcha.png" mode="widthFix"></image>
@@ -55,7 +55,10 @@
}
},
- onLoad() {
+ onLoad(option) {
+ if(option.phone){
+ this.$set(this.form, 'phone', option.phone)
+ }
},
methods: {
@@ -102,16 +105,12 @@
...form
}).then(res => {
if (res && res.code == 200) {
+ this.showToast('瀵嗙爜淇敼鎴愬姛,璇烽噸鏂扮櫥褰�')
setTimeout(() => {
- uni.showToast({
- title: '瀵嗙爜淇敼鎴愬姛,璇烽噸鏂扮櫥褰�',
- icon: 'success',
- duration: 2000
- })
- })
- uni.redirectTo({
- url: "/pages/staffLogin/login"
- })
+ uni.redirectTo({
+ url: "/pages/driver/login"
+ })
+ }, 500)
}
})
}
diff --git a/h5/pages/driver/index.vue b/h5/pages/driver/index.vue
index 43cd875..f8350f4 100644
--- a/h5/pages/driver/index.vue
+++ b/h5/pages/driver/index.vue
@@ -11,9 +11,9 @@
<image class="banner" src="../../static/driver/wuliuche_banner@2x.png" mode="widthFix"></image>
</view>
<!-- -->
- <view class="task_list">
+ <view v-if="taskList && taskList.length > 0" class="task_list">
<swiper circular class="task_swiper">
- <swiper-item v-for="item in taskList" :key="item.id">
+ <swiper-item v-for="item in taskList" :key="item.id" @click="taskClick(item)">
<view class="item">
<view class="head">
<view class="name">杩愯緭鍗晎{ item.contractNum }}</view>
@@ -41,9 +41,9 @@
</view>
<view class="sub">
<view class="time" v-if="item.arriveDate">{{ item.arriveDate.slice(5) }}</view>
- <view v-if="item.status == 0" class="sub_btn" @click="handleTask(item)">纭浠诲姟</view>
- <view v-if="item.status == 1" class="sub_btn" @click="handleSign(item)">绔嬪嵆绛惧埌</view>
- <view v-if="item.status == 2" class="sub_btn" @click="handleQueup(item)">鏌ョ湅鎺掗槦</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">鏌ョ湅鎺掗槦</view>
</view>
</view>
</view>
@@ -101,22 +101,17 @@
};
},
- created() {
+ onShow() {
this.initData();
},
methods: {
- handleSign(item) {
- uni.navigateTo({
- url: '/pages/driver/taskDetail?id=' + item.id
- });
- },
- handleQueup(item) {},
initData() {
driverHomeData().then(res => {
if (res.code == 200) {
uni.setStorageSync('driverGuide', {
bookingTips: res.data.bookingTips,
- reservationMap: res.data.reservationMap
+ reservationMap: res.data.reservationMap,
+ signDistance: res.data.signDistance
});
this.taskList = res.data.platformJobList || []
}
@@ -129,16 +124,32 @@
url: '/pages/driver/login'
});
},
- handleTask(status) {
- if (status == 1) {
- return uni.navigateTo({
- url: '/pages/driver/taskDetail'
- });
+ taskClick(item) {
+ const status = item.status
+ console.log(item);
+ if(status == 0){
+ uni.navigateTo({url: '/pages/driver/taskConfirm?id=' + item.id});
+ }else if(status == 2){
+ uni.navigateTo({url:'/pages/driver/queueUp?jobId=' + item.id})
+ }else{
+ uni.navigateTo({url: `/pages/driver/taskDetail?id=${item.id}&status=${item.status}`});
}
+ },
+ handleTask(item) {
uni.navigateTo({
- url: '/pages/driver/taskConfirm'
+ url: '/pages/driver/taskConfirm?id=' + item.id
});
- }
+ },
+ handleSign(item) {
+ uni.navigateTo({
+ url: `/pages/driver/taskDetail?id=${item.id}&status=${item.status}`
+ });
+ },
+ handleQueue(item) {
+ uni.navigateTo({
+ url:'/pages/driver/queueUp?jobId=' + item.id
+ })
+ },
}
};
</script>
@@ -175,7 +186,7 @@
position: relative;
width: 688rpx;
height: 270rpx;
- margin-bottom: 40rpx;
+ margin-bottom: 28rpx;
.h1 {
font-weight: bold;
line-height: 66rpx;
@@ -249,17 +260,17 @@
}
}
.task_list {
- margin-bottom: 48rpx;
+ margin-bottom: 0rpx;
.task_swiper {
- padding: 16rpx 10rpx;
- height: 320rpx;
+ padding: 12rpx 10rpx;
+ height: 340rpx;
width: 730rpx;
margin-left: -20rpx;
box-sizing: border-box;
}
.item {
background: #ffffff;
- box-shadow: 0rpx 0rpx 12rpx 0rpx rgba(39, 155, 170, 0.32);
+ box-shadow: 0rpx 6rpx 24rpx 0rpx rgba(39, 155, 170, 0.32);
border-radius: 16rpx;
height: 280rpx;
width: 98%;
diff --git a/h5/pages/driver/login.vue b/h5/pages/driver/login.vue
index 1372f80..2ea23f3 100644
--- a/h5/pages/driver/login.vue
+++ b/h5/pages/driver/login.vue
@@ -57,7 +57,7 @@
},
handleSetPsd() {
uni.navigateTo({
- url: "/pages/driver/forgetPsd"
+ url: "/pages/driver/forgetPsd?phone=" + this.form.username
})
},
dealChange(e) {
diff --git a/h5/pages/driver/queueUp.vue b/h5/pages/driver/queueUp.vue
index 2b13d91..eed4c69 100644
--- a/h5/pages/driver/queueUp.vue
+++ b/h5/pages/driver/queueUp.vue
@@ -1,15 +1,19 @@
<template>
<view class="main_app">
<view class="main_name">
- <text class="mr12">鐗╂祦鍏ュ簱鏈堝彴</text>
+ <text class="mr12" @click="showPlat = true">{{
+ activePlatform.name
+ }}</text>
<u-icon name="arrow-down" color="#777777"></u-icon>
</view>
<!-- -->
<view class="main_list">
- <view class="item" @click="handleCheck()">
+ <view class="item" @click="handleCheck(1)">
<view class="h1">浣滀笟涓溅杈�</view>
<view class="h2">
- <text>4</text>
+ <text v-if="activePlatform.signJobList">{{
+ activePlatform.workJobList.length
+ }}</text>
<text class="unit">杈�</text>
</view>
<image
@@ -18,10 +22,12 @@
mode=""
></image>
</view>
- <view class="item cyan">
- <view class="h1">浣滀笟涓溅杈�</view>
+ <view class="item cyan" @click="handleCheck(0)">
+ <view class="h1">宸茬鍒拌溅杈�</view>
<view class="h2">
- <text>4</text>
+ <text v-if="activePlatform.workJobList">{{
+ activePlatform.signJobList.length
+ }}</text>
<text class="unit">杈�</text>
</view>
<image
@@ -31,31 +37,61 @@
></image>
</view>
</view>
+
+ <u-picker
+ :show="showPlat"
+ keyName="name"
+ :columns="[platformGroupList]"
+ @cancel="showPlat = false"
+ @confirm="platConfirm"
+ ></u-picker>
</view>
</template>
<script>
- import { driverLineUpDetail } from '@/api'
+import { driverLineUpDetail } from '@/api'
export default {
data() {
return {
-
+ activePlatform: {},
+ platformGroupList: [],
+ showPlat: false,
+ jobId: ''
}
},
- onLoad() {
- this.getData()
- },
+ onLoad(option) {
+ this.jobId = option.jobId
+ this.getData(option.jobId || '')
+ },
methods: {
- getData() {
- driverLineUpDetail({
- mobile: uni.getStorageSync('driverInfo').mobile,
- queryType: 0
- })
- },
- handleCheck() {
- uni.navigateTo({
- url: "/pages/driver/queueUpRecord"
+ getData(jobId) {
+ driverLineUpDetail({
+ mobile: jobId ? '' : uni.getStorageSync('driverInfo').mobile,
+ queryType: jobId ? 1 : 0,
+ jobId: jobId
+ }).then(res => {
+ this.platformGroupList = res.data.platformGroupList
+ if (res.data && res.data.platformGroupList && res.data.platformGroupList.length > 0) {
+ this.activePlatform = res.data.platformGroupList[0]
+ }
})
+ },
+ platConfirm(e) {
+ const index = e.indexs[0]
+ this.activePlatform = this.platformGroupList[index]
+ this.showPlat = false
+ },
+ handleCheck(type) {
+ if(this.jobId){
+ uni.navigateTo({
+ url: `/pages/driver/queueUpRecord?type=${type}&platformId=${this.activePlatform.id}&jobId=${this.jobId}`
+ })
+ }else{
+ uni.navigateTo({
+ url: `/pages/driver/queueUpRecord?type=${type}&platformId=${this.activePlatform.id}`
+ })
+ }
+
}
}
}
diff --git a/h5/pages/driver/queueUpRecord.vue b/h5/pages/driver/queueUpRecord.vue
index 000730d..de92b96 100644
--- a/h5/pages/driver/queueUpRecord.vue
+++ b/h5/pages/driver/queueUpRecord.vue
@@ -1,147 +1,193 @@
<template>
- <view class="main_app">
- <view class="main_name">
- <text class="mr12">鐗╂祦鍏ュ簱鏈堝彴</text>
- <u-icon name="arrow-down" color="#777777"></u-icon>
- </view>
- <!-- -->
- <view class="main_list">
- <view class="item">
- <view class="status">浣滀笟涓�</view>
- <image
- class="avatar"
- src="@/static/driver/ic_truck@2x.png"
- mode=""
- ></image>
- <view class="content">
- <view class="id_card">鐨朅</view>
- <view class="line">
- <view class="address">4鍙锋湀鍙�</view>
- <view class="time">
- <u-icon class="mr6" name="clock" color="#4d98a8"></u-icon>
- <text>01:02:02</text>
- </view>
- </view>
- </view>
- </view>
- <view class="item active">
- <view class="status padding">浣滀笟涓�</view>
- <view class="me">鎴�</view>
- <image
- class="avatar"
- src="@/static/driver/ic_truck@2x.png"
- mode=""
- ></image>
- <view class="content">
- <view class="id_card">鐨朅</view>
- <view class="line">
- <view class="address">4鍙锋湀鍙�</view>
- <view class="time">
- <u-icon class="mr6" name="clock" color="#4d98a8"></u-icon>
- <text>01:02:02</text>
- </view>
- </view>
- </view>
- </view>
- </view>
- </view>
+ <view class="main_app">
+ <view class="main_name">
+ <text class="mr12">{{ platformObj.name }}</text>
+ <!-- <u-icon name="arrow-down" color="#777777"></u-icon> -->
+ </view>
+ <!-- -->
+ <view class="main_list">
+ <view class="item" :class="{ active: item.driverId == driverInfo.memberId }" v-for="item in dataList" :key="item.id">
+ <view class="status padding" v-if="item.status == 2">鎺掗槦涓�</view>
+ <view class="status" v-else :class="{ padding: item.status != 5 }">{{ statusMap[item.status] }}</view>
+ <view v-if="item.driverId == driverInfo.memberId" class="me">鎴�</view>
+ <image v-if="item.driverId == driverInfo.memberId" class="avatar" src="@/static/driver/ic_truck_mine@2x.png" mode=""></image>
+ <image v-else class="avatar" src="@/static/driver/ic_truck@2x.png" mode=""></image>
+ <view class="content">
+ <view class="id_card" v-if="item.carCodeFront">{{ item.carCodeFront.slice(0, 4) }}**{{ item.carCodeFront.slice(6) }}</view>
+ <view class="line">
+ <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>
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
</template>
<script>
+import { driverLineUpDetail } from '@/api';
+import { statusMap } from '@/utils/config.js';
+import dayjs from 'dayjs';
+import duration from 'dayjs/plugin/duration'
+dayjs.extend(duration)
export default {
- data() {
- return {
-
- }
- }
-}
+ data() {
+ return {
+ statusMap,
+ platformId: '',
+ type: '',
+ dataList: [],
+ platformObj: {},
+ driverInfo: uni.getStorageSync('driverInfo')
+ };
+ },
+ onLoad(option) {
+ this.type = option.type;
+ this.platformId = option.platformId;
+ this.getData(option.jobId || '');
+ },
+ methods: {
+ getData(jobId) {
+ const { platformId, type } = this;
+ driverLineUpDetail({
+ mobile: jobId ? '' : uni.getStorageSync('driverInfo').mobile,
+ queryType: jobId ? 1 : 0,
+ jobId: jobId
+ }).then(res => {
+ this.platformGroupList = res.data.platformGroupList;
+ if (res.data && res.data.platformGroupList && res.data.platformGroupList.length > 0) {
+ res.data.platformGroupList.forEach(item => {
+ if (item.id == platformId) {
+ this.platformObj = { ...item };
+ if (type == 0) {
+ this.dataList = item.signJobList;
+ } else {
+ this.dataList = item.workJobList;
+ }
+ this.circulInitTaskList()
+ setInterval(() => {
+ this.circulInitTaskList()
+ }, 1000)
+ }
+ });
+ }
+ });
+ },
+ circulInitTaskList() {
+ let time = new Date();
+ this.dataList.forEach(item => {
+ if (item.callDate) {
+ let timeNum = time.getTime() - new Date(item.callDate).getTime();
+ if (timeNum > 3600000) {
+ item.callDateTemp = dayjs.duration(timeNum).format('HH:mm:ss');
+ } else {
+ item.callDateTemp = dayjs.duration(timeNum).format('mm:ss');
+ }
+ }
+ if (item.startDate) {
+ let timeNum = time.getTime() - new Date(item.startDate).getTime();
+ if (timeNum > 3600000) {
+ item.startDateTemp = dayjs.duration(timeNum).format('HH:mm:ss');
+ } else {
+ item.startDateTemp = dayjs.duration(timeNum).format('mm:ss');
+ }
+ }
+ });
+ this.$forceUpdate();
+ }
+ }
+};
</script>
<style lang="scss">
page {
- background-color: #f7f7f7;
+ background-color: #f7f7f7;
}
.main_app {
- .main_name {
- display: flex;
- justify-content: center;
- align-items: center;
- height: 104rpx;
- font-weight: 600;
- font-size: 32rpx;
- color: #111111;
- background-color: #fff;
- margin: 0 -30rpx 20rpx;
- }
- .main_list {
- .item {
- display: flex;
- align-items: center;
- position: relative;
- padding: 30rpx;
- background-color: #fff;
- margin-bottom: 20rpx;
- border-radius: 8rpx;
- .status {
- position: absolute;
- top: 0;
- right: 0;
- height: 50rpx;
- line-height: 50rpx;
- padding: 0 20rpx;
- background: $uni-color-primary;
- color: #fff;
- font-size: 26rpx;
- border-radius: 0rpx 8rpx 0rpx 25rpx;
- }
- .me {
- position: absolute;
- top: 0;
- left: 0;
- background: #00ba67;
- border-radius: 8rpx 0rpx 8rpx 0rpx;
- height: 42rpx;
- line-height: 42rpx;
- width: 64rpx;
- text-align: center;
- color: #fff;
- font-size: 24rpx;
- z-index: 11;
- }
- .padding {
- background: #e9f5f6;
- color: $uni-color-primary;
- }
- .avatar {
- width: 84rpx;
- height: 84rpx;
- margin-right: 20rpx;
- }
- .content {
- flex: 1;
- .id_card {
- font-weight: 600;
- font-size: 30rpx;
- color: #111111;
- }
- .line {
- display: flex;
- justify-content: space-between;
- align-items: center;
- font-size: 26rpx;
- color: #999999;
- margin-top: 6rpx;
- .time {
- display: flex;
- align-items: center;
- color: $uni-color-primary;
- }
- }
- }
- }
- .active {
- background: linear-gradient(270deg, #ffffff 0%, #e1f7fe 100%);
- }
- }
+ .main_name {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 104rpx;
+ font-weight: 600;
+ font-size: 32rpx;
+ color: #111111;
+ background-color: #fff;
+ margin: 0 -30rpx 20rpx;
+ }
+ .main_list {
+ .item {
+ display: flex;
+ align-items: center;
+ position: relative;
+ padding: 30rpx;
+ background-color: #fff;
+ margin-bottom: 20rpx;
+ border-radius: 8rpx;
+ .status {
+ position: absolute;
+ top: 0;
+ right: 0;
+ height: 50rpx;
+ line-height: 50rpx;
+ padding: 0 20rpx;
+ background: $uni-color-primary;
+ color: #fff;
+ font-size: 26rpx;
+ border-radius: 0rpx 8rpx 0rpx 25rpx;
+ }
+ .me {
+ position: absolute;
+ top: 0;
+ left: 0;
+ background: #00ba67;
+ border-radius: 8rpx 0rpx 8rpx 0rpx;
+ height: 42rpx;
+ line-height: 42rpx;
+ width: 64rpx;
+ text-align: center;
+ color: #fff;
+ font-size: 24rpx;
+ z-index: 11;
+ }
+ .padding {
+ background: #e9f5f6;
+ color: $uni-color-primary;
+ }
+ .avatar {
+ width: 84rpx;
+ height: 84rpx;
+ margin-right: 20rpx;
+ background-color: #fff;
+ }
+ .content {
+ flex: 1;
+ .id_card {
+ font-weight: 500;
+ font-size: 30rpx;
+ color: #111111;
+ }
+ .line {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ font-size: 26rpx;
+ color: #999999;
+ margin-top: 6rpx;
+ .time {
+ display: flex;
+ align-items: center;
+ color: $uni-color-primary;
+ }
+ }
+ }
+ }
+ .active {
+ background: linear-gradient(270deg, #ffffff 0%, #e1f7fe 100%);
+ }
+ }
}
</style>
diff --git a/h5/pages/driver/register.vue b/h5/pages/driver/register.vue
index 89fe60a..3221f3a 100644
--- a/h5/pages/driver/register.vue
+++ b/h5/pages/driver/register.vue
@@ -102,16 +102,12 @@
...form
}).then(res => {
if (res && res.code == 200) {
+ this.showToast('娉ㄥ唽鎴愬姛,璇峰墠寰�鐧诲綍')
setTimeout(() => {
- uni.showToast({
- title: '娉ㄥ唽鎴愬姛,璇峰墠寰�鐧诲綍',
- icon: 'none',
- duration: 2000
- })
- })
- uni.redirectTo({
- url: "/pages/driver/login"
- })
+ uni.redirectTo({
+ url: "/pages/driver/login"
+ })
+ }, 500)
}
})
}
diff --git a/h5/pages/driver/reserved.vue b/h5/pages/driver/reserved.vue
index 3477489..0683f0f 100644
--- a/h5/pages/driver/reserved.vue
+++ b/h5/pages/driver/reserved.vue
@@ -211,12 +211,14 @@
this.$forceUpdate();
this.closeInput();
},
+ closeInput() {
+ this.$refs.keyboard.close();
+ },
copy(){
if(this.param.carCodeFront){
this.$set(this.param, 'carCodeBack', this.param.carCodeFront)
this.showToast('澶嶅埗鎴愬姛');
}
-
},
handleUpload() {
let token = uni.getStorageSync('token') || ''
@@ -260,9 +262,6 @@
}
})
},
- closeInput() {
- this.$refs.keyboard.close();
- }
}
};
</script>
diff --git a/h5/pages/driver/reservedDetail.vue b/h5/pages/driver/reservedDetail.vue
index bf1c851..2b90caa 100644
--- a/h5/pages/driver/reservedDetail.vue
+++ b/h5/pages/driver/reservedDetail.vue
@@ -3,7 +3,9 @@
<view class="status_wrap">
<view class="name">{{info.driverName}}鐨勫叆鍥绾�</view>
<view class="desc">{{info.carCodeFront}}</view>
- <view class="status">{{ statusMap[info.status] }}</view>
+ <view class="status" v-if="info.status != 2 && info.status != 3">{{ statusMap[info.status] }}</view>
+ <image v-if="info.status == 2" class="icon" src="../../static/ic_passed@2x.png" mode=""></image>
+ <image v-if="info.status == 3" class="icon" src="../../static/ic_refused@2x.png" mode=""></image>
</view>
<!-- -->
<view class="emyty"></view>
@@ -123,8 +125,8 @@
statusMap: {
0: '寰呭鎵�',
1: '瀹℃壒涓�',
- 2: '瀹℃壒閫氳繃',
- 3: '瀹℃壒涓嶉�氳繃',
+ 2: '宸查�氳繃',
+ 3: '宸叉嫆缁�',
4: '宸插彇娑�',
},
}
@@ -348,7 +350,6 @@
.status_wrap {
position: relative;
padding: 30rpx 0;
-
.name {
font-weight: 600;
font-size: 32rpx;
@@ -372,6 +373,15 @@
background-color: #e9edff;
color: $uni-color-primary;
}
+ .icon{
+ width: 120rpx;
+ height: 120rpx;
+ border-radius: 50%;
+ position: absolute;
+ right: 0rpx;
+ top: 20rpx;
+
+ }
}
.main_footer {
diff --git a/h5/pages/driver/reservedRecord.vue b/h5/pages/driver/reservedRecord.vue
index 0d19bd6..fd44113 100644
--- a/h5/pages/driver/reservedRecord.vue
+++ b/h5/pages/driver/reservedRecord.vue
@@ -10,7 +10,7 @@
>
<view class="box_list_item_head">
<text>{{item.driverName}}鐨勫叆鍥绾�</text>
- <text class="loading">{{ statusMap[item.status] }}</text>
+ <text class="loading" :class="{red: item.status == 3}">{{ statusMap[item.status] }}</text>
</view>
<view class="box_list_item_nr">
<view class="box_list_item_nr_item">
@@ -53,8 +53,8 @@
statusMap: {
0: '寰呭鎵�',
1: '瀹℃壒涓�',
- 2: '瀹℃壒閫氳繃',
- 3: '瀹℃壒涓嶉�氳繃',
+ 2: '宸查�氳繃',
+ 3: '宸叉嫆缁�',
4: '宸插彇娑�',
}
}
diff --git a/h5/pages/driver/taskConfirm.vue b/h5/pages/driver/taskConfirm.vue
index 592c807..dd156a3 100644
--- a/h5/pages/driver/taskConfirm.vue
+++ b/h5/pages/driver/taskConfirm.vue
@@ -1,448 +1,461 @@
<template>
- <view class="main_app">
- <view class="status_wrap">
- <image
- class="bg"
- src="../../static/driver/bg_renwu@2x.png"
- mode=""
- ></image>
- <view class="name">浣滀笟宸插畬鎴�</view>
- <view class="id_card">鐨朅D1212</view>
- <view class="status">浣滀笟瀹屾垚</view>
- </view>
- <!-- -->
- <view class="main_content">
- <view class="line">
- <view class="label">鍙告満濮撳悕</view>
- <view class="value">鍒樻煇</view>
- </view>
- <view class="line">
- <view class="label">鎵嬫満鍙�</view>
- <view class="value">188</view>
- </view>
- <view class="line">
- <view class="label">杩愯緭鍗曞彿</view>
- <view class="value" @click="showDetail = true">
- <text class="waybill_num">Y111</text>
- <text class="btn">杩愬崟璇︽儏</text>
- </view>
- </view>
- <view class="line">
- <view class="label">浣滀笟绫诲瀷</view>
- <view class="value">鍏ュ洯瑁呰揣</view>
- </view>
- <view class="empty"></view>
- <!-- -->
- <view class="line">
- <view class="label">杞﹀墠鐗岀収鍙�</view>
- <view class="value" @click="openInput(1)">
- <text :style="{ color: param.carNos ? '#000000' : '#999999' }">{{
- param.carNos ? param.carNos : "璇疯緭鍏ヨ溅鍓嶇墝鐓у彿"
- }}</text>
- </view>
- </view>
- <view class="line">
- <view class="label">杞﹀悗鐗岀収鍙�</view>
- <view class="value">
- <text
- @click="openInput(1)"
- :style="{ color: param.carNos ? '#000000' : '#999999' }"
- >{{ param.carNos ? param.carNos : "璇疯緭鍏ヨ溅鍚庣墝鐓у彿" }}</text
- >
- <text class="copy">澶嶅埗杞﹀墠鐗岀収鍙�</text>
- </view>
- </view>
- <!-- -->
- </view>
- <view class="space"></view>
- <!-- 绛夊緟鍙彿 -->
- <view class="sub_wrap">
- <view class="btn check">纭浠诲姟</view>
- </view>
+ <view class="main_app">
+ <view class="status_wrap">
+ <image class="bg" src="../../static/driver/bg_renwu@2x.png" mode=""></image>
+ <view class="name">璇风‘璁や换鍔�</view>
+ <view class="id_card">{{ param.carCodeFront }}</view>
+ <view class="status">浠诲姟寰呯‘璁�</view>
+ </view>
+ <!-- -->
+ <view class="main_content">
+ <view class="line">
+ <view class="label">鍙告満濮撳悕</view>
+ <view class="value">{{ param.driverName }}</view>
+ </view>
+ <view class="line">
+ <view class="label">鎵嬫満鍙�</view>
+ <view class="value">{{ param.drivierPhone }}</view>
+ </view>
+ <view class="line">
+ <view class="label">杩愯緭鍗曞彿</view>
+ <view class="value" @click="showDetail = true">
+ <text class="waybill_num">{{ param.contractNum }}</text>
+ <text class="btn">杩愬崟璇︽儏</text>
+ </view>
+ </view>
+ <view class="line">
+ <view class="label">浣滀笟绫诲瀷</view>
+ <view class="value">{{ param.inType == 0 ? '鏁存墭鐩�' : '浠剁儫' }}</view>
+ </view>
+ <view class="empty"></view>
+ <!-- -->
+ <view class="line">
+ <view class="label">鍒板満鏃ユ湡<text class="red ml6">*</text></view>
+ <view class="value" @click="showDate = true">
+ <view :class="param.date ? '' : 'placeholder9'">{{ param.date ? param.date : '璇烽�夋嫨' }}</view>
+ <u-icon color="#999999" name="arrow-right"></u-icon>
+ </view>
+ </view>
+ <view class="line">
+ <view class="label">杞﹀墠鐗岀収鍙�</view>
+ <view class="value" @click="openInput(1)">
+ <text :style="{ color: param.carCodeFront ? '#000000' : '#999999' }">{{ param.carCodeFront ? param.carCodeFront : '璇疯緭鍏ヨ溅鍓嶇墝鐓у彿' }}</text>
+ </view>
+ </view>
+ <view class="line">
+ <view class="label">杞﹀悗鐗岀収鍙�<text class="red ml6">*</text></view>
+ <view class="value">
+ <text @click="openInput(2)" :style="{ color: param.carCodeBack ? '#000000' : '#999999' }">{{ param.carCodeBack ? param.carCodeBack : '璇疯緭鍏ヨ溅鍚庣墝鐓у彿' }}</text>
+ <text class="copy" @click="copy">澶嶅埗杞﹀墠鐗岀収鍙�</text>
+ </view>
+ </view>
+ <!-- -->
+ </view>
+ <view class="space"></view>
+ <!-- 绛夊緟鍙彿 -->
+ <view class="sub_wrap"><view class="btn check" @click="onSubmit">纭浠诲姟</view></view>
- <!-- modal -->
- <u-popup
- :show="showDetail"
- :round="10"
- :safeAreaInsetBottom="true"
- closeOnClickOverlay
- :closeable="true"
- mode="bottom"
- @close="showDetail = false"
- >
- <view class="detail_modal">
- <view class="modal_title">杩愬崟璇︽儏</view>
- <view class="id_card">
- <view class="last">鐨�</view>
- <view class="name">AD1111</view>
- </view>
- <!-- -->
- <view class="info">
- <view class="line">
- <view class="label">杩愯緭鍗曞彿</view>
- <view class="value">2222</view>
- </view>
- <view class="line">
- <view class="label">椹鹃┒鍛�</view>
- <view class="value">2222</view>
- </view>
- <view class="line">
- <view class="label">鎬昏繍杈撻噺</view>
- <view class="value">2222</view>
- </view>
- <view class="line">
- <view class="label">杩愯緭鍏徃</view>
- <view class="value">2222</view>
- </view>
- </view>
- <view class="separate"></view>
- <view class="contract_list">
- <view class="title">鍚堝悓鍙凤細111</view>
- <view class="address">aadd</view>
- <view class="list">
- <view class="line">
- <view class="label">鐗╂枡锛�</view>
- <view class="value">榛勫北榛戦┈</view>
- </view>
- <view class="line">
- <view class="label">鏁伴噺锛�</view>
- <view class="value">榛勫北榛戦┈</view>
- </view>
- <view class="line">
- <view class="label">鐗╂枡锛�</view>
- <view class="value">榛勫北榛戦┈</view>
- </view>
- <view class="line">
- <view class="label">鏁伴噺锛�</view>
- <view class="value">榛勫北榛戦┈</view>
- </view>
- </view>
- </view>
- </view>
- </u-popup>
- <keyboardInput ref="keyboard" @export="setPlate" @close="closeInput" />
- </view>
- <!-- -->
+ <!-- modal -->
+ <u-popup :show="showDetail" :round="10" :safeAreaInsetBottom="true" closeOnClickOverlay :closeable="true" mode="bottom" @close="showDetail = false">
+ <view class="detail_modal">
+ <view class="modal_title">杩愬崟璇︽儏</view>
+ <view class="id_card">
+ <view class="last">鐨�</view>
+ <view class="name">AD1111</view>
+ </view>
+ <!-- -->
+ <view class="info">
+ <view class="line">
+ <view class="label">杩愯緭鍗曞彿</view>
+ <view class="value">2222</view>
+ </view>
+ <view class="line">
+ <view class="label">椹鹃┒鍛�</view>
+ <view class="value">2222</view>
+ </view>
+ <view class="line">
+ <view class="label">鎬昏繍杈撻噺</view>
+ <view class="value">2222</view>
+ </view>
+ <view class="line">
+ <view class="label">杩愯緭鍏徃</view>
+ <view class="value">2222</view>
+ </view>
+ </view>
+ <view class="separate"></view>
+ <view class="contract_list">
+ <view class="title">鍚堝悓鍙凤細111</view>
+ <view class="address">aadd</view>
+ <view class="list">
+ <view class="line">
+ <view class="label">鐗╂枡锛�</view>
+ <view class="value">榛勫北榛戦┈</view>
+ </view>
+ <view class="line">
+ <view class="label">鏁伴噺锛�</view>
+ <view class="value">榛勫北榛戦┈</view>
+ </view>
+ <view class="line">
+ <view class="label">鐗╂枡锛�</view>
+ <view class="value">榛勫北榛戦┈</view>
+ </view>
+ <view class="line">
+ <view class="label">鏁伴噺锛�</view>
+ <view class="value">榛勫北榛戦┈</view>
+ </view>
+ </view>
+ </view>
+ </view>
+ </u-popup>
+ <u-datetime-picker :show="showDate" v-model="param.date" :minDate="minDate" @confirm="dateEnter" @cancel="showDate = false" mode="datetime"></u-datetime-picker>
+ <keyboardInput ref="keyboard" @export="setPlate" @close="closeInput" />
+ </view>
+ <!-- -->
</template>
<script>
-import keyboardInput from '@/components/keyboard-input/keyboard-input.vue'
+import keyboardInput from '@/components/keyboard-input/keyboard-input.vue';
+import { driverTaskJobDetail, driverConfirmTask } from '@/api';
+import dayjs from 'dayjs'
export default {
- components: {
- keyboardInput
- },
- data() {
- return {
- param: {
- status: '0'
- },
- showDetail: false,
+ components: {
+ keyboardInput
+ },
+ data() {
+ return {
+ param: {},
+ showDate: false,
+ showDetail: false,
+ minDate: '',
- inputType: ''
- }
- },
- methods: {
- handleSignIn() {
- const { param } = this
- this.param.status = param.status == '0' ? '1' : '0'
- },
- getLocation() {
- uni.getLocation({
- type: 'wgs84',
- success: function (res) {
- console.log('褰撳墠浣嶇疆鐨勭粡搴︼細' + res.longitude)
- console.log('褰撳墠浣嶇疆鐨勭含搴︼細' + res.latitude)
- }
- })
- },
- openInput(type) {
- this.inputType = type
- this.$refs.keyboard.open()
- },
- setPlate(e) {
- if (this.inputType === 1) {
- this.param.carNos = e
- } else if (this.inputType === 2) {
- this.param.carNos = e
- }
- this.$forceUpdate()
- this.closeInput()
- },
- closeInput() {
- this.$refs.keyboard.close()
- }
- }
-}
+ inputType: ''
+ };
+ },
+ onLoad(option) {
+ this.getDetail(option.id);
+ this.minDate = new Date().getTime()
+ },
+ methods: {
+ onSubmit(){
+ const { param } = this
+ if(!param.date) return this.showToast('璇烽�夋嫨鍒板満鏃ユ湡')
+ if(!param.carCodeBack) return this.showToast('璇疯緭鍏ヨ溅鍚庣墝鐓у彿')
+ driverConfirmTask({
+ id: param.id,
+ carCodeBack: param.carCodeBack,
+ arriveDate: param.date + ':59'
+ }).then(res =>{
+ this.showToast('纭鎴愬姛')
+ this.$goBack()
+ })
+ },
+ getDetail(jobId) {
+ driverTaskJobDetail({
+ jobId
+ }).then(ress => {
+ this.param = { ...ress.data, carCodeBack: '' };
+ });
+ },
+ dateEnter(e) {
+ setTimeout(() => {
+ this.$set(this.param, 'date', dayjs(e.value).format('YYYY-MM-DD HH:mm'))
+ })
+ this.showDate = false
+ },
+ openInput(type) {
+ this.inputType = type;
+ this.$refs.keyboard.open();
+ },
+ copy() {
+ if (this.param.carCodeFront) {
+ this.$set(this.param, 'carCodeBack', this.param.carCodeFront);
+ this.showToast('澶嶅埗鎴愬姛');
+ }
+ },
+ setPlate(e) {
+ if (this.inputType === 1) {
+ this.$set(this.param, 'carCodeFront', e);
+ } else if (this.inputType === 2) {
+ this.$set(this.param, 'carCodeBack', e);
+ }
+ this.$forceUpdate();
+ this.closeInput();
+ },
+ closeInput() {
+ this.$refs.keyboard.close();
+ }
+ }
+};
</script>
<style lang="scss">
page {
- background-color: #f7f7f7;
+ background-color: #f7f7f7;
}
.main_app {
- padding: 0;
+ padding: 0;
- .main_content {
- background: #ffffff;
- border-radius: 20rpx 20rpx 0rpx 0rpx;
- padding: 16rpx 30rpx;
- position: relative;
- bottom: 32rpx;
+ .main_content {
+ background: #ffffff;
+ border-radius: 20rpx 20rpx 0rpx 0rpx;
+ padding: 16rpx 30rpx;
+ position: relative;
+ bottom: 32rpx;
+ z-index: 999;
+ .line {
+ padding: 24rpx 0 28rpx;
+ border-bottom: 1rpx solid #e5e5e5;
- .line {
- padding: 24rpx 0 28rpx;
- border-bottom: 1rpx solid #e5e5e5;
+ .label {
+ font-size: 26rpx;
+ color: #666666;
+ margin-bottom: 20rpx;
+ }
- .label {
- font-size: 26rpx;
- color: #666666;
- margin-bottom: 20rpx;
- }
+ .value {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ font-size: 30rpx;
- .value {
- display: flex;
- justify-content: space-between;
- align-items: center;
- font-size: 30rpx;
+ .waybill_num {
+ flex: 1;
+ }
- .waybill_num {
- flex: 1;
- }
+ .copy {
+ font-size: 26rpx;
+ color: $uni-color-primary;
+ }
- .copy {
- font-size: 26rpx;
- color: $uni-color-primary;
- }
+ .btn {
+ font-size: 28rpx;
+ color: $uni-color-primary;
+ display: flex;
+ }
+ }
+ }
+ .empty {
+ width: 750rpx;
+ height: 20rpx;
+ background-color: #f7f7f7;
+ margin: 0 -30rpx;
+ }
+ .warnning {
+ display: flex;
+ color: #ed4545;
+ align-items: center;
+ margin: 40rpx 0;
+ }
- .btn {
- font-size: 28rpx;
- color: $uni-color-primary;
- display: flex;
- }
- }
- }
- .empty {
- width: 750rpx;
- height: 20rpx;
- background-color: #f7f7f7;
- margin: 0 -30rpx;
- }
- .warnning {
- display: flex;
- color: #ed4545;
- align-items: center;
- margin: 40rpx 0;
- }
+ .signIn_wrap {
+ margin: 80rpx auto;
+ width: 260rpx;
+ height: 260rpx;
+ position: relative;
+ color: #fff;
+ z-index: 1;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
- .signIn_wrap {
- margin: 80rpx auto;
- width: 260rpx;
- height: 260rpx;
- position: relative;
- color: #fff;
- z-index: 1;
- display: flex;
- flex-direction: column;
- justify-content: center;
- align-items: center;
+ .handle {
+ font-weight: 600;
+ font-size: 40rpx;
+ line-height: 56rpx;
+ }
- .handle {
- font-weight: 600;
- font-size: 40rpx;
- line-height: 56rpx;
- }
+ .time {
+ color: rgba(255, 255, 255, 0.7);
+ }
- .time {
- color: rgba(255, 255, 255, 0.7);
- }
+ .img {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ z-index: -1;
+ }
+ }
+ }
- .img {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- z-index: -1;
- }
- }
- }
+ .status_wrap {
+ height: 200rpx;
+ width: 100%;
+ padding: 30rpx;
+ position: relative;
+ z-index: 99;
+ color: #fff;
+ .bg {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: -1;
+ }
- .status_wrap {
- height: 200rpx;
- width: 100%;
- padding: 30rpx;
- position: relative;
- z-index: 99;
- color: #fff;
- .bg {
- width: 100%;
- height: 100%;
- position: absolute;
- top: 0;
- left: 0;
- z-index: -1;
- }
+ .name {
+ font-weight: 600;
+ font-size: 40rpx;
+ line-height: 56rpx;
+ margin-bottom: 12rpx;
+ }
- .name {
- font-weight: 600;
- font-size: 40rpx;
- line-height: 56rpx;
- margin-bottom: 12rpx;
- }
+ .id_card {
+ color: rgba(255, 255, 255, 0.8);
+ }
+ .status {
+ position: absolute;
+ right: 0;
+ top: 30rpx;
+ height: 68rpx;
+ line-height: 68rpx;
+ background: #ffffff;
+ padding: 0 24rpx;
+ border-radius: 34rpx 0rpx 0rpx 34rpx;
+ font-size: 26rpx;
+ color: $uni-color-primary;
+ }
+ }
- .id_card {
- color: rgba(255, 255, 255, 0.8);
- }
- .status {
- position: absolute;
- right: 0;
- top: 30rpx;
- height: 68rpx;
- line-height: 68rpx;
- background: #ffffff;
- padding: 0 24rpx;
- border-radius: 34rpx 0rpx 0rpx 34rpx;
- font-size: 26rpx;
- color: $uni-color-primary;
- }
- }
+ .space {
+ width: 750rpx;
+ height: 200rpx;
+ }
- .space {
- width: 750rpx;
- height: 200rpx;
- }
+ .sub_wrap {
+ position: fixed;
+ padding: 16rpx 30rpx 64rpx;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ display: flex;
+ z-index: 1;
+ justify-content: space-between;
+ background-color: #fff;
+ .btn {
+ height: 96rpx;
+ line-height: 96rpx;
+ text-align: center;
+ width: 690rpx;
+ font-size: 36rpx;
+ color: #333333;
+ background: #ffffff;
+ border-radius: 48rpx;
+ border: 1rpx solid #999999;
+ }
- .sub_wrap {
- position: fixed;
- padding: 16rpx 30rpx 64rpx;
- bottom: 0;
- left: 0;
- width: 100%;
- display: flex;
- z-index: 1;
- justify-content: space-between;
- background-color: #fff;
- .btn {
- height: 96rpx;
- line-height: 96rpx;
- text-align: center;
- width: 690rpx;
- font-size: 36rpx;
- color: #333333;
- background: #ffffff;
- border-radius: 48rpx;
- border: 1rpx solid #999999;
- }
-
- .check {
- background: $uni-color-primary;
- border: 1rpx solid $uni-color-primary;
- color: #fff;
- }
- }
+ .check {
+ background: $uni-color-primary;
+ border: 1rpx solid $uni-color-primary;
+ color: #fff;
+ }
+ }
}
.detail_modal {
- padding: 36rpx 30rpx;
+ padding: 36rpx 30rpx;
- .modal_title {
- font-weight: 600;
- font-size: 32rpx;
- color: #222222;
- line-height: 44rpx;
- text-align: center;
- margin-bottom: 36rpx;
- }
+ .modal_title {
+ font-weight: 600;
+ font-size: 32rpx;
+ color: #222222;
+ line-height: 44rpx;
+ text-align: center;
+ margin-bottom: 36rpx;
+ }
- .contract_list {
- .list {
- background: #f7f7f7;
- border-radius: 8rpx;
- padding: 20rpx;
+ .contract_list {
+ .list {
+ background: #f7f7f7;
+ border-radius: 8rpx;
+ padding: 20rpx;
- .line {
- display: flex;
- margin-bottom: 20rpx;
+ .line {
+ display: flex;
+ margin-bottom: 20rpx;
- &:nth-of-type(3n) {
- border-top: 1rpx solid #e5e5e5;
- padding-top: 20rpx;
- }
+ &:nth-of-type(3n) {
+ border-top: 1rpx solid #e5e5e5;
+ padding-top: 20rpx;
+ }
- .label {
- color: #666666;
- width: 86rpx;
- }
+ .label {
+ color: #666666;
+ width: 86rpx;
+ }
- .value {
- flex: 1;
- color: #222222;
- }
- }
- }
+ .value {
+ flex: 1;
+ color: #222222;
+ }
+ }
+ }
- .title {
- font-weight: 600;
- font-size: 30rpx;
- color: $uni-color-primary;
- margin-bottom: 12rpx;
- }
+ .title {
+ font-weight: 600;
+ font-size: 30rpx;
+ color: $uni-color-primary;
+ margin-bottom: 12rpx;
+ }
- .address {
- font-size: 26rpx;
- color: #666666;
- margin-bottom: 20rpx;
- }
- }
+ .address {
+ font-size: 26rpx;
+ color: #666666;
+ margin-bottom: 20rpx;
+ }
+ }
- .info {
- .line {
- display: flex;
- margin-bottom: 20rpx;
+ .info {
+ .line {
+ display: flex;
+ margin-bottom: 20rpx;
- .label {
- font-size: 30rpx;
- color: #666666;
- width: 150rpx;
- }
+ .label {
+ font-size: 30rpx;
+ color: #666666;
+ width: 150rpx;
+ }
- .value {
- flex: 1;
- font-size: 30rpx;
- color: #222222;
- }
- }
- }
+ .value {
+ flex: 1;
+ font-size: 30rpx;
+ color: #222222;
+ }
+ }
+ }
- .separate {
- width: 750rpx;
- height: 2rpx;
- margin: 30rpx -30rpx;
- border: 1rpx solid #e5e5e5;
- }
+ .separate {
+ width: 750rpx;
+ height: 2rpx;
+ margin: 30rpx -30rpx;
+ border: 1rpx solid #e5e5e5;
+ }
- .id_card {
- border-radius: 8rpx;
- display: flex;
- height: 60rpx;
- line-height: 60rpx;
- font-weight: 600;
- font-size: 36rpx;
- color: #111111;
- text-align: center;
- margin-bottom: 30rpx;
+ .id_card {
+ border-radius: 8rpx;
+ display: flex;
+ height: 60rpx;
+ line-height: 60rpx;
+ font-weight: 600;
+ font-size: 36rpx;
+ color: #111111;
+ text-align: center;
+ margin-bottom: 30rpx;
- .last {
- background: #e9f5f6;
- width: 60rpx;
- border-radius: 8rpx 0rpx 0rpx 8rpx;
- border: 1rpx solid #dfdede;
- }
+ .last {
+ background: #e9f5f6;
+ width: 60rpx;
+ border-radius: 8rpx 0rpx 0rpx 8rpx;
+ border: 1rpx solid #dfdede;
+ }
- .name {
- width: 186rpx;
- border: 1rpx solid #dfdede;
- }
- }
+ .name {
+ width: 186rpx;
+ border: 1rpx solid #dfdede;
+ }
+ }
}
</style>
diff --git a/h5/pages/driver/taskDetail.vue b/h5/pages/driver/taskDetail.vue
index 0365e8f..42af4cd 100644
--- a/h5/pages/driver/taskDetail.vue
+++ b/h5/pages/driver/taskDetail.vue
@@ -11,48 +11,73 @@
<view class="name" v-if="param.status == 5">鏈堝彴浣滀笟涓�</view>
<view class="name" v-if="param.status == 6">浣滀笟宸插畬鎴�</view>
<view class="id_card">{{ param.carCodeFront }}</view>
- <view class="status" v-if="param.status == 1">绛夊緟绛惧埌</view>
- <view class="status" v-if="param.status == 2">绛夊緟鍙彿</view>
- <view class="status" v-if="param.status == 5">浣滀笟涓�</view>
- <view class="status" v-if="param.status == 6">浣滀笟瀹屾垚</view>
+ <view class="status">{{statusMap[param.status]}}</view>
</view>
<!-- -->
<view class="main_content">
<view class="line">
<view class="label">鍙告満濮撳悕</view>
- <view class="value">{{param.lineUpNum}}</view>
+ <view class="value">{{param.driverName}}</view>
</view>
<view class="line">
<view class="label">鎵嬫満鍙�</view>
- <view class="value">{{param.lineUpNum}}</view>
+ <view class="value">{{param.drivierPhone}}</view>
</view>
- <view class="line">
- <view class="label">杩愯緭鍗曞彿</view>
- <view class="value" @click="showDetail = true">
- <text class="waybill_num">{{param.lineUpNum}}</text>
- <text class="btn">杩愬崟璇︽儏</text>
- </view>
- </view>
- <view class="line">
- <view class="label">浣滀笟绫诲瀷</view>
- <view class="value">{{param.lineUpNum}}</view>
- </view>
+ <template v-if="param.type != 4">
+ <view class="line">
+ <view class="label">杩愯緭鍗曞彿</view>
+ <view class="value" @click="showDetail = true">
+ <text class="waybill_num">{{param.code}}</text>
+ <text class="btn">杩愬崟璇︽儏</text>
+ </view>
+ </view>
+ <view class="line">
+ <view class="label">浣滀笟绫诲瀷</view>
+ <view class="value">甯傚叕鍙稿鍗忚溅鍗歌揣</view>
+ </view>
+ </template>
+ <template v-else>
+ <view class="line">
+ <view class="label">鍚堝悓缂栧彿</view>
+ <view class="value">{{param.contractNum}}</view>
+ </view>
+ <view class="line">
+ <view class="label">鍏ュ簱绫诲瀷</view>
+ <view class="value">{{param.inType == 0 ? '鏁存墭鐩�' : '浠剁儫'}}</view>
+ </view>
+ <view class="line">
+ <view class="label">浣滀笟閲�</view>
+ <view class="value">{{param.totalNum}}涓囨敮</view>
+ </view>
+ </template>
<view class="line">
<view class="label">杞︾墝鐓�</view>
- <view class="value">{{param.lineUpNum}}</view>
+ <view class="value">鍓嶏細{{param.carCodeFront}} | 鍚庯細{{param.carCodeBack}}</view>
</view>
<!-- -->
- <view class="line">
+ <view class="line" v-if="param.status == 1">
<view class="label">璺濈鍥尯</view>
<view class="value">
- <view class="">0 鍏噷</view>
+ <view class="">{{param.getDistance}}鍏噷</view>
<view class="btn" @click="getLocation">
<image class="icon mr6" src="../../static/driver/position.png"></image>
閲嶆柊瀹氫綅
</view>
</view>
</view>
- <view class="warnning">
+ <view class="line" v-if="param.signDate">
+ <view class="label">绛惧埌鏃堕棿</view>
+ <view class="value">{{param.signDate}}</view>
+ </view>
+ <view class="line" v-if="param.startDate">
+ <view class="label">寮�濮嬩綔涓�</view>
+ <view class="value">{{param.startDate}}</view>
+ </view>
+ <view class="line" v-if="param.doneDate">
+ <view class="label">浣滀笟瀹屾垚</view>
+ <view class="value">{{param.doneDate}}</view>
+ </view>
+ <view v-if="param.status == 1" class="warnning">
<u-icon name="info-circle" color="#ED4545" class="mr12"></u-icon>
濡傛棤娉曡幏鍙栧畾浣嶏紝璇风敤寰俊鎵弿鍥尯澶у睆浜岀淮
</view>
@@ -68,25 +93,24 @@
<view class="label">浣滀笟瀹屾垚</view>
<view class="value">2022</view>
</view> -->
- <view class="signIn_wrap" @click="handleSignIn">
+ <view v-if="param.status == 1" class="signIn_wrap" @click="handleSignIn">
<image
:src="
- param.status == '0'
+ param.getDistance < signDistance
? require('@/static/driver/btn_qiandao@2x.png')
: require('@/static/driver/btn_qiandao_fail@2x.png')
"
class="img"
mode="widthFix"
></image>
- <view class="handle">绛惧埌</view>
- <view class="time">09:10</view>
+ <view class="handle">{{ param.getDistance > signDistance ? '鏃犳硶绛惧埌' : '绛惧埌' }}</view>
+ <view class="time">{{nowTime}}</view>
</view>
</view>
<view class="space"></view>
<!-- 绛夊緟鍙彿 -->
- <view class="padding_wrap">
- <view class="btn cancel">鍙栨秷绛惧埌</view>
- <view class="btn check">鏌ョ湅鎺掗槦鎯呭喌</view>
+ <view v-if="param.status == 2" class="padding_wrap">
+ <view class="btn check" @click="handleQueue">鏌ョ湅鎺掗槦鎯呭喌</view>
</view>
<!-- modal -->
@@ -153,42 +177,81 @@
</template>
<script>
- import { driverTaskJobDetail } from '@/api'
+ import { driverTaskJobDetail, driverSignInTask } from '@/api';
+ import { statusMap } from '@/utils/config.js';
+ import dayjs from 'dayjs';
export default {
data() {
return {
+ statusMap,
param: {
status: '0'
},
+ jobId: '',
+ lat: '',
+ lnt: '',
+ nowTime: '',
+ signDistance: uni.getStorageSync('driverGuide').signDistance,
showDetail: false,
}
},
onLoad(option) {
- this.getLocation(option.id)
+ this.jobId = option.id
+ if(option.status && option.status == '1'){
+ this.getLocation()
+ }else{
+ this.getDetail()
+ }
+
+ // this.getDetail({
+ // jobId: option.id,
+ // lat: 31.769137,
+ // lnt: 117.232241,
+ // })
+ setInterval(() => {
+ this.nowTime = dayjs().format('HH:mm:ss')
+ })
},
methods: {
handleSignIn() {
- const { param } = this
- this.param.status = param.status == '0' ? '1' : '0'
+ const { param, signDistance, lat, lnt, jobId } = this
+ if(param.getDistance > signDistance) return
+ driverSignInTask({
+ jobId, lat, lnt,signType: 0
+ }).then(res => {
+ this.showToast('绛惧埌鎴愬姛')
+ this.getDetail()
+ })
},
- getLocation(jobId) {
+ getDetail() {
+ const { jobId, lat, lnt } = this
+ driverTaskJobDetail({
+ jobId: this.jobId,
+ lat,
+ lnt
+ }).then(ress => {
+ this.param = { ...ress.data }
+ })
+ },
+ getLocation() {
+ const { jobId } = this
uni.getLocation({
type: 'wgs84',
-
- success: function (res) {
- driverTaskJobDetail({
- jobId,
- lat: res.latitude,
- lnt: res.longitude,
- }).then(ress => {
- this.param = { ...ress.data }
- })
- console.log(res);
- console.log('褰撳墠浣嶇疆鐨勭粡搴︼細' + res.longitude)
- console.log('褰撳墠浣嶇疆鐨勭含搴︼細' + res.latitude)
- }
+ success: (res) => {
+ this.lat = res.latitude
+ this.lnt = res.longitude
+ this.getDetail()
+ },
+ fail:(err) => {
+ console.log('err', err);
+ }
})
- }
+ },
+ handleQueue() {
+ uni.navigateTo({
+ url:'/pages/driver/queueUp?jobId=' + this.jobId
+ })
+ },
}
}
</script>
@@ -202,6 +265,7 @@
padding: 16rpx 30rpx;
position: relative;
bottom: 32rpx;
+ z-index: 999;
.line {
padding: 24rpx 0 28rpx;
border-bottom: 1rpx solid #e5e5e5;
@@ -308,6 +372,7 @@
}
.padding_wrap {
position: fixed;
+ z-index: 999;
padding: 0 30rpx 64rpx;
bottom: 0;
left: 0;
@@ -318,7 +383,7 @@
height: 96rpx;
line-height: 96rpx;
text-align: center;
- width: 336rpx;
+ width: 100%;
font-size: 36rpx;
color: #333333;
background: #ffffff;
diff --git a/h5/pages/staff/task/driver.vue b/h5/pages/staff/task/driver.vue
index 20d2264..3330aaf 100644
--- a/h5/pages/staff/task/driver.vue
+++ b/h5/pages/staff/task/driver.vue
@@ -3,7 +3,9 @@
<view class="status_wrap">
<view class="name">{{info.driverName}}鐨勫叆鍥绾�</view>
<view class="desc">{{info.carCodeFront}}</view>
- <view class="status">{{ statusMap[info.status] }}</view>
+ <view class="status" v-if="info.status != 2 && info.status != 3">{{ statusMap[info.status] }}</view>
+ <image v-if="info.status == 2" class="icon" src="@/static/ic_passed@2x.png" mode=""></image>
+ <image v-if="info.status == 3" class="icon" src="@/static/ic_refused@2x.png" mode=""></image>
</view>
<!-- -->
<view class="emyty"></view>
@@ -147,8 +149,8 @@
statusMap: {
0: '寰呭鎵�',
1: '瀹℃壒涓�',
- 2: '瀹℃壒閫氳繃',
- 3: '瀹℃壒涓嶉�氳繃',
+ 2: '宸查�氳繃',
+ 3: '宸叉嫆缁�',
4: '宸插彇娑�',
},
}
@@ -387,6 +389,15 @@
background-color: #e9edff;
color: $uni-color-primary;
}
+ .icon{
+ width: 120rpx;
+ height: 120rpx;
+ border-radius: 50%;
+ position: absolute;
+ right: 0rpx;
+ top: 20rpx;
+
+ }
}
.main_footer {
diff --git a/h5/pages/staff/task/index.vue b/h5/pages/staff/task/index.vue
index 854541f..31d5d3c 100644
--- a/h5/pages/staff/task/index.vue
+++ b/h5/pages/staff/task/index.vue
@@ -542,6 +542,7 @@
.info {
font-size: 26rpx;
font-weight: 400;
+ width: 110rpx;
}
}
.box_list_item_nr {
diff --git a/h5/static/driver/ic_truck_mine@2x.png b/h5/static/driver/ic_truck_mine@2x.png
new file mode 100644
index 0000000..f5a2449
--- /dev/null
+++ b/h5/static/driver/ic_truck_mine@2x.png
Binary files differ
diff --git a/h5/utils/config.js b/h5/utils/config.js
index 03c8927..d4d7d3a 100644
--- a/h5/utils/config.js
+++ b/h5/utils/config.js
@@ -2,3 +2,18 @@
export const baseUrl = 'admin_interface/'
export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`
export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch`
+
+export const statusMap = {
+ 0: '寰呯‘璁�',
+ 1: '绛夊緟绛惧埌',
+ 2: '绛夊緟鍙彿', // 绛夊緟鍙彿
+ 3: '鍏ュ洯绛夊緟',
+ 4: '鏈堝彴绛夊緟', //宸插彨鍙�
+ 5: '浣滀笟涓�',
+ 6: '浣滀笟瀹屾垚',
+ 7: '杞Щ涓�',
+ 8: '寮傚父鎸傝捣',
+ 9: '宸叉巿鏉冪鍥�',
+ 10: '宸茬鍥�',
+ 11: '宸茶繃鍙�',
+}
\ No newline at end of file
diff --git a/h5/utils/service.js b/h5/utils/service.js
index fee9e39..de45fb8 100644
--- a/h5/utils/service.js
+++ b/h5/utils/service.js
@@ -34,10 +34,11 @@
duration: 2000
})
})
+ return
}
if (data.code === 5112) {
uni.clearStorageSync()
- uni.navigateTo({
+ return uni.navigateTo({
url: '/pages/login/login'
})
}
diff --git a/pda/App.vue b/pda/App.vue
index b9da85e..aba1fdb 100644
--- a/pda/App.vue
+++ b/pda/App.vue
@@ -1,77 +1,250 @@
-<script>
-export default {
- onLaunch: function () {
- console.log('App Launch')
- },
- onShow: function () {
- console.log('App Show')
- },
- onHide: function () {
- console.log('App Hide')
- }
-}
-</script>
-
-<style lang="scss">
-@import "uview-ui/index.scss";
-/*姣忎釜椤甸潰鍏叡css */
-view {
- box-sizing: border-box;
-}
-
-image {
- box-sizing: border-box;
- margin: 0;
- display: flex;
-}
-input {
- font-size: 30rpx;
-}
-textarea {
- box-sizing: border-box;
- // background-color: #f7f7f7;
- font-size: 30rpx !important;
- padding: 0;
- border-radius: 8rpx;
- color: #333333 !important;
-}
-.u-textarea {
- padding: 0 !important;
- color: #333333 !important;
-}
-
-.df_ac {
- display: flex;
- align-items: center;
-}
-
-.main_app {
- padding: 0 30rpx 30rpx;
- font-size: 28rpx;
- color: #333333;
-}
-.primaryColor{
- color: $uni-color-primary;
-}
-.placeholder9 {
- color: #999999;
- font-size: 28rpx;
-}
-.fs24 {
- font-size: 24rpx;
-}
-.mr24 {
- margin-right: 24rpx;
-}
-
-.mr12 {
- margin-right: 12rpx;
-}
-.ml12 {
- margin-left: 12rpx;
-}
-
-.mr6 {
- margin-right: 6rpx;
-}
-</style>
+<script>
+export default {
+ onLaunch: function () {
+ console.log('App Launch')
+ },
+ onShow: function () {
+ console.log('App Show')
+ },
+ onHide: function () {
+ console.log('App Hide')
+ }
+}
+</script>
+
+<style lang="scss">
+/*姣忎釜椤甸潰鍏叡css */
+@import "uview-ui/index.scss";
+
+.flex-cb {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+.empty_wrap{
+ padding-top: 280rpx;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ color: #999999;
+ image{
+ width: 220rpx;
+ height: 238rpx;
+ }
+}
+.container {
+ height: 100%;
+ width: 100%;
+ max-width: 800rpx;
+ overflow-y: auto;
+}
+
+.doumee-container .ivu-tabs-nav {
+ width: 100%;
+}
+
+.doumee-container .ivu-tabs-nav .ivu-tabs-tab {
+ width: calc(100% / 3);
+}
+
+.doumee-container .ivu-tabs-nav .ivu-tabs-tab {
+ margin-right: 0;
+ text-align: center;
+}
+
+.cell {
+ background-color: #fff;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ min-height: 100rpx;
+ padding: 24rpx 30rpx;
+ box-sizing: border-box;
+ border-bottom: 1rpx solid #eee;
+ font-size: 15rpx;
+ position: relative;
+}
+
+.cell .title {
+ flex-shrink: 0;
+ color: #222;
+ line-height: 20rpx;
+ height: 20rpx;
+ width: 28%;
+ margin-right: 5%;
+}
+
+.cell .content {
+ flex: 1;
+ font-size: 28rpx;
+ font-weight: 400;
+ color: #999999;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+}
+
+.cell .content .input {
+ width: 100%;
+ height: 100%;
+ font-size: 28rpx;
+ font-weight: 400;
+ color: #333333;
+ text-align: right;
+}
+
+.cell.is-link::after {
+ content: "";
+ display: block;
+ width: 8rpx;
+ height: 8rpx;
+ transform: rotate(-45deg);
+ border-right: 1rpx solid #999999;
+ border-bottom: 1rpx solid #999999;
+ margin-left: 5rpx;
+}
+
+.card {
+ background-color: #fff;
+ padding: 16rpx;
+ position: relative;
+}
+
+.card::after {
+ content: "";
+ display: block;
+ position: absolute;
+ width: calc(100% - 32rpx);
+ height: 0;
+ bottom: 0;
+ left: 16rpx;
+ border-bottom: 1rpx solid #f7f7f7;
+}
+
+.card .title {
+ color: #777777;
+ margin-bottom: 12rpx;
+}
+
+.card .content {
+ color: #222;
+}
+
+.placeholder9 {
+ color: #999999 !important;
+ font-size: 28rpx;
+}
+.red{
+ color: red !important ;
+}
+
+//璁剧疆鍦嗚
+checkbox .uni-checkbox-input {
+ border-radius: 50%;
+}
+
+checkbox .uni-checkbox-input.uni-checkbox-input-checked {
+ color: #fff !important;
+ border: 1px solid #4d99a8 !important;
+ background-color: #4d99a8 !important;
+}
+
+checkbox .uni-checkbox-input.uni-checkbox-input-checked:before {
+ /* color: #4d99a8 !important; */
+ /* border: 1px solid #4d99a8 !important; */
+ /* font-size: 58rpx; */
+ /* border-radius: 50%; */
+}
+
+//
+
+view {
+ box-sizing: border-box;
+}
+
+image {
+ box-sizing: border-box;
+ margin: 0;
+ display: flex;
+}
+input {
+ font-size: 30rpx;
+}
+textarea {
+ box-sizing: border-box;
+ // background-color: #f7f7f7;
+ font-size: 30rpx !important;
+ padding: 0;
+ border-radius: 8rpx;
+ color: #333333 !important;
+}
+.u-textarea {
+ padding: 0 !important;
+ color: #333333 !important;
+}
+
+.df_ac {
+ display: flex;
+ align-items: center;
+}
+
+.main_app {
+ padding: 0 30rpx 30rpx;
+ font-size: 28rpx;
+ color: #333333;
+}
+.popupShow {
+ overflow: hidden;
+ position: fixed;
+ width: 100%;
+}
+.placeholder6 {
+ color: #666666;
+ font-size: 28rpx;
+}
+.primaryColor {
+ color: $uni-color-primary;
+}
+.avatar {
+ width: 64rpx;
+ height: 64rpx;
+ border-radius: 50%;
+ margin-right: 20rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background-color: $uni-color-primary;
+ color: #fff;
+ font-size: 30rpx;
+}
+.placeholder9 {
+ color: #999999;
+ font-size: 28rpx;
+}
+.fs24 {
+ font-size: 24rpx;
+}
+.mr24 {
+ margin-right: 24rpx;
+}
+.mt24 {
+ margin-top: 24rpx;
+}
+
+.mr12 {
+ margin-right: 12rpx;
+}
+.ml12 {
+ margin-left: 12rpx;
+}
+.ml6 {
+ margin-left: 6rpx;
+}
+.mt6 {
+ margin-top: 6rpx;
+}
+.mr6 {
+ margin-right: 6rpx;
+}
+</style>
diff --git a/pda/api/index.js b/pda/api/index.js
index 159ac65..a8ee63f 100644
--- a/pda/api/index.js
+++ b/pda/api/index.js
@@ -18,6 +18,18 @@
data
})
}
+export const getUserInfo = () => {
+ return http({
+ url: 'getUserInfo',
+ method: 'get'
+ })
+}
+export const loginCaptcha = () => {
+ return http({
+ url: 'captcha',
+ method: 'get'
+ })
+}
// 鍙戦�佺煭淇¢獙璇佺爜
export const sendSms = (data) => {
return http({
@@ -25,4 +37,116 @@
method: 'post',
data
})
+}
+// 鐧诲綍
+export const loginPost = (data) => {
+ return http({
+ url: 'loginH5',
+ method: 'post',
+ data
+ })
+}
+// 鑾峰彇鏈堝彴缁勪俊鎭�
+export const getPlatformGroupList = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/pdaPlatform/getPlatformGroupList',
+ method: 'post',
+ data
+ })
+}
+// 鑾峰彇鏈堝彴 浠诲姟淇℃伅
+export const getPlatformWorkData = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/pdaPlatform/getPlatformWorkData',
+ method: 'get',
+ data
+ })
+}
+// 杞﹁締鎺掗槦鎯呭喌
+export const platformLineUpPage = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/pdaPlatform/platformLineUpPage',
+ method: 'post',
+ data
+ })
+}
+// 鍙彿鍒楄〃
+export const platformCallList = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/pdaPlatform/platformCallList',
+ method: 'post',
+ data
+ })
+}
+// 鍏ュ洯鍙彿
+export const platformInPark = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/pdaPlatform/platformInPark',
+ method: 'post',
+ data
+ })
+}
+// 鏈堝彴鍙彿
+export const platformCallNumber = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/pdaPlatform/platformCallNumber',
+ method: 'post',
+ data
+ })
+}
+// 寮傚父鎸傝捣
+export const platformErr = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/pdaPlatform/platformErr',
+ method: 'post',
+ data
+ })
+}
+// 杞Щ鏈堝彴
+export const platformMove = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/pdaPlatform/platformMove',
+ method: 'post',
+ data
+ })
+}
+// 鏈堝彴杩囧彿
+export const platformOverNumber = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/pdaPlatform/platformOverNumber',
+ method: 'post',
+ data
+ })
+}
+// 瀹屾垚浣滀笟
+export const finishWork = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/pdaPlatform/finishWork',
+ method: 'post',
+ data
+ })
+}
+// 鎵嬪姩寮�濮嬩綔涓�
+export const beginWork = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/pdaPlatform/beginWork',
+ method: 'post',
+ data
+ })
+}
+// 鏇存柊鏈堝彴閰嶇疆淇℃伅
+export const updUserPlatformConfig = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/pdaPlatform/updUserPlatformConfig',
+ method: 'get',
+ data
+ })
+}
+// 淇敼绂佸惎鐢ㄧ姸鎬�
+export const updPlatformStatus = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/web/pdaPlatform/updPlatformStatus',
+ method: 'post',
+ data
+ })
}
\ No newline at end of file
diff --git a/pda/main.js b/pda/main.js
index 67dd82e..a53fc06 100644
--- a/pda/main.js
+++ b/pda/main.js
@@ -8,6 +8,17 @@
Vue.use(uView)
Vue.config.productionTip = false
Vue.prototype.$store = store
+Vue.prototype.$jump = (url) => {uni.navigateTo({url})}
+Vue.prototype.$goBack = () => { uni.navigateBack() }
+Vue.prototype.showToast = (str) => {
+ setTimeout(() => {
+ uni.showToast({
+ title: str,
+ icon: 'none',
+ duration: 2000
+ })
+ },100)
+}
App.mpType = 'app'
const app = new Vue({
diff --git a/pda/manifest.json b/pda/manifest.json
index 6e27766..ae879f7 100644
--- a/pda/manifest.json
+++ b/pda/manifest.json
@@ -5,6 +5,30 @@
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
+ "h5" : {
+ "router" : {
+ "mode" : "hash",
+ "base" : "./"
+ },
+ // "base" : "/h5/"
+ "devServer" : {
+ "port" : 8090,
+ "historyApiFallback" : true,
+ "disableHostCheck" : true,
+ "proxy" : {
+ "/admin_interface" : {
+ // 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
+ // "target" : "http://192.168.0.173/admin_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ "target" : "http://192.168.0.139:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+ "changeOrigin" : true, // 鍏佽璺ㄥ煙
+ "pathRewrite" : {
+ "^/admin_interface" : "" // 閲嶅啓鍦板潃锛屽鏋滃疄闄呮帴鍙d腑鏄笉甯�/dev-api锛岄渶瑕佸皢杩欎釜鍓嶇紑缃┖锛屽洜涓鸿繖涓墠缂�鍙槸涓轰簡璇嗗埆鐢紝璇嗗埆瀹屼箣鍚庡氨娌$敤浜�
+ }
+ }
+ },
+ "https" : false
+ }
+ },
/* 5+App鐗规湁鐩稿叧 */
"app-plus" : {
"usingComponents" : true,
diff --git a/pda/package-lock.json b/pda/package-lock.json
new file mode 100644
index 0000000..f3d0f48
--- /dev/null
+++ b/pda/package-lock.json
@@ -0,0 +1,11 @@
+{
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+ "dayjs": {
+ "version": "1.11.13",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
+ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
+ }
+ }
+}
diff --git a/pda/pages.json b/pda/pages.json
index 206c8e9..3e194d5 100644
--- a/pda/pages.json
+++ b/pda/pages.json
@@ -47,9 +47,9 @@
}
],
"globalStyle": {
- "navigationBarTextStyle": "black",
+ "navigationBarTextStyle": "white",
"navigationBarTitleText": "",
- "navigationBarBackgroundColor": "#ffffff",
+ "navigationBarBackgroundColor": "#4d99a9",
"backgroundColor": "#ffffff"
},
"uniIdRouter": {}
diff --git a/pda/pages/index/center.vue b/pda/pages/index/center.vue
index 7d8e376..a1aaff3 100644
--- a/pda/pages/index/center.vue
+++ b/pda/pages/index/center.vue
@@ -1,8 +1,9 @@
<template>
<view class="main_app">
<view class="main_content">
- <view class="title"
- >瀹夋嘲鐗╂祦瑁呰揣骞冲彴<u-icon
+ <view class="title" @click="showPlatformgroup = true"
+ >{{ activePlatformGroup.name
+ }}<u-icon
name="arrow-down"
size="20"
class="ml12"
@@ -12,65 +13,115 @@
<view class="platform_list">
<view
class="item"
- :class="{ active: index === 0 }"
- v-for="(i, index) in 8"
- :key="i"
- >1鍙锋湀鍙�</view
+ :class="{ active: item.id === activePlatform.id }"
+ v-for="(item, index) in activePlatformGroup.platformList"
+ :key="index"
+ @click="platformClick(item)"
+ >{{ item.name }}</view
>
</view>
<view class="status_wrap">
<view class="status"
- >浣滀笟锛�<text>{{ 0 }}</text></view
+ >浣滀笟锛�<text>{{ platformTaskInfo.workNum }}</text></view
>
<view class="status"
- >宸插彨锛�<text>{{ 0 }}</text></view
+ >宸插彨锛�<text>{{ platformTaskInfo.callNum }}</text></view
>
<view class="status"
- >绛夊緟锛�<text>{{ 0 }}</text></view
+ >绛夊緟锛�<text>{{ platformTaskInfo.waitNum }}</text></view
>
<view class="status"
- >寮傚父锛�<text>{{ 0 }}</text></view
+ >寮傚父锛�<text>{{ platformTaskInfo.exceptionNum }}</text></view
>
</view>
</view>
<!-- -->
- <view v-if="true" class="platform_ing">
- <view class="head">
- <view class="code">
- <text>鐨�</text>
- <text>AD1212</text>
+ <view style="padding-bottom: 140rpx">
+ <view
+ v-for="item in platformTaskInfo.platformJobList"
+ :key="item.id"
+ class="platform_ing"
+ >
+ <view class="head">
+ <view class="code">
+ <text>{{ item.carCodeFront.slice(0, 1) }}</text>
+ <text>{{ item.carCodeFront.slice(1, 2) }}</text>
+ <text>路</text>
+ <text>{{ item.carCodeFront.slice(2) }}</text>
+ </view>
+ <view
+ class="status"
+ v-if="item.status != 4 && item.status != 5"
+ :class="{ red: item.status == 8 }"
+ >{{ statusMap[item.status] }}</view
+ >
+ <view class="status" v-if="item.status == 4"
+ >鍙彿涓� {{ item.callDateTemp }}</view
+ >
+ <view class="status scs" v-if="item.status == 5"
+ >宸蹭綔涓� {{ item.startDateTemp }}</view
+ >
</view>
- <view class="status">鍙彿涓�</view>
+ <view class="line" v-if="item.type == 4">
+ <text class="label">鍚堝悓鍗曞彿</text>
+ <text class="value">{{ item.contractNum }}</text>
+ </view>
+ <view class="line" v-else>
+ <text class="label">杩愯緭鍗曞彿</text>
+ <text class="value">{{ item.code }}</text>
+ <text class="primaryColor" @click="handleDetail()">杩愬崟璇︽儏</text>
+ </view>
+ <view class="line">
+ <text class="label">椹鹃┒鍛�</text>
+ <text class="value"
+ >{{ item.driverName }} {{ item.drivierPhone }}</text
+ >
+ </view>
+ <view class="line">
+ <text class="label">鎬昏繍杈撻噺</text>
+ <text class="value">{{ item.totalNum }}涓囨敮</text>
+ </view>
+ <view class="line" v-if="item.type != 4">
+ <text class="label">杩愯緭鍏徃</text>
+ <text class="value">{{ item.carrierName }}</text>
+ </view>
+ <view class="btns">
+ <view v-if="item.status == 4" class="btn" @click="handlePass(item)"
+ >杩囧彿</view
+ >
+ <view
+ v-if="item.status == 4"
+ class="btn active"
+ @click="handleWork(item)"
+ >寮�濮嬩綔涓�</view
+ >
+
+ <view v-if="item.status == 5" class="btn" @click="handleErr(item)"
+ >寮傚父鎸傝捣</view
+ >
+ <view
+ v-if="item.status == 5 || item.status == 8"
+ class="btn"
+ @click="handleTransform(item)"
+ >杞Щ鏈堝彴</view
+ >
+ <view
+ v-if="item.status == 5 || item.status == 8"
+ class="btn active"
+ @click="handleFinish(item)"
+ >浣滀笟瀹屾垚</view
+ >
+ </view>
</view>
- <view class="line">
- <text class="label">杩愯緭鍗曞彿</text>
- <text class="value">11111</text>
- <text class="primaryColor" @click="handleDetail()">杩愬崟璇︽儏</text>
- </view>
- <view class="line">
- <text class="label">鎬昏繍杈撻噺</text>
- <text class="value">11111</text>
- </view>
- <view class="line">
- <text class="label">椹鹃┒鍛�</text>
- <text class="value">11111</text>
- </view>
- <view class="btns">
- <view class="btn">杩囧彿</view>
- <view class="btn" @click="handleTransform">杞Щ鏈堝彴</view>
- <view class="btn active">寮�濮嬩綔涓�</view>
+ <view v-if="!platformTaskInfo.platformJobList || platformTaskInfo.platformJobList.length == 0" class="empty_wrap">
+ <image src="@/static/default_nodata@2x.png" />
+ <text>鏆傛棤浣滀笟杞﹁締</text>
</view>
</view>
- <image
- v-if="true"
- class="empty"
- src="@/static/default_nodata@2x.png"
- mode="widthFix"
- ></image>
<!-- -->
<view class="main_footer">
- <view class="btn">鍏ュ洯鍙彿</view>
- <view class="btn active" @click="PlatformCallClick">鏈堝彴鍙彿</view>
+ <view class="btn" @click="PlatformCallClick(1)">鍏ュ洯鍙彿</view>
+ <view class="btn active" @click="PlatformCallClick(2)">鏈堝彴鍙彿</view>
</view>
<!-- 鍙彿 -->
<u-popup
@@ -80,45 +131,69 @@
round="10"
@close="showPlatformCall = false"
>
- <view class="PlatformCallModal">
- <view class="title">鏈堝彴鍙彿(1鍙锋湀鍙�)</view>
+ <view
+ class="PlatformCallModal"
+ :style="{ height: 'calc(100vh - ' + windowTop + 'px)' }"
+ >
+ <view class="title" v-if="callType == 2"
+ >鏈堝彴鍙彿({{ activePlatform.name }})</view
+ >
+ <view class="title" v-else>鍏ュ洯鍙彿</view>
<view class="input_wrap">
<u-icon name="search" class="mr12" size="19" color="#999999" />
<input
+ v-model="platformCallSearch"
type="text"
placeholder="鎼滅储杞﹁締鐗岀収"
placeholder-class="placeholder9"
+ @confirm="callQuery"
/>
</view>
<view class="order_list">
- <scroll-view scroll-y="true" class="scroll_view">
- <view class="platform_ing" v-for="i in 8">
+ <scroll-view scroll-y="true" @scrolltolower="callScrolltolower" class="scroll_view">
+ <view
+ class="platform_ing"
+ v-for="item in platformCallList"
+ :key="item.id"
+ >
<view class="head">
- <view class="code">
- <text>鐨�</text>
- <text>AD1212</text>
+ <view v-if="item.carCodeFront" class="code">
+ <text>{{ item.carCodeFront.slice(0, 1) }}</text>
+ <text>{{ item.carCodeFront.slice(1, 2) }}</text>
+ <text>路</text>
+ <text>{{ item.carCodeFront.slice(2) }}</text>
</view>
- <view class="status">鍙彿涓�</view>
+ <view class="status" :class="{ scs: item.status == 4 }">{{
+ statusMap[item.status]
+ }}</view>
</view>
- <view class="line">
+ <view class="line" v-if="item.type == 4">
+ <text class="label">鍚堝悓鍗曞彿</text>
+ <text class="value">{{ item.contractNum }}</text>
+ </view>
+ <view class="line" v-else>
<text class="label">杩愯緭鍗曞彿</text>
- <text class="value">11111</text>
- <text class="primaryColor">杩愬崟璇︽儏</text>
+ <text class="value">{{ item.code }}</text>
+ <text class="primaryColor" @click="handleDetail()"
+ >杩愬崟璇︽儏</text
+ >
</view>
<view class="line">
<text class="label">椹鹃┒鍛�</text>
- <text class="value">11111</text>
+ <text class="value"
+ >{{ item.driverName }} {{ item.drivierPhone }}</text
+ >
</view>
<view class="line">
<text class="label">鎬昏繍杈撻噺</text>
- <text class="value">11111</text>
+ <text class="value">{{ item.totalNum }}涓囨敮</text>
</view>
- <view class="line">
+ <view class="line" v-if="item.type != 4">
<text class="label">杩愯緭鍏徃</text>
- <text class="value">11111</text>
+ <text class="value">{{ item.carrierName }}</text>
</view>
<view class="btns">
- <view class="btn active">鍙彿</view>
+ <view class="btn active" @click="handleCall(item)">鍙彿</view>
</view>
</view>
</scroll-view>
@@ -133,7 +208,10 @@
round="10"
@close="showDetail = false"
>
- <view class="PlatformCallModal">
+ <view
+ class="PlatformCallModal"
+ :style="{ height: 'calc(100vh - ' + windowTop + 'px)' }"
+ >
<view class="title">杩愬崟璇︽儏</view>
<view class="platform_ing" style="padding: 0">
<view class="head">
@@ -193,46 +271,265 @@
round="10"
@close="showTransform = false"
>
- <view class="PlatformCallModal TransformModal">
+ <view class="TransformModal">
<view class="title">杞Щ鏈堝彴</view>
<view class="transform_list">
- <view class="line" v-for="item,index in 9">
- <view class="name">1鍙锋湀鍙�</view>
- <view class="status">(绌洪棽)</view>
- <image v-if="index == 1" src="@/static/ic_select@2x.png" class="checked" />
+ <view
+ class="line"
+ @click="transformPlatClick(item)"
+ v-for="item in activePlatformGroup.platformList"
+ :key="item.id"
+ >
+ <view class="name">{{ item.name }}</view>
+ <view class="status" :class="{ green: item.workStatus == 1 }"
+ >({{ item.workStatus == 0 ? "绌洪棽" : "浣滀笟涓�" }})</view
+ >
+ <image
+ v-if="transformPlatId == item.id"
+ src="@/static/ic_select@2x.png"
+ class="checked"
+ />
</view>
</view>
<view class="btns">
- <view class="btn" @click="showTransform = false">鍙栨秷</view>
- <view class="btn active">纭畾</view>
+ <view class="btn" @click="transformCancel">鍙栨秷</view>
+ <view class="btn active" @click="transformSub">纭畾</view>
</view>
</view>
</u-popup>
+ <!-- -->
+ <u-picker
+ :show="showPlatformgroup"
+ keyName="name"
+ :columns="[platformGroupList]"
+ @cancel="showPlatformgroup = false"
+ @confirm="platConfirm"
+ ></u-picker>
</view>
</template>
<script>
+import {
+ getPlatformGroupList,
+ getPlatformWorkData,
+ platformCallList,
+ platformCallNumber,
+ platformInPark,
+ beginWork,
+ finishWork,
+ platformMove,
+ platformErr,
+ platformOverNumber
+} from '@/api'
+import { statusMap } from '@/utils/config.js'
+import dayjs from 'dayjs'
+import duration from 'dayjs/plugin/duration'
+dayjs.extend(duration)
+
export default {
data() {
return {
+ statusMap,
+ windowTop: 44,
showPlatformCall: false, // 鏈堝彴鍙彿
showDetail: false,
- showTransform: false // 杞Щ
+ showTransform: false, // 杞Щ
+ showPlatformgroup: false,
+
+ platformGroupList: [],
+ activePlatformGroup: {},
+ platformTaskInfo: {},
+ activePlatform: {},
+
+ platformCallList: [],//鍙彿鍒楄〃
+ platformCallSearch: '',
+ platformCallTotal: 0,
+ platformCallPage: 1,
+ callType: 1,
+
+ transformPlatId: '', // 杞Щ璁板綍鏈堝彴id
+ transformId: '', // 杞Щ璁板綍浠诲姟id
}
},
onLoad() {
-
+ this.getPlatformGroup()
+ const res = uni.getWindowInfo()
+ this.windowTop = res.windowTop
},
methods: {
+ getPlatformGroup() {
+ getPlatformGroupList({
+ queryData: 1,
+ queryType: 0
+ }).then(res => {
+ this.platformGroupList = res.data || []
+ if (this.platformGroupList.length > 0) {
+ this.activePlatformGroup = this.platformGroupList[0]
+ if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
+ this.activePlatform = this.activePlatformGroup.platformList[0]
+ this.getPlatformTask()
+ }
+ }
+ })
+ },
+ getPlatformTask() {
+ getPlatformWorkData({ platformId: this.activePlatform.id }).then(res => {
+ this.platformTaskInfo = res.data
+ this.circulInitTaskList()
+ setInterval(() => {
+ this.circulInitTaskList()
+ }, 1000)
+ })
+ },
+ circulInitTaskList() {
+ if (this.platformTaskInfo && this.platformTaskInfo.platformJobList && this.platformTaskInfo.platformJobList.length > 0) {
+ let time = new Date()
+ this.platformTaskInfo.platformJobList.forEach(item => {
+ if (item.callDate) {
+ let timeNum = time.getTime() - new Date(item.callDate).getTime()
+ if (timeNum > 3600000) {
+ item.callDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖绉�')
+ } else {
+ item.callDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
+ }
+ }
+ if (item.startDate) {
+ let timeNum = time.getTime() - new Date(item.startDate).getTime()
+ if (timeNum > 3600000) {
+ item.startDateTemp = dayjs.duration(timeNum).format('H灏忔椂m鍒唖s绉�')
+ } else {
+ item.startDateTemp = dayjs.duration(timeNum).format('m鍒唖绉�')
+ }
+ }
+ })
+ this.$forceUpdate()
+ }
+ },
+ platConfirm(e) {
+ const index = e.indexs[0]
+ this.activePlatformGroup = this.platformGroupList[index]
+ if (this.activePlatformGroup.platformList && this.activePlatformGroup.platformList.length > 0) {
+ this.activePlatform = this.activePlatformGroup.platformList[0]
+ this.getPlatformTask()
+ }
+ this.showPlatformgroup = false
+ },
+ platformClick(item) {
+ this.activePlatform = item
+ this.getPlatformTask()
+ },
handleDetail() {
this.showDetail = true
},
- PlatformCallClick() {
- this.showPlatformCall = true
+ handleFinish(item) {
+ finishWork({ jobId: item.id }).then(res => {
+ this.showToast('瀹屾垚浣滀笟')
+ this.getPlatformTask()
+ })
},
- handleTransform() {
+ handleWork(item) { // 寮�濮嬩綔涓�
+ beginWork({ jobId: item.id }).then(res => {
+ this.showToast('宸插紑濮嬩綔涓�')
+ this.getPlatformTask()
+ })
+ },
+ handlePass(item) {
+ uni.showModal({
+ content: '鎮ㄧ‘璁よ瀵硅浠诲姟杩涜杩囧彿鍚�',
+ success: (res) => {
+ if (res.confirm) {
+ platformOverNumber({ jobId: item.id, platformId: this.activePlatform.id }).then(res => {
+ this.showToast('杩囧彿鎴愬姛')
+ this.getPlatformTask()
+ })
+ }
+ }
+ })
+
+ },
+ handleCall(item) {
+ const { callType, activePlatform } = this
+ this.platformCallList = []
+ this.platformCallPage = 1
+ if (callType == 1) { // 鍏ュ洯鍙彿
+ platformInPark({ jobId: item.id }).then(res => {
+ this.showToast('鍙彿鎴愬姛')
+ this.getPlatformCallList()
+ })
+ } else { // 鏈堝彴鍙彿
+ platformCallNumber({ platformId: activePlatform.id, jobId: item.id }).then(res => {
+ this.showToast('鍙彿鎴愬姛')
+ this.getPlatformCallList()
+ this.getPlatformTask()
+ })
+ }
+ },
+ PlatformCallClick(callType) {
+ this.callType = callType
+ this.showPlatformCall = true
+ this.platformCallList = []
+ this.platformCallPage = 1
+ this.platformCallSearch = ''
+ this.getPlatformCallList()
+ },
+ callQuery() {
+ this.platformCallList = []
+ this.platformCallPage = 1
+ this.getPlatformCallList()
+ },
+ callScrolltolower() {
+ const { platformCallTotal, platformCallList } = this
+ if(platformCallTotal > platformCallList.length){
+ this.getPlatformCallList()
+ }
+ },
+ getPlatformCallList() {
+ const { platformCallPage, callType, activePlatform, platformCallSearch } = this
+ platformCallList({
+ model: { callType, platformId: activePlatform.id, carCodeFront: platformCallSearch },
+ capacity: 10,
+ page: platformCallPage
+ }).then(res => {
+ if (res.data && res.data.records) {
+ this.platformCallList = [ ...this.platformCallList, ...res.data.records]
+ this.platformCallTotal = res.data.total
+ }
+ })
+ },
+ transformPlatClick(item) {
+ this.transformPlatId = item.id
+ },
+ transformCancel() {
+ this.transformPlatId = ''
+ this.showTransform = false
+ },
+ transformSub() {
+ const { transformPlatId, transformId } = this
+ platformMove({ platformId: transformPlatId, jobId: transformId }).then(res => {
+ this.showToast('杞Щ鏈堝彴鎴愬姛')
+ this.transformCancel()
+ this.getPlatformTask()
+ })
+ },
+ handleTransform(item) {
+ let { activePlatform } = this
+ this.transformId = item.id
+ this.transformPlatId = activePlatform.id
this.showTransform = true
},
+ handleErr(item) {
+ uni.showModal({
+ content: '鎮ㄧ‘璁よ瀵硅浠诲姟杩涜寮傚父鎸傝捣鍚�',
+ success: (res) => {
+ if (res.confirm) {
+ platformErr({ jobId: item.id }).then(ress => {
+ this.showToast('寮傚父鎸傝捣鎴愬姛')
+ this.getPlatformTask()
+ })
+ }
+ }
+ })
+ }
}
}
</script>
@@ -323,15 +620,24 @@
border-radius: 8rpx;
border: 1rpx solid #dfdede;
text {
- padding: 0 12rpx;
&:nth-of-type(1) {
background: #e9f5f6;
+ padding: 0 12rpx;
+ }
+ &:nth-of-type(2) {
+ padding-left: 4rpx;
+ }
+ &:nth-of-type(4) {
+ padding-right: 6rpx;
}
}
}
.status {
font-size: 30rpx;
color: $uni-color-primary;
+ }
+ .scs {
+ color: #00ba67;
}
}
.line {
@@ -399,7 +705,7 @@
}
}
.PlatformCallModal {
- height: calc(100vh - 50px);
+ height: calc(100vh - 44px);
padding: 30rpx;
.title {
text-align: center;
@@ -415,7 +721,7 @@
padding: 0 30rpx;
}
.order_list {
- height: calc(100% - 120rpx);
+ height: calc(100% - 140rpx);
.scroll_view {
height: 100%;
}
@@ -465,8 +771,62 @@
}
}
}
+ .btns {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ .btn {
+ width: 336rpx;
+ height: 88rpx;
+ border-radius: 44rpx;
+ border: 1rpx solid $uni-color-primary;
+ color: $uni-color-primary;
+ font-size: 32rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .active {
+ color: #fff;
+ background-color: $uni-color-primary;
+ }
+ }
+}
+.TransformModal {
+ height: 900rpx;
+ padding: 30rpx;
+ position: relative;
+ .title {
+ text-align: center;
+ margin: 0 0 30rpx;
+ }
+ .btns {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ position: absolute;
+ z-index: 999;
+ left: 30rpx;
+ bottom: 30rpx;
+ .btn {
+ width: 336rpx;
+ height: 88rpx;
+ border-radius: 44rpx;
+ border: 1rpx solid $uni-color-primary;
+ color: $uni-color-primary;
+ font-size: 32rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .active {
+ color: #fff;
+ margin-left: 18rpx;
+ background-color: $uni-color-primary;
+ }
+ }
.transform_list {
- height: 760rpx;
+ height: 660rpx;
margin-bottom: 30rpx;
overflow: auto;
.line {
@@ -485,34 +845,14 @@
color: $uni-color-primary;
margin-left: 12rpx;
}
+ .green {
+ color: #00ba67;
+ }
.checked {
width: 40rpx;
height: 40rpx;
}
}
}
- .btns {
- display: flex;
- align-items: center;
- justify-content: space-between;
- .btn {
- width: 336rpx;
- height: 88rpx;
- border-radius: 44rpx;
- border: 1rpx solid $uni-color-primary;
- color: $uni-color-primary;
- font-size: 32rpx;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .active{
- color: #fff;
- background-color: $uni-color-primary;
- }
- }
-}
-.TransformModal{
- height: 1000rpx;
}
</style>
\ No newline at end of file
diff --git a/pda/pages/index/control.vue b/pda/pages/index/control.vue
index 119ab38..02e61af 100644
--- a/pda/pages/index/control.vue
+++ b/pda/pages/index/control.vue
@@ -1,34 +1,47 @@
<template>
<view class="main_app">
- <view class="title">
- <view class="icon"></view>
- <view class="name">瀹夋嘲鐗╂祦鍗歌揣鏈堝彴</view>
- </view>
- <div class="data_list">
- <div class="line">
- <div class="name">1鍙锋湀鍙�</div>
- <u-switch v-model="list"></u-switch>
- </div>
- <div class="line">
- <div class="name">1鍙锋湀鍙�</div>
- <u-switch v-model="list"></u-switch>
- </div>
- </div>
+ <template v-for="item in platformGroupList">
+ <view class="title">
+ <view class="icon"></view>
+ <view class="name">{{item.name}}</view>
+ </view>
+ <view class="data_list">
+ <view class="line" v-for="(platform, i) in item.platformList" :key="platform.id">
+ <view class="name">{{platform.name}}</view>
+ <u-switch v-model="platform.status" activeColor="#279BAA" inactiveColor="#cccccc" :inactiveValue="0" :activeValue="1" @change="e => changeStatus(platform)" />
+ </view>
+ </view>
+ </template>
</view>
</template>
<script>
+ import { getPlatformGroupList, updPlatformStatus } from '@/api'
export default {
data() {
return {
- list: []
+ platformGroupList: []
}
},
onLoad() {
-
+ this.getPlatformGroup()
},
methods: {
-
+ changeStatus(item) {
+ console.log(item);
+ updPlatformStatus({
+ id: item.id,
+ status: item.status
+ })
+ },
+ getPlatformGroup() {
+ getPlatformGroupList({
+ queryData: 1,
+ queryType: 0
+ }).then(res => {
+ this.platformGroupList = res.data || []
+ })
+ },
}
}
</script>
diff --git a/pda/pages/index/login.vue b/pda/pages/index/login.vue
index 6e0f386..60e8d8f 100644
--- a/pda/pages/index/login.vue
+++ b/pda/pages/index/login.vue
@@ -3,7 +3,7 @@
<image class="login_bg" src="@/static/login_bg@2x.png" />
<image class="login_logo" src="@/static/logo@2x.png" mode="widthFix" />
<view class="login_title" style="marginTop: 40rpx;">瀹夋嘲鐗╂祦鏅烘収鍥尯</view>
- <view class="login_title" style="marginBottom: 80rpx;">鐗╂祦杞︾鐞嗙郴缁�</view>
+ <view class="login_title" style="marginBottom: 60rpx;">鏁板瓧鍖栨湀鍙拌皟搴﹀钩鍙�</view>
<view class="login_list">
<view class="login_list_item">
<image src="@/static/login_ic_phone@2x.png" mode="widthFix" />
@@ -42,8 +42,8 @@
data() {
return {
form: {
- account: '',
- password: '',
+ username: '13996529050',
+ password: '123456',
},
isShowProtocol: false,
ProtocolFlag: false,
@@ -53,7 +53,7 @@
},
onLoad() {
- // this.initCaptcha()
+ this.initCaptcha()
},
methods: {
@@ -61,6 +61,33 @@
changeFalg() {
this.ProtocolFlag = !this.ProtocolFlag
},
+ onLogin() {
+ const { form, ProtocolFlag } = this
+ if (!form.username) return uni.showToast({
+ title: '璐﹀彿涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ if (!form.password) return uni.showToast({
+ title: '瀵嗙爜涓嶈兘涓虹┖',
+ icon: 'none'
+ })
+ loginPost({
+ ...form,
+ code: 1,
+ uuid: this.captcha.uuid,
+ openId: this.$store.state.openId
+ }).then(res => {
+ if (res.code === 200) {
+ this.setToken(res.data)
+ getUserInfo().then(ress => {
+ this.setUserInfo(ress.data)
+ uni.redirectTo({
+ url: "/pages/index/index"
+ })
+ })
+ }
+ })
+ },
getContent() {
getSystemDictData({
dictCode: 'SYSTEM',
@@ -78,41 +105,6 @@
this.captcha = res.data
})
},
-
- onLogin() {
- const { form, ProtocolFlag } = this
- if (!ProtocolFlag) return uni.showToast({
- title: '璇峰厛闃呰骞跺悓鎰忕敤鎴峰崗璁�',
- icon: 'none'
- })
- if (!form.username) return uni.showToast({
- title: '璐﹀彿涓嶈兘涓虹┖',
- icon: 'none'
- })
- if (!form.password) return uni.showToast({
- title: '瀵嗙爜涓嶈兘涓虹┖',
- icon: 'none'
- })
- if (!form.code) return uni.showToast({
- title: '楠岃瘉鐮佷笉鑳戒负绌�',
- icon: 'none'
- })
- loginPost({
- ...form,
- uuid: this.captcha.uuid,
- openId: this.$store.state.openId
- }).then(res => {
- if (res.code === 200) {
- this.setToken(res.data)
- getUserInfo().then(ress => {
- this.setUserInfo(ress.data)
- uni.redirectTo({
- url: "/pages/staff/index"
- })
- })
- }
- })
- }
}
}
</script>
@@ -120,9 +112,8 @@
<style lang="scss" scoped>
.login {
width: 100%;
- height: 100vh;
display: flex;
- padding-top: 160rpx;
+ padding-top: 100rpx;
box-sizing: border-box;
align-items: center;
flex-direction: column;
diff --git a/pda/pages/index/queueup.vue b/pda/pages/index/queueup.vue
index c983523..e9e23c7 100644
--- a/pda/pages/index/queueup.vue
+++ b/pda/pages/index/queueup.vue
@@ -1,8 +1,9 @@
<template>
<view class="main_app">
<view class="main_content">
- <view class="title"
- >瀹夋嘲鐗╂祦瑁呰揣骞冲彴<u-icon
+ <view class="title" @click="showPlatformgroup = true"
+ >{{ platformGroup.name
+ }}<u-icon
name="arrow-down"
size="20"
class="ml12"
@@ -12,63 +13,134 @@
<view class="input_wrap">
<u-icon name="search" class="mr12" size="19" color="#999999" />
<input
+ v-model="carCodeFront"
type="text"
placeholder="鎼滅储杞﹁締鐗岀収"
placeholder-class="placeholder9"
+ @confirm="handleQuery"
/>
</view>
<view class="count"
- >宸茬鍒拌溅杈嗭細<text>{{ 10 }}</text></view
+ >宸茬鍒拌溅杈嗭細<text>{{ total }}</text></view
>
</view>
<!-- -->
- <div class="dataList">
- <div class="item">
+ <view class="dataList">
+ <view class="item" v-for="item in platformLineUpList" :key="item.id">
<view class="head">
- <view class="code">
- <text>鐨�</text>
- <text>AD1212</text>
+ <view v-if="item.carCodeFront" class="code">
+ <text>{{ item.carCodeFront.slice(0, 1) }}</text>
+ <text>{{ item.carCodeFront.slice(1, 2) }}</text>
+ <text>路</text>
+ <text>{{ item.carCodeFront.slice(2) }}</text>
</view>
- <view class="status">绛惧埌鏃堕棿锛歿{ 11 }}</view>
+ <view class="status" v-if="item.signDate"
+ >绛惧埌鏃堕棿锛歿{ item.signDate.slice(11, 16) }}</view
+ >
</view>
- <view class="line">
+ <view class="line" v-if="item.type == 4">
+ <text class="label">鍚堝悓鍗曞彿</text>
+ <text class="value">{{ item.contractNum }}</text>
+ </view>
+ <view class="line" v-else>
<text class="label">杩愯緭鍗曞彿</text>
- <text class="value">11111</text>
+ <text class="value">{{ item.code }}</text>
<text class="primaryColor" @click="handleDetail()">杩愬崟璇︽儏</text>
</view>
<view class="line">
<text class="label">椹鹃┒鍛�</text>
- <text class="value">11111</text>
+ <text class="value"
+ >{{ item.driverName }} {{ item.drivierPhone }}</text
+ >
</view>
<view class="line">
<text class="label">鎬昏繍杈撻噺</text>
- <text class="value">11111</text>
+ <text class="value">{{ item.totalNum }}涓囨敮</text>
</view>
- <view class="line">
+ <view class="line" v-if="item.type != 4">
<text class="label">杩愯緭鍏徃</text>
- <text class="value">11111</text>
+ <text class="value">{{ item.carrierName }}</text>
</view>
- <view class="btns">
+ <!-- <view class="btns">
<view class="btn active">鍏ュ洯</view>
- </view>
- </div>
- </div>
+ </view> -->
+ </view>
+ <view v-if="platformLineUpList.length == 0" class="empty_wrap">
+ <image src="@/static/default_nodata@2x.png" />
+ <text>鏆傛棤浣滀笟杞﹁締</text>
+ </view>
+ </view>
+ <u-picker
+ :show="showPlatformgroup"
+ keyName="name"
+ :columns="[platformGroupList]"
+ @cancel="showPlatformgroup = false"
+ @confirm="platConfirm"
+ ></u-picker>
</view>
</template>
<script>
+import { platformLineUpPage, getPlatformGroupList } from '@/api'
export default {
data() {
return {
- showDetail: false
+ showDetail: false,
+ showPlatformgroup: false,
+ capacity: 10,
+ page: 1,
+ total: 0,
+ carCodeFront: '',
+ platformGroup: {},
+ platformGroupList: [],
+ platformLineUpList: []
}
},
onLoad() {
-
+ this.getPlatformGroup()
},
+ onReachBottom() {
+ if(this.total > this.platformLineUpList.length){
+ this.getList()
+ }
+ },
methods: {
handleDetail() {
this.showDetail = true
+ },
+ getPlatformGroup() {
+ getPlatformGroupList({
+ queryData: 1,
+ queryType: 0
+ }).then(res => {
+ this.platformGroupList = res.data || []
+ if (this.platformGroupList && this.platformGroupList.length > 0) {
+ this.platformGroup = this.platformGroupList[0]
+ this.getList()
+ }
+ })
+ },
+ getList() {
+ const { page, capacity, platformGroup, carCodeFront } = this
+ platformLineUpPage({
+ capacity, page, model: { platformGroupId: platformGroup.id, callType: 2, carCodeFront }
+ }).then(res => {
+ if (res.data) {
+ this.platformLineUpList = [...this.platformLineUpList, ...res.data.records || []]
+ this.total = res.data.total || 0
+ }
+ })
+ },
+ handleQuery() {
+ this.page = 1
+ this.platformLineUpList = []
+ this.getList()
+ },
+ platConfirm(e) {
+ const index = e.indexs[0]
+ this.platformGroup = this.platformGroupList[index]
+ this.getList()
+ this.showPlatformgroup = false
},
}
}
@@ -135,9 +207,15 @@
border-radius: 8rpx;
border: 1rpx solid #dfdede;
text {
- padding: 0 12rpx;
&:nth-of-type(1) {
background: #e9f5f6;
+ padding: 0 12rpx;
+ }
+ &:nth-of-type(2) {
+ padding-left: 4rpx;
+ }
+ &:nth-of-type(4) {
+ padding-right: 6rpx;
}
}
}
diff --git a/pda/pages/index/set.vue b/pda/pages/index/set.vue
index 2a6c345..13473b0 100644
--- a/pda/pages/index/set.vue
+++ b/pda/pages/index/set.vue
@@ -1,33 +1,74 @@
<template>
<view class="main_app">
- <view class="title">
- <view class="icon"></view>
- <view class="name">瀹夋嘲鐗╂祦鍗歌揣鏈堝彴</view>
- </view>
- <div class="data_list">
- <div
- class="item"
- :class="{ active: i == 1 }"
- v-for="(item, i) in 7"
- :key="i"
- >
- {{ i }}鍙锋湀鍙�
- </div>
- </div>
+ <template v-for="item in platformGroupList">
+ <view class="title">
+ <view class="icon"></view>
+ <view class="name">{{item.name}}</view>
+ </view>
+ <view class="data_list">
+ <view
+ class="item"
+ :class="{ active: platform.showConfig }"
+ v-for="(platform, i) in item.platformList"
+ :key="platform.id"
+ @click="platformClick(platform.id)"
+ >
+ {{platform.name}}
+ </view>
+ </view>
+ </template>
+ <view class="btns">
+ <div class="btn" @click="$goBack">鍙栨秷</div>
+ <div class="btn active" @click="updUserPlatform">纭畾</div>
+ </view>
</view>
</template>
<script>
+import { getPlatformGroupList, updUserPlatformConfig } from '@/api'
export default {
data() {
return {
+ platformGroupList: []
}
},
onLoad() {
-
+ this.getPlatformGroup()
},
methods: {
-
+ updUserPlatform(){
+ const { platformGroupList } = this
+ let ids = []
+ platformGroupList.forEach(item => {
+ item.platformList.forEach(platform => {
+ if(platform.showConfig){
+ ids.push(platform.id)
+ }
+ })
+ })
+ updUserPlatformConfig({ids}).then(res => {
+ this.showToast('鏇存柊鎴愬姛')
+ this.$goBack()
+ })
+ },
+ platformClick(id) {
+ const { platformGroupList } = this
+ platformGroupList.forEach(item => {
+ item.platformList.forEach(platform => {
+ if(platform.id === id){
+ platform.showConfig = !platform.showConfig
+ }
+ })
+ })
+ },
+ getPlatformGroup() {
+ getPlatformGroupList({
+ queryData: 1,
+ queryType: 1
+ }).then(res => {
+ this.platformGroupList = res.data || []
+ })
+ },
}
}
</script>
@@ -43,6 +84,9 @@
margin-bottom: 20rpx;
padding: 30rpx;
background-color: #fff;
+ &:nth-last-child(1){
+ margin-bottom: 120rpx;
+ }
.item {
width: 210rpx;
height: 80rpx;
@@ -83,4 +127,33 @@
}
}
}
+.btns{
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ width: 750rpx;
+ height: 120rpx;
+ background: #FFFFFF;
+ box-shadow: 0rpx -4rpx 12rpx 0rpx rgba(0,0,0,0.1);
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 0 30rpx;
+ .btn{
+ width: 336rpx;
+ height: 88rpx;
+ background: #FFFFFF;
+ border-radius: 44rpx;
+ border: 1rpx solid #999999;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 32rpx;
+ color: #333333;
+ }
+ .active{
+ background: $uni-color-primary;
+ color: #fff;
+ }
+}
</style>
\ No newline at end of file
diff --git a/pda/static/default_nodata@2x.png b/pda/static/default_nodata@2x.png
index a4de18b..e3f3124 100644
--- a/pda/static/default_nodata@2x.png
+++ b/pda/static/default_nodata@2x.png
Binary files differ
diff --git a/pda/utils/config.js b/pda/utils/config.js
index 03c8927..c34dbbf 100644
--- a/pda/utils/config.js
+++ b/pda/utils/config.js
@@ -2,3 +2,18 @@
export const baseUrl = 'admin_interface/'
export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`
export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch`
+
+export const statusMap = {
+ 0: '寰呯‘璁�',
+ 1: '寰呯鍒�',
+ 2: '绛夊緟鍙彿',
+ 3: '鍏ュ洯绛夊緟',
+ 4: '鏈堝彴绛夊緟', //宸插彨鍙�
+ 5: '浣滀笟涓�',
+ 6: '浣滀笟瀹屾垚',
+ 7: '杞Щ涓�',
+ 8: '寮傚父鎸傝捣',
+ 9: '宸叉巿鏉冪鍥�',
+ 10: '宸茬鍥�',
+ 11: '宸茶繃鍙�',
+}
\ No newline at end of file
diff --git a/pda/utils/service.js b/pda/utils/service.js
index 41d0bdf..936c175 100644
--- a/pda/utils/service.js
+++ b/pda/utils/service.js
@@ -34,9 +34,10 @@
duration: 2000
})
})
+ return
}
if (data.code === 5112) {
- uni.navigateTo({
+ return uni.navigateTo({
url: '/pages/login/login'
})
}
diff --git a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
index e8788fc..9a829ed 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -746,17 +746,18 @@
* 0浠诲姟鍒涘缓 1鍙告満纭浠诲姟 2鍙告満绛惧埌 3鍏ュ洯绛夊緟 4鏈堝彴鍙彿 5寮�濮嬩綔涓� 6浣滀笟瀹屾垚 7鏈堝彴杞Щ 8浠诲姟鎸傝捣 9涓嬪彂鎺堟潈绂诲洯 10绂诲洯
*/
public enum PlatformJobLogType {
- CREATE(0, "浠诲姟鍒涘缓","浠诲姟鍒涘缓" ),
- CONFIRM_TASK(1, "鍙告満纭浠诲姟","鍙告満纭浠诲姟" ),
- SIGN(2, "鍙告満绛惧埌","鍙告満绛惧埌"),
- IN_WAIT(3, "鍏ュ洯绛夊緟","鍏ュ洯绛夊緟" ),
- CALLED(4, "鏈堝彴鍙彿","鏈堝彴鍙彿" ),
- WORKING(5, "寮�濮嬩綔涓�","寮�濮嬩綔涓�" ),
- DONE(6, "浣滀笟瀹屾垚 ","浣滀笟瀹屾垚 " ),
- TRANSFERING(7, "鏈堝彴杞Щ","鏈堝彴杞Щ" ),
- EXCEPTION(8, "浠诲姟鎸傝捣","浠诲姟鎸傝捣" ),
+ CREATE(0, "浠诲姟鍒涘缓","鍏ュ洯棰勭害鎴愬姛" ),
+ CONFIRM_TASK(1, "鍙告満纭浠诲姟","宸插畬鎴愭椂闂寸‘璁�" ),
+ SIGN(2, "鍙告満绛惧埌","鎺掗槦绛夊緟鍙彿"),
+ IN_WAIT(3, "鍏ュ洯绛夊緟","鍙彿鍏ュ洯绛夊緟" ),
+ CALLED(4, "鏈堝彴鍙彿","{data}鍙彿" ),
+ WORKING(5, "寮�濮嬩綔涓�","杩涘叆{data}寮�濮嬩綔涓�" ),
+ DONE(6, "浣滀笟瀹屾垚 ","鏈堝彴浣滀笟瀹屾垚锛岄┒绂绘湀鍙�" ),
+ TRANSFERING(7, "鏈堝彴杞Щ","{data}鍙戣捣鏈堝彴杞Щ" ),
+ EXCEPTION(8, "浠诲姟鎸傝捣","浣滀笟寮傚父琚寕璧�" ),
AUTHED_LEAVE(9, "涓嬪彂鎺堟潈绂诲洯","涓嬪彂鎺堟潈绂诲洯" ),
- LEAVED(10, "宸茬鍥� ","宸茬鍥� " ),
+ LEAVED(10, "宸茬鍥� ","杞﹁締浠巤data}绂诲満 " ),
+ OVER_NUMBER(11, "宸茶繃鍙�","瓒呮椂鏈埌鎸囧畾鏈堝彴鑷姩杩囧彿" ),
;
// 鎴愬憳鍙橀噺
@@ -811,8 +812,8 @@
public enum PlatformJobStatus {
WAIT_CONFIRM(0, "寰呯‘璁�","寰呯‘璁�" ),
WART_SIGN_IN(1, "寰呯鍒�","寰呯鍒�" ),
- WAIT_CALL(2, "宸茬鍒�","宸茬鍒�"), //绛夊緟鍙彿鍏ュ洯
- IN_WAIT(3, "鍏ュ洯绛夊緟","鍏ュ洯绛夊緟" ),//宸插叆鍥� 鏈彨鍙疯繘鍏ユ湀鍙�
+ WAIT_CALL(2, "宸茬鍒�","宸茬鍒�"),
+ IN_WAIT(3, "鍏ュ洯绛夊緟","鍏ュ洯绛夊緟" ),
CALLED(4, "宸插彨鍙�","宸插彨鍙�" ),
WORKING(5, "浣滀笟涓�","浣滀笟涓�" ),
DONE(6, "浣滀笟瀹屾垚 ","浣滀笟瀹屾垚 " ),
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
index 3ac0fde..5acfa7d 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformCloudController.java
@@ -9,8 +9,15 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Platform;
+import com.doumee.dao.business.model.PlatformGroup;
+import com.doumee.dao.business.model.PlatformJob;
+import com.doumee.dao.web.reqeust.JobOperateDTO;
+import com.doumee.dao.web.reqeust.PlatformDataDTO;
+import com.doumee.dao.web.response.PlatformWorkVO;
+import com.doumee.service.business.PlatformGroupService;
import com.doumee.service.business.PlatformJobService;
import com.doumee.service.business.PlatformService;
+import com.doumee.service.business.PlatformShowParamService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -23,7 +30,7 @@
* @author 姹熻箘韫�
* @since 2024/04/28 16:06
*/
-@Api(tags = "鏈堝彴淇℃伅琛�")
+@Api(tags = "銆愬悗绔�戞湀鍙颁俊鎭〃")
@RestController
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/platform")
public class PlatformCloudController extends BaseController {
@@ -32,7 +39,13 @@
private PlatformService platformService;
@Autowired
+ private PlatformGroupService platformGroupService;
+
+ @Autowired
private PlatformJobService platformJobService;
+
+ @Autowired
+ private PlatformShowParamService platformShowParamService;
@PreventRepeat
@ApiOperation("鏂板缓")
@@ -103,4 +116,102 @@
public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
return ApiResponse.success(platformService.findById(id));
}
+
+
+
+
+ @ApiOperation("鑾峰彇鏈堝彴缁勪俊鎭�")
+ @PostMapping("/getPlatformGroupList")
+ public ApiResponse<List<PlatformGroup>> getPlatformGroupList (@RequestBody PlatformDataDTO platformDataDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ return ApiResponse.success(platformGroupService.getAllPlatformGroup(platformDataDTO,getLoginUser(token)));
+ }
+
+ @ApiOperation("鑾峰彇鏈堝彴浠诲姟淇℃伅")
+ @GetMapping("/getPlatformWorkData")
+ public ApiResponse<PlatformWorkVO> getPlatformWorkData (@RequestParam Integer platformId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ return ApiResponse.success(platformJobService.getPlatformWorkVOById(platformId));
+ }
+
+ @ApiOperation("鏇存柊鏈堝彴閰嶇疆淇℃伅")
+ @GetMapping("/updUserPlatformConfig")
+ public ApiResponse updUserPlatformConfig (@RequestParam List<Integer> ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ platformShowParamService.updUserConfig(ids,getLoginUser(token));
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+
+ @ApiOperation("杞﹁締鎺掗槦鎯呭喌")
+ @PostMapping("/platformLineUpPage")
+ public ApiResponse<PageData<PlatformJob>> platformLineUpPage (@RequestBody PageWrap<PlatformJob> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(platformJobService.platformCallList(pageWrap));
+ }
+
+
+ @ApiOperation("鍙彿鍒楄〃")
+ @PostMapping("/platformCallList")
+ public ApiResponse<PageData<PlatformJob>> platformCallList (@RequestBody PageWrap<PlatformJob> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(platformJobService.platformCallList(pageWrap));
+ }
+
+
+ @ApiOperation("鍙彿鍏ュ洯")
+ @PostMapping("/platformInPark")
+ public ApiResponse platformInPark (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+ platformJobService.platformInPark(jobOperateDTO);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+ @ApiOperation("鏈堝彴鍙彿")
+ @PostMapping("/platformCallNumber")
+ public ApiResponse platformCallNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+ platformJobService.platformCallNumber(jobOperateDTO);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+
+ @ApiOperation("杞Щ鏈堝彴")
+ @PostMapping("/platformMove")
+ public ApiResponse platformMove (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+ platformJobService.platformMove(jobOperateDTO);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+ @ApiOperation("鏈堝彴杩囧彿")
+ @PostMapping("/platformOverNumber")
+ public ApiResponse platformOverNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+ platformJobService.platformOverNumber(jobOperateDTO);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+ @ApiOperation("寮傚父鎸傝捣")
+ @PostMapping("/platformErr")
+ public ApiResponse platformErr (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+ platformJobService.platformErr(jobOperateDTO);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+ @ApiOperation("鎵嬪姩寮�濮嬩綔涓�")
+ @PostMapping("/beginWork")
+ public ApiResponse beginWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+ platformJobService.beginWork(jobOperateDTO);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+
+ @ApiOperation("瀹屾垚浣滀笟")
+ @PostMapping("/finishWork")
+ public ApiResponse finishWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+ platformJobService.finishWork(jobOperateDTO);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+
+
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
index a614144..c4a02f9 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/PlatformGroupCloudController.java
@@ -9,8 +9,11 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.PlatformGroup;
+import com.doumee.dao.web.reqeust.PlatformDataDTO;
import com.doumee.service.business.PlatformGroupService;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -92,4 +95,14 @@
public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
return ApiResponse.success(platformGroupService.findById(id));
}
+
+ @ApiOperation("鑾峰彇鏈堝彴缁勪俊鎭�")
+ @PostMapping("/getPlatformGroupList")
+ @CloudRequiredPermission("business:platformgroup:query")
+ public ApiResponse<List<PlatformGroup>> getPlatformGroupList (@RequestBody PlatformDataDTO platformDataDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ return ApiResponse.success(platformGroupService.getAllPlatformGroup(platformDataDTO,getLoginUser(token)));
+ }
+
+
+
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
index 6342791..686dbf0 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/openapi/HkOpenApiController.java
@@ -7,8 +7,13 @@
import com.doumee.core.utils.Constants;
import com.doumee.dao.openapi.request.*;
import com.doumee.dao.openapi.response.*;
+import com.doumee.service.business.PlatformJobService;
+import com.doumee.service.business.PlatformLogService;
+import com.doumee.service.business.PlatformService;
+import com.doumee.service.business.PlatformWaterGasService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -26,67 +31,66 @@
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/hk/api")
public class HkOpenApiController extends BaseController {
+ @Autowired
+ private PlatformService platformService;
+
+ @Autowired
+ private PlatformLogService platformLogService;
+
+ @Autowired
+ private PlatformJobService platformJobService;
+
+ @Autowired
+ private PlatformWaterGasService platformWaterGasService;
+
@PreventRepeat
@ApiOperation("銆愮敤姘撮噺銆戞湰鏈堛�佷笂鏈堝拰鍘诲勾鍚屾湀")
@PostMapping("/water/dataByMonth")
@LoginNoRequired
public ApiResponse<WaterByMonthResponse> waterDataByMonth(@RequestBody WaterByMonthRequest param) {
- return ApiResponse.success(new WaterByMonthResponse());
- }
- @PreventRepeat
- @ApiOperation("銆愮敤姘撮噺銆戣繎12涓湀鐢ㄦ按閲忎俊鎭垪琛�")
- @PostMapping("/water/lastMonthsDataList")
- @LoginNoRequired
- public ApiResponse<List<PlatformLastMonthListResponse>> lastMonthsWaterList( ) {
- return ApiResponse.success(new ArrayList<>());
- }
- @ApiOperation("銆愮敤姘旈噺銆戣繎12涓湀鐢ㄦ皵閲忎俊鎭垪琛�")
- @PostMapping("/gas/lastMonthsDataList")
- @LoginNoRequired
- public ApiResponse<List<PlatformLastMonthListResponse>> lastMonthsGasList () {
- return ApiResponse.success(new ArrayList<>());
+ return ApiResponse.success(platformWaterGasService.waterDataByMonth(param));
}
@PreventRepeat
@ApiOperation("銆愮敤姘旈噺銆戞湰鏈堛�佷笂鏈堝拰鍘诲勾鍚屾湀")
@PostMapping("/gas/dataByMonth")
@LoginNoRequired
public ApiResponse<GasByMonthResponse> gasDataByMonth(@RequestBody GasByMonthRequest param) {
- return ApiResponse.success(new GasByMonthResponse());
+ return ApiResponse.success(platformWaterGasService.gasDataByMonth(param));
}
@PreventRepeat
@ApiOperation("銆愭湀鍙般�戞寜澶╃粺璁¤繍鍗曡姹傚弬鏁�")
@PostMapping("/platform/orderNumByDate")
@LoginNoRequired
public ApiResponse<PlatformOrderNumByDateResponse> orderNumByDate(@RequestBody PlatformOrderNumByDateRequest param) {
- return ApiResponse.success(new PlatformOrderNumByDateResponse());
+ return ApiResponse.success(platformJobService.orderNumByDate(param));
}
@PreventRepeat
- @ApiOperation("銆愭湀鍙般�戞湀鍙板悇鐘舵�佹暟閲忕粺璁�")
+ @ApiOperation("銆愭湀鍙般�戞湀鍙扮姸鎬佹暟閲忕粺璁�")
@PostMapping("/platform/totalNumByStatus")
@LoginNoRequired
- public ApiResponse<PlatformNumByStatusResponse> totalNumByStatus( ) {
- return ApiResponse.success(new PlatformNumByStatusResponse());
+ public ApiResponse<PlatformNumByStatusResponse> totalNumByStatus(@RequestBody PlatformNumByStatusRequest param) {
+ return ApiResponse.success(platformService.getPlatformNumByStatusResponse());
}
@PreventRepeat
@ApiOperation("銆愭湀鍙般�戞湀鍙板綋鍓嶄綔涓氫俊鎭垪琛�")
@PostMapping("/platform/workingDataList")
@LoginNoRequired
- public ApiResponse<List<PlatformDataListResponse>> platformWorkingDataList( ) {
- return ApiResponse.success(new ArrayList<>());
+ public ApiResponse<List<PlatformDataListResponse>> platformWorkingDataList(@RequestBody PlatformDataListRequest param) {
+ return ApiResponse.success(platformJobService.platformWorkingDataList(param));
}
@PreventRepeat
@ApiOperation("銆愭湀鍙般�戞湀鍙颁綔涓氳鎯呬俊鎭�")
@PostMapping("/platform/workDataInfo")
@LoginNoRequired
- public ApiResponse<PlatformDataInfoResponse> platformWorkingDataInfo(@RequestBody PlatformDataInfoRequest param) {
- return ApiResponse.success(new PlatformDataInfoResponse());
+ public ApiResponse<PlatformDataInfoResponse> platformWorkingDataList(@RequestBody PlatformDataInfoRequest param) {
+ return ApiResponse.success(platformJobService.platformWorkingDataList(param));
}
@PreventRepeat
@ApiOperation("銆愭湀鍙般�戝綋鍓嶈溅杈嗙姸鎬佹暟閲忕粺璁�")
@PostMapping("/platform/carStatusNum")
@LoginNoRequired
- public ApiResponse<CarNumByStatusResponse> carStatusNum( ) {
- return ApiResponse.success(new CarNumByStatusResponse());
+ public ApiResponse<CarNumByStatusResponse> carStatusNum(@RequestBody CarNumByStatusRequest param) {
+ return ApiResponse.success(platformJobService.carStatusNum(param));
}
@PreventRepeat
@@ -94,21 +98,21 @@
@PostMapping("/platform/carLogsList")
@LoginNoRequired
public ApiResponse<List<CarLogsListResponse>> carLogsList(@RequestBody CarLogsListRequest param) {
- return ApiResponse.success(new ArrayList<>());
+ return ApiResponse.success(platformLogService.getCarLogsListResponse(param));
}
@PreventRepeat
@ApiOperation("銆愭湀鍙般�戞帓闃熼槦鍒楀垪琛ㄩ泦鍚�")
@PostMapping("/platform/queueList")
@LoginNoRequired
- public ApiResponse< PlatformQueuingListResponse> queueList( ) {
- return ApiResponse.success(new PlatformQueuingListResponse());
+ public ApiResponse<PlatformQueuingListResponse> queueList(@RequestBody PlatformQueuingListRequest param) {
+ return ApiResponse.success(platformJobService.queueList(param));
}
@PreventRepeat
@ApiOperation("銆愭湀鍙般�戦璀︿簨浠堕泦鍚堝垪琛�")
@PostMapping("/platform/warningEventList")
@LoginNoRequired
- public ApiResponse<List<CarLogsListResponse>> warningEventList( ) {
+ public ApiResponse<List<PlatformWarnEventListResponse>> warningEventList(@RequestBody PlatformWarnEventListRequest param) {
return ApiResponse.success(new ArrayList<>());
}
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
index 688be9f..b87d935 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
@@ -87,6 +87,16 @@
return ApiResponse.success(platformBooksService.apply(platformBooksApplyDTO));
}
+
+ @ApiOperation("鐗╂祦杞﹂绾︿慨鏀�")
+ @PostMapping("/applyEdit")
+ public ApiResponse<Integer> applyEdit (@RequestBody PlatformBooksApplyDTO platformBooksApplyDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ LoginUserInfo loginUserInfo = getLoginUser(token);
+ platformBooksApplyDTO.setUserId(loginUserInfo.getMemberId());
+ platformBooksApplyDTO.setDriverId(loginUserInfo.getMemberId());
+ return ApiResponse.success(platformBooksService.edit(platformBooksApplyDTO));
+ }
+
@ApiOperation("鐗╂祦杞﹂绾﹁褰�")
@PostMapping("/page")
public ApiResponse<PageData<PlatformBooks>> findPage (@RequestBody PageWrap<PlatformBooks> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
@@ -111,6 +121,13 @@
}
/******************************************************鍙告満浠诲姟鎺ュ彛************************************************************************/
+ @ApiOperation("浠诲姟纭")
+ @PostMapping("/confirmTask")
+ public ApiResponse confirmTask (@RequestBody ConfirmTaskDTO confirmTaskDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ confirmTaskDTO.setLoginUserInfo(getLoginUser(token));
+ platformJobService.confirmTask(confirmTaskDTO);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
@ApiOperation("浠诲姟绛惧埌")
@PostMapping("/signIn")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java
index bee4a37..8be5af1 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java
@@ -12,6 +12,7 @@
import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.DriverHomeVO;
import com.doumee.dao.web.response.LineUpVO;
+import com.doumee.dao.web.response.PlatformWorkVO;
import com.doumee.service.business.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -55,17 +56,20 @@
private PlatformService platformService;
@ApiOperation("鑾峰彇鏈堝彴缁勪俊鎭�")
- @ApiImplicitParams({
- @ApiImplicitParam(name = "queryType", dataType = "Integer", value = "0=鍏ㄩ儴鏈堝彴锛�1=鍚敤鏈堝彴 2=閰嶇疆鏄剧ず鏈堝彴", required = false)
- })
- @GetMapping("/getPlatformGroupList")
- public ApiResponse<List<PlatformGroup>> getPlatformGroupList (@RequestParam Integer queryType, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
- return ApiResponse.success(platformGroupService.getAllPlatformGroup(queryType,getLoginUser(token)));
+ @PostMapping("/getPlatformGroupList")
+ public ApiResponse<List<PlatformGroup>> getPlatformGroupList (@RequestBody PlatformDataDTO platformDataDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ return ApiResponse.success(platformGroupService.getAllPlatformGroup(platformDataDTO,getLoginUser(token)));
+ }
+
+ @ApiOperation("鑾峰彇鏈堝彴浠诲姟淇℃伅")
+ @GetMapping("/getPlatformWorkData")
+ public ApiResponse<PlatformWorkVO> getPlatformWorkData (@RequestParam Integer platformId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ return ApiResponse.success(platformJobService.getPlatformWorkVOById(platformId));
}
@ApiOperation("鏇存柊鏈堝彴閰嶇疆淇℃伅")
- @PostMapping("/updUserPlatformConfig")
- public ApiResponse updUserPlatformConfig (@RequestBody List<Integer> ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ @GetMapping("/updUserPlatformConfig")
+ public ApiResponse updUserPlatformConfig (@RequestParam List<Integer> ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
platformShowParamService.updUserConfig(ids,getLoginUser(token));
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
@@ -73,22 +77,38 @@
@ApiOperation("淇敼绂佸惎鐢ㄧ姸鎬�")
@PostMapping("/updPlatformStatus")
public ApiResponse updPlatformStatus (@RequestBody Platform platform, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
+ platform.setLoginUserInfo(getLoginUser(token));
platformService.updateStatusById(platform);
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
@ApiOperation("杞﹁締鎺掗槦鎯呭喌")
@PostMapping("/platformLineUpPage")
- public ApiResponse<PageData<PlatformJob>> platformLineUpPage (@RequestBody PageWrap<PlatformJob> pageWrap) {
- return ApiResponse.success(platformJobService.findPage(pageWrap));
+ public ApiResponse<PageData<PlatformJob>> platformLineUpPage (@RequestBody PageWrap<PlatformJob> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(platformJobService.platformCallList(pageWrap));
}
+
+ @ApiOperation("鍙彿鍒楄〃")
+ @PostMapping("/platformCallList")
+ public ApiResponse<PageData<PlatformJob>> platformCallList (@RequestBody PageWrap<PlatformJob> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(platformJobService.platformCallList(pageWrap));
+ }
+
+
+ @ApiOperation("鍙彿鍏ュ洯")
+ @PostMapping("/platformInPark")
+ public ApiResponse platformInPark (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ jobOperateDTO.setLoginUserInfo(getLoginUser(token));
+ platformJobService.platformInPark(jobOperateDTO);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
@ApiOperation("鏈堝彴鍙彿")
@PostMapping("/platformCallNumber")
public ApiResponse platformCallNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
jobOperateDTO.setLoginUserInfo(getLoginUser(token));
- platformJobService.platformInPark(jobOperateDTO);
+ platformJobService.platformCallNumber(jobOperateDTO);
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
@@ -97,7 +117,7 @@
@PostMapping("/platformMove")
public ApiResponse platformMove (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
jobOperateDTO.setLoginUserInfo(getLoginUser(token));
- platformJobService.platformInPark(jobOperateDTO);
+ platformJobService.platformMove(jobOperateDTO);
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
@@ -105,7 +125,7 @@
@PostMapping("/platformOverNumber")
public ApiResponse platformOverNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
jobOperateDTO.setLoginUserInfo(getLoginUser(token));
- platformJobService.platformInPark(jobOperateDTO);
+ platformJobService.platformOverNumber(jobOperateDTO);
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
@@ -113,7 +133,7 @@
@PostMapping("/platformErr")
public ApiResponse platformErr (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
jobOperateDTO.setLoginUserInfo(getLoginUser(token));
- platformJobService.platformInPark(jobOperateDTO);
+ platformJobService.platformErr(jobOperateDTO);
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
@@ -121,7 +141,7 @@
@PostMapping("/beginWork")
public ApiResponse beginWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
jobOperateDTO.setLoginUserInfo(getLoginUser(token));
- platformJobService.platformInPark(jobOperateDTO);
+ platformJobService.beginWork(jobOperateDTO);
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
@@ -130,7 +150,7 @@
@PostMapping("/finishWork")
public ApiResponse finishWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
jobOperateDTO.setLoginUserInfo(getLoginUser(token));
- platformJobService.platformInPark(jobOperateDTO);
+ platformJobService.finishWork(jobOperateDTO);
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
index 7f6c4b6..fafc0aa 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Platform.java
@@ -4,6 +4,7 @@
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.LoginUserModel;
+import com.doumee.dao.web.response.PlatformWorkVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -183,4 +184,10 @@
@ApiModelProperty(value = "浣滀笟鐘舵�侊細0=绌洪棽锛�1=浣滀笟涓�")
@TableField(exist = false)
private Integer workStatus;
+
+
+
+ @ApiModelProperty(value = "鏈堝彴浣滀笟鏁版嵁")
+ @TableField(exist = false)
+ private PlatformWorkVO platformWorkVO;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
index 364d303..a82275a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformGroup.java
@@ -81,4 +81,13 @@
@ApiModelProperty(value = "鏈堝彴缁勪笅鐨勬湀鍙�")
@TableField(exist = false)
private List<Platform> platformList;
+
+
+ @ApiModelProperty(value = "浣滀笟涓帓闃熻溅杈�", example = "1")
+ @TableField(exist = false)
+ private List<PlatformJob> workJobList;
+
+ @ApiModelProperty(value = "宸茬鍒版帓闃熻溅杈�", example = "1")
+ @TableField(exist = false)
+ private List<PlatformJob> signJobList;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
index f3e24c0..cce09ae 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -274,13 +274,21 @@
@TableField(exist = false)
private String finishTimeStr;
- @ApiModelProperty(value = "鍏宠仈鏈堝彴缁勭紪鐮侊紙鍏宠仈platform_group琛級", example = "1")
- @TableField(exist = false)
- private Integer groupId;
-
@ApiModelProperty(value = "浣滀笟鏈堝彴鍚嶇О")
@TableField(exist = false)
private String platformName ;
+
+ @ApiModelProperty(value = "wms涓氬姟涓婚敭")
+ @TableField(exist = false)
+ private Integer wmsId ;
+
+ @ApiModelProperty(value = "鏈堝彴缁勭被鍨嬶細0瀹夋嘲鐗╂祦瑁呰揣 1瀹夋嘲鐗╂祦鍗歌揣 2甯傚叕鍙稿嵏璐�")
+ @TableField(exist = false)
+ private Integer groupType ;
+
+ @ApiModelProperty(value = "鎵胯繍鍟�")
+ @TableField(exist = false)
+ private String carrierName ;
@ApiModelProperty(value = "璺濈绛惧埌鐐硅窛绂�")
@TableField(exist = false)
@@ -302,6 +310,14 @@
@TableField(exist = false)
private PlatformWmsJob platformWmsJob;
+ @ApiModelProperty(value = "鏀惰揣鍦帮紙鐩殑鍦帮級")
+ @TableField(exist = false)
+ private String repertotyAddress;
+
+ @ApiModelProperty(value = "鍙彿绫诲瀷锛�1=鍙彿鍏ュ洯 锛� 2=鏈堝彴鍙彿 锛� 3=鎺掗槦鎯呭喌", example = "1")
+ @TableField(exist = false)
+ private Integer callType;
+
public void dealTime(){
if(Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WAIT_CONFIRM.getKey())
|| Constants.equalsInteger(this.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java
index dc52393..5ed449e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformLog.java
@@ -91,7 +91,7 @@
@ExcelColumn(name="鍙傛暟3")
private String param3;
- @ApiModelProperty(value = "鍙傛暟4")
+ @ApiModelProperty(value = "鍙傛暟4 杞︾墝鐓�")
@ExcelColumn(name="鍙傛暟4")
private String param4;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java
index a801e0d..ec20891 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformWaterGas.java
@@ -60,8 +60,8 @@
@ExcelColumn(name="鎺掑簭鐮�")
private Integer sortnum;
- @ApiModelProperty(value = "绫诲瀷 0鐢ㄧ數 1鐢ㄧ數 2娌硅��", example = "1")
- @ExcelColumn(name="绫诲瀷 0鐢ㄧ數 1鐢ㄧ數 2娌硅��")
+ @ApiModelProperty(value = "绫诲瀷 0鐢ㄦ按 1鐢ㄦ皵 2鐢ㄦ补", example = "1")
+ @ExcelColumn(name="绫诲瀷 0鐢ㄦ按 1鐢ㄦ皵 2鐢ㄦ补")
private Integer type;
@ApiModelProperty(value = "鏁伴噺 (鐢ㄧ數椤匡紝鐢ㄧ數搴︼紱 娌硅�桳锛�", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/GasByMonthRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/GasByMonthRequest.java
index 23c3552..0131957 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/GasByMonthRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/GasByMonthRequest.java
@@ -1,11 +1,12 @@
package com.doumee.dao.openapi.request;
-import com.doumee.core.utils.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.util.Date;
+
/**
* Created by IntelliJ IDEA.
*
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformOrderNumByDateRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformOrderNumByDateRequest.java
index ee8d53b..8277dd6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformOrderNumByDateRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/PlatformOrderNumByDateRequest.java
@@ -1,11 +1,12 @@
package com.doumee.dao.openapi.request;
-import com.doumee.core.utils.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.util.Date;
+
/**
* Created by IntelliJ IDEA.
*
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java
index 556e6ea..816c6db 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/request/WaterByMonthRequest.java
@@ -1,6 +1,5 @@
package com.doumee.dao.openapi.request;
-import com.doumee.core.utils.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
@@ -9,6 +8,7 @@
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
+import java.util.Date;
/**
* Created by IntelliJ IDEA.
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/CarNumByStatusResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/CarNumByStatusResponse.java
index 3c36936..8b0a5d3 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/CarNumByStatusResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/CarNumByStatusResponse.java
@@ -13,13 +13,12 @@
@Data
@ApiModel("銆愭湀鍙般�戝綋鍓嶈溅杈嗙姸鎬佺粺璁℃暟閲忚繑鍥炲弬鏁�")
public class CarNumByStatusResponse {
- @ApiModelProperty(value = "鎺掗槦涓暟鎺�", example = "1")
- private int queuingNum;
-
+ @ApiModelProperty(value = "鎺掗槦涓暟閲�", example = "1")
+ private Long queuingNum;
@ApiModelProperty(value = "宸茶繘鍦烘暟閲�", example = "1")
- private int inNum;
+ private Long inNum;
@ApiModelProperty(value = "浣滀笟涓暟閲�", example = "1")
- private int workingNum;
+ private Long workingNum;
@ApiModelProperty(value = "宸茬鍦烘暟閲�", example = "1")
- private int doneNum;
+ private Long doneNum;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/GasByMonthResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/GasByMonthResponse.java
index b0da793..9706276 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/GasByMonthResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/GasByMonthResponse.java
@@ -20,9 +20,9 @@
private BigDecimal currentMonth;
@ApiModelProperty(value = "涓婁釜鏈堢敤姘旈噺锛堢珛鏂圭背锛�", example = "1")
- private String lastMonth;
+ private BigDecimal lastMonth;
@ApiModelProperty(value = "鍘诲勾鍚屾湀鐢ㄦ皵閲忥紙绔嬫柟绫筹級", example = "1")
- private String lastYearMonth;
+ private BigDecimal lastYearMonth;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataInfoResponse.java
index 1e8bef3..cf2adf0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataInfoResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataInfoResponse.java
@@ -21,6 +21,7 @@
private String hkId;
@ApiModelProperty(value = "鏈堝彴鍚嶇О")
private String name;
+
@ApiModelProperty(value = "鎵胯繍鍗曞彿")
private String orderCode;
@ApiModelProperty(value = "浣滀笟杞﹁締")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataListResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataListResponse.java
index 0ac0001..4d6ee20 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataListResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformDataListResponse.java
@@ -22,7 +22,7 @@
@ApiModelProperty(value = "鏈堝彴鍚嶇О")
private String name;
@ApiModelProperty(value = "褰撳墠浣滀笟鏃堕暱", example = "1")
- private int workTime;
+ private Long workTime;
@ApiModelProperty(value = "浣滀笟杞﹁締")
private String carCode;
@ApiModelProperty(value = "浣滀笟绫诲瀷锛�0=鍏ュ簱 1鍑哄簱", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java
index a47ba90..b2b94bb 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformNumByStatusResponse.java
@@ -13,11 +13,14 @@
@Data
@ApiModel("銆愭湀鍙般�戞湀鍙板悇鐘舵�佹暟閲忕粺璁¤繑鍥炲弬鏁�")
public class PlatformNumByStatusResponse {
+
@ApiModelProperty(value = "浣跨敤涓暟閲�", example = "1")
- private int usingNum;
+ private int usingNum = 0;
@ApiModelProperty(value = "绌洪棽鏁伴噺", example = "1")
- private int idleNum;
+ private int idleNum = 0;
+
@ApiModelProperty(value = "鍋滅敤鏁伴噺", example = "1")
- private int forbiddenNum;
+ private int forbiddenNum = 0;
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformOrderNumByDateResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformOrderNumByDateResponse.java
index fa34c24..6286d6e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformOrderNumByDateResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/PlatformOrderNumByDateResponse.java
@@ -17,9 +17,10 @@
@Data
@ApiModel("銆愭湀鍙般�戞寜澶╃粺璁¤繍鍗曡繑鍥炲弬鏁�")
public class PlatformOrderNumByDateResponse {
+
@ApiModelProperty(value = "杩愬崟瀹屾垚閲�", example = "1")
- private int doneNum;
+ private Long doneNum;
@ApiModelProperty(value = "杩愬崟鎬婚噺", example = "1")
- private int totalNum;
+ private Long totalNum;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/WaterByMonthResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/WaterByMonthResponse.java
index 9793420..1fa7ed4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/WaterByMonthResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/openapi/response/WaterByMonthResponse.java
@@ -21,9 +21,9 @@
private BigDecimal currentMonth;
@ApiModelProperty(value = "涓婁釜鏈堢敤姘撮噺锛堝惃锛�", example = "1")
- private String lastMonth;
+ private BigDecimal lastMonth;
@ApiModelProperty(value = "鍘诲勾鍚屾湀鐢ㄦ按閲忥紙鍚級", example = "1")
- private String lastYearMonth;
+ private BigDecimal lastYearMonth;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ConfirmTaskDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ConfirmTaskDTO.java
new file mode 100644
index 0000000..e68fbf6
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ConfirmTaskDTO.java
@@ -0,0 +1,29 @@
+package com.doumee.dao.web.reqeust;
+
+import com.doumee.core.model.LoginUserInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/8/15 10:49
+ */
+@Data
+public class ConfirmTaskDTO {
+
+ @ApiModelProperty(value = "璁板綍涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒板満鏃ユ湡")
+ private Date arriveDate;
+
+ @ApiModelProperty(value = "鍚庤溅鐗岀収")
+ private String carCodeBack;
+
+ @ApiModelProperty(value = "鐢ㄦ埛", hidden = true)
+ private LoginUserInfo loginUserInfo;
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformDataDTO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformDataDTO.java
new file mode 100644
index 0000000..ffd05e0
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/PlatformDataDTO.java
@@ -0,0 +1,25 @@
+package com.doumee.dao.web.reqeust;
+
+import com.doumee.core.model.LoginUserInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/12/7 11:19
+ */
+@Data
+@Api(tags = "鏈堝彴淇℃伅鏌ヨ涓氬姟" )
+public class PlatformDataDTO {
+
+ @ApiModelProperty(value = "鏌ヨ鏈堝彴绫诲瀷锛�0=鍏ㄩ儴鏈堝彴锛�1=閰嶇疆鏄剧ず鏈堝彴")
+ private Integer queryType;
+
+ @ApiModelProperty(value = "鏄惁鏌ヨ鏈堝彴浠诲姟鏁版嵁锛�0=鍚�;1=鏄� 鍚庡彴浣跨敤锛屽墠绔叆0")
+ private Integer queryData;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java
index 430b316..5b3e933 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/DriverHomeVO.java
@@ -7,6 +7,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.math.BigDecimal;
import java.util.List;
@Data
@@ -25,5 +26,7 @@
@ApiModelProperty(value = "鍥尯瀵艰鍥�")
private String reservationMap;
+ @ApiModelProperty(value = "绛惧埌闄愬埗璺濈")
+ private BigDecimal signDistance;
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java
index 3c7b6c7..c59b0ea 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/LineUpVO.java
@@ -2,6 +2,7 @@
import com.doumee.core.model.LoginUserInfo;
import com.doumee.dao.business.model.Platform;
+import com.doumee.dao.business.model.PlatformGroup;
import com.doumee.dao.business.model.PlatformJob;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
@@ -20,7 +21,7 @@
public class LineUpVO {
@ApiModelProperty(value = "鏈堝彴缁勪俊鎭�")
- private List<Platform> platformList;
+ private List<PlatformGroup> platformGroupList;
@ApiModelProperty(value = "鐢ㄦ埛", hidden = true)
private LoginUserInfo loginUserInfo;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformWorkVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformWorkVO.java
new file mode 100644
index 0000000..7fcd0c9
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/web/response/PlatformWorkVO.java
@@ -0,0 +1,31 @@
+package com.doumee.dao.web.response;
+
+import com.doumee.dao.business.model.PlatformJob;
+import com.doumee.dao.system.model.Multifile;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@ApiModel("鏈堝彴浠诲姟鏁版嵁")
+public class PlatformWorkVO {
+
+ @ApiModelProperty(value = "浠诲姟鍒楄〃")
+ private List<PlatformJob> platformJobList;
+
+ @ApiModelProperty(value = "浣滀笟鏁伴噺")
+ private Integer workNum = 0;
+
+ @ApiModelProperty(value = "宸插彨鍙锋暟閲�")
+ private Integer callNum = 0;
+
+ @ApiModelProperty(value = "绛夊緟鏁伴噺")
+ private Integer waitNum = 0;
+
+ @ApiModelProperty(value = "寮傚父鏁伴噺")
+ private Integer exceptionNum = 0;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java
index 8931030..0a8dd08 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformBooksService.java
@@ -130,4 +130,10 @@
*/
void revoke(RevokeDTO revokeDTO, LoginUserInfo loginUserInfo);
+ /**
+ * 淇敼棰勭害鐢宠
+ * @param platformBooksApplyDTO
+ * @return
+ */
+ Integer edit(PlatformBooksApplyDTO platformBooksApplyDTO);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java
index 5f98d89..1b843fc 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformGroupService.java
@@ -4,6 +4,9 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.PlatformGroup;
+import com.doumee.dao.web.reqeust.PlatformDataDTO;
+import com.doumee.dao.web.response.PlatformWorkVO;
+
import java.util.List;
/**
@@ -100,12 +103,11 @@
/**
* 鑾峰彇鏈堝彴缁勪俊鎭�
- * @param queryType
+ * @param platformDataDTO
* @param loginUserInfo
* @return
*/
- List<PlatformGroup> getAllPlatformGroup(Integer queryType, LoginUserInfo loginUserInfo);
-
+ List<PlatformGroup> getAllPlatformGroup(PlatformDataDTO platformDataDTO, LoginUserInfo loginUserInfo);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
index a842e2d..483569a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -5,12 +5,12 @@
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Platform;
import com.doumee.dao.business.model.PlatformJob;
-import com.doumee.dao.web.reqeust.JobDetailDTO;
-import com.doumee.dao.web.reqeust.JobOperateDTO;
-import com.doumee.dao.web.reqeust.LineUpDetailDTO;
-import com.doumee.dao.web.reqeust.SignInDTO;
+import com.doumee.dao.openapi.request.*;
+import com.doumee.dao.openapi.response.*;
+import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.DriverHomeVO;
import com.doumee.dao.web.response.LineUpVO;
+import com.doumee.dao.web.response.PlatformWorkVO;
import java.util.List;
@@ -97,6 +97,12 @@
PageData<PlatformJob> findPage(PageWrap<PlatformJob> pageWrap);
/**
+ * 鍙彿鍒楄〃鏁版嵁
+ * @param pageWrap
+ * @return
+ */
+ PageData<PlatformJob> platformCallList(PageWrap<PlatformJob> pageWrap);
+ /**
* 鏉′欢缁熻
*
* @param platformJob 瀹炰綋瀵硅薄
@@ -182,4 +188,23 @@
*/
List<Platform> getPlatformList(Integer groupId, LoginUserInfo loginUserInfo);
+ void confirmTask(ConfirmTaskDTO confirmTaskDTO);
+
+ /**
+ * 鑾峰彇鏈堝彴浠诲姟鏁版嵁
+ * @param platformId
+ * @return
+ */
+ PlatformWorkVO getPlatformWorkVOById(Integer platformId);
+
+
+ PlatformOrderNumByDateResponse orderNumByDate(PlatformOrderNumByDateRequest param);
+
+ List<PlatformDataListResponse> platformWorkingDataList(PlatformDataListRequest param);
+
+ PlatformDataInfoResponse platformWorkingDataList(PlatformDataInfoRequest param);
+
+ CarNumByStatusResponse carStatusNum(CarNumByStatusRequest param);
+
+ PlatformQueuingListResponse queueList(PlatformQueuingListRequest param);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java
index 6ba2888..e892949 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformLogService.java
@@ -3,6 +3,9 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.PlatformLog;
+import com.doumee.dao.openapi.request.CarLogsListRequest;
+import com.doumee.dao.openapi.response.CarLogsListResponse;
+
import java.util.List;
/**
@@ -94,4 +97,6 @@
* @return long
*/
long count(PlatformLog platformLog);
+
+ List<CarLogsListResponse> getCarLogsListResponse(CarLogsListRequest carLogsListRequest);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java
index 01093fb..beaa70c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformService.java
@@ -3,6 +3,8 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Platform;
+import com.doumee.dao.openapi.response.PlatformNumByStatusResponse;
+
import java.util.List;
/**
@@ -95,4 +97,8 @@
* @return long
*/
long count(Platform platform);
+
+
+ PlatformNumByStatusResponse getPlatformNumByStatusResponse();
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java
index 320008c..100767b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformWaterGasService.java
@@ -5,6 +5,11 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.PlatformWaterGas;
+import com.doumee.dao.openapi.request.GasByMonthRequest;
+import com.doumee.dao.openapi.request.WaterByMonthRequest;
+import com.doumee.dao.openapi.response.GasByMonthResponse;
+import com.doumee.dao.openapi.response.WaterByMonthResponse;
+
import java.util.List;
/**
@@ -98,4 +103,8 @@
* @return long
*/
long count(PlatformWaterGas platformWaterGas);
+
+ WaterByMonthResponse waterDataByMonth(WaterByMonthRequest param);
+
+ GasByMonthResponse gasDataByMonth(GasByMonthRequest param);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
index b698dd5..9cef87e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/ApproveServiceImpl.java
@@ -96,6 +96,8 @@
private PlatformJobMapper platformJobMapper;
@Autowired
private PlatformLogMapper platformLogMapper;
+ @Autowired
+ private PlatformReasonMapper platformReasonMapper;
@@ -1410,9 +1412,13 @@
platformBooks.setStatus(approveDTO.getStatus());
platformBooks.setEditDate(new Date());
platformBooks.setEditor(approveDTO.getLoginUserInfo().getMemberId());
+ PlatformReason platformReason = platformReasonMapper.selectById(platformBooks.getReasonId());
//鐢熸垚浠诲姟璁板綍
PlatformJob platformJob = platformBooks.toPlatformJob();
+ platformJob.setPlatformGroupId(platformReason.getGroupId().intValue());
+ platformJob.setType(Constants.platformJobType.sgscxh);
+ platformJob.setStatus(Constants.PlatformJobStatus.WART_SIGN_IN.getKey());
platformJobMapper.insert(platformJob);
platformBooks.setJobId(platformJob.getId());
platformBooksMapper.updateById(platformBooks);
@@ -1421,7 +1427,9 @@
platformLog.setCreateDate(new Date());
platformLog.setJobId(platformJob.getId());
platformLog.setIsdeleted(Constants.ZERO);
- platformLog.setObjType(Constants.PlatformJobStatus.WART_SIGN_IN.getKey());
+ platformLog.setParam4(platformJob.getCarCodeFront());
+ platformLog.setContent(Constants.PlatformJobLogType.CREATE.getInfo());
+ platformLog.setObjType(Constants.PlatformJobLogType.CREATE.getKey());
platformLog.setObjId(platformJob.getId().toString());
platformLog.setAfterContent(JSONObject.toJSONString(platformJob));
platformLogMapper.insert(platformLog);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
index 68318b2..e47c027 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformBooksServiceImpl.java
@@ -18,6 +18,7 @@
import com.doumee.dao.business.join.ApproveJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.ApproveDataVO;
+import com.doumee.dao.web.reqeust.ConfirmTaskDTO;
import com.doumee.dao.web.reqeust.PlatformBooksApplyDTO;
import com.doumee.dao.web.reqeust.PlatformBooksCheckNumDTO;
import com.doumee.dao.web.reqeust.RevokeDTO;
@@ -158,14 +159,8 @@
.eq(pageWrap.getModel().getPlateNum() != null, PlatformBooks::getPlateNum, pageWrap.getModel().getPlateNum())
.eq(pageWrap.getModel().getDriverPhone() != null, PlatformBooks::getDriverPhone, pageWrap.getModel().getDriverPhone())
.ge(pageWrap.getModel().getQueryDate() != null, PlatformBooks::getCreateDate, pageWrap.getModel().getQueryDate())
+ .orderByDesc(PlatformBooks::getCreateDate)
;
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
- if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
- queryWrapper.orderByDesc(sortData.getProperty());
- } else {
- queryWrapper.orderByAsc(sortData.getProperty());
- }
- }
return PageData.from(platformBooksMapper.selectPage(page, queryWrapper));
}
@@ -250,7 +245,7 @@
-// @Override
+ @Override
@Transactional(rollbackFor = {BusinessException.class,Exception.class})
public Integer edit(PlatformBooksApplyDTO platformBooksApplyDTO){
if(Objects.isNull(platformBooksApplyDTO)
@@ -265,8 +260,6 @@
|| StringUtils.isBlank(platformBooksApplyDTO.getDriverPhone())
|| StringUtils.isBlank(platformBooksApplyDTO.getDriverName())
|| StringUtils.isBlank(platformBooksApplyDTO.getTransportImg())
- || Objects.isNull(platformBooksApplyDTO.getReasonId())
- || StringUtils.isBlank(platformBooksApplyDTO.getInReason())
){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
@@ -279,7 +272,9 @@
}
BeanUtils.copyProperties(platformBooksApplyDTO,platformBooks);
platformBooks.setEditDate(new Date());
- platformBooksMapper.insert(platformBooks);
+ platformBooks.setReasonId(null);
+ platformBooks.setInReason(null);
+ platformBooksMapper.updateById(platformBooks);
return platformBooks.getId();
}
@@ -358,7 +353,6 @@
.eq(Approve::getObjId,revokeDTO.getId())
);
}
-
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
index 05ad10f..578a97b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformGroupServiceImpl.java
@@ -16,6 +16,8 @@
import com.doumee.dao.business.model.PlatformGroup;
import com.doumee.dao.business.model.PlatformJob;
import com.doumee.dao.business.model.PlatformShowParam;
+import com.doumee.dao.web.reqeust.PlatformDataDTO;
+import com.doumee.dao.web.response.PlatformWorkVO;
import com.doumee.service.business.PlatformGroupService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -202,10 +204,16 @@
@Override
- public List<PlatformGroup> getAllPlatformGroup(Integer queryType,LoginUserInfo loginUserInfo) {
+ public List<PlatformGroup> getAllPlatformGroup(PlatformDataDTO platformDataDTO, LoginUserInfo loginUserInfo) {
+ if(Objects.isNull(platformDataDTO)
+ || Objects.isNull(platformDataDTO.getQueryType())
+ || Objects.isNull(platformDataDTO.getQueryData())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
List<PlatformGroup> platformGroups = platformGroupMapper.selectList(
new QueryWrapper<PlatformGroup>()
- .lambda().eq(PlatformGroup::getIsdeleted, Constants.ZERO)
+ .lambda()
+ .eq(PlatformGroup::getIsdeleted, Constants.ZERO)
.orderByAsc(PlatformGroup::getSortnum)
);
//鏌ヨ鏈堝彴缁勪笅鎵�鏈夋湀鍙�
@@ -214,10 +222,12 @@
.selectAll(Platform.class)
.select(" ( select count(1) from platform_job pj where t.id = pj.PLATFORM_ID and pj.STATUS = "+Constants.PlatformJobStatus.WORKING.getKey()+" ) as workStatus ")
.eq(Platform::getIsdeleted, Constants.ZERO)
- .eq(Objects.nonNull(queryType)&&!Constants.equalsInteger(queryType,Constants.ZERO),Platform::getStatus,Constants.ZERO)
+ .eq(Objects.nonNull(platformDataDTO.getQueryType())&&!Constants.equalsInteger(platformDataDTO.getQueryType(),Constants.ZERO),
+ Platform::getStatus,Constants.ZERO)
);
//澶勭悊鎴戠殑鏈堝彴淇℃伅 鏄惁閰嶇疆闅愯棌
- if(Constants.equalsInteger(queryType,Constants.TWO)){
+ if(Constants.equalsInteger(platformDataDTO.getQueryType(),Constants.ONE)){
+ //鏌ヨ褰撳墠鐧诲綍浜洪厤缃殑鍙煡鐪嬫湀鍙�
List<PlatformShowParam> platformShowParamList = platformShowParamMapper.selectList(new QueryWrapper<PlatformShowParam>()
.lambda()
.eq(PlatformShowParam::getIsdeleted, Constants.ZERO)
@@ -240,6 +250,26 @@
}
}
}
+ if(Constants.equalsInteger(platformDataDTO.getQueryData(),Constants.ONE)){
+ //鏌ヨ浠婂ぉ鎵�鏈夌殑浠诲姟鏁版嵁
+ List<PlatformJob> platformJobList = platformJobJoinMapper.selectList(new QueryWrapper<PlatformJob>().lambda()
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .in(PlatformJob::getStatus,
+ Constants.PlatformJobStatus.WAIT_CALL.getKey(),
+ Constants.PlatformJobStatus.IN_WAIT.getKey(),
+ Constants.PlatformJobStatus.CALLED.getKey(),
+ Constants.PlatformJobStatus.WORKING.getKey(),
+ Constants.PlatformJobStatus.EXCEPTION.getKey(),
+ Constants.PlatformJobStatus.OVER_NUMBER.getKey()
+ )
+// .like(PlatformJob::getArriveDate,DateUtil.getCurrDate())
+ .orderByDesc(PlatformJob::getCreateDate)
+ );
+ for (Platform platform:allPlatformList) {
+ PlatformWorkVO platformWorkVO = PlatformGroupServiceImpl.getPlatformWorkVO(platform.getId(),platformJobList);
+ platform.setPlatformWorkVO(platformWorkVO);
+ }
+ }
for (PlatformGroup platformGroup:platformGroups) {
platformGroup.setPlatformList(allPlatformList.stream().filter(m->Constants.equalsInteger(m.getGroupId(),platformGroup.getId())).collect(Collectors.toList()));
}
@@ -247,7 +277,31 @@
}
+ public static PlatformWorkVO getPlatformWorkVO(Integer platformId,List<PlatformJob> platformJobList){
+ PlatformWorkVO platformWorkVO = new PlatformWorkVO();
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobList)){
+ //鑾峰彇鏈堝彴涓嬬殑鎵�鏈変綔涓氭暟鎹�
+ List<PlatformJob> platformJobs = platformJobList.stream().filter(i->Constants.equalsInteger(i.getPlatformId(),platformId)).collect(Collectors.toList());
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobs)){
+ platformWorkVO.setWorkNum(
+ platformJobs.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())).collect(Collectors.toList()).size()
+ );
+ platformWorkVO.setCallNum(
+ platformJobs.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())).collect(Collectors.toList()).size()
+ );
+ platformWorkVO.setWaitNum(
+ platformJobs.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.IN_WAIT.getKey())).collect(Collectors.toList()).size()
+ );
+ platformWorkVO.setExceptionNum(
+ platformJobs.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.PlatformJobStatus.EXCEPTION.getKey())).collect(Collectors.toList()).size()
+ );
+ platformWorkVO.setPlatformJobList(platformJobs);
+ }
+ }
+ return platformWorkVO;
+ }
}
+
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
index 2544ffb..a4b0ac7 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -15,12 +15,12 @@
import com.doumee.dao.business.join.PlatformJobJoinMapper;
import com.doumee.dao.business.join.PlatformJoinMapper;
import com.doumee.dao.business.model.*;
-import com.doumee.dao.web.reqeust.JobDetailDTO;
-import com.doumee.dao.web.reqeust.JobOperateDTO;
-import com.doumee.dao.web.reqeust.LineUpDetailDTO;
-import com.doumee.dao.web.reqeust.SignInDTO;
+import com.doumee.dao.openapi.request.*;
+import com.doumee.dao.openapi.response.*;
+import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.DriverHomeVO;
import com.doumee.dao.web.response.LineUpVO;
+import com.doumee.dao.web.response.PlatformWorkVO;
import com.doumee.service.business.PlatformJobService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -33,9 +33,11 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.RequestBody;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -61,6 +63,9 @@
@Autowired
private SystemDictDataBiz systemDictDataBiz;
+ @Autowired
+ private PlatformWmsDetailMapper platformWmsDetailMapper;
+
@Autowired
private PlatformJoinMapper platformJoinMapper;
@@ -70,9 +75,6 @@
@Autowired
private PlatformWmsJobMapper platformWmsJobMapper;
-
- @Autowired
- private PlatformWmsDetailMapper platformWmsDetailMapper;
@Autowired
private PlatformGroupMapper platformGroupMapper;
@@ -147,7 +149,9 @@
.selectAll(PlatformJob.class)
.selectAs(Platform::getName,PlatformJob::getPlatformName)
.selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+ .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName)
.leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+ .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode)
.eq(pageWrap.getModel().getId() != null, PlatformJob::getId, pageWrap.getModel().getId())
.eq(pageWrap.getModel().getCreator() != null, PlatformJob::getCreator, pageWrap.getModel().getCreator())
.ge(pageWrap.getModel().getCreateDate() != null, PlatformJob::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
@@ -234,21 +238,61 @@
platformJobIPage.getRecords().forEach(i->{
i.dealTime();
this.getWmsJobData(i);
+ this.queryWaitNum(i);
});
return PageData.from(platformJobIPage);
-// PageData<PlatformJob> pageData = PageData.from(platformJobMapper.selectPage(page, queryWrapper));
-// pageData.getRecords().forEach(i->{
-// i.dealTime();
-// this.getWmsJobData(i);
-// });
-// return pageData;
+ }
+
+
+
+ @Override
+ public PageData<PlatformJob> platformCallList(PageWrap<PlatformJob> pageWrap) {
+ IPage<PlatformJob> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ MPJLambdaWrapper<PlatformJob> queryWrapper = new MPJLambdaWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ queryWrapper
+ .selectAll(PlatformJob.class)
+ .selectAs(Platform::getName,PlatformJob::getPlatformName)
+ .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+ .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName)
+ .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+ .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode)
+ .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId())
+ .like(pageWrap.getModel().getCarCodeFront() != null, PlatformJob::getCarCodeFront, pageWrap.getModel().getCarCodeFront())
+ .eq(Objects.nonNull(pageWrap.getModel().getCallType())
+ &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.ONE),PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()
+ )
+ .and(Objects.nonNull(pageWrap.getModel().getCallType())
+ &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.TWO),
+ i->i.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()).or()
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey()).or()
+ .apply(" ( t.status = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and t.PLATFORM_ID = "+pageWrap.getModel().getPlatformId()+" ) ")
+ )
+ .and(Objects.nonNull(pageWrap.getModel().getCallType())
+ &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.THREE),
+ i->i.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()).or()
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey()).or()
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey()).or()
+ .apply(" ( t.status = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and t.PLATFORM_GROUP_ID = "+pageWrap.getModel().getPlatformGroupId()+" ) ")
+ )
+ .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(new Date(),"yyyy-MM-dd"))
+ .orderByDesc(PlatformJob::getStatus)
+ ;
+ IPage<PlatformJob> platformJobIPage = platformJobJoinMapper.selectJoinPage(page,PlatformJob.class,queryWrapper);
+ platformJobIPage.getRecords().forEach(i->{
+ i.dealTime();
+ this.getWmsJobData(i);
+ this.queryWaitNum(i);
+ });
+ return PageData.from(platformJobIPage);
}
public void getWmsJobData(PlatformJob platformJob){
if(Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.zycxh)
- || Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.zyczh)
- || Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.sgscxh)) {
+ || Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.zyczh)
+ || Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.wxcxh)
+ || Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.wxczh)) {
PlatformWmsJob platformWmsJob = platformWmsJobMapper.selectOne(new QueryWrapper<PlatformWmsJob>().lambda()
.eq(PlatformWmsJob::getIsdeleted,Constants.ZERO)
@@ -283,29 +327,33 @@
,Constants.PlatformJobStatus.TRANSFERING.getKey())
.gt(PlatformJob::getSignDate,platformJob.getSignDate())
.eq(PlatformJob::getPlatformGroupId,platformJob.getPlatformGroupId())
- .like(PlatformJob::getArriveDate,DateUtil.getDate(platformJob.getArriveDate(),"yyyy-MM-dd")));
+ .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(platformJob.getArriveDate(),"yyyy-MM-dd")));
platformJob.setLineUpNum(lineUpNum.size());
BigDecimal sumWorkRate = platformJob.getTotalNum();
for (PlatformJob linePlatformJob:lineUpNum) {
this.getWmsJobData(linePlatformJob);
sumWorkRate = sumWorkRate.add(linePlatformJob.getTotalNum());
}
- //璁$畻棰勮绛夊緟鏃堕棿
- List<Platform> platformList = platformJoinMapper.selectList(new QueryWrapper<Platform>().lambda().eq(Platform::getIsdeleted,Constants.ZERO).eq(Platform::getGroupId,platformJob.getPlatformGroupId()));
- BigDecimal workRate = platformList.stream().map(m->m.getWorkRate()).reduce(BigDecimal.ZERO,BigDecimal::add);
- if(sumWorkRate.compareTo(BigDecimal.ZERO) == Constants.ZERO|| workRate.compareTo(BigDecimal.ZERO) == Constants.ZERO ){
- BigDecimal sumMinute = sumWorkRate.divide(workRate,1, RoundingMode.HALF_DOWN).multiply(BigDecimal.valueOf(60L));
- Integer sumMinuteInteger = sumMinute.intValue();
- Integer hours = sumMinuteInteger/60;
- Integer minus = sumMinuteInteger%60;
- String waitTime = "棰勮绛夊緟锛�";
- if(!Constants.equalsInteger(hours,Constants.ZERO)){
- waitTime = waitTime + hours + "灏忔椂";
+ if(lineUpNum.size()>Constants.ZERO){
+ //璁$畻棰勮绛夊緟鏃堕棿
+ List<Platform> platformList = platformJoinMapper.selectList(new QueryWrapper<Platform>().lambda().eq(Platform::getIsdeleted,Constants.ZERO).eq(Platform::getGroupId,platformJob.getPlatformGroupId()));
+ BigDecimal workRate = platformList.stream().map(m->m.getWorkRate()).reduce(BigDecimal.ZERO,BigDecimal::add);
+ if(sumWorkRate.compareTo(BigDecimal.ZERO) == Constants.ZERO|| workRate.compareTo(BigDecimal.ZERO) == Constants.ZERO ){
+ BigDecimal sumMinute = sumWorkRate.divide(workRate,1, RoundingMode.HALF_DOWN).multiply(BigDecimal.valueOf(60L));
+ Integer sumMinuteInteger = sumMinute.intValue();
+ Integer hours = sumMinuteInteger/60;
+ Integer minus = sumMinuteInteger%60;
+ String waitTime = "棰勮绛夊緟锛�";
+ if(!Constants.equalsInteger(hours,Constants.ZERO)){
+ waitTime = waitTime + hours + "灏忔椂";
+ }
+ if(!Constants.equalsInteger(hours,Constants.ZERO)){
+ waitTime = waitTime + minus + "鍒嗛挓";
+ }
+ platformJob.setWaitTime(waitTime);
}
- if(!Constants.equalsInteger(hours,Constants.ZERO)){
- waitTime = waitTime + minus + "鍒嗛挓";
- }
- platformJob.setWaitTime(waitTime);
+ }else{
+ platformJob.setWaitTime("绛夊緟鍙彿");
}
}else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
//鏌ヨ鏈�鍚庡紑濮嬩换鍔$殑鏈堝彴璁板綍 鏃ュ織琛� 鍥犱负瀛樺湪寮傚父鎸傝捣 杞Щ 绛夐棶棰�
@@ -319,6 +367,15 @@
BigDecimal sumMinute = platformJob.getTotalNum().divide(platformJob.getWorkRate(),1, RoundingMode.HALF_DOWN).multiply(BigDecimal.valueOf(60L));
platformJob.setFinishTimeStr(DateUtil.DateToStr(DateUtil.afterMinutesDate(platformLog.getCreateDate(),sumMinute.intValue()),"HH:mm"));
}
+ //澶勭悊浣滀笟鏃堕暱
+ List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda()
+ .eq(PlatformLog::getJobId,platformJob.getId())
+ .isNotNull(PlatformLog::getParam3)
+ .ne(PlatformLog::getParam3,Constants.ZERO+"")
+ .orderByDesc(PlatformLog::getCreateDate));
+ platformJob.setWorkTime(platformLogList.stream().map(m->Long.valueOf(m.getParam3())).reduce(Long.valueOf(0),Long::sum));
+
+
}
}
@@ -334,7 +391,6 @@
public DriverHomeVO getDriverHome(LoginUserInfo loginUserInfo){
DriverHomeVO driverHomeVO = new DriverHomeVO();
//TODO 杞挱鍥�
-
List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
.selectAll(PlatformJob.class)
.selectAs(Platform::getName,PlatformJob::getPlatformName)
@@ -359,10 +415,44 @@
driverHomeVO.setReservationMap(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.PLATFORM_GUIDEMAP).getCode());
// 棰勭害鎸囧崡 鏂囨湰
driverHomeVO.setBookingTips(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.PLATFORM_BOOKING_TIPS).getCode());
+ driverHomeVO.setSignDistance(new BigDecimal(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_DISTANCE).getCode()));
return driverHomeVO;
}
+
+
+ @Override
+ public void confirmTask(ConfirmTaskDTO confirmTaskDTO){
+ if(Objects.isNull(confirmTaskDTO)
+ || Objects.isNull(confirmTaskDTO.getId())
+ || Objects.isNull(confirmTaskDTO.getArriveDate())
+ || StringUtils.isBlank(confirmTaskDTO.getCarCodeBack())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ PlatformJob platformJob = platformJobMapper.selectById(confirmTaskDTO.getId());
+ if(Objects.isNull(platformJob)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!Constants.equalsInteger(platformJob.getStatus(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�");
+ }
+ if(confirmTaskDTO.getArriveDate().getTime()<=System.currentTimeMillis()){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"棰勮鍒板巶鏃堕棿蹇呴』澶т簬褰撳墠鏃堕棿");
+ }
+
+ PlatformJob oldPlatformJob = new PlatformJob();
+ BeanUtils.copyProperties(platformJob,oldPlatformJob);
+
+ platformJob.setArriveDate(confirmTaskDTO.getArriveDate());
+ platformJob.setStatus(Constants.PlatformJobStatus.WART_SIGN_IN.getKey());
+ platformJob.setEditDate(new Date());
+ platformJobMapper.updateById(platformJob);
+ //瀛樺偍鎿嶄綔鏃ュ織
+ savePlatformLog(Constants.PlatformJobLogType.CONFIRM_TASK.getKey(),oldPlatformJob,platformJob ,
+ Constants.PlatformJobLogType.CONFIRM_TASK.getInfo());
+ }
/**
* 璺濈绛惧埌
@@ -396,7 +486,8 @@
platformJob.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey());
platformJobMapper.updateById(platformJob);
//瀛樺偍鎿嶄綔鏃ュ織
- savePlatformLog(Constants.PlatformJobStatus.WAIT_CALL.getKey(),oldPlatformJob,platformJob);
+ savePlatformLog(Constants.PlatformJobLogType.SIGN.getKey(),oldPlatformJob,platformJob,
+ Constants.PlatformJobLogType.SIGN.getInfo());
}
@@ -409,12 +500,12 @@
Double lat = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LAT).getCode());
Double lnt = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LNT).getCode());
BigDecimal distance = new BigDecimal(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_DISTANCE).getCode());
- //鑾峰彇2涓偣鐨勮窛绂籜绫�
+ //鑾峰彇2涓偣鐨勮窛绂� 鍗曚綅锛氱背
Double getDistanceDouble = PositionUtil.getDistance(signInDTO.getLnt(),signInDTO.getLat(),lnt,lat);
//杞崲km
BigDecimal getDistance = BigDecimal.valueOf(getDistanceDouble).divide(new BigDecimal(1000),2,BigDecimal.ROUND_HALF_UP);
if(distance.compareTo(getDistance)<Constants.ZERO){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瓒呭嚭鍙鍒拌窛绂伙紝鍙鍒拌窛绂籟"+distance+"]鍏噷]");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瓒呭嚭鍙鍒拌窛绂伙紝鍙鍒拌窛绂讳负["+distance+"]鍏噷]");
}
platformJob.setSignDistance(BigDecimal.valueOf(getDistanceDouble));
}
@@ -483,6 +574,9 @@
List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,
new MPJLambdaWrapper<PlatformJob>()
.selectAll(PlatformJob.class)
+ .selectAs(Platform::getName,PlatformJob::getPlatformName)
+ .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+ .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
.eq(PlatformJob::getIsdeleted,Constants.ZERO)
.eq(Constants.equalsInteger(lineUpDetailDTO.getQueryType(),Constants.ZERO)
,PlatformJob::getDrivierPhone,lineUpDetailDTO.getMobile())
@@ -495,36 +589,45 @@
);
//鑾峰彇鎵�鏈夋湀鍙扮粍
List<Integer> platformIdList = platformJobList.stream().map(m->m.getPlatformGroupId()).collect(Collectors.toList());
- List<Platform> platformList = platformJoinMapper.selectList(new QueryWrapper<Platform>().lambda()
- .eq(Platform::getIsdeleted,Constants.ZERO)
- .in(Platform::getId,platformIdList));
+ if(CollectionUtils.isEmpty(platformIdList)){
+ return lineUpVO;
+ }
+ List<PlatformGroup> platformGroupList = platformGroupMapper.selectList(new QueryWrapper<PlatformGroup>().lambda()
+ .eq(PlatformGroup::getIsdeleted,Constants.ZERO)
+ .in(PlatformGroup::getId,platformIdList));
- for (Platform platform:platformList) {
+ for (PlatformGroup platformGroup:platformGroupList) {
//鏌ヨ鏈湀鍙扮粍涓� 鑷繁鐨勬暟鎹� 鏈�鏃╃鍒扮殑
- PlatformJob platformJob = platformJobList.stream().filter(i->Constants.equalsInteger(i.getPlatformId(),platform.getId())).findFirst().orElse(null);
+ PlatformJob platformJob = platformJobList.stream().filter(i->Constants.equalsInteger(i.getPlatformGroupId(),platformGroup.getId())).findFirst().orElse(null);
//鏌ヨ鍦ㄥ綋鍓嶆湀鍙扮粍涓� 绛惧埌鎺掗槦杞﹁締鏁版嵁
List<PlatformJob> platformJobSignInList = platformJobJoinMapper.selectJoinList(PlatformJob.class,
new MPJLambdaWrapper<PlatformJob>()
.selectAll(PlatformJob.class)
+ .selectAs(Platform::getName,PlatformJob::getPlatformName)
+ .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+ .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
.eq(PlatformJob::getIsdeleted,Constants.ZERO)
- .eq(PlatformJob::getPlatformGroupId,platform.getGroupId())
- .ge(Objects.nonNull(platformJob),PlatformJob::getSignDate,DateUtil.getDate(platformJob.getSignDate(),"yyyy-MM-dd HH:mm:ss"))
+ .eq(PlatformJob::getPlatformGroupId,platformGroup.getId())
+ .ge(Objects.nonNull(platformJob),PlatformJob::getSignDate,DateUtil.dateTypeToString(platformJob.getSignDate(),"yyyy-MM-dd HH:mm:ss"))
.in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey(),
Constants.PlatformJobStatus.IN_WAIT.getKey(),
Constants.PlatformJobStatus.CALLED.getKey())
.orderByDesc(PlatformJob::getSignDate));
- platform.setSignJobList(platformJobSignInList);
+ platformGroup.setSignJobList(platformJobSignInList);
//鏌ヨ褰撳墠鏈堝彴缁勪笅
List<PlatformJob> platformJobWorkList = platformJobJoinMapper.selectJoinList(PlatformJob.class,
new MPJLambdaWrapper<PlatformJob>()
.selectAll(PlatformJob.class)
+ .selectAs(Platform::getName,PlatformJob::getPlatformName)
+ .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+ .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
.eq(PlatformJob::getIsdeleted,Constants.ZERO)
- .eq(PlatformJob::getPlatformGroupId,platform.getGroupId())
+ .eq(PlatformJob::getPlatformGroupId,platformGroup.getId())
.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey())
.orderByDesc(PlatformJob::getSignDate));
- platform.setWorkJobList(platformJobWorkList);
+ platformGroup.setWorkJobList(platformJobWorkList);
}
- lineUpVO.setPlatformList(platformList);
+ lineUpVO.setPlatformGroupList(platformGroupList);
return lineUpVO;
}
@@ -533,7 +636,7 @@
* 鑾峰彇宸蹭綔涓氭椂闂�
* @param platformJob
*/
- public void getWorkTime(PlatformJob platformJob){
+ public Long getWorkTime(PlatformJob platformJob){
List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>()
.lambda().eq(PlatformLog::getIsdeleted,Constants.ZERO)
.eq(PlatformLog::getJobId,platformJob.getId())
@@ -561,6 +664,7 @@
}
}
platformJob.setWorkTime(optTime);
+ return optTime;
}
/**
@@ -595,9 +699,9 @@
//TODO 涓嬪彂鍏ュ洯鏉冮檺
}
-
//瀛樺偍鎿嶄綔鏃ュ織
- savePlatformLog(Constants.PlatformJobStatus.WAIT_CALL.getKey(),oldPlatformJob,platformJob);
+ savePlatformLog(Constants.PlatformJobLogType.IN_WAIT.getKey(),oldPlatformJob,platformJob,
+ Constants.PlatformJobLogType.IN_WAIT.getInfo());
}
@@ -621,17 +725,31 @@
) ){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,涓氬姟鐘舵�佸凡娴佽浆锛�");
}
-
+
+ Platform platform = platformJoinMapper.selectById(jobOperateDTO.getPlatformId());
+ if(Objects.isNull(platform)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏈堝彴淇℃伅");
+ }
PlatformJob oldPlatformJob = new PlatformJob();
BeanUtils.copyProperties(platformJob,oldPlatformJob);
platformJob.setCallDate(new Date());
platformJob.setCallUserId(jobOperateDTO.getLoginUserInfo().getId());
platformJob.setStatus(Constants.PlatformJobStatus.CALLED.getKey());
+ platformJob.setPlatformId(jobOperateDTO.getPlatformId());
+ //鍒ゆ柇鏄惁闇�瑕佸~鍏呰繘鍘�
+ if(StringUtils.isBlank(platformJob.getPlatforms())){
+ platformJob.setPlatforms(jobOperateDTO.getPlatformId().toString());
+ platformJob.setPlatformNames(platform.getName());
+ }else{
+ platformJob.setPlatforms(platformJob.getPlatforms() + "," +jobOperateDTO.getPlatformId().toString());
+ platformJob.setPlatformNames(platformJob.getPlatformNames() + "," +platform.getName());
+ }
platformJob.setEditDate(new Date());
platformJobMapper.updateById(platformJob);
//瀛樺偍鎿嶄綔鏃ュ織
- savePlatformLog(Constants.PlatformJobStatus.CALLED.getKey(),oldPlatformJob,platformJob);
+ savePlatformLog(Constants.PlatformJobLogType.CALLED.getKey(),oldPlatformJob,platformJob,
+ Constants.PlatformJobLogType.CALLED.getInfo().replace("{data}",platform.getName()));
}
@@ -659,9 +777,18 @@
if(Constants.equalsInteger(platformJob.getPlatformId(),jobOperateDTO.getPlatformId())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犳硶杞Щ鏈湀鍙�");
}
+ Platform oldPlatform = platformJoinMapper.selectById(platformJob.getPlatformId());
+
+ Platform platform = platformJoinMapper.selectById(jobOperateDTO.getPlatformId());
+ if(Objects.isNull(platform)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏈堝彴淇℃伅");
+ }
PlatformJob oldPlatformJob = new PlatformJob();
BeanUtils.copyProperties(platformJob,oldPlatformJob);
+
+ platformJob.setPlatforms(platformJob.getPlatforms() + "," +jobOperateDTO.getPlatformId().toString());
+ platformJob.setPlatformNames(platformJob.getPlatformNames() + "," +platform.getName());
platformJob.setTransPlatformDate(new Date());
platformJob.setTransPlatformUserId(jobOperateDTO.getLoginUserInfo().getId());
@@ -672,7 +799,8 @@
//TODO 璋冭捣WMS 閫氱煡鏈堝彴杞Щ
//瀛樺偍鎿嶄綔鏃ュ織
- savePlatformLog(Constants.PlatformJobStatus.TRANSFERING.getKey(),oldPlatformJob,platformJob);
+ savePlatformLog(Constants.PlatformJobLogType.TRANSFERING.getKey(),oldPlatformJob,platformJob,
+ Constants.PlatformJobLogType.TRANSFERING.getInfo().replace("{data}",oldPlatform.getName()));
}
@@ -683,18 +811,16 @@
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public void platformOverNumber(JobOperateDTO jobOperateDTO){
if(Objects.isNull(jobOperateDTO)
- || Objects.isNull(jobOperateDTO.getJobId())
- || Objects.isNull(jobOperateDTO.getPlatformId())){
+ || Objects.isNull(jobOperateDTO.getJobId())){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
if(Objects.isNull(platformJob)){
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
- if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){
+ if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,涓氬姟鐘舵�佸凡娴佽浆锛�");
}
-
PlatformJob oldPlatformJob = new PlatformJob();
BeanUtils.copyProperties(platformJob,oldPlatformJob);
@@ -702,7 +828,8 @@
platformJob.setEditDate(new Date());
platformJobMapper.updateById(platformJob);
//瀛樺偍鎿嶄綔鏃ュ織
- savePlatformLog(Constants.PlatformJobStatus.WART_SIGN_IN.getKey(),oldPlatformJob,platformJob);
+ savePlatformLog(Constants.PlatformJobLogType.OVER_NUMBER.getKey(),oldPlatformJob,platformJob,
+ Constants.PlatformJobLogType.OVER_NUMBER.getInfo());
}
@@ -715,8 +842,7 @@
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public void platformErr(JobOperateDTO jobOperateDTO){
if(Objects.isNull(jobOperateDTO)
- || Objects.isNull(jobOperateDTO.getJobId())
- || Objects.isNull(jobOperateDTO.getPlatformId())){
+ || Objects.isNull(jobOperateDTO.getJobId())){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
@@ -736,7 +862,8 @@
platformJob.setEditDate(new Date());
platformJobMapper.updateById(platformJob);
//瀛樺偍鎿嶄綔鏃ュ織
- savePlatformLog(Constants.PlatformJobStatus.EXCEPTION.getKey(),oldPlatformJob,platformJob);
+ savePlatformLog(Constants.PlatformJobLogType.EXCEPTION.getKey(),oldPlatformJob,platformJob,
+ Constants.PlatformJobLogType.EXCEPTION.getInfo());
}
@@ -747,8 +874,7 @@
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public void beginWork(JobOperateDTO jobOperateDTO){
if(Objects.isNull(jobOperateDTO)
- || Objects.isNull(jobOperateDTO.getJobId())
- || Objects.isNull(jobOperateDTO.getPlatformId())){
+ || Objects.isNull(jobOperateDTO.getJobId())){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId());
@@ -758,24 +884,26 @@
if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,涓氬姟鐘舵�佸凡娴佽浆锛�");
}
- platformJobMapper.update(null,new UpdateWrapper<PlatformJob>()
- .lambda()
- .set(Objects.isNull(platformJob.getStartDate()),PlatformJob::getStartDate,new Date())
- .set(PlatformJob::getEditDate,new Date())
- .set(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey())
- .eq(PlatformJob::getId,jobOperateDTO.getJobId())
- );
+
+ Platform platform = platformJoinMapper.selectById(platformJob.getPlatformId());
+ if(Objects.isNull(platform)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏈堝彴淇℃伅");
+ }
PlatformJob oldPlatformJob = new PlatformJob();
BeanUtils.copyProperties(platformJob,oldPlatformJob);
+
+
if(Objects.isNull(platformJob.getStartDate())){
platformJob.setStartDate(new Date());
}
platformJob.setStatus(Constants.PlatformJobStatus.WORKING.getKey());
platformJob.setEditDate(new Date());
platformJobMapper.updateById(platformJob);
+
//瀛樺偍鎿嶄綔鏃ュ織
- savePlatformLog(Constants.PlatformJobStatus.WORKING.getKey(),oldPlatformJob,platformJob);
+ savePlatformLog(Constants.PlatformJobLogType.WORKING.getKey(),oldPlatformJob,platformJob,
+ Constants.PlatformJobLogType.WORKING.getInfo().replace("{data}",platform.getName()));
}
@@ -800,11 +928,12 @@
BeanUtils.copyProperties(platformJob,oldPlatformJob);
platformJob.setDoneDate(new Date());
- platformJob.setStatus(Constants.PlatformJobStatus.EXCEPTION.getKey());
+ platformJob.setStatus(Constants.PlatformJobStatus.DONE.getKey());
platformJob.setEditDate(new Date());
platformJobMapper.updateById(platformJob);
//瀛樺偍鎿嶄綔鏃ュ織
- savePlatformLog(Constants.PlatformJobStatus.EXCEPTION.getKey(),oldPlatformJob,platformJob);
+ savePlatformLog(Constants.PlatformJobLogType.DONE.getKey(),oldPlatformJob,platformJob ,
+ Constants.PlatformJobLogType.DONE.getInfo());
if(Constants.equalsInteger(platformJob.getType(),Constants.TWO)){
//TODO 澶栧崗杞﹁璐� 鏌ヨTMS 鐢靛瓙閿佹儏鍐�
@@ -858,7 +987,8 @@
platformJob.setEditDate(new Date());
platformJobMapper.updateById(platformJob);
//瀛樺偍鎿嶄綔鏃ュ織
- savePlatformLog(Constants.PlatformJobStatus.WORKING.getKey(),oldPlatformJob,platformJob);
+ savePlatformLog(Constants.PlatformJobLogType.WORKING.getKey(),oldPlatformJob,platformJob ,
+ Constants.PlatformJobLogType.DONE.getInfo());
}
@@ -868,34 +998,33 @@
* @param platformJobBefor
* @param platformJobAfter
*/
- public void savePlatformLog(Integer objType,PlatformJob platformJobBefor,PlatformJob platformJobAfter){
+ public void savePlatformLog(Integer objType,PlatformJob platformJobBefor,PlatformJob platformJobAfter,String content){
PlatformLog platformLog = new PlatformLog();
platformLog.setIsdeleted(Constants.ZERO);
platformLog.setCreateDate(new Date());
platformLog.setJobId(platformJobAfter.getId());
platformLog.setObjType(objType);
+ platformLog.setContent(content);
+ platformLog.setParam4(platformJobAfter.getCarCodeFront());
platformLog.setBeforeContent(JSONObject.toJSONString(platformJobBefor));
platformLog.setAfterContent(JSONObject.toJSONString(platformJobAfter));
platformLog.setObjId(platformJobAfter.getId().toString());
- //鏌ヨ鏈�鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織
- PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
- .eq(PlatformLog::getIsdeleted,Constants.ZERO)
- .eq(PlatformLog::getObjType,Constants.PlatformJobStatus.WORKING.getKey())
- .eq(PlatformLog::getJobId,platformLog.getJobId())
- .orderByDesc(PlatformLog::getCreateDate)
- .last(" limit 1 ")
- );
- if(Objects.isNull(lastBeginPlatform)){
- return;
- }
- if(Constants.equalsInteger(objType,Constants.PlatformJobStatus.EXCEPTION.getKey())
- || Constants.equalsInteger(objType,Constants.PlatformJobStatus.TRANSFERING.getKey())){
+
+ if(Constants.equalsInteger(objType,Constants.PlatformJobLogType.EXCEPTION.getKey())){
+ //鏌ヨ鏈�鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織
+ PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
+ .eq(PlatformLog::getIsdeleted,Constants.ZERO)
+ .eq(PlatformLog::getObjType,Constants.PlatformJobLogType.WORKING.getKey())
+ .eq(PlatformLog::getJobId,platformLog.getJobId())
+ .orderByDesc(PlatformLog::getCreateDate)
+ .last(" limit 1 ")
+ );
//寮傚父鎸傝捣 涓庤浆绉讳腑 璁板綍鏈 浣滀笟鏃堕棿
- platformLog.setParam1(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
- platformLog.setParam2(DateUtil.getDate(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
- String v = Long.toString(platformJobAfter.getDoneDate().getTime() - platformJobBefor.getStartDate().getTime() / 1000) ;
+ platformLog.setParam1(lastBeginPlatform.getParam1());
+ platformLog.setParam2(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+ String v = Long.toString((platformLog.getCreateDate().getTime() - DateUtil.StringToDate(lastBeginPlatform.getParam1(),"yyyy-MM-dd HH:mm:ss").getTime() )/ 1000) ;
platformLog.setParam3(v);
- }else if(Constants.equalsInteger(objType,Constants.PlatformJobStatus.DONE.getKey())){
+ }else if(Constants.equalsInteger(objType,Constants.PlatformJobLogType.TRANSFERING.getKey())){
//鏌ヨ鏈�鍚庝竴娆℃棩蹇楁槸鍚︿负寮傚父鎸傝捣锛屽紓甯告寕璧峰悗鍙繘琛岃浆绉� 濡傛灉杩涜杞Щ閭d箞涓氬姟灏遍渶瑕侀噸鏂拌繘琛屽紑濮嬪氨涓嶉渶瑕佺壒娈婂鐞� 锛屽鏋滀笉鏄紓甯告寕璧疯繘琛屾暟鎹粨鏉� 鍒欑洿鎺ユ煡璇㈡渶鍚庝竴娆″紑濮嬬殑鏃堕棿
PlatformLog lastPlatformLog = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
.eq(PlatformLog::getIsdeleted,Constants.ZERO)
@@ -903,15 +1032,51 @@
.orderByDesc(PlatformLog::getCreateDate)
.last(" limit 1 ")
);
- if(Objects.nonNull(lastPlatformLog) && Constants.equalsInteger(lastPlatformLog.getObjType(),Constants.PlatformJobStatus.EXCEPTION.getKey())){
+ if(!Constants.equalsInteger(lastPlatformLog.getObjType(),Constants.PlatformJobLogType.EXCEPTION.getKey())){
+ //鏌ヨ鏈�鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織
+ PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
+ .eq(PlatformLog::getIsdeleted,Constants.ZERO)
+ .eq(PlatformLog::getObjType,Constants.PlatformJobLogType.WORKING.getKey())
+ .eq(PlatformLog::getJobId,platformLog.getJobId())
+ .orderByDesc(PlatformLog::getCreateDate)
+ .last(" limit 1 ")
+ );
+ //寮傚父鎸傝捣 涓庤浆绉讳腑 璁板綍鏈 浣滀笟鏃堕棿
+ platformLog.setParam1(lastBeginPlatform.getParam1());
+ platformLog.setParam2(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+ String v = Long.toString((platformLog.getCreateDate().getTime() - DateUtil.StringToDate(lastBeginPlatform.getParam1(),"yyyy-MM-dd HH:mm:ss").getTime() )/ 1000) ;
+ platformLog.setParam3(v);
+ }else{
+ platformLog.setParam3("0");
+ }
+ }else if(Constants.equalsInteger(objType,Constants.PlatformJobLogType.DONE.getKey())){
+ //鏌ヨ鏈�鍚庝竴娆℃棩蹇楁槸鍚︿负寮傚父鎸傝捣锛屽紓甯告寕璧峰悗鍙繘琛岃浆绉� 濡傛灉杩涜杞Щ閭d箞涓氬姟灏遍渶瑕侀噸鏂拌繘琛屽紑濮嬪氨涓嶉渶瑕佺壒娈婂鐞� 锛屽鏋滀笉鏄紓甯告寕璧疯繘琛屾暟鎹粨鏉� 鍒欑洿鎺ユ煡璇㈡渶鍚庝竴娆″紑濮嬬殑鏃堕棿
+ PlatformLog lastPlatformLog = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
+ .eq(PlatformLog::getIsdeleted,Constants.ZERO)
+ .eq(PlatformLog::getJobId,platformLog.getJobId())
+ .orderByDesc(PlatformLog::getCreateDate)
+ .last(" limit 1 ")
+ );
+ if(Objects.nonNull(lastPlatformLog) && Constants.equalsInteger(lastPlatformLog.getObjType(),Constants.PlatformJobLogType.EXCEPTION.getKey())){
platformLog.setParam3("0");
}else{
+ //鏌ヨ鏈�鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織
+ PlatformLog lastBeginPlatform = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda()
+ .eq(PlatformLog::getIsdeleted,Constants.ZERO)
+ .eq(PlatformLog::getObjType,Constants.PlatformJobLogType.WORKING.getKey())
+ .eq(PlatformLog::getJobId,platformLog.getJobId())
+ .orderByDesc(PlatformLog::getCreateDate)
+ .last(" limit 1 ")
+ );
//闈炲紓甯告寕璧� 鍒欑洿鎺ヨ繃鍘绘渶鍚庝竴娆″紑濮嬩綔涓氱殑鏃ュ織鐨勫紑濮嬫椂闂�
- platformLog.setParam1(DateUtil.getDate(lastBeginPlatform.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
- platformLog.setParam2(DateUtil.getDate(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
- String v = Long.toString(platformJobAfter.getDoneDate().getTime() - platformJobBefor.getStartDate().getTime() / 1000) ;
+ platformLog.setParam1(lastBeginPlatform.getParam1());
+ platformLog.setParam2(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+ String v = Long.toString((platformJobAfter.getDoneDate().getTime() - DateUtil.StringToDate(lastBeginPlatform.getParam1(),"yyyy-MM-dd HH:mm:ss").getTime()) / 1000) ;
platformLog.setParam3(v);
}
+ }else if(Constants.equalsInteger(objType,Constants.PlatformJobLogType.WORKING.getKey())){
+ platformLog.setParam1(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss"));
+ platformLog.setParam3("0");
}else{
platformLog.setParam3("0");
}
@@ -982,6 +1147,14 @@
.eq(PlatformJob::getPlatformId,platform.getId())
.eq(PlatformJob::getIsdeleted,Constants.ZERO)
.eq(PlatformJob::getDrivierPhone,loginUserInfo.getMobile())
+ .in(PlatformJob::getStatus,
+ Constants.PlatformJobStatus.WAIT_CALL.getKey(),
+ Constants.PlatformJobStatus.IN_WAIT.getKey(),
+ Constants.PlatformJobStatus.CALLED.getKey(),
+ Constants.PlatformJobStatus.WORKING.getKey(),
+ Constants.PlatformJobStatus.EXCEPTION.getKey(),
+ Constants.PlatformJobStatus.OVER_NUMBER.getKey()
+ )
.like(PlatformJob::getArriveDate, DateUtil.getCurrDate())
.orderByDesc(PlatformJob::getId)
);
@@ -994,4 +1167,247 @@
platform.setWorkJobList(platformJobList);
}
+ @Override
+ public PlatformWorkVO getPlatformWorkVOById(Integer platformId){
+ //鑾峰彇鏈堝彴涓嬬殑鎵�鏈変綔涓氭暟鎹�
+ List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
+ .selectAll(PlatformJob.class)
+ .selectAs(Platform::getName,PlatformJob::getPlatformName)
+ .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+ .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+ .eq(PlatformJob::getPlatformId,platformId)
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .in(PlatformJob::getStatus,
+ Constants.PlatformJobStatus.WAIT_CALL.getKey(),
+ Constants.PlatformJobStatus.IN_WAIT.getKey(),
+ Constants.PlatformJobStatus.CALLED.getKey(),
+ Constants.PlatformJobStatus.WORKING.getKey(),
+ Constants.PlatformJobStatus.EXCEPTION.getKey(),
+ Constants.PlatformJobStatus.OVER_NUMBER.getKey()
+ )
+ .like(PlatformJob::getArriveDate, DateUtil.getCurrDate())
+ .orderByDesc(PlatformJob::getId)
+ );
+ for (PlatformJob platformJob:platformJobList) {
+ //澶勭悊WSM鏁伴噺
+ this.getWmsJobData(platformJob);
+ //鏌ヨ鍓嶆柟鎺掗槦鏁伴噺
+ this.queryWaitNum(platformJob);
+ }
+ PlatformWorkVO platformWorkVO = PlatformGroupServiceImpl.getPlatformWorkVO(platformId,platformJobList);
+ return platformWorkVO;
+ }
+
+
+ @Override
+ public PlatformOrderNumByDateResponse orderNumByDate(PlatformOrderNumByDateRequest param){
+ PlatformOrderNumByDateResponse platformOrderNumByDateResponse = new PlatformOrderNumByDateResponse();
+ Date queryDate = (Objects.nonNull(param)&&Objects.nonNull(param.getTimeInfo()))?param.getTimeInfo():new Date();
+ String queryDateStr = DateUtil.getDate(queryDate,"yyyy-MM-dd");
+ //鏌ヨ浠婃棩鍏ㄩ儴浠诲姟
+ platformOrderNumByDateResponse.setTotalNum(
+ platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .and(i->
+ i.like(PlatformJob::getDoneDate,queryDateStr)
+ .or().ne(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey())
+ )
+ )
+ );
+ //鏌ヨ浠婃棩瀹屾垚浠诲姟
+ platformOrderNumByDateResponse.setDoneNum(
+ platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .like(PlatformJob::getDoneDate,queryDateStr)
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey())
+ )
+ );
+ return platformOrderNumByDateResponse;
+ }
+
+
+
+ @Override
+ public List<PlatformDataListResponse> platformWorkingDataList(PlatformDataListRequest param){
+ List<PlatformDataListResponse> platformDataListResponseList = new ArrayList<>();
+ List<Platform> platformList = platformJoinMapper.selectList(
+ new MPJLambdaWrapper<Platform>().eq(Platform::getIsdeleted,Constants.ZERO)
+ .eq(Platform::getStatus,Constants.ZERO)
+ );
+ for (Platform platform:platformList) {
+ PlatformDataListResponse platformDataListResponse = new PlatformDataListResponse();
+ platformDataListResponse.setId(platform.getId());
+ platformDataListResponse.setHkId(platform.getHkId());
+ platformDataListResponse.setName(platform.getName());
+ platformDataListResponse.setWorkStatus(Constants.ZERO);
+ //鏌ヨ褰撳墠浣滀笟杞﹁締
+ PlatformJob platformJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda()
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey())
+ .orderByDesc(PlatformJob::getWorkTime)
+ .last(" limit 1")
+ );
+ if(Objects.nonNull(platformJob)){
+ platformDataListResponse.setCarCode(platformJob.getCarCodeFront());
+ platformDataListResponse.setWorkType(
+ Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.zycxh)
+ ||Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.wxcxh)
+ ||Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.sgscxh)?Constants.ZERO:Constants.ONE
+ );
+ platformDataListResponse.setWorkStatus(Constants.ONE);
+ //鏌ヨ浣滀笟鏃堕暱
+ platformDataListResponse.setWorkTime(
+ this.getWorkTime(platformJob)
+ );
+ }
+ }
+ return platformDataListResponseList;
+ }
+
+ @Override
+ public PlatformDataInfoResponse platformWorkingDataList(PlatformDataInfoRequest param){
+ if(Objects.isNull(param)
+ || Objects.isNull(param.getId())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ PlatformDataInfoResponse response = new PlatformDataInfoResponse();
+ Platform platform = platformJoinMapper.selectById(param.getId());
+ if(Objects.isNull(platform)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏈堝彴淇℃伅");
+ }
+ response.setId(platform.getId());
+ response.setHkId(platform.getHkId());
+ response.setName(platform.getName());
+
+ PlatformJob platformJob = platformJobJoinMapper.selectJoinOne(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
+ .selectAll(PlatformJob.class)
+ .selectAs(Platform::getName,PlatformJob::getPlatformName)
+ .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
+ .selectAs(PlatformWmsJob::getId,PlatformJob::getWmsId)
+ .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName)
+ .selectAs(PlatformWmsJob::getRepertotyAddress,PlatformJob::getRepertotyAddress)
+ .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+ .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode)
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey())
+ .eq(PlatformJob::getPlatformId,platform.getId())
+ .orderByDesc(PlatformJob::getDoneDate)
+ );
+ if(Objects.nonNull(platformJob)){
+ response.setCarCode(platformJob.getCarCodeFront());
+ response.setCarrierName(platformJob.getCarrierName());
+ response.setOrderCode(platformJob.getBillCode());
+ response.setRepertotyAddress(platformJob.getRepertotyAddress());
+ //鏌ヨ渚涘簲鍟嗕俊鎭� 鍙湁瀛樺湪鎵胯繍鍗曞彿鎵嶆湁
+ if(Objects.nonNull(platformJob.getWmsId())){
+ List<PlatformWmsDetail> platformWmsDetailList = platformWmsDetailMapper.selectList(new QueryWrapper<PlatformWmsDetail>().lambda()
+ .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO)
+ .eq(PlatformWmsDetail::getJobId,platformJob.getId()));
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformWmsDetailList)){
+ List<String> stringList = platformWmsDetailList.stream().map(m->m.getInRepertotyCode()).collect(Collectors.toList());
+ response.setInRepertotyCode(stringList);
+ }
+ }
+ }
+ return response;
+ }
+
+
+ @Override
+ public CarNumByStatusResponse carStatusNum(CarNumByStatusRequest param){
+ CarNumByStatusResponse response = new CarNumByStatusResponse();
+ response.setQueuingNum(
+ platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey())
+ )
+ );
+ response.setInNum(
+ platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .and(i->i.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey())
+ .or()
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey())
+ )
+ )
+ );
+ response.setWorkingNum(
+ platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey())
+ )
+ );
+ response.setDoneNum(
+ platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.LEAVED.getKey())
+ .like(PlatformJob::getOutDate,DateUtil.getDate(new Date(),"yyyy-MM-dd"))
+ )
+ );
+ return response;
+ }
+
+
+ @Override
+ public PlatformQueuingListResponse queueList(PlatformQueuingListRequest param){
+ PlatformQueuingListResponse response = new PlatformQueuingListResponse();
+
+ List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
+ .selectAll(PlatformJob.class)
+ .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+ .leftJoin(PlatformGroup.class,PlatformGroup::getId,PlatformJob::getPlatformGroupId)
+ .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey())
+ .in(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey())
+ .in(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey())
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .isNotNull(PlatformJob::getCarCodeFront)
+ .orderByDesc(PlatformJob::getCreateDate)
+ .eq(PlatformGroup::getType,Constants.ZERO));
+
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobList)){
+ response.setOutboundList(
+ platformJobList.stream().map(m->m.getCarCodeFront()).collect(Collectors.toList())
+ );
+ }
+
+ platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
+ .selectAll(PlatformJob.class)
+ .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+ .leftJoin(PlatformGroup.class,PlatformGroup::getId,PlatformJob::getPlatformGroupId)
+ .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey())
+ .in(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey())
+ .in(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey())
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .isNotNull(PlatformJob::getCarCodeFront)
+ .orderByDesc(PlatformJob::getCreateDate)
+ .eq(PlatformGroup::getType,Constants.ONE));
+
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobList)){
+ response.setInboundList(
+ platformJobList.stream().map(m->m.getCarCodeFront()).collect(Collectors.toList())
+ );
+ }
+
+ platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
+ .selectAll(PlatformJob.class)
+ .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+ .leftJoin(PlatformGroup.class,PlatformGroup::getId,PlatformJob::getPlatformGroupId)
+ .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey())
+ .in(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey())
+ .in(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey())
+ .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+ .isNotNull(PlatformJob::getCarCodeFront)
+ .orderByDesc(PlatformJob::getCreateDate)
+ .eq(PlatformGroup::getType,Constants.TWO));
+
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobList)){
+ response.setMunicipalComList(
+ platformJobList.stream().map(m->m.getCarCodeFront()).collect(Collectors.toList())
+ );
+ }
+ return response;
+ }
+
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java
index 4008597..5811b1b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformLogServiceImpl.java
@@ -2,9 +2,12 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.PlatformLogMapper;
import com.doumee.dao.business.model.PlatformLog;
+import com.doumee.dao.openapi.request.CarLogsListRequest;
+import com.doumee.dao.openapi.response.CarLogsListResponse;
import com.doumee.service.business.PlatformLogService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -14,7 +17,10 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
+import java.util.Objects;
/**
* 鏈堝彴_浣滀笟鎿嶄綔鍘嗗彶琛⊿ervice瀹炵幇
@@ -126,4 +132,30 @@
QueryWrapper<PlatformLog> wrapper = new QueryWrapper<>(platformLog);
return platformLogMapper.selectCount(wrapper);
}
+
+
+
+ @Override
+ public List<CarLogsListResponse> getCarLogsListResponse(CarLogsListRequest carLogsListRequest){
+ List<CarLogsListResponse> carLogsListResponseList = new ArrayList<>();
+
+ List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda()
+ .notIn(PlatformLog::getObjType,
+ Constants.PlatformJobLogType.CREATE.getKey(),
+ Constants.PlatformJobLogType.CONFIRM_TASK.getKey()
+ )
+ .orderByDesc(PlatformLog::getCreateDate)
+ .last(Objects.nonNull(carLogsListRequest)&&Objects.nonNull(carLogsListRequest.getLimitNum())," limit " +carLogsListRequest.getLimitNum())
+ );
+ for (PlatformLog platformLog:platformLogList) {
+ CarLogsListResponse carLogsListResponse = new CarLogsListResponse();
+ carLogsListResponse.setCarCode(platformLog.getParam4());
+ carLogsListResponse.setContent(platformLog.getContent());
+ carLogsListResponse.setCreateDate(new Date());
+ carLogsListResponseList.add(carLogsListResponse);
+ }
+ return carLogsListResponseList;
+ }
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
index 82709a7..4acdb01 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformServiceImpl.java
@@ -8,9 +8,11 @@
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.PlatformMapper;
+import com.doumee.dao.business.join.PlatformJoinMapper;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Platform;
import com.doumee.dao.business.model.PlatformGroup;
+import com.doumee.dao.openapi.response.PlatformNumByStatusResponse;
import com.doumee.service.business.PlatformService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -24,6 +26,7 @@
import java.util.Date;
import java.util.List;
+import java.util.stream.Collectors;
/**
* 鏈堝彴淇℃伅琛⊿ervice瀹炵幇
@@ -35,6 +38,8 @@
@Autowired
private PlatformMapper platformMapper;
+ @Autowired
+ private PlatformJoinMapper platformJoinMapper;
@Override
public Integer create(Platform platform) {
@@ -65,6 +70,7 @@
public void updateById(Platform platform) {
platformMapper.updateById(platform);
}
+
@Override
public void updateStatusById(Platform platform) {
Platform model =platformMapper.selectById(platform.getId());
@@ -162,4 +168,35 @@
QueryWrapper<Platform> wrapper = new QueryWrapper<>(platform);
return platformMapper.selectCount(wrapper);
}
+
+
+ @Override
+ public PlatformNumByStatusResponse getPlatformNumByStatusResponse(){
+ PlatformNumByStatusResponse platformNumByStatusResponse = new PlatformNumByStatusResponse();
+ List<Platform> platformList = platformJoinMapper.selectJoinList(Platform.class,new MPJLambdaWrapper<Platform>()
+ .selectAll(Platform.class)
+ .select(" ( select count(1) from platform_job pj where t.id = pj.PLATFORM_ID and pj.STATUS = "+Constants.PlatformJobStatus.WORKING.getKey()+" ) as workStatus ")
+ .eq(Platform::getIsdeleted,Constants.ZERO)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformList)){
+ //鍋滅敤鏁伴噺
+ platformNumByStatusResponse.setForbiddenNum(
+ platformList.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ONE)).collect(Collectors.toList()).size()
+ );
+ //宸ヤ綔鏁伴噺
+ platformNumByStatusResponse.setUsingNum(
+ platformList.stream().filter(i->i.getWorkStatus()>Constants.ZERO).collect(Collectors.toList()).size()
+ );
+ //绌洪棽鏁伴噺
+ platformNumByStatusResponse.setIdleNum(
+ platformList.stream().filter(i->i.getWorkStatus()<=Constants.ZERO).collect(Collectors.toList()).size()
+ );
+ }
+ return platformNumByStatusResponse;
+ }
+
+
+
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java
index 202d2b0..5ba00a4 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWaterGasServiceImpl.java
@@ -12,6 +12,10 @@
import com.doumee.dao.business.PlatformWaterGasMapper;
import com.doumee.dao.business.model.PlatformReason;
import com.doumee.dao.business.model.PlatformWaterGas;
+import com.doumee.dao.openapi.request.GasByMonthRequest;
+import com.doumee.dao.openapi.request.WaterByMonthRequest;
+import com.doumee.dao.openapi.response.GasByMonthResponse;
+import com.doumee.dao.openapi.response.WaterByMonthResponse;
import com.doumee.service.business.PlatformWaterGasService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -22,9 +26,13 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.RequestBody;
+import java.math.BigDecimal;
+import java.util.Calendar;
import java.util.Date;
import java.util.List;
+import java.util.Objects;
/**
* 鏈堝彴_鐢ㄦ按鐢ㄦ皵淇℃伅璁板綍琛⊿ervice瀹炵幇
@@ -207,4 +215,91 @@
QueryWrapper<PlatformWaterGas> wrapper = new QueryWrapper<>(platformWaterGas);
return platformWaterGasMapper.selectCount(wrapper);
}
+
+
+ @Override
+ public WaterByMonthResponse waterDataByMonth(WaterByMonthRequest param){
+ Date queryDate = (Objects.nonNull(param)&&Objects.nonNull(param.getTimeInfo()))?param.getTimeInfo():new Date();
+ //鑾峰彇涓婁釜鏈堟棩鏈�
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(queryDate);
+ calendar.add(Calendar.MONTH, -1);
+ Date beforMonth = calendar.getTime();
+ calendar.add(Calendar.MONTH, -11);
+ Date beforYearMonth = calendar.getTime();
+
+ WaterByMonthResponse waterByMonthResponse = new WaterByMonthResponse();
+
+ List<PlatformWaterGas> list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
+ .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+ .eq(PlatformWaterGas::getType,Constants.ZERO)
+ .like(PlatformWaterGas::getTimeInfo,DateUtil.getDate(queryDate,"yyyy-MM"))
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+ waterByMonthResponse.setCurrentMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+ }
+
+ list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
+ .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+ .eq(PlatformWaterGas::getType,Constants.ZERO)
+ .like(PlatformWaterGas::getTimeInfo,beforMonth)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+ waterByMonthResponse.setLastMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+ }
+
+ list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
+ .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+ .eq(PlatformWaterGas::getType,Constants.ZERO)
+ .like(PlatformWaterGas::getTimeInfo,beforYearMonth)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+ waterByMonthResponse.setLastYearMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+ }
+ return waterByMonthResponse;
+ }
+
+
+ @Override
+ public GasByMonthResponse gasDataByMonth(GasByMonthRequest param){
+ Date queryDate = (Objects.nonNull(param)&&Objects.nonNull(param.getTimeInfo()))?param.getTimeInfo():new Date();
+ //鑾峰彇涓婁釜鏈堟棩鏈�
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(queryDate);
+ calendar.add(Calendar.MONTH, -1);
+ Date beforMonth = calendar.getTime();
+ calendar.add(Calendar.MONTH, -11);
+ Date beforYearMonth = calendar.getTime();
+
+ GasByMonthResponse response = new GasByMonthResponse();
+
+ List<PlatformWaterGas> list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
+ .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+ .eq(PlatformWaterGas::getType,Constants.ONE)
+ .like(PlatformWaterGas::getTimeInfo,DateUtil.getDate(queryDate,"yyyy-MM"))
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+ response.setCurrentMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+ }
+
+ list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
+ .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+ .eq(PlatformWaterGas::getType,Constants.ONE)
+ .like(PlatformWaterGas::getTimeInfo,beforMonth)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+ response.setLastMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+ }
+
+ list = platformWaterGasMapper.selectList(new QueryWrapper<PlatformWaterGas>().lambda()
+ .eq(PlatformWaterGas::getIsdeleted,Constants.ZERO)
+ .eq(PlatformWaterGas::getType,Constants.ONE)
+ .like(PlatformWaterGas::getTimeInfo,beforYearMonth)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+ response.setLastYearMonth(list.stream().map(m->m.getNum()).reduce(BigDecimal.ZERO,BigDecimal::add));
+ }
+ return response;
+ }
+
}
--
Gitblit v1.9.3