first commit

This commit is contained in:
2026-09-02 16:31:50 +08:00
commit a461727193
911 changed files with 692450 additions and 0 deletions
@@ -0,0 +1,80 @@
using JSMachine.WMS.App.Dto;
using JSMachine.WMS.App.Dto.Enum;
using JSMachine.WMS.App.IService;
using JSMachine.WMS.App.ServiceImpl;
using JSMachine.WMS.Business.RcsCallBack.IService.StrategyPattern;
using JSMachine.WMS.Infrastructure.Helper;
using Prism;
using System;
using System.Collections.Generic;
using System.ComponentModel.Design;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static JSMachine.WMS.App.Dto.StorageRackDto;
namespace JSMachine.WMS.Business.RcsCallBack.ServiceImpl.StrategyPatternImpl
{
/// <summary>
/// 存储区策略(普通库位,中转库位)
/// </summary>
public class StorageAreaStrategy : ITaskCompletionStrategy
{
private readonly IStorageRackService _storageRackService;
private readonly IAGVTaskService _agvTaskService;
private readonly IERPTaskService _erpTaskService;
public StorageAreaStrategy(
IStorageRackService storageRackService,
IAGVTaskService agvTaskService,
IERPTaskService erpTaskService)
{
_storageRackService = storageRackService;
_agvTaskService = agvTaskService;
_erpTaskService = erpTaskService;
}
public async Task<bool> CompleteTaskAsync(AGVTaskDto agvTask, StorageRackDto destWarehouse)
{
bool bRet = await _agvTaskService.EditSingalWithSpecificCols(agvTask, ["TaskStatus"]);
if (!bRet)
{
LogHelper.Error($"更新agvTask {agvTask.Id} 失败");
return false;
}
destWarehouse.BingdingMaterial(new MateriaInfo
{
BarCode = agvTask.BarCode,
MateriaBatch = agvTask.MateriaBatch,
MateriaCode = agvTask.MateriaCode,
MateriaName = agvTask.MateriaName,
MateriaNum = agvTask.MateriaNum.ToString(),
MateriaType = agvTask.MateriaType,
OrderNo = agvTask.OrderNo
});
//托盘放到位后解锁库位
destWarehouse.IsLock = false;
await _storageRackService.EditSingal(destWarehouse);
agvTask.TaskStatus = TaskStatusEnum.Completed;
await _agvTaskService.EditSingalWithSpecificCols(agvTask, ["TaskStatus"]);
//更新erp任务状态为完成
await UpdateErpTaskStatus(agvTask, TaskStatusEnum.Completed);
return true;
}
private async Task UpdateErpTaskStatus(AGVTaskDto agvTask, TaskStatusEnum taskStatus)
{
ERPTaskDto erpTask = await _erpTaskService.GetSingalByExpression(p => p.Id == agvTask.ErpTaskId);
erpTask.TaskStatus = taskStatus;
//更新erp任务状态为完成
bool bRet = await _erpTaskService.EditSingal(erpTask);
LogHelper.Info($"更新erptask状态为 {taskStatus} ,数据库操作结果 {bRet}");
}
}
}