| New file |
| | |
| | | /* |
| | | * 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.jfpt.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.jfpt.healthcode.entity.healthcode; |
| | | import org.springblade.jfpt.healthcode.service.IhealthcodeService; |
| | | import org.springblade.jfpt.healthcode.vo.healthcodeVO; |
| | | import org.springblade.jfpt.healthcode.wrapper.healthcodeWrapper; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.validation.Valid; |
| | | 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 submit(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(@RequestBody 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); |
| | | } |
| | | |
| | | 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(); |
| | | |
| | | } |
| | | } |