Commit a79e2502 authored by Allen Chen's avatar Allen Chen

commit

parent 98741085
......@@ -99,6 +99,7 @@ public class PddOpenController {
log.error("pdd_sign is empty");
}
String body = getStringFromRequest(request);
log.info("Request:\n{}", body);
try {
if (PddSignTool.verifySignFromBody(body, "a5aba84483d8387030899f01276b06a194942470", pdd_sign)) {
......@@ -143,19 +144,21 @@ public class PddOpenController {
if (logOrderEntity.getStatus() >= 50) {
// 已合包
// 每个计算重量,每个计算运费
List<LogOrderMailDetailEntity> mailDetailEntityList = orderMailDetailImpl.getListByCode(orderCode);
List<LogOrderMailDetailEntity> mailDetailEntityList = orderMailDetailImpl.getNewPackListByCode(orderCode);
for (LogOrderMailDetailEntity mailDetailEntity : mailDetailEntityList) {
int currWeight = PddJYPriceTool.calculateWeight(mailDetailEntity.getLength(),
mailDetailEntity.getWidth(),
mailDetailEntity.getHeight(),
mailDetailEntity.getWeight(),
"SENDTORECEVER".equals(queryRequest.getSegmentCode()));
freightFee = PddJYPriceTool.calculateFreightFee(currWeight,
long currFee = PddJYPriceTool.calculateFreightFee(currWeight,
queryRequest.getGoodsType(),
1,
"SENDTORECEVER".equals(queryRequest.getSegmentCode())
);
log.info("mailNo:{} weight:{}, fee:{}", mailDetailEntity.getMailNo(), currWeight, currFee);
weight += currWeight;
freightFee += currFee;
}
} else {
......
......@@ -109,6 +109,8 @@ public class PddServiceConsoOutboundRequest extends JYBaseRequestModel implement
* 计费重量(必填,单位:克)
*/
private Long weight;
private List<InboundMailDetail> inboundMailDetails;
}
......@@ -218,5 +220,11 @@ public class PddServiceConsoOutboundRequest extends JYBaseRequestModel implement
private String remark;
}
@Data
public static class InboundMailDetail {
private String mailNo;
private String expressCode;
}
}
......@@ -71,7 +71,7 @@ public class PddNationalPriceTool {
} catch (Exception e) {
e.printStackTrace();
}
return rent;
return rent * 100;
}
......
package org.ta.pddserver.utils;
import lombok.extern.slf4j.Slf4j;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
@Slf4j
public class PddOverseaPriceTool {
// 首重重量
......@@ -71,11 +74,13 @@ public class PddOverseaPriceTool {
// 判断重量是否超重
//分析重量
log.info("weight = {}, initialWeight = {}, ", weight, initialWeight);
if (weight > initialWeight) {
//计算超出重量
weight = weight - initialWeight;
excess = excessPrice * ((int) Math.ceil(1.0 * weight / excessWeight));
}
log.info("excess = {}", excess);
//计算价格
if (type.equals("NORMAL")) {
......@@ -85,6 +90,7 @@ public class PddOverseaPriceTool {
} else {
price = price + sInitalPrice + excess;
}
log.info("price = {}", price);
return price;
}
......@@ -107,7 +113,7 @@ public class PddOverseaPriceTool {
} catch (Exception e) {
e.printStackTrace();
}
return rent;
return rent * 100;
}
......
......@@ -17,4 +17,4 @@ spring:
application:
name: PddServer
server:
port: 8700
\ No newline at end of file
port: 9000
\ No newline at end of file
......@@ -361,9 +361,9 @@ public class CommonTest {
@Test
public void outBound() {
String mailNo = "BK-773129289243424";
String mailNo = "BK-25110316466837504237527";
String expressCode = "KR_JD";
String orderCode = "PP25110323338785177837527";
String orderCode = "PP25110316466837504237527";
// String segmentCode = "RETURNSELLER";
String segmentCode = "SENDTORECEVER";
......@@ -374,17 +374,46 @@ public class CommonTest {
notifyRequest.setSegmentCode(segmentCode);
notifyRequest.setExecuteTime(getNowString());
notifyRequest.setTimeZone("UTC+8");
notifyRequest.setIsSplitOut("N");
// notifyRequest.setIsSplitOut("N");
notifyRequest.setIsSplitOut("Y");
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();
notifyRequest.getPackageInfos().add(packageInfo);
packageInfo.setOutboundMailNo(mailNo);
packageInfo.setOutboundMailNo(mailNo + "2");
packageInfo.setExpressCode(expressCode);
packageInfo.setPackageType("2");
packageInfo.setLength(30L);
packageInfo.setWidth(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.getSenderDetail().setName("海际集货仓");
......
{
"logistics_ticket_get_response": {
"logistics_ticket_list": [
{
"area_name": "韩国",
"attach_url": [
"http://testimg.yangkeduo.com/pdd_ticket_image/2066d9194a/e709b28d7515fe67c24ef5e9da15e742.jpeg",
"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"
},
{
"url": "https://img-test.pddpic.com/open-gw/2066d9194a/ceadf7d50fa2cd9850b10a3c769421e7.jpg"
},
{
"url": "https://img-test.pddpic.com/open-gw/2066d9194a/c2c976cc793423a1d413c6395ad225c4.jpg"
}
],
"handle_result": "757类型工单测试二次回复内容,此次没有赔付,两个附件",
"type_id": 757,
"ticket_id": 176179297549537,
"sign_state": 1,
"duty": 1,
"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"
}
],
"handle_result": "mock工单联调二次处理回复",
"type_id": 747,
"ticket_id": 176179133571489,
"sign_state": 1,
"duty": 1,
"express_company_id": 567,
"retreat_count": 1,
"status": 1
}
],
"total_count": 2,
"request_id": "17617936806386622"
}
}
"executeTime": "2025-11-04 12:37:46",
"isSplitOut": "Y",
"orderCode": "PP25110316466837504237527",
"packageInfos": [
{
"expressCode": "KR_JD",
"height": 30,
"inboundMailDetails": [
{
"expressCode": "STO",
"mailNo": "773608936457954"
},
{
"expressCode": "STO",
"mailNo": "773010635902734"
},
{
"expressCode": "STO",
"mailNo": "TT773010635902734"
}
],
"length": 30,
"outboundMailNo": "BK-251103164668375042375271",
"packageType": "2",
"weight": 1500,
"width": 30
},
{
"expressCode": "KR_JD",
"height": 30,
"inboundMailDetails": [],
"length": 30,
"outboundMailNo": "BK-251103164668375042375272",
"packageType": "2",
"weight": 1500,
"width": 30
}
],
"providerCode": "HAIJI_KR",
"receiverDetail": {
"city": "강북구",
"country": "KR",
"detailAddress": "护照1号",
"district": "강북구",
"name": "김명상",
"province": "서울특별시",
"telePhone": "01012345678"
},
"result": {
"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