This commit is contained in:
parent
430be021ab
commit
120dd9e457
|
|
@ -311,7 +311,7 @@ public class OptionalEbomApi extends BaseApi {
|
|||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("publish")
|
||||
@PostMapping("publish")
|
||||
@ApiOperation("发布生成")
|
||||
public ResultVO<Boolean> publish(@RequestBody OptionalEbomPublishAddDTO dto) {
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,166 @@
|
|||
package com.nflg.product.bomnew.excel;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.ExcelWriter;
|
||||
import com.alibaba.excel.metadata.Head;
|
||||
import com.alibaba.excel.metadata.data.WriteCellData;
|
||||
import com.alibaba.excel.write.handler.CellWriteHandler;
|
||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||
import com.alibaba.excel.write.metadata.WriteTable;
|
||||
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
|
||||
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
|
||||
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
|
||||
import com.alibaba.excel.write.metadata.style.WriteFont;
|
||||
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
|
||||
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
||||
import com.nflg.product.bomnew.pojo.vo.OptionalEbomConfigAggregVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportChildVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.OptionalEbomImportVO;
|
||||
import com.nflg.product.bomnew.pojo.vo.OptionalEbomMainVO;
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
import com.alibaba.excel.write.merge.OnceAbsoluteMergeStrategy;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
public class ExportDeviceHelper {
|
||||
|
||||
|
||||
public void buildHeader(int maxColumn, OptionalEbomMainVO header, WriteSheet sheet, ExcelWriter writer, AtomicInteger tableNoCounting) {
|
||||
|
||||
//自定义到处样式
|
||||
WriteCellStyle cellStyle = new WriteCellStyle();
|
||||
//水平居中
|
||||
cellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
|
||||
WriteFont writeFont = new WriteFont();
|
||||
//加粗
|
||||
writeFont.setBold(Boolean.TRUE);
|
||||
//字体大小
|
||||
writeFont.setFontHeightInPoints((short) 14);
|
||||
cellStyle.setWriteFont(writeFont);
|
||||
|
||||
WriteTable table = EasyExcel
|
||||
.writerTable(tableNoCounting.get())
|
||||
.needHead(Boolean.FALSE)
|
||||
// .registerWriteHandler(
|
||||
// new OnceAbsoluteMergeStrategy(tableNoCounting.get() - 1, tableNoCounting.getAndIncrement() - 1, 0, maxColumn)
|
||||
// )
|
||||
.registerWriteHandler(new HorizontalCellStyleStrategy(cellStyle, cellStyle))
|
||||
.build();
|
||||
|
||||
|
||||
List<String> cellList = new ArrayList<>();
|
||||
cellList.add(String.format("%s %s", header.getDeviceNo(), header.getDeviceName()));
|
||||
|
||||
List<List<String>> rowList = new ArrayList<>();
|
||||
rowList.add(cellList);
|
||||
//写入表格
|
||||
writer.write(rowList, sheet, table);
|
||||
}
|
||||
/**
|
||||
* 构建列表部分
|
||||
*/
|
||||
public void buildList( List<OptionalEbomImportVO > listTable, WriteSheet sheet, ExcelWriter writer, AtomicInteger tableNoCounting) {
|
||||
//自定义样式
|
||||
WriteCellStyle headStyle = new WriteCellStyle();
|
||||
//设置header背景颜色为透明
|
||||
// headStyle.setFillForegroundColor(IndexedColors.AUTOMATIC.getIndex());
|
||||
//水平居中
|
||||
headStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
|
||||
//上下左右四个边框
|
||||
headStyle.setBorderBottom(BorderStyle.THIN);
|
||||
headStyle.setBorderTop(BorderStyle.THIN);
|
||||
headStyle.setBorderLeft(BorderStyle.THIN);
|
||||
headStyle.setBorderRight(BorderStyle.THIN);
|
||||
WriteFont writeFont = new WriteFont();
|
||||
//字体加粗
|
||||
writeFont.setBold(Boolean.TRUE);
|
||||
//字号
|
||||
writeFont.setFontHeightInPoints((short) 12);
|
||||
headStyle.setWriteFont(writeFont);
|
||||
WriteCellStyle contentStyle = new WriteCellStyle();
|
||||
//内容上下左右四个边框
|
||||
contentStyle.setBorderBottom(BorderStyle.THIN);
|
||||
contentStyle.setBorderTop(BorderStyle.THIN);
|
||||
contentStyle.setBorderLeft(BorderStyle.THIN);
|
||||
contentStyle.setBorderRight(BorderStyle.THIN);
|
||||
//水平居中
|
||||
contentStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
|
||||
|
||||
List<ImportExcelField> items=new Vector<>();
|
||||
int row=0;
|
||||
for(OptionalEbomImportVO item1:listTable){
|
||||
String opParentName=item1.getOptionName();
|
||||
String optionParentDrawingNoName=item1.getOptionDrawingNo();
|
||||
|
||||
List<OptionalEbomImportVO> list2=item1.getChild();
|
||||
List<String> cellList = new ArrayList<>();
|
||||
cellList.add( opParentName);
|
||||
|
||||
List<List<String>> rowList = new ArrayList<>();
|
||||
rowList.add(cellList);
|
||||
WriteTable table0 = EasyExcel
|
||||
.writerTable(tableNoCounting.getAndIncrement())
|
||||
.needHead(Boolean.FALSE)
|
||||
.registerWriteHandler(new HorizontalCellStyleStrategy(headStyle, contentStyle))
|
||||
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
||||
// .head(rowList)
|
||||
// .registerWriteHandler(new HorizontalCellStyleStrategy(cellStyle, cellStyle))
|
||||
// .registerWriteHandler(new PreviewExcelExportHelper.CellColorSheetWriteHandler())
|
||||
// .registerWriteHandler(
|
||||
// new OnceAbsoluteMergeStrategy(tableNoCounting.get()-1, tableNoCounting.get(), 0, 2)
|
||||
// )
|
||||
.build();
|
||||
|
||||
writer.write(rowList, sheet, table0);
|
||||
|
||||
|
||||
if(CollectionUtil.isNotEmpty(items)){
|
||||
WriteTable table = EasyExcel.writerTable(tableNoCounting.getAndIncrement())
|
||||
.needHead(Boolean.FALSE)//需要Header
|
||||
// .head(rowList)
|
||||
//添加自适应列宽策略
|
||||
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
||||
.registerWriteHandler(new HorizontalCellStyleStrategy(headStyle, contentStyle))//传入自定义样式
|
||||
|
||||
// .includeColumnFiledNames(fields)//选择需要哪些属性
|
||||
.build();
|
||||
writer.write(items, sheet, table);
|
||||
}
|
||||
|
||||
items.clear();
|
||||
|
||||
for(OptionalEbomImportVO item2:list2){{
|
||||
String opChildName=item2.getOptionName();
|
||||
String optionChildDrawingNoName=item2.getOptionDrawingNo();
|
||||
List<OptionalEbomImportChildVO > list3=item2.getChild();
|
||||
for(OptionalEbomImportChildVO item3:list3){
|
||||
ImportExcelField excelField=new ImportExcelField();
|
||||
excelField.setCellFirst(optionParentDrawingNoName);
|
||||
excelField.setCellSecond(String.format("%s %s",optionChildDrawingNoName,opChildName));
|
||||
excelField.setCellThird(String.format("%s %s:(%s)",item3.getDrawingNo(),item3.getMaterialName(),item3.getChooseStatus()==1?"标配":"可选"));
|
||||
items.add(excelField);
|
||||
row++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
</if>
|
||||
|
||||
<if test="query.startTime!= null and query.endTime != null">
|
||||
<![CDATA[and created_time >= #{query.tartTime} and created_time < #{query.endTime} ]]>
|
||||
<![CDATA[and created_time >= #{query.startTime} and created_time < #{query.endTime} ]]>
|
||||
</if>
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue