From 71b6b716361c52af290493d365a328fc1a3467e2 Mon Sep 17 00:00:00 2001
From: nnnjjj123 <494715143@qq.com>
Date: Thu, 28 Jan 2021 11:15:06 +0800
Subject: [PATCH] 1.统计接口 2.健康码

---
 src/main/java/org/springblade/modules/healthcode/controller/healthcodeController.java |  148 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 146 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/springblade/modules/healthcode/controller/healthcodeController.java b/src/main/java/org/springblade/modules/healthcode/controller/healthcodeController.java
index 1cb7d7d..ac4346a 100644
--- a/src/main/java/org/springblade/modules/healthcode/controller/healthcodeController.java
+++ b/src/main/java/org/springblade/modules/healthcode/controller/healthcodeController.java
@@ -35,6 +35,9 @@
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  *  控制器
@@ -118,11 +121,152 @@
 	 * 新增或修改
 	 */
 	@PostMapping("/insterh")
-	public R submit(String type, String jname, String province, String city, String district, String dtime, HttpServletResponse response) {
+	public R insterh(String type, String sex, String province, String city, String district, String dtime, HttpServletResponse response) {
 		response.setHeader("Access-Control-Allow-Origin", "*");
 		response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
 		response.setHeader("Access-Control-Allow-Credentials","true");
-		ihealthcodeService.insert(type, jname, province, city, district, dtime);
+		ihealthcodeService.insert(type, sex, province, city, district, dtime);
 		return R.success("录入成功");
 	}
+
+	/**
+	 * 统计接口
+	 */
+	@PostMapping("/selectCount")
+	public R selectCount(String type, HttpServletResponse response) {
+		response.setHeader("Access-Control-Allow-Origin", "*");
+		response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
+		response.setHeader("Access-Control-Allow-Credentials","true");
+		List<Map<String, Object>> list = new ArrayList<>();
+		Date now = new Date();
+		Date time = new Date(now.getYear(), now.getMonth(), now.getDate());
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(time);
+		// 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了
+		int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天
+		if (1 == dayWeek) {
+			cal.add(Calendar.DAY_OF_MONTH, -1);
+		}
+		switch(type){
+			case "0" :
+				//日
+				String times = sdf.format(cal.getTime());
+				list=ihealthcodeService.selectCountr(times);
+				break;
+			case "1" :
+				System.out.println("要计算日期为:" + sdf.format(cal.getTime())); // 输出要计算日期
+				// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
+				cal.setFirstDayOfWeek(Calendar.MONDAY);
+				// 获得当前日期是一个星期的第几天
+				int day = cal.get(Calendar.DAY_OF_WEEK);
+				// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
+				cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
+				cal.set(Calendar.HOUR, 0);
+				cal.set(Calendar.MINUTE, 0);
+				cal.set(Calendar.SECOND, 0);
+				String beginTime = sdf.format(cal.getTime());
+				Date mondayDate = cal.getTime();
+				cal.add(Calendar.DATE, 6);
+				cal.set(Calendar.HOUR, 23);
+				cal.set(Calendar.MINUTE, 59);
+				cal.set(Calendar.SECOND, 59);
+				String endTime = sdf.format(cal.getTime());
+				Date sundayDate = cal.getTime();
+				 list = ihealthcodeService.selectCountz(beginTime, endTime);
+				//周
+				break;
+			default :
+				//月
+				Date d = new Date();
+				// 月初
+				System.out.println("月初" + sdf.format(getMonthStart(d)));
+				String beginTimes = sdf.format(getMonthStart(d));
+				// 月末
+				System.out.println("月末" + sdf.format(getMonthEnd(d)));
+				String endTimes = sdf.format(getMonthEnd(d));
+				list = ihealthcodeService.selectCountz(beginTimes, endTimes);
+		}
+
+		return R.data(list);
+	}
+
+//		Date now = new Date();
+//		Date time = new Date(now.getYear(), now.getMonth(), now.getDate());
+//		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式
+//		Calendar cal = Calendar.getInstance();
+//		cal.setTime(time);
+//		// 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了
+//		int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天
+//		if (1 == dayWeek) {
+//			cal.add(Calendar.DAY_OF_MONTH, -1);
+//		}
+//		System.out.println("要计算日期为:" + sdf.format(cal.getTime())); // 输出要计算日期
+//		// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
+//		cal.setFirstDayOfWeek(Calendar.MONDAY);
+//		// 获得当前日期是一个星期的第几天
+//		int day = cal.get(Calendar.DAY_OF_WEEK);
+//		// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
+//		cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
+//		cal.set(Calendar.HOUR, 0);
+//		cal.set(Calendar.MINUTE, 0);
+//		cal.set(Calendar.SECOND, 0);
+//		String imptimeBegin = sdf.format(cal.getTime());
+//		Date mondayDate = cal.getTime();
+//		System.out.println("所在周星期一的日期:" + imptimeBegin);
+//
+//		cal.add(Calendar.DATE, 6);
+//		cal.set(Calendar.HOUR, 23);
+//		cal.set(Calendar.MINUTE, 59);
+//		cal.set(Calendar.SECOND, 59);
+//
+//		String imptimeEnd = sdf.format(cal.getTime());
+//		Date sundayDate = cal.getTime();
+//		System.out.println("所在周星期日的日期:" + imptimeEnd);
+//
+//		DateFormat datetimeDf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//		System.out.println("星期一的开始:"+datetimeDf.format(mondayDate));
+//		System.out.println("星期天的结束:"+datetimeDf.format(sundayDate));
+
+//
+//		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+//		Date d = new Date();
+//		// 月初
+//		System.out.println("月初" + sdf.format(getMonthStart(d)));
+//		// 月末
+//		System.out.println("月末" + sdf.format(getMonthEnd(d)));
+
+
+	private static Date getMonthStart(Date date) {
+
+		Calendar calendar = Calendar.getInstance();
+
+		calendar.setTime(date);
+
+		int index = calendar.get(Calendar.DAY_OF_MONTH);
+
+		calendar.add(Calendar.DATE, (1 - index));
+
+		return calendar.getTime();
+
+	}
+
+
+
+	private static Date getMonthEnd(Date date) {
+
+		Calendar calendar = Calendar.getInstance();
+
+		calendar.setTime(date);
+
+		calendar.add(Calendar.MONTH, 1);
+
+		int index = calendar.get(Calendar.DAY_OF_MONTH);
+
+		calendar.add(Calendar.DATE, (-index));
+
+		return calendar.getTime();
+
+	}
+
 }

--
Gitblit v1.9.3