Merge branch '0.8.X' of https://gitee.com/hdka/klp-oa into 0.8.X

This commit is contained in:
砂糖
2026-01-17 10:55:51 +08:00
11 changed files with 228 additions and 2 deletions

View File

@@ -21,6 +21,8 @@ import com.klp.domain.vo.WmsLeaveRequestVo;
import com.klp.domain.bo.WmsLeaveRequestBo; import com.klp.domain.bo.WmsLeaveRequestBo;
import com.klp.service.IWmsLeaveRequestService; import com.klp.service.IWmsLeaveRequestService;
import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.page.TableDataInfo;
import java.util.List;
import java.util.Map;
/** /**
* 员工请假申请 * 员工请假申请
@@ -96,4 +98,28 @@ public class WmsLeaveRequestController extends BaseController {
@PathVariable Long[] leaveIds) { @PathVariable Long[] leaveIds) {
return toAjax(iWmsLeaveRequestService.deleteWithValidByIds(Arrays.asList(leaveIds), true)); return toAjax(iWmsLeaveRequestService.deleteWithValidByIds(Arrays.asList(leaveIds), true));
} }
/**
* 请假统计报表 - 按请假类型统计
*/
@GetMapping("/report/leaveType")
public R<List<Map<String, Object>>> getLeaveTypeReport(WmsLeaveRequestBo bo) {
return R.ok(iWmsLeaveRequestService.getLeaveTypeReport(bo));
}
/**
* 请假统计报表 - 按部门统计
*/
@GetMapping("/report/dept")
public R<List<Map<String, Object>>> getLeaveDeptReport(WmsLeaveRequestBo bo) {
return R.ok(iWmsLeaveRequestService.getLeaveDeptReport(bo));
}
/**
* 请假统计报表 - 按月份统计
*/
@GetMapping("/report/monthly")
public R<List<Map<String, Object>>> getLeaveMonthlyReport(WmsLeaveRequestBo bo) {
return R.ok(iWmsLeaveRequestService.getLeaveMonthlyReport(bo));
}
} }

View File

@@ -21,6 +21,8 @@ import com.klp.domain.vo.WmsMealReportVo;
import com.klp.domain.bo.WmsMealReportBo; import com.klp.domain.bo.WmsMealReportBo;
import com.klp.service.IWmsMealReportService; import com.klp.service.IWmsMealReportService;
import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.page.TableDataInfo;
import java.util.List;
import java.util.Map;
/** /**
* 部门报餐主 * 部门报餐主
@@ -96,4 +98,28 @@ public class WmsMealReportController extends BaseController {
@PathVariable Long[] reportIds) { @PathVariable Long[] reportIds) {
return toAjax(iWmsMealReportService.deleteWithValidByIds(Arrays.asList(reportIds), true)); return toAjax(iWmsMealReportService.deleteWithValidByIds(Arrays.asList(reportIds), true));
} }
/**
* 报餐统计报表 - 按餐别统计
*/
@GetMapping("/report/mealType")
public R<List<Map<String, Object>>> getMealTypeReport(WmsMealReportBo bo) {
return R.ok(iWmsMealReportService.getMealTypeReport(bo));
}
/**
* 报餐统计报表 - 按部门统计
*/
@GetMapping("/report/dept")
public R<List<Map<String, Object>>> getMealDeptReport(WmsMealReportBo bo) {
return R.ok(iWmsMealReportService.getMealDeptReport(bo));
}
/**
* 报餐统计报表 - 按日期统计
*/
@GetMapping("/report/date")
public R<List<Map<String, Object>>> getMealDateReport(WmsMealReportBo bo) {
return R.ok(iWmsMealReportService.getMealDateReport(bo));
}
} }

View File

@@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat; import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert; import com.klp.common.convert.ExcelDictConvert;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
@@ -18,7 +19,7 @@ import lombok.Data;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
public class WmsLeaveRequestVo { public class WmsLeaveRequestVo extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -166,4 +166,7 @@ public class WmsMaterialCoilExportVo {
* 更新时间(仅临时存储,不导出,用于发货时间为空时兜底) * 更新时间(仅临时存储,不导出,用于发货时间为空时兜底)
*/ */
private Date updateTime; private Date updateTime;
// 数据类型
private Integer dataType;
} }

View File

