进出入完善组织机构并加入导入人员和机构功能
554325746@qq.com
2019-08-07 07a66e53d2b4126c2004870d81a379d8ef0071da
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
%%%-------------------------------------------------------------------
%%% @author bsk
%%% @copyright (C) 2018, <COMPANY>
%%% @doc
%%%
%%% @end
%%% Created : 12. 十一月 2018 下午5:35
%%%-------------------------------------------------------------------
-module(clusterInfo).
-author("bsk").
 
-record(cluster_info, {cluster_id, cluster_name, create_time, update_time, create_by}).
 
-include_lib("stdlib/include/ms_transform.hrl").
-include_lib("stdlib/include/qlc.hrl").
 
%% API
%%% 创建,增,删,改,查
-export([create_ClusterInfoTable/2, add_ClusterInfo/2, del_ClusterInfo/1, findClusterInfo/1, findClusterInfo/2]).
%%% 集群信息,数据格式转换
-export([clusterInfoList2Maps/1]).
 
%%% 创建集群信息表
%%% 应仅在集群初始化的时候调用一次
create_ClusterInfoTable(Nodes, TableName) ->
  Ret = mnesia:create_table(TableName,
    [{disc_copies, Nodes},
      {attributes,
        record_info(fields, cluster_info)}
    ]),
  io:format("create_ClusterInfoTable Ret=~p~n", [Ret]),
%%  todo
%%  syncTool:changeTableConfig(Nodes, TableName),
%%  mnesia:change_table_copy_type(TableName, node(), disc_copies),
  Ret.
 
 
%%% 增加集群信息
%%%
%%% @CluId 集群id
%%% @CluName 集群名称
add_ClusterInfo(CluId, CluName) ->
  CreateTime = syncTool:getTimeStr(),
  UpdateTime = syncTool:getTimeStr(),
  CreateUser = node(),
  F = fun() ->
    mnesia:write(#cluster_info{cluster_id = CluId, cluster_name = CluName, create_time = CreateTime,
      update_time = UpdateTime, create_by = CreateUser})
      end,
  mnesia:activity(transaction, F).
 
%%% 物理删除
del_ClusterInfo(CluId) ->
  mnesia:transaction(
    fun() ->
      mnesia:delete({cluster_info, CluId})
    end).
 
%%% 查询集群信息
%%% @TableName 表名
%%% @Expertise 约束条件的值
findClusterInfo(TableName, Expertise) ->
  F = fun() ->
    qlc:eval(qlc:q([{CluId, CluName, CreateTime, UpdateTime, CreateUser}
      || #cluster_info{cluster_id = CluId, cluster_name = CluName, create_time = CreateTime, update_time = UpdateTime,
        create_by = CreateUser}
        <- mnesia:table(TableName), CluId =:= Expertise]))
      end,
  mnesia:activity(transaction, F).
 
 
findClusterInfo(TableName) ->
  F = fun() ->
    qlc:eval(qlc:q([{CluId, CluName, CreateTime, UpdateTime, CreateUser}
      || #cluster_info{cluster_id = CluId, cluster_name = CluName, create_time = CreateTime, update_time = UpdateTime,
        create_by = CreateUser}
        <- mnesia:table(TableName)]))
      end,
  mnesia:activity(transaction, F).
 
 
%%% 集群信息list转map转list
clusterInfoList2Maps([]) ->
  [];
clusterInfoList2Maps(_ExpertiseList = [Info | T]) ->
  TemMaps = #{"cluster_id" => element(1, Info), "cluster_name" => element(2, Info), "create_time" => element(3, Info),
    "update_time" => element(4, Info), "create_by" => element(5, Info)
    %      -record(cluster_info, {cluster_id, cluster_name, create_time, update_time, create_by}).
  },
  [maps:to_list(TemMaps) | clusterInfoList2Maps(T)].