Commit 55e04e6e authored by Allen Chen's avatar Allen Chen

commit

parent 7f46ae52
......@@ -74,6 +74,12 @@
<version>0.4.19</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.1.0</version> <!-- 使用最新版本 -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
......
package org.ta.pddserver.config;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
.info(new Info().title("海际集运系统-多多国际接口文档").version("1.0").description("接口说明"));
}
}
......@@ -11,11 +11,13 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.ta.pddserver.config.PddAPIConfig;
import org.ta.pddserver.entity.TraceObjectEntity;
import org.ta.pddserver.model.api.request.CollectOrderListRequest;
import org.ta.pddserver.model.api.request.CollectOrderRequest;
import org.ta.pddserver.model.api.request.TraceObjectRequest;
import org.ta.pddserver.model.api.response.CollectOrderDetailResponse;
import org.ta.pddserver.model.api.response.CollectOrderInfoResponse;
import org.ta.pddserver.model.api.response.CollectReceiverDetailResponse;
import org.ta.pddserver.model.enums.StatusEnum;
import org.ta.pddserver.model.pddlg.common.TraceObject;
import org.ta.pddserver.model.pddlg.request.PddLogisticsCoTrackNotifyRequest;
import org.ta.pddserver.model.pddlg.response.PddLogisticsCoTrackNotifyResponse;
......@@ -100,7 +102,7 @@ public class DataGetController {
}
/*出库详情*/
@PostMapping("/collectOrderInfo")
@PostMapping("/orderInfo")
public JSONObject collectOrderInfo(HttpServletRequest request, @RequestBody CollectOrderRequest collectOrderRequest) {
Map<String, Object> map = new HashMap<>();
CollectOrderInfoResponse collectOrderInfoResponse = collectOrderImpl.getInfoByOrderCode(collectOrderRequest.getOrderCode());
......@@ -113,6 +115,16 @@ public class DataGetController {
return JsonResponse.generateLocalCommonSuccessResponse(map);
}
/*待拣货列表*/
@PostMapping("/outboundList")
public JSONObject outboundList(HttpServletRequest request, @RequestBody CollectOrderListRequest collectOrderListRequest) {
collectOrderListRequest.setStatus(StatusEnum.FINISHOUTBOUND.getCode());
if (collectOrderListRequest.getSize() > 100) {
collectOrderListRequest.setSize(100);
}
return JsonResponse.generateLocalCommonSuccessResponse(collectOrderImpl.getList(collectOrderListRequest));
}
private PddLogisticsCoTrackNotifyRequest.DataObject getDataObject(String code) {
PddLogisticsCoTrackNotifyRequest.DataObject dataObjects = new PddLogisticsCoTrackNotifyRequest.DataObject();
dataObjects.setTraces(new ArrayList<>());
......
......@@ -2,6 +2,8 @@ package org.ta.pddserver.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
......@@ -22,6 +24,7 @@ import java.util.*;
@Slf4j
@RestController
@Tag(name="业务对接接口", description = "仓库系统对接本接口")
public class PddLocalController {
......@@ -64,6 +67,11 @@ public class PddLocalController {
UnpackNoticeImpl unpackNoticeImpl;
/*集运单列表*/
@Operation(
summary = "分页查询收到的集运单列表",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/logOrderList")
public JSONObject logOrderList(HttpServletRequest request, @RequestBody LogOrderListRequest logOrderListRequest) {
return JsonResponse.generateLocalCommonSuccessResponse(logOrderImpl.getListByRequest(logOrderListRequest));
......@@ -195,7 +203,6 @@ public class PddLocalController {
return JsonResponse.generateLocalCommonSuccessResponse(map);
}
/*签收*/
@PostMapping("/receive")
public JSONObject receive(HttpServletRequest request, @RequestBody ReceiveRequest receiveRequest) {
......@@ -500,7 +507,7 @@ public class PddLocalController {
// return JsonResponse.generateLocalCommonFailedResponse("-1", "未查到集运单信息,请检查参数");
// }
UnpackNoticeEntity unpackNoticeEntity = unpackNoticeImpl.getByCode(finishUnpackRequest.getOrderCode());
UnpackNoticeEntity unpackNoticeEntity = unpackNoticeImpl.getByCode(finishUnpackRequest.getOrderCode());
if (unpackNoticeEntity == null) {
return JsonResponse.generateLocalCommonFailedResponse("-1", "未查到集运单信息,请检查参数");
}
......@@ -789,12 +796,8 @@ public class PddLocalController {
logOrderMailDetailIoEntity.setExpressCode(logOrderPackageEntity.getExpressCode());
logOrderMailDetailIoEntity.setLogisticsOrderCode(logOrderPackageEntity.getLogisticsOrderCode());
logOrderMailDetailIoEntity.setExpressCode(logOrderPackageEntity.getExpressCode());
logOrderMailDetailIoImpl.save(logOrderMailDetailIoEntity);
logOrderPackageEntity.setStatus(logOrderMailDetailIoEntity.getStatus().toString());
return JsonResponse.generateLocalCommonSuccessResponse(true);
}
......@@ -833,15 +836,128 @@ public class PddLocalController {
//出库信息与已存信息不匹配,无法出库
return JsonResponse.generateLocalCommonFailedResponse("-1", "出库单数异常");
}
} else {
// 非拆单出库
}
CollectOrderResponse collectOrderResponse = collectOrderImpl.getByOrderCode(outBoundRequest.getOrderCode());
notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
notifyRequest.setOrderCode(outBoundRequest.getOrderCode());
notifyRequest.setSegmentCode(collectOrderResponse.getSegmentCode());
notifyRequest.setExecuteTime(timeTool.getNowString());
notifyRequest.setTimeZone("UTC+8");
notifyRequest.setIsSplitOut("N");
notifyRequest.setPackageInfos(new ArrayList<>());
for (OutBoundRequest.OutPackage outPackage : outBoundRequest.getOutPackageList()) {
PddServiceConsoOutboundRequest.PackageInfo packageInfo = new PddServiceConsoOutboundRequest.PackageInfo();
notifyRequest.getPackageInfos().add(packageInfo);
packageInfo.setOutboundMailNo(outPackage.getMailNo());
packageInfo.setExpressCode(outPackage.getExpressCode());
packageInfo.setPackageType(outPackage.getPackageType());
packageInfo.setLength(outPackage.getLength());
packageInfo.setWidth(outPackage.getWidth());
packageInfo.setHeight(outPackage.getHeight());
packageInfo.setWeight(outPackage.getWeight());
}
CollectOrderResponse collectOrderResponse = collectOrderImpl.getByOrderCode(outBoundRequest.getOrderCode());
notifyRequest.setSenderDetail(new PddServiceConsoOutboundRequest.SenderDetail());
CollectOrderSendEntity collectOrderSendEntity = collectOrderSendImpl.getInfo();
notifyRequest.getSenderDetail().setName(collectOrderSendEntity.getName());
notifyRequest.getSenderDetail().setTelePhone(collectOrderSendEntity.getTelePhone());
notifyRequest.getSenderDetail().setCountry(collectOrderSendEntity.getCountry());
notifyRequest.getSenderDetail().setProvince(collectOrderSendEntity.getProvince());
notifyRequest.getSenderDetail().setCity(collectOrderSendEntity.getCity());
notifyRequest.getSenderDetail().setDistrict(collectOrderSendEntity.getDistrict());
notifyRequest.getSenderDetail().setDetailAddress(collectOrderSendEntity.getDetailAddress());
CollectReceiverDetailEntity collectReceiverDetailEntity = collectReceiverDetailImpl.getInfoByOrderCode(outBoundRequest.getOrderCode());
notifyRequest.setReceiverDetail(new PddServiceConsoOutboundRequest.ReceiverDetail());
notifyRequest.getReceiverDetail().setName(collectReceiverDetailEntity.getName());
notifyRequest.getReceiverDetail().setTelePhone(collectReceiverDetailEntity.getTelePhone());
notifyRequest.getReceiverDetail().setCountry(collectReceiverDetailEntity.getCountry());
notifyRequest.getReceiverDetail().setProvince(collectReceiverDetailEntity.getProvince());
notifyRequest.getReceiverDetail().setCity(collectReceiverDetailEntity.getCity());
notifyRequest.getReceiverDetail().setDistrict(collectReceiverDetailEntity.getDistrict());
notifyRequest.getReceiverDetail().setDetailAddress(collectReceiverDetailEntity.getDetailAddress());
notifyRequest.setResult(new PddServiceConsoOutboundRequest.Result());
notifyRequest.getResult().setCode(0);
log.info("derelictionRequest:{}", JSON.toJSONString(notifyRequest));
JYBaseRequestModel requestModel = new JYBaseRequestModel();
requestModel.setRequest(JSON.toJSONString(notifyRequest));
requestModel.setRequest_id("" + new Date().getTime());
requestModel.setType("pdd.service.conso.outbound");
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);
for (OutBoundRequest.OutPackage outPackage : outBoundRequest.getOutPackageList()) {
LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity();
logOrderMailDetailIoEntity.setMailNo(outPackage.getMailNo());
logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode());
logOrderMailDetailIoEntity.setLogisticsOrderCode(outBoundRequest.getOrderCode());
logOrderMailDetailIoEntity.setExpressCode(outPackage.getExpressCode());
logOrderMailDetailIoEntity.setStatus(StatusEnum.FINISHOUTBOUND.getCode());
logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel));
logOrderMailDetailIoEntity.setResp(resp);
logOrderMailDetailIoImpl.save(logOrderMailDetailIoEntity);
//更新collect_mail_detail
for (CollectMailDetailEntity lists : list) {
Boolean result = collectMailDetailImpl.updateByMailNo(lists.getMailNo(), logOrderMailDetailIoEntity.getStatus());
}
}
collectOrderImpl.updateOrderStatus(StatusEnum.FINISHOUTBOUND.getCode(), collectOrderResponse.getUid());
return JsonResponse.generateLocalCommonSuccessResponse(true);
}
/*拣货完成后出库*/
@PostMapping("/outBoundError")
public JSONObject outBoundError(HttpServletRequest request, @RequestBody OutBoundRequest outBoundRequest) {
PddServiceConsoOutboundRequest notifyRequest = new PddServiceConsoOutboundRequest();
List<OutBoundRequest.OutBoundList> outBoundList = outBoundRequest.getOutBound();
// TODO 此处异常,需要处理
//获取所有可出库订单
List<CollectMailDetailEntity> list = collectMailDetailImpl.getListByOrderCode(outBoundRequest.getOrderCode());
if (list != null && !list.isEmpty()) {
// 拆单操作
// 存储需要删除的元素
List<CollectMailDetailEntity> toRemoveList = new ArrayList<>();
List<OutBoundRequest.OutBoundList> toRemoveOutBound = new ArrayList<>();
for (CollectMailDetailEntity lists : list) {
for (OutBoundRequest.OutBoundList outBoundLists : outBoundList) {
if (lists.getMailNo().equals(outBoundLists.getMailNo())) {
toRemoveList.add(lists);
toRemoveOutBound.add(outBoundLists);
}
}
}
list.removeAll(toRemoveList);
outBoundList.removeAll(toRemoveOutBound);
if (list.size() > 0 || outBoundList.size() > 0) {
//出库信息与已存信息不匹配,无法出库
return JsonResponse.generateLocalCommonFailedResponse("-1", "出库单数异常");
}
}
CollectOrderResponse collectOrderResponse = collectOrderImpl.getByOrderCode(outBoundRequest.getOrderCode());
notifyRequest.setProviderCode(PddAPIConfig.PROVIDER_CODE);
notifyRequest.setOrderCode(outBoundRequest.getOrderCode());
notifyRequest.setSegmentCode(collectOrderResponse.getSegmentCode());
......@@ -888,7 +1004,9 @@ public class PddLocalController {
notifyRequest.getReceiverDetail().setDetailAddress(collectReceiverDetailEntity.getDetailAddress());
notifyRequest.setResult(new PddServiceConsoOutboundRequest.Result());
notifyRequest.getResult().setCode(0);
notifyRequest.getResult().setCode(outBoundRequest.getResult().getCode());
notifyRequest.getResult().setDesc(outBoundRequest.getResult().getDesc());
notifyRequest.getResult().setRemark(outBoundRequest.getResult().getRemark());
log.info("derelictionRequest:{}", JSON.toJSONString(notifyRequest));
......
package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.ta.pddserver.model.common.PageTool;
@Data
public class LogOrderListRequest extends PageTool {
@Schema(
description = "搜索集运单号,模糊搜索",
example = "PC123456",
minLength = 0,
maxLength = 20,
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
// @NotBlank(message = "用户名不能为空")
private String logisticsOrderCode;
}
......@@ -13,6 +13,8 @@ public class OutBoundRequest {
private List<OutPackage> outPackageList;
private Result result;
/**
* 包裹详情
......@@ -41,4 +43,11 @@ public class OutBoundRequest {
private String expressCode;
}
@Data
public static class Result {
private String desc;
private String remark;
private int code;
}
}
package org.ta.pddserver.model.common;
import io.swagger.v3.oas.annotations.media.Schema;
public class PageTool {
@Schema(
description = "当前页码,最小1",
example = "1",
minLength = 0,
maxLength = 20,
defaultValue = "1",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Integer page;
@Schema(
description = "不需要传",
example = "0",
minLength = 0,
maxLength = 20,
defaultValue = "0",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private Integer offset;
@Schema(
description = "分页数量",
example = "20",
minLength = 1,
maxLength = 2,
defaultValue = "20",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Integer size;
public Integer getSize() {
......
......@@ -4,13 +4,13 @@ spring:
# url: jdbc:mysql://192.168.2.222:3306/pdd_api?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
# username: root
# password: root
# url: jdbc:mysql://lyhj-mysql.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
# username: pdd
# password: pdd123
url: jdbc:mysql://rm-j6cv8n7zx12x0sqreuo.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
url: jdbc:mysql://lyhj-mysql.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
username: pdd
password: pdd123
# url: jdbc:mysql://rm-j6cv8n7zx12x0sqreuo.mysql.rds.aliyuncs.com:3306/pdd_prod?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
# username: pdd
# password: pdd123
hikari:
minimum-idle: 5 # 最小空闲连接数
maximum-pool-size: 10 # 最大活跃连接数
......
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