AHomeDiagnoseInfoFacade.java 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package com.diagbot.facade.data;
  2. import com.alibaba.fastjson.JSON;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.diagbot.dto.RespDTO;
  5. import com.diagbot.dto.data.AHomeDiagnoseDTO;
  6. import com.diagbot.entity.HomeDiagnoseInfo;
  7. import com.diagbot.entity.shaoyifu.request.HomePageDiagnoseRequest;
  8. import com.diagbot.entity.shaoyifu.request.PatientListRequest;
  9. import com.diagbot.entity.shaoyifu.response.HomePageDiagnoseResponse;
  10. import com.diagbot.entity.shaoyifu.response.PatientListResponse;
  11. import com.diagbot.entity.shaoyifu.util.HttpApi;
  12. import com.diagbot.entity.shaoyifu.util.SYFNlRequest;
  13. import com.diagbot.service.impl.HomeDiagnoseInfoServiceImpl;
  14. import com.diagbot.util.BeanUtil;
  15. import com.diagbot.util.TZDBConn;
  16. import com.diagbot.vo.data.AHomeDiagnoseVO;
  17. import com.google.common.collect.Lists;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.beans.factory.annotation.Qualifier;
  20. import org.springframework.stereotype.Component;
  21. import java.util.Date;
  22. import java.util.List;
  23. @Component
  24. public class AHomeDiagnoseInfoFacade extends HomeDiagnoseInfoServiceImpl{
  25. @Autowired
  26. @Qualifier("homeDiagnoseInfoServiceImpl")
  27. private HomeDiagnoseInfoServiceImpl homeDiagnoseInfoService;
  28. @Autowired
  29. private APatientListFacade aPatientListFacade;
  30. private TZDBConn tzDBConn = new TZDBConn();
  31. /**
  32. * 终末质控-定时同步病案首页诊断
  33. */
  34. public void executeHomeDiagnose() {
  35. try {
  36. /*SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  37. Calendar start = Calendar.getInstance();
  38. start.setTime(new Date());
  39. start.set(Calendar.DATE, start.get(Calendar.DATE) - 1);
  40. start.set(Calendar.HOUR_OF_DAY, 0);
  41. start.set(Calendar.MINUTE, 0);
  42. start.set(Calendar.SECOND, 0);
  43. Date startTime = start.getTime();
  44. Calendar end = Calendar.getInstance();
  45. end.setTime(new Date());
  46. end.set(Calendar.DATE, end.get(Calendar.DATE));
  47. end.set(Calendar.HOUR_OF_DAY, 0);
  48. end.set(Calendar.MINUTE, 0);
  49. end.set(Calendar.SECOND, 0);
  50. Date endTime = end.getTime();*/
  51. PatientListRequest patientListRequest = new PatientListRequest();
  52. /*patientListRequest.setDATESTART(sdf.format(startTime));
  53. patientListRequest.setDATEEND(sdf.format(endTime));*/
  54. patientListRequest.setDATESTART("2020-04-01 00:00:00");
  55. patientListRequest.setDATEEND("2020-04-08 00:00:00");
  56. PatientListResponse patientListResponse = aPatientListFacade.getPatientList(patientListRequest);
  57. for (int i = 0; i < patientListResponse.getData().size(); i++) {
  58. SYFNlRequest<HomePageDiagnoseRequest> request = new SYFNlRequest<>();
  59. HomePageDiagnoseRequest homePageDiagnoseRequest = new HomePageDiagnoseRequest();
  60. homePageDiagnoseRequest.setRdn(patientListResponse.getData().get(i).getRDN());
  61. request.setData(homePageDiagnoseRequest);
  62. HttpApi<HomePageDiagnoseResponse> httpApi = new HttpApi<>();
  63. String a = httpApi.doPost("http://192.1.5.162:8088/api/NlService/GetPDIAGNOSELIST", request);
  64. HomePageDiagnoseResponse homePageDiagnoseResponse = JSON.parseObject(a, HomePageDiagnoseResponse.class);
  65. List<HomeDiagnoseInfo> homeDiagnoseList = Lists.newLinkedList();
  66. for (int j = 0; j < homePageDiagnoseResponse.getData().size(); j++) {
  67. HomeDiagnoseInfo homeDiagnoseInfo = new HomeDiagnoseInfo();
  68. homeDiagnoseInfo.setHomePageId(patientListResponse.getData().get(i).getRDN());
  69. homeDiagnoseInfo.setHospitalId(Long.parseLong("2"));
  70. homeDiagnoseInfo.setDiagnoseOrderNo(homePageDiagnoseResponse.getData().get(j).getRdn());
  71. homeDiagnoseInfo.setDiagnoseType(homePageDiagnoseResponse.getData().get(j).getPrimaryflag());
  72. homeDiagnoseInfo.setDiagnoseTypeShort(homePageDiagnoseResponse.getData().get(j).getPrimaryflag());
  73. homeDiagnoseInfo.setDiagnoseName(homePageDiagnoseResponse.getData().get(j).getDiagnose());
  74. homeDiagnoseInfo.setBehospitalType(homePageDiagnoseResponse.getData().get(j).getDcondi());
  75. homeDiagnoseInfo.setIcdCode(homePageDiagnoseResponse.getData().get(j).getDiagnosecodep());
  76. homeDiagnoseList.add(homeDiagnoseInfo);
  77. execute(homeDiagnoseList);
  78. }
  79. }
  80. } catch (Exception e) {
  81. e.printStackTrace();
  82. }
  83. }
  84. /**
  85. * 数据引擎-通过接口更新病案首页诊断
  86. * @param list
  87. * @return
  88. */
  89. public RespDTO<List<AHomeDiagnoseDTO>> executeHomeDiagnose(List<AHomeDiagnoseVO> list) {
  90. if(list!=null && list.size()>0){
  91. List<HomeDiagnoseInfo> homeDiagnoseList=Lists.newArrayList();
  92. List<AHomeDiagnoseDTO> homeDiagnoseDtoList=Lists.newArrayList();
  93. homeDiagnoseList=BeanUtil.listCopyTo(list,HomeDiagnoseInfo.class);
  94. homeDiagnoseDtoList=BeanUtil.listCopyTo(list,AHomeDiagnoseDTO.class);
  95. execute(homeDiagnoseList);
  96. return RespDTO.onSuc(homeDiagnoseDtoList);
  97. }else{
  98. return RespDTO.onError("未接收到数据!");
  99. }
  100. }
  101. public void execute(List<HomeDiagnoseInfo> homeDiagnoseList){
  102. List<HomeDiagnoseInfo> addE = Lists.newLinkedList();
  103. List<HomeDiagnoseInfo> updateE = Lists.newLinkedList();
  104. if (homeDiagnoseList != null && homeDiagnoseList.size() > 0) {
  105. homeDiagnoseList.stream().forEach(s -> {
  106. if(s.getHomePageId()!=null && !"".equals(s.getDiagnoseOrderNo())){
  107. HomeDiagnoseInfo diagnoseInfo = this.getOne(new QueryWrapper<HomeDiagnoseInfo>()
  108. .eq("home_page_id", s.getHomePageId())
  109. .eq("hospital_id", s.getHospitalId())
  110. .eq("diagnose_order_no", s.getDiagnoseOrderNo()), false);
  111. if (diagnoseInfo != null) {
  112. s.setGmtModified(new Date());
  113. updateE.add(s);
  114. } else {
  115. s.setGmtCreate(new Date());
  116. addE.add(s);
  117. }
  118. }
  119. });
  120. }
  121. if(addE.size()>0){
  122. homeDiagnoseInfoService.saveBatch(addE);
  123. }
  124. if(updateE.size()>0){
  125. homeDiagnoseInfoService.updateBatchByKey(updateE);
  126. }
  127. }
  128. }