MsSuspectedService.java 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. package com.bofeng.service;
  2. import com.baomidou.mybatisplus.toolkit.IdWorker;
  3. import com.bofeng.dao.MsReportMapper;
  4. import com.bofeng.dao.MsSuspectedMapper;
  5. import com.bofeng.entity.MsReport;
  6. import com.bofeng.entity.MsSuspected;
  7. import org.joda.time.DateTime;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. import org.springframework.transaction.annotation.Propagation;
  11. import org.springframework.transaction.annotation.Transactional;
  12. import java.math.BigDecimal;
  13. import java.text.SimpleDateFormat;
  14. import java.util.Date;
  15. import java.util.List;
  16. /**
  17. * @Author: xielianghe
  18. * @Date: 2020/2/4 15:44
  19. */
  20. @Service
  21. @Transactional(readOnly = true)
  22. public class MsSuspectedService {
  23. @Autowired
  24. private MsSuspectedMapper msSuspectedMapper;
  25. @Autowired
  26. private MsReportMapper msReportMapper;
  27. //查询家人
  28. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  29. public MsSuspected selectSuspected(long suspectedId) {
  30. return msSuspectedMapper.selectById(suspectedId);
  31. }
  32. //添加家人
  33. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  34. public Long addSuspected(Long suspectedId, String userName, Integer grender, Integer age, Integer familyStatus,
  35. String statusDesp, Integer medical, BigDecimal temperature, Integer cough, Integer muscle,
  36. Integer dyspnea, Integer fatigue, Integer diarrhea, Integer singleRoom, String others, Long userCreate) {
  37. Long reportId = 0L;
  38. //如果是当前日期 已经添加
  39. Date t = new Date();
  40. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  41. String reportDate = df.format(t);
  42. List<MsReport> listReport = msReportMapper.selectByReportDate(reportDate, userCreate);
  43. Long houseId = msReportMapper.selectHouseIdByUserId(userCreate);
  44. //首次进入。没有今日报告
  45. if (listReport == null || listReport.size() == 0) {
  46. MsReport msReport = new MsReport();
  47. msReport.setReportId(IdWorker.getId());
  48. msReport.setHouseId(houseId);
  49. msReport.setSafetyNum(0);
  50. msReport.setSureNum(0);
  51. msReport.setSuspectedNum(0);
  52. msReport.setNormalNum(0);
  53. msReport.setSingleNum(0);
  54. msReport.setRemarks("");
  55. msReport.setReportDate(DateTime.now().toDate());
  56. msReport.setMsStatus(0);
  57. msReport.setUserCreate(userCreate);
  58. msReport.setTimeCreate(DateTime.now());
  59. msReport.setUserUpdate(userCreate);
  60. msReport.setTimeUpdate(DateTime.now());
  61. msReportMapper.insert(msReport);
  62. reportId = msReport.getReportId();
  63. } else {
  64. reportId = listReport.get(0).getReportId();
  65. }
  66. //判断是否疑似
  67. Integer suspectedStatus = 0;
  68. //体温
  69. if (temperature.compareTo(new BigDecimal(36)) == -1 || temperature.compareTo(new BigDecimal(37.3)) == 1)
  70. suspectedStatus = 1;
  71. //咳嗽
  72. if (cough > 0)
  73. suspectedStatus = 1;
  74. //肌肉酸痛
  75. if (muscle > 0)
  76. suspectedStatus = 1;
  77. //呼吸困难
  78. if (dyspnea > 0)
  79. suspectedStatus = 1;
  80. //乏力
  81. if (fatigue > 0)
  82. suspectedStatus = 1;
  83. //腹泻
  84. if (diarrhea > 0)
  85. suspectedStatus = 1;
  86. if (suspectedId == 0L) {
  87. //添加家人
  88. MsSuspected msSuspected = new MsSuspected();
  89. msSuspected.setSuspectedId(IdWorker.getId());
  90. msSuspected.setReportId(reportId);
  91. msSuspected.setUserName(userName);
  92. msSuspected.setGrender(grender);//默认为家人
  93. msSuspected.setAge(age);
  94. msSuspected.setFamilyStatus(familyStatus);
  95. msSuspected.setStatusDesp(statusDesp);
  96. msSuspected.setMedical(medical);
  97. msSuspected.setTemperature(temperature);
  98. msSuspected.setCough(cough);
  99. msSuspected.setMuscle(muscle);
  100. msSuspected.setDiarrhea(dyspnea);
  101. msSuspected.setFatigue(fatigue);
  102. msSuspected.setDiarrhea(diarrhea);
  103. msSuspected.setSingleRoom(singleRoom);
  104. msSuspected.setOthers(others);
  105. msSuspected.setSuspectedStatus(suspectedStatus);
  106. msSuspected.setUserCreate(userCreate);
  107. msSuspected.setTimeCreate(DateTime.now());
  108. msSuspected.setUserUpdate(userCreate);
  109. msSuspected.setTimeUpdate(DateTime.now());
  110. msSuspectedMapper.insert(msSuspected);
  111. } else {
  112. MsSuspected msSuspected1 = msSuspectedMapper.selectById(suspectedId);
  113. if (msSuspected1 != null) {
  114. msSuspected1.setUserName(userName);
  115. msSuspected1.setGrender(grender);//默认为家人
  116. msSuspected1.setAge(age);
  117. msSuspected1.setFamilyStatus(familyStatus);
  118. msSuspected1.setStatusDesp(statusDesp);
  119. msSuspected1.setMedical(medical);
  120. msSuspected1.setTemperature(temperature);
  121. msSuspected1.setCough(cough);
  122. msSuspected1.setMuscle(muscle);
  123. msSuspected1.setDiarrhea(dyspnea);
  124. msSuspected1.setFatigue(fatigue);
  125. msSuspected1.setDiarrhea(diarrhea);
  126. msSuspected1.setSingleRoom(singleRoom);
  127. msSuspected1.setOthers(others);
  128. msSuspected1.setSuspectedStatus(suspectedStatus);
  129. msSuspectedMapper.updateById(msSuspected1);
  130. }
  131. }
  132. //更新今日日报
  133. updateReport(reportId, medical, singleRoom, temperature);
  134. return reportId;
  135. }
  136. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  137. public Integer deleteSuspected(Long suspectedId) {
  138. MsSuspected msSuspected = msSuspectedMapper.selectById(suspectedId);
  139. if (msSuspected != null) {
  140. msSuspectedMapper.deleteById(suspectedId);
  141. //更新今日日报
  142. updateReport(msSuspected.getReportId(), msSuspected.getMedical(), msSuspected.getSingleRoom(), msSuspected.getTemperature());
  143. MsReport msReport = msReportMapper.selectById(msSuspected.getReportId());
  144. if (msReport != null)
  145. return msReport.getSafetyNum();
  146. }
  147. return 0;
  148. }
  149. //更新今日日报
  150. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  151. public void updateReport(Long reportId, Integer medical, Integer singleRoom, BigDecimal temperature) {
  152. //更新今日日报
  153. //确诊
  154. Integer isTrue = 0, isSingle = 0, isSuspected = 0, isNoSuspected = 0, isFamliy = 0;
  155. if (medical == 1)
  156. isTrue = msReportMapper.selectSuspectedNum(reportId, medical);
  157. //居家隔离
  158. if (singleRoom == 1)
  159. isSingle = msReportMapper.selectSingleRoomNum(reportId, singleRoom);
  160. //正常
  161. isSuspected = msReportMapper.selectisSuspectedNum(reportId);
  162. //疑似
  163. isNoSuspected = msReportMapper.selectisNoSuspectedNum(reportId);
  164. //今日居家
  165. List<MsSuspected> list = msSuspectedMapper.selectByReportId(reportId);
  166. if (list != null && list.size() > 0)
  167. isFamliy = list.size();
  168. MsReport msReport = msReportMapper.selectById(reportId);
  169. if (msReport != null) {
  170. msReport.setSureNum(isTrue);
  171. msReport.setSingleNum(isSingle);
  172. msReport.setSuspectedNum(isNoSuspected);
  173. msReport.setNormalNum(isSuspected);
  174. msReport.setSafetyNum(isFamliy);
  175. if (isNoSuspected > 0)
  176. msReport.setMsStatus(2);
  177. else
  178. msReport.setMsStatus(1);
  179. msReportMapper.updateById(msReport);
  180. }
  181. }
  182. }