@@ -6,6 +6,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat; import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert; import com.klp.common.convert.ExcelDictConvert;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
@@ -17,7 +18,7 @@ import lombok.Data;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
public class WmsMealReportVo { public class WmsMealReportVo extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -8,6 +8,7 @@ import com.klp.common.core.domain.PageQuery;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 员工请假申请Service接口 * 员工请假申请Service接口
@@ -46,4 +47,19 @@ public interface IWmsLeaveRequestService {
* 校验并批量删除员工请假申请信息 * 校验并批量删除员工请假申请信息
*/ */
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 请假统计报表 - 按请假类型统计
*/
List<Map<String, Object>> getLeaveTypeReport(WmsLeaveRequestBo bo);
/**
* 请假统计报表 - 按部门统计
*/
List<Map<String, Object>> getLeaveDeptReport(WmsLeaveRequestBo bo);
/**
* 请假统计报表 - 按月份统计
*/
List<Map<String, Object>> getLeaveMonthlyReport(WmsLeaveRequestBo bo);
} }

View File

@@ -8,6 +8,7 @@ import com.klp.common.core.domain.PageQuery;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 部门报餐主Service接口 * 部门报餐主Service接口
@@ -46,4 +47,19 @@ public interface IWmsMealReportService {
* 校验并批量删除部门报餐主信息 * 校验并批量删除部门报餐主信息
*/ */
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid); Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 报餐统计报表 - 按餐别统计
*/
List<Map<String, Object>> getMealTypeReport(WmsMealReportBo bo);
/**
* 报餐统计报表 - 按部门统计
*/
List<Map<String, Object>> getMealDeptReport(WmsMealReportBo bo);
/**
* 报餐统计报表 - 按日期统计
*/
List<Map<String, Object>> getMealDateReport(WmsMealReportBo bo);
} }

View File

@@ -18,6 +18,8 @@ import com.klp.service.IWmsLeaveRequestService;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection; import java.util.Collection;
import java.util.Date;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
/** /**
* 员工请假申请Service业务层处理 * 员工请假申请Service业务层处理
@@ -115,4 +117,60 @@ public class WmsLeaveRequestServiceImpl implements IWmsLeaveRequestService {
} }
return baseMapper.deleteBatchIds(ids) > 0; return baseMapper.deleteBatchIds(ids) > 0;
} }
/**
* 请假统计报表 - 按请假类型统计
*/
@Override
public List<Map<String, Object>> getLeaveTypeReport(WmsLeaveRequestBo bo) {
QueryWrapper<WmsLeaveRequest> qw = new QueryWrapper<>();
qw.select("leave_type as type",
"COUNT(*) as count",
"SUM(leave_days) as total_days")
.eq(bo.getApplicantDeptName() != null, "applicant_dept_name", bo.getApplicantDeptName())
.ge(bo.getStartTime() != null, "start_time", bo.getStartTime())
.le(bo.getEndTime() != null, "end_time", bo.getEndTime())
.eq("del_flag", 0)
.groupBy("leave_type")
.orderByDesc("total_days");
return baseMapper.selectMaps(qw);
}
/**
* 请假统计报表 - 按部门统计
*/
@Override
public List<Map<String, Object>> getLeaveDeptReport(WmsLeaveRequestBo bo) {
QueryWrapper<WmsLeaveRequest> qw = new QueryWrapper<>();
qw.select("applicant_dept_name as dept_name",
"COUNT(*) as count",
"SUM(leave_days) as total_days")
.isNotNull("applicant_dept_name")
.eq(StringUtils.isNotBlank(bo.getLeaveType()), "leave_type", bo.getLeaveType())
.ge(bo.getStartTime() != null, "start_time", bo.getStartTime())
.le(bo.getEndTime() != null, "end_time", bo.getEndTime())
.eq("del_flag", 0)
.groupBy("applicant_dept_name")
.orderByDesc("total_days");
return baseMapper.selectMaps(qw);
}
/**
* 请假统计报表 - 按月份统计
*/
@Override
public List<Map<String, Object>> getLeaveMonthlyReport(WmsLeaveRequestBo bo) {
QueryWrapper<WmsLeaveRequest> qw = new QueryWrapper<>();
qw.select("DATE_FORMAT(start_time, '%Y-%m') as month",
"COUNT(*) as count",
"SUM(leave_days) as total_days")
.ge(bo.getStartTime() != null, "start_time", bo.getStartTime())
.le(bo.getEndTime() != null, "end_time", bo.getEndTime())
.eq(StringUtils.isNotBlank(bo.getLeaveType()), "leave_type", bo.getLeaveType())
.eq(bo.getApplicantDeptName() != null, "applicant_dept_name", bo.getApplicantDeptName())
.eq("del_flag", 0)
.groupBy("month")
.orderByAsc("month");
return baseMapper.selectMaps(qw);
}
} }

View File

@@ -2210,6 +2210,11 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
vo.setCreateTime(finalDate); vo.setCreateTime(finalDate);
} }
// 非1的情况保持原有create_time不变 // 非1的情况保持原有create_time不变
// 如果是dataType=0的历史数据将实际库区设置为null
if (vo.getDataType() != null && vo.getDataType() == 0) {
vo.setActualWarehouseName(null);
}
}); });
return wmsMaterialCoilExportVos; return wmsMaterialCoilExportVos;
} }

View File

@@ -18,6 +18,8 @@ import com.klp.service.IWmsMealReportService;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection; import java.util.Collection;
import java.util.Date;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
/** /**
* 部门报餐主Service业务层处理 * 部门报餐主Service业务层处理
@@ -113,4 +115,74 @@ public class WmsMealReportServiceImpl implements IWmsMealReportService {
} }
return baseMapper.deleteBatchIds(ids) > 0; return baseMapper.deleteBatchIds(ids) > 0;
} }
/**
* 报餐统计报表 - 按餐别统计
*/
@Override
public List<Map<String, Object>> getMealTypeReport(WmsMealReportBo bo) {
QueryWrapper<WmsMealReport> qw = new QueryWrapper<>();
qw.select("CASE meal_type " +
"WHEN 1 THEN '早餐' " +
"WHEN 2 THEN '午餐' " +
"WHEN 3 THEN '晚餐' " +
"WHEN 4 THEN '夜宵' " +
"ELSE '未知' END as meal_name",
"SUM(total_people) as total_people",
"SUM(dine_in_people) as total_dine_in",
"SUM(takeout_people) as total_takeout",
"COUNT(*) as report_count")
.eq(StringUtils.isNotBlank(bo.getDeptName()), "dept_name", bo.getDeptName())
.ge(bo.getReportDate() != null, "report_date", bo.getReportDate())
.le(bo.getReportDate() != null, "report_date", bo.getReportDate())
.eq("del_flag", 0)
.eq(bo.getStatus() != null, "status", bo.getStatus())
.groupBy("meal_type")
.orderByAsc("meal_type");
return baseMapper.selectMaps(qw);
}
/**
* 报餐统计报表 - 按部门统计
*/
@Override
public List<Map<String, Object>> getMealDeptReport(WmsMealReportBo bo) {
QueryWrapper<WmsMealReport> qw = new QueryWrapper<>();
qw.select("dept_name",
"SUM(total_people) as total_people",
"SUM(dine_in_people) as total_dine_in",
"SUM(takeout_people) as total_takeout",
"COUNT(*) as report_count",
"AVG(total_people) as avg_people")
.eq(bo.getMealType() != null, "meal_type", bo.getMealType())
.ge(bo.getReportDate() != null, "report_date", bo.getReportDate())
.le(bo.getReportDate() != null, "report_date", bo.getReportDate())
.eq("del_flag", 0)
.eq(bo.getStatus() != null, "status", bo.getStatus())
.groupBy("dept_name")
.orderByDesc("total_people");
return baseMapper.selectMaps(qw);
}
/**
* 报餐统计报表 - 按日期统计
*/
@Override
public List<Map<String, Object>> getMealDateReport(WmsMealReportBo bo) {
QueryWrapper<WmsMealReport> qw = new QueryWrapper<>();
qw.select("report_date",
"SUM(total_people) as total_people",
"SUM(dine_in_people) as total_dine_in",
"SUM(takeout_people) as total_takeout",
"COUNT(*) as report_count")
.eq(StringUtils.isNotBlank(bo.getDeptName()), "dept_name", bo.getDeptName())
.eq(bo.getMealType() != null, "meal_type", bo.getMealType())
.ge(bo.getReportDate() != null, "report_date", bo.getReportDate())
.le(bo.getReportDate() != null, "report_date", bo.getReportDate())
.eq("del_flag", 0)
.eq(bo.getStatus() != null, "status", bo.getStatus())
.groupBy("report_date")
.orderByAsc("report_date");
return baseMapper.selectMaps(qw);
}
} }

View File

@@ -350,6 +350,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
END AS itemTypeDesc, END AS itemTypeDesc,
-- 物品ID -- 物品ID
mc.item_id AS itemId, mc.item_id AS itemId,
-- 数据类型
mc.data_type AS dataType,
-- 逻辑库区 -- 逻辑库区
w.warehouse_name AS warehouseName, w.warehouse_name AS warehouseName,
-- 实际库区 -- 实际库区