YzTemperatureService.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package thyyxxk.webserver.service.datamodify;
  2. import com.baomidou.dynamic.datasource.annotation.DS;
  3. import jdk.nashorn.internal.scripts.JO;
  4. import lombok.extern.slf4j.Slf4j;
  5. import org.springframework.beans.BeanUtils;
  6. import org.springframework.stereotype.Service;
  7. import thyyxxk.webserver.config.exception.ExceptionEnum;
  8. import thyyxxk.webserver.dao.his.datamodify.YzTemperatureMapper;
  9. import thyyxxk.webserver.entity.ResultVo;
  10. import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
  11. import thyyxxk.webserver.entity.datamodify.YzTemperature;
  12. import thyyxxk.webserver.utils.*;
  13. import java.util.*;
  14. /**
  15. * <p>
  16. * 描述
  17. * </p>
  18. *
  19. * @author xc
  20. * @date 2021-04-12 17:44
  21. */
  22. @Service
  23. @Slf4j
  24. @DS("dev")
  25. public class YzTemperatureService {
  26. private final YzTemperatureMapper dao;
  27. private static final String GET_DATE = "yyyy-MM-dd";
  28. private static final String GET_TIME = "HH:mm:ss";
  29. public YzTemperatureService(YzTemperatureMapper dao) {
  30. this.dao = dao;
  31. }
  32. /**
  33. * 查询护理记录单 、
  34. * @param param 根据 住院号 住院次数 日期 查询 坑爹的这个人把 日期要 拆分出来
  35. * @return 返回一条拼接好 ,问题描述的数据 给到页面
  36. * */
  37. public ResultVo<YzTemperature> queryDetails(YzTemperature param){
  38. String date = DateUtil.formatDatetime(param.getDate(),GET_DATE);
  39. String time = DateUtil.formatDatetime(param.getDate(),GET_TIME);
  40. log.info("查询护理记录单:操作人:{},住院号:{},住院次数:{},日期:{},时间:{}",
  41. TokenUtil.getTokenUserId(),param.getInpatientNo(),param.getAdmissTimes(),date,time);
  42. param.setToStringRecDate(date);
  43. param.setToStringRecTime(time);
  44. List<YzTemperature> list = dao.queryDetails(param);
  45. StringBuilder splicingOtherInfo = new StringBuilder();
  46. YzTemperature pojo = new YzTemperature();
  47. if (list.size()>0){
  48. for (int i = 0;i<list.size();i++){
  49. if (i==0){
  50. pojo = list.get(0);
  51. //坑爹的1900年的 日期 传到前端会少几分钟 需要转成 string 在把 1900替换成2000
  52. pojo.setRecTime(DateUtil.getDatetimeAfterCentury(pojo.getRecTime()));
  53. }
  54. //拼接字符串 把otherInfo 拼起来
  55. splicingOtherInfo.append(list.get(i).getOtherInfo());
  56. }
  57. pojo.setSplicingOtherInfo(splicingOtherInfo.toString().replace(" ",""));
  58. return ResultVoUtil.success(pojo);
  59. }
  60. return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST);
  61. }
  62. public ResultVo<Boolean> modify(YzTemperature param) {
  63. param.setToStringRecDate(DateUtil.formatDatetime(param.getRecDate(),GET_DATE));
  64. param.setToStringRecTime(DateUtil.formatDatetime(param.getRecTime(),GET_TIME));
  65. //查询出原来的 数据
  66. YzTemperature pojo = new YzTemperature();
  67. List<YzTemperature> list = dao.queryDetails(param);
  68. param.setModifyUserid(TokenUtil.getTokenUserId());
  69. param.setModifyTime(new Date());
  70. for(int i =0;i<list.size();i++){
  71. if (i==0){
  72. param.setDetailNo(list.get(i).getDetailNo());
  73. pojo = list.get(i);
  74. if (!dao.teperatureHead(param)){
  75. return ResultVoUtil.fail(ExceptionEnum.SLIGHTLY_ERROR);
  76. }
  77. log.info("第一次执行头部数据的添加:{}",param.getDetailNo());
  78. }else {
  79. param.setDetailNo(list.get(i).getDetailNo());
  80. dao.teperatureBody(param);
  81. log.info("执行尾部数据添加:{}",param.getDetailNo());
  82. }
  83. }
  84. log.info("护理记录单修改前:操作人:{},修改的记录单日期:{},时间:{},住院次数:{},住院号:{},体温:{}," +
  85. "心率/脉搏:{},呼吸:{},血压am:{},血压pm:{}," +
  86. "spo2:{},意识:{},皮肤:{},管道名称:{},管道情况:{},病区:{}",
  87. TokenUtil.getTokenUserId(),pojo.getRecDate(),pojo.getRecTime(),pojo.getAdmissTimes(),pojo.getInpatientNo(),
  88. pojo.getTemperature1(),pojo.getPulse1(),pojo.getBreathe1(),pojo.getPressure1Am(),
  89. pojo.getPressure1Pm(),pojo.getSpo2(),pojo.getMind(),pojo.getSkin(),pojo.getTubesName(),pojo.getTubesStatus(),
  90. pojo.getWard());
  91. log.info("修改护理记录单后:操作人:{},修改的记录单日期:{},时间:{},住院次数:{},住院号:{},体温:{}," +
  92. "心率/脉搏:{},呼吸:{},血压am:{},血压pm:{}," +
  93. "spo2:{},意识:{},皮肤:{},管道名称:{},管道情况:{},病区:{}",
  94. TokenUtil.getTokenUserId(),param.getToStringRecDate(),param.getToStringRecTime(),param.getAdmissTimes(),
  95. param.getInpatientNo(),param.getTemperature1(),param.getPulse1(),param.getBreathe1(),param.getPressure1Am(),
  96. param.getPressure1Pm(),param.getSpo2(),param.getMind(),param.getSkin(),param.getTubesName(),param.getTubesStatus(),
  97. param.getWard());
  98. return ResultVoUtil.success();
  99. }
  100. /**
  101. * 获取病房
  102. * @return 返回病房的code 和 name
  103. * */
  104. public ResultVo<List<GetDropdownBox>> getWard(){
  105. return ResultVoUtil.success(dao.getWard());
  106. }
  107. }