This commit is contained in:
linfso 2024-08-11 23:43:21 +08:00
parent 1fc508abd5
commit 784af0930c
2 changed files with 104 additions and 5 deletions

View File

@ -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<String, Object> 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("成功");
}
/**
* 获取打印模版
*/

View File

@ -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<String, Object> order = emisBaseService.getWaybillPrintOrder(item, subBillCodeRange, tpCodeItem, "zh", tpCodeItem, printManCode);
String pdfBase64Data = xtp.genPDFBase64(order);
// Map<String, Object> 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)
{