fix: 攀枝花东区-缴费分支代码处理

This commit is contained in:
2025-05-15 23:21:29 +08:00
parent bafd4aa3ab
commit 6bef534d7d
1097 changed files with 12395 additions and 61340 deletions
@@ -0,0 +1,53 @@
package com.yida.data.attendance.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.common.BaseDTO;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDate;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@Data
public class AttendanceResultPageDTO extends BaseDTO {
@ApiModelProperty("学校id")
private Long schoolId;
@ApiModelProperty("宿舍楼id")
private Long dormId;
@ApiModelProperty("寝室id")
private Long dormRoomId;
@ApiModelProperty("开始日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate startDate;
@ApiModelProperty("结束日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate endDate;
@ApiModelProperty("规则id")
private Long ruleId;
@ApiModelProperty("校区id")
private Long campusId;
@ApiModelProperty("学段id")
private Long sectionId;
@ApiModelProperty("年级id")
private Long gradeId;
@ApiModelProperty("班级id")
private Long classId;
@ApiModelProperty("姓名/学号")
private String keyword;
@ApiModelProperty("类型,0-校门,1-宿舍(导出数据时传)")
private Integer type;
}
@@ -0,0 +1,36 @@
package com.yida.data.attendance.dto;
import lombok.Data;
@Data
public class DealRecordDTO {
/**
* 设备sn号
*/
private String sn;
/**
* 考勤时间
*/
private String date;
/**
* 考勤用户id
*/
private Long userId;
/**
* 用户类型,0-学生,1-教职工
*/
private Integer userType;
/**
* 设备方用户唯一标识
*/
private String userFlag;
/**
* 考勤图片
*/
private String picUrl;
}
@@ -0,0 +1,16 @@
package com.yida.data.attendance.dto;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.Data;
@Data
public class DevicePage<T> extends Page<T> {
public DevicePage(Integer pageNum, Integer pageSize) {
super(pageNum, pageSize);
}
private Integer onlineNumber;
private Integer offlineNumber;
}
@@ -0,0 +1,49 @@
package com.yida.data.attendance.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.common.BaseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ApiModel("分页查询进出记录条件")
@Data
public class InOutPageDTO extends BaseDTO {
@ApiModelProperty("学校id")
private Long schoolId;
@ApiModelProperty("宿舍楼id")
private Long dormId;
@ApiModelProperty("校区id")
private Long campusId;
@ApiModelProperty("学段id")
private Long sectionId;
@ApiModelProperty("年级id")
private Long gradeId;
@ApiModelProperty("班级id")
private Long classId;
@ApiModelProperty("姓名/学号")
private String keyword;
@ApiModelProperty("类型,0-校门,1-宿舍(导出数据时传)")
private Integer type;
@ApiModelProperty("开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime startTime;
@ApiModelProperty("结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
}
@@ -0,0 +1,30 @@
package com.yida.data.attendance.dto;
import com.yida.data.common.core.entity.user.EduUserFace;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class IssuedFaceDTO {
/**
* 人脸列表
*/
private List<EduUserFace> userFaceList;
/**
* 设备id列表
*/
private List<Long> deviceList;
@ApiModelProperty("下发类型,0-添加,1-修改")
private Integer type;
/**
* 人脸组id
*/
private Long groupId;
}
@@ -0,0 +1,31 @@
package com.yida.data.attendance.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ListRecordDTO {
@ApiModelProperty("发生日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate createDate;
@ApiModelProperty("时段id")
private Long ruleTimeId;
@ApiModelProperty("学生id")
private Long studentId;
@ApiModelProperty("状态")
private Integer status;
@ApiModelProperty("考勤类型,0-校门,1-宿舍")
private Integer zone;
}
@@ -0,0 +1,28 @@
package com.yida.data.attendance.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDate;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ApiModel("查询考勤记录条件")
@Data
public class ListResultStatisticsDTO {
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
LocalDate date;
Long schoolId;
Long campusId;
Long gradeId;
Long classId;
Long dormId;
@ApiModelProperty("考勤类型,0-上学,1-归寝")
Integer type;
@ApiModelProperty("时段(校门考勤用)")
Long timeId;
@ApiModelProperty("时段(宿舍考勤用),1-中午,2-晚上")
Integer duration;
}
@@ -0,0 +1,31 @@
package com.yida.data.attendance.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.common.BaseDTO;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ListStaffResultDTO extends BaseDTO {
@ApiModelProperty("开始日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate startDate;
@ApiModelProperty("结束日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate endDate;
@ApiModelProperty("管理员的教职工id")
private Long adminStaffId;
@ApiModelProperty("考勤结果 (迟到、早退可筛选到迟到早退记录)")
private Integer status;
}
@@ -0,0 +1,33 @@
package com.yida.data.attendance.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDate;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ApiModel("查询学生考勤记录")
@Data
public class ListStudentResultDTO {
@ApiModelProperty("班级id")
private Long classId;
@ApiModelProperty("学生id")
private Long studentId;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate startDate;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate endDate;
@ApiModelProperty("0-正常,1-迟到,2-早退,3-旷课,4-晚归,6-旷宿,8-请假")
private Integer type;
@ApiModelProperty("规则时段id")
private Long timeId;
}
@@ -0,0 +1,12 @@
package com.yida.data.attendance.dto;
import java.util.List;
import lombok.Data;
@Data
public class RemoveFaceDTO {
private List<String> deviceFactoryUserId;
private List<Long> deviceList;
}
@@ -0,0 +1,20 @@
package com.yida.data.attendance.dto;
import com.yida.data.attendance.vo.ConflictRuleVO;
import com.yida.data.common.core.entity.attendance.EduAttendanceRule;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import lombok.Data;
@Data
@ApiModel("保存或修改规则")
public class SaveRuleDTO {
@ApiModelProperty("规则")
private EduAttendanceRule rule;
@ApiModelProperty("冲突的规则")
private List<ConflictRuleVO> conflictRule;
}
@@ -0,0 +1,141 @@
package com.yida.data.attendance.dto;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.entity.attendance.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author ccl
*/
@Data
public class StaffRuleDTO {
@ApiModelProperty(value = "")
private Long id;
/**
*
*/
@ApiModelProperty(value = "")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
/**
*
*/
@ApiModelProperty(value = "")
private Long createId;
@ApiModelProperty(value = "")
private String createName;
/**
*
*/
@ApiModelProperty(value = "")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateDate;
/**
*
*/
@ApiModelProperty(value = "")
private Long updateId;
/**
*
*/
@ApiModelProperty(value = "")
@TableLogic(value = "0", delval = "1")
private Integer delFlag;
/**
* 考勤规则名称
*/
@ApiModelProperty(value = "考勤规则名称")
private String name;
/**
* 0-固定上下班时间
*/
@ApiModelProperty(value = "0-固定上下班时间")
private Integer type;
/**
* 打卡日期,1-周一,2-周二....多个用','连接
*/
@ApiModelProperty(value = "打卡日期,1-周一,2-周二....多个用','连接")
private String week;
/**
* 节假日是否打卡,0-是,1-否
*/
@ApiModelProperty(value = "节假日是否打卡,0-是,1-否")
private Integer holidayAttendance;
/**
* 学校id
*/
@ApiModelProperty(value = "学校id")
private Long schoolId;
/**
* 管理员打卡规则内容权限,0-无,1-有
*/
@ApiModelProperty(value = "管理员打卡规则内容权限,0-无,1-有")
private Integer roleRule;
/**
* 管理员打卡人员与白名单权限,0-无,1-有
*/
@ApiModelProperty(value = "管理员打卡人员与白名单权限,0-无,1-有")
private Integer roleUser;
/**
* 管理员节假日与特殊日期权限,0-无,1-有
*/
@ApiModelProperty(value = "管理员节假日与特殊日期权限,0-无,1-有")
private Integer roleDate;
/**
* 管理员打卡提醒权限,0-无,1-有
*/
@ApiModelProperty(value = "管理员打卡提醒权限,0-无,1-有")
private Integer roleRemind;
@ApiModelProperty("使用人员,可以是部门")
private List<EduAttendanceStaffRuleObj> objStaffs;
@ApiModelProperty("管理人员")
private List<EduAttendanceStaffRuleAdmin> adminStaffs;
@ApiModelProperty("使用职工")
private List<EduAttendanceStaffRuleStaff> ruleStaffs;
@ApiModelProperty("白名单")
private List<EduAttendanceStaffRuleWhiteList> whiteList;
@ApiModelProperty("打卡时段")
private List<EduAttendanceStaffRuleTime> ruleTimes;
@ApiModelProperty("特殊时段")
private List<EduAttendanceStaffRuleSpecialDate> specialDate;
@ApiModelProperty("管理范围")
private List<EduAttendanceStaffRuleAdminRange> adminRanges;
@ApiModelProperty("打卡提醒")
private List<EduAttendanceStaffRuleRemind> ruleReminds;
@ApiModelProperty("规则关联设备id")
private List<Long> ruleDevices;
}
@@ -0,0 +1,31 @@
package com.yida.data.attendance.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.List;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class StasticStaffExcepByDayDTO {
@ApiModelProperty("开始日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate startDate;
@ApiModelProperty("结束日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate endDate;
@ApiModelProperty("教职工id")
private Long staffId;
private List<Long> schoolIds;
}
@@ -0,0 +1,27 @@
package com.yida.data.attendance.dto;
import com.yida.data.common.core.common.BaseDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class StasticStaffResultDTO extends BaseDTO {
@ApiModelProperty("日期,yyyy-MM-dd")
private String date;
@ApiModelProperty("年月,yyyy-MM")
private String yearMonth;
@ApiModelProperty("部门id")
private Long deptId;
@ApiModelProperty("职工姓名/手机号")
private String keyword;
@ApiModelProperty("规则id")
private Long ruleId;
@ApiModelProperty("考勤结果")
private Integer status;
}
@@ -0,0 +1,108 @@
package com.yida.data.attendance.fallback;
import com.yida.data.attendance.dto.IssuedFaceDTO;
import com.yida.data.attendance.dto.RemoveFaceDTO;
import com.yida.data.attendance.feign.RemoteAttendanceDeviceService;
import com.yida.data.common.core.annotation.Fallback;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.attendance.EduAttendanceDevice;
import com.yida.data.common.core.entity.attendance.EduAttendanceDeviceGroup;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
/**
* RemoteAttendanceDeviceService fallback处理类
*
* @author ZYJ
* @date 2022/8/26
*/
@Slf4j
@Fallback
public class RemoteAttendanceDeviceServiceFallback implements FallbackFactory<RemoteAttendanceDeviceService> {
@Override
public RemoteAttendanceDeviceService create(Throwable throwable) {
log.error("RemoteAttendanceDeviceService fallback reason:{}", throwable.getMessage());
return new RemoteAttendanceDeviceService() {
@Override
public ResultBean<List<EduAttendanceDevice>> listDeviceBySchool(Long schoolId) {
return null;
}
@Override
public ResultBean<List<EduAttendanceDevice>> listDeviceByType(String type) {
return null;
}
/**
* 下发人脸到设备
*
* @param dto
*/
@Override
public ResultBean issuedFace(IssuedFaceDTO dto) {
return null;
}
/**
* 删除设备中的人脸
*
* @param dto
*/
@Override
public ResultBean removeFace(RemoveFaceDTO dto) {
return null;
}
/**
* 查询设备组中的设备
*
* @param groupIds
*/
@Override
public ResultBean<List<EduAttendanceDevice>> listDeviceByGroup(Long[] groupIds) {
return null;
}
/**
* 根据id查询设备
*
* @param ids
*/
@Override
public ResultBean<List<EduAttendanceDevice>> listDeviceById(Long[] ids) {
return null;
}
/**
* 根据id查询设备组
*
* @param ids
* @return
*/
@Override
public ResultBean<List<EduAttendanceDeviceGroup>> listDeviceGroupById(Long[] ids) {
return null;
}
/**
* 更新设备在线状态
*/
@Override
public ResultBean updateDeviceStatus() {
return null;
}
/**
* 校时所有设备
*/
@Override
public ResultBean timingAllDevice() {
return null;
}
};
}
}
@@ -0,0 +1,31 @@
package com.yida.data.attendance.fallback;
import com.yida.data.attendance.feign.RemoteAttendanceNoticeService;
import com.yida.data.common.core.annotation.Fallback;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.attendance.EduAttendanceNotice;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
/**
* RemoteAttendanceNoticeService fallback处理类
*
* @author ZYJ
* @date 2022/8/26
*/
@Slf4j
@Fallback
public class RemoteAttendanceNoticeServiceFallback implements FallbackFactory<RemoteAttendanceNoticeService> {
@Override
public RemoteAttendanceNoticeService create(Throwable throwable) {
log.error("RemoteAttendanceNoticeService fallback reason:{}", throwable.getMessage());
return new RemoteAttendanceNoticeService() {
@Override
public ResultBean saveNotice(EduAttendanceNotice notice) {
return null;
}
};
}
}
@@ -0,0 +1,45 @@
package com.yida.data.attendance.fallback;
import com.yida.data.attendance.feign.RemoteAttendanceResultService;
import com.yida.data.common.core.annotation.Fallback;
import com.yida.data.common.core.common.ResultBean;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
/**
* RemoteAttendanceResultService fallback处理类
*
* @author ZYJ
* @date 2022/8/26
*/
@Slf4j
@Fallback
public class RemoteAttendanceResultServiceFallback implements FallbackFactory<RemoteAttendanceResultService> {
@Override
public RemoteAttendanceResultService create(Throwable throwable) {
log.error("RemoteAttendanceResultService fallback reason:{}", throwable.getMessage());
return new RemoteAttendanceResultService() {
/**
* 推送未到记录
*
* @return
*/
@Override
public ResultBean pushNotArriveMsg() {
return null;
}
/**
* 保存未到记录
*
* @return
*/
@Override
public ResultBean dealAttendanceResult() {
return null;
}
};
}
}
@@ -0,0 +1,51 @@
package com.yida.data.attendance.fallback;
import com.yida.data.attendance.feign.RemoteAttendanceRuleService;
import com.yida.data.common.core.annotation.Fallback;
import com.yida.data.common.core.common.ResultBean;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
/**
* RemoteAttendanceRuleService fallback处理类
*
* @author ZYJ
* @date 2022/8/26
*/
@Slf4j
@Fallback
public class RemoteAttendanceRuleServiceFallback implements FallbackFactory<RemoteAttendanceRuleService> {
@Override
public RemoteAttendanceRuleService create(Throwable throwable) {
log.error("RemoteAttendanceRuleService fallback reason:{}", throwable.getMessage());
return new RemoteAttendanceRuleService() {
/**
* 更新规则状态
*
* @return
*/
@Override
public ResultBean updateRuleStatus() {
return null;
}
/**
* 提醒打卡
*/
@Override
public ResultBean remindStaff() {
return null;
}
/**
* 处理记录到结果表
*/
@Override
public ResultBean staffRecord() {
return null;
}
};
}
}
@@ -0,0 +1,71 @@
package com.yida.data.attendance.feign;
import com.yida.data.attendance.dto.IssuedFaceDTO;
import com.yida.data.attendance.dto.RemoveFaceDTO;
import com.yida.data.attendance.fallback.RemoteAttendanceDeviceServiceFallback;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.attendance.EduAttendanceDevice;
import com.yida.data.common.core.entity.attendance.EduAttendanceDeviceGroup;
import com.yida.data.common.core.entity.constant.FebsServerConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@FeignClient(value = FebsServerConstant.EDU_ATTENDANCE, contextId = "attendanceDeviceServiceClient",
fallbackFactory = RemoteAttendanceDeviceServiceFallback.class)
public interface RemoteAttendanceDeviceService {
@GetMapping("/device/listDeviceBySchool")
ResultBean<List<EduAttendanceDevice>> listDeviceBySchool(@RequestParam("schoolId") Long schoolId);
@GetMapping("/in/device/listDeviceByType")
ResultBean<List<EduAttendanceDevice>> listDeviceByType(@RequestParam("type") String type);
/**
* 下发人脸到设备
*/
@PostMapping("/device/issuedFace")
ResultBean issuedFace(@RequestBody IssuedFaceDTO dto);
/**
* 删除设备中的人脸
*/
@PostMapping("/device/removeFace")
ResultBean removeFace(@RequestBody RemoveFaceDTO dto);
/**
* 查询设备组中的设备
*/
@GetMapping("/deviceGroup/listDeviceByGroup")
ResultBean<List<EduAttendanceDevice>> listDeviceByGroup(@RequestParam("groupIds") Long[] groupIds);
/**
* 根据id查询设备
*/
@GetMapping("/device/listDeviceById")
ResultBean<List<EduAttendanceDevice>> listDeviceById(@RequestParam("ids") Long[] ids);
/**
* 根据id查询设备组
*
* @return
*/
@GetMapping("/deviceGroup/listDeviceGroupById")
ResultBean<List<EduAttendanceDeviceGroup>> listDeviceGroupById(@RequestParam("ids") Long[] ids);
/**
* 更新设备在线状态
*/
@GetMapping("/in/device/updateDeviceStatus")
ResultBean updateDeviceStatus();
/**
* 校时所有设备
*/
@GetMapping("/in/device/timingAllDevice")
ResultBean timingAllDevice();
}
@@ -0,0 +1,17 @@
package com.yida.data.attendance.feign;
import com.yida.data.attendance.fallback.RemoteAttendanceNoticeServiceFallback;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.attendance.EduAttendanceNotice;
import com.yida.data.common.core.entity.constant.FebsServerConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient(value = FebsServerConstant.EDU_ATTENDANCE, contextId = "attendanceNoticeServiceClient",
fallbackFactory = RemoteAttendanceNoticeServiceFallback.class)
public interface RemoteAttendanceNoticeService {
@GetMapping("/in/notice/saveNotice")
ResultBean saveNotice(@RequestBody EduAttendanceNotice notice);
}
@@ -0,0 +1,29 @@
package com.yida.data.attendance.feign;
import com.yida.data.attendance.fallback.RemoteAttendanceResultServiceFallback;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.constant.FebsServerConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient(value = FebsServerConstant.EDU_ATTENDANCE, contextId = "attendanceNotArriveServiceClient",
fallbackFactory = RemoteAttendanceResultServiceFallback.class)
public interface RemoteAttendanceResultService {
/**
* 推送未到记录
*
* @return
*/
@GetMapping("/in/result/pushNotArriveMsg")
ResultBean pushNotArriveMsg();
/**
* 保存未到记录
*
* @return
*/
@GetMapping("/in/result/dealAttendanceResult")
ResultBean dealAttendanceResult();
}
@@ -0,0 +1,37 @@
package com.yida.data.attendance.feign;
import com.yida.data.attendance.fallback.RemoteAttendanceRuleServiceFallback;
import com.yida.data.common.core.common.ResultBean;
import com.yida.data.common.core.entity.constant.FebsServerConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient(value = FebsServerConstant.EDU_ATTENDANCE, contextId = "attendanceRuleServiceClient",
fallbackFactory = RemoteAttendanceRuleServiceFallback.class)
public interface RemoteAttendanceRuleService {
/**
* 更新规则状态
*
* @return
*/
@GetMapping("/in/rule/updateRuleStatus")
ResultBean updateRuleStatus();
/**
* 提醒打卡
*
* @param
*/
@GetMapping("/in/staffRecord/remindStaff")
ResultBean remindStaff();
/**
* 处理记录到结果表
*
* @param
*/
@GetMapping("/in/staffRecord/staffRecord")
ResultBean staffRecord();
}
@@ -0,0 +1,22 @@
package com.yida.data.attendance.vo;
import com.yida.data.common.core.entity.attendance.EduAttendanceRecord;
import com.yida.data.common.core.entity.user.EduStaff;
import com.yida.data.common.core.entity.user.EduStudent;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("进出记录处理结果")
@Data
public class AttendanceResVO {
@ApiModelProperty("产生的进出记录")
private EduAttendanceRecord record;
@ApiModelProperty("进出的学生")
private EduStudent student;
@ApiModelProperty("进出的职工")
private EduStaff staff;
}
@@ -0,0 +1,34 @@
package com.yida.data.attendance.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.converter.LocalDateTimeConverter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ApiModel("宿舍考勤记录")
@Data
public class AttendanceResultDormVO extends AttendanceResultVO {
@ApiModelProperty("宿舍寝室名称")
@ExcelProperty(order = 4, value = "宿舍寝室名称")
private String dormRoomName;
@ApiModelProperty("核查状态")
@ExcelProperty(order = 9, value = "核查状态")
private String verify;
@ApiModelProperty("核查时间")
@ExcelProperty(order = 10, value = "核查时间", converter = LocalDateTimeConverter.class)
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime verifyTime;
@ApiModelProperty("核查人")
@ExcelIgnore
private Long verifyId;
}
@@ -0,0 +1,29 @@
package com.yida.data.attendance.vo;
import com.yida.data.common.core.entity.user.EduStaff;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 考勤推送封装类
*
* @author ZYJ
* @date 2022/7/15
*/
@Data
public class AttendanceResultPushVO implements Serializable {
private static final long serialVersionUID = 3074698159807729093L;
/**
* 职工信息
*/
private EduStaff eduStaff;
/**
* 推送消息记录
*/
private List<Long> resultIds;
}
@@ -0,0 +1,58 @@
package com.yida.data.attendance.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yida.data.common.core.converter.LocalDateConverter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDate;
import lombok.Data;
@ApiModel("考勤记录分页记录")
@Data
public class AttendanceResultVO {
@ApiModelProperty("校区名称")
@ExcelProperty(order = 0, value = "校区")
private String campusName;
@ApiModelProperty("年级班级")
@ExcelProperty(order = 1, value = "年级班级")
private String gradeClass;
@ApiModelProperty("学生id")
@ExcelIgnore
private Long studentId;
@ApiModelProperty("姓名")
@ExcelProperty(order = 2, value = "姓名")
private String stuName;
@ApiModelProperty("学号")
@ExcelProperty(order = 3, value = "学号")
private String stuNumber;
@ApiModelProperty("考勤日期")
@ExcelProperty(order = 5, value = "考勤日期", converter = LocalDateConverter.class)
private LocalDate attendanceDate;
@ApiModelProperty("考勤规则id")
@ExcelIgnore
private Long ruleId;
@ApiModelProperty("考勤规则名称")
@ExcelProperty(order = 6, value = "考勤规则")
private String ruleName;
@ApiModelProperty("考勤时段")
@ExcelProperty(order = 7, value = "考勤时段")
private String time;
@ApiModelProperty("考勤结果")
@ExcelProperty(order = 8, value = "考勤结果")
private String status;
@ApiModelProperty("图片")
@ExcelIgnore
private String picUrl;
}
@@ -0,0 +1,19 @@
package com.yida.data.attendance.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("冲突规则")
public class ConflictRuleVO {
@ApiModelProperty("规则Id")
private Long ruleId;
@ApiModelProperty("规则名称")
private String ruleName;
@ApiModelProperty("部门id")
private Long deptId;
@ApiModelProperty("部门名称")
private String deptName;
}
@@ -0,0 +1,32 @@
package com.yida.data.attendance.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class CountVO {
@ApiModelProperty("迟到数")
private Integer late;
@ApiModelProperty("早退数")
private Integer leave;
@ApiModelProperty("未到数")
private Integer notArrive;
@ApiModelProperty("晚归数")
private Integer dormLate;
@ApiModelProperty("旷宿数")
private Integer dormNotArrive;
@ApiModelProperty("请假数量")
private Integer request;
@ApiModelProperty("正常数")
private Integer normal;
@ApiModelProperty("异常数")
private Integer excep;
}
@@ -0,0 +1,35 @@
package com.yida.data.attendance.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 设备数量统计返回类
*
* @author ZYJ
* @date 2021/10/8
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "DeviceNumberVO", description = "设备数量统计返回类")
public class DeviceNumberVO implements Serializable {
private static final long serialVersionUID = -7261215589760191372L;
@ApiModelProperty(value = "设备总数量")
private Long totalNumber;
@ApiModelProperty(value = "在线设备数量")
private Long onlineNumber;
@ApiModelProperty(value = "离线设备数量")
private Long offlineNumber;
}
@@ -0,0 +1,14 @@
package com.yida.data.attendance.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class DeviceOrDeviceGroupVO {
private Long id;
@ApiModelProperty("0-设备,1-设备组")
private Integer type;
private String name;
}
@@ -0,0 +1,55 @@
package com.yida.data.attendance.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("设备信息")
@Data
public class DeviceVO {
private Long id;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
@ApiModelProperty("设备名称")
private String name;
@ApiModelProperty("设备编号")
private String sn;
@ApiModelProperty("设备mac地址")
private String macAddress;
@ApiModelProperty("设备厂商")
private String deviceType;
@ApiModelProperty("ip")
private String ip;
@ApiModelProperty("学校id")
private Long schoolId;
@ApiModelProperty("学校名称")
private String schoolName;
@ApiModelProperty("区域类型,0-进门,1-出门")
private Integer zoneScope;
@ApiModelProperty("0-校门,1-宿舍")
private Integer type;
@ApiModelProperty("设备在线状态,0-在线,1-未在线")
private Integer state;
@ApiModelProperty("分组名称")
private String groupName;
}
@@ -0,0 +1,43 @@
package com.yida.data.attendance.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ExportDormRateVO {
@ApiModelProperty("日期")
@ExcelProperty(value = "日期", order = 0)
private String date;
@ApiModelProperty("校区")
// @ExcelProperty(value = "校区", order = 2)
@ExcelIgnore
private String campus;
@ApiModelProperty("年级班级")
@ExcelProperty(value = "年级班级/宿舍楼", order = 3)
private String gradeClass;
@ApiModelProperty("总人数")
@ExcelProperty(value = "总人数", order = 4)
private Integer total;
@ApiModelProperty("归寝率")
@ExcelProperty(value = "归寝率", order = 5)
private Double rate;
@ApiModelProperty("晚归")
@ExcelProperty(value = {"考勤结果", "晚归"}, order = 6)
private Integer late;
@ApiModelProperty("旷宿")
@ExcelProperty(value = {"考勤结果", "旷宿"}, order = 7)
private Integer notArrive;
@ApiModelProperty("正常")
@ExcelProperty(value = {"考勤结果", "正常"}, order = 8)
private Integer normal;
}
@@ -0,0 +1,56 @@
package com.yida.data.attendance.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("导出校门考勤率排名")
@Data
public class ExportSchoolRateVO {
@ApiModelProperty("日期")
@ExcelProperty(value = "日期", order = 0)
private String date;
@ApiModelProperty("时段")
@ExcelIgnore
private String time;
@ApiModelProperty("校区")
@ExcelProperty(value = "校区", order = 2)
private String campus;
@ApiModelProperty("年级班级")
@ExcelProperty(value = "年级班级", order = 3)
private String gradeClass;
@ApiModelProperty("总人数")
@ExcelProperty(value = "总人数", order = 4)
private Integer total;
@ApiModelProperty("出勤率")
@ExcelProperty(value = "出勤率", order = 5)
private Double rate;
@ApiModelProperty("迟到")
@ExcelProperty(value = {"考勤结果", "迟到"}, order = 6)
private Integer late;
@ApiModelProperty("早退")
@ExcelProperty(value = {"考勤结果", "早退"}, order = 7)
private Integer leave;
@ApiModelProperty("迟到早退")
@ExcelProperty(value = {"考勤结果", "迟到早退"}, order = 8)
private Integer lateAndLeave;
@ApiModelProperty("旷学")
@ExcelProperty(value = {"考勤结果", "旷学"}, order = 9)
private Integer notArrive;
@ApiModelProperty("正常")
@ExcelProperty(value = {"考勤结果", "正常"}, order = 10)
private Integer normal;
}
@@ -0,0 +1,138 @@
package com.yida.data.attendance.vo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.entity.attendance.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author ccl
*/
@Data
public class FindStaffRuleVO {
@ApiModelProperty(value = "")
private Long id;
/**
*
*/
@ApiModelProperty(value = "")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
/**
*
*/
@ApiModelProperty(value = "")
private Long createId;
@ApiModelProperty(value = "")
private String createName;
/**
*
*/
@ApiModelProperty(value = "")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateDate;
/**
*
*/
@ApiModelProperty(value = "")
private Long updateId;
/**
*
*/
@ApiModelProperty(value = "")
@TableLogic(value = "0", delval = "1")
private Integer delFlag;
/**
* 考勤规则名称
*/
@ApiModelProperty(value = "考勤规则名称")
private String name;
/**
* 0-固定上下班时间
*/
@ApiModelProperty(value = "0-固定上下班时间")
private Integer type;
/**
* 打卡日期,1-周一,2-周二....多个用','连接
*/
@ApiModelProperty(value = "打卡日期,1-周一,2-周二....多个用','连接")
private String week;
/**
* 节假日是否打卡,0-是,1-否
*/
@ApiModelProperty(value = "节假日是否打卡,0-是,1-否")
private Integer holidayAttendance;
/**
* 学校id
*/
@ApiModelProperty(value = "学校id")
private Long schoolId;
/**
* 管理员打卡规则内容权限,0-无,1-有
*/
@ApiModelProperty(value = "管理员打卡规则内容权限,0-无,1-有")
private Integer roleRule;
/**
* 管理员打卡人员与白名单权限,0-无,1-有
*/
@ApiModelProperty(value = "管理员打卡人员与白名单权限,0-无,1-有")
private Integer roleUser;
/**
* 管理员节假日与特殊日期权限,0-无,1-有
*/
@ApiModelProperty(value = "管理员节假日与特殊日期权限,0-无,1-有")
private Integer roleDate;
/**
* 管理员打卡提醒权限,0-无,1-有
*/
@ApiModelProperty(value = "管理员打卡提醒权限,0-无,1-有")
private Integer roleRemind;
@ApiModelProperty("使用人员,可以是部门")
private List<EduAttendanceStaffRuleObj> objStaffs;
@ApiModelProperty("管理人员")
private List<EduAttendanceStaffRuleAdmin> adminStaffs;
@ApiModelProperty("白名单")
private List<EduAttendanceStaffRuleWhiteList> whiteList;
@ApiModelProperty("管理范围")
private List<EduAttendanceStaffRuleAdminRange> adminRanges;
@ApiModelProperty("打卡时段")
private List<EduAttendanceStaffRuleTime> ruleTimes;
@ApiModelProperty("特殊时段")
private List<EduAttendanceStaffRuleSpecialDate> specialDate;
@ApiModelProperty("打卡提醒")
private List<EduAttendanceStaffRuleRemind> ruleReminds;
@ApiModelProperty("打卡设备")
private List<Long> ruleDevices;
}
@@ -0,0 +1,14 @@
package com.yida.data.attendance.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class InOutDormPageVO extends InOutPageVO {
@ApiModelProperty("宿舍")
@ExcelProperty(value = "宿舍", order = 4)
private String dormRoomName;
}
@@ -0,0 +1,55 @@
package com.yida.data.attendance.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.converter.LocalDateTimeConverter;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class InOutPageVO {
@ApiModelProperty("校区名称")
@ExcelProperty(order = 0, value = "校区")
private String campusName;
@ApiModelProperty("年级班级")
@ExcelProperty(order = 1, value = "年级班级")
private String gradeClass;
@ApiModelProperty("学生id")
@ExcelIgnore
private Long studentId;
@ApiModelProperty("姓名")
@ExcelProperty(order = 2, value = "姓名")
private String stuName;
@ApiModelProperty("学号")
@ExcelProperty(order = 3, value = "学号")
private String stuNumber;
@ApiModelProperty("进出位置")
@ExcelProperty(order = 5, value = "进出位置")
private String zoneName;
@ApiModelProperty("进出状态")
@ExcelProperty(order = 6, value = "进出状态")
private String scope;
@ApiModelProperty("进出时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@ExcelProperty(order = 7, value = "进出时间", converter = LocalDateTimeConverter.class)
private LocalDateTime createTime;
@ApiModelProperty("图片")
@ExcelIgnore
private String picUrl;
}
@@ -0,0 +1,24 @@
package com.yida.data.attendance.vo;
import java.time.LocalDate;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class ListStaffResultPageVO {
@ApiModelProperty("教职工id")
private Long staffId;
@ApiModelProperty("教职工名称")
private String staffName;
@ApiModelProperty("考勤结果")
private Integer status;
@ApiModelProperty("考勤规则")
private String ruleName;
@ApiModelProperty("考勤日期")
private LocalDate date;
}
@@ -0,0 +1,11 @@
package com.yida.data.attendance.vo;
import lombok.Data;
@Data
public class OnlineCountVO {
private Integer onlineNum;
private Integer offlineNum;
}
@@ -0,0 +1,16 @@
package com.yida.data.attendance.vo;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class RateRankVO {
@ApiModelProperty("最高排行")
private List<RateVO> topFive;
@ApiModelProperty("最低排行")
private List<RateVO> bottomFive;
}
@@ -0,0 +1,53 @@
package com.yida.data.attendance.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class RateVO {
@ApiModelProperty("班级")
private String gradeClass;
@ApiModelProperty("宿舍楼名称")
private String dormName;
@ApiModelProperty("出勤率")
private Double rate;
@ApiModelProperty("总人数")
private Integer total;
@ApiModelProperty("校区")
private String campus;
@ApiModelProperty("日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate date;
@ApiModelProperty("时段")
private String duration;
@ApiModelProperty("迟到/晚归/异常晚归")
private Integer late;
@ApiModelProperty("早退")
private Integer leave;
@ApiModelProperty("迟到早退")
private Integer lateAndLeave;
@ApiModelProperty("旷学/旷宿")
private Integer notArrive;
@ApiModelProperty("正常")
private Integer normal;
}
@@ -0,0 +1,49 @@
package com.yida.data.attendance.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@Data
@ApiModel("考勤记录")
public class RecordDetailVO {
private Long id;
private Long userId;
@ApiModelProperty("学生名称")
private String name;
@ApiModelProperty("班级名称")
private String className;
@ApiModelProperty("学号")
private String stuNumber;
@ApiModelProperty("设备名称")
private String deviceName;
// 体温
@ApiModelProperty("体温")
private Double temp;
@ApiModelProperty("考勤图片地址")
private String picUrl;
// 进出类型,0-进,1-出
@ApiModelProperty("考勤区域类型,0-进门,1-出门")
private Integer scope;
@ApiModelProperty("考勤区域类型,0-校门,1-宿舍")
private Integer zone;
@ApiModelProperty("考勤时间")
@DateTimeFormat(pattern = "HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "HH:mm:ss")
private LocalDateTime createTime;
@ApiModelProperty("考勤结果,//状态,0-正常,1-迟到,2-早退,3-未到")
private Integer status;
@ApiModelProperty("考勤时间,0-上午,1-下午,2-晚上")
private Integer time;
@ApiModelProperty("规定时间")
private String stiTime;
}
@@ -0,0 +1,50 @@
package com.yida.data.attendance.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDate;
import java.time.LocalTime;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@ApiModel("考勤记录信息")
@Data
public class ResultDetailVO {
@ApiModelProperty("学生id")
private Long studentId;
@ApiModelProperty("学生名称")
private String studentName;
@ApiModelProperty("学号")
private String studentNum;
@ApiModelProperty("学生类型")
private Integer studentType;
@ApiModelProperty("考勤日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate attendanceDate;
@ApiModelProperty("生成该结果的第一条进出记录的时间")
@DateTimeFormat(pattern = "HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "HH:mm:ss")
private LocalTime recordTime;
@ApiModelProperty("匹配的考勤规则的标准时间")
@DateTimeFormat(pattern = "HH:mm")
@JsonFormat(timezone = "GMT+8", pattern = "HH:mm")
private LocalTime stiTime;
@ApiModelProperty("生成该结果的第一条进出记录的设备名称")
private String zoneName;
@ApiModelProperty("旷课/请假:时段区间,旷宿:中午/晚上")
private String ruleTime;
@ApiModelProperty("考勤结果")
private Integer status;
}
@@ -0,0 +1,53 @@
package com.yida.data.attendance.vo;
import com.yida.data.common.core.entity.attendance.EduAttendanceRuleDate;
import com.yida.data.common.core.entity.attendance.EduAttendanceRuleDept;
import com.yida.data.common.core.entity.attendance.EduAttendanceRuleDevice;
import com.yida.data.common.core.entity.attendance.EduAttendanceRuleTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
@ApiModel("规则列表数据实体")
public class RuleListVO {
private Long id;
@ApiModelProperty("规则名称")
private String name;
@ApiModelProperty("规则状态")
private Integer status;
@ApiModelProperty("规则类型,0-上学,1-归寝")
private Integer type;
@ApiModelProperty("创建时间")
private LocalDateTime createDate;
@ApiModelProperty("创建人id")
private Long createId;
@ApiModelProperty("创建者")
private String createName;
@ApiModelProperty("住宿生是否参与上学考勤")
private Integer dormitoryFlag;
private Long schoolId;
@ApiModelProperty("适用对象")
private List<EduAttendanceRuleDept> deptList;
@ApiModelProperty("运行时间")
private List<EduAttendanceRuleDate> dateList;
@ApiModelProperty("考勤时间")
private List<EduAttendanceRuleTime> timeList;
@ApiModelProperty("考勤设备")
private List<EduAttendanceRuleDevice> deviceList;
}
@@ -0,0 +1,17 @@
package com.yida.data.attendance.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class RuleTimeVO {
@ApiModelProperty("时间id")
private Long timeId;
@ApiModelProperty("时间名称")
private String timeName;
@ApiModelProperty("规则类型:0=上学,1=宿舍")
private String ruleType;
}
@@ -0,0 +1,23 @@
package com.yida.data.attendance.vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
@ApiModel("各类型考勤状态数量")
@Data
public class StaRecordCountVO {
private Integer studentNormal;
private Integer studentLate;
private Integer studentNotArrive;
private Integer studentRequest;
private Integer staffNormal;
private Integer staffLate;
private Integer staffNotArrive;
}
@@ -0,0 +1,26 @@
package com.yida.data.attendance.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class StaffDateTimeResultInfo {
@ApiModelProperty("日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate date;
@ApiModelProperty("星期")
private String week;
@ApiModelProperty("考勤结果列表 0-正常,1-迟到,2-早退,3-旷工,4-迟到早退")
private List<Integer> statusList;
}
@@ -0,0 +1,47 @@
package com.yida.data.attendance.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
/**
* @author ccl
*/
@Data
public class StaffRecordVO {
@ApiModelProperty("记录id")
private Long id;
@ApiModelProperty("部门名称")
private String deptName;
@ApiModelProperty("员工id")
private Long staffId;
@ApiModelProperty("员工名称")
private String staffName;
@ApiModelProperty("手机号")
private String phone;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("进出时间")
private LocalDateTime time;
@ApiModelProperty("星期")
private String week;
@ApiModelProperty("进出状态:0进1出")
private Integer scope;
@ApiModelProperty("进出位置")
private String deviceName;
@ApiModelProperty("图片链接")
private String picUrl;
}
@@ -0,0 +1,37 @@
package com.yida.data.attendance.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author ccl
*/
@Data
public class StaffRuleVO {
@ApiModelProperty("规则id")
private Long id;
@ApiModelProperty("规则名称")
private String name;
@ApiModelProperty("创建日期")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
@ApiModelProperty("创建人名称")
private String createName;
@ApiModelProperty("管理人员列表")
private List<Long> staffList;
@ApiModelProperty("管理人员列表")
private List<String> staffNameList;
}
@@ -0,0 +1,38 @@
package com.yida.data.attendance.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalTime;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class StaffTimeResultInfo {
@ApiModelProperty("应打卡时间")
@DateTimeFormat(pattern = "HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "HH:mm:ss")
private LocalTime startStiTime;
@ApiModelProperty("实际打卡时间")
@DateTimeFormat(pattern = "HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "HH:mm:ss")
private LocalTime startRealTime;
@ApiModelProperty("下班应打卡时间")
@DateTimeFormat(pattern = "HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "HH:mm:ss")
private LocalTime endStiTime;
@ApiModelProperty("实际打卡时间")
@DateTimeFormat(pattern = "HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "HH:mm:ss")
private LocalTime endRealTime;
@ApiModelProperty("考勤结果 0-正常,1-迟到,2-早退,3-旷工,4-迟到早退")
private Integer status;
}
@@ -0,0 +1,38 @@
package com.yida.data.attendance.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class StasticDormResultVO {
@ApiModelProperty("宿舍楼id")
private Long dormId;
@ApiModelProperty("宿舍楼名称")
private String dromName;
@ApiModelProperty("寝室id")
private Long dormRoomId;
@ApiModelProperty("寝室名称")
private String dormRoomName;
@ApiModelProperty("应归人数")
private Integer total;
@ApiModelProperty("晚归人数")
private Integer late;
@ApiModelProperty("旷宿人数")
private Integer notArrive;
@ApiModelProperty("在寝人数")
private Integer stay;
@ApiModelProperty("未归人数")
private Integer notStay;
@ApiModelProperty("是否已查寝,0-未查寝,1-已查寝")
private Integer verify;
}
@@ -0,0 +1,25 @@
package com.yida.data.attendance.vo;
import com.yida.data.common.core.entity.attendance.EduAttendanceStaffResult;
import java.time.LocalDate;
import java.util.List;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class StasticStaffExcepByDayVO {
@ApiModelProperty("出勤天列表")
private List<LocalDate> dayList;
@ApiModelProperty("迟到次数")
private List<EduAttendanceStaffResult> lateList;
@ApiModelProperty("早退列表")
private List<EduAttendanceStaffResult> leaveList;
@ApiModelProperty("旷工列表")
private List<EduAttendanceStaffResult> notArriveList;
}
@@ -0,0 +1,63 @@
package com.yida.data.attendance.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yida.data.common.core.converter.LocalDateConverter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
@ApiModel("按日统计教职工考勤数据")
@Data
public class StasticStaffResultByDayVO {
@ApiModelProperty("部门")
@ExcelProperty("部门")
private String deptName;
@ApiModelProperty("教职工id")
@ExcelIgnore
private Long staffId;
@ApiModelProperty("姓名")
@ExcelProperty("姓名")
private String staffName;
@ApiModelProperty("手机号")
@ExcelProperty("手机号")
private String mobile;
@ApiModelProperty("规则")
@ExcelProperty("当前所属打卡规则")
private String ruleName;
@ApiModelProperty("日期")
@ExcelProperty(value = "日期", converter = LocalDateConverter.class)
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
private LocalDate date;
@ApiModelProperty("星期")
@ExcelProperty("星期")
private String week;
@ApiModelProperty("正常次数")
@ExcelProperty("正常次数")
private Integer normalNum;
@ApiModelProperty("迟到次数")
@ExcelProperty({"考勤统计,迟到次数"})
private Integer lateNum;
@ApiModelProperty("早退次数")
@ExcelProperty({"考勤统计,早退次数"})
private Integer leaveNum;
@ApiModelProperty("旷工次数")
@ExcelProperty({"考勤统计,旷工次数"})
private Integer notArriveNum;
}
@@ -0,0 +1,49 @@
package com.yida.data.attendance.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("按月统计教职工考勤数据")
@Data
public class StasticStaffResultByMonthVO {
@ApiModelProperty("部门")
@ExcelProperty("部门")
private String deptName;
@ApiModelProperty("教职工id")
@ExcelIgnore
private Long staffId;
@ApiModelProperty("姓名")
@ExcelProperty("姓名")
private String staffName;
@ApiModelProperty("手机号")
@ExcelProperty("手机号")
private String mobile;
@ApiModelProperty("规则")
@ExcelProperty("当前所属打卡规则")
private String ruleName;
@ApiModelProperty("正常天数")
@ExcelProperty("正常天数")
private Integer normalNum;
@ApiModelProperty("迟到次数")
@ExcelProperty({"考勤统计,迟到天数"})
private Integer lateNum;
@ApiModelProperty("早退次数")
@ExcelProperty({"考勤统计,早退天数"})
private Integer leaveNum;
@ApiModelProperty("旷工次数")
@ExcelProperty({"考勤统计,旷工天数"})
private Integer notArriveNum;
}
@@ -0,0 +1,35 @@
package com.yida.data.attendance.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("住宿学生考勤记录")
@Data
public class StayStudentResultVO {
@ApiModelProperty("学生头像")
private String avatar;
@ApiModelProperty("学号")
private String studentNumber;
@ApiModelProperty("学生id")
private Long studentId;
@ApiModelProperty("学生姓名")
private String studentName;
@ApiModelProperty("寝室名称")
private String dormRoomName;
@ApiModelProperty("考勤结果")
private String result;
@ApiModelProperty("归寝状态,0-在寝,1-未归")
private Integer status;
@ApiModelProperty("归寝时间")
@DateTimeFormat(pattern = "HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "HH:mm:ss")
private LocalTime time;
}
@@ -0,0 +1,33 @@
package com.yida.data.attendance.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("学生考勤信息")
public class StudentInfoVO {
@ApiModelProperty("学生id")
private Long studentId;
@ApiModelProperty("学生姓名")
private String name;
@ApiModelProperty("学生头像")
private String avatar;
@ApiModelProperty("考勤时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime time;
@ApiModelProperty("学生类型,0-走读,1-住宿")
private Integer type;
@ApiModelProperty("考勤结果,状态,0-正常,1-迟到,2-早退,3-迟到早退,4-未到,")
private Integer result;
}
@@ -0,0 +1,66 @@
package com.yida.data.attendance.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("教师端考勤记录")
public class TeacherStasticVO {
@ApiModelProperty("考勤天数")
private Integer attendanceDateNum;
@ApiModelProperty("实到人数")
private Integer realNum;
@ApiModelProperty("应到人数/总人数")
private Integer shouldNum;
@ApiModelProperty("迟到人数")
private Integer lateStudentNum;
@ApiModelProperty("晚归人数")
private Integer dormLateStudentNum;
@ApiModelProperty("异常晚归人数")
private Integer dormLateExpStudentNum;
@ApiModelProperty("旷宿人数")
private Integer dormNotArriveStudentNum;
@ApiModelProperty("旷课人数")
private Integer notArriveStudentNum;
@ApiModelProperty("早退人数")
private Integer leaveStudentNum;
@ApiModelProperty("请假人数")
private Integer requestStudentNum;
@ApiModelProperty("迟到次数")
private Integer lateNum;
@ApiModelProperty("旷课次数")
private Integer notArriveNum;
@ApiModelProperty("早退次数")
private Integer leaveNum;
@ApiModelProperty("请假次数")
private Integer requestNum;
@ApiModelProperty("类型:0上学考勤统计,1宿舍考勤统计")
private Integer type;
List<StudentInfoVO> normalStudentList;
List<StudentInfoVO> lateStudentList;
List<StudentInfoVO> leaveStudentList;
List<StudentInfoVO> notArriveStudentList;
List<StudentInfoVO> requestStudentList;
List<StudentInfoVO> dormLateStudentList;
List<StudentInfoVO> dormLateExpStudentList;
List<StudentInfoVO> dormNotArriveStudentList;
}
@@ -0,0 +1,6 @@
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.yida.data.attendance.fallback.RemoteAttendanceDeviceServiceFallback,\
com.yida.data.attendance.fallback.RemoteAttendanceNoticeServiceFallback,\
com.yida.data.attendance.fallback.RemoteAttendanceResultServiceFallback,\
com.yida.data.attendance.fallback.RemoteAttendanceRuleServiceFallback