Commit d5c9239f authored by Allen Chen's avatar Allen Chen

commit

parent a23b40bd
...@@ -6,7 +6,7 @@ public class YJTConfig { ...@@ -6,7 +6,7 @@ public class YJTConfig {
public static final String CLIENT_ID = "8f5f3f9c92e847b2894fc1c0afce3d62"; public static final String CLIENT_ID = "8f5f3f9c92e847b2894fc1c0afce3d62";
public static final String CLIENT_SECRET = "281d79ad5117d20a35efb9e7b0d5f7ee436399b0"; public static final String CLIENT_SECRET = "281d79ad5117d20a35efb9e7b0d5f7ee436399b0";
// 基础API地址 // 基础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 { ...@@ -89,6 +89,8 @@ public class PddLocalController {
@Resource @Resource
private LottoConfigImpl lottoConfigImpl; private LottoConfigImpl lottoConfigImpl;
@Resource
private PackageDetailImpl packageDetailImpl;
/*集运单列表*/ /*集运单列表*/
@Operation( @Operation(
...@@ -98,7 +100,7 @@ public class PddLocalController { ...@@ -98,7 +100,7 @@ public class PddLocalController {
) )
@PostMapping("/logOrderList") @PostMapping("/logOrderList")
public JSONObject logOrderList(HttpServletRequest request, @RequestBody LogOrderListRequest logOrderListRequest) { public JSONObject logOrderList(HttpServletRequest request, @RequestBody LogOrderListRequest logOrderListRequest) {
return JsonResponse.generateLocalCommonSuccessResponse(logOrderImpl.getListByRequest(logOrderListRequest),""); return JsonResponse.generateLocalCommonSuccessResponse(logOrderImpl.getListByRequest(logOrderListRequest), "");
} }
@PostMapping("/logOrderInfo") @PostMapping("/logOrderInfo")
...@@ -110,7 +112,7 @@ public class PddLocalController { ...@@ -110,7 +112,7 @@ public class PddLocalController {
map.put("info", logOrderInfoResponse); map.put("info", logOrderInfoResponse);
map.put("detailList", logOrderMailDetailList); map.put("detailList", logOrderMailDetailList);
map.put("itemList", logOrderItemList); map.put("itemList", logOrderItemList);
return JsonResponse.generateLocalCommonSuccessResponse(map,""); return JsonResponse.generateLocalCommonSuccessResponse(map, "");
} }
/*包裹列表*/ /*包裹列表*/
...@@ -121,7 +123,7 @@ public class PddLocalController { ...@@ -121,7 +123,7 @@ public class PddLocalController {
) )
@PostMapping("/logOrderMailDetailList") @PostMapping("/logOrderMailDetailList")
public JSONObject logOrderMailDetailList(HttpServletRequest request, @RequestBody LogOrderMailDetailListRequest logOrderMailDetailListRequest) { 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 { ...@@ -133,7 +135,7 @@ public class PddLocalController {
@PostMapping("/mailNoSelect") @PostMapping("/mailNoSelect")
public JSONObject mailNoSelect(HttpServletRequest request, @RequestBody MailNoRequest mailNoRequest) { public JSONObject mailNoSelect(HttpServletRequest request, @RequestBody MailNoRequest mailNoRequest) {
MailNoResponse mailNoResponse = logOrderMailDetailImpl.getInfoByMailNo(mailNoRequest.getMailNo()); MailNoResponse mailNoResponse = logOrderMailDetailImpl.getInfoByMailNo(mailNoRequest.getMailNo());
return JsonResponse.generateLocalCommonSuccessResponse(mailNoResponse,""); return JsonResponse.generateLocalCommonSuccessResponse(mailNoResponse, "");
} }
/*待拆包列表*/ /*待拆包列表*/
...@@ -145,7 +147,7 @@ public class PddLocalController { ...@@ -145,7 +147,7 @@ public class PddLocalController {
@PostMapping("/packageNoticeList") @PostMapping("/packageNoticeList")
public JSONObject packageNoticeList(HttpServletRequest request, @RequestBody PackageNoticeRequest packageNoticeRequest) { 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 { ...@@ -171,7 +173,7 @@ public class PddLocalController {
map.put("logOrder", unpackNoticeEntity); map.put("logOrder", unpackNoticeEntity);
map.put("list", list); map.put("list", list);
return JsonResponse.generateLocalCommonSuccessResponse(map,""); return JsonResponse.generateLocalCommonSuccessResponse(map, "");
} }
// /*出库列表*/ // /*出库列表*/
...@@ -195,7 +197,7 @@ public class PddLocalController { ...@@ -195,7 +197,7 @@ public class PddLocalController {
@PostMapping("/collectOrderList") @PostMapping("/collectOrderList")
public JSONObject collectOrderList(HttpServletRequest request, @RequestBody CollectOrderListRequest collectOrderListRequest) { 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 { ...@@ -216,7 +218,7 @@ public class PddLocalController {
map.put("detail", orderDetailList); map.put("detail", orderDetailList);
map.put("receiver", collectReceiver); map.put("receiver", collectReceiver);
return JsonResponse.generateLocalCommonSuccessResponse(map,""); return JsonResponse.generateLocalCommonSuccessResponse(map, "");
} }
// /*拆包列表*/ // /*拆包列表*/
...@@ -270,7 +272,7 @@ public class PddLocalController { ...@@ -270,7 +272,7 @@ public class PddLocalController {
map.put("collectOutMailDetail", mailDetailEntity); map.put("collectOutMailDetail", mailDetailEntity);
map.put("list", list); map.put("list", list);
return JsonResponse.generateLocalCommonSuccessResponse(map,""); return JsonResponse.generateLocalCommonSuccessResponse(map, "");
} }
...@@ -304,7 +306,7 @@ public class PddLocalController { ...@@ -304,7 +306,7 @@ public class PddLocalController {
// map.put("list", list); // map.put("list", list);
// map.put("collectOutMailDetail", collectOutMailDetail); // map.put("collectOutMailDetail", collectOutMailDetail);
return JsonResponse.generateLocalCommonSuccessResponse(map,""); return JsonResponse.generateLocalCommonSuccessResponse(map, "");
} }
/*签收*/ /*签收*/
...@@ -344,10 +346,15 @@ public class PddLocalController { ...@@ -344,10 +346,15 @@ public class PddLocalController {
StorageEntity storageEntity = storageImpl.getInfoByLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode()); StorageEntity storageEntity = storageImpl.getInfoByLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
if(storageEntity == null){ if (storageEntity == null) {
//计算存储位置 //计算存储位置
List<AreaEntity> list = areaImpl.getList(); List<AreaEntity> list = areaImpl.getList();
for(AreaEntity lists : list){ String code = null;
int sub = 0;
//需要数量
int need = logOrderMailDetailImpl.findCountByLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
for (AreaEntity lists : list) {
// 根据code 计算占用 // 根据code 计算占用
//获取所有入库数量 //获取所有入库数量
int num = storageImpl.findAllCount(lists.getCode()); int num = storageImpl.findAllCount(lists.getCode());
...@@ -358,34 +365,36 @@ public class PddLocalController { ...@@ -358,34 +365,36 @@ public class PddLocalController {
int blank = lists.getTotal() - lists.getReserved(); int blank = lists.getTotal() - lists.getReserved();
// 实际可使用数量 // 实际可使用数量
int actual = blank - reNum - num; 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);
if (actual >= need) {
if (actual > sub) {
sub = actual;
code = lists.getCode();
}
key = true; key = true;
break; break;
} }
} }
if(!key){ if (!key) {
//没有匹配到合适区域 //没有匹配到合适区域
return JsonResponse.generateLocalCommonFailedResponse("-1", "暂无可用区域"); 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 { } else {
StorageEntity storage = storageImpl.getInfoByMailNo(receiveRequest.getMailNo()); StorageEntity storage = storageImpl.getInfoByMailNo(receiveRequest.getMailNo());
if(storage == null){ if (storage == null) {
StorageEntity storageNew = new StorageEntity(); StorageEntity storageNew = new StorageEntity();
storageNew.setLogisticsOrderCode(storageEntity.getLogisticsOrderCode()); storageNew.setLogisticsOrderCode(storageEntity.getLogisticsOrderCode());
storageNew.setCode(storageEntity.getCode()); storageNew.setCode(storageEntity.getCode());
...@@ -400,7 +409,7 @@ public class PddLocalController { ...@@ -400,7 +409,7 @@ public class PddLocalController {
//已签收 + 1 //已签收 + 1
storageImpl.updateNumByLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode()); storageImpl.updateNumByLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
}else { } else {
return JsonResponse.generateLocalCommonFailedResponse("-1", "请勿重复签收"); return JsonResponse.generateLocalCommonFailedResponse("-1", "请勿重复签收");
} }
...@@ -469,7 +478,7 @@ public class PddLocalController { ...@@ -469,7 +478,7 @@ public class PddLocalController {
// ioEntity.setResp(resp); // ioEntity.setResp(resp);
// logOrderMailDetailIo.save(ioEntity); // logOrderMailDetailIo.save(ioEntity);
return JsonResponse.generateLocalCommonSuccessResponse(true,str); return JsonResponse.generateLocalCommonSuccessResponse(true, str);
} }
/*入库*/ /*入库*/
...@@ -483,11 +492,11 @@ public class PddLocalController { ...@@ -483,11 +492,11 @@ public class PddLocalController {
LogOrderMailDetailEntity mailNoResponse = logOrderMailDetailImpl.getByMailNo(inBoundRequest.getMailNo()); LogOrderMailDetailEntity mailNoResponse = logOrderMailDetailImpl.getByMailNo(inBoundRequest.getMailNo());
PddServiceConsoInboundRequest notifyRequest = new PddServiceConsoInboundRequest(); PddServiceConsoInboundRequest notifyRequest = new PddServiceConsoInboundRequest();
// 查询orderNO 下所有mailNo,判断是全部还是部分 // 查询orderNO 下所有mailNo,判断是全部还是部分
Long unNum = logOrderMailDetailImpl.getSumByCodeStatus(mailNoResponse.getLogisticsOrderCode(), (long) StatusEnum.SIGNED.getCode()); // Long unNum = logOrderMailDetailImpl.getSumByCodeStatus(mailNoResponse.getLogisticsOrderCode(), (long) StatusEnum.SIGNED.getCode());
unNum += logOrderMailDetailImpl.getSumByCodeStatus(mailNoResponse.getLogisticsOrderCode(), (long) StatusEnum.ORDERCREATE.getCode()); // unNum += logOrderMailDetailImpl.getSumByCodeStatus(mailNoResponse.getLogisticsOrderCode(), (long) StatusEnum.ORDERCREATE.getCode());
LogOrderEntity logOrderEntity = logOrderImpl.getByOrderCode(mailNoResponse.getLogisticsOrderCode()); LogOrderEntity logOrderEntity = logOrderImpl.getByOrderCode(mailNoResponse.getLogisticsOrderCode());
Long num = (long) logOrderEntity.getNum(); Long num = (long) logOrderEntity.getNum();
log.info("已入库数量 {} ; 未入库数量 {}", num, unNum); log.info("已入库数量 {} ; 全部数量 {}", num, logOrderEntity.getPackageQuantity());
//判断是否存在入库信息 //判断是否存在入库信息
if (mailNoResponse.getStatus() == StatusEnum.INBOUND.getCode()) { if (mailNoResponse.getStatus() == StatusEnum.INBOUND.getCode()) {
...@@ -497,7 +506,7 @@ public class PddLocalController { ...@@ -497,7 +506,7 @@ public class PddLocalController {
num += 1; num += 1;
mailNoResponse.setEnterTime(TimeTool.getNowDate()); mailNoResponse.setEnterTime(TimeTool.getNowDate());
mailNoResponse.setStatus(StatusEnum.INBOUND.getCode()); mailNoResponse.setStatus(StatusEnum.INBOUND.getCode());
unNum -= 1; // unNum -= 1;
} }
notifyRequest.setPackageQuantity(num); notifyRequest.setPackageQuantity(num);
mailNoResponse.setLength(inBoundRequest.getLength().intValue()); mailNoResponse.setLength(inBoundRequest.getLength().intValue());
...@@ -510,8 +519,8 @@ public class PddLocalController { ...@@ -510,8 +519,8 @@ public class PddLocalController {
notifyRequest.setExecuteTime(TimeTool.getNowString()); notifyRequest.setExecuteTime(TimeTool.getNowString());
notifyRequest.setTimeZone("UTC+8"); notifyRequest.setTimeZone("UTC+8");
log.info("已入库数量 {} ; 全部数量 {}", num, logOrderEntity.getPackageQuantity());
if (unNum <= 0) { if (num >= logOrderEntity.getPackageQuantity()) {
notifyRequest.setStatus("FULL_INBOUND"); notifyRequest.setStatus("FULL_INBOUND");
} else { } else {
notifyRequest.setStatus("PART_INBOUND"); notifyRequest.setStatus("PART_INBOUND");
...@@ -574,7 +583,7 @@ public class PddLocalController { ...@@ -574,7 +583,7 @@ public class PddLocalController {
logOrderImpl.updateById(logOrderEntity); logOrderImpl.updateById(logOrderEntity);
return JsonResponse.generateLocalCommonSuccessResponse(true,""); return JsonResponse.generateLocalCommonSuccessResponse(true, "");
} }
/** /**
...@@ -667,7 +676,7 @@ public class PddLocalController { ...@@ -667,7 +676,7 @@ public class PddLocalController {
logOrderMailDetailImpl.updateById(mailNoResponse); logOrderMailDetailImpl.updateById(mailNoResponse);
return JsonResponse.generateLocalCommonSuccessResponse(true,""); return JsonResponse.generateLocalCommonSuccessResponse(true, "");
} }
/** /**
...@@ -824,7 +833,7 @@ public class PddLocalController { ...@@ -824,7 +833,7 @@ public class PddLocalController {
collectOrderImpl.updateById(collectOrderEntity); collectOrderImpl.updateById(collectOrderEntity);
} }
return JsonResponse.generateLocalCommonSuccessResponse(true,""); return JsonResponse.generateLocalCommonSuccessResponse(true, "");
} }
/*收到出库通知后 开始拣货 拣货完成 */ /*收到出库通知后 开始拣货 拣货完成 */
...@@ -969,78 +978,10 @@ public class PddLocalController { ...@@ -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( @Operation(
summary = "拣货完成后出库", summary = "拣货完成后出库",
...@@ -1195,7 +1136,7 @@ public class PddLocalController { ...@@ -1195,7 +1136,7 @@ public class PddLocalController {
} }
collectOrderImpl.updateOrderStatus(StatusEnum.FINISHOUTBOUND.getCode(), collectOrderResponse.getUid()); collectOrderImpl.updateOrderStatus(StatusEnum.FINISHOUTBOUND.getCode(), collectOrderResponse.getUid());
return JsonResponse.generateLocalCommonSuccessResponse(outBoundRequest.getOutPackageList(),""); return JsonResponse.generateLocalCommonSuccessResponse(outBoundRequest.getOutPackageList(), "");
} }
/*拣货完成后出库*/ /*拣货完成后出库*/
...@@ -1355,7 +1296,7 @@ public class PddLocalController { ...@@ -1355,7 +1296,7 @@ public class PddLocalController {
} }
return JsonResponse.generateLocalCommonSuccessResponse(true,""); return JsonResponse.generateLocalCommonSuccessResponse(true, "");
} }
/* 无主件号识别快递包裹识别 */ /* 无主件号识别快递包裹识别 */
...@@ -1394,7 +1335,7 @@ public class PddLocalController { ...@@ -1394,7 +1335,7 @@ public class PddLocalController {
if (response != null) { if (response != null) {
String logisticsOrderCode = response.getLogisticsOrderCode(); String logisticsOrderCode = response.getLogisticsOrderCode();
if (logisticsOrderCode != null) { if (logisticsOrderCode != null) {
return JsonResponse.generateLocalCommonSuccessResponse(response,""); return JsonResponse.generateLocalCommonSuccessResponse(response, "");
} }
} }
return JsonResponse.generateOpenCommonFailedResponse(-1, "该包裹信息无法识别"); return JsonResponse.generateOpenCommonFailedResponse(-1, "该包裹信息无法识别");
...@@ -1451,7 +1392,7 @@ public class PddLocalController { ...@@ -1451,7 +1392,7 @@ public class PddLocalController {
JSONObject response = JSONObject.parseObject(resp).getJSONObject("response"); JSONObject response = JSONObject.parseObject(resp).getJSONObject("response");
if (response != null) { if (response != null) {
if (response.getBoolean("success")) { if (response.getBoolean("success")) {
return JsonResponse.generateLocalCommonSuccessResponse(true,""); return JsonResponse.generateLocalCommonSuccessResponse(true, "");
} }
} }
return JsonResponse.generateOpenCommonFailedResponse(-1, "问题件申报失败"); return JsonResponse.generateOpenCommonFailedResponse(-1, "问题件申报失败");
...@@ -1462,7 +1403,7 @@ public class PddLocalController { ...@@ -1462,7 +1403,7 @@ public class PddLocalController {
/*区域列表*/ /*区域列表*/
@PostMapping("/areaList") @PostMapping("/areaList")
public JSONObject areaList(HttpServletRequest request, @RequestBody AreaListRequest areaListRequest) { 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 { ...@@ -1492,42 +1433,42 @@ public class PddLocalController {
response.setCode(response.getCode() + '>' + response.getPlace()); response.setCode(response.getCode() + '>' + response.getPlace());
} }
} }
return JsonResponse.generateLocalCommonSuccessResponse(response,""); return JsonResponse.generateLocalCommonSuccessResponse(response, "");
} }
/*确认上架*/ /*确认上架*/
@PostMapping("/storageAdd") @PostMapping("/storageAdd")
public JSONObject storageAdd(HttpServletRequest request, @RequestBody StorageRequest storageRequest) { public JSONObject storageAdd(HttpServletRequest request, @RequestBody StorageRequest storageRequest) {
StorageEntity storageEntity = storageImpl.getInfoByMailNo(storageRequest.getMailNo()); StorageEntity storageEntity = storageImpl.getInfoByMailNo(storageRequest.getMailNo());
if(storageEntity == null) { if (storageEntity == null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "未查询到商品区域信息"); return JsonResponse.generateLocalCommonFailedResponse("-1", "未查询到商品区域信息");
} }
if(storageEntity.getPlace() != null){ if (storageEntity.getPlace() != null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "请勿重复上架"); return JsonResponse.generateLocalCommonFailedResponse("-1", "请勿重复上架");
} }
storageEntity.setPlace(storageRequest.getPlace()); storageEntity.setPlace(storageRequest.getPlace());
storageImpl.updateById(storageEntity); storageImpl.updateById(storageEntity);
return JsonResponse.generateLocalCommonSuccessResponse(true,"上架成功"); return JsonResponse.generateLocalCommonSuccessResponse(true, "上架成功");
} }
/*待拆包列表*/ /*待拆包列表*/
@PostMapping("/unpackNoticeList") @PostMapping("/unpackNoticeList")
public JSONObject unpackNoticeList(HttpServletRequest request, @RequestBody UnpackNoticeListRequest unpackNoticeListRequest) { public JSONObject unpackNoticeList(HttpServletRequest request, @RequestBody UnpackNoticeListRequest unpackNoticeListRequest) {
return JsonResponse.generateLocalCommonSuccessResponse(unpackNoticeImpl.getListByRequest(unpackNoticeListRequest),""); return JsonResponse.generateLocalCommonSuccessResponse(unpackNoticeImpl.getListByRequest(unpackNoticeListRequest), "");
} }
/*详情列表*/ /*详情列表*/
@PostMapping("/storageList") @PostMapping("/storageList")
public JSONObject storageList(HttpServletRequest request, @RequestBody StorageListRequest storageListRequest) { public JSONObject storageList(HttpServletRequest request, @RequestBody StorageListRequest storageListRequest) {
Map<String, Object> map = storageImpl.storageList(storageListRequest.getLogisticsOrderCode()); Map<String, Object> map = storageImpl.storageList(storageListRequest.getLogisticsOrderCode());
return JsonResponse.generateLocalCommonSuccessResponse(map,""); return JsonResponse.generateLocalCommonSuccessResponse(map, "");
} }
/*待出库列表*/ /*待出库列表*/
@PostMapping("/outboundNoticeList") @PostMapping("/outboundNoticeList")
public JSONObject outboundNoticeList(HttpServletRequest request, @RequestBody OutboundNoticeListRequest outboundNoticeListRequest) { 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 { ...@@ -1538,7 +1479,7 @@ public class PddLocalController {
List<String> toMailList = new ArrayList<>(); List<String> toMailList = new ArrayList<>();
List<StorageListResponse> toRemoveList = new ArrayList<>(); List<StorageListResponse> toRemoveList = new ArrayList<>();
if(list.size() != storageDelRequest.getMailNo().size()){ if (list.size() != storageDelRequest.getMailNo().size()) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "下架包裹数量异常"); return JsonResponse.generateLocalCommonFailedResponse("-1", "下架包裹数量异常");
} }
...@@ -1560,7 +1501,7 @@ public class PddLocalController { ...@@ -1560,7 +1501,7 @@ public class PddLocalController {
list.removeAll(toRemoveList); list.removeAll(toRemoveList);
storageDelRequest.getMailNo().removeAll(toMailList); storageDelRequest.getMailNo().removeAll(toMailList);
if(list.size() != 0 || storageDelRequest.getMailNo().size() != 0){ if (list.size() != 0 || storageDelRequest.getMailNo().size() != 0) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "下架包裹信息异常"); return JsonResponse.generateLocalCommonFailedResponse("-1", "下架包裹信息异常");
} }
...@@ -1568,7 +1509,7 @@ public class PddLocalController { ...@@ -1568,7 +1509,7 @@ public class PddLocalController {
storageImpl.storageDel(ids); storageImpl.storageDel(ids);
//根据type 区分修改状态 //根据type 区分修改状态
if(("pick").equals(storageDelRequest.getType())){ if (("pick").equals(storageDelRequest.getType())) {
// 出库拣货下架 // 出库拣货下架
outboundNoticeImpl.updateStatusByOrderCode(storageDelRequest.getLogisticsOrderCode(), StatusEnum.PICKDOWN.getCode()); outboundNoticeImpl.updateStatusByOrderCode(storageDelRequest.getLogisticsOrderCode(), StatusEnum.PICKDOWN.getCode());
} else { } else {
...@@ -1576,10 +1517,11 @@ public class PddLocalController { ...@@ -1576,10 +1517,11 @@ public class PddLocalController {
unpackNoticeImpl.updateStatusByOrderCode(storageDelRequest.getLogisticsOrderCode(), StatusEnum.UNPACKFINISHPICK.getCode()); unpackNoticeImpl.updateStatusByOrderCode(storageDelRequest.getLogisticsOrderCode(), StatusEnum.UNPACKFINISHPICK.getCode());
} }
return JsonResponse.generateLocalCommonSuccessResponse(true,""); return JsonResponse.generateLocalCommonSuccessResponse(true, "");
} }
// 发往韩国的面单打印
@PostMapping("/mailLabel") @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(); String mailNo = mailNoRequest.getMailNo();
...@@ -1611,10 +1553,11 @@ public class PddLocalController { ...@@ -1611,10 +1553,11 @@ public class PddLocalController {
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
result.put("mailNo", mailNo); result.put("mailNo", mailNo);
result.put("file", Base64.getEncoder().encodeToString(bytes)); result.put("file", Base64.getEncoder().encodeToString(bytes));
return JsonResponse.generateLocalCommonSuccessResponse(result,""); return JsonResponse.generateLocalCommonSuccessResponse(result, "");
} }
// 拆包的临时面单打印
/*拆包PDF*/ /*拆包PDF*/
@PostMapping("/unpackLabel") @PostMapping("/unpackLabel")
public JSONObject unpackLabel(HttpServletRequest request, HttpServletResponse response, @RequestBody UnpackNoticeRequest unpackNoticeRequest) { public JSONObject unpackLabel(HttpServletRequest request, HttpServletResponse response, @RequestBody UnpackNoticeRequest unpackNoticeRequest) {
...@@ -1632,8 +1575,7 @@ public class PddLocalController { ...@@ -1632,8 +1575,7 @@ public class PddLocalController {
// return JsonResponse.generateLocalCommonFailedResponse("-1", "获取快递终端信息异常"); // return JsonResponse.generateLocalCommonFailedResponse("-1", "获取快递终端信息异常");
// } // }
byte[] bytes = ImagePdfUnpackGenerator.generatePdfWithUnpackTextImage( byte[] bytes = ImagePdfCollectGenerator.generatePdfWithCollectTextImage(orderCode, "拆包", "" + list.size() + "件");
orderCode);
if (bytes == null) { if (bytes == null) {
...@@ -1642,10 +1584,11 @@ public class PddLocalController { ...@@ -1642,10 +1584,11 @@ public class PddLocalController {
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
result.put("orderCode", orderCode); result.put("orderCode", orderCode);
result.put("file", Base64.getEncoder().encodeToString(bytes)); result.put("file", Base64.getEncoder().encodeToString(bytes));
return JsonResponse.generateLocalCommonSuccessResponse(result,""); return JsonResponse.generateLocalCommonSuccessResponse(result, "");
} }
// 合包的临时面单打印
/*出库PDF*/ /*出库PDF*/
@PostMapping("/collectLabel") @PostMapping("/collectLabel")
public JSONObject collectLabel(HttpServletRequest request, HttpServletResponse response, @RequestBody UnpackNoticeRequest unpackNoticeRequest) { public JSONObject collectLabel(HttpServletRequest request, HttpServletResponse response, @RequestBody UnpackNoticeRequest unpackNoticeRequest) {
...@@ -1663,8 +1606,7 @@ public class PddLocalController { ...@@ -1663,8 +1606,7 @@ public class PddLocalController {
// return JsonResponse.generateLocalCommonFailedResponse("-1", "获取快递终端信息异常"); // return JsonResponse.generateLocalCommonFailedResponse("-1", "获取快递终端信息异常");
// } // }
byte[] bytes = ImagePdfCollectGenerator.generatePdfWithCollectTextImage( byte[] bytes = ImagePdfCollectGenerator.generatePdfWithCollectTextImage(orderCode, orderCode.startsWith("PT") ? "退运" : "出库", "" + mailDetailList.size() + "件");
orderCode);
if (bytes == null) { if (bytes == null) {
...@@ -1673,7 +1615,159 @@ public class PddLocalController { ...@@ -1673,7 +1615,159 @@ public class PddLocalController {
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
result.put("orderCode", orderCode); result.put("orderCode", orderCode);
result.put("file", Base64.getEncoder().encodeToString(bytes)); result.put("file", Base64.getEncoder().encodeToString(bytes));
return JsonResponse.generateLocalCommonSuccessResponse(result,""); 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", "面单制作失败");
}
JSONObject result = new JSONObject();
result.put("orderCode", orderCode);
result.put("file", Base64.getEncoder().encodeToString(bytes));
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 { ...@@ -55,115 +55,4 @@ public class UnpackNoticeEntity {
@TableField(value = "num") @TableField(value = "num")
private Integer 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; ...@@ -13,13 +13,10 @@ import java.io.ByteArrayOutputStream;
public class ImagePdfCollectGenerator { public class ImagePdfCollectGenerator {
public static byte[] generatePdfWithCollectTextImage(String orderCode) { public static byte[] generatePdfWithCollectTextImage(String orderCode, String typeText, String numText) {
try { try {
// 1. 将文字转为图片(示例:韩文“안녕하세요,世界!”) // 1. 将文字转为图片(示例:韩文“안녕하세요,世界!”)
byte[] imageBytes = TextToImageCollectUtils.textToImage( byte[] imageBytes = TextToImageUtils.commonBarCodeAndTextToImage(orderCode, typeText, numText);
orderCode
);
// return imageBytes; // return imageBytes;
...@@ -39,7 +36,7 @@ public class ImagePdfCollectGenerator { ...@@ -39,7 +36,7 @@ public class ImagePdfCollectGenerator {
// 4. 关闭文档 // 4. 关闭文档
document.close(); document.close();
return pdfBaos.toByteArray(); return pdfBaos.toByteArray();
}catch (Exception e){ } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return null; return null;
} }
...@@ -54,11 +51,11 @@ public class ImagePdfCollectGenerator { ...@@ -54,11 +51,11 @@ public class ImagePdfCollectGenerator {
// 2. 初始化PDF // 2. 初始化PDF
Document document = new Document(pdfDoc, new PageSize((int) (150 * 300 / 25.4), (int) (100 * 300 / 25.4))); 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 i = 1; i < 10; i++) {
for (int i1 = 1; i1 < 12; i1 ++) { for (int i1 = 1; i1 < 12; i1++) {
for (int i2 = 1; i2 < 5; i2 ++) { for (int i2 = 1; i2 < 5; i2++) {
for (int i3 = 1; i3 < 3; i3 ++) { for (int i3 = 1; i3 < 3; i3++) {
if (i3 == 2 && (i2 == 1|| i2 == 4)) { if (i3 == 2 && (i2 == 1 || i2 == 4)) {
continue; continue;
} }
// 1. 将文字转为图片(示例:韩文“안녕하세요,世界!”) // 1. 将文字转为图片(示例:韩文“안녕하세요,世界!”)
...@@ -75,7 +72,6 @@ public class ImagePdfCollectGenerator { ...@@ -75,7 +72,6 @@ public class ImagePdfCollectGenerator {
} }
} }
......
...@@ -71,6 +71,30 @@ public class ImagePdfGenerator { ...@@ -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 { public static byte[] generateCode() throws Exception {
ByteArrayOutputStream pdfBaos = new ByteArrayOutputStream(); ByteArrayOutputStream pdfBaos = new ByteArrayOutputStream();
......
...@@ -170,6 +170,59 @@ public class TextToImageUtils { ...@@ -170,6 +170,59 @@ public class TextToImageUtils {
return mailCode.substring(0, 4) + "-" + mailCode.substring(4, 8) + "-" + mailCode.substring(8, 12); 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 public static byte[] commonBarCodeToImage( String mailCode
) throws Exception { ) throws Exception {
int width = 1770; 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: ...@@ -7,12 +7,12 @@ spring:
datasource: datasource:
driver-class-name: com.mysql.cj.jdbc.Driver 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 # url: jdbc:mysql://192.168.2.222:3306/pdd_api?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
username: root # username: root
password: root # password: root
# url: jdbc:mysql://lyhj-mysql.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT url: jdbc:mysql://lyhj-mysql.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
# username: pdd username: pdd
# password: pdd123 password: pdd123
# url: jdbc:mysql://rm-j6cv8n7zx12x0sqreuo.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT # url: jdbc:mysql://rm-j6cv8n7zx12x0sqreuo.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
# username: pdd # username: pdd
# password: pdd123 # password: pdd123
...@@ -26,8 +26,8 @@ spring: ...@@ -26,8 +26,8 @@ spring:
application: application:
name: PddServer name: PddServer
server: server:
port: 9000 # 正式端口号 - 向拼多多正式环境开放接口 # port: 9000 # 正式端口号 - 向拼多多正式环境开放接口
# port: 9100 # 正式端口号 - 向海际系统正式环境开放接口 port: 9100 # 正式端口号 - 向海际系统正式环境开放接口
# port: 8600 # 测试端口号 # port: 8600 # 测试端口号
logging: logging:
level: level:
...@@ -41,4 +41,4 @@ mybatis-plus: ...@@ -41,4 +41,4 @@ mybatis-plus:
pdd: pdd:
jyt: 0 jyt: 0
gd: 0 gd: 0
lotto: 0 lotto: 1
\ No newline at end of file \ No newline at end of file
...@@ -67,6 +67,7 @@ public class PdfTest { ...@@ -67,6 +67,7 @@ public class PdfTest {
byte[] strToBytes = ImagePdfGenerator.generateCode(); byte[] strToBytes = ImagePdfGenerator.generateCode();
outputStream.write(strToBytes); outputStream.write(strToBytes);
System.out.println("文件写入成功!"); System.out.println("文件写入成功!");
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} catch (FontFormatException e) { } 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