md
This commit is contained in:
parent
1598d6bdfd
commit
f39d976a59
@ -37,6 +37,7 @@ import com.xdadan.erp.emis.domain.vo.*;
|
||||
import com.xdadan.erp.emis.service.*;
|
||||
import com.xdadan.erp.emis.service.print.IXddTplPrint;
|
||||
import com.xdadan.erp.emis.service.print.tanex.TanexTplPrintImpl;
|
||||
import com.xdadan.erp.emis.utils.PrintUtils;
|
||||
import com.xdadan.erp.emis.utils.WaybillHelper;
|
||||
import com.xdadan.erp.system.domain.SysFileInfo;
|
||||
import com.xdadan.erp.system.service.ISysFileInfoService;
|
||||
@ -549,15 +550,20 @@ public class EmisWaybillController extends EmisBaseController
|
||||
|
||||
if(!StringUtils.isEmpty(billCode)){
|
||||
try {
|
||||
JSONArray jArr = new JSONArray();
|
||||
String[] billCodeArr = billCode.split(",");
|
||||
|
||||
for(String billCodeItem:billCodeArr) {
|
||||
Map<String, Object> order = emisBaseService.getWaybillPrintOrder(billCodeItem, billCodeRange,tplCode,lang, printType);
|
||||
JSONArray jArr = new JSONArray();
|
||||
String printManCode=getLoginUser().getUser().getEmpCode();
|
||||
|
||||
String strArry=PrintUtils.getPdfByBillCode(billCode,printType,printManCode);
|
||||
JSONArray fileArr = JSONArray.parseArray(strArry);
|
||||
for(Object objFile:fileArr) {
|
||||
JSONObject jObjFileItem=(JSONObject)objFile;
|
||||
String result=jObjFileItem.getString("result");
|
||||
String billCodeItem=jObjFileItem.getString("billCodeItem");
|
||||
JSONObject printItem = new JSONObject();
|
||||
printItem.put("billCode",billCodeItem);
|
||||
if(order!=null) {
|
||||
|
||||
if("success".equals(result)){
|
||||
String pdfbase64=jObjFileItem.getString("file");
|
||||
try
|
||||
{
|
||||
String fileId = UUID.fastUUID().toString();
|
||||
@ -568,11 +574,11 @@ public class EmisWaybillController extends EmisBaseController
|
||||
saveDir.mkdirs();
|
||||
}
|
||||
|
||||
String saveFileName = fileUploadDir+File.separator+fileId+".png";
|
||||
String saveFileName = fileUploadDir+File.separator+fileId+".jpg";
|
||||
|
||||
FileOutputStream os = new FileOutputStream(saveFileName);//输出流
|
||||
IXddTplPrint tplPrint = new TanexTplPrintImpl();
|
||||
tplPrint.genPNG(order, os);
|
||||
PrintUtils.genImage(pdfbase64, os);
|
||||
|
||||
JSONObject jObjRemark = new JSONObject();
|
||||
jObjRemark.put("billCode",billCodeItem);
|
||||
@ -594,15 +600,66 @@ public class EmisWaybillController extends EmisBaseController
|
||||
printItem.put("message","生成图片异常");
|
||||
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
printItem.put("result","fail");
|
||||
printItem.put("message","未获取到数据");
|
||||
}
|
||||
|
||||
jArr.add(printItem);
|
||||
|
||||
}
|
||||
|
||||
// JSONArray jArr = new JSONArray();
|
||||
// String[] billCodeArr = billCode.split(",");
|
||||
//
|
||||
// for(String billCodeItem:billCodeArr) {
|
||||
// Map<String, Object> order = emisBaseService.getWaybillPrintOrder(billCodeItem, billCodeRange,tplCode,lang, printType);
|
||||
// JSONObject printItem = new JSONObject();
|
||||
// printItem.put("billCode",billCodeItem);
|
||||
// if(order!=null) {
|
||||
//
|
||||
// try
|
||||
// {
|
||||
// String fileId = UUID.fastUUID().toString();
|
||||
// String fileUploadDir = PayConfig.getUploadPath()+File.separator+DateUtils.datePath();
|
||||
//
|
||||
// File saveDir = new File(fileUploadDir);
|
||||
// if(!saveDir.exists()){
|
||||
// saveDir.mkdirs();
|
||||
// }
|
||||
//
|
||||
// String saveFileName = fileUploadDir+File.separator+fileId+".png";
|
||||
//
|
||||
// FileOutputStream os = new FileOutputStream(saveFileName);//输出流
|
||||
// IXddTplPrint tplPrint = new TanexTplPrintImpl();
|
||||
// tplPrint.genPNG(order, os);
|
||||
//
|
||||
// JSONObject jObjRemark = new JSONObject();
|
||||
// jObjRemark.put("billCode",billCodeItem);
|
||||
// jObjRemark.put("billCodeRange",billCodeRange);
|
||||
// jObjRemark.put("lang",lang);
|
||||
// jObjRemark.put("printType",printType);
|
||||
//
|
||||
// SysFileInfo sysFileInfo=sysFileInfoService.ossUploadLocalFile(saveFileName,billCodeItem,jObjRemark.toJSONString());
|
||||
// String imageUrl = sysFileInfo.getFileRemoteUrl();
|
||||
// printItem.put("imageUrl", imageUrl);
|
||||
// printItem.put("result","success");
|
||||
// printItem.put("message","success");
|
||||
// }
|
||||
// catch (Exception e)
|
||||
// {
|
||||
// e.printStackTrace();
|
||||
// printItem.put("imageUrl", "");
|
||||
// printItem.put("result","fail");
|
||||
// printItem.put("message","生成图片异常");
|
||||
//
|
||||
// }
|
||||
//
|
||||
//
|
||||
// }else{
|
||||
// printItem.put("result","fail");
|
||||
// printItem.put("message","未获取到数据");
|
||||
// }
|
||||
// jArr.add(printItem);
|
||||
// }
|
||||
|
||||
return AjaxResult.success("获取成功",jArr);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
|
||||
112
emis-biz/src/main/java/com/xdadan/erp/emis/utils/PrintUtils.java
Normal file
112
emis-biz/src/main/java/com/xdadan/erp/emis/utils/PrintUtils.java
Normal file
@ -0,0 +1,112 @@
|
||||
package com.xdadan.erp.emis.utils;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xdadan.erp.common.constant.Constants;
|
||||
import com.xdadan.erp.common.core.domain.AjaxResult;
|
||||
import com.xdadan.erp.common.core.redis.RedisCache;
|
||||
import com.xdadan.erp.common.utils.HTTPHelperV3;
|
||||
import com.xdadan.erp.common.utils.StringUtils;
|
||||
import com.xdadan.erp.common.utils.spring.SpringUtils;
|
||||
import org.apache.pdfbox.pdmodel.PDDocument;
|
||||
import org.apache.pdfbox.rendering.ImageType;
|
||||
import org.apache.pdfbox.rendering.PDFRenderer;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 打印工具服务
|
||||
*
|
||||
* @author xdadan
|
||||
*/
|
||||
public class PrintUtils
|
||||
{
|
||||
|
||||
public static String getPdfByBillCode(String billCode, String tplCode,String printManCode) throws Exception {
|
||||
String url="http://api.print.xdadan.com/getPdfByBillCode?billCode="+billCode+"&tplCode="+tplCode+"&printManCode="+printManCode;
|
||||
|
||||
try {
|
||||
String result= HTTPHelperV3.get(url);
|
||||
if(!StringUtils.isEmpty(result)) {
|
||||
JSONObject jobj = JSONObject.parseObject(result);
|
||||
if ("200".equals(jobj.getString("code"))) {
|
||||
return jobj.getString("data");
|
||||
} else {
|
||||
throw new Exception(jobj.getString("msg"));
|
||||
}
|
||||
}else{
|
||||
return null;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new Exception("系统异常,联系客服:"+e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
public static void genImage(String base64, OutputStream os) throws Exception {
|
||||
// System.out.print("base64:"+base64);
|
||||
byte[] pdf_bytes = Base64.getDecoder().decode(base64);
|
||||
PDDocument document = PDDocument.load(pdf_bytes);
|
||||
PDFRenderer renderer = new PDFRenderer(document);
|
||||
BufferedImage bufferedImage = renderer.renderImageWithDPI(0, 200, ImageType.RGB);
|
||||
ImageIO.write(bufferedImage, "jpg", os);
|
||||
}
|
||||
|
||||
public static JSONArray getImageByBillCode(String billCode, String tplCode,String printManCode) throws Exception {
|
||||
|
||||
try {
|
||||
String data=getPdfByBillCode(billCode,tplCode,"1");
|
||||
JSONArray jsonArray = JSONArray.parseArray(data);
|
||||
for (Object jobj:jsonArray) {
|
||||
JSONObject item=(JSONObject)jobj;
|
||||
if(item.containsKey("file")){
|
||||
String pdfBase64=item.getString("file");
|
||||
String billCodeIem=item.getString("billCode");
|
||||
// base64 转 jpg
|
||||
String saveFileName="/Users/alan/Downloads/"+billCodeIem+".jpg";
|
||||
FileOutputStream os = new FileOutputStream(saveFileName);
|
||||
genImage(pdfBase64,os);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return jsonArray;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new Exception("系统异常,联系客服:"+e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// public AjaxResult genImageByPdf(String base64) throws Exception {
|
||||
// AjaxResult ar = new AjaxResult();
|
||||
//
|
||||
// char[] tplDataByte = Base64.getDecoder().decode(base64.getBytes("utf-8"));
|
||||
// ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
// genPDF(order, bos);
|
||||
// PDDocument document = PDDocument.load(bos.toByteArray());
|
||||
// PDFRenderer renderer = new PDFRenderer(document);
|
||||
// BufferedImage bufferedImage = renderer.renderImageWithDPI(0, 280, ImageType.RGB);
|
||||
// ImageIO.write(bufferedImage, "png", os);
|
||||
// return ar;
|
||||
// }
|
||||
|
||||
public static void main(String[] args) {
|
||||
String jObj = null;
|
||||
try {
|
||||
// T1232432432432&tplCode=TAN-GM-130&_t=123
|
||||
for(int i=0;i<1;i++) {
|
||||
JSONArray jsonArray = PrintUtils.getImageByBillCode("T1232432432432", "TAN-GM-130","1");
|
||||
System.out.println(jsonArray.toJSONString());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user