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
79cbbdc2
Commit
79cbbdc2
authored
5 years ago
by
Scott Sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
s
parent
ba8d156b
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
578 additions
and
409 deletions
+578
-409
ATS_AIM_customer_data_analysis.js
ats/analysis/ATS_AIM_customer_data_analysis.js
+487
-117
ATS_AIM_data_input.js
ats/input/ATS_AIM_data_input.js
+13
-18
ATS_AIM_data_format.js
ats/rename/ATS_AIM_data_format.js
+4
-26
config_ats.js
config_ats.js
+12
-14
ATS_AIM_input_data copy.js
test/ATS_AIM_input_data copy.js
+1
-1
mytest.js
test/mytest.js
+2
-231
test.js
test/test.js
+59
-2
No files found.
ats/analysis/ATS_AIM_customer_data_analysis.js
View file @
79cbbdc2
This diff is collapsed.
Click to expand it.
ats/input/ATS_AIM_data_input.js
View file @
79cbbdc2
...
...
@@ -5,21 +5,6 @@ NAME:
DESCRIPTION: ;
PARAMETER:
[
{
name : 'path',
title : '资料路径',
type : 'LineEdit',
property : {tool_tip : '存放所有料号的文件夹路径,不需要进入到料号文件夹内'},
},
{
name : 'customer',
title : '客户配置',
type : 'ComboBox',
property : {
item_list:['customer_1','customer_2','new_data'],
tool_tip:'客户代码'
}
},
{
name : 'db',
title : '料号db',
...
...
@@ -86,8 +71,15 @@ if ($.hasOwnProperty('script_parameter')){
try
{
var
par
=
PAR
;
if
(
!
par
.
hasOwnProperty
(
"customer"
)
||
par
.
customer
==
""
){
throw
"未填写配置"
};
if
(
!
par
.
hasOwnProperty
(
"path"
)
||
par
.
path
==
""
){
throw
"未填写路径"
};
var
db_path
=
db
.
query
(
""
,
function
(
q
){
return
q
.
selectValue
({
table
:
'pub_conf'
,
field
:
'text_data'
,
where
:{
path
:
"quote-data-upload"
}
})
});
if
(
_
.
isEmpty
(
db_path
)){
throw
"quote-data-upload error"
}
par
.
path
=
db_path
;
if
(
!
par
.
hasOwnProperty
(
"config_path"
)
||
par
.
config_path
==
""
){
console
.
log
(
"========================cfg"
);
par
.
config_path
=
"cam/input_data"
...
...
@@ -103,6 +95,7 @@ try {
where
:{
id
:
JobId
}
})
});
if
(
_
.
isEmpty
(
db_customer
)){
throw
"customer error"
}
if
(
db_customer
&&
!
(
/^done$/ig
.
test
(
db_customer
))
&&
db_customer
!=
""
){
par
.
customer
=
db_customer
}
...
...
@@ -127,7 +120,9 @@ try {
custCfg
.
db
=
par
.
db
||
custCfg
.
db
var
step
=
custCfg
.
step
.
toLowerCase
()
// 获取路径下文件信息
var
path
=
par
.
path
||
custCfg
.
path
var
path
=
JSON
.
parse
(
par
.
path
).
path
console
.
log
(
"=============>path:"
+
path
)
if
(
!
fs
.
exists
(
path
)){
throw
"path error"
}
var
pathInfo
=
fs
.
listDir
(
path
,
1
)
// 判断存不存在料号文件
var
jobFile
=
pathInfo
.
filter
(
function
(
v
){
return
v
.
baseName
.
toLowerCase
()
==
job
})
...
...
This diff is collapsed.
Click to expand it.
ats/rename/ATS_AIM_data_format.js
View file @
79cbbdc2
...
...
@@ -3,15 +3,6 @@ NAME:
DESCRIPTION: ;
PARAMETER:
[
{
name : 'customer',
title : '客户配置',
type : 'ComboBox',
property : {
item_list:['customer_1','customer_2','new_data'],
tool_tip:'客户代码'
}
},
{
name : 'config_path',
title : '配置地址',
...
...
@@ -70,7 +61,6 @@ if ($.hasOwnProperty('script_parameter')){
try
{
var
mode
=
"use"
// develop
var
par
=
PAR
;
if
(
!
par
.
hasOwnProperty
(
"customer"
)
||
par
.
customer
==
""
){
throw
"未填写配置"
};
if
(
!
par
.
hasOwnProperty
(
"config_path"
)
||
par
.
config_path
==
""
){
console
.
log
(
"========================cfg"
);
par
.
config_path
=
"cam/input_data"
...
...
@@ -82,6 +72,7 @@ try {
where
:{
id
:
JobId
}
})
});
if
(
_
.
isEmpty
(
db_customer
)){
throw
"customer error"
}
if
(
db_customer
&&
!
(
/^done$/ig
.
test
(
db_customer
))
&&
db_customer
!=
""
){
par
.
customer
=
db_customer
}
...
...
@@ -130,21 +121,6 @@ try {
if
(
err
){
throw
err
}
// 创建profile
var
new_martix
=
GEN
.
getMatrix
({
job
:
job
})
var
profileLayer
=
Object
.
keys
(
new_martix
).
filter
(
function
(
v
){
return
new_martix
[
v
].
layer_type
==
"rout"
})
if
(
profileLayer
.
length
){
var
tmp
=
profileLayer
[
0
]
if
(
profileLayer
.
indexOf
(
"outline"
)
>=
0
){
tmp
=
"outline"
}
var
step
=
GEN
.
getStepList
({
job
:
job
})[
0
];
GEN
.
openStep
({
job
:
job
,
name
:
step
})
GEN
.
workLayer
({
name
:
tmp
,
display_number
:
2
,
clear_before
:
'yes'
})
GEN
.
selCreateProfile
()
GEN
.
closeStep
()
}
// end
GEN
.
checkInout
({
job
:
job
,
mode
:
"out"
})
// 结束保存料号 关闭料号
GEN
.
saveJob
({
job
:
job
});
...
...
@@ -310,6 +286,8 @@ function setDrill(props){ // 设置钻孔
var signalLayer =matrix.filter(function(v){
return v.attr.type == "
signal
" && v.attr.context == "
board
"
})
console.log("
=================>
setdrill
:
drillLayer
:
" + _.toString(drillLayer));
var layerCount = GEN.getLayerCount({job:job})
// findSignal 根据传入的数字找到对应的signal层 如 1 => top ; 2 => layer_2
function findSignal(num){
...
...
@@ -317,7 +295,7 @@ function setDrill(props){ // 设置钻孔
}
function doDrill(drills){ // 分析钻孔层
return drills.map(function(v){
if(v.name == "
drill
" || v.name=="
rout
"){
if(v.name == "
drill
" || v.name=="
rout
"
|| v.name=="
outline
"
){
return {start:findSignal(1), end:findSignal(layerCount), layer:v.name}
} else {
var tmp = /(
\
d+)-(
\
d+)/ig.exec(v.tl_name);
...
...
This diff is collapsed.
Click to expand it.
config_ats.js
View file @
79cbbdc2
...
...
@@ -148,8 +148,7 @@
}
},
"customer"
:
{
"Customer_1"
:
{
"path"
:
"/opt/resource/customer_1"
,
"2171"
:
{
"step"
:
"cad"
,
"rules"
:
[
{
...
...
@@ -206,8 +205,7 @@
{
"orig_name"
:
[
"_isl(
\\
d+)_bottom"
],
"tl_name"
:
"d_($1)-($1+1)"
}
]
},
"Customer_2"
:
{
"path"
:
"/opt/resource/customer_2"
,
"yucca"
:
{
"step"
:
"cad"
,
"rules"
:
[
{
...
...
@@ -346,7 +344,6 @@
]
},
"New_data"
:
{
"path"
:
"/opt/resource/new_data"
,
"step"
:
"cad"
,
"rules"
:
[
{
...
...
@@ -450,14 +447,15 @@
],
"tl_name"
:
[
{
"orig_name"
:
[
"pasttop.art"
,
"^past_top$"
,
"top_solderpaste"
],
"tl_name"
:
"past_top"
},
{
"orig_name"
:
[
"pleg.art"
,
"^silk_top$"
,
"top_silkscreen"
],
"tl_name"
:
"silk_top"
},
{
"orig_name"
:
[
"soldtop.art"
,
"^sm_top$"
,
"top_soldermask"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"
top.art
"
,
"^top$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"inner_(
\\
d+)
\\
.art"
,
"layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"bottom.art"
,
"^bottom$"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"soldbotm.art"
,
"^sm_botm$"
,
"bot_soldermask"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"sleg.art"
,
"^silk_bot$"
,
"bot_silkscreen"
],
"tl_name"
:
"silk_bot"
},
{
"orig_name"
:
[
"
^silk_top
\\
.art$"
,
"
pleg.art"
,
"^silk_top$"
,
"top_silkscreen"
],
"tl_name"
:
"silk_top"
},
{
"orig_name"
:
[
"
_r1
\\
.phd$"
,
"_r1
\\
.fph$"
,
"^smt
\\
.art$"
,
"
soldtop.art"
,
"^sm_top$"
,
"top_soldermask"
],
"tl_name"
:
"sm_top"
},
{
"orig_name"
:
[
"
^top.art$
"
,
"^top$"
],
"tl_name"
:
"top"
},
{
"orig_name"
:
[
"
_l(
\\
d+)
\\
.phd$"
,
"_l(
\\
d+)
\\
.fph$"
,
"^in_(
\\
d+)
\\
.art$"
,
"^l(
\\
d+)
\\
.art$"
,
"
inner_(
\\
d+)
\\
.art"
,
"layer_(
\\
d+)"
],
"tl_name"
:
"l_($1)"
},
{
"orig_name"
:
[
"
^bot.art$"
,
"^
bottom.art"
,
"^bottom$"
],
"tl_name"
:
"bottom"
},
{
"orig_name"
:
[
"
_r
\\
d
\\
.phd$"
,
"_r
\\
d
\\
.fph$"
,
"^smb
\\
.art$"
,
"
soldbotm.art"
,
"^sm_botm$"
,
"bot_soldermask"
],
"tl_name"
:
"sm_botm"
},
{
"orig_name"
:
[
"
^silk_bottom
\\
.art$"
,
"
sleg.art"
,
"^silk_bot$"
,
"bot_silkscreen"
],
"tl_name"
:
"silk_bot"
},
{
"orig_name"
:
[
"pastbotm.art"
,
"^past_botm$"
,
"bot_solderpaste"
],
"tl_name"
:
"past_botm"
},
{
"orig_name"
:
[
"^nc_drill$"
,
"^drill$"
],
"tl_name"
:
"drill"
},
{
"orig_name"
:
"multipack.art"
,
"tl_name"
:
"array"
},
{
"orig_name"
:
[
"
\\
.rou$"
,
"^rout$"
],
"tl_name"
:
"rout"
},
{
"orig_name"
:
[
"outline.art"
,
"^outline$"
],
"tl_name"
:
"outline"
},
...
...
@@ -465,7 +463,7 @@
{
"orig_name"
:
"top-enig"
,
"tl_name"
:
"top-enig"
},
{
"orig_name"
:
"bot-enig"
,
"tl_name"
:
"bot-enig"
},
{
"orig_name"
:
"fab_page2"
,
"tl_name"
:
"fab_page2"
},
{
"orig_name"
:
[
"(
\\
d+)-(
\\
d+)-laser
\\
.drl"
,
"d(
\\
d+)-(
\\
d+)"
],
"tl_name"
:
"d_($1)-($2)"
}
{
"orig_name"
:
[
"
_d(
\\
d)(
\\
d+)
\\
.drd"
,
"_d(
\\
d)(
\\
d+)
\\
.fdr"
,
"^d(
\\
d)(
\\
d+)
\\
.art$"
,
"
(
\\
d+)-(
\\
d+)-laser
\\
.drl"
,
"d(
\\
d+)-(
\\
d+)"
],
"tl_name"
:
"d_($1)-($2)"
}
]
}
},
...
...
@@ -486,5 +484,5 @@
{
"tl_name"
:
"array"
,
"new_name"
:
"array"
,
"attr"
:{
"context"
:
"misc"
}},
{
"tl_name"
:
"fab.art"
,
"new_name"
:
"fab.art"
,
"attr"
:{
"context"
:
"misc"
}}
],
"delSameJob"
:
"
no
"
"delSameJob"
:
"
yes
"
}})()
\ No newline at end of file
This diff is collapsed.
Click to expand it.
test/ATS_AIM_input_data copy.js
View file @
79cbbdc2
...
...
@@ -58,7 +58,7 @@ try {
job_name
:
"1"
,
path
:
"C:/Users/Alan/Desktop/Customer_1"
}
var
parParams
=
[
"customer"
,
"job_name"
,
"path"
];
// par应该有的属性
var
isParExist
=
parParams
.
reduce
(
function
(
a
,
b
)
{
if
(
!
par
.
hasOwnProperty
(
b
))
{
...
...
This diff is collapsed.
Click to expand it.
test/mytest.js
View file @
79cbbdc2
...
...
@@ -8,242 +8,13 @@ var GEN = $.gen;
var
GUI
=
$
.
gui
;
var
Job
=
$
.
job
;
var
JobId
=
$
.
job_id
;
var
drill_toll_manage
=
{}
try
{
var
job
=
"sj"
;
if
(
GEN
.
isJobExists
({
job
:
job
})){
GEN
.
closeJob
({
job
:
job
})
GEN
.
deleteJob
({
job
:
job
})
}
var
config
=
{
format
:
{
"Gerber274x_1"
:
{
"nf1"
:
5
,
"nf2"
:
5
,
"units"
:
"inch"
,
"zeroes"
:
"leading"
,
"decimal"
:
"no"
,
"nf_comp"
:
0
,
"break_sr"
:
"yes"
,
"data_type"
:
"ascii"
,
"separator"
:
"*"
,
"threshold"
:
200
,
"drill_only"
:
"no"
,
"multiplier"
:
1
,
"resolution"
:
3
,
"tool_units"
:
"inch"
,
"coordinates"
:
"absolute"
,
"merge_by_rule"
:
"no"
,
"signed_coords"
:
"no"
,
"text_line_width"
:
0.0024
},
"Excellon2_1"
:
{
"nf1"
:
2
,
"nf2"
:
3
,
"units"
:
"inch"
,
"zeroes"
:
"none"
,
"decimal"
:
"no"
,
"nf_comp"
:
0
,
"break_sr"
:
"yes"
,
"data_type"
:
"ascii"
,
"separator"
:
"nl"
,
"threshold"
:
200
,
"drill_only"
:
"no"
,
"multiplier"
:
1
,
"resolution"
:
3
,
"tool_units"
:
"inch"
,
"coordinates"
:
"absolute"
,
"merge_by_rule"
:
"no"
,
"signed_coords"
:
"no"
,
"text_line_width"
:
0.0024
}
},
odb
:
[{
vaild
:
function
(
item
){
return
/
\.
tgz$/ig
.
test
(
item
.
name
)
// 以.tgz结尾的
}
}],
gerber
:
[
{
vaild
:
function
(
item
){
return
/
\.
art$/ig
.
test
(
item
.
name
)
// 以.art结尾的
},
type
:
"Gerber274x"
,
format
:
"Gerber274x_1"
},
{
vaild
:
function
(
item
){
return
/
\.
drl$/ig
.
test
(
item
.
name
)
// 以.drl结尾的
},
type
:
"Excellon2"
,
format
:
"Excellon2_1"
}
]
}
var
path
=
"C:/Users/Administrator/Desktop/sj(1)"
IKM
.
msg
(
1
)
var
inputInfo
=
getJobInfo
({
path
:
path
,
job
:
job
,
config
:
config
})
if
(
/gerber/ig
.
test
(
inputInfo
.
type
)){
inputInfo
.
data
.
forEach
(
function
(
file
){
if
(
/
\.
drl$/ig
.
test
(
file
.
name
)){
var
backUpName
=
file
.
name
+
".backup"
// 备份
fs
.
copyFile
(
file
.
path
,
file
.
dir
+
"/"
+
backUpName
)
// 读取
var
data
=
fs
.
readFile
(
file
.
path
)
data
=
data
.
split
(
"
\n
"
)
var
head
=
getHead
(
data
)
var
body
=
data
// 解析head
var
headData
=
head
.
filter
(
function
(
v
){
return
/Holesize.+Tolerance.+PLATED/ig
.
test
(
v
)
})
headData
.
map
(
function
(
v
){
var
res
=
{
holesize
:
{},
tolerance
:
{},
attr
:
""
,
unit
:
""
,
quantity
:
0
}
var
holesize_tmp
=
/
(
Holesize.+
)
Tolerance/
.
exec
(
v
)[
1
];
holesize_tmp
=
holesize_tmp
.
split
(
"="
)
res
.
holesize
.
key
=
holesize_tmp
[
0
].
trim
()
res
.
holesize
.
value
=
holesize_tmp
[
1
].
trim
()
var
Tolerance_tmp
=
/
(
Tolerance.
{23})
/
.
exec
(
v
)[
1
];
Tolerance_tmp
=
Tolerance_tmp
.
split
(
"="
)[
1
].
split
(
"/"
)
res
.
tolerance
.
top
=
Tolerance_tmp
[
0
].
trim
()
res
.
tolerance
.
bot
=
Tolerance_tmp
[
1
].
trim
()
res
.
attr
=
/NON_PLATED/ig
.
test
(
v
)
?
"non_plated"
:
"plated"
res
.
unit
=
/MILS/ig
.
test
(
v
)
?
"inch"
:
"mm"
res
.
quantity
=
parseInt
(
v
.
split
(
"="
).
pop
())
if
(
!
drill_toll_manage
.
hasOwnProperty
(
file
.
name
)){
drill_toll_manage
[
file
.
name
]
=
{}
}
drill_toll_manage
[
file
.
name
][
/
(\d
+
)
/ig
.
exec
(
res
.
holesize
.
key
)[
1
]]
=
res
})
// 给body添加刀
var
count
=
0
;
body
=
body
.
filter
(
function
(
v
){
return
!
(
/T
\d
+/ig
.
test
(
v
))
})
body
.
forEach
(
function
(
v
,
i
){
if
(
/^%$|^M00/ig
.
test
(
v
)){
var
k
=
"T"
+
getK
(
++
count
)
body
[
i
]
=
v
+
"
\n
"
+
k
}
})
// 写入文件
var
resStr
=
head
.
join
(
"
\n
"
)
+
"
\n
"
+
body
.
join
(
"
\n
"
)
fs
.
writeFile
(
file
.
path
,
resStr
)
}
})
importGerber
({
job
:
job
,
step
:
"pcs"
,
db
:
"genesis"
,
data
:
inputInfo
.
data
})
// 导入后 修改 tool manager
var
stepList
=
GEN
.
getStepList
({
job
:
job
})
var
matrix
=
GEN
.
getMatrix
({
job
:
job
})
var
drill_layers
=
Object
.
keys
(
matrix
).
filter
(
function
(
v
){
return
matrix
[
v
].
layer_type
==
"drill"
})
stepList
.
forEach
(
function
(
step
){
GEN
.
openStep
({
job
:
job
,
name
:
step
})
drill_layers
.
forEach
(
function
(
layer
){
var
drill_tool_manage_info
=
drill_toll_manage
[
layer
]
var
drill_tool_keys
=
Object
.
keys
(
drill_tool_manage_info
).
sort
(
function
(
a
,
b
){
return
a
-
b
})
GEN
.
COM
(
"tools_tab_reset"
)
drill_tool_keys
.
forEach
(
function
(
key
){
var
val
=
drill_tool_manage_info
[
key
]
GEN
.
COM
(
"tools_tab_add"
,
{
num
:
key
,
type
:
/plated/ig
.
test
(
val
.
attr
)
?
"plate"
:
"nplate"
,
min_tol
:
Number
(
val
.
tolerance
.
top
),
max_tol
:
Number
(
val
.
tolerance
.
bot
),
finish_size
:
Number
(
val
.
holesize
.
value
),
drill_size
:
Number
(
val
.
holesize
.
value
)
})
})
GEN
.
COM
(
"tools_set"
,{
layer
:
layer
,
thickness
:
0
,
user_params
:
1
,
slots
:
"by_length"
})
})
GEN
.
closeStep
()
})
}
return
"Done"
}
catch
(
e
)
{
IKM
.
msg
(
e
)
return
"Error"
}
function
getJobInfo
(
props
){
var
path
=
props
.
path
var
config
=
props
.
config
var
job
=
props
.
job
var
files
=
fs
.
listDir
(
path
)
files
=
files
.
filter
(
function
(
v
){
return
v
.
isFile
})
// 过滤出文件
// 先判断是不是odb
var
odbFiles
=
files
.
filter
(
function
(
file
){
// 拿到odb文件
return
config
.
odb
.
reduce
(
function
(
a
,
b
){
if
(
b
.
vaild
(
file
)){
a
=
true
}
return
a
},
false
)
})
if
(
odbFiles
.
length
){
return
{
type
:
"odb"
,
data
:
odbFiles
[
0
]
}
}
var
gerberFiles
=
files
.
filter
(
function
(
file
){
// 拿到odb文件
return
config
.
gerber
.
reduce
(
function
(
a
,
b
){
if
(
b
.
vaild
(
file
)){
file
.
gerber
=
config
.
format
[
b
.
format
];
file
.
type
=
b
.
type
;
a
=
true
}
return
a
},
false
)
})
if
(
gerberFiles
.
length
){
return
{
type
:
"gerber"
,
data
:
gerberFiles
}
}
return
"none"
}
function
importGerber
(
props
){
// job db step
var
job
=
props
.
job
var
step
=
props
.
step
var
files
=
props
.
data
GEN
.
createJob
({
name
:
job
,
db
:
props
.
db
})
GEN
.
createStep
({
job
:
job
,
name
:
props
.
step
})
var
gerberInfo
=
files
.
map
(
function
(
item
){
var
gerberCfg
=
JSON
.
parse
(
JSON
.
stringify
(
item
.
gerber
));
gerberCfg
.
layer
=
item
.
name
.
toLowerCase
()
gerberCfg
.
path
=
item
.
path
gerberCfg
.
format
=
item
.
type
gerberCfg
.
job
=
job
gerberCfg
.
step
=
step
return
gerberCfg
})
GEN
.
COM
(
"input_manual_reset"
)
gerberInfo
.
forEach
(
function
(
v
){
GEN
.
COM
(
"input_manual_set"
,
v
)
})
GEN
.
COM
(
"input_manual"
)
}
function
getHead
(
arr
,
head
){
head
=
head
||
[];
if
(
arr
[
0
]
!=
"%"
){
head
.
push
(
arr
.
shift
())
return
getHead
(
arr
,
head
)
}
else
{
return
head
}
}
function
getK
(
count
){
return
count
<
10
?
"0"
+
String
(
count
)
:
String
(
count
)
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
test/test.js
View file @
79cbbdc2
var
func
=
function
(
ARGV
)
{
var
jobId
=
ARGV
[
"job_id"
];
var
tableName
=
"pdm_job_"
+
ARGV
[
"jobcategory"
]
+
"_layer"
;
//GUI.msgbox({text: TDataParse.variant2JsonStr(tableName)});
var
db
=
new
TSqlQueryV2
(
T_SQLCNT_POOL
.
getSqlDatabase
());
db
.
begin
();
try
{
var
oLayers
=
db
.
selectMapMap
({
table
:
tableName
,
field
:
[
"odb_name"
,
"release_status"
],
where
:
{
job_id
:
jobId
},
uniquefield
:
"odb_name"
});
if
(
db
.
lastError
().
isValid
())
throw
db
.
lastError
();
//GUI.msgbox({text: TDataParse.variant2JsonStr(oLayers)});
db
.
deleteRow
({
table
:
tableName
,
where
:
{
job_id
:
jobId
}
});
if
(
db
.
lastError
().
isValid
())
throw
db
.
lastError
();
var
str
=
"-0.0001"
var
fieldLst
=
[
"name"
,
"odb_context"
,
"odb_type"
,
"odb_polarity"
,
"odb_side"
,
"drl_start"
,
"drl_end"
,
"row_num"
,
"type"
,
"drl_start_num"
,
"drl_end_num"
,
"drl_from_num"
,
"drl_to_num"
,
"drl_connect_to"
,
"odb_name"
,
"side"
,
"stackup_num"
,
"customer_field"
,
"input_file_name"
,
"odb_row_num"
];
console
.
log
(
Number
(
str
));
for
(
var
i
=
0
;
i
<
ARGV
[
"layers"
].
length
;
i
++
)
{
layerName
=
ARGV
[
"layers"
][
i
];
var
layerInfo
=
ARGV
[
"matrix"
][
layerName
];
var
tmpData
=
{
"job_id"
:
jobId
,
"name"
:
layerInfo
[
"name"
]
};
if
(
ARGV
[
"releasestatus"
]
!=
undefined
&&
ARGV
[
"releasestatus"
]
!=
null
&&
ARGV
[
"releasestatus"
].
length
>
0
&&
ARGV
[
"releasestatus"
][
layerInfo
[
"odb_name"
]]
!=
undefined
&&
ARGV
[
"releasestatus"
][
layerInfo
[
"odb_name"
]]
!=
null
)
{
tmpData
[
"release_status"
]
=
ARGV
[
"releasestatus"
];
}
else
{
tmpData
[
"release_status"
]
=
oLayers
.
hasOwnProperty
(
layerInfo
[
"odb_name"
])
?
oLayers
[
layerInfo
[
"odb_name"
]][
"release_status"
]
:
null
;
}
for
(
n
=
0
;
n
<
fieldLst
.
length
;
n
++
)
{
tmpData
[
fieldLst
[
n
]]
=
layerInfo
[
fieldLst
[
n
]];
}
//GUI.msgbox({text: TDataParse.variant2JsonStr(tmpData)});
db
.
insertRow
({
table
:
tableName
,
data
:
tmpData
});
if
(
db
.
lastError
().
isValid
())
throw
db
.
lastError
();
}
db
.
commit
();
return
new
TDataResponse
();
}
catch
(
err
)
{
print
(
err
.
text
());
db
.
rollback
();
return
new
TDataResponse
(
err
,
""
);
}
}
\ No newline at end of file
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