Compare commits

...

3 Commits

  1. 9
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/entity/ImsDutyMainEntity.java
  2. 42
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/vo/ImsSchedulingNewVo.java
  3. 1
      hzims-service/assets/src/main/java/com/hnac/hzims/spare/service/impl/WtSpBasicServiceImpl.java
  4. 7
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/controller/ImsDutyGroupController.java
  5. 50
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/controller/ImsDutyMainController.java
  6. 26
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/entity/SchedulingExcelDTO.java
  7. 5
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/IImsDutyMainService.java
  8. 30
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyGroupServiceImpl.java
  9. 3286
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyMainServiceImpl.java
  10. 33
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/utils/ExcelToolListener.java
  11. 348
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/utils/ExcelUtil.java

9
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/entity/ImsDutyMainEntity.java

@ -37,11 +37,13 @@ public class ImsDutyMainEntity extends TenantEntity {
@ApiModelProperty(value = "值班组id")
private Long dutyGroupId;
@TableField(exist = false)
@ApiModelProperty(value = "值班组名称")
private String dutyGroupName;
/**
* 值班人IDS, ID之间用^隔开
*/
@ApiModelProperty(value = "值班人IDS, ID之间用^隔开")
@ApiModelProperty(value = "值班人IDS,ID之间用^隔开")
private String dutyPersonIds;
/**
* 值班日期
@ -72,4 +74,7 @@ public class ImsDutyMainEntity extends TenantEntity {
@ApiModelProperty(value = "备注")
private String remark;
@TableField(exist = false)
private Long manageId;//值班长id
}

42
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/vo/ImsSchedulingNewVo.java

@ -0,0 +1,42 @@
package com.hnac.hzims.operational.duty.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
@Data
public class ImsSchedulingNewVo implements Serializable {
@ApiModelProperty(value = "班组ID 通过^隔开",required = true)
private String groupIds;
// @ApiModelProperty(value = "班组名称 通过^隔开",required = true)
// private String groupNames;
@ApiModelProperty(value = "班次ID 通过^隔开",required = true)
private String classIds;
@ApiModelProperty(value = "班次名称 通过^隔开",required = true)
private String classNames;
@ApiModelProperty(value = "开始时间",required = true)
private String startDate;
@ApiModelProperty(value = "结束时间",required = true)
private String endDate;
private Long deptId;//机构id
@ApiModelProperty("人员类型: 1、班组 2 、人员")
private Integer personType;
//人员组
List<Map<String,String>> personIds; //人员用 managerId 值长id personIds 人员ids 多个^隔开(不包含值长id)
@ApiModelProperty("班次类型ID")
@JsonSerialize(nullsUsing = NullSerializer.class)
private Long dutyClassTypeId;
}

1
hzims-service/assets/src/main/java/com/hnac/hzims/spare/service/impl/WtSpBasicServiceImpl.java

@ -32,7 +32,6 @@ import com.hnac.hzims.spare.utils.ExcelToolListener;
import com.hnac.hzims.spare.utils.SheetWriteStyleHandler;
import com.hnac.hzims.spare.vo.WtSpBasicVO;
import com.hnac.hzims.ticket.allTicket.fegin.ITicketInfoAllClient;
import com.hnac.hzims.ticket.allTicket.vo.TicketInfoStatisticVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;

7
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/controller/ImsDutyGroupController.java

@ -128,6 +128,13 @@ public class ImsDutyGroupController extends BladeController {
@ApiOperationSupport(order = 7)
@ApiOperation(value = "设置班组长", notes = "传入imsDutyGroup")
public R manager(@Valid @RequestBody ImsDutyGroupEntity imsDutyGroup) {
LambdaQueryWrapper<ImsDutyGroupEntity> wrapper=new LambdaQueryWrapper<>();
wrapper.ne(ImsDutyGroupEntity::getId,imsDutyGroup.getId());
wrapper.ne(ImsDutyGroupEntity::getManagerId,imsDutyGroup.getManagerId());
List<ImsDutyGroupEntity> list=imsDutyGroupService.list(wrapper);
if(list!=null && !list.isEmpty()){
return R.data("该用户已在其他组中设置为班组长");
}
return R.status(imsDutyGroupService.updateById(imsDutyGroup));
}

50
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/controller/ImsDutyMainController.java

@ -11,14 +11,12 @@ import com.hnac.hzims.operational.duty.entity.ImsDutyMainReportExcel;
import com.hnac.hzims.operational.duty.service.IImsDutyMainService;
import com.hnac.hzims.operational.duty.utils.ExcelMergeHandler;
import com.hnac.hzims.operational.duty.utils.ExcelTool;
import com.hnac.hzims.operational.duty.vo.ChangeDutyMainVo;
import com.hnac.hzims.operational.duty.vo.ExchangeGroupLeader;
import com.hnac.hzims.operational.duty.vo.HomePageDutyMainInfoVo;
import com.hnac.hzims.operational.duty.vo.ImsSchedulingVo;
import com.hnac.hzims.operational.duty.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
@ -27,6 +25,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.feign.ISysClient;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
@ -120,18 +119,37 @@ public class ImsDutyMainController extends BladeController {
return imsDutyMainService.getSchedulingV2(imsSchedulingVo);
}
// /**
// * 排班管理
// */
// @PostMapping("/scheduling")
// @ApiOperationSupport(order = 8)
// @ApiOperation(value = "排班管理", notes = "")
// public R schedulingV2(@Valid @RequestBody ImsSchedulingVo imsSchedulingVo) {
// if (null == imsSchedulingVo.getCreateDept()) {
// imsSchedulingVo.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
// }
// return imsDutyMainService.getScheduling(imsSchedulingVo);
// }
@PostMapping("/schedulingNew")
@ApiOperationSupport(order = 8)
@ApiOperation(value = "排班管理", notes = "")
public R schedulingNew(@Valid @RequestBody ImsSchedulingNewVo vo) {
if (null == vo.getDeptId()) {
return R.fail("请选择机构");
}
if (null == AuthUtil.getTenantId()) {
return R.fail("请登录");
}
return imsDutyMainService.getSchedulingV3(vo);
}
/**
* 导入排班
*/
// @PostMapping("/importScheduling")
// @ApiOperationSupport(order = 8)
// @ApiOperation(value = "导入排班管理(适用一天一班的情况)", notes = "")
// public R importScheduling(@RequestParam("file")MultipartFile file,
// @RequestParam("yearMonth") String yearMonth,////yearMonth格式 yyyy-MM
// @RequestParam("deptId") Long deptId
// ) {
// if(StringUtils.isBlank(yearMonth)){
// return R.fail("请选择年月");
// }
// if(deptId == null){
// return R.fail("请选择部门");
// }
// return imsDutyMainService.importScheduling(file,yearMonth,deptId);
// }
/**
* 查询排班

26
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/entity/SchedulingExcelDTO.java

@ -0,0 +1,26 @@
package com.hnac.hzims.operational.duty.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class SchedulingExcelDTO implements Serializable {
@ExcelProperty(value = "日期(必填)",index = 0 )
@ApiModelProperty(value = "日期-天")
private String day;
/**
* 编码
*/
@ExcelProperty(value = "主值(必填)",index = 1 )
@ApiModelProperty(value = "主值")
private String mainDuty;
/**
* 规格
*/
@ExcelProperty(value = "副值(必填)",index = 2 )
@ApiModelProperty(value = "副值")
private String deputyDuty;
}

