Browse Source

集成配置

张保健 4 years ago
parent
commit
d12735b027

+ 156 - 1
controllers/integration_config_api_controller.go View File

@@ -22,6 +22,162 @@ func IntegrationConfigRegistRouters() {
22 22
 	beego.Router("/api/adminhis/edit", &IntegrationConfigApiController{}, "post:EditAdminHis")
23 23
 	beego.Router("/api/adminhis/create", &IntegrationConfigApiController{}, "post:CreateAdminHis")
24 24
 
25
+	beego.Router("/api/patienthis/getinterface", &IntegrationConfigApiController{}, "post:GetInterface")
26
+	beego.Router("/api/patienthis/saveinterface", &IntegrationConfigApiController{}, "post:SaveInterface")
27
+	beego.Router("/api/integration/synclist", &IntegrationConfigApiController{}, "get:GetSyncList")
28
+	beego.Router("/api/integration/sysinspectionlist", &IntegrationConfigApiController{}, "get:GetSysInspectionList")
29
+	beego.Router("/api/patienthis/saveinspectionsysitemid", &IntegrationConfigApiController{}, "post:SaveInspectionSysItemId")
30
+}
31
+
32
+func (c *IntegrationConfigApiController) SaveInspectionSysItemId() {
33
+	adminUserInfo := c.GetAdminUserInfo()
34
+	org_id,_ := c.GetInt64("org_id",0)
35
+	sys_item_id,_ := c.GetInt64("sys_item_id",0)
36
+	id,_ := c.GetInt64("id",0)
37
+	if org_id != adminUserInfo.CurrentOrgId || sys_item_id<= 0 || id <= 0 {
38
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
39
+	}
40
+
41
+	inspection_reference := &models.InspectionReference{
42
+		ID : id,
43
+		SysItemId : sys_item_id,
44
+		UpdatedTime : time.Now().Unix(),
45
+	}
46
+	err := service.UpdateSysItemIdByID(inspection_reference)
47
+	if err != nil {
48
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
49
+	}
50
+	c.ServeSuccessJSON(map[string]interface{}{
51
+		"inspection_reference":  inspection_reference,
52
+	})
53
+	return
54
+}
55
+
56
+func (c *IntegrationConfigApiController) GetSysInspectionList() {
57
+	adminUserInfo := c.GetAdminUserInfo()
58
+	sysInspection,ownerInspection,err := service.GetSysInspectionList(adminUserInfo.CurrentOrgId)
59
+	if err != nil {
60
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
61
+	}
62
+
63
+	type InspectionStruce struct {
64
+		ProjectName string  `gorm:"-" json:"project_name" form:"project_name"`
65
+		ProjectId int64 `gorm:"-" json:"project_id" form:"project_id"`
66
+		InspectionReference []*models.InspectionReference  `gorm:"-" json:"inspection_reference" form:"inspection_reference"`
67
+	}
68
+
69
+	sysInspec := make(map[int64]*InspectionStruce, 0)
70
+	ownerInspec := make(map[int64]*InspectionStruce, 0)
71
+
72
+	
73
+
74
+	for _, item := range sysInspection {
75
+		result := sysInspec[item.ProjectId]
76
+		if result == nil {
77
+			result = new(InspectionStruce)
78
+			result.ProjectName = item.ProjectName
79
+			result.ProjectId = item.ProjectId
80
+		}
81
+		result.InspectionReference = append(result.InspectionReference, item)
82
+		sysInspec[item.ProjectId] = result
83
+	}
84
+
85
+	for _, oitem := range ownerInspection {
86
+		oresult := ownerInspec[oitem.ProjectId]
87
+		if oresult == nil {
88
+			oresult = new(InspectionStruce)
89
+			oresult.ProjectName = oitem.ProjectName
90
+			oresult.ProjectId = oitem.ProjectId
91
+		}
92
+		oresult.InspectionReference = append(oresult.InspectionReference, oitem)
93
+		ownerInspec[oitem.ProjectId] = oresult
94
+	}
95
+
96
+	c.ServeSuccessJSON(map[string]interface{}{
97
+		"sysInspec":  sysInspec,
98
+		"ownerInspec": ownerInspec,
99
+	})
100
+	return
101
+}
102
+
103
+func (c *IntegrationConfigApiController) GetSyncList() {
104
+	page, _ := c.GetInt64("page", 1)
105
+	limit, _ := c.GetInt64("limit", 10)
106
+
107
+	if page <= 0 {
108
+		page = 1
109
+	}
110
+	if limit <= 0 {
111
+		limit = 10
112
+	}
113
+
114
+	adminUserInfo := c.GetAdminUserInfo()
115
+	patients, total, _ := service.GetSyncList(adminUserInfo.CurrentOrgId, page, limit)
116
+
117
+	c.ServeSuccessJSON(map[string]interface{}{
118
+		"list":  patients,
119
+		"total": total,
120
+	})
121
+	return
122
+}
123
+
124
+func (c *IntegrationConfigApiController) SaveInterface() {
125
+	adminUserInfo := c.GetAdminUserInfo()
126
+	ID,_ := c.GetInt64("id",0)
127
+	OrgId := adminUserInfo.CurrentOrgId
128
+	Creater := adminUserInfo.AdminUser.Id 
129
+	Pattern,_ := c.GetInt("pattern",0)		
130
+	Dbhost := c.GetString("dbhost") 
131
+	Dbuser := c.GetString("dbuser")
132
+	Dbpassword := c.GetString("dbpassword") 
133
+	Dbname := c.GetString("dbname")
134
+	InterfaceUrl := c.GetString("interface_url") 
135
+	InterFaceToken := c.GetString("interface_token")
136
+	AllowIp := c.GetString("allow_ip")
137
+	AllowToken := c.GetString("allow_token")		
138
+	SyncFrequency,_ := c.GetInt("sync_frequency")
139
+	Status := 1
140
+	UpdatedTime :=  time.Now().Unix()
141
+	interfaceinfo := &models.MiddleInterface{
142
+		ID  		: ID,
143
+	OrgId   		: OrgId	,
144
+	Creater   		: Creater	,
145
+	Pattern 		: Pattern	,
146
+	Dbhost 			: Dbhost	,
147
+	Dbuser 			: Dbuser	,
148
+	Dbpassword 		: Dbpassword	,
149
+	Dbname 			: Dbname	,
150
+	InterfaceUrl 	: InterfaceUrl	,
151
+	InterFaceToken 	: InterFaceToken	,
152
+	AllowIp 		: AllowIp	,
153
+	AllowToken 		: AllowToken	,
154
+	SyncFrequency 	: SyncFrequency	,
155
+	Status			: Status	,
156
+	UpdatedTime     : UpdatedTime	,
157
+	}
158
+	if ID <= 0 {
159
+		interfaceinfo.CreatedTime =  time.Now().Unix()
160
+	}
161
+	err:= service.SaveInterface(interfaceinfo)
162
+
163
+	if err == nil {
164
+		c.ServeSuccessJSON(map[string]interface{}{
165
+			"interfaceinfo":  interfaceinfo,
166
+		})
167
+	} else {
168
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
169
+	}
170
+	return
171
+}
172
+
173
+func (c *IntegrationConfigApiController) GetInterface() {
174
+	adminUserInfo := c.GetAdminUserInfo()
175
+	interfaceinfo, _ := service.GetInterface(adminUserInfo.CurrentOrgId)
176
+	c.ServeSuccessJSON(map[string]interface{}{
177
+		"interfaceinfo":  interfaceinfo,
178
+	})
179
+	return
180
+
25 181
 }
