优化车辆档案更新逻辑,增加对司机、供应商和客户信息变更的检查,确保数据一致性。调整界面布局,改善重量信息和称重榜单的展示方式,提升用户体验。

This commit is contained in:
geht
2026-05-06 16:24:59 +08:00
parent 71b8d94da8
commit 76ed8f0534
2 changed files with 50 additions and 19 deletions

View File

@@ -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<string>();
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,