|
@@ -3,12 +3,14 @@ package com.bofeng.wx.controller;
|
|
|
import com.bofeng.dao.*;
|
|
|
import com.bofeng.entity.*;
|
|
|
import com.bofeng.service.HomeService;
|
|
|
+import com.bofeng.service.ScanService;
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
import com.yvan.platform.JsonWapper;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiImplicitParam;
|
|
|
import io.swagger.annotations.ApiImplicitParams;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
+import org.joda.time.DateTime;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.ui.ModelMap;
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
@@ -16,7 +18,11 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
|
|
|
|
+import java.text.DateFormat;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Calendar;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
@Api("进出扫码")
|
|
@@ -35,14 +41,23 @@ public class ScanController {
|
|
|
private UptownUnitMapper uptownUnitMapper;
|
|
|
@Autowired
|
|
|
private UptownDoorMapper uptownDoorMapper;
|
|
|
+ @Autowired
|
|
|
+ private OutScanMapper outScanMapper;
|
|
|
+ @Autowired
|
|
|
+ private OutScanConfMapper outScanConfMapper;
|
|
|
+ @Autowired
|
|
|
+ private MsReportMapper msReportMapper;
|
|
|
+ @Autowired
|
|
|
+ private ScanService scanService;
|
|
|
|
|
|
@ApiOperation("进出扫码页面")
|
|
|
@GetMapping("/user/scan.html")
|
|
|
- public ModelAndView home(ModelMap model, @RequestParam(value = "doorId", required = false, defaultValue = "0") Long doorId) {
|
|
|
-// UserOpen userOpen = homeService.getUserOpen();
|
|
|
-// List<UserRole> list = userRoleMapper.getUserRoleByUserId(userOpen.getUserId());
|
|
|
- List<UserRole> list = userRoleMapper.getUserRoleByUserId(1L);
|
|
|
- UserOpen userOpen = userOpenMapper.selectByUserId(1L);
|
|
|
+ public ModelAndView home(ModelMap model, @RequestParam(value = "doorId", required = false, defaultValue = "0") Long doorId,
|
|
|
+ @RequestParam(value = "inType", required = false, defaultValue = "0") Integer inType) {
|
|
|
+ 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) {
|
|
@@ -51,14 +66,69 @@ public class ScanController {
|
|
|
UptownDoor uptownDoor = uptownDoorMapper.getUptownDoorById(doorId);
|
|
|
List<UptownHome> uptownHomes = uptownHomeMapper.getUptownHomeByUserId(userOpen.getUserId());
|
|
|
UptownUnit unit = uptownUnitMapper.getUptownUnitByUser(userOpen.getUserId());
|
|
|
- if (!unit.getUptownId().equals(uptownDoor.getUptownId())) {
|
|
|
- model.put("type", "-1");
|
|
|
- return new ModelAndView("/user/scan.ftl", model);
|
|
|
- }
|
|
|
model.put("door", uptownDoor.getUptownName() + uptownDoor.getDoorName());
|
|
|
model.put("doorplate", unit.getRidgepole() + "栋" + unit.getUnit() + "单元" +unit.getDoorplate());
|
|
|
model.put("name", uptownHomes.get(0).getLinkman());
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ model.put("now", format.format(new Date()));
|
|
|
+ model.put("inType", inType);
|
|
|
+ if (!unit.getUptownId().equals(uptownDoor.getUptownId())) {
|
|
|
+ model.put("type", "-1");//小区不对
|
|
|
+ model.put("into", "禁止" + getMsg(inType));
|
|
|
+ model.put("collor", "red");
|
|
|
+ model.put("errorMsg", "非本小区居民,禁止" + getMsg(inType) + "。");
|
|
|
+ return new ModelAndView("/user/scan.ftl", model);
|
|
|
+ }
|
|
|
+ if (inType == 2) {
|
|
|
+ OutScanConf outScanConf = outScanConfMapper.getOutScanConfByUptown(uptownDoor.getUptownId());
|
|
|
+ OutScan outScan = outScanMapper.getOutScanByUserlimit(userOpen.getUserId());
|
|
|
+ if (outScan != null && !compareTime(new Date(), outScan.getOutDate(), outScanConf.getGoOutFre())) {
|
|
|
+ model.put("type", "-2");//时间短了
|
|
|
+ model.put("collor", "red");
|
|
|
+ model.put("into", "禁止" + getMsg(inType));
|
|
|
+ model.put("errorMsg", "外出时间间隔不满三日,禁止外出,请配合,上次外出时间 "+format.format(new Date(outScan.getOutDate().getMillis()))+"。");
|
|
|
+ return new ModelAndView("/user/scan.ftl", model);
|
|
|
+ }
|
|
|
+ List<MsReport> msReports = msReportMapper.selectMsReportLate(userOpen.getUserId());
|
|
|
+ if (msReports.size() != 3) {
|
|
|
+ model.put("type", "-3");//最近3天未提交健康日报
|
|
|
+ model.put("collor", "red");
|
|
|
+ model.put("into", "禁止" + getMsg(inType));
|
|
|
+ model.put("errorMsg", "因近期您未提交健康日报,无法确认您当前健康状态,禁止外出,请配合。");
|
|
|
+ return new ModelAndView("/user/scan.ftl", model);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ model.put("type", "1");
|
|
|
+ model.put("collor", "green");
|
|
|
+ model.put("into", "可以" + getMsg(inType));
|
|
|
+ if (inType == 2) {
|
|
|
+ model.put("errorMsg", "请佩戴口罩,避免近距离接触,不得长时间在外逗留。");
|
|
|
+ }
|
|
|
+ scanService.saveOutScan(userOpen.getUserId(), inType, uptownDoor.getUptownId(), uptownDoor.getDoorId());
|
|
|
return new ModelAndView("/user/scan.ftl", model);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ public Boolean compareTime(Date time1, DateTime time2, Integer day) {
|
|
|
+ Date date = new Date(time2.getMillis() + 1000L*3600*24*day);
|
|
|
+ if (changeTime(date).equals(changeTime(time1))) {
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public String changeTime(Date date) {
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ return format.format(date);
|
|
|
+ }
|
|
|
+
|
|
|
+ public String getMsg(Integer inType) {
|
|
|
+ if (inType == 1) {
|
|
|
+ return "进入";
|
|
|
+ } else if (inType == 2) {
|
|
|
+ return "外出";
|
|
|
+ }
|
|
|
+ return "";
|
|
|
+ }
|
|
|
}
|