优化车辆档案更新逻辑,增加对司机、供应商和客户信息变更的检查,确保数据一致性。调整界面布局,改善重量信息和称重榜单的展示方式,提升用户体验。
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,
|
||||
|
||||
@@ -513,14 +513,20 @@
|
||||
|
||||
<!-- 重量信息 -->
|
||||
<Border Grid.Row="1" Style="{StaticResource SectionBorderStyle}" Margin="0,0,0,0" Padding="12,10">
|
||||
<StackPanel>
|
||||
<StackPanel Orientation="Horizontal" Margin="0,0,0,4">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Grid.Row="0" Orientation="Horizontal" Margin="0,0,0,4">
|
||||
<Border Width="4" Height="18" CornerRadius="2" Background="{StaticResource SectionBorderBrush}"/>
|
||||
<TextBlock Text="重量信息" Style="{StaticResource SectionTitleStyle}"/>
|
||||
</StackPanel>
|
||||
|
||||
<!-- 毛重 / 皮重并排 -->
|
||||
<Grid Margin="0,0,0,8">
|
||||
<Grid Grid.Row="1" Margin="0,0,0,8">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="16"/>
|
||||
@@ -649,7 +655,7 @@
|
||||
</Grid>
|
||||
|
||||
<!-- 净重展示(横贯全宽) -->
|
||||
<StackPanel Margin="0,2,0,0">
|
||||
<StackPanel Grid.Row="2" Margin="0,2,0,0">
|
||||
<TextBlock Text="净 重 = 毛重 - 皮重 (KG)" FontSize="12"
|
||||
Foreground="{DynamicResource SecondaryTextBrush}"
|
||||
Margin="0,0,0,6" HorizontalAlignment="Center"/>
|
||||
@@ -662,12 +668,16 @@
|
||||
</StackPanel>
|
||||
|
||||
<!-- 最近称重榜单 -->
|
||||
<StackPanel Margin="0,8,0,0">
|
||||
<TextBlock Text="最近称重榜单"
|
||||
<Grid Grid.Row="3" Margin="0,8,0,0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Grid.Row="0" Text="最近称重榜单"
|
||||
FontSize="12"
|
||||
Foreground="{DynamicResource SecondaryTextBrush}"
|
||||
Margin="0,0,0,6"/>
|
||||
<Border CornerRadius="8"
|
||||
<Border Grid.Row="1" CornerRadius="8"
|
||||
Background="White"
|
||||
BorderBrush="{DynamicResource BorderBrush}"
|
||||
BorderThickness="1"
|
||||
@@ -692,7 +702,7 @@
|
||||
ColumnHeaderHeight="28"
|
||||
RowHeaderWidth="0"
|
||||
MinHeight="80"
|
||||
MaxHeight="80">
|
||||
VerticalScrollBarVisibility="Auto">
|
||||
<DataGrid.RowStyle>
|
||||
<Style TargetType="DataGridRow">
|
||||
<Setter Property="Background" Value="White"/>
|
||||
@@ -728,8 +738,8 @@
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
</Grid>
|
||||
|
||||
Reference in New Issue
Block a user