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

dev
WenJY 2 days ago
parent c8b90f199d
commit 2afe4bd51a

@ -73,10 +73,17 @@ public class TaskCreateService
int startBuilding, int startFloor, string startLocation,
int endBuilding, int endFloor, string endLocation,
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)");
@ -112,8 +119,12 @@ public class TaskCreateService
var hoistEntry = HoistPoint(b1, f1);
var hoistExit = HoistPoint(b2, f2);
details.Add(NewDetail(taskCode, palletBarcode, materialCode,
taskType, taskCategory, seq++, currentPos, hoistEntry, deviceType: 1));
// 手动放入时已在提升机口,无需 AGV 段
if (currentPos != hoistEntry)
{
details.Add(NewDetail(taskCode, palletBarcode, materialCode,
taskType, taskCategory, seq++, currentPos, hoistEntry, deviceType: 1));
}
details.Add(NewDetail(taskCode, palletBarcode, materialCode,
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)
{
details.Add(NewDetail(taskCode, palletBarcode, materialCode,

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

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

Loading…
Cancel
Save