Commit d5c9239f authored by Allen Chen's avatar Allen Chen

commit

parent a23b40bd
......@@ -6,7 +6,7 @@ public class YJTConfig {
public static final String CLIENT_ID = "8f5f3f9c92e847b2894fc1c0afce3d62";
public static final String CLIENT_SECRET = "281d79ad5117d20a35efb9e7b0d5f7ee436399b0";
// 基础API地址
public static final String URL = "https://xxxx";
public static final String URL = "https://jy.ckexp.com/api/pdd_cs/order.php";
}
......@@ -89,6 +89,8 @@ public class PddLocalController {
@Resource
private LottoConfigImpl lottoConfigImpl;
@Resource
private PackageDetailImpl packageDetailImpl;
/*集运单列表*/
@Operation(
......@@ -98,7 +100,7 @@ public class PddLocalController {
)
@PostMapping("/logOrderList")
public JSONObject logOrderList(HttpServletRequest request, @RequestBody LogOrderListRequest logOrderListRequest) {
return JsonResponse.generateLocalCommonSuccessResponse(logOrderImpl.getListByRequest(logOrderListRequest),"");
return JsonResponse.generateLocalCommonSuccessResponse(logOrderImpl.getListByRequest(logOrderListRequest), "");
}
@PostMapping("/logOrderInfo")
......@@ -110,7 +112,7 @@ public class PddLocalController {
map.put("info", logOrderInfoResponse);
map.put("detailList", logOrderMailDetailList);
map.put("itemList", logOrderItemList);
return JsonResponse.generateLocalCommonSuccessResponse(map,"");
return JsonResponse.generateLocalCommonSuccessResponse(map, "");
}
/*包裹列表*/
......@@ -121,7 +123,7 @@ public class PddLocalController {
)
@PostMapping("/logOrderMailDetailList")
public JSONObject logOrderMailDetailList(HttpServletRequest request, @RequestBody LogOrderMailDetailListRequest logOrderMailDetailListRequest) {
return JsonResponse.generateLocalCommonSuccessResponse(logOrderMailDetailImpl.getListByCodeNo(logOrderMailDetailListRequest),"");
return JsonResponse.generateLocalCommonSuccessResponse(logOrderMailDetailImpl.getListByCodeNo(logOrderMailDetailListRequest), "");
}
/*运单号查询*/
......@@ -133,7 +135,7 @@ public class PddLocalController {
@PostMapping("/mailNoSelect")
public JSONObject mailNoSelect(HttpServletRequest request, @RequestBody MailNoRequest mailNoRequest) {
MailNoResponse mailNoResponse = logOrderMailDetailImpl.getInfoByMailNo(mailNoRequest.getMailNo());
return JsonResponse.generateLocalCommonSuccessResponse(mailNoResponse,"");
return JsonResponse.generateLocalCommonSuccessResponse(mailNoResponse, "");
}
/*待拆包列表*/
......@@ -145,7 +147,7 @@ public class PddLocalController {
@PostMapping("/packageNoticeList")
public JSONObject packageNoticeList(HttpServletRequest request, @RequestBody PackageNoticeRequest packageNoticeRequest) {
return JsonResponse.generateLocalCommonSuccessResponse(packageNoticeImpl.getList(packageNoticeRequest),"");
return JsonResponse.generateLocalCommonSuccessResponse(packageNoticeImpl.getList(packageNoticeRequest), "");
}
/*待拆包查询*/
......@@ -171,7 +173,7 @@ public class PddLocalController {
map.put("logOrder", unpackNoticeEntity);
map.put("list", list);
return JsonResponse.generateLocalCommonSuccessResponse(map,"");
return JsonResponse.generateLocalCommonSuccessResponse(map, "");
}
// /*出库列表*/
......@@ -195,7 +197,7 @@ public class PddLocalController {
@PostMapping("/collectOrderList")
public JSONObject collectOrderList(HttpServletRequest request, @RequestBody CollectOrderListRequest collectOrderListRequest) {
return JsonResponse.generateLocalCommonSuccessResponse(collectOrderImpl.getList(collectOrderListRequest),"");
return JsonResponse.generateLocalCommonSuccessResponse(collectOrderImpl.getList(collectOrderListRequest), "");
}
/*出库详情*/
......@@ -216,7 +218,7 @@ public class PddLocalController {
map.put("detail", orderDetailList);
map.put("receiver", collectReceiver);
return JsonResponse.generateLocalCommonSuccessResponse(map,"");
return JsonResponse.generateLocalCommonSuccessResponse(map, "");
}
// /*拆包列表*/
......@@ -270,7 +272,7 @@ public class PddLocalController {
map.put("collectOutMailDetail", mailDetailEntity);
map.put("list", list);
return JsonResponse.generateLocalCommonSuccessResponse(map,"");
return JsonResponse.generateLocalCommonSuccessResponse(map, "");
}
......@@ -304,7 +306,7 @@ public class PddLocalController {
// map.put("list", list);
// map.put("collectOutMailDetail", collectOutMailDetail);
return JsonResponse.generateLocalCommonSuccessResponse(map,"");
return JsonResponse.generateLocalCommonSuccessResponse(map, "");
}
/*签收*/
......@@ -342,69 +344,76 @@ public class PddLocalController {
//根据logisticsOrderCode 判断是否已存放
StorageEntity storageEntity = storageImpl.getInfoByLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
if(storageEntity == null){
//计算存储位置
List<AreaEntity> list = areaImpl.getList();
for(AreaEntity lists : list){
// 根据code 计算占用
//获取所有入库数量
int num = storageImpl.findAllCount(lists.getCode());
//获取所有应入库但未入库数量
Integer reNum = storageImpl.findReNumCount(lists.getCode());
reNum = (reNum == null) ? 0 : reNum;
// 区域总可用数量
int blank = lists.getTotal() - lists.getReserved();
// 实际可使用数量
int actual = blank - reNum - num;
//需要数量
int need = logOrderMailDetailImpl.findCountByLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
if(actual >= need){
//区域可用
storageEntity = new StorageEntity();
storageEntity.setLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
storageEntity.setCode(lists.getCode());
storageEntity.setMailNo(receiveRequest.getMailNo());
storageEntity.setNum(1);
storageEntity.setTotal(need);
storageImpl.save(storageEntity);
key = true;
break;
}
}
if(!key){
//没有匹配到合适区域
return JsonResponse.generateLocalCommonFailedResponse("-1", "暂无可用区域");
}
}else {
StorageEntity storage = storageImpl.getInfoByMailNo(receiveRequest.getMailNo());
if(storage == null){
StorageEntity storageNew = new StorageEntity();
storageNew.setLogisticsOrderCode(storageEntity.getLogisticsOrderCode());
storageNew.setCode(storageEntity.getCode());
storageNew.setMailNo(receiveRequest.getMailNo());
storageNew.setNum(storageEntity.getNum());
storageNew.setTotal(storageEntity.getTotal());
storageImpl.save(storageNew);
//获取已签收
//已签收 + 1
storageImpl.updateNumByLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
}else {
return JsonResponse.generateLocalCommonFailedResponse("-1", "请勿重复签收");
}
}
StorageEntity storageEntity = storageImpl.getInfoByLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
if (storageEntity == null) {
//计算存储位置
List<AreaEntity> list = areaImpl.getList();
String code = null;
int sub = 0;
//需要数量
int need = logOrderMailDetailImpl.findCountByLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
for (AreaEntity lists : list) {
// 根据code 计算占用
//获取所有入库数量
int num = storageImpl.findAllCount(lists.getCode());
//获取所有应入库但未入库数量
Integer reNum = storageImpl.findReNumCount(lists.getCode());
reNum = (reNum == null) ? 0 : reNum;
// 区域总可用数量
int blank = lists.getTotal() - lists.getReserved();
// 实际可使用数量
int actual = blank - reNum - num;
if (actual >= need) {
if (actual > sub) {
sub = actual;
code = lists.getCode();
}
key = true;
break;
}
}
if (!key) {
//没有匹配到合适区域
return JsonResponse.generateLocalCommonFailedResponse("-1", "暂无可用区域");
} else {
//区域可用
storageEntity = new StorageEntity();
storageEntity.setLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
storageEntity.setCode(code);
storageEntity.setMailNo(receiveRequest.getMailNo());
storageEntity.setNum(1);
storageEntity.setTotal(need);
storageImpl.save(storageEntity);
}
} else {
StorageEntity storage = storageImpl.getInfoByMailNo(receiveRequest.getMailNo());
if (storage == null) {
StorageEntity storageNew = new StorageEntity();
storageNew.setLogisticsOrderCode(storageEntity.getLogisticsOrderCode());
storageNew.setCode(storageEntity.getCode());
storageNew.setMailNo(receiveRequest.getMailNo());
storageNew.setNum(storageEntity.getNum());
storageNew.setTotal(storageEntity.getTotal());
storageImpl.save(storageNew);
//获取已签收
//已签收 + 1
storageImpl.updateNumByLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
} else {
return JsonResponse.generateLocalCommonFailedResponse("-1", "请勿重复签收");
}
}
str = "签收成功";
......@@ -469,7 +478,7 @@ public class PddLocalController {
// ioEntity.setResp(resp);
// logOrderMailDetailIo.save(ioEntity);
return JsonResponse.generateLocalCommonSuccessResponse(true,str);
return JsonResponse.generateLocalCommonSuccessResponse(true, str);
}
/*入库*/
......@@ -483,11 +492,11 @@ public class PddLocalController {
LogOrderMailDetailEntity mailNoResponse = logOrderMailDetailImpl.getByMailNo(inBoundRequest.getMailNo());
PddServiceConsoInboundRequest notifyRequest = new PddServiceConsoInboundRequest();
// 查询orderNO 下所有mailNo,判断是全部还是部分
Long unNum = logOrderMailDetailImpl.getSumByCodeStatus(mailNoResponse.getLogisticsOrderCode(), (long) StatusEnum.SIGNED.getCode());
unNum += logOrderMailDetailImpl.getSumByCodeStatus(mailNoResponse.getLogisticsOrderCode(), (long) StatusEnum.ORDERCREATE.getCode());
// Long unNum = logOrderMailDetailImpl.getSumByCodeStatus(mailNoResponse.getLogisticsOrderCode(), (long) StatusEnum.SIGNED.getCode());
// unNum += logOrderMailDetailImpl.getSumByCodeStatus(mailNoResponse.getLogisticsOrderCode(), (long) StatusEnum.ORDERCREATE.getCode());
LogOrderEntity logOrderEntity = logOrderImpl.getByOrderCode(mailNoResponse.getLogisticsOrderCode());
Long num = (long) logOrderEntity.getNum();
log.info("已入库数量 {} ; 未入库数量 {}", num, unNum);
log.info("已入库数量 {} ; 全部数量 {}", num, logOrderEntity.getPackageQuantity());
//判断是否存在入库信息
if (mailNoResponse.getStatus() == StatusEnum.INBOUND.getCode()) {
......@@ -497,7 +506,7 @@ public class PddLocalController {
num += 1;
mailNoResponse.setEnterTime(TimeTool.getNowDate());
mailNoResponse.setStatus(StatusEnum.INBOUND.getCode());
unNum -= 1;
// unNum -= 1;
}
notifyRequest.setPackageQuantity(num);
mailNoResponse.setLength(inBoundRequest.getLength().intValue());
......@@ -510,8 +519,8 @@ public class PddLocalController {
notifyRequest.setExecuteTime(TimeTool.getNowString());
notifyRequest.setTimeZone("UTC+8");
if (unNum <= 0) {
log.info("已入库数量 {} ; 全部数量 {}", num, logOrderEntity.getPackageQuantity());
if (num >= logOrderEntity.getPackageQuantity()) {
notifyRequest.setStatus("FULL_INBOUND");
} else {
notifyRequest.setStatus("PART_INBOUND");
......@@ -574,7 +583,7 @@ public class PddLocalController {
logOrderImpl.updateById(logOrderEntity);
return JsonResponse.generateLocalCommonSuccessResponse(true,"");
return JsonResponse.generateLocalCommonSuccessResponse(true, "");
}
/**
......@@ -667,7 +676,7 @@ public class PddLocalController {
logOrderMailDetailImpl.updateById(mailNoResponse);
return JsonResponse.generateLocalCommonSuccessResponse(true,"");
return JsonResponse.generateLocalCommonSuccessResponse(true, "");
}
/**
......@@ -824,7 +833,7 @@ public class PddLocalController {
collectOrderImpl.updateById(collectOrderEntity);
}
return JsonResponse.generateLocalCommonSuccessResponse(true,"");
return JsonResponse.generateLocalCommonSuccessResponse(true, "");
}
/*收到出库通知后 开始拣货 拣货完成 */
......@@ -969,78 +978,10 @@ public class PddLocalController {
}
return JsonResponse.generateLocalCommonSuccessResponse(true,"");
return JsonResponse.generateLocalCommonSuccessResponse(true, "");
}
/*通知拆包后拣货*/
// @PostMapping("/finishUnpackPackage")
// public JSONObject finishUnpackPackage(HttpServletRequest request, @RequestBody FinishUnpackRequest finishUnpackRequest) {
// LogOrderPackageEntity logOrderPackageEntity = logOrderPackageImpl.getInfoByCode(finishUnpackRequest.getLogisticsOrderCode());
//
// String action = finishUnpackRequest.getAction();
//
// LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity();
//
// PddServiceConsoCoBizActionNotifyRequest.Result notifyResult = new PddServiceConsoCoBizActionNotifyRequest.Result();
// if (action.equals("begin_pick")) {
// logOrderMailDetailIoEntity.setStatus(StatusEnum.UNPACKBEGINPICK.getCode());
//
// } else if (action.equals("finish_pick")) {
// logOrderMailDetailIoEntity.setStatus(StatusEnum.UNPACKFINISHPICK.getCode());
//
// } else if (action.equals("finish_unpack")) {
// logOrderMailDetailIoEntity.setStatus(StatusEnum.FINISHUNPACK.getCode());
//
// PddServiceConsoCoBizActionNotifyRequest notifyRequest = new PddServiceConsoCoBizActionNotifyRequest();
// notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
// notifyRequest.setOrderCode(logOrderPackageEntity.getLogisticsOrderCode());
// notifyRequest.setBizAction(action);
// notifyRequest.setExecuteTime(TimeTool.getNowString());
// notifyRequest.setTimeZone("UTC+8");
//
// notifyRequest.setBizActionDesc("拆包完成");
// notifyRequest.setUnpackRemark("");
// notifyResult.setCode(0);
// notifyRequest.setPackageInfos(new ArrayList<>());
// PddServiceConsoCoBizActionNotifyRequest.PackageInfo packageInfo = new PddServiceConsoCoBizActionNotifyRequest.PackageInfo();
// notifyRequest.getPackageInfos().add(packageInfo);
// packageInfo.setWeight((long) logOrderPackageEntity.getWeight());
// packageInfo.setWidth((long) logOrderPackageEntity.getWidth());
// packageInfo.setHeight((long) logOrderPackageEntity.getHeight());
// packageInfo.setLength((long) logOrderPackageEntity.getLength());
// packageInfo.setActualWeight((long) logOrderPackageEntity.getWeight());
// packageInfo.setConsoType("SEA");
// packageInfo.setGoodsType(logOrderPackageEntity.getPackageType());
//
// notifyRequest.setResult(notifyResult);
//
// JYBaseRequestModel requestModel = new JYBaseRequestModel();
// requestModel.setRequest(JSON.toJSONString(notifyRequest));
// requestModel.setRequest_id("" + new Date().getTime());
// requestModel.setType("pdd.service.conso.co.biz.action.notify");
// requestModel.setTarget_client_id(PddAPIConfig.CLIENT_ID);
// requestModel.setClient_id(PddAPIConfig.CLIENT_ID);
// long time = new Date().getTime() / 1000;
// requestModel.setTimestamp(time);
// requestModel.setSign(PddSignTool.generateSign(requestModel, PddAPIConfig.CLIENT_SECRET));
// String resp = PddHttpTool.sendJsonPost(requestModel);
//
// logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel));
// logOrderMailDetailIoEntity.setResp(resp);
//
// }
//
// logOrderMailDetailIoEntity.setMailNo(logOrderPackageEntity.getMailNo());
// logOrderMailDetailIoEntity.setExpressCode(logOrderPackageEntity.getExpressCode());
// logOrderMailDetailIoEntity.setLogisticsOrderCode(logOrderPackageEntity.getLogisticsOrderCode());
// logOrderMailDetailIoEntity.setExpressCode(logOrderPackageEntity.getExpressCode());
// logOrderMailDetailIoImpl.save(logOrderMailDetailIoEntity);
// logOrderPackageEntity.setStatus(logOrderMailDetailIoEntity.getStatus().toString());
// return JsonResponse.generateLocalCommonSuccessResponse(true);
//
// }
/*拣货完成后出库*/
@Operation(
summary = "拣货完成后出库",
......@@ -1195,7 +1136,7 @@ public class PddLocalController {
}
collectOrderImpl.updateOrderStatus(StatusEnum.FINISHOUTBOUND.getCode(), collectOrderResponse.getUid());
return JsonResponse.generateLocalCommonSuccessResponse(outBoundRequest.getOutPackageList(),"");
return JsonResponse.generateLocalCommonSuccessResponse(outBoundRequest.getOutPackageList(), "");
}
/*拣货完成后出库*/
......@@ -1355,7 +1296,7 @@ public class PddLocalController {
}
return JsonResponse.generateLocalCommonSuccessResponse(true,"");
return JsonResponse.generateLocalCommonSuccessResponse(true, "");
}
/* 无主件号识别快递包裹识别 */
......@@ -1394,7 +1335,7 @@ public class PddLocalController {
if (response != null) {
String logisticsOrderCode = response.getLogisticsOrderCode();
if (logisticsOrderCode != null) {
return JsonResponse.generateLocalCommonSuccessResponse(response,"");
return JsonResponse.generateLocalCommonSuccessResponse(response, "");
}
}
return JsonResponse.generateOpenCommonFailedResponse(-1, "该包裹信息无法识别");
......@@ -1451,7 +1392,7 @@ public class PddLocalController {
JSONObject response = JSONObject.parseObject(resp).getJSONObject("response");
if (response != null) {
if (response.getBoolean("success")) {
return JsonResponse.generateLocalCommonSuccessResponse(true,"");
return JsonResponse.generateLocalCommonSuccessResponse(true, "");
}
}
return JsonResponse.generateOpenCommonFailedResponse(-1, "问题件申报失败");
......@@ -1462,7 +1403,7 @@ public class PddLocalController {
/*区域列表*/
@PostMapping("/areaList")
public JSONObject areaList(HttpServletRequest request, @RequestBody AreaListRequest areaListRequest) {
return JsonResponse.generateLocalCommonSuccessResponse(areaImpl.areaList(areaListRequest),"");
return JsonResponse.generateLocalCommonSuccessResponse(areaImpl.areaList(areaListRequest), "");
}
/*区域新增*/
......@@ -1492,42 +1433,42 @@ public class PddLocalController {
response.setCode(response.getCode() + '>' + response.getPlace());
}
}
return JsonResponse.generateLocalCommonSuccessResponse(response,"");
return JsonResponse.generateLocalCommonSuccessResponse(response, "");
}
/*确认上架*/
@PostMapping("/storageAdd")
public JSONObject storageAdd(HttpServletRequest request, @RequestBody StorageRequest storageRequest) {
StorageEntity storageEntity = storageImpl.getInfoByMailNo(storageRequest.getMailNo());
if(storageEntity == null) {
StorageEntity storageEntity = storageImpl.getInfoByMailNo(storageRequest.getMailNo());
if (storageEntity == null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "未查询到商品区域信息");
}
if(storageEntity.getPlace() != null){
if (storageEntity.getPlace() != null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "请勿重复上架");
}
storageEntity.setPlace(storageRequest.getPlace());
storageImpl.updateById(storageEntity);
return JsonResponse.generateLocalCommonSuccessResponse(true,"上架成功");
return JsonResponse.generateLocalCommonSuccessResponse(true, "上架成功");
}
/*待拆包列表*/
@PostMapping("/unpackNoticeList")
public JSONObject unpackNoticeList(HttpServletRequest request, @RequestBody UnpackNoticeListRequest unpackNoticeListRequest) {
return JsonResponse.generateLocalCommonSuccessResponse(unpackNoticeImpl.getListByRequest(unpackNoticeListRequest),"");
return JsonResponse.generateLocalCommonSuccessResponse(unpackNoticeImpl.getListByRequest(unpackNoticeListRequest), "");
}
/*详情列表*/
@PostMapping("/storageList")
public JSONObject storageList(HttpServletRequest request, @RequestBody StorageListRequest storageListRequest) {
Map<String, Object> map = storageImpl.storageList(storageListRequest.getLogisticsOrderCode());
return JsonResponse.generateLocalCommonSuccessResponse(map,"");
return JsonResponse.generateLocalCommonSuccessResponse(map, "");
}
/*待出库列表*/
@PostMapping("/outboundNoticeList")
public JSONObject outboundNoticeList(HttpServletRequest request, @RequestBody OutboundNoticeListRequest outboundNoticeListRequest) {
return JsonResponse.generateLocalCommonSuccessResponse(outboundNoticeImpl.getListByRequest(outboundNoticeListRequest),"");
return JsonResponse.generateLocalCommonSuccessResponse(outboundNoticeImpl.getListByRequest(outboundNoticeListRequest), "");
}
/*拣货下架*/
......@@ -1538,7 +1479,7 @@ public class PddLocalController {
List<String> toMailList = new ArrayList<>();
List<StorageListResponse> toRemoveList = new ArrayList<>();
if(list.size() != storageDelRequest.getMailNo().size()){
if (list.size() != storageDelRequest.getMailNo().size()) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "下架包裹数量异常");
}
......@@ -1560,7 +1501,7 @@ public class PddLocalController {
list.removeAll(toRemoveList);
storageDelRequest.getMailNo().removeAll(toMailList);
if(list.size() != 0 || storageDelRequest.getMailNo().size() != 0){
if (list.size() != 0 || storageDelRequest.getMailNo().size() != 0) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "下架包裹信息异常");
}
......@@ -1568,7 +1509,7 @@ public class PddLocalController {
storageImpl.storageDel(ids);
//根据type 区分修改状态
if(("pick").equals(storageDelRequest.getType())){
if (("pick").equals(storageDelRequest.getType())) {
// 出库拣货下架
outboundNoticeImpl.updateStatusByOrderCode(storageDelRequest.getLogisticsOrderCode(), StatusEnum.PICKDOWN.getCode());
} else {
......@@ -1576,12 +1517,13 @@ public class PddLocalController {
unpackNoticeImpl.updateStatusByOrderCode(storageDelRequest.getLogisticsOrderCode(), StatusEnum.UNPACKFINISHPICK.getCode());
}
return JsonResponse.generateLocalCommonSuccessResponse(true,"");
return JsonResponse.generateLocalCommonSuccessResponse(true, "");
}
// 发往韩国的面单打印
@PostMapping("/mailLabel")
public JSONObject mailLabel(HttpServletRequest request, HttpServletResponse response, @RequestBody MailNoRequest mailNoRequest) {
public JSONObject mailLabel(HttpServletRequest request, HttpServletResponse response, @RequestBody MailNoRequest mailNoRequest) {
String mailNo = mailNoRequest.getMailNo();
LogOrderMailDetailIoEntity mailDetailIoEntity = logOrderMailDetailIoImpl.getOutboundByMailNo(mailNo);
if (mailDetailIoEntity == null) {
......@@ -1611,13 +1553,14 @@ public class PddLocalController {
JSONObject result = new JSONObject();
result.put("mailNo", mailNo);
result.put("file", Base64.getEncoder().encodeToString(bytes));
return JsonResponse.generateLocalCommonSuccessResponse(result,"");
return JsonResponse.generateLocalCommonSuccessResponse(result, "");
}
// 拆包的临时面单打印
/*拆包PDF*/
@PostMapping("/unpackLabel")
public JSONObject unpackLabel(HttpServletRequest request, HttpServletResponse response, @RequestBody UnpackNoticeRequest unpackNoticeRequest) {
public JSONObject unpackLabel(HttpServletRequest request, HttpServletResponse response, @RequestBody UnpackNoticeRequest unpackNoticeRequest) {
String orderCode = unpackNoticeRequest.getOrderCode();
UnpackNoticeEntity unpackNoticeEntity = unpackNoticeImpl.getByCode(orderCode);
......@@ -1632,8 +1575,7 @@ public class PddLocalController {
// return JsonResponse.generateLocalCommonFailedResponse("-1", "获取快递终端信息异常");
// }
byte[] bytes = ImagePdfUnpackGenerator.generatePdfWithUnpackTextImage(
orderCode);
byte[] bytes = ImagePdfCollectGenerator.generatePdfWithCollectTextImage(orderCode, "拆包", "" + list.size() + "件");
if (bytes == null) {
......@@ -1642,13 +1584,14 @@ public class PddLocalController {
JSONObject result = new JSONObject();
result.put("orderCode", orderCode);
result.put("file", Base64.getEncoder().encodeToString(bytes));
return JsonResponse.generateLocalCommonSuccessResponse(result,"");
return JsonResponse.generateLocalCommonSuccessResponse(result, "");
}
// 合包的临时面单打印
/*出库PDF*/
@PostMapping("/collectLabel")
public JSONObject collectLabel(HttpServletRequest request, HttpServletResponse response, @RequestBody UnpackNoticeRequest unpackNoticeRequest) {
public JSONObject collectLabel(HttpServletRequest request, HttpServletResponse response, @RequestBody UnpackNoticeRequest unpackNoticeRequest) {
String orderCode = unpackNoticeRequest.getOrderCode();
CollectOrderEntity collectOrderEntity = collectOrderImpl.getAllInfoByOrderCode(orderCode);
......@@ -1663,9 +1606,64 @@ public class PddLocalController {
// return JsonResponse.generateLocalCommonFailedResponse("-1", "获取快递终端信息异常");
// }
byte[] bytes = ImagePdfCollectGenerator.generatePdfWithCollectTextImage(
orderCode);
byte[] bytes = ImagePdfCollectGenerator.generatePdfWithCollectTextImage(orderCode, orderCode.startsWith("PT") ? "退运" : "出库", "" + mailDetailList.size() + "件");
if (bytes == null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "面单制作失败");
}
JSONObject result = new JSONObject();
result.put("orderCode", orderCode);
result.put("file", Base64.getEncoder().encodeToString(bytes));
return JsonResponse.generateLocalCommonSuccessResponse(result, "");
}
@PostMapping("/packageScanOrderCode")
public Map<String, Object> packageScanOrderCode(HttpServletRequest request, @RequestBody PackageScanOrderCodeRequest packageScanOrderCodeRequest) {
Map<String, Object> map = new HashMap<>();
CollectOrderResponse collectOrderResponse = collectOrderImpl.getByOrderCode(packageScanOrderCodeRequest.getOrderCode());
if (collectOrderResponse != null) {
List<CollectMailDetailEntity> list = collectMailDetailImpl.getListByOrderCode(packageScanOrderCodeRequest.getOrderCode());
map.put("list", list);
map.put("orderInfo", collectOrderResponse);
map.put("packType", "出库");
} else {
UnpackNoticeEntity unpackNoticeEntity = unpackNoticeImpl.getByCode(packageScanOrderCodeRequest.getOrderCode());
if (unpackNoticeEntity == null) {
return JsonResponse.generateOpenCommonFailedResponse(-1, "未找到该打包单信息");
}
List<UnpackMailDetailEntity> list = unpackMailDetailImpl.getListByCode(packageScanOrderCodeRequest.getOrderCode());
map.put("list", list);
map.put("orderInfo", unpackNoticeEntity);
map.put("packType", "拆包");
}
return JsonResponse.generateLocalCommonSuccessResponse(map, "");
}
// 打包后的临时面单打印
/*出库PDF*/
@PostMapping("/packageMailLabel")
public JSONObject packageMailLabel(HttpServletRequest request, HttpServletResponse response, @RequestBody PackageLabelRequest labelRequest) {
String orderCode = labelRequest.getOrderCode();
String typeString = null;
if (orderCode.startsWith("PT")) {
typeString = "退运";
} else {
CollectOrderEntity collectOrderEntity = collectOrderImpl.getAllInfoByOrderCode(orderCode);
if (collectOrderEntity == null) {
typeString = "拆包";
} else {
typeString = "出库";
}
}
List<PackageDetailEntity> list = packageDetailImpl.getByOrderCode(orderCode);
byte[] bytes = ImagePdfCollectGenerator.generatePdfWithCollectTextImage(orderCode + "-" + labelRequest.getMailNo(), typeString, "" + list.size() + "件");
if (bytes == null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "面单制作失败");
......@@ -1673,7 +1671,103 @@ public class PddLocalController {
JSONObject result = new JSONObject();
result.put("orderCode", orderCode);
result.put("file", Base64.getEncoder().encodeToString(bytes));
return JsonResponse.generateLocalCommonSuccessResponse(result,"");
return JsonResponse.generateLocalCommonSuccessResponse(result, "请打印");
}
@PostMapping("/packageComplete")
public JSONObject packageComplete(HttpServletRequest request, @RequestBody PackageCompleteRequest completeRequest) {
List<String> mailList = new ArrayList<>();
for (PackageCompleteRequest.OutPackage outPackage: completeRequest.getOutPackageList()){
mailList.addAll(outPackage.getOutBound());
}
// TODO 此处异常,需要处理
//获取所有可出库订单
List<CollectMailDetailEntity> list = collectMailDetailImpl.getListByOrderCode(completeRequest.getOrderCode());
if (list != null && !list.isEmpty()) {
// 拆单操作
// 存储需要删除的元素
List<CollectMailDetailEntity> toRemoveList = new ArrayList<>();
List<String> toRemoveOutBound = new ArrayList<>();
for (CollectMailDetailEntity lists : list) {
for (String mainNo : mailList) {
if (lists.getMailNo().equals(mainNo)) {
toRemoveList.add(lists);
toRemoveOutBound.add(mainNo);
}
}
}
list.removeAll(toRemoveList);
mailList.removeAll(toRemoveOutBound);
if (list.size() > 0 || mailList.size() > 0) {
//出库信息与已存信息不匹配,无法出库
return JsonResponse.generateLocalCommonFailedResponse("-1", "出库单数异常");
}
}
packageDetailImpl.removeByOrderCode(completeRequest.getOrderCode());
for (PackageCompleteRequest.OutPackage outPackage: completeRequest.getOutPackageList()){
PackageDetailEntity detailEntity = new PackageDetailEntity();
detailEntity.setOrderCode(completeRequest.getOrderCode());
detailEntity.setMailNo(outPackage.getMailNo());
detailEntity.setWidth(outPackage.getWidth());
detailEntity.setHeight(outPackage.getHeight());
detailEntity.setLength(outPackage.getLength());
detailEntity.setWeight(outPackage.getWeight());
detailEntity.setInMails(JSONObject.toJSONString(outPackage.getOutBound()));
detailEntity.setPackageType(outPackage.getPackageType());
detailEntity.setOrderType(outPackage.getOrderType());
packageDetailImpl.save(detailEntity);
}
return JsonResponse.generateLocalCommonSuccessResponse(completeRequest.getOutPackageList(), "打包成功");
}
@PostMapping("/packageScanUnpackOrderCode")
public JSONObject packageScanUnpackOrderCode(HttpServletRequest request, @RequestBody UnpackNoticeRequest unpackNoticeRequest) {
UnpackNoticeEntity unpackNoticeEntity = unpackNoticeImpl.getByCode(unpackNoticeRequest.getOrderCode());
if (unpackNoticeEntity == null) {
return JsonResponse.generateOpenCommonFailedResponse(-1, "未找到拆包通知信息");
}
List<PackageDetailEntity> packageDetailEntityList = packageDetailImpl.getByOrderCode(unpackNoticeRequest.getOrderCode());
Map<String, Object> map = new HashMap<>();
map.put("detail", unpackNoticeEntity);
map.put("list", packageDetailEntityList);
return JsonResponse.generateLocalCommonSuccessResponse(map, "获取成功");
}
@PostMapping("/packageScanOutboundOrderCode")
public Map<String, Object> packageScanOutboundOrderCode(HttpServletRequest request, @RequestBody UnpackNoticeRequest unpackNoticeRequest) {
Map<String, Object> map = new HashMap<>();
CollectOrderResponse collectOrderResponse = collectOrderImpl.getByOrderCode(unpackNoticeRequest.getOrderCode());
if (collectOrderResponse == null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "集运单信息不存在");
}
List<PackageDetailEntity> list = packageDetailImpl.getByOrderCode(unpackNoticeRequest.getOrderCode());
CollectReceiverDetailEntity collectReceiver = collectReceiverDetailImpl.getInfoByOrderCode(unpackNoticeRequest.getOrderCode());
map.put("list", list);
map.put("collectOrder", collectOrderResponse);
map.put("collectReceiver", collectReceiver);
// CollectOutMailDetailEntity collectOutMailDetail = collectOutMailDetailImpl.getInfoByMailNo(mailNoRequest.getMailNo());
// List<CollectOutMailDetailResponse> list = collectOutMailDetailImpl.getListByOrderCode(collectOutMailDetail.getOrderCode());
// CollectOrderResponse collectOrderResponse = collectOrderImpl.getByOrderCode(collectOutMailDetail.getOrderCode());
// map.put("list", list);
// map.put("collectOutMailDetail", collectOutMailDetail);
return JsonResponse.generateLocalCommonSuccessResponse(map, "");
}
}
package org.ta.pddserver.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("package_detail")
public class PackageDetailEntity {
@TableId(value = "uid")
private String uid;
@TableField(value = "created")
private String created;
@TableField(value = "orderCode")
private String orderCode;
/**
* 运单号(必填)
*/
@TableField(value = "mailNo")
private String mailNo;
/**
* 状态 长
*/
@TableField(value = "length")
private Integer length;
/**
* 状态 宽
*/
@TableField(value = "width")
private Integer width;
/**
* 状态 高
*/
@TableField(value = "height")
private Integer height;
/**
* 状态 重
*/
@TableField(value = "weight")
private Integer weight;
@TableField(value = "packageType")
private String packageType;
@TableField(value = "inMails")
private String inMails;
@TableField(value = "orderType")
private String orderType;
}
......@@ -55,115 +55,4 @@ public class UnpackNoticeEntity {
@TableField(value = "num")
private Integer num;
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getCreated() {
return created;
}
public void setCreated(String created) {
this.created = created;
}
public String getUpdated() {
return updated;
}
public void setUpdated(String updated) {
this.updated = updated;
}
public Integer getState() {
return state;
}
public void setState(Integer state) {
this.state = state;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getBuyerCode() {
return buyerCode;
}
public void setBuyerCode(String buyerCode) {
this.buyerCode = buyerCode;
}
public String getConsoType() {
return consoType;
}
public void setConsoType(String consoType) {
this.consoType = consoType;
}
public String getConsoWarehouseCode() {
return consoWarehouseCode;
}
public void setConsoWarehouseCode(String consoWarehouseCode) {
this.consoWarehouseCode = consoWarehouseCode;
}
public String getDeliveryType() {
return deliveryType;
}
public void setDeliveryType(String deliveryType) {
this.deliveryType = deliveryType;
}
public String getProviderCode() {
return providerCode;
}
public void setProviderCode(String providerCode) {
this.providerCode = providerCode;
}
public String getOrderCode() {
return orderCode;
}
public void setOrderCode(String orderCode) {
this.orderCode = orderCode;
}
public String getMailDetails() {
return mailDetails;
}
public void setMailDetails(String mailDetails) {
this.mailDetails = mailDetails;
}
public String getReceiverDetail() {
return receiverDetail;
}
public void setReceiverDetail(String receiverDetail) {
this.receiverDetail = receiverDetail;
}
}
......@@ -13,13 +13,10 @@ import java.io.ByteArrayOutputStream;
public class ImagePdfCollectGenerator {
public static byte[] generatePdfWithCollectTextImage(String orderCode) {
public static byte[] generatePdfWithCollectTextImage(String orderCode, String typeText, String numText) {
try {
// 1. 将文字转为图片(示例:韩文“안녕하세요,世界!”)
byte[] imageBytes = TextToImageCollectUtils.textToImage(
orderCode
);
byte[] imageBytes = TextToImageUtils.commonBarCodeAndTextToImage(orderCode, typeText, numText);
// return imageBytes;
......@@ -39,7 +36,7 @@ public class ImagePdfCollectGenerator {
// 4. 关闭文档
document.close();
return pdfBaos.toByteArray();
}catch (Exception e){
} catch (Exception e) {
e.printStackTrace();
return null;
}
......@@ -54,11 +51,11 @@ public class ImagePdfCollectGenerator {
// 2. 初始化PDF
Document document = new Document(pdfDoc, new PageSize((int) (150 * 300 / 25.4), (int) (100 * 300 / 25.4)));
for (int i = 1; i < 10; i ++) {
for (int i1 = 1; i1 < 12; i1 ++) {
for (int i2 = 1; i2 < 5; i2 ++) {
for (int i3 = 1; i3 < 3; i3 ++) {
if (i3 == 2 && (i2 == 1|| i2 == 4)) {
for (int i = 1; i < 10; i++) {
for (int i1 = 1; i1 < 12; i1++) {
for (int i2 = 1; i2 < 5; i2++) {
for (int i3 = 1; i3 < 3; i3++) {
if (i3 == 2 && (i2 == 1 || i2 == 4)) {
continue;
}
// 1. 将文字转为图片(示例:韩文“안녕하세요,世界!”)
......@@ -75,7 +72,6 @@ public class ImagePdfCollectGenerator {
}
}
......
......@@ -71,6 +71,30 @@ public class ImagePdfGenerator {
}
}
public static byte[] generateCollectCodeLabel(String code) throws Exception {
ByteArrayOutputStream pdfBaos = new ByteArrayOutputStream();
PdfWriter writer = new PdfWriter(pdfBaos);
PdfDocument pdfDoc = new PdfDocument(writer);
// 2. 初始化PDF
Document document = new Document(pdfDoc, new PageSize((int) (150 * 300 / 25.4), (int) (100 * 300 / 25.4)));
// 1. 将文字转为图片(示例:韩文“안녕하세요,世界!”)
byte[] imageBytes = TextToImageUtils.commonBarCodeToImage(code);
// 3. 将图片嵌入PDF
ImageData imageData = ImageDataFactory.create(imageBytes);
Image image = new Image(imageData);
// 设置图片在PDF中居中显示
image.setHorizontalAlignment(HorizontalAlignment.LEFT);
document.add(image);
// 4. 关闭文档
document.close();
return pdfBaos.toByteArray();
}
public static byte[] generateCode() throws Exception {
ByteArrayOutputStream pdfBaos = new ByteArrayOutputStream();
......
......@@ -170,6 +170,59 @@ public class TextToImageUtils {
return mailCode.substring(0, 4) + "-" + mailCode.substring(4, 8) + "-" + mailCode.substring(8, 12);
}
public static byte[] commonBarCodeAndTextToImage( String mailCode, String typeText, String numText
) throws Exception {
int width = 1770;
int height = 1180;
int startX = 0;
int startY = 0;
// 1. 创建 BufferedImage 作为画布
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
System.out.println("width = " + width + ", height = " + height);
Graphics2D g2d = image.createGraphics();
// 设置绘图属性(抗锯齿、渲染质量等)
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); // 文字抗锯齿
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB); // 文字平滑
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); // 渲染质量
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
// 2. 设置背景为白色
g2d.setColor(Color.white);
g2d.fillRect(0, 0, width, height);
g2d.setColor(Color.BLACK);
// 集运单号
Font font0 = Font.createFont(Font.TRUETYPE_FONT, new FileInputStream("./zh-gb.ttf")).deriveFont((float) 80);
g2d.setFont(font0);
FontMetrics metrics = g2d.getFontMetrics();
int x = (width - metrics.stringWidth(mailCode)) / 2; // 水平居中
// g2d.drawString(mailCode, startX + 400, 250);
g2d.drawString(mailCode, startX + 400, 1000);
byte[] code4Bytes = BarcodeUtils.generate39Barcode(mailCode, 1500, 550);
ByteArrayInputStream code4BytesIs = new ByteArrayInputStream(code4Bytes);
BufferedImage code4Img = ImageIO.read(code4BytesIs);
g2d.drawImage(code4Img, startX + 130, startY + 310, 1500, 550, null);
if (typeText != null) {
g2d.drawString(typeText, startX + 50, 100);
}
if (numText != null) {
g2d.drawString(numText, startX + 1500, 100);
}
g2d.dispose();
// 6. 将图片转为字节数组(PNG格式)
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
return baos.toByteArray();
}
public static byte[] commonBarCodeToImage( String mailCode
) throws Exception {
int width = 1770;
......
package org.ta.pddserver.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.ta.pddserver.entity.PackageDetailEntity;
import java.util.List;
@Mapper
public interface PackageDetailMapper extends BaseMapper<PackageDetailEntity> {
@Delete("DELETE FROM `package_detail` WHERE `orderCode` = #{orderCode};")
int removeByOrderCode(@Param("orderCode") String orderCode);
@Select("SELECT * FROM `package_detail` WHERE `orderCode` = #{orderCode};")
List<PackageDetailEntity> findByOrderCode(@Param("orderCode") String orderCode);
}
package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
public class PackageCompleteRequest {
@Schema(
description = "集运单号",
example = "P12345678",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String orderCode;
@Schema(
description = "订单信息列表",
example = "",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private List<OutPackage> outPackageList;
/**
* 包裹详情
*/
@Data
public static class OutBoundList {
@Schema(
description = "运单号",
example = "P12345678",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String mailNo;
}
@Data
public static class OutPackage {
@Schema(
description = "包裹长度,单位默认为厘米",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Integer length;
@Schema(
description = "包裹宽度,单位默认为厘米",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Integer width;
@Schema(
description = "包裹高度,单位默认为厘米",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Integer height;
@Schema(
description = "实重重量,单位默认为克",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Integer weight;
@Schema(
description = "包裹种类",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String packageType;
@Schema(
description = "运单号",
example = "P1234567",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String mailNo;
@Schema(
description = "包裹关联原快递包裹单号,多拆少时必填",
example = "[\"SF000001\"]",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 非必填
)
private List<String> outBound;
private String orderType;
}
}
package org.ta.pddserver.model.api.request;
import lombok.Data;
@Data
public class PackageLabelRequest {
private String orderCode;
private String mailNo;
}
package org.ta.pddserver.model.api.request;
import lombok.Data;
@Data
public class PackageScanOrderCodeRequest {
private String orderCode;
}
package org.ta.pddserver.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.ta.pddserver.entity.PackageDetailEntity;
public interface PackageDetailService extends IService<PackageDetailEntity> {
}
package org.ta.pddserver.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.ta.pddserver.entity.PackageDetailEntity;
import org.ta.pddserver.mapper.PackageDetailMapper;
import org.ta.pddserver.service.PackageDetailService;
import org.ta.pddserver.utils.JsonResponse;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class PackageDetailImpl extends ServiceImpl<PackageDetailMapper, PackageDetailEntity> implements PackageDetailService {
public int removeByOrderCode(String orderCode) {
return this.baseMapper.removeByOrderCode(orderCode);
}
public List<PackageDetailEntity> getByOrderCode(String orderCode) {
return this.baseMapper.findByOrderCode(orderCode);
}
}
\ No newline at end of file
......@@ -7,12 +7,12 @@ spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.2.222:3306/pdd_api?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
username: root
password: root
# url: jdbc:mysql://lyhj-mysql.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
# username: pdd
# password: pdd123
# url: jdbc:mysql://192.168.2.222:3306/pdd_api?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
# username: root
# password: root
url: jdbc:mysql://lyhj-mysql.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
username: pdd
password: pdd123
# url: jdbc:mysql://rm-j6cv8n7zx12x0sqreuo.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
# username: pdd
# password: pdd123
......@@ -26,8 +26,8 @@ spring:
application:
name: PddServer
server:
port: 9000 # 正式端口号 - 向拼多多正式环境开放接口
# port: 9100 # 正式端口号 - 向海际系统正式环境开放接口
# port: 9000 # 正式端口号 - 向拼多多正式环境开放接口
port: 9100 # 正式端口号 - 向海际系统正式环境开放接口
# port: 8600 # 测试端口号
logging:
level:
......@@ -41,4 +41,4 @@ mybatis-plus:
pdd:
jyt: 0
gd: 0
lotto: 0
\ No newline at end of file
lotto: 1
\ No newline at end of file
......@@ -67,6 +67,7 @@ public class PdfTest {
byte[] strToBytes = ImagePdfGenerator.generateCode();
outputStream.write(strToBytes);
System.out.println("文件写入成功!");
} catch (IOException e) {
e.printStackTrace();
} catch (FontFormatException e) {
......
File added
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment