|
|
@@ -7,6 +7,7 @@ import com.ctsi.entity.FramePage;
|
|
|
import com.ctsi.utils.ApiResult;
|
|
|
import com.ctsi.work.WorkAddr.entity.WorkAddr;
|
|
|
import com.ctsi.work.WorkAddr.service.WorkAddrService;
|
|
|
+import com.ctsi.work.WorkClock.entity.UserTodayWorkClockPO;
|
|
|
import com.ctsi.work.WorkClock.entity.WorkClock;
|
|
|
import com.ctsi.work.WorkClock.entity.WorkClockPO;
|
|
|
import com.ctsi.work.WorkClock.entity.WorkClockVO;
|
|
|
@@ -19,164 +20,200 @@ import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
|
|
|
/**
|
|
|
* 员工打卡表;(work_clock)表控制层
|
|
|
+ *
|
|
|
* @author : machaoyi
|
|
|
* @date : 2024-1-17
|
|
|
*/
|
|
|
@Api(tags = "员工打卡表对象功能接口")
|
|
|
@RestController
|
|
|
@RequestMapping("/workClock")
|
|
|
-public class WorkClockController{
|
|
|
+public class WorkClockController {
|
|
|
@Resource
|
|
|
private WorkClockService workClockService;
|
|
|
- @Resource
|
|
|
- private WorkAddrService workAddrService;
|
|
|
+ @Resource
|
|
|
+ private WorkAddrService workAddrService;
|
|
|
private static final Logger log = LoggerFactory.getLogger(WorkClockController.class);
|
|
|
-
|
|
|
- /**
|
|
|
- * 通过ID查询单条数据
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过ID查询单条数据
|
|
|
*
|
|
|
* @param id 主键
|
|
|
- * @return 实例对象
|
|
|
+ * @ return 实例对象
|
|
|
*/
|
|
|
@ApiOperation("通过ID查询单条数据")
|
|
|
@GetMapping("{id}")
|
|
|
- public ApiResult<WorkClock> queryById(Long id){
|
|
|
+ public ApiResult<WorkClock> queryById(@PathVariable Long id) {
|
|
|
try {
|
|
|
return ApiResult.success(workClockService.queryById(id));
|
|
|
} catch (Exception e) {
|
|
|
log.error(e.getMessage());
|
|
|
- return ApiResult.failure("查询失败",null);
|
|
|
+ return ApiResult.failure("查询失败", null);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- /**
|
|
|
+
|
|
|
+ /**
|
|
|
* 分页查询
|
|
|
*
|
|
|
* @param workClock 筛选条件
|
|
|
- * @return 查询结果
|
|
|
+ * @ return 查询结果
|
|
|
*/
|
|
|
@ApiOperation("分页查询")
|
|
|
@GetMapping
|
|
|
- public ApiResult<Page<WorkClockPO>> paginQuery(WorkClock workClock, FramePage framePage){
|
|
|
+ public ApiResult<Page<WorkClockPO>> paginQuery(WorkClock workClock, FramePage framePage) {
|
|
|
try {
|
|
|
return ApiResult.success(workClockService.paginQuery(workClock, framePage.getPageNum(), framePage.getPageSize()));
|
|
|
} catch (Exception e) {
|
|
|
log.error(e.getMessage());
|
|
|
- return ApiResult.failure("分页查询失败",null);
|
|
|
- }
|
|
|
+ return ApiResult.failure("分页查询失败", null);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 员工打卡记录
|
|
|
*
|
|
|
- * @param
|
|
|
- * @return 查询结果
|
|
|
+ * @param framePage
|
|
|
+ * @ return 查询结果
|
|
|
*/
|
|
|
@ApiOperation("员工打卡记录")
|
|
|
@GetMapping("/clockRecord")
|
|
|
- public ApiResult<Page<WorkClockPO>> clockRecord(FramePage framePage){
|
|
|
+ public ApiResult<Page<WorkClockPO>> clockRecord(FramePage framePage) {
|
|
|
try {
|
|
|
WorkClock workClock = new WorkClock();
|
|
|
workClock.setUserId(StpUtil.getLoginIdAsLong());
|
|
|
return ApiResult.success(workClockService.paginQuery(workClock, framePage.getPageNum(), framePage.getPageSize()));
|
|
|
} catch (Exception e) {
|
|
|
log.error(e.getMessage());
|
|
|
- return ApiResult.failure("分页查询失败",null);
|
|
|
+ return ApiResult.failure("分页查询失败", null);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- /**
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 今日打卡状态
|
|
|
+ * @ return 查询结果
|
|
|
+ */
|
|
|
+ @ApiOperation("今日打卡状态")
|
|
|
+ @GetMapping("/todayClock")
|
|
|
+ public ApiResult<List<UserTodayWorkClockPO>> todayClock() {
|
|
|
+ try {
|
|
|
+ WorkClock workClock = new WorkClock();
|
|
|
+ workClock.setUserId(StpUtil.getLoginIdAsLong());
|
|
|
+ List<UserTodayWorkClockPO> userTodayWorkClockPOList = new ArrayList<>();
|
|
|
+ List<WorkClock> workClockList = workClockService.getUserTodayClock(workClock);
|
|
|
+ for (int i = 1; i <= 2; i++) {
|
|
|
+ UserTodayWorkClockPO userTodayWorkClockPO = new UserTodayWorkClockPO();
|
|
|
+ userTodayWorkClockPO.setClockType(String.valueOf(i));
|
|
|
+ userTodayWorkClockPO.setClockStatus("0");
|
|
|
+ userTodayWorkClockPO.setClockTime(0L);
|
|
|
+ for (WorkClock workClock1 : workClockList) {
|
|
|
+ if (Objects.equals(workClock1.getClockType(), String.valueOf(i))) {
|
|
|
+ userTodayWorkClockPO.setClockStatus(workClock1.getClockStatus());
|
|
|
+ userTodayWorkClockPO.setClockTime(workClock1.getClockTime());
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ userTodayWorkClockPOList.add(userTodayWorkClockPO);
|
|
|
+ }
|
|
|
+ return ApiResult.success(userTodayWorkClockPOList);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(e.getMessage());
|
|
|
+ return ApiResult.failure("分页查询失败", null);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 新增数据
|
|
|
*
|
|
|
* @param workClock 实例对象
|
|
|
- * @return 实例对象
|
|
|
+ * @ return 实例对象
|
|
|
*/
|
|
|
@ApiOperation("新增数据")
|
|
|
@PostMapping
|
|
|
- public ApiResult add(@RequestBody WorkClock workClock){
|
|
|
+ public ApiResult<WorkClock> add(@RequestBody WorkClock workClock) {
|
|
|
+ try {
|
|
|
+ return workClockService.insert(workClock);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(e.getMessage());
|
|
|
+ return ApiResult.failure("新增数据失败", null);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 员工打卡接口
|
|
|
+ *
|
|
|
+ * @param workClockVO 实例对象
|
|
|
+ * @ return 实例对象
|
|
|
+ */
|
|
|
+ @ApiOperation("员工打卡接口")
|
|
|
+ @PostMapping("/clock")
|
|
|
+ public ApiResult<WorkClock> clock(@RequestBody WorkClockVO workClockVO) {
|
|
|
try {
|
|
|
+ WorkClock workClock = new WorkClock();
|
|
|
+ BeanUtils.copyProperties(workClockVO, workClock);
|
|
|
+ workClock.setUserId(StpUtil.getLoginIdAsLong());
|
|
|
+ workClock.setClockTime(DateUtil.current());
|
|
|
+ WorkAddr workAddr = workAddrService.queryById(workClockVO.getWorkAddrId());
|
|
|
+ if (workAddr == null) {
|
|
|
+ return ApiResult.failure("打卡地址不存在", null);
|
|
|
+ }
|
|
|
+ if (Objects.equals(workClockVO.getClockType(), "1")) {//打卡上班
|
|
|
+ Long inTime = DateUtil.beginOfDay(DateUtil.date()).getTime() + workAddr.getAddrIn();
|
|
|
+ if (workClock.getClockTime() <= inTime) {//打卡时间小于上班时间,正常
|
|
|
+ workClock.setClockStatus("1");
|
|
|
+ } else {//迟到
|
|
|
+ workClock.setClockStatus("2");
|
|
|
+ }
|
|
|
+ } else if (Objects.equals(workClockVO.getClockType(), "2")) {//打卡下班
|
|
|
+ Long quitTIme = DateUtil.beginOfDay(DateUtil.date()).getTime() + workAddr.getAddrQuit();
|
|
|
+ if (workClock.getClockTime() >= quitTIme) {//打卡时间大于下班时间,正常
|
|
|
+ workClock.setClockStatus("1");
|
|
|
+ } else {//早退
|
|
|
+ workClock.setClockStatus("3");
|
|
|
+ }
|
|
|
+ }
|
|
|
return workClockService.insert(workClock);
|
|
|
} catch (Exception e) {
|
|
|
log.error(e.getMessage());
|
|
|
- return ApiResult.failure("新增数据失败",null);
|
|
|
+ return ApiResult.failure("新增数据失败", null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 员工打卡接口
|
|
|
- *
|
|
|
- * @param workClockVO 实例对象
|
|
|
- * @return 实例对象
|
|
|
- */
|
|
|
- @ApiOperation("员工打卡接口")
|
|
|
- @PostMapping("/clock")
|
|
|
- public ApiResult clock(@RequestBody WorkClockVO workClockVO){
|
|
|
- try {
|
|
|
- WorkClock workClock = new WorkClock();
|
|
|
- BeanUtils.copyProperties(workClockVO,workClock);
|
|
|
- workClock.setUserId(StpUtil.getLoginIdAsLong());
|
|
|
- workClock.setClockTime(DateUtil.current());
|
|
|
- WorkAddr workAddr = workAddrService.queryById(workClockVO.getWorkAddrId());
|
|
|
- if (workAddr == null) {
|
|
|
- return ApiResult.failure("打卡地址不存在",null);
|
|
|
- }
|
|
|
- if (Objects.equals(workClockVO.getClockType(), "1")) {//打卡上班
|
|
|
- Long inTime = DateUtil.beginOfDay(DateUtil.date()).getTime() + workAddr.getAddrIn();
|
|
|
- if (workClock.getClockTime() <= inTime) {//打卡时间小于上班时间,正常
|
|
|
- workClock.setClockStatus("1");
|
|
|
- } else {//迟到
|
|
|
- workClock.setClockStatus("2");
|
|
|
- }
|
|
|
- } else if (Objects.equals(workClockVO.getClockType(), "2")) {//打卡下班
|
|
|
- Long quitTIme = DateUtil.beginOfDay(DateUtil.date()).getTime() + workAddr.getAddrQuit();
|
|
|
- if (workClock.getClockTime() >= quitTIme) {//打卡时间大于下班时间,正常
|
|
|
- workClock.setClockStatus("1");
|
|
|
- } else {//早退
|
|
|
- workClock.setClockStatus("3");
|
|
|
- }
|
|
|
- }
|
|
|
- return workClockService.insert(workClock);
|
|
|
- } catch (Exception e) {
|
|
|
- log.error(e.getMessage());
|
|
|
- return ApiResult.failure("新增数据失败",null);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
+ /**
|
|
|
* 更新数据
|
|
|
*
|
|
|
* @param workClock 实例对象
|
|
|
- * @return 实例对象
|
|
|
+ * @ return 实例对象
|
|
|
*/
|
|
|
@ApiOperation("更新数据")
|
|
|
@PutMapping
|
|
|
- public ApiResult<WorkClock> edit(@RequestBody WorkClock workClock){
|
|
|
+ public ApiResult<WorkClock> edit(@RequestBody WorkClock workClock) {
|
|
|
try {
|
|
|
return ApiResult.success(workClockService.update(workClock));
|
|
|
} catch (Exception e) {
|
|
|
log.error(e.getMessage());
|
|
|
- return ApiResult.failure("更新数据失败",null);
|
|
|
+ return ApiResult.failure("更新数据失败", null);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- /**
|
|
|
+
|
|
|
+ /**
|
|
|
* 通过主键删除数据
|
|
|
*
|
|
|
* @param id 主键
|
|
|
- * @return 是否成功
|
|
|
+ * @ return 是否成功
|
|
|
*/
|
|
|
@ApiOperation("通过主键删除数据")
|
|
|
@DeleteMapping
|
|
|
- public ApiResult<Boolean> deleteById(Long id){
|
|
|
+ public ApiResult<Boolean> deleteById(Long id) {
|
|
|
try {
|
|
|
return ApiResult.success(workClockService.deleteById(id));
|
|
|
} catch (Exception e) {
|
|
|
log.error(e.getMessage());
|
|
|
- return ApiResult.failure("删除数据失败",null);
|
|
|
+ return ApiResult.failure("删除数据失败", null);
|
|
|
}
|
|
|
}
|
|
|
}
|