123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- package com.ruoyi.web.controller.zhdd;
- import cn.hutool.core.date.DateUtil;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.ruoyi.common.annotation.Log;
- import com.ruoyi.common.annotation.RepeatSubmit;
- import com.ruoyi.common.core.controller.BaseController;
- import com.ruoyi.common.core.domain.AjaxResult;
- import com.ruoyi.common.core.validate.AddGroup;
- import com.ruoyi.common.core.validate.EditGroup;
- import com.ruoyi.common.core.validate.QueryGroup;
- import com.ruoyi.common.enums.BusinessType;
- import com.ruoyi.common.utils.poi.ExcelUtil;
- import com.ruoyi.zhdd.domain.DutyEmp;
- import com.ruoyi.zhdd.domain.bo.DutyEmpBo;
- import com.ruoyi.zhdd.domain.vo.DutyEmpVo;
- import com.ruoyi.zhdd.service.IDutyEmpService;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.RequiredArgsConstructor;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.DeleteMapping;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.PutMapping;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import javax.servlet.http.HttpServletResponse;
- import javax.validation.constraints.NotEmpty;
- import javax.validation.constraints.NotNull;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * 值班排班信息Controller
- *
- * @author xintong
- * @date 2021-10-11
- */
- @Validated
- @Api(value = "值班排班信息控制器", tags = {"值班排班信息管理"})
- @RequiredArgsConstructor(onConstructor_ = @Autowired)
- @RestController
- @RequestMapping("/zhdd/dutyEmp")
- public class DutyEmpController extends BaseController {
- private final IDutyEmpService iDutyEmpService;
- /**
- * 查询值班排班信息列表
- */
- @ApiOperation("查询值班排班信息列表")
- @GetMapping("/list")
- public AjaxResult list(@Validated(QueryGroup.class) DutyEmpBo bo) {
- List<DutyEmpVo> dutyEmpVos = iDutyEmpService.listVo(Wrappers.<DutyEmp>lambdaQuery().orderByAsc(DutyEmp::getPeriod).orderByAsc(DutyEmp::getPeriodTime));
- // 分组
- Map<Integer, List<DutyEmpVo>> collect = dutyEmpVos.stream().collect(Collectors.groupingBy(DutyEmpVo::getPeriod));
- // 排查1~7都有key
- for (int i = 1; i < 8; i++) {
- if (!collect.containsKey(i)) {
- collect.put(i, new ArrayList<>());
- }
- }
- return AjaxResult.success(collect);
- }
- @ApiOperation("查询当前时间的排班人员")
- @GetMapping("/queryNowDutyEmp")
- public AjaxResult queryDutyEmpNow() {
- Map<String, Object> result = new HashMap<>();
- // 当前星期
- int week = DateUtil.thisDayOfWeek() - 1;
- if (week == 0) {
- week = 7;
- }
- // 当前时间
- int nowTime = DateUtil.timeToSecond(DateUtil.formatTime(new Date()).substring(0, 5));
- // 查询所有的排班数据
- List<DutyEmpVo> dutyEmpVos = iDutyEmpService.listVo(Wrappers.<DutyEmp>lambdaQuery().orderByAsc(DutyEmp::getPeriod).orderByAsc(DutyEmp::getPeriodTime));
- // 分组
- Map<Integer, List<DutyEmpVo>> collect = dutyEmpVos.stream().collect(Collectors.groupingBy(DutyEmpVo::getPeriod));
- for (int i = 1; i < 8; i++) {
- if (!collect.containsKey(i)) {
- collect.put(i, new ArrayList<>());
- }
- }
- result.put("all", collect);
- result.put("current", null);
- List<DutyEmpVo> currentWeekList = collect.get(week);
- for (DutyEmpVo dutyEmpVo : currentWeekList) {
- int startTime = DateUtil.timeToSecond(dutyEmpVo.getPeriodTime().split("~")[0]);
- int endTime = DateUtil.timeToSecond(dutyEmpVo.getPeriodTime().split("~")[1]);
- if (nowTime >= startTime && nowTime <= endTime) {
- result.put("current", dutyEmpVo);
- break;
- }
- }
- return AjaxResult.success(result);
- }
- /**
- * 导出值班排班信息列表
- */
- @ApiOperation("导出值班排班信息列表")
- @Log(title = "值班排班信息", businessType = BusinessType.EXPORT)
- @GetMapping("/export")
- public void export(@Validated DutyEmpBo bo, HttpServletResponse response) {
- List<DutyEmpVo> list = iDutyEmpService.queryList(bo);
- ExcelUtil.exportExcel(list, "值班排班信息", DutyEmpVo.class, response);
- }
- /**
- * 获取值班排班信息详细信息
- */
- @ApiOperation("获取值班排班信息详细信息")
- @GetMapping("/{id}")
- public AjaxResult<DutyEmpVo> getInfo(@NotNull(message = "主键不能为空")
- @PathVariable("id") String id) {
- return AjaxResult.success(iDutyEmpService.queryById(id));
- }
- /**
- * 新增值班排班信息
- */
- @ApiOperation("新增值班排班信息")
- @Log(title = "值班排班信息", businessType = BusinessType.INSERT)
- @RepeatSubmit()
- @PostMapping()
- public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody DutyEmpBo bo) {
- return toAjax(iDutyEmpService.insertByBo(bo) ? 1 : 0);
- }
- /**
- * 修改值班排班信息
- */
- @ApiOperation("修改值班排班信息")
- @Log(title = "值班排班信息", businessType = BusinessType.UPDATE)
- @RepeatSubmit()
- @PutMapping()
- public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody DutyEmpBo bo) {
- return toAjax(iDutyEmpService.updateByBo(bo) ? 1 : 0);
- }
- /**
- * 删除值班排班信息
- */
- @ApiOperation("删除值班排班信息")
- @Log(title = "值班排班信息", businessType = BusinessType.DELETE)
- @DeleteMapping("/{ids}")
- public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
- @PathVariable String[] ids) {
- return toAjax(iDutyEmpService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
- }
- }
|