diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java index 485534725..6b0e07718 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java @@ -24,6 +24,7 @@ import com.xdadan.erp.common.enums.BusinessType; import com.xdadan.erp.common.utils.DateUtils; import com.xdadan.erp.common.utils.SecurityUtils; import com.xdadan.erp.common.utils.poi.ExcelUtil; +import com.xdadan.erp.common.utils.redis.CacheUtils; import com.xdadan.erp.emis.domain.EmisBrand; import com.xdadan.erp.emis.domain.EmisPrintTpl; import com.xdadan.erp.emis.domain.EmisSite; @@ -34,16 +35,21 @@ import com.xdadan.erp.emis.domain.vo.Reciever; import com.xdadan.erp.emis.domain.vo.Sender; import com.xdadan.erp.emis.domain.vo.WaybillOrder; import com.xdadan.erp.emis.service.*; +import com.xdadan.erp.emis.service.print.IXddTplPrint; +import com.xdadan.erp.emis.service.print.tanex.TanexSubBillPrintImpl; +import com.xdadan.erp.emis.service.print.tanex.TanexTplPrintImpl; import com.xdadan.erp.emis.utils.WaybillHelper; import com.xdadan.erp.system.service.ISysConfigService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.OutputStream; import java.nio.charset.Charset; import java.util.*; @@ -378,6 +384,57 @@ public class EmisCommonController extends EmisBaseController } } + + @GetMapping("/getBillPng/{uuid}") + public AjaxResult getBillPng(HttpServletRequest request, HttpServletResponse response,@PathVariable("uuid")String uuid ) + { +// "https://api.emis.tanex56.com/api/bizsvr/emis/common/getBillPng/123123212.png" + if(StringUtils.isEmpty(uuid)){ + return AjaxResult.error("参数错误"); + } + // redissonService.setStr("PRINT-IMG-"+uuid,"",300); + /* + { + "billCode":"", + "tplCode":"", + "printManCode":"" + } + */ + String PRINT_KEY="PRINT-IMG-"+uuid.trim(); + String printParamStr=redissonService.getStr(PRINT_KEY); + if(StringUtils.isEmpty(printParamStr)){ + return AjaxResult.error("图片已过期"); + } + + JSONObject jObj = JSONObject.parseObject(printParamStr); + String billCode=jObj.getString("billCode"); + String tplCode=jObj.getString("tplCode"); + String printManCode=jObj.getString("printManCode"); + + try { + response.setCharacterEncoding("UTF-8"); + response.setContentType(MediaType.IMAGE_PNG_VALUE); + response.setHeader("Content-Disposition", "filename=" + uuid+".png"); + OutputStream os=response.getOutputStream(); + + Map order = emisBaseService.getWaybillPrintOrder(billCode, "1,1",tplCode, "zh", tplCode,printManCode); + if(order!=null) { + IXddTplPrint tplPrint = new TanexSubBillPrintImpl(); + tplPrint.genPNG(order, os); + + }else{ + return AjaxResult.error("运单信息失败"); + } + + + }catch (Exception ex){ + ex.printStackTrace(); + return AjaxResult.error("异常"); + } + + return AjaxResult.success("成功"); + } + /** * 获取打印模版 */ diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java index adf23df75..b0b7aaed0 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java @@ -30,6 +30,7 @@ import com.deepoove.poi.data.Pictures; import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter; import com.xdadan.erp.common.config.PayConfig; import com.xdadan.erp.common.core.domain.entity.SysUser; +import com.xdadan.erp.common.core.redis.RedissonService; import com.xdadan.erp.common.utils.BarcodeUtils; import com.xdadan.erp.common.utils.DateUtils; import com.xdadan.erp.common.utils.file.FileUtils; @@ -103,6 +104,9 @@ public class EmisWaybillController extends EmisBaseController @Autowired private IEmisTmsScanRecordService emisTmsScanRecordService; + @Autowired + RedissonService redissonService; + @GetMapping(value = "/checkWaybillIsExists") public AjaxResult checkWaybillIsExists(String billCode){ @@ -977,12 +981,32 @@ public class EmisWaybillController extends EmisBaseController String item = subCodArr[i]; if(!StringUtils.isEmpty(item)) { - Map order = emisBaseService.getWaybillPrintOrder(item, subBillCodeRange, tpCodeItem, "zh", tpCodeItem, printManCode); - String pdfBase64Data = xtp.genPDFBase64(order); +// Map order = emisBaseService.getWaybillPrintOrder(item, subBillCodeRange, tpCodeItem, "zh", tpCodeItem, printManCode); +// String pdfBase64Data = xtp.genPDFBase64(order); + + /* + { + "billCode":"", + "tplCode":"", + "printManCode":"" + } + */ + + String uuid = UUID.fastUUID().toString(); + JSONObject jObjImg = new JSONObject(); + jObjImg.put("billCode",item); + jObjImg.put("tplCode",tpCodeItem); + jObjImg.put("printManCode",printManCode); + + redissonService.setStr("PRINT-IMG-"+uuid,jObjImg.toJSONString(),1800); + JSONObject jObj = new JSONObject(); jObj.put("result", "success"); - jObj.put("billCodeItem", item); - jObj.put("file", pdfBase64Data); +// jObj.put("billCodeItem", item); +// jObj.put("file", pdfBase64Data); + String imageUrl="https://api.emis.tanex56.com/api/bizsvr/emis/common/getBillPng/"+uuid; + jObj.put("imageUrl", imageUrl); + jObj.put("fileType", "URL"); fileArrAll.add(jObj); } @@ -1009,6 +1033,7 @@ public class EmisWaybillController extends EmisBaseController for(Object objFile:fileArrAll) { JSONObject jObjFileItem = (JSONObject) objFile; String result = jObjFileItem.getString("result"); + String fileType = jObjFileItem.getString("fileType"); String billCodeItem = jObjFileItem.getString("billCodeItem"); JSONObject printItem = new JSONObject(); printItem.put("billCode", billCodeItem); @@ -1016,8 +1041,23 @@ public class EmisWaybillController extends EmisBaseController continue; } - String pdfbase64 = jObjFileItem.getString("file"); + if("URL".equals(fileType)){ + String imageUrl = jObjFileItem.getString("imageUrl"); + printItem.put("imageUrl", imageUrl); + printItem.put("result", "success"); + printItem.put("message", "success"); + + jArr.add(printItem); + continue; + } + + + // 远程PDF生成模式 try { + + + + String pdfbase64 = jObjFileItem.getString("file"); String fileId = UUID.fastUUID().toString(); String fileUploadDir = PayConfig.getUploadPath() + File.separator + DateUtils.datePath(); @@ -1281,6 +1321,8 @@ public class EmisWaybillController extends EmisBaseController } + + @RequestMapping("/updatePrintStatus") public AjaxResult updatePrintStatus(String billCode) {