5
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/IImsDutyMainService.java

@ -8,6 +8,7 @@ import com.hnac.hzims.operational.main.vo.DutyPersonalReportVO;
import com.hnac.hzims.operational.report.vo.DutyReportVO;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import org.springframework.web.multipart.MultipartFile;
import java.time.LocalDate;
import java.util.List;
@ -61,6 +62,10 @@ public interface IImsDutyMainService extends BaseService<ImsDutyMainEntity> {
R getSchedulingV2(ImsSchedulingVo imsSchedulingVo);
R getSchedulingV3(ImsSchedulingNewVo vo);
R importScheduling(MultipartFile file,String yearMonth,Long deptId);
R getSchedulingList(int year, int month, Long deptId);
R getSchedulingListV2(int year, int month, Long deptId);

30
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyGroupServiceImpl.java

@ -59,24 +59,12 @@ public class ImsDutyGroupServiceImpl extends BaseServiceImpl<ImsDutyGroupMapper,
if (ObjectUtil.isNotEmpty(user)) {
tenantId = user.getTenantId();
}
boolean flag = this.saveImsDutyGroupPEntity(imsDutyGroup.getPersonId(), tenantId, imsDutyGroup.getId());
if (flag == false) {
return R.fail("当前选择人员已全部存在分组");
}
// if (flag == false) {
// return R.fail("当前选择人员已全部存在分组");
// }
/* //先查看该班组今天是否存在
List<ImsDutyMainEntity> list = iImsDutyMainService.list(new LambdaQueryWrapper<ImsDutyMainEntity>() {{
eq(ImsDutyMainEntity::getDutyGroupId, imsDutyGroup.getId());
eq(ImsDutyMainEntity::getDutyDate, DateUtil.format(new Date(), DateUtil.PATTERN_DATE));
}});
if(CollectionUtil.isNotEmpty(list)){//存在
if(null == imsDutyGroup.getIsUpdateThatVeryDay()){
return R.data("1");
}else if(imsDutyGroup.getIsUpdateThatVeryDay()){
//更新当天数据
}
}
*/
//判断是否更新排班
if (imsDutyGroup.getUpdateDuty()) {
this.updateDuty(imsDutyGroup.getId());
@ -133,13 +121,13 @@ public class ImsDutyGroupServiceImpl extends BaseServiceImpl<ImsDutyGroupMapper,
imsDutyGroupPEntity.setTenantId(tenantId);
imsDutyGroupPEntity.setGroupId(groupId);
imsDutyGroupPEntity.setPersonId(Long.parseLong(personIds[i]));
if (imsDutyGroupPMapper.selectPersonIsExist(imsDutyGroupPEntity) < 1) {
// if (imsDutyGroupPMapper.selectPersonIsExist(imsDutyGroupPEntity) < 1) {
list.add(imsDutyGroupPEntity);
}
}
if (CollectionUtil.isEmpty(list)) {
return false;
// }
}
// if (CollectionUtil.isEmpty(list)) {
// return false;
// }
return imsDutyGroupPService.saveBatch(list);
}

