Commit c24048da authored by hongguangwu's avatar hongguangwu

MVP1.7.0 批量更新档案

parent 3aa83e4c
......@@ -31,14 +31,14 @@ import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 预入职-员工
* 预入职-员工
*
* @author hgw
* @date 2024-06-17 11:24:00
*/
@Data
@TableName("t_pre_emp_declaration")
@Schema(description = "预入职-员工明")
@Schema(description = "预入职-员工明")
public class TPreEmpDeclaration implements Serializable {
/**
......
......@@ -231,12 +231,12 @@ public class TPreEmpMain extends BaseEntity {
@Schema(description = "结算主体ID")
private String settleDomain;
/**
* 员工明表ID,新申明要加一条新数据,关联这个主表
* 员工明表ID,新申明要加一条新数据,关联这个主表
*/
@ExcelAttribute(name = "员工明表ID", maxLength = 32)
@Length(max = 32, message = "员工明表ID不能超过32个字符")
@ExcelProperty("员工明表ID")
@Schema(description = "员工明表ID,新申明要加一条新数据,关联这个主表")
@ExcelAttribute(name = "员工明表ID", maxLength = 32)
@Length(max = 32, message = "员工明表ID不能超过32个字符")
@ExcelProperty("员工明表ID")
@Schema(description = "员工明表ID,新申明要加一条新数据,关联这个主表")
private String declarationId;
// 数据来源 默认0: '扫码进入', 1: 'PC批量导入'
......
......@@ -22,7 +22,7 @@ public class EmpMainDetailVo implements Serializable {
private TEmpBadRecord tEmpBadRecord;
// 紧急联络人
private TEmpContactInfo tEmpContactInfo;
// 员工
// 员工
private TPreEmpDeclaration tEmpDeclaration;
// 员工伤残信息表
private TEmpDisabilityInfo tEmpDisabilityInfo;
......
......@@ -245,4 +245,35 @@ public class EmployeeInsertVO extends RowIndex implements Serializable {
@ExcelProperty(value = "通信地址-详细地址")
private String contactAddress;
// 紧急联系人姓名 与本人关系 联系地址-省 联系地址-市 联系地址-区/县 联系地址-详细地址 手机号码(紧急联系人)
@ExcelAttribute(name = "紧急联系人姓名", isNotEmpty = true, errorInfo = "紧急联系人姓名不能为空", maxLength = 20)
private String contactEmpName;
@ExcelAttribute(name = "与本人关系", isNotEmpty = true, errorInfo = "与本人关系不能为空", maxLength = 50)
private String relationType;
@ExcelAttribute(name = "联系地址-省", isNotEmpty = true, isArea = true)
private String relationProvince;
@ExcelAttribute(name = "联系地址-市", isNotEmpty = true, isArea = true, parentField = "relationProvince")
private String relationCity;
@ExcelAttribute(name = "联系地址-区/县", isNotEmpty = true, isArea = true, parentField = "relationCity")
private String relationTown;
@ExcelAttribute(name = "联系地址-详细地址", isNotEmpty = true, errorInfo = "联系地址-街道、详情不能为空", maxLength = 100)
private String address;
@ExcelAttribute(name = "手机号码(紧急联系人)", isPhone = true, isNotEmpty = true, errorInfo = "手机号码(紧急联系人)不能为空", maxLength = 20)
private String tel;
// 银行卡号 开户总行 开户省 开户市 开户支行 计税月份
@ExcelAttribute(name = "银行卡号", isNotEmpty = true, maxLength = 50)
private String bankNo;
@ExcelAttribute(name = "开户行总行", maxLength = 50)
private String bankName;
@ExcelAttribute(name = "开户省", isArea = true)
private String bankProvince;
@ExcelAttribute(name = "开户市", isArea = true, parentField = "bankProvince")
private String bankCity;
@ExcelAttribute(name = "开户支行", maxLength = 50)
private String bankSubName;
@ExcelAttribute(name = "计税月份", isDate = true, dateFormat = "yyyyMM", maxLength = 6)
private String taxMonth;
}
......@@ -39,7 +39,7 @@ public class PreEmpMainDetailVo implements Serializable {
private TPreEmpBadRecord tpreEmpBadRecord;
// 预入职-紧急联络人
private TPreEmpContactInfo tpreEmpContactInfo;
// 预入职-员工
// 预入职-员工
private TPreEmpDeclaration tpreEmpDeclaration;
// 预入职-员工伤残信息表
private TPreEmpDisabilityInfo tpreEmpDisabilityInfo;
......
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 档案批量更新导入的表格内容
*
* @author hgw
* @date 2024-10-17 15:30:41
*/
@Data
public class PreUploadEmpImportTwoVo implements Serializable {
// (字典值,0外包1派遣2代理)
@ExcelAttribute(name = "员工类型", isDataId = true, dataType = ExcelAttributeConstants.EMP_NATRUE, maxLength = 2)
private String empNatrue;
@ExcelAttribute(name = "员工姓名", maxLength = 32)
private String empName;
@ExcelAttribute(name = "身份证号", isNotEmpty = true, maxLength = 20)
private String empIdcard;
//@ExcelAttribute(name = "性别", maxLength = 32)
//private String empSex;
//@ExcelAttribute(name = "身份证期限", isDate = true)
//private String cardType;
@ExcelAttribute(name = "身份证开始日期", isDate = true)
private String validityStart;
@ExcelAttribute(name = "身份证截止日期", isDate = true, pattern = "validityStart")
private String validityEnd;
//@ExcelAttribute(name = "出生日期", isDate = true)
//private String empBirthday;
//@ExcelAttribute(name = "年龄")
//private Integer empAge;
@ExcelAttribute(name = "婚姻状况", isDataId = true, dataType = ExcelAttributeConstants.EMP_MARRIED, maxLength = 32)
private String empMarriStatus;
@ExcelAttribute(name = "民族", isDataId = true, dataType = ExcelAttributeConstants.EMP_NATIONAL, maxLength = 32)
private String empNational;
@ExcelAttribute(name = "政治面貌", isDataId = true, dataType = ExcelAttributeConstants.EMP_POLITICAL, maxLength = 32)
private String politicalStatus;
@ExcelAttribute(name = "手机号码", isPhone = true, maxLength = 32)
private String empPhone;
@ExcelAttribute(name = "邮箱", maxLength = 50)
private String empEmail;
// 区域ID
@ExcelAttribute(name = "户籍所在地-省", isArea = true)
private String idProvince;
@ExcelAttribute(name = "户籍所在地-市", isArea = true, parentField = "idProvince")
private String idCity;
@ExcelAttribute(name = "户籍所在地-区/县", isArea = true, parentField = "idCity")
private String idTown;
@ExcelAttribute(name = "户口性质", isDataId = true, dataType = ExcelAttributeConstants.EMP_REGISTYPE, maxLength = 32)
private String empRegisType;
@ExcelAttribute(name = "档案所在地-省", isArea = true)
private String fileProvince;
@ExcelAttribute(name = "档案所在地-市", isArea = true, parentField = "fileProvince")
private String fileCity;
@ExcelAttribute(name = "档案所在地-区/县", isArea = true, parentField = "fileCity")
private String fileTown;
@ExcelAttribute(name = "通信地址-省", isArea = true)
private String contactProvince;
@ExcelAttribute(name = "通信地址-市", isArea = true, parentField = "contactProvince")
private String contactCity;
@ExcelAttribute(name = "通信地址-区/县", isArea = true, parentField = "contactCity")
private String contactTown;
@ExcelAttribute(name = "通信地址-详细地址", maxLength = 200)
private String contactAddress;
@ExcelAttribute(name = "备注", maxLength = 200)
private String remark;
// 预入职-员工学历信息表
// private TPreEmpEducation tpreEmpEducation
// 学历 学校 专业 教育开始时间 教育结束时间 是否大专及以上 最高学历
@ExcelAttribute(name = "是否大专及以上", isDataId = true, readConverterExp = "0=否,1=是")
private String isCollege;
@ExcelAttribute(name = "最高学历", isDataId = true, dataType = ExcelAttributeConstants.EDUCATION, maxLength = 32)
private String educationName;
@ExcelAttribute(name = "学校", maxLength = 64)
private String school;
@ExcelAttribute(name = "专业", maxLength = 64)
private String major;
@ExcelAttribute(name = "入学时间", isDate = true)
private String entryDate;
@ExcelAttribute(name = "毕业时间", isDate = true, pattern = "entryDate")
private String gradutionDate;
// 紧急联系人
// private TPreEmpContactInfo tpreEmpContactInfo
// 紧急联系人姓名 与本人关系 联系地址-省 联系地址-市 联系地址-区/县 联系地址-详细地址 手机号码(紧急联系人)
@ExcelAttribute(name = "紧急联系人姓名", errorInfo = "紧急联系人姓名不能为空", maxLength = 20)
private String contactEmpName;
@ExcelAttribute(name = "紧急联系人与本人关系", errorInfo = "与本人关系不能为空", maxLength = 50)
private String relationType;
@ExcelAttribute(name = "联系地址-省", isArea = true)
private String relationProvince;
@ExcelAttribute(name = "联系地址-市", isArea = true, parentField = "relationProvince")
private String relationCity;
@ExcelAttribute(name = "联系地址-区/县", isArea = true, parentField = "relationCity")
private String relationTown;
@ExcelAttribute(name = "联系地址-详细地址", errorInfo = "联系地址-街道、详情不能为空", maxLength = 100)
private String address;
@ExcelAttribute(name = "手机号码(紧急联系人)", isPhone = true, errorInfo = "手机号码(紧急联系人)不能为空", maxLength = 20)
private String tel;
// 银行卡号 开户总行 开户省 开户市 开户支行 计税月份
@ExcelAttribute(name = "银行卡号", maxLength = 50)
private String bankNo;
@ExcelAttribute(name = "开户行总行", maxLength = 50)
private String bankName;
@ExcelAttribute(name = "开户省", isArea = true)
private String bankProvince;
@ExcelAttribute(name = "开户市", isArea = true, parentField = "bankProvince")
private String bankCity;
@ExcelAttribute(name = "开户支行", maxLength = 50)
private String bankSubName;
@ExcelAttribute(name = "计税月份", isDate = true, dateFormat = "yyyyMM", maxLength = 6)
private String taxMonth;
// 字典值起始
@ExcelAttribute(name = "员工类型-值")
private String empNatrueValue;
@ExcelAttribute(name = "婚姻状况-值")
private String empMarriStatusValue;
@ExcelAttribute(name = "民族-值")
private String empNationalValue;
@ExcelAttribute(name = "政治面貌-值")
private String politicalStatusValue;
@ExcelAttribute(name = "户籍所在地-省-值")
private String idProvinceValue;
@ExcelAttribute(name = "户籍所在地-市-值")
private String idCityValue;
@ExcelAttribute(name = "户籍所在地-县-值")
private String idTownValue;
@ExcelAttribute(name = "户口性质-值")
private String empRegisTypeValue;
@ExcelAttribute(name = "档案所在地-省-值")
private String fileProvinceValue;
@ExcelAttribute(name = "档案所在地-市-值")
private String fileCityValue;
@ExcelAttribute(name = "档案所在地-县-值")
private String fileTownValue;
@ExcelAttribute(name = "通信地址-省-值")
private String contactProvinceValue;
@ExcelAttribute(name = "通信地址-市-值")
private String contactCityValue;
@ExcelAttribute(name = "通信地址-县-值")
private String contactTownValue;
// 紧急联系人
@ExcelAttribute(name = "联系地址-省-值")
private String relationProvinceValue;
@ExcelAttribute(name = "联系地址-市-值")
private String relationCityValue;
@ExcelAttribute(name = "联系地址-县-值")
private String relationTownValue;
@ExcelAttribute(name = "入学时间-值")
private Date entryDateValue;
@ExcelAttribute(name = "毕业时间-值")
private Date gradutionDateValue;
// 预入职-员工学历信息表
@ExcelAttribute(name = "是否大专及以上-值")
private String isCollegeValue;
@ExcelAttribute(name = "学历-值")
private String educationNameValue;
// 银行卡号 开户总行 开户省 开户市 开户支行 计税月份
@ExcelAttribute(name = "开户省-值")
private String bankProvinceValue;
@ExcelAttribute(name = "开户市-值")
private String bankCityValue;
@ExcelAttribute(name = "计税月份-值")
private String taxMonthValue;
@ExcelAttribute(name = "身份证开始日期-值")
private Date validityStartValue;
@ExcelAttribute(name = "身份证截止日期-值")
private Date validityEndValue;
// 字典值结束
@TableField(exist = false)
private String errorInfo;
}
......@@ -93,7 +93,7 @@ public class PreUploadEmpImportVo implements Serializable {
// 紧急联系人姓名 与本人关系 联系地址-省 联系地址-市 联系地址-区/县 联系地址-详细地址 手机号码(紧急联系人)
@ExcelAttribute(name = "紧急联系人姓名", isNotEmpty = true, errorInfo = "紧急联系人姓名不能为空", maxLength = 20)
private String contactEmpName;
@ExcelAttribute(name = "与本人关系", isNotEmpty = true, errorInfo = "与本人关系不能为空", maxLength = 50)
@ExcelAttribute(name = "紧急联系人与本人关系", isNotEmpty = true, errorInfo = "与本人关系不能为空", maxLength = 50)
private String relationType;
@ExcelAttribute(name = "联系地址-省", isNotEmpty = true, isArea = true)
private String relationProvince;
......@@ -144,9 +144,9 @@ public class PreUploadEmpImportVo implements Serializable {
// 成员姓名 与本人关系 手机号码(家庭成员)
// 预入职-员工家庭信息表
// private List<TPreEmpFamily> tpreEmpFamilyList
@ExcelAttribute(name = "成员姓名", maxLength = 32)
@ExcelAttribute(name = "家庭成员成员姓名", maxLength = 32)
private String familyName;
@ExcelAttribute(name = "与本人关系", isMark = true,isDataId = true,dataType = ExcelAttributeConstants.FAMILY_RELATION, maxLength = 32)
@ExcelAttribute(name = "家庭成员与本人关系", isMark = true,isDataId = true,dataType = ExcelAttributeConstants.FAMILY_RELATION, maxLength = 32)
private String relationshipSelf;
@ExcelAttribute(name = "手机号码(家庭成员)", isMark = true, isPhone = true, maxLength = 32)
private String contractTel;
......@@ -287,6 +287,11 @@ public class PreUploadEmpImportVo implements Serializable {
private String bankCityValue;
@ExcelAttribute(name = "计税月份")
private String taxMonthValue;
@ExcelAttribute(name = "身份证开始日期")
private Date validityStartValue;
@ExcelAttribute(name = "身份证截止日期")
private Date validityEndValue;
// 字典值结束
// 附属信息
......
......@@ -348,6 +348,21 @@ public class TEmployeeInfoController {
return tEmployeeInfoService.batchUpdateEmployee(file.getInputStream(),exportFields);
}
/**
* @Description: 批量更新人员和银行信息
* @Author: hgw
* @Date: 2024-10-16 17:41:04
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.util.List < com.pig4cloud.plugin.excel.vo.ErrorMessage>>
**/
@SneakyThrows
@Operation(summary = "批量更新人员和银行信息", description = "批量更新人员和银行信息 hasPermission('employee_batch_update_bank')")
@SysLog("批量更新人员和银行信息")
@PostMapping("/batchUpdateEmployeeAndBank")
// @PreAuthorize("@pms.hasPermission('employee_batch_update_bank')")
public R<List<PreUploadEmpImportTwoVo>> batchUpdateEmployeeAndBank(MultipartFile file, PreUploadImportParamVo vo) throws Exception {
return tEmployeeInfoService.batchUpdateEmployeeAndBank(file, vo);
}
/**
* 批量导出人员档案信息
*
......
......@@ -258,8 +258,9 @@ public class TPreEmpMainController {
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryUploadParamVo>
**/
@SysLog("预入职批量导入")
@Operation(description = "预入职批量导入")
@Operation(summary = "预入职批量导入", description = "预入职批量导入 hasPermission('pre_emp_batch_upload')")
@PostMapping("/uploadPreEmp")
// @PreAuthorize("@pms.hasPermission('pre_emp_batch_upload')")
public R<List<PreUploadEmpImportVo>> uploadPreEmp(MultipartFile file, PreUploadImportParamVo vo) throws Exception {
return tPreEmpMainService.uploadPreEmp(file, vo);
}
......
......@@ -24,6 +24,8 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContactInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author fxj
* @date 2024-06-17 14:29:11
......@@ -37,4 +39,13 @@ public interface TEmpContactInfoMapper extends BaseMapper<TEmpContactInfo> {
* @return
*/
IPage<TEmpContactInfo> getTEmpContactInfoPage(Page<TEmpContactInfo> page, @Param("tEmpContactInfo") TEmpContactInfo tEmpContactInfo);
/**
* @param deptId
* @Description: 获取紧急联系人信息
* @Author: hgw
* @Date: 2024/10/17 19:42
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContactInfo>
**/
List<TEmpContactInfo> getContactByDeptId(@Param("deptId") String deptId);
}
......@@ -48,6 +48,9 @@ public interface TEmployeeInfoMapper extends BaseMapper<TEmployeeInfo> {
List<TEmployeeInfo> getList(@Param("tEmployeeInfo") TEmployeeInfo tEmployeeInfo);
// 批量更新使用,按项目查询人员信息
List<TEmployeeInfo> getListByDeptId(@Param("deptId") String deptId);
// hgw 2022-6-22 15:32:39 根据身份证查询一批档案
List<TEmployeeInfo> getListByIdCard(@Param("idCardList") List<String> idCardList);
......
......@@ -22,7 +22,7 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TPreEmpDeclaration;
import org.apache.ibatis.annotations.Mapper;
/**
* 预入职-员工
* 预入职-员工
*
* @author hgw
* @date 2024-06-17 11:24:00
......@@ -30,7 +30,7 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TPreEmpDeclarationMapper extends BaseMapper<TPreEmpDeclaration> {
/**
* 预入职-员工明简单分页查询
* 预入职-员工明简单分页查询
*
* @return
*/
......
......@@ -48,6 +48,14 @@ public interface TEmpContactInfoService extends IService<TEmpContactInfo> {
void listExport(HttpServletResponse response, TEmpContactInfoSearchVo searchVo);
List<TEmpContactInfo> noPageDiy(TEmpContactInfoSearchVo searchVo);
/**
* @Description: 获取紧急联系人
* @Author: hgw
* @Date: 2024/10/17 19:40
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContactInfo>
**/
List<TEmpContactInfo> getContactByDeptId(String deptId);
TEmpContactInfo getByEmpId(String empId);
}
......@@ -24,6 +24,7 @@ import com.pig4cloud.plugin.excel.vo.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
......@@ -169,6 +170,9 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> {
**/
R<List<ErrorMessage>> batchUpdateEmployee(InputStream inputStream,String[] exportFields);
// 批量更新人员和银行信息
R<List<PreUploadEmpImportTwoVo>> batchUpdateEmployeeAndBank(MultipartFile file, PreUploadImportParamVo paramVo) throws Exception ;
void updateEducationOfEmp(EmpEducationUpdateVO education);
/**
......
......@@ -21,14 +21,14 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TPreEmpDeclaration;
/**
* 预入职-员工
* 预入职-员工
*
* @author hgw
* @date 2024-06-17 11:24:00
*/
public interface TPreEmpDeclarationService extends IService<TPreEmpDeclaration> {
/**
* 预入职-员工明简单分页查询
* 预入职-员工明简单分页查询
*
* @return
*/
......
......@@ -262,4 +262,9 @@ public class TEmpContactInfoServiceImpl extends ServiceImpl<TEmpContactInfoMappe
.orderByDesc(TEmpContactInfo::getCreateTime).last(CommonConstants.LAST_ONE_SQL));
}
@Override
public List<TEmpContactInfo> getContactByDeptId(String deptId) {
return baseMapper.getContactByDeptId(deptId);
}
}
......@@ -24,7 +24,7 @@ import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
/**
* 预入职-员工
* 预入职-员工
*
* @author hgw
* @date 2024-06-17 11:24:00
......@@ -33,7 +33,7 @@ import org.springframework.stereotype.Service;
@Service
public class TPreEmpDeclarationServiceImpl extends ServiceImpl<TPreEmpDeclarationMapper, TPreEmpDeclaration> implements TPreEmpDeclarationService {
/**
* 预入职-员工明简单分页查询
* 预入职-员工明简单分页查询
*
* @return
*/
......
......@@ -108,4 +108,13 @@
<include refid="tEmpContactInfo_where"/>
</where>
</select>
<select id="getContactByDeptId" resultMap="tEmpContactInfoMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_emp_contact_info a
left join t_employee_project b on a.EMP_IDCARD = b.EMP_IDCARD
where b.DEPT_ID = #{deptId}
GROUP BY a.EMP_IDCARD
</select>
</mapper>
......@@ -764,6 +764,16 @@
</foreach>
</select>
<!-- hgw 根据身份证查询 -->
<select id="getListByDeptId" resultMap="tEmployeeInfoMap">
select
<include refid="baseParam"/>
from t_employee_info a
left join t_employee_project b on a.EMP_IDCARD = b.EMP_IDCARD
where a.DELETE_FLAG = '0' and b.DEPT_ID = #{deptId}
GROUP BY a.EMP_IDCARD
</select>
<select id="getListByIdCardList" resultMap="tEmployeeInfoMap">
select
<include refid="baseParam"/>
......
......@@ -115,5 +115,11 @@
<artifactId>lock4j-redis-template-spring-boot-starter</artifactId>
<version>2.2.4</version>
</dependency>
<!-- 读取excel -->
<dependency>
<groupId>com.monitorjbl</groupId>
<artifactId>xlsx-streamer</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
</project>
package com.yifu.cloud.plus.v1.yifu.common.core.vo;
import lombok.Getter;
import lombok.Setter;
/**
* @author hgw
* @description 薪资原表识别的 列内容 vo
* @date 2024-4-3 09:15:24
*/
@Getter
@Setter
public class ExcelColumnVo {
// 列号
private int lineNum;
// 列内容
private String content;
}
package com.yifu.cloud.plus.v1.yifu.common.core.vo;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
import java.util.Map;
/**
* @author hgw
* @description 薪资原表识别的 sheet vo
* @date 2024-4-3 09:15:24
*/
@Getter
@Setter
public class ExcelSheetVo {
// 数据行
private int dataNum;
// sheet名
private String sheetName;
// 解析过程发现的错误信息
private String errorInfo;
// 标题行
private List<ExcelColumnVo> titleList;
// 内容行+列
private List<Map<String, String>> contentList;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment