|
@@ -29,6 +29,7 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.IOException;
|
|
|
import java.net.URLEncoder;
|
|
|
+import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
@@ -123,7 +124,7 @@ public class ScanController {
|
|
|
}
|
|
|
}
|
|
|
if (inType == 2) {
|
|
|
- OutUser outUser = outUserMapper.getOutUserByUserId(userOpen.getUserId());
|
|
|
+ OutUser outUser = outUserMapper.getOutUserByPhone(Long.parseLong(uptownHomes.get(0).getPhone()));
|
|
|
if (outUser != null) {
|
|
|
model.put("collor", "green");
|
|
|
model.put("into", "允许通行");
|
|
@@ -197,7 +198,7 @@ public class ScanController {
|
|
|
model.put("errorMsg", "您最近一分钟已经扫码,本次扫码重复。");
|
|
|
return new ModelAndView("/user/scanEstate.ftl", model);
|
|
|
}
|
|
|
- OutUser outUser = outUserMapper.getOutUserByUserId(userOpen.getUserId());
|
|
|
+ OutUser outUser = outUserMapper.getOutUserByPhone(Long.parseLong(uptownHomes.get(0).getPhone()));
|
|
|
if (outUser != null) {
|
|
|
scanService.saveOutScanEstate(userOpen.getUserId());
|
|
|
model.put("collor", "green");
|
|
@@ -247,6 +248,72 @@ public class ScanController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @ApiOperation("外出查询")
|
|
|
+ @GetMapping("/user/goOut.html")
|
|
|
+ public ModelAndView goOut(HttpServletRequest request, ModelMap model) throws ParseException {
|
|
|
+ UserOpen userOpen = homeService.getUserOpen();
|
|
|
+ List<UserRole> list = userRoleMapper.getUserRoleByUserId(userOpen.getUserId());
|
|
|
+// List<UserRole> list = userRoleMapper.getUserRoleByUserId(1L);
|
|
|
+// UserOpen userOpen = userOpenMapper.selectByUserId(1L);
|
|
|
+ model.put("user", userOpen);
|
|
|
+ model.put("user_id", "\"" + userOpen.getUserId() + "\"");
|
|
|
+ if (list.size() == 0) {
|
|
|
+ return new ModelAndView("/user/home.ftl", model);
|
|
|
+ } else {
|
|
|
+ List<UptownHome> uptownHomes = uptownHomeMapper.getUptownHomeByUserId(userOpen.getUserId());
|
|
|
+ UptownUnit unit = uptownUnitMapper.getUptownUnitByUser(userOpen.getUserId());
|
|
|
+ model.put("doorplate", unit.getUptownName() + "小区" +unit.getRidgepole() + "栋" + unit.getUnit() + "单元" +unit.getDoorplate() + "号");
|
|
|
+ model.put("name", uptownHomes.get(0).getLinkman());
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ model.put("now", sdf.format(new Date()));
|
|
|
+ OutUser outUser = outUserMapper.getOutUserByPhone(Long.parseLong(uptownHomes.get(0).getPhone()));
|
|
|
+ if (outUser != null) {
|
|
|
+ model.put("collor", "green");
|
|
|
+ model.put("into", "允许外出");
|
|
|
+ model.put("errorMsg", "外出请佩戴口罩,避免近距离接触,保生产同时注意自身安全。");
|
|
|
+ return new ModelAndView("/user/goOut.ftl", model);
|
|
|
+ }
|
|
|
+ List<MsReport> msReports = msReportMapper.selectMsReportLate(userOpen.getUserId());
|
|
|
+ if (msReports.size() == 0) {
|
|
|
+ model.put("collor", "red");
|
|
|
+ model.put("into", "禁止外出");
|
|
|
+ model.put("errorMsg", "您近期未提交健康日报,无法判断您健康状态,请提交健康日报。");
|
|
|
+ return new ModelAndView("/user/goOut.ftl", model);
|
|
|
+ }
|
|
|
+ MsReport msReport = msReportMapper.selectMsReportToday(userOpen.getUserId());
|
|
|
+ if (msReport != null && msReport.getMsStatus() == 2) {
|
|
|
+ model.put("collor", "red");
|
|
|
+ model.put("into", "禁止外出");
|
|
|
+ model.put("errorMsg", "健康日报提示您存在健康问题,禁止外出,请配合。");
|
|
|
+ return new ModelAndView("/user/goOut.ftl", model);
|
|
|
+ }
|
|
|
+ OutScanConf outScanConf = outScanConfMapper.getOutScanConfByUptown(unit.getUptownId());
|
|
|
+ OutScan outScan = outScanMapper.getOutScanThreeday(userOpen.getUserId(), 2, outScanConf.getGoOutFre());
|
|
|
+ if (outScan != null) {
|
|
|
+ model.put("collor", "red");
|
|
|
+ model.put("into", "禁止外出");
|
|
|
+ model.put("errorMsg", "您今日健康状态评估正常,最近可外出时间"+sdf.format(new Date(outScan.getDayDate().getTime() + 1000L *3600*24 * outScanConf.getGoOutFre()))+
|
|
|
+ ",距今日还差"+differentDays(outScan.getDayDate(), sdf.parse(sdf.format(new Date())), outScanConf.getGoOutFre())+"天。");
|
|
|
+ return new ModelAndView("/user/goOut.ftl", model);
|
|
|
+ }
|
|
|
+ model.put("collor", "green");
|
|
|
+ model.put("into", "允许外出");
|
|
|
+ model.put("errorMsg", "外出请佩戴口罩,避免近距离接触,不得长时间在外逗留。");
|
|
|
+ return new ModelAndView("/user/goOut.ftl", model);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过时间秒毫秒数判断两个时间的间隔
|
|
|
+ * @param date1
|
|
|
+ * @param i
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static int differentDays(Date date1, Date date2, Integer i) {
|
|
|
+ int days = (int) ((date1.getTime() - date2.getTime()) / (1000*3600*24)) + i;
|
|
|
+ return days;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 判断传入的时间和现在相差是否在i分钟内
|
|
|
* @param date
|