3286
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyMainServiceImpl.java

File diff suppressed because it is too large Load Diff

33
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/utils/ExcelToolListener.java

@ -0,0 +1,33 @@
package com.hnac.hzims.operational.duty.utils;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Slf4j
@Data
public class ExcelToolListener extends AnalysisEventListener {
/**保存数据**/
private List<Object> dataList = Collections.synchronizedList(new ArrayList<>());
public ExcelToolListener() {
}
@Override
public void invoke(Object data, AnalysisContext context) {
dataList.add(data);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
log.info("解析完成");
log.info("------结果集为:{}------", JSONObject.toJSONString(dataList));
}
}

348
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/utils/ExcelUtil.java

@ -0,0 +1,348 @@
package com.hnac.hzims.operational.duty.utils;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.write.handler.WriteHandler;
import org.apache.poi.ss.formula.functions.T;
import java.io.File;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @author hx
*/
public class ExcelUtil {
/**
* 同步无模型读默认读取sheet0,从第2行开始读
* @param filePath
* @return
*/
public static List<Map<Integer, String>> syncRead(String filePath){
return EasyExcelFactory.read(filePath).sheet().doReadSync();
}
/**
* 同步无模型读默认表头占一行从第2行开始读
* @param filePath
* @param sheetNo sheet页号从0开始
* @return
*/
public static List<Map<Integer, String>> syncRead(String filePath, Integer sheetNo){
return EasyExcelFactory.read(filePath).sheet(sheetNo).doReadSync();
}
/**
* 同步无模型读指定sheet和表头占的行数
* @param inputStream
* @param sheetNo sheet页号从0开始
* @param headRowNum 表头占的行数从0开始如果要连表头一起读出来则传0
* @return List<Map<colNum, cellValue>>
*/
public static List<Map<Integer, String>> syncRead(InputStream inputStream, Integer sheetNo, Integer headRowNum){
return EasyExcelFactory.read(inputStream).sheet(sheetNo).headRowNumber(headRowNum).doReadSync();
}
/**
* 同步无模型读指定sheet和表头占的行数
* @param file
* @param sheetNo sheet页号从0开始
* @param headRowNum 表头占的行数从0开始如果要连表头一起读出来则传0
* @return List<Map<colNum, cellValue>>
*/
public static List<Map<Integer, String>> syncRead(File file, Integer sheetNo, Integer headRowNum){
return EasyExcelFactory.read(file).sheet(sheetNo).headRowNumber(headRowNum).doReadSync();
}
/**
* 同步无模型读指定sheet和表头占的行数
* @param filePath
* @param sheetNo sheet页号从0开始
* @param headRowNum 表头占的行数从0开始如果要连表头一起读出来则传0
* @return List<Map<colNum, cellValue>>
*/
public static List<Map<Integer, String>> syncRead(String filePath, Integer sheetNo, Integer headRowNum){
return EasyExcelFactory.read(filePath).sheet(sheetNo).headRowNumber(headRowNum).doReadSync();
}
/**
* 同步按模型读默认读取sheet0,从第2行开始读
* @param filePath
* @param clazz 模型的类类型excel数据会按该类型转换成对象
* @return
*/
public static List<T> syncReadModel(String filePath, Class clazz){
return EasyExcelFactory.read(filePath).sheet().head(clazz).doReadSync();
}
/**
* 同步按模型读默认表头占一行从第2行开始读
* @param filePath
* @param clazz 模型的类类型excel数据会按该类型转换成对象
* @param sheetNo sheet页号从0开始
* @return
*/
public static List<T> syncReadModel(String filePath, Class clazz, Integer sheetNo){
return EasyExcelFactory.read(filePath).sheet(sheetNo).head(clazz).doReadSync();
}
/**
* 同步按模型读指定sheet和表头占的行数
* @param inputStream
* @param clazz 模型的类类型excel数据会按该类型转换成对象
* @param sheetNo sheet页号从0开始
* @param headRowNum 表头占的行数从0开始如果要连表头一起读出来则传0
* @return
*/
public static List<T> syncReadModel(InputStream inputStream, Class clazz, Integer sheetNo, Integer headRowNum){
return EasyExcelFactory.read(inputStream).sheet(sheetNo).headRowNumber(headRowNum).head(clazz).doReadSync();
}
/**
* 同步按模型读指定sheet和表头占的行数
* @param file
* @param clazz 模型的类类型excel数据会按该类型转换成对象
* @param sheetNo sheet页号从0开始
* @param headRowNum 表头占的行数从0开始如果要连表头一起读出来则传0
* @return
*/
public static List<T> syncReadModel(File file, Class clazz, Integer sheetNo, Integer headRowNum){
return EasyExcelFactory.read(file).sheet(sheetNo).headRowNumber(headRowNum).head(clazz).doReadSync();
}
/**
* 同步按模型读指定sheet和表头占的行数
* @param filePath
* @param clazz 模型的类类型excel数据会按该类型转换成对象
* @param sheetNo sheet页号从0开始
* @param headRowNum 表头占的行数从0开始如果要连表头一起读出来则传0
* @return
*/
public static List<T> syncReadModel(String filePath, Class clazz, Integer sheetNo, Integer headRowNum){
return EasyExcelFactory.read(filePath).sheet(sheetNo).headRowNumber(headRowNum).head(clazz).doReadSync();
}
/**
* 异步无模型读默认读取sheet0,从第2行开始读
* @param excelListener 监听器在监听器中可以处理行数据LinkedHashMap表头数据异常处理等
* @param filePath 表头占的行数从0开始如果要连表头一起读出来则传0
* @return
*/
public static void asyncRead(String filePath, AnalysisEventListener<T> excelListener){
EasyExcelFactory.read(filePath, excelListener).sheet().doRead();
}
/**
* 异步无模型读默认表头占一行从第2行开始读
* @param filePath 表头占的行数从0开始如果要连表头一起读出来则传0
* @param excelListener 监听器在监听器中可以处理行数据LinkedHashMap表头数据异常处理等
* @param sheetNo sheet页号从0开始
* @return
*/
public static void asyncRead(String filePath, AnalysisEventListener<T> excelListener, Integer sheetNo){
EasyExcelFactory.read(filePath, excelListener).sheet(sheetNo).doRead();
}
/**
* 异步无模型读指定sheet和表头占的行数
* @param inputStream
* @param excelListener 监听器在监听器中可以处理行数据LinkedHashMap表头数据异常处理等
* @param sheetNo sheet页号从0开始
* @param headRowNum 表头占的行数从0开始如果要连表头一起读出来则传0
* @return
*/
public static void asyncRead(InputStream inputStream, AnalysisEventListener<T> excelListener, Integer sheetNo, Integer headRowNum){
EasyExcelFactory.read(inputStream, excelListener).sheet(sheetNo).headRowNumber(headRowNum).doRead();
}
/**
* 异步无模型读指定sheet和表头占的行数
* @param file
* @param excelListener 监听器在监听器中可以处理行数据LinkedHashMap表头数据异常处理等
* @param sheetNo sheet页号从0开始
* @param headRowNum 表头占的行数从0开始如果要连表头一起读出来则传0
* @return
*/
public static void asyncRead(File file, AnalysisEventListener<T> excelListener, Integer sheetNo, Integer headRowNum){
EasyExcelFactory.read(file, excelListener).sheet(sheetNo).headRowNumber(headRowNum).doRead();
}
/**
* 异步无模型读指定sheet和表头占的行数
* @param filePath
* @param excelListener 监听器在监听器中可以处理行数据LinkedHashMap表头数据异常处理等
* @param sheetNo sheet页号从0开始
* @param headRowNum 表头占的行数从0开始如果要连表头一起读出来则传0
* @return
*/
public static void asyncRead(String filePath, AnalysisEventListener<T> excelListener, Integer sheetNo, Integer headRowNum){
EasyExcelFactory.read(filePath, excelListener).sheet(sheetNo).headRowNumber(headRowNum).doRead();
}
/**
* 异步按模型读取默认读取sheet0,从第2行开始读
* @param filePath
* @param excelListener 监听器在监听器中可以处理行数据LinkedHashMap表头数据异常处理等
* @param clazz 模型的类类型excel数据会按该类型转换成对象
*/
public static void asyncReadModel(String filePath, AnalysisEventListener<T> excelListener, Class clazz){
EasyExcelFactory.read(filePath, clazz, excelListener).sheet().doRead();
}
/**
* 异步按模型读取默认表头占一行从第2行开始读
* @param filePath
* @param excelListener 监听器在监听器中可以处理行数据LinkedHashMap表头数据异常处理等
* @param clazz 模型的类类型excel数据会按该类型转换成对象
* @param sheetNo sheet页号从0开始
*/
public static void asyncReadModel(String filePath, AnalysisEventListener<T> excelListener, Class clazz, Integer sheetNo){
EasyExcelFactory.read(filePath, clazz, excelListener).sheet(sheetNo).doRead();
}
/**
* 异步按模型读取
* @param inputStream
* @param excelListener 监听器在监听器中可以处理行数据LinkedHashMap表头数据异常处理等
* @param clazz 模型的类类型excel数据会按该类型转换成对象
* @param sheetNo sheet页号从0开始
* @param headRowNum 表头占的行数从0开始如果要连表头一起读出来则传0
*/
public static void asyncReadModel(InputStream inputStream, AnalysisEventListener<T> excelListener, Class clazz, Integer sheetNo, Integer headRowNum){
EasyExcelFactory.read(inputStream, clazz, excelListener).sheet(sheetNo).headRowNumber(headRowNum).doRead();
}
/**
* 异步按模型读取
* @param file
* @param excelListener 监听器在监听器中可以处理行数据LinkedHashMap表头数据异常处理等
* @param clazz 模型的类类型excel数据会按该类型转换成对象
* @param sheetNo sheet页号从0开始
* @param headRowNum 表头占的行数从0开始如果要连表头一起读出来则传0
*/
public static void asyncReadModel(File file, AnalysisEventListener<T> excelListener, Class clazz, Integer sheetNo, Integer headRowNum){
EasyExcelFactory.read(file, clazz, excelListener).sheet(sheetNo).headRowNumber(headRowNum).doRead();
}
/**
* 异步按模型读取
* @param filePath
* @param excelListener 监听器在监听器中可以处理行数据LinkedHashMap表头数据异常处理等
* @param clazz 模型的类类型excel数据会按该类型转换成对象
* @param sheetNo sheet页号从0开始
* @param headRowNum 表头占的行数从0开始如果要连表头一起读出来则传0
*/
public static void asyncReadModel(String filePath, AnalysisEventListener<T> excelListener, Class clazz, Integer sheetNo, Integer headRowNum){
EasyExcelFactory.read(filePath, clazz, excelListener).sheet(sheetNo).headRowNumber(headRowNum).doRead();
}
/**
* 无模板写文件
* @param filePath
* @param head 表头数据
* @param data 表内容数据
*/
public static void write(String filePath, List<List<String>> head, List<List<Object>> data){
EasyExcel.write(filePath).head(head).sheet().doWrite(data);
}
/**
* 无模板写文件
* @param filePath
* @param head 表头数据
* @param data 表内容数据
* @param sheetNo sheet页号从0开始
* @param sheetName sheet名称
*/
public static void write(String filePath, List<List<String>> head, List<List<Object>> data, Integer sheetNo, String sheetName){
EasyExcel.write(filePath).head(head).sheet(sheetNo, sheetName).doWrite(data);
}
/**
* 根据excel模板文件写入文件
* @param filePath
* @param templateFileName
* @param headClazz
* @param data
*/
public static void writeTemplate(String filePath, String templateFileName, Class headClazz, List data){
EasyExcel.write(filePath, headClazz).withTemplate(templateFileName).sheet().doWrite(data);
}
/**
* 根据excel模板文件写入文件
* @param filePath
* @param templateFileName
* @param data
*/
public static void writeTemplate(String filePath, String templateFileName, List data){
EasyExcel.write(filePath).withTemplate(templateFileName).sheet().doWrite(data);
}
/**
* 按模板写文件
* @param filePath
* @param headClazz 表头模板
* @param data 数据
*/
public static void write(String filePath, Class headClazz, List data){
EasyExcel.write(filePath, headClazz).sheet().doWrite(data);
}
/**
* 按模板写文件
* @param filePath
* @param headClazz 表头模板
* @param data 数据
* @param sheetNo sheet页号从0开始
* @param sheetName sheet名称
*/
public static void write(String filePath, Class headClazz, List data, Integer sheetNo, String sheetName){
EasyExcel.write(filePath, headClazz).sheet(sheetNo, sheetName).doWrite(data);
}
/**
* 按模板写文件
* @param filePath
* @param headClazz 表头模板
* @param data 数据
* @param writeHandler 自定义的处理器比如设置table样式设置超链接单元格下拉框等等功能都可以通过这个实现需要注册多个则自己通过链式去调用
* @param sheetNo sheet页号从0开始
* @param sheetName sheet名称
*/
public static void write(String filePath, Class headClazz, List data, WriteHandler writeHandler, Integer sheetNo, String sheetName){
EasyExcel.write(filePath, headClazz).registerWriteHandler(writeHandler).sheet(sheetNo, sheetName).doWrite(data);
}
/**
* 按模板写文件包含某些字段
* @param filePath
* @param headClazz 表头模板
* @param data 数据
* @param includeCols 过滤包含的字段根据字段名称过滤
* @param sheetNo sheet页号从0开始
* @param sheetName sheet名称
*/
public static void writeInclude(String filePath, Class headClazz, List data, Set<String> includeCols, Integer sheetNo, String sheetName){
EasyExcel.write(filePath, headClazz).includeColumnFiledNames(includeCols).sheet(sheetNo, sheetName).doWrite(data);
}
/**
* 按模板写文件排除某些字段
* @param filePath
* @param headClazz 表头模板
* @param data 数据
* @param excludeCols 过滤排除的字段根据字段名称过滤
* @param sheetNo sheet页号从0开始
* @param sheetName sheet名称
*/
public static void writeExclude(String filePath, Class headClazz, List data, Set<String> excludeCols, Integer sheetNo, String sheetName){
EasyExcel.write(filePath, headClazz).excludeColumnFiledNames(excludeCols).sheet(sheetNo, sheetName).doWrite(data);
}
}
Loading…
Cancel
Save