1
0
forked from erp-dev/erp

fix: order_description change to copy by rolling_warn of printing_order

This commit is contained in:
2026-04-23 23:55:06 +08:00
parent d4fbb2c7fe
commit 80805ba312
6 changed files with 16 additions and 9 deletions

View File

@@ -101,7 +101,8 @@ def _resolve_shipment_order_description(shipment: Shipment) -> str | None:
)
if printing_job is None or printing_job.printing_order is None:
return None
return printing_job.printing_order.description
# 目前滚筒预警字段被放在了 printing_order 上,暂时沿用这个字段来返回订单描述;
return printing_job.printing_order.rolling_warn
class ShipmentSerializer(serializers.ModelSerializer):

View File

@@ -1634,6 +1634,7 @@ class ShipmentQueryAPITestCase(TestCase):
created_by=self.user1,
external_order_id="QUERY-PO-001",
description="查询订单备注",
rolling_warn="查询滚筒预警",
)
self.printing_job1 = printing_models.PrintingJob.objects.create(
merchant=self.merchant1,
@@ -1694,7 +1695,7 @@ class ShipmentQueryAPITestCase(TestCase):
self.assertIn("delivery_id", item)
self.assertIsNone(item["delivery_id"])
self.assertEqual(item["fabric"], "查询面料")
self.assertEqual(item["order_description"], "查询订单备注")
self.assertEqual(item["order_description"], "查询滚筒预警")
self.assertEqual(item["area"], "A1")
self.assertEqual(item["status"], shipment_models.ShipmentStatus.DRAFT)
self.assertEqual(item["status_display"], "草稿(未发布)")
@@ -1841,7 +1842,7 @@ class ShipmentQueryAPITestCase(TestCase):
self.assertIn("delivery_id", result)
self.assertIsNone(result["delivery_id"])
self.assertEqual(result["fabric"], "查询面料")
self.assertEqual(result["order_description"], "查询订单备注")
self.assertEqual(result["order_description"], "查询滚筒预警")
self.assertEqual(result["id"], self.shipment1.id)
self.assertIn("area", result)
self.assertEqual(result["area"], "A1")
@@ -3052,6 +3053,8 @@ class ShipmentDeliveryAPITestCase(APITestCase):
vehicle_trip="KD-007-D",
created_by=self.user,
)
self.shipment1.delivery = delivery
self.shipment1.save(update_fields=["delivery", "updated_at"])
permission = Permission.objects.get(codename="cancel_shipmentdelivery")
self.user.user_permissions.add(permission)
@@ -3071,9 +3074,11 @@ class ShipmentDeliveryAPITestCase(APITestCase):
self.assertIsNotNone(data["cancelled_at"])
delivery.refresh_from_db()
self.shipment1.refresh_from_db()
self.assertEqual(delivery.status, shipment_models.ShipmentDeliveryStatus.CANCELLED)
self.assertEqual(delivery.cancelled_by_id, self.user.id)
self.assertIsNotNone(delivery.cancelled_at)
self.assertEqual(self.shipment1.delivery_id, delivery.id)
def test_bind_shipments_to_existing_delivery_success(self):
delivery = shipment_models.ShipmentDelivery.objects.create(

View File

@@ -170,7 +170,7 @@ class AgentShipmentListSerializer(serializers.ModelSerializer):
)
if printing_job is None or printing_job.printing_order is None:
return None
return printing_job.printing_order.description
return printing_job.printing_order.rolling_warn
def get_sales_items(self, obj):
items = [i for i in obj.items.all() if i.delete_at is None]

View File

@@ -46,7 +46,7 @@ Authorization: <AGENT_ACCESS_KEY>
"customer": 5,
"customer_name": "客户A",
"fabric": "棉布 40S",
"order_description": "订单备注",
"order_description": "滚筒预警",
"shipment_date": "2026-04-14",
"address": "广州市天河区",
"contact_name": "张三",
@@ -157,7 +157,7 @@ Authorization: <AGENT_ACCESS_KEY>
- "未出货"定义:`delivery` 为空,即尚未关联送货单
- `delivery_id` 始终返回送货单ID未关联时为 `null`
- `fabric` 来自该出货单所关联销售品对应生产订单的 `fabric`;若当前出货单没有销售品则返回 `null`
- `order_description` 来自该出货单所关联销售品对应生产订单的 `description`;若当前出货单没有销售品则返回 `null`
- `order_description` 当前来自该出货单所关联销售品对应生产订单的 `rolling_warn`;若当前出货单没有销售品则返回 `null`
- 结果按 `created_at` 降序排列
- 只返回 `merchant_id` 对应商户的数据
- `sales_items` 包含该出货单的所有销售品(软删除的条目自动排除)

View File

@@ -54,7 +54,7 @@
"customer": 1,
"customer_name": "客户A",
"fabric": "棉布 40S",
"order_description": "订单备注",
"order_description": "滚筒预警",
"shipment_date": "2026-01-14",
"status": 1,
"status_display": "草稿(未发布)",
@@ -82,7 +82,7 @@
- `sales_items` 现在返回的是带图片字段的销售品详情结构
- `delivery_id` 始终返回送货单ID未绑定送货单时为 `null`
- `fabric` 来自该出货单所关联销售品对应生产订单的 `fabric`;若当前出货单没有销售品,则返回 `null`
- `order_description` 来自该出货单所关联销售品对应生产订单的 `description`;若当前出货单没有销售品,则返回 `null`
- `order_description` 当前返回该出货单所关联销售品对应生产订单的 `rolling_warn`;若当前出货单没有销售品,则返回 `null`
- `delivery_id=null` 不会触发过滤;如需按是否绑定送货单筛选,请使用 `delivery_isnull`
- 若销售品关联的 `PrintingJob.product` 存在主图,则会返回 `product_image_url`
- 若无关联图片,则 `product_image_url``null`
@@ -231,7 +231,7 @@
| customer | int | 客户ID |
| customer_name | string | 客户名称 |
| fabric | string/null | 面料;来自关联生产订单,若当前出货单没有销售品则为 null |
| order_description | string/null | 订单备注;来自关联生产订单的 `description`,若当前出货单没有销售品则为 null |
| order_description | string/null | 滚筒预警;来自关联生产订单的 `rolling_warn`,若当前出货单没有销售品则为 null |
| shipment_date | string | 出货日期 |
| delivery_id | int/null | 关联送货单ID未绑定时为 null |
| address | string | 地址 |

View File

@@ -273,6 +273,7 @@ GET /api/v1/shipment/deliveries/?status=2&driver_name=张&vehicle_trip=001&limit
- 写入 `cancelled_at`
- 写入 `cancelled_by`
- 同时会根据 `request.user.employee` 更新 `operator`
- 取消不会释放或解绑当前已关联的出货单;如需解绑,需显式删除送货单或通过修改接口改绑
- 已取消的送货单再次取消保持幂等
### 8. 追加绑定出货单到已有送货单