From b125a6f7f1d9003372fda1bfb86d01454ae1762f Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Wed, 09 Mar 2022 11:37:35 +0800
Subject: [PATCH] 增加任务拦截

---
 src/main/java/org/springblade/modules/taskqd/controller/TaskqdController.java |   78 +++++++++++++++++++++++++++++++++++----
 1 files changed, 70 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/springblade/modules/taskqd/controller/TaskqdController.java b/src/main/java/org/springblade/modules/taskqd/controller/TaskqdController.java
index bbd8e59..1a6d95e 100644
--- a/src/main/java/org/springblade/modules/taskqd/controller/TaskqdController.java
+++ b/src/main/java/org/springblade/modules/taskqd/controller/TaskqdController.java
@@ -42,6 +42,8 @@
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -144,7 +146,39 @@
 	 */
 	@PostMapping("/Graborder")
 	public R Graborder(@Valid @RequestBody Taskqd taskqd) {
+
+		//要接的任务
 		List<Taskqd> list = taskqdService.selectList(taskqd.getId());
+
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+		//转换
+		try {
+
+			//获取要接任务的时间戳 + 两个小时
+			Date timea = sdf.parse(list.get(0).getTime());
+			Long start = timea.getTime() + 2 * 60 * 60;
+			System.out.println(sdf.format(start));
+
+
+			//判断是否有同时间段的任务
+			//已接的任务
+			List<TaskqdVO> yjlist = taskqdService.getlist(taskqd.getSerid().toString(), null);
+			for (int i = 0; i < yjlist.size(); i++) {
+				//获取已接任务的时间戳
+
+				Date timeb = sdf.parse(yjlist.get(i).getEndtime());
+				Long end = timeb.getTime();
+
+				if (end > start) {
+					return R.fail("已有正在进行的同时段任务");
+				}
+			}
+
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+
 		//总数
 		Integer jnum = list.get(0).getJnum();
 		//人数
@@ -328,7 +362,7 @@
 			if (flage) {
 				if (!name.equals(nameList[i])) {
 					newteam += nameList[i] + ",";
-				}else{
+				} else {
 					flage = false;
 				}
 			} else {
@@ -353,14 +387,42 @@
 	}
 
 	@GetMapping("/taskCount")
-	public R cancelTask(String id,String type) {
-		List<Map<String,Object>> cout =  taskqdService.taskCount(id,type);
-		List<TaskqdVO> list = taskqdService.getlist(id,type);
-		Map<String,Object> res = new HashMap<>();
-		res.put("ywc",cout.get(0).get("count"));
-		res.put("wwc",cout.get(1).get("count"));
-		res.put("data",list);
+	public R cancelTask(String id, String type) {
+		List<Map<String, Object>> cout = taskqdService.taskCount(id, type);
+		List<TaskqdVO> list = taskqdService.getlist(id, type);
+		Map<String, Object> res = new HashMap<>();
+		res.put("ywc", cout.get(0).get("count"));
+		res.put("wwc", cout.get(1).get("count"));
+		res.put("data", list);
 		return R.data(res);
 	}
 
+	/**
+	 * @param nowTime   当前时间
+	 * @param startTime 开始时间
+	 * @param endTime   结束时间
+	 * @return
+	 * @author sunran   判断当前时间在时间区间内
+	 */
+	public static boolean isEffectiveDate(Date nowTime, Date startTime, Date endTime) {
+		if (nowTime.getTime() == startTime.getTime()
+			|| nowTime.getTime() == endTime.getTime()) {
+			return true;
+		}
+
+		Calendar date = Calendar.getInstance();
+		date.setTime(nowTime);
+
+		Calendar begin = Calendar.getInstance();
+		begin.setTime(startTime);
+
+		Calendar end = Calendar.getInstance();
+		end.setTime(endTime);
+
+		if (date.after(begin) && date.before(end)) {
+			return true;
+		} else {
+			return false;
+		}
+	}
 }

--
Gitblit v1.9.3