@RequestMapping(params = "exportXlsxdpdf")
@ResponseBody
public void exportXlsxdpdf(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap,
OutputStream output) throws IOException, DocumentException {
String id = request.getParameter("id"); //业务id
int firstpage=8;//首页展示的条数
int otherpage=13;//非首页展示的条数
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date date=new Date();
LdcOrderEntity ldcOrder = ldcOrderService.getEntity(LdcOrderEntity.class, id);
//找出所有的商品标记
List<Map<String,Object>> mp=jdbcTemplate.queryForList("select * from ldc_order_box where box_orderid=? ",id);
//计算出一共多少条
int all=mp.size();
//默认一页
int pageNo=1;
//如果条数大于首页的数量,计算出一共有多少页
if(all>firstpage){
Double abc= (double)(all-firstpage)/otherpage;
pageNo=(int) Math.ceil(abc)+1;
}
//字体
BaseFont unicode = BaseFont.createFont(request.getServletContext().getRealPath("/")+"webpage/com/jeecg/pdf/simsun.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
bf = unicode;
// A4纸
Document document = new Document(PageSize.A4.rotate());
PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream());
document.open();
//循环的时候取值,从第一条开始取
//图片处理
File file=new File(request.getServletContext().getRealPath("/")+"webpage/com/jeecg/pdf/pdfxd.png");
if(file.exists()){
Image image = Image.getInstance(request.getServletContext().getRealPath("/")+"webpage/com/jeecg/pdf/pdfxd.png");
image.scaleAbsolute(100, 50);
image.setAbsolutePosition(100, 430);
document.add(image);
}
int a=0;
//内容表格
Font f = new Font(unicode,12,Font.BOLD);
Paragraph paragraph = new Paragraph("南通斯密特森光电科技有限公司",f);
paragraph.setAlignment(Element.ALIGN_CENTER);
paragraph.setSpacingBefore(0f); // 前间距
paragraph.setSpacingAfter(0f); // 后间距
document.add(paragraph);
paragraph = new Paragraph("NANTONG SCHMIDT OPTO-ELECTRICAL TECHNOLOGY CO., LTD",f);
paragraph.setAlignment(Element.ALIGN_CENTER);
paragraph.setSpacingBefore(0f); // 前间距
paragraph.setSpacingAfter(0f); // 后间距
document.add(paragraph);
paragraph = new Paragraph("装 箱 单",f);
paragraph.setAlignment(Element.ALIGN_CENTER);
paragraph.setSpacingBefore(0f); // 前间距
paragraph.setSpacingAfter(0f); // 后间距
document.add(paragraph);
//table赋值
PdfPTable table = new PdfPTable(8);
table.setWidthPercentage(100); // 宽度100%填充
table.setSpacingBefore(5f); // 前间距
table.setSpacingAfter(0f); // 后间距
//定义该table一共有8列
float[] columnWidths = { 1.8f, 2f, 1.8f, 1.8f, 1.8f, 1.8f, 1.8f, 1.8f};
table.setWidths(columnWidths);
List<PdfPRow> listRow_a = table.getRows();
PdfPCell cells9_a[] = new PdfPCell[8];
PdfPRow row9_a = new PdfPRow(cells9_a);
cells9_a[0] = getCell("PACKING LIST" ,"1111","normal","10","14");
cells9_a[0].setColspan(3);
cells9_a[5] = getCell("DATE:","1111","normal","10","24");
cells9_a[6] = getCell(formatter.format(date) ,"1111","normal","10","14");
listRow_a.add(row9_a);
document.add(table);
//table赋值
table = new PdfPTable(8);
table.setWidthPercentage(100); // 宽度100%填充
table.setSpacingBefore(5f); // 前间距
table.setSpacingAfter(0f); // 后间距
table.setWidths(columnWidths);
List<PdfPRow> listRow_c = table.getRows();
PdfPCell cells9_c[] = new PdfPCell[8];
PdfPRow row9_c = new PdfPRow(cells9_c);
cells9_c[0] = getCell("","1111","normal","10","14");
cells9_c[1] = getCell("","1111","normal","10","14");
cells9_c[1].setColspan(4);
cells9_c[5] = getCell("INVOICE NO.:","1111","normal","10","14");
cells9_c[6] = getCell(mp.get(0).get("fapiaono").toString(),"1111","normal","10","14");
listRow_c.add(row9_c);
document.add(table);
//table赋值
table = new PdfPTable(8);
table.setWidthPercentage(100); // 宽度100%填充
table.setSpacingBefore(5f); // 前间距
table.setSpacingAfter(0f); // 后间距
table.setWidths(columnWidths);
List<PdfPRow> listRow_d = table.getRows();
PdfPCell cells9_d[] = new PdfPCell[8];
PdfPRow row9_d = new PdfPRow(cells9_d);
cells9_d[0] = getCell("","1111","normal","10","14");
cells9_d[1] = getCell("","1111","normal","10","14");
cells9_d[1].setColspan(4);
cells9_d[5] = getCell("Salesno:","1111","normal","10","14");
cells9_d[6] = getCell(mp.get(0).get("box_pono").toString(),"1111","normal","10","14");
listRow_d.add(row9_d);
document.add(table);
//table赋值
table = new PdfPTable(8);
table.setWidthPercentage(100); // 宽度100%填充
table.setSpacingBefore(5f); // 前间距
table.setSpacingAfter(0f); // 后间距
table.setWidths(columnWidths);
List<PdfPRow> listRow = table.getRows();
PdfPCell cells9[] = new PdfPCell[8];
PdfPRow row9 = new PdfPRow(cells9);
cells9[0] = getCell("C/N","1011","normal","10","14");
cells9[1] = getCell("CONTENT","1011","normal","10","14");
cells9[1].setColspan(3);
cells9[4] = getCell("MEASUREMENT","1011","normal","10","14");
cells9[5] = getCell("QTY","1011","normal","10","14");
cells9[6] = getCell("G.W.","1011","normal","10","14");
cells9[7] = getCell("N.W","1011","normal","10","14");
listRow.add(row9);
document.add(table);
int zxs=0;//定义总数量
double jineall=0;//定义总金额
for (int i = 0; i < pageNo; i++) {
int sunsl=0;//定义每页数量
double jine=0;//定义每页金额
//其他页面
if(i!=0){
document.newPage();//创建一个新的页面
for (int p = 0; p <otherpage; p++) {
if(a<mp.size()){//保证数组不越界
Map<String,Object> map = mp.get(a);
a++;
table = new PdfPTable(8);
table.setWidthPercentage(100); // 宽度100%填充
table.setSpacingBefore(5f); // 前间距
table.setSpacingAfter(0f); // 后间距
table.setWidths(columnWidths);
listRow = table.getRows();
PdfPCell cells91[] = new PdfPCell[8];
PdfPRow row91 = new PdfPRow(cells91);
String box_no = "";
String box_pono = "";
String box_endescribe = "";
double box_Goods_Volume = 0.0;
int box_goods_number = 0;
double box_gross_weight = 0.0;
double box_goods_weight = 0.0;
int sumbox_no = 0;
String box_goodsdec = "";
if(map.get("box_no") !=null){
box_no = String.valueOf(map.get("box_no"));
int sumh = Integer.parseInt(box_no.split("-")[1]);
int sumq = Integer.parseInt(box_no.split("-")[0]);
sumbox_no=sumh-sumq+1;
}
if(map.get("box_pono") !=null) {
box_pono = String.valueOf(map.get("box_pono"));
}
if(map.get("box_endescribe") !=null) {
box_endescribe = String.valueOf(map.get("box_endescribe"));
}
if(map.get("box_Goods_Volume") !=null) {
box_Goods_Volume = Double.parseDouble(String.valueOf(map.get("box_Goods_Volume")));
}
if(map.get("box_goods_number") !=null) {
box_goods_number = Integer.parseInt(String.valueOf(map.get("box_goods_number")));
}
if(map.get("box_gross_weight") !=null) {
box_gross_weight = Double.parseDouble(String.valueOf(map.get("box_gross_weight")));
}
if(map.get("box_goods_weight") !=null) {
box_goods_weight = Double.parseDouble(String.valueOf(map.get("box_goods_weight")));
}
if(map.get("box_goodsdec") !=null) {
box_goodsdec = String.valueOf(map.get("box_goodsdec"));
}
cells91[0] = getCell(box_no,"1111","normal","10","14");
cells91[1] = getCell(box_pono+" "+box_endescribe,"1111","normal","10","14");
cells91[1].setColspan(3);
cells91[4] = getCell(String.valueOf(box_Goods_Volume),"1111","normal","10","14");
cells91[5] = getCell(String.valueOf(box_goods_number),"1111","normal","10","14");
cells91[6] = getCell(String.valueOf(box_gross_weight),"1111","normal","10","14");
cells91[7] = getCell(String.valueOf(box_goods_weight),"1111","normal","10","14");
listRow.add(row91);
document.add(table);
table = new PdfPTable(8);
table.setWidthPercentage(100); // 宽度100%填充
table.setSpacingBefore(5f); // 前间距
table.setSpacingAfter(0f); // 后间距
table.setWidths(columnWidths);
listRow = table.getRows();
PdfPCell cells92[] = new PdfPCell[8];
PdfPRow row92 = new PdfPRow(cells92);
double sumbox_no1 = sumbox_no;
cells92[0] = getCell(sumbox_no+"","1111","normal","10","14");
cells92[1] = getCell(box_goodsdec+"","1111","normal","10","14");
cells92[1].setColspan(3);
cells92[4] = getCell(box_Goods_Volume*sumbox_no+"" ,"1111","normal","10","14");
cells92[5] = getCell(box_Goods_Volume*box_goods_number+"","1111","normal","10","14");
cells92[6] = getCell(box_Goods_Volume*box_gross_weight+"","1111","normal","10","14");
cells92[7] = getCell(box_Goods_Volume*box_goods_weight+"","1111","normal","10","14");
listRow.add(row92);
document.add(table);
zxs=zxs+sumbox_no;
}
}
}else{
//首页
for (int p = 0; p <firstpage; p++) {
if(a<mp.size()){
Map<String,Object> map = mp.get(a);
a++;
table = new PdfPTable(8);
table.setWidthPercentage(100); // 宽度100%填充
table.setSpacingBefore(5f); // 前间距
table.setSpacingAfter(0f); // 后间距
table.setWidths(columnWidths);
listRow = table.getRows();
PdfPCell cells91[] = new PdfPCell[8];
PdfPRow row91 = new PdfPRow(cells91);
String box_no = "";
String box_pono = "";
String box_endescribe = "";
double box_Goods_Volume = 0.0;
int box_goods_number = 0;
double box_gross_weight = 0.0;
double box_goods_weight = 0.0;
int sumbox_no = 0;
String box_goodsdec = "";
if(map.get("box_no") !=null){
box_no = String.valueOf(map.get("box_no"));
int sumh = Integer.parseInt(box_no.split("-")[1]);
int sumq = Integer.parseInt(box_no.split("-")[0]);
sumbox_no=sumh-sumq+1;
}
if(map.get("box_pono") !=null) {
box_pono = String.valueOf(map.get("box_pono"));
}
if(map.get("box_endescribe") !=null) {
box_endescribe = String.valueOf(map.get("box_endescribe"));
}
if(map.get("box_Goods_Volume") !=null) {
box_Goods_Volume = Double.parseDouble(String.valueOf(map.get("box_Goods_Volume")));
}
if(map.get("box_goods_number") !=null) {
box_goods_number = Integer.parseInt(String.valueOf(map.get("box_goods_number")));
}
if(map.get("box_gross_weight") !=null) {
box_gross_weight = Double.parseDouble(String.valueOf(map.get("box_gross_weight")));
}
if(map.get("box_goods_weight") !=null) {
box_goods_weight = Double.parseDouble(String.valueOf(map.get("box_goods_weight")));
}
if(map.get("box_goodsdec") !=null) {
box_goodsdec = String.valueOf(map.get("box_goodsdec"));
}
cells91[0] = getCell(box_no,"1111","normal","10","14");
cells91[1] = getCell(box_pono+" "+box_endescribe,"1111","normal","10","14");
cells91[1].setColspan(3);
cells91[4] = getCell(String.valueOf(box_Goods_Volume),"1111","normal","10","14");
cells91[5] = getCell(String.valueOf(box_goods_number),"1111","normal","10","14");
cells91[6] = getCell(String.valueOf(box_gross_weight),"1111","normal","10","14");
cells91[7] = getCell(String.valueOf(box_goods_weight),"1111","normal","10","14");
listRow.add(row91);
document.add(table);
table = new PdfPTable(8);
table.setWidthPercentage(100); // 宽度100%填充
table.setSpacingBefore(5f); // 前间距
table.setSpacingAfter(0f); // 后间距
table.setWidths(columnWidths);
listRow = table.getRows();
PdfPCell cells92[] = new PdfPCell[8];
PdfPRow row92 = new PdfPRow(cells92);
double sumbox_no1 = sumbox_no;
cells92[0] = getCell(sumbox_no+"","1111","normal","10","14");
cells92[1] = getCell(box_goodsdec+"","1111","normal","10","14");
cells92[1].setColspan(3);
cells92[4] = getCell(box_Goods_Volume*sumbox_no+"" ,"1111","normal","10","14");
cells92[5] = getCell(box_Goods_Volume*box_goods_number+"","1111","normal","10","14");
cells92[6] = getCell(box_Goods_Volume*box_gross_weight+"","1111","normal","10","14");
cells92[7] = getCell(box_Goods_Volume*box_goods_weight+"","1111","normal","10","14");
listRow.add(row92);
document.add(table);
zxs=zxs+sumbox_no;
}
}
}
//最后一页的时候
if((i+1)==pageNo){
String sql = " select " +
" sum(box_goods_volume) box_goods_volume1, "+
" sum(box_goods_number) box_goods_number1, "+
" sum(box_gross_weight) box_gross_weight1, "+
" sum(box_goods_weight) box_goods_weight1 "+
" from ldc_order a \n" +
" left join ldc_order_box b on(a.id = b.box_orderid) " +
" where 1=1 " +
" and box_orderid = '"+id+"'" ;
Map<String, Object> map2 = jdbcTemplate.queryForMap(sql);
String box_goods_volume1 = "";
String box_goods_number1 = "";
String box_gross_weight1 = "";
String box_goods_weight1 = "";
if(map2.get("box_goods_volume1")!=null){
box_goods_volume1 = String.valueOf(map2.get("box_goods_volume1"));
}
if(map2.get("box_goods_volume1")!=null){
box_goods_number1 = String.valueOf(map2.get("box_goods_number1"));
}
if(map2.get("box_goods_volume1")!=null){
box_gross_weight1 = String.valueOf(map2.get("box_gross_weight1"));
}
if(map2.get("box_goods_volume1")!=null){
box_goods_weight1 = String.valueOf(map2.get("box_goods_weight1"));
}
table = new PdfPTable(8);
table.setWidthPercentage(100); // 宽度100%填充
table.setSpacingBefore(5f); // 前间距
table.setSpacingAfter(0f); // 后间距
table.setWidths(columnWidths);
listRow = table.getRows();
PdfPCell cells91_a[] = new PdfPCell[8];
PdfPRow row91_a = new PdfPRow(cells91_a);
cells91_a[0] = getCell("","0111","normal","10","20");
cells91_a[1] = getCell("GRAND TOTAL:","0111","bold","12","20");
cells91_a[1].setColspan(2);
cells91_a[3] = getCell(zxs+" Carton","0111","bold","12","20");
cells91_a[4] = getCell(box_goods_volume1+" m3","0111","bold","12","20");
cells91_a[5] = getCell(box_goods_number1+" PCS","0111","bold","12","20");
cells91_a[6] = getCell(box_gross_weight1+" KGS","0111","bold","12","20");
cells91_a[7] = getCell(box_goods_weight1+" KGS","0111","bold","12","20");
listRow.add(row91_a);
document.add(table);
}
paragraph = new Paragraph("PAGE "+(i+1)+" OF "+pageNo,f);
paragraph.setAlignment(Element.ALIGN_CENTER);
paragraph.setSpacingBefore(0f); // 前间距
paragraph.setSpacingAfter(0f); // 后间距
document.add(paragraph);
}
// //图片处理
// File file=new File(request.getServletContext().getRealPath("/")+"webpage/com/jeecg/pdf/hg.png");
// if(file.exists()){
// Image image = Image.getInstance(request.getServletContext().getRealPath("/")+"webpage/com/jeecg/pdf/hg.png");
//// image.scaleAbsolute(mmTopx(40), mmTopx(39));
// image.setAbsolutePosition(40, 520);
// document.add(image);
// }
// 关闭文档
document.close();
// 关闭书写器
writer.flush();
writer.close();
response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setContentType("application/pdf");
//decMainService.exportOutPDF(request, response, id);
}