diff --git a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/persistence/delivery/PlatformDeliveryBatch.java b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/persistence/delivery/PlatformDeliveryBatch.java index 8e0d025..cb8e799 100644 --- a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/persistence/delivery/PlatformDeliveryBatch.java +++ b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/persistence/delivery/PlatformDeliveryBatch.java @@ -39,6 +39,18 @@ public class PlatformDeliveryBatch { @TableField("updated_at") private OffsetDateTime updatedAt; + @TableField("site_address") + private String siteAddress; + + @TableField("network_requirements") + private String networkRequirements; + + @TableField("site_contact") + private String siteContact; + + @TableField("site_contact_phone") + private String siteContactPhone; + public Long getId() { return id; } @@ -118,4 +130,36 @@ public class PlatformDeliveryBatch { public void setUpdatedAt(OffsetDateTime updatedAt) { this.updatedAt = updatedAt; } + + public String getSiteAddress() { + return siteAddress; + } + + public void setSiteAddress(String siteAddress) { + this.siteAddress = siteAddress; + } + + public String getNetworkRequirements() { + return networkRequirements; + } + + public void setNetworkRequirements(String networkRequirements) { + this.networkRequirements = networkRequirements; + } + + public String getSiteContact() { + return siteContact; + } + + public void setSiteContact(String siteContact) { + this.siteContact = siteContact; + } + + public String getSiteContactPhone() { + return siteContactPhone; + } + + public void setSiteContactPhone(String siteContactPhone) { + this.siteContactPhone = siteContactPhone; + } } diff --git a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/service/DeliveryBatchService.java b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/service/DeliveryBatchService.java index 930894e..74938a9 100644 --- a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/service/DeliveryBatchService.java +++ b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/service/DeliveryBatchService.java @@ -91,6 +91,10 @@ public class DeliveryBatchService { b.setPlannedDeliveryDate(parsePlannedDateOrNull(request.getPlannedDeliveryDate())); b.setStatus(DeliveryBatchStatus.PENDING.name()); b.setRemarks(blankToNull(request.getRemarks())); + b.setSiteAddress(null); + b.setNetworkRequirements(blankToNull(request.getNetworkRequirements())); + b.setSiteContact(blankToNull(request.getSiteContact())); + b.setSiteContactPhone(blankToNull(request.getSiteContactPhone())); b.setCreatedAt(now); b.setUpdatedAt(now); batchMapper.insert(b); @@ -133,10 +137,12 @@ public class DeliveryBatchService { public DeliveryBatchResponse update(long id, DeliveryBatchUpdateRequest request) { PlatformDeliveryBatch b = requireBatch(id); requirePendingForHeaderEdit(b); - if (request.getPlannedDeliveryDate() == null && request.getRemarks() == null) { + if (request.getPlannedDeliveryDate() == null && request.getRemarks() == null + && request.getSiteAddress() == null && request.getNetworkRequirements() == null + && request.getSiteContact() == null && request.getSiteContactPhone() == null) { throw new ResponseStatusException( HttpStatus.BAD_REQUEST, - "at least one of plannedDeliveryDate or remarks must be provided"); + "at least one field must be provided"); } String oldJson = toJson(batchSnapshot(b)); if (request.getPlannedDeliveryDate() != null) { @@ -145,6 +151,18 @@ public class DeliveryBatchService { if (request.getRemarks() != null) { b.setRemarks(blankToNull(request.getRemarks())); } + if (request.getSiteAddress() != null) { + b.setSiteAddress(blankToNull(request.getSiteAddress())); + } + if (request.getNetworkRequirements() != null) { + b.setNetworkRequirements(blankToNull(request.getNetworkRequirements())); + } + if (request.getSiteContact() != null) { + b.setSiteContact(blankToNull(request.getSiteContact())); + } + if (request.getSiteContactPhone() != null) { + b.setSiteContactPhone(blankToNull(request.getSiteContactPhone())); + } b.setUpdatedAt(OffsetDateTime.now(ZoneOffset.UTC)); batchMapper.updateById(b); auditService.record( @@ -401,6 +419,10 @@ public class DeliveryBatchService { m.put("status", b.getStatus()); m.put("finishedAt", b.getFinishedAt()); m.put("remarks", b.getRemarks()); + m.put("siteAddress", b.getSiteAddress()); + m.put("networkRequirements", b.getNetworkRequirements()); + m.put("siteContact", b.getSiteContact()); + m.put("siteContactPhone", b.getSiteContactPhone()); return m; } @@ -433,6 +455,10 @@ public class DeliveryBatchService { r.setStatus(b.getStatus()); r.setFinishedAt(b.getFinishedAt()); r.setRemarks(b.getRemarks()); + r.setSiteAddress(b.getSiteAddress()); + r.setNetworkRequirements(b.getNetworkRequirements()); + r.setSiteContact(b.getSiteContact()); + r.setSiteContactPhone(b.getSiteContactPhone()); r.setCreatedAt(b.getCreatedAt()); r.setUpdatedAt(b.getUpdatedAt()); return r; diff --git a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/DeliveryBatchCreateRequest.java b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/DeliveryBatchCreateRequest.java index df38225..dfe2491 100644 --- a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/DeliveryBatchCreateRequest.java +++ b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/DeliveryBatchCreateRequest.java @@ -20,6 +20,15 @@ public class DeliveryBatchCreateRequest { @Size(max = 4000) private String remarks; + @Size(max = 512) + private String networkRequirements; + + @Size(max = 128) + private String siteContact; + + @Size(max = 32) + private String siteContactPhone; + public Long getProjectId() { return projectId; } @@ -59,4 +68,28 @@ public class DeliveryBatchCreateRequest { public void setRemarks(String remarks) { this.remarks = remarks; } + + public String getNetworkRequirements() { + return networkRequirements; + } + + public void setNetworkRequirements(String networkRequirements) { + this.networkRequirements = networkRequirements; + } + + public String getSiteContact() { + return siteContact; + } + + public void setSiteContact(String siteContact) { + this.siteContact = siteContact; + } + + public String getSiteContactPhone() { + return siteContactPhone; + } + + public void setSiteContactPhone(String siteContactPhone) { + this.siteContactPhone = siteContactPhone; + } } diff --git a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/DeliveryBatchResponse.java b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/DeliveryBatchResponse.java index 14a52d3..591d225 100644 --- a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/DeliveryBatchResponse.java +++ b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/DeliveryBatchResponse.java @@ -19,6 +19,14 @@ public class DeliveryBatchResponse { private OffsetDateTime createdAt; private OffsetDateTime updatedAt; + private String siteAddress; + + private String networkRequirements; + + private String siteContact; + + private String siteContactPhone; + @JsonInclude(JsonInclude.Include.NON_NULL) private List lines; @@ -102,6 +110,38 @@ public class DeliveryBatchResponse { this.updatedAt = updatedAt; } + public String getSiteAddress() { + return siteAddress; + } + + public void setSiteAddress(String siteAddress) { + this.siteAddress = siteAddress; + } + + public String getNetworkRequirements() { + return networkRequirements; + } + + public void setNetworkRequirements(String networkRequirements) { + this.networkRequirements = networkRequirements; + } + + public String getSiteContact() { + return siteContact; + } + + public void setSiteContact(String siteContact) { + this.siteContact = siteContact; + } + + public String getSiteContactPhone() { + return siteContactPhone; + } + + public void setSiteContactPhone(String siteContactPhone) { + this.siteContactPhone = siteContactPhone; + } + public List getLines() { return lines; } diff --git a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/DeliveryBatchUpdateRequest.java b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/DeliveryBatchUpdateRequest.java index d1b1708..05eac22 100644 --- a/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/DeliveryBatchUpdateRequest.java +++ b/services/delivery-platform-api/src/main/java/cn/craftlabs/platform/api/web/dto/DeliveryBatchUpdateRequest.java @@ -9,6 +9,17 @@ public class DeliveryBatchUpdateRequest { @Size(max = 4000) private String remarks; + private String siteAddress; + + @Size(max = 512) + private String networkRequirements; + + @Size(max = 128) + private String siteContact; + + @Size(max = 32) + private String siteContactPhone; + public String getPlannedDeliveryDate() { return plannedDeliveryDate; } @@ -24,4 +35,36 @@ public class DeliveryBatchUpdateRequest { public void setRemarks(String remarks) { this.remarks = remarks; } + + public String getSiteAddress() { + return siteAddress; + } + + public void setSiteAddress(String siteAddress) { + this.siteAddress = siteAddress; + } + + public String getNetworkRequirements() { + return networkRequirements; + } + + public void setNetworkRequirements(String networkRequirements) { + this.networkRequirements = networkRequirements; + } + + public String getSiteContact() { + return siteContact; + } + + public void setSiteContact(String siteContact) { + this.siteContact = siteContact; + } + + public String getSiteContactPhone() { + return siteContactPhone; + } + + public void setSiteContactPhone(String siteContactPhone) { + this.siteContactPhone = siteContactPhone; + } } diff --git a/services/delivery-platform-api/src/main/resources/db/migration/V21__delivery_env_info.sql b/services/delivery-platform-api/src/main/resources/db/migration/V21__delivery_env_info.sql new file mode 100644 index 0000000..764130f --- /dev/null +++ b/services/delivery-platform-api/src/main/resources/db/migration/V21__delivery_env_info.sql @@ -0,0 +1,5 @@ +ALTER TABLE platform_delivery_batch + ADD COLUMN site_address TEXT, + ADD COLUMN network_requirements VARCHAR(512), + ADD COLUMN site_contact VARCHAR(128), + ADD COLUMN site_contact_phone VARCHAR(32); diff --git a/web/delivery-platform-ui/src/views/DeliveryBatchDetailView.vue b/web/delivery-platform-ui/src/views/DeliveryBatchDetailView.vue index b78d8a7..8cd3a70 100644 --- a/web/delivery-platform-ui/src/views/DeliveryBatchDetailView.vue +++ b/web/delivery-platform-ui/src/views/DeliveryBatchDetailView.vue @@ -34,6 +34,30 @@ + + + + + + + + + + + + + + + +