26 182
 
27 183
 func (c *IntegrationConfigApiController) GetPatientsList() {
@@ -43,7 +199,6 @@ func (c *IntegrationConfigApiController) GetPatientsList() {
43 199
 		"total": total,
44 200
 	})
45 201
 	return
46
-
47 202
 }
48 203
 
49 204
 func (c *IntegrationConfigApiController) EditPatientHis() {

+ 18 - 16
models/inspection_models.go View File

@@ -43,23 +43,25 @@ type Inspections struct {
43 43
 }
44 44
 
45 45
 type InspectionReference struct {
46
-	ID               int64  `gorm:"column:id" json:"id" form:"id"`
47
-	OrgId            int64  `gorm:"column:org_id" json:"org_id" form:"org_id"`
48
-	ProjectName      string `gorm:"column:project_name" json:"project_name" form:"project_name"`
49
-	Project          string `gorm:"column:project" json:"project" form:"project"`
50
-	ProjectId        int64  `gorm:"column:project_id" json:"project_id" form:"project_id"`
51
-	ItemName         string `gorm:"column:item_name" json:"item_name" form:"item_name"`
46
+	ID int64 `gorm:"column:id" json:"id" form:"id"`
47
+	OrgId int64 `gorm:"column:org_id" json:"org_id" form:"org_id"`
48
+	ProjectName string `gorm:"column:project_name" json:"project_name" form:"project_name"`
49
+	Project string `gorm:"column:project" json:"project" form:"project"`
50
+	ProjectId int64 `gorm:"column:project_id" json:"project_id" form:"project_id"`
51
+	ItemName string `gorm:"column:item_name" json:"item_name" form:"item_name"`
52
+	ItemId string `gorm:"column:item_id" json:"item_id" form:"item_id"`
53
+	SysItemId int64 `gorm:"column:sys_item_id" json:"sys_item_id" form:"sys_item_id"`
52 54
 	ItemNameAddition string `gorm:"column:item_name_addition" json:"item_name_addition" form:"item_name_addition"`
53
-	Item             string `gorm:"column:item" json:"item" form:"item"`
54
-	RangeType        int64  `gorm:"column:range_type" json:"range_type" form:"range_type"`
55
-	RangeMin         string `gorm:"column:range_min" json:"range_min" form:"range_min"`
56
-	RangeMax         string `gorm:"column:range_max" json:"range_max" form:"range_max"`
57
-	RangeValue       string `gorm:"column:range_value" json:"range_value" form:"range_value"`
58
-	RangeOptions     string `gorm:"column:range_options" json:"range_options" form:"range_options"`
59
-	Unit             string `gorm:"column:unit" json:"unit" form:"unit"`
60
-	Status           int64  `gorm:"column:status" json:"status" form:"status"`
61
-	CreatedTime      int64  `gorm:"column:created_time" json:"created_time" form:"created_time"`
62
-	UpdatedTime      int64  `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
55
+	Item string `gorm:"column:item" json:"item" form:"item"`
56
+	RangeType int64 `gorm:"column:range_type" json:"range_type" form:"range_type"`
57
+	RangeMin string `gorm:"column:range_min" json:"range_min" form:"range_min"`
58
+	RangeMax string `gorm:"column:range_max" json:"range_max" form:"range_max"`
59
+	RangeValue string `gorm:"column:range_value" json:"range_value" form:"range_value"`
60
+	RangeOptions string `gorm:"column:range_options" json:"range_options" form:"range_options"`
61
+	Unit string `gorm:"column:unit" json:"unit" form:"unit"`
62
+	Status int64 `gorm:"column:status" json:"status" form:"status"`
63
+	CreatedTime int64 `gorm:"column:created_time" json:"created_time" form:"created_time"`
64
+	UpdatedTime int64 `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
63 65
 }
64 66
 
65 67
 func (InspectionReference) TableName() string {

+ 40 - 2
models/intergration_models.go View File

@@ -1,5 +1,45 @@
1 1
 package models
2 2
 
3
+type MiddleSyncInfo struct {
4
+	ID             	int64 `gorm:"column:id" json:"id" form:"id"`
5
+	OrgId       	int64 `gorm:"column:org_id" json:"org_id" form:"org_id"`
6
+	SyncTime       int64 `gorm:"column:sync_time" json:"sync_time" form:"sync_time"`
7
+	SyncResultType  int	  `gorm:"column:sync_result_type" json:"sync_result_type" form:"sync_result_type"`
8
+	SyncRsultRemark string `gorm:"column:sync_result_remark" json:"sync_result_remark" form:"sync_result_remark"`
9
+	SyncTotalNum    int64 `gorm:"column:sync_total_num" json:"sync_total_num" form:"sync_total_num"`
10
+	SyncSuccessNum  int64 `gorm:"column:sync_success_num" json:"sync_success_num" form:"sync_success_num"`
11
+	SyncInfo      	string `gorm:"column:sync_info" json:"sync_info" form:"sync_info"`
12
+	CreateTime      int64 `gorm:"column:create_time" json:"create_time" form:"create_time"`
13
+	UpdateTime    	int64 `gorm:"column:update_time" json:"update_time" form:"update_time"`
14
+}
15
+
16
+func (MiddleSyncInfo) TableName() string {
17
+	return "xt_middle_sync_info"
18
+}
19
+
20
+type MiddleInterface struct {
21
+	ID          	int64  `gorm:"column:id" json:"id" form:"id"`
22
+	OrgId   		int64  `gorm:"column:org_id" json:"org_id" form:"org_id"`
23
+	Creater   		int64 `gorm:"column:creater" json:"creater" form:"creater"`
24
+	Pattern 		int  `gorm:"column:pattern" json:"pattern" form:"pattern"`
25
+	Dbhost 			string  `gorm:"column:dbhost" json:"dbhost" form:"dbhost"`
26
+	Dbuser 			string  `gorm:"column:dbuser" json:"dbuser" form:"dbuser"`
27
+	Dbpassword 		string  `gorm:"column:dbpassword" json:"dbpassword" form:"dbpassword"`
28
+	Dbname 			string  `gorm:"column:dbname" json:"dbname" form:"dbname"`
29
+	InterfaceUrl 	string  `gorm:"column:interface_url" json:"interface_url" form:"interface_url"`
30
+	InterFaceToken 	string  `gorm:"column:interface_token" json:"interface_token" form:"interface_token"`
31
+	AllowIp 		string  `gorm:"column:allow_ip" json:"allow_ip" form:"allow_ip"`
32
+	AllowToken 		string  `gorm:"column:allow_token" json:"allow_token" form:"allow_token"`
33
+	SyncFrequency 	int  `gorm:"column:sync_frequency" json:"sync_frequency" form:"sync_frequency"`
34
+	Status			int  `gorm:"column:status" json:"status" form:"status"`
35
+	CreatedTime     int64   `gorm:"column:created_time" json:"created_time" form:"created_time"`
36
+	UpdatedTime     int64   `gorm:"column:updated_time" json:"updated_time" form:"updated_time"`
37
+}
38
+
39
+func (MiddleInterface) TableName() string {
40
+	return "xt_middle_interface"
41
+}
42
+
3 43
 type VMPatients struct {
4 44
 	ID                           int64                `gorm:"column:id" json:"id" form:"id"`
5 45
 	UserOrgId                    int64                `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
@@ -265,8 +305,6 @@ type VMUserRole struct {
265 305
 	Status           int64  `gorm:"column:status" json:"status" form:"status"`
266 306
 	Ctime            int64  `gorm:"column:ctime" json:"ctime" form:"ctime"`
267 307
 	Mtime            int64  `gorm:"column:mtime" json:"mtime" form:"mtime"`
268
-	Number           int64  `gorm:"column:number" json:"number" form:"number"`
269
-	IsSystem         int64  `gorm:"column:is_system" json:"is_system" form:"is_system"`
270 308
 }
271 309
 
272 310
 func (VMUserRole) TableName() string {

+ 38 - 0
service/integration_service.go View File

@@ -6,6 +6,44 @@ import (
6 6
 	"time"
7 7
 )
8 8
 
9
+func UpdateSysItemIdByID(sysInspection *models.InspectionReference) error {
10
+	db := XTWriteDB()
11
+	err := db.Model(&models.InspectionReference{}).Update(&sysInspection).Error
12
+	return err
13
+}
14
+
15
+func GetSysInspectionList(orgID int64) (sysInspection []*models.InspectionReference,ownerInspection []*models.InspectionReference, err error) {
16
+	db := XTReadDB()
17
+	err = db.Model(&models.InspectionReference{}).Where("org_id= 0 and status=1").Find(&sysInspection).Error
18
+	err = db.Model(&models.InspectionReference{}).Where("org_id= ? and status=1", orgID).Find(&ownerInspection).Error
19
+	return
20
+}
21
+
22
+func GetSyncList(orgID int64, page, limit int64) (patients []*models.MiddleSyncInfo, total int64, err error) {
23
+	//db := MiddleReadDB()
24
+	db := MiddleReadDB()
25
+	offset := (page - 1) * limit
26
+	err = db.Model(&models.MiddleSyncInfo{}).Where("org_id=? ", orgID).Count(&total).Offset(offset).Limit(limit).Find(&patients).Error
27
+	return
28
+}
29
+
30
+func SaveInterface(interfaceinfo *models.MiddleInterface) error {
31
+	db := MiddleWriteDB()
32
+	if (interfaceinfo.ID > 0 ) {
33
+		err := db.Save(&interfaceinfo).Error
34
+		return err
35
+	} else {
36
+		err := db.Create(&interfaceinfo).Error
37
+		return err
38
+	}
39
+}
40
+
41
+func GetInterface(orgID int64) (interfaceinfo models.MiddleInterface, err error){
42
+	db := MiddleReadDB()
43
+	err = db.Model(&models.MiddleInterface{}).Where("org_id=? and status=1", orgID).First(&interfaceinfo).Error
44
+	return
45
+}
46
+
9 47
 func GetIntegrationPatientList(orgID int64, page, limit int64) (patients []*models.VMPatients, total int64, err error) {
10 48
 	//db := MiddleReadDB()
11 49
 	db := readDb.Model(&models.VMPatients{}).Where("status=1")