This commit is contained in:
parent
430be021ab
commit
120dd9e457
|
|
@ -311,7 +311,7 @@ public class OptionalEbomApi extends BaseApi {
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@GetMapping("publish")
|
@PostMapping("publish")
|
||||||
@ApiOperation("发布生成")
|
@ApiOperation("发布生成")
|
||||||
public ResultVO<Boolean> publish(@RequestBody OptionalEbomPublishAddDTO dto) {
|
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>
|
||||||
|
|
||||||
<if test="query.startTime!= null and query.endTime != null">
|
<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>
|
</if>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue