123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366 |
- 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 com.bofeng.entity.MsTripDet;
- import com.bofeng.entity.UserOpen;
- import org.apache.commons.lang3.tuple.Triple;
- 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;
- @Autowired
- private MsSuspectedService msSuspectedService;
- public List<MsSuspected> getByReportId(Long reportId) {
- List<MsSuspected> listSuspected = null;
- listSuspected=msSuspectedMapper.selectByReportId(reportId);
- if (listSuspected != null && listSuspected.size() > 0) {
- String tripDet;
- for (MsSuspected msSuspected : listSuspected) {
- tripDet="";
- //出行详细
- List<MsTripDet> listDet = msSuspectedMapper.selectTripSuspected(msSuspected.getSuspectedId());
- if (listDet != null && listDet.size() > 0) {
- for (MsTripDet msTripDet : listDet) {
- tripDet += "出发地:" + getLocalOther(msTripDet.getStartLocal(), msTripDet.getEndLocalOther()) + ",";
- tripDet += "目的地:" + getLocalOther(msTripDet.getEndLocal(), msTripDet.getEndLocalOther()) + ",";
- tripDet += "出行方式:" + getTripType(msTripDet.getTripType()) + ",";
- tripDet += "车次/航班/车牌:" + msTripDet.getTripTypeDesp() + ",";
- }
- msSuspected.setTripDet(tripDet.substring(0, tripDet.length() - 1));
- }
- }
- }
- return listSuspected ;
- }
- public MsReport getByReport(Long reportId) {
- return msReportMapper.selectById(reportId);
- }
- //获取前一天数据
- public List<MsSuspected> getByReportReportDate(String reportDate, Long userCreate) {
- List<MsReport> listReport = msReportMapper.selectByReportDate(reportDate, userCreate);
- List<MsSuspected> listSuspected = null;
- if (listReport != null && listReport.size() > 0) {
- listSuspected = msSuspectedMapper.selectByReportId(Long.parseLong(listReport.get(0).getReportId().toString()));
- if (listSuspected != null && listSuspected.size() > 0) {
- String tripDet;
- for (MsSuspected msSuspected : listSuspected) {
- tripDet="";
- //出行详细
- List<MsTripDet> listDet = msSuspectedMapper.selectTripSuspected(msSuspected.getSuspectedId());
- if (listDet != null && listDet.size() > 0) {
- for (MsTripDet msTripDet : listDet) {
- tripDet += "出发地:" + getLocalOther(msTripDet.getStartLocal(), msTripDet.getEndLocalOther()) + ",";
- tripDet += "目的地:" + getLocalOther(msTripDet.getEndLocal(), msTripDet.getEndLocalOther()) + ",";
- tripDet += "出行方式:" + getTripType(msTripDet.getTripType()) + ",";
- tripDet += "车次/航班/车牌:" + msTripDet.getTripTypeDesp() + ",";
- }
- msSuspected.setTripDet(tripDet.substring(0, tripDet.length() - 1));
- }
- }
- }
- }
- return listSuspected;
- }
- public String getLocalOther(Integer local, String localOther) {
- String localDet = "";
- if (local == 1) {
- localDet = "武汉";
- } else if (local == 2)
- localDet = "宜昌";
- else if (local == 3)
- localDet = "当阳";
- else if (local == 4)
- localDet = localOther;
- return localDet;
- }
- public String getTripType(Integer tripType) {
- String tripTypeDet = "";
- if (tripType == 1) {
- tripTypeDet = "长途汽车";
- } else if (tripType == 2)
- tripTypeDet = "火车";
- else if (tripType == 3)
- tripTypeDet = "飞机";
- else if (tripType == 4)
- tripTypeDet = "自驾";
- return tripTypeDet;
- }
- //获取今天数据
- public MsReport getReportByDateNow(Long userCreate) {
- //根据昨天的获取今天的
- // msReportService.getNowByYesterday(userCreate);
- //msReportService.getNowByYesterdayDate();
- //msReportService.addReport250();
- Date t = new Date();
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
- String reportDate = df.format(t);
- List<MsReport> 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<MsReport> listReport = msReportMapper.selectByReportDate(reportDate, userCreate);
- if (listReport == null || listReport.size() == 0)
- return 0;
- //判断体温是否填写
- List<MsSuspected> 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<MsReport> 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<MsReport> 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<MsSuspected> 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);
- }
- }
- }
- }
- //自动将用户最新的数据更新到今天
- @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
- public void getNowByYesterdayDate() {
- //每次执行100条
- Long start = 0L, count = 100L;
- while (true) {
- //今天以前一共有多少用户
- List<Long> listUser = msReportMapper.getUserByYesterdayDate(start, count);
- if (listUser != null && listUser.size() > 0) {
- for (Long userCreate : listUser) {
- //判断用户今天是否有数据
- SimpleDateFormat sj = new SimpleDateFormat("yyyy-MM-dd");
- Date d = new Date();
- String DateNow = sj.format(d);
- List<MsReport> listReport = msReportMapper.selectByReportDate(DateNow, userCreate);
- if (listReport != null && listReport.size() > 0)
- continue;
- //查询改用户今天以前的最近一条记录
- List<MsReport> listReport1 = msReportMapper.getNowByYesterdayDate(userCreate);
- if (listReport1 != null && listReport1.size() > 0) {
- for (MsReport msReport : listReport1) {
- 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(msReport.getUserCreate());
- msReport1.setTimeCreate(DateTime.now());
- msReport1.setUserUpdate(msReport.getUserCreate());
- msReport1.setTimeUpdate(DateTime.now());
- msReportMapper.insert(msReport1);
- //添加家人
- List<MsSuspected> listSuspected = msSuspectedMapper.selectByReportId(msReport.getReportId());
- if (listSuspected != null && listSuspected.size() > 0) {
- for (MsSuspected msSuspected : listSuspected) {
- MsSuspected msSuspected1 = new MsSuspected();
- msSuspected1.setSuspectedId(IdWorker.getId());
- msSuspected1.setReportId(msReport1.getReportId());
- 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));//温度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(msSuspected.getUserCreate());
- msSuspected1.setTimeCreate(DateTime.now());
- msSuspected1.setUserUpdate(msSuspected.getUserUpdate());
- msSuspected1.setTimeUpdate(DateTime.now());
- msSuspectedMapper.insert(msSuspected1);
- }
- }
- }
- }
- }
- }
- }
- start += count;
- if (listUser == null || listUser.size() < count) {
- break;
- }
- }
- }
- //添加250条记录
- @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
- public void addReport250() {
- //每次执行100条
- Long count = 0L;
- while (true) {
- //添加日报
- MsReport msReport1 = new MsReport();
- msReport1.setReportId(IdWorker.getId());
- msReport1.setHouseId(0L);
- msReport1.setSafetyNum(0);
- msReport1.setSureNum(0);
- msReport1.setSuspectedNum(0);
- msReport1.setNormalNum(0);
- msReport1.setSingleNum(0);
- msReport1.setRemarks("");
- msReport1.setReportDate(DateTime.now().toDate());
- msReport1.setReportStatus(0);//未上报
- msReport1.setMsStatus(0);
- msReport1.setUserCreate(count);
- msReport1.setTimeCreate(DateTime.now());
- msReport1.setUserUpdate(count);
- msReport1.setTimeUpdate(DateTime.now());
- count += msReportMapper.insert(msReport1);
- if (count > 250) {
- break;
- }
- }
- }
- }
|