Browse Source

Merge branch 'master' of http://git.shengws.com/csx/gdyb

csx 3 years ago
parent
commit
d7fc20b356
4 changed files with 567 additions and 139 deletions
  1. 493 100
      controllers/sg/his_api_controller.go
  2. 56 35
      models/his_models.go
  3. 3 3
      service/gdyb_service.go
  4. 15 1
      service/his_service.go

+ 493 - 100
controllers/sg/his_api_controller.go View File

@@ -71,7 +71,7 @@ func HisManagerApiRegistRouters() {
71 71
 
72 72
 	//beego.Router("/api/reversal/one", &HisApiController{}, "get:ReversalOtherOneData")
73 73
 
74
-	//beego.Router("/api/settlelist/get", &HisApiController{}, "get:GetSettleList")
74
+	beego.Router("/api/settlelist/get", &HisApiController{}, "get:GetSettleList")
75 75
 
76 76
 }
77 77
 
@@ -80,104 +80,474 @@ type CustomFundPay struct {
80 80
 	FundPayamt  float64 `json:"fund_payamt"`
81 81
 }
82 82
 
83
-//func (c *HisApiController) GetSettleList() {
84
-//	order_id, _ := c.GetInt64("order_id")
85
-//	order, _ := service.GetHisOrderByIDTwo(order_id)
86
-//
87
-//	roles, _ := service.GetDoctorListTwo(c.GetAdminUserInfo().CurrentOrgId)
88
-//
89
-//	admin, _ := service.GetAdminUserByUserID(roles[0].AdminUserId)
90
-//	admin_user_id, _ := c.GetInt64("admin_user_id")
91
-//	curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
92
-//
93
-//	depart, _ := service.GetDepartMentDetail(curRoles.DepartmentId)
94
-//
95
-//	miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
96
-//
97
-//	if order.ID == 0 {
98
-//		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisOrderNoExistParamWrong)
99
-//		return
100
-//	}
101
-//	struct4101 := &service.Struct4101{
102
-//		PsnNo:          order.PsnNo,
103
-//		MdtrtId:        order.MdtrtId,
104
-//		SetlId:         order.SetlId,
105
-//		PsnName:        order.PsnName,
106
-//		Gend:           order.Gend,
107
-//		Brdy:           order.HisPatient.Brdy,
108
-//		Naty:           order.Naty,
109
-//		PatnCertType:   order.MdtrtCertType,
110
-//		Certno:         order.Certno,
111
-//		Prfs:           "90",
112
-//		ConerName:      roles[0].UserName,
113
-//		PatnRlts:       "99",
114
-//		ConerAddr:      miConfig.OrgName,
115
-//		ConerTel:       admin.Mobile,
116
-//		HiType:         order.Insutype,
117
-//		Insuplc:        miConfig.InsuplcAdmdvs,
118
-//		MaindiagFlag:   "1",
119
-//		BillCode:       "",
120
-//		BizSn:          "",
121
-//		BillNo:         "",
122
-//		PsnSelfPay:     order.PsnPartAmt,
123
-//		PsnOwnPay:      order.PsnPartAmt,
124
-//		AcctPay:        order.AcctPay,
125
-//		PsnCashpay:     order.PsnCashPay,
126
-//		HiPaymtd:       "1",
127
-//		Hsorg:          "医保中心",
128
-//		HsorgOpter:     "医保中心",
129
-//		MedinsFillPsn:  curRoles.UserName,
130
-//		MedinsFillDept: depart.Name,
131
-//	}
132
-//	if order.SettleType == 1 {
133
-//		t := time.Unix(int64(order.SettleAccountsDate), 0)
134
-//		dateStr := t.Format("2006-01-02")
135
-//		struct4101.SetlBegnDate = dateStr
136
-//		struct4101.SetlEndDate = dateStr
137
-//	} else {
138
-//		t := time.Unix(int64(order.SettleStartTime), 0)
139
-//		t2 := time.Unix(int64(order.SettleEndTime), 0)
140
-//		dateStartStr := t.Format("2006-01-02")
141
-//		dateEndStr := t2.Format("2006-01-02")
142
-//		struct4101.SetlBegnDate = dateStartStr
143
-//		struct4101.SetlEndDate = dateEndStr
144
-//	}
145
-//
146
-//	var rf []*CustomFundPay
147
-//	json.Unmarshal([]byte(order.SetlDetail), &rf)
148
-//
149
-//	for _, item := range rf {
150
-//		var  tempFunPay service.CustomStruct
151
-//		tempFunPay.FundPayamt = item.FundPayamt
152
-//		tempFunPay.FundPayType = item.FundPayType
153
-//		struct4101.CustomStruct = append(struct4101.CustomStruct,tempFunPay)
154
-//	}
155
-//
156
-//	var  tempOpspdiseinfo service.OpspdiseinfoStruct
157
-//
158
-//	tempOpspdiseinfo.DiagCode = "M07801"
159
-//	tempOpspdiseinfo.DiagName = ""
160
-//	tempOpspdiseinfo.MaindiagFlag = "1"
161
-//	tempOpspdiseinfo.OprnOprtCode = ""
162
-//	tempOpspdiseinfo.OprnOprtName = ""
163
-//	struct4101.OpspdiseinfoStruct = append(struct4101.OpspdiseinfoStruct,tempOpspdiseinfo)
164
-//
165
-//	var  iteminfo service.IteminfoStruct
166
-//
167
-//
168
-//	for _, item := range order.HisOrderInfo{
169
-//
170
-//		iteminfo.MedChrgitm = item.MedChrgitmType
171
-//		iteminfo.Amt = item.DetItemFeeSumamt
172
-//		iteminfo.ClaaSumfee = item.
173
-//
174
-//	}
175
-//
176
-//
177
-//
178
-//	service.Gdyb4101()
179
-//
180
-//}
83
+func (c *HisApiController) GetSettleList() {
84
+	order_id, _ := c.GetInt64("order_id")
85
+	admin_user_id, _ := c.GetInt64("admin_user_id")
86
+
87
+	order, _ := service.GetHisOrderByIDTwo(order_id)
88
+	roles, _ := service.GetDoctorListTwo(c.GetAdminUserInfo().CurrentOrgId)
89
+	his, _ := service.GetHisPatientByNumber(order.MdtrtId)
90
+	admin, _ := service.GetAdminUserByUserID(roles[0].AdminUserId)
91
+	curRoles, _ := service.GetAdminUserInfoByID(c.GetAdminUserInfo().CurrentOrgId, admin_user_id)
92
+	depart, _ := service.GetDepartMentDetail(curRoles.DepartmentId)
93
+	miConfig, _ := service.FindMedicalInsuranceInfo(c.GetAdminUserInfo().CurrentOrgId)
94
+
95
+	if order.ID == 0 {
96
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeHisOrderNoExistParamWrong)
97
+		return
98
+	}
99
+	struct4101 := &service.Struct4101{
100
+		PsnNo:          order.PsnNo,
101
+		MdtrtId:        order.MdtrtId,
102
+		SetlId:         order.SetlId,
103
+		PsnName:        order.PsnName,
104
+		Gend:           order.Gend,
105
+		Brdy:           order.HisPatient.Brdy,
106
+		Naty:           order.Naty,
107
+		PatnCertType:   order.MdtrtCertType,
108
+		Certno:         order.Certno,
109
+		Prfs:           "90",
110
+		ConerName:      roles[0].UserName,
111
+		PatnRlts:       "99",
112
+		ConerAddr:      miConfig.OrgName,
113
+		ConerTel:       admin.Mobile,
114
+		HiType:         order.Insutype,
115
+		Insuplc:        miConfig.InsuplcAdmdvs,
116
+		MaindiagFlag:   "1",
117
+		BillCode:       "",
118
+		BizSn:          "",
119
+		BillNo:         "",
120
+		PsnSelfPay:     order.PsnPartAmt,
121
+		PsnOwnPay:      order.PsnPartAmt,
122
+		AcctPay:        order.AcctPay,
123
+		PsnCashpay:     order.PsnCashPay,
124
+		HiPaymtd:       "1",
125
+		Hsorg:          "医保中心",
126
+		HsorgOpter:     "医保中心",
127
+		MedinsFillPsn:  curRoles.UserName,
128
+		MedinsFillDept: depart.Name,
129
+	}
130
+	if order.SettleType == 1 {
131
+		t := time.Unix(int64(order.SettleAccountsDate), 0)
132
+		dateStr := t.Format("2006-01-02")
133
+		struct4101.SetlBegnDate = dateStr
134
+		struct4101.SetlEndDate = dateStr
135
+	} else {
136
+		t := time.Unix(int64(order.SettleStartTime), 0)
137
+		t2 := time.Unix(int64(order.SettleEndTime), 0)
138
+		dateStartStr := t.Format("2006-01-02")
139
+		dateEndStr := t2.Format("2006-01-02")
140
+		struct4101.SetlBegnDate = dateStartStr
141
+		struct4101.SetlEndDate = dateEndStr
142
+	}
143
+
144
+	var rf []*CustomFundPay
145
+	json.Unmarshal([]byte(order.SetlDetail), &rf)
146
+
147
+	for _, item := range rf {
148
+		var tempFunPay service.CustomStruct
149
+		tempFunPay.FundPayamt = item.FundPayamt
150
+		tempFunPay.FundPayType = item.FundPayType
151
+		struct4101.CustomStruct = append(struct4101.CustomStruct, tempFunPay)
152
+	}
153
+	var tempOpspdiseinfo service.OpspdiseinfoStruct
154
+	sickConfig, _ := service.FindSickById(his.SickType)
155
+
156
+	tempOpspdiseinfo.DiagCode = sickConfig.CountryCode
157
+	tempOpspdiseinfo.DiagName = sickConfig.CountryContentName
158
+	tempOpspdiseinfo.MaindiagFlag = "1"
159
+	tempOpspdiseinfo.OprnOprtCode = ""
160
+	tempOpspdiseinfo.OprnOprtName = ""
161
+	struct4101.OpspdiseinfoStruct = append(struct4101.OpspdiseinfoStruct, tempOpspdiseinfo)
162
+
163
+	var iteminfo service.IteminfoStruct
164
+
165
+	var bedCostTotal float64 = 0         //床位总费
166
+	var bedCostSelfTotal float64 = 0     //床位自费
167
+	var bedCostPartSelfTotal float64 = 0 //床位部分项目自费
168
+
169
+	var operationCostTotal float64 = 0         //手术费
170
+	var operationCostSelfTotal float64 = 0     //手术费
171
+	var operationCostPartSelfTotal float64 = 0 //手术费
172
+
173
+	var otherCostTotal float64 = 0         //其他费用
174
+	var otherCostSelfTotal float64 = 0     //其他费用
175
+	var otherCostPartSelfTotal float64 = 0 //其他费用
176
+
177
+	var materialCostTotal float64 = 0         //材料费
178
+	var materialCostSelfTotal float64 = 0     //材料费
179
+	var materialCostPartSelfTotal float64 = 0 //材料费
180
+
181
+	var westernMedicineCostTotal float64 = 0         //西药费
182
+	var westernMedicineCostSelfTotal float64 = 0     //西药费
183
+	var westernMedicineCostPartSelfTotal float64 = 0 //西药费
184
+
185
+	var chineseTraditionalMedicineCostTotal float64 = 0         //中成药
186
+	var chineseTraditionalMedicineCostSelfTotal float64 = 0     //中成药
187
+	var chineseTraditionalMedicineCostPartSelfTotal float64 = 0 //中成药
188
+
189
+	var checkCostTotal float64 = 0         //检查费
190
+	var checkCostSelfTotal float64 = 0     //检查费
191
+	var checkCostPartSelfTotal float64 = 0 //检查费
192
+
193
+	var laboratoryCostTotal float64 = 0         //化验费
194
+	var laboratoryCostSelfTotal float64 = 0     //化验费
195
+	var laboratoryCostPartSelfTotal float64 = 0 //化验费
196
+
197
+	var treatCostTotal float64 = 0         //治疗费用
198
+	var treatCostSelfTotal float64 = 0     //治疗费用
199
+	var treatCostPartSelfTotal float64 = 0 //治疗费用
200
+
201
+	decimal.DivisionPrecision = 2
202
+
203
+	var bed_fulamt_ownpay_amt float64 = 0
204
+	var operation_fulamt_ownpay_amt float64 = 0
205
+	var other_fulamt_ownpay_amt float64 = 0
206
+	var westernMedicine_fulamt_ownpay_amt float64 = 0
207
+	var chineseTraditional_fulamt_ownpay_amt float64 = 0
208
+	var check_fulamt_ownpay_amt float64 = 0
209
+	var material_fulamt_ownpay_amt float64 = 0
210
+	var laboratory_fulamt_ownpay_amt float64 = 0
211
+	var treat_fulamt_ownpay_amt float64 = 0
212
+
213
+	var bed_claa_sunmfee float64 = 0
214
+	var bed_clab_amt float64 = 0
215
+	var bed_other_amt float64 = 0
216
+
217
+	var operation_claa_sunmfee float64 = 0
218
+	var operation_clab_amt float64 = 0
219
+	var operation_other_amt float64 = 0
220
+
221
+	var other_claa_sunmfee float64 = 0
222
+	var other_clab_amt float64 = 0
223
+	var other_other_amt float64 = 0
224
+
225
+	var westernMedicine_claa_sunmfee float64 = 0
226
+	var westernMedicine_clab_amt float64 = 0
227
+	var westernMedicine_other_amt float64 = 0
228
+
229
+	var chineseTraditional_claa_sunmfee float64 = 0
230
+	var chineseTraditional_clab_amt float64 = 0
231
+	var chineseTraditional_other_amt float64 = 0
232
+
233
+	var check_claa_sunmfee float64 = 0
234
+	var check_clab_amt float64 = 0
235
+	var check_other_amt float64 = 0
236
+
237
+	var material_claa_sunmfee float64 = 0
238
+	var material_clab_amt float64 = 0
239
+	var material_other_amt float64 = 0
240
+
241
+	var laboratory_claa_sunmfee float64 = 0
242
+	var laboratory_clab_amt float64 = 0
243
+	var laboratory_other_amt float64 = 0
244
+
245
+	var treat_claa_sunmfee float64 = 0
246
+	var treat_clab_amt float64 = 0
247
+	var treat_other_amt float64 = 0
248
+
249
+	for _, item := range order.HisOrderInfo {
250
+		if item.MedChrgitmType == "01" { //床位费
251
+			bedCostTotal, _ = decimal.NewFromFloat(bedCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
252
+			bedCostSelfTotal, _ = decimal.NewFromFloat(bedCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
253
+			bedCostPartSelfTotal, _ = decimal.NewFromFloat(bedCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
254
+			bed_fulamt_ownpay_amt, _ = decimal.NewFromFloat(bed_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
255
+			if item.ChrgitmLv == "1" {
256
+				bed_claa_sunmfee, _ = decimal.NewFromFloat(bed_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
257
+			}
258
+			if item.ChrgitmLv == "2" {
259
+				bed_clab_amt, _ = decimal.NewFromFloat(bed_clab_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
260
+
261
+			}
262
+			if item.ChrgitmLv == "3" {
263
+				bed_other_amt, _ = decimal.NewFromFloat(bed_other_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
264
+			}
265
+
266
+		}
267
+
268
+		if item.MedChrgitmType == "03" { //检查费
269
+			checkCostTotal, _ = decimal.NewFromFloat(checkCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
270
+			checkCostSelfTotal, _ = decimal.NewFromFloat(checkCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
271
+			checkCostPartSelfTotal, _ = decimal.NewFromFloat(checkCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
272
+			check_fulamt_ownpay_amt, _ = decimal.NewFromFloat(check_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
273
+			if item.ChrgitmLv == "1" {
274
+
275
+				check_claa_sunmfee, _ = decimal.NewFromFloat(check_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
276
+
277
+			}
278
+			if item.ChrgitmLv == "2" {
279
+				check_clab_amt, _ = decimal.NewFromFloat(check_clab_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
280
+
281
+			}
282
+			if item.ChrgitmLv == "3" {
283
+				check_other_amt, _ = decimal.NewFromFloat(check_other_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
284
+			}
285
+		}
286
+
287
+		if item.MedChrgitmType == "04" { //化验费
288
+			laboratoryCostTotal, _ = decimal.NewFromFloat(laboratoryCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
289
+			laboratoryCostSelfTotal, _ = decimal.NewFromFloat(laboratoryCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
290
+			laboratoryCostPartSelfTotal, _ = decimal.NewFromFloat(laboratoryCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
291
+			laboratory_fulamt_ownpay_amt, _ = decimal.NewFromFloat(laboratory_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
292
+			if item.ChrgitmLv == "1" {
293
+
294
+				laboratory_claa_sunmfee, _ = decimal.NewFromFloat(laboratory_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
295
+
296
+			}
297
+			if item.ChrgitmLv == "2" {
298
+				laboratory_clab_amt, _ = decimal.NewFromFloat(laboratory_clab_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
299
+
300
+			}
301
+			if item.ChrgitmLv == "3" {
302
+				laboratory_other_amt, _ = decimal.NewFromFloat(laboratory_other_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
303
+			}
304
+		}
305
+
306
+		if item.MedChrgitmType == "05" { //治疗费
307
+			treatCostTotal, _ = decimal.NewFromFloat(treatCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
308
+			treatCostSelfTotal, _ = decimal.NewFromFloat(treatCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
309
+			treatCostPartSelfTotal, _ = decimal.NewFromFloat(treatCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
310
+			treat_fulamt_ownpay_amt, _ = decimal.NewFromFloat(treat_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
311
+			if item.ChrgitmLv == "1" {
312
+
313
+				treat_claa_sunmfee, _ = decimal.NewFromFloat(treat_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
314
+
315
+			}
316
+			if item.ChrgitmLv == "2" {
317
+				treat_clab_amt, _ = decimal.NewFromFloat(treat_clab_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
318
+
319
+			}
320
+			if item.ChrgitmLv == "3" {
321
+				treat_other_amt, _ = decimal.NewFromFloat(treat_other_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
322
+			}
323
+		}
324
+
325
+		if item.MedChrgitmType == "06" { //手术费
326
+			operationCostTotal, _ = decimal.NewFromFloat(operationCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
327
+			operationCostSelfTotal, _ = decimal.NewFromFloat(operationCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
328
+			operationCostPartSelfTotal, _ = decimal.NewFromFloat(operationCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
329
+			operation_fulamt_ownpay_amt, _ = decimal.NewFromFloat(operation_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
330
+
331
+			if item.ChrgitmLv == "1" {
332
+
333
+				operation_claa_sunmfee, _ = decimal.NewFromFloat(operation_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
334
+
335
+			}
336
+			if item.ChrgitmLv == "2" {
337
+				operation_clab_amt, _ = decimal.NewFromFloat(operation_clab_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
338
+
339
+			}
340
+			if item.ChrgitmLv == "3" {
341
+				operation_other_amt, _ = decimal.NewFromFloat(operation_other_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
342
+			}
343
+		}
344
+
345
+		if item.MedChrgitmType == "08" { //材料费
346
+			materialCostTotal, _ = decimal.NewFromFloat(materialCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
347
+			materialCostSelfTotal, _ = decimal.NewFromFloat(materialCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
348
+			materialCostPartSelfTotal, _ = decimal.NewFromFloat(materialCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
349
+			material_fulamt_ownpay_amt, _ = decimal.NewFromFloat(material_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
350
+			if item.ChrgitmLv == "1" {
351
+
352
+				material_claa_sunmfee, _ = decimal.NewFromFloat(material_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
353
+
354
+			}
355
+			if item.ChrgitmLv == "2" {
356
+				material_clab_amt, _ = decimal.NewFromFloat(material_clab_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
357
+
358
+			}
359
+			if item.ChrgitmLv == "3" {
360
+				material_other_amt, _ = decimal.NewFromFloat(material_other_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
361
+			}
362
+		}
363
+
364
+		if item.MedChrgitmType == "09" { //西药费
365
+			westernMedicineCostTotal, _ = decimal.NewFromFloat(westernMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
366
+			westernMedicineCostSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
367
+			westernMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(westernMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
368
+			westernMedicine_fulamt_ownpay_amt, _ = decimal.NewFromFloat(westernMedicine_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
369
+			if item.ChrgitmLv == "1" {
370
+
371
+				westernMedicine_claa_sunmfee, _ = decimal.NewFromFloat(westernMedicine_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
372
+
373
+			}
374
+			if item.ChrgitmLv == "2" {
375
+				westernMedicine_clab_amt, _ = decimal.NewFromFloat(westernMedicine_clab_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
376
+
377
+			}
378
+			if item.ChrgitmLv == "3" {
379
+				westernMedicine_other_amt, _ = decimal.NewFromFloat(westernMedicine_other_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
380
+			}
381
+		}
382
+
383
+		if item.MedChrgitmType == "11" { //中成费
384
+			chineseTraditionalMedicineCostTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
385
+			chineseTraditionalMedicineCostSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
386
+			chineseTraditionalMedicineCostPartSelfTotal, _ = decimal.NewFromFloat(chineseTraditionalMedicineCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
387
+			chineseTraditional_fulamt_ownpay_amt, _ = decimal.NewFromFloat(chineseTraditional_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
388
+			if item.ChrgitmLv == "1" {
389
+
390
+				chineseTraditional_claa_sunmfee, _ = decimal.NewFromFloat(chineseTraditional_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
391
+
392
+			}
393
+			if item.ChrgitmLv == "2" {
394
+				chineseTraditional_clab_amt, _ = decimal.NewFromFloat(chineseTraditional_clab_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
395
+
396
+			}
397
+			if item.ChrgitmLv == "3" {
398
+				chineseTraditional_other_amt, _ = decimal.NewFromFloat(chineseTraditional_other_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
399
+			}
400
+		}
401
+
402
+		if item.MedChrgitmType == "14" { //其他费
403
+			otherCostTotal, _ = decimal.NewFromFloat(otherCostTotal).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
404
+			otherCostSelfTotal, _ = decimal.NewFromFloat(otherCostSelfTotal).Add(decimal.NewFromFloat(item.OverlmtAmt)).Float64()
405
+			otherCostPartSelfTotal, _ = decimal.NewFromFloat(otherCostPartSelfTotal).Add(decimal.NewFromFloat(item.PreselfpayAmt)).Float64()
406
+			other_fulamt_ownpay_amt, _ = decimal.NewFromFloat(other_fulamt_ownpay_amt).Add(decimal.NewFromFloat(item.FulamtOwnpayAmt)).Float64()
407
+			if item.ChrgitmLv == "1" {
408
+				other_claa_sunmfee, _ = decimal.NewFromFloat(other_claa_sunmfee).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
409
+
410
+			}
411
+			if item.ChrgitmLv == "2" {
412
+				other_clab_amt, _ = decimal.NewFromFloat(other_clab_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
413
+
414
+			}
415
+			if item.ChrgitmLv == "3" {
416
+				other_other_amt, _ = decimal.NewFromFloat(other_other_amt).Add(decimal.NewFromFloat(item.DetItemFeeSumamt)).Float64()
417
+			}
418
+		}
419
+
420
+	}
421
+
422
+	if bedCostTotal != 0 {
423
+		iteminfo.MedChrgitm = "01"
424
+		iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt
425
+		iteminfo.Amt = bedCostTotal
426
+		iteminfo.ClaaSumfee = bed_claa_sunmfee
427
+		iteminfo.ClabAmt = bed_clab_amt
428
+		iteminfo.OthAmt = bed_other_amt
429
+		struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
430
+	}
431
+
432
+	if checkCostTotal != 0 {
433
+		iteminfo.MedChrgitm = "03"
434
+		iteminfo.FulamtOwnpayAmt = check_fulamt_ownpay_amt
435
+		iteminfo.Amt = checkCostTotal
436
+		iteminfo.ClaaSumfee = check_claa_sunmfee
437
+		iteminfo.ClabAmt = check_clab_amt
438
+		iteminfo.OthAmt = check_other_amt
439
+		struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
440
+
441
+	}
442
+
443
+	if laboratoryCostTotal != 0 {
444
+		iteminfo.MedChrgitm = "04"
445
+		iteminfo.FulamtOwnpayAmt = laboratory_fulamt_ownpay_amt
446
+		iteminfo.Amt = laboratoryCostTotal
447
+		iteminfo.ClaaSumfee = laboratory_claa_sunmfee
448
+		iteminfo.ClabAmt = laboratory_clab_amt
449
+		iteminfo.OthAmt = laboratory_other_amt
450
+		struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
451
+
452
+	}
453
+
454
+	if treatCostTotal != 0 {
455
+		iteminfo.MedChrgitm = "05"
456
+		iteminfo.FulamtOwnpayAmt = treat_fulamt_ownpay_amt
457
+		iteminfo.Amt = treatCostTotal
458
+		iteminfo.ClaaSumfee = treat_claa_sunmfee
459
+		iteminfo.ClabAmt = treat_clab_amt
460
+		iteminfo.OthAmt = treat_other_amt
461
+		struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
462
+
463
+	}
464
+
465
+	if operationCostTotal != 0 {
466
+		iteminfo.MedChrgitm = "06"
467
+		iteminfo.FulamtOwnpayAmt = bed_fulamt_ownpay_amt
468
+		iteminfo.Amt = operationCostTotal
469
+		iteminfo.ClaaSumfee = operation_claa_sunmfee
470
+		iteminfo.ClabAmt = operation_clab_amt
471
+		iteminfo.OthAmt = operation_other_amt
472
+		struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
473
+
474
+	}
475
+
476
+	if materialCostTotal != 0 {
477
+		iteminfo.MedChrgitm = "08"
478
+		iteminfo.FulamtOwnpayAmt = material_fulamt_ownpay_amt
479
+		iteminfo.Amt = materialCostTotal
480
+		iteminfo.ClaaSumfee = material_claa_sunmfee
481
+		iteminfo.ClabAmt = material_clab_amt
482
+		iteminfo.OthAmt = material_other_amt
483
+		struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
484
+	}
485
+	if westernMedicineCostTotal != 0 {
486
+		iteminfo.MedChrgitm = "09"
487
+		iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt
488
+		iteminfo.Amt = westernMedicineCostTotal
489
+		iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee
490
+		iteminfo.ClabAmt = westernMedicine_clab_amt
491
+		iteminfo.OthAmt = westernMedicine_other_amt
492
+		struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
493
+	}
494
+	if chineseTraditionalMedicineCostTotal != 0 {
495
+		iteminfo.MedChrgitm = "11"
496
+		iteminfo.FulamtOwnpayAmt = westernMedicine_fulamt_ownpay_amt
497
+		iteminfo.Amt = westernMedicineCostTotal
498
+		iteminfo.ClaaSumfee = westernMedicine_claa_sunmfee
499
+		iteminfo.ClabAmt = westernMedicine_clab_amt
500
+		iteminfo.OthAmt = westernMedicine_other_amt
501
+		struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
502
+	}
503
+	if otherCostTotal != 0 {
504
+		iteminfo.MedChrgitm = "14"
505
+		iteminfo.FulamtOwnpayAmt = other_fulamt_ownpay_amt
506
+		iteminfo.Amt = otherCostTotal
507
+		iteminfo.ClaaSumfee = other_claa_sunmfee
508
+		iteminfo.ClabAmt = other_clab_amt
509
+		iteminfo.OthAmt = other_other_amt
510
+		struct4101.IteminfoStruct = append(struct4101.IteminfoStruct, iteminfo)
511
+	}
512
+	result := service.Gdyb4101(struct4101, miConfig.SecretKey, miConfig.OrgName, curRoles.UserName, miConfig.Code, miConfig.InsuplcAdmdvs, miConfig.MdtrtareaAdmvs)
513
+	fmt.Println(result)
514
+
515
+	var dat map[string]interface{}
516
+	if err := json.Unmarshal([]byte(result), &dat); err == nil {
517
+		fmt.Println(dat)
518
+	} else {
519
+		fmt.Println(err)
520
+	}
521
+	userJSONBytes, _ := json.Marshal(dat)
522
+	var res ResultSeventeen
523
+	if err := json.Unmarshal(userJSONBytes, &res); err != nil {
524
+		utils.ErrorLog("解析失败:%v", err)
525
+		c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDataException)
526
+		return
527
+	}
528
+	if res.Infcode == -1 {
529
+		c.ServeSuccessJSON(map[string]interface{}{
530
+			"failed_code": -10,
531
+			"msg":         res.ErrMsg,
532
+		})
533
+		return
534
+	} else {
535
+		hisFundSettleListResult := &models.HisFundSettleListResult{
536
+			Number:    res.Output.Data.SetlListId,
537
+			Status:    1,
538
+			Ctime:     time.Now().Unix(),
539
+			Mtime:     time.Now().Unix(),
540
+			UserOrgId: c.GetAdminUserInfo().CurrentOrgId,
541
+			IsUpload:  1,
542
+		}
543
+		service.CreateUploadRecord(hisFundSettleListResult)
544
+		c.ServeSuccessJSON(map[string]interface{}{
545
+			"msg":    "上传成功",
546
+			"result": hisFundSettleListResult,
547
+		})
548
+		return
549
+	}
550
+}
181 551
 
182 552
 func (c *HisApiController) TestGetBasBaseInfo() {
183 553
 	DllDef := syscall.MustLoadDLL("SSCard.dll")
@@ -1031,6 +1401,21 @@ type ResultSixteen struct {
1031 1401
 	WarnMsg     interface{} `json:"warn_msg"`
1032 1402
 }
1033 1403
 
1404
+type ResultSeventeen struct {
1405
+	ErrMsg      string `json:"err_msg"`
1406
+	InfRefmsgid string `json:"inf_refmsgid"`
1407
+	Infcode     int64  `json:"infcode"`
1408
+	Output      struct {
1409
+		Data struct {
1410
+			SetlListId string `json:"setl_list_id"`
1411
+		} `json:"data"`
1412
+	} `json:"output"`
1413
+	RefmsgTime  string `json:"refmsg_time"`
1414
+	RespondTime string `json:"respond_time"`
1415
+	Signtype    string `json:"signtype"`
1416
+	WarnInfo    string `json:"warn_info"`
1417
+}
1418
+
1034 1419
 type Custom struct {
1035 1420
 	DetItemFeeSumamt string
1036 1421
 	Cut              string
@@ -1179,6 +1564,8 @@ func (c *HisApiController) GetRegisterInfo() {
1179 1564
 				IdCardType:             id_card_type,
1180 1565
 				Doctor:                 doctor,
1181 1566
 				Departments:            department,
1567
+				SickType:               sick_type,
1568
+				Diagnosis:              diagnosis_id,
1182 1569
 			}
1183 1570
 
1184 1571
 			timestamp := time.Now().Unix()
@@ -3465,10 +3852,12 @@ func (c *HisApiController) GetSettleAccounts() {
3465 3852
 	//}
3466 3853
 	//recordDateTime := theTime.Unix()
3467 3854
 	adminUser := c.GetAdminUserInfo()
3468
-	//his, _ := service.GetVMHisPatientInfo(adminUser.CurrentOrgId, id, recordDateTime)
3469 3855
 	order, _ := service.GetHisOrderByID(order_id)
3856
+	his, _ := service.GetHisPatientByNumber(order.MdtrtId)
3470 3857
 	orderInfos, _ := service.GetHisOrderInfoByNumber(order.Number)
3471 3858
 
3859
+	diagnosisConfig, _ := service.FindDiagnoseById(his.Diagnosis)
3860
+
3472 3861
 	var bedCostTotal float64 = 0         //床位总费
3473 3862
 	var bedCostSelfTotal float64 = 0     //床位自费
3474 3863
 	var bedCostPartSelfTotal float64 = 0 //床位部分项目自费
@@ -3611,6 +4000,10 @@ func (c *HisApiController) GetSettleAccounts() {
3611 4000
 
3612 4001
 		if res.Infcode == 0 {
3613 4002
 			c.ServeSuccessJSON(map[string]interface{}{
4003
+				"diagnosis":                                   diagnosisConfig.CountryContentName,
4004
+				"order_infos":                                 orderInfos,
4005
+				"number":                                      order.MdtrtId,
4006
+				"date":                                        order.SettleAccountsDate,
3614 4007
 				"charge_admin":                                charge_admin,
3615 4008
 				"printor_admin":                               printor_admin,
3616 4009
 				"info":                                        res.Output.Setlinfo,

+ 56 - 35
models/his_models.go View File

@@ -120,6 +120,8 @@ type HisPatient struct {
120 120
 	YiliaoNumber           string  `gorm:"column:yiliao_number" json:"yiliao_number" form:"yiliao_number"`
121 121
 	MzNumber               string  `gorm:"column:mz_number" json:"mz_number" form:"mz_number"`
122 122
 	PatientInfo            string  `gorm:"column:patient_info" json:"patient_info" form:"patient_info"`
123
+	Diagnosis              int64   `gorm:"column:diagnosis" json:"diagnosis" form:"diagnosis"`
124
+	SickType               int64   `gorm:"column:sick_type" json:"sick_type" form:"sick_type"`
123 125
 }
124 126
 
125 127
 func (HisPatient) TableName() string {
@@ -689,41 +691,43 @@ func (HisOrder) TableName() string {
689 691
 }
690 692
 
691 693
 type HisOrderInfo struct {
692
-	ID               int64   `gorm:"column:id" json:"id" form:"id"`
693
-	OrderNumber      string  `gorm:"column:order_number" json:"order_number" form:"order_number"`
694
-	UploadDate       int64   `gorm:"column:upload_date" json:"upload_date" form:"upload_date"`
695
-	AdviceId         int64   `gorm:"column:advice_id" json:"advice_id" form:"advice_id"`
696
-	DetItemFeeSumamt float64 `gorm:"column:det_item_fee_sumamt" json:"det_item_fee_sumamt" form:"det_item_fee_sumamt"`
697
-	Cnt              float64 `gorm:"column:cnt" json:"cnt" form:"cnt"`
698
-	Pric             float64 `gorm:"column:pric" json:"pric" form:"pric"`
699
-	PatientId        int64   `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
700
-	PricUplmtAmt     float64 `gorm:"column:pric_uplmt_amt" json:"pric_uplmt_amt" form:"pric_uplmt_amt"`
701
-	SelfpayProp      float64 `gorm:"column:selfpay_prop" json:"selfpay_prop" form:"selfpay_prop"`
702
-	FulamtOwnpayAmt  float64 `gorm:"column:fulamt_ownpay_amt" json:"fulamt_ownpay_amt" form:"fulamt_ownpay_amt"`
703
-	OverlmtAmt       float64 `gorm:"column:overlmt_amt" json:"overlmt_amt" form:"overlmt_amt"`
704
-	PreselfpayAmt    float64 `gorm:"column:preselfpay_amt" json:"preselfpay_amt" form:"preselfpay_amt"`
705
-	BasMednFlag      string  `gorm:"column:bas_medn_flag" json:"bas_medn_flag" form:"bas_medn_flag"`
706
-	MedChrgitmType   string  `gorm:"column:med_chrgitm_type" json:"med_chrgitm_type" form:"med_chrgitm_type"`
707
-	HiNegoDrugFlag   string  `gorm:"column:hi_nego_drug_flag" json:"hi_nego_drug_flag" form:"hi_nego_drug_flag"`
708
-	Status           int64   `gorm:"column:status" json:"status" form:"status"`
709
-	Memo             string  `gorm:"column:memo" json:"memo" form:"memo"`
710
-	FeedetlSn        string  `gorm:"column:feedetl_sn" json:"feedetl_sn" form:"feedetl_sn"`
711
-	Mtime            int64   `gorm:"column:mtime" json:"mtime" form:"mtime"`
712
-	InscpScpAmt      float64 `gorm:"column:inscp_scp_amt" json:"inscp_scp_amt" form:"inscp_scp_amt"`
713
-	DrtReimFlag      string  `gorm:"column:drt_reim_flag" json:"drt_reim_flag" form:"drt_reim_flag"`
714
-	Ctime            int64   `gorm:"column:ctime" json:"ctime" form:"ctime"`
715
-	ListSpItemFlag   string  `gorm:"column:list_sp_item_flag" json:"list_sp_item_flag" form:"list_sp_item_flag"`
716
-	ChldMedcFlag     string  `gorm:"column:chld_medc_flag" json:"chld_medc_flag" form:"chld_medc_flag"`
717
-	LmtUsedFlag      string  `gorm:"column:lmt_used_flag" json:"lmt_used_flag" form:"lmt_used_flag"`
718
-	ChrgitmLv        string  `gorm:"column:chrgitm_lv" json:"chrgitm_lv" form:"chrgitm_lv"`
719
-	UserOrgId        int64   `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
720
-	HisPatientId     int64   `gorm:"column:his_patient_id" json:"his_patient_id" form:"his_patient_id"`
721
-	OrderId          int64   `gorm:"column:order_id" json:"order_id" form:"order_id"`
722
-	ProjectId        int64   `gorm:"column:project_id" json:"project_id" form:"project_id"`
723
-	Type             int64   `gorm:"column:type" json:"type" form:"type"`
724
-	ItemId           int64   `gorm:"column:item_id" json:"item_id" form:"item_id"`
725
-	OverPricPsnPay   float64 `gorm:"column:over_pric_psn_pay" json:"over_pric_psn_pay" form:"over_pric_psn_pay"`
726
-	AllowReimburse   float64 `gorm:"column:allow_reimburse" json:"allow_reimburse" form:"allow_reimburse"`
694
+	ID                     int64                  `gorm:"column:id" json:"id" form:"id"`
695
+	OrderNumber            string                 `gorm:"column:order_number" json:"order_number" form:"order_number"`
696
+	UploadDate             int64                  `gorm:"column:upload_date" json:"upload_date" form:"upload_date"`
697
+	AdviceId               int64                  `gorm:"column:advice_id" json:"advice_id" form:"advice_id"`
698
+	DetItemFeeSumamt       float64                `gorm:"column:det_item_fee_sumamt" json:"det_item_fee_sumamt" form:"det_item_fee_sumamt"`
699
+	Cnt                    float64                `gorm:"column:cnt" json:"cnt" form:"cnt"`
700
+	Pric                   float64                `gorm:"column:pric" json:"pric" form:"pric"`
701
+	PatientId              int64                  `gorm:"column:patient_id" json:"patient_id" form:"patient_id"`
702
+	PricUplmtAmt           float64                `gorm:"column:pric_uplmt_amt" json:"pric_uplmt_amt" form:"pric_uplmt_amt"`
703
+	SelfpayProp            float64                `gorm:"column:selfpay_prop" json:"selfpay_prop" form:"selfpay_prop"`
704
+	FulamtOwnpayAmt        float64                `gorm:"column:fulamt_ownpay_amt" json:"fulamt_ownpay_amt" form:"fulamt_ownpay_amt"`
705
+	OverlmtAmt             float64                `gorm:"column:overlmt_amt" json:"overlmt_amt" form:"overlmt_amt"`
706
+	PreselfpayAmt          float64                `gorm:"column:preselfpay_amt" json:"preselfpay_amt" form:"preselfpay_amt"`
707
+	BasMednFlag            string                 `gorm:"column:bas_medn_flag" json:"bas_medn_flag" form:"bas_medn_flag"`
708
+	MedChrgitmType         string                 `gorm:"column:med_chrgitm_type" json:"med_chrgitm_type" form:"med_chrgitm_type"`
709
+	HiNegoDrugFlag         string                 `gorm:"column:hi_nego_drug_flag" json:"hi_nego_drug_flag" form:"hi_nego_drug_flag"`
710
+	Status                 int64                  `gorm:"column:status" json:"status" form:"status"`
711
+	Memo                   string                 `gorm:"column:memo" json:"memo" form:"memo"`
712
+	FeedetlSn              string                 `gorm:"column:feedetl_sn" json:"feedetl_sn" form:"feedetl_sn"`
713
+	Mtime                  int64                  `gorm:"column:mtime" json:"mtime" form:"mtime"`
714
+	InscpScpAmt            float64                `gorm:"column:inscp_scp_amt" json:"inscp_scp_amt" form:"inscp_scp_amt"`
715
+	DrtReimFlag            string                 `gorm:"column:drt_reim_flag" json:"drt_reim_flag" form:"drt_reim_flag"`
716
+	Ctime                  int64                  `gorm:"column:ctime" json:"ctime" form:"ctime"`
717
+	ListSpItemFlag         string                 `gorm:"column:list_sp_item_flag" json:"list_sp_item_flag" form:"list_sp_item_flag"`
718
+	ChldMedcFlag           string                 `gorm:"column:chld_medc_flag" json:"chld_medc_flag" form:"chld_medc_flag"`
719
+	LmtUsedFlag            string                 `gorm:"column:lmt_used_flag" json:"lmt_used_flag" form:"lmt_used_flag"`
720
+	ChrgitmLv              string                 `gorm:"column:chrgitm_lv" json:"chrgitm_lv" form:"chrgitm_lv"`
721
+	UserOrgId              int64                  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
722
+	HisPatientId           int64                  `gorm:"column:his_patient_id" json:"his_patient_id" form:"his_patient_id"`
723
+	OrderId                int64                  `gorm:"column:order_id" json:"order_id" form:"order_id"`
724
+	ProjectId              int64                  `gorm:"column:project_id" json:"project_id" form:"project_id"`
725
+	Type                   int64                  `gorm:"column:type" json:"type" form:"type"`
726
+	ItemId                 int64                  `gorm:"column:item_id" json:"item_id" form:"item_id"`
727
+	OverPricPsnPay         float64                `gorm:"column:over_pric_psn_pay" json:"over_pric_psn_pay" form:"over_pric_psn_pay"`
728
+	AllowReimburse         float64                `gorm:"column:allow_reimburse" json:"allow_reimburse" form:"allow_reimburse"`
729
+	HisDoctorAdviceInfo    HisDoctorAdviceInfo    `gorm:"ForeignKey:AdviceId;AssociationForeignKey:ID" json:"advice"`
730
+	HisPrescriptionProject HisPrescriptionProject `gorm:"ForeignKey:ProjectId;AssociationForeignKey:ID" json:"project"`
727 731
 }
728 732
 
729 733
 func (HisOrderInfo) TableName() string {
@@ -775,6 +779,8 @@ type VMHisPatient struct {
775 779
 	YiliaoNumber           string  `gorm:"column:yiliao_number" json:"yiliao_number" form:"yiliao_number"`
776 780
 	MzNumber               string  `gorm:"column:mz_number" json:"mz_number" form:"mz_number"`
777 781
 	PatientInfo            string  `gorm:"column:patient_info" json:"patient_info" form:"patient_info"`
782
+	Diagnosis              int64   `gorm:"column:diagnosis" json:"diagnosis" form:"diagnosis"`
783
+	SickType               int64   `gorm:"column:sick_type" json:"sick_type" form:"sick_type"`
778 784
 }
779 785
 
780 786
 func (VMHisPatient) TableName() string {
@@ -1215,3 +1221,18 @@ type MySgjUserAdminRole struct {
1215 1221
 func (MySgjUserAdminRole) TableName() string {
1216 1222
 	return "sgj_user_admin_role"
1217 1223
 }
1224
+
1225
+type HisFundSettleListResult struct {
1226
+	ID        int64  `gorm:"column:id" json:"id" form:"id"`
1227
+	Number    string `gorm:"column:number" json:"number" form:"number"`
1228
+	Status    int64  `gorm:"column:status" json:"status" form:"status"`
1229
+	Ctime     int64  `gorm:"column:ctime" json:"ctime" form:"ctime"`
1230
+	Mtime     int64  `gorm:"column:mtime" json:"mtime" form:"mtime"`
1231
+	UserOrgId int64  `gorm:"column:user_org_id" json:"user_org_id" form:"user_org_id"`
1232
+	IsUpload  int64  `gorm:"column:is_upload" json:"is_upload" form:"is_upload"`
1233
+	OrderId   int64  `gorm:"column:order_id" json:"order_id" form:"order_id"`
1234
+}
1235
+
1236
+func (HisFundSettleListResult) TableName() string {
1237
+	return "his_fund_settle_list_result"
1238
+}

+ 3 - 3
service/gdyb_service.go View File

@@ -2156,7 +2156,7 @@ type Struct4101 struct {
2156 2156
 }
2157 2157
 
2158 2158
 //
2159
-func Gdyb4101(struct4101 Struct4101, mdtrtId string, setlId string, secret_key string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string) string {
2159
+func Gdyb4101(struct4101 *Struct4101, secret_key string, org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string) string {
2160 2160
 	// 生成签名
2161 2161
 	nonce := GetRandomString(32)
2162 2162
 	timestamp := time.Now().Unix()
@@ -2172,8 +2172,8 @@ func Gdyb4101(struct4101 Struct4101, mdtrtId string, setlId string, secret_key s
2172 2172
 	month := time.Now().Format("01")
2173 2173
 	day := time.Now().Format("02")
2174 2174
 
2175
-	inputData["mdtrt_id"] = mdtrtId                           // 就诊 ID  必填(来自2201接口返回)
2176
-	inputData["setl_id"] = setlId                             // 结算 ID  必填
2175
+	inputData["mdtrt_id"] = struct4101.MdtrtId                // 就诊 ID  必填(来自2201接口返回)
2176
+	inputData["setl_id"] = struct4101.SetlId                  // 结算 ID  必填
2177 2177
 	inputData["fixmedins_name"] = org_name                    // 定点医药机构名称  必填
2178 2178
 	inputData["fixmedins_code"] = fixmedins_code              // 定点医药机构编码  必填
2179 2179
 	inputData["hi_setl_lv"] = ""                              // 医保结算等级

+ 15 - 1
service/his_service.go View File

@@ -891,7 +891,11 @@ func GetHisOrderByIDTwo(order_id int64) (order models.HisOrder, err error) {
891 891
 }
892 892
 
893 893
 func GetHisOrderInfoByNumber(order_number string) (order []*models.HisOrderInfo, err error) {
894
-	err = readDb.Model(&models.HisOrderInfo{}).Where("order_number = ? AND status = 1", order_number).Find(&order).Error
894
+	err = readDb.Model(&models.HisOrderInfo{}).Preload("HisDoctorAdviceInfo", func(db *gorm.DB) *gorm.DB {
895
+		return db.Preload("BaseDrugLib").Where("status = 1")
896
+	}).Preload("HisPrescriptionProject", func(db *gorm.DB) *gorm.DB {
897
+		return db.Preload("HisProject").Where("status = 1")
898
+	}).Where("order_number = ? AND status = 1", order_number).Find(&order).Error
895 899
 	return
896 900
 }
897 901
 
@@ -1153,3 +1157,13 @@ func GetHisPatientInfoList(org_id int64, patient_id int64, record_date int64) (i
1153 1157
 	err = readDb.Model(&models.HisPatient{}).Where("user_org_id = ? AND status = 1 AND record_date = ? AND patient_id = ?", org_id, record_date, patient_id).Find(&info).Error
1154 1158
 	return
1155 1159
 }
1160
+
1161
+func GetHisPatientByNumber(number string) (his models.HisPatient, err error) {
1162
+	err = readDb.Model(&models.HisPatient{}).Where("number = ? AND status = 1", number).First(&his).Error
1163
+	return
1164
+}
1165
+
1166
+func CreateUploadRecord(result *models.HisFundSettleListResult) (err error) {
1167
+	err = writeDb.Create(&result).Error
1168
+	return
1169
+}