Commit e655e0ec authored by Allen Chen's avatar Allen Chen

commit

parent 00e68e3a
...@@ -31,6 +31,7 @@ import org.ta.pddserver.utils.ImageUtils; ...@@ -31,6 +31,7 @@ import org.ta.pddserver.utils.ImageUtils;
import org.ta.pddserver.utils.JsonResponse; import org.ta.pddserver.utils.JsonResponse;
import org.ta.pddserver.utils.PddHttpTool; import org.ta.pddserver.utils.PddHttpTool;
import org.ta.pddserver.utils.PddSignTool; import org.ta.pddserver.utils.PddSignTool;
import org.ta.pddserver.xxl.GDOperator;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
...@@ -51,6 +52,9 @@ public class PddGDController { ...@@ -51,6 +52,9 @@ public class PddGDController {
@Resource @Resource
GDReplyImpl gdReplyImpl; GDReplyImpl gdReplyImpl;
@Resource
GDOperator gdOperator;
/*工单列表*/ /*工单列表*/
@PostMapping("/ticketList") @PostMapping("/ticketList")
public JSONObject ticketList(HttpServletRequest request, @RequestBody TicketListRequest ticketListRequest) { public JSONObject ticketList(HttpServletRequest request, @RequestBody TicketListRequest ticketListRequest) {
...@@ -63,7 +67,7 @@ public class PddGDController { ...@@ -63,7 +67,7 @@ public class PddGDController {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
GDTicketEntity gdTicketEntity = gdTicketImpl.getByTicketId((long) ticketListRequest.getTicket_id()); GDTicketEntity gdTicketEntity = gdTicketImpl.getByTicketId((long) ticketListRequest.getTicket_id());
if(gdTicketEntity == null){ if (gdTicketEntity == null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "信息获取失败,请检查上传信息"); return JsonResponse.generateLocalCommonFailedResponse("-1", "信息获取失败,请检查上传信息");
} }
...@@ -104,11 +108,11 @@ public class PddGDController { ...@@ -104,11 +108,11 @@ public class PddGDController {
/*工单回复*/ /*工单回复*/
@PostMapping("/reply") @PostMapping("/reply")
public JSONObject reply(HttpServletRequest request, @RequestBody GDTicketReplyRequest replyRequest) { public JSONObject reply(HttpServletRequest request, @RequestBody GDTicketReplyRequest replyRequest) {
GDTicketEntity gdTicketEntity = gdTicketImpl.getByTicketId(replyRequest.getTicket_id()); GDTicketEntity gdTicketEntity = gdTicketImpl.getByTicketId(replyRequest.getTicket_id());
if(gdTicketEntity == null){ if (gdTicketEntity == null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "信息获取失败,请检查上传信息"); return JsonResponse.generateLocalCommonFailedResponse("-1", "信息获取失败,请检查上传信息");
} }
replyRequest.setTicket_id(replyRequest.getTicket_id()); replyRequest.setTicket_id(replyRequest.getTicket_id());
replyRequest.setWaybill_no(gdTicketEntity.getWaybill_no()); replyRequest.setWaybill_no(gdTicketEntity.getWaybill_no());
...@@ -141,7 +145,7 @@ public class PddGDController { ...@@ -141,7 +145,7 @@ public class PddGDController {
JSONObject respObject = respObj.getJSONObject("logistics_ticket_notify_response"); JSONObject respObject = respObj.getJSONObject("logistics_ticket_notify_response");
if (respObject == null) { if (respObject == null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "未收到回复"); return JsonResponse.generateLocalCommonFailedResponse("-1", "未收到回复");
}else{ } else {
GDTicketReplyRepsonse replyRepsonse = respObject.toJavaObject(GDTicketReplyRepsonse.class); GDTicketReplyRepsonse replyRepsonse = respObject.toJavaObject(GDTicketReplyRepsonse.class);
log.info("replyRepsonse is_success:{}", replyRepsonse.getIs_success()); log.info("replyRepsonse is_success:{}", replyRepsonse.getIs_success());
GDReplyEntity gdReply = new GDReplyEntity(); GDReplyEntity gdReply = new GDReplyEntity();
...@@ -159,7 +163,7 @@ public class PddGDController { ...@@ -159,7 +163,7 @@ public class PddGDController {
gdReplyImpl.save(gdReply); gdReplyImpl.save(gdReply);
if (list != null) { if (list != null) {
for(String lists: list){ for (String lists : list) {
GDReplyAttachmentEntity gdReplyAttachmentEntity = new GDReplyAttachmentEntity(); GDReplyAttachmentEntity gdReplyAttachmentEntity = new GDReplyAttachmentEntity();
gdReplyAttachmentEntity.setTicket_id(replyRequest.getTicket_id()); gdReplyAttachmentEntity.setTicket_id(replyRequest.getTicket_id());
gdReplyAttachmentEntity.setWaybill_no(replyRequest.getWaybill_no()); gdReplyAttachmentEntity.setWaybill_no(replyRequest.getWaybill_no());
...@@ -176,4 +180,10 @@ public class PddGDController { ...@@ -176,4 +180,10 @@ public class PddGDController {
} }
@PostMapping("/ticketFresh")
public JSONObject freshFromPdd(HttpServletRequest request) {
gdOperator.getGdTickets();
return JsonResponse.generateLocalCommonSuccessResponse("OK");
}
} }
...@@ -15,9 +15,11 @@ import org.ta.pddserver.entity.*; ...@@ -15,9 +15,11 @@ import org.ta.pddserver.entity.*;
import org.ta.pddserver.model.api.request.*; import org.ta.pddserver.model.api.request.*;
import org.ta.pddserver.model.api.response.*; import org.ta.pddserver.model.api.response.*;
import org.ta.pddserver.model.enums.ErrorEnum; import org.ta.pddserver.model.enums.ErrorEnum;
import org.ta.pddserver.model.enums.OrderProblemType;
import org.ta.pddserver.model.enums.OrderRejectCode; import org.ta.pddserver.model.enums.OrderRejectCode;
import org.ta.pddserver.model.enums.StatusEnum; import org.ta.pddserver.model.enums.StatusEnum;
import org.ta.pddserver.model.pddjy.request.*; import org.ta.pddserver.model.pddjy.request.*;
import org.ta.pddserver.model.pddjy.response.PddServiceConsoDerelictionResponse;
import org.ta.pddserver.service.impl.*; import org.ta.pddserver.service.impl.*;
import org.ta.pddserver.utils.*; import org.ta.pddserver.utils.*;
...@@ -25,7 +27,7 @@ import java.util.*; ...@@ -25,7 +27,7 @@ import java.util.*;
@Slf4j @Slf4j
@RestController @RestController
@Tag(name="业务对接接口", description = "仓库系统对接本接口") @Tag(name = "业务对接接口", description = "仓库系统对接本接口")
public class PddLocalController { public class PddLocalController {
...@@ -35,9 +37,6 @@ public class PddLocalController { ...@@ -35,9 +37,6 @@ public class PddLocalController {
@Resource @Resource
LogOrderMailDetailImpl logOrderMailDetailImpl; LogOrderMailDetailImpl logOrderMailDetailImpl;
@Resource
TimeTool timeTool;
@Resource @Resource
CollectOutMailDetailImpl collectOutMailDetailImpl; CollectOutMailDetailImpl collectOutMailDetailImpl;
...@@ -263,7 +262,7 @@ public class PddLocalController { ...@@ -263,7 +262,7 @@ public class PddLocalController {
PddServiceConsoFirstBizActionNotifyRequest notifyRequest = new PddServiceConsoFirstBizActionNotifyRequest(); PddServiceConsoFirstBizActionNotifyRequest notifyRequest = new PddServiceConsoFirstBizActionNotifyRequest();
notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE); notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
notifyRequest.setExecuteTime(timeTool.getNowString()); notifyRequest.setExecuteTime(TimeTool.getNowString());
notifyRequest.setTimeZone("UTC+8"); notifyRequest.setTimeZone("UTC+8");
notifyRequest.setLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode()); notifyRequest.setLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
notifyRequest.setBizAction(action); notifyRequest.setBizAction(action);
...@@ -351,10 +350,10 @@ public class PddLocalController { ...@@ -351,10 +350,10 @@ public class PddLocalController {
//判断是否存在入库信息 //判断是否存在入库信息
if (mailNoResponse.getStatus() == StatusEnum.INBOUND.getCode()) { if (mailNoResponse.getStatus() == StatusEnum.INBOUND.getCode()) {
//重复入库 //重复入库
mailNoResponse.setEnterTime(timeTool.getNowDate()); mailNoResponse.setEnterTime(TimeTool.getNowDate());
} else { } else {
num += 1; num += 1;
mailNoResponse.setEnterTime(timeTool.getNowDate()); mailNoResponse.setEnterTime(TimeTool.getNowDate());
mailNoResponse.setStatus(StatusEnum.INBOUND.getCode()); mailNoResponse.setStatus(StatusEnum.INBOUND.getCode());
} }
notifyRequest.setPackageQuantity(num); notifyRequest.setPackageQuantity(num);
...@@ -365,7 +364,7 @@ public class PddLocalController { ...@@ -365,7 +364,7 @@ public class PddLocalController {
notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE); notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
notifyRequest.setLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode()); notifyRequest.setLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
notifyRequest.setExecuteTime(timeTool.getNowString()); notifyRequest.setExecuteTime(TimeTool.getNowString());
notifyRequest.setTimeZone("UTC+8"); notifyRequest.setTimeZone("UTC+8");
...@@ -412,7 +411,7 @@ public class PddLocalController { ...@@ -412,7 +411,7 @@ public class PddLocalController {
//更新入库包裹状态 //更新入库包裹状态
mailNoResponse.setStatus(logOrderMailDetailIoEntity.getStatus()); mailNoResponse.setStatus(logOrderMailDetailIoEntity.getStatus());
mailNoResponse.setEnterTime(timeTool.getNowDate()); mailNoResponse.setEnterTime(TimeTool.getNowDate());
logOrderMailDetailImpl.updateById(mailNoResponse); logOrderMailDetailImpl.updateById(mailNoResponse);
logOrderEntity.setNum(notifyRequest.getPackageQuantity().intValue()); logOrderEntity.setNum(notifyRequest.getPackageQuantity().intValue());
...@@ -456,7 +455,7 @@ public class PddLocalController { ...@@ -456,7 +455,7 @@ public class PddLocalController {
notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE); notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
notifyRequest.setLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode()); notifyRequest.setLogisticsOrderCode(mailNoResponse.getLogisticsOrderCode());
notifyRequest.setExecuteTime(timeTool.getNowString()); notifyRequest.setExecuteTime(TimeTool.getNowString());
notifyRequest.setTimeZone("UTC+8"); notifyRequest.setTimeZone("UTC+8");
if (num >= logOrderEntity.getPackageQuantity().intValue()) { if (num >= logOrderEntity.getPackageQuantity().intValue()) {
...@@ -535,7 +534,7 @@ public class PddLocalController { ...@@ -535,7 +534,7 @@ public class PddLocalController {
notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE); notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
notifyRequest.setBizAction(finishUnpackRequest.getAction()); notifyRequest.setBizAction(finishUnpackRequest.getAction());
notifyRequest.setExecuteTime(timeTool.getNowString()); notifyRequest.setExecuteTime(TimeTool.getNowString());
notifyRequest.setTimeZone("UTC+8"); notifyRequest.setTimeZone("UTC+8");
LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity(); LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity();
...@@ -669,6 +668,7 @@ public class PddLocalController { ...@@ -669,6 +668,7 @@ public class PddLocalController {
} }
/*收到出库通知后 开始拣货 拣货完成 */ /*收到出库通知后 开始拣货 拣货完成 */
/** /**
* 拣货异常 * 拣货异常
*/ */
...@@ -687,7 +687,7 @@ public class PddLocalController { ...@@ -687,7 +687,7 @@ public class PddLocalController {
notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE); notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
notifyRequest.setOrderCode(finishUnpackRequest.getOrderCode()); notifyRequest.setOrderCode(finishUnpackRequest.getOrderCode());
notifyRequest.setBizAction(action); notifyRequest.setBizAction(action);
notifyRequest.setExecuteTime(timeTool.getNowString()); notifyRequest.setExecuteTime(TimeTool.getNowString());
notifyRequest.setTimeZone("UTC+8"); notifyRequest.setTimeZone("UTC+8");
LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity(); LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity();
...@@ -831,7 +831,7 @@ public class PddLocalController { ...@@ -831,7 +831,7 @@ public class PddLocalController {
// notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE); // notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
// notifyRequest.setOrderCode(logOrderPackageEntity.getLogisticsOrderCode()); // notifyRequest.setOrderCode(logOrderPackageEntity.getLogisticsOrderCode());
// notifyRequest.setBizAction(action); // notifyRequest.setBizAction(action);
// notifyRequest.setExecuteTime(timeTool.getNowString()); // notifyRequest.setExecuteTime(TimeTool.getNowString());
// notifyRequest.setTimeZone("UTC+8"); // notifyRequest.setTimeZone("UTC+8");
// //
// notifyRequest.setBizActionDesc("拆包完成"); // notifyRequest.setBizActionDesc("拆包完成");
...@@ -920,22 +920,34 @@ public class PddLocalController { ...@@ -920,22 +920,34 @@ public class PddLocalController {
notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE); notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
notifyRequest.setOrderCode(outBoundRequest.getOrderCode()); notifyRequest.setOrderCode(outBoundRequest.getOrderCode());
notifyRequest.setSegmentCode(collectOrderResponse.getSegmentCode()); notifyRequest.setSegmentCode(collectOrderResponse.getSegmentCode());
notifyRequest.setExecuteTime(timeTool.getNowString()); notifyRequest.setExecuteTime(TimeTool.getNowString());
notifyRequest.setTimeZone("UTC+8"); notifyRequest.setTimeZone("UTC+8");
notifyRequest.setIsSplitOut("N"); notifyRequest.setIsSplitOut("N");
notifyRequest.setPackageInfos(new ArrayList<>()); notifyRequest.setPackageInfos(new ArrayList<>());
for (OutBoundRequest.OutPackage outPackage : outBoundRequest.getOutPackageList()) { if (outBoundRequest.getOutPackageList() != null && outBoundRequest.getOutPackageList().size() > 0) {
PddServiceConsoOutboundRequest.PackageInfo packageInfo = new PddServiceConsoOutboundRequest.PackageInfo(); for (OutBoundRequest.OutPackage outPackage : outBoundRequest.getOutPackageList()) {
notifyRequest.getPackageInfos().add(packageInfo); PddServiceConsoOutboundRequest.PackageInfo packageInfo = new PddServiceConsoOutboundRequest.PackageInfo();
packageInfo.setOutboundMailNo(outPackage.getMailNo()); notifyRequest.getPackageInfos().add(packageInfo);
packageInfo.setExpressCode(outPackage.getExpressCode()); packageInfo.setOutboundMailNo(outPackage.getMailNo());
packageInfo.setPackageType(outPackage.getPackageType()); packageInfo.setExpressCode(outPackage.getExpressCode());
packageInfo.setLength(outPackage.getLength()); packageInfo.setPackageType(outPackage.getPackageType());
packageInfo.setWidth(outPackage.getWidth()); packageInfo.setLength(outPackage.getLength());
packageInfo.setHeight(outPackage.getHeight()); packageInfo.setWidth(outPackage.getWidth());
packageInfo.setWeight(outPackage.getWeight()); packageInfo.setHeight(outPackage.getHeight());
packageInfo.setWeight(outPackage.getWeight());
if (outPackage.getOutBound() != null && outPackage.getOutBound().size() > 0) {
packageInfo.setInboundMailDetails(new ArrayList<>());
for (String mailNo : outPackage.getOutBound()) {
PddServiceConsoOutboundRequest.InboundMailDetail inboundMailDetail = new PddServiceConsoOutboundRequest.InboundMailDetail();
inboundMailDetail.setMailNo(mailNo);
LogOrderMailDetailEntity mailDetailEntity = logOrderMailDetailImpl.getByMailNo(mailNo);
inboundMailDetail.setExpressCode(mailDetailEntity.getExpressCode());
packageInfo.getInboundMailDetails().add(inboundMailDetail);
}
}
}
} }
...@@ -978,21 +990,25 @@ public class PddLocalController { ...@@ -978,21 +990,25 @@ public class PddLocalController {
requestModel.setSign(PddSignTool.generateSign(requestModel, PddAPIConfig.CLIENT_SECRET)); requestModel.setSign(PddSignTool.generateSign(requestModel, PddAPIConfig.CLIENT_SECRET));
String resp = PddHttpTool.sendJsonPost(requestModel); String resp = PddHttpTool.sendJsonPost(requestModel);
for (OutBoundRequest.OutPackage outPackage : outBoundRequest.getOutPackageList()) { if (outBoundRequest.getOutPackageList() != null && outBoundRequest.getOutPackageList().size() > 0) {
LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity(); for (OutBoundRequest.OutPackage outPackage : outBoundRequest.getOutPackageList()) {
logOrderMailDetailIoEntity.setMailNo(outPackage.getMailNo()); LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity();
logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode()); logOrderMailDetailIoEntity.setMailNo(outPackage.getMailNo());
logOrderMailDetailIoEntity.setLogisticsOrderCode(outBoundRequest.getOrderCode()); logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode());
logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode()); logOrderMailDetailIoEntity.setLogisticsOrderCode(outBoundRequest.getOrderCode());
logOrderMailDetailIoEntity.setStatus(StatusEnum.FINISHOUTBOUND.getCode()); logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode());
logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel)); logOrderMailDetailIoEntity.setStatus(StatusEnum.FINISHOUTBOUND.getCode());
logOrderMailDetailIoEntity.setResp(resp); logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel));
logOrderMailDetailIoEntity.setResp(resp);
logOrderMailDetailIoImpl.save(logOrderMailDetailIoEntity); if (outPackage.getOutBound() != null && outPackage.getOutBound().size() > 0) {
logOrderMailDetailIoEntity.setRemarks(JSONObject.toJSONString(outPackage.getOutBound()));
}
logOrderMailDetailIoImpl.save(logOrderMailDetailIoEntity);
//更新collect_mail_detail //更新collect_mail_detail
for (CollectMailDetailEntity lists : list) { for (CollectMailDetailEntity lists : list) {
Boolean result = collectMailDetailImpl.updateByMailNo(lists.getMailNo(), logOrderMailDetailIoEntity.getStatus()); Boolean result = collectMailDetailImpl.updateByMailNo(lists.getMailNo(), logOrderMailDetailIoEntity.getStatus());
}
} }
} }
collectOrderImpl.updateOrderStatus(StatusEnum.FINISHOUTBOUND.getCode(), collectOrderResponse.getUid()); collectOrderImpl.updateOrderStatus(StatusEnum.FINISHOUTBOUND.getCode(), collectOrderResponse.getUid());
...@@ -1045,22 +1061,33 @@ public class PddLocalController { ...@@ -1045,22 +1061,33 @@ public class PddLocalController {
notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE); notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
notifyRequest.setOrderCode(outBoundRequest.getOrderCode()); notifyRequest.setOrderCode(outBoundRequest.getOrderCode());
notifyRequest.setSegmentCode(collectOrderResponse.getSegmentCode()); notifyRequest.setSegmentCode(collectOrderResponse.getSegmentCode());
notifyRequest.setExecuteTime(timeTool.getNowString()); notifyRequest.setExecuteTime(TimeTool.getNowString());
notifyRequest.setTimeZone("UTC+8"); notifyRequest.setTimeZone("UTC+8");
notifyRequest.setIsSplitOut("N"); notifyRequest.setIsSplitOut("N");
notifyRequest.setPackageInfos(new ArrayList<>()); notifyRequest.setPackageInfos(new ArrayList<>());
if (outBoundRequest.getOutPackageList() != null && outBoundRequest.getOutPackageList().size() > 0) {
for (OutBoundRequest.OutPackage outPackage : outBoundRequest.getOutPackageList()) { for (OutBoundRequest.OutPackage outPackage : outBoundRequest.getOutPackageList()) {
PddServiceConsoOutboundRequest.PackageInfo packageInfo = new PddServiceConsoOutboundRequest.PackageInfo(); PddServiceConsoOutboundRequest.PackageInfo packageInfo = new PddServiceConsoOutboundRequest.PackageInfo();
notifyRequest.getPackageInfos().add(packageInfo); notifyRequest.getPackageInfos().add(packageInfo);
packageInfo.setOutboundMailNo(outPackage.getMailNo()); packageInfo.setOutboundMailNo(outPackage.getMailNo());
packageInfo.setExpressCode(outPackage.getExpressCode()); packageInfo.setExpressCode(outPackage.getExpressCode());
packageInfo.setPackageType(outPackage.getPackageType()); packageInfo.setPackageType(outPackage.getPackageType());
packageInfo.setLength(outPackage.getLength()); packageInfo.setLength(outPackage.getLength());
packageInfo.setWidth(outPackage.getWidth()); packageInfo.setWidth(outPackage.getWidth());
packageInfo.setHeight(outPackage.getHeight()); packageInfo.setHeight(outPackage.getHeight());
packageInfo.setWeight(outPackage.getWeight()); packageInfo.setWeight(outPackage.getWeight());
if (outPackage.getOutBound() != null && outPackage.getOutBound().size() > 0) {
packageInfo.setInboundMailDetails(new ArrayList<>());
for (String mailNo : outPackage.getOutBound()) {
PddServiceConsoOutboundRequest.InboundMailDetail inboundMailDetail = new PddServiceConsoOutboundRequest.InboundMailDetail();
inboundMailDetail.setMailNo(mailNo);
LogOrderMailDetailEntity mailDetailEntity = logOrderMailDetailImpl.getByMailNo(mailNo);
inboundMailDetail.setExpressCode(mailDetailEntity.getExpressCode());
packageInfo.getInboundMailDetails().add(inboundMailDetail);
}
}
}
} }
...@@ -1105,21 +1132,25 @@ public class PddLocalController { ...@@ -1105,21 +1132,25 @@ public class PddLocalController {
requestModel.setSign(PddSignTool.generateSign(requestModel, PddAPIConfig.CLIENT_SECRET)); requestModel.setSign(PddSignTool.generateSign(requestModel, PddAPIConfig.CLIENT_SECRET));
String resp = PddHttpTool.sendJsonPost(requestModel); String resp = PddHttpTool.sendJsonPost(requestModel);
for (OutBoundRequest.OutPackage outPackage : outBoundRequest.getOutPackageList()) { if (outBoundRequest.getOutPackageList() != null && outBoundRequest.getOutPackageList().size() > 0) {
LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity(); for (OutBoundRequest.OutPackage outPackage : outBoundRequest.getOutPackageList()) {
logOrderMailDetailIoEntity.setMailNo(outPackage.getMailNo()); LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity();
logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode()); logOrderMailDetailIoEntity.setMailNo(outPackage.getMailNo());
logOrderMailDetailIoEntity.setLogisticsOrderCode(outBoundRequest.getOrderCode()); logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode());
logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode()); logOrderMailDetailIoEntity.setLogisticsOrderCode(outBoundRequest.getOrderCode());
logOrderMailDetailIoEntity.setStatus(StatusEnum.FINISHOUTBOUND.getCode()); logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode());
logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel)); logOrderMailDetailIoEntity.setStatus(StatusEnum.FINISHOUTBOUND.getCode());
logOrderMailDetailIoEntity.setResp(resp); logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel));
logOrderMailDetailIoEntity.setResp(resp);
logOrderMailDetailIoImpl.save(logOrderMailDetailIoEntity); if (outPackage.getOutBound() != null && outPackage.getOutBound().size() > 0) {
logOrderMailDetailIoEntity.setRemarks(JSONObject.toJSONString(outPackage.getOutBound()));
}
logOrderMailDetailIoImpl.save(logOrderMailDetailIoEntity);
//更新collect_mail_detail //更新collect_mail_detail
for (CollectMailDetailEntity lists : list) { for (CollectMailDetailEntity lists : list) {
Boolean result = collectMailDetailImpl.updateByMailNo(lists.getMailNo(), logOrderMailDetailIoEntity.getStatus()); Boolean result = collectMailDetailImpl.updateByMailNo(lists.getMailNo(), logOrderMailDetailIoEntity.getStatus());
}
} }
} }
...@@ -1127,6 +1158,90 @@ public class PddLocalController { ...@@ -1127,6 +1158,90 @@ public class PddLocalController {
return JsonResponse.generateLocalCommonSuccessResponse(true); return JsonResponse.generateLocalCommonSuccessResponse(true);
} }
/* 无主件号识别快递包裹识别 */
@Operation(
summary = "无主件号识别快递包裹识别",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/dereliction")
public JSONObject dereliction(HttpServletRequest request, @RequestBody DerelictionRequest derelictionRequest) {
PddServiceConsoDerelictionRequest notifyRequest = new PddServiceConsoDerelictionRequest();
notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
notifyRequest.setExecuteTime(TimeTool.getNowString());
notifyRequest.setTimeZone("UTC+8");
notifyRequest.setMailNo(derelictionRequest.getMailNo());
notifyRequest.setExpressCode(derelictionRequest.getExpressCode());
notifyRequest.setDereRecogCode(derelictionRequest.getDereRecogCode());
JYBaseRequestModel requestModel = new JYBaseRequestModel();
requestModel.setRequest(JSON.toJSONString(notifyRequest));
requestModel.setRequest_id("" + new Date().getTime());
requestModel.setType("pdd.service.conso.dereliction");
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);
PddServiceConsoDerelictionResponse response = JSON.parseObject(resp, PddServiceConsoDerelictionResponse.class);
if (response != null) {
String logisticsOrderCode = response.getLogisticsOrderCode();
if (logisticsOrderCode != null) {
return JsonResponse.generateLocalCommonSuccessResponse(response);
}
}
return JsonResponse.generateOpenCommonFailedResponse(-1, "该包裹信息无法识别");
}
@PostMapping("/problemOrderNotify")
public JSONObject problemOrderNotify(HttpServletRequest request, @RequestBody ProblemOrderNotifyRequest problemOrderNotifyRequest) {
OrderProblemType problemType = OrderProblemType.verify(problemOrderNotifyRequest.getReasonCode());
if (problemType == null) {
return JsonResponse.generateOpenCommonFailedResponse(-1, "问题类型有误");
}
LogOrderMailDetailEntity mailDetailEntity = logOrderMailDetailImpl.getByMailNo(problemOrderNotifyRequest.getMailNo());
if (mailDetailEntity == null) {
return JsonResponse.generateOpenCommonFailedResponse(-1, "未找到包裹信息");
}
PddServiceConsoProblemOrderNotifyRequest notifyRequest = new PddServiceConsoProblemOrderNotifyRequest();
notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
notifyRequest.setExecuteTime(TimeTool.getNowString());
notifyRequest.setTimeZone("UTC+8");
notifyRequest.setMailInfos(new ArrayList<>());
PddServiceConsoProblemOrderNotifyRequest.MailInfo mailInfo = new PddServiceConsoProblemOrderNotifyRequest.MailInfo();
notifyRequest.getMailInfos().add(mailInfo);
mailInfo.setMailNo(problemOrderNotifyRequest.getMailNo());
mailInfo.setOrderCode(mailDetailEntity.getLogisticsOrderCode());
mailInfo.setExpressCode(problemOrderNotifyRequest.getExpressCode());
mailInfo.setReasonCode(problemType.getValue());
JYBaseRequestModel requestModel = new JYBaseRequestModel();
requestModel.setRequest(JSON.toJSONString(notifyRequest));
requestModel.setRequest_id("" + new Date().getTime());
requestModel.setType("pdd.service.conso.problem.order.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);
JSONObject response = JSONObject.parseObject(resp).getJSONObject("response");
if (response != null) {
if (response.getBoolean("success")) {
return JsonResponse.generateLocalCommonSuccessResponse(true);
}
}
return JsonResponse.generateOpenCommonFailedResponse(-1, "问题件申报失败");
}
// /*流水查询*/ // /*流水查询*/
// @PostMapping("/logOrderMailDetailIoSelect") // @PostMapping("/logOrderMailDetailIoSelect")
......
...@@ -412,6 +412,7 @@ public class PddOpenController { ...@@ -412,6 +412,7 @@ public class PddOpenController {
orderMailDetail.setLogisticsOrderCode(orderCreateEntity.getLogisticsOrderCode()); orderMailDetail.setLogisticsOrderCode(orderCreateEntity.getLogisticsOrderCode());
orderMailDetail.setExpressCode(mailDetail.getExpressCode()); orderMailDetail.setExpressCode(mailDetail.getExpressCode());
orderMailDetail.setMailNo(mailDetail.getMailNo()); orderMailDetail.setMailNo(mailDetail.getMailNo());
orderMailDetail.setStatus(1);
orderMailDetailImpl.save(orderMailDetail); orderMailDetailImpl.save(orderMailDetail);
} }
...@@ -641,6 +642,7 @@ public class PddOpenController { ...@@ -641,6 +642,7 @@ public class PddOpenController {
orderMailDetailEntity.setLogisticsOrderCode(orderUpdateEntity.getLogisticsOrderCode()); orderMailDetailEntity.setLogisticsOrderCode(orderUpdateEntity.getLogisticsOrderCode());
orderMailDetailEntity.setExpressCode(mailDetail.getExpressCode()); orderMailDetailEntity.setExpressCode(mailDetail.getExpressCode());
orderMailDetailEntity.setMailNo(mailDetail.getMailNo()); orderMailDetailEntity.setMailNo(mailDetail.getMailNo());
orderMailDetailEntity.setStatus(1);
orderMailDetailImpl.save(orderMailDetailEntity); orderMailDetailImpl.save(orderMailDetailEntity);
} }
......
...@@ -22,7 +22,7 @@ public interface CollectOrderMapper extends BaseMapper<CollectOrderEntity> { ...@@ -22,7 +22,7 @@ public interface CollectOrderMapper extends BaseMapper<CollectOrderEntity> {
CollectOrderResponse findByOrderCode(String orderCode); CollectOrderResponse findByOrderCode(String orderCode);
@Update("UPDATE `collect_order` SET `status` = #{status} WHERE `uid` = #{uid};") @Update("UPDATE `collect_order` SET `status` = #{status} WHERE `uid` = #{uid};")
int updateOrderStatusById(int status, String uid); int updateOrderStatusById(@Param("status")int status, @Param("uid")String uid);
@Select("SELECT `uid`, `orderCode`, `itemQuantityTotal`, `segmentCode`, `consoType` FROM `collect_order` WHERE `orderCode` = #{orderCode} AND `status` = ${status}") @Select("SELECT `uid`, `orderCode`, `itemQuantityTotal`, `segmentCode`, `consoType` FROM `collect_order` WHERE `orderCode` = #{orderCode} AND `status` = ${status}")
List<CollectOrderListResponse> getList(@Param("orderCode") String orderCode, @Param("status") int status); List<CollectOrderListResponse> getList(@Param("orderCode") String orderCode, @Param("status") int status);
......
...@@ -29,7 +29,7 @@ public interface LogOrderMailDetailMapper extends BaseMapper<LogOrderMailDetailE ...@@ -29,7 +29,7 @@ public interface LogOrderMailDetailMapper extends BaseMapper<LogOrderMailDetailE
@Select("SELECT count(t.uid) FROM ( SELECT a.uid FROM `log_order_mail_detail` a WHERE `logisticsOrderCode` LIKE '%${logisticsOrderCode}%' AND `mailNo` LIKE '%${mailNo}%' AND `status` LIKE '%${status}%' AND `state` > 0 ) t") @Select("SELECT count(t.uid) FROM ( SELECT a.uid FROM `log_order_mail_detail` a WHERE `logisticsOrderCode` LIKE '%${logisticsOrderCode}%' AND `mailNo` LIKE '%${mailNo}%' AND `status` LIKE '%${status}%' AND `state` > 0 ) t")
Integer countUsable(LogOrderMailDetailListRequest param); Integer countUsable(LogOrderMailDetailListRequest param);
@Select("SELECT `uid`,`updated`,`status`,`logisticsOrderCode` , `expressCode` , `mailNo`, `length` , `width` , `height`, `weight` FROM `log_order_mail_detail` WHERE `logisticsOrderCode` LIKE '%${logisticsOrderCode}%' AND `mailNo` LIKE '%${mailNo}%' AND `status` LIKE '%${status}%' AND `state` > 0 ORDER BY uid DESC LIMIT #{offset}, #{size};") @Select("SELECT `uid`,`updated`,`status`,`logisticsOrderCode` , `expressCode` , `mailNo`, `length` , `width` , `height`, `weight` FROM `log_order_mail_detail` WHERE `logisticsOrderCode` LIKE '%${logisticsOrderCode}%' AND `mailNo` LIKE '%${mailNo}%' AND `status` = #{status} AND `state` > 0 ORDER BY uid DESC LIMIT #{offset}, #{size};")
List<LogOrderMailDetailListResponse> getListByCodeNo(LogOrderMailDetailListRequest param); List<LogOrderMailDetailListResponse> getListByCodeNo(LogOrderMailDetailListRequest param);
......
package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class DerelictionRequest {
@Schema(
description = "快递单号",
example = "STO12345678",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String mailNo;
@Schema(
description = "快递公司代码",
example = "STO",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String expressCode;
@Schema(
description = "主件识别码,包裹上二维码识别获得,##之间的部分",
example = "51110ANK19872",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String dereRecogCode;
}
...@@ -114,6 +114,14 @@ public class OutBoundRequest { ...@@ -114,6 +114,14 @@ public class OutBoundRequest {
requiredMode = Schema.RequiredMode.REQUIRED // 必填 requiredMode = Schema.RequiredMode.REQUIRED // 必填
) )
private String expressCode; private String expressCode;
@Schema(
description = "包裹关联原快递包裹单号,多拆少时必填",
example = "[\"SF000001\"]",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 非必填
)
private List<String> outBound;
} }
@Data @Data
......
package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class ProblemOrderNotifyRequest {
@Schema(
description = "快递单号",
example = "STO12345678",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String mailNo;
@Schema(
description = "快递公司代码",
example = "STO",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String expressCode;
@Schema(
description = "异常代码",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Integer reasonCode;
}
...@@ -24,4 +24,12 @@ public enum OrderProblemType { ...@@ -24,4 +24,12 @@ public enum OrderProblemType {
this.desc = desc; this.desc = desc;
} }
public static OrderProblemType verify(Integer reasonCode) {
for (OrderProblemType orderProblemType : OrderProblemType.values()) {
if (orderProblemType.value == reasonCode) {
return orderProblemType;
}
}
return null;
}
} }
...@@ -7,16 +7,15 @@ import org.springframework.stereotype.Component; ...@@ -7,16 +7,15 @@ import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
@Component
public class TimeTool { public class TimeTool {
public String getNowString() { public static String getNowString() {
Date date = new Date(); Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(date); return sdf.format(date);
} }
public String getNowDate() { public static String getNowDate() {
Date date = new Date(); Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(date); return sdf.format(date);
......
...@@ -19,7 +19,7 @@ import java.util.List; ...@@ -19,7 +19,7 @@ import java.util.List;
@Component @Component
@Slf4j @Slf4j
@EnableScheduling //@EnableScheduling
public class GDOperator { public class GDOperator {
@Resource @Resource
...@@ -27,7 +27,7 @@ public class GDOperator { ...@@ -27,7 +27,7 @@ public class GDOperator {
@Autowired @Autowired
private GDAttachmentImpl gDAttachmentImpl; private GDAttachmentImpl gDAttachmentImpl;
@Scheduled(fixedRate = 1000 * 60 * 5, initialDelay = 1000) // 每5分钟执行一次 // @Scheduled(fixedRate = 1000 * 60 * 5, initialDelay = 1000) // 每5分钟执行一次
public void getGdTickets() { public void getGdTickets() {
List<GDTicketRepsonse> list = PddGDUtil.getTickets(); List<GDTicketRepsonse> list = PddGDUtil.getTickets();
log.info("{} 工单数量:{}", new Date().toLocaleString(), list.size()); log.info("{} 工单数量:{}", new Date().toLocaleString(), list.size());
...@@ -38,34 +38,34 @@ public class GDOperator { ...@@ -38,34 +38,34 @@ public class GDOperator {
// 主体、绑定两个表 // 主体、绑定两个表
gdTicketEntity = new GDTicketEntity(); gdTicketEntity = new GDTicketEntity();
gdTicketEntity.setTicket_id(gdTicketRepsonse.getTicket_id()); gdTicketEntity.setTicket_id(gdTicketRepsonse.getTicket_id());
// gdTicketEntity.setCreate_type(gdTicketRepsonse.getCreate_type()); gdTicketEntity.setCreate_type(gdTicketRepsonse.getCreate_type());
// gdTicketEntity.setReceive_address(gdTicketRepsonse.getReceive_address()); gdTicketEntity.setReceive_address(gdTicketRepsonse.getReceive_address());
// gdTicketEntity.setSend_address(gdTicketRepsonse.getSend_address()); gdTicketEntity.setSend_address(gdTicketRepsonse.getSend_address());
// gdTicketEntity.setPre_delivery_id(gdTicketRepsonse.getPre_delivery_id()); gdTicketEntity.setPre_delivery_id(gdTicketRepsonse.getPre_delivery_id());
// gdTicketEntity.setHandle_result(gdTicketRepsonse.getHandle_result()); gdTicketEntity.setHandle_result(gdTicketRepsonse.getHandle_result());
// gdTicketEntity.setExpress_company_id((long)gdTicketRepsonse.getExpress_company_id()); gdTicketEntity.setExpress_company_id((long)gdTicketRepsonse.getExpress_company_id());
// gdTicketEntity.setCompensate_state((int)gdTicketRepsonse.getCompensate_state()); gdTicketEntity.setCompensate_state((int)gdTicketRepsonse.getCompensate_state());
// gdTicketEntity.setCompensate_amount(gdTicketRepsonse.getCompensate_amount().intValue()); gdTicketEntity.setCompensate_amount(gdTicketRepsonse.getCompensate_amount().intValue());
// gdTicketEntity.setSign_state((int)gdTicketRepsonse.getSign_state()); gdTicketEntity.setSign_state((int)gdTicketRepsonse.getSign_state());
// gdTicketEntity.setExpress_dealer(gdTicketRepsonse.getExpress_dealer()); gdTicketEntity.setExpress_dealer(gdTicketRepsonse.getExpress_dealer());
// gdTicketEntity.setExpress_dealer_contact(gdTicketRepsonse.getExpress_dealer_contact()); gdTicketEntity.setExpress_dealer_contact(gdTicketRepsonse.getExpress_dealer_contact());
// gdTicketEntity.setRetreat_count(gdTicketRepsonse.getRetreat_count()); gdTicketEntity.setRetreat_count(gdTicketRepsonse.getRetreat_count());
// gdTicketEntity.setReceive_name(gdTicketRepsonse.getReceive_name()); gdTicketEntity.setReceive_name(gdTicketRepsonse.getReceive_name());
// gdTicketEntity.setReceive_contact(gdTicketRepsonse.getReceive_contact()); gdTicketEntity.setReceive_contact(gdTicketRepsonse.getReceive_contact());
gdTicketEntity.setCreate_at(gdTicketRepsonse.getCreated_at()); gdTicketEntity.setCreate_at(gdTicketRepsonse.getCreated_at());
gdTicketEntity.setUpdate_at(gdTicketRepsonse.getUpdated_at()); gdTicketEntity.setUpdate_at(gdTicketRepsonse.getUpdated_at());
// gdTicketEntity.setTitle(gdTicketRepsonse.getTitle()); gdTicketEntity.setTitle(gdTicketRepsonse.getTitle());
// gdTicketEntity.setDescription(gdTicketRepsonse.getDescription()); gdTicketEntity.setDescription(gdTicketRepsonse.getDescription());
// gdTicketEntity.setSource(gdTicketRepsonse.getSource()); gdTicketEntity.setSource(gdTicketRepsonse.getSource());
gdTicketEntity.setWaybill_no(gdTicketRepsonse.getWaybill_no()); gdTicketEntity.setWaybill_no(gdTicketRepsonse.getWaybill_no());
// gdTicketEntity.setUrgent_type(gdTicketRepsonse.getUrgent_type()); gdTicketEntity.setUrgent_type(gdTicketRepsonse.getUrgent_type());
// gdTicketEntity.setType_id(gdTicketRepsonse.getType_id()); gdTicketEntity.setType_id(gdTicketRepsonse.getType_id());
// gdTicketEntity.setStatus(gdTicketRepsonse.getStatus()); gdTicketEntity.setStatus(gdTicketRepsonse.getStatus());
// gdTicketEntity.setCabinet_code(gdTicketRepsonse.getCabinet_code()); gdTicketEntity.setCabinet_code(gdTicketRepsonse.getCabinet_code());
// gdTicketEntity.setMail_order_sn(gdTicketRepsonse.getMail_order_sn()); gdTicketEntity.setMail_order_sn(gdTicketRepsonse.getMail_order_sn());
// gdTicketEntity.setPay_amount(gdTicketRepsonse.getPay_amount()); gdTicketEntity.setPay_amount(gdTicketRepsonse.getPay_amount());
// gdTicketEntity.setArea_name(gdTicketRepsonse.getArea_name()); gdTicketEntity.setArea_name(gdTicketRepsonse.getArea_name());
gdTicketImpl.save(gdTicketEntity); gdTicketImpl.save(gdTicketEntity);
......
...@@ -4,13 +4,13 @@ spring: ...@@ -4,13 +4,13 @@ spring:
# 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_test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT # url: jdbc:mysql://lyhj-mysql.mysql.rds.aliyuncs.com:3306/pdd_test?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 # username: pdd
# password: pdd123 # password: pdd123
url: jdbc:mysql://rm-j6cv8n7zx12x0sqreuo.mysql.rds.aliyuncs.com:3306/pdd_test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
username: pdd
password: pdd123
hikari: hikari:
minimum-idle: 5 # 最小空闲连接数 minimum-idle: 5 # 最小空闲连接数
maximum-pool-size: 10 # 最大活跃连接数 maximum-pool-size: 10 # 最大活跃连接数
...@@ -21,7 +21,8 @@ spring: ...@@ -21,7 +21,8 @@ spring:
application: application:
name: PddServer name: PddServer
server: server:
port: 8600 # port: 9000 # 正式端口号
port: 8600 # 测试端口号
logging: logging:
level: level:
org: org:
......
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