Commit 00e68e3a authored by Allen Chen's avatar Allen Chen

注释

parent 55e04e6e
...@@ -15,6 +15,7 @@ import org.ta.pddserver.entity.*; ...@@ -15,6 +15,7 @@ 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.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.service.impl.*; import org.ta.pddserver.service.impl.*;
...@@ -78,12 +79,22 @@ public class PddLocalController { ...@@ -78,12 +79,22 @@ public class PddLocalController {
} }
/*包裹列表*/ /*包裹列表*/
@Operation(
summary = "签收、入库列表",
description = "",
deprecated = false // 是否废弃
)
@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));
} }
/*运单号查询*/ /*运单号查询*/
@Operation(
summary = "运单号查询订单信息,精准查询",
description = "",
deprecated = false // 是否废弃
)
@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());
...@@ -91,6 +102,11 @@ public class PddLocalController { ...@@ -91,6 +102,11 @@ public class PddLocalController {
} }
/*待拆包列表*/ /*待拆包列表*/
@Operation(
summary = "分页查询拆包列表",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/packageNoticeList") @PostMapping("/packageNoticeList")
public JSONObject packageNoticeList(HttpServletRequest request, @RequestBody PackageNoticeRequest packageNoticeRequest) { public JSONObject packageNoticeList(HttpServletRequest request, @RequestBody PackageNoticeRequest packageNoticeRequest) {
...@@ -98,6 +114,11 @@ public class PddLocalController { ...@@ -98,6 +114,11 @@ public class PddLocalController {
} }
/*待拆包查询*/ /*待拆包查询*/
@Operation(
summary = "运单号查询拆包信息,精准查询",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/packageScan") @PostMapping("/packageScan")
public Map<String, Object> packageScan(HttpServletRequest request, @RequestBody MailNoRequest mailNoRequest) { public Map<String, Object> packageScan(HttpServletRequest request, @RequestBody MailNoRequest mailNoRequest) {
UnpackMailDetailEntity unpackMailDetailEntity = unpackMailDetailImpl.getByMailNo(mailNoRequest.getMailNo()); UnpackMailDetailEntity unpackMailDetailEntity = unpackMailDetailImpl.getByMailNo(mailNoRequest.getMailNo());
...@@ -118,43 +139,63 @@ public class PddLocalController { ...@@ -118,43 +139,63 @@ public class PddLocalController {
return JsonResponse.generateLocalCommonSuccessResponse(map); return JsonResponse.generateLocalCommonSuccessResponse(map);
} }
/*出库列表*/ // /*出库列表*/
@PostMapping("/collectMailDetailList") // @Operation(
public JSONObject collectMailDetailList(HttpServletRequest request, @RequestBody CollectMailDetailListRequest collectMailDetailListRequest) { // summary = "运单号查询拆包信息,精准查询",
// description = "",
return JsonResponse.generateLocalCommonSuccessResponse(collectMailDetailImpl.getList(collectMailDetailListRequest)); // deprecated = false // 是否废弃
} // )
// @PostMapping("/collectMailDetailList")
// public JSONObject collectMailDetailList(HttpServletRequest request, @RequestBody CollectMailDetailListRequest collectMailDetailListRequest) {
//
// return JsonResponse.generateLocalCommonSuccessResponse(collectMailDetailImpl.getList(collectMailDetailListRequest));
// }
/*待拣货列表*/ /*待拣货列表*/
@Operation(
summary = "分页查询拣货、出库列表",
description = "",
deprecated = false // 是否废弃
)
@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));
} }
/*拆包列表*/ // /*拆包列表*/
@PostMapping("/logOrderPackageList") // @Operation(
public JSONObject logOrderPackageList(HttpServletRequest request, @RequestBody LogOrderPackageListRequest logOrderPackageListRequest) { // summary = "分页查询拆包列表",
return JsonResponse.generateLocalCommonSuccessResponse(logOrderPackageImpl.getList(logOrderPackageListRequest)); // description = "",
} // deprecated = false // 是否废弃
// )
// @PostMapping("/logOrderPackageList")
/*出库扫码*/ // public JSONObject logOrderPackageList(HttpServletRequest request, @RequestBody LogOrderPackageListRequest logOrderPackageListRequest) {
@PostMapping("/collectOrderScan") // return JsonResponse.generateLocalCommonSuccessResponse(logOrderPackageImpl.getList(logOrderPackageListRequest));
public Map<String, Object> collectOrderScan(HttpServletRequest request, @RequestBody CollectOrderScanRequest collectOrderScanRequest) { // }
Map<String, Object> map = new HashMap<>();
// /*出库扫码*/
CollectOrderResponse collectOrderResponse = collectOrderImpl.getByOrderCode(collectOrderScanRequest.getOrderCode()); // @PostMapping("/collectOrderScan")
List<CollectOutMailDetailResponse> list = collectOutMailDetailImpl.getListByOrderCode(collectOrderScanRequest.getOrderCode()); // public Map<String, Object> collectOrderScan(HttpServletRequest request, @RequestBody CollectOrderScanRequest collectOrderScanRequest) {
//
map.put("collectOrder", collectOrderResponse); // Map<String, Object> map = new HashMap<>();
map.put("list", list); //
// CollectOrderResponse collectOrderResponse = collectOrderImpl.getByOrderCode(collectOrderScanRequest.getOrderCode());
return JsonResponse.generateLocalCommonSuccessResponse(map); // List<CollectOutMailDetailResponse> list = collectOutMailDetailImpl.getListByOrderCode(collectOrderScanRequest.getOrderCode());
} //
// map.put("collectOrder", collectOrderResponse);
// map.put("list", list);
//
// return JsonResponse.generateLocalCommonSuccessResponse(map);
// }
/*拣货扫码*/ /*拣货扫码*/
@Operation(
summary = "运单号,拣货扫码",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/collectMailDetailScan") @PostMapping("/collectMailDetailScan")
public Map<String, Object> collectMailDetailScan(HttpServletRequest request, @RequestBody CollectMailDetailRequest collectMailDetailRequest) { public Map<String, Object> collectMailDetailScan(HttpServletRequest request, @RequestBody CollectMailDetailRequest collectMailDetailRequest) {
...@@ -178,6 +219,11 @@ public class PddLocalController { ...@@ -178,6 +219,11 @@ public class PddLocalController {
/*待拣包裹列表接口*/ /*待拣包裹列表接口*/
@Operation(
summary = "运单号,出库扫码",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/mailNoSelectAll") @PostMapping("/mailNoSelectAll")
public Map<String, Object> mailNoSelectAll(HttpServletRequest request, @RequestBody MailNoRequest mailNoRequest) { public Map<String, Object> mailNoSelectAll(HttpServletRequest request, @RequestBody MailNoRequest mailNoRequest) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
...@@ -204,6 +250,11 @@ public class PddLocalController { ...@@ -204,6 +250,11 @@ public class PddLocalController {
} }
/*签收*/ /*签收*/
@Operation(
summary = "签收",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/receive") @PostMapping("/receive")
public JSONObject receive(HttpServletRequest request, @RequestBody ReceiveRequest receiveRequest) { public JSONObject receive(HttpServletRequest request, @RequestBody ReceiveRequest receiveRequest) {
LogOrderMailDetailEntity mailNoResponse = logOrderMailDetailImpl.getAllInfoByMailNo(receiveRequest.getMailNo()); LogOrderMailDetailEntity mailNoResponse = logOrderMailDetailImpl.getAllInfoByMailNo(receiveRequest.getMailNo());
...@@ -229,13 +280,13 @@ public class PddLocalController { ...@@ -229,13 +280,13 @@ public class PddLocalController {
} else if (action.equals("warehouse_reject_sign")) { } else if (action.equals("warehouse_reject_sign")) {
notifyRequest.setBizActionDesc("仓库拒签"); notifyRequest.setBizActionDesc("仓库拒签");
notifyResult.setCode(receiveRequest.getCode()); notifyResult.setCode(receiveRequest.getCode());
notifyResult.setDesc(receiveRequest.getDesc()); notifyResult.setDesc(OrderRejectCode.getByCode(receiveRequest.getCode()).getDesc());
notifyResult.setRemark(receiveRequest.getDesc()); notifyResult.setRemark(OrderRejectCode.getByCode(receiveRequest.getCode()).getRemark());
if (receiveRequest.getLength() != null && receiveRequest.getLength() > 0) { if (receiveRequest.getLength() != null && receiveRequest.getLength() > 0) {
notifyRequest.setPackageInfo(new PddServiceConsoFirstBizActionNotifyRequest.PackageInfo()); notifyRequest.setPackageInfo(new PddServiceConsoFirstBizActionNotifyRequest.PackageInfo());
notifyRequest.getPackageInfo().setWeight(receiveRequest.getWeight()); notifyRequest.getPackageInfo().setWeight((long) PddJYPriceTool.calculateWeight((int) receiveRequest.getLength().longValue(), (int) receiveRequest.getWidth().longValue(), (int) receiveRequest.getHeight().longValue(), (int) receiveRequest.getWeight().longValue(), true));
notifyRequest.getPackageInfo().setActualWeight(receiveRequest.getWeight()); notifyRequest.getPackageInfo().setActualWeight(receiveRequest.getWeight());
notifyRequest.getPackageInfo().setLength(receiveRequest.getLength()); notifyRequest.getPackageInfo().setLength(receiveRequest.getLength());
notifyRequest.getPackageInfo().setWidth(receiveRequest.getWidth()); notifyRequest.getPackageInfo().setWidth(receiveRequest.getWidth());
...@@ -282,6 +333,11 @@ public class PddLocalController { ...@@ -282,6 +333,11 @@ public class PddLocalController {
} }
/*入库*/ /*入库*/
@Operation(
summary = "入库",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/inBound") @PostMapping("/inBound")
public JSONObject inBound(HttpServletRequest request, @RequestBody InBoundRequest inBoundRequest) { public JSONObject inBound(HttpServletRequest request, @RequestBody InBoundRequest inBoundRequest) {
LogOrderMailDetailEntity mailNoResponse = logOrderMailDetailImpl.getByMailNo(inBoundRequest.getMailNo()); LogOrderMailDetailEntity mailNoResponse = logOrderMailDetailImpl.getByMailNo(inBoundRequest.getMailNo());
...@@ -323,10 +379,10 @@ public class PddLocalController { ...@@ -323,10 +379,10 @@ public class PddLocalController {
notifyRequest.getPackageInfo().setMailNo(mailNoResponse.getMailNo()); notifyRequest.getPackageInfo().setMailNo(mailNoResponse.getMailNo());
notifyRequest.getPackageInfo().setExpressCode(mailNoResponse.getExpressCode()); notifyRequest.getPackageInfo().setExpressCode(mailNoResponse.getExpressCode());
notifyRequest.getPackageInfo().setLength(inBoundRequest.getLength()); notifyRequest.getPackageInfo().setLength(inBoundRequest.getLength());
notifyRequest.getPackageInfo().setWidth(inBoundRequest.getWidth()); notifyRequest.getPackageInfo().setActualWeight(inBoundRequest.getWidth());
notifyRequest.getPackageInfo().setHeight(inBoundRequest.getHeight()); notifyRequest.getPackageInfo().setHeight(inBoundRequest.getHeight());
notifyRequest.getPackageInfo().setWeight(inBoundRequest.getWeight()); notifyRequest.getPackageInfo().setWidth(inBoundRequest.getWidth());
notifyRequest.getPackageInfo().setActualWeight((long) PddJYPriceTool.calculateWeight(inBoundRequest.getLength().intValue(), inBoundRequest.getWidth().intValue(), inBoundRequest.getHeight().intValue(), inBoundRequest.getWeight().intValue(), true)); notifyRequest.getPackageInfo().setWeight((long) PddJYPriceTool.calculateWeight(inBoundRequest.getLength().intValue(), inBoundRequest.getWidth().intValue(), inBoundRequest.getHeight().intValue(), inBoundRequest.getWeight().intValue(), true));
notifyRequest.getPackageInfo().setGoodsType(inBoundRequest.getGoodsType()); notifyRequest.getPackageInfo().setGoodsType(inBoundRequest.getGoodsType());
notifyRequest.setResult(new PddServiceConsoInboundRequest.Result()); notifyRequest.setResult(new PddServiceConsoInboundRequest.Result());
...@@ -377,6 +433,11 @@ public class PddLocalController { ...@@ -377,6 +433,11 @@ public class PddLocalController {
/** /**
* 入库异常 * 入库异常
*/ */
@Operation(
summary = "入库异常",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/inBoundError") @PostMapping("/inBoundError")
public JSONObject inBoundError(HttpServletRequest request, @RequestBody InBoundRequest inBoundRequest) { public JSONObject inBoundError(HttpServletRequest request, @RequestBody InBoundRequest inBoundRequest) {
...@@ -415,10 +476,10 @@ public class PddLocalController { ...@@ -415,10 +476,10 @@ public class PddLocalController {
notifyRequest.getPackageInfo().setMailNo(mailNoResponse.getMailNo()); notifyRequest.getPackageInfo().setMailNo(mailNoResponse.getMailNo());
notifyRequest.getPackageInfo().setExpressCode(mailNoResponse.getExpressCode()); notifyRequest.getPackageInfo().setExpressCode(mailNoResponse.getExpressCode());
notifyRequest.getPackageInfo().setLength(inBoundRequest.getLength()); notifyRequest.getPackageInfo().setLength(inBoundRequest.getLength());
notifyRequest.getPackageInfo().setWidth(inBoundRequest.getWidth()); notifyRequest.getPackageInfo().setWidth((long) PddJYPriceTool.calculateWeight(inBoundRequest.getLength().intValue(), inBoundRequest.getWidth().intValue(), inBoundRequest.getHeight().intValue(), inBoundRequest.getWeight().intValue(), true));
notifyRequest.getPackageInfo().setHeight(inBoundRequest.getHeight()); notifyRequest.getPackageInfo().setHeight(inBoundRequest.getHeight());
notifyRequest.getPackageInfo().setWeight(inBoundRequest.getWeight()); notifyRequest.getPackageInfo().setWeight(inBoundRequest.getWeight());
notifyRequest.getPackageInfo().setActualWeight((long) PddJYPriceTool.calculateWeight((int) inBoundRequest.getLength().longValue(), (int) inBoundRequest.getWidth().longValue(), (int) inBoundRequest.getHeight().longValue(), (int) inBoundRequest.getWeight().longValue(), true)); notifyRequest.getPackageInfo().setActualWeight(inBoundRequest.getWidth());
notifyRequest.getPackageInfo().setGoodsType(inBoundRequest.getGoodsType()); notifyRequest.getPackageInfo().setGoodsType(inBoundRequest.getGoodsType());
notifyRequest.setResult(new PddServiceConsoInboundRequest.Result()); notifyRequest.setResult(new PddServiceConsoInboundRequest.Result());
...@@ -460,6 +521,11 @@ public class PddLocalController { ...@@ -460,6 +521,11 @@ public class PddLocalController {
/** /**
* 拣货异常 * 拣货异常
*/ */
@Operation(
summary = "拣货异常",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/unpackError") @PostMapping("/unpackError")
public JSONObject beginPickError(HttpServletRequest request, @RequestBody FinishUnpackRequest finishUnpackRequest) { public JSONObject beginPickError(HttpServletRequest request, @RequestBody FinishUnpackRequest finishUnpackRequest) {
...@@ -576,7 +642,7 @@ public class PddLocalController { ...@@ -576,7 +642,7 @@ public class PddLocalController {
String resp = PddHttpTool.sendJsonPost(requestModel); String resp = PddHttpTool.sendJsonPost(requestModel);
logOrderMailDetailIoEntity.setMailNo(finishUnpackRequest.getMailNo()); // logOrderMailDetailIoEntity.setMailNo(finishUnpackRequest.getMailNo());
logOrderMailDetailIoEntity.setLogisticsOrderCode(finishUnpackRequest.getOrderCode()); logOrderMailDetailIoEntity.setLogisticsOrderCode(finishUnpackRequest.getOrderCode());
logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel)); logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel));
...@@ -603,6 +669,14 @@ public class PddLocalController { ...@@ -603,6 +669,14 @@ public class PddLocalController {
} }
/*收到出库通知后 开始拣货 拣货完成 */ /*收到出库通知后 开始拣货 拣货完成 */
/**
* 拣货异常
*/
@Operation(
summary = "出库通知、开始拣货、拣货完成",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/finishUnpack") @PostMapping("/finishUnpack")
public JSONObject finishUnpack(HttpServletRequest request, @RequestBody FinishUnpackRequest finishUnpackRequest) { public JSONObject finishUnpack(HttpServletRequest request, @RequestBody FinishUnpackRequest finishUnpackRequest) {
...@@ -707,7 +781,7 @@ public class PddLocalController { ...@@ -707,7 +781,7 @@ public class PddLocalController {
String resp = PddHttpTool.sendJsonPost(requestModel); String resp = PddHttpTool.sendJsonPost(requestModel);
logOrderMailDetailIoEntity.setMailNo(finishUnpackRequest.getMailNo()); // logOrderMailDetailIoEntity.setMailNo(finishUnpackRequest.getMailNo());
logOrderMailDetailIoEntity.setLogisticsOrderCode(finishUnpackRequest.getOrderCode()); logOrderMailDetailIoEntity.setLogisticsOrderCode(finishUnpackRequest.getOrderCode());
logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel)); logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel));
logOrderMailDetailIoEntity.setResp(resp); logOrderMailDetailIoEntity.setResp(resp);
...@@ -735,74 +809,79 @@ public class PddLocalController { ...@@ -735,74 +809,79 @@ public class PddLocalController {
/*通知拆包后拣货*/ /*通知拆包后拣货*/
@PostMapping("/finishUnpackPackage") // @PostMapping("/finishUnpackPackage")
public JSONObject finishUnpackPackage(HttpServletRequest request, @RequestBody FinishUnpackRequest finishUnpackRequest) { // public JSONObject finishUnpackPackage(HttpServletRequest request, @RequestBody FinishUnpackRequest finishUnpackRequest) {
LogOrderPackageEntity logOrderPackageEntity = logOrderPackageImpl.getInfoByCode(finishUnpackRequest.getLogisticsOrderCode()); // LogOrderPackageEntity logOrderPackageEntity = logOrderPackageImpl.getInfoByCode(finishUnpackRequest.getLogisticsOrderCode());
//
String action = finishUnpackRequest.getAction(); // String action = finishUnpackRequest.getAction();
//
LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity(); // LogOrderMailDetailIoEntity logOrderMailDetailIoEntity = new LogOrderMailDetailIoEntity();
//
PddServiceConsoCoBizActionNotifyRequest.Result notifyResult = new PddServiceConsoCoBizActionNotifyRequest.Result(); // PddServiceConsoCoBizActionNotifyRequest.Result notifyResult = new PddServiceConsoCoBizActionNotifyRequest.Result();
if (action.equals("begin_pick")) { // if (action.equals("begin_pick")) {
logOrderMailDetailIoEntity.setStatus(StatusEnum.UNPACKBEGINPICK.getCode()); // logOrderMailDetailIoEntity.setStatus(StatusEnum.UNPACKBEGINPICK.getCode());
//
} else if (action.equals("finish_pick")) { // } else if (action.equals("finish_pick")) {
logOrderMailDetailIoEntity.setStatus(StatusEnum.UNPACKFINISHPICK.getCode()); // logOrderMailDetailIoEntity.setStatus(StatusEnum.UNPACKFINISHPICK.getCode());
//
} else if (action.equals("finish_unpack")) { // } else if (action.equals("finish_unpack")) {
logOrderMailDetailIoEntity.setStatus(StatusEnum.FINISHUNPACK.getCode()); // logOrderMailDetailIoEntity.setStatus(StatusEnum.FINISHUNPACK.getCode());
//
PddServiceConsoCoBizActionNotifyRequest notifyRequest = new PddServiceConsoCoBizActionNotifyRequest(); // PddServiceConsoCoBizActionNotifyRequest notifyRequest = new PddServiceConsoCoBizActionNotifyRequest();
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("拆包完成");
notifyRequest.setUnpackRemark(""); // notifyRequest.setUnpackRemark("");
notifyResult.setCode(0); // notifyResult.setCode(0);
notifyRequest.setPackageInfos(new ArrayList<>()); // notifyRequest.setPackageInfos(new ArrayList<>());
PddServiceConsoCoBizActionNotifyRequest.PackageInfo packageInfo = new PddServiceConsoCoBizActionNotifyRequest.PackageInfo(); // PddServiceConsoCoBizActionNotifyRequest.PackageInfo packageInfo = new PddServiceConsoCoBizActionNotifyRequest.PackageInfo();
notifyRequest.getPackageInfos().add(packageInfo); // notifyRequest.getPackageInfos().add(packageInfo);
packageInfo.setWeight((long) logOrderPackageEntity.getWeight()); // packageInfo.setWeight((long) logOrderPackageEntity.getWeight());
packageInfo.setWidth((long) logOrderPackageEntity.getWidth()); // packageInfo.setWidth((long) logOrderPackageEntity.getWidth());
packageInfo.setHeight((long) logOrderPackageEntity.getHeight()); // packageInfo.setHeight((long) logOrderPackageEntity.getHeight());
packageInfo.setLength((long) logOrderPackageEntity.getLength()); // packageInfo.setLength((long) logOrderPackageEntity.getLength());
packageInfo.setActualWeight((long) logOrderPackageEntity.getWeight()); // packageInfo.setActualWeight((long) logOrderPackageEntity.getWeight());
packageInfo.setConsoType("SEA"); // packageInfo.setConsoType("SEA");
packageInfo.setGoodsType(logOrderPackageEntity.getPackageType()); // packageInfo.setGoodsType(logOrderPackageEntity.getPackageType());
//
notifyRequest.setResult(notifyResult); // notifyRequest.setResult(notifyResult);
//
JYBaseRequestModel requestModel = new JYBaseRequestModel(); // JYBaseRequestModel requestModel = new JYBaseRequestModel();
requestModel.setRequest(JSON.toJSONString(notifyRequest)); // requestModel.setRequest(JSON.toJSONString(notifyRequest));
requestModel.setRequest_id("" + new Date().getTime()); // requestModel.setRequest_id("" + new Date().getTime());
requestModel.setType("pdd.service.conso.co.biz.action.notify"); // requestModel.setType("pdd.service.conso.co.biz.action.notify");
requestModel.setTarget_client_id(PddAPIConfig.CLIENT_ID); // requestModel.setTarget_client_id(PddAPIConfig.CLIENT_ID);
requestModel.setClient_id(PddAPIConfig.CLIENT_ID); // requestModel.setClient_id(PddAPIConfig.CLIENT_ID);
long time = new Date().getTime() / 1000; // long time = new Date().getTime() / 1000;
requestModel.setTimestamp(time); // requestModel.setTimestamp(time);
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);
//
logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel)); // logOrderMailDetailIoEntity.setReq(JSON.toJSONString(requestModel));
logOrderMailDetailIoEntity.setResp(resp); // logOrderMailDetailIoEntity.setResp(resp);
//
} // }
//
logOrderMailDetailIoEntity.setMailNo(logOrderPackageEntity.getMailNo()); // logOrderMailDetailIoEntity.setMailNo(logOrderPackageEntity.getMailNo());
logOrderMailDetailIoEntity.setExpressCode(logOrderPackageEntity.getExpressCode()); // logOrderMailDetailIoEntity.setExpressCode(logOrderPackageEntity.getExpressCode());
logOrderMailDetailIoEntity.setLogisticsOrderCode(logOrderPackageEntity.getLogisticsOrderCode()); // logOrderMailDetailIoEntity.setLogisticsOrderCode(logOrderPackageEntity.getLogisticsOrderCode());
logOrderMailDetailIoEntity.setExpressCode(logOrderPackageEntity.getExpressCode()); // logOrderMailDetailIoEntity.setExpressCode(logOrderPackageEntity.getExpressCode());
logOrderMailDetailIoImpl.save(logOrderMailDetailIoEntity); // logOrderMailDetailIoImpl.save(logOrderMailDetailIoEntity);
logOrderPackageEntity.setStatus(logOrderMailDetailIoEntity.getStatus().toString()); // logOrderPackageEntity.setStatus(logOrderMailDetailIoEntity.getStatus().toString());
return JsonResponse.generateLocalCommonSuccessResponse(true); // return JsonResponse.generateLocalCommonSuccessResponse(true);
//
} // }
/*拣货完成后出库*/ /*拣货完成后出库*/
@Operation(
summary = "拣货完成后出库",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/outBound") @PostMapping("/outBound")
public JSONObject outBound(HttpServletRequest request, @RequestBody OutBoundRequest outBoundRequest) { public JSONObject outBound(HttpServletRequest request, @RequestBody OutBoundRequest outBoundRequest) {
PddServiceConsoOutboundRequest notifyRequest = new PddServiceConsoOutboundRequest(); PddServiceConsoOutboundRequest notifyRequest = new PddServiceConsoOutboundRequest();
...@@ -923,6 +1002,11 @@ public class PddLocalController { ...@@ -923,6 +1002,11 @@ public class PddLocalController {
} }
/*拣货完成后出库*/ /*拣货完成后出库*/
@Operation(
summary = "拣货完成后出库异常",
description = "",
deprecated = false // 是否废弃
)
@PostMapping("/outBoundError") @PostMapping("/outBoundError")
public JSONObject outBoundError(HttpServletRequest request, @RequestBody OutBoundRequest outBoundRequest) { public JSONObject outBoundError(HttpServletRequest request, @RequestBody OutBoundRequest outBoundRequest) {
PddServiceConsoOutboundRequest notifyRequest = new PddServiceConsoOutboundRequest(); PddServiceConsoOutboundRequest notifyRequest = new PddServiceConsoOutboundRequest();
...@@ -1044,10 +1128,10 @@ public class PddLocalController { ...@@ -1044,10 +1128,10 @@ public class PddLocalController {
} }
/*流水查询*/ // /*流水查询*/
@PostMapping("/logOrderMailDetailIoSelect") // @PostMapping("/logOrderMailDetailIoSelect")
public JSONObject logOrderMailDetailIoSelect(HttpServletRequest request, @RequestBody LogOrderMailDetailIoRequest param) { // public JSONObject logOrderMailDetailIoSelect(HttpServletRequest request, @RequestBody LogOrderMailDetailIoRequest param) {
return JsonResponse.generateLocalCommonSuccessResponse(logOrderMailDetailIoImpl.getListByRequest(param)); // return JsonResponse.generateLocalCommonSuccessResponse(logOrderMailDetailIoImpl.getListByRequest(param));
} // }
} }
package org.ta.pddserver.model.api.request; package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.ta.pddserver.model.common.PageTool; import org.ta.pddserver.model.common.PageTool;
@Data @Data
public class CollectMailDetailRequest extends PageTool { public class CollectMailDetailRequest extends PageTool {
@Schema(
description = "搜索运单号,模糊搜索",
example = "PC123456",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String mailNo; private String mailNo;
private String orderCode;
} }
package org.ta.pddserver.model.api.request; package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.ta.pddserver.model.common.PageTool; import org.ta.pddserver.model.common.PageTool;
@Data @Data
public class CollectOrderListRequest extends PageTool { public class CollectOrderListRequest extends PageTool {
@Schema(
description = "搜索集运单号,模糊搜索",
example = "PC123456",
minLength = 0,
maxLength = 20,
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String orderCode; private String orderCode;
@Schema(
description = "订单状态,精准搜索",
example = "0",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private int status; private int status;
} }
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 FinishUnpackPackageRequest {
// private String mailNo;
@Schema(
description = "集运单号",
example = "P12345678",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String orderCode;
@Schema(
description = "异常编号",
example = "103",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private int code;
@Schema(
description = "集运单号",
example = "P12345678",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private String logisticsOrderCode;
// private String status;
@Schema(
description = "NORMAL",
example = "",
defaultValue = "NORMAL",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String goodsType;
@Schema(
description = "接口",
example = "finish_pick",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String action;
@Schema(
description = "包裹信息列表",
example = "",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private List<PackageInfo> packageInfo;
/**
* 包裹详情
*/
@Data
public static class PackageInfo {
@Schema(
description = "包裹长度,单位默认为厘米",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long length;
@Schema(
description = "包裹宽度,单位默认为厘米",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long width;
@Schema(
description = "包裹高度,单位默认为厘米",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long height;
@Schema(
description = "实重重量,单位默认为克",
example = "2",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long weight;
}
}
package org.ta.pddserver.model.api.request; package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
...@@ -7,20 +8,56 @@ import java.util.List; ...@@ -7,20 +8,56 @@ import java.util.List;
@Data @Data
public class FinishUnpackRequest { public class FinishUnpackRequest {
private String mailNo; // private String mailNo;
@Schema(
description = "集运单号",
example = "P12345678",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String orderCode; private String orderCode;
@Schema(
description = "异常编号",
example = "103",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private int code; private int code;
@Schema(
description = "集运单号",
example = "P12345678",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private String logisticsOrderCode; private String logisticsOrderCode;
private String status; // private String status;
@Schema(
description = "NORMAL",
example = "接口为finish_unpack 时 必填",
defaultValue = "NORMAL",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private String goodsType; private String goodsType;
@Schema(
description = "接口",
example = "finish_pick",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String action; private String action;
@Schema(
description = "包裹信息列表",
example = "",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private List<PackageInfo> packageInfo; private List<PackageInfo> packageInfo;
/** /**
...@@ -29,12 +66,36 @@ public class FinishUnpackRequest { ...@@ -29,12 +66,36 @@ public class FinishUnpackRequest {
@Data @Data
public static class PackageInfo { public static class PackageInfo {
@Schema(
description = "包裹长度,单位默认为厘米",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long length; private Long length;
@Schema(
description = "包裹宽度,单位默认为厘米",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long width; private Long width;
@Schema(
description = "包裹高度,单位默认为厘米",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long height; private Long height;
@Schema(
description = "实重重量,单位默认为克",
example = "2",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long weight; private Long weight;
} }
......
package org.ta.pddserver.model.api.request; package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@Data @Data
public class InBoundRequest { public class InBoundRequest {
@Schema(
description = "运单号",
example = "P12345678",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String mailNo; private String mailNo;
private String logisticsOrderCode; // private String logisticsOrderCode;
private String orderCode; // private String orderCode;
private String action; // private String action;
private String status; // private String status;
@Schema(
description = "包裹长度,单位默认为厘米",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long length; private Long length;
@Schema(
description = "包裹宽度,单位默认为厘米",
example = "2",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long width; private Long width;
@Schema(
description = "包裹高度,单位默认为厘米",
example = "3",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long height; private Long height;
@Schema(
description = "计费重量,单位默认为克",
example = "4",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long weight; private Long weight;
@Schema(
description = "实际重量,单位默认为克",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long actualWeight; private Long actualWeight;
@Schema(
description = "异常编号",
example = "130",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private Integer code; private Integer code;
@Schema(
description = "实际货品类型",
example = "NORMAL",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String goodsType; private String goodsType;
} }
package org.ta.pddserver.model.api.request; package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.ta.pddserver.model.common.PageTool; import org.ta.pddserver.model.common.PageTool;
@Data @Data
public class LogOrderMailDetailListRequest extends PageTool { public class LogOrderMailDetailListRequest extends PageTool {
@Schema(
description = "搜索集运单号,模糊搜索",
example = "PC123456",
minLength = 0,
maxLength = 20,
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String logisticsOrderCode; private String logisticsOrderCode;
@Schema(
description = "搜索运单号,模糊搜索",
example = "PC123456",
minLength = 0,
maxLength = 20,
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String mailNo; private String mailNo;
private int status; private int status;
} }
package org.ta.pddserver.model.api.request; package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.ta.pddserver.model.common.PageTool; import org.ta.pddserver.model.common.PageTool;
@Data @Data
public class LogOrderPackageListRequest extends PageTool { public class LogOrderPackageListRequest extends PageTool {
@Schema(
description = "搜索集运单号,模糊搜索",
example = "PC123456",
minLength = 0,
maxLength = 20,
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String logisticsOrderCode; private String logisticsOrderCode;
private String packageType; private String packageType;
......
package org.ta.pddserver.model.api.request; package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@Data @Data
public class MailNoRequest { public class MailNoRequest {
@Schema(
description = "搜索运单号,模糊搜索",
example = "PC123456",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String mailNo; private String mailNo;
private String status; // private String status;
} }
package org.ta.pddserver.model.api.request; package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
...@@ -7,12 +8,36 @@ import java.util.List; ...@@ -7,12 +8,36 @@ import java.util.List;
@Data @Data
public class OutBoundRequest { public class OutBoundRequest {
@Schema(
description = "运单号列表",
example = "",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private List<OutBoundList> outBound; private List<OutBoundList> outBound;
@Schema(
description = "集运单号",
example = "P12345678",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String orderCode; private String orderCode;
@Schema(
description = "订单信息列表",
example = "",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private List<OutPackage> outPackageList; private List<OutPackage> outPackageList;
@Schema(
description = "异常原因编号",
example = "103",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Result result; private Result result;
...@@ -21,6 +46,12 @@ public class OutBoundRequest { ...@@ -21,6 +46,12 @@ public class OutBoundRequest {
*/ */
@Data @Data
public static class OutBoundList { public static class OutBoundList {
@Schema(
description = "运单号",
example = "P12345678",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String mailNo; private String mailNo;
...@@ -28,25 +59,87 @@ public class OutBoundRequest { ...@@ -28,25 +59,87 @@ public class OutBoundRequest {
@Data @Data
public static class OutPackage { public static class OutPackage {
@Schema(
description = "包裹长度,单位默认为厘米",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long length; private Long length;
@Schema(
description = "包裹宽度,单位默认为厘米",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long width; private Long width;
@Schema(
description = "包裹高度,单位默认为厘米",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long height; private Long height;
@Schema(
description = "实重重量,单位默认为克",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Long weight; private Long weight;
@Schema(
description = "包裹种类",
example = "1",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String packageType; private String packageType;
@Schema(
description = "运单号",
example = "P1234567",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String mailNo; private String mailNo;
@Schema(
description = "快递公司编号",
example = "SF",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String expressCode; private String expressCode;
} }
@Data @Data
public static class Result { public static class Result {
@Schema(
description = "异常原因",
example = "",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private String desc; private String desc;
@Schema(
description = "异常备注",
example = "",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private String remark; private String remark;
@Schema(
description = "异常编号",
example = "103",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private int code; private int code;
} }
......
package org.ta.pddserver.model.api.request; package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import org.ta.pddserver.model.common.PageTool; import org.ta.pddserver.model.common.PageTool;
@Data @Data
public class PackageNoticeRequest extends PageTool { public class PackageNoticeRequest extends PageTool {
@Schema(
description = "搜索集运单号,模糊搜索",
example = "PC123456",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String orderCode; private String orderCode;
@Schema(
description = "订单状态,精准搜索",
example = "0",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private int status; private int status;
} }
package org.ta.pddserver.model.api.request; package org.ta.pddserver.model.api.request;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@Data @Data
public class ReceiveRequest { public class ReceiveRequest {
@Schema(
description = "接口",
example = "warehouse_sign",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String action; private String action;
@Schema(
description = "运单号",
example = "P12345678",
defaultValue = "",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private String mailNo; private String mailNo;
private int status; // private int status;
@Schema(
description = "实操结果code",
example = "0",
defaultValue = "bizAction=(warehouse_sign、destroy)时填0;bizAction=warehouse_reject_sign时填非零错误码,具体编码见结果编码规范",
requiredMode = Schema.RequiredMode.REQUIRED // 必填
)
private Integer code; private Integer code;
private String desc; // private String desc;
//
private String remark; // private String remark;
@Schema(
description = "计费重量,单位默认为克",
example = "0",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private Long weight; private Long weight;
@Schema(
description = "包裹长度,单位默认为厘米",
example = "0",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private Long length; private Long length;
@Schema(
description = "包裹宽度,单位默认为厘米",
example = "0",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private Long width; private Long width;
@Schema(
description = "包裹高度,单位默认为厘米",
example = "0",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private Long height; private Long height;
@Schema(
description = "实际重量,单位默认为克",
example = "0",
defaultValue = "",
requiredMode = Schema.RequiredMode.NOT_REQUIRED // 必填
)
private Long actualWeight; private Long actualWeight;
} }
...@@ -4,7 +4,7 @@ spring: ...@@ -4,7 +4,7 @@ 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_prod?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 username: pdd
password: pdd123 password: pdd123
...@@ -21,7 +21,7 @@ spring: ...@@ -21,7 +21,7 @@ spring:
application: application:
name: PddServer name: PddServer
server: server:
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