feat(attendance): 添加考勤检查数据更新功能

- 在 IWmsAttendanceCheckService 中新增 updateByBo 方法
- 扩展 WmsAttendanceCheckBo 类继承 BaseEntity 并添加多个考勤字段
- 添加考勤状态、迟到早退分钟数、扣款金额等相关属性
- 在控制器中实现 PUT 请求的编辑接口
- 添加 EditGroup 验证组支持
- 实现服务层 updateByBo 方法进行数据库更新操作
This commit is contained in:
2026-05-15 13:13:34 +08:00
parent 0e7048f043
commit c5c478b1e9
4 changed files with 40 additions and 1 deletions

View File

@@ -5,6 +5,7 @@ import com.klp.common.core.controller.BaseController;
import com.klp.common.core.domain.PageQuery; import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.domain.R; import com.klp.common.core.domain.R;
import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType; import com.klp.common.enums.BusinessType;
import com.klp.domain.bo.AttendanceCheckBo; import com.klp.domain.bo.AttendanceCheckBo;
import com.klp.domain.bo.WmsAttendanceCheckBo; import com.klp.domain.bo.WmsAttendanceCheckBo;
@@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@@ -55,4 +57,10 @@ public class WmsAttendanceCheckController extends BaseController {
iWmsAttendanceCheckService.checkAttendance(bo); iWmsAttendanceCheckService.checkAttendance(bo);
return R.ok(); return R.ok();
} }
@Log(title = "考勤比对", businessType = BusinessType.UPDATE)
@PutMapping
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsAttendanceCheckBo bo) {
return toAjax(iWmsAttendanceCheckService.updateByBo(bo));
}
} }

View File

@@ -1,14 +1,19 @@
package com.klp.domain.bo; package com.klp.domain.bo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@Data @Data
public class WmsAttendanceCheckBo { @EqualsAndHashCode(callSuper = true)
public class WmsAttendanceCheckBo extends BaseEntity {
private Long checkId;
private Long userId; private Long userId;
private String employeeName; private String employeeName;
private Long shiftId; private Long shiftId;
@@ -20,4 +25,20 @@ public class WmsAttendanceCheckBo {
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endDate; private Date endDate;
private Integer p1LateMinutes;
private Integer p1EarlyMinutes;
private String p1Status;
private BigDecimal p1Deduct;
private Integer p2LateMinutes;
private Integer p2EarlyMinutes;
private String p2Status;
private BigDecimal p2Deduct;
private String absentType;
private Integer continuousAbsentDays;
private BigDecimal totalDeduct;
private String overallStatus;
private String remark;
} }

View File

@@ -20,4 +20,6 @@ public interface IWmsAttendanceCheckService {
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
void checkAttendance(AttendanceCheckBo bo); void checkAttendance(AttendanceCheckBo bo);
Boolean updateByBo(WmsAttendanceCheckBo bo);
} }

View File

@@ -1,5 +1,6 @@
package com.klp.service.impl; package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -77,6 +78,13 @@ public class WmsAttendanceCheckServiceImpl implements IWmsAttendanceCheckService
return baseMapper.deleteBatchIds(ids) > 0; return baseMapper.deleteBatchIds(ids) > 0;
} }
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(WmsAttendanceCheckBo bo) {
WmsAttendanceCheck update = BeanUtil.toBean(bo, WmsAttendanceCheck.class);
return baseMapper.updateById(update) > 0;
}
private LambdaQueryWrapper<WmsAttendanceCheck> buildQueryWrapper(WmsAttendanceCheckBo bo) { private LambdaQueryWrapper<WmsAttendanceCheck> buildQueryWrapper(WmsAttendanceCheckBo bo) {
LambdaQueryWrapper<WmsAttendanceCheck> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<WmsAttendanceCheck> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getUserId() != null, WmsAttendanceCheck::getUserId, bo.getUserId()); lqw.eq(bo.getUserId() != null, WmsAttendanceCheck::getUserId, bo.getUserId());