MsReportService.java 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812
  1. package com.bofeng.service;
  2. import com.baomidou.mybatisplus.toolkit.IdWorker;
  3. import com.bofeng.dao.*;
  4. import com.bofeng.entity.*;
  5. import com.yvan.platform.Conv;
  6. import org.joda.time.DateTime;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Service;
  9. import org.springframework.transaction.annotation.Propagation;
  10. import org.springframework.transaction.annotation.Transactional;
  11. import java.math.BigDecimal;
  12. import java.text.ParseException;
  13. import java.text.SimpleDateFormat;
  14. import java.util.*;
  15. /**
  16. * @Author: xielianghe
  17. * @Date: 2020/2/4 15:44
  18. */
  19. @Service
  20. @Transactional()
  21. public class MsReportService {
  22. @Autowired
  23. private MsSuspectedMapper msSuspectedMapper;
  24. @Autowired
  25. private MsReportMapper msReportMapper;
  26. @Autowired
  27. private MsReportService msReportService;
  28. @Autowired
  29. private MsTripMapper msTripMapper;
  30. @Autowired
  31. private UptownUnitMapper uptownUnitMapper;
  32. @Autowired
  33. private VaccineMapper vaccineMapper;
  34. public List<MsSuspected> getByReportId(Long reportId) {
  35. List<MsSuspected> listSuspected = null;
  36. listSuspected = msSuspectedMapper.selectByReportId(reportId);
  37. if (listSuspected != null && listSuspected.size() > 0) {
  38. String tripDet;
  39. for (MsSuspected msSuspected : listSuspected) {
  40. tripDet = "";
  41. //出行详细
  42. List<MsTripDet> listDet = msSuspectedMapper.selectTripSuspected(msSuspected.getSuspectedId());
  43. if (listDet != null && listDet.size() > 0) {
  44. for (MsTripDet msTripDet : listDet) {
  45. tripDet += "出发地:" + getLocalOther(msTripDet.getStartLocal(), msTripDet.getStartLocalOther()) + ",";
  46. tripDet += "目的地:" + getLocalOther(msTripDet.getEndLocal(), msTripDet.getEndLocalOther()) + ",";
  47. tripDet += "出行方式:" + getTripType(msTripDet.getTripType()) + ",";
  48. tripDet += "车次/航班/车牌:" + msTripDet.getTripTypeDesp() + ",";
  49. }
  50. msSuspected.setTripDet(tripDet.substring(0, tripDet.length() - 1));
  51. }
  52. }
  53. }
  54. return listSuspected;
  55. }
  56. public MsReport getByReport(Long reportId) {
  57. return msReportMapper.selectById(reportId);
  58. }
  59. //获取前一天数据
  60. public List<MsSuspected> getByReportReportDate(String reportDate, Long userCreate) {
  61. List<MsReport> listReport = msReportMapper.selectByReportDate(reportDate, userCreate);
  62. List<MsSuspected> listSuspected = null;
  63. if (listReport != null && listReport.size() > 0) {
  64. listSuspected = msSuspectedMapper.selectByReportId(Long.parseLong(listReport.get(0).getReportId().toString()));
  65. if (listSuspected != null && listSuspected.size() > 0) {
  66. String tripDet;
  67. for (MsSuspected msSuspected : listSuspected) {
  68. tripDet = "";
  69. //出行详细
  70. List<MsTripDet> listDet = msSuspectedMapper.selectTripSuspected(msSuspected.getSuspectedId());
  71. if (listDet != null && listDet.size() > 0) {
  72. for (MsTripDet msTripDet : listDet) {
  73. tripDet += "出发地:" + getLocalOther(msTripDet.getStartLocal(), msTripDet.getStartLocalOther()) + ",";
  74. tripDet += "目的地:" + getLocalOther(msTripDet.getEndLocal(), msTripDet.getEndLocalOther()) + ",";
  75. tripDet += "出行方式:" + getTripType(msTripDet.getTripType()) + ",";
  76. tripDet += "车次/航班/车牌:" + msTripDet.getTripTypeDesp() + ",";
  77. }
  78. msSuspected.setTripDet(tripDet.substring(0, tripDet.length() - 1));
  79. }
  80. }
  81. }
  82. }
  83. return listSuspected;
  84. }
  85. //获取日历前一天数据
  86. public List<MsSuspected> getByReportReportDateStatus(String reportDate, Long userCreate) {
  87. List<MsReport> listReport = msReportMapper.selectByReportDateStatus(reportDate, userCreate);
  88. List<MsSuspected> listSuspected = null;
  89. if (listReport != null && listReport.size() > 0) {
  90. listSuspected = msSuspectedMapper.selectByReportId(Long.parseLong(listReport.get(0).getReportId().toString()));
  91. if (listSuspected != null && listSuspected.size() > 0) {
  92. String tripDet;
  93. for (MsSuspected msSuspected : listSuspected) {
  94. tripDet = "";
  95. //出行详细
  96. List<MsTripDet> listDet = msSuspectedMapper.selectTripSuspected(msSuspected.getSuspectedId());
  97. if (listDet != null && listDet.size() > 0) {
  98. for (MsTripDet msTripDet : listDet) {
  99. tripDet += "出发地:" + getLocalOther(msTripDet.getStartLocal(), msTripDet.getStartLocalOther()) + ",";
  100. tripDet += "目的地:" + getLocalOther(msTripDet.getEndLocal(), msTripDet.getEndLocalOther()) + ",";
  101. tripDet += "出行方式:" + getTripType(msTripDet.getTripType()) + ",";
  102. tripDet += "车次/航班/车牌:" + msTripDet.getTripTypeDesp() + ",";
  103. }
  104. msSuspected.setTripDet(tripDet.substring(0, tripDet.length() - 1));
  105. }
  106. }
  107. }
  108. }
  109. return listSuspected;
  110. }
  111. public String getLocalOther(Integer local, String localOther) {
  112. String localDet = "";
  113. if (local == 1) {
  114. localDet = "武汉市";
  115. } else if (local == 2)
  116. localDet = "宜昌市";
  117. else if (local == 3)
  118. localDet = "当阳市";
  119. else if (local == 4)
  120. localDet = "其它地点_" + localOther;
  121. return localDet;
  122. }
  123. public String getTripType(Integer tripType) {
  124. String tripTypeDet = "";
  125. if (tripType == 1) {
  126. tripTypeDet = "长途汽车";
  127. } else if (tripType == 2)
  128. tripTypeDet = "火车";
  129. else if (tripType == 3)
  130. tripTypeDet = "飞机";
  131. else if (tripType == 4)
  132. tripTypeDet = "自驾";
  133. return tripTypeDet;
  134. }
  135. //获取今天数据(停用)
  136. public MsReport getReportByDateNow(Long userCreate) {
  137. //根据昨天的获取今天的
  138. //msReportService.getNowByYesterday(userCreate);
  139. //msReportService.getNowByYesterdayDate();
  140. //msReportService.addReport250();
  141. Date t = new Date();
  142. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  143. String reportDate = df.format(t);
  144. List<MsReport> listReport = msReportMapper.selectByReportDate(reportDate, userCreate);
  145. MsReport msReport = new MsReport();
  146. //今天不存在
  147. if (listReport == null || listReport.size() == 0) {
  148. //最近一天数据复制到今天
  149. msReportService.getNowByNextDat(userCreate);
  150. List<MsReport> listReport1 = msReportMapper.selectByReportDate(reportDate, userCreate);
  151. //今天不存在
  152. if (listReport1 != null && listReport1.size() > 0)
  153. msReport = msReportMapper.selectById(Long.parseLong(listReport1.get(0).getReportId().toString()));
  154. } else {
  155. msReport = msReportMapper.selectById(Long.parseLong(listReport.get(0).getReportId().toString()));
  156. }
  157. return msReport;
  158. }
  159. //上报
  160. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  161. public Integer addReport(Long userCreate) {
  162. Date t = new Date();
  163. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  164. String reportDate = df.format(t);
  165. List<MsReport> listReport = msReportMapper.selectByReportDate(reportDate, userCreate);
  166. if (listReport == null || listReport.size() == 0)
  167. return 0;
  168. //判断体温是否填写
  169. List<MsSuspected> listSuspected = msSuspectedMapper.selectByReportId(Long.parseLong(listReport.get(0).getReportId().toString()));
  170. if (listSuspected == null || listSuspected.size() == 0)
  171. return 3;
  172. // if (unit != null) {
  173. // if (unit.getUptownId() == 1238790987234L || unit.getUptownId() == 5) {
  174. // if (listSuspected != null && listSuspected.size() > 1)
  175. // return 5;
  176. // }
  177. // }
  178. else {
  179. for (MsSuspected msSuspected : listSuspected) {
  180. //体温是否填写
  181. if (msSuspected.getTemperature().compareTo(new BigDecimal(0)) == 0)
  182. return 2;
  183. //如果是凌云,判断出行是否填写异常
  184. UptownUnit unit = uptownUnitMapper.getUptownUnitByUser(userCreate);
  185. if (unit != null) {
  186. if (unit.getUptownId() == 1238790987234L || unit.getUptownId() == 5) {
  187. //上一天的上报记录.3天内
  188. List<MsSuspected> listSuspected1 = msSuspectedMapper.selectNext3Suspected(userCreate);
  189. if (listSuspected1 != null && listSuspected1.size() == 1) {
  190. if (listSuspected1.get(0).getTodayLocal() != null && msSuspected.getTodayLocal() != null && msSuspected.getIsTrip() != null && listSuspected1.get(0).getTodayLocal() != 0 && msSuspected.getTodayLocal() != 0) {
  191. if (listSuspected1.get(0).getTodayLocalOther() != msSuspected.getTodayLocalOther() && listSuspected1.get(0).getTodayLocal() != msSuspected.getTodayLocal() && msSuspected.getIsTrip() == 0) {
  192. return 4;
  193. }
  194. }
  195. }
  196. }
  197. }
  198. }
  199. }
  200. MsReport msReport = msReportMapper.selectById(Long.parseLong(listReport.get(0).getReportId().toString()));
  201. if (msReport != null) {
  202. msReport.setReportStatus(1);
  203. msReport.setUserUpdate(userCreate);
  204. msReport.setTimeUpdate(DateTime.now());
  205. msReportMapper.updateById(msReport);
  206. }
  207. return 1;
  208. }
  209. //ly判断是否上报
  210. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  211. public Integer addReportLy(Long userCreate, Integer isTrip, Integer todayLacal, String todayLocalOther) {
  212. //如果是凌云,判断出行是否填写异常
  213. //上一天的上报记录.3天内
  214. List<MsSuspected> listSuspected1 = msSuspectedMapper.selectNext3Suspected(userCreate);
  215. if (listSuspected1 != null && listSuspected1.size() == 1) {
  216. if (listSuspected1.get(0).getTodayLocal() != null && todayLacal != null && isTrip != null && listSuspected1.get(0).getTodayLocal() != 0 && todayLacal != 0) {
  217. if (listSuspected1.get(0).getTodayLocalOther() != todayLocalOther && listSuspected1.get(0).getTodayLocal() != todayLacal && isTrip == 0) {
  218. return 4;
  219. }
  220. }
  221. }
  222. return 1;
  223. }
  224. //修改
  225. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  226. public Integer editReportLy(Long reportId, Long userCreate) {
  227. MsReport msReport = msReportMapper.selectById(reportId);
  228. if (msReport != null) {
  229. msReport.setReportStatus(1);
  230. msReport.setUserUpdate(userCreate);
  231. msReport.setTimeUpdate(DateTime.now());
  232. msReportMapper.updateById(msReport);
  233. }
  234. return 1;
  235. }
  236. //通过昨天数据更新今天数据(停用)
  237. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  238. public void getNowByYesterday(Long userCreate) {
  239. SimpleDateFormat sj = new SimpleDateFormat("yyyy-MM-dd");
  240. Date d = new Date();
  241. //判断今天是否有数据
  242. String DateNow = sj.format(d);
  243. List<MsReport> listReport = msReportMapper.selectByReportDate(DateNow, userCreate);
  244. if (listReport != null && listReport.size() > 0)
  245. return;
  246. //判断昨天是否有数据
  247. Calendar calendar = Calendar.getInstance();
  248. calendar.setTime(d);
  249. calendar.add(Calendar.DATE, -1);
  250. String reportDate = sj.format(calendar.getTime());
  251. List<MsReport> listReport1 = msReportMapper.selectByReportDate(reportDate, userCreate);
  252. //有数据
  253. if (listReport1 != null && listReport1.size() > 0) {
  254. //添加到今天日报
  255. MsReport msReport = msReportMapper.selectById(Long.parseLong(listReport1.get(0).getReportId().toString()));
  256. Long reportId = 0L;
  257. if (msReport != null) {
  258. MsReport msReport1 = new MsReport();
  259. msReport1.setReportId(IdWorker.getId());
  260. msReport1.setHouseId(msReport.getHouseId());
  261. msReport1.setSafetyNum(msReport.getSafetyNum());
  262. msReport1.setSureNum(msReport.getSureNum());
  263. msReport1.setSuspectedNum(msReport.getSuspectedNum());
  264. msReport1.setNormalNum(msReport.getNormalNum());
  265. msReport1.setSingleNum(msReport.getSingleNum());
  266. msReport1.setRemarks(msReport.getRemarks());
  267. msReport1.setReportDate(DateTime.now().toDate());
  268. msReport1.setReportStatus(0);//未上报
  269. msReport1.setMsStatus(msReport.getMsStatus());
  270. msReport1.setUserCreate(userCreate);
  271. msReport1.setTimeCreate(DateTime.now());
  272. msReport1.setUserUpdate(userCreate);
  273. msReport1.setTimeUpdate(DateTime.now());
  274. msReportMapper.insert(msReport1);
  275. reportId = msReport1.getReportId();
  276. }
  277. //添加今日家庭
  278. List<MsSuspected> listSuspected = msSuspectedMapper.selectByReportId(Long.parseLong(listReport1.get(0).getReportId().toString()));
  279. if (listSuspected != null && listSuspected.size() > 0) {
  280. for (MsSuspected msSuspected : listSuspected) {
  281. MsSuspected msSuspected1 = new MsSuspected();
  282. msSuspected1.setSuspectedId(IdWorker.getId());
  283. msSuspected1.setReportId(reportId);
  284. msSuspected1.setUserName(msSuspected.getUserName());
  285. msSuspected1.setGrender(msSuspected.getGrender());
  286. msSuspected1.setAge(msSuspected.getAge());
  287. msSuspected1.setFamilyStatus(msSuspected.getFamilyStatus());
  288. msSuspected1.setStatusDesp(msSuspected.getStatusDesp());
  289. msSuspected1.setMedical(msSuspected.getMedical());
  290. msSuspected1.setTemperature(new BigDecimal(0));
  291. msSuspected1.setCough(msSuspected.getCough());
  292. msSuspected1.setMuscle(msSuspected.getMuscle());
  293. msSuspected1.setDyspnea(msSuspected.getDyspnea());
  294. msSuspected1.setFatigue(msSuspected.getFatigue());
  295. msSuspected1.setDiarrhea(msSuspected.getDiarrhea());
  296. msSuspected1.setSingleRoom(msSuspected.getSingleRoom());
  297. msSuspected1.setOthers(msSuspected.getOthers());
  298. // msSuspected1.setScoreRezult(msSuspected.getScoreRezult());
  299. // msSuspected1.setScore(msSuspected.getScore());
  300. // msSuspected1.setScoreHistroy(msSuspected.getScoreHistroy());
  301. // msSuspected1.setTemperatureScore(msSuspected.getTemperatureScore());
  302. msSuspected1.setSuspectedStatus(0);
  303. msSuspected1.setUserCreate(userCreate);
  304. msSuspected1.setTimeCreate(DateTime.now());
  305. msSuspected1.setUserUpdate(userCreate);
  306. msSuspected1.setTimeUpdate(DateTime.now());
  307. msSuspectedMapper.insert(msSuspected1);
  308. }
  309. }
  310. }
  311. }
  312. //自动将用户最新的数据更新到今天
  313. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  314. public void getNowByYesterdayDate() {
  315. //每次执行100条
  316. Long start = 0L, count = 100L;
  317. while (true) {
  318. //今天以前一共有多少用户
  319. List<Long> listUser = msReportMapper.getUserByYesterdayDate(start, count);
  320. if (listUser != null && listUser.size() > 0) {
  321. for (Long userCreate : listUser) {
  322. //判断用户今天是否有数据
  323. SimpleDateFormat sj = new SimpleDateFormat("yyyy-MM-dd");
  324. Date d = new Date();
  325. String DateNow = sj.format(d);
  326. List<MsReport> listReport = msReportMapper.selectByReportDate(DateNow, userCreate);
  327. if (listReport != null && listReport.size() > 0)
  328. continue;
  329. //查询改用户今天以前的最近一条记录
  330. List<MsReport> listReport1 = msReportMapper.getNowByYesterdayDate(userCreate);
  331. if (listReport1 != null && listReport1.size() > 0) {
  332. for (MsReport msReport : listReport1) {
  333. if (msReport != null) {
  334. //添加日报
  335. MsReport msReport1 = new MsReport();
  336. msReport1.setReportId(IdWorker.getId());
  337. msReport1.setHouseId(msReport.getHouseId());
  338. msReport1.setSafetyNum(msReport.getSafetyNum());
  339. msReport1.setSureNum(msReport.getSureNum());
  340. msReport1.setSuspectedNum(msReport.getSuspectedNum());
  341. msReport1.setNormalNum(msReport.getNormalNum());
  342. msReport1.setSingleNum(msReport.getSingleNum());
  343. msReport1.setRemarks(msReport.getRemarks());
  344. msReport1.setReportDate(DateTime.now().toDate());
  345. msReport1.setReportStatus(0);//未上报
  346. msReport1.setMsStatus(msReport.getMsStatus());
  347. msReport1.setUserCreate(msReport.getUserCreate());
  348. msReport1.setTimeCreate(DateTime.now());
  349. msReport1.setUserUpdate(msReport.getUserCreate());
  350. msReport1.setTimeUpdate(DateTime.now());
  351. msReportMapper.insert(msReport1);
  352. //添加家人
  353. List<MsSuspected> listSuspected = msSuspectedMapper.selectByReportId(msReport.getReportId());
  354. if (listSuspected != null && listSuspected.size() > 0) {
  355. for (MsSuspected msSuspected : listSuspected) {
  356. MsSuspected msSuspected1 = new MsSuspected();
  357. msSuspected1.setSuspectedId(IdWorker.getId());
  358. msSuspected1.setReportId(msReport1.getReportId());
  359. msSuspected1.setUserName(msSuspected.getUserName());
  360. msSuspected1.setGrender(msSuspected.getGrender());
  361. msSuspected1.setAge(msSuspected.getAge());
  362. msSuspected1.setFamilyStatus(msSuspected.getFamilyStatus());
  363. msSuspected1.setStatusDesp(msSuspected.getStatusDesp());
  364. msSuspected1.setMedical(msSuspected.getMedical());
  365. msSuspected1.setTemperature(new BigDecimal(0));//温度0
  366. msSuspected1.setCough(msSuspected.getCough());
  367. msSuspected1.setMuscle(msSuspected.getMuscle());
  368. msSuspected1.setDyspnea(msSuspected.getDyspnea());
  369. msSuspected1.setFatigue(msSuspected.getFatigue());
  370. msSuspected1.setDiarrhea(msSuspected.getDiarrhea());
  371. msSuspected1.setSingleRoom(msSuspected.getSingleRoom());
  372. msSuspected1.setOthers(msSuspected.getOthers());
  373. // msSuspected1.setScoreRezult(msSuspected.getScoreRezult());
  374. // msSuspected1.setScore(msSuspected.getScore());
  375. // msSuspected1.setScoreHistroy(msSuspected.getScoreHistroy());
  376. // msSuspected1.setTemperatureScore(msSuspected.getTemperatureScore());
  377. msSuspected1.setSuspectedStatus(0);
  378. msSuspected1.setUserCreate(msSuspected.getUserCreate());
  379. msSuspected1.setTimeCreate(DateTime.now());
  380. msSuspected1.setUserUpdate(msSuspected.getUserUpdate());
  381. msSuspected1.setTimeUpdate(DateTime.now());
  382. msSuspectedMapper.insert(msSuspected1);
  383. }
  384. }
  385. }
  386. }
  387. }
  388. }
  389. }
  390. start += count;
  391. if (listUser == null || listUser.size() < count) {
  392. break;
  393. }
  394. }
  395. }
  396. //添加250条记录
  397. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  398. public void addReport250() {
  399. //每次执行100条
  400. Long count = 0L;
  401. while (true) {
  402. //添加日报
  403. MsReport msReport1 = new MsReport();
  404. msReport1.setReportId(IdWorker.getId());
  405. msReport1.setHouseId(0L);
  406. msReport1.setSafetyNum(0);
  407. msReport1.setSureNum(0);
  408. msReport1.setSuspectedNum(0);
  409. msReport1.setNormalNum(0);
  410. msReport1.setSingleNum(0);
  411. msReport1.setRemarks("");
  412. msReport1.setReportDate(DateTime.now().toDate());
  413. msReport1.setReportStatus(0);//未上报
  414. msReport1.setMsStatus(0);
  415. msReport1.setUserCreate(count);
  416. msReport1.setTimeCreate(DateTime.now());
  417. msReport1.setUserUpdate(count);
  418. msReport1.setTimeUpdate(DateTime.now());
  419. count += msReportMapper.insert(msReport1);
  420. if (count > 250) {
  421. break;
  422. }
  423. }
  424. }
  425. //通过最近一天数据更新今天数据
  426. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  427. public void getNowByNextDat(Long userCreate) {
  428. SimpleDateFormat sj = new SimpleDateFormat("yyyy-MM-dd");
  429. Date d = new Date();
  430. //判断今天是否有数据
  431. String DateNow = sj.format(d);
  432. List<MsReport> listReport = msReportMapper.selectByReportDate(DateNow, userCreate);
  433. if (listReport != null && listReport.size() > 0)
  434. return;
  435. UptownUnit unit = uptownUnitMapper.getUptownUnitByUser(userCreate);
  436. //判断最近一天是否有数据
  437. List<MsSuspected> listSuspected = msSuspectedMapper.selectNextSuspected(userCreate);
  438. //有数据
  439. if (listSuspected != null && listSuspected.size() > 0) {
  440. //添加到今天日报
  441. MsReport msReport = msReportMapper.selectById(Long.parseLong(listSuspected.get(0).getReportId().toString()));
  442. Long reportId = 0L;
  443. Long houseId = 0L;
  444. if (msReport != null) {
  445. MsReport msReport1 = new MsReport();
  446. msReport1.setReportId(IdWorker.getId());
  447. if (msReport.getHouseId().longValue() == 0L)
  448. houseId = msReportMapper.selectHouseIdByUserId(userCreate);
  449. else
  450. houseId = msReport.getHouseId();
  451. msReport1.setHouseId(houseId);
  452. msReport1.setSafetyNum(msReport.getSafetyNum());
  453. msReport1.setSureNum(msReport.getSureNum());
  454. msReport1.setSuspectedNum(msReport.getSuspectedNum());
  455. msReport1.setNormalNum(msReport.getNormalNum());
  456. msReport1.setSingleNum(msReport.getSingleNum());
  457. msReport1.setRemarks(msReport.getRemarks());
  458. msReport1.setReportDate(DateTime.now().toDate());
  459. msReport1.setReportStatus(0);//未上报
  460. msReport1.setMsStatus(msReport.getMsStatus());
  461. msReport1.setUserCreate(userCreate);
  462. msReport1.setTimeCreate(DateTime.now());
  463. msReport1.setUserUpdate(userCreate);
  464. msReport1.setTimeUpdate(DateTime.now());
  465. msReportMapper.insert(msReport1);
  466. reportId = msReport1.getReportId();
  467. }
  468. //添加今日家人
  469. for (MsSuspected msSuspected : listSuspected) {
  470. MsSuspected msSuspected1 = new MsSuspected();
  471. msSuspected1.setSuspectedId(IdWorker.getId());
  472. msSuspected1.setReportId(reportId);
  473. msSuspected1.setUserName(msSuspected.getUserName());
  474. msSuspected1.setGrender(msSuspected.getGrender());
  475. msSuspected1.setAge(msSuspected.getAge());
  476. msSuspected1.setFamilyStatus(msSuspected.getFamilyStatus());
  477. msSuspected1.setStatusDesp(msSuspected.getStatusDesp());
  478. msSuspected1.setMedical(msSuspected.getMedical());
  479. msSuspected1.setTemperature(new BigDecimal(0));
  480. msSuspected1.setCough(msSuspected.getCough());
  481. msSuspected1.setMuscle(msSuspected.getMuscle());
  482. msSuspected1.setDyspnea(msSuspected.getDyspnea());
  483. msSuspected1.setFatigue(msSuspected.getFatigue());
  484. msSuspected1.setDiarrhea(msSuspected.getDiarrhea());
  485. //如果是凌云的,不需要复制单间隔离
  486. if (unit != null) {
  487. if (unit.getUptownId() == 1238790987234L || unit.getUptownId() == 5)
  488. msSuspected1.setSingleRoom(0);
  489. } else
  490. msSuspected1.setSingleRoom(msSuspected.getSingleRoom());
  491. msSuspected1.setOthers(msSuspected.getOthers());
  492. // msSuspected1.setScoreRezult(msSuspected.getScoreRezult());
  493. // msSuspected1.setScore(msSuspected.getScore());
  494. // msSuspected1.setScoreHistroy(msSuspected.getScoreHistroy());
  495. // msSuspected1.setTemperatureScore(msSuspected.getTemperatureScore());
  496. msSuspected1.setIsContact(msSuspected.getIsContact());
  497. msSuspected1.setIsSuspected(msSuspected.getIsSuspected());
  498. msSuspected1.setSuspectedStatus(0);
  499. msSuspected1.setUserCreate(userCreate);
  500. msSuspected1.setTimeCreate(DateTime.now());
  501. msSuspected1.setUserUpdate(userCreate);
  502. msSuspected1.setTimeUpdate(DateTime.now());
  503. msSuspectedMapper.insert(msSuspected1);
  504. //添加行程
  505. MsTrip msTrip = new MsTrip();
  506. msTrip.setTripId(msSuspected1.getSuspectedId());
  507. msTrip.setIsTrip(0);
  508. msTrip.setTodayLocal(msSuspected.getTodayLocal());
  509. msTrip.setTodayLocalOther(msSuspected.getTodayLocalOther());
  510. msTrip.setWorkLocal(msSuspected.getWorkLocal());
  511. msTrip.setWorkLocalOther(msSuspected.getWorkLocalOther());
  512. msTripMapper.insert(msTrip);
  513. //添加出行详细
  514. // List<MsTripDet> listTripDet = msSuspectedMapper.selectTripSuspected(msSuspected.getSuspectedId());
  515. // if (listTripDet != null && listTripDet.size() > 0) {
  516. // for (MsTripDet msTripDet : listTripDet) {
  517. // MsTripDet msTripDet1 = new MsTripDet();
  518. // msTripDet1.setTripDetId(IdWorker.getId());
  519. // msTripDet1.setTripId(msSuspected1.getSuspectedId());
  520. // msTripDet1.setSort(msTripDet.getSort());
  521. // msTripDet1.setStartLocal(msTripDet.getStartLocal());
  522. // msTripDet1.setStartLocalOther(msTripDet.getStartLocalOther());
  523. // msTripDet1.setEndLocal(msTripDet.getEndLocal());
  524. // msTripDet1.setEndLocalOther(msTripDet.getEndLocalOther());
  525. // msTripDet1.setTripType(msTripDet.getTripType());
  526. // msTripDet1.setTripTypeDesp(msTripDet.getTripTypeDesp());
  527. // msTripDet1.setTimeCreate(DateTime.now());
  528. // msTripDet1.setUserCreate(userCreate);
  529. // msTripDet1.setTimeUpdate(DateTime.now());
  530. // msTripDet1.setUserUpdate(userCreate);
  531. // msTripDetMapper.insert(msTripDet1);
  532. // }
  533. // }
  534. }
  535. }
  536. }
  537. //获取时间
  538. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  539. public String getTimeByDate(Integer numdate) {
  540. String reportDate = "";
  541. SimpleDateFormat sj = new SimpleDateFormat("yyyy-MM-dd");
  542. Date d = new Date();
  543. if (numdate == 0) {
  544. reportDate = sj.format(d);
  545. } else {
  546. Calendar calendar = Calendar.getInstance();
  547. calendar.setTime(d);
  548. calendar.add(Calendar.DATE, numdate);
  549. reportDate = sj.format(calendar.getTime());
  550. }
  551. return reportDate;
  552. }
  553. //获取温度
  554. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  555. public String getTemperature(Long userId, Integer numdate) {
  556. String temperature = "-";
  557. MsSuspected msSuspected = msReportMapper.select5ByReportrId(userId, getTimeByDate(numdate));
  558. if (msSuspected != null)
  559. temperature = msSuspected.getTemperature().toString();
  560. return temperature;
  561. }
  562. //后台专用
  563. public List<MsReport> getByReportReportDateTest(Long userCreate, Map<String, Object> queryParam) {
  564. Map<String, Object> mm = queryParam;
  565. queryParam.put("userCreate", userCreate);
  566. return msReportMapper.selectByReportDateTest(queryParam);
  567. }
  568. public List<MsSuspected> getByReportReportDateTestxq(Map<String, Object> queryParam) {
  569. List<MsSuspected> msReports = msReportMapper.selectByReportDateTestxq(queryParam);
  570. if (msReports.size() != 0) {
  571. for (int i = 0; i < msReports.size(); i++) {
  572. if (msReports.get(i).getWorkLocal() == 1) {
  573. msReports.get(i).setWorkLocalOtherStr("武汉市");
  574. } else if (msReports.get(i).getWorkLocal() == 2) {
  575. msReports.get(i).setWorkLocalOtherStr("宜昌市");
  576. } else if (msReports.get(i).getWorkLocal() == 3) {
  577. msReports.get(i).setWorkLocalOtherStr("当阳市");
  578. }
  579. if (msReports.get(i).getTodayLocal() == 1) {
  580. msReports.get(i).setTodayLocalOtherStr("武汉市");
  581. } else if (msReports.get(i).getTodayLocal() == 2) {
  582. msReports.get(i).setTodayLocalOtherStr("宜昌市");
  583. } else if (msReports.get(i).getTodayLocal() == 3) {
  584. msReports.get(i).setTodayLocalOtherStr("当阳市");
  585. }
  586. if (msReports.get(i).getEndLocal() != null) {
  587. if (msReports.get(i).getEndLocal() == 1) {
  588. msReports.get(i).setEndLocalOtherStr("武汉市");
  589. } else if (msReports.get(i).getEndLocal() == 2) {
  590. msReports.get(i).setEndLocalOtherStr("宜昌市");
  591. } else if (msReports.get(i).getEndLocal() == 3) {
  592. msReports.get(i).setEndLocalOtherStr("当阳市");
  593. }
  594. }
  595. if (msReports.get(i).getStartLocal() != null) {
  596. if (msReports.get(i).getStartLocal() == 1) {
  597. msReports.get(i).setStartLocalOtherStr("武汉市");
  598. } else if (msReports.get(i).getStartLocal() == 2) {
  599. msReports.get(i).setStartLocalOtherStr("宜昌市");
  600. } else if (msReports.get(i).getStartLocal() == 3) {
  601. msReports.get(i).setStartLocalOtherStr("当阳市");
  602. }
  603. }
  604. }
  605. }
  606. return msReports;
  607. }
  608. //统计LY异常情况
  609. public List<MsReport> getByReportSuspected() throws ParseException {
  610. //获取所有的ly人员
  611. List<MsReport> list = msReportMapper.selectByReportSuspected();
  612. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  613. SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
  614. List<MsReport> listReport = new ArrayList<>();
  615. if (list != null && list.size() > 0) {
  616. for (MsReport msReport : list) {
  617. //是否确诊
  618. Integer isSure = msReportMapper.selectNum(msReport.getUserId(), 1) > 0 ? 1 : 0;
  619. //是否疑似
  620. Integer isSuspected = msReportMapper.selectNum(msReport.getUserId(), 2) > 0 ? 1 : 0;
  621. //是否有异常症状
  622. String isSymptom = "";
  623. List<MsSuspected> listSuspected = msReportMapper.selectSymptomNum(msReport.getUserId());
  624. if (listSuspected != null && listSuspected.size() > 0) {
  625. for (MsSuspected msSuspected : listSuspected) {
  626. isSymptom += s.format(msSuspected.getReportDate().getTime()) + ",";
  627. if (Conv.NFloat(msSuspected.getTemperature()) < Conv.NFloat(35) || Conv.NFloat(msSuspected.getTemperature()) > Conv.NFloat(37.3))
  628. isSymptom += "体温:异常,";
  629. if (msSuspected.getCough() > 0)
  630. isSymptom += "咳嗽现象:" + getCough(msSuspected.getCough()) + ",";
  631. if (msSuspected.getMuscle() > 0)
  632. isSymptom += "肌肉酸痛:" + getMuscle(msSuspected.getMuscle()) + ",";
  633. if (msSuspected.getDyspnea() > 0)
  634. isSymptom += "呼吸困难:" + getDyspnea(msSuspected.getDyspnea()) + ",";
  635. if (msSuspected.getFatigue() > 0)
  636. isSymptom += "乏力现象:" + getFatigue(msSuspected.getFatigue()) + ",";
  637. if (msSuspected.getDiarrhea() > 0)
  638. isSymptom += "腹泻现象:" + getDiarrhea(msSuspected.getDiarrhea()) + ",";
  639. }
  640. }
  641. //是否有接触史
  642. Integer isContact = msReportMapper.selectNum(msReport.getUserId(), 3) > 0 ? 1 : 0;
  643. //家人是否有接触史
  644. Integer isFamliyContact = msReportMapper.selectFamilyContactNum(msReport.getUserId()) > 0 ? 1 : 0;
  645. //异地返工
  646. Integer isWork = 0;
  647. MsTripDet returnWork = msReportMapper.returnWork(msReport.getUserId());
  648. if (returnWork != null) {
  649. if (sdf.parse(returnWork.getReturnWork() + " 00:00:00").getTime() + 1000L * 3600 * 24 * 15 > sdf.parse(s.format(new Date()) + " 00:00:00").getTime()) {
  650. isWork = 1;
  651. }
  652. }
  653. //判断只要存在一种情况,就写进数据库
  654. if (isSure > 0 || isSuspected > 0 || isSymptom != "" || isContact > 0 || isFamliyContact > 0 || isWork > 0) {
  655. msReport.setIsSure(isSure);
  656. msReport.setIsSuspected(isSuspected);
  657. msReport.setIsSymptom(isSymptom);
  658. msReport.setIsContact(isContact);
  659. msReport.setIsFamliyContact(isFamliyContact);
  660. msReport.setIsWork(isWork);
  661. listReport.add(msReport);
  662. }
  663. }
  664. }
  665. return listReport;
  666. }
  667. public String getCough(Integer cough) {
  668. if (cough == 0)
  669. return "无咳嗽";
  670. else if (cough == 1)
  671. return "偶尔短暂咳嗽";
  672. else if (cough == 2)
  673. return "咳嗽轻度影响生活";
  674. else if (cough == 3)
  675. return "咳嗽严重影响生活";
  676. return "";
  677. }
  678. public String getMuscle(Integer muscle) {
  679. if (muscle == 0)
  680. return "无";
  681. else if (muscle == 1)
  682. return "按压有";
  683. else if (muscle == 2)
  684. return "偶尔";
  685. else if (muscle == 3)
  686. return "持续有";
  687. return "";
  688. }
  689. public String getDyspnea(Integer dyspnea) {
  690. if (dyspnea == 0)
  691. return "无";
  692. else if (dyspnea == 1)
  693. return "急走或上坡气短";
  694. else if (dyspnea == 2)
  695. return "气短而走路变慢";
  696. else if (dyspnea == 3)
  697. return "走路数分钟后气短";
  698. else if (dyspnea == 4)
  699. return "气短无法离开房间";
  700. return "";
  701. }
  702. public String getFatigue(Integer fatigue) {
  703. if (fatigue == 0)
  704. return "无";
  705. else if (fatigue == 1)
  706. return "体力劳动后不能恢复";
  707. else if (fatigue == 2)
  708. return "轻体力活非常累";
  709. else if (fatigue == 3)
  710. return "不能正常生活";
  711. return "";
  712. }
  713. public String getDiarrhea(Integer diarrhea) {
  714. if (diarrhea == 0)
  715. return "无";
  716. else if (diarrhea == 1)
  717. return "轻度腹泻(少于3次)";
  718. else if (diarrhea == 2)
  719. return "中度腹泻(4-6次)";
  720. else if (diarrhea == 3)
  721. return "重度腹泻(超过6次)";
  722. return "";
  723. }
  724. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  725. public int addVaccine(Vaccine vaccine) {
  726. Date now = new Date();
  727. Vaccine v = vaccineMapper.selectByUserId(vaccine.getUserId());
  728. if (v != null && v.getVacId() != 0) {
  729. vaccine.setVacId(v.getVacId());
  730. }
  731. changeVaccine(vaccine);
  732. if (vaccine.getVacId() == 0) {
  733. vaccine.setVacId(IdWorker.getId());
  734. vaccine.setTimeCreate(now);
  735. vaccine.setTimeUpdate(now);
  736. return vaccineMapper.insert(vaccine);
  737. } else {
  738. vaccine.setTimeUpdate(now);
  739. return vaccineMapper.updateById(vaccine);
  740. }
  741. }
  742. private void changeVaccine(Vaccine vaccine) {
  743. if (vaccine.getInoculateStatus() == 0) {
  744. vaccine.setVaccineType(0);
  745. vaccine.setFirstTime(null);
  746. vaccine.setFirstHospital("");
  747. vaccine.setFirstUnit("");
  748. vaccine.setSecondTime(null);
  749. vaccine.setSecondHospital("");
  750. vaccine.setSecondUnit("");
  751. vaccine.setThirdTime(null);
  752. vaccine.setThirdHospital("");
  753. vaccine.setFirstUnit("");
  754. } else if (vaccine.getInoculateStatus() == 1) {
  755. vaccine.setReason("");
  756. }
  757. }
  758. }