From 51e18e190dafdec70dc1f4a3a9ecd76fb2116726 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期六, 12 十月 2024 16:25:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 screen/src/assets/images/energy_ef/ic_renwuzongliang@2x.png                                              |    0 
 screen/src/assets/images/energy_ef/car_zaitu@2x.png                                                      |    0 
 screen/src/assets/images/energy_ef/ruku_task.png                                                         |    0 
 admin/src/api/system/sms.js                                                                              |    8 
 screen/src/assets/images/energy_ef/map_car_kongxian@2x.png                                               |    0 
 pda/utils/config.js                                                                                      |    4 
 screen/src/assets/images/energy_ef/chuku_task.png                                                        |    0 
 screen/src/assets/images/energy_ef/map_car_lixian@2x.png                                                 |    0 
 screen/src/assets/images/energy_ef/car_kongxian@2x.png                                                   |    0 
 screen/src/views/EnergyConsum.vue                                                                        |  497 +++++++++--------
 admin/.env.development                                                                                   |    5 
 screen/src/assets/images/energy_ef/ic_rukuxiaolv@2x.png                                                  |    0 
 admin/src/components/common/RichEditor.vue                                                               |    9 
 screen/src/assets/images/energy_ef/bg@2x.png                                                             |    0 
 h5/utils/config.js                                                                                       |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java |    2 
 admin/src/views/platform/LogisticsRecord/leaveAuth.vue                                                   |    9 
 screen/package.json                                                                                      |    1 
 screen/src/views/LogisticsEfficiency.vue                                                                 |  637 ++++++++++++++++++++++
 screen/src/router/index.js                                                                               |    7 
 screen/src/assets/images/energy_ef/chuku_task_ac.png                                                     |    0 
 screen/src/assets/images/energy_ef/map_car_zaitu@2x.png                                                  |    0 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java            |   13 
 admin/src/views/index.vue                                                                                |   19 
 admin/src/views/business/visitorSources.vue                                                              |   30 
 screen/src/assets/images/energy_ef/ic_chukuxiaolv@2x.png                                                 |    0 
 admin/src/views/platform/LogisticsRecord/subscribe.vue                                                   |   14 
 screen/src/assets/images/energy_ef/car_lixian@2x.png                                                     |    0 
 screen/src/assets/images/energy_ef/ic_bili@2x.png                                                        |    0 
 screen/src/assets/images/maintitle.gif                                                                   |    0 
 screen/src/assets/images/energy_ef/ic_wanchengrenwu@2x.png                                               |    0 
 admin/src/views/platform/LogisticsRecord/waybill.vue                                                     |   17 
 server/system_service/src/main/java/com/doumee/core/utils/Constants.java                                 |   99 ---
 admin/src/views/system/smsMessage.vue                                                                    |   53 +
 screen/src/views/PlatformCall.vue                                                                        |    1 
 h5/pages/staff/task/driver.vue                                                                           |    6 
 pda/pages/index/control.vue                                                                              |    2 
 screen/src/assets/images/energy_ef/ruku_task_ac.png                                                      |    0 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java         |   33 +
 admin/src/views/task/visSubDetail.vue                                                                    |    4 
 screen/src/assets/images/energy_ef/chuku_ic_car@2x.png                                                   |    0 
 admin/src/components/common/QueryForm/queryForm.vue                                                      |   59 -
 admin/src/views/task/driverDetail.vue                                                                    |    4 
 admin/src/views/platform/queueUp.vue                                                                     |    7 
 admin/src/views/platform/components/PlatformSign.vue                                                     |   19 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java   |   23 
 /dev/null                                                                                                |   67 --
 screen/src/assets/images/energy_ef/china@2x.png                                                          |    0 
 admin/src/api/workbench/index.js                                                                         |    6 
 admin/src/views/business/relativeMember.vue                                                              |    8 
 pda/manifest.json                                                                                        |    2 
 admin/src/views/business/internalMember.vue                                                              |    2 
 52 files changed, 1,166 insertions(+), 505 deletions(-)

diff --git a/admin/.env.development b/admin/.env.development
index 8dd310d..0571e3b 100644
--- a/admin/.env.development
+++ b/admin/.env.development
@@ -2,6 +2,7 @@
 NODE_ENV = 'development'
 
 VUE_APP_API_URL  = 'http://localhost:10010'
-# VUE_APP_API_URL  = 'http://192.168.0.103:10010'
-VUE_APP_API_URL  = 'http://10.50.250.253:8088/gateway_interface'
+# VUE_APP_API_URL  = 'http://192.168.0.139:10010'
+# VUE_APP_API_URL  = 'http://10.50.250.253:8088/gateway_interface'
+VUE_APP_API_URL  = 'https://dmtest.ahapp.net/antai_admin_interface/'
 
diff --git a/admin/src/api/system/sms.js b/admin/src/api/system/sms.js
index e0f700b..9a34d4d 100644
--- a/admin/src/api/system/sms.js
+++ b/admin/src/api/system/sms.js
@@ -8,3 +8,11 @@
 export function SmsStatusUpdate (data) {
   return request.post('/visitsAdmin/cloudService/business/smsConfig/updateById', data)
 }
+// 鐭俊閫氱煡 鎵归噺鐘舵�佹洿鏂�
+export function SmsStatussUpdate (data) {
+  return request.get('/visitsAdmin/cloudService/business/smsConfig/updateStatus/batch', {
+    params: {
+      ...data
+    }
+  })
+}
diff --git a/admin/src/api/workbench/index.js b/admin/src/api/workbench/index.js
index 815b79b..e6dcdcb 100644
--- a/admin/src/api/workbench/index.js
+++ b/admin/src/api/workbench/index.js
@@ -23,4 +23,10 @@
 // 浠诲姟涓績澶撮儴
 export function getWorkbenchTaskHead (data) {
   return request.post('/visitsAdmin/cloudService/business/staging/taskCenterHeadPC', data)
+}
+// pc宸ヤ綔鍙�
+export function getWorkbenchData (data) {
+  return request.get('/visitsAdmin/cloudService/business/staging/pCWorkPlatformData', {
+    params: {...data  }
+  })
 }
\ No newline at end of file
diff --git a/admin/src/components/common/QueryForm/queryForm.vue b/admin/src/components/common/QueryForm/queryForm.vue
index 9eedeab..c56d064 100644
--- a/admin/src/components/common/QueryForm/queryForm.vue
+++ b/admin/src/components/common/QueryForm/queryForm.vue
@@ -2,15 +2,13 @@
   <div class="doumee-filter">
     <el-form inline label-suffix="锛�" @submit.native.prevent>
       <template v-for="(item, index) in queryFormConfig.formItems">
-        <el-form-item v-if="item.type === 'input' && (showZk || index < listLength)" :key="item.filed"
-          :label="item.label">
+        <el-form-item v-if="item.type === 'input' && (showZk || index < listLength)" :key="item.filed">
           <el-input v-model="searchForm[item.filed]"
             :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true"
-            :placeholder="item.placeholder ? item.placeholder : '璇疯緭鍏�' + item.label" class="w200"
+            :placeholder="item.label" class="w200"
             @change="changeForm(item.filed)" @keyup.enter.native="handlekeyup(item.keyup || false)" />
         </el-form-item>
-        <el-form-item v-if="item.type === 'moneySelect' && (showZk || index < listLength)" :key="item.label"
-          :label="item.label">
+        <el-form-item v-if="item.type === 'moneySelect' && (showZk || index < listLength)" :key="item.label">
           <el-input v-model="searchForm[item.filedStrt]"
             :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true"
             :placeholder="item.start" style="width: 150px" />
@@ -19,49 +17,42 @@
             :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true"
             :placeholder="item.end" style="width: 150px" />
         </el-form-item>
-        <el-form-item v-if="item.type === 'select' && (showZk || index < listLength)" :key="item.filed"
-          :label="item.label">
+        <el-form-item v-if="item.type === 'select' && (showZk || index < listLength)" :key="item.filed">
           <el-select v-model="searchForm[item.filed]" :filterable="item.filterable || true"
             :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true"
-            :placeholder="item.placeholder ? item.placeholder : '璇烽�夋嫨' + item.label" class="w200"
+            :placeholder="item.label" class="w200"
             @change="changeForm(item.filed)">
             <el-option v-for="opt, i in item.options" :key="i" :value="item.valueCode ? opt[item.valueCode] : opt.value"
               :label="item.labelCode ? opt[item.labelCode] : opt.label" />
           </el-select>
         </el-form-item>
-        <el-form-item v-if="item.type === 'date' && (showZk || index < listLength)" :key="item.filed"
-          :label="item.label || '鏃ユ湡'">
+        <el-form-item v-if="item.type === 'date' && (showZk || index < listLength)" :key="item.filed">
           <el-date-picker v-model="searchForm[item.filed]" type="date" value-format="yyyy-MM-dd" class="w200"
             :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true"
-            :placeholder="item.placeholder || '璇烽�夋嫨鏃ユ湡'" :picker-options="item.pickerOptions || {}"
+            :placeholder="item.label" :picker-options="item.pickerOptions || {}"
             @change="changeForm(item.filed)" />
         </el-form-item>
-        <el-form-item v-if="item.type === 'daterange' && (showZk || index < listLength)" :key="item.filed"
-          :label="item.label || ''">
+        <el-form-item v-if="item.type === 'daterange' && (showZk || index < listLength)" :key="item.filed">
           <el-date-picker v-model="searchForm[item.filed]" value-format="yyyy-MM-dd" type="daterange"
             range-separator="鑷�"
             :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true"
             :start-placeholder="item.start || ''" :end-placeholder="item.end || ''"
             :picker-options="item.pickerOptions || {}" class="w400" @change="changeForm(item.filed)" />
         </el-form-item>
-        <el-form-item v-if="item.type === 'timePicker' && (showZk || index < listLength)" :key="item.filed"
-          :label="item.label || '閫夋嫨鏃堕棿'">
+        <el-form-item v-if="item.type === 'timePicker' && (showZk || index < listLength)" :key="item.filed">
           <el-time-picker v-model="searchForm[item.filed]" is-range range-separator="鑷�" format="HH:mm"
             value-format="HH:mm" start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" placeholder="閫夋嫨鏃堕棿鑼冨洿" class="w400"
             @change="changeForm(item.filed)" />
         </el-form-item>
-        <el-form-item v-if="item.type === 'datetimerange' && (showZk || index < listLength)" :key="item.filed"
-          :label="item.label || '閫夋嫨鏃ユ湡'">
+        <el-form-item v-if="item.type === 'datetimerange' && (showZk || index < listLength)" :key="item.filed">
           <el-date-picker v-model="searchForm[item.filed]" format="yyyy-MM-dd HH:mm:ss"
-            value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange"
-            :default-time="['00:00:00', '23:59:59']"
+            value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" :default-time="['00:00:00', '23:59:59']"
             :picker-options="item.pickerOptions || pickerOptions" range-separator="鑷�"
             :clearable="(item.clearable !== null && item.clearable !== undefined && item.clearable !== '') ? item.clearable : true"
             :start-placeholder="item.start || '寮�濮嬫椂闂�'" :end-placeholder="item.end || '缁撴潫鏃堕棿'" class="w400"
             @change="changeForm(item.filed)" />
         </el-form-item>
-        <el-form-item v-if="item.type === 'slot' && (showZk || index < listLength)" :key="item.filed"
-          :label="item.label">
+        <el-form-item v-if="item.type === 'slot' && (showZk || index < listLength)" :key="item.filed">
           <slot :name="item.filed" />
         </el-form-item>
       </template>
@@ -100,13 +91,13 @@
       default: () => { }
     }
   },
