From 37926bbc6a660245630cae0424c65cb1661c33df Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期六, 12 十月 2024 14:11:37 +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
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java | 2
server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java | 17
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/SmsConfigService.java | 2
admin/src/api/system/sms.js | 8
screen/src/assets/images/energy_ef/map_car_kongxian@2x.png | 0
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java | 65 ++
pda/utils/config.js | 4
screen/src/assets/images/energy_ef/chuku_task.png | 0
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsConfigCloudController.java | 15
screen/src/assets/images/energy_ef/map_car_lixian@2x.png | 0
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java | 3
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
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java | 6
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/WmsJobContractVO.java | 4
admin/src/views/platform/LogisticsRecord/leaveAuth.vue | 9
screen/package.json | 1
screen/src/views/LogisticsEfficiency.vue | 637 +++++++++++++++++++++++
server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java | 10
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
admin/src/views/business/visitorSources.vue | 30
screen/src/assets/images/energy_ef/ic_chukuxiaolv@2x.png | 0
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java | 9
admin/src/views/platform/LogisticsRecord/subscribe.vue | 14
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsConfigServiceImpl.java | 13
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 | 6
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
screen/src/assets/images/energy_ef/chuku_ic_car@2x.png | 0
admin/src/components/common/QueryForm/queryForm.vue | 59 -
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java | 5
/dev/null | 67 --
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java | 14
screen/src/assets/images/energy_ef/china@2x.png | 0
admin/src/views/business/relativeMember.vue | 8
pda/manifest.json | 2
admin/src/views/business/internalMember.vue | 2
54 files changed, 1,194 insertions(+), 415 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/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/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/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/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/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 b314be7..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
@@ -674,7 +674,8 @@
public enum PlatformWarnEvent {
STOP_TIMEOUT(0, "鍋滈潬瓒呮椂","${carCode}鏈堝彴鍋滈潬瓒呮椂" ),
- STOP_ERROR(1, "鍋滈潬閿欒","${carCode}鏈堝彴鍋滈潬閿欒" );
+ STOP_ERROR(1, "鍋滈潬閿欒","${carCode}鏈堝彴鍋滈潬閿欒" ),
+ WORK_TIMEOUT(2, "浣滀笟瓒呮椂","${carCode}浣滀笟瓒呮椂" );
// 鎴愬憳鍙橀噺
private int key;
@@ -799,6 +800,7 @@
WORKING(3, "浣滀笟涓�","${param} ${param2} 浣滀笟涓�" ),
WRONG_IN(4, "閿欒鍋滈潬","${param} ${param2} 褰撳墠杞﹁締閿欒鍋滈潬锛岃灏藉揩椹剁" ),
TIMEOUT_IN(5, "瓒呮椂鍋滈潬","${param} ${param2} 褰撳墠杞﹁締瓒呮椂鍋滈潬锛岃灏藉揩椹剁" ),
+ TIMEOUT_WORK(6, "浣滀笟瓒呮椂","${param} ${param2} 褰撳墠杞﹁締浣滀笟瓒呮椂" ),
;
// 鎴愬憳鍙橀噺
@@ -851,12 +853,14 @@
2. 浣滀笟瀹屾垚锛氱殩A12345浣滀笟瀹屾垚锛岃灏藉揩椹剁
3. 閿欒鍋滈潬锛氱殩A12345鏈堝彴鍋滈潬閿欒锛岃灏藉揩椹剁
4. 瓒呮椂鍋滈潬锛氱殩A12345鏈堝彴鍋滈潬瓒呮椂锛岃灏藉揩椹剁璇峰敖蹇┒绂�
+ 5. 浣滀笟瓒呮椂锛氱殩A12345鏈堝彴鍋滈潬瓒呮椂锛岃灏藉揩椹剁璇峰敖蹇┒绂�
*/
public enum PlatformBroadcastContent {
CALLING(1, "鍙彿涓�","${param}璇峰墠寰�${param2}绛夊緟浣滀笟"),
DONE(2, "浣滀笟瀹屾垚","${param}浣滀笟瀹屾垚锛岃灏藉揩椹剁" ),
WRONG_IN(3, "閿欒鍋滈潬","${param}鏈堝彴鍋滈潬閿欒锛岃灏藉揩椹剁" ),
TIMEOUT_IN(4, "瓒呮椂鍋滈潬","${param}鏈堝彴鍋滈潬瓒呮椂锛岃灏藉揩椹剁璇峰敖蹇┒绂�" ),
+ TIMEOUT_WORK(5, "浣滀笟瓒呮椂","${param}浣滀笟瓒呮椂" ),
;
// 鎴愬憳鍙橀噺
diff --git a/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java b/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
index 9aee2f0..2292116 100644
--- a/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
+++ b/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
@@ -67,12 +67,8 @@
@ApiOperation("銆愯瀹㈢郴缁熴�戝畾鏃舵洿鏂板井淇″叕浼楀彿accesstoken")
@GetMapping("/timer/wxtoken/updateWxAccessToken")
ApiResponse updateWxAccessToken();
- @ApiOperation("鏈堝彴浠诲姟瓒呮椂鎶ヨ")
- @GetMapping("/timer/platformJob/platformJobTimeOut")
- ApiResponse platformJobTimeOut();
- @ApiOperation("鏈堝彴浠诲姟鑷姩杩囧彿")
- @GetMapping("/timer/platformJob/timeOutCallIn")
- ApiResponse timeOutCallIn();
-
+ @ApiOperation("銆愭暟瀛楀寲鏈堝彴銆戞湀鍙颁綔涓氭姤璀︿笟鍔�")
+ @GetMapping("/timer/platformJob/platformJobTimer")
+ ApiResponse platformJobTimer();
}
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java
index 433cdd1..b259a1f 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/PlatformJobController.java
@@ -34,21 +34,14 @@
@Autowired
private PlatformJobService platformJobService;
- @ApiOperation("瓒呮椂鎶ヨ鏁版嵁")
- @GetMapping("/platformJobTimeOut")
- public ApiResponse platformJobTimeOut() {
+ @ApiOperation("鏈堝彴浣滀笟鎶ヨ涓氬姟")
+ @GetMapping("/platformJobTimer")
+ public ApiResponse platformJobTimer() {
platformJobService.timeOutReport();
- return ApiResponse.success("瓒呮椂鎶ヨ鏁版嵁");
- }
-
-
- @ApiOperation("瓒呮椂鑷姩杩囧彿")
- @GetMapping("/timeOutCallIn")
- public ApiResponse timeOutCallIn() {
platformJobService.timeOutCallIn();
- return ApiResponse.success("鑷姩杩囧彿");
+ platformJobService.timeOutWork();
+ return ApiResponse.success("鏈堝彴浣滀笟鎶ヨ涓氬姟");
}
-
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsConfigCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsConfigCloudController.java
index 1e05013..5d209a2 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsConfigCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/SmsConfigCloudController.java
@@ -60,6 +60,21 @@
return ApiResponse.success(null);
}
+
+
+ @ApiOperation("鎵归噺绂佸惎鐢�")
+ @GetMapping("/updateStatus/batch")
+ @CloudRequiredPermission("business:smsconfig:update")
+ public ApiResponse updateStatusBatch(@RequestParam String ids,@RequestParam Integer status) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ smsConfigService.updateStatusByIdInBatch(idList,status);
+ return ApiResponse.success(null);
+ }
+
@ApiOperation("鏍规嵁ID淇敼")
@PostMapping("/updateById")
@CloudRequiredPermission("business:smsconfig:update")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
index 6329411..e82d39a 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/DriverPlatformController.java
@@ -168,4 +168,18 @@
return ApiResponse.success(platformJobService.getLargeScreenData());
}
+ @LoginNoRequired
+ @ApiOperation("鏈堝彴浠诲姟娴嬭瘯瀹氭椂鏂规硶")
+ @GetMapping("/testTimer")
+ public ApiResponse testTimer(Integer type) {
+ if(Constants.equalsInteger(type ,1)){
+ platformJobService.timeOutWork();
+ }else if(Constants.equalsInteger(type ,2)){
+ platformJobService.timeOutCallIn();
+ }else if(Constants.equalsInteger(type ,3)){
+ platformJobService.timeOutReport();
+ }
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
index ab179ae..2424691 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/PlatformJob.java
@@ -417,6 +417,12 @@
@TableField(exist = false)
private String queryStatus;
+
+ @ApiModelProperty(value = "澶氱姸鎬佹煡璇� 澶氫釜浠�,鍒嗗壊")
+ @TableField(exist = false)
+ private String queryStatusForPower;
+
+
@ApiModelProperty(value = "浣滀笟绫诲瀷鏌ヨ 澶氫釜浠�,鍒嗗壊")
@TableField(exist = false)
private String queryType;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/WmsJobContractVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/WmsJobContractVO.java
index 2a4c704..93bb26d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/WmsJobContractVO.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/WmsJobContractVO.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.vo;
+import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.dao.business.model.Approve;
import com.doumee.dao.business.model.Platform;
import com.doumee.dao.business.model.PlatformWmsDetail;
@@ -23,6 +24,9 @@
@ApiModelProperty(value = "鏀惰揣鍦�")
private String address;
+ @ApiModelProperty(value = "0鏈畬鎴� 1宸插畬鎴� 2宸插彇娑�", example = "1")
+ private Integer status;
+
@ApiModelProperty(value = "涓婇攣鐘舵�侊細0=鏈笂閿侊紱1=宸蹭笂閿侊紱")
private Integer lockStatus;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
index 66e0703..195779b 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/PlatformJobService.java
@@ -238,4 +238,9 @@
*/
void timeOutCallIn();
+ /**
+ * 浣滀笟瓒呮椂
+ */
+ void timeOutWork();
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/SmsConfigService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/SmsConfigService.java
index 9e137bb..a41d07d 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/SmsConfigService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/SmsConfigService.java
@@ -48,6 +48,8 @@
*/
void updateById(SmsConfig smsConfig);
+ void updateStatusByIdInBatch(List<Integer> ids,Integer status);
+
/**
* 鎵归噺涓婚敭鏇存柊
*
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
index 3741865..0322937 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
@@ -243,7 +243,7 @@
}
model.setSpeed(speed);
}
- PlatformBroadcastLog log = HkSyncPushServiceImpl.dealLedContentBiz(device.getNo(),device.getName(),model.getContent(),model.getSpeed(),1);
+ PlatformBroadcastLog log = HkSyncPushServiceImpl.dealLedContentBiz(0,device.getNo(),device.getName(),model.getContent(),model.getSpeed(),1);
platformBroadcastLogMapper.insert(log);
if(log.getHkStatus() == null || !Constants.equalsInteger(log.getHkStatus(), Constants.TWO)){
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝灞忓箷鍐呭璁剧疆澶辫触"+(log!=null?log.getHkInfo():""));
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
index 9a6b9e0..7bdf5a0 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java
@@ -271,6 +271,7 @@
.eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId())
.apply(pageWrap.getModel().getQueryStatus() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatus()+"')")
+ .apply(pageWrap.getModel().getQueryStatusForPower() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatusForPower()+"')")
.apply(pageWrap.getModel().getQueryType() != null, " find_in_set(t.TYPE,'"+pageWrap.getModel().getQueryType()+"')")
.ge(pageWrap.getModel().getBeginWorkDateStart() != null, PlatformJob::getStartDate, Utils.Date.getStart(pageWrap.getModel().getBeginWorkDateStart()))
.le(pageWrap.getModel().getBeginWorkDateEnd() != null, PlatformJob::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getBeginWorkDateEnd()))
@@ -1093,7 +1094,7 @@
if(Constants.equalsInteger(device.getType(),Constants.ZERO)&&sendLed){
log.error("璋冭捣led------------------------------------------------------------------------------------------");
//濡傛灉鏄疞ED
- PlatformBroadcastLog log = HkSyncPushServiceImpl.dealLedContentBiz(device.getHkNo(),device.getName(),ledContent,speed,1);
+ PlatformBroadcastLog log = HkSyncPushServiceImpl.dealLedContentBiz(model.getId(),device.getHkNo(),device.getName(),ledContent,speed,1);
logList.add(log);
ledList.add(device.getHkId());
}else if(Constants.equalsInteger(device.getType(),Constants.TWO)&&sendBroadcast){
@@ -1170,8 +1171,9 @@
SmsConstants.platformJobContent.platformJobMove,oldPlatform.getName(),platform.getName()
);
- this.broadcastAndLEed(platformJob,null,
- StringUtils.isBlank(oldPlatform.getRemark())?Constants.PlatformLedContent.IDEL_CONTNET.getName():oldPlatform.getRemark()
+ platformJob.setPlatformName(platform.getName());
+ this.broadcastAndLEed(platformJob, StringUtils.isBlank(oldPlatform.getRemark())?Constants.PlatformLedContent.IDEL_CONTNET.getName():oldPlatform.getLedContent(),
+ null
);
}
@@ -1731,7 +1733,7 @@
if (Objects.isNull(platformJob.getWorkNum()) || Objects.isNull(platformJob.getWorkRate())) {
platformDataListResponse.setFinishTime(null);
} else {
- Integer workMinute = platformJob.getWorkNum().multiply(new BigDecimal(60)).divide(platformJob.getWorkRate()).intValue();
+ Integer workMinute = platformJob.getWorkNum().multiply(new BigDecimal(60)).divide(platformJob.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue();
Date overDate = DateUtil.getXMinuteAfterDate(platformJob.getNewStartDate(), workMinute);
platformDataListResponse.setFinishTime(overDate);
}
@@ -1926,12 +1928,12 @@
if(Objects.isNull(platformJob.getWorkNum()) || Objects.isNull(platformJob.getWorkRate())){
platformJob.setOptTime(0L);
}else{
- Integer workMinute = platformJob.getWorkNum().multiply(new BigDecimal(60)).divide(platformJob.getWorkRate()).intValue();
+ Integer workMinute = platformJob.getWorkNum().multiply(new BigDecimal(60)).divide(platformJob.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue();
Date overDate = DateUtil.getXMinuteAfterDate(platformJob.getNewStartDate(),workMinute);
platformJob.setOptTime(overDate.getTime());
}
}else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.CALLED.getKey())){
- platformJob.setOptTime(DateUtil.getXMinuteAfterDate(platformJob.getCallDate(),platformJob.getWorktimeOutAlarmTime()).getTime());
+ platformJob.setOptTime(DateUtil.getXMinuteAfterDate(platformJob.getNewCallDate(),platformJob.getWorktimeOutAlarmTime()).getTime());
}
}
largeScreenDataVO.setAllList(platformJobList);
@@ -1942,9 +1944,11 @@
return largeScreenDataVO;
}
-
-
+
+ /**
+ * 浣滀笟瀹屾垚瓒呮椂
+ */
@Override
public void timeOutReport(){
//鏌ヨ瓒呮椂鏁版嵁
@@ -1953,7 +1957,7 @@
.selectAs(Platform::getName,PlatformJob::getPlatformName)
.select(" ( now() > DATE_ADD(t.DONE_DATE ,INTERVAL t1.STAY_TIMEOUT_ALARM_TIME MINUTE) ) as isTimeOut ")
.leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
- .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE,Constants.PlatformJobStatus.AUTHED_LEAVE)
+ .in(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())
.eq(PlatformJob::getInOut,Constants.ONE)
.isNotNull(PlatformJob::getDoneDate)
);
@@ -1986,10 +1990,10 @@
List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
.selectAll(PlatformJob.class)
.selectAs(Platform::getName,PlatformJob::getPlatformName)
- .select(" ( now() > DATE_ADD(t.CALL_DATE ,INTERVAL t2.WAIT_CALL_TIME MINUTE) ) as isTimeOut ")
+ .select(" ( now() > DATE_ADD( ( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = 4 order by pl.CREATE_DATE desc limit 1 ) ,INTERVAL t2.WAIT_CALL_TIME MINUTE) ) as isTimeOut ")
.leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
.leftJoin(PlatformGroup.class,PlatformGroup::getId,Platform::getGroupId)
- .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED)
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey())
.isNotNull(PlatformJob::getCallDate)
);
//濡傛灉瓒呮椂 澶勭悊鏁版嵁 骞跺彂閫乴ed涓庡箍鎾�
@@ -2002,4 +2006,43 @@
}
+ /**
+ * 浣滀笟瓒呮椂
+ */
+ @Override
+ public void timeOutWork(){
+ //鏌ヨ瓒呮椂鏁版嵁
+ List<PlatformJob> platformJobList = platformJobJoinMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>()
+ .selectAll(PlatformJob.class)
+ .selectAs(Platform::getName,PlatformJob::getPlatformName)
+ .selectAs(Platform::getWorkRate, PlatformJob::getWorkRate)
+ .selectAs(Platform::getWorkTimeoutAlarmTime, PlatformJob::getWorktimeOutAlarmTime)
+ .select(" case when t.total_num is null then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = t.id ) else t.total_num end workNum ")
+ .select(" ( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = 5 order by pl.CREATE_DATE desc limit 1 ) as newStartDate ")
+ .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
+ .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WORKING.getKey())
+ .eq(PlatformJob::getInOut,Constants.ONE)
+ );
+ //濡傛灉瓒呮椂 澶勭悊鏁版嵁 骞跺彂閫乴ed涓庡箍鎾�
+ for (PlatformJob platformJob:platformJobList) {
+
+ Integer workMinute = platformJob.getWorkNum().multiply(new BigDecimal(60)).divide(platformJob.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue();
+ Date overDate = DateUtil.getXMinuteAfterDate(platformJob.getNewStartDate(),workMinute + platformJob.getWorktimeOutAlarmTime());
+ if(overDate.getTime() < System.currentTimeMillis() ){
+ //骞挎挱 led閫氱煡
+ this.broadcastAndLEed(platformJob,Constants.PlatformLedContent.TIMEOUT_WORK.getInfo(),
+ Constants.PlatformBroadcastContent.TIMEOUT_WORK.getInfo());
+
+ SavePlatformWarnEventDTO savePlatformWarnEventDTO = new SavePlatformWarnEventDTO();
+ savePlatformWarnEventDTO.setPlatformJobId(platformJob.getId());
+ savePlatformWarnEventDTO.setPlatformId(platformJob.getPlatformId());
+ savePlatformWarnEventDTO.setCarCode(platformJob.getCarCodeFront());
+ savePlatformWarnEventDTO.setEventType(Constants.PlatformWarnEvent.WORK_TIMEOUT.getKey());
+ platformWarnEventService.savePlatformWarnEvent(savePlatformWarnEventDTO);
+ }
+
+ }
+ }
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java
index ddf50fd..6244579 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformWmsJobServiceImpl.java
@@ -112,6 +112,9 @@
wmsJobContractVO.setLockStatus(
wmsJobContractVO.getPlatformWmsDetailList().get(Constants.ZERO).getLockStatus()
);
+ wmsJobContractVO.setStatus(
+ wmsJobContractVO.getPlatformWmsDetailList().get(Constants.ZERO).getStatus()
+ );
}
wmsJobContractVOList.add(wmsJobContractVO);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsConfigServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsConfigServiceImpl.java
index 1d2e950..3af599e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsConfigServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/SmsConfigServiceImpl.java
@@ -15,6 +15,7 @@
import org.springframework.util.CollectionUtils;
import java.util.List;
+import java.util.Objects;
/**
* 鐭俊涓氬姟閰嶇疆Service瀹炵幇
@@ -58,6 +59,18 @@
}
@Override
+ public void updateStatusByIdInBatch(List<Integer> ids,Integer status) {
+ if (CollectionUtils.isEmpty(ids) || Objects.isNull(status)) {
+ return;
+ }
+ smsConfigMapper.update(new UpdateWrapper<SmsConfig>()
+ .set("status",status)
+ .in("id",ids)
+ );
+ }
+
+
+ @Override
public void updateByIdInBatch(List<SmsConfig> smsConfigs) {
if (CollectionUtils.isEmpty(smsConfigs)) {
return;
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index d9cf7a7..0047699 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -1086,7 +1086,7 @@
}
if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
//濡傛灉鏄疞ED
- PlatformBroadcastLog log = dealLedContentBiz(device.getHkNo(),device.getName(),content,speed,1);
+ PlatformBroadcastLog log = dealLedContentBiz(model.getId(),device.getHkNo(),device.getName(),content,speed,1);
logList.add(log);
ledList.add(device.getHkId());
}else if(Constants.equalsInteger(device.getType(),Constants.TWO)){
@@ -1115,7 +1115,7 @@
public static PlatformBroadcastLog dealBroadcastBiz(PlatformJob model, List<String> broadcastList,String bNames , String content1) {
PlatformBroadcastLog log = new PlatformBroadcastLog();
content1 = content1.replace("${param}",model.getCarCodeFront());
-
+ log.setObjId(model.getId().toString());
log.setCreateDate(new Date());
log.setBizType(Constants.ONE);
log.setHkDate(new Date());
@@ -1139,12 +1139,12 @@
log.setHkInfo("璇锋眰鎴愬姛");
log.setHkStatus(Constants.TWO);
}
- log.setDeviceType(Constants.ONE);
+ log.setDeviceType(Constants.ZERO);
log.setName("鍙戦�佸箍鎾挱鎶ュ唴瀹�");
return log;
}
- public static PlatformBroadcastLog dealLedContentBiz(String hkNo,String hkName, String content,int speed,int color) {
+ public static PlatformBroadcastLog dealLedContentBiz(Integer platformId,String hkNo,String hkName, String content,int speed,int color) {
PlatformBroadcastLog log = new PlatformBroadcastLog();
log.setCreateDate(new Date());
log.setBizType(Constants.ONE);
@@ -1154,6 +1154,7 @@
log.setRemark(hkName);
log.setInfo(content);
log.setNum(Constants.ONE);
+ log.setObjId(platformId.toString());
TransparentChannelBodyRequest body = new TransparentChannelBodyRequest();
TransparentChannelHeadRequest head = new TransparentChannelHeadRequest();
--
Gitblit v1.9.3