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">