/*
|
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
|
*
|
* Redistribution and use in source and binary forms, with or without
|
* modification, are permitted provided that the following conditions are met:
|
*
|
* Redistributions of source code must retain the above copyright notice,
|
* this list of conditions and the following disclaimer.
|
* Redistributions in binary form must reproduce the above copyright
|
* notice, this list of conditions and the following disclaimer in the
|
* documentation and/or other materials provided with the distribution.
|
* Neither the name of the dreamlu.net developer nor the names of its
|
* contributors may be used to endorse or promote products derived from
|
* this software without specific prior written permission.
|
* Author: Chill 庄骞 (smallchill@163.com)
|
*/
|
package org.springblade.modules.healthcode.controller;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
import lombok.AllArgsConstructor;
|
import org.springblade.core.boot.ctrl.BladeController;
|
import org.springblade.core.mp.support.Condition;
|
import org.springblade.core.mp.support.Query;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.Func;
|
import org.springblade.modules.healthcode.entity.healthcode;
|
import org.springblade.modules.healthcode.service.IhealthcodeService;
|
import org.springblade.modules.healthcode.vo.healthcodeVO;
|
import org.springblade.modules.healthcode.wrapper.healthcodeWrapper;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletResponse;
|
import javax.validation.Valid;
|
import java.text.DateFormat;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
/**
|
* 控制器
|
*
|
* @author BladeX
|
* @since 2020-07-19
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("healthcode/healthcode")
|
@Api(value = "", tags = "接口")
|
public class healthcodeController extends BladeController {
|
|
private final IhealthcodeService ihealthcodeService;
|
|
/**
|
* 详情
|
*/
|
@GetMapping("/detail")
|
@ApiOperationSupport(order = 1)
|
@ApiOperation(value = "详情", notes = "传入lx")
|
public R<healthcodeVO> detail(healthcode healthcode) {
|
healthcode detail = ihealthcodeService.getOne(Condition.getQueryWrapper(healthcode));
|
return R.data(healthcodeWrapper.build().entityVO(detail));
|
}
|
|
/**
|
* 分页
|
*/
|
@GetMapping("/list")
|
@ApiOperationSupport(order = 2)
|
@ApiOperation(value = "分页", notes = "传入lx")
|
public R<IPage<healthcodeVO>> list(healthcode healthcode, Query query) {
|
IPage<healthcode> pages = ihealthcodeService.page(Condition.getPage(query), Condition.getQueryWrapper(healthcode));
|
return R.data(healthcodeWrapper.build().pageVO(pages));
|
}
|
|
|
/**
|
* 新增
|
*/
|
@PostMapping("/save")
|
@ApiOperationSupport(order = 4)
|
@ApiOperation(value = "新增", notes = "传入lx")
|
public R save(@Valid @RequestBody healthcode healthcode) {
|
return R.status(ihealthcodeService.save(healthcode));
|
}
|
|
/**
|
* 修改
|
*/
|
@PostMapping("/update")
|
@ApiOperationSupport(order = 5)
|
@ApiOperation(value = "修改", notes = "传入lx")
|
public R update(@Valid @RequestBody healthcode healthcode) {
|
return R.status(ihealthcodeService.updateById(healthcode));
|
}
|
|
/**
|
* 新增或修改
|
*/
|
@PostMapping("/submit")
|
@ApiOperationSupport(order = 6)
|
@ApiOperation(value = "新增或修改", notes = "传入lx")
|
public R submit(@Valid @RequestBody healthcode healthcode) {
|
return R.status(ihealthcodeService.saveOrUpdate(healthcode));
|
}
|
|
|
/**
|
* 删除
|
*/
|
@PostMapping("/remove")
|
@ApiOperationSupport(order = 8)
|
@ApiOperation(value = "删除", notes = "传入ids")
|
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
|
return R.status(ihealthcodeService.removeByIds(Func.toLongList(ids)));
|
}
|
|
/**
|
* 新增或修改
|
*/
|
@PostMapping("/insterh")
|
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, 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();
|
|
}
|
|
}
|