MsTripService.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  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.dao.MsTripDetMapper;
  6. import com.bofeng.dao.MsTripMapper;
  7. import com.bofeng.entity.MsReport;
  8. import com.bofeng.entity.MsSuspected;
  9. import com.bofeng.entity.MsTrip;
  10. import com.bofeng.entity.MsTripDet;
  11. import com.yvan.platform.Conv;
  12. import org.joda.time.DateTime;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import org.springframework.transaction.annotation.Propagation;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import java.math.BigDecimal;
  18. import java.text.SimpleDateFormat;
  19. import java.util.Date;
  20. import java.util.List;
  21. /**
  22. * @Author: xielianghe
  23. * @Date: 2020/2/22 13:33
  24. */
  25. @Service
  26. @Transactional(readOnly = true)
  27. public class MsTripService {
  28. @Autowired
  29. private MsSuspectedMapper msSuspectedMapper;
  30. @Autowired
  31. private MsReportMapper msReportMapper;
  32. @Autowired
  33. private MsTripMapper msTripMapper;
  34. @Autowired
  35. private MsTripDetMapper msTripDetMapper;
  36. @Autowired
  37. private MsSuspectedService msSuspectedService;
  38. //添加家人
  39. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  40. public Long addSuspectedTrip(Long suspectedId, String userName, Integer grender, Integer age, String familyStatus,
  41. String statusDesp, Integer medical, BigDecimal temperature, Integer cough, Integer muscle,
  42. Integer dyspnea, Integer fatigue, Integer diarrhea, Integer singleRoom, String others, Long userCreate, Integer scoreRezult, Integer temperatureScore, Integer scoreHistroy, Integer score
  43. , Integer workLocal, String workLocalOther, Integer todayLocal, String todayLocalOther, Integer isTrip, List<MsTripDet> listTripDet) {
  44. Long reportId = 0L;
  45. //如果是当前日期 已经添加
  46. Date t = new Date();
  47. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  48. String reportDate = df.format(t);
  49. List<MsReport> listReport = msReportMapper.selectByReportDate(reportDate, userCreate);
  50. Long houseId = msReportMapper.selectHouseIdByUserId(userCreate);
  51. //首次进入。没有今日报告
  52. if (listReport == null || listReport.size() == 0) {
  53. MsReport msReport = new MsReport();
  54. msReport.setReportId(IdWorker.getId());
  55. msReport.setHouseId(houseId);
  56. msReport.setSafetyNum(0);
  57. msReport.setSureNum(0);
  58. msReport.setSuspectedNum(0);
  59. msReport.setNormalNum(0);
  60. msReport.setSingleNum(0);
  61. msReport.setRemarks("");
  62. msReport.setReportDate(DateTime.now().toDate());
  63. msReport.setMsStatus(0);
  64. msReport.setUserCreate(userCreate);
  65. msReport.setTimeCreate(DateTime.now());
  66. msReport.setUserUpdate(userCreate);
  67. msReport.setTimeUpdate(DateTime.now());
  68. msReportMapper.insert(msReport);
  69. reportId = msReport.getReportId();
  70. } else {
  71. reportId = listReport.get(0).getReportId();
  72. }
  73. //判断是否疑似
  74. Integer suspectedStatus = 0;
  75. //确诊
  76. if (medical == 1)
  77. suspectedStatus = 1;
  78. //隔离
  79. if (singleRoom == 1)
  80. suspectedStatus = 1;
  81. //体温
  82. if (Conv.NFloat(temperature) < Conv.NFloat(35) || Conv.NFloat(temperature) > Conv.NFloat(37.3))
  83. suspectedStatus = 1;
  84. //咳嗽
  85. if (cough > 0)
  86. suspectedStatus = 1;
  87. //肌肉酸痛
  88. if (muscle > 0)
  89. suspectedStatus = 1;
  90. //呼吸困难
  91. if (dyspnea > 0)
  92. suspectedStatus = 1;
  93. //乏力
  94. if (fatigue > 0)
  95. suspectedStatus = 1;
  96. //腹泻
  97. if (diarrhea > 0)
  98. suspectedStatus = 1;
  99. if (suspectedId == 0L) {
  100. //判断家人是否同名
  101. List<MsSuspected> list = msSuspectedMapper.selectUserNameNum(reportId, userName, reportDate);
  102. if (list != null && list.size() > 0)
  103. return 2L;
  104. //判断是否评估
  105. if (scoreRezult == 0) {
  106. MsSuspected msSuspected1 = msSuspectedService.getScore(0L, userName, medical, temperature, cough, muscle, dyspnea, fatigue, diarrhea, userCreate);
  107. if (msSuspected1 != null) {
  108. scoreRezult = msSuspected1.getScoreRezult();
  109. score = msSuspected1.getScore();
  110. temperatureScore = msSuspected1.getTemperatureScore();
  111. scoreHistroy = msSuspected1.getScoreHistroy();
  112. }
  113. }
  114. MsSuspected msSuspected = new MsSuspected();
  115. msSuspected.setSuspectedId(IdWorker.getId());
  116. msSuspected.setReportId(reportId);
  117. msSuspected.setUserName(userName);
  118. msSuspected.setGrender(grender);//默认为家人
  119. msSuspected.setAge(age);
  120. msSuspected.setFamilyStatus(familyStatus);
  121. msSuspected.setStatusDesp(statusDesp);
  122. msSuspected.setMedical(medical);
  123. msSuspected.setTemperature(temperature);
  124. msSuspected.setCough(cough);
  125. msSuspected.setMuscle(muscle);
  126. msSuspected.setDiarrhea(dyspnea);
  127. msSuspected.setFatigue(fatigue);
  128. msSuspected.setDiarrhea(diarrhea);
  129. msSuspected.setSingleRoom(singleRoom);
  130. msSuspected.setOthers(others);
  131. msSuspected.setSuspectedStatus(suspectedStatus);
  132. msSuspected.setScoreRezult(scoreRezult);
  133. msSuspected.setScore(score);
  134. msSuspected.setScoreHistroy(scoreHistroy);
  135. msSuspected.setTemperatureScore(temperatureScore);
  136. msSuspected.setUserCreate(userCreate);
  137. msSuspected.setTimeCreate(DateTime.now());
  138. msSuspected.setUserUpdate(userCreate);
  139. msSuspected.setTimeUpdate(DateTime.now());
  140. msSuspectedMapper.insert(msSuspected);
  141. //添加出行
  142. MsTrip msTrip = new MsTrip();
  143. msTrip.setTripId(msSuspected.getSuspectedId());
  144. msTrip.setIsTrip(isTrip);
  145. msTrip.setTodayLocal(todayLocal);
  146. msTrip.setTodayLocalOther(todayLocalOther);
  147. msTrip.setWorkLocal(workLocal);
  148. msTrip.setWorkLocalOther(workLocalOther);
  149. msTripMapper.insert(msTrip);
  150. //添加出行详细
  151. if (listTripDet != null && listTripDet.size() > 0) {
  152. for (MsTripDet msTripDet : listTripDet) {
  153. MsTripDet msTripDet1 = new MsTripDet();
  154. msTripDet1.setTripDetId(IdWorker.getId());
  155. msTripDet1.setTripId(msSuspected.getSuspectedId());
  156. msTripDet1.setSort(msTripDet.getSort());
  157. msTripDet1.setStartLocal(msTripDet.getStartLocal());
  158. msTripDet1.setStartLocalOther(msTripDet.getStartLocalOther());
  159. msTripDet1.setEndLocal(msTripDet.getEndLocal());
  160. msTripDet1.setEndLocalOther(msTripDet.getEndLocalOther());
  161. msTripDet1.setTripType(msTripDet.getTripType());
  162. msTripDet1.setTripTypeDesp(msTripDet.getTripTypeDesp());
  163. msTripDet1.setTimeCreate(DateTime.now());
  164. msTripDet1.setUserCreate(userCreate);
  165. msTripDet1.setTimeUpdate(DateTime.now());
  166. msTripDet1.setUserUpdate(userCreate);
  167. msTripDetMapper.insert(msTripDet1);
  168. }
  169. }
  170. } else {
  171. //判断家人是否同名
  172. List<MsSuspected> list = msSuspectedMapper.selectUserNameNum(reportId, userName, reportDate);
  173. if (list != null && list.size() > 0) {
  174. if (list.size() > 1)
  175. return 2L;
  176. else {
  177. if (list.get(0).getSuspectedId().longValue() != suspectedId.longValue())
  178. return 2L;
  179. }
  180. }
  181. MsSuspected msSuspected2 = msSuspectedService.getScore(suspectedId, userName, medical, temperature, cough, muscle, dyspnea, fatigue, diarrhea, userCreate);
  182. if (msSuspected2 != null) {
  183. scoreRezult = msSuspected2.getScoreRezult();
  184. score = msSuspected2.getScore();
  185. temperatureScore = msSuspected2.getTemperatureScore();
  186. scoreHistroy = msSuspected2.getScoreHistroy();
  187. }
  188. MsSuspected msSuspected1 = msSuspectedMapper.selectById(suspectedId);
  189. if (msSuspected1 != null) {
  190. msSuspected1.setUserName(userName);
  191. msSuspected1.setGrender(grender);//默认为家人
  192. msSuspected1.setAge(age);
  193. msSuspected1.setFamilyStatus(familyStatus);
  194. msSuspected1.setStatusDesp(statusDesp);
  195. msSuspected1.setMedical(medical);
  196. msSuspected1.setTemperature(temperature);
  197. msSuspected1.setCough(cough);
  198. msSuspected1.setMuscle(muscle);
  199. msSuspected1.setDiarrhea(dyspnea);
  200. msSuspected1.setFatigue(fatigue);
  201. msSuspected1.setDiarrhea(diarrhea);
  202. msSuspected1.setSingleRoom(singleRoom);
  203. msSuspected1.setOthers(others);
  204. msSuspected1.setScoreRezult(scoreRezult);
  205. msSuspected1.setScore(score);
  206. msSuspected1.setScoreHistroy(scoreHistroy);
  207. msSuspected1.setTemperatureScore(temperatureScore);
  208. msSuspected1.setSuspectedStatus(suspectedStatus);
  209. msSuspectedMapper.updateById(msSuspected1);
  210. }
  211. //编辑行程
  212. MsTrip msTrip = msTripMapper.selectById(suspectedId);
  213. if (msTrip != null) {
  214. msTrip.setWorkLocalOther(workLocalOther);
  215. msTrip.setWorkLocal(workLocal);
  216. msTrip.setTodayLocalOther(todayLocalOther);
  217. msTrip.setTodayLocal(todayLocal);
  218. msTrip.setIsTrip(isTrip);
  219. msTripMapper.updateById(msTrip);
  220. } else {
  221. msTrip = new MsTrip();
  222. msTrip.setTripId(suspectedId);
  223. msTrip.setIsTrip(isTrip);
  224. msTrip.setTodayLocal(todayLocal);
  225. msTrip.setTodayLocalOther(todayLocalOther);
  226. msTrip.setWorkLocal(workLocal);
  227. msTrip.setWorkLocalOther(workLocalOther);
  228. msTripMapper.insert(msTrip);
  229. }
  230. //删除行程详细
  231. msTripDetMapper.deleteByTripId(suspectedId);
  232. //添加出行详细
  233. if (listTripDet != null && listTripDet.size() > 0) {
  234. for (MsTripDet msTripDet : listTripDet) {
  235. MsTripDet msTripDet1 = new MsTripDet();
  236. msTripDet1.setTripDetId(IdWorker.getId());
  237. msTripDet1.setTripId(suspectedId);
  238. msTripDet1.setSort(msTripDet.getSort());
  239. msTripDet1.setStartLocal(msTripDet.getStartLocal());
  240. msTripDet1.setStartLocalOther(msTripDet.getStartLocalOther());
  241. msTripDet1.setEndLocal(msTripDet.getEndLocal());
  242. msTripDet1.setEndLocalOther(msTripDet.getEndLocalOther());
  243. msTripDet1.setTripType(msTripDet.getTripType());
  244. msTripDet1.setTripTypeDesp(msTripDet.getTripTypeDesp());
  245. msTripDet1.setTimeCreate(DateTime.now());
  246. msTripDet1.setUserCreate(userCreate);
  247. msTripDet1.setTimeUpdate(DateTime.now());
  248. msTripDet1.setUserUpdate(userCreate);
  249. msTripDetMapper.insert(msTripDet1);
  250. }
  251. }
  252. }
  253. //更新今日日报
  254. msSuspectedService.updateReport(reportId, medical, singleRoom, temperature);
  255. return reportId;
  256. }
  257. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  258. public Integer deleteTrip(Long suspectedId) {
  259. msTripDetMapper.deleteByTripId(suspectedId);
  260. msTripMapper.deleteById(suspectedId);
  261. return 0;
  262. }
  263. }