feat(wms): 添加员工请假申请和部门报餐主功能

- 创建员工请假申请相关实体类、业务对象、视图对象和映射文件
- 实现员工请假申请的增删改查和分页查询功能
- 创建部门报餐主相关实体类、业务对象、视图对象和映射文件
- 实现部门报餐主的增删改查和分页查询功能
- 添加相应的控制器和服务层实现
- 集成Excel导出功能
- 添加数据校验和业务逻辑处理
This commit is contained in:
2026-01-17 10:08:49 +08:00
parent 57a62fcf04
commit e8fc900a02
16 changed files with 1108 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
package com.klp.controller;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.klp.common.annotation.RepeatSubmit;
import com.klp.common.annotation.Log;
import com.klp.common.core.controller.BaseController;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.domain.vo.WmsLeaveRequestVo;
import com.klp.domain.bo.WmsLeaveRequestBo;
import com.klp.service.IWmsLeaveRequestService;
import com.klp.common.core.page.TableDataInfo;
/**
* 员工请假申请
*
* @author klp
* @date 2026-01-17
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/wms/leaveRequest")
public class WmsLeaveRequestController extends BaseController {
private final IWmsLeaveRequestService iWmsLeaveRequestService;
/**
* 查询员工请假申请列表
*/
@GetMapping("/list")
public TableDataInfo<WmsLeaveRequestVo> list(WmsLeaveRequestBo bo, PageQuery pageQuery) {
return iWmsLeaveRequestService.queryPageList(bo, pageQuery);
}
/**
* 导出员工请假申请列表
*/
@Log(title = "员工请假申请", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WmsLeaveRequestBo bo, HttpServletResponse response) {
List<WmsLeaveRequestVo> list = iWmsLeaveRequestService.queryList(bo);
ExcelUtil.exportExcel(list, "员工请假申请", WmsLeaveRequestVo.class, response);
}
/**
* 获取员工请假申请详细信息
*
* @param leaveId 主键
*/
@GetMapping("/{leaveId}")
public R<WmsLeaveRequestVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long leaveId) {
return R.ok(iWmsLeaveRequestService.queryById(leaveId));
}
/**
* 新增员工请假申请
*/
@Log(title = "员工请假申请", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsLeaveRequestBo bo) {
return toAjax(iWmsLeaveRequestService.insertByBo(bo));
}
/**
* 修改员工请假申请
*/
@Log(title = "员工请假申请", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsLeaveRequestBo bo) {
return toAjax(iWmsLeaveRequestService.updateByBo(bo));
}
/**
* 删除员工请假申请
*
* @param leaveIds 主键串
*/
@Log(title = "员工请假申请", businessType = BusinessType.DELETE)
@DeleteMapping("/{leaveIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] leaveIds) {
return toAjax(iWmsLeaveRequestService.deleteWithValidByIds(Arrays.asList(leaveIds), true));
}
}

View File

@@ -0,0 +1,99 @@
package com.klp.controller;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.klp.common.annotation.RepeatSubmit;
import com.klp.common.annotation.Log;
import com.klp.common.core.controller.BaseController;
import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.domain.R;
import com.klp.common.core.validate.AddGroup;
import com.klp.common.core.validate.EditGroup;
import com.klp.common.enums.BusinessType;
import com.klp.common.utils.poi.ExcelUtil;
import com.klp.domain.vo.WmsMealReportVo;
import com.klp.domain.bo.WmsMealReportBo;
import com.klp.service.IWmsMealReportService;
import com.klp.common.core.page.TableDataInfo;
/**
* 部门报餐主
*
* @author klp
* @date 2026-01-17
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/wms/mealReport")
public class WmsMealReportController extends BaseController {
private final IWmsMealReportService iWmsMealReportService;
/**
* 查询部门报餐主列表
*/
@GetMapping("/list")
public TableDataInfo<WmsMealReportVo> list(WmsMealReportBo bo, PageQuery pageQuery) {
return iWmsMealReportService.queryPageList(bo, pageQuery);
}
/**
* 导出部门报餐主列表
*/
@Log(title = "部门报餐主", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WmsMealReportBo bo, HttpServletResponse response) {
List<WmsMealReportVo> list = iWmsMealReportService.queryList(bo);
ExcelUtil.exportExcel(list, "部门报餐主", WmsMealReportVo.class, response);
}
/**
* 获取部门报餐主详细信息
*
* @param reportId 主键
*/
@GetMapping("/{reportId}")
public R<WmsMealReportVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long reportId) {
return R.ok(iWmsMealReportService.queryById(reportId));
}
/**
* 新增部门报餐主
*/
@Log(title = "部门报餐主", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsMealReportBo bo) {
return toAjax(iWmsMealReportService.insertByBo(bo));
}
/**
* 修改部门报餐主
*/
@Log(title = "部门报餐主", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsMealReportBo bo) {
return toAjax(iWmsMealReportService.updateByBo(bo));
}
/**
* 删除部门报餐主
*
* @param reportIds 主键串
*/
@Log(title = "部门报餐主", businessType = BusinessType.DELETE)
@DeleteMapping("/{reportIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] reportIds) {
return toAjax(iWmsMealReportService.deleteWithValidByIds(Arrays.asList(reportIds), true));
}
}

