diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java index 134cbb17..a76d74d1 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OptionalEbomApi.java @@ -311,7 +311,7 @@ public class OptionalEbomApi extends BaseApi { * * @return */ - @GetMapping("publish") + @PostMapping("publish") @ApiOperation("发布生成") public ResultVO publish(@RequestBody OptionalEbomPublishAddDTO dto) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/excel/ExportDeviceHelper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/excel/ExportDeviceHelper.java new file mode 100644 index 00000000..e5825cdf --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/excel/ExportDeviceHelper.java @@ -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 cellList = new ArrayList<>(); + cellList.add(String.format("%s %s", header.getDeviceNo(), header.getDeviceName())); + + List> rowList = new ArrayList<>(); + rowList.add(cellList); + //写入表格 + writer.write(rowList, sheet, table); + } + /** + * 构建列表部分 + */ + public void buildList( List 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 items=new Vector<>(); + int row=0; + for(OptionalEbomImportVO item1:listTable){ + String opParentName=item1.getOptionName(); + String optionParentDrawingNoName=item1.getOptionDrawingNo(); + + List list2=item1.getChild(); + List cellList = new ArrayList<>(); + cellList.add( opParentName); + + List> 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 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++; + } + + } + + + } + + } + + + + + } + + + + +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml index 322e3aa1..311c26f2 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml @@ -44,7 +44,7 @@ - = #{query.tartTime} and created_time < #{query.endTime} ]]> + = #{query.startTime} and created_time < #{query.endTime} ]]>