优化车辆档案更新逻辑,增加对司机、供应商和客户信息变更的检查,确保数据一致性。调整界面布局,改善重量信息和称重榜单的展示方式,提升用户体验。
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user