考勤
This commit is contained in:
@ -13,13 +13,13 @@ spring.boot.admin.client:
|
|||||||
|
|
||||||
--- # snail-job 配置
|
--- # snail-job 配置
|
||||||
snail-job:
|
snail-job:
|
||||||
enabled: false
|
enabled: true
|
||||||
# 需要在 SnailJob 后台组管理创建对应名称的组,然后创建任务的时候选择对应的组,才能正确分派任务
|
# 需要在 SnailJob 后台组管理创建对应名称的组,然后创建任务的时候选择对应的组,才能正确分派任务
|
||||||
group: "ruoyi_group"
|
group: "ruoyi_group"
|
||||||
# SnailJob 接入验证令牌 详见 script/sql/ry_job.sql `sj_group_config` 表
|
# SnailJob 接入验证令牌 详见 script/sql/ry_job.sql `sj_group_config` 表
|
||||||
token: "SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT"
|
token: "SJ_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT"
|
||||||
server:
|
server:
|
||||||
host: 192.168.110.119
|
host: 127.0.0.1
|
||||||
port: 17888
|
port: 17888
|
||||||
# 命名空间UUID 详见 script/sql/ry_job.sql `sj_namespace`表`unique_id`字段
|
# 命名空间UUID 详见 script/sql/ry_job.sql `sj_namespace`表`unique_id`字段
|
||||||
namespace: ${spring.profiles.active}
|
namespace: ${spring.profiles.active}
|
||||||
|
@ -108,6 +108,11 @@
|
|||||||
<artifactId>ruoyi-common-doc</artifactId>
|
<artifactId>ruoyi-common-doc</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.dromara</groupId>
|
||||||
|
<artifactId>ruoyi-common-job</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.dromara</groupId>
|
<groupId>org.dromara</groupId>
|
||||||
<artifactId>ruoyi-common-mybatis</artifactId>
|
<artifactId>ruoyi-common-mybatis</artifactId>
|
||||||
|
@ -2,6 +2,7 @@ package org.dromara.job.attendance;
|
|||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.aizuda.snailjob.client.job.core.annotation.JobExecutor;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
@ -31,7 +32,7 @@ import java.time.LocalTime;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
//@Component
|
@Component
|
||||||
public class AttendanceJob {
|
public class AttendanceJob {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
@ -54,6 +55,7 @@ public class AttendanceJob {
|
|||||||
|
|
||||||
|
|
||||||
// @Scheduled(cron = "0 0/10 * * * ?")
|
// @Scheduled(cron = "0 0/10 * * * ?")
|
||||||
|
@JobExecutor(name = "clockInMiss")
|
||||||
public void clockInMiss() {
|
public void clockInMiss() {
|
||||||
|
|
||||||
log.info("执行定时任务:上班缺卡记录生成");
|
log.info("执行定时任务:上班缺卡记录生成");
|
||||||
@ -165,6 +167,7 @@ public class AttendanceJob {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// @Scheduled(cron = "0 0/10 * * * ?")
|
// @Scheduled(cron = "0 0/10 * * * ?")
|
||||||
|
@JobExecutor(name = "clockOutMiss")
|
||||||
public void clockOutMiss() {
|
public void clockOutMiss() {
|
||||||
log.info("执行定时任务:下班缺卡记录生成");
|
log.info("执行定时任务:下班缺卡记录生成");
|
||||||
|
|
||||||
|
@ -1,17 +1,20 @@
|
|||||||
package org.dromara.project.controller.app;
|
package org.dromara.project.controller.app;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import org.dromara.common.core.domain.R;
|
import org.dromara.common.core.domain.R;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.contractor.service.ISubConstructionUserService;
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
|
import org.dromara.project.domain.BusProjectPunchrange;
|
||||||
import org.dromara.project.domain.dto.attendance.BusAttendancePunchCardByFaceReq;
|
import org.dromara.project.domain.dto.attendance.BusAttendancePunchCardByFaceReq;
|
||||||
import org.dromara.project.domain.vo.BusAttendanceRuleVo;
|
import org.dromara.project.domain.vo.BusAttendanceRuleVo;
|
||||||
import org.dromara.project.domain.vo.BusAttendanceVo;
|
import org.dromara.project.domain.vo.BusAttendanceVo;
|
||||||
import org.dromara.project.domain.vo.BusMonthAttendanceVo;
|
import org.dromara.project.domain.vo.BusMonthAttendanceVo;
|
||||||
import org.dromara.project.service.IBusAttendanceRuleService;
|
import org.dromara.project.service.IBusAttendanceRuleService;
|
||||||
import org.dromara.project.service.IBusAttendanceService;
|
import org.dromara.project.service.IBusAttendanceService;
|
||||||
|
import org.dromara.project.service.IBusProjectPunchrangeService;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
@ -36,6 +39,10 @@ public class BusAttendanceAppController extends BaseController {
|
|||||||
@Resource
|
@Resource
|
||||||
private IBusAttendanceRuleService attendanceRuleService;
|
private IBusAttendanceRuleService attendanceRuleService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IBusProjectPunchrangeService projectPunchrangeService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 人脸坐标打卡
|
* 人脸坐标打卡
|
||||||
*/
|
*/
|
||||||
@ -62,11 +69,22 @@ public class BusAttendanceAppController extends BaseController {
|
|||||||
return R.ok(attendanceService.getPunchRangeByProjectIdAndUserId(projectId, userId));
|
return R.ok(attendanceService.getPunchRangeByProjectIdAndUserId(projectId, userId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询项目考勤范围规则
|
||||||
|
*/
|
||||||
|
@GetMapping("/punchRangeInfoList/{projectId}")
|
||||||
|
public R<List<BusProjectPunchrange>> infoList(@NotNull @PathVariable("projectId") Long projectId) {
|
||||||
|
List<BusProjectPunchrange> list = projectPunchrangeService.lambdaQuery().eq(BusProjectPunchrange::getProjectId, projectId).list();
|
||||||
|
return R.ok(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断是否在打卡范围内
|
* 判断是否在打卡范围内
|
||||||
*/
|
*/
|
||||||
@GetMapping("/checkInRange")
|
@PostMapping("/checkInRange")
|
||||||
public R<Boolean> checkInRange(BusAttendancePunchCardByFaceReq req) {
|
public R<Boolean> checkInRange(@RequestBody BusAttendancePunchCardByFaceReq req) {
|
||||||
return R.ok(attendanceService.checkInRange(req));
|
return R.ok(attendanceService.checkInRange(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ public class QltQualityInspectionCreateReq implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 整改人
|
* 整改人
|
||||||
*/
|
*/
|
||||||
private Long corrector_id;
|
private Long correctorId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 回复期限日期
|
* 回复期限日期
|
||||||
|
Reference in New Issue
Block a user