1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
| import uuid
| from datetime import datetime
|
| from sqlalchemy.orm import sessionmaker, scoped_session
|
| from db.models import engine, TProject, TDevice, TDataStream, TDevStream
|
| from hashlib import md5
|
| # 创建一个会话工厂
| session_factory = sessionmaker(bind=engine)
| # 创建一个会话对象
| Session = scoped_session(session_factory)
| session = Session()
|
|
| def get_pk():
| n = uuid.uuid4().hex
| pk = md5(n.encode('utf-8')).hexdigest()
| return pk
|
|
| def create_project(sat_id, sat_name, proj_code, proj_name, desc, date_time, ) -> TProject:
| """
| 创建project
| :param sat_id:
| :param sat_name:
| :param proj_code:
| :param proj_name:
| :param desc:
| :param date_time:
| :return: 创建完成的project
| """
| project = TProject(C_PROJECT_PK=get_pk(), C_SAT_ID=sat_id, C_SAT_NAME=sat_name, C_PROJECT_CODE=proj_code,
| C_DESCRIPTION=desc, C_HASH=uuid.uuid4().int & 0xffffffff, C_PROJECT_NAME=proj_name,
| C_DATETIME=date_time,
| C_CREATEOR='')
| session.add(project)
| session.commit()
| return project
|
|
| def create_device(device_id, device_name, device_type, dll, project_pk):
| """
| 创建device
| :param device_id:
| :param device_name:
| :param device_type:
| :param dll:
| :param project_pk:
| :return:
| """
| device = TDevice(C_DEV_PK=get_pk(), C_DEV_ID=device_id, C_DEV_NAME=device_name, C_DEV_TYPE=device_type, C_DLL=dll,
| C_PROJECT_PK=project_pk)
| session.add(device)
| session.commit()
| return device
|
|
| def create_data_stream(proj_pk, dev_pk, name, code, data_ty, direct, rule_id, rule_ty):
| """
| 创建data_stream
| :param proj_pk:
| :param dev_pk:
| :param name:
| :param code:
| :param data_ty:
| :param direct:
| :param rule_id:
| :param rule_ty:
| :return:
| """
| ds = TDataStream(C_STREAM_PK=get_pk(),
| C_PROJECT_PK=proj_pk,
| C_STREAM_ID=code,
| C_DATA_TYPE=data_ty,
| C_STREAM_DIR=direct,
| C_NAME=name,
| C_DESCRIPTION='',
| C_RULE_ID=rule_id,
| C_RULE_TYPE=rule_ty)
| session.add(ds)
| link = TDevStream(C_PK=get_pk(), C_DEV_PK=dev_pk, C_STREAM_PK=ds.C_STREAM_PK, C_PROJECT_PK=proj_pk)
| session.add(link)
| session.commit()
| return ds
|
|