liyong
6 天以前 225af805387e665f6bf38692e83fb52ac4416ba2
feat(stock): 添加批号字段并优化出入库记录导出功能

- 在StockInRecordExportData中新增批号字段
- 在StockInventoryExportData中新增批号字段
- 在StockOutRecordExportData中新增批号字段并修复出库数量字段名
- 在StockUnInventoryExportData中新增批号字段
- 优化入库和出库时间字段的Excel格式配置
- 统一所有导出数据类中的批号字段定义
已修改2个文件
92 ■■■■■ 文件已修改
src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/staff/dto/StaffOnJobExcelDto.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java
@@ -1,12 +1,15 @@
package com.ruoyi.common.utils.reflect;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Date;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate;
import org.apache.poi.ss.usermodel.DateUtil;
@@ -193,22 +196,55 @@
                    {
                        args[i] = Convert.toFloat(args[i]);
                    }
                    else if (cs[i] == Date.class)
                    {
                        if (args[i] instanceof String)
                        {
                            args[i] = DateUtils.parseDate(args[i]);
                    else if (cs[i] == Date.class)
                    {
                        if (args[i] instanceof String)
                        {
                            args[i] = DateUtils.parseDate(args[i]);
                        }
                        else
                        {
                            args[i] = DateUtil.getJavaDate((Double) args[i]);
                        }
                    }
                    else if (cs[i] == boolean.class || cs[i] == Boolean.class)
                    {
                        args[i] = Convert.toBool(args[i]);
                    }
                }
                        {
                            args[i] = DateUtil.getJavaDate((Double) args[i]);
                        }
                    }
                    else if (cs[i] == LocalDate.class)
                    {
                        if (args[i] instanceof String)
                        {
                            Date date = DateUtils.parseDate(args[i]);
                            args[i] = date == null ? null : DateUtils.toLocalDate(date);
                        }
                        else if (args[i] instanceof Date)
                        {
                            args[i] = DateUtils.toLocalDate((Date) args[i]);
                        }
                        else if (args[i] instanceof Double)
                        {
                            args[i] = DateUtils.toLocalDate(DateUtil.getJavaDate((Double) args[i]));
                        }
                    }
                    else if (cs[i] == LocalDateTime.class)
                    {
                        if (args[i] instanceof String)
                        {
                            Date date = DateUtils.parseDate(args[i]);
                            args[i] = date == null ? null : LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
                        }
                        else if (args[i] instanceof Date)
                        {
                            args[i] = LocalDateTime.ofInstant(((Date) args[i]).toInstant(), ZoneId.systemDefault());
                        }
                        else if (args[i] instanceof Double)
                        {
                            Date date = DateUtil.getJavaDate((Double) args[i]);
                            args[i] = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
                        }
                    }
                    else if (cs[i] == boolean.class || cs[i] == Boolean.class)
                    {
                        args[i] = Convert.toBool(args[i]);
                    }
                }
            }
            return (E) method.invoke(obj, args);
        }
src/main/java/com/ruoyi/staff/dto/StaffOnJobExcelDto.java
@@ -1,20 +1,12 @@
package com.ruoyi.staff.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.staff.pojo.StaffEducation;
import com.ruoyi.staff.pojo.StaffEmergencyContact;
import com.ruoyi.staff.pojo.StaffWorkExperience;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@Data
public class StaffOnJobExcelDto {
@@ -62,13 +54,13 @@
    @Excel(name = "手机", sort = 13)
    private String phone;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "合同开始时间")
    @Excel(name = "合同开始日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 15)
    private Date contractStartTime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Schema(description = "合同结束时间")
    @Excel(name = "合同结束日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 16)
@@ -80,7 +72,7 @@
    @Schema(description = "出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING)
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd", sort = 18)
    private Date birthDate;