View File

@@ -0,0 +1,80 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 员工请假申请对象 wms_leave_request
*
* @author klp
* @date 2026-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_leave_request")
public class WmsLeaveRequest extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键ID
*/
@TableId(value = "leave_id")
private Long leaveId;
/**
* 请假标题
*/
private String leaveTitle;
/**
* 请假类型(年假/事假/病假/调休/外出/出差等)
*/
private String leaveType;
/**
* 请假人姓名
*/
private String applicantName;
/**
* 请假人部门名称
*/
private String applicantDeptName;
/**
* 请假开始时间
*/
private Date startTime;
/**
* 请假结束时间
*/
private Date endTime;
/**
* 请假班次(早班/中班/晚班/夜班/全天等)
*/
private String leaveShift;
/**
* 请假天数
*/
private BigDecimal leaveDays;
/**
* 请假原因
*/
private String leaveReason;
/**
* 附件(病假证明等)
*/
private String attachmentUrls;
/**
* 逻辑删除标识0=正常1=已删
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,71 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 部门报餐主对象 wms_meal_report
*
* @author klp
* @date 2026-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_meal_report")
public class WmsMealReport extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键ID
*/
@TableId(value = "report_id")
private Long reportId;
/**
* 用餐日期
*/
private Date reportDate;
/**
* 餐别1早餐 2午餐 3晚餐 4夜宵
*/
private Long mealType;
/**
* 部门名称
*/
private String deptName;
/**
* 用餐总人数
*/
private Long totalPeople;
/**
* 堂食人数
*/
private Long dineInPeople;
/**
* 打包人数
*/
private Long takeoutPeople;
/**
* 报餐人姓名
*/
private String reportUserName;
/**
* 状态1已提交 2已修改 3已作废
*/
private Long status;
/**
* 逻辑删除标识0=正常1=已删
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,84 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 员工请假申请业务对象 wms_leave_request
*
* @author klp
* @date 2026-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsLeaveRequestBo extends BaseEntity {
/**
* 主键ID
*/
private Long leaveId;
/**
* 请假标题
*/
private String leaveTitle;
/**
* 请假类型(年假/事假/病假/调休/外出/出差等)
*/
private String leaveType;
/**
* 请假人姓名
*/
private String applicantName;
/**
* 请假人部门名称
*/
private String applicantDeptName;
/**
* 请假开始时间
*/
private Date startTime;
/**
* 请假结束时间
*/
private Date endTime;
/**
* 请假班次(早班/中班/晚班/夜班/全天等)
*/
private String leaveShift;
/**
* 请假天数
*/
private BigDecimal leaveDays;
/**
* 请假原因
*/
private String leaveReason;
/**
* 附件(病假证明等)
*/
private String attachmentUrls;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,73 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 部门报餐主业务对象 wms_meal_report
*
* @author klp
* @date 2026-01-17
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsMealReportBo extends BaseEntity {
/**
* 主键ID
*/
private Long reportId;
/**
* 用餐日期
*/
private Date reportDate;
/**
* 餐别1早餐 2午餐 3晚餐 4夜宵
*/
private Long mealType;
/**
* 部门名称
*/
private String deptName;
/**
* 用餐总人数
*/
private Long totalPeople;
/**
* 堂食人数
*/
private Long dineInPeople;
/**
* 打包人数
*/
private Long takeoutPeople;
/**
* 报餐人姓名
*/
private String reportUserName;
/**
* 状态1已提交 2已修改 3已作废
*/
private Long status;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,101 @@
package com.klp.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 员工请假申请视图对象 wms_leave_request
*
* @author klp
* @date 2026-01-17
*/
@Data
@ExcelIgnoreUnannotated
public class WmsLeaveRequestVo {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long leaveId;
/**
* 请假标题
*/
@ExcelProperty(value = "请假标题")
private String leaveTitle;
/**
* 请假类型(年假/事假/病假/调休/外出/出差等)
*/
@ExcelProperty(value = "请假类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "年=假/事假/病假/调休/外出/出差等")
private String leaveType;
/**
* 请假人姓名
*/
@ExcelProperty(value = "请假人姓名")
private String applicantName;
/**
* 请假人部门名称
*/
@ExcelProperty(value = "请假人部门名称")
private String applicantDeptName;
/**
* 请假开始时间
*/
@ExcelProperty(value = "请假开始时间")
private Date startTime;
/**
* 请假结束时间
*/
@ExcelProperty(value = "请假结束时间")
private Date endTime;
/**
* 请假班次(早班/中班/晚班/夜班/全天等)
*/
@ExcelProperty(value = "请假班次", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "早=班/中班/晚班/夜班/全天等")
private String leaveShift;
/**
* 请假天数
*/
@ExcelProperty(value = "请假天数")
private BigDecimal leaveDays;
/**
* 请假原因
*/
@ExcelProperty(value = "请假原因")
private String leaveReason;
/**
* 附件(病假证明等)
*/
@ExcelProperty(value = "附件", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "病=假证明等")
private String attachmentUrls;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,85 @@
package com.klp.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 部门报餐主视图对象 wms_meal_report
*
* @author klp
* @date 2026-01-17
*/
@Data
@ExcelIgnoreUnannotated
public class WmsMealReportVo {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long reportId;
/**
* 用餐日期
*/
@ExcelProperty(value = "用餐日期")
private Date reportDate;
/**
* 餐别1早餐 2午餐 3晚餐 4夜宵
*/
@ExcelProperty(value = "餐别1早餐 2午餐 3晚餐 4夜宵")
private Long mealType;
/**
* 部门名称
*/
@ExcelProperty(value = "部门名称")
private String deptName;
/**
* 用餐总人数
*/
@ExcelProperty(value = "用餐总人数")
private Long totalPeople;
/**
* 堂食人数
*/
@ExcelProperty(value = "堂食人数")
private Long dineInPeople;
/**
* 打包人数
*/
@ExcelProperty(value = "打包人数")
private Long takeoutPeople;
/**
* 报餐人姓名
*/
@ExcelProperty(value = "报餐人姓名")
private String reportUserName;
/**
* 状态1已提交 2已修改 3已作废
*/
@ExcelProperty(value = "状态1已提交 2已修改 3已作废")
private Long status;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,15 @@
package com.klp.mapper;
import com.klp.domain.WmsLeaveRequest;
import com.klp.domain.vo.WmsLeaveRequestVo;
import com.klp.common.core.mapper.BaseMapperPlus;
/**
* 员工请假申请Mapper接口
*
* @author klp
* @date 2026-01-17
*/
public interface WmsLeaveRequestMapper extends BaseMapperPlus<WmsLeaveRequestMapper, WmsLeaveRequest, WmsLeaveRequestVo> {
}

View File

@@ -0,0 +1,15 @@
package com.klp.mapper;
import com.klp.domain.WmsMealReport;
import com.klp.domain.vo.WmsMealReportVo;
import com.klp.common.core.mapper.BaseMapperPlus;
/**
* 部门报餐主Mapper接口
*
* @author klp
* @date 2026-01-17
*/
public interface WmsMealReportMapper extends BaseMapperPlus<WmsMealReportMapper, WmsMealReport, WmsMealReportVo> {
}

View File

@@ -0,0 +1,49 @@
package com.klp.service;
import com.klp.domain.WmsLeaveRequest;
import com.klp.domain.vo.WmsLeaveRequestVo;
import com.klp.domain.bo.WmsLeaveRequestBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 员工请假申请Service接口
*
* @author klp
* @date 2026-01-17
*/
public interface IWmsLeaveRequestService {
/**
* 查询员工请假申请
*/
WmsLeaveRequestVo queryById(Long leaveId);
/**
* 查询员工请假申请列表
*/
TableDataInfo<WmsLeaveRequestVo> queryPageList(WmsLeaveRequestBo bo, PageQuery pageQuery);
/**
* 查询员工请假申请列表
*/
List<WmsLeaveRequestVo> queryList(WmsLeaveRequestBo bo);
/**
* 新增员工请假申请
*/
Boolean insertByBo(WmsLeaveRequestBo bo);
/**
* 修改员工请假申请
*/
Boolean updateByBo(WmsLeaveRequestBo bo);
/**
* 校验并批量删除员工请假申请信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.klp.service;
import com.klp.domain.WmsMealReport;
import com.klp.domain.vo.WmsMealReportVo;
import com.klp.domain.bo.WmsMealReportBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 部门报餐主Service接口
*
* @author klp
* @date 2026-01-17
*/
public interface IWmsMealReportService {
/**
* 查询部门报餐主
*/
WmsMealReportVo queryById(Long reportId);
/**
* 查询部门报餐主列表
*/
TableDataInfo<WmsMealReportVo> queryPageList(WmsMealReportBo bo, PageQuery pageQuery);
/**
* 查询部门报餐主列表
*/
List<WmsMealReportVo> queryList(WmsMealReportBo bo);
/**
* 新增部门报餐主
*/
Boolean insertByBo(WmsMealReportBo bo);
/**
* 修改部门报餐主
*/
Boolean updateByBo(WmsMealReportBo bo);
/**
* 校验并批量删除部门报餐主信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,118 @@
package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsLeaveRequestBo;
import com.klp.domain.vo.WmsLeaveRequestVo;
import com.klp.domain.WmsLeaveRequest;
import com.klp.mapper.WmsLeaveRequestMapper;
import com.klp.service.IWmsLeaveRequestService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 员工请假申请Service业务层处理
*
* @author klp
* @date 2026-01-17
*/
@RequiredArgsConstructor
@Service
public class WmsLeaveRequestServiceImpl implements IWmsLeaveRequestService {
private final WmsLeaveRequestMapper baseMapper;
/**
* 查询员工请假申请
*/
@Override
public WmsLeaveRequestVo queryById(Long leaveId){
return baseMapper.selectVoById(leaveId);
}
/**
* 查询员工请假申请列表
*/
@Override
public TableDataInfo<WmsLeaveRequestVo> queryPageList(WmsLeaveRequestBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsLeaveRequest> lqw = buildQueryWrapper(bo);
Page<WmsLeaveRequestVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询员工请假申请列表
*/
@Override
public List<WmsLeaveRequestVo> queryList(WmsLeaveRequestBo bo) {
LambdaQueryWrapper<WmsLeaveRequest> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsLeaveRequest> buildQueryWrapper(WmsLeaveRequestBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsLeaveRequest> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getLeaveTitle()), WmsLeaveRequest::getLeaveTitle, bo.getLeaveTitle());
lqw.eq(StringUtils.isNotBlank(bo.getLeaveType()), WmsLeaveRequest::getLeaveType, bo.getLeaveType());
lqw.like(StringUtils.isNotBlank(bo.getApplicantName()), WmsLeaveRequest::getApplicantName, bo.getApplicantName());
lqw.like(StringUtils.isNotBlank(bo.getApplicantDeptName()), WmsLeaveRequest::getApplicantDeptName, bo.getApplicantDeptName());
lqw.eq(bo.getStartTime() != null, WmsLeaveRequest::getStartTime, bo.getStartTime());
lqw.eq(bo.getEndTime() != null, WmsLeaveRequest::getEndTime, bo.getEndTime());
lqw.eq(StringUtils.isNotBlank(bo.getLeaveShift()), WmsLeaveRequest::getLeaveShift, bo.getLeaveShift());
lqw.eq(bo.getLeaveDays() != null, WmsLeaveRequest::getLeaveDays, bo.getLeaveDays());
lqw.eq(StringUtils.isNotBlank(bo.getLeaveReason()), WmsLeaveRequest::getLeaveReason, bo.getLeaveReason());
lqw.eq(StringUtils.isNotBlank(bo.getAttachmentUrls()), WmsLeaveRequest::getAttachmentUrls, bo.getAttachmentUrls());
return lqw;
}
/**
* 新增员工请假申请
*/
@Override
public Boolean insertByBo(WmsLeaveRequestBo bo) {
WmsLeaveRequest add = BeanUtil.toBean(bo, WmsLeaveRequest.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setLeaveId(add.getLeaveId());
}
return flag;
}
/**
* 修改员工请假申请
*/
@Override
public Boolean updateByBo(WmsLeaveRequestBo bo) {
WmsLeaveRequest update = BeanUtil.toBean(bo, WmsLeaveRequest.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsLeaveRequest entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除员工请假申请
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,116 @@
package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsMealReportBo;
import com.klp.domain.vo.WmsMealReportVo;
import com.klp.domain.WmsMealReport;
import com.klp.mapper.WmsMealReportMapper;
import com.klp.service.IWmsMealReportService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 部门报餐主Service业务层处理
*
* @author klp
* @date 2026-01-17
*/
@RequiredArgsConstructor
@Service
public class WmsMealReportServiceImpl implements IWmsMealReportService {
private final WmsMealReportMapper baseMapper;
/**
* 查询部门报餐主
*/
@Override
public WmsMealReportVo queryById(Long reportId){
return baseMapper.selectVoById(reportId);
}
/**
* 查询部门报餐主列表
*/
@Override
public TableDataInfo<WmsMealReportVo> queryPageList(WmsMealReportBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsMealReport> lqw = buildQueryWrapper(bo);
Page<WmsMealReportVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询部门报餐主列表
*/
@Override
public List<WmsMealReportVo> queryList(WmsMealReportBo bo) {
LambdaQueryWrapper<WmsMealReport> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsMealReport> buildQueryWrapper(WmsMealReportBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsMealReport> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getReportDate() != null, WmsMealReport::getReportDate, bo.getReportDate());
lqw.eq(bo.getMealType() != null, WmsMealReport::getMealType, bo.getMealType());
lqw.like(StringUtils.isNotBlank(bo.getDeptName()), WmsMealReport::getDeptName, bo.getDeptName());
lqw.eq(bo.getTotalPeople() != null, WmsMealReport::getTotalPeople, bo.getTotalPeople());
lqw.eq(bo.getDineInPeople() != null, WmsMealReport::getDineInPeople, bo.getDineInPeople());
lqw.eq(bo.getTakeoutPeople() != null, WmsMealReport::getTakeoutPeople, bo.getTakeoutPeople());
lqw.like(StringUtils.isNotBlank(bo.getReportUserName()), WmsMealReport::getReportUserName, bo.getReportUserName());
lqw.eq(bo.getStatus() != null, WmsMealReport::getStatus, bo.getStatus());
return lqw;
}
/**
* 新增部门报餐主
*/
@Override
public Boolean insertByBo(WmsMealReportBo bo) {
WmsMealReport add = BeanUtil.toBean(bo, WmsMealReport.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setReportId(add.getReportId());
}
return flag;
}
/**
* 修改部门报餐主
*/
@Override
public Boolean updateByBo(WmsMealReportBo bo) {
WmsMealReport update = BeanUtil.toBean(bo, WmsMealReport.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsMealReport entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除部门报餐主
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.klp.mapper.WmsLeaveRequestMapper">
<resultMap type="com.klp.domain.WmsLeaveRequest" id="WmsLeaveRequestResult">
<result property="leaveId" column="leave_id"/>
<result property="leaveTitle" column="leave_title"/>
<result property="leaveType" column="leave_type"/>
<result property="applicantName" column="applicant_name"/>
<result property="applicantDeptName" column="applicant_dept_name"/>
<result property="startTime" column="start_time"/>
<result property="endTime" column="end_time"/>
<result property="leaveShift" column="leave_shift"/>
<result property="leaveDays" column="leave_days"/>
<result property="leaveReason" column="leave_reason"/>
<result property="attachmentUrls" column="attachment_urls"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.klp.mapper.WmsMealReportMapper">
<resultMap type="com.klp.domain.WmsMealReport" id="WmsMealReportResult">
<result property="reportId" column="report_id"/>
<result property="reportDate" column="report_date"/>
<result property="mealType" column="meal_type"/>
<result property="deptName" column="dept_name"/>
<result property="totalPeople" column="total_people"/>
<result property="dineInPeople" column="dine_in_people"/>
<result property="takeoutPeople" column="takeout_people"/>
<result property="reportUserName" column="report_user_name"/>
<result property="status" column="status"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
<result property="delFlag" column="del_flag"/>
<result property="remark" column="remark"/>
</resultMap>
</mapper>