Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
T
TopJS3API
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
Carver_Hu
TopJS3API
Commits
331ec9b7
Commit
331ec9b7
authored
Dec 27, 2019
by
Carver_Hu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
csv脚本
parent
0063ff3e
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
1113 additions
and
379 deletions
+1113
-379
confirmation-201912270900.XLSX
confirmation-201912270900.XLSX
+0
-0
confirmation-201912270900.csv
confirmation-201912270900.csv
+492
-0
csv_import.js
csv_import.js
+105
-0
b.txt
fileDemo/b.txt
+0
-0
test.js
test.js
+516
-379
No files found.
confirmation-201912270900.XLSX
0 → 100644
View file @
331ec9b7
File added
confirmation-201912270900.csv
0 → 100644
View file @
331ec9b7
This diff is collapsed.
Click to expand it.
csv_import.js
0 → 100644
View file @
331ec9b7
var
fs
=
require
(
'fs'
);
var
parser
=
require
(
'topsin.parser'
);
var
_
=
require
(
'lodash'
);
var
cl
=
require
(
'console'
);
var
csv_file
=
'./confirmation-201912270900.csv'
//解析csv数据
var
csv_data_parser
=
function
(
csv_file
){
var
file
=
fs
.
openFile
(
csv_file
);
file
.
setCodec
(
'UTF-8'
);
var
csv_str
=
file
.
readAll
();
//解析CSV字符串,变为数组格式
var
csv_data
=
parser
.
parseCsvStr
(
csv_str
);
return
csv_data
};
var
csv_data
=
csv_data_parser
(
csv_file
);
//提取第一行字段名
var
filed_row
=
csv_data
[
0
];
//数据库连接
var
db
=
require
(
'topsin.database'
);
db
.
addConnection
({
database_type
:
'pg'
,
database_host
:
'139.196.104.13:5433'
,
database_name
:
'PMO_TRAINING'
,
database_user
:
'toplinker'
,
database_pwd
:
'TopLinker0510'
},
"MES_DB"
);
//获取字段列表
var
filed_list
=
db
.
query
(
"MES_DB"
,
function
(
query
)
{
return
query
.
getFieldList
(
'sec_production_order_confirmation_1'
);
});
// 查询当前数据库表中是否存在数据
var
check_data_empty
=
db
.
query
(
"MES_DB"
,
function
(
query
)
{
return
query
.
selectMap
({
table
:
'sec_production_order_confirmation_1'
,
field
:
'*'
,
field_format
:{
"tags"
:
'array'
,
attr_data
:
'json'
}
});
});
//查询当前数据库表中已存在的数据长度
var
get_data
=
db
.
query
(
"MES_DB"
,
function
(
query
)
{
return
query
.
selectArrayArray
({
table
:
'sec_production_order_confirmation_1'
,
field
:
'id'
,
field_format
:{
"tags"
:
'array'
,
attr_data
:
'json'
},
// limit:3,
order
:
'id ASC'
,
// order:'id desc',
});
});
//查询
data_length
=
get_data
.
length
cl
.
log
(
'当前数据库表已存在行数:'
+
data_length
);
//最终批量插入的数据
var
total_batch_data
=
[];
//需要插入的字段(字段增加的变化后面再处理)
var
filed_list_insert
=
filed_list
.
slice
(
0
,
filed_row
.
length
+
1
);
//删除第一行的字段名
csv_data
.
shift
();
//处理批量插入的数据格式
csv_data
.
forEach
(
function
(
item1
){
var
obj
=
{}
item1
.
forEach
(
function
(
item2
,
index
){
//得到batchInsertc参数格式
obj
[
filed_list_insert
[
index
+
1
]]
=
item2
;
});
//追加对象
total_batch_data
.
push
(
obj
);
});
//插入字段使不包含id
filed_list_insert
.
shift
();
// 插入数据
var
batch_insert
=
function
(
iData
){
var
result
=
db
.
query
(
"MES_DB"
,
function
(
query
)
{
return
query
.
batchInsert
(
'sec_production_order_confirmation_1'
,
filed_list_insert
,
iData
);
});
}
if
(
_
.
isEmpty
(
check_data_empty
)){
// 第一次是直接插入
batch_insert
(
total_batch_data
);
cl
.
log
(
'本次插入数据:'
+
total_batch_data
.
length
+
' 条'
);
}
else
{
//数据库存在数据就需要进行长度对比来插入新数据
batch_insert
(
total_batch_data
.
slice
(
data_length
));
cl
.
log
(
'本次插入数据:'
+
(
total_batch_data
.
length
-
data_length
)
+
' 条'
);
};
\ No newline at end of file
fileDemo/b.txt
View file @
331ec9b7
No preview for this file type
test.js
View file @
331ec9b7
...
@@ -353,27 +353,164 @@ var stderr = process.stderr;
...
@@ -353,27 +353,164 @@ var stderr = process.stderr;
print
(
'
\
n'
);
print
(
'
\
n'
);
print
(
'------qt.widgets gui操作------'
);
print
(
'------qt.widgets gui操作------'
);
// var QtCore = require('qt.core');
/*
// var QtGui = require('qt.gui');
var QtCore = require('qt.core');
// var QtWidgets = require('qt.widgets');
var QtGui = require('qt.gui');
// //定义容器
var QtWidgets = require('qt.widgets');
// var frame = new QtWidgets.QFrame();
//定义容器
// //定义水平布局至容器
var frame = new QtWidgets.QFrame();
// var layout = new QtWidgets.QHBoxLayout(frame);
//定义水平布局至容器
// //定义组件
var layout = new QtWidgets.QHBoxLayout(frame);
// var button1 = new QtWidgets.QPushButton('one');
//定义组件
// var button2 = new QtWidgets.QPushButton('two');
var button1 = new QtWidgets.QPushButton('one');
// var button3 = new QtWidgets.QPushButton('three');
var button2 = new QtWidgets.QPushButton('two');
// var button4 = new QtWidgets.QPushButton('four');
var button3 = new QtWidgets.QPushButton('three');
// var button5 = new QtWidgets.QPushButton('five');
var button4 = new QtWidgets.QPushButton('four');
// //添加组件至布局
var button5 = new QtWidgets.QPushButton('five');
// layout.addWidget(button1);
//添加组件至布局
// layout.addWidget(button2);
layout.addWidget(button1);
// layout.addWidget(button3);
layout.addWidget(button2);
// layout.addWidget(button4);
layout.addWidget(button3);
// layout.addWidget(button5);
layout.addWidget(button4);
// frame.show();
layout.addWidget(button5);
// process.mainLoop();
frame.show();
process.mainLoop();
//qt不能执行,报错:QWidget: Cannot create a QWidget without QApplication
//qt不能执行,报错:QWidget: Cannot create a QWidget without QApplication
*/
print
(
'
\
n'
);
print
(
'------Lodash介绍------'
);
//1、toString(obj) 将对象转为string;
var
_
=
require
(
'lodash'
);
str1
=
_
.
toString
(
null
)
print
(
typeof
str1
);
//=>空字符串
str2
=
_
.
toString
(
undefined
)
print
(
typeof
str2
);
//=>空字符串
print
(
_
.
toString
(
'abcd'
));
//=>abcd
print
(
_
.
toString
(
true
));
//=>true
print
(
_
.
toString
(
false
));
//=>false
print
(
_
.
toString
(
0.01
));
//=>0.01
str3
=
_
.
toString
({
a
:
'aa'
})
print
(
str3
);
//=>{"a":"aa"} 注意:object或array等类型会返回JSON.stringify()字符串;
print
(
typeof
str3
);
//=>string
str4
=
_
.
toString
([
0
,
'a'
,
0.11
])
////=>[0,"aa",0.11] 注意:同上
print
(
str4
);
//=>[0,"aa",0.11]
print
(
typeof
str4
);
//=>string
str5
=
_
.
toString
(
function
(){
return
'abcdef'
;})
print
(
str5
);
//=>function(){return 'abcdef';}
print
(
typeof
str5
);
//=>string 注意:如果里面是函数,那么结果也是string
//2、_.isEmpty(obj) 判断对象是否为空
//=>以下打印true
print
(
_
.
isEmpty
(
null
));
print
(
_
.
isEmpty
(
undefined
));
print
(
_
.
isEmpty
(
''
));
print
(
_
.
isEmpty
([]));
print
(
_
.
isEmpty
({}));
//=>以下打印false
print
(
_
.
isEmpty
([
'a'
]));
print
(
_
.
isEmpty
({
a
:
1
}));
print
(
_
.
isEmpty
(
false
));
print
(
_
.
isEmpty
(
true
));
//注意boolean也会返回true
print
(
_
.
isEmpty
(
0
));
print
(
_
.
isEmpty
(
'abc'
));
print
(
_
.
isEmpty
(
0.1234
));
//3、_.toNumber(obj) 对象转为数字;
var
n
=
_
.
toNumber
(
undefined
);
print
(
n
);
//=>0 注意在topjs3中此处undefined是转为0
var
n
=
_
.
toNumber
(
'huzhihui'
);
print
(
n
);
//=>NaN
var
n
=
_
.
toNumber
({
'name'
:
'huzhihui'
});
print
(
n
);
//=>NaN
//4、_.isValid(obj) 判断对象是否有效;
//=>以下打印false
print
(
'null==>'
+
_
.
isValid
(
null
));
print
(
_
.
isValid
(
undefined
));
//=>以下打印true
print
(
_
.
isValid
(
true
));
print
(
_
.
isValid
(
0
));
print
(
_
.
isValid
(
'abc'
));
print
(
_
.
isValid
(
0.1234
));
print
(
_
.
isValid
(
false
));
print
(
_
.
isValid
([]));
print
(
_
.
isValid
({}));
//5、_.isTrue(obj) 判断对象是否为真;
//=>以下打印false
print
(
'==>'
+
_
.
isTrue
(
null
));
print
(
_
.
isTrue
(
undefined
));
print
(
_
.
isTrue
(
''
));
print
(
_
.
isTrue
([]));
print
(
_
.
isTrue
({}));
print
(
_
.
isTrue
(
false
));
print
(
_
.
isTrue
(
0
));
print
(
_
.
isTrue
(
'0'
));
//=>以下打印true
print
(
_
.
isTrue
([
'a'
]));
print
(
_
.
isTrue
({
a
:
1
}));
print
(
_
.
isTrue
(
true
));
print
(
_
.
isTrue
(
1
));
print
(
_
.
isTrue
(
'abc'
));
print
(
_
.
isEmpty
(
0.1234
));
//6、_.fuzzyEqual(value1, value2) 模糊比较两个数字是否相等,判断的公差为0.000001;
print
(
'是否相等:'
+
_
.
fuzzyEqual
(
1
,
1.00000000001
));
//7、_.fuzzyLessThan(value1, value2) 模糊判断value1是否小于value2,判断的公差为0.000001;
print
(
'是否小于:'
+
_
.
fuzzyEqual
(
1
,
1.00000000001
));
//8、_.fuzzyLessEqual(value1, value2) 模糊判断value1是否小于等于value2,判断的公差为0.000001;
print
(
'是否小于等于:'
+
_
.
fuzzyEqual
(
1
,
1.00000000001
));
//9、_.fuzzyGreaterThan(value1, value2) 模糊判断value1是否大于value2,判断的公差为0.000001;
print
(
'是否大于'
+
_
.
fuzzyEqual
(
1
,
1.00000000001
));
//10、_.fuzzyGreaterEqual(value1, value2) 模糊判断value1是否大于等于value2,判断的公差为0.000001;
print
(
'是否大于等于:'
+
_
.
fuzzyEqual
(
1
,
1.00000000001
));
//11、_.format(template, replace1, replace2, …) 使用replace1、replace2、replace3…替换template中的占位符, 占位符为{number}
var
template
=
"my {0} is {1}"
;
var
res
=
_
.
format
(
template
,
"name"
,
'huzhihui'
);
print
(
res
);
//12、_.formatUnicorn(template, kv) 使用kv中匹配的键的值替换模板中的占位符, 占位符为${string}
var
template
=
"my name is ${name}, age is ${age}"
;
var
res
=
_
.
formatUnicorn
(
template
,
{
'name'
:
'huzhihui'
,
'age'
:
24
});
print
(
res
);
//13、_.romanize(num) 将数字转换成罗马数字
print
(
_
.
romanize
(
1
));
print
(
_
.
romanize
(
2
));
print
(
_
.
romanize
(
3
));
//14、_.deromanize(str) 将罗马数字转换成数字
print
(
_
.
deromanize
(
'III'
));
//罗马数字是字符串格式
print
(
'
\
n'
);
print
(
'------mockjs - 随机数据------'
);
//mockjs - 生成随机数据,拦截 Ajax 请求
var
Mock
=
require
(
'mockjs'
);
// print(Mock.mock({"string|1-10": "*"}));
//此处会对对象中的value值进行范围内随机相加
print
(
_
.
toString
(
Mock
.
mock
({
"string|1-10"
:
"*"
})));
//=>{"string":"*********"}
print
(
_
.
toString
(
Mock
.
mock
({
"string|2"
:
"*"
})));
print
(
_
.
toString
(
Mock
.
mock
({
"number|+1"
:
100
})));
//此处的number值 是初始值,一般跟数组配合使用
print
(
_
.
toString
(
Mock
.
mock
({
"number|1-100"
:
10
})));
//此处的number值只是用来确定类型
print
(
_
.
toString
(
Mock
.
mock
({
"number|1-100.1-10"
:
10
})));
print
(
_
.
toString
(
Mock
.
mock
({
"number|123.1-10"
:
10
})));
print
(
_
.
toString
(
Mock
.
mock
({
"number|123.2"
:
10
})));
//注意:若浮点数是个固定值,那么该固定值就代表小数点向后的小数的位数
print
(
_
.
toString
(
Mock
.
mock
({
"number|123.10"
:
10
})));
//生成随机的布尔值,true和false的概率各是1/2
print
(
_
.
toString
(
Mock
.
mock
({
"boolean|1"
:
true
})));
a
=
[
1
,
2
,
3
,
4
,
5
,
6
];
print
(
a
.
slice
(
4
));
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