MedicalInsuranceService.java 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package thyyxxk.webserver.service.medicalinsurance;
  2. import com.alibaba.fastjson.JSONObject;
  3. import lombok.extern.slf4j.Slf4j;
  4. import org.springframework.beans.factory.annotation.Value;
  5. import org.springframework.stereotype.Service;
  6. import org.springframework.web.client.RestTemplate;
  7. import thyyxxk.webserver.constants.MedicalInsuranceFunction;
  8. import thyyxxk.webserver.entity.ResultVo;
  9. import thyyxxk.webserver.utils.DateUtil;
  10. import thyyxxk.webserver.utils.SiMsgIdUtil;
  11. /**
  12. * @description: 医保交易实现
  13. * @author: DingJie
  14. * @create: 2021-05-14 16:28:16
  15. **/
  16. @Slf4j
  17. @Service
  18. public class MedicalInsuranceService {
  19. @Value("${si-api-url}")
  20. private String siApiUrl;
  21. public ResultVo<JSONObject> obtainBasicPersonInfo(String socialNo, String name) {
  22. JSONObject header = makeParamHeader(MedicalInsuranceFunction.OBTAIN_BASIC_PERSON_INFO);
  23. JSONObject param = new JSONObject();
  24. param.put("mdtrt_cert_type", "02");
  25. param.put("mdtrt_cert_no", socialNo);
  26. param.put("card_sn", "");
  27. param.put("begintime", "");
  28. param.put("psn_cert_type", "1");
  29. param.put("certno", socialNo);
  30. param.put("psn_name", name);
  31. header.getJSONObject("input").put("data", param);
  32. RestTemplate template = new RestTemplate();
  33. JSONObject result = template.postForObject(siApiUrl, param, JSONObject.class);
  34. return null;
  35. }
  36. private JSONObject makeParamHeader(MedicalInsuranceFunction function) {
  37. JSONObject header = new JSONObject();
  38. JSONObject input = new JSONObject();
  39. header.put("infno", function.getCode());
  40. header.put("msgid", SiMsgIdUtil.makeMsgId());
  41. header.put("mdtrtarea_admvs", "就医地医保区划");
  42. header.put("insuplc_admdvs", "参保地医保区划");
  43. header.put("recer_sys_code", "接收方系统代码");
  44. header.put("dev_no", "");
  45. header.put("dev_safe_info", "");
  46. header.put("cainfo", "");
  47. header.put("signtype", "");
  48. header.put("infver", "V1.0");
  49. header.put("opter_type", "1");
  50. header.put("opter", "经办人");
  51. header.put("opter_name", "经办人姓名");
  52. header.put("inf_time", DateUtil.now());
  53. header.put("fixmedins_code", SiMsgIdUtil.INSTITUTION_ID);
  54. header.put("fixmedins_name", "湖南泰和医院");
  55. header.put("sign_no", "交易签到流水号");
  56. header.put("input", input);
  57. return header;
  58. }
  59. }