ADoctorAdviceFacade.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package com.diagbot.facade.data;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.diagbot.dto.RespDTO;
  4. import com.diagbot.dto.data.ADoctorAdviceDTO;
  5. import com.diagbot.entity.DoctorAdvice;
  6. import com.diagbot.service.impl.DoctorAdviceServiceImpl;
  7. import com.diagbot.util.BeanUtil;
  8. import com.diagbot.util.DateUtil;
  9. import com.diagbot.util.StringUtil;
  10. import com.diagbot.util.TZDBConn;
  11. import com.diagbot.vo.data.ADoctorAdviceVO;
  12. import com.google.common.collect.Lists;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.beans.factory.annotation.Qualifier;
  15. import org.springframework.stereotype.Component;
  16. import java.util.Date;
  17. import java.util.List;
  18. @Component
  19. public class ADoctorAdviceFacade extends DoctorAdviceServiceImpl{
  20. @Autowired
  21. @Qualifier("doctorAdviceServiceImpl")
  22. private DoctorAdviceServiceImpl doctorAdviceService;
  23. private TZDBConn tzDBConn = new TZDBConn();
  24. /**
  25. * 终末质控-同步前一天的入院病人医嘱信息
  26. */
  27. public void executeDoctorAdvice() {
  28. //String sql="select * from br_doctadvice where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
  29. String sql="select * from br_doctadvice where BRZYID in (select BRZYID from br_inpatientinfo where cjcxrq>=(select CONVERT(varchar,GETDATE()-2,23)) and cjcxrq<(select CONVERT(varchar,GETDATE(),23)) and requestflag='1')";
  30. List<DoctorAdvice> doctorAdviceList = tzDBConn.getDoctorAdvice(sql);
  31. execute(doctorAdviceList);
  32. }
  33. public void executeDoctorAdvicePast() {
  34. String sql="select * from br_doctadvice where cjcxrq>=dateadd(day,-2,getdate()) and cjcxrq<=getdate()";
  35. List<DoctorAdvice> doctorAdviceList = tzDBConn.getDoctorAdvice(sql);
  36. execute(doctorAdviceList);
  37. }
  38. /**
  39. * 数据引擎-通过接口更新医生医嘱信息
  40. * @param list
  41. * @return
  42. */
  43. public RespDTO<List<ADoctorAdviceDTO>> executeDoctorAdvice(List<ADoctorAdviceVO> list) {
  44. if(list!=null && list.size()>0){
  45. //循环验证数据有效性
  46. for (ADoctorAdviceVO doctorAdvice:list) {
  47. if("".equals(doctorAdvice.getDoctorAdviceId())) {
  48. return RespDTO.onError("请输入病人医嘱编码!");
  49. }else if(doctorAdvice.getHospitalId()==null){
  50. return RespDTO.onError("请输入医院编码!");
  51. }else if("".equals(doctorAdvice.getBehospitalCode())){
  52. return RespDTO.onError("请输入病人住院编码!");
  53. }
  54. }
  55. //初始、格式化数据
  56. List<DoctorAdvice> doctorAdviceList=Lists.newArrayList();
  57. List<ADoctorAdviceDTO> doctorAdviceDtoList=Lists.newArrayList();
  58. list.stream().forEach(s->{
  59. DoctorAdvice doctorAdvice=new DoctorAdvice();
  60. BeanUtil.copyProperties(s,doctorAdvice);
  61. if(StringUtil.isNotBlank(s.getDaStartDate())){
  62. doctorAdvice.setDaStartDate(DateUtil.parseDateTime(s.getDaStartDate()));
  63. }
  64. if(StringUtil.isNotBlank(s.getDaStopDate())){
  65. doctorAdvice.setDaStopDate(DateUtil.parseDateTime(s.getDaStopDate()));
  66. }
  67. doctorAdviceList.add(doctorAdvice);
  68. });
  69. execute(doctorAdviceList);
  70. doctorAdviceDtoList=BeanUtil.listCopyTo(list,ADoctorAdviceDTO.class);
  71. return RespDTO.onSuc(doctorAdviceDtoList);
  72. }else{
  73. return RespDTO.onError("未接收到数据!");
  74. }
  75. }
  76. public void execute(List<DoctorAdvice> doctorAdviceList){
  77. List<DoctorAdvice> addE = Lists.newLinkedList();
  78. List<DoctorAdvice> updateE = Lists.newLinkedList();
  79. if (doctorAdviceList != null && doctorAdviceList.size() > 0) {
  80. doctorAdviceList.stream().forEach(s -> {
  81. DoctorAdvice doctorAdvice = this.getOne(new QueryWrapper<DoctorAdvice>()
  82. .eq("doctor_advice_id", s.getDoctorAdviceId())
  83. .eq("hospital_id", s.getHospitalId())
  84. .eq("behospital_code",s.getBehospitalCode()), false);
  85. if (doctorAdvice != null) {
  86. s.setGmtModified(new Date());
  87. updateE.add(s);
  88. } else {
  89. s.setGmtCreate(new Date());
  90. addE.add(s);
  91. }
  92. });
  93. }
  94. if(addE.size()>0){
  95. doctorAdviceService.saveBatch(addE);
  96. }
  97. if(updateE.size()>0){
  98. doctorAdviceService.updateBatchByKey(updateE);
  99. }
  100. }
  101. }