fix(lastleg): preserve readable exception operators
This commit is contained in:
+8
-3
@@ -42,7 +42,7 @@ public class ExceptionOrderController {
|
|||||||
@PreAuthorize("hasAuthority('" + OverseasPermissions.EXCEPTION_ORDER_CREATE + "')")
|
@PreAuthorize("hasAuthority('" + OverseasPermissions.EXCEPTION_ORDER_CREATE + "')")
|
||||||
public ApiResponse<ExceptionOrderResponses.Created> create(@AuthenticationPrincipal AuthenticatedUser user,
|
public ApiResponse<ExceptionOrderResponses.Created> create(@AuthenticationPrincipal AuthenticatedUser user,
|
||||||
@Valid @RequestBody ExceptionOrderRequests.Create request) {
|
@Valid @RequestBody ExceptionOrderRequests.Create request) {
|
||||||
return ApiResponse.success(service.create(scope(user), operator(user), request));
|
return ApiResponse.success(service.create(scope(user), operatorId(user), operatorName(user), request));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/delivery-orders/{deliveryNo}/return-inbound-options")
|
@GetMapping("/delivery-orders/{deliveryNo}/return-inbound-options")
|
||||||
@@ -59,7 +59,7 @@ public class ExceptionOrderController {
|
|||||||
@RequestParam(required = false) String customerId,
|
@RequestParam(required = false) String customerId,
|
||||||
@PathVariable String deliveryNo,
|
@PathVariable String deliveryNo,
|
||||||
@Valid @RequestBody ExceptionOrderRequests.MarkReturn request) {
|
@Valid @RequestBody ExceptionOrderRequests.MarkReturn request) {
|
||||||
return ApiResponse.success(service.markReturn(requiredScope(user, customerId), operator(user), deliveryNo, request));
|
return ApiResponse.success(service.markReturn(requiredScope(user, customerId), operatorId(user), operatorName(user), deliveryNo, request));
|
||||||
}
|
}
|
||||||
|
|
||||||
private String scope(AuthenticatedUser user) {
|
private String scope(AuthenticatedUser user) {
|
||||||
@@ -74,7 +74,12 @@ public class ExceptionOrderController {
|
|||||||
return requestedCustomer.trim();
|
return requestedCustomer.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String operator(AuthenticatedUser user) {
|
private String operatorId(AuthenticatedUser user) {
|
||||||
return user.userId() == null ? user.username() : String.valueOf(user.userId());
|
return user.userId() == null ? user.username() : String.valueOf(user.userId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String operatorName(AuthenticatedUser user) {
|
||||||
|
if (user.displayName() != null && !user.displayName().isBlank()) return user.displayName().trim();
|
||||||
|
return user.username();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-7
@@ -77,16 +77,16 @@ public class ExceptionOrderService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public ExceptionOrderResponses.Created create(String scopedCustomerId, String operatorId,
|
public ExceptionOrderResponses.Created create(String scopedCustomerId, String operatorId, String operatorName,
|
||||||
ExceptionOrderRequests.Create request) {
|
ExceptionOrderRequests.Create request) {
|
||||||
ExceptionOrderResponses.Relation relation = relation(scopedCustomerId, request.customerId(),
|
ExceptionOrderResponses.Relation relation = relation(scopedCustomerId, request.customerId(),
|
||||||
request.inboundCode(), request.lastMileOrderNo());
|
request.inboundCode(), request.lastMileOrderNo());
|
||||||
return insert(relation, null, normalizeType(request.exceptionType()), request.reason(), request.packageCount(),
|
return insert(relation, null, normalizeType(request.exceptionType()), request.reason(), request.packageCount(),
|
||||||
request.skuCode(), null, null, "MANUAL", operatorId);
|
request.skuCode(), null, null, "MANUAL", operatorId, operatorName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public ExceptionOrderResponses.Created markReturn(String customerId, String operatorId, String deliveryNo,
|
public ExceptionOrderResponses.Created markReturn(String customerId, String operatorId, String operatorName, String deliveryNo,
|
||||||
ExceptionOrderRequests.MarkReturn request) {
|
ExceptionOrderRequests.MarkReturn request) {
|
||||||
DeliveryOrder delivery = deliveryOrders.findByNo(customerId, deliveryNo);
|
DeliveryOrder delivery = deliveryOrders.findByNo(customerId, deliveryNo);
|
||||||
if (delivery == null) throw notFound("派送单不存在");
|
if (delivery == null) throw notFound("派送单不存在");
|
||||||
@@ -99,7 +99,7 @@ public class ExceptionOrderService {
|
|||||||
.findFirst().orElseThrow(() -> conflict("所选入仓单不属于该派送单"));
|
.findFirst().orElseThrow(() -> conflict("所选入仓单不属于该派送单"));
|
||||||
ExceptionOrderResponses.Created created = insert(selected, delivery, "RETURN", request.reason(),
|
ExceptionOrderResponses.Created created = insert(selected, delivery, "RETURN", request.reason(),
|
||||||
request.packageCount(), request.skuCode(), request.returnDirection(), request.returnLogisticsNo(),
|
request.packageCount(), request.skuCode(), request.returnDirection(), request.returnLogisticsNo(),
|
||||||
"DELIVERY_RETURN", operatorId);
|
"DELIVERY_RETURN", operatorId, operatorName);
|
||||||
|
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
delivery.setStatus("RETURN_PENDING");
|
delivery.setStatus("RETURN_PENDING");
|
||||||
@@ -114,7 +114,7 @@ public class ExceptionOrderService {
|
|||||||
}
|
}
|
||||||
DeliveryOperation operation = new DeliveryOperation();
|
DeliveryOperation operation = new DeliveryOperation();
|
||||||
operation.setCustomerId(customerId); operation.setDeliveryOrderId(delivery.getId());
|
operation.setCustomerId(customerId); operation.setDeliveryOrderId(delivery.getId());
|
||||||
operation.setOperationNode("MARK_RETURN"); operation.setOperatorId(operatorId); operation.setOperatorName(operatorId);
|
operation.setOperationNode("MARK_RETURN"); operation.setOperatorId(operatorId); operation.setOperatorName(operatorName);
|
||||||
operation.setResult("已生成异常退货单 " + created.exceptionNo()); operation.setCreatedAt(now);
|
operation.setResult("已生成异常退货单 " + created.exceptionNo()); operation.setCreatedAt(now);
|
||||||
deliveryOperations.insert(operation);
|
deliveryOperations.insert(operation);
|
||||||
return created;
|
return created;
|
||||||
@@ -156,7 +156,7 @@ public class ExceptionOrderService {
|
|||||||
private ExceptionOrderResponses.Created insert(ExceptionOrderResponses.Relation relation, DeliveryOrder delivery,
|
private ExceptionOrderResponses.Created insert(ExceptionOrderResponses.Relation relation, DeliveryOrder delivery,
|
||||||
String type, String reason, Integer packages, String sku,
|
String type, String reason, Integer packages, String sku,
|
||||||
String direction, String logisticsNo, String sourceType,
|
String direction, String logisticsNo, String sourceType,
|
||||||
String operatorId) {
|
String operatorId, String operatorName) {
|
||||||
if (packages != null && relation.availablePackages() != null && packages > relation.availablePackages()) {
|
if (packages != null && relation.availablePackages() != null && packages > relation.availablePackages()) {
|
||||||
throw conflict("异常箱数不能大于订单箱数 " + relation.availablePackages());
|
throw conflict("异常箱数不能大于订单箱数 " + relation.availablePackages());
|
||||||
}
|
}
|
||||||
@@ -177,7 +177,7 @@ public class ExceptionOrderService {
|
|||||||
value.setReturnLogisticsNo(trim(logisticsNo));
|
value.setReturnLogisticsNo(trim(logisticsNo));
|
||||||
if (StringUtils.hasText(direction)) {
|
if (StringUtils.hasText(direction)) {
|
||||||
value.setHandlingAction("OVERSEAS_WAREHOUSE".equals(direction) ? "退回海外仓" : "CUSTOMER".equals(direction) ? "退回客户" : "其他退货处理");
|
value.setHandlingAction("OVERSEAS_WAREHOUSE".equals(direction) ? "退回海外仓" : "CUSTOMER".equals(direction) ? "退回客户" : "其他退货处理");
|
||||||
value.setHandlerId(operatorId); value.setHandlerName(operatorId);
|
value.setHandlerId(operatorId); value.setHandlerName(operatorName);
|
||||||
}
|
}
|
||||||
value.setSourceType(sourceType); value.setCreatedBy(operatorId);
|
value.setSourceType(sourceType); value.setCreatedBy(operatorId);
|
||||||
value.setExceptionAt(now); value.setCreatedAt(now); value.setUpdatedAt(now);
|
value.setExceptionAt(now); value.setCreatedAt(now); value.setUpdatedAt(now);
|
||||||
|
|||||||
Reference in New Issue
Block a user