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
87
88
89
90
91
92
93
94
95
96
| %%%-------------------------------------------------------------------
| %%% @author panse
| %%% @copyright (C) 2018, <COMPANY>
| %%% @doc
| %%%
| %%% @end
| %%% Created : 06. 八月 2018 10:21
| %%%-------------------------------------------------------------------
| -module(person_info_feature).
| -author("panse").
|
|
| %%% 底库
| -record(person_info_feature, {id, feature, create_time, update_time, create_by, img, idcard}).
|
| -include_lib("stdlib/include/ms_transform.hrl").
| -include_lib("stdlib/include/qlc.hrl").
|
| %% API
| -export([create_personFeature/2, add_personFea/5, del_personFea/2]).
| -export([findAllPersonFea/1, personFeaFormat2Mat/1, personNoFeaFormat2Mat/1, findPersonFea/2]).
|
| %%% 人员特征信息
| create_personFeature(Nodes, TableName) ->
| Ret = mnesia:create_table(TableName,
| [{disc_copies, Nodes},
| {attributes, record_info(fields, person_info_feature)},
| {record_name, person_info_feature}
| %% ,{index, [#device_info.id]}
| ]),
| io:format("create_personFea Ret=~p~n", [Ret]),
| syncTool:changeTableConfig(Nodes, TableName),
| %% mnesia:change_table_copy_type(TableName, node(), disc_copies),
| Ret.
|
|
| add_personFea(ID, TableName, Feature, Img, Idcard) ->
| io:format("TableName ~p, Feature ~p ~n", [TableName, Feature]),
| CreateUser = node(),
| F = fun() ->
| mnesia:write(TableName, #person_info_feature{id = ID, feature = Feature, create_time = syncTool:getTimeStr(),
| update_time = syncTool:getTimeStr(), create_by = CreateUser, img = Img, idcard = Idcard}, write)
| end,
| %%#todo try catch
| Ret = mnesia:activity(transaction, F),
| io:format("add_personFea ~p~n", [Ret]),
| if
| Ret == ok ->
| Result = ID;
| true ->
| Result = ''
| end,
| Result.
|
| %%根据id删除记录
| del_personFea(TableName, ID) ->
| mnesia:transaction(
| fun() ->
| mnesia:delete({TableName, ID})
| end).
|
| findAllPersonFea(TableName) ->
| F = fun() ->
| qlc:e(qlc:q([{ID, Feature, CreateTime, UpdateTime, CreateUser, Img, Idcard}
| || #person_info_feature{id = ID, feature = Feature, create_time = CreateTime, update_time = UpdateTime,
| create_by = CreateUser, img = Img, idcard = Idcard} <- mnesia:table(TableName)]))
| end,
| mnesia:activity(transaction, F).
|
| personFeaFormat2Mat([]) ->
| [];
| personFeaFormat2Mat(_ExpertiseList = [AREC | T]) ->
| TemMaps = #{"id" => element(1, AREC), "feature" => element(2, AREC), "create_time" => element(3, AREC),
| "update_time" => element(4, AREC), "create_by" => element(5, AREC), "img" => element(6, AREC),
| "idcard" => element(7, AREC)
| },
| [maps:to_list(TemMaps) | personFeaFormat2Mat(T)].
|
|
| personNoFeaFormat2Mat([]) ->
| [];
| personNoFeaFormat2Mat(_ExpertiseList = [AREC | T]) ->
| TemMaps = #{"id" => element(1, AREC), "create_time" => element(3, AREC),
| "update_time" => element(4, AREC), "create_by" => element(5, AREC), "img" => element(6, AREC),
| "idcard" => element(7, AREC)
| },
| [maps:to_list(TemMaps) | personNoFeaFormat2Mat(T)].
|
| %%#todo return ->map ->list
| findPersonFea(TableName, Expertise) ->
| F = fun() ->
| qlc:e(qlc:q([{ID, Feature, CreateTime, UpdateTime, CreateUser, Img, Idcard}
| || #person_info_feature{id = ID, feature = Feature, create_time = CreateTime, update_time = UpdateTime,
| create_by = CreateUser, img = Img, idcard = Idcard} <- mnesia:table(TableName), ID =:= Expertise]))
| end,
| mnesia:activity(transaction, F).
|
|