From 5c5a26ca4f99953d06e75010eed5b0b59dff3b3f Mon Sep 17 00:00:00 2001
From: song zhou <1759742460@qq.com>
Date: 周日, 18 5月 2025 19:44:26 +0800
Subject: [PATCH] wcs交互
---
HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj | 2
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs | 73 +++++++++++++++++++++--
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs | 25 ++++++++
HIAWms/hiawms_web/components.d.ts | 3 +
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs | 5 +
HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs | 17 ++++-
HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs | 9 ++
7 files changed, 121 insertions(+), 13 deletions(-)
diff --git a/HIAWms/hiawms_web/components.d.ts b/HIAWms/hiawms_web/components.d.ts
index 135cdd6..988c7da 100644
--- a/HIAWms/hiawms_web/components.d.ts
+++ b/HIAWms/hiawms_web/components.d.ts
@@ -21,6 +21,8 @@
Dialog: typeof import('./src/components/Dialog/index.vue')['default']
ElButton: typeof import('element-plus/es')['ElButton']
ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
+ ElCollapse: typeof import('element-plus/es')['ElCollapse']
+ ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElDialog: typeof import('element-plus/es')['ElDialog']
@@ -42,6 +44,7 @@
ElPopover: typeof import('element-plus/es')['ElPopover']
ElRadio: typeof import('element-plus/es')['ElRadio']
ElSelect: typeof import('element-plus/es')['ElSelect']
+ ElSwitch: typeof import('element-plus/es')['ElSwitch']
ElTabPane: typeof import('element-plus/es')['ElTabPane']
ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag']
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs
index 15b99a7..dbb143e 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/QueryTaskTypeInput.cs
@@ -12,6 +12,31 @@
/// </summary>
public class QueryTaskTypeInput
{
+ /// <summary>
+ /// 浠诲姟绫诲瀷
+ /// </summary>
public TaskTypeEnum TaskType { get; set; }
+
+ /// <summary>
+ /// 鍏ュ簱鍙f湁璐�
+ /// </summary>
+ public bool InStockHasGood { get; set; }
+
+ /// <summary>
+ /// 鍑哄簱鍙f湁璐�
+ /// </summary>
+ public bool OutStockHasGood { get; set; }
+
+ }
+
+ /// <summary>
+ /// 涓嬪彂瀹屾垚鐨勪换鍔″叆鍙�.
+ /// </summary>
+ public class ExcecuteTaskInput
+ {
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public string TaskNo { get; set;}
}
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs
index 36eb5c1..91a608e 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Dtos/WmsTask/WmsTaskDto.cs
@@ -29,6 +29,7 @@
{
get
{
+ if (TaskType == 0) return "";
return GetEnumDescriptionUtil.GetEnumDescription(TaskType);
}
}
@@ -49,6 +50,7 @@
{
get
{
+ if (TaskStatus == 0) return "";
return GetEnumDescriptionUtil.GetEnumDescription(TaskStatus);
}
}
@@ -95,6 +97,7 @@
{
get
{
+ if (Dodevicetype == 0) return "";
return GetEnumDescriptionUtil.GetEnumDescription(Dodevicetype);
}
}
@@ -111,6 +114,7 @@
{
get
{
+ if (TaskDodeviceStatus == 0) return "";
return GetEnumDescriptionUtil.GetEnumDescription(TaskDodeviceStatus);
}
}
@@ -132,6 +136,7 @@
{
get
{
+ if (SonTaskType == 0 || !SonTaskType.HasValue) return "";
return GetEnumDescriptionUtil.GetEnumDescription(SonTaskType);
}
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs
index 7f6670c..b86ef51 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application.Contracts/Services/IWmsTaskAppService.cs
@@ -49,7 +49,7 @@
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
- Task FinishTaskAsync(WmsTaskStatusDto input);
+ Task<WmsTaskDto> FinishTaskAsync(WmsTaskStatusDto input);
/// <summary>
/// 鍙栨秷浠诲姟
@@ -71,4 +71,11 @@
/// <param name="input"></param>
/// <returns></returns>
Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input);
+
+ /// <summary>
+ /// 鏇存柊浠诲姟涓烘墽琛屼腑
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ Task<WmsTaskDto> StartExecuteTaskAsync(ExcecuteTaskInput input);
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
index 7ede721..595662e 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsTaskAppService.cs
@@ -526,8 +526,12 @@
/// <param name="input"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
- public async Task FinishTaskAsync(WmsTaskStatusDto input)
+ public async Task<WmsTaskDto> FinishTaskAsync(WmsTaskStatusDto input)
{
+ if (string.IsNullOrEmpty(input.TaskNo))
+ {
+ throw new UserFriendlyException("浠诲姟鍙蜂笉鑳戒负绌�");
+ }
using var scope = _serviceProvider.CreateScope();
var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
using var uow = unitOfWorkManager.Begin(requiresNew: true);
@@ -640,6 +644,8 @@
await uow.SaveChangesAsync();
await uow.CompleteAsync();
+
+ return ObjectMapper.Map<WmsTask, WmsTaskDto>(task);
}
/// <summary>
@@ -650,7 +656,10 @@
/// <exception cref="UserFriendlyException"></exception>
public async Task CancelTaskAysnc(WmsTaskStatusDto input)
{
-
+ if (string.IsNullOrEmpty(input.TaskNo))
+ {
+ throw new UserFriendlyException("浠诲姟鍙蜂笉鑳戒负绌�");
+ }
using var scope = _serviceProvider.CreateScope();
var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
using var uow = unitOfWorkManager.Begin(requiresNew: true);
@@ -705,7 +714,13 @@
/// <exception cref="UserFriendlyException"></exception>
public async Task ChangeTaskToPlaceAsync(ChangeTaskToPlaceInput input)
{
- var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo);
+
+ if (string.IsNullOrEmpty(input.TaskNo))
+ {
+ throw new UserFriendlyException("浠诲姟鍙蜂笉鑳戒负绌�");
+ }
+
+ var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo);
if (task == null)
{
throw new UserFriendlyException("浠诲姟淇℃伅涓嶅瓨鍦�");
@@ -722,13 +737,13 @@
throw new UserFriendlyException("鐩爣搴撲綅淇℃伅涓嶅瓨鍦�");
}
- if(toPlaceInfo.IsDisabled)
+ if (toPlaceInfo.IsDisabled)
{
throw new UserFriendlyException("鐩爣搴撲綅宸茶绂佺敤");
}
var toplaceStock = await _wmsMaterialStockRepository.GetStockListAsync(new WmsMaterialStock { PlaceNo = input.ToPlace });
- if (toplaceStock != null && toplaceStock.Count>0)
+ if (toplaceStock != null && toplaceStock.Count > 0)
{
var model = toplaceStock.FirstOrDefault();
if (model.MaterialModel != input.MutableParam1)
@@ -755,14 +770,56 @@
var whereConditions = DynamicGetQueryParams(queryInput);
var NoStartTaskList = await wmsTaskRepository.GetTaskListAsync(whereConditions);
- if(NoStartTaskList.Count<=0) return null;
- var executeTask = NoStartTaskList.FirstOrDefault(x=>x.TaskType == input.TaskType);
- if(executeTask == null)
+
+ if (NoStartTaskList.Count <= 0) return null;
+
+ var executeTaskList = NoStartTaskList.WhereIf(input.TaskType > 0, x => x.TaskType == input.TaskType).OrderBy(x => x.TaskType).ThenBy(x => x.TaskLevel).ToList();
+
+ var executeTask = executeTaskList.FirstOrDefault();
+ if (input.OutStockHasGood)
+ {
+ executeTask = NoStartTaskList.OrderByDescending(x => x.TaskType == TaskTypeEnum.RUKU).ThenBy(x => x.TaskLevel).FirstOrDefault();
+ }
+
+ if (executeTask == null)
{
return ObjectMapper.Map<WmsTask, WmsTaskDto>(NoStartTaskList.FirstOrDefault());
}
+ if (executeTask.TaskType == TaskTypeEnum.CHUKU && input.OutStockHasGood)
+ {
+ return null;
+ }
+
+ if(executeTask.TaskType == TaskTypeEnum.RUKU && !input.InStockHasGood)
+ {
+ return null;
+ }
+
return ObjectMapper.Map<WmsTask, WmsTaskDto>(executeTask);
}
+
+
+ /// <summary>
+ /// 鏇存柊浠诲姟涓烘墽琛屼腑
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ public async Task<WmsTaskDto> StartExecuteTaskAsync(ExcecuteTaskInput input)
+ {
+ if (string.IsNullOrEmpty(input.TaskNo))
+ {
+ throw new UserFriendlyException("浠诲姟鍙蜂笉鑳戒负绌�");
+ }
+ var task = await wmsTaskRepository.FindByNameAsync(input.TaskNo);
+ if(task == null)
+ {
+ return new WmsTaskDto();
+ }
+ task.TaskStatus = WmsTaskStatus.ZHIXINGZHONG;
+ task.TaskDodeviceStatus = TaskDodeviceStatus.SrmProgress;
+ await wmsTaskRepository.UpdateAsync(task);
+ return ObjectMapper.Map<WmsTask, WmsTaskDto>(task);
+ }
}
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj b/HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj
index 69a13a5..5879009 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/CMS.Plugin.HIAWms.csproj
@@ -11,7 +11,7 @@
</PropertyGroup>
<PropertyGroup Condition="$([MSBuild]::IsOSPlatform('Windows'))">
- <CMSRootPath>D:\syc\CMS Editor</CMSRootPath>
+ <CMSRootPath>E:\syc_cms\CMS Editor</CMSRootPath>
<OutputPath>$(CMSRootPath)\plugins\cms.plugin.hiawms</OutputPath>
</PropertyGroup>
diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs
index e67e967..38201ac 100644
--- a/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs
+++ b/HIAWms/server/src/CMS.Plugin.HIAWms/Controller/WmsTaskController.cs
@@ -192,9 +192,9 @@
/// <returns></returns>
[HttpPost]
[Route("FinishTask")]
- public async Task FinishTaskAsync(WmsTaskStatusDto input)
+ public async Task<WmsTaskDto> FinishTaskAsync(WmsTaskStatusDto input)
{
- await _wmsTaskAppService.FinishTaskAsync(input);
+ return await _wmsTaskAppService.FinishTaskAsync(input);
}
/// <summary>
@@ -227,10 +227,21 @@
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
- [Route("ToExecuteTask")]
+ [Route("GetExecuteTask")]
public async Task<WmsTaskDto> GetToExecuteTaskAsync(QueryTaskTypeInput input)
{
return await _wmsTaskAppService.GetToExecuteTaskAsync(input);
}
+ /// <summary>
+ /// 鏇存柊浠诲姟涓烘墽琛屼腑
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost]
+ [Route("ToExecuteTask")]
+ public async Task<WmsTaskDto> StartExecuteTaskAsync(ExcecuteTaskInput input)
+ {
+ return await _wmsTaskAppService.StartExecuteTaskAsync(input);
+ }
}
}
--
Gitblit v1.9.3