1341924763@qq.com 1 месяц назад
Родитель
Сommit
0064f155a1
24 измененных файлов: 863 добавлений и 0 удалений
  1. 23
    0
      ruoyi-admin/src/main/java/com/ruoyi/Test.java
  2. 39
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/controller/DkAttendanceGroupController.java
  3. 63
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/controller/DkConfigController.java
  4. 51
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/controller/DkController.java
  5. 46
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkAttendanceGroup.java
  6. 22
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkAttendanceGroupAndUser.java
  7. 17
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkAttendanceGroupAndUserDTO.java
  8. 45
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkAttendanceGroupDTO.java
  9. 31
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkCheckInConfig.java
  10. 26
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkCheckInConfigDTO.java
  11. 36
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkCheckInRecord.java
  12. 45
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkCheckInRecordDTO.java
  13. 20
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkUsers.java
  14. 11
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/mapper/DkAttendanceGroupAndUserMapper.java
  15. 13
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/mapper/DkAttendanceGroupMapper.java
  16. 13
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/mapper/DkConfigMapper.java
  17. 20
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/mapper/DkMapper.java
  18. 11
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/service/DkAttendanceGroupService.java
  19. 19
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/service/DkConfigService.java
  20. 19
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/service/DkService.java
  21. 34
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/service/impl/DkAttendanceGroupServiceImpl.java
  22. 86
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/service/impl/DkConfigServiceImpl.java
  23. 96
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/service/impl/DkServiceImpl.java
  24. 77
    0
      zs-manager/src/main/java/com/ruoyi/zhushi/util/TimeUtils.java

+ 23
- 0
ruoyi-admin/src/main/java/com/ruoyi/Test.java Просмотреть файл

@@ -0,0 +1,23 @@
package com.ruoyi;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
* @author zhouwenhao
* @date 2025/6/11
* @dec 描述
*/
public class Test {
public static void main(String[] args) {
// 获取当前日期
LocalDateTime today = LocalDateTime.now();
// 获取当前月的第一天和最后一天
LocalDateTime firstDayOfMonth = today.withDayOfMonth(1).with(LocalTime.MIN);
LocalDateTime lastDayOfMonth = today.plusMonths(1).withDayOfMonth(1).with(LocalTime.MIN).minusSeconds(1);
// 打印结果
System.out.println("Start of month: " + firstDayOfMonth);
System.out.println("End of month: " + lastDayOfMonth);
}
}

+ 39
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/controller/DkAttendanceGroupController.java Просмотреть файл

@@ -0,0 +1,39 @@
package com.ruoyi.zhushi.controller;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.zhushi.entity.DkAttendanceGroupDTO;
import com.ruoyi.zhushi.entity.DkCheckInConfigDTO;
import com.ruoyi.zhushi.service.DkAttendanceGroupService;
import com.ruoyi.zhushi.service.DkConfigService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
* 打卡配置控制台
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/dk/attendanceGroup")
@Slf4j
public class DkAttendanceGroupController extends BaseController {


@Autowired
private DkAttendanceGroupService dkAttendanceGroupService;


@PostMapping("/add")
public R<Void> add(@RequestBody DkAttendanceGroupDTO dkAttendanceGroupDTO) {
return toAjax(dkAttendanceGroupService.add(dkAttendanceGroupDTO));
}

}

+ 63
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/controller/DkConfigController.java Просмотреть файл

@@ -0,0 +1,63 @@
package com.ruoyi.zhushi.controller;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.bo.ZsOperationWarnresultBo;
import com.ruoyi.zhushi.entity.DkCheckInConfigDTO;
import com.ruoyi.zhushi.entity.DkCheckInRecordDTO;
import com.ruoyi.zhushi.mapper.DkConfigMapper;
import com.ruoyi.zhushi.service.DkConfigService;
import com.ruoyi.zhushi.service.DkService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import java.util.Arrays;
import java.util.List;

