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
1e1f578d
Commit
1e1f578d
authored
Aug 03, 2020
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
s
parent
8f49bd3a
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 @
1e1f578d
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
)
}
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