sz_his_service.go 43KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311
  1. package service
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "fmt"
  6. "gdyb/models"
  7. "io/ioutil"
  8. "math/rand"
  9. "net/http"
  10. "strconv"
  11. "time"
  12. _ "unsafe"
  13. )
  14. func SzybMZ002(doctor string, doctor_code string, fixmedins_code string, dept_code string, account string, verify_code string, serial_number string, mz_number string, version_code string, custom_code string, project_name string, price float64) string {
  15. // 生成输入报文
  16. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  17. inputData := make(map[string]interface{})
  18. inputMessage["transType"] = "MZ002" // 交易编码
  19. inputMessage["transVersion"] = version_code // 交易编码
  20. inputData["akc190"] = mz_number
  21. inputData["aaz500"] = account
  22. inputData["bzz269"] = "000000"
  23. inputData["aka130"] = "11"
  24. inputData["akf001"] = dept_code
  25. inputData["akc264"] = price
  26. inputData["bke384"] = inputMessage["serialNumber"]
  27. switch custom_code {
  28. case "110100002":
  29. inputData["bkc368"] = "1"
  30. break
  31. case "110200002-2":
  32. inputData["bkc368"] = "3"
  33. break
  34. case "110200002-3":
  35. inputData["bkc368"] = "2"
  36. break
  37. case "110200003":
  38. break
  39. case "110200002-1":
  40. inputData["bkc368"] = "5"
  41. break
  42. }
  43. if custom_code == "0" {
  44. inputData["bkc368"] = "4"
  45. inputData["listsize"] = 0
  46. inputMessage["transBody"] = inputData
  47. bytesData, err := json.Marshal(inputMessage)
  48. fmt.Println(string(bytesData))
  49. if err != nil {
  50. fmt.Println(err.Error())
  51. return err.Error()
  52. }
  53. reader := bytes.NewReader(bytesData)
  54. url := "http://192.168.1.228:17001/szsi-portal/transData"
  55. request, err := http.NewRequest("POST", url, reader)
  56. if err != nil {
  57. fmt.Println(err.Error())
  58. return err.Error()
  59. }
  60. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  61. client := http.Client{}
  62. resp, err := client.Do(request)
  63. if err != nil {
  64. fmt.Println(err.Error())
  65. return err.Error()
  66. }
  67. respBytes, err := ioutil.ReadAll(resp.Body)
  68. if err != nil {
  69. fmt.Println(err.Error())
  70. return err.Error()
  71. }
  72. fmt.Println(string(respBytes))
  73. str := string(respBytes)
  74. return str
  75. } else {
  76. inputData["listsize"] = 1
  77. timestamp := time.Now().Unix()
  78. tempTime := time.Unix(timestamp, 0)
  79. timeFormat := tempTime.Format("20060102150405")
  80. feedetail := make([]map[string]interface{}, 0)
  81. feedetailInfo := make(map[string]interface{})
  82. feedetailInfo["aae072"] = timeFormat
  83. feedetailInfo["bkf500"] = timeFormat
  84. feedetailInfo["ake001"] = custom_code
  85. feedetailInfo["ake005"] = custom_code
  86. feedetailInfo["ake006"] = project_name
  87. feedetailInfo["aae019"] = price
  88. feedetail = append(feedetail, feedetailInfo)
  89. inputData["inputlist"] = feedetail
  90. inputMessage["transBody"] = inputData
  91. bytesData, err := json.Marshal(inputMessage)
  92. fmt.Println(string(bytesData))
  93. if err != nil {
  94. fmt.Println(err.Error())
  95. return err.Error()
  96. }
  97. reader := bytes.NewReader(bytesData)
  98. url := "http://192.168.1.228:17001/szsi-portal/transData"
  99. request, err := http.NewRequest("POST", url, reader)
  100. if err != nil {
  101. fmt.Println(err.Error())
  102. return err.Error()
  103. }
  104. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  105. client := http.Client{}
  106. resp, err := client.Do(request)
  107. if err != nil {
  108. fmt.Println(err.Error())
  109. return err.Error()
  110. }
  111. respBytes, err := ioutil.ReadAll(resp.Body)
  112. if err != nil {
  113. fmt.Println(err.Error())
  114. return err.Error()
  115. }
  116. fmt.Println(string(respBytes))
  117. str := string(respBytes)
  118. return str
  119. }
  120. }
  121. func SzybFY001(doctor string, doctor_code string, fixmedins_code string, datas []*models.CustomDetail, verify_code string, serial_number string, mz_number string, version_code string, drug_doctor_code string) string {
  122. // 生成输入报文
  123. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  124. inputData := make(map[string]interface{})
  125. inputMessage["transType"] = "FY001" // 交易编码
  126. inputMessage["transChannel"] = "10" // 交易编码
  127. inputMessage["transVersion"] = version_code // 交易编码
  128. inputData["akc190"] = mz_number
  129. inputData["bke384"] = serial_number
  130. inputData["listsize"] = len(datas)
  131. feedetail := make([]map[string]interface{}, 0)
  132. for _, item := range datas {
  133. feedetailInfo := make(map[string]interface{})
  134. feedetailInfo["aae072"] = item.PrescriptionNumber
  135. feedetailInfo["bkc369"] = item.OrderType
  136. feedetailInfo["bkf500"] = item.ChargeSerialNumber
  137. feedetailInfo["ake001"] = item.Code
  138. feedetailInfo["ake002"] = item.CodeName
  139. feedetailInfo["bkm017"] = item.Code
  140. feedetailInfo["aka070"] = item.DoseCode
  141. feedetailInfo["aka074"] = item.Spec
  142. feedetailInfo["aka064"] = 1
  143. feedetailInfo["ake005"] = item.Code
  144. feedetailInfo["ake006"] = item.CodeName
  145. feedetailInfo["akc225"] = item.Price
  146. feedetailInfo["akc226"] = item.Count
  147. feedetailInfo["akc264"] = item.Total
  148. feedetailInfo["aka067"] = "元"
  149. feedetailInfo["akc271"] = item.ChargeOrderDate
  150. feedetailInfo["bkc320"] = drug_doctor_code
  151. feedetail = append(feedetail, feedetailInfo)
  152. }
  153. inputData["inputlist"] = feedetail
  154. inputMessage["transBody"] = inputData
  155. fmt.Println(inputMessage)
  156. bytesData, err := json.Marshal(inputMessage)
  157. fmt.Println(string(bytesData))
  158. if err != nil {
  159. fmt.Println(err.Error())
  160. return err.Error()
  161. }
  162. reader := bytes.NewReader(bytesData)
  163. url := "http://192.168.1.228:17001/szsi-portal/transData"
  164. request, err := http.NewRequest("POST", url, reader)
  165. if err != nil {
  166. fmt.Println(err.Error())
  167. return err.Error()
  168. }
  169. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  170. client := http.Client{}
  171. resp, err := client.Do(request)
  172. if err != nil {
  173. fmt.Println(err.Error())
  174. return err.Error()
  175. }
  176. respBytes, err := ioutil.ReadAll(resp.Body)
  177. if err != nil {
  178. fmt.Println(err.Error())
  179. return err.Error()
  180. }
  181. fmt.Println(string(respBytes))
  182. str := string(respBytes)
  183. return str
  184. }
  185. func SzybFY002(doctor string, doctor_code string, fixmedins_code string, datas []*models.CustomDetail, verify_code string, serial_number string, mz_number string, version_code string) string {
  186. // 生成输入报文
  187. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  188. inputData := make(map[string]interface{})
  189. inputMessage["transType"] = "FY002" // 交易编码
  190. inputMessage["transVersion"] = version_code // 交易编码
  191. inputData["akc190"] = mz_number
  192. inputData["bke384"] = serial_number
  193. inputData["listsize"] = len(datas)
  194. feedetail := make([]map[string]interface{}, 0)
  195. for _, item := range datas {
  196. feedetailInfo := make(map[string]interface{})
  197. feedetailInfo["aae072"] = item.PrescriptionNumber
  198. feedetailInfo["bkf500"] = item.ChargeSerialNumber
  199. feedetail = append(feedetail, feedetailInfo)
  200. }
  201. inputData["inputlist"] = feedetail
  202. inputMessage["transBody"] = inputData
  203. bytesData, err := json.Marshal(inputMessage)
  204. fmt.Println(string(bytesData))
  205. if err != nil {
  206. fmt.Println(err.Error())
  207. return err.Error()
  208. }
  209. reader := bytes.NewReader(bytesData)
  210. //url := "http://192.168.1.99:10000"
  211. url := "http://192.168.1.228:17001/szsi-portal/transData"
  212. request, err := http.NewRequest("POST", url, reader)
  213. if err != nil {
  214. fmt.Println(err.Error())
  215. return err.Error()
  216. }
  217. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  218. client := http.Client{}
  219. resp, err := client.Do(request)
  220. if err != nil {
  221. fmt.Println(err.Error())
  222. return err.Error()
  223. }
  224. respBytes, err := ioutil.ReadAll(resp.Body)
  225. if err != nil {
  226. fmt.Println(err.Error())
  227. return err.Error()
  228. }
  229. fmt.Println(string(respBytes))
  230. str := string(respBytes)
  231. return str
  232. }
  233. func SzybFY004(doctor string, doctor_code string, fixmedins_code string, total float64, verify_code string, serial_number string, mz_number string, version_code string, drug_doctor_code string, drug_doctor_name string) string {
  234. // 生成输入报文
  235. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  236. inputData := make(map[string]interface{})
  237. inputMessage["transType"] = "FY004" // 交易编码
  238. inputMessage["transVersion"] = version_code // 交易编码
  239. inputData["akc190"] = mz_number
  240. inputData["aka130"] = "11"
  241. inputData["bkc320"] = drug_doctor_code
  242. inputData["ckc350"] = drug_doctor_name
  243. inputData["aka030"] = "12"
  244. inputData["akc264"] = total
  245. inputData["ckc601"] = "0"
  246. inputData["bke384"] = serial_number
  247. inputMessage["transBody"] = inputData
  248. bytesData, err := json.Marshal(inputMessage)
  249. fmt.Println(string(bytesData))
  250. if err != nil {
  251. fmt.Println(err.Error())
  252. return err.Error()
  253. }
  254. reader := bytes.NewReader(bytesData)
  255. //url := "http://192.168.1.99:10000"
  256. url := "http://192.168.1.228:17001/szsi-portal/transData"
  257. request, err := http.NewRequest("POST", url, reader)
  258. if err != nil {
  259. fmt.Println(err.Error())
  260. return err.Error()
  261. }
  262. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  263. client := http.Client{}
  264. resp, err := client.Do(request)
  265. if err != nil {
  266. fmt.Println(err.Error())
  267. return err.Error()
  268. }
  269. respBytes, err := ioutil.ReadAll(resp.Body)
  270. if err != nil {
  271. fmt.Println(err.Error())
  272. return err.Error()
  273. }
  274. fmt.Println(string(respBytes))
  275. str := string(respBytes)
  276. return str
  277. }
  278. func SzybFY005(doctor string, doctor_code string, fixmedins_code string, total float64, account string, verify_code string, serial_number string, mz_number string, version_code string, drug_doctor string, drug_doctor_name string) string {
  279. // 生成输入报文
  280. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, serial_number)
  281. inputData := make(map[string]interface{})
  282. inputMessage["transType"] = "FY005" // 交易编码
  283. inputMessage["transVersion"] = version_code // 交易编码
  284. inputData["aaz500"] = account
  285. inputData["bzz269"] = "000000"
  286. inputData["akc190"] = mz_number
  287. inputData["aka130"] = "11"
  288. inputData["bkc320"] = drug_doctor
  289. inputData["ckc350"] = drug_doctor_name
  290. inputData["aka030"] = "12"
  291. inputData["akc264"] = total
  292. inputData["ckc601"] = "0"
  293. inputData["bke384"] = serial_number
  294. inputMessage["transBody"] = inputData
  295. bytesData, err := json.Marshal(inputMessage)
  296. fmt.Println(string(bytesData))
  297. if err != nil {
  298. fmt.Println(err.Error())
  299. return err.Error()
  300. }
  301. reader := bytes.NewReader(bytesData)
  302. //url := "http://192.168.1.99:10000"
  303. url := "http://192.168.1.228:17001/szsi-portal/transData"
  304. request, err := http.NewRequest("POST", url, reader)
  305. if err != nil {
  306. fmt.Println(err.Error())
  307. return err.Error()
  308. }
  309. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  310. client := http.Client{}
  311. resp, err := client.Do(request)
  312. if err != nil {
  313. fmt.Println(err.Error())
  314. return err.Error()
  315. }
  316. respBytes, err := ioutil.ReadAll(resp.Body)
  317. if err != nil {
  318. fmt.Println(err.Error())
  319. return err.Error()
  320. }
  321. fmt.Println(string(respBytes))
  322. str := string(respBytes)
  323. return str
  324. }
  325. func SzybJY001(doctor string, doctor_code string, fixmedins_code string, setl_number string, mz_number string, verify_code string, version_code string) string {
  326. // 生成输入报文
  327. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, setl_number)
  328. inputData := make(map[string]interface{})
  329. inputMessage["transType"] = "JY001" // 交易编码
  330. inputMessage["transVersion"] = version_code // 交易编码
  331. inputData["akc190"] = mz_number
  332. inputData["bke384"] = setl_number
  333. inputMessage["transBody"] = inputData
  334. bytesData, err := json.Marshal(inputMessage)
  335. fmt.Println(string(bytesData))
  336. if err != nil {
  337. fmt.Println(err.Error())
  338. return err.Error()
  339. }
  340. reader := bytes.NewReader(bytesData)
  341. //url := "http://192.168.1.99:10000"
  342. url := "http://192.168.1.228:17001/szsi-portal/transData"
  343. request, err := http.NewRequest("POST", url, reader)
  344. if err != nil {
  345. fmt.Println(err.Error())
  346. return err.Error()
  347. }
  348. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  349. client := http.Client{}
  350. resp, err := client.Do(request)
  351. if err != nil {
  352. fmt.Println(err.Error())
  353. return err.Error()
  354. }
  355. respBytes, err := ioutil.ReadAll(resp.Body)
  356. if err != nil {
  357. fmt.Println(err.Error())
  358. return err.Error()
  359. }
  360. fmt.Println(string(respBytes))
  361. str := string(respBytes)
  362. return str
  363. }
  364. func SzybJY002(doctor string, doctor_code string, fixmedins_code string, setl_number string, mz_number string, verify_code string, new_setl_number string, version_code string) string {
  365. // 生成输入报文
  366. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, new_setl_number)
  367. inputData := make(map[string]interface{})
  368. inputMessage["transType"] = "JY002" // 交易编码
  369. inputMessage["transVersion"] = version_code // 交易编码
  370. inputData["akc190"] = mz_number
  371. inputData["bke384"] = setl_number
  372. inputMessage["transBody"] = inputData
  373. bytesData, err := json.Marshal(inputMessage)
  374. fmt.Println(string(bytesData))
  375. if err != nil {
  376. fmt.Println(err.Error())
  377. return err.Error()
  378. }
  379. reader := bytes.NewReader(bytesData)
  380. //url := "http://192.168.1.99:10000"
  381. url := "http://192.168.1.228:17001/szsi-portal/transData"
  382. request, err := http.NewRequest("POST", url, reader)
  383. if err != nil {
  384. fmt.Println(err.Error())
  385. return err.Error()
  386. }
  387. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  388. client := http.Client{}
  389. resp, err := client.Do(request)
  390. if err != nil {
  391. fmt.Println(err.Error())
  392. return err.Error()
  393. }
  394. respBytes, err := ioutil.ReadAll(resp.Body)
  395. if err != nil {
  396. fmt.Println(err.Error())
  397. return err.Error()
  398. }
  399. fmt.Println(string(respBytes))
  400. str := string(respBytes)
  401. return str
  402. }
  403. func SzybJY003(doctor string, doctor_code string, fixmedins_code string, setl_number string, mz_number string, verify_code string, version_code string) string {
  404. // 生成输入报文
  405. inputMessage := SetSZInputMessage(doctor, doctor_code, fixmedins_code, verify_code, setl_number)
  406. inputData := make(map[string]interface{})
  407. inputMessage["transType"] = "JY003" // 交易编码
  408. inputMessage["transVersion"] = version_code // 交易编码
  409. inputData["akc190"] = mz_number
  410. inputData["bke384"] = setl_number
  411. inputMessage["transBody"] = inputData
  412. bytesData, err := json.Marshal(inputMessage)
  413. fmt.Println(string(bytesData))
  414. if err != nil {
  415. fmt.Println(err.Error())
  416. return err.Error()
  417. }
  418. reader := bytes.NewReader(bytesData)
  419. //url := "http://192.168.1.99:10000"
  420. url := "http://192.168.1.228:17001/szsi-portal/transData"
  421. request, err := http.NewRequest("POST", url, reader)
  422. if err != nil {
  423. fmt.Println(err.Error())
  424. return err.Error()
  425. }
  426. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  427. client := http.Client{}
  428. resp, err := client.Do(request)
  429. if err != nil {
  430. fmt.Println(err.Error())
  431. return err.Error()
  432. }
  433. respBytes, err := ioutil.ReadAll(resp.Body)
  434. if err != nil {
  435. fmt.Println(err.Error())
  436. return err.Error()
  437. }
  438. fmt.Println(string(respBytes))
  439. str := string(respBytes)
  440. return str
  441. }
  442. // 生成基础报文
  443. func SetSZInputMessage(doctor string, doctor_code string, fixmedins_code string, verify_code string, number string) map[string]interface{} {
  444. month := time.Unix(1557042972, 0).Format("1")
  445. year := time.Now().Format("2006")
  446. month = time.Now().Format("01")
  447. day := time.Now().Format("02")
  448. hour := time.Now().Format("15")
  449. min := time.Now().Format("04")
  450. sec := time.Now().Format("05")
  451. msec := time.Now().Format("000")
  452. // 生成输入报文
  453. inputMessage := make(map[string]interface{})
  454. //
  455. inputMessage["cardArea"] = "440300" // 发卡地行政区划代码
  456. inputMessage["extendDeviceId"] = ""
  457. inputMessage["extendSerialNumber"] = ""
  458. inputMessage["extendUserId"] = ""
  459. inputMessage["hospitalCode"] = fixmedins_code // 协议机构编码
  460. inputMessage["operatorCode"] = doctor_code // 操作员编码
  461. inputMessage["operatorName"] = doctor // 操作员名字
  462. inputMessage["operatorPass"] = "" // 定点协议机构操作人员编码
  463. inputMessage["serialNumber"] = number
  464. inputMessage["transReturnCode"] = "" //
  465. inputMessage["transReturnMessage"] = "" //
  466. inputMessage["transTime"] = year + month + day + hour + min + sec + ":" + msec //
  467. inputMessage["verifyCode"] = verify_code //
  468. inputMessage["transChannel"] = "10" //
  469. return inputMessage
  470. }
  471. func msToTime(ms int64) string {
  472. tm := time.Unix(0, ms*int64(time.Millisecond))
  473. return tm.Format("2006-02-01 15:04:05.000")
  474. }
  475. //
  476. //func SzybML008(doctor string, doctor_code string, fixmedins_code string, datas []*models.DrugDetail) string {
  477. // //生成输入报文
  478. // inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  479. //
  480. // inputData := make(map[string]interface{})
  481. // inputMessage["transType"] = "JY003" // 交易编码
  482. //
  483. // inputData["listsize"] = len(datas)
  484. // inputMessage["transType"] = "ML008" // 交易编码S
  485. // feedetail := make([]map[string]interface{}, 0)
  486. // //inputData["akc190"] = mz_number
  487. // //inputData["bke384"] = setl_number
  488. //
  489. // for _, item := range datas {
  490. //
  491. // feedetailInfo := make(map[string]interface{})
  492. // feedetailInfo["ake001"] = item.MedicalInsuranceNumber
  493. // feedetailInfo["bkm017"] = item.Code
  494. // feedetailInfo["ake005"] = item.Code
  495. // feedetailInfo["ake006"] = item.DrugName
  496. // feedetailInfo["aka074"] = item.DrugSpec
  497. // feedetailInfo["aka070"] = item.DrugDosageName
  498. // //feedetailInfo["aka070"] = "片"
  499. // feedetailInfo["aka067"] = item.MinUnit
  500. // feedetailInfo["bka053"] = item.ManufacturerName
  501. // feedetailInfo["aka064"] = "1"
  502. // feedetailInfo["bka505"] = item.LastPrice
  503. // feedetailInfo["bka506"] = item.RetailPrice
  504. // feedetailInfo["aae030"] = 20210406
  505. // feedetailInfo["aae013"] = item.LimitRemark
  506. // feedetail = append(feedetail, feedetailInfo)
  507. // }
  508. //
  509. // inputData["inputlist"] = feedetail
  510. // inputMessage["transBody"] = inputData
  511. //
  512. // bytesData, err := json.Marshal(inputMessage)
  513. // fmt.Println(string(bytesData))
  514. // if err != nil {
  515. // fmt.Println(err.Error())
  516. // return err.Error()
  517. // }
  518. // reader := bytes.NewReader(bytesData)
  519. // //url := "http://192.168.1.99:10000"
  520. // url := "http://192.168.1.228:17001/szsi-portal/transData"
  521. //
  522. // request, err := http.NewRequest("POST", url, reader)
  523. // if err != nil {
  524. // fmt.Println(err.Error())
  525. // return err.Error()
  526. // }
  527. //
  528. // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  529. //
  530. // client := http.Client{}
  531. // resp, err := client.Do(request)
  532. // if err != nil {
  533. // fmt.Println(err.Error())
  534. // return err.Error()
  535. // }
  536. // respBytes, err := ioutil.ReadAll(resp.Body)
  537. // if err != nil {
  538. // fmt.Println(err.Error())
  539. // return err.Error()
  540. // }
  541. // fmt.Println(string(respBytes))
  542. // str := string(respBytes)
  543. // return str
  544. //}
  545. func SzybML008(doctor string, doctor_code string, fixmedins_code string, basedrug *models.DrugDetail) string {
  546. //生成输入报文
  547. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  548. inputData := make(map[string]interface{})
  549. inputMessage["transType"] = "JY003" // 交易编码
  550. inputMessage["transType"] = "ML008" // 交易编码S
  551. feedetail := make([]map[string]interface{}, 0)
  552. feedetailInfo := make(map[string]interface{})
  553. feedetailInfo["ake001"] = basedrug.MedicalInsuranceNumber
  554. feedetailInfo["bkm017"] = basedrug.Code
  555. feedetailInfo["ake005"] = basedrug.Code
  556. feedetailInfo["ake006"] = basedrug.DrugName
  557. feedetailInfo["aka074"] = basedrug.DrugSpec
  558. feedetailInfo["aka070"] = basedrug.DrugDosageName
  559. //feedetailInfo["aka070"] = "片"
  560. feedetailInfo["aka067"] = basedrug.MinUnit
  561. feedetailInfo["bka053"] = basedrug.ManufacturerName
  562. feedetailInfo["aka064"] = "1"
  563. feedetailInfo["bka505"] = basedrug.LastPrice
  564. feedetailInfo["bka506"] = basedrug.RetailPrice
  565. feedetailInfo["aae030"] = 20210406
  566. feedetailInfo["aae013"] = basedrug.LimitRemark
  567. feedetail = append(feedetail, feedetailInfo)
  568. inputData["inputlist"] = feedetail
  569. inputMessage["transBody"] = inputData
  570. bytesData, err := json.Marshal(inputMessage)
  571. fmt.Println(string(bytesData))
  572. if err != nil {
  573. fmt.Println(err.Error())
  574. return err.Error()
  575. }
  576. reader := bytes.NewReader(bytesData)
  577. //url := "http://192.168.1.99:10000"
  578. url := "http://192.168.1.228:17001/szsi-portal/transData"
  579. request, err := http.NewRequest("POST", url, reader)
  580. if err != nil {
  581. fmt.Println(err.Error())
  582. return err.Error()
  583. }
  584. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  585. client := http.Client{}
  586. resp, err := client.Do(request)
  587. if err != nil {
  588. fmt.Println(err.Error())
  589. return err.Error()
  590. }
  591. respBytes, err := ioutil.ReadAll(resp.Body)
  592. if err != nil {
  593. fmt.Println(err.Error())
  594. return err.Error()
  595. }
  596. fmt.Println(string(respBytes))
  597. str := string(respBytes)
  598. return str
  599. }
  600. // 生成基础报文
  601. func SetSZDrugMessage(doctor string, doctor_code string, fixmedins_code string) map[string]interface{} {
  602. month := time.Unix(1557042972, 0).Format("1")
  603. year := time.Now().Format("2006")
  604. month = time.Now().Format("01")
  605. day := time.Now().Format("02")
  606. hour := time.Now().Format("15")
  607. min := time.Now().Format("04")
  608. sec := time.Now().Format("05")
  609. msec := time.Now().Format("000")
  610. //生成输入报文
  611. inputMessage := make(map[string]interface{})
  612. //
  613. inputMessage["cardArea"] = "440300" // 发卡地行政区划代码
  614. inputMessage["extendDeviceId"] = ""
  615. inputMessage["extendSerialNumber"] = ""
  616. inputMessage["extendUserId"] = ""
  617. inputMessage["hospitalCode"] = "G5540" // 协议机构编码
  618. inputMessage["operatorCode"] = doctor_code // 操作员编码
  619. inputMessage["operatorName"] = doctor // 操作员名字
  620. inputMessage["operatorPass"] = "" // 定点协议机构操作人员编码
  621. //inputMessage["serialNumber"] = "G5540" + year + month + day +
  622. // fmt.Sprintf("%07v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000000)) // 定点协议机构编码(5位)+日期(8位)+流水号(7位)
  623. inputMessage["serialNumber"] = "G554020210406" + fmt.Sprintf("%07v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000000)) // 定点协议机构编码(5位)+日期(8位)+流水号(7位)
  624. inputMessage["verifyCode"] = "000000|8ec5b7745a5cc45b631f23b4bf1e417e"
  625. inputMessage["transReturnCode"] = "" //
  626. inputMessage["transReturnMessage"] = "" //
  627. inputMessage["transTime"] = year + month + day + hour + min + sec + ":" + msec //
  628. inputMessage["transVersion"] = "V0.3" // //
  629. inputMessage["transChannel"] = "10" //
  630. return inputMessage
  631. }
  632. func SzybML009(doctor string, doctor_code string, fixmedins_code string, pro *models.MyHisProject) string {
  633. //生成输入报文
  634. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  635. inputData := make(map[string]interface{})
  636. inputMessage["transType"] = "ML009" // 交易编码
  637. feedetail := make([]map[string]interface{}, 0)
  638. feedetailInfo := make(map[string]interface{})
  639. feedetailInfo["ake001"] = pro.MedicalCode //社保目录编码
  640. feedetailInfo["ake005"] = pro.MedicalCode //协议机构内部目录编码
  641. feedetailInfo["ake006"] = pro.ProjectName // 协议机构内部目录名称
  642. feedetailInfo["bkf131"] = pro.Category //协议机构项目类别
  643. feedetailInfo["bkm062"] = "0" // 门诊特检项目标识
  644. feedetailInfo["bka506"] = pro.Price // 协议机构内部项目收费价格
  645. feedetailInfo["aae030"] = 20210407 // 备案日期
  646. feedetailInfo["aae013"] = pro.Remark // 备注
  647. feedetail = append(feedetail, feedetailInfo)
  648. fmt.Println("feeedDetal2333333333", feedetail)
  649. inputData["inputlist"] = feedetail
  650. inputMessage["transBody"] = inputData
  651. bytesData, err := json.Marshal(inputMessage)
  652. fmt.Println(string(bytesData))
  653. if err != nil {
  654. fmt.Println(err.Error())
  655. return err.Error()
  656. }
  657. reader := bytes.NewReader(bytesData)
  658. //url := "http://192.168.1.99:10000"
  659. url := "http://192.168.1.228:17001/szsi-portal/transData"
  660. request, err := http.NewRequest("POST", url, reader)
  661. if err != nil {
  662. fmt.Println(err.Error())
  663. return err.Error()
  664. }
  665. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  666. client := http.Client{}
  667. resp, err := client.Do(request)
  668. if err != nil {
  669. fmt.Println(err.Error())
  670. return err.Error()
  671. }
  672. respBytes, err := ioutil.ReadAll(resp.Body)
  673. if err != nil {
  674. fmt.Println(err.Error())
  675. return err.Error()
  676. }
  677. fmt.Println(string(respBytes))
  678. str := string(respBytes)
  679. return str
  680. }
  681. //func SzybML009(doctor string, doctor_code string, fixmedins_code string, datas []*models.ProjectDetail) string {
  682. // //生成输入报文
  683. // inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  684. //
  685. // inputData := make(map[string]interface{})
  686. //
  687. // inputData["listsize"] = len(datas)
  688. // inputMessage["transType"] = "ML009" // 交易编码
  689. // feedetail := make([]map[string]interface{}, 0)
  690. //
  691. // for _, item := range datas {
  692. // feedetailInfo := make(map[string]interface{})
  693. // feedetailInfo["ake001"] = item.SocialSecurityDirectoryCode //社保目录编码
  694. // feedetailInfo["ake005"] = item.SocialSecurityDirectoryCode //协议机构内部目录编码
  695. // feedetailInfo["ake006"] = item.ProjectName // 协议机构内部目录名称
  696. // feedetailInfo["bkf131"] = item.Category //协议机构项目类别
  697. // feedetailInfo["bkm062"] = "0" // 门诊特检项目标识
  698. // feedetailInfo["bka506"] = item.Price // 协议机构内部项目收费价格
  699. // feedetailInfo["aae030"] = 20210407 // 备案日期
  700. // feedetailInfo["aae013"] = item.Remark // 备注
  701. // feedetail = append(feedetail, feedetailInfo)
  702. // }
  703. // fmt.Println("feeedDetal2333333333", feedetail)
  704. // inputData["inputlist"] = feedetail
  705. // inputMessage["transBody"] = inputData
  706. //
  707. // bytesData, err := json.Marshal(inputMessage)
  708. // fmt.Println(string(bytesData))
  709. // if err != nil {
  710. // fmt.Println(err.Error())
  711. // return err.Error()
  712. // }
  713. // reader := bytes.NewReader(bytesData)
  714. // //url := "http://192.168.1.99:10000"
  715. // url := "http://192.168.1.228:17001/szsi-portal/transData"
  716. //
  717. // request, err := http.NewRequest("POST", url, reader)
  718. // if err != nil {
  719. // fmt.Println(err.Error())
  720. // return err.Error()
  721. // }
  722. //
  723. // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  724. //
  725. // client := http.Client{}
  726. // resp, err := client.Do(request)
  727. // if err != nil {
  728. // fmt.Println(err.Error())
  729. // return err.Error()
  730. // }
  731. // respBytes, err := ioutil.ReadAll(resp.Body)
  732. // if err != nil {
  733. // fmt.Println(err.Error())
  734. // return err.Error()
  735. // }
  736. // fmt.Println(string(respBytes))
  737. // str := string(respBytes)
  738. // return str
  739. //
  740. //}
  741. func SzybML010(doctor string, doctor_code string, fixmedins_code string, datas []*models.DrugDetail, typeId int64) string {
  742. //生成输入报文
  743. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  744. inputData := make(map[string]interface{})
  745. inputData["listsize"] = len(datas)
  746. inputMessage["transType"] = "ML010" // 交易编码
  747. feedetail := make([]map[string]interface{}, 0)
  748. for _, item := range datas {
  749. feedetailInfo := make(map[string]interface{})
  750. feedetailInfo["ake003"] = strconv.FormatInt(typeId, 10)
  751. feedetailInfo["ake001"] = item.MedicalInsuranceNumber //社保目录编码
  752. feedetailInfo["ake005"] = item.MedicalInsuranceNumber //协议机构内部目录编码
  753. feedetail = append(feedetail, feedetailInfo)
  754. }
  755. inputData["inputlist"] = feedetail
  756. inputMessage["transBody"] = inputData
  757. bytesData, err := json.Marshal(inputMessage)
  758. fmt.Println(string(bytesData))
  759. if err != nil {
  760. fmt.Println(err.Error())
  761. return err.Error()
  762. }
  763. reader := bytes.NewReader(bytesData)
  764. //url := "http://192.168.1.99:10000"
  765. url := "http://192.168.1.228:17001/szsi-portal/transData"
  766. request, err := http.NewRequest("POST", url, reader)
  767. if err != nil {
  768. fmt.Println(err.Error())
  769. return err.Error()
  770. }
  771. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  772. client := http.Client{}
  773. resp, err := client.Do(request)
  774. if err != nil {
  775. fmt.Println(err.Error())
  776. return err.Error()
  777. }
  778. respBytes, err := ioutil.ReadAll(resp.Body)
  779. if err != nil {
  780. fmt.Println(err.Error())
  781. return err.Error()
  782. }
  783. fmt.Println(string(respBytes))
  784. str := string(respBytes)
  785. return str
  786. }
  787. func SzybYS001(doctor string, doctor_code string, fixmedins_code string, datas []*models.DocDetail) string {
  788. //生成输入报文
  789. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  790. inputData := make(map[string]interface{})
  791. inputData["listsize"] = len(datas)
  792. inputMessage["transType"] = "YS001" // 交易编码
  793. feedetail := make([]map[string]interface{}, 0)
  794. for _, item := range datas {
  795. fmt.Println("item222222", item.RoleId)
  796. feedetailInfo := make(map[string]interface{})
  797. feedetailInfo["aac003"] = item.UserName
  798. feedetailInfo["bka633"] = "1"
  799. feedetailInfo["aac004"] = item.Sex
  800. feedetailInfo["aac058"] = item.CardType
  801. feedetailInfo["aac147"] = item.IdCard
  802. feedetailInfo["aae005"] = item.Phone
  803. feedetailInfo["bkc322"] = item.WorkMajorName
  804. feedetailInfo["aac005"] = item.Nation
  805. feedetailInfo["aac006"] = item.BirthDay
  806. feedetailInfo["aac007"] = item.WorkTime
  807. feedetailInfo["aac011"] = item.Education
  808. feedetailInfo["aac183"] = item.StudyMajorName
  809. feedetailInfo["bkc323"] = item.CertificateCode
  810. feedetailInfo["bke955"] = item.MedicalCode
  811. feedetailInfo["akc055"] = item.MedicalRangeCode
  812. feedetailInfo["bcc950"] = item.MedicalLevel
  813. feedetailInfo["bcc955"] = item.TypeJob
  814. feedetailInfo["bka503"] = item.DoctorNumber
  815. feedetailInfo["bkc324"] = item.Licensing
  816. feedetailInfo["bkc326"] = item.DoctorServiceStatus
  817. feedetailInfo["bkc328"] = item.MonitoringLevel
  818. feedetailInfo["bkc329"] = item.DrugPsychotropicSubstances
  819. feedetailInfo["bke801"] = item.HealthCareCode
  820. feedetailInfo["bkc330"] = item.PlanningTechnicalServiceCode
  821. feedetailInfo["bkc332"] = item.PharmacistType
  822. feedetailInfo["bkc333"] = item.PharmacistPracticeCategory
  823. feedetailInfo["bkc334"] = item.PharmacistsLicensing
  824. feedetailInfo["bkc335"] = item.PharmacistRegistrationNumber
  825. feedetailInfo["akf001"] = item.OfficeCode
  826. feedetailInfo["acc501"] = item.JobNumber
  827. feedetailInfo["ahc451"] = item.PostName
  828. feedetailInfo["aaf009"] = item.TechnicalJobLevelCode
  829. feedetailInfo["bkc321"] = item.IsActive
  830. feedetailInfo["ckc302"] = item.PrescriptionQualificationIdentification
  831. feedetailInfo["bkc325"] = item.IdentificationOutpatients
  832. feedetailInfo["ckc304"] = item.OutpatientIllnessCategory
  833. feedetailInfo["aae030"] = item.StartTime
  834. feedetail = append(feedetail, feedetailInfo)
  835. }
  836. inputData["inputlist"] = feedetail
  837. inputMessage["transBody"] = inputData
  838. bytesData, err := json.Marshal(inputMessage)
  839. fmt.Println(string(bytesData))
  840. if err != nil {
  841. fmt.Println(err.Error())
  842. return err.Error()
  843. }
  844. reader := bytes.NewReader(bytesData)
  845. //url := "http://192.168.1.99:10000"
  846. url := "http://192.168.1.228:17001/szsi-portal/transData"
  847. request, err := http.NewRequest("POST", url, reader)
  848. if err != nil {
  849. fmt.Println(err.Error())
  850. return err.Error()
  851. }
  852. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  853. client := http.Client{}
  854. resp, err := client.Do(request)
  855. if err != nil {
  856. fmt.Println(err.Error())
  857. return err.Error()
  858. }
  859. respBytes, err := ioutil.ReadAll(resp.Body)
  860. if err != nil {
  861. fmt.Println(err.Error())
  862. return err.Error()
  863. }
  864. fmt.Println(string(respBytes))
  865. str := string(respBytes)
  866. return str
  867. }
  868. func SzybYS002(doctor string, doctor_code string, fixmedins_code string, datas []*models.DocDetail) string {
  869. //生成输入报文
  870. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  871. inputData := make(map[string]interface{})
  872. inputData["listsize"] = len(datas)
  873. inputMessage["transType"] = "YS002" // 交易编码
  874. feedetail := make([]map[string]interface{}, 0)
  875. for _, item := range datas {
  876. fmt.Println("item2222", item)
  877. feedetailInfo := make(map[string]interface{})
  878. feedetailInfo["bkc320"] = "H27224269"
  879. feedetailInfo["bke155"] = "4"
  880. feedetail = append(feedetail, feedetailInfo)
  881. }
  882. inputData["inputlist"] = feedetail
  883. inputMessage["transBody"] = inputData
  884. bytesData, err := json.Marshal(inputMessage)
  885. fmt.Println(string(bytesData))
  886. if err != nil {
  887. fmt.Println(err.Error())
  888. return err.Error()
  889. }
  890. reader := bytes.NewReader(bytesData)
  891. //url := "http://192.168.1.99:10000"
  892. url := "http://192.168.1.228:17001/szsi-portal/transData"
  893. request, err := http.NewRequest("POST", url, reader)
  894. if err != nil {
  895. fmt.Println(err.Error())
  896. return err.Error()
  897. }
  898. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  899. client := http.Client{}
  900. resp, err := client.Do(request)
  901. if err != nil {
  902. fmt.Println(err.Error())
  903. return err.Error()
  904. }
  905. respBytes, err := ioutil.ReadAll(resp.Body)
  906. if err != nil {
  907. fmt.Println(err.Error())
  908. return err.Error()
  909. }
  910. fmt.Println(string(respBytes))
  911. str := string(respBytes)
  912. return str
  913. }
  914. func SzybYS003(doctor string, doctor_code string, fixmedins_code string, datas []*models.DocDetail) string {
  915. //生成输入报文
  916. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  917. inputData := make(map[string]interface{})
  918. inputData["listsize"] = len(datas)
  919. inputMessage["transType"] = "YS003" // 交易编码
  920. feedetail := make([]map[string]interface{}, 0)
  921. for _, item := range datas {
  922. feedetailInfo := make(map[string]interface{})
  923. feedetailInfo["bkc320"] = item.StaffCode
  924. feedetailInfo["aac003"] = item.UserName
  925. feedetailInfo["bka633"] = item.RoleId
  926. feedetailInfo["aac004"] = item.Sex
  927. feedetailInfo["aac058"] = item.CardType
  928. feedetailInfo["aac147"] = item.IdCard
  929. feedetailInfo["aae005"] = item.Phone
  930. feedetailInfo["bkc322"] = item.WorkMajorName
  931. feedetailInfo["aac005"] = item.Nation
  932. feedetailInfo["aac006"] = item.BirthDay
  933. feedetailInfo["aac007"] = item.WorkTime
  934. feedetailInfo["aac011"] = item.Education
  935. feedetailInfo["aac183"] = item.StudyMajorName
  936. feedetailInfo["bkc323"] = item.CertificateCode
  937. feedetailInfo["bke955"] = item.MedicalCode
  938. feedetailInfo["akc055"] = item.MedicalRangeCode
  939. feedetailInfo["bcc950"] = item.MedicalLevel
  940. feedetailInfo["bcc955"] = item.TypeJob
  941. feedetailInfo["bka503"] = item.DoctorNumber
  942. feedetailInfo["bkc324"] = item.Licensing
  943. feedetailInfo["bkc326"] = item.DoctorServiceStatus
  944. feedetailInfo["bkc328"] = item.MonitoringLevel
  945. feedetailInfo["bkc329"] = item.DrugPsychotropicSubstances
  946. feedetailInfo["bke801"] = item.HealthCareCode
  947. feedetailInfo["bkc330"] = item.PlanningTechnicalServiceCode
  948. feedetailInfo["bkc332"] = item.PharmacistType
  949. feedetailInfo["bkc333"] = item.PharmacistPracticeCategory
  950. feedetailInfo["bkc334"] = item.PharmacistsLicensing
  951. feedetailInfo["bkc335"] = item.PharmacistRegistrationNumber
  952. feedetailInfo["akf001"] = item.OfficeCode
  953. feedetailInfo["acc501"] = item.JobNumber
  954. feedetailInfo["ahc451"] = item.PostName
  955. feedetailInfo["aaf009"] = item.TechnicalJobLevelCode
  956. feedetailInfo["bkc321"] = item.IsActive
  957. feedetailInfo["ckc302"] = item.PrescriptionQualificationIdentification
  958. feedetailInfo["bkc325"] = item.IdentificationOutpatients
  959. feedetailInfo["ckc304"] = item.OutpatientIllnessCategory
  960. feedetailInfo["aae030"] = item.StartTime
  961. feedetailInfo["aae031"] = item.EndTime
  962. feedetail = append(feedetail, feedetailInfo)
  963. }
  964. inputData["inputlist"] = feedetail
  965. inputMessage["transBody"] = inputData
  966. bytesData, err := json.Marshal(inputMessage)
  967. fmt.Println(string(bytesData))
  968. if err != nil {
  969. fmt.Println(err.Error())
  970. return err.Error()
  971. }
  972. reader := bytes.NewReader(bytesData)
  973. //url := "http://192.168.1.99:10000"
  974. url := "http://192.168.1.228:17001/szsi-portal/transData"
  975. request, err := http.NewRequest("POST", url, reader)
  976. if err != nil {
  977. fmt.Println(err.Error())
  978. return err.Error()
  979. }
  980. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  981. client := http.Client{}
  982. resp, err := client.Do(request)
  983. if err != nil {
  984. fmt.Println(err.Error())
  985. return err.Error()
  986. }
  987. respBytes, err := ioutil.ReadAll(resp.Body)
  988. if err != nil {
  989. fmt.Println(err.Error())
  990. return err.Error()
  991. }
  992. fmt.Println(string(respBytes))
  993. str := string(respBytes)
  994. return str
  995. }
  996. func SzybYML007(doctor string, doctor_code string, fixmedins_code string, infor *models.XtGoodInformation) string {
  997. //生成输入报文
  998. inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  999. inputData := make(map[string]interface{})
  1000. inputMessage["transType"] = "ML007" // 交易编码
  1001. feedetail := make([]map[string]interface{}, 0)
  1002. feedetailInfo := make(map[string]interface{})
  1003. feedetailInfo["ake001"] = infor.SocialSecurityDirectoryCode // 社保目录编码
  1004. //feedetailInfo["ake001"] = "3333333333" // 社保目录编码
  1005. feedetailInfo["ake005"] = infor.SocialSecurityDirectoryCode //协议机构内部目录编码
  1006. //feedetailInfo["ake006"] = item.GoodName //医药机构内部目录名称
  1007. feedetailInfo["ake006"] = "222222" //医药机构内部目录名称
  1008. feedetailInfo["bka053"] = infor.ManufacturerName //生产厂家
  1009. feedetailInfo["ake004"] = infor.ProductionType //生产地类别
  1010. feedetailInfo["ckf261"] = infor.SpecialMedical //特殊医用材料标识
  1011. feedetailInfo["aka067"] = "支" //计价单位
  1012. feedetailInfo["aka074"] = infor.SpecificationName //规格
  1013. feedetailInfo["bka505"] = infor.BuyPrice //进货价
  1014. feedetailInfo["bka506"] = infor.SellPrice // 收获价
  1015. feedetailInfo["aae013"] = infor.Remark //备注
  1016. feedetail = append(feedetail, feedetailInfo)
  1017. inputData["inputlist"] = feedetail
  1018. inputMessage["transBody"] = inputData
  1019. bytesData, err := json.Marshal(inputMessage)
  1020. fmt.Println(string(bytesData))
  1021. if err != nil {
  1022. fmt.Println(err.Error())
  1023. return err.Error()
  1024. }
  1025. reader := bytes.NewReader(bytesData)
  1026. //url := "http://192.168.1.99:10000"
  1027. url := "http://192.168.1.228:17001/szsi-portal/transData"
  1028. request, err := http.NewRequest("POST", url, reader)
  1029. if err != nil {
  1030. fmt.Println(err.Error())
  1031. return err.Error()
  1032. }
  1033. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  1034. client := http.Client{}
  1035. resp, err := client.Do(request)
  1036. if err != nil {
  1037. fmt.Println(err.Error())
  1038. return err.Error()
  1039. }
  1040. respBytes, err := ioutil.ReadAll(resp.Body)
  1041. if err != nil {
  1042. fmt.Println(err.Error())
  1043. return err.Error()
  1044. }
  1045. fmt.Println(string(respBytes))
  1046. str := string(respBytes)
  1047. return str
  1048. }
  1049. //func SzybYML007(doctor string, doctor_code string, fixmedins_code string, datas []*models.GoodDetail) string {
  1050. //
  1051. // //生成输入报文
  1052. // inputMessage := SetSZDrugMessage(doctor, doctor_code, fixmedins_code)
  1053. //
  1054. // inputData := make(map[string]interface{})
  1055. //
  1056. // inputData["listsize"] = len(datas)
  1057. // inputMessage["transType"] = "ML007" // 交易编码
  1058. // feedetail := make([]map[string]interface{}, 0)
  1059. //
  1060. // for _, item := range datas {
  1061. // fmt.Println("item222222222", item.BuyPrice)
  1062. // feedetailInfo := make(map[string]interface{})
  1063. // feedetailInfo["ake001"] = item.SocialSecurityDirectoryCode // 社保目录编码
  1064. // //feedetailInfo["ake001"] = "3333333333" // 社保目录编码
  1065. // feedetailInfo["ake005"] = item.SocialSecurityDirectoryCode //协议机构内部目录编码
  1066. // //feedetailInfo["ake006"] = item.GoodName //医药机构内部目录名称
  1067. // feedetailInfo["ake006"] = "222222" //医药机构内部目录名称
  1068. // feedetailInfo["bka053"] = item.ManufacturerName //生产厂家
  1069. // feedetailInfo["ake004"] = "1" //生产地类别
  1070. // feedetailInfo["ckf261"] = "1" //特殊医用材料标识
  1071. // feedetailInfo["aka067"] = "支" //计价单位
  1072. // feedetailInfo["aka074"] = "ftp" //规格
  1073. // feedetailInfo["bka505"] = item.BuyPrice //进货价
  1074. // feedetailInfo["bka506"] = item.SellPrice // 收获价
  1075. // feedetailInfo["aae013"] = item.Remark //备注
  1076. // feedetail = append(feedetail, feedetailInfo)
  1077. // }
  1078. //
  1079. // inputData["inputlist"] = feedetail
  1080. // inputMessage["transBody"] = inputData
  1081. //
  1082. // bytesData, err := json.Marshal(inputMessage)
  1083. // fmt.Println(string(bytesData))
  1084. // if err != nil {
  1085. // fmt.Println(err.Error())
  1086. // return err.Error()
  1087. // }
  1088. // reader := bytes.NewReader(bytesData)
  1089. // //url := "http://192.168.1.99:10000"
  1090. // url := "http://192.168.1.228:17001/szsi-portal/transData"
  1091. //
  1092. // request, err := http.NewRequest("POST", url, reader)
  1093. // if err != nil {
  1094. // fmt.Println(err.Error())
  1095. // return err.Error()
  1096. // }
  1097. //
  1098. // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  1099. //
  1100. // client := http.Client{}
  1101. // resp, err := client.Do(request)
  1102. // if err != nil {
  1103. // fmt.Println(err.Error())
  1104. // return err.Error()
  1105. // }
  1106. // respBytes, err := ioutil.ReadAll(resp.Body)
  1107. // if err != nil {
  1108. // fmt.Println(err.Error())
  1109. // return err.Error()
  1110. // }
  1111. // fmt.Println(string(respBytes))
  1112. // str := string(respBytes)
  1113. // return str
  1114. //}
  1115. func GetDoseCode(dose_id int64, user_org_id int64) (error, string) {
  1116. var data models.DictDataconfig
  1117. err := readDb.Model(&models.DictDataconfig{}).Where(" (org_id = ? Or org_id = 0) AND parent_id = 4 AND module = 'system' AND status = 1 AND value = ?", user_org_id, dose_id).First(&data).Error
  1118. return err, data.Code
  1119. }
  1120. func UpdataOrderStatusSZ(id int64, number string, user_org_id int64, his_mz_number string, his_number string) (err error) {
  1121. err = writeDb.Model(&models.HisOrder{}).Where("status = 1 AND id = ? AND user_org_id = ?", id, user_org_id).Updates(map[string]interface{}{"order_status": 3, "mtime": time.Now().Unix(), "status": 0}).Error
  1122. err = writeDb.Model(&models.HisPrescription{}).Where("status = 1 AND batch_number = ? AND user_org_id = ?", number, user_org_id).Updates(map[string]interface{}{"order_status": 1, "mtime": time.Now().Unix()}).Error
  1123. err = writeDb.Model(&models.HisPrescriptionInfo{}).Where("status = 1 AND batch_number = ? AND user_org_id = ?", number, user_org_id).Updates(map[string]interface{}{"prescription_status": 1, "mtime": time.Now().Unix()}).Error
  1124. err = writeDb.Model(&models.HisPatient{}).Where("status = 1 AND user_org_id = ? AND mz_number = ? AND number = ?", user_org_id, his_mz_number, his_number).Updates(map[string]interface{}{"status": 0, "mtime": time.Now().Unix()}).Error
  1125. return
  1126. }
  1127. func UpdataOrderlog(id int64, user_org_id int64, refund_log string) (err error) {
  1128. err = writeDb.Model(&models.HisOrder{}).Where("status = 1 AND id = ? AND user_org_id = ?", id, user_org_id).Updates(map[string]interface{}{"order_status": 3, "mtime": time.Now().Unix(), "status": 0, "refund_log": refund_log}).Error
  1129. return
  1130. }
  1131. func UpdateBaseDrugById(id int64) (models.XtBaseDrug, error) {
  1132. drug := models.XtBaseDrug{}
  1133. err := XTWriteDB().Model(&drug).Where("id = ?", id).Updates(map[string]interface{}{"is_mark": 1}).Error
  1134. return drug, err
  1135. }
  1136. func UpdateDrugByIdDetail(id int64) (models.XtBaseDrug, error) {
  1137. drug := models.XtBaseDrug{}
  1138. err := XTWriteDB().Model(&drug).Where("id = ?", id).Updates(map[string]interface{}{"is_mark": 0}).Error
  1139. return drug, err
  1140. }
  1141. func UpdateGoodInformaitonByDetail(id int64) (models.XtGoodInformation, error) {
  1142. information := models.XtGoodInformation{}
  1143. err := XTWriteDB().Model(&information).Where("id=?", id).Updates(map[string]interface{}{"is_mark": 1}).Error
  1144. return information, err
  1145. }
  1146. func UpdateGoodInfoById(id int64) (models.XtGoodInformation, error) {
  1147. information := models.XtGoodInformation{}
  1148. err := XTWriteDB().Model(&information).Where("id=?", id).Updates(map[string]interface{}{"is_mark": 0}).Error
  1149. return information, err
  1150. }
  1151. func UpdateProjectById(id int64) (models.MyHisProject, error) {
  1152. project := models.MyHisProject{}
  1153. err := XTWriteDB().Model(&project).Where("id = ?", id).Updates(map[string]interface{}{"is_mark": 1}).Error
  1154. return project, err
  1155. }
  1156. func UpdateMyProjectById(id int64) (models.MyHisProject, error) {
  1157. project := models.MyHisProject{}
  1158. err := XTWriteDB().Model(&project).Where("id = ?", id).Updates(map[string]interface{}{"is_mark": 0}).Error
  1159. return project, err
  1160. }