From 76ed8f0534c6f2d075a1eef693620a220618eacd Mon Sep 17 00:00:00 2001 From: geht <2947093423@qq.com> Date: Wed, 6 May 2026 16:24:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=BD=A6=E8=BE=86=E6=A1=A3?= =?UTF-8?q?=E6=A1=88=E6=9B=B4=E6=96=B0=E9=80=BB=E8=BE=91=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=AF=B9=E5=8F=B8=E6=9C=BA=E3=80=81=E4=BE=9B=E5=BA=94?= =?UTF-8?q?=E5=95=86=E5=92=8C=E5=AE=A2=E6=88=B7=E4=BF=A1=E6=81=AF=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E7=9A=84=E6=A3=80=E6=9F=A5=EF=BC=8C=E7=A1=AE=E4=BF=9D?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=80=E8=87=B4=E6=80=A7=E3=80=82=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E7=95=8C=E9=9D=A2=E5=B8=83=E5=B1=80=EF=BC=8C=E6=94=B9?= =?UTF-8?q?=E5=96=84=E9=87=8D=E9=87=8F=E4=BF=A1=E6=81=AF=E5=92=8C=E7=A7=B0?= =?UTF-8?q?=E9=87=8D=E6=A6=9C=E5=8D=95=E7=9A=84=E5=B1=95=E7=A4=BA=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E6=8F=90=E5=8D=87=E7=94=A8=E6=88=B7=E4=BD=93?= =?UTF-8?q?=E9=AA=8C=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WeightRecordOperationViewModel.cs | 39 ++++++++++++++----- .../WeightRecordOperationView.xaml | 30 +++++++++----- 2 files changed, 50 insertions(+), 19 deletions(-) diff --git a/yy-admin-master/YY.Admin/ViewModels/WeightRecord/WeightRecordOperationViewModel.cs b/yy-admin-master/YY.Admin/ViewModels/WeightRecord/WeightRecordOperationViewModel.cs index 9578de4..a81e0fc 100644 --- a/yy-admin-master/YY.Admin/ViewModels/WeightRecord/WeightRecordOperationViewModel.cs +++ b/yy-admin-master/YY.Admin/ViewModels/WeightRecord/WeightRecordOperationViewModel.cs @@ -808,11 +808,22 @@ public class WeightRecordOperationViewModel : BaseViewModel { if (_matchedVehicle != null) { - // 已有档案:仅在司机信息有变动时回写 + // 已有档案:检查司机、供应商、客户是否需要回写 bool driverChanged = !string.Equals(DriverName, _matchedVehicle.DriverName) || !string.Equals(DriverPhone, _matchedVehicle.DriverPhone); - if (!driverChanged) return; + + // 操作人员通过弹窗选了供应商,且与档案不同(含原来为空的情况) + bool supplierChanged = _matchedVehicle.VehicleBelong == "2" + && _selectedSupplier != null + && _selectedSupplier.Id != _matchedVehicle.SupplierId; + + // 操作人员通过弹窗选了客户,且与档案不同(含原来为空的情况) + bool customerChanged = _matchedVehicle.VehicleBelong == "1" + && _selectedCustomer != null + && _selectedCustomer.Id != _matchedVehicle.CustomerIds; + + if (!driverChanged && !supplierChanged && !customerChanged) return; await _vehicleService.EditAsync(new MesXslVehicle { @@ -821,22 +832,31 @@ public class WeightRecordOperationViewModel : BaseViewModel VehicleBelong = _matchedVehicle.VehicleBelong, TareWeightKg = _matchedVehicle.TareWeightKg, LoadCapacity = _matchedVehicle.LoadCapacity, - SupplierId = _matchedVehicle.SupplierId, - SupplierName = _matchedVehicle.SupplierName, - SupplierShortName = _matchedVehicle.SupplierShortName, - CustomerIds = _matchedVehicle.CustomerIds, - CustomerShortName = _matchedVehicle.CustomerShortName, + SupplierId = supplierChanged ? _selectedSupplier!.Id : _matchedVehicle.SupplierId, + SupplierName = supplierChanged ? _selectedSupplier!.SupplierName : _matchedVehicle.SupplierName, + SupplierShortName = supplierChanged ? _selectedSupplier!.SupplierShortName : _matchedVehicle.SupplierShortName, + CustomerIds = customerChanged ? _selectedCustomer!.Id : _matchedVehicle.CustomerIds, + CustomerShortName = customerChanged + ? (_selectedCustomer!.CustomerShortName ?? _selectedCustomer.CustomerName) + : _matchedVehicle.CustomerShortName, DriverName = DriverName, DriverPhone = DriverPhone, Status = _matchedVehicle.Status, TenantId = _matchedVehicle.TenantId, Version = _matchedVehicle.Version, }); - AddLog($"车辆档案已更新:{PlateNumber}"); + + var parts = new List(); + if (driverChanged) parts.Add("司机信息"); + if (supplierChanged) parts.Add($"供应商→{_selectedSupplier!.SupplierName}"); + if (customerChanged) parts.Add($"客户→{_selectedCustomer!.CustomerName}"); + AddLog($"车辆档案已更新:{PlateNumber}({string.Join("、", parts)})"); } else { - // 无档案:根据表单信息新建车辆档案 + // 只有明确查询过且未找到时才新建,避免从最近榜单带入时重复新建 + if (VehicleLookupStatus != "NotFound") return; + var vehicleBelong = InoutDirection == "2" ? "1" : "2"; // 出厂→客户 进厂→供应商 var newVehicle = new MesXslVehicle { @@ -845,6 +865,7 @@ public class WeightRecordOperationViewModel : BaseViewModel SupplierId = _selectedSupplier?.Id, SupplierName = _selectedSupplier?.SupplierName, SupplierShortName = _selectedSupplier?.SupplierShortName, + CustomerIds = _selectedCustomer?.Id, CustomerShortName = _selectedCustomer?.CustomerShortName ?? (InoutDirection == "2" ? ReceiverUnit : null), DriverName = DriverName, diff --git a/yy-admin-master/YY.Admin/Views/WeightRecord/WeightRecordOperationView.xaml b/yy-admin-master/YY.Admin/Views/WeightRecord/WeightRecordOperationView.xaml index 9df1638..b775c9e 100644 --- a/yy-admin-master/YY.Admin/Views/WeightRecord/WeightRecordOperationView.xaml +++ b/yy-admin-master/YY.Admin/Views/WeightRecord/WeightRecordOperationView.xaml @@ -513,14 +513,20 @@ - - + + + + + + + + - + @@ -649,7 +655,7 @@ - + @@ -662,12 +668,16 @@ - - + + + + + - + VerticalScrollBarVisibility="Auto">