-  data () {
+  data() {
     return {
       showZk: false,
       pickerOptions: {
         shortcuts: [{
           text: '杩�7澶�',
-          onClick (picker) {
+          onClick(picker) {
             const end = new Date()
             const start = new Date()
             start.setTime(end.getTime() - 3600 * 1000 * 24 * 6)
@@ -115,7 +106,7 @@
         },
         {
           text: '杩�30澶�',
-          onClick (picker) {
+          onClick(picker) {
             const end = new Date()
             const start = new Date()
             start.setTime(end.getTime() - 3600 * 1000 * 24 * 29)
@@ -124,7 +115,7 @@
         },
         {
           text: '杩�60澶�',
-          onClick (picker) {
+          onClick(picker) {
             const end = new Date()
             const start = new Date()
             start.setTime(end.getTime() - 3600 * 1000 * 24 * 59)
@@ -133,14 +124,14 @@
         },
         {
           text: '杩�90澶�',
-          onClick (picker) {
+          onClick(picker) {
             const end = new Date()
             const start = new Date()
             start.setTime(end.getTime() - 3600 * 1000 * 24 * 89)
             picker.$emit('pick', [start, end])
           }
         }],
-        disabledDate (time) {
+        disabledDate(time) {
           var curDate = new Date(new Date().toLocaleDateString()).getTime()
           var preDate = new Date(curDate + 24 * 60 * 60 * 1000 - 1)
           return time.getTime() > preDate
@@ -151,31 +142,31 @@
   emits: ['input', 'handleQuery', 'clear'],
   computed: {
     searchForm: {
-      get () {
+      get() {
         return this.value
       },
-      set (value) {
+      set(value) {
         this.$emit('input', value)
       }
     }
   },
   methods: {
-    handleQuery () {
+    handleQuery() {
       this.$emit('handleQuery')
     },
-    handlekeyup (pd) {
+    handlekeyup(pd) {
       if (pd) {
         this.$emit('handleQuery')
       }
     },
-    changeForm (filed) {
+    changeForm(filed) {
       this.$emit('changeForm', filed)
     },
-    zkBtn () {
+    zkBtn() {
       this.showZk = !this.showZk
       this.$emit('zkBtn', this.zk)
     },
-    clear () {
+    clear() {
       this.$emit('clear')
     }
   }
diff --git a/admin/src/components/common/RichEditor.vue b/admin/src/components/common/RichEditor.vue
index 09786fb..d144c66 100644
--- a/admin/src/components/common/RichEditor.vue
+++ b/admin/src/components/common/RichEditor.vue
@@ -1,7 +1,7 @@
 <template>
   <div :style="styleEditor">
     <Toolbar style="border-bottom: 1px solid #ccc" :editor="editor" :defaultConfig="toolbarConfig" :mode="mode" />
-    <Editor style="height: 300px; overflow-y: hidden;" v-model="html" :defaultConfig="editorConfig" :mode="mode"
+    <Editor style="max-height: 300px;min-height: 100px; overflow-y: hidden;" v-model="html" :defaultConfig="editorConfig" :mode="mode"
             @onCreated="onCreated" @onChange="onChange" />
   </div>
 </template>
@@ -10,6 +10,7 @@
 import Vue from 'vue'
 import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
 import { Loading } from 'element-ui';
+let loadingInstance = null
 export default Vue.extend({
   props: {
     richData: { // 鐖剁粍浠朵紶閫掔殑鏁版嵁
@@ -149,7 +150,7 @@
             timeout: 10 * 1000, //10 绉�
             // 涓婁紶鍓�
             onBeforeUpload(files) {
-              Loading.service({
+              loadingInstance = Loading.service({
                 lock: true,
                 text: '涓婁紶涓�...',
                 spinner: 'el-icon-loading',
@@ -162,7 +163,7 @@
               console.log(res);
               // 鍥犱负鑷畾涔夋彃鍏ュ鑷磑nSuccess涓巓nFailed鍥炶皟鍑芥暟涓嶈捣浣滅敤,鑷繁鎵嬪姩澶勭悊
               // 鍏堝叧闂瓑寰呯殑Message
-              Loading.service({
+              loadingInstance = Loading.service({
                 lock: true,
                 text: '涓婁紶涓�...',
                 spinner: 'el-icon-loading',
@@ -187,6 +188,7 @@
             // 鍗曚釜鏂囦欢涓婁紶澶辫触
             onFailed(file, res) {
               console.log(`${file.originalFilename} 涓婁紶澶辫触`, res);
+              loadingInstance.close();
             },
             // 涓婁紶杩涘害鐨勫洖璋冨嚱鏁�
             onProgress(progress) {
@@ -195,6 +197,7 @@
             },
             // 涓婁紶閿欒锛屾垨鑰呰Е鍙� timeout 瓒呮椂
             onError(file, err, res) {
+              loadingInstance.close();
               console.log(`${file.originalFilename} 涓婁紶鍑洪敊`, err, res);
             }
           },
diff --git a/admin/src/views/business/internalMember.vue b/admin/src/views/business/internalMember.vue
index f0568a1..ba0ad77 100644
--- a/admin/src/views/business/internalMember.vue
+++ b/admin/src/views/business/internalMember.vue
@@ -58,7 +58,7 @@
         <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete"
             v-permissions="['business:member:delete']">鎵归噺鍒犻櫎</el-button></li>
         <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()"
-            icon="el-icon-plus">涓嬪彂鎺堟潈</el-button></li>
+            >涓嬪彂鎺堟潈</el-button></li>
         <li style="float: right">
           <el-checkbox style="font-size: 12px" label="1" v-model="searchForm.includeChild" key="1"
             @change="search">鏄惁鍖呭惈涓嬬骇缁勭粐</el-checkbox>
diff --git a/admin/src/views/business/relativeMember.vue b/admin/src/views/business/relativeMember.vue
index 5452250..026d7f3 100644
--- a/admin/src/views/business/relativeMember.vue
+++ b/admin/src/views/business/relativeMember.vue
@@ -65,8 +65,8 @@
             icon="el-icon-plus" v-permissions="['business:traintime:create']">鍩硅鏈熷鍏�</el-button></li>
         <li><el-button type="danger" @click="deleteByIdInBatch" icon="el-icon-delete"
             v-permissions="['business:member:delete']">鎵归噺鍒犻櫎</el-button></li>
-        <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()"
-            icon="el-icon-plus">涓嬪彂鎺堟潈</el-button></li>
+        <li><el-button type="primary" v-permissions="['business:empower:create']" @click="startEmpowerBatch()">涓嬪彂鎺堟潈</el-button></li>
+        <li><el-button type="primary" v-permissions="['business:empower:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
       </ul>
       <el-table v-loading="isWorking.search" :data="tableData.list" stripe @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55"></el-table-column>
@@ -147,7 +147,7 @@
         <el-table-column label="鍗$墖" min-width="80px">
           <template slot-scope="{row}">
             <el-button @click="$refs.cardOpeningRecord.open('寮�鍗¤褰�', row.id)" type="text">{{ row.memberCardCount ||
-              '0'}}</el-button>
+              '0' }}</el-button>
           </template>
         </el-table-column>
         <el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
@@ -383,6 +383,7 @@
 
 <style lang="scss" scoped>
 @import '@/assets/style/variables.scss';
+
 .box {
   width: 100%;
   display: flex;
@@ -399,6 +400,7 @@
     height: 100%;
   }
 }
+
 .zhuguan {
   color: $primary-color;
   border: 1px solid $primary-color;
diff --git a/admin/src/views/business/visitorSources.vue b/admin/src/views/business/visitorSources.vue
index 0aee304..84bdd07 100644
--- a/admin/src/views/business/visitorSources.vue
+++ b/admin/src/views/business/visitorSources.vue
@@ -75,25 +75,28 @@
         />
       </el-form-item>
       <el-form-item label="鍦ㄥ洯椤荤煡:" prop="visitNotice">
-        <el-tiptap
+        <!-- <el-tiptap
           style="width: 50%"
           v-model="form.visitNotice"
           :extensions="extensions"
-        />
+        /> -->
+        <RichEditor style="width: 70%" :richData="form.visitNotice" :styleEditor="styleEditor" @getWangedditor="getWangedditor" :readonly="false"/>
       </el-form-item>
       <el-form-item label="璁垮棰勭害鎸囧崡:" prop="visitNotice">
-        <el-tiptap
+        <!-- <el-tiptap
           style="width: 50%"
           v-model="form.visitTips"
           :extensions="extensions"
-        />
+        /> -->
+        <RichEditor style="width: 70%" :richData="form.visitTips" :styleEditor="styleEditor" @getWangedditor="getWangedditor1" :readonly="false"/>
       </el-form-item>
       <el-form-item label="璁垮鍏ュ洯瀵艰鍥�:" prop="visitNotice">
-        <el-tiptap
+        <!-- <el-tiptap
           style="width: 50%"
           v-model="form.visitMap"
           :extensions="extensions"
-        />
+        /> -->
+        <RichEditor style="width: 70%" :richData="form.visitMap" :styleEditor="styleEditor" @getWangedditor="getWangedditor2" :readonly="false"/>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" @click="submit">淇濆瓨閰嶇疆椤�</el-button>
@@ -104,6 +107,7 @@
 
 <script>
 import { getVisitConfigDTO, updateVisitConfig } from '@/api/system/common'
+import RichEditor from '@/components/common/RichEditor'
 import {
   // necessary extensions
   Doc,
@@ -131,7 +135,9 @@
 import { upload } from '@/api/system/common'
 export default {
   name: 'visitorSources',
-
+  components: {
+    RichEditor
+  },
   data() {
     return {
       form: {
@@ -148,6 +154,7 @@
         visitTips: '',
         frezzDays: null
       },
+      styleEditor:'border: 1px solid #ccc;display: inline-block;',
       extensions: [
         new Doc(),
         new Text(),
@@ -188,6 +195,15 @@
   },
 
   methods: {
+    getWangedditor(val){
+      this.form.visitNotice =val
+    },
+    getWangedditor1(val){
+      this.form.visitTips =val
+    },
+    getWangedditor2(val){
+      this.form.visitMap =val
+    },
     getData() {
       getVisitConfigDTO({})
         .then(res => {
diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index 2fbeab3..16c38ad 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -226,8 +226,7 @@
 import * as echarts from 'echarts'
 import { weeks } from '@/utils/config'
 import {
-  getWorkbenchBody,
-  getWorkbenchHead,
+  getWorkbenchData,
   getAppHeaderNav
 } from '@/api'
 const colors = ['#52a4f7', '#7678f7', '#5fc6d5']
@@ -283,10 +282,10 @@
       this.initEchart4()
     },
     getWorkBody() {
-      getWorkbenchBody()
+      getWorkbenchData({queryType: 2})
     },
     getWorkHead() {
-      getWorkbenchHead()
+      getWorkbenchData({queryType: 1})
     },
     initEchart1() {
       const myChart = echarts.init(document.getElementById('echart1'))
@@ -458,9 +457,9 @@
             symbol: 'circle',
             symbolSize: 10,
             itemStyle: {
-              normal: {
-                color: '#207FF7' // 鎶樼嚎鐐圭殑棰滆壊
-              }
+              borderWidth: 1,
+              borderColor: '#fff',
+              color: '#207FF7'
             },
             smooth: false
           }
@@ -557,9 +556,9 @@
             symbol: 'circle',
             symbolSize: 10,
             itemStyle: {
-              normal: {
-                color: '#42D49D' // 鎶樼嚎鐐圭殑棰滆壊
-              }
+              borderWidth: 1,
+              borderColor: '#fff',
+              color: '#42D49D' // 鎶樼嚎鐐圭殑棰滆壊
             },
             smooth: false
           }
diff --git a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
index 35a4005..70e321d 100644
--- a/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
+++ b/admin/src/views/platform/LogisticsRecord/leaveAuth.vue
@@ -121,6 +121,15 @@
             label: '椹鹃┒鍛�'
           },
           {
+            filed: 'queryStatusForPower',
+            type: 'select',
+            label: '鎺堟潈鐘舵��',
+            options: [
+              { value: '9,10', label: '宸叉巿鏉�' },
+              { value: '6', label: '鏈巿鏉�' }
+            ]
+          },
+          {
             filed: 'selDate',
             type: 'datetimerange',
             label: '浣滀笟瀹屾垚鏃堕棿鎼滅储',
diff --git a/admin/src/views/platform/LogisticsRecord/subscribe.vue b/admin/src/views/platform/LogisticsRecord/subscribe.vue
index 02ec74c..d68bd50 100644
--- a/admin/src/views/platform/LogisticsRecord/subscribe.vue
+++ b/admin/src/views/platform/LogisticsRecord/subscribe.vue
@@ -171,6 +171,18 @@
             label: '鍚堝悓鍗曞彿'
           },
           {
+            filed: 'status',
+            type: 'select',
+            label: '瀹℃壒缁撴灉',
+            options: [
+              { value: 0, label: '寰呭鎵�' },
+              { value: 1, label: '瀹℃壒涓�' },
+              { value: 2, label: '瀹℃壒閫氳繃' },
+              { value: 3, label: '瀹℃壒椹冲洖' },
+              { value: 4, label: '宸插彇娑�' },
+            ]
+          },
+          {
             filed: 'selDate',
             type: 'datetimerange',
             label: '鎿嶄綔鏃堕棿',
@@ -289,7 +301,7 @@
         selDate: [],
         fastdate: 0,
       }
-      this.getList()
+      this.changeRadio('0')
     },
     handleDetail(row) {
       this.isShowDriver = true
diff --git a/admin/src/views/platform/LogisticsRecord/waybill.vue b/admin/src/views/platform/LogisticsRecord/waybill.vue
index 3786ca0..dd34efc 100644
--- a/admin/src/views/platform/LogisticsRecord/waybill.vue
+++ b/admin/src/views/platform/LogisticsRecord/waybill.vue
@@ -105,6 +105,23 @@
             label: '杞︾墝鍙�'
           },
           {
+            filed: 'status',
+            type: 'select',
+            label: '浣滀笟鐘舵��',
+            options: [
+              { value: 3, label: '鍏ュ洯绛夊緟' },
+              { value: 4, label: '鏈堝彴绛夊緟' },
+              { value: 5, label: '浣滀笟涓�' },
+              { value: 6, label: '浣滀笟瀹屾垚' },
+              { value: 7, label: '杞Щ涓�' },
+              { value: 8, label: '寮傚父鎸傝捣' },
+              { value: 9, label: '宸叉巿鏉冪鍥�' },
+              { value: 10, label: '宸茬鍥�' },
+              { value: 11, label: '宸茶繃鍙�' },
+              { value: 12, label: '宸插彇娑�' },
+            ]
+          },
+          {
             filed: 'selDate',
             type: 'datetimerange',
             label: '鎿嶄綔鏃堕棿',
diff --git a/admin/src/views/platform/components/PlatformSign.vue b/admin/src/views/platform/components/PlatformSign.vue
index 1ff8326..c9d2191 100644
--- a/admin/src/views/platform/components/PlatformSign.vue
+++ b/admin/src/views/platform/components/PlatformSign.vue
@@ -45,8 +45,8 @@
             </div>
           </div>
           <div class="footer df_sb">
-            <div @click="handleDetail(item)" v-if="item.type != 4" class="detail">杩愬崟璇︽儏</div>
-            <div v-else></div>
+            <div @click="handleDetail(item)" v-if="item.billCode" class="detail">杩愬崟璇︽儏</div>
+            <div @click="subDetail(item)" v-else class="detail">棰勭害璇︽儏</div>
             <el-button type="primary" @click="handleCall(item)">绛惧埌</el-button>
           </div>
         </div>
@@ -55,6 +55,7 @@
       </pagination>
     </div>
     <WaybillDetailRef v-if="isShowDetail" ref="WaybillDetailRef" />
+    <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" />
   </GlobalWindow>
 </template>
 
@@ -62,6 +63,7 @@
 import GlobalWindow from '@/components/common/GlobalWindow'
 import Pagination from '@/components/common/Pagination'
 import WaybillDetailRef from "./WaybillDetail.vue"
+import DriverDetail from "@/views/task/driverDetail.vue"
 import { platformJobPage, platformJobSign } from '@/api'
 import { statusMap } from '../config'
 import { Message } from 'element-ui'
@@ -69,13 +71,15 @@
   components: {
     GlobalWindow,
     Pagination,
-    WaybillDetailRef
+    WaybillDetailRef,
+    DriverDetail
   },
   data() {
     return {
       statusMap,
       isShowModal: false,
       isShowDetail: false,
+      isShowDriver: false,
       subLoading: false,
       pagination: {
         total: 0,
@@ -108,6 +112,15 @@
         this.pagination.total = res.total
       })
     },
+    subDetail(row) {
+      this.isShowDriver = true
+      this.$nextTick(() => {
+        this.$refs.DriverDetailRef.id = row.bookId
+        this.$refs.DriverDetailRef.type = row.objType
+        this.$refs.DriverDetailRef.getDetail()
+        this.$refs.DriverDetailRef.isShowModal = true
+      })
+    },
     handleDetail(row) {
       this.isShowDetail = true
       this.$nextTick(() => {
diff --git a/admin/src/views/platform/queueUp.vue b/admin/src/views/platform/queueUp.vue
index 9d04a1e..173ad1f 100644
--- a/admin/src/views/platform/queueUp.vue
+++ b/admin/src/views/platform/queueUp.vue
@@ -44,7 +44,9 @@
       <el-table-column prop="signDate" label="绛惧埌鏃堕棿" min-width="150" />
       <el-table-column label="鎿嶄綔" align="center" width="100" fixed="right">
         <template slot-scope="{ row }">
-          <el-button v-if="activeGroup.type == 2" type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button>
+          <el-button v-if="row.billCode" type="text" @click="handleDetail(row)"
+            v-permissions="['business:company:update']">杩愬崟璇︽儏</el-button>
+          <el-button v-else type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -71,8 +73,9 @@
       <el-table-column prop="signDate" label="绛惧埌鏃堕棿" min-width="150" />
       <el-table-column label="鎿嶄綔" align="center" width="100" fixed="right">
         <template slot-scope="{ row }">
-          <el-button type="text" @click="handleDetail(row)"
+          <el-button v-if="row.billCode" type="text" @click="handleDetail(row)"
             v-permissions="['business:company:update']">杩愬崟璇︽儏</el-button>
+          <el-button v-else type="text" @click="subDetail(row)">棰勭害璇︽儏</el-button>
         </template>
       </el-table-column>
     </el-table>
diff --git a/admin/src/views/system/smsMessage.vue b/admin/src/views/system/smsMessage.vue
index 9b1052e..f3f551f 100644
--- a/admin/src/views/system/smsMessage.vue
+++ b/admin/src/views/system/smsMessage.vue
@@ -1,20 +1,22 @@
 <template>
   <div class="main_app">
-    <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)"
-      @clear="clear">
+    <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear">
     </QueryForm>
-    <!-- <div class="pt16">
-      <el-button :loading="exLoading" @click="handleEx"
-        v-permissions="['business:platformjob:exportExcel']">瀵煎嚭</el-button>
-    </div> -->
-    <el-table class="mb20" v-loading="loading" :data="list" stripe>
+    <div class="pt16 mb10">
+      <el-button type="primary" @click="batchStatus(0)"
+        v-permissions="['business:platformjob:update']">鎵归噺鍚敤</el-button>
+      <el-button @click="batchStatus(1)" v-permissions="['business:platformjob:update']">鎵归噺绂佺敤</el-button>
+    </div>
+    <el-table @selection-change="handleSelectionChange" class="mb20" v-loading="loading" :data="list" stripe>
+      <el-table-column align="center" type="selection" width="55">
+      </el-table-column>
       <el-table-column prop="name" label="娑堟伅鏍囬" min-width="160" show-overflow-tooltip />
       <el-table-column prop="code" label="娑堟伅缂栫爜" min-width="150" show-overflow-tooltip />
       <el-table-column prop="content" label="娑堟伅妯℃澘" min-width="300" show-overflow-tooltip />
       <el-table-column label="鐘舵��" width="120" align="center" fixed="right">
         <template v-slot="scope">
-          <el-switch v-model="scope.row.status" @change="changeStatus(scope.row)" :active-value="0" :inactive-value="1">
-          </el-switch>  
+          <el-switch v-permissions="['business:platformjob:update']" v-model="scope.row.status" @change="changeStatus(scope.row)" :active-value="0" :inactive-value="1">
+          </el-switch>
         </template>
       </el-table-column>
     </el-table>
@@ -25,7 +27,7 @@
 <script>
 import Pagination from '@/components/common/Pagination'
 import QueryForm from '@/components/common/QueryForm'
-import { getSmsList, SmsStatusUpdate } from '@/api/system/sms'
+import { getSmsList, SmsStatusUpdate, SmsStatussUpdate } from '@/api/system/sms'
 
 import GlobalWindow from '@/components/common/GlobalWindow'
 import { Message } from 'element-ui'
@@ -38,6 +40,7 @@
   },
   data() {
     return {
+      ids: [],
       isShowDetail: false,
       exLoading: false,
       loading: false,
@@ -78,8 +81,32 @@
     this.getList()
   },
   methods: {
+    handleSelectionChange(val) {
+      this.ids = val.map(i => i.id)
+      console.log('ids', this.ids)
+    },
+    batchStatus(status) {
+      const { ids } = this
+      if (ids.length == 0) return Message.error('璇峰厛閫夋嫨瑕佹洿鏀圭殑鐭俊閫氱煡')
+      this.$confirm(`纭畾${status == 0 ? '鍚敤' : '绂佺敤'}閫変腑鐨勬墍鏈夌煭淇¢�氱煡鍚�?`, '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        SmsStatussUpdate({
+          ids: ids.join(','),
+          status
+        }).then(res => {
+          Message.success('鎵归噺鏇存柊鎴愬姛')
+          this.getList()
+        }, () => {
+          this.getList()
+        })
+      })
+
+    },
     changeStatus(row) {
-      console.log('row', row);
+      console.log('row', row)
       SmsStatusUpdate({
         ...row
       }).then(res => {
@@ -109,8 +136,8 @@
         this.loading = false
       })
     },
-   
-    
+
+
     clear() {
       this.pagination.page = 1
       this.filters = {}
diff --git a/admin/src/views/task/driverDetail.vue b/admin/src/views/task/driverDetail.vue
index 2856745..82ff153 100644
--- a/admin/src/views/task/driverDetail.vue
+++ b/admin/src/views/task/driverDetail.vue
@@ -69,7 +69,7 @@
             <div class="content">
               <div class="head">
                 <div class="event">{{ item.title }}</div>
-                <div class="time">{{ item.createDate }}</div>
+                <div class="time">{{ item.checkDate }}</div>
               </div>
               <div class="name_wrap">
                 <span>{{ item.memberName }}<span v-if="item.statusInfo" class="status">({{ item.statusInfo
@@ -134,7 +134,7 @@
       id: '',
       type: '',
 
-      title: '璁垮棰勭害璇︽儏',
+      title: '鐗╂祦杞﹂绾﹁鎯�',
       isShowModal: false,
       info: {},
       isShowAppr: false,
diff --git a/admin/src/views/task/visSubDetail.vue b/admin/src/views/task/visSubDetail.vue
index cb47f45..ce0413c 100644
--- a/admin/src/views/task/visSubDetail.vue
+++ b/admin/src/views/task/visSubDetail.vue
@@ -115,7 +115,7 @@
                   <div class="company">
                     {{ item.memberName }}
                     <div style="display: inline" v-if="item.statusInfo != null && item.statusInfo != ''">
-                      锛�<span class="status" :class="{ padding: item.statusInfo == '澶勭悊涓�' || item.status == '1' }">{{
+                      锛�<span :class="{ padding: item.statusInfo == '澶勭悊涓�' || item.status == '1' }">{{
                         item.statusInfo || ""
                         }}</span>锛�
                     </div>
@@ -130,7 +130,7 @@
             " class="remark">
               {{ item.checkInfo || "" }}
             </div>
-            <div v-if="item.approveType == 1 || item.approveType == 0" class="childList">
+            <div v-if="item.approveType == 1" class="childList">
               <div class="m_content company" v-for="item1 in item.approveList" :key="item1.id">
                 <img v-if="item1.faceImg != null && item1.faceImg != ''" :src="item1.faceImg" class="avatar" alt="" />
                 <img v-if="item1.faceImg == null || item1.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
diff --git a/h5/pages/staff/task/driver.vue b/h5/pages/staff/task/driver.vue
index 421cfdd..7018b5d 100644
--- a/h5/pages/staff/task/driver.vue
+++ b/h5/pages/staff/task/driver.vue
@@ -101,7 +101,11 @@
       </view>
     </view>
     <view class="emyty"></view>
-    <view class="main_footer">
+    <view v-if="
+      info.approveDateVO != null &&
+      info.approveDateVO.canBeApproved != null &&
+      info.approveDateVO.canBeApproved == 1
+    " class="main_footer">
       <view class="btn" @click="handleSub('0')">鎷掔粷</view>
       <view class="btn agree" @click="handleSub('1')">鍚屾剰</view>
     </view>
diff --git a/h5/utils/config.js b/h5/utils/config.js
index d4d7d3a..d600971 100644
--- a/h5/utils/config.js
+++ b/h5/utils/config.js
@@ -1,5 +1,7 @@
 
-export const baseUrl = 'admin_interface/'
+// export const baseUrl = 'admin_interface/'
+export const baseUrl = 'http://192.168.0.173/gateway_interface/'
+
 export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`
 export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch`
 
diff --git a/pda/manifest.json b/pda/manifest.json
index efecef9..cb7800a 100644
--- a/pda/manifest.json
+++ b/pda/manifest.json
@@ -18,7 +18,7 @@
 			"proxy": {
 				"/gateway_interface": {
 					// 杩欎釜瀛楁鍚嶉渶涓庝綘閰嶇疆鐨刡asePrefixUrl涓�鑷达紝绯荤粺璇嗗埆鍒板甫鏈�/dev-api璇锋眰鐨勫湴鍧�鏃讹紝浼氬湪鍓嶉潰鎷兼帴涓婁唬鐞嗘湇鍔″櫒鍦板潃
-					"target" : "http://10.50.250.178:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
+					"target" : "http://10.50.250.253:8088/gateway_interface", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
 					// "target": "http://192.168.0.100:10010", // 浠g悊鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃
 					"changeOrigin": true, // 鍏佽璺ㄥ煙 
 					"pathRewrite": {
diff --git a/pda/pages/index/control.vue b/pda/pages/index/control.vue
index 904ea22..739a7d0 100644
--- a/pda/pages/index/control.vue
+++ b/pda/pages/index/control.vue
@@ -36,7 +36,7 @@
 		},
 		getPlatformGroup() {
 			getPlatformGroupList({
-				queryData: 1,
+				queryData: 0,
 				queryType: 0
 			}).then(res => {
 				this.platformGroupList = res.data || []
diff --git a/pda/utils/config.js b/pda/utils/config.js
index cccc897..0d82c16 100644
--- a/pda/utils/config.js
+++ b/pda/utils/config.js
@@ -1,6 +1,6 @@
 
-export const baseUrl = 'gateway_interface/'
-// export const baseUrl = 'http://10.50.250.178:8088/gateway_interface/'
+// export const baseUrl = 'gateway_interface/'
+export const baseUrl = 'http://10.50.250.253:8088/gateway_interface/'
 export const uploadAvatar = `${baseUrl}visitsAdmin/cloudService/web/public/uploadFtp.do`
 export const uploadUrl = `${baseUrl}visitsAdmin/cloudService/public/uploadBatch`
 
diff --git a/screen/package.json b/screen/package.json
index d7e0320..c1738f2 100644
--- a/screen/package.json
+++ b/screen/package.json
@@ -5,6 +5,7 @@
   "type": "module",
   "scripts": {
     "dev": "vite --host",
+    "serve": "vite --host",
     "build": "vite build",
     "preview": "vite preview"
   },
diff --git a/screen/src/assets/images/energy_ef/bg@2x.png b/screen/src/assets/images/energy_ef/bg@2x.png
new file mode 100644
index 0000000..6b6b563
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/bg@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/car_kongxian@2x.png b/screen/src/assets/images/energy_ef/car_kongxian@2x.png
new file mode 100644
index 0000000..4b88ea3
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/car_kongxian@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/car_lixian@2x.png b/screen/src/assets/images/energy_ef/car_lixian@2x.png
new file mode 100644
index 0000000..bc75d5f
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/car_lixian@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/car_zaitu@2x.png b/screen/src/assets/images/energy_ef/car_zaitu@2x.png
new file mode 100644
index 0000000..4640d4b
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/car_zaitu@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/china@2x.png b/screen/src/assets/images/energy_ef/china@2x.png
new file mode 100644
index 0000000..e0ca96c
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/china@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/chuku_ic_car@2x.png b/screen/src/assets/images/energy_ef/chuku_ic_car@2x.png
new file mode 100644
index 0000000..990950f
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/chuku_ic_car@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/chuku_task.png b/screen/src/assets/images/energy_ef/chuku_task.png
new file mode 100644
index 0000000..56c945e
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/chuku_task.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/chuku_task_ac.png b/screen/src/assets/images/energy_ef/chuku_task_ac.png
new file mode 100644
index 0000000..6742b96
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/chuku_task_ac.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/ic_bili@2x.png b/screen/src/assets/images/energy_ef/ic_bili@2x.png
new file mode 100644
index 0000000..49efcd1
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/ic_bili@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/ic_chukuxiaolv@2x.png b/screen/src/assets/images/energy_ef/ic_chukuxiaolv@2x.png
new file mode 100644
index 0000000..39c6e3b
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/ic_chukuxiaolv@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/ic_renwuzongliang@2x.png b/screen/src/assets/images/energy_ef/ic_renwuzongliang@2x.png
new file mode 100644
index 0000000..91bd7e2
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/ic_renwuzongliang@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/ic_rukuxiaolv@2x.png b/screen/src/assets/images/energy_ef/ic_rukuxiaolv@2x.png
new file mode 100644
index 0000000..cb09cb1
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/ic_rukuxiaolv@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/ic_wanchengrenwu@2x.png b/screen/src/assets/images/energy_ef/ic_wanchengrenwu@2x.png
new file mode 100644
index 0000000..2d1dfcc
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/ic_wanchengrenwu@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/map_car_kongxian@2x.png b/screen/src/assets/images/energy_ef/map_car_kongxian@2x.png
new file mode 100644
index 0000000..38bff78
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/map_car_kongxian@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/map_car_lixian@2x.png b/screen/src/assets/images/energy_ef/map_car_lixian@2x.png
new file mode 100644
index 0000000..42ffa31
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/map_car_lixian@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/map_car_zaitu@2x.png b/screen/src/assets/images/energy_ef/map_car_zaitu@2x.png
new file mode 100644
index 0000000..7efde5a
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/map_car_zaitu@2x.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/ruku_task.png b/screen/src/assets/images/energy_ef/ruku_task.png
new file mode 100644
index 0000000..1d33480
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/ruku_task.png
Binary files differ
diff --git a/screen/src/assets/images/energy_ef/ruku_task_ac.png b/screen/src/assets/images/energy_ef/ruku_task_ac.png
new file mode 100644
index 0000000..06cebcc
--- /dev/null
+++ b/screen/src/assets/images/energy_ef/ruku_task_ac.png
Binary files differ
diff --git a/screen/src/assets/images/maintitle.gif b/screen/src/assets/images/maintitle.gif
new file mode 100644
index 0000000..dbe6c73
--- /dev/null
+++ b/screen/src/assets/images/maintitle.gif
Binary files differ
diff --git a/screen/src/router/index.js b/screen/src/router/index.js
index b25624f..69da7a3 100644
--- a/screen/src/router/index.js
+++ b/screen/src/router/index.js
@@ -6,7 +6,7 @@
   routes: [
     {
       path: '/',
-      component: () => import('../views/PlatformCall.vue')
+      component: () => import('../views/LogisticsEfficiency.vue')
     },
     {
       path: '/PlatformCall',
@@ -18,6 +18,11 @@
       name: 'EnergyConsum',
       component: () => import('../views/EnergyConsum.vue')
     },
+    {
+      path: '/LogisticsControl',
+      name: 'LogisticsControl',
+      component: () => import('../views/LogisticsEfficiency.vue')
+    },
   ]
 })
 
diff --git a/screen/src/views/EnergyConsum.vue b/screen/src/views/EnergyConsum.vue
index 8be04ea..d408457 100644
--- a/screen/src/views/EnergyConsum.vue
+++ b/screen/src/views/EnergyConsum.vue
@@ -1,241 +1,243 @@
 <template>
-  <div class="main_app">
-    <img src="@/assets/images/bg_main_app.png" class="main_bg" alt="" />
-    <div class="main_header">
-      <img src="@/assets/images/maintitle@2x.png" class="main_header_bg" alt="" />
-      <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-缁胯壊浣庣⒊杩愯惀</div>
-      <div class="time">
-        <span class="date">{{ date }}</span>
-        <span class="week">{{ week }}</span>
-        <span class="time">{{ time }}</span>
-      </div>
-    </div>
-    <div class="main_content">
-      <div class="left_box">
-        <div class="left_box_one">
-          <div class="com_header">
-            <div class="title">
-              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-              <div>瀹炴椂涓夌浉鐢垫祦/鐢靛帇</div>
-            </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
-          </div>
-          <div class="content">
-            <div class="item">
-              <div class="lab">A鐩哥數娴�(A)</div>
-              <div class="val">60</div>
-            </div>
-            <div class="item">
-              <div class="lab">B鐩哥數娴�(A)</div>
-              <div class="val">60</div>
-            </div>
-            <div class="item">
-              <div class="lab">C鐩哥數娴�(A)</div>
-              <div class="val">60</div>
-            </div>
-            <div class="item">
-              <div class="lab">鏈夊姛鍔熺巼(KW)</div>
-              <div class="val">60</div>
-            </div>
-            <div class="item">
-              <div class="lab">鍔熺巼鍥犳暟</div>
-              <div class="val">60</div>
-            </div>
-            <div class="item">
-              <div class="lab">鏈夊姛鐢靛害(掳)</div>
-              <div class="val">60</div>
-            </div>
-          </div>
-        </div>
-        <div class="left_box_two">
-          <div class="com_header">
-            <div class="title">
-              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-              <div>瀹炴椂璐熻嵎鏇茬嚎</div>
-            </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
-          </div>
-          <div class="load_wrap">
-            <div class="loadRef"></div>
-          </div>
-        </div>
-        <div class="left_box_three">
-          <div class="com_header">
-            <div class="title">
-              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-              <div>鏈堣兘鑰楀垎鏋�</div>
-            </div>
-            <div class="tabs">
-              <div class="tab active">鐢ㄧ數</div>
-              <div class="separate"></div>
-              <div class="tab">鐢ㄦ按</div>
-              <div class="separate"></div>
-              <div class="tab">鐢ㄦ皵</div>
-            </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
-          </div>
-          <div class="energy_wrap">
-            <div class="energyRef"></div>
-          </div>
+  <v-scale-screen width="1920" height="960" :fullScreen="true">
+    <div class="main_app">
+      <img src="@/assets/images/bg_main_app.png" class="main_bg" alt="" />
+      <div class="main_header">
+        <img src="@/assets/images/maintitle@2x.png" class="main_header_bg" alt="" />
+        <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-缁胯壊浣庣⒊杩愯惀</div>
+        <div class="time_wrap">
+          <span class="date">{{ date }}</span>
+          <span class="week">{{ week }}</span>
+          <span class="time">{{ time }}</span>
         </div>
       </div>
-      <div class="center_box">
-        <div class="center_box_one">
-          <div class="list">
-            <div class="item">
-              <div class="header">
-                <img class="icon" src="@/assets/images/ic_yongdian@2x.png" alt="" />
-                <div class="content">
-                  <div class="name">涓婃湀鐢ㄧ數(kw路h)</div>
-                  <div class="num">450</div>
+      <div class="main_content">
+        <div class="left_box">
+          <div class="left_box_one">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>瀹炴椂涓夌浉鐢垫祦/鐢靛帇</div>
+              </div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            </div>
+            <div class="content">
+              <div class="item">
+                <div class="lab">A鐩哥數娴�(A)</div>
+                <div class="val">60</div>
+              </div>
+              <div class="item">
+                <div class="lab">B鐩哥數娴�(A)</div>
+                <div class="val">60</div>
+              </div>
+              <div class="item">
+                <div class="lab">C鐩哥數娴�(A)</div>
+                <div class="val">60</div>
+              </div>
+              <div class="item">
+                <div class="lab">鏈夊姛鍔熺巼(KW)</div>
+                <div class="val">60</div>
+              </div>
+              <div class="item">
+                <div class="lab">鍔熺巼鍥犳暟</div>
+                <div class="val">60</div>
+              </div>
+              <div class="item">
+                <div class="lab">鏈夊姛鐢靛害(掳)</div>
+                <div class="val">60</div>
+              </div>
+            </div>
+          </div>
+          <div class="left_box_two">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>瀹炴椂璐熻嵎鏇茬嚎</div>
+              </div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            </div>
+            <div class="load_wrap">
+              <div class="loadRef"></div>
+            </div>
+          </div>
+          <div class="left_box_three">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>鏈堣兘鑰楀垎鏋�</div>
+              </div>
+              <div class="tabs">
+                <div class="tab active">鐢ㄧ數</div>
+                <div class="separate"></div>
+                <div class="tab">鐢ㄦ按</div>
+                <div class="separate"></div>
+                <div class="tab">鐢ㄦ皵</div>
+              </div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            </div>
+            <div class="energy_wrap">
+              <div class="energyRef"></div>
+            </div>
+          </div>
+        </div>
+        <div class="center_box">
+          <div class="center_box_one">
+            <div class="list">
+              <div class="item">
+                <div class="header">
+                  <img class="icon" src="@/assets/images/ic_yongdian@2x.png" alt="" />
+                  <div class="content">
+                    <div class="name">涓婃湀鐢ㄧ數(kw路h)</div>
+                    <div class="num">450</div>
+                  </div>
+                </div>
+                <div class="static">
+                  <span class="lab">鍚屾瘮</span>
+                  <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
+                  <span class="val">11</span>
+                  <span class="lab">鐜瘮</span>
+                  <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  <span class="val">11</span>
                 </div>
               </div>
-              <div class="static">
-                <span class="lab">鍚屾瘮</span>
-                <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
-                <span class="val">11</span>
-                <span class="lab">鐜瘮</span>
-                <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
-                <span class="val">11</span>
-              </div>
-            </div>
-            <div class="item">
-              <div class="header">
-                <img class="icon" src="@/assets/images/ic_yongshui@2x.png" alt="" />
-                <div class="content">
-                  <div class="name">涓婃湀鐢ㄦ按(t)</div>
-                  <div class="num">450</div>
+              <div class="item">
+                <div class="header">
+                  <img class="icon" src="@/assets/images/ic_yongshui@2x.png" alt="" />
+                  <div class="content">
+                    <div class="name">涓婃湀鐢ㄦ按(t)</div>
+                    <div class="num">450</div>
+                  </div>
+                </div>
+                <div class="static">
+                  <span class="lab">鍚屾瘮</span>
+                  <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
+                  <span class="val">11</span>
+                  <span class="lab">鐜瘮</span>
+                  <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  <span class="val">11</span>
                 </div>
               </div>
-              <div class="static">
-                <span class="lab">鍚屾瘮</span>
-                <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
-                <span class="val">11</span>
-                <span class="lab">鐜瘮</span>
-                <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
-                <span class="val">11</span>
-              </div>
-            </div>
-            <div class="item">
-              <div class="header">
-                <img class="icon" src="@/assets/images/ic_yongqi@2x.png" alt="" />
-                <div class="content">
-                  <div class="name">涓婃湀鐢ㄦ皵(t)</div>
-                  <div class="num">450</div>
+              <div class="item">
+                <div class="header">
+                  <img class="icon" src="@/assets/images/ic_yongqi@2x.png" alt="" />
+                  <div class="content">
+                    <div class="name">涓婃湀鐢ㄦ皵(t)</div>
+                    <div class="num">450</div>
+                  </div>
+                </div>
+                <div class="static">
+                  <span class="lab">鍚屾瘮</span>
+                  <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
+                  <span class="val">11</span>
+                  <span class="lab">鐜瘮</span>
+                  <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
+                  <span class="val">11</span>
                 </div>
               </div>
-              <div class="static">
-                <span class="lab">鍚屾瘮</span>
-                <img class="icon" src="@/assets/images/ic_up.webp" alt="" />
-                <span class="val">11</span>
-                <span class="lab">鐜瘮</span>
-                <img class="icon" src="@/assets/images/ic_down.webp" alt="" />
-                <span class="val">11</span>
+            </div>
+          </div>
+          <div class="center_box_two">
+            <img class="bg" src="@/assets/images/img_city@2x.png" alt="" />
+            <div class="item item1">
+              <div class="num fs_linear">240<span class="unit">kw路h</span></div>
+              <div class="name">鑱斿悎宸ユ埧</div>
+              <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+            </div>
+            <div class="item item2">
+              <div class="num fs_linear">240<span class="unit">kw路h</span></div>
+              <div class="name">鑱斿悎宸ユ埧</div>
+              <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+            </div>
+            <div class="item item3">
+              <div class="num fs_linear">240<span class="unit">kw路h</span></div>
+              <div class="name">鑱斿悎宸ユ埧</div>
+              <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+            </div>
+            <div class="item item4">
+              <div class="num fs_linear">240<span class="unit">kw路h</span></div>
+              <div class="name">鑱斿悎宸ユ埧</div>
+              <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+            </div>
+            <div class="item item5">
+              <div class="num fs_linear">240<span class="unit">kw路h</span></div>
+              <div class="name">鑱斿悎宸ユ埧</div>
+              <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
+            </div>
+            <div class="bottom_wrap">
+              <div class="bottom bottom1">
+                <div class="num fs_linear">240</div>
+                <div class="name">鏄ㄦ棩鐢ㄧ數</div>
+                <div class="unit">kw路h</div>
+                <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
+              </div>
+              <div class="bottom bottom2">
+                <div class="num">240</div>
+                <div class="name">浠婃棩鐢ㄧ數</div>
+                <div class="unit">kw路h</div>
+                <img src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" />
+              </div>
+              <div class="bottom bottom3">
+                <div class="num fs_linear">240</div>
+                <div class="name">鏈湀鐢ㄧ數</div>
+                <div class="unit">kw路h</div>
+                <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
               </div>
             </div>
           </div>
         </div>
-        <div class="center_box_two">
-          <img class="bg" src="@/assets/images/img_city@2x.png" alt="" />
-          <div class="item item1">
-            <div class="num fs_linear">240<span class="unit">kw路h</span></div>
-            <div class="name">鑱斿悎宸ユ埧</div>
-            <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
-          </div>
-          <div class="item item2">
-            <div class="num fs_linear">240<span class="unit">kw路h</span></div>
-            <div class="name">鑱斿悎宸ユ埧</div>
-            <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
-          </div>
-          <div class="item item3">
-            <div class="num fs_linear">240<span class="unit">kw路h</span></div>
-            <div class="name">鑱斿悎宸ユ埧</div>
-            <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
-          </div>
-          <div class="item item4">
-            <div class="num fs_linear">240<span class="unit">kw路h</span></div>
-            <div class="name">鑱斿悎宸ユ埧</div>
-            <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
-          </div>
-          <div class="item item5">
-            <div class="num fs_linear">240<span class="unit">kw路h</span></div>
-            <div class="name">鑱斿悎宸ユ埧</div>
-            <img src="@/assets/images/bg_data@2x.png" class="bg" alt="" />
-          </div>
-          <div class="bottom_wrap">
-            <div class="bottom bottom1">
-              <div class="num fs_linear">240</div>
-              <div class="name">鏄ㄦ棩鐢ㄧ數</div>
-              <div class="unit">kw路h</div>
-              <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
-            </div>
-            <div class="bottom bottom2">
-              <div class="num">240</div>
-              <div class="name">浠婃棩鐢ㄧ數</div>
-              <div class="unit">kw路h</div>
-              <img src="@/assets/images/ic_dianliang@2x.png" class="bg" alt="" />
-            </div>
-            <div class="bottom bottom3">
-              <div class="num fs_linear">240</div>
-              <div class="name">鏈湀鐢ㄧ數</div>
-              <div class="unit">kw路h</div>
-              <img src="@/assets/images/ic_dianliang_b@2x.png" class="bg" alt="" />
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="right_box">
-        <div class="right_box_one">
-          <div class="com_header">
-            <div class="title">
-              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-              <div>鏈湀纰虫帓鏀鹃噺缁熻</div>
-            </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
-          </div>
-          <div class="content">
-            <img src="@/assets/images/ic_co2@2x.png" class="co2" alt="">
-            <div>
-              <div class="name">鏈湀绱纰虫帓鏀�</div>
-              <div><span class="num">22.22</span><span>鍚�</span></div>
-            </div>
-          </div>
-        </div>
-        <div class="right_box_two">
-          <div class="com_header">
-            <div class="title">
-              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-              <div>涓婃湀娌硅�楁帓琛岀粺璁�</div>
-            </div>
-            <div class="tabs">娌硅�楋細L</div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
-          </div>
-          <div class="list">
-            <div class="line" v-for="item,i in 6">
-              <div class="top"><span v-if="i < 3">top</span>{{ i }}</div>
-              <div class="id_card">鐨朅12313</div>
-              <div class="wrap">
-                <ChargeRate :rate="15" :color />
+        <div class="right_box">
+          <div class="right_box_one">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>鏈湀纰虫帓鏀鹃噺缁熻</div>
               </div>
-              <div class="num">1000</div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            </div>
+            <div class="content">
+              <img src="@/assets/images/ic_co2@2x.png" class="co2" alt="">
+              <div>
+                <div class="name">鏈湀绱纰虫帓鏀�</div>
+                <div><span class="num">22.22</span><span>鍚�</span></div>
+              </div>
             </div>
           </div>
-        </div>
-        <div class="right_box_three">
-          <div class="com_header">
-            <div class="title">
-              <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
-              <div>鏈堟补鑰楀垎鏋�</div>
+          <div class="right_box_two">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>涓婃湀娌硅�楁帓琛岀粺璁�</div>
+              </div>
+              <div class="tabs">娌硅�楋細L</div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
             </div>
-            <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            <div class="list">
+              <div class="line" v-for="item, i in 6">
+                <div class="top"><span v-if="i < 3">top</span>{{ i }}</div>
+                <div class="id_card">鐨朅12313</div>
+                <div class="wrap">
+                  <ChargeRate :rate="15" :color />
+                </div>
+                <div class="num">1000</div>
+              </div>
+            </div>
           </div>
-          <div class="wrap">
-            <div class="analyseRef"></div>
+          <div class="right_box_three">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>鏈堟补鑰楀垎鏋�</div>
+              </div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            </div>
+            <div class="wrap">
+              <div class="analyseRef"></div>
+            </div>
           </div>
         </div>
       </div>
     </div>
-  </div>
+  </v-scale-screen>
 </template>
 
 <script setup>
@@ -243,6 +245,7 @@
 import dayjs from 'dayjs'
 import ChargeRate from '@/components/ChargeRate.vue'
 import * as echarts from 'echarts'
+import VScaleScreen from 'v-scale-screen'
 
 
 const weekMap = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�',]
@@ -286,7 +289,7 @@
     xAxis: {
       type: 'category',
       boundaryGap: false,
-      data: [1,2,3,4,5,5]
+      data: [1, 2, 3, 4, 5, 5]
     },
     yAxis: {
       type: 'value',
@@ -313,7 +316,7 @@
     },
     series: [
       {
-        data: [1,2,3,4,4,5].map(i => {
+        data: [1, 2, 3, 4, 4, 5].map(i => {
           return {
             name: i,
             value: i,
@@ -398,7 +401,7 @@
     xAxis: {
       type: 'category',
       boundaryGap: false,
-      data: [1,2,3,4,5,5]
+      data: [1, 2, 3, 4, 5, 5]
     },
     yAxis: {
       type: 'value',
@@ -425,7 +428,7 @@
     },
     series: [
       {
-        data: [1,2,3,4,4,4000].map(i => {
+        data: [1, 2, 3, 4, 4, 4000].map(i => {
           return {
             name: i,
             value: i,
@@ -502,7 +505,7 @@
     },
     xAxis: {
       type: 'category',
-      data: [1,2,3,4,4,5]
+      data: [1, 2, 3, 4, 4, 5]
     },
     yAxis: {
       type: 'value',
@@ -520,7 +523,7 @@
     },
     series: [
       {
-        data: [1,2,3,4,5],
+        data: [1, 2, 3, 4, 5],
         type: 'bar',
         barWidth: 10,
         itemStyle: {
@@ -547,7 +550,7 @@
   initOperation()
   initLoadReal()
   initEnergy()
-}) 
+})
 
 
 </script>
@@ -591,11 +594,13 @@
 
     .left_box_two {
       margin-bottom: 20px;
-      .load_wrap{
+
+      .load_wrap {
         width: 100%;
         height: 210px;
         padding: 12px 12px;
-        .loadRef{
+
+        .loadRef {
           width: 100%;
           height: 100%;
         }
@@ -603,10 +608,11 @@
     }
 
     .left_box_three {
-      .energy_wrap{
+      .energy_wrap {
         width: 100%;
         height: 200px;
-        .energyRef{
+
+        .energyRef {
           width: 100%;
           height: 100%;
         }
@@ -805,6 +811,7 @@
 
     .right_box_one {
       margin-bottom: 20px;
+
       .content {
         height: 164px;
         display: flex;
@@ -825,15 +832,19 @@
         }
       }
     }
-    .right_box_two{
+
+    .right_box_two {
       margin-bottom: 20px;
-      .list{
+
+      .list {
         padding: 20px 24px 4px;
-        .line{
+
+        .line {
           display: flex;
           align-items: center;
           margin-bottom: 16px;
-          .top{
+
+          .top {
             font-weight: 500;
             font-size: 12px;
             width: 33px;
@@ -844,19 +855,22 @@
             box-shadow: inset 0px 0px 3px 0px #01D9FE;
             margin-right: 10px;
           }
-          .id_card{
+
+          .id_card {
             color: #DBEAEA;
             font-weight: 500;
             margin-right: 14px;
             font-size: 14px;
           }
-          .num{
+
+          .num {
             font-weight: 500;
             font-size: 13px;
             color: #DBEAEA;
             margin-left: 15px;
           }
-          .wrap{
+
+          .wrap {
             flex: 1;
             height: 20px;
             border: 1px solid #686B6B;
@@ -864,10 +878,12 @@
         }
       }
     }
-    .right_box_three{
-      .wrap{
+
+    .right_box_three {
+      .wrap {
         padding: 8px;
-        .analyseRef{
+
+        .analyseRef {
           width: 100%;
           height: 210px;
         }
@@ -963,7 +979,7 @@
     -webkit-text-fill-color: transparent;
   }
 
-  .time {
+  .time_wrap {
     font-size: 26px;
     font-weight: 600;
     background-image: -webkit-linear-gradient(top,
@@ -1001,11 +1017,10 @@
 }
 
 .main_app {
-  width: 100%;
-  min-height: 100vh;
+  width: 1920px;
+  height: 980px;
   color: #ffffff;
   position: relative;
-
   .main_bg {
     position: absolute;
     left: 0;
diff --git a/screen/src/views/LogisticsControl.vue b/screen/src/views/LogisticsControl.vue
deleted file mode 100644
index b9756f2..0000000
--- a/screen/src/views/LogisticsControl.vue
+++ /dev/null
@@ -1,67 +0,0 @@
-<template>
-  <div class="main_app">
-    <div class="main_header">
-      <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-缁胯壊浣庣⒊杩愯惀</div>
-      <div class="time">
-        <span>{{date}}</span>
-        <span>{{week}}</span>
-        <span>{{time}}</span>
-      </div>
-    </div>
-    <div class="main_content">
-      <div class="left_box">
-        <div class="left_box_one"></div>
-        <div class="left_box_two"></div>
-        <div class="left_box_three"></div>
-      </div>
-      <div class="center_box">
-        <div class="center_box_one"></div>
-        <div class="center_box_two"></div>
-      </div>
-      <div class="right_box">
-        <div class="right_box_one"></div>
-        <div class="right_box_two"></div>
-        <div class="right_box_three"></div>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script setup>
-import { ref } from 'vue'
-import dayjs from 'dayjs'
-
-const weekMap = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�',]
-const date = ref(dayjs().format('YYYY.MM.DD'))
-const week = ref(weekMap[new Date().getDay()])
-const time = ref(dayjs().format('HH:mm:ss'))
-setInterval(() => { 
-  date.value = dayjs().format('YYYY-MM-DD')
-  week.value = weekMap[new Date().getDay()]
-  time.value = dayjs().format('HH:mm:ss')
-
-},1000)
-
-</script>
-
-<style lang="scss" scoped>
-.main_app{
-  width: 100%;
-  min-height: 100vh;
-  background: #0b2539;
-  color: #FFFFFF;
-}
-.main_content{
-  display: flex;
-  .left_box{}
-  .center_box{}
-  .right_box{}
-}
-.main_header{
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-  height: 71px;
-  border: 1px solid;
-}
-</style>
\ No newline at end of file
diff --git a/screen/src/views/LogisticsEfficiency.vue b/screen/src/views/LogisticsEfficiency.vue
new file mode 100644
index 0000000..26d9530
--- /dev/null
+++ b/screen/src/views/LogisticsEfficiency.vue
@@ -0,0 +1,637 @@
+<template>
+  <v-scale-screen width="1920" height="960" :fullScreen="true">
+    <div class="main_app">
+      <img src="@/assets/images/energy_ef/bg@2x.png" class="main_bg" alt="" />
+      <div class="main_header">
+        <!-- <img src="@/assets/images/maintitle.gif" class="main_header_bg" alt="" /> -->
+        <img src="@/assets/images/maintitle@2x.png" class="main_header_bg" alt="" />
+        <div class="title">瀹夋嘲鏅烘収鐗╂祦鍥尯-璋冨害鑳芥晥璺熻釜</div>
+        <div class="time_wrap">
+          <span class="date">{{ date }}</span>
+          <span class="week">{{ week }}</span>
+          <span class="time">{{ time }}</span>
+        </div>
+      </div>
+      <div class="main_content">
+        <div class="left_box">
+          <div class="left_box_one">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>绱鍑哄簱閲忕粺璁�</div>
+              </div>
+              <div class="tabs">
+                <div class="tab active">鏈湀</div>
+                <div class="separate"></div>
+                <div class="tab">鏈勾</div>
+              </div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            </div>
+            <div class="content_wrap">
+              <div class="content">
+                <div class="num">1000000</div>
+                <div class="unit_wrap">
+                  <span style="color: #869CC9;">鍚屾瘮</span>
+                  <img src="@/assets/images/ic_up.png" class="icon" alt="">
+                  <span>10.2%</span>
+                </div>
+              </div>
+              <div class="train_wrap">
+                <div class="icon_wrap">
+                  <img src="@/assets//images/energy_ef/chuku_ic_car@2x.png" alt="">
+                </div>
+                <div class="total">
+                  <span>绱鍑哄簱杞︽</span>
+                  <span><strong>3900</strong><span class="unit">娆�</span></span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="left_box_two">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>鏈堣兘鑰楀垎鏋�</div>
+              </div>
+              <div class="tabs">
+                <div class="tab active">杩�7鏃�</div>
+                <div class="separate"></div>
+                <div class="tab">鏈湀</div>
+                <div class="separate"></div>
+                <div class="tab">鏈勾</div>
+              </div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            </div>
+            <div class="energy_wrap">
+              <div class="energyRef"></div>
+            </div>
+          </div>
+          <div class="left_box_three">
+            <div class="com_header">
+              <div class="title">
+                <img src="@/assets/images/ic_title@2x.png" class="icon" alt="" />
+                <div>褰撳墠杩愯緭浠诲姟</div>
+              </div>
+              <img src="@/assets/images/title@2x.png" class="bg" alt="" />
+            </div>
+            <div class="list_wrap">
+              <div class="list">
+                <div class="header line">
+                  <span class="item flag">鏍囪瘑</span>
+                  <span class="item order">杩愯緭鍗曞彿</span>
+                  <span class="item id_card">杩愯緭杞﹁締</span>
+                  <span class="item status">浣滀笟鐘舵��</span>
+                  <span class="item addr">鏀惰揣鍗曚綅</span>
+                  <span class="item time">浠诲姟寮�濮嬫椂闂�</span>
+                </div>
+                <div class="line" v-for="i in 7">
+                  <span class="item flag"><span class="flag_bg">鍑�</span></span>
+                  <span class="item order">11</span>
+                  <span class="item id_card">11</span>
+                  <span class="item status">11</span>
+                  <span class="item addr">11</span>
+                  <span class="item time">11</span>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="center_box">
+          <div class="center_box_one">
+            <div class="tabs">
+              <div class="tab active">
+                <img src="@/assets/images/energy_ef/chuku_task_ac.png" alt="">
+                <span>鍑哄簱浠诲姟</span>
+              </div>
+              <div class="tab">
+                <img src="@/assets/images/energy_ef/ruku_task.png" alt="">
+                <span>鍏ュ簱浠诲姟</span>
+              </div>
+            </div>
+            <div class="static_wrap">
+              <div class="item">
+                <img src="@/assets/images/energy_ef/ic_renwuzongliang@2x.png" alt="">
+                <div class="content">
+                  <div class="name">褰撳墠浠诲姟閲�</div>
+                  <div class="num"><span>1000</span>涓囨敮</div>
+                </div>
+              </div>
+              <div class="item">
+                <img src="@/assets/images/energy_ef/ic_wanchengrenwu@2x.png" alt="">
+                <div class="content">
+                  <div class="name">褰撴棩瀹屾垚浠诲姟鎬婚噺</div>
+                  <div class="num"><span class="today">1000</span>涓囨敮</div>
+                </div>
+              </div>
+              <div class="item">
+                <img src="@/assets/images/energy_ef/ic_bili@2x.png" alt="">
+                <div class="content">
+                  <div class="name">宸插畬鎴愭瘮渚�</div>
+                  <div class="num"><span class="finish">1000</span>涓囨敮</div>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="center_box_two"></div>
+        </div>
+        <div class="right_box">
+          <div class="right_box_one"></div>
+          <div class="right_box_two"></div>
+          <div class="right_box_three"></div>
+        </div>
+      </div>
+    </div>
+  </v-scale-screen>
+</template>
+
+<script setup>
+import { ref, onMounted } from 'vue'
+import VScaleScreen from 'v-scale-screen'
+import dayjs from 'dayjs'
+import * as echarts from 'echarts'
+
+const weekMap = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�',]
+const date = ref(dayjs().format('YYYY.MM.DD'))
+const week = ref(weekMap[new Date().getDay()])
+const time = ref(dayjs().format('HH:mm:ss'))
+setInterval(() => {
+  date.value = dayjs().format('YYYY-MM-DD')
+  week.value = weekMap[new Date().getDay()]
+  time.value = dayjs().format('HH:mm:ss')
+
+}, 1000)
+
+const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a']
+const initEnergy = () => {
+  var myChart = echarts.init(document.querySelector('.energyRef'))
+  // 缁樺埗鍥捐〃
+  const arr = ['#68e2e3', '#50afd3', '#377cdb', '#d5ae3a']
+  myChart.setOption({
+    grid: {
+      top: '20%',
+      left: '2%',
+      right: '2%',
+      bottom: '4%',
+      containLabel: true
+    },
+    tooltip: {
+      trigger: 'axis',
+      axisPointer: {
+        type: 'line'
+      },
+    },
+    xAxis: {
+      type: 'category',
+      data: [1, 2, 3, 4, 4, 5]
+    },
+    yAxis: {
+      type: 'value',
+      name: 'kw路h',
+      nameTextStyle: {
+        padding: [0, 0, 4, -30]    // 鍥涗釜鏁板瓧鍒嗗埆涓轰笂鍙充笅宸︿笌鍘熶綅缃窛绂�
+      },
+      splitLine: {
+        show: true,
+        lineStyle: {
+          //杩欓噷杈撳叆绾挎潯鐨勬牱寮�
+          color: 'rgba(255,255,255,0.14)',
+        }
+      }
+    },
+    series: [
+      {
+        data: [1, 2, 3, 4, 5],
+        type: 'bar',
+        barWidth: 10,
+        itemStyle: {
+          normal: {
+            color: new echarts.graphic.LinearGradient(
+              0, 0, 0, 1,
+              [
+                { offset: 0, color: arr[1] },
+                { offset: 1, color: '#080807' }
+              ]
+            ),
+            barBorderRadius: [10, 10, 0, 0]
+          }
+        }
+      }
+    ]
+  })
+  window.addEventListener('resize', function () {//鎵ц
+    myChart.resize()
+  })
+}
+
+onMounted(() => {
+  initEnergy()
+})
+
+
+</script>
+
+<style lang="scss" scoped>
+div {
+  box-sizing: border-box;
+}
+
+.main_content {
+  display: flex;
+  padding: 20px 25px 0;
+
+  .left_box {
+    width: 440px;
+
+    .left_box_one {
+      width: 100%;
+      position: relative;
+      margin-bottom: 20px;
+
+      .content_wrap {
+        height: 164px;
+        padding: 22px 20px 0;
+
+        .content {
+          display: flex;
+          align-items: flex-end;
+          margin: 10px 0 22px;
+
+          .num {
+            margin-right: 10px;
+            font-weight: bold;
+            font-size: 46px;
+            height: 44px;
+            line-height: 52px;
+            font-weight: bold;
+            color: #00F2F3;
+            letter-spacing: 3px;
+            background-image: -webkit-linear-gradient(top,
+                #01D9FE 0%,
+                #0177FE 60%,
+                #0177FE 100%);
+            -webkit-background-clip: text;
+            -webkit-text-fill-color: transparent;
+          }
+
+          .unit_wrap {
+            display: flex;
+            align-items: center;
+          }
+
+          .icon {
+            width: 10px;
+            height: 12px;
+            margin-right: 6px;
+            margin-left: 4px;
+          }
+        }
+
+        .train_wrap {
+          display: flex;
+          height: 40px;
+          margin-top: 18px;
+
+          .icon_wrap {
+            width: 40px;
+            height: 40px;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            margin-right: 4px;
+            border: 1px solid;
+            background: linear-gradient(180deg, rgba(0, 148, 235, 0.68) 0%, rgba(0, 148, 235, 0) 100%);
+            border-image: linear-gradient(180deg, rgba(177, 210, 255, 0.64), rgba(0, 171, 255, 0.7)) 1 1;
+
+            img {
+              width: 26px;
+            }
+          }
+
+          .total {
+            flex: 1;
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+            padding: 0 20px;
+            font-size: 16px;
+            border: 1px solid;
+            border-image: linear-gradient(180deg, rgba(177, 210, 255, 0.64), rgba(0, 171, 255, 0.7)) 1 1;
+            background: linear-gradient(180deg, rgba(0, 148, 235, 0.68) 0%, rgba(0, 148, 235, 0) 100%);
+
+            .unit {
+              margin-left: 5px;
+              font-size: 13px;
+            }
+          }
+        }
+      }
+    }
+
+    .left_box_two {
+      margin-bottom: 20px;
+
+      .energy_wrap {
+        width: 100%;
+        height: 250px;
+
+        .energyRef {
+          width: 100%;
+          height: 100%;
+        }
+      }
+    }
+
+    .left_box_three {
+      .list_wrap {
+        padding: 10px 0;
+
+        .list {
+          .line {
+            display: flex;
+            height: 30px;
+            align-items: center;
+            padding: 0 10px;
+            font-size: 12px;
+
+            &:nth-of-type(2n) {
+              background: rgba(27, 64, 97, 0.52);
+
+              .flag_bg {
+                background: #01ABFE !important;
+              }
+            }
+
+            .item {
+              flex: 5;
+              white-space: nowrap;
+              overflow: hidden;
+              text-overflow: ellipsis;
+            }
+
+            .flag {
+              flex: 3;
+              display: flex;
+
+              .flag_bg {
+                width: 22px;
+                height: 22px;
+                display: flex;
+                justify-content: center;
+                align-items: center;
+                border-radius: 50%;
+                background: #00F2F3;
+                font-weight: 500;
+                color: #001B3C;
+              }
+            }
+
+            .status {
+              color: #FEAF01;
+            }
+
+            .addr {
+              flex: 8;
+
+            }
+
+            .time {
+              flex: 8;
+            }
+          }
+        }
+      }
+    }
+  }
+
+  .center_box {
+    flex: 1;
+    padding: 16px 60px;
+    .center_box_one {
+      .tabs {
+        display: flex;
+        align-items: center;
+
+        .tab {
+          display: flex;
+          align-items: center;
+          margin-right: 30px;
+
+          img {
+            width: 20px;
+            height: 20px;
+            margin-right: 8px;
+          }
+
+          font-size: 20px;
+          font-weight: 600;
+          color: #D2E0FF;
+        }
+
+        .active {
+          background-image: -webkit-linear-gradient(top,
+              #fff 0%,
+              #eec05f 60%,
+              #eec05f 100%);
+          -webkit-background-clip: text;
+          -webkit-text-fill-color: transparent;
+        }
+      }
+
+      .static_wrap {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        margin: 30px 0 54px;
+
+        .item {
+          display: flex;
+
+          img {
+            width: 68px;
+            height: 71px;
+            margin-right: 15px;
+          }
+
+          .content {
+            font-size: 15px;
+
+            .num {
+              font-size: 12px;
+              color: #D2E0FF;
+
+              span {
+                font-weight: bold;
+                font-size: 30px;
+                margin-right: 5px;
+                font-weight: 600;
+                background-image: -webkit-linear-gradient(top,
+                    #01D9FE 0%,
+                    #01D9FE 60%,
+                    #fff 100%);
+                -webkit-background-clip: text;
+                -webkit-text-fill-color: transparent;
+              }
+
+              .today {
+                background-image: -webkit-linear-gradient(top,
+                    #fff 0%,
+                    #20FFC5 50%,
+                    #20FFC5 100%);
+              }
+              .finish{
+                background-image: -webkit-linear-gradient(top,
+                    #fff 0%,
+                    #FFB120 50%,
+                    #FFB120 100%);
+              }
+            }
+          }
+        }
+      }
+    }
+    .center_box_two{
+      width: 100%;
+      border: 1px solid;
+    }
+  }
+
+  .right_box {
+    width: 440px;
+  }
+}
+
+.main_header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  height: 90px;
+  position: relative;
+  padding: 0px 40px 16px;
+  font-weight: 600;
+  font-size: 36px;
+
+  .title {
+    background-image: -webkit-linear-gradient(top,
+        #ffffff 0%,
+        #c8ddff 70%,
+        #85b4ff 80%,
+        #74a9ff 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+  }
+
+  .time_wrap {
+    font-size: 26px;
+    font-weight: 600;
+    background-image: -webkit-linear-gradient(top,
+        #ffffff 0%,
+        #c8ddff 50%,
+        #85b4ff 80%,
+        #74a9ff 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    display: flex;
+    align-items: center;
+
+    .time {
+      width: 180px;
+      display: flex;
+      justify-content: flex-end;
+      padding-bottom: 10px;
+      font-size: 36px;
+    }
+
+    .week {
+      margin-left: 36px;
+    }
+  }
+
+  .main_header_bg {
+    position: absolute;
+    left: 0;
+    top: 0;
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+    z-index: -1;
+  }
+}
+
+.com_header {
+  height: 40px;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: 0 15px 0 13px;
+  position: relative;
+
+  .title {
+    display: flex;
+    align-items: center;
+    font-weight: bold;
+    font-size: 16px;
+    background-image: -webkit-linear-gradient(top,
+        #ffffff 0%,
+        #c8ddff 66%,
+        #85b4ff 72%,
+        #74a9ff 100%);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+
+    .icon {
+      width: 16px;
+      height: 16px;
+      margin-right: 14px;
+    }
+  }
+
+  .tabs {
+    display: flex;
+    align-items: center;
+    font-size: 14px;
+    color: #d2e0ff;
+
+    .separate {
+      width: 1px;
+      height: 14px;
+      background-color: #d2e0ff;
+      margin: 0 6px;
+    }
+
+    .active {
+      color: #0094eb;
+    }
+  }
+}
+
+.main_app {
+  width: 1920px;
+  min-height: 960px;
+  /* width: 100%;
+  height: 100vh; */
+  background: #0b2539;
+  color: #FFFFFF;
+  position: relative;
+  z-index: -2;
+
+  .main_bg {
+    position: absolute;
+    left: 0;
+    top: 0;
+    width: 100%;
+    height: 100%;
+    object-fit: cover;
+    z-index: -1;
+  }
+}
+
+.bg {
+  position: absolute;
+  left: 0;
+  top: 0;
+  width: 100%;
+  height: 100%;
+  object-fit: cover;
+  z-index: -1;
+}
+</style>
\ No newline at end of file
diff --git a/screen/src/views/PlatformCall.vue b/screen/src/views/PlatformCall.vue
index 98a699d..312e4c6 100644
--- a/screen/src/views/PlatformCall.vue
+++ b/screen/src/views/PlatformCall.vue
@@ -30,7 +30,6 @@
             }else{
               item.optTimeTemp = '-'
             }
-            
           }
           // item.optTimeTemp = dayjs.duration(Math.abs(new Date().getTime() - item.optTime)).format('HH:mm')
         }
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 dd26eaf..d297d31 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
@@ -672,105 +672,6 @@
     }
 
 
-    public  enum NoticeType {
-
-        ZERO(0, "寰呭鏍�","","","寰呭鏍�","寰呭鐞�","澶勭悊涓�"),
-        ONE(1, "浼佷笟寰呯缃�","","","宸ョ寰呭鏍�","","宸茬粨妗�"),
-        TWO(2, "寰呭嚭鍗�","寰呭鏍�","寰呭鏍�","","",""),
-        THREE(3, "鐢宠閫�鍥�","鐢宠閫�鍥�","鐢宠閫�鍥�","","",""),
-        FOUR(4, "宸查��鍥�","宸查��鍥�","宸查��鍥�","","","宸叉挙閿�"),
-        FIVE(5, "鐢宠椹冲洖","鐢宠椹冲洖","鐢宠椹冲洖","","",""),
-        //缁繚閫氱煡
-        SIX(6, "","","","","",""),
-        //鍟嗘埛绔� 濮旀墭淇� - 鎶曚繚寰呭鏍� 鍔犲噺淇� 鎹㈠巶 寰呭鏍�
-        SEVEN(7, "寰呭鏍�","寰呭鏍�","寰呭鏍�","","",""),
-        EIGHT(8, "","","","","",""),
-        NINE(9, "","","","","",""),
-        ;
-
-        // 鎴愬憳鍙橀噺
-        private int status;
-        private String insuranceApplyDetail;
-        private String applyChangeDetail;
-        private String changeFactoryDetail;
-        private String dispatchUnitDetail;
-        private String taxesDetail;
-        private String settleClaimsDetail;
-
-        // 鏋勯�犳柟娉�
-        NoticeType(int status, String insuranceApplyDetail,String applyChangeDetail
-                , String changeFactoryDetail,String dispatchUnitDetail
-                , String taxesDetail,String settleClaimsDetail) {
-            this.status = status;
-            this.insuranceApplyDetail = insuranceApplyDetail;
-            this.applyChangeDetail = applyChangeDetail;
-            this.changeFactoryDetail = changeFactoryDetail;
-            this.dispatchUnitDetail = dispatchUnitDetail;
-            this.taxesDetail = taxesDetail;
-            this.settleClaimsDetail = settleClaimsDetail;
-        }
-
-
-        // get set 鏂规硶
-        public int getStatus() {
-            return status;
-        }
-
-        public void setStatus(int status) {
-            this.status = status;
-        }
-
-        public String getInsuranceApplyDetail() {
-            return insuranceApplyDetail;
-        }
-
-        public void setInsuranceApplyDetail(String name) {
-            this.insuranceApplyDetail = insuranceApplyDetail;
-        }
-
-        public String getApplyChangeDetail() {
-            return applyChangeDetail;
-        }
-
-        public void setApplyChangeDetail(String info) {
-            this.applyChangeDetail = applyChangeDetail;
-        }
-
-        public String getChangeFactoryDetail() {
-            return changeFactoryDetail;
-        }
-
-        public void setChangeFactoryDetail(String info) {
-            this.changeFactoryDetail = changeFactoryDetail;
-        }
-
-        public String getDispatchUnitDetail() {
-            return dispatchUnitDetail;
-        }
-
-        public void setDispatchUnitDetail(String info) {
-            this.dispatchUnitDetail = dispatchUnitDetail;
-        }
-
-        public String getTaxesDetail() {
-            return taxesDetail;
-        }
-
-        public void setTaxesDetail(String info) {
-            this.taxesDetail = taxesDetail;
-        }
-
-        public String getSettleClaimsDetail() {
-            return settleClaimsDetail;
-        }
-
-        public void setSettleClaimsDetail(String info) {
-            this.settleClaimsDetail = settleClaimsDetail;
-        }
-
-
-    }
-
     public  enum PlatformWarnEvent {
         STOP_TIMEOUT(0, "鍋滈潬瓒呮椂","${carCode}鏈堝彴鍋滈潬瓒呮椂" ),
         STOP_ERROR(1, "鍋滈潬閿欒","${carCode}鏈堝彴鍋滈潬閿欒" ),
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java
index 33158ca..2f2bb09 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WmsPushCloudTestController.java
@@ -2,8 +2,16 @@
 
 import com.doumee.api.BaseController;
 import com.doumee.config.annotation.LoginNoRequired;
+import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
+import com.doumee.core.tms.model.request.TmsOrderInfoRequest;
+import com.doumee.core.tms.model.request.TmsOrderListRequest;
+import com.doumee.core.tms.model.response.TmsBaseResponse;
+import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
+import com.doumee.core.tms.model.response.TmsOrderInfoResponse;
+import com.doumee.core.tms.model.response.TmsOrderListResponse;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.wms.model.response.WmsBaseResponse;
+import com.doumee.service.business.third.TmsService;
 import com.doumee.service.business.third.WmsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -11,12 +19,14 @@
 import org.apache.commons.lang3.StringUtils;
 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;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.BufferedReader;
+import java.util.List;
 
 /**
  * @author 姹熻箘韫�
@@ -31,6 +41,8 @@
 
     @Autowired
     private WmsService wmsService;
+    @Autowired
+    private TmsService tmsService;
 
     @ApiOperation("銆怶MS銆戞帹閫佸叆搴撳崟閫氱煡浠诲姟")
     @PostMapping("/push/inboundNotice")
@@ -69,6 +81,27 @@
         doPringParam(request,"銆怶MS銆戞帹閫佸嚭鍏ュ簱浣滀笟瀹屾垚閫氱煡浠诲姟");
         return new WmsBaseResponse();
     }
+    @ApiOperation("銆怲MS銆戠數瀛愰攣涓婇攣鏃堕棿鎺ュ彛")
+    @LoginNoRequired
+    @PostMapping("/tms/lockStatusQuery")
+    public TmsBaseResponse<List<TmsLockStatusQueryResponse>>  lockStatusQuery(@RequestBody  TmsLockStatusQueryRequest request )   {
+
+        return  tmsService.lockStatusQuery(request);
+    }
+    @ApiOperation("銆怲MS銆戝悎鍚屽垪琛ㄦ帴鍙�")
+    @LoginNoRequired
+    @PostMapping("/tms/orderList")
+    public TmsBaseResponse<List<TmsOrderListResponse>> orderList(@RequestBody TmsOrderListRequest request )   {
+
+        return  tmsService.orderList(request);
+    }
+    @ApiOperation("銆怲MS銆戝悎鍚岃鎯呮帴鍙�")
+    @LoginNoRequired
+    @PostMapping("/tms/orderInfo")
+    public TmsBaseResponse<TmsOrderInfoResponse> ordreInfo(@RequestBody TmsOrderInfoRequest request )   {
+
+        return  tmsService.orderInfo(request);
+    }
 
     public static void doPringParam(HttpServletRequest request,String name) {
         try {
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java
index 716c37b..ad24e60 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/core/tms/model/response/TmsOrderInfoResponse.java
@@ -27,7 +27,7 @@
      }
      */
  
-    private String   contratNumber	; //鍚堝悓鍙�
+    private String   contractNumber	; //鍚堝悓鍙�
     private String   fromRepertotyName	; //鍙戣揣鍦�
     private String    toRepertoty	; //鍒拌揣鍦�
     private String    plateNumber; //	杞︾墝鍙�	鍚堝悓鏈厤杞藉垯鏃�
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
index 8da7117..a4defe8 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/TmsServiceImpl.java
@@ -6,9 +6,11 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
+import com.doumee.core.tms.model.request.TmsOrderInfoRequest;
 import com.doumee.core.tms.model.request.TmsOrderListRequest;
 import com.doumee.core.tms.model.response.TmsBaseResponse;
 import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
+import com.doumee.core.tms.model.response.TmsOrderInfoResponse;
 import com.doumee.core.tms.model.response.TmsOrderListResponse;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.HttpsUtil;
@@ -58,7 +60,7 @@
      * 鐢靛瓙閿佷笂閿佹椂闂存帴鍙�
      * 鏍规嵁鍚堝悓鍙凤紝鏌ヨ鐢靛瓙閿佷笂閿佹儏鍐碉紱瀛樺湪鎵归噺鏌ヨ鐨勬儏鍐碉紱
      * @param param 鍙傛暟
-     * @return WmsBaseResponse
+     * @return TmsBaseResponse
      */
     @Override
     public TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(TmsLockStatusQueryRequest param){
@@ -67,14 +69,14 @@
 
         TmsBaseResponse<List<TmsLockStatusQueryResponse>> response = sendHttpRequest(url,"鐢靛瓙閿佷笂閿佹椂闂存帴鍙�",JSONObject.toJSONString(param)
                 ,new TypeReference< TmsBaseResponse<List<TmsLockStatusQueryResponse>>>(){});
-        return  new TmsBaseResponse<>();
+        return  response;
     }
 
     /**
      * 鍚堝悓鍒楄〃鎺ュ彛
      * 鏍规嵁鍖哄煙ID闆嗗悎+绛涢�夋潯浠讹紙鍚堝悓鍙枫�佸埗鍗曞紑濮嬫棩鏈熴�佸埗鍗曠粨鏉熸棩鏈熴�佸彂璐у湴銆佸埌璐у湴銆佺渷浠斤紝闈為渶瑕侊級锛岃繑鍥炲悎鍚屽垪琛ㄤ俊鎭紝鎸夌収鏃堕棿鍊掑簭灞曠ず锛�
      * @param param 鍙傛暟
-     * @return WmsBaseResponse
+     * @return TmsBaseResponse
      */
     @Override
     public  TmsBaseResponse<List<TmsOrderListResponse>> orderList(TmsOrderListRequest param){
@@ -82,7 +84,20 @@
                     +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_LIST_URL).getCode();
         TmsBaseResponse<List<TmsOrderListResponse>> response = sendHttpRequest(url,"鍚堝悓鍒楄〃鎺ュ彛",JSONObject.toJSONString(param)
                 ,new TypeReference< TmsBaseResponse<List<TmsOrderListResponse>>>(){});
-        return  new TmsBaseResponse<>();
+        return response;
+    }
+    /**
+     * 鍚堝悓璇︽儏鎺ュ彛
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    @Override
+    public TmsBaseResponse<TmsOrderInfoResponse> orderInfo(TmsOrderInfoRequest param){
+        String url = systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_INTERFACE_URL_PREFIX).getCode()
+                    +systemDictDataBiz.queryByCode(Constants.TSM_PARAM,Constants.TMS_ORDER_DETAIL_URL).getCode();
+        TmsBaseResponse<TmsOrderInfoResponse> response = sendHttpRequest(url,"鍚堝悓璇︽儏鎺ュ彛",JSONObject.toJSONString(param)
+                ,new TypeReference< TmsBaseResponse<TmsOrderInfoResponse>>(){});
+        return  response;
     }
 
     /**
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java
index a2d0154..804ae24 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/third/TmsService.java
@@ -1,9 +1,11 @@
 package com.doumee.service.business.third;
 
 import com.doumee.core.tms.model.request.TmsLockStatusQueryRequest;
+import com.doumee.core.tms.model.request.TmsOrderInfoRequest;
 import com.doumee.core.tms.model.request.TmsOrderListRequest;
 import com.doumee.core.tms.model.response.TmsBaseResponse;
 import com.doumee.core.tms.model.response.TmsLockStatusQueryResponse;
+import com.doumee.core.tms.model.response.TmsOrderInfoResponse;
 import com.doumee.core.tms.model.response.TmsOrderListResponse;
 import com.doumee.core.wms.model.request.WmsActionNoticeRequest;
 import com.doumee.core.wms.model.request.WmsBaseRequest;
@@ -27,7 +29,7 @@
      * 鐢靛瓙閿佷笂閿佹椂闂存帴鍙�
      * 鏍规嵁鍚堝悓鍙凤紝鏌ヨ鐢靛瓙閿佷笂閿佹儏鍐碉紱瀛樺湪鎵归噺鏌ヨ鐨勬儏鍐碉紱
      * @param param 鍙傛暟
-     * @return WmsBaseResponse
+     * @return TmsBaseResponse
      */
     TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(TmsLockStatusQueryRequest param);
 
@@ -35,9 +37,16 @@
      * 鍚堝悓鍒楄〃鎺ュ彛
      * 鏍规嵁鍖哄煙ID闆嗗悎+绛涢�夋潯浠讹紙鍚堝悓鍙枫�佸埗鍗曞紑濮嬫棩鏈熴�佸埗鍗曠粨鏉熸棩鏈熴�佸彂璐у湴銆佸埌璐у湴銆佺渷浠斤紝闈為渶瑕侊級锛岃繑鍥炲悎鍚屽垪琛ㄤ俊鎭紝鎸夌収鏃堕棿鍊掑簭灞曠ず锛�
      * @param param 鍙傛暟
-     * @return WmsBaseResponse
+     * @return TmsBaseResponse
      */
     TmsBaseResponse<List<TmsOrderListResponse>> orderList(TmsOrderListRequest param);
 
+    /**
+     * 鍚堝悓璇︽儏鎺ュ彛
+     * @param param 鍙傛暟
+     * @return TmsBaseResponse
+     */
+    TmsBaseResponse<TmsOrderInfoResponse> orderInfo(TmsOrderInfoRequest param);
+
 
 }

--
Gitblit v1.9.3