统计任务看板
This commit is contained in:
@@ -0,0 +1,38 @@
|
|||||||
|
package org.nl.wms.sb.stat.websocket;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.modules.mnt.websocket.MsgType;
|
||||||
|
import org.nl.modules.mnt.websocket.SocketMsg;
|
||||||
|
import org.nl.modules.mnt.websocket.WebSocketServer;
|
||||||
|
import org.nl.wms.pf.service.AutoPfTaskService;
|
||||||
|
import org.nl.wql.WQL;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class AutoWebSocketTask {
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
String today = DateUtil.today();
|
||||||
|
HashMap<String, String> map = new HashMap<>();
|
||||||
|
map.put("flag", "1");
|
||||||
|
map.put("today", "%"+today+"%");
|
||||||
|
|
||||||
|
JSONArray resultJSONArray = WQL.getWO("TASK_AUTOWEBSOCKETTSK").addParamMap(map).process().getResultJSONArray(0);
|
||||||
|
|
||||||
|
SocketMsg socketMsg = new SocketMsg(resultJSONArray, MsgType.INFO);
|
||||||
|
WebSocketServer.sendInfo(socketMsg,"20");
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,163 @@
|
|||||||
|
[交易说明]
|
||||||
|
交易名: 实时查询统计任务
|
||||||
|
所属模块:
|
||||||
|
功能简述:
|
||||||
|
版权所有:
|
||||||
|
表引用:
|
||||||
|
版本经历:
|
||||||
|
|
||||||
|
[数据库]
|
||||||
|
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||||
|
|
||||||
|
[IO定义]
|
||||||
|
#################################################
|
||||||
|
## 表字段对应输入参数
|
||||||
|
#################################################
|
||||||
|
输入.flag TYPEAS s_string
|
||||||
|
输入.today TYPEAS s_string
|
||||||
|
|
||||||
|
|
||||||
|
[临时表]
|
||||||
|
--这边列出来的临时表就会在运行期动态创建
|
||||||
|
|
||||||
|
[临时变量]
|
||||||
|
--所有中间过程变量均可在此处定义
|
||||||
|
|
||||||
|
[业务过程]
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 1、输入输出检查 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 2、主过程前处理 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
|
||||||
|
##########################################
|
||||||
|
# 3、业务主过程 #
|
||||||
|
##########################################
|
||||||
|
|
||||||
|
IF 输入.flag = "1"
|
||||||
|
QUERY
|
||||||
|
SELECT
|
||||||
|
mst.input_time AS input_time,
|
||||||
|
mst.repair_code AS repair_code,
|
||||||
|
(
|
||||||
|
CASE
|
||||||
|
mst.maintenancecycle
|
||||||
|
WHEN '01' THEN '计划维修'
|
||||||
|
WHEN '02' THEN '临时维修'
|
||||||
|
END
|
||||||
|
) AS maintenancecycle,
|
||||||
|
file.device_code,
|
||||||
|
file.device_name,
|
||||||
|
(
|
||||||
|
CASE
|
||||||
|
mst.invstatus
|
||||||
|
WHEN '01' THEN '生成'
|
||||||
|
WHEN '02' THEN '提交'
|
||||||
|
WHEN '03' THEN '开始'
|
||||||
|
WHEN '04' THEN '委外维修'
|
||||||
|
WHEN '05' THEN '委外验收'
|
||||||
|
WHEN '06' THEN '结束'
|
||||||
|
WHEN '07' THEN '确认'
|
||||||
|
WHEN '99' THEN '审核'
|
||||||
|
END
|
||||||
|
) AS invstatus,
|
||||||
|
mst.real_start_date,
|
||||||
|
mst.real_end_date
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceRepairMst mst
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id
|
||||||
|
WHERE
|
||||||
|
mst.is_delete = '0'
|
||||||
|
AND (mst.invstatus <> '99' or (mst.invstatus = '99' and mst.audit_time like 输入.today))
|
||||||
|
AND ( ISNULL( mst.source_bill_id ) OR mst.source_bill_type = 'WXJH' )
|
||||||
|
|
||||||
|
UNION
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
st.create_time AS input_time,
|
||||||
|
st.request_code AS repair_code,
|
||||||
|
class.class_name AS maintenancecycle,
|
||||||
|
file.device_code,
|
||||||
|
file.device_name,
|
||||||
|
(
|
||||||
|
CASE
|
||||||
|
st.is_passed
|
||||||
|
WHEN '0' THEN
|
||||||
|
(
|
||||||
|
CASE st.is_passed
|
||||||
|
WHEN '0' THEN '否'
|
||||||
|
WHEN '1' THEN '是'
|
||||||
|
END
|
||||||
|
)
|
||||||
|
WHEN '1' THEN
|
||||||
|
(
|
||||||
|
CASE mst.invstatus
|
||||||
|
WHEN '01' THEN '生成'
|
||||||
|
WHEN '02' THEN '提交'
|
||||||
|
WHEN '03' THEN '开始'
|
||||||
|
WHEN '04' THEN '委外维修'
|
||||||
|
WHEN '05' THEN '委外验收'
|
||||||
|
WHEN '06' THEN '结束'
|
||||||
|
WHEN '07' THEN '确认'
|
||||||
|
WHEN '99' THEN '审核'
|
||||||
|
END
|
||||||
|
)
|
||||||
|
END
|
||||||
|
) AS invstatus,
|
||||||
|
mst.real_start_date,
|
||||||
|
mst.real_end_date
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceRepairRequest st
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON st.devicerecord_id = file.devicerecord_id
|
||||||
|
LEFT JOIN md_pb_classstandard class ON class.class_id = st.device_faultclass_id
|
||||||
|
LEFT JOIN EM_BI_DeviceRepairMst mst ON mst.source_bill_id = st.request_id
|
||||||
|
WHERE
|
||||||
|
st.is_delete = '0'
|
||||||
|
AND (st.status <> '99' or (st.status = '99' and st.finish_time like 输入.today))
|
||||||
|
AND mst.source_bill_type = 'BXD'
|
||||||
|
|
||||||
|
UNION
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
mst.input_time AS input_time,
|
||||||
|
mst.maint_code AS repair_code,
|
||||||
|
(
|
||||||
|
CASE
|
||||||
|
mst.maintenancecycle
|
||||||
|
WHEN '01' THEN '计划保养'
|
||||||
|
WHEN '02' THEN '临时保养'
|
||||||
|
END
|
||||||
|
) AS maintenancecycle,
|
||||||
|
file.device_code,
|
||||||
|
file.device_name,
|
||||||
|
(
|
||||||
|
CASE
|
||||||
|
mst.invstatus
|
||||||
|
WHEN '01' THEN '生成'
|
||||||
|
WHEN '02' THEN '提交'
|
||||||
|
WHEN '03' THEN '开始'
|
||||||
|
WHEN '04' THEN '结束'
|
||||||
|
WHEN '05' THEN '确认'
|
||||||
|
WHEN '99' THEN '审核'
|
||||||
|
END
|
||||||
|
) AS invstatus,
|
||||||
|
mst.real_start_date,
|
||||||
|
mst.real_end_date
|
||||||
|
FROM
|
||||||
|
EM_BI_DeviceMaintenanceMst mst
|
||||||
|
LEFT JOIN EM_BI_EquipmentFile file ON mst.devicerecord_id = file.devicerecord_id
|
||||||
|
WHERE
|
||||||
|
mst.is_delete = '0'
|
||||||
|
AND (mst.invstatus <> '99' or (mst.invstatus = '99' and mst.audit_time like 输入.today))
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -17,6 +17,12 @@ export const constantRouterMap = [
|
|||||||
hidden: true,
|
hidden: true,
|
||||||
meta: { title: '扩展屏' }
|
meta: { title: '扩展屏' }
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/bigScreen/task/stat',
|
||||||
|
component: (resolve) => require(['@/views/wms/sb/stat/task/bigScreen'], resolve),
|
||||||
|
hidden: true,
|
||||||
|
meta: { title: '任务看板' }
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/404',
|
path: '/404',
|
||||||
component: (resolve) => require(['@/views/features/404'], resolve),
|
component: (resolve) => require(['@/views/features/404'], resolve),
|
||||||
|
|||||||
128
mes/qd/src/views/wms/sb/stat/task/bigScreen.vue
Normal file
128
mes/qd/src/views/wms/sb/stat/task/bigScreen.vue
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
<template>
|
||||||
|
<div style="border: 1px solid #938d8d;margin-left: 10px;margin-right: 10px;">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<div class="grid-content bg-purple"><h2 style="margin-left: 30px;padding-top: 10px;">统计任务看板</h2></div>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
|
<el-col :span="12">
|
||||||
|
<div class="grid-content bg-purple-light">
|
||||||
|
<h2 style="text-align:right;margin-right: 140px;">{{ getTime }}</h2>
|
||||||
|
</div>
|
||||||
|
<div class="grid-content bg-purple-light">
|
||||||
|
<p style="text-align:right;margin-right: 110px;"><b>{{ getDate }}</b></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<div>
|
||||||
|
<!--表格渲染-->
|
||||||
|
<el-table
|
||||||
|
ref="table"
|
||||||
|
:data="tableData"
|
||||||
|
size="small"
|
||||||
|
style="width: 100%;"
|
||||||
|
border
|
||||||
|
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
|
||||||
|
>
|
||||||
|
<el-table-column type="index" label="序号" width="55" align="center" />
|
||||||
|
<el-table-column prop="input_time" label="生成时间" />
|
||||||
|
<el-table-column prop="repair_code" label="任务号" />
|
||||||
|
<el-table-column prop="maintenancecycle" label="任务类型" />
|
||||||
|
<!-- <el-table-column prop="" label="部门" />-->
|
||||||
|
<el-table-column prop="device_code" label="设备编码" />
|
||||||
|
<el-table-column prop="device_name" label="设备名称" />
|
||||||
|
<el-table-column prop="invstatus" label="状态" />
|
||||||
|
<el-table-column prop="real_start_date" label="开始时间" />
|
||||||
|
<el-table-column prop="real_end_date" label="结束时间" />
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<!--分页组件-->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import crud from '@/mixins/crud'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'BigscreenTask',
|
||||||
|
mixins: [crud],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
path: 'ws://localhost:8010/webSocket/20',
|
||||||
|
currentDate: new Date(),
|
||||||
|
getTime: '',
|
||||||
|
getDate: '',
|
||||||
|
tableData: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
// 定时器
|
||||||
|
const timer = setInterval(() => {
|
||||||
|
this.settime()// 你所加载数据的方法
|
||||||
|
}, 1000)
|
||||||
|
// 销毁定时器
|
||||||
|
this.$once('hook:beforeDestroy', () => {
|
||||||
|
clearInterval(timer)
|
||||||
|
})
|
||||||
|
this.init()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
settime() {
|
||||||
|
const _this = this
|
||||||
|
const yy = new Date().getFullYear()
|
||||||
|
const mm = new Date().getMonth() + 1
|
||||||
|
const dd = new Date().getDate()
|
||||||
|
const hh = new Date().getHours()
|
||||||
|
const mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes() : new Date().getMinutes()
|
||||||
|
const ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds() : new Date().getSeconds()
|
||||||
|
_this.getDate = yy + '年' + mm + '月' + dd + '日 ' + '星期' + '日一二三四五六'.charAt(new Date().getDay())
|
||||||
|
_this.getTime = hh + ':' + mf + ':' + ss
|
||||||
|
},
|
||||||
|
// webSocket
|
||||||
|
init: function() {
|
||||||
|
if (typeof (WebSocket) === 'undefined') {
|
||||||
|
alert('您的浏览器不支持socket')
|
||||||
|
} else {
|
||||||
|
// 实例化socket
|
||||||
|
this.socket = new WebSocket(this.path)
|
||||||
|
// 监听socket连接
|
||||||
|
this.socket.onopen = this.open
|
||||||
|
// 监听socket错误信息
|
||||||
|
this.socket.onerror = this.error
|
||||||
|
// 监听socket消息
|
||||||
|
this.socket.onmessage = this.getMessage
|
||||||
|
}
|
||||||
|
},
|
||||||
|
open: function() {
|
||||||
|
console.log('socket连接成功')
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
console.log('连接错误')
|
||||||
|
},
|
||||||
|
getMessage: function(msg) {
|
||||||
|
debugger
|
||||||
|
const data = JSON.parse(msg.data)
|
||||||
|
this.tableData = data.msg
|
||||||
|
},
|
||||||
|
send: function() {
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
this.socket.send(params)
|
||||||
|
},
|
||||||
|
close: function() {
|
||||||
|
console.log('socket已经关闭')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user