Browse Source

Merge remote-tracking branch 'origin/master'

master
常熟吴彦祖 1 week ago
parent
commit
ba54ea3e5e
  1. 130
      src/main/java/com/xujie/modules/inspection/controller/InspectionController.java

130
src/main/java/com/xujie/modules/inspection/controller/InspectionController.java

@ -469,35 +469,35 @@ public class InspectionController {
// Row 1: 空行 // Row 1: 空行
sheet.createRow(1).setHeightInPoints(10); sheet.createRow(1).setHeightInPoints(10);
// Row 2-9: 基本信息区
// Row 2-8: 基本信息区(模仿验货结果模板:标签/值合并单元格横向铺满明细表宽度)
writeBasicInfo(sheet, header, labelStyle, valueStyle); writeBasicInfo(sheet, header, labelStyle, valueStyle);
// Row 10: 空行
sheet.createRow(10).setHeightInPoints(10);
// Row 9: 空行
sheet.createRow(9).setHeightInPoints(10);
// Row 11: PO明细标题
Row row11 = sheet.createRow(11);
row11.setHeightInPoints(22);
Cell poTitleCell = row11.createCell(0);
// Row 10: PO明细标题
Row row10 = sheet.createRow(10);
row10.setHeightInPoints(22);
Cell poTitleCell = row10.createCell(0);
poTitleCell.setCellValue("PO明细列表"); poTitleCell.setCellValue("PO明细列表");
poTitleCell.setCellStyle(titleStyle); poTitleCell.setCellStyle(titleStyle);
sheet.addMergedRegion(new CellRangeAddress(11, 11, 0, 12));
sheet.addMergedRegion(new CellRangeAddress(10, 10, 0, 12));
// Row 12: PO表头
Row row12 = sheet.createRow(12);
row12.setHeightInPoints(22);
// Row 11: PO表头
Row row11 = sheet.createRow(11);
row11.setHeightInPoints(22);
String[] poHeaders = {"序号", "PO号", "PO行号", "产品编码", "Item", "物料名称", "SKU", "一级物料分类", "二级物料分类", "验货数量", "检验通过数量", "运输方式", "CRD日期"}; String[] poHeaders = {"序号", "PO号", "PO行号", "产品编码", "Item", "物料名称", "SKU", "一级物料分类", "二级物料分类", "验货数量", "检验通过数量", "运输方式", "CRD日期"};
for (int i = 0; i < poHeaders.length; i++) { for (int i = 0; i < poHeaders.length; i++) {
Cell cell = row12.createCell(i);
Cell cell = row11.createCell(i);
cell.setCellValue(poHeaders[i]); cell.setCellValue(poHeaders[i]);
cell.setCellStyle(headerStyle); cell.setCellStyle(headerStyle);
} }
// Row 13+: PO数据行
// Row 12+: PO数据行
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for (int i = 0; i < detailList.size(); i++) { for (int i = 0; i < detailList.size(); i++) {
InspectionRequestDetailSub detail = detailList.get(i); InspectionRequestDetailSub detail = detailList.get(i);
Row dataRow = sheet.createRow(13 + i);
Row dataRow = sheet.createRow(12 + i);
dataRow.setHeightInPoints(22); dataRow.setHeightInPoints(22);
createCell(dataRow, 0, String.valueOf(i + 1), dataStyle); createCell(dataRow, 0, String.valueOf(i + 1), dataStyle);
@ -576,76 +576,46 @@ public class InspectionController {
} }
/** /**
* 写入基本信息区 (Row 2-9)
* 写入基本信息区 (Row 2-8,模仿验货结果模板:每行两组「标签|值」,单元格合并后横向铺满明细表宽度)
* 每行四段:左标签(0-2列) | 左值(3-5列) | 右标签(6-8列) | 右值(9-12列)
*/ */
private void writeBasicInfo(Sheet sheet, InspectionRequestHeader header, CellStyle labelStyle, CellStyle valueStyle) { private void writeBasicInfo(Sheet sheet, InspectionRequestHeader header, CellStyle labelStyle, CellStyle valueStyle) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// Row 2: 申请单号 | 值 | 供应商编码 | 值
Row row2 = sheet.createRow(2);
row2.setHeightInPoints(22);
createCell(row2, 0, "申请单号", labelStyle);
createCell(row2, 1, header.getRequestNo(), valueStyle);
createCell(row2, 2, "供应商编码", labelStyle);
createCell(row2, 3, header.getSupplierNo(), valueStyle);
// Row 3: 申请日期 | 值 | 供应商名称 | 值
Row row3 = sheet.createRow(3);
row3.setHeightInPoints(22);
createCell(row3, 0, "申请日期", labelStyle);
createCell(row3, 1, header.getRequestDate() != null ? sdf.format(header.getRequestDate()) : "", valueStyle);
createCell(row3, 2, "供应商名称", labelStyle);
createCell(row3, 3, header.getSupplierName(), valueStyle);
// Row 4: 建议验货日期 | 值 | Planner | 值
Row row4 = sheet.createRow(4);
row4.setHeightInPoints(22);
createCell(row4, 0, "建议验货日期", labelStyle);
createCell(row4, 1, header.getNeedInspectDate() != null ? sdf.format(header.getNeedInspectDate()) : "", valueStyle);
createCell(row4, 2, "Planner", labelStyle);
createCell(row4, 3, header.getPlanner(), valueStyle);
// Row 5: 计划验货日期 | 值 | 申请人员 | 值
Row row5 = sheet.createRow(5);
row5.setHeightInPoints(22);
createCell(row5, 0, "计划验货日期", labelStyle);
createCell(row5, 1, header.getPlanStartDate() != null ? sdf.format(header.getPlanStartDate()) : "", valueStyle);
createCell(row5, 2, "申请人员", labelStyle);
createCell(row5, 3, header.getCreateBy(), valueStyle);
// Row 6: 验货地址 | 值(合并B7:D7)
Row row6 = sheet.createRow(6);
row6.setHeightInPoints(22);
createCell(row6, 0, "验货地址", labelStyle);
createCell(row6, 1, header.getInspectAddress(), valueStyle);
createCell(row6, 2, "", valueStyle);
createCell(row6, 3, "", valueStyle);
sheet.addMergedRegion(new CellRangeAddress(6, 6, 1, 3));
// Row 7: 城市简称 | 值 | 联系人 | 值
Row row7 = sheet.createRow(7);
row7.setHeightInPoints(22);
createCell(row7, 0, "城市简称", labelStyle);
createCell(row7, 1, header.getInspectCityShort(), valueStyle);
createCell(row7, 2, "联系人", labelStyle);
createCell(row7, 3, header.getInspectContract(), valueStyle);
// Row 8: 状态 | 值 | QC人员 | 值
Row row8 = sheet.createRow(8);
row8.setHeightInPoints(22);
createCell(row8, 0, "状态", labelStyle);
createCell(row8, 1, header.getStatus(), valueStyle);
createCell(row8, 2, "QC人员", labelStyle);
createCell(row8, 3, header.getQcOperator(), valueStyle);
// Row 9: 备注 | 值(合并B10:D10)
Row row9 = sheet.createRow(9);
row9.setHeightInPoints(22);
createCell(row9, 0, "备注", labelStyle);
createCell(row9, 1, header.getRemark(), valueStyle);
createCell(row9, 2, "", valueStyle);
createCell(row9, 3, "", valueStyle);
sheet.addMergedRegion(new CellRangeAddress(9, 9, 1, 3));
String[][] rows = {
{"申请单号", header.getRequestNo(), "供应商编码", header.getSupplierNo()},
{"申请日期", header.getRequestDate() != null ? sdf.format(header.getRequestDate()) : "", "供应商名称", header.getSupplierName()},
{"建议验货日期", header.getNeedInspectDate() != null ? sdf.format(header.getNeedInspectDate()) : "", "Planner", header.getPlanner()},
{"计划验货日期", header.getPlanStartDate() != null ? sdf.format(header.getPlanStartDate()) : "", "申请人员", header.getCreateBy()},
{"验货地址", header.getInspectAddress(), "城市简称", header.getInspectCityShort()},
{"联系人", header.getInspectContract(), "状态", header.getStatus()},
{"QC人员", header.getQcOperator(), "备注", header.getRemark()}
};
for (int i = 0; i < rows.length; i++) {
int rowIndex = 2 + i;
Row row = sheet.createRow(rowIndex);
row.setHeightInPoints(22);
String[] pair = rows[i];
for (int c = 0; c <= 2; c++) {
createCell(row, c, c == 0 ? pair[0] : "", labelStyle);
}
for (int c = 3; c <= 5; c++) {
createCell(row, c, c == 3 ? (pair[1] == null ? "" : pair[1]) : "", valueStyle);
}
for (int c = 6; c <= 8; c++) {
createCell(row, c, c == 6 ? pair[2] : "", labelStyle);
}
for (int c = 9; c <= 12; c++) {
createCell(row, c, c == 9 ? (pair[3] == null ? "" : pair[3]) : "", valueStyle);
}
sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 0, 2));
sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 3, 5));
sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 6, 8));
sheet.addMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 9, 12));
}
} }
/** /**

Loading…
Cancel
Save