/**
* 打卡配置控制台
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/dk/config")
@Slf4j
public class DkConfigController extends BaseController {


@Autowired
private DkConfigService dkConfigService;


// 主页面查询
@GetMapping("/list")
public List<DkCheckInConfigDTO> list(DkCheckInConfigDTO dkCheckInConfigDTO, PageQuery pageQuery) {
return dkConfigService.queryList();
}

@PostMapping("/add")
public R<Void> add(@Validated(AddGroup.class) @RequestBody DkCheckInConfigDTO dkCheckInConfigDTO) {
return toAjax(dkConfigService.addConfig(dkCheckInConfigDTO));
}


@DeleteMapping("/deleteConfig/{id}")
public R<Void> remove(@PathVariable Long id) {
return toAjax(dkConfigService.deleteConfig(id));
}

@PutMapping("/updateConfig")
public R<Void> edit(@RequestBody DkCheckInConfigDTO bo) {
return toAjax(dkConfigService.updateConfig(bo));
}
}

+ 51
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/controller/DkController.java Просмотреть файл

@@ -0,0 +1,51 @@
package com.ruoyi.zhushi.controller;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.zhushi.entity.DkCheckInRecordDTO;
import com.ruoyi.zhushi.service.DkService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
* 打卡控制台
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/dk/record")
@Slf4j
public class DkController extends BaseController {


@Autowired
private DkService dkService;


// 主页面查询
@GetMapping("/list")
public TableDataInfo<DkCheckInRecordDTO> list(DkCheckInRecordDTO dkCheckInRecordDTO, PageQuery pageQuery) {
return dkService.queryPageList(dkCheckInRecordDTO, pageQuery);
}

/**
* 导出结果列表
*/
@PostMapping("/export")
public void export(DkCheckInRecordDTO bo, HttpServletResponse response) {
List<DkCheckInRecordDTO> list = dkService.queryList(bo);
ExcelUtil.exportExcel(list, "打卡结果", DkCheckInRecordDTO.class, response);
}

}

+ 46
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkAttendanceGroup.java Просмотреть файл

@@ -0,0 +1,46 @@
package com.ruoyi.zhushi.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.models.auth.In;
import lombok.Data;

@Data
@TableName("dk_check_in_attendance_team")
public class DkAttendanceGroup extends BaseEntity {
@TableId(value = "id", type = IdType.AUTO)
private int id;

@TableField(value = "`name`")
private String name;

@TableField(value = "`description`")
private String description;

@TableField(value = "`work_days`")
private String workDays;

@TableField(value = "`work_start_time`")
private String workStartTime;

@TableField(value = "`work_end_time`")
private String workEndTime;

@TableField(value = "`allow_late`")
private Boolean allowLate;

@TableField(value = "`late_range`")
private Integer lateRange;

@TableField(value = "`allow_early`")
private Boolean allowEarly;

@TableField(value = "`early_range`")
private Integer earlyRange;

@TableField(value = "area_id")
private int areaId;
}

+ 22
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkAttendanceGroupAndUser.java Просмотреть файл

@@ -0,0 +1,22 @@
package com.ruoyi.zhushi.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

@Data
@TableName("dk_check_in_attendance_team_and_user")
public class DkAttendanceGroupAndUser extends BaseEntity {
@TableId(value = "id", type = IdType.ASSIGN_ID)
private int id;

@TableField(value = "`attendance_team_id`")
private int attendanceTeamId;

@TableField(value = "`user_id`")
private int userId;

}

+ 17
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkAttendanceGroupAndUserDTO.java Просмотреть файл

@@ -0,0 +1,17 @@
package com.ruoyi.zhushi.entity;

import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

@Data
public class DkAttendanceGroupAndUserDTO extends BaseEntity {

private int id;


private int attendanceTeamId;


private int configId;

}

+ 45
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkAttendanceGroupDTO.java Просмотреть файл

@@ -0,0 +1,45 @@
package com.ruoyi.zhushi.entity;

import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import java.util.List;

@Data
public class DkAttendanceGroupDTO extends BaseEntity {


private int id;

private String name;


private String description;


private List<String> workDays;

// private List<String> workDaysList;


private String workStartTime;


private String workEndTime;


private Boolean allowLate;


private Integer lateRange;


private Boolean allowEarly;


private Integer earlyRange;

private int areaId;

private List<DkUsers> members;
}

+ 31
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkCheckInConfig.java Просмотреть файл

@@ -0,0 +1,31 @@
package com.ruoyi.zhushi.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

@Data
@TableName("dk_check_in_config")
public class DkCheckInConfig extends BaseEntity {
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;

@TableField(value = "`name`")
private String name;

@TableField(value = "`radius`")
private Integer radius;

@TableField(value = "`enable_status`")
private String enableStatus;

@TableField(value = "`lng`")
private String lng;

@TableField(value = "`lat`")
private String lat;

}

+ 26
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkCheckInConfigDTO.java Просмотреть файл

@@ -0,0 +1,26 @@
package com.ruoyi.zhushi.entity;

