package com.bofeng.service; import com.baomidou.mybatisplus.toolkit.IdWorker; import com.bofeng.dao.MsReportMapper; import com.bofeng.dao.MsSuspectedMapper; import com.bofeng.entity.MsReport; import com.bofeng.entity.MsSuspected; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; /** * @Author: xielianghe * @Date: 2020/2/4 15:44 */ @Service @Transactional() public class MsReportService { @Autowired private MsSuspectedMapper msSuspectedMapper; @Autowired private MsReportMapper msReportMapper; @Autowired private MsReportService msReportService; public List getByReportId(Long reportId) { return msSuspectedMapper.selectByReportId(reportId); } public MsReport getByReport(Long reportId) { return msReportMapper.selectById(reportId); } //获取前一天数据 public List getByReportReportDate(String reportDate, Long userCreate) { List listReport = msReportMapper.selectByReportDate(reportDate, userCreate); List listSuspected = null; if (listReport != null && listReport.size() > 0) { listSuspected = msSuspectedMapper.selectByReportId(Long.parseLong(listReport.get(0).getReportId().toString())); } return listSuspected; } //获取今天数据 public MsReport getReportByDateNow(Long userCreate) { //根据昨天的获取今天的 msReportService.getNowByYesterday(userCreate); Date t = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String reportDate = df.format(t); List listReport = msReportMapper.selectByReportDate(reportDate, userCreate); MsReport msReport = new MsReport(); if (listReport != null && listReport.size() > 0) { msReport = msReportMapper.selectById(Long.parseLong(listReport.get(0).getReportId().toString())); } return msReport; } //上报 @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) public Integer addReport(Long userCreate) { Date t = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String reportDate = df.format(t); List listReport = msReportMapper.selectByReportDate(reportDate, userCreate); if (listReport == null || listReport.size() == 0) return 0; //判断体温是否填写 List listSuspected = msSuspectedMapper.selectByReportId(Long.parseLong(listReport.get(0).getReportId().toString())); if (listSuspected == null || listSuspected.size() == 0) return 3; else { for (MsSuspected msSuspected : listSuspected) { if (msSuspected.getTemperature().compareTo(new BigDecimal(0)) == 0) return 2; } } MsReport msReport = msReportMapper.selectById(Long.parseLong(listReport.get(0).getReportId().toString())); if (msReport != null) { msReport.setReportStatus(1); msReport.setUserUpdate(userCreate); msReport.setTimeUpdate(DateTime.now()); msReportMapper.updateById(msReport); } return 1; } //通过昨天数据更新今天数据 @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) public void getNowByYesterday(Long userCreate) { SimpleDateFormat sj = new SimpleDateFormat("yyyy-MM-dd"); Date d = new Date(); //判断今天是否有数据 String DateNow = sj.format(d); List listReport = msReportMapper.selectByReportDate(DateNow, userCreate); if (listReport != null && listReport.size() > 0) return; //判断昨天是否有数据 Calendar calendar = Calendar.getInstance(); calendar.setTime(d); calendar.add(Calendar.DATE, -1); String reportDate = sj.format(calendar.getTime()); List listReport1 = msReportMapper.selectByReportDate(reportDate, userCreate); //有数据 if (listReport1 != null && listReport1.size() > 0) { //添加到今天日报 MsReport msReport = msReportMapper.selectById(Long.parseLong(listReport1.get(0).getReportId().toString())); Long reportId = 0L; if (msReport != null) { MsReport msReport1 = new MsReport(); msReport1.setReportId(IdWorker.getId()); msReport1.setHouseId(msReport.getHouseId()); msReport1.setSafetyNum(msReport.getSafetyNum()); msReport1.setSureNum(msReport.getSureNum()); msReport1.setSuspectedNum(msReport.getSuspectedNum()); msReport1.setNormalNum(msReport.getNormalNum()); msReport1.setSingleNum(msReport.getSingleNum()); msReport1.setRemarks(msReport.getRemarks()); msReport1.setReportDate(DateTime.now().toDate()); msReport1.setReportStatus(0);//未上报 msReport1.setMsStatus(msReport.getMsStatus()); msReport1.setUserCreate(userCreate); msReport1.setTimeCreate(DateTime.now()); msReport1.setUserUpdate(userCreate); msReport1.setTimeUpdate(DateTime.now()); msReportMapper.insert(msReport1); reportId = msReport1.getReportId(); } //添加今日家庭 List listSuspected = msSuspectedMapper.selectByReportId(Long.parseLong(listReport1.get(0).getReportId().toString())); if (listSuspected != null && listSuspected.size() > 0) { for (MsSuspected msSuspected : listSuspected) { MsSuspected msSuspected1 = new MsSuspected(); msSuspected1.setSuspectedId(IdWorker.getId()); msSuspected1.setReportId(reportId); msSuspected1.setUserName(msSuspected.getUserName()); msSuspected1.setGrender(msSuspected.getGrender()); msSuspected1.setAge(msSuspected.getAge()); msSuspected1.setFamilyStatus(msSuspected.getFamilyStatus()); msSuspected1.setStatusDesp(msSuspected.getStatusDesp()); msSuspected1.setMedical(msSuspected.getMedical()); msSuspected1.setTemperature(new BigDecimal(0)); msSuspected1.setCough(msSuspected.getCough()); msSuspected1.setMuscle(msSuspected.getMuscle()); msSuspected1.setDiarrhea(msSuspected.getDiarrhea()); msSuspected1.setFatigue(msSuspected.getFatigue()); msSuspected1.setDiarrhea(msSuspected.getDiarrhea()); msSuspected1.setSingleRoom(msSuspected.getSingleRoom()); msSuspected1.setOthers(msSuspected.getOthers()); msSuspected1.setScoreRezult(msSuspected.getScoreRezult()); msSuspected1.setScore(msSuspected.getScore()); msSuspected1.setScoreHistroy(msSuspected.getScoreHistroy()); msSuspected1.setTemperatureScore(msSuspected.getTemperatureScore()); msSuspected1.setSuspectedStatus(0); msSuspected1.setUserCreate(userCreate); msSuspected1.setTimeCreate(DateTime.now()); msSuspected1.setUserUpdate(userCreate); msSuspected1.setTimeUpdate(DateTime.now()); msSuspectedMapper.insert(msSuspected1); } } } } }