change - 添加手动放入、手动取出任务创建

dev
WenJY 2 days ago
parent c8b90f199d
commit 2afe4bd51a

@ -73,10 +73,17 @@ public class TaskCreateService
int startBuilding, int startFloor, string startLocation, int startBuilding, int startFloor, string startLocation,
int endBuilding, int endFloor, string endLocation, int endBuilding, int endFloor, string endLocation,
int taskType, int taskCategory, int taskType, int taskCategory,
string palletBarcode, string materialCode) string palletBarcode, string materialCode,
bool manualPutIn = false, bool manualTakeOut = false)
{ {
var startPoint = PosCode(startBuilding, startFloor, startLocation); // 手动放入: 起始位置替换为提升机接驳位
var endPoint = PosCode(endBuilding, endFloor, endLocation); // 手动取出: 目标位置替换为提升机接驳位
var startPoint = manualPutIn
? HoistPoint(startBuilding, startFloor)
: PosCode(startBuilding, startFloor, startLocation);
var endPoint = manualTakeOut
? HoistPoint(endBuilding, endFloor)
: PosCode(endBuilding, endFloor, endLocation);
_logger.Info($"创建任务 - {startPoint} ({startBuilding}#_{startFloor}F) → {endPoint} ({endBuilding}#_{endFloor}F)"); _logger.Info($"创建任务 - {startPoint} ({startBuilding}#_{startFloor}F) → {endPoint} ({endBuilding}#_{endFloor}F)");
@ -112,8 +119,12 @@ public class TaskCreateService
var hoistEntry = HoistPoint(b1, f1); var hoistEntry = HoistPoint(b1, f1);
var hoistExit = HoistPoint(b2, f2); var hoistExit = HoistPoint(b2, f2);
// 手动放入时已在提升机口,无需 AGV 段
if (currentPos != hoistEntry)
{
details.Add(NewDetail(taskCode, palletBarcode, materialCode, details.Add(NewDetail(taskCode, palletBarcode, materialCode,
taskType, taskCategory, seq++, currentPos, hoistEntry, deviceType: 1)); taskType, taskCategory, seq++, currentPos, hoistEntry, deviceType: 1));
}
details.Add(NewDetail(taskCode, palletBarcode, materialCode, details.Add(NewDetail(taskCode, palletBarcode, materialCode,
taskType, taskCategory, seq++, hoistEntry, hoistExit, deviceType: 2)); taskType, taskCategory, seq++, hoistEntry, hoistExit, deviceType: 2));
@ -121,7 +132,7 @@ public class TaskCreateService
} }
} }
// Step 3: 最终 AGV 送达终点(同栋同层时直接一条 AGV // Step 3: 最终 AGV 送达终点(同栋同层时直接一条 AGV;手动取出时终点=提升机口,已到达则跳过
if (details.Count == 0 || currentPos != endPoint) if (details.Count == 0 || currentPos != endPoint)
{ {
details.Add(NewDetail(taskCode, palletBarcode, materialCode, details.Add(NewDetail(taskCode, palletBarcode, materialCode,

@ -29,6 +29,10 @@ public partial class CreateTaskViewModel : ObservableObject
[ObservableProperty] private string _palletBarcode = string.Empty; [ObservableProperty] private string _palletBarcode = string.Empty;
[ObservableProperty] private string _materialCode = string.Empty; [ObservableProperty] private string _materialCode = string.Empty;
// ---- 手动操作选项 ----
[ObservableProperty] private bool _manualPutIn;
[ObservableProperty] private bool _manualTakeOut;
// ---- 状态 ---- // ---- 状态 ----
[ObservableProperty] private string _statusText = string.Empty; [ObservableProperty] private string _statusText = string.Empty;
[ObservableProperty] private bool _isBusy; [ObservableProperty] private bool _isBusy;
@ -60,7 +64,8 @@ public partial class CreateTaskViewModel : ObservableObject
StartBuilding, StartFloor, StartLocation, StartBuilding, StartFloor, StartLocation,
EndBuilding, EndFloor, EndLocation, EndBuilding, EndFloor, EndLocation,
TaskType, TaskCategory, TaskType, TaskCategory,
PalletBarcode, MaterialCode)); PalletBarcode, MaterialCode,
ManualPutIn, ManualTakeOut));
StatusText = $"路由生成完成,共 {taskQueue.taskSteps} 条明细,正在保存..."; StatusText = $"路由生成完成,共 {taskQueue.taskSteps} 条明细,正在保存...";

@ -75,6 +75,12 @@
<TextBox Text="{Binding TaskCategory}" Width="200" /> <TextBox Text="{Binding TaskCategory}" Width="200" />
</StackPanel> </StackPanel>
</WrapPanel> </WrapPanel>
<!-- 手动操作 -->
<WrapPanel Margin="0,4,0,0">
<CheckBox Content="手动放入" IsChecked="{Binding ManualPutIn}" Margin="0,0,24,0" />
<CheckBox Content="手动取出" IsChecked="{Binding ManualTakeOut}" />
</WrapPanel>
<!-- 托盘条码 / 物料编码 --> <!-- 托盘条码 / 物料编码 -->
<WrapPanel> <WrapPanel>
<StackPanel Spacing="4" Margin="0,0,20,8"> <StackPanel Spacing="4" Margin="0,0,20,8">

Loading…
Cancel
Save