feat(orderCarNumberBind):增加车辆绑定的起止时间并优化查询逻辑

- 在相关 DTO 和实体类中添加 startTime 和 endTime 字段,用于记录车辆绑定的起止时间
- 优化 OrderCarNumberBindService 中的查询逻辑,支持按销售订单和采购订单分别查询
- 修复了同时为空销售订单和采购订单时的异常处理
This commit is contained in:
2025-06-15 22:33:03 +08:00
parent d5173b6a92
commit 869ff38422
6 changed files with 50 additions and 16 deletions

View File

@@ -4,6 +4,7 @@ import jakarta.persistence.ManyToOne;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.*;
@Data
@@ -20,4 +21,9 @@ public class BatchImportDto {
private List<String> carNumbers;
private LocalDateTime startTime;
private LocalDateTime endTime;
}

View File

@@ -6,6 +6,8 @@ import jakarta.persistence.ManyToOne;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class CreateOrderCarNumberBindDto extends OrgCommonDto {
@@ -16,4 +18,11 @@ public class CreateOrderCarNumberBindDto extends OrgCommonDto {
private String saleOrder;
@ManyToOne private String purchaseOrder;
private LocalDateTime startTime;
private LocalDateTime endTime;
}

View File

@@ -8,6 +8,7 @@ import jakarta.persistence.ManyToOne;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
@@ -21,4 +22,10 @@ public class OrderCarNumberBindDto extends OrgCommonDto {
private List<WeightDeviceDataDto> weightDataList;
private LocalDateTime startTime;
private LocalDateTime endTime;
}

View File

@@ -6,6 +6,8 @@ import jakarta.persistence.ManyToOne;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class UpdateOrderCarNumberBindDto extends OrgCommonDto {
@@ -18,4 +20,10 @@ public class UpdateOrderCarNumberBindDto extends OrgCommonDto {
@ManyToOne private String purchaseOrder;
private LocalDateTime startTime;
private LocalDateTime endTime;
}

View File

@@ -10,6 +10,8 @@ import jakarta.persistence.Table;
import lombok.Data;
import java.time.LocalDateTime;
@Data
@Entity
@Table(
@@ -27,10 +29,7 @@ public class OrderCarNumberBindEntity extends OrgCommonEntity {
@ManyToOne private PurchaseOrderEntity purchaseOrder;
private LocalDateTime startTime;
private LocalDateTime endTime;
}

View File

@@ -65,23 +65,28 @@ public class OrderCarNumberBindService
Predicate carNumberPredicate =
criteriaBuilder.equal(root.get("carNumber"), entity.getCarNumber());
Predicate saleOrderPredicate =
criteriaBuilder.equal(
root.get("saleOrder").get("id"), entity.getSaleOrder());
Predicate purchaseOrderPredicate =
criteriaBuilder.equal(
root.get("purchaseOrder").get("id"),
entity.getPurchaseOrder());
if (ObjectUtils.isEmpty(entity.getSaleOrder())) {
if (ObjectUtils.isEmpty(entity.getPurchaseOrder())) {
Predicate purchaseOrderPredicate =
criteriaBuilder.equal(
root.get("purchaseOrder").get("id"),
entity.getPurchaseOrder().getId());
return criteriaBuilder.and(carNumberPredicate, purchaseOrderPredicate);
} else if (ObjectUtils.isEmpty(entity.getPurchaseOrder())) {
} else if (ObjectUtils.isEmpty(entity.getSaleOrder())) {
Predicate saleOrderPredicate =
criteriaBuilder.equal(
root.get("saleOrder").get("id"), entity.getSaleOrder());
return criteriaBuilder.and(carNumberPredicate, saleOrderPredicate);
} else {
return criteriaBuilder.and(
carNumberPredicate, saleOrderPredicate, purchaseOrderPredicate);
throw new BizException("销售订单和采购订单不能同时为空");
}
}
});