|
|
|
var express = require('express');
|
|
|
|
var router = express.Router();
|
|
|
|
var mock = require('../../public/javascripts/mock')
|
|
|
|
var Mock = require("mockjs")
|
|
|
|
var multipart = require('connect-multiparty');
|
|
|
|
var multipartMiddleware = multipart();
|
|
|
|
var moment = require("moment")
|
|
|
|
var util=require("../../public/javascripts/util")
|
|
|
|
var route=require('../../public/javascripts/route')
|
|
|
|
|
|
|
|
|
|
|
|
router.get('/analyse/all', function (req, res, next) {
|
|
|
|
var sst=Mock.mock({
|
|
|
|
"si|1-100":[{
|
|
|
|
t:/\d{3}/
|
|
|
|
}]
|
|
|
|
})
|
|
|
|
|
|
|
|
Array.from(new Array(20).keys()).forEach(value => {
|
|
|
|
let t={t:`${JSON.stringify({node:Mock.Random.word(),nodeId:Mock.Random.integer(1,10)})}`}
|
|
|
|
sst.si.push(t)
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
var data=Mock.mock({
|
|
|
|
...mock.ok(`HAZOP分析获取所有节点数据成功`),
|
|
|
|
...{
|
|
|
|
body:{
|
|
|
|
sst,
|
|
|
|
sheetData:{
|
|
|
|
row:function (){
|
|
|
|
let rowCount=50
|
|
|
|
let colCount=19
|
|
|
|
let rows=Array.from(new Array(rowCount).keys())
|
|
|
|
let cols=Array.from(new Array(colCount).keys())
|
|
|
|
for(let row in rows){
|
|
|
|
rows[+row]={
|
|
|
|
r:+row+1,
|
|
|
|
spans:`1:${colCount}`,
|
|
|
|
c:[]
|
|
|
|
}
|
|
|
|
for(let col in cols){
|
|
|
|
col=String.fromCharCode(+col+"A".charCodeAt())
|
|
|
|
rows[row].c.push({
|
|
|
|
r: `${col}${+row + 1}`,
|
|
|
|
s: 1,
|
|
|
|
t: 's',
|
|
|
|
v: (function (col){
|
|
|
|
switch (col){
|
|
|
|
case 'A':
|
|
|
|
return Mock.Random.integer(sst.si.length - 20, sst.si.length - 1)
|
|
|
|
default:
|
|
|
|
return Mock.Random.integer(0, sst.si.length - 21)
|
|
|
|
}
|
|
|
|
})(col)
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return rows
|
|
|
|
}
|
|
|
|
},
|
|
|
|
mergeCells:{
|
|
|
|
mergeCell:[{ref:'A1:A10'}, {ref:'A11:A20'}, {ref:'A21:A30'}, {ref:'A31:A40'}, {ref:'A41:A50'}],
|
|
|
|
count:5
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
res.json(data)
|
|
|
|
})
|
|
|
|
|
|
|
|
//HAZOP分析
|
|
|
|
router.get('/analyse/:id', function (req, res, next) {
|
|
|
|
var sst=Mock.mock({
|
|
|
|
"si|1-100":[{
|
|
|
|
t:/\d{3}/
|
|
|
|
}]
|
|
|
|
})
|
|
|
|
|
|
|
|
var data=Mock.mock({
|
|
|
|
...mock.ok(`HAZOP分析获取节点${req.params.id}数据成功`),
|
|
|
|
...{
|
|
|
|
body:{
|
|
|
|
sst,
|
|
|
|
sheetData:{
|
|
|
|
row:function (){
|
|
|
|
let rowCount=50
|
|
|
|
let colCount=18
|
|
|
|
let rows=Array.from(new Array(rowCount).keys())
|
|
|
|
let cols=Array.from(new Array(colCount).keys())
|
|
|
|
for(let row in rows){
|
|
|
|
rows[+row]={
|
|
|
|
r:+row+1,
|
|
|
|
spans:`1:${colCount}`,
|
|
|
|
c:[]
|
|
|
|
}
|
|
|
|
for(let col in cols){
|
|
|
|
col=String.fromCharCode(+col+"A".charCodeAt())
|
|
|
|
rows[row].c.push({
|
|
|
|
r: `${col}${+row + 1}`,
|
|
|
|
s: 1,
|
|
|
|
t: 's',
|
|
|
|
v: Mock.Random.integer(0, sst.si.length - 1)
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return rows
|
|
|
|
}
|
|
|
|
},
|
|
|
|
mergeCells:{
|
|
|
|
mergeCell:[],
|
|
|
|
count:0
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
res.json(data)
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
//获取当前项目使用矩阵
|
|
|
|
router.get('/analyse/matrix/:name', function (req, res, next) {
|
|
|
|
var data=Mock.mock({
|
|
|
|
...mock.ok('获取矩阵详情成功'),
|
|
|
|
...{
|
|
|
|
body:{
|
|
|
|
id:()=>Mock.Random.natural(1,1000),
|
|
|
|
"useProjectId|0-2":[/\d{3}/],
|
|
|
|
info:{
|
|
|
|
name:`matrix${Mock.Random.natural(5,8)}`,
|
|
|
|
desc:`matrix${Mock.Random.natural(5,8)}`,
|
|
|
|
x:()=>Mock.Random.natural(5,8),
|
|
|
|
y:()=>Mock.Random.natural(5,8),
|
|
|
|
explain:()=>Mock.Random.sentence(3, 5)
|
|
|
|
},
|
|
|
|
severity:function (){
|
|
|
|
const severity=[]
|
|
|
|
for(let i in Array.from(new Array(this.info.y).keys())){
|
|
|
|
severity.push({
|
|
|
|
//等级
|
|
|
|
level:Mock.Random.natural(1,9),
|
|
|
|
//严重程度
|
|
|
|
severity:Mock.Random.natural(1,9),
|
|
|
|
//人员
|
|
|
|
personnel:Mock.Random.word(),
|
|
|
|
//财产
|
|
|
|
property:Mock.Random.word(),
|
|
|
|
//环境
|
|
|
|
environment:Mock.Random.word(),
|
|
|
|
//声誉
|
|
|
|
prestige:Mock.Random.word()
|
|
|
|
})
|
|
|
|
}
|
|
|
|
return severity
|
|
|
|
},
|
|
|
|
possibility:function (){
|
|
|
|
const possibility=[]
|
|
|
|
for(let i in Array.from(new Array(this.info.x).keys())){
|
|
|
|
possibility.push({
|
|
|
|
//等级
|
|
|
|
level:Mock.Random.natural(1,this.info.x),
|
|
|
|
//概率值
|
|
|
|
probability:Mock.Random.natural(1,100)/100,
|
|
|
|
//描述
|
|
|
|
desc:Mock.Random.sentence(3, 5)
|
|
|
|
})
|
|
|
|
}
|
|
|
|
return possibility
|
|
|
|
},
|
|
|
|
'level|3-5':[{
|
|
|
|
id:/\d{3}/,
|
|
|
|
//Code
|
|
|
|
code:/\d{1}/,
|
|
|
|
//颜色
|
|
|
|
color:()=>Mock.Random.color(),
|
|
|
|
//描述
|
|
|
|
desc:()=>Mock.Random.sentence(3, 5),
|
|
|
|
//风险等级
|
|
|
|
level:/\d{1}/,
|
|
|
|
//应采取措施
|
|
|
|
measure:()=>Mock.Random.sentence(3, 5),
|
|
|
|
//实施期限
|
|
|
|
date:()=>Mock.Random.sentence(3, 5),
|
|
|
|
//备注
|
|
|
|
note:()=>Mock.Random.sentence(3, 5)
|
|
|
|
}],
|
|
|
|
matrix:function (){
|
|
|
|
const matrix=[]
|
|
|
|
for(let i in Array.from(new Array(this.info.y).keys())){
|
|
|
|
const child=[]
|
|
|
|
for(let j in Array.from(new Array(this.info.x).keys())){
|
|
|
|
child.push(this.level[Mock.Random.natural(0,this.level.length-1)])
|
|
|
|
}
|
|
|
|
matrix.push(child)
|
|
|
|
}
|
|
|
|
return matrix
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
res.json(data)
|
|
|
|
})
|
|
|
|
|
|
|
|
route.addContextMenu(router,'analyse/:id','HAZOP分析')
|
|
|
|
|
|
|
|
//HAZOP偏差知识库
|
|
|
|
router.get('/analyse/repository/:know', function (req, res, next) {
|
|
|
|
var data=mock.page(req,`查询${req.params.know}知识库成功`,{
|
|
|
|
//选项值
|
|
|
|
key: ()=>Mock.Random.word(),
|
|
|
|
//描述
|
|
|
|
value: ()=>Mock.Random.word()
|
|
|
|
})
|
|
|
|
res.json(data)
|
|
|
|
})
|
|
|
|
|
|
|
|
module.exports=router
|