Commit a79e2502 authored by Allen Chen's avatar Allen Chen

commit

parent 98741085
...@@ -99,6 +99,7 @@ public class PddOpenController { ...@@ -99,6 +99,7 @@ public class PddOpenController {
log.error("pdd_sign is empty"); log.error("pdd_sign is empty");
} }
String body = getStringFromRequest(request); String body = getStringFromRequest(request);
log.info("Request:\n{}", body);
try { try {
if (PddSignTool.verifySignFromBody(body, "a5aba84483d8387030899f01276b06a194942470", pdd_sign)) { if (PddSignTool.verifySignFromBody(body, "a5aba84483d8387030899f01276b06a194942470", pdd_sign)) {
...@@ -143,19 +144,21 @@ public class PddOpenController { ...@@ -143,19 +144,21 @@ public class PddOpenController {
if (logOrderEntity.getStatus() >= 50) { if (logOrderEntity.getStatus() >= 50) {
// 已合包 // 已合包
// 每个计算重量,每个计算运费 // 每个计算重量,每个计算运费
List<LogOrderMailDetailEntity> mailDetailEntityList = orderMailDetailImpl.getListByCode(orderCode); List<LogOrderMailDetailEntity> mailDetailEntityList = orderMailDetailImpl.getNewPackListByCode(orderCode);
for (LogOrderMailDetailEntity mailDetailEntity : mailDetailEntityList) { for (LogOrderMailDetailEntity mailDetailEntity : mailDetailEntityList) {
int currWeight = PddJYPriceTool.calculateWeight(mailDetailEntity.getLength(), int currWeight = PddJYPriceTool.calculateWeight(mailDetailEntity.getLength(),
mailDetailEntity.getWidth(), mailDetailEntity.getWidth(),
mailDetailEntity.getHeight(), mailDetailEntity.getHeight(),
mailDetailEntity.getWeight(), mailDetailEntity.getWeight(),
"SENDTORECEVER".equals(queryRequest.getSegmentCode())); "SENDTORECEVER".equals(queryRequest.getSegmentCode()));
freightFee = PddJYPriceTool.calculateFreightFee(currWeight, long currFee = PddJYPriceTool.calculateFreightFee(currWeight,
queryRequest.getGoodsType(), queryRequest.getGoodsType(),
1, 1,
"SENDTORECEVER".equals(queryRequest.getSegmentCode()) "SENDTORECEVER".equals(queryRequest.getSegmentCode())
); );
log.info("mailNo:{} weight:{}, fee:{}", mailDetailEntity.getMailNo(), currWeight, currFee);
weight += currWeight; weight += currWeight;
freightFee += currFee;
} }
} else { } else {
......
...@@ -109,6 +109,8 @@ public class PddServiceConsoOutboundRequest extends JYBaseRequestModel implement ...@@ -109,6 +109,8 @@ public class PddServiceConsoOutboundRequest extends JYBaseRequestModel implement
* 计费重量(必填,单位:克) * 计费重量(必填,单位:克)
*/ */
private Long weight; private Long weight;
private List<InboundMailDetail> inboundMailDetails;
} }
...@@ -218,5 +220,11 @@ public class PddServiceConsoOutboundRequest extends JYBaseRequestModel implement ...@@ -218,5 +220,11 @@ public class PddServiceConsoOutboundRequest extends JYBaseRequestModel implement
private String remark; private String remark;
} }
@Data
public static class InboundMailDetail {
private String mailNo;
private String expressCode;
}
} }
...@@ -71,7 +71,7 @@ public class PddNationalPriceTool { ...@@ -71,7 +71,7 @@ public class PddNationalPriceTool {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return rent; return rent * 100;
} }
......
package org.ta.pddserver.utils; package org.ta.pddserver.utils;
import lombok.extern.slf4j.Slf4j;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.ZoneId; import java.time.ZoneId;
import java.util.Date; import java.util.Date;
@Slf4j
public class PddOverseaPriceTool { public class PddOverseaPriceTool {
// 首重重量 // 首重重量
...@@ -71,11 +74,13 @@ public class PddOverseaPriceTool { ...@@ -71,11 +74,13 @@ public class PddOverseaPriceTool {
// 判断重量是否超重 // 判断重量是否超重
//分析重量 //分析重量
log.info("weight = {}, initialWeight = {}, ", weight, initialWeight);
if (weight > initialWeight) { if (weight > initialWeight) {
//计算超出重量 //计算超出重量
weight = weight - initialWeight; weight = weight - initialWeight;
excess = excessPrice * ((int) Math.ceil(1.0 * weight / excessWeight)); excess = excessPrice * ((int) Math.ceil(1.0 * weight / excessWeight));
} }
log.info("excess = {}", excess);
//计算价格 //计算价格
if (type.equals("NORMAL")) { if (type.equals("NORMAL")) {
...@@ -85,6 +90,7 @@ public class PddOverseaPriceTool { ...@@ -85,6 +90,7 @@ public class PddOverseaPriceTool {
} else { } else {
price = price + sInitalPrice + excess; price = price + sInitalPrice + excess;
} }
log.info("price = {}", price);
return price; return price;
} }
...@@ -107,7 +113,7 @@ public class PddOverseaPriceTool { ...@@ -107,7 +113,7 @@ public class PddOverseaPriceTool {
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return rent; return rent * 100;
} }
......
...@@ -17,4 +17,4 @@ spring: ...@@ -17,4 +17,4 @@ spring:
application: application:
name: PddServer name: PddServer
server: server:
port: 8700 port: 9000
\ No newline at end of file \ No newline at end of file
...@@ -361,9 +361,9 @@ public class CommonTest { ...@@ -361,9 +361,9 @@ public class CommonTest {
@Test @Test
public void outBound() { public void outBound() {
String mailNo = "BK-773129289243424"; String mailNo = "BK-25110316466837504237527";
String expressCode = "KR_JD"; String expressCode = "KR_JD";
String orderCode = "PP25110323338785177837527"; String orderCode = "PP25110316466837504237527";
// String segmentCode = "RETURNSELLER"; // String segmentCode = "RETURNSELLER";
String segmentCode = "SENDTORECEVER"; String segmentCode = "SENDTORECEVER";
...@@ -374,17 +374,46 @@ public class CommonTest { ...@@ -374,17 +374,46 @@ public class CommonTest {
notifyRequest.setSegmentCode(segmentCode); notifyRequest.setSegmentCode(segmentCode);
notifyRequest.setExecuteTime(getNowString()); notifyRequest.setExecuteTime(getNowString());
notifyRequest.setTimeZone("UTC+8"); notifyRequest.setTimeZone("UTC+8");
notifyRequest.setIsSplitOut("N"); // notifyRequest.setIsSplitOut("N");
notifyRequest.setIsSplitOut("Y");
notifyRequest.setPackageInfos(new ArrayList<>()); notifyRequest.setPackageInfos(new ArrayList<>());
PddServiceConsoOutboundRequest.PackageInfo packageInfo0 = new PddServiceConsoOutboundRequest.PackageInfo();
notifyRequest.getPackageInfos().add(packageInfo0);
packageInfo0.setOutboundMailNo(mailNo + "1");
packageInfo0.setExpressCode(expressCode);
packageInfo0.setPackageType("2");
packageInfo0.setLength(30L);
packageInfo0.setWidth(30L);
packageInfo0.setHeight(30L);
packageInfo0.setWeight(1500L);
packageInfo0.setInboundMailDetails(new ArrayList<>());
PddServiceConsoOutboundRequest.InboundMailDetail inboundMailDetail0 = new PddServiceConsoOutboundRequest.InboundMailDetail();
packageInfo0.getInboundMailDetails().add(inboundMailDetail0);
inboundMailDetail0.setMailNo("773608936457954");
inboundMailDetail0.setExpressCode("STO");
PddServiceConsoOutboundRequest.InboundMailDetail inboundMailDetail1 = new PddServiceConsoOutboundRequest.InboundMailDetail();
packageInfo0.getInboundMailDetails().add(inboundMailDetail1);
inboundMailDetail1.setMailNo("773010635902734");
inboundMailDetail1.setExpressCode("STO");
PddServiceConsoOutboundRequest.PackageInfo packageInfo = new PddServiceConsoOutboundRequest.PackageInfo(); PddServiceConsoOutboundRequest.PackageInfo packageInfo = new PddServiceConsoOutboundRequest.PackageInfo();
notifyRequest.getPackageInfos().add(packageInfo); notifyRequest.getPackageInfos().add(packageInfo);
packageInfo.setOutboundMailNo(mailNo); packageInfo.setOutboundMailNo(mailNo + "2");
packageInfo.setExpressCode(expressCode); packageInfo.setExpressCode(expressCode);
packageInfo.setPackageType("2"); packageInfo.setPackageType("2");
packageInfo.setLength(30L); packageInfo.setLength(30L);
packageInfo.setWidth(30L); packageInfo.setWidth(30L);
packageInfo.setHeight(30L); packageInfo.setHeight(30L);
packageInfo.setWeight(1100L); packageInfo.setWeight(1500L);
packageInfo.setInboundMailDetails(new ArrayList<>());
PddServiceConsoOutboundRequest.InboundMailDetail inboundMailDetail2 = new PddServiceConsoOutboundRequest.InboundMailDetail();
packageInfo.getInboundMailDetails().add(inboundMailDetail2);
inboundMailDetail2.setMailNo("TT773010635902734");
inboundMailDetail2.setExpressCode("STO");
notifyRequest.setSenderDetail(new PddServiceConsoOutboundRequest.SenderDetail()); notifyRequest.setSenderDetail(new PddServiceConsoOutboundRequest.SenderDetail());
notifyRequest.getSenderDetail().setName("海际集货仓"); notifyRequest.getSenderDetail().setName("海际集货仓");
......
{ {
"logistics_ticket_get_response": { "executeTime": "2025-11-04 12:37:46",
"logistics_ticket_list": [ "isSplitOut": "Y",
"orderCode": "PP25110316466837504237527",
"packageInfos": [
{ {
"area_name": "韩国", "expressCode": "KR_JD",
"attach_url": [ "height": 30,
"http://testimg.yangkeduo.com/pdd_ticket_image/2066d9194a/e709b28d7515fe67c24ef5e9da15e742.jpeg", "inboundMailDetails": [
"http://testimg.yangkeduo.com/pdd_ticket_image/2066d9194a/0c2ac6e5432aa961bfefa3d7faf888e5.png"
],
"created_at": 1761792975,
"create_type": 0,
"description": "恶意引导修改取消订单三次下发模板",
"pre_delivery_id": "0",
"source": 0,
"title": "集运测试-恶意引导修改取消订单问题描述 签收地址:mock一个签收地址",
"cabinet_code": "",
"compensate_state": 1,
"urgent_type": 0,
"updated_at": 1761793639,
"receive_name": "김명상",
"waybill_no": "773484253589148",
"compensate_amount": 0,
"receive_address": "mock一个签收地址",
"receive_contact": "15012345678",
"express_dealer": "处理人三",
"express_dealer_contact": "15067011001",
"express_attachment": [
{ {
"url": "https://img-test.pddpic.com/open-gw/2066d9194a/c2c976cc793423a1d413c6395ad225c4.jpg" "expressCode": "STO",
"mailNo": "773608936457954"
}, },
{ {
"url": "https://img-test.pddpic.com/open-gw/2066d9194a/ceadf7d50fa2cd9850b10a3c769421e7.jpg" "expressCode": "STO",
"mailNo": "773010635902734"
}, },
{ {
"url": "https://img-test.pddpic.com/open-gw/2066d9194a/c2c976cc793423a1d413c6395ad225c4.jpg" "expressCode": "STO",
"mailNo": "TT773010635902734"
} }
], ],
"handle_result": "757类型工单测试二次回复内容,此次没有赔付,两个附件", "length": 30,
"type_id": 757, "outboundMailNo": "BK-251103164668375042375271",
"ticket_id": 176179297549537, "packageType": "2",
"sign_state": 1, "weight": 1500,
"duty": 1, "width": 30
"express_company_id": 567,
"retreat_count": 2,
"status": 0
},
{
"area_name": "韩国",
"created_at": 1761791335,
"create_type": 1,
"description": "其他,mock消费者二次投诉",
"pre_delivery_id": "0",
"source": 0,
"title": "包裹丢失/破损;包裹错发/漏发;mock消费者首次投诉",
"cabinet_code": "",
"compensate_state": 2,
"urgent_type": 0,
"updated_at": 1761792820,
"receive_name": "김명상",
"sub_type_ids": [
1303
],
"waybill_no": "773484253589148",
"compensate_amount": 888,
"receive_address": "제주특별자치도 제주시 추자면 韩国偏远地址",
"receive_contact": "15012345678",
"express_dealer": "处理人乙",
"express_dealer_contact": "15067991234",
"express_attachment": [
{
"url": "https://img-test.pddpic.com/open-gw/2066d9194a/b0ffff8583115046a5e0e70a86f4b156.jpg"
}, },
{ {
"url": "https://img-test.pddpic.com/open-gw/2066d9194a/de1e9e6a5adaee930456e4e521a6dcb2.jpg" "expressCode": "KR_JD",
"height": 30,
"inboundMailDetails": [],
"length": 30,
"outboundMailNo": "BK-251103164668375042375272",
"packageType": "2",
"weight": 1500,
"width": 30
} }
], ],
"handle_result": "mock工单联调二次处理回复", "providerCode": "HAIJI_KR",
"type_id": 747, "receiverDetail": {
"ticket_id": 176179133571489, "city": "강북구",
"sign_state": 1, "country": "KR",
"duty": 1, "detailAddress": "护照1号",
"express_company_id": 567, "district": "강북구",
"retreat_count": 1, "name": "김명상",
"status": 1 "province": "서울특별시",
} "telePhone": "01012345678"
], },
"total_count": 2, "result": {
"request_id": "17617936806386622" "code": 0
} },
"segmentCode": "SENDTORECEVER",
"senderDetail": {
"city": "临沂市",
"country": "CN",
"detailAddress": "山东省临沂市兰山区横九路与纵十路交汇兰山财金智慧云仓五期二层二号仓",
"district": "兰山区",
"name": "海际集货仓",
"province": "山东省",
"telePhone": "18660975251"
},
"timeZone": "UTC+8"
} }
\ No newline at end of file
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