import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

@Data
public class DkCheckInConfigDTO extends BaseEntity {

private String id;


private String name;


private Integer radius;


private String enableStatus;


private String lng;


private String lat;

}

+ 36
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkCheckInRecord.java Просмотреть файл

@@ -0,0 +1,36 @@
package com.ruoyi.zhushi.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@TableName("dk_check_in_record")
public class DkCheckInRecord extends BaseEntity {
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;

@TableField(value = "`sys_user_id`")
private String sysUserId;

@TableField(value = "`sys_user_name`")
private String sysUserName;

@TableField(value = "`check_in_time`")
private LocalDateTime checkInTime;

@TableField(value = "`latitude`")
private String latitude;

@TableField(value = "`longitude`")
private String longitude;

@TableField(value = "`check_in_status`")
private String checkInStatus;

}

+ 45
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkCheckInRecordDTO.java Просмотреть файл

@@ -0,0 +1,45 @@
package com.ruoyi.zhushi.entity;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
@ExcelIgnoreUnannotated
public class DkCheckInRecordDTO extends BaseEntity {
@TableId(value = "id", type = IdType.ASSIGN_ID)
// @ExcelProperty(value = "主键ID")
private String id;

@TableField(value = "`sys_user_id`")
// @ExcelProperty(value = "用户id")
private String sysUserId;

@TableField(value = "`sys_user_name`")
@ExcelProperty(value = "用户姓名")
private String sysUserName;

@TableField(value = "`check_in_time`")
@ExcelProperty(value = "打卡时间")
private LocalDateTime checkInTime;

@TableField(value = "`latitude`")
private String latitude;

@TableField(value = "`longitude`")
private String longitude;

@TableField(value = "`check_in_status`")
@ExcelProperty(value = "打卡状态")
private String checkInStatus;

private String exportRange;

}

+ 20
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/entity/DkUsers.java Просмотреть файл

@@ -0,0 +1,20 @@
package com.ruoyi.zhushi.entity;

import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;

@Data
public class DkUsers extends BaseEntity {
private int id;


private String name;


private String position;

private String employeeId;

private String department;

}

+ 11
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/mapper/DkAttendanceGroupAndUserMapper.java Просмотреть файл

@@ -0,0 +1,11 @@
package com.ruoyi.zhushi.mapper;

import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.zhushi.entity.DkAttendanceGroupAndUser;
import com.ruoyi.zhushi.entity.DkAttendanceGroupAndUserDTO;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface DkAttendanceGroupAndUserMapper extends BaseMapperPlus<DkAttendanceGroupAndUserMapper, DkAttendanceGroupAndUser, DkAttendanceGroupAndUserDTO> {

}

+ 13
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/mapper/DkAttendanceGroupMapper.java Просмотреть файл

@@ -0,0 +1,13 @@
package com.ruoyi.zhushi.mapper;

import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.zhushi.entity.DkAttendanceGroup;
import com.ruoyi.zhushi.entity.DkAttendanceGroupDTO;
import com.ruoyi.zhushi.entity.DkCheckInConfig;
import com.ruoyi.zhushi.entity.DkCheckInConfigDTO;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface DkAttendanceGroupMapper extends BaseMapperPlus<DkAttendanceGroupMapper, DkAttendanceGroup, DkAttendanceGroupDTO> {

}

+ 13
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/mapper/DkConfigMapper.java Просмотреть файл

@@ -0,0 +1,13 @@
package com.ruoyi.zhushi.mapper;

import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.zhushi.entity.DkCheckInConfig;
import com.ruoyi.zhushi.entity.DkCheckInConfigDTO;
import com.ruoyi.zhushi.entity.DkCheckInRecord;
import com.ruoyi.zhushi.entity.DkCheckInRecordDTO;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface DkConfigMapper extends BaseMapperPlus<DkConfigMapper, DkCheckInConfig, DkCheckInConfigDTO> {

}

+ 20
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/mapper/DkMapper.java Просмотреть файл

@@ -0,0 +1,20 @@
package com.ruoyi.zhushi.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.system.domain.ZsOperationWarnresult;
import com.ruoyi.system.domain.vo.ZsOperationWarnresultVo;
import com.ruoyi.system.mapper.ZsOperationWarnresultMapper;
import com.ruoyi.zhushi.entity.DkCheckInRecord;
import com.ruoyi.zhushi.entity.DkCheckInRecordDTO;
import com.ruoyi.zhushi.entity.ProductRanking;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface DkMapper extends BaseMapperPlus<DkMapper, DkCheckInRecord, DkCheckInRecordDTO> {

}

+ 11
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/service/DkAttendanceGroupService.java Просмотреть файл

@@ -0,0 +1,11 @@
package com.ruoyi.zhushi.service;

import com.ruoyi.zhushi.entity.DkAttendanceGroupDTO;
import com.ruoyi.zhushi.entity.DkCheckInConfigDTO;

import java.util.List;

public interface DkAttendanceGroupService {

public int add(DkAttendanceGroupDTO dkAttendanceGroupDTO);
}

+ 19
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/service/DkConfigService.java Просмотреть файл

@@ -0,0 +1,19 @@
package com.ruoyi.zhushi.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.zhushi.entity.DkCheckInConfigDTO;
import com.ruoyi.zhushi.entity.DkCheckInRecordDTO;

import java.util.List;

public interface DkConfigService {

public List<DkCheckInConfigDTO> queryList();

public boolean addConfig(DkCheckInConfigDTO dkCheckInConfigDTO);

public int deleteConfig(long id);

public int updateConfig(DkCheckInConfigDTO dkCheckInConfigDTO);
}

+ 19
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/service/DkService.java Просмотреть файл

@@ -0,0 +1,19 @@
package com.ruoyi.zhushi.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.domain.bo.ZsOperationWarnresultBo;
import com.ruoyi.system.domain.vo.ZsOperationWarnresultVo;
import com.ruoyi.zhushi.entity.DkCheckInRecord;
import com.ruoyi.zhushi.entity.DkCheckInRecordDTO;
import com.ruoyi.zhushi.entity.ProductRanking;

import java.util.List;

public interface DkService {

TableDataInfo<DkCheckInRecordDTO> queryPageList(DkCheckInRecordDTO dkCheckInRecordDTO, PageQuery pageQuery);

List<DkCheckInRecordDTO> queryList(DkCheckInRecordDTO bo);

}

+ 34
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/service/impl/DkAttendanceGroupServiceImpl.java Просмотреть файл

@@ -0,0 +1,34 @@
package com.ruoyi.zhushi.service.impl;

import cn.hutool.core.bean.BeanUtil;
import com.ruoyi.zhushi.entity.*;
import com.ruoyi.zhushi.mapper.DkAttendanceGroupAndUserMapper;
import com.ruoyi.zhushi.mapper.DkAttendanceGroupMapper;
import com.ruoyi.zhushi.service.DkAttendanceGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class DkAttendanceGroupServiceImpl implements DkAttendanceGroupService {


@Autowired
private DkAttendanceGroupMapper dkAttendanceGroupMapper;

@Autowired
private DkAttendanceGroupAndUserMapper dkAttendanceGroupAndUserMapper;


@Override
public int add(DkAttendanceGroupDTO dkAttendanceGroupDTO) {
DkAttendanceGroup dkAttendanceGroup = BeanUtil.toBean(dkAttendanceGroupDTO, DkAttendanceGroup.class);
dkAttendanceGroupMapper.insertOrUpdate(dkAttendanceGroup);
dkAttendanceGroupDTO.getMembers().forEach(e -> {
DkAttendanceGroupAndUser dkAttendanceGroupAndUser = new DkAttendanceGroupAndUser();
dkAttendanceGroupAndUser.setAttendanceTeamId(dkAttendanceGroup.getId());
dkAttendanceGroupAndUser.setUserId(e.getId());
dkAttendanceGroupAndUserMapper.insertOrUpdate(dkAttendanceGroupAndUser);
});
return 1;
}
}

+ 86
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/service/impl/DkConfigServiceImpl.java Просмотреть файл

@@ -0,0 +1,86 @@
package com.ruoyi.zhushi.service.impl;

import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.domain.ZsBanner;
import com.ruoyi.zhushi.entity.DkCheckInConfig;
import com.ruoyi.zhushi.entity.DkCheckInConfigDTO;
import com.ruoyi.zhushi.entity.DkCheckInRecord;
import com.ruoyi.zhushi.entity.DkCheckInRecordDTO;
import com.ruoyi.zhushi.mapper.DkConfigMapper;
import com.ruoyi.zhushi.mapper.DkMapper;
import com.ruoyi.zhushi.service.DkConfigService;
import com.ruoyi.zhushi.service.DkService;
import com.ruoyi.zhushi.util.TimeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;

@Service
public class DkConfigServiceImpl implements DkConfigService {


@Autowired
private DkConfigMapper dkConfigMapper;


@Override
public List<DkCheckInConfigDTO> queryList() {
List<DkCheckInConfig> dkCheckInConfigs = dkConfigMapper.selectList();
List<DkCheckInConfigDTO> dkCheckInConfigDTOS = dkCheckInConfigs.stream()
.map(dkCheckInConfig -> {
DkCheckInConfigDTO dkCheckInConfigDTO = new DkCheckInConfigDTO();
dkCheckInConfigDTO.setId(dkCheckInConfig.getId());
dkCheckInConfigDTO.setName(dkCheckInConfig.getName());
dkCheckInConfigDTO.setRadius(dkCheckInConfig.getRadius());
dkCheckInConfigDTO.setEnableStatus(dkCheckInConfig.getEnableStatus());
dkCheckInConfigDTO.setLng(dkCheckInConfig.getLng());
dkCheckInConfigDTO.setLat(dkCheckInConfig.getLat());
// 这里需要返回DTO对象
return dkCheckInConfigDTO;
})
.collect(Collectors.toList());

// 返回转换后的DTO列表,而不是null
return dkCheckInConfigDTOS;
}

@Override
public boolean addConfig(DkCheckInConfigDTO dkCheckInConfigDTO) {
DkCheckInConfig dkCheckInConfig = BeanUtil.toBean(dkCheckInConfigDTO, DkCheckInConfig.class);
// DkCheckInConfig dkCheckInConfig = new DkCheckInConfig();
// dkCheckInConfig.setAreaName(dkCheckInConfigDTO.getAreaName());
// dkCheckInConfig.setCheckInRadious(dkCheckInConfigDTO.getCheckInRadious());
// dkCheckInConfig.setEnableStatus(dkCheckInConfigDTO.getEnableStatus());
// dkCheckInConfig.setLatitude(dkCheckInConfigDTO.getLatitude());
// dkCheckInConfig.setLongitude(dkCheckInConfigDTO.getLongitude());
// dkCheckInConfig.setCreateTime(new Date());
// dkCheckInConfig.setUpdateTime(new Date());
// dkCheckInConfig.setCreateBy(dkCheckInConfigDTO.getCreateBy());
return dkConfigMapper.insertOrUpdate(dkCheckInConfig);
}

@Override
public int deleteConfig(long id) {
return dkConfigMapper.deleteById(id);
}

@Override
public int updateConfig(DkCheckInConfigDTO dkCheckInConfigDTO) {
DkCheckInConfig dkCheckInConfig = new DkCheckInConfig();
dkCheckInConfig.setId(dkCheckInConfigDTO.getId());
dkCheckInConfig.setEnableStatus(dkCheckInConfigDTO.getEnableStatus());
return dkConfigMapper.updateById(dkCheckInConfig);
}
}

+ 96
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/service/impl/DkServiceImpl.java Просмотреть файл

@@ -0,0 +1,96 @@
package com.ruoyi.zhushi.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.zhushi.entity.DkCheckInRecord;
import com.ruoyi.zhushi.entity.DkCheckInRecordDTO;
import com.ruoyi.zhushi.mapper.DkMapper;
import com.ruoyi.zhushi.service.DkService;
import com.ruoyi.zhushi.util.TimeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Date;
import java.util.List;

@Service
public class DkServiceImpl implements DkService {
@Autowired
private DkMapper dkMapper;


public String getTime() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentDate = new Date();
return sdf.format(currentDate);
}

@Override
public TableDataInfo<DkCheckInRecordDTO> queryPageList(DkCheckInRecordDTO dkCheckInRecordDTO, PageQuery pageQuery) {
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = buildQueryWrapper(dkCheckInRecordDTO);
Page<DkCheckInRecordDTO> result = dkMapper.selectVoPage(pageQuery.build(), queryWrapper);
return TableDataInfo.build(result);
}

private LambdaQueryWrapper<DkCheckInRecord> buildQueryWrapper(DkCheckInRecordDTO dkCheckInRecordDTO) {
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = Wrappers.lambdaQuery();

queryWrapper.eq(null != dkCheckInRecordDTO.getSysUserName() ,DkCheckInRecord::getSysUserName, dkCheckInRecordDTO.getSysUserName());
queryWrapper.eq(null != dkCheckInRecordDTO.getCheckInTime(), DkCheckInRecord::getCheckInTime, dkCheckInRecordDTO.getCheckInTime());
queryWrapper.eq(null != dkCheckInRecordDTO.getCheckInStatus(), DkCheckInRecord::getCheckInStatus, dkCheckInRecordDTO.getCheckInStatus());
// queryWrapper.eq(null != dkCheckInRecordDTO.getExportRange(), DkCheckInRecord::getExportRange, dkCheckInRecordDTO.getExportRange());
if("day".equals(dkCheckInRecordDTO.getExportRange())){
queryWrapper.between(DkCheckInRecord::getCheckInTime, TimeUtils.getStartTime(), TimeUtils.getEndTime());
}
if("month".equals(dkCheckInRecordDTO.getExportRange())){
queryWrapper.between(DkCheckInRecord::getCheckInTime, TimeUtils.getFirstDayOfMonth(), TimeUtils.getLastDayOfMonth());
}

queryWrapper.orderByDesc(DkCheckInRecord::getSysUserName).orderByDesc(DkCheckInRecord::getCheckInTime);
return queryWrapper;
}

public LocalDateTime getStartTime() {
LocalDate today = LocalDate .now();
// 定义一天的开始和结束时间
LocalTime startTime = LocalTime.of(0, 0, 0); // 00:00:00
LocalDateTime startOfDay = today.atTime(startTime);
return startOfDay;
}

public LocalDateTime getEndTime() {
LocalDate today = LocalDate .now();
// 定义一天的开始和结束时间
LocalTime endTime = LocalTime.of(23, 59, 59); // 23:59:59
LocalDateTime endOfDay = today.atTime(endTime);
return endOfDay;
}

/**
* 查询预警结果列表
*/
@Override
public List<DkCheckInRecordDTO> queryList(DkCheckInRecordDTO dkCheckInRecordDTO) {
LambdaQueryWrapper<DkCheckInRecord> queryWrapper = buildQueryWrapper(dkCheckInRecordDTO);
List<DkCheckInRecordDTO> dkCheckInRecordDTOS = dkMapper.selectVoList(queryWrapper);
dkCheckInRecordDTOS.forEach(dk -> {
if("0".equals(dk.getCheckInStatus())){
dk.setCheckInStatus("正常");
}
if("1".equals(dk.getCheckInStatus())){
dk.setCheckInStatus("迟到");
}
if("2".equals(dk.getCheckInStatus())){
dk.setCheckInStatus("缺卡");
}
});
return dkCheckInRecordDTOS;
}
}

+ 77
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/util/TimeUtils.java Просмотреть файл

@@ -0,0 +1,77 @@
package com.ruoyi.zhushi.util;

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class TimeUtils {

public static String getStartTime() {
LocalDate today = LocalDate.now();
// 定义一天的开始和结束时间
LocalTime startTime = LocalTime.of(0, 0, 0); // 00:00:00
LocalDateTime startOfDay = today.atTime(startTime);
// 格式化输出
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String startOfDayStr = startOfDay.format(formatter);
return startOfDayStr;
}

public static String getEndTime() {
LocalDate today = LocalDate.now();
// 定义一天的开始和结束时间
LocalTime endTime = LocalTime.of(23, 59, 59); // 23:59:59
LocalDateTime endOfDay = today.atTime(endTime);
// 格式化输出
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String endOfDayStr = endOfDay.format(formatter);
return endOfDayStr ;
}

// 获取当月开始时间
public static Date getMonthStart() {
LocalDateTime startOfMonth = LocalDateTime.now()
.withDayOfMonth(1)
.with(LocalTime.MIN);

return Date.from(startOfMonth.atZone(ZoneId.systemDefault()).toInstant());
}

// 获取当月结束时间
public static Date getMonthEnd() {
LocalDateTime endOfMonth = LocalDateTime.now()
.plusMonths(1)
.withDayOfMonth(1)
.with(LocalTime.MIN)
.minusSeconds(1);

return Date.from(endOfMonth.atZone(ZoneId.systemDefault()).toInstant());
}

// 格式化日期
private static String formatDate(Date date, DateTimeFormatter formatter) {
LocalDateTime localDateTime = date.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDateTime();

return localDateTime.format(formatter);
}

public static String getFirstDayOfMonth() {
Date monthStart = getMonthStart();
// 格式化输出
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
return formatDate(monthStart, formatter);
}

public static String getLastDayOfMonth() {
Date monthEnd = getMonthEnd();
// 格式化输出
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
return formatDate(monthEnd, formatter);
}
}

Загрузка…
Отмена
Сохранить