Browse Source

模版修改

master
han\hanst 3 weeks ago
parent
commit
3444f33e86
  1. 159
      src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java
  2. BIN
      src/main/resources/templates/ALPHA/declaration-all-template.xlsx
  3. BIN
      src/main/resources/templates/ALPHA/declaration-contract-template.xlsx
  4. BIN
      src/main/resources/templates/ALPHA/declaration-elements-template.xlsx
  5. BIN
      src/main/resources/templates/ALPHA/declaration-invoice2-template.xlsx
  6. BIN
      src/main/resources/templates/ALPHA/declaration-template.xlsx
  7. BIN
      src/main/resources/templates/ALPHA/export-goods-template.xlsx
  8. BIN
      src/main/resources/templates/TX/declaration-all-template.xlsx
  9. BIN
      src/main/resources/templates/TX/export-goods-template.xlsx
  10. BIN
      src/main/resources/templates/YB/declaration-all-template.xlsx
  11. BIN
      src/main/resources/templates/YB/declaration-contract-template.xlsx
  12. BIN
      src/main/resources/templates/YB/declaration-elements-template.xlsx
  13. BIN
      src/main/resources/templates/YB/declaration-invoice2-template.xlsx
  14. BIN
      src/main/resources/templates/YB/declaration-template.xlsx
  15. BIN
      src/main/resources/templates/YB/export-goods-template.xlsx

159
src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java

@ -1285,95 +1285,77 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService {
ExcelTemplateTX template = ExcelTemplateTX.load(new ClassPathResource("templates/TX/declaration-all-template.xlsx").getInputStream());
ExcelTemplateAdapter templateAdapter = new TxExcelTemplateAdapter(template);
// 一个sheet - 出口货物委托书
extractedExportGoods(data, templateAdapter);
// 1个sheet - 发票
extractedInvoice(data, templateAdapter, notifyHeader);
workbook = template.render(0);
// 二个sheet - 发票
// 2个sheet - 箱单
templateAdapter.clearAll();
extractedInvoice(data, templateAdapter, notifyHeader);
exportPackingList(data, template, notifyHeader, 0);
template.render(1);
// 三个sheet -
// 3个sheet - 报关
templateAdapter.clearAll();
exportPackingList(data, template, notifyHeader, 0);
extractedDeclaration(data, templateAdapter);
template.render(2);
// 四个sheet - 报关单
// 4个sheet - 申报要素
templateAdapter.clearAll();
extractedDeclaration(data, templateAdapter);
extractedElements(data, templateAdapter);
template.render(3);
// 第五个sheet - 申报要素
templateAdapter.clearAll();
extractedElements(data, templateAdapter);
template.render(4);
// 第六个sheet - 合同
/*templateAdapter.clearAll();
extractedContract(data, templateAdapter);
template.render(5);*/
} else if (isHardtag) {
ExcelTemplateYB template = ExcelTemplateYB.load(new ClassPathResource("templates/YB/declaration-all-template.xlsx").getInputStream());
ExcelTemplateAdapter templateAdapter = new Yb2ExcelTemplateAdapter(template);
// 一个sheet - 出口货物委托书
extractedExportGoods(data, templateAdapter);
// 第1个sheet - 发票
extractedInvoice(data, templateAdapter, notifyHeader);
workbook = template.render(0);
// 二个sheet - 发票
// 2个sheet - 箱单
templateAdapter.clearAll();
extractedInvoice(data, templateAdapter, notifyHeader);
exportPackingListYB(data, template, notifyHeader, 0);
template.render(1);
// 三个sheet -
// 3个sheet - 报关
templateAdapter.clearAll();
exportPackingListYB(data, template, notifyHeader, 0);
extractedDeclaration(data, templateAdapter);
template.render(2);
// 四个sheet - 报关单
// 4个sheet - 申报要素
templateAdapter.clearAll();
extractedDeclaration(data, templateAdapter);
extractedElements(data, templateAdapter);
template.render(3);
// 第五个sheet - 申报要素
// 第5个sheet - 合同
templateAdapter.clearAll();
extractedElements(data, templateAdapter);
extractedContract(data, templateAdapter);
template.render(4);
// 六个sheet - 合同
// 6个sheet - 出货通知
templateAdapter.clearAll();
extractedContract(data, templateAdapter);
extractedShippingNotice(templateAdapter, notifyHeader);
template.render(5);
} else {
ExcelTemplateALPHA template = ExcelTemplateALPHA.load(new ClassPathResource("templates/ALPHA/declaration-all-template.xlsx").getInputStream());
ExcelTemplateAdapter templateAdapter = new YbExcelTemplateAdapter(template);
// 第一个sheet - 出口货物委托书
extractedExportGoods(data, templateAdapter);
workbook = template.render(0);
// 第二个sheet - 发票
templateAdapter.clearAll();
// 第1个sheet - 发票
extractedInvoice(data, templateAdapter, notifyHeader);
template.render(1);
workbook = template.render(0);
// 个sheet - 箱单
// 第2个sheet - 箱单
templateAdapter.clearAll();
exportPackingListAlpha(data, template, notifyHeader, 0);
template.render(2);
template.render(1);
// 个sheet - 报关单
// 3个sheet - 报关单
templateAdapter.clearAll();
extractedDeclaration(data, templateAdapter);
template.render(3);
template.render(2);
// 个sheet - 申报要素
// 4个sheet - 申报要素
templateAdapter.clearAll();
extractedElements(data, templateAdapter);
template.render(4);
// 第六个sheet - 合同
/* templateAdapter.clearAll();
extractedContract(data, templateAdapter);
template.render(5);*/
template.render(3);
}
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
@ -1430,10 +1412,6 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService {
extractedElements(data, templateAdapter);
template.render(3);
// 第五个sheet - 合同
/* templateAdapter.clearAll();
extractedContract(data, templateAdapter);
template.render(4);*/
} else if (isHardtag) {
String xlsx = "templates/YB/declaration-all-template-pdf.xlsx";
ExcelTemplateYB template = ExcelTemplateYB.load(new ClassPathResource(xlsx).getInputStream());
@ -1485,11 +1463,6 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService {
templateAdapter.clearAll();
extractedElements(data, templateAdapter);
template.render(3);
// 第五个sheet - 合同
/*templateAdapter.clearAll();
extractedContract(data, templateAdapter);
template.render(4);*/
}
// 将Excel转换为PDF
@ -2008,7 +1981,8 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService {
// 构建artNo内容
String artNoContent = eorder.get("pn")+" " + eorder.get("part_description") + "\n"
+ " PO#" + eorder.get("po_no")+" HS CODE#" + eorder.get("hsCode");
+ " PO#" + eorder.get("po_no") +
(data.getHsCodeFlag()!=null && data.getHsCodeFlag()?" HS CODE#" + eorder.get("hsCode"):"");
eorder.put("artNo", artNoContent);
// 计算artNo内容的行数动态设置行高
int lineCount = calculateLineCount(artNoContent);
@ -2260,7 +2234,8 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService {
// 构建artNo内容
String artNoContent = eorder.get("pn")+" " + eorder.get("part_description") + "\n"
+ " PO#" + eorder.get("po_no")+" HS CODE#" + eorder.get("hsCode");
+ " PO#" + eorder.get("po_no") +
(data.getHsCodeFlag()!=null && data.getHsCodeFlag()?" HS CODE#" + eorder.get("hsCode"):"");
eorder.put("artNo", artNoContent);
// 计算artNo内容的行数动态设置行高
int lineCount = calculateLineCount(artNoContent);
@ -2347,9 +2322,9 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService {
if (data.getPackaging()!=null && data.getPackaging()) {
template.addVar("packaging", "Non-Reusable plastic packaging:");
// 根据维护参数计算出KGS=总托数*plastic packaging维护参数
BigDecimal totalKgs = data.getKgs()!=null?data.getKgs():BigDecimal.ZERO;
BigDecimal totalKgs = data.getKgs()!=null?data.getKgs():BigDecimal.valueOf(3);
if (palletHeaderDataList.isEmpty()) {
totalKgs = BigDecimal.valueOf(0.1);
totalKgs = BigDecimal.valueOf(3);
}
template.addVar("KGS_qty", data.getKgs()!=null?(totalKgs.multiply(BigDecimal.valueOf(totalPlt))).setScale(2, RoundingMode.HALF_UP):"");
template.addVar("KGS", "KGS");
@ -2509,7 +2484,8 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService {
// 构建artNo内容
String artNoContent = eorder.get("pn")+" " + eorder.get("part_description") + "\n"
+ " PO#" + eorder.get("po_no");
+ " PO#" + eorder.get("po_no") +
(data.getHsCodeFlag()!=null && data.getHsCodeFlag()?" HS CODE#" + eorder.get("hsCode"):"");
eorder.put("artNo", artNoContent);
// 计算artNo内容的行数动态设置行高
int lineCount = calculateLineCount(artNoContent);
@ -2600,9 +2576,9 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService {
if (data.getPackaging()!=null && data.getPackaging()) {
template.addVar("packaging", "Non-Reusable plastic packaging:");
// 根据维护参数计算出KGS=总托数*plastic packaging维护参数
BigDecimal totalKgs = data.getKgs()!=null?data.getKgs():BigDecimal.ZERO;
BigDecimal totalKgs = data.getKgs()!=null?data.getKgs():BigDecimal.valueOf(5.4);
if (palletHeaderDataList.isEmpty()) {
totalKgs = BigDecimal.valueOf(0.1);
totalKgs = BigDecimal.valueOf(5.4);
}
template.addVar("KGS_qty", data.getKgs()!=null?(totalKgs.multiply(BigDecimal.valueOf(totalPlt))).setScale(2, RoundingMode.HALF_UP):"");
template.addVar("KGS", "KGS");
@ -2688,15 +2664,15 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService {
template.addVar("made_area", stringInput(data.getMadeArea()));//货物产地
template.addVar("send_port", stringInput(data.getSendPort()));//发货港
template.addVar("shipper", stringInput(data.getShipper()));//发货人
template.addVar("voyage", notifyHeader.getBuNo().equals("01-Label") || notifyHeader.getBuNo().equals("03-RFID")
?stringInput(notifyHeader.getCmcInvoice()) :stringInput(data.getVoyage()));//航次
/* template.addVar("voyage", notifyHeader.getBuNo().equals("01-Label") || notifyHeader.getBuNo().equals("03-RFID")
?stringInput(notifyHeader.getCmcInvoice()) :stringInput(data.getVoyage()));//航次*/
template.addVar("delivery_goods_date", stringInput(data.getDeliveryGoodsDate()));//提货日期
template.addVar("shipping_date", stringInput(data.getShippingDate()));//船期
// 装箱数据
List<EcssCoDelPalletHeaderData> palletHeaderDataList = coDelMapper.searchEcssCoDelPalletHeaderData(notifyHeader);
// 最高的栈板
/* Optional<EcssCoDelPalletHeaderData> palletHeaderData = palletHeaderDataList.isEmpty()? Optional.empty() :
palletHeaderDataList.stream().max(Comparator.comparing(EcssCoDelPalletHeaderData::getHeight));*/
Optional<EcssCoDelPalletHeaderData> palletHeaderData = palletHeaderDataList.isEmpty()? Optional.empty() :
palletHeaderDataList.stream().max(Comparator.comparing(EcssCoDelPalletHeaderData::getVolume));
// 需要计算的
// 总托数
Integer totalPlt = palletHeaderDataList.stream()
@ -2743,10 +2719,7 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService {
}
template.addVar("volume", notifyHeader.getWalMartOrderFlag()!=null && notifyHeader.getWalMartOrderFlag().equals("Y")?
notifyHeader.getTotalVolume(): totalVolume);
/* template.addVar("highest", palletHeaderData.isPresent() ?palletHeaderData.map(ecssCoDelPalletHeaderData ->
ecssCoDelPalletHeaderData.getLength().setScale(2, RoundingMode.HALF_UP)
+ "*" + ecssCoDelPalletHeaderData.getWidth().setScale(2, RoundingMode.HALF_UP) + "*"
+ ecssCoDelPalletHeaderData.getHeight().setScale(2, RoundingMode.HALF_UP)).orElse(""):"");*/
template.addVar("highest", palletHeaderData.isPresent() ?palletHeaderData.get().getVolume():"");
template.addVar("pickup_date", notifyHeader.getNotifyDate() != null ?
DateUtils.format(notifyHeader.getNotifyDate(), "yyyy-MM-dd") : "");
List<Map> ecssContacts = coDelMapper.getEcssContacts(notifyHeader.getBuNo());
@ -2777,6 +2750,52 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService {
template.addListVarAll(notifyDetailGroup);
}
/**
* 出货通知
*/
private void extractedShippingNotice(ExcelTemplateAdapter template, EcssCoDelNotifyHeaderData notifyHeader) {
template.addVar("cmc_invoice", notifyHeader.getCmcInvoice());
template.addVar("year", DateUtils.format(notifyHeader.getReadyDate(), "yyyy"));
template.addVar("month", DateUtils.format(notifyHeader.getReadyDate(), "M"));
template.addVar("day", DateUtils.format(notifyHeader.getReadyDate(), "d"));
template.addVar("today", DateUtils.format(new Date(), "yyyy年M月d日"));
List<Map> list = coDelMapper.selectBoxListTX(notifyHeader);
// 装箱数据
List<EcssCoDelPalletHeaderData> palletHeaderDataList = coDelMapper.searchEcssCoDelPalletHeaderData(notifyHeader);
// 总托数
Integer totalPlt = palletHeaderDataList.stream()
.map(EcssCoDelPalletHeaderData::getPalletQty)
.filter(Objects::nonNull) // 防止空指针
.reduce(0, Integer::sum);
BigDecimal totalCartons = BigDecimal.valueOf(0.0);
BigDecimal grossWeight = BigDecimal.valueOf(0.0);
for (int m = 0; m < list.size(); m++) {
totalCartons = totalCartons.add(list.get(m).get("box_qty") !=null? new BigDecimal(list.get(m).get("box_qty").toString()) : BigDecimal.valueOf(0.0));
grossWeight = grossWeight.add(list.get(m).get("gross_weight") !=null?new BigDecimal(list.get(m).get("gross_weight").toString()):BigDecimal.valueOf(0.0));
}
// 托盘重量=根据每个pallet的重量*数量累加
BigDecimal palletWeight = BigDecimal.ZERO;
for (EcssCoDelPalletHeaderData palletHeader : palletHeaderDataList) {
if (palletHeader.getPallet() != null && !palletHeader.getPallet().isEmpty()) {
// 根据pallet编号查询EcssPallet信息
List<EcssPalletData> palletDataList = coDelMapper.getPallet(notifyHeader.getSite(), notifyHeader.getBuNo(), palletHeader.getPallet());
if (!palletDataList.isEmpty()) {
EcssPalletData palletData = palletDataList.get(0);
if (palletData.getPalletWeight() != null && palletHeader.getPalletQty() != null) {
// 栈板重量 = 单个栈板重量 * 数量
palletWeight = palletWeight.add(palletHeader.getVolume());
}
}
}
}
template.addVar("Gross_Weight", (grossWeight.add(palletWeight)).setScale(2, RoundingMode.HALF_UP));
if (palletHeaderDataList.isEmpty()) {
totalPlt = totalCartons.setScale(0, RoundingMode.HALF_UP).intValue();
}
template.addVar("total_plt", totalPlt);
}
/**
* 根据装箱明细计算总体积
*

BIN
src/main/resources/templates/ALPHA/declaration-all-template.xlsx

BIN
src/main/resources/templates/ALPHA/declaration-contract-template.xlsx

BIN
src/main/resources/templates/ALPHA/declaration-elements-template.xlsx

BIN
src/main/resources/templates/ALPHA/declaration-invoice2-template.xlsx

BIN
src/main/resources/templates/ALPHA/declaration-template.xlsx

BIN
src/main/resources/templates/ALPHA/export-goods-template.xlsx

BIN
src/main/resources/templates/TX/declaration-all-template.xlsx

BIN
src/main/resources/templates/TX/export-goods-template.xlsx

BIN
src/main/resources/templates/YB/declaration-all-template.xlsx

BIN
src/main/resources/templates/YB/declaration-contract-template.xlsx

BIN
src/main/resources/templates/YB/declaration-elements-template.xlsx

BIN
src/main/resources/templates/YB/declaration-invoice2-template.xlsx

BIN
src/main/resources/templates/YB/declaration-template.xlsx

BIN
src/main/resources/templates/YB/export-goods-template.xlsx

Loading…
Cancel
Save