jx_dianzichufang.go 29KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845
  1. package service
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "fmt"
  6. "gdyb/models"
  7. "io/ioutil"
  8. "net/http"
  9. "os/exec"
  10. "strings"
  11. "os"
  12. )
  13. func GetJXCFYLJG001(url string, cFYLJG001 models.CFYLJG001, isu string) (string, string) {
  14. inputData := make(map[string]interface{}, 0)
  15. inputData["mdtrtCertType"] = cFYLJG001.MdtrtCertType
  16. inputData["mdtrtCertNo"] = cFYLJG001.MdtrtCertNo
  17. inputData["cardSn"] = cFYLJG001.CardSn
  18. inputData["bizTypeCode"] = cFYLJG001.BizTypeCode
  19. inputData["rxExraAttrCode"] = ""
  20. inputData["ecToken"] = cFYLJG001.EcToken
  21. inputData["authNo"] = cFYLJG001.AuthNo
  22. inputData["insuPlcNo"] = ""
  23. inputData["mdtrtareaNo"] = ""
  24. inputData["hospRxno"] = cFYLJG001.HospRxno
  25. inputData["initRxno"] = cFYLJG001.InitRxno
  26. inputData["rxTypeCode"] = cFYLJG001.RxTypeCode
  27. inputData["prscTime"] = cFYLJG001.PrscTime
  28. inputData["rxDrugCnt"] = cFYLJG001.RxDrugCnt
  29. inputData["rxUsedWayCodg"] = cFYLJG001.RxUsedWayCodg
  30. inputData["rxUsedWayName"] = cFYLJG001.RxUsedWayName
  31. inputData["rxFrquCodg"] = cFYLJG001.RxFrquCodg
  32. inputData["rxFrquName"] = cFYLJG001.RxFrquName
  33. inputData["rxDosunt"] = cFYLJG001.RxDosunt
  34. inputData["rxDoscnt"] = cFYLJG001.RxDoscnt
  35. inputData["rxDrordDscr"] = cFYLJG001.RxDrordDscr
  36. inputData["valiDays"] = cFYLJG001.ValiDays
  37. inputData["valiEndTime"] = cFYLJG001.ValiEndTime
  38. inputData["reptFlag"] = cFYLJG001.ReptFlag
  39. inputData["maxReptCnt"] = cFYLJG001.MaxReptCnt
  40. inputData["minInrvDays"] = cFYLJG001.MinInrvDays
  41. inputData["rxCotnFlag"] = cFYLJG001.RxCotnFlag
  42. inputData["longRxFlag"] = cFYLJG001.LongRxFlag
  43. rxdrugdetail := make([]map[string]interface{}, 0)
  44. rxdrug := make(map[string]interface{})
  45. for _, item := range cFYLJG001.List {
  46. rxdrug["medListCodg"] = item.MedListCodg
  47. rxdrug["fixmedinsHilistId"] = item.MedinsListCodg
  48. rxdrug["hospPrepFlag"] = item.HospPrepFlag
  49. rxdrug["rxItemTypeCode"] = item.RxItemTypeCode
  50. rxdrug["rxItemTypeName"] = item.RxItemTypeName
  51. rxdrug["tcmdrugTypeName"] = item.TcmdrugTypeName
  52. rxdrug["tcmdrugTypeCode"] = item.TcmdrugTypeCode
  53. rxdrug["tcmherbFoote"] = item.TcmherbFoote
  54. rxdrug["mednTypeCode"] = item.MednTypeCode
  55. rxdrug["mednTypeName"] = item.MednTypeName
  56. rxdrug["mainMedcFlag"] = item.MainMedcFlag
  57. rxdrug["urgtFlag"] = item.UrgtFlag
  58. rxdrug["basMednFlag"] = item.BasMednFlag
  59. rxdrug["impDrugFlag"] = item.ImpDrugFlag
  60. rxdrug["otcFlag"] = ""
  61. rxdrug["drugGenname"] = item.DrugGenname
  62. rxdrug["drugDosform"] = item.DrugDosform
  63. rxdrug["drugSpec"] = item.DrugSpec
  64. rxdrug["drugProdname"] = item.DrugProdname
  65. rxdrug["prdrName"] = item.PrdrName
  66. rxdrug["medcWayCodg"] = item.MedcWayCodg
  67. rxdrug["medcWayDscr"] = item.MedcWayDscr
  68. rxdrug["medcBegntime"] = item.MedcBegntime
  69. rxdrug["medcEndtime"] = item.MedcEndtime
  70. rxdrug["medcDays"] = item.MedcDays
  71. rxdrug["sinDosunt"] = item.SinDosunt
  72. rxdrug["sinDoscnt"] = item.SinDoscnt
  73. rxdrug["usedFrquCodg"] = item.UsedFrquCodg
  74. rxdrug["usedFrquName"] = item.UsedFrquName
  75. rxdrug["drugDosunt"] = item.DrugDosunt
  76. rxdrug["drugCnt"] = item.DrugCnt
  77. rxdrug["drugPric"] = item.DrugPric
  78. rxdrug["drugSumamt"] = item.DrugSumamt
  79. rxdrug["hospApprFlag"] = item.HospApprFlag
  80. rxdrug["selfPayRea"] = ""
  81. rxdrug["realDscr"] = ""
  82. rxdrug["extras"] = ""
  83. rxdrugdetail = append(rxdrugdetail, rxdrug)
  84. }
  85. inputData["rxdrugdetail"] = rxdrugdetail
  86. mdtrtinfo := make(map[string]interface{})
  87. mdtrtinfo["fixmedinsCode"] = cFYLJG001.Mdtrtinfo.FixmedinsCode
  88. mdtrtinfo["fixmedinsName"] = cFYLJG001.Mdtrtinfo.FixmedinsName
  89. mdtrtinfo["mdtrtId"] = cFYLJG001.Mdtrtinfo.MdtrtID
  90. mdtrtinfo["medType"] = cFYLJG001.Mdtrtinfo.MedType
  91. mdtrtinfo["iptOtpNo"] = cFYLJG001.Mdtrtinfo.IptOtpNo
  92. mdtrtinfo["otpIptFlag"] = cFYLJG001.Mdtrtinfo.OtpIptFlag
  93. mdtrtinfo["psnNo"] = cFYLJG001.Mdtrtinfo.PsnNo
  94. mdtrtinfo["patnName"] = cFYLJG001.Mdtrtinfo.PatnName
  95. mdtrtinfo["psnCertType"] = cFYLJG001.Mdtrtinfo.PsnCertType
  96. mdtrtinfo["certno"] = cFYLJG001.Mdtrtinfo.Certno
  97. mdtrtinfo["patnAge"] = cFYLJG001.Mdtrtinfo.PatnAge
  98. mdtrtinfo["patnHgt"] = cFYLJG001.Mdtrtinfo.PatnHgt
  99. mdtrtinfo["patnWt"] = cFYLJG001.Mdtrtinfo.PatnWt
  100. mdtrtinfo["gend"] = cFYLJG001.Mdtrtinfo.Gend
  101. mdtrtinfo["birctrlType"] = cFYLJG001.Mdtrtinfo.BirctrlType
  102. mdtrtinfo["birctrlMatnDate"] = cFYLJG001.Mdtrtinfo.BirctrlMatnDate
  103. mdtrtinfo["matnType"] = cFYLJG001.Mdtrtinfo.MatnType
  104. mdtrtinfo["gesoVal"] = cFYLJG001.Mdtrtinfo.GesoVal
  105. mdtrtinfo["nwbFlag"] = cFYLJG001.Mdtrtinfo.NwbFlag
  106. mdtrtinfo["nwbAge"] = cFYLJG001.Mdtrtinfo.NwbAge
  107. mdtrtinfo["suckPrdFlag"] = cFYLJG001.Mdtrtinfo.SuckPrdFlag
  108. mdtrtinfo["algsHis"] = cFYLJG001.Mdtrtinfo.AlgsHis
  109. mdtrtinfo["prscDeptName"] = cFYLJG001.Mdtrtinfo.PrscDeptName
  110. mdtrtinfo["prscDeptCode"] = cFYLJG001.Mdtrtinfo.PrscDeptCode
  111. mdtrtinfo["drCode"] = cFYLJG001.Mdtrtinfo.DrCode
  112. mdtrtinfo["prscDrName"] = cFYLJG001.Mdtrtinfo.PrscDrName
  113. mdtrtinfo["prscDrCertType"] = cFYLJG001.Mdtrtinfo.PrscDrCertType
  114. mdtrtinfo["prscDrCertno"] = cFYLJG001.Mdtrtinfo.PrscDrCertno
  115. mdtrtinfo["drProfttlCodg"] = cFYLJG001.Mdtrtinfo.DrProfttlCodg
  116. mdtrtinfo["drProfttlName"] = cFYLJG001.Mdtrtinfo.DrProfttlName
  117. mdtrtinfo["drDeptCode"] = cFYLJG001.Mdtrtinfo.DrDeptCode
  118. mdtrtinfo["drDeptName"] = cFYLJG001.Mdtrtinfo.DrDeptName
  119. mdtrtinfo["caty"] = cFYLJG001.Mdtrtinfo.Caty
  120. mdtrtinfo["mdtrtTime"] = cFYLJG001.Mdtrtinfo.MdtrtTime
  121. mdtrtinfo["diseCodg"] = cFYLJG001.Mdtrtinfo.DiseCodg
  122. mdtrtinfo["diseName"] = cFYLJG001.Mdtrtinfo.DiseName
  123. mdtrtinfo["spDiseFlag"] = cFYLJG001.Mdtrtinfo.SpDiseFlag
  124. mdtrtinfo["maindiagCode"] = cFYLJG001.Mdtrtinfo.MaindiagCode
  125. mdtrtinfo["maindiagName"] = cFYLJG001.Mdtrtinfo.MaindiagName
  126. mdtrtinfo["diseCondDscr"] = cFYLJG001.Mdtrtinfo.DiseCondDscr
  127. mdtrtinfo["hiFeesetlType"] = cFYLJG001.Mdtrtinfo.HiFeesetlFlag
  128. mdtrtinfo["hiFeesetlName"] = cFYLJG001.Mdtrtinfo.HiFeesetlName
  129. mdtrtinfo["rgstFee"] = cFYLJG001.Mdtrtinfo.RgstFee
  130. mdtrtinfo["medfeeSumamt"] = cFYLJG001.Mdtrtinfo.MedfeeSumamt
  131. mdtrtinfo["fstdiagFlag"] = cFYLJG001.Mdtrtinfo.FstdiagFlag
  132. type MyData struct {
  133. Insutype string `json:"insutype"`
  134. }
  135. data := MyData{
  136. Insutype: isu,
  137. }
  138. mdtrtinfo["extras"] = data
  139. inputData["mdtrtinfo"] = mdtrtinfo
  140. diseinfos := make([]map[string]interface{}, 0)
  141. for _, item := range cFYLJG001.Diseinfo {
  142. diseinfo := make(map[string]interface{})
  143. diseinfo["diagType"] = item.DiagType
  144. diseinfo["maindiagFlag"] = item.MaindiagFlag
  145. diseinfo["diagSrtNo"] = item.DiagSrtNo
  146. diseinfo["diagCode"] = item.DiagCode
  147. diseinfo["diagName"] = item.DiagName
  148. diseinfo["diagDept"] = item.DiagDept
  149. diseinfo["diagDeptCode"] = ""
  150. diseinfo["diagDrNo"] = item.DiagDrNo
  151. diseinfo["diagDrName"] = item.DiagDrName
  152. diseinfo["diagTime"] = item.DiagTime
  153. diseinfo["tcmDiseCode"] = item.TcmDiseCode
  154. diseinfo["tcmDiseName"] = item.TcmDiseName
  155. diseinfo["tcmsympCode"] = item.TcmsympCode
  156. diseinfo["tcmsymp"] = item.Tcmsymp
  157. diseinfos = append(diseinfos, diseinfo)
  158. }
  159. inputData["diseinfo"] = diseinfos
  160. var inputLog string
  161. bytesData, err := json.Marshal(inputData)
  162. inputLog = string(bytesData)
  163. fmt.Println(inputLog)
  164. cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=", inputLog)
  165. out, err := cmd.Output()
  166. aa := strings.Split(string(out),"======")
  167. fmt.Println(aa[1])
  168. reader := bytes.NewReader([]byte(aa[1]))
  169. url = url + "/fixmedins/uploadChk"
  170. fmt.Println(url)
  171. request, err := http.NewRequest("POST", url, reader)
  172. if err != nil {
  173. fmt.Println(err.Error())
  174. return err.Error(), ""
  175. }
  176. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  177. client := http.Client{}
  178. resp, err := client.Do(request)
  179. if err != nil {
  180. fmt.Println(err.Error())
  181. return err.Error(), ""
  182. }
  183. respBytes, err := ioutil.ReadAll(resp.Body)
  184. if err != nil {
  185. fmt.Println(err.Error())
  186. return err.Error(), ""
  187. }
  188. str := string(respBytes)
  189. var data2 map[string]interface{}
  190. // 解析 JSON 字符串到 map
  191. json.Unmarshal([]byte(str), &data2)
  192. // 检查 code 字段是否存在,并将其转换为字符串
  193. if val, ok := data2["code"]; ok {
  194. data2["code"] = fmt.Sprintf("%v", val) // 将 code 转换为字符串
  195. }
  196. // 将处理后的数据重新转换为 JSON 字符串
  197. updatedJSON2, _ := json.Marshal(data2)
  198. fmt.Println(string(updatedJSON2))
  199. cmd2 := exec.Command("java", "-jar", "encrypt-utils-all.jar", "decrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "BDoCErhDkP7KEG/BqNpjKIG5a3CapA8wbhXMNemzu+/fQD2kiW9rIDVLHxOEpAwnCuftjdZqf4Bz3x2gFShyk/8=", string(updatedJSON2))
  200. out2, _ := cmd2.Output()
  201. fmt.Println(string(out2))
  202. bb := strings.Split(string(out2),"======")
  203. fmt.Println(bb[1])
  204. return bb[1], inputLog
  205. }
  206. func GetJXCFYLJG002(fixmedins_code string, url string, original_value string, original_rx_file string, extras string) (string, string) {
  207. // 生成签名
  208. // 生成输入报文
  209. inputData := make(map[string]interface{})
  210. inputData["fixmedinsCode"] = fixmedins_code
  211. inputData["originalValue"] = original_value
  212. inputData["originalRxFile"] = original_rx_file
  213. inputData["extras"] = extras
  214. var inputLog string
  215. bytesData, err := json.Marshal(inputData)
  216. inputLog = string(bytesData)
  217. fmt.Println(string(bytesData))
  218. if err != nil {
  219. fmt.Println(err.Error())
  220. return err.Error(), ""
  221. }
  222. // 将 inputLog 和其他参数写入文件
  223. // 将 inputLog 和其他参数写入文件
  224. argFileContent := inputLog // 拼接 inputLog
  225. argFilePath := "a.txt"
  226. os.WriteFile(argFilePath, []byte(argFileContent), 0644)
  227. // 构建命令
  228. //cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", )
  229. cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=")
  230. // 捕获输出
  231. output, err := cmd.CombinedOutput()
  232. if err != nil {
  233. fmt.Printf("Error: %v\n", err)
  234. }
  235. // 打印命令执行结果
  236. fmt.Printf("Output: %s\n", string(output))
  237. aa := strings.Split(string(output),"======")
  238. fmt.Println(aa[1])
  239. reader := bytes.NewReader([]byte(aa[1]))
  240. url = url + "/fixmedins/rxFixmedinsSign"
  241. request, err := http.NewRequest("POST", url, reader)
  242. if err != nil {
  243. fmt.Println(err.Error())
  244. return err.Error(), ""
  245. }
  246. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  247. client := http.Client{}
  248. resp, err := client.Do(request)
  249. if err != nil {
  250. fmt.Println(err.Error())
  251. return err.Error(), ""
  252. }
  253. respBytes, err := ioutil.ReadAll(resp.Body)
  254. if err != nil {
  255. fmt.Println(err.Error())
  256. return err.Error(), ""
  257. }
  258. argbFileContent := string(respBytes) // 拼接 inputLog
  259. var data2 map[string]interface{}
  260. // 解析 JSON 字符串到 map
  261. json.Unmarshal([]byte(argbFileContent), &data2)
  262. // 检查 code 字段是否存在,并将其转换为字符串
  263. if val, ok := data2["code"]; ok {
  264. data2["code"] = fmt.Sprintf("%v", val) // 将 code 转换为字符串
  265. }
  266. updatedJSON2, _ := json.Marshal(data2)
  267. argbFilePath := "b.txt"
  268. os.WriteFile(argbFilePath, updatedJSON2, 0644)
  269. cmd2 := exec.Command("java", "-jar", "encrypt-utils-all.jar", "decrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "BDoCErhDkP7KEG/BqNpjKIG5a3CapA8wbhXMNemzu+/fQD2kiW9rIDVLHxOEpAwnCuftjdZqf4Bz3x2gFShyk/8=")
  270. out2, err := cmd2.Output()
  271. fmt.Println(err)
  272. //fmt.Println(out2)
  273. bb := strings.Split(string(out2),"======")
  274. fmt.Println(bb[1])
  275. return bb[1], inputLog
  276. }
  277. func GetJXCFYLJG012(fixmedins_code string, url string, original_value string, original_rx_file string, extras string) (string, string) {
  278. // 生成签名
  279. // 生成输入报文
  280. inputData := make(map[string]interface{})
  281. inputData["fixmedinsCode"] = fixmedins_code
  282. inputData["originalValue"] = original_value
  283. inputData["originalRxFile"] = original_rx_file
  284. inputData["extras"] = extras
  285. var inputLog string
  286. bytesData, err := json.Marshal(inputData)
  287. inputLog = string(bytesData)
  288. fmt.Println(string(bytesData))
  289. if err != nil {
  290. fmt.Println(err.Error())
  291. return err.Error(), ""
  292. }
  293. cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=", inputLog)
  294. out, err := cmd.Output()
  295. fmt.Println(string(out))
  296. reader := bytes.NewReader(out)
  297. url = url + "/fixmedins/rxFixmedinsSign"
  298. request, err := http.NewRequest("POST", url, reader)
  299. if err != nil {
  300. fmt.Println(err.Error())
  301. return err.Error(), ""
  302. }
  303. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  304. client := http.Client{}
  305. resp, err := client.Do(request)
  306. if err != nil {
  307. fmt.Println(err.Error())
  308. return err.Error(), ""
  309. }
  310. respBytes, err := ioutil.ReadAll(resp.Body)
  311. if err != nil {
  312. fmt.Println(err.Error())
  313. return err.Error(), ""
  314. }
  315. fmt.Println(string(respBytes))
  316. str := string(respBytes)
  317. return str, inputLog
  318. }
  319. func GetJXCFYLJG003(url string, cFYLJG003 models.CFYLJG003) (string, string) {
  320. inputData := make(map[string]interface{})
  321. inputData["rxTraceCode"] = cFYLJG003.RxTraceCode
  322. inputData["hiRxno"] = cFYLJG003.HiRxno
  323. inputData["mdtrtId"] = cFYLJG003.MdtrtID
  324. inputData["patnName"] = cFYLJG003.PatnName
  325. inputData["psnCertType"] = cFYLJG003.PsnCertType
  326. inputData["certno"] = cFYLJG003.Certno
  327. inputData["fixmedinsName"] = cFYLJG003.FixmedinsName
  328. inputData["fixmedinsCode"] = cFYLJG003.FixmedinsCode
  329. inputData["drCode"] = cFYLJG003.DrCode
  330. inputData["prscDrName"] = cFYLJG003.PrscDrName
  331. inputData["pharDeptName"] = cFYLJG003.PharDeptName
  332. inputData["pharDeptCode"] = cFYLJG003.PharDeptCode
  333. inputData["pharProfttlCodg"] = ""
  334. inputData["pharProfttlName"] = ""
  335. inputData["pharCode"] = cFYLJG003.PharCode
  336. inputData["pharCertType"] = cFYLJG003.PsnCertType
  337. inputData["pharCertno"] = cFYLJG003.PharCertno
  338. inputData["pharName"] = cFYLJG003.PharName
  339. inputData["pharPracCertNo"] = cFYLJG003.PharPracCertNo
  340. inputData["pharChkTime"] = cFYLJG003.PharChkTime
  341. inputData["rxFile"] = cFYLJG003.RxFile
  342. inputData["signDigest"] = cFYLJG003.SignDigest
  343. inputData["extras"] = ""
  344. var inputLog string
  345. bytesData, err := json.Marshal(inputData)
  346. inputLog = string(bytesData)
  347. argFileContent := inputLog // 拼接 inputLog
  348. argFilePath := "a.txt"
  349. os.WriteFile(argFilePath, []byte(argFileContent), 0644)
  350. cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=")
  351. out, err := cmd.Output()
  352. fmt.Println(string(out))
  353. aa := strings.Split(string(out),"======")
  354. if err != nil {
  355. fmt.Println(err.Error())
  356. return err.Error(), ""
  357. }
  358. reader := bytes.NewReader([]byte(aa[1]))
  359. url = url + "/fixmedins/rxFileUpld"
  360. //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
  361. request, err := http.NewRequest("POST", url, reader)
  362. if err != nil {
  363. fmt.Println(err.Error())
  364. return err.Error(), ""
  365. }
  366. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  367. client := http.Client{}
  368. resp, err := client.Do(request)
  369. if err != nil {
  370. fmt.Println(err.Error())
  371. return err.Error(), ""
  372. }
  373. respBytes, err := ioutil.ReadAll(resp.Body)
  374. if err != nil {
  375. fmt.Println(err.Error())
  376. return err.Error(), ""
  377. }
  378. argbFileContent := string(respBytes) // 拼接 inputLog
  379. var data2 map[string]interface{}
  380. // 解析 JSON 字符串到 map
  381. json.Unmarshal([]byte(argbFileContent), &data2)
  382. // 检查 code 字段是否存在,并将其转换为字符串
  383. if val, ok := data2["code"]; ok {
  384. data2["code"] = fmt.Sprintf("%v", val) // 将 code 转换为字符串
  385. }
  386. updatedJSON2, _ := json.Marshal(data2)
  387. argbFilePath := "b.txt"
  388. os.WriteFile(argbFilePath, updatedJSON2, 0644)
  389. cmd2 := exec.Command("java", "-jar", "encrypt-utils-all.jar", "decrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "BDoCErhDkP7KEG/BqNpjKIG5a3CapA8wbhXMNemzu+/fQD2kiW9rIDVLHxOEpAwnCuftjdZqf4Bz3x2gFShyk/8=")
  390. out2, err := cmd2.Output()
  391. fmt.Println(err)
  392. //fmt.Println(out2)
  393. bb := strings.Split(string(out2),"======")
  394. fmt.Println(bb[1])
  395. return bb[1], inputLog
  396. }
  397. func GetJXCFYLJG013(url string, cFYLJG003 models.CFYLJG003) (string, string) {
  398. inputData := make(map[string]interface{})
  399. inputData["rxTraceCode"] = cFYLJG003.RxTraceCode
  400. inputData["hiRxno"] = cFYLJG003.HiRxno
  401. inputData["mdtrtId"] = cFYLJG003.MdtrtID
  402. inputData["patnName"] = cFYLJG003.PatnName
  403. inputData["psnCertType"] = cFYLJG003.PsnCertType
  404. inputData["certno"] = cFYLJG003.Certno
  405. inputData["fixmedinsName"] = cFYLJG003.FixmedinsName
  406. inputData["fixmedinsCode"] = cFYLJG003.FixmedinsCode
  407. inputData["drCode"] = cFYLJG003.DrCode
  408. inputData["prscDrName"] = cFYLJG003.PrscDrName
  409. inputData["pharDeptName"] = cFYLJG003.PharDeptName
  410. inputData["pharDeptCode"] = cFYLJG003.PharDeptCode
  411. inputData["pharProfttlCodg"] = cFYLJG003.PharProfttlCodg
  412. inputData["pharProfttlName"] = cFYLJG003.PharProfttlName
  413. inputData["pharCode"] = cFYLJG003.PharCode
  414. inputData["pharCertType"] = cFYLJG003.PsnCertType
  415. inputData["pharCertno"] = cFYLJG003.PharCertno
  416. inputData["pharName"] = cFYLJG003.PharName
  417. inputData["pharPracCertNo"] = cFYLJG003.PharPracCertNo
  418. inputData["pharChkTime"] = cFYLJG003.PharChkTime
  419. inputData["rxFile"] = cFYLJG003.RxFile
  420. inputData["signDigest"] = cFYLJG003.SignDigest
  421. inputData["extras"] = ""
  422. var inputLog string
  423. bytesData, err := json.Marshal(inputData)
  424. inputLog = string(bytesData)
  425. cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=", inputLog)
  426. out, err := cmd.Output()
  427. fmt.Println(string(out))
  428. aa := strings.Split(string(out),"======")
  429. if err != nil {
  430. fmt.Println(err.Error())
  431. return err.Error(), ""
  432. }
  433. reader := bytes.NewReader([]byte(aa[1]))
  434. url = url + "/fixmedins/rxFileUpld"
  435. //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
  436. request, err := http.NewRequest("POST", url, reader)
  437. if err != nil {
  438. fmt.Println(err.Error())
  439. return err.Error(), ""
  440. }
  441. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  442. client := http.Client{}
  443. resp, err := client.Do(request)
  444. if err != nil {
  445. fmt.Println(err.Error())
  446. return err.Error(), ""
  447. }
  448. respBytes, err := ioutil.ReadAll(resp.Body)
  449. if err != nil {
  450. fmt.Println(err.Error())
  451. return err.Error(), ""
  452. }
  453. fmt.Println(string(respBytes))
  454. str := string(respBytes)
  455. return str, inputLog
  456. }
  457. func GetJXCFYLJG004(url string, cFYLJG004 models.CFYLJG004) (string, string) {
  458. inputData := make(map[string]interface{})
  459. inputData["hiRxno"] = cFYLJG004.HiRxno
  460. inputData["fixmedinsCode"] = cFYLJG004.FixmedinsCode
  461. inputData["drCode"] = cFYLJG004.UndoDrCode
  462. inputData["undoDrName"] = cFYLJG004.UndoDrName
  463. inputData["undoDrCertType"] = cFYLJG004.UndoDrCertType
  464. inputData["undoDrCertno"] = cFYLJG004.UndoDrCertno
  465. inputData["undoRea"] = cFYLJG004.UndoRea
  466. inputData["undoTime"] = cFYLJG004.UndoTime
  467. var inputLog string
  468. bytesData, err := json.Marshal(inputData)
  469. inputLog = string(bytesData)
  470. fmt.Println(string(bytesData))
  471. if err != nil {
  472. fmt.Println(err.Error())
  473. return err.Error(), ""
  474. }
  475. reader := bytes.NewReader(bytesData)
  476. url = url + "CFYLJG004"
  477. //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
  478. request, err := http.NewRequest("POST", url, reader)
  479. if err != nil {
  480. fmt.Println(err.Error())
  481. return err.Error(), ""
  482. }
  483. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  484. //request.Header.Set("x-tif-paasid", gdyb_paasid)
  485. //request.Header.Set("x-tif-signature", signature)
  486. //request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
  487. //request.Header.Set("x-tif-nonce", nonce)
  488. client := http.Client{}
  489. resp, err := client.Do(request)
  490. if err != nil {
  491. fmt.Println(err.Error())
  492. return err.Error(), ""
  493. }
  494. respBytes, err := ioutil.ReadAll(resp.Body)
  495. if err != nil {
  496. fmt.Println(err.Error())
  497. return err.Error(), ""
  498. }
  499. fmt.Println(string(respBytes))
  500. str := string(respBytes)
  501. return str, inputLog
  502. }
  503. func GetJXCFYLJG005( fixmedins_code string,cFYLJG005 models.CFYLJG005) (string, string) {
  504. // 生成签名
  505. // 生成输入报文
  506. inputData := make(map[string]interface{})
  507. inputData["fixmedinsCode"] = fixmedins_code
  508. inputData["hiRxno"] = cFYLJG005.HiRxno
  509. inputData["mdtrtId"] = cFYLJG005.MdtrtID
  510. inputData["psnName"] = cFYLJG005.PsnName
  511. inputData["psnCertType"] = cFYLJG005.PsnCertType
  512. inputData["certno"] = cFYLJG005.Certno
  513. var inputLog string
  514. bytesData, err := json.Marshal(inputData)
  515. inputLog = string(bytesData)
  516. fmt.Println(string(bytesData))
  517. if err != nil {
  518. fmt.Println(err.Error())
  519. return err.Error(), ""
  520. }
  521. // 将 inputLog 和其他参数写入文件
  522. // 将 inputLog 和其他参数写入文件
  523. argFileContent := inputLog // 拼接 inputLog
  524. argFilePath := "a.txt"
  525. os.WriteFile(argFilePath, []byte(argFileContent), 0644)
  526. // 构建命令
  527. //cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", )
  528. cmd := exec.Command("java", "-jar", "encrypt-utils-all.jar", "encrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "Ns0K7Gsxk1WSfxYYyBcCL3J4Q/2Tvp1bMe8JbakA9Fg=")
  529. // 捕获输出
  530. output, err := cmd.CombinedOutput()
  531. if err != nil {
  532. fmt.Printf("Error: %v\n", err)
  533. }
  534. // 打印命令执行结果
  535. fmt.Printf("Output: %s\n", string(output))
  536. aa := strings.Split(string(output),"======")
  537. fmt.Println(aa[1])
  538. reader := bytes.NewReader([]byte(aa[1]))
  539. url := "http://10.66.149.64:8080/epc/api" + "/fixmedins/hospRxDetlQuery"
  540. request, err := http.NewRequest("POST", url, reader)
  541. if err != nil {
  542. fmt.Println(err.Error())
  543. return err.Error(), ""
  544. }
  545. request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  546. client := http.Client{}
  547. resp, err := client.Do(request)
  548. if err != nil {
  549. fmt.Println(err.Error())
  550. return err.Error(), ""
  551. }
  552. respBytes, err := ioutil.ReadAll(resp.Body)
  553. if err != nil {
  554. fmt.Println(err.Error())
  555. return err.Error(), ""
  556. }
  557. argbFileContent := string(respBytes) // 拼接 inputLog
  558. var data2 map[string]interface{}
  559. // 解析 JSON 字符串到 map
  560. json.Unmarshal([]byte(argbFileContent), &data2)
  561. // 检查 code 字段是否存在,并将其转换为字符串
  562. if val, ok := data2["code"]; ok {
  563. data2["code"] = fmt.Sprintf("%v", val) // 将 code 转换为字符串
  564. }
  565. updatedJSON2, _ := json.Marshal(data2)
  566. argbFilePath := "b.txt"
  567. os.WriteFile(argbFilePath, updatedJSON2, 0644)
  568. cmd2 := exec.Command("java", "-jar", "encrypt-utils-all.jar", "decrypt", "19D43125C3E64BB784601F7B19A8D785", "6014F1F2CA6247F8960AF61A306B5DCC", "BDoCErhDkP7KEG/BqNpjKIG5a3CapA8wbhXMNemzu+/fQD2kiW9rIDVLHxOEpAwnCuftjdZqf4Bz3x2gFShyk/8=")
  569. out2, err := cmd2.Output()
  570. fmt.Println(err)
  571. //fmt.Println(out2)
  572. bb := strings.Split(string(out2),"======")
  573. fmt.Println(bb[1])
  574. return bb[1], inputLog
  575. }
  576. //func GetAHCFYLJG006(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, cFYLJG006 models.CFYLJG006) (string, string) {
  577. // //生成签名
  578. // nonce := GetRandomString(32)
  579. // timestamp := time.Now().Unix()
  580. // signature := setSignature(timestamp, nonce, secret_key)
  581. // //生成输入报文
  582. // inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
  583. // inputData := make(map[string]interface{})
  584. // //inputDatas := make([]map[string]interface{}, 0)
  585. // inputData2 := make(map[string]interface{})
  586. //
  587. // inputMessage["infno"] = "CFYLJG006"
  588. // inputData["fixmedinsCode"] = fixmedins_code
  589. // inputData["hiRxno"] = cFYLJG006.HiRxno
  590. // inputData["mdtrtId"] = cFYLJG006.MdtrtID
  591. // inputData["psnName"] = cFYLJG006.PsnName
  592. // inputData["psnCertType"] = cFYLJG006.PsnCertType
  593. // inputData["certno"] = cFYLJG006.Certno
  594. // inputData2["data"] = inputData
  595. // inputMessage["input"] = inputData2
  596. // var inputLog string
  597. // bytesData, err := json.Marshal(inputMessage)
  598. // inputLog = string(bytesData)
  599. // fmt.Println(string(bytesData))
  600. // if err != nil {
  601. // fmt.Println(err.Error())
  602. // return err.Error(), ""
  603. // }
  604. // reader := bytes.NewReader(bytesData)
  605. // gdyb_url := beego.AppConfig.String("gdyb_url")
  606. // gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
  607. //
  608. // var url string
  609. // if fixmedins_code == "H15049901371" {
  610. // url = gdyb_url
  611. // } else {
  612. // url = gdyb_url + "CFYLJG006"
  613. // }
  614. //
  615. // //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
  616. // request, err := http.NewRequest("POST", url, reader)
  617. // if err != nil {
  618. // fmt.Println(err.Error())
  619. // return err.Error(), ""
  620. // }
  621. //
  622. // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  623. // request.Header.Set("x-tif-paasid", gdyb_paasid)
  624. // request.Header.Set("x-tif-signature", signature)
  625. // request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
  626. // request.Header.Set("x-tif-nonce", nonce)
  627. //
  628. // client := http.Client{}
  629. // resp, err := client.Do(request)
  630. // if err != nil {
  631. // fmt.Println(err.Error())
  632. // return err.Error(), ""
  633. // }
  634. // respBytes, err := ioutil.ReadAll(resp.Body)
  635. // if err != nil {
  636. // fmt.Println(err.Error())
  637. // return err.Error(), ""
  638. // }
  639. // fmt.Println(string(respBytes))
  640. // str := string(respBytes)
  641. // return str, inputLog
  642. //
  643. //}
  644. //func GetAHCFYLJG007(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, cFYLJG007 models.CFYLJG007) (string, string) {
  645. // //生成签名
  646. // nonce := GetRandomString(32)
  647. // timestamp := time.Now().Unix()
  648. // signature := setSignature(timestamp, nonce, secret_key)
  649. // //生成输入报文
  650. // inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
  651. // inputData := make(map[string]interface{})
  652. // inputData2 := make(map[string]interface{})
  653. //
  654. // //inputDatas := make([]map[string]interface{}, 0)
  655. //
  656. // inputMessage["infno"] = "CFYLJG007"
  657. //
  658. // inputData["fixmedinsCode"] = fixmedins_code
  659. // inputData["hiRxno"] = cFYLJG007.HiRxno
  660. // inputData["mdtrtId"] = cFYLJG007.MdtrtID
  661. // inputData["psnCertType"] = cFYLJG007.PsnCertType
  662. // inputData["certno"] = cFYLJG007.Certno
  663. // inputData["psnName"] = cFYLJG007.PsnName
  664. //
  665. // inputData2["data"] = inputData
  666. //
  667. // inputMessage["input"] = inputData2
  668. // var inputLog string
  669. // bytesData, err := json.Marshal(inputMessage)
  670. // inputLog = string(bytesData)
  671. // fmt.Println(string(bytesData))
  672. // if err != nil {
  673. // fmt.Println(err.Error())
  674. // return err.Error(), ""
  675. // }
  676. // reader := bytes.NewReader(bytesData)
  677. // gdyb_url := beego.AppConfig.String("gdyb_url")
  678. // gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
  679. //
  680. // var url string
  681. // if fixmedins_code == "H15049901371" {
  682. // url = gdyb_url
  683. // } else {
  684. // url = gdyb_url + "CFYLJG007"
  685. // }
  686. //
  687. // //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
  688. // request, err := http.NewRequest("POST", url, reader)
  689. // if err != nil {
  690. // fmt.Println(err.Error())
  691. // return err.Error(), ""
  692. // }
  693. //
  694. // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  695. // request.Header.Set("x-tif-paasid", gdyb_paasid)
  696. // request.Header.Set("x-tif-signature", signature)
  697. // request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
  698. // request.Header.Set("x-tif-nonce", nonce)
  699. //
  700. // client := http.Client{}
  701. // resp, err := client.Do(request)
  702. // if err != nil {
  703. // fmt.Println(err.Error())
  704. // return err.Error(), ""
  705. // }
  706. // respBytes, err := ioutil.ReadAll(resp.Body)
  707. // if err != nil {
  708. // fmt.Println(err.Error())
  709. // return err.Error(), ""
  710. // }
  711. // fmt.Println(string(respBytes))
  712. // str := string(respBytes)
  713. // return str, inputLog
  714. //
  715. //}
  716. //func GetAHCFYLJG008(org_name string, doctor string, fixmedins_code string, insuplc_admdvs string, mdtrtarea_admvs string, secret_key string, cFYLJG008 models.CFYLJG008) (string, string) {
  717. // //生成签名
  718. // nonce := GetRandomString(32)
  719. // timestamp := time.Now().Unix()
  720. // signature := setSignature(timestamp, nonce, secret_key)
  721. // //生成输入报文
  722. // inputMessage := SetInputMessage(nonce, timestamp, org_name, doctor, fixmedins_code, insuplc_admdvs, mdtrtarea_admvs)
  723. // inputData := make(map[string]interface{})
  724. // //inputData2 := make(map[string]interface{})
  725. //
  726. // //inputDatas := make([]map[string]interface{}, 0)
  727. //
  728. // inputMessage["infno"] = "CFYLJG008"
  729. //
  730. // inputData["pageNum"] = cFYLJG008.PageNum
  731. // inputData["pageSize"] = cFYLJG008.PageSize
  732. // inputData["orderType"] = cFYLJG008.OrderType
  733. // inputData["poolareaNo"] = cFYLJG008.PoolareaNo
  734. // inputData["fixmedinsName"] = cFYLJG008.FixmedinsName
  735. // inputData["lng"] = cFYLJG008.Lng
  736. // inputData["lat"] = cFYLJG008.Lat
  737. // inputData["medinsProdInvChgDDTOList"] = cFYLJG008.MedList
  738. //
  739. // inputMessage["input"] = inputData
  740. // var inputLog string
  741. // bytesData, err := json.Marshal(inputMessage)
  742. // inputLog = string(bytesData)
  743. // fmt.Println(string(bytesData))
  744. // if err != nil {
  745. // fmt.Println(err.Error())
  746. // return err.Error(), ""
  747. // }
  748. // reader := bytes.NewReader(bytesData)
  749. // gdyb_url := beego.AppConfig.String("gdyb_url")
  750. // gdyb_paasid := beego.AppConfig.String("gdyb_paasid")
  751. //
  752. // var url string
  753. // if fixmedins_code == "H15049901371" {
  754. // url = gdyb_url
  755. // } else {
  756. // url = gdyb_url + "CFYLJG007"
  757. // }
  758. //
  759. // //url := "http://igb.hsa.gdgov.cn/ebus/gdyb_inf/poc/hsa/hgs/1101"
  760. // request, err := http.NewRequest("POST", url, reader)
  761. // if err != nil {
  762. // fmt.Println(err.Error())
  763. // return err.Error(), ""
  764. // }
  765. //
  766. // request.Header.Set("Content-Type", "application/json;charset=UTF-8")
  767. // request.Header.Set("x-tif-paasid", gdyb_paasid)
  768. // request.Header.Set("x-tif-signature", signature)
  769. // request.Header.Set("x-tif-timestamp", strconv.FormatInt(timestamp, 10))
  770. // request.Header.Set("x-tif-nonce", nonce)
  771. //
  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, inputLog
  786. //
  787. //}