From 98cd144e4d58dbfcc09a2ffb0dbb6925519088b3 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期三, 06 十一月 2024 14:12:56 +0800
Subject: [PATCH] 最新代码更改
---
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/PlatFormRepository.cs | 8
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs | 4
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/ProcessParameters/Platform.cs | 94 ++++
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs | 293 ++++++++++--
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Integration/AgingInOrOutController.cs | 4
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/CellState/CellStateService.cs | 58 +-
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 42 +
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs | 9
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs | 17
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 6
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/IPlatFormRepository.cs | 5
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs | 183 +++++++
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/MOM/AgingInOrOutInput/IAgingInOrOutInputService.cs | 4
Code Management/WCS/WIDESEAWCS_Client/src/views/Login.vue | 6
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail.cs | 10
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs | 476 +++++++++++---------
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs | 19
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs | 2
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs | 6
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResponeAgingInputDto.cs | 26 +
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/Dt_EquipmentProcess.cs | 68 ++
21 files changed, 1,002 insertions(+), 338 deletions(-)
diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/Login.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/Login.vue
index c61c0e8..83c86c7 100644
--- a/Code Management/WCS/WIDESEAWCS_Client/src/views/Login.vue
+++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/Login.vue
@@ -95,9 +95,9 @@
const loading = ref(false);
const codeImgSrc = ref('');
const userInfo = reactive({
- userName: '',
- password: '',
- verificationCode: '',
+ userName: 'admin',
+ password: '123456',
+ verificationCode: '1234',
UUID: undefined
});
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs
index 98a8147..11bc62f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs
@@ -22,7 +22,7 @@
{
return TaskTypeGroup.OutbondGroup;
}
- else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskType.ToString()).ToString(), out result))
+ else if (!int.TryParse(Enum.Parse<TaskInboundTypeEnum>(taskType.ToString()).ToString(), out result))
{
return TaskTypeGroup.InboundGroup;
}
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs
index e1698fd..a0dacf7 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs
@@ -71,6 +71,12 @@
/// </summary>
[Description("绌烘墭鐩樺嚭搴�")]
OutTray = 104,
+
+ /// <summary>
+ /// 绌烘墭鐩樺嚭搴�
+ /// </summary>
+ [Description("绌烘墭鐩樺嚭搴�")]
+ OutNG = 105,
}
public enum TaskRelocationTypeEnum
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
index 5cce460..1a50def 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -73,6 +73,23 @@
/// <returns></returns>
Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress);
+
+ /// <summary>
+ /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
+ /// </summary>
+ /// <param name="deviceNo">璁惧缂栧彿</param>
+ /// <param name="currentAddress">褰撳墠鍦板潃</param>
+ /// <returns></returns>
+ Dt_Task QueryNextConveyorLineTask(string deviceNo, string currentAddress);
+
+ /// <summary>
+ /// 鏍规嵁鎵樼洏鍙枫�佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
+ /// </summary>
+ /// <param name="Barcode">鎵樼洏鍙�</param>
+ /// <param name="currentAddress">褰撳墠鍦板潃</param>
+ /// <returns></returns>
+ Dt_Task QueryBarCodeConveyorLineTask(string Barcode, string currentAddress);
+
/// <summary>
/// 鏍规嵁浠诲姟鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟
/// </summary>
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/ProcessParameters/Platform.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/ProcessParameters/Platform.cs
new file mode 100644
index 0000000..7055892
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/ProcessParameters/Platform.cs
@@ -0,0 +1,94 @@
+锘縰sing Magicodes.ExporterAndImporter.Core;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+ [SugarTable("Dt_Platform", "璁惧宸ヨ壓鍙傛暟")]
+ public class Platform : BaseEntity
+ {
+ /// <summary>
+ /// 涓婚敭ID
+ /// </summary>
+ [ImporterHeader(Name = "涓婚敭")]
+ [ExporterHeader(DisplayName = "涓婚敭")]
+ [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+ public int Id { get; set; }
+ /// <summary>
+ /// 绔欏彴缂栧彿锛屽敮涓�鏍囪瘑姣忎釜绔欏彴鐨勭紪鍙�
+ /// </summary>
+ [ImporterHeader(Name = "绔欏彴缂栧彿锛屽敮涓�鏍囪瘑姣忎釜绔欏彴鐨勭紪鍙�")]
+ [ExporterHeader(DisplayName = "绔欏彴缂栧彿锛屽敮涓�鏍囪瘑姣忎釜绔欏彴鐨勭紪鍙�")]
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "绔欏彴缂栧彿锛屽敮涓�鏍囪瘑姣忎釜绔欏彴鐨勭紪鍙�")]
+ public string PlatCode { get; set; }
+
+ /// <summary>
+ /// 绔欏彴鍚嶇О锛岀珯鍙扮殑鍚嶇О鎴栨弿杩�
+ /// </summary>
+ [ImporterHeader(Name = "绔欏彴鍚嶇О")]
+ [ExporterHeader(DisplayName = "绔欏彴鍚嶇О")]
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "绔欏彴鍚嶇О")]
+ public string PlatformName { get; set; }
+
+ /// <summary>
+ /// 瀵瑰簲鍫嗗灈鏈�
+ /// </summary>
+ [ImporterHeader(Name = "瀵瑰簲鍫嗗灈鏈�")]
+ [ExporterHeader(DisplayName = "瀵瑰簲鍫嗗灈鏈�")]
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "瀵瑰簲鍫嗗灈鏈�")]
+ public string Stacker { get; set; }
+
+ /// <summary>
+ /// 鎵ц鏂规硶
+ /// </summary>
+ [ImporterHeader(Name = "鎵ц鏂规硶")]
+ [ExporterHeader(DisplayName = "鎵ц鏂规硶")]
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵ц鏂规硶")]
+ public string ExecutionMethod { get; set; }
+
+ /// <summary>
+ /// 绔欏彴绫诲瀷锛岀珯鍙扮殑绫诲瀷
+ /// </summary>
+ [ImporterHeader(Name = "绔欏彴绫诲瀷")]
+ [ExporterHeader(DisplayName = "绔欏彴绫诲瀷")]
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "绔欏彴绫诲瀷")]
+ public string PlatformType { get; set; }
+
+ /// <summary>
+ /// 瀵瑰簲PLC缂栧彿锛屼笌绔欏彴瀵瑰簲鐨凱LC鐨勭紪鍙�
+ /// </summary>
+ [ImporterHeader(Name = "瀵瑰簲PLC缂栧彿")]
+ [ExporterHeader(DisplayName = "瀵瑰簲PLC缂栧彿")]
+ [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "瀵瑰簲PLC缂栧彿")]
+ public string PLCCode { get; set; }
+
+ /// <summary>
+ /// 绔欏彴浣嶇疆
+ /// </summary>
+ [ImporterHeader(Name = "绔欏彴浣嶇疆")]
+ [ExporterHeader(DisplayName = "绔欏彴浣嶇疆")]
+ [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "绔欏彴浣嶇疆")]
+ public string Location { get; set; }
+
+ /// <summary>
+ /// 绔欏彴瀹归噺
+ /// </summary>
+ [ImporterHeader(Name = "绔欏彴瀹归噺")]
+ [ExporterHeader(DisplayName = "绔欏彴瀹归噺")]
+ [SugarColumn(IsNullable = true, ColumnDescription = "绔欏彴瀹归噺")]
+ public int Capacity { get; set; }
+
+ /// <summary>
+ /// 绔欏彴鐘舵�侊紝榛樿涓�'Active'
+ /// </summary>
+ [ImporterHeader(Name = "绔欏彴鐘舵��")]
+ [ExporterHeader(DisplayName = "绔欏彴鐘舵��")]
+ [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "绔欏彴鐘舵��")]
+ public string Status { get; set; } = "Active";
+ }
+}
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/IPlatFormRepository.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/IPlatFormRepository.cs
new file mode 100644
index 0000000..ef03e54
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/IPlatFormRepository.cs
@@ -0,0 +1,5 @@
+锘縩amespace WIDESEAWCS_IProcessRepository;
+
+public interface IPlatFormRepository : IRepository<Platform>
+{
+}
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/PlatFormRepository.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/PlatFormRepository.cs
new file mode 100644
index 0000000..b79f13a
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/PlatFormRepository.cs
@@ -0,0 +1,8 @@
+锘縩amespace WIDESEAWCS_ProcessRepository;
+
+public class PlatFormRepository : RepositoryBase<Platform>, IPlatFormRepository
+{
+ public PlatFormRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+ {
+ }
+}
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
index f67ac7c..d0c9f6f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
@@ -224,7 +224,7 @@
if (devicePro == null)
{
- throw new Exception("鏈壘鍒板崗璁俊鎭�");
+ throw new Exception("鏈壘鍒板崗璁俊鎭�:" + deviceChildCode);
}
else
{
@@ -247,7 +247,7 @@
if (devicePro == null)
{
- throw new Exception("鏈壘鍒板崗璁俊鎭�");
+ throw new Exception("鏈壘鍒板崗璁俊鎭�:" + deviceChildCode);
}
else
{
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 20a3264..63d8ec4 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -192,6 +192,28 @@
}
/// <summary>
+ /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
+ /// </summary>
+ /// <param name="deviceNo">璁惧缂栧彿</param>
+ /// <param name="currentAddress">褰撳墠鍦板潃</param>
+ /// <returns></returns>
+ public Dt_Task QueryNextConveyorLineTask(string deviceNo, string currentAddress)
+ {
+ return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.NextAddress == currentAddress, TaskOrderBy);
+ }
+
+ /// <summary>
+ /// 鏍规嵁鎵樼洏鍙枫�佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
+ /// </summary>
+ /// <param name="Barcode">鎵樼洏鍙�</param>
+ /// <param name="currentAddress">褰撳墠鍦板潃</param>
+ /// <returns></returns>
+ public Dt_Task QueryBarCodeConveyorLineTask(string Barcode, string currentAddress)
+ {
+ return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress && x.PalletCode == Barcode, TaskOrderBy);
+ }
+
+ /// <summary>
/// 鏍规嵁浠诲姟鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟
/// </summary>
/// <param name="taskNum">浠诲姟鍙�</param>
@@ -397,10 +419,20 @@
if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish)
{
- Random random = new Random();
- task.CurrentAddress = task.NextAddress;
- task.NextAddress = $"{random.Next(1, 1).ToString().PadLeft(3, '0')}-{random.Next(1, 1).ToString().PadLeft(3, '0')}-{random.Next(1, 1).ToString().PadLeft(3, '0')}";
- task.TargetAddress = task.NextAddress;
+ if (task.Roadway.Contains("CH"))
+ {
+ Random random = new Random();
+ task.CurrentAddress = task.NextAddress;
+ task.NextAddress = $"{random.Next(1, 1).ToString().PadLeft(3, '0')}-{random.Next(0, 0).ToString().PadLeft(3, '0')}-{random.Next(1, 1).ToString().PadLeft(3, '0')}";
+ task.TargetAddress = task.NextAddress;
+ }
+ else
+ {
+ Random random = new Random();
+ task.CurrentAddress = task.NextAddress;
+ task.NextAddress = "002-020-001";
+ task.TargetAddress = task.NextAddress;
+ }
#region 鐪熷疄鏁版嵁
// TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧�
@@ -524,7 +556,7 @@
}
else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting)
{
- //todo
+ //todo 鍚屾鍒癢MS
int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
task.TaskState = nextStatus;
task.ModifyDate = DateTime.Now;
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
index f2b2880..5733764 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -20,13 +20,16 @@
using AutoMapper;
using HslCommunication;
using Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
using Quartz;
using SqlSugar;
using System.Reflection;
+using System.Threading.Tasks;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.Helper;
using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_IProcessRepository;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
@@ -39,24 +42,23 @@
namespace WIDESEAWCS_Tasks
{
[DisallowConcurrentExecution]
- public class CommonConveyorLineJob : JobBase, IJob
+ public partial class CommonConveyorLineJob : JobBase, IJob
{
- private readonly List<string> _deviceCodes1 = new List<string>() { "1063", "1061", "1060" };
- private readonly List<string> _deviceCodes2 = new List<string>() { "1067", "1069", "1068" };
- private readonly string[] HCTrayCode = { "1012", "1013" };
- private readonly ITaskService _taskService;
+ public readonly ITaskService _taskService;
private readonly ITaskRepository _taskRepository;
private readonly ITaskExecuteDetailService _taskExecuteDetailService;
private readonly IRouterService _routerService;
+ private readonly IPlatFormRepository _platFormRepository;
private readonly IMapper _mapper;
- public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository)
+ public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IPlatFormRepository platFormRepository)
{
_taskService = taskService;
_taskExecuteDetailService = taskExecuteDetailService;
_routerService = routerService;
_mapper = mapper;
_taskRepository = taskRepository;
+ _platFormRepository = platFormRepository;
}
public Task Execute(IJobExecutionContext context)
@@ -108,35 +110,49 @@
}
}
}
+
+ Platform platform = _platFormRepository.QueryFirst(x => x.PLCCode == conveyorLine.DeviceCode && x.PlatCode == childDeviceCode && x.Status == "Active");
+ if (platform != null)
+ {
+ if (command.InteractiveSignal != 2)
+ {
+ MethodInfo? method = GetType().GetMethod(platform.ExecutionMethod);
+ if (method != null)
+ {
+ command.InteractiveSignal = commandWrite.WriteInteractiveSignal;
+ int count = string.IsNullOrEmpty(platform.Location) ? 0 + 1 : platform.Location.Split(',').Count() + 1;
+ method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, count });
+ }
+ }
+ else
+ {
+ if (!string.IsNullOrEmpty(platform.Location))
+ {
+ var strings = platform.Location.Split(',').ToList();
+ foreach (var ite in strings)
+ {
+ int index = strings.FindIndex(p => p == ite);
+ ConveyorLineTaskCommand command1 = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(ite);
+ if (command1.InteractiveSignal != 2)
+ {
+ MethodInfo? method = GetType().GetMethod(platform.ExecutionMethod);
+ if (method != null)
+ {
+ command.InteractiveSignal = commandWrite.WriteInteractiveSignal;
+ int count = strings.Count - index;
+ method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, count });
+ }
+ }
+ }
+ }
+ }
+ }
}
//});
+
//tasks.Add(task);
+ Task.WaitAll(tasks.ToArray());
}
- //for (int i = 0; i < _deviceCodes1.Count; i++)
- //{
- // ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(_deviceCodes1[i]);
- // if (command.InteractiveSignal != 2)
- // {
- // EmptyTrayReturn(conveyorLine, command, _deviceCodes1[_deviceCodes1.Count - 1], i);
- // }
- //}
- //for (int i = 0; i < _deviceCodes2.Count; i++)
- //{
- // ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(_deviceCodes2[i]);
- // if (command.InteractiveSignal != 2)
- // {
- // EmptyTrayReturn(conveyorLine, command, _deviceCodes2[_deviceCodes1.Count - 1], i);
- // }
- //}
- foreach (var item in HCTrayCode)
- {
- ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(item);
- if (command.InteractiveSignal != 2)
- {
- ChuanhuaOutbound(conveyorLine, command, HCTrayCode[0], 0);
- }
- }
- Task.WaitAll(tasks.ToArray());
}
}
catch (Exception ex)
@@ -148,6 +164,7 @@
//WriteDebug("CommonConveyorLineJob", "test");
//Console.Out.WriteLine(DateTime.Now);
}
+
return Task.CompletedTask;
}
@@ -160,204 +177,139 @@
/// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
public void RequestInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
{
- var taskNew = _taskService.QueryCraneConveyorLineTask(command.Barcode.ObjToInt(), childDeviceCode);
- var Taskout = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
- if (Taskout != null)
+ // 鑾峰彇涓嬩竴涓换鍔�
+ var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode);
+ //var taskOut = _taskService.QueryNextConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
+ //return;
+ // 澶勭悊鍑哄簱浠诲姟
+ HandleTaskOut(conveyorLine, command, childDeviceCode, ProtocalDetailValue, task);
+
+ // 濡傛灉娌℃湁鍑哄簱浠诲姟锛屽鐞嗘柊浠诲姟
+ if (task == null)
{
- // 绌烘墭鐩樹换鍔�
- if (Taskout.TaskType == (int)TaskOutboundTypeEnum.OutTray)
- {
- if (Taskout.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
- {
- ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(Taskout);
- taskCommand.InteractiveSignal = command.InteractiveSignal;
- if (command.Barcode == "")
- {
- taskCommand.TargetAddress = 1092;
- }
- conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
- ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-
- _taskService.UpdateTaskStatusToNext(Taskout);
- }
- else if (Taskout.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
- {
- if (command.Barcode == "")
- {
- ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(Taskout);
- taskCommand.InteractiveSignal = command.InteractiveSignal;
- taskCommand.TargetAddress = 1092;
- conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
- ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
- _taskService.UpdateTaskStatusToNext(Taskout);
- }
- }
- }
- else if (Taskout.TaskType == (int)TaskOutboundTypeEnum.Outbound)
- {
- if (Taskout.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting)
- {
- ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(Taskout);
- taskCommand.InteractiveSignal = command.InteractiveSignal;
- if (command.Barcode == "")
- {
- //todo 娌℃湁鏄庣‘寮傚父鍙o紝閫佸埌鐩爣宸烽亾鐨凬G鍙�
- //taskCommand.TargetAddress = 1092;
- }
- conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
- ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-
- _taskService.UpdateTaskStatusToNext(Taskout);
- }
- else if (Taskout.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
- {
- if (command.Barcode == "")
- {
- ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(Taskout);
- taskCommand.InteractiveSignal = command.InteractiveSignal;
- // todo 閫佸埌鐩爣宸烽亾鐨凬G鍙�
- taskCommand.TargetAddress = 1092;
- conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
- ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
- _taskService.UpdateTaskStatusToNext(Taskout);
- }
- else
- {
- // todo 璋冪敤WMS浠诲姟瀹屾垚鎺ュ彛
- var x = new { taskNum = Taskout.TaskNum };
- var result = HttpHelper.GetAsync("http:127.0.0.1:8098/api/Task/CompleteTaskAsync", x.ToJsonString()).Result;
- WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
- if (content.Status)
- {
- ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
- _taskService.UpdateTaskStatusToNext(Taskout);
- }
- }
- }
- }
+ HandleNewTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
}
- if (taskNew == null)
- {
- if (_taskService.RequestWMSTask(command.Barcode, childDeviceCode).Status)
- {
- Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
- if (task != null)
- {
- ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(task);
- taskCommand.InteractiveSignal = command.InteractiveSignal;
- conveyorLine.SendCommand(taskCommand, childDeviceCode);
- ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
+ #region 鑰佺増鏈�
- _taskService.UpdateTaskStatusToNext(task);
- }
- }
- }
- }
+ //var taskNew = _taskService.QueryCraneConveyorLineTask(command.Barcode.ObjToInt(), childDeviceCode);
+ //var Taskout = _taskService.QueryNextConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
+ //if (Taskout != null)
+ //{
+ // // 绌烘墭鐩樹换鍔�
+ // if (Taskout.TaskType == (int)TaskOutboundTypeEnum.OutTray)
+ // {
+ // ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(Taskout);
+ // taskCommand.InteractiveSignal = command.InteractiveSignal;
+ // if (command.Barcode == "")
+ // {
+ // var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == Taskout.TargetAddress).Capacity;
+ // taskCommand.TargetAddress = NGAddress;
+ // }
+ // conveyorLine.SendCommand(taskCommand, childDeviceCode);
- //
- /// <summary>
- /// 绌烘墭鐩樺洖娴�
- /// </summary>
- /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
- /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
- /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
- /// <param name="index">璇诲彇鐨勭涓�涓綅缃�</param>
- public void EmptyTrayReturn(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index)
- {
- var tasks = _taskRepository.QueryData(x => (x.TaskState == (int)TaskOutStatusEnum.OutNew || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) && x.TaskType == (int)TaskOutboundTypeEnum.OutTray);
- if (tasks.Count <= index)
- {
- WMSTaskDTO taskDTO = new WMSTaskDTO()
- {
- TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
- Grade = 1,
- PalletCode = DateTime.Now.ToString("yyyyMMddHHmmss"),
- RoadWay = "CHSC01",
- SourceAddress = "001-001-001",
- TargetAddress = childDeviceCode,
- TaskState = (int)TaskOutStatusEnum.OutNew,
- Id = 0,
- TaskType = (int)TaskOutboundTypeEnum.OutTray
- };
+ // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
- #region 鐪熷疄鏁版嵁
+ // _taskService.UpdateTaskStatusToNext(Taskout);
+ // }
+ // else if (Taskout.TaskType == (int)TaskOutboundTypeEnum.Outbound)
+ // {
+ // ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(Taskout);
+ // taskCommand.InteractiveSignal = command.InteractiveSignal;
+ // if (Taskout.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
+ // {
+ // if (command.Barcode == "")
+ // {
+ // var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == Taskout.TargetAddress).Capacity;
+ // taskCommand.TargetAddress = NGAddress;
+ // }
+ // conveyorLine.SendCommand(taskCommand, childDeviceCode);
- // TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧�
- //RequestTaskDto request = new RequestTaskDto()
- //{
- // Position = sourceAddress,
- // PalletCode = palletCode,
- //};
+ // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
- //// 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
- //var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", request.ToJsonString()).Result;
+ // _taskService.UpdateTaskStatusToNext(Taskout);
+ // }
+ // else if (Taskout.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
+ // {
+ // if (command.Barcode == "")
+ // {
+ // var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == Taskout.TargetAddress).Capacity;
+ // taskCommand.TargetAddress = NGAddress;
- //// 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
- //WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+ // conveyorLine.SendCommand(taskCommand, childDeviceCode);
- //// 妫�鏌ョ姸鎬佸苟杩斿洖
- ////if (!content.Status)
- //// return content;
+ // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
+ // _taskService.UpdateTaskStatusToNext(Taskout);
+ // }
+ // else
+ // {
+ // // todo 璋冪敤WMS浠诲姟瀹屾垚鎺ュ彛
+ // var x = new { taskNum = Taskout.TaskNum };
+ // var result = HttpHelper.GetAsync("http:127.0.0.1:8098/api/Task/CompleteTaskAsync", x.ToJsonString()).Result;
+ // WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+ // if (content.Status)
+ // {
+ // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
+ // _taskService.UpdateTaskStatusToNext(Taskout);
+ // }
+ // }
+ // }
+ // }
+ //}
+ //if (taskNew == null)
+ //{
+ // // 鍖栨垚->闄堝寲绌烘墭鐩樺洖娴�
+ // if (conveyorLine.DeviceCode == "1003" && childDeviceCode == "1016")
+ // {
+ // //TODO 璋冪敤WMS鍒涘缓鍖栨垚->闄堝寲绌烘墭鐩樺洖娴�
+ // WMSTaskDTO taskDTO = new WMSTaskDTO()
+ // {
+ // TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
+ // Grade = 1,
+ // PalletCode = command.Barcode,
+ // RoadWay = "CHSC01",
+ // SourceAddress = childDeviceCode,
+ // TargetAddress = "CHSC01",
+ // TaskState = (int)TaskInStatusEnum.InNew,
+ // Id = 0,
+ // TaskType = (int)TaskInboundTypeEnum.InTray,
+ // };
+ // WebResponseContent content = CreateAndSendTask(taskDTO);
+ // if (content.Status)
+ // {
+ // Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
+ // if (task != null)
+ // {
+ // ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(task);
+ // taskCommand.InteractiveSignal = command.InteractiveSignal;
+ // conveyorLine.SendCommand(taskCommand, childDeviceCode);
- //// 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
- //WMSTaskDTO task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
+ // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
- #endregion
+ // _taskService.UpdateTaskStatusToNext(task);
+ // }
+ // }
+ // }
+ // else
+ // {
+ // if (_taskService.RequestWMSTask(command.Barcode, childDeviceCode).Status)
+ // {
+ // Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
+ // if (task != null)
+ // {
+ // ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(task);
+ // taskCommand.InteractiveSignal = command.InteractiveSignal;
+ // conveyorLine.SendCommand(taskCommand, childDeviceCode);
- var content = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
- if (content.Status)
- {
- Console.WriteLine("绌烘墭鐩樺懠鍙垚鍔�");
- }
- }
- }
+ // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
- /// <summary>
- /// 闄堝寲鍑哄簱
- /// </summary>
- /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
- /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
- /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
- /// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
- public void ChuanhuaOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index)
- {
- var tasks = _taskRepository.QueryData(x => (x.TaskState == (int)TaskOutStatusEnum.OutNew || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) && x.TaskType == (int)TaskOutboundTypeEnum.Outbound);
- if (tasks.Count <= index)
- {
- WMSTaskDTO taskDTO = new WMSTaskDTO()
- {
- TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
- Grade = 1,
- PalletCode = DateTime.Now.ToString("MMddHHmmss"),
- RoadWay = "CHSC01",
- SourceAddress = "001-001-001",
- TargetAddress = childDeviceCode,
- TaskState = (int)TaskOutStatusEnum.OutNew,
- Id = 0,
- TaskType = (int)TaskOutboundTypeEnum.Outbound,
- };
+ // _taskService.UpdateTaskStatusToNext(task);
+ // }
+ // }
+ // }
+ //}
- var content = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
- if (content.Status)
- {
- Console.WriteLine("鍑哄簱鍛煎彨鎴愬姛");
- }
- }
- else
- {
- Dt_Task task = tasks[index];
- if (task != null)
- {
- ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(task);
- taskCommand.InteractiveSignal = command.InteractiveSignal;
- conveyorLine.SendCommand(taskCommand, childDeviceCode);
- }
- }
+ #endregion
}
/// <summary>
@@ -397,6 +349,7 @@
//conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, 0, childDeviceCode);
WebResponseContent content = _taskService.UpdateTaskStatusToNext(task);
+
Console.Out.WriteLine(content.Serialize());
}
}
@@ -407,7 +360,8 @@
/// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
/// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
/// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
- public void RequestOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode)
+ /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
+ public void RequestOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
{
Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
if (task != null)
@@ -416,6 +370,7 @@
taskCommand.InteractiveSignal = command.InteractiveSignal;
conveyorLine.SendCommand(taskCommand, childDeviceCode);
+ ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
_taskService.UpdateTaskStatusToNext(task);
}
}
@@ -447,14 +402,99 @@
/// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
/// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
/// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
- public void ConveyorLineOutFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode)
+ public void ConveyorLineOutFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
{
Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
if (task != null)
{
- conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, 0, childDeviceCode);
+ ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(task);
+ taskCommand.InteractiveSignal = command.InteractiveSignal;
+ if (task.PalletCode != command.Barcode)
+ {
+ var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == task.TargetAddress).Capacity;
+ taskCommand.TargetAddress = NGAddress;
+ conveyorLine.SendCommand(taskCommand, childDeviceCode);
+ }
+ else
+ {
+ taskCommand.TargetAddress = 0;
+ }
+ // TODO璋冪敤浠诲姟瀹屾垚鎵ц浠诲姟瀹屾垚
+ ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
WebResponseContent content = _taskService.UpdateTaskStatusToNext(task);
- Console.Out.WriteLine(content.Serialize());
+ }
+ }
+
+ /// <summary>
+ /// 鍒涘缓浠诲姟骞跺彂閫佽姹�
+ /// </summary>
+ private WebResponseContent CreateAndSendTask(WMSTaskDTO taskDTO)
+ {
+ var content = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
+ if (content.Status)
+ {
+ Console.WriteLine($"{taskDTO.TaskType}鍛煎彨鎴愬姛");
+ }
+ return content;
+ }
+
+ /// <summary>
+ /// 闄堝寲绌烘墭鐩樺嚭搴�
+ /// </summary>
+ /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
+ /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
+ /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
+ /// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
+ public void EmptyTrayReturn(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index)
+ {
+ CheckAndCreateTask((int)TaskOutboundTypeEnum.OutTray, childDeviceCode, index, "CHSC01", "001-001-001");
+ }
+
+ /// 闈欑疆绌烘墭鐩樺嚭搴�
+ /// </summary>
+ /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
+ /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
+ /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
+ /// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
+ public void EmptyTrayOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index)
+ {
+ CheckAndCreateTask((int)TaskOutboundTypeEnum.OutTray, childDeviceCode, index, "JZSC01", "002-020-001");
+ }
+
+ /// <summary>
+ /// 闄堝寲鍑哄簱(瀹炵洏)
+ /// </summary>
+ /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
+ /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
+ /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
+ /// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
+ public void ChuanhuaOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index)
+ {
+ CheckAndCreateTask((int)TaskOutboundTypeEnum.Outbound, childDeviceCode, index, "CHSC01", "001-001-001");
+ }
+
+ /// <summary>
+ /// 妫�鏌ヤ换鍔″苟鍒涘缓鏂颁换鍔�
+ /// </summary>
+ private void CheckAndCreateTask(int taskType, string childDeviceCode, int index, string roadWay, string sourceAddress)
+ {
+ var tasks = _taskRepository.QueryData(x => x.TaskType == taskType && x.TargetAddress == childDeviceCode);
+ if (tasks.Count < index)
+ {
+ var taskDTO = new WMSTaskDTO()
+ {
+ TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
+ Grade = 1,
+ PalletCode = DateTime.Now.ToString("yyyyMMddHHmmss"),
+ RoadWay = roadWay,
+ SourceAddress = sourceAddress,
+ TargetAddress = childDeviceCode,
+ TaskState = (int)TaskOutStatusEnum.OutNew,
+ Id = 0,
+ TaskType = taskType
+ };
+
+ CreateAndSendTask(taskDTO);
}
}
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
new file mode 100644
index 0000000..f7f6183
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
@@ -0,0 +1,183 @@
+锘縰sing Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_Tasks.ConveyorLineJob;
+using HslCommunication;
+using OfficeOpenXml.ConditionalFormatting;
+
+namespace WIDESEAWCS_Tasks
+{
+ partial class CommonConveyorLineJob
+ {
+ /// <summary>
+ /// 澶勭悊鍑哄簱浠诲姟
+ /// </summary>
+ private void HandleTaskOut(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue, Dt_Task taskOut)
+ {
+ // 濡傛灉娌℃湁浠诲姟锛岀洿鎺ヨ繑鍥�
+ if (taskOut == null) return;
+
+ // 鏄犲皠浠诲姟鍛戒护
+ var taskCommand = MapTaskCommand(taskOut, command);
+
+ // 鏍规嵁涓嶅悓鐨勪换鍔$被鍨嬪拰鐘舵�佹墽琛屼笉鍚岀殑閫昏緫
+ bool isOutTray = taskOut.TaskType == (int)TaskOutboundTypeEnum.OutTray;
+ bool isOutboundAndOutFinish = taskOut.TaskType == (int)TaskOutboundTypeEnum.Outbound && taskOut.TaskState == (int)TaskOutStatusEnum.SC_OutFinish;
+ bool isOutboundAndLineOutExecuting = taskOut.TaskType == (int)TaskOutboundTypeEnum.Outbound && taskOut.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting;
+
+ if (isOutTray || isOutboundAndOutFinish || isOutboundAndLineOutExecuting)
+ {
+ // 鍙戦�佸懡浠ゅ埌杈撻�佺嚎
+ conveyorLine.SendCommand(taskCommand, childDeviceCode);
+ // 鏍囪鍙戦�佸畬鎴�
+ ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
+ // 鏇存柊浠诲姟鐘舵��
+ _taskService.UpdateTaskStatusToNext(taskOut);
+ }
+ else if (taskOut.TaskType == (int)TaskOutboundTypeEnum.Outbound && taskOut.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
+ {
+ // 瀹屾垚WMS浠诲姟
+ CompleteWmsTask(taskOut, command, conveyorLine, childDeviceCode, ProtocalDetailValue);
+ }
+ }
+
+ /// <summary>
+ /// 澶勭悊鏂颁换鍔�
+ /// </summary>
+ private void HandleNewTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
+ {
+ // 鐗瑰畾鏉′欢涓嬪垱寤哄苟鍙戦�佺┖鎵樼洏鍏ュ簱浠诲姟
+ if (conveyorLine.DeviceCode == "1003" && childDeviceCode == "1016")
+ {
+ CreateAndSendEmptyTrayTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
+ }
+ else if (conveyorLine.DeviceCode == "1001" && childDeviceCode == "1088")
+ {
+ // 璇锋眰WMS浠诲姟
+ RequestWmsTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
+ }
+ else if ((conveyorLine.DeviceCode == "1001" && childDeviceCode == "1073") || (conveyorLine.DeviceCode == "1003" && childDeviceCode == "1002"))
+ {
+ //TODO 鍙戦�佺洿鎺ュ幓NG鍙d换鍔�
+ }
+ }
+
+ /// <summary>
+ /// 鏄犲皠浠诲姟鍛戒护
+ /// </summary>
+ private ConveyorLineTaskCommand MapTaskCommand(Dt_Task task, ConveyorLineTaskCommand command)
+ {
+ // 浣跨敤mapper鏄犲皠浠诲姟鍛戒护
+ var comm = _mapper.Map<ConveyorLineTaskCommand>(task);
+ comm.InteractiveSignal = command.InteractiveSignal;
+ return comm;
+ }
+
+ /// <summary>
+ /// 瀹屾垚WMS浠诲姟
+ /// </summary>
+ private void CompleteWmsTask(Dt_Task taskOut, ConveyorLineTaskCommand command, CommonConveyorLine conveyorLine, string childDeviceCode, int ProtocalDetailValue)
+ {
+ // 濡傛灉娌℃湁鏉$爜淇℃伅锛屽垯璁剧疆鐩爣鍦板潃涓篘G鍦板潃
+ if (command.Barcode == "NoRead")
+ {
+ var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == taskOut.TargetAddress).Capacity;
+ taskOut.TargetAddress = NGAddress.ToString();
+ }
+
+ // TODO璋冪敤WMS浠诲姟瀹屾垚鎺ュ彛
+ var result = HttpHelper.GetAsync("http://127.0.0.1:8098/api/Task/CompleteTaskAsync", new { taskNum = taskOut.TaskNum }.ToJsonString()).Result;
+ WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+ if (content.Status)
+ {
+ // 鏍囪鍙戦�佸畬鎴�
+ ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
+ // 鏇存柊浠诲姟鐘舵��
+ _taskService.UpdateTaskStatusToNext(taskOut);
+ }
+ }
+
+ /// <summary>
+ /// 鍒涘缓骞跺彂閫佺┖鎵樼洏浠诲姟
+ /// </summary>
+ private void CreateAndSendEmptyTrayTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
+ {
+ if (command.Barcode != "NoRead")
+ {
+ // 鍒涘缓绌烘墭鐩樹换鍔TO
+ WMSTaskDTO taskDTO = CreateEmptyTrayTaskDto(command.Barcode, childDeviceCode);
+ // 鍒涘缓骞跺彂閫佷换鍔�
+ WebResponseContent content = CreateAndSendTask(taskDTO);
+ if (content.Status)
+ {
+ // 鏌ヨ浠诲姟
+ Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
+ if (task != null)
+ {
+ // 鏄犲皠浠诲姟鍛戒护
+ ConveyorLineTaskCommand taskCommand = MapTaskCommand(task, command);
+ // 鍙戦�佸懡浠ゅ埌杈撻�佺嚎
+ conveyorLine.SendCommand(taskCommand, childDeviceCode);
+ // 鏍囪鍙戦�佸畬鎴�
+ ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
+ // 鏇存柊浠诲姟鐘舵��
+ _taskService.UpdateTaskStatusToNext(task);
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// 鍒涘缓绌烘墭鐩樹换鍔TO
+ /// </summary>
+ private WMSTaskDTO CreateEmptyTrayTaskDto(string barcode, string childDeviceCode)
+ {
+ // 鍒涘缓骞惰繑鍥炵┖鎵樼洏浠诲姟DTO
+ return new WMSTaskDTO
+ {
+ TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
+ Grade = 1,
+ PalletCode = barcode,
+ RoadWay = "CHSC01",
+ SourceAddress = childDeviceCode,
+ TargetAddress = "CHSC01",
+ TaskState = (int)TaskInStatusEnum.InNew,
+ Id = 0,
+ TaskType = (int)TaskInboundTypeEnum.InTray,
+ };
+ }
+
+ /// <summary>
+ /// 璇锋眰WMS浠诲姟
+ /// </summary>
+ private void RequestWmsTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
+ {
+ // 璇锋眰WMS浠诲姟
+ if (_taskService.RequestWMSTask(command.Barcode, childDeviceCode).Status)
+ {
+ // 鏌ヨ浠诲姟
+ Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
+ if (task != null)
+ {
+ // 鏄犲皠浠诲姟鍛戒护
+ ConveyorLineTaskCommand taskCommand = MapTaskCommand(task, command);
+ // 鍙戦�佸懡浠ゅ埌杈撻�佺嚎
+ conveyorLine.SendCommand(taskCommand, childDeviceCode);
+ // 鏍囪鍙戦�佸畬鎴�
+ ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
+ // 鏇存柊浠诲姟鐘舵��
+ _taskService.UpdateTaskStatusToNext(task);
+ }
+ }
+ }
+ }
+}
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
index a28ccda..0335a14 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -157,6 +157,10 @@
task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
}
}
+ else if (task == null)
+ {
+ task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
+ }
return task;
}
@@ -177,7 +181,7 @@
CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
//if (conveyorLine.IsOccupied(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤
//{
- return task;
+ return task;
//}
}
else
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/Dt_EquipmentProcess.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/Dt_EquipmentProcess.cs
index 294ab7d..58c02df 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/Dt_EquipmentProcess.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/Dt_EquipmentProcess.cs
@@ -2,6 +2,7 @@
using SqlSugar;
using System;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -59,4 +60,71 @@
[SugarColumn(IsNullable = false, Length = int.MaxValue, ColumnDescription = "宸ヨ壓鍙傛暟鍊�")]
public string ProcessValue { get; set; }
}
+
+ /// <summary>
+ /// 琛ㄧず宸ヨ壓璺嚎涓婅澶囧弬鏁颁俊鎭殑妯″瀷銆�
+ /// </summary>
+ public class EquipmentParameterInfo
+ {
+ /// <summary>
+ /// 鍙傛暟缂栫爜銆�
+ /// </summary>
+ [Required(ErrorMessage = "鍙傛暟缂栫爜鏄繀濉」銆�")]
+ [StringLength(50, ErrorMessage = "鍙傛暟缂栫爜闀垮害涓嶈兘瓒呰繃50涓瓧绗︺��")]
+ public string ParameterCode { get; set; }
+
+ /// <summary>
+ /// 鍙傛暟绫诲瀷銆�
+ /// </summary>
+ [Required(ErrorMessage = "鍙傛暟绫诲瀷鏄繀濉」銆�")]
+ [StringLength(50, ErrorMessage = "鍙傛暟绫诲瀷闀垮害涓嶈兘瓒呰繃50涓瓧绗︺��")]
+ public string ParameterType { get; set; }
+
+ /// <summary>
+ /// 鎺ㄨ崘鍊笺��
+ /// </summary>
+ [StringLength(50, ErrorMessage = "鎺ㄨ崘鍊奸暱搴︿笉鑳借秴杩�50涓瓧绗︺��")]
+ public string TargetValue { get; set; }
+
+ /// <summary>
+ /// 鍗曚綅銆�
+ /// </summary>
+ public string UOMCode { get; set; }
+
+ /// <summary>
+ /// 鎺у埗涓婇檺鍊笺��
+ /// </summary>
+ [StringLength(50, ErrorMessage = "鎺у埗涓婇檺鍊奸暱搴︿笉鑳借秴杩�50涓瓧绗︺��")]
+ public string UpperControlLimit { get; set; }
+
+ /// <summary>
+ /// 鎺у埗涓嬮檺鍊笺��
+ /// </summary>
+ [StringLength(50, ErrorMessage = "鎺у埗涓嬮檺鍊奸暱搴︿笉鑳借秴杩�50涓瓧绗︺��")]
+ public string LowerControlLimit { get; set; }
+
+ /// <summary>
+ /// 瑙勬牸涓婇檺鍊笺��
+ /// </summary>
+ [StringLength(50, ErrorMessage = "瑙勬牸涓婇檺鍊奸暱搴︿笉鑳借秴杩�50涓瓧绗︺��")]
+ public string UpperSpecificationsLimit { get; set; }
+
+ /// <summary>
+ /// 瑙勬牸涓嬮檺鍊笺��
+ /// </summary>
+ [StringLength(50, ErrorMessage = "瑙勬牸涓嬮檺鍊奸暱搴︿笉鑳借秴杩�50涓瓧绗︺��")]
+ public string LowerSpecificationsLimit { get; set; }
+
+ /// <summary>
+ /// 鍙傛暟鎻忚堪銆�
+ /// </summary>
+ public string Description { get; set; }
+
+ /// <summary>
+ /// 宸ヨ壓璺嚎涓婂綋鍓嶈澶囧弬鏁颁俊鎭槸鍚﹀彲鐢ㄣ��
+ /// TRUE 琛ㄧず鍙敤锛孎ALSE 琛ㄧず涓嶅彲鐢ㄣ��
+ /// </summary>
+ [Required(ErrorMessage = "璁惧鍙傛暟淇℃伅鏄惁鍙敤鏄繀濉」銆�")]
+ public string EquipmentAvailabilityFlag { get; set; }
+ }
}
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResponeAgingInputDto.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResponeAgingInputDto.cs
new file mode 100644
index 0000000..f209253
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResponeAgingInputDto.cs
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_DTO.MOM
+{
+ public class ResponeAgingInputDto : BasicResult
+ {
+ /// <summary>
+ /// 鏂欐灞炴�э紝鐢ㄤ簬鏍囪瘑鏂欐鐨勫敮涓�灞炴�с��
+ /// </summary>
+ public string TrayBarcodeProperty { get; set; }
+
+ /// <summary>
+ /// 宸ュ崟缂栫爜鎴栦骇鍝佸瀷鍙凤紝鐢ㄤ簬鍏宠仈鍏蜂綋鐨勭敓浜т换鍔°��
+ /// </summary>
+ public string BindCode { get; set; }
+
+ /// <summary>
+ /// 鍏宠仈宸ュ簭杩斿洖鏃堕棿锛岃褰曟敞娑叉垨闈欑疆鏃堕暱銆�
+ /// </summary>
+ public string LinedProcessFeedbackTime { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/MOM/AgingInOrOutInput/IAgingInOrOutInputService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/MOM/AgingInOrOutInput/IAgingInOrOutInputService.cs
index 277a814..1e87d41 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/MOM/AgingInOrOutInput/IAgingInOrOutInputService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/MOM/AgingInOrOutInput/IAgingInOrOutInputService.cs
@@ -10,12 +10,12 @@
/// </summary>
/// <param name="input">鍏ュ簱鏁版嵁</param>
/// <returns></returns>
- Task<dynamic> GetOCVInputAsync(AgingInputDto input);
+ Task<WebResponseContent> GetOCVInputAsync(AgingInputDto input);
/// <summary>
/// 闈欑疆\闄堝寲鍑哄簱锛堟暣鎵樼洏锛�
/// </summary>
/// <param name="input">鍑哄簱鏁版嵁</param>
/// <returns></returns>
- Task<dynamic> GetOCVOutputAsync(AgingOutputDto input);
+ Task<WebResponseContent> GetOCVOutputAsync(AgingOutputDto input);
}
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail.cs
index fcedddb..d55b38a 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtBoxingInfoDetail.cs
@@ -20,7 +20,7 @@
public int BoxingInfoId { get; set; }
/// <summary>
- /// 鐗╂枡缂栫爜
+ /// 鐗╂枡缂栫爜 缁戝畾浠g爜
/// </summary>
[Required]
[SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗╂枡缂栧彿")]
@@ -34,7 +34,7 @@
public string MaterielName { get; set; }
/// <summary>
- /// 鍗曟嵁缂栧彿
+ /// 鍗曟嵁缂栧彿 / 閫氶亾
/// </summary>
[Required]
[SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍗曟嵁缂栧彿")]
@@ -48,7 +48,7 @@
public string BatchNo { get; set; }
/// <summary>
- /// 搴忓垪鍙�
+ /// 搴忓垪鍙�(鐢佃姱)
/// </summary>
[Required]
[SugarColumn(IsNullable = false, Length = 100, ColumnDescription = "搴忓垪鍙�")]
@@ -68,14 +68,14 @@
public decimal OutboundQuantity { get; set; }
/// <summary>
- /// 缁勭洏鐘舵��
+ /// 缁勭洏鐘舵�� 鐢佃姱鐘舵��
/// </summary>
[Required]
[SugarColumn(IsNullable = false, ColumnDescription = "缁勭洏鐘舵��")]
public int Status { get; set; }
/// <summary>
- /// 澶囨敞
+ /// 澶囨敞 // 鏂欐灞炴�son
/// </summary>
[SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
public string Remark { get; set; }
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs
index d790bb4..9fab037 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs
@@ -36,11 +36,18 @@
public bool IsFull { get; set; }
/// <summary>
- /// 澶囨敞
+ /// 澶囨敞 (闈欏埗)
/// </summary>
[SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
public string Remark { get; set; }
+
+ /// <summary>
+ /// 鍖哄煙缂栫爜
+ /// </summary>
+ [SugarColumn(IsNullable = true, ColumnDescription = "鍖哄煙缂栫爜")]
+ public string AreaCode { get; set; }
+
/// <summary>
/// 搴撳瓨鏄庣粏
/// </summary>
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs
index 098b029..36d5fa7 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs
@@ -1,7 +1,9 @@
锘縰sing LogLibrary.Log;
using Masuit.Tools;
using WIDESEA_Common;
+using WIDESEA_Core;
using WIDESEA_DTO;
+using WIDESEA_DTO.MOM;
using WIDESEA_IStoragIntegrationServices;
namespace WIDESEA_StoragIntegrationServices;
@@ -15,8 +17,9 @@
/// </summary>
/// <param name="input">鍏ュ簱鏁版嵁</param>
/// <returns></returns>
- public async Task<dynamic> GetOCVInputAsync(AgingInputDto input)
+ public async Task<WebResponseContent> GetOCVInputAsync(AgingInputDto input)
{
+ WebResponseContent content = new WebResponseContent();
try
{
input.SessionId = Guid.NewGuid().ToString();
@@ -26,10 +29,7 @@
input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ");
var inputJson = input.ToDictionary();
var x = await HttpsClient.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/AgingInput", inputJson);
- if (x != null)
- {
-
- }
+ content.OK(data: x);
LogFactory.GetLog("闈欑疆闄堝寲鍏ュ簱锛堟暣鎵樼洏锛�").Info(true, $"\r\r--------------------------------------");
LogFactory.GetLog("闈欑疆闄堝寲鍏ュ簱锛堟暣鎵樼洏锛�").Info(true, x);
@@ -40,7 +40,7 @@
LogFactory.GetLog("闈欑疆闄堝寲鍏ュ簱锛堟暣鎵樼洏锛�").Error(true, $"\r\r--------------------------------------");
LogFactory.GetLog("闈欑疆闄堝寲鍏ュ簱锛堟暣鎵樼洏锛�").Error(true, err.StackTrace);
}
- return Task.FromResult<dynamic>(null);
+ return content;
}
/// <summary>
@@ -48,8 +48,9 @@
/// </summary>
/// <param name="input">鍑哄簱鏁版嵁</param>
/// <returns></returns>
- public async Task<dynamic> GetOCVOutputAsync(AgingOutputDto input)
+ public async Task<WebResponseContent> GetOCVOutputAsync(AgingOutputDto input)
{
+ WebResponseContent content = new WebResponseContent();
try
{
input.SessionId = Guid.NewGuid().ToString();
@@ -61,13 +62,15 @@
var x = await HttpsClient.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/AgingOutput", inputJson);
LogFactory.GetLog("闈欑疆闄堝寲鍑哄簱锛堟暣鎵樼洏锛�").Info(true, $"\r\r--------------------------------------");
LogFactory.GetLog("闈欑疆闄堝寲鍑哄簱锛堟暣鎵樼洏锛�").Info(true, x);
+ content.OK();
}
catch (Exception err)
{
Console.WriteLine(err.Message.ToString());
LogFactory.GetLog("闈欑疆/闄堝寲鍑哄簱锛堟暣鎵樼洏锛�").Error(true, $"\r\r--------------------------------------");
LogFactory.GetLog("闈欑疆/闄堝寲鍑哄簱锛堟暣鎵樼洏)").Error(true, err.StackTrace);
+ content.Error(err.Message);
}
- return Task.FromResult<dynamic>(null);
+ return content;
}
}
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/CellState/CellStateService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/CellState/CellStateService.cs
index 3601449..11e418b 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/CellState/CellStateService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/CellState/CellStateService.cs
@@ -94,34 +94,36 @@
input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ");
var inputJson = input.ToDictionary();
var x = await HttpsClient.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/TrayCellsStatus", inputJson);
- if (x != null)
- {
- ResultTrayCellsStatus result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(x);
- DtBoxingInfo boxingInfo = new DtBoxingInfo()
- {
- IsFull = true,
- PalletCode = result.TrayBarcode,
- };
- var details = new List<DtBoxingInfoDetail>();
- foreach (var item in result.SerialNos)
- {
- DtBoxingInfoDetail detail = new DtBoxingInfoDetail()
- {
- SerialNumber = item.SerialNo,
- OrderNo = item.PositionNo.ToString(),
- Status = item.SerialNoStatus,
- Remark = result.TrayBarcodePropertys.ToJsonString(),
- MaterielCode = result.BindCode,
- };
- details.Add(detail);
- }
- boxingInfo.BoxingInfoDetails = details;
- var abc = await _boxingInfoService.AddBoxingInfoAsync(boxingInfo);
- if (abc.Status)
- content.OK("缁勭洏鎴愬姛", result);
- else
- content.Error("缁勭洏澶辫触");
- }
+ //if (x != null)
+ //{
+ // // 鍙嶅簭鍒楀寲ResultTrayCellsStatus瀵硅薄
+ // ResultTrayCellsStatus result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(x);
+
+ // // 鍒涘缓DtBoxingInfo瀵硅薄
+ // DtBoxingInfo boxingInfo = new DtBoxingInfo
+ // {
+ // IsFull = true,
+ // PalletCode = result.TrayBarcode,
+ // };
+
+ // // 浣跨敤LINQ鍒涘缓DtBoxingInfoDetail瀵硅薄鍒楄〃
+ // var details = result.SerialNos.Select(item => new DtBoxingInfoDetail
+ // {
+ // SerialNumber = item.SerialNo,
+ // OrderNo = item.PositionNo.ToString(),
+ // Status = item.SerialNoStatus,
+ // Remark = result.TrayBarcodePropertys.ToJsonString(),
+ // MaterielCode = result.BindCode,
+ // }).ToList();
+
+ // // 璧嬪�糄tBoxingInfoDetails
+ // boxingInfo.BoxingInfoDetails = details;
+ // var abc = await _boxingInfoService.AddBoxingInfoAsync(boxingInfo);
+ // if (abc.Status)
+ // content.OK("缁勭洏鎴愬姛", result);
+ // else
+ // content.Error("缁勭洏澶辫触");
+ //}
LogFactory.GetLog("鏁寸洏鐢佃姱灞炴�ц幏鍙�").Info(true, $"\r\r--------------------------------------");
LogFactory.GetLog("鏁寸洏鐢佃姱灞炴�ц幏鍙�").Info(true, x);
}
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
index bd89329..8149a7f 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -1,8 +1,11 @@
锘縰sing Mapster;
+using Masuit.Tools;
using WIDESEA_DTO.MOM;
using WIDESEA_DTO.WMS;
+using WIDESEA_IStorageBasicRepository;
using WIDESEA_IStoragIntegrationServices;
using WIDESEA_StorageBasicRepository;
+using WIDESEA_StoragIntegrationServices;
namespace WIDESEA_StorageOutTaskServices;
@@ -12,6 +15,7 @@
private readonly IUnitOfWorkManage _unitOfWorkManage;
private readonly IDt_OutOrderRepository _outOrderRepository;
private readonly IStockInfoRepository _stockInfoRepository;
+ private readonly IStockInfoDetailRepository _stockInfoDetailRepository;
private readonly IDt_Task_HtyRepository _task_HtyRepository;
private readonly IDt_OutOrderAndStockRepository _outOrderAndStockRepository;
private readonly IDt_OutOrderAndStock_HtyRepository _outOrderAndStock_HtyRepository;
@@ -22,10 +26,11 @@
private readonly IPointStackerRelationRepository _pointStackerRelationRepository;
private readonly ITaskExecuteDetailRepository _taskExecuteDetailRepository;
private readonly ILocationStatusChangeRecordRepository _locationStatusChangeRecordRepository;
- private readonly IBoxingInfoRepository _boxingInfoRepository;
- private readonly ICellStateService _cellStateService;
- private readonly IProcessApplyService _processApplyService;
- private readonly IDt_AreaInfoRepository _areaInfoRepository;
+ private readonly IBoxingInfoRepository _boxingInfoRepository; //缁勭洏
+ private readonly ICellStateService _cellStateService; //鐢佃姱灞炴��
+ private readonly IProcessApplyService _processApplyService; //宸ヨ壓璺嚎
+ private readonly IDt_AreaInfoRepository _areaInfoRepository; //鍖哄煙
+ private readonly IAgingInOrOutInputService _agingInOrOutInputService; //闈欑疆\闄堝寲
public Dt_TaskService(IDt_TaskRepository BaseDal,
IUnitOfWorkManage unitOfWorkManage,
@@ -44,7 +49,9 @@
IBoxingInfoRepository boxingInfoRepository,
ICellStateService cellStateService,
IProcessApplyService processApplyService,
- IDt_AreaInfoRepository areaInfoRepository) : base(BaseDal)
+ IDt_AreaInfoRepository areaInfoRepository,
+ IAgingInOrOutInputService agingInOrOutInputService,
+ IStockInfoDetailRepository stockInfoDetailRepository) : base(BaseDal)
{
_unitOfWorkManage = unitOfWorkManage;
_outOrderRepository = outOrderRepository;
@@ -63,14 +70,16 @@
_cellStateService = cellStateService;
_processApplyService = processApplyService;
_areaInfoRepository = areaInfoRepository;
+ _agingInOrOutInputService = agingInOrOutInputService;
+ _stockInfoDetailRepository = stockInfoDetailRepository;
}
#region 澶栭儴鎺ュ彛鏂规硶
- #region 鍫嗗灈鏈哄嚭搴撲换鍔″畬鎴�
+ #region 鍑哄簱浠诲姟瀹屾垚
/// <summary>
- /// 鍫嗗灈鏈哄嚭搴撲换鍔″畬鎴�
+ /// 鍑哄簱浠诲姟瀹屾垚
/// </summary>
/// <param name="saveModel">浠诲姟鏁版嵁鍚堥泦</param>
/// <returns>杩斿洖缁撴灉闆�</returns>
@@ -79,17 +88,48 @@
WebResponseContent content = new WebResponseContent();
try
{
- // 鏇存柊搴撳瓨鐘舵��
- // 璁剧疆搴撲綅鐘舵�佷负绌洪棽
- stock.LocationInfo.LocationStatus = LocationEnum.Free.ObjToInt();
- // 璁剧疆搴撳瓨鐘舵�佷负鍑哄簱
- stock.StockInfoDetails.ForEach(x =>
+ if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
{
- x.Status = 2;
- });
+ var process = await SqlSugarHelper.Db.Queryable<Dt_EquipmentProcess>()
+ .FirstAsync(x => x.EquipmentName == task.Roadway);
+ EquipmentParameterInfo info = JsonConvert.DeserializeObject<EquipmentParameterInfo>(process.ProcessValue);
+ AgingOutputDto agingOutputDto = new AgingOutputDto()
+ {
+ OpFlag = 1,
+ EquipmentCode = stock.LocationInfo.RoadwayNo,
+ TrayBarcode = stock.PalletCode,
+ SerialNos = stock.StockInfoDetails.Select(x => new SerialNoOutDto()
+ {
+ SlotNo = x.OrderNo.ToInt32(),
+ SerialNo = x.SerialNumber,
+ SerialNoResult = true,
+ ParameterInfo = new List<ParameterInfo>()
+ {
+ new ParameterInfo()
+ {
+ LowerLomit =info.LowerControlLimit,
+ UpperLimit = info.UpperControlLimit,
+ ParameterResult = info.EquipmentAvailabilityFlag,
+ ParameterCode = info.ParameterCode,
+ ParameterDesc = info.Description,
+ TargetValue = info.TargetValue,
+ Value = info.TargetValue,
+ DefectCode = info.UOMCode
+ }
+ }
+ }).ToList()
+ };
+ }
+ // 鏇存柊搴撳瓨鐘舵��
+ var loation = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress);
+ var detail = _stockInfoDetailRepository.QueryData(x => x.StockId == stock.Id);
+
+ // 璁剧疆搴撲綅鐘舵�佷负绌洪棽
+ loation.LocationStatus = LocationEnum.Free.ObjToInt();
+
// 鏇存柊浠诲姟鐘舵��
- task.TaskState = TaskOutStatusEnum.SC_OutFinish.ObjToInt();
+ task.TaskState = TaskOutStatusEnum.OutFinish.ObjToInt();
task.CurrentAddress = task.NextAddress;
task.NextAddress = task.TargetAddress;
@@ -98,13 +138,15 @@
// 浜嬪姟澶勭悊
// 寮�濮嬩簨鍔�
_unitOfWorkManage.BeginTran();
- // 鏇存柊搴撳瓨淇℃伅
- var isStockUpdated = _stockInfoRepository.UpdateData(stock);
- // 鏇存柊浠诲姟淇℃伅
- var isTaskUpdated = await Update(task);
+ // 鍒犻櫎搴撳瓨淇℃伅
+ var isStockUpdated = _stockInfoRepository.DeleteDataById(stock.Id);
+ // 鍒犻櫎搴撳瓨淇℃伅
+ var isStockDetailUpdated = _stockInfoDetailRepository.DeleteDataByIds(detail.Select(x => (object)x.Id).ToArray());
+ // 鍒犻櫎浠诲姟淇℃伅
+ var isTaskUpdated = BaseDal.DeleteDataById(task.TaskId);
// 濡傛灉搴撳瓨淇℃伅鍜屼换鍔′俊鎭兘鏇存柊鎴愬姛
- if (isStockUpdated && isTaskUpdated)
+ if (isStockUpdated && isTaskUpdated && isStockDetailUpdated)
{
// 璁板綍鏃ュ織
LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍫嗗灈鏈哄嚭搴撳畬鎴�", $"浜嬪姟澶勭悊瀹屾垚锛屽簱瀛樼姸鎬佹洿鏂帮細{isStockUpdated}锛屼换鍔$姸鎬佹洿鏂�:{isTaskUpdated}");
@@ -179,28 +221,66 @@
try
{
var boxing = await _boxingInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode);
+ var locationInf = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress);
- var boxDetail = boxing.BoxingInfoDetails.Adapt<List<DtStockInfoDetail>>();
- // 鍒涘缓搴撳瓨瀹炰緥妯″瀷
- DtStockInfo stock = new DtStockInfo()
- {
- PalletCode = task.PalletCode,
- LocationCode = task.TargetAddress,
- CreateDate = DateTime.Now,
- Creater = "system",
- IsFull = boxing.IsFull,
- StockInfoDetails = boxDetail,
- LocationInfo = new DtLocationInfo()
- };
+ locationInf.LocationStatus = (int)LocationEnum.InStock;
// 鍒涘缓鍘嗗彶浠诲姟瀹炰緥妯″瀷
var taskHty = CreateHistoricalTask(task);
- // 淇敼璐т綅淇℃伅涓烘湁璐�
- var locationInf = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress);
- locationInf.LocationStatus = (int)LocationEnum.InStock;
+ // 鍒涘缓搴撳瓨瀹炰緥妯″瀷
+ DtStockInfo stock;
+ if (boxing == null)
+ {
+ // 绌烘墭鐩�
- LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍏ュ簱浠诲姟瀹屾垚", $"璐т綅鍦板潃锛歿task.TargetAddress},淇敼鍚庤揣浣嶆暟鎹細{locationInf}");
+ stock = new DtStockInfo()
+ {
+ PalletCode = task.PalletCode,
+ LocationCode = task.TargetAddress,
+ CreateDate = DateTime.Now,
+ Creater = "system",
+ IsFull = boxing.IsFull,
+ StockInfoDetails = new List<DtStockInfoDetail>()
+ {
+ new DtStockInfoDetail()
+ {
+ MaterielCode = "绌烘墭鐩�",
+ Id = 0,
+ }
+ }
+ };
+ }
+ else
+ {
+ // 瀹炵洏
+ var boxDetail = boxing.BoxingInfoDetails.Adapt<List<DtStockInfoDetail>>();
+ // 鍒涘缓搴撳瓨瀹炰緥妯″瀷
+ stock = new DtStockInfo()
+ {
+ PalletCode = task.PalletCode,
+ LocationCode = task.TargetAddress,
+ CreateDate = DateTime.Now,
+ Creater = "system",
+ IsFull = boxing.IsFull,
+ StockInfoDetails = boxDetail,
+ };
+
+ AgingInputDto agingInputDto = new AgingInputDto()
+ {
+ SerialNos = boxing.BoxingInfoDetails
+ .Select(item => new SerialNoInDto { SerialNo = item.SerialNumber, PositionNo = item.OrderNo })
+ .ToList(),
+ TrayBarcode = task.PalletCode,
+ OpFlag = 1
+ };
+ var result = await _agingInOrOutInputService.GetOCVInputAsync(agingInputDto);
+ stock.Remark = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.Data.ToString()).LinedProcessFeedbackTime;
+
+
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍏ュ簱浠诲姟瀹屾垚", $"璐т綅鍦板潃锛歿task.TargetAddress},淇敼鍚庤揣浣嶆暟鎹細{locationInf}");
+
+ }
// 鎵ц鏁版嵁搴撲簨鍔�
bool isResult = await ExecuteTransaction(stock, taskHty, locationInf, task.TaskId);
@@ -249,10 +329,15 @@
LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍏ュ簱浠诲姟", "");
return await CompleteInboundTaskAsync(task);
}
+ else if (task.TaskType == (int)TaskInboundTypeEnum.InTray)
+ {
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "绌烘墭鐩樺叆搴�", "");
+ return await CompleteInboundTaskAsync(task);
+ }
else
{
- LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "搴撳瓨涓嶅瓨鍦ㄤ篃涓嶆槸鍏ュ簱浠诲姟", "");
- return content.Error("搴撳瓨涓嶅瓨鍦�");
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "浠诲姟鐘舵�佸紓甯�", "");
+ return content.Error("浠诲姟鐘舵�佸紓甯�");
}
}
LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "楠岃瘉搴撳瓨鏄惁瀛樺湪", JsonConvert.SerializeObject(stock));
@@ -260,15 +345,20 @@
if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
{
LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍑哄簱浠诲姟", "");
- if (task.TaskState == TaskOutStatusEnum.SC_OutExecuting.ObjToInt())
+ if (task.TaskState == TaskOutStatusEnum.Line_OutFinish.ObjToInt())
{
LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍫嗗灈鏈哄嚭搴撳畬鎴�", "");
return await CompleteStackTaskAsync(task, stock);
}
- else
+ else if (task.TaskState == TaskOutStatusEnum.SC_OutExecuting.ObjToInt())
{
LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "搴撳瓨涓嶅瓨鍦ㄤ篃涓嶆槸鍏ュ簱浠诲姟", "");
return content.Error("搴撳瓨涓嶅瓨鍦�");
+ }
+ else
+ {
+ LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "浠诲姟鐘舵�佸紓甯�", "");
+ return content.Error("浠诲姟鐘舵�佸紓甯�");
}
}
else if (task.TaskType == (int)TaskTypeEnum.RelocationIn)
@@ -310,8 +400,14 @@
// 濡傛灉鐘舵�佷负false锛屽垯杩斿洖content
if (!content.Status) return content;
- // 璋冪敤GetProcessApplyAsync鏂规硶锛岃幏鍙栧伐鑹虹敵璇�
- ProcessApplyDto process = await GetProcessApplyAsync(content);
+ // 娣诲姞缁勭洏淇℃伅
+ // 灏哻ontent.Data杞崲涓篟esultTrayCellsStatus瀵硅薄
+ var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.ToString());
+ var boxing = await CreateBoxingInfo(result, input.PalletCode);
+
+ // 璋冪敤GetProcessApplyAsync鏂规硶锛岃幏鍙栧伐鑹鸿矾绾�
+ ProcessApplyDto process = await GetProcessApplyAsync(result);
+
// 濡傛灉process涓簄ull锛屽垯杩斿洖content
if (process == null) return content;
@@ -322,6 +418,10 @@
var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode);
// 濡傛灉task涓嶄负null锛屽垯璋冪敤UpdateExistingTask鏂规硶锛屾洿鏂颁换鍔★紱鍚﹀垯璋冪敤CreateNewTask鏂规硶锛屽垱寤烘柊浠诲姟
content = task != null ? await UpdateExistingTask(input, task) : await CreateNewTask(processResponse, input);
+ if (content.Status)
+ {
+ var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
+ }
}
catch (Exception err)
{
@@ -341,19 +441,32 @@
return await _cellStateService.GetTrayCellStatusAsync(trayCells);
}
- // 鑾峰彇宸ヨ壓鐢宠
- private async Task<ProcessApplyDto> GetProcessApplyAsync(WebResponseContent content)
+ // 鑾峰彇缁勭洏淇℃伅
+ private async Task<DtBoxingInfo> CreateBoxingInfo(ResultTrayCellsStatus result, string palletCode)
{
- // 濡傛灉鐘舵�佷负false锛屽垯杩斿洖null
- if (!content.Status) return null;
+ return new DtBoxingInfo
+ {
+ PalletCode = palletCode,
+ IsFull = true,
+ BoxingInfoDetails = result.SerialNos.Select(serialNoObj => new DtBoxingInfoDetail
+ {
+ SerialNumber = serialNoObj.SerialNo,
+ OrderNo = serialNoObj.PositionNo.ToString(),
+ Status = serialNoObj.SerialNoStatus,
+ MaterielCode = result.BindCode,
+ Remark = result.TrayBarcodePropertys.ToJsonString(),
+ }).ToList()
+ };
+ }
- // 灏哻ontent.Data杞崲涓篟esultTrayCellsStatus瀵硅薄
- var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString());
+ // 鑾峰彇宸ヨ壓鐢宠
+ private async Task<ProcessApplyDto> GetProcessApplyAsync(ResultTrayCellsStatus content)
+ {
// 鍒涘缓涓�涓狿rocessApplyDto瀵硅薄锛屽苟璧嬪��
return new ProcessApplyDto()
{
- WipOrderNo = result.BindCode,
- SerialNos = result.SerialNos.Select(item => new SerialNos
+ //WipOrderNo = result.BindCode,
+ SerialNos = content.SerialNos.Select(item => new SerialNos
{
SerialNo = item.SerialNo
}).ToList()
@@ -381,6 +494,12 @@
.Where(x => x.EquipmentType == "闄堝寲" && x.WipOrderNo == apply.WipOrderNo && x.ProductDesc == apply.ProductNo)
.ToList();
+ case "1339":
+ case "1406":
+ return SqlSugarHelper.Db.Queryable<Dt_EquipmentProcess>()
+ .Where(x => x.EquipmentType == "闈欑疆" && x.WipOrderNo == apply.WipOrderNo && x.ProductDesc == apply.ProductNo)
+ .ToList();
+
default:
return new List<Dt_EquipmentProcess>();
}
@@ -397,7 +516,7 @@
{
var area = _areaInfoRepository.QueryFirst(x => x.AreaCode == "CH");
- var stockInfo = _stockInfoRepository.QueryData(x => x.Remark == area.AreaCode && x.StockInfoDetails.Any(z => z.MaterielCode == "绌烘墭鐩�")).OrderBy(x => x.CreateDate).FirstOrDefault();
+ var stockInfo = _stockInfoRepository.QueryData(x => x.LocationInfo.AreaId == area.AreaID && x.StockInfoDetails.Any(z => z.MaterielCode == "绌烘墭鐩�")).OrderBy(x => x.CreateDate).FirstOrDefault();
// 鍒涘缓鏂颁换鍔″疄渚�
var task = new Dt_Task
{
@@ -444,6 +563,65 @@
}
#endregion 璇锋眰绌烘墭鐩�
+
+ #region 闄堝寲璇锋眰鍑哄簱
+
+ // 闄堝寲璇锋眰鍑哄簱
+ public async Task<WebResponseContent> OutTrayByCh(string position)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ var area = _areaInfoRepository.QueryFirst(x => x.AreaName == "闄堝寲鍖�");
+ // 鏌ヨ搴撳瓨淇℃伅
+
+ var stockInfo = _stockInfoRepository.QueryData(x => x.AreaCode == area.AreaCode && Convert.ToDateTime(x.Remark) < DateTime.Now && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock).OrderBy(x => x.CreateDate).FirstOrDefault();
+ // 鍒涘缓鏂颁换鍔″疄渚�
+ var task = new Dt_Task()
+ {
+ Grade = 1,
+ Roadway = stockInfo.LocationInfo.RoadwayNo,
+ TargetAddress = position,
+ Dispatchertime = DateTime.Now,
+ MaterialNo = "",
+ NextAddress = position,
+ OrderNo = null,
+ PalletCode = stockInfo.PalletCode,
+ SourceAddress = stockInfo.LocationCode,
+ TaskState = (int)TaskOutStatusEnum.OutNew,
+ TaskType = (int)TaskOutboundTypeEnum.OutTray,
+ TaskNum = await BaseDal.GetTaskNo(),
+ Creater = "Systeam"
+ };
+ var taskId = await BaseDal.AddDataAsync(task);
+ bool isResult = taskId > 0;
+ if (isResult)
+ {
+ WMSTaskDTO taskDTO = new WMSTaskDTO()
+ {
+ TaskNum = task.TaskNum.Value,
+ Grade = 1,
+ PalletCode = DateTime.Now.ToString("MMddHHmmss"),
+ RoadWay = task.Roadway,
+ SourceAddress = stockInfo.LocationCode,
+ TargetAddress = task.Roadway,
+ TaskState = (int)TaskOutStatusEnum.OutNew,
+ Id = 0,
+ TaskType = (int)TaskOutboundTypeEnum.OutTray
+ };
+ stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
+ _locationRepository.UpdateData(stockInfo.LocationInfo);
+ content.OK(data: taskDTO);
+ }
+ }
+ catch (Exception ex)
+ {
+ throw;
+ }
+ return content;
+ }
+
+ #endregion 闄堝寲璇锋眰鍑哄簱
#endregion 澶栭儴鎺ュ彛鏂规硶
@@ -745,15 +923,6 @@
DtLocationInfo location = new DtLocationInfo();
int beforeStatus = 0;
- // 鏍规嵁浠诲姟绫诲瀷鍒ゆ柇鏄嚭搴撲换鍔¤繕鏄叆搴撲换鍔�
- //if (input.Type == (int)TaskTypeEnum.Outbound)
- //{
- // // 澶勭悊鍑哄簱浠诲姟
- // toAddress = await GetRoadWayAsync(areaId, task.Roadway, input.Direction, input.Area, input.Type);
- // taskState = (int)TaskOutStatusEnum.SC_OutFinish;
- //}
- //else
- //{
// 澶勭悊鍏ュ簱浠诲姟
location = await GetLocationDistributeAsync(task.Roadway);
toAddress = location.LocationCode;
@@ -762,10 +931,8 @@
// 鏇存柊璐т綅淇℃伅
location.LocationStatus = (int)LocationEnum.Lock;
- //}
// 鏇存柊浠诲姟淇℃伅
- //task.SourceAddress = input.Position;
task.CurrentAddress = input.Position;
task.TargetAddress = toAddress;
task.NextAddress = toAddress;
@@ -843,6 +1010,7 @@
TaskNum = await BaseDal.GetTaskNo(),
Creater = "Systeam"
};
+
// 灏濊瘯娣诲姞鏂颁换鍔�
var taskId = await BaseDal.AddDataAsync(task);
bool isResult = taskId > 0;
@@ -852,6 +1020,7 @@
isResult = await _taskExecuteDetailRepository.AddDetailAsync(task, false, TaskDescription.GetTaskUpdateDescription(input.PalletCode, input.Position, ToAddress, TaskInStatusEnum.InNew.GetIntegralRuleTypeEnumDesc()));
if (isResult)
{
+ // 鍒涘缓WMS浠诲姟
WMSTaskDTO taskDTO = new WMSTaskDTO()
{
TaskNum = 0,
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Integration/AgingInOrOutController.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Integration/AgingInOrOutController.cs
index e323a76..38b1b15 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Integration/AgingInOrOutController.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Integration/AgingInOrOutController.cs
@@ -19,7 +19,7 @@
/// <returns></returns>
// POST: api/AgingInOrOut/OCVInput
[HttpPost("OCVInput")]
- public Task<dynamic> GetOCVInputAsync([FromBody] AgingInputDto input)
+ public Task<WebResponseContent> GetOCVInputAsync([FromBody] AgingInputDto input)
{
return _agingInOrOutInputService.GetOCVInputAsync(input);
}
@@ -31,7 +31,7 @@
/// <returns></returns>
// POST: api/AgingInOrOut/OCVOutput
[HttpPost("OCVOutput")]
- public Task<dynamic> GetOCVOutputAsync([FromBody] AgingOutputDto input)
+ public Task<WebResponseContent> GetOCVOutputAsync([FromBody] AgingOutputDto input)
{
return _agingInOrOutInputService.GetOCVOutputAsync(input);
}
--
Gitblit v1.9.3