Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
Scott
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Scott Sun
Scott
Commits
9414cfdb
Commit
9414cfdb
authored
4 years ago
by
Scott Sun
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.topibd.net/scott.sun/scott
parents
3bad45c3
1e1f578d
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
215 additions
and
0 deletions
+215
-0
script_javascript_driver.js
驱动/script_javascript_driver.js
+215
-0
No files found.
驱动/script_javascript_driver.js
0 → 100644
View file @
9414cfdb
var
_
=
require
(
'lodash'
);
var
process
=
require
(
'process'
);
var
fs
=
require
(
'fs'
);
var
Err
=
require
(
'topsin.error'
);
var
Gen
=
require
(
'topcam.gencom'
);
var
options
=
require
(
'minimist'
)(
process
.
argv
);
var
ARGV
=
options
[
'_'
];
var
crypto
=
require
(
'topsin.crypto'
);
var
os
=
require
(
'os'
);
var
IKM
=
require
(
'topcam.ikm6'
)();
var
GUI
=
require
(
'topsin.gengui'
).
newGui
();
var
logger
=
require
(
'topsin.logger'
);
/*logger.loadConfig({
'appender': {
console: {
'type': 'console',
'typefilter': 'ERROR,WARN,FATAL,INFO', // 日志分类 *代表所有
'categoryfilter': '*', // 模块分类
'format': '{TIME} [{TYPE}]-({CATEGORY}):{MSG} <{THREAD}>@{FILE}:{LINE}/{FUNC}' //自定义输出样式
}
}
});
*/
GUI
.
msg
=
function
(
data
){
var
tmp
=
data
;
var
type
=
{}.
toString
.
call
(
data
).
split
(
" "
)[
1
];
if
(
/^
(\[
object Object
\]
|
\[
object Array
\]
|
\[
object Error
\])
$/ig
.
test
({}.
toString
.
call
(
data
)))
{
data
=
JSON
.
stringify
(
data
)
}
else
if
(
/^
\[
object Function
\]
$/ig
.
test
({}.
toString
.
call
(
data
))){
data
=
data
.
toString
()
}
type
=
type
.
replace
(
"]"
,
""
)
if
(
tmp
===
undefined
){
type
=
'undefined'
,
data
=
'undefined'
}
GUI
.
msgBox
(
"数据类型:"
+
type
,
"info"
,
data
);
return
this
}
var
APP
=
IKM
.
getAPP
();
var
SCRIPT_RETURN
,
USER_NAME
,
USER_FULLNAME
,
USER_ID
,
GEN
,
LANG
,
JOB
,
STEP
,
JOB_ID
,
RUN_MODE
,
PAR
,
RUN_DATA
,
GEN_TYPE
,
REAL_BIN
;
var
CONF
=
JSON
.
parse
(
fs
.
readFile
(
process
.
argv
[
1
]));
if
(
ARGV
.
length
==
0
||
_
.
isEmpty
(
ARGV
[
0
]))
{
print
(
"
\n
Error: No Args passed to prog. Exiting...
\n
"
);
throw
new
Error
(
"Error: No Args passed to prog. Exiting..."
);
}
var
ARGS
=
{};
try
{
ARGS
[
"socket"
]
=
ARGV
[
2
];
ARGS
[
"job_id"
]
=
ARGV
[
3
];
ARGS
[
"process_id"
]
=
ARGV
[
4
];
ARGS
[
"script_id"
]
=
ARGV
[
5
];
ARGS
[
"user"
]
=
ARGV
[
6
];
ARGS
[
"gen_type"
]
=
ARGV
[
7
];
ARGS
[
"data"
]
=
ARGV
[
8
];
//
GEN
=
new
Gen
({
cam_type
:
ARGS
[
"gen_type"
]
});
USER_NAME
=
ARGS
[
"user"
];
if
(
_
.
isEmpty
(
USER_NAME
))
USER_NAME
=
GEN
.
getUserName
();
var
userinfo
=
IKM
.
crud
(
'selectMap'
,{
table
:
'sys_user'
,
field
:
[
'id'
,
'fullname'
],
where
:
{
username
:
USER_NAME
}
})
USER_ID
=
userinfo
[
"id"
];
USER_FULLNAME
=
userinfo
[
"fullname"
];
GEN_TYPE
=
ARGS
[
"gen_type"
];
JOB
=
process
.
getEnv
(
'JOB'
);
STEP
=
process
.
getEnv
(
'STEP'
);
JOB_ID
=
ARGS
[
"job_id"
];
JOB
=
IKM
.
crud
(
'selectValue'
,{
table
:
'pdm_job'
,
field
:
"jobname"
,
where
:
{
id
:
JOB_ID
}
})
SCRIPT_RETURN
=
_do_script
(
IKM
.
get_script_by_id
(
ARGS
[
"script_id"
]));
}
catch
(
err
)
{
IKM
.
msg
(
err
);
logError
(
err
);
}
finally
{
//程序结束
tl_end
();
}
function
logError
(
msg
)
{
print
(
"ERROR:"
+
_
.
toString
(
msg
));
//+ "\nbacktrace:" + _.join(backtrace(), "\n"));
}
function
tl_end
()
{
var
status
;
if
(
_
.
isEmpty
(
SCRIPT_RETURN
))
SCRIPT_RETURN
=
'Error'
;
if
(
/^done/i
.
test
(
SCRIPT_RETURN
))
{
status
=
'Done'
;
}
else
if
(
/^cancel/i
.
test
(
SCRIPT_RETURN
))
{
status
=
'Cancel'
;
}
else
if
(
/^warning/i
.
test
(
SCRIPT_RETURN
))
{
status
=
'Warning'
;
}
else
if
(
/^finish/i
.
test
(
SCRIPT_RETURN
))
{
status
=
'Finish'
;
}
else
if
(
/^critical/i
.
test
(
SCRIPT_RETURN
))
{
status
=
'Critical'
}
else
if
(
/^new/i
.
test
(
SCRIPT_RETURN
))
{
status
=
'New'
}
else
{
status
=
'Error'
;
}
if
(
ARGS
[
"socket"
])
{
var
end_time
=
os
.
getNow
();
var
tmp
=
{
job_id
:
JOB_ID
,
process_id
:
ARGS
[
"process_id"
],
end_time
:
end_time
,
user_name
:
USER_NAME
,
user_id
:
USER_ID
,
status
:
status
}
if
(
ARGS
[
"job_id"
]){
tmp
.
notes
=
ARGS
[
"job_id"
]
>
0
?
USER_FULLNAME
+
status
+
" script (jobname="
+
JOB
+
",jobid="
+
ARGS
[
"job_id"
]
+
")"
:
''
};
IKM
.
update_job_workflow_log
(
tmp
);
IKM
.
script_end
(
JOB_ID
,
ARGS
[
"process_id"
]);
}
}
function
doScript
(
argv
){
return
_do_script
({
name
:
argv
})
}
function
_do_script
(
argv
)
{
var
script_name
=
argv
[
"name"
];
var
scrinfo
=
IKM
.
crud
(
'selectMap'
,{
table
:
'pdm_workprocess_script'
,
field
:
[
'id'
,
'md5'
,
'type'
,
'encrypt'
,
'content'
,
'parameter_value'
],
where
:
{
name
:
script_name
,
status
:
'released'
}
})
var
func
=
''
;
var
scrfile
=
CONF
.
script_dir
+
"/"
+
script_name
+
".js"
;
if
(
CONF
.
debug_mode
==
true
&&
fs
.
fileExists
(
scrfile
))
{
func
=
evalfile
(
scrfile
,
{
prefix
:
"(function(){
\n
"
,
suffix
:
"
\n
})"
});
}
else
{
if
(
_
.
isEmpty
(
scrinfo
.
content
))
{
print
(
_
.
toString
(
scrinfo
))
throw
"script content is Empty!"
;
}
else
{
if
(
scrinfo
.
encrypt
==
1
)
{
func
=
evalstr
(
crypto
.
d
(
scrinfo
.
content
,{
prefix
:
"(function(){
\n
"
,
suffix
:
"
\n
})"
}));
}
else
if
(
scrinfo
.
encrypt
==
2
)
{
func
=
evalstr
(
crypto
.
d2
(
scrinfo
.
content
),
{
prefix
:
"(function(){
\n
"
,
suffix
:
"
\n
})"
});
}
else
if
(
scrinfo
.
encrypt
==
3
)
{
func
=
evalstr
(
crypto
.
d3
(
scrinfo
.
content
,
{
prefix
:
"(function(){
\n
"
,
suffix
:
"
\n
})"
}));
}
else
{
func
=
evalstr
(
content
,
{
prefix
:
"(function(){
\n
"
,
suffix
:
"
\n
})"
});
}
}
}
if
(
!
_
.
isFunction
(
func
)
&&
argv
.
doScriptType
!==
2
)
{
throw
"script "
+
script_name
+
" eval error!"
;
}
var
jobinfo
=
IKM
.
crud
(
'selectMap'
,{
table
:
'pdm_job'
,
field
:
[
'id AS job_id'
,
'jobname AS job_name'
],
where
:
{
jobname
:
JOB
}
})
var
params_info
=
{};
params_info
.
gen
=
GEN
;
params_info
.
ikm
=
IKM
;
params_info
.
conf
=
CONF
;
params_info
.
id
=
JOB_ID
;
params_info
.
script_name
=
script_name
;
params_info
.
user_name
=
USER_NAME
params_info
.
user_id
=
USER_ID
;
params_info
.
user_full_name
=
USER_FULLNAME
;
params_info
.
job
=
JOB
;
params_info
.
gen_type
=
GEN_TYPE
;
params_info
.
gui
=
GUI
;
params_info
.
par
=
JSON
.
parse
(
IKM
.
crud
(
'selectMap'
,{
table
:
'pdm_workprocess'
,
field
:
[
'script_parameter'
],
where
:
{
name
:
script_name
}
}).
script_parameter
)
// PAR = (!scrinfo.parameter_value || scrinfo.parameter_value == "") ? {} : JSON.parse(scrinfo.parameter_value);
_
.
merge
(
params_info
,
jobinfo
);
var
res
=
func
.
call
({},
params_info
);
return
res
;
}
function
addFlowNotes
(
par
){
par
[
"user_name"
]
=
par
[
"user_name"
]
||
USER_NAME
par
[
"user_id"
]
=
par
[
"user_id"
]
||
USER_ID
return
IKM
.
update_job_workflow_log
(
par
)
}
function
updateFlowReport
(
par
){
par
[
"job_id"
]
=
par
[
"job_id"
]
||
JOB_ID
return
IKM
.
update_flow_report
(
par
)
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment