From 84ebbaf5bcb24a7b283c7aee38879b16f262b7c6 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期五, 05 十二月 2025 10:14:31 +0800
Subject: [PATCH] 更新
---
项目代码/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs | 4
项目代码/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs | 195 +++++++++++---
项目代码/WCSClient/src/views/taskinfo/task.vue | 2
项目代码/WCSServices/WIDESEAWCS_BasicInfoService/LocationInfoService.cs | 55 ++++
项目代码/WCSServices/WIDESEAWCS_Model/Models/BasicInfo/Dt_LocationInfo.cs | 29 ++
项目资料/接口汇总文件/WMS接口对接文档20251202_V1.1.3.docx | 0
项目代码/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs | 16 +
项目资料/接口汇总文件/WMS接口.docx | 0
项目资料/一期对接相关资料/播种墙报文.docx | 0
项目代码/WCSServices/WIDESEAWCS_Common/APIEnum/APIEnum.cs | 21 +
项目代码/WCSServices/WIDESEAWCS_Tasks/AGV/AGVExtend.cs | 4
项目代码/WCSServices/WIDESEAWCS_DTO/EPLightContent.cs | 39 +++
项目代码/WCSServices/WIDESEAWCS_DTO/EPLightBackDTO.cs | 32 ++
项目资料/接口汇总文件/EPLight Web API 接口文档1.1.docx | 0
项目代码/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs | 15 +
项目代码/WCSServices/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs | 31 ++
项目代码/WCSServices/WIDESEAWCS_Server/Filter/CustomProfile.cs | 2
项目代码/WCSServices/WIDESEAWCS_Server/Controllers/WebAPIController.cs | 129 +++++++++
项目代码/WCSServices/WIDESEAWCS_Tasks/一期线体/ConveyorLineJob1.cs | 85 ++++++
项目资料/一期对接相关资料/哈尔滨一期输送线对接协议modbusTcp协议V1.1.xlsx | 0
项目代码/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs | 13
项目代码/WCSServices/WIDESEAWCS_Tasks/二期线体/ConveyorLineJob2.cs | 14
项目代码/WCSServices/WIDESEAWCS_DTO/EPLightSendDTO.cs | 41 +++
项目代码/WCSServices/WIDESEAWCS_DTO/TaskInfo/ContainerDTO.cs | 14
项目代码/WCSClient/src/views/basicinfo/locationInfo.vue | 2
25 files changed, 672 insertions(+), 71 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/basicinfo/locationInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/basicinfo/locationInfo.vue"
index 33c4e0a..74915ed 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/basicinfo/locationInfo.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/basicinfo/locationInfo.vue"
@@ -49,7 +49,7 @@
{ title: "璐т綅缂栧彿", field: "locationCode", type: "like"},
{ title: "鏂欑缂栧彿", field: "palletCode", type: "like"},
{ title: "绂佺敤鐘舵��", field: "enableStatus" ,type: "select",dataKey: "",data: [{key: "0",value: "鍚敤"},{key: "3",value: "绂佺敤"}]},
- { title: "璐т綅鐘舵��", field: "locationStatus" ,type: "selectList",dataKey: "locationStatusEnum",data: []},
+ { title: "璐т綅鐘舵��", field: "locationStatus" ,type: "selectList",dataKey: "",data: [{key: "0",value: "绌洪棽"},{key: "1",value: "閿佸畾"},{key: "100",value: "鏈夎揣"}]},
],
[
{ title: "琛�", field: "row" ,type: "int"},
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/taskinfo/task.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/taskinfo/task.vue"
index b0c8fd7..87869f7 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/taskinfo/task.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSClient/src/views/taskinfo/task.vue"
@@ -24,7 +24,7 @@
cnName: "浠诲姟淇℃伅",
name: "task",
url: "/Task/",
- sortName: "CreateDate",
+ sortName: "taskNum",
});
const editFormFields = ref({});
const editFormOptions = ref([]);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_BasicInfoService/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_BasicInfoService/LocationInfoService.cs"
index d26efaa..0434f5d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_BasicInfoService/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_BasicInfoService/LocationInfoService.cs"
@@ -1,4 +1,8 @@
锘縰sing HslCommunication.WebSocket;
+using Magicodes.ExporterAndImporter.Core;
+using Magicodes.ExporterAndImporter.Excel;
+using MathNet.Numerics.Statistics.Mcmc;
+using NPOI.Util.Collections;
using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using SqlSugar;
@@ -188,5 +192,56 @@
return WebResponseContent.Instance.Error(ex.Message);
}
}
+ public override WebResponseContent Export(PageDataOptions options)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ string savePath = AppDomain.CurrentDomain.BaseDirectory + $"ExcelExport";
+ IExporter exporter = new ExcelExporter();
+ options.Page = 1;
+ options.Rows = 30;
+ options.Order = "asc";
+ options.Sort = "id";
+
+ string where = string.Empty;
+ ISugarQueryable<Dt_LocationInfo> sugarQueryable = BaseDal.Db.Queryable<Dt_LocationInfo>();
+ if (!string.IsNullOrEmpty(options.Wheres))
+ {
+ try
+ {
+ List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
+ if (searchParametersList?.Any() == true)
+ {
+ foreach (var param in searchParametersList)
+ {
+ switch (param.Name)
+ {
+
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ }
+ }
+
+
+
+ byte[] data = exporter.ExportAsByteArray(sugarQueryable.ToList()).Result;
+
+ string fileName = "搴撲綅淇℃伅.xlsx";
+
+ FileHelper.WriteFile(savePath, fileName, data);
+
+ content = WebResponseContent.Instance.OK(data: savePath + "\\" + fileName);
+ }
+ catch (Exception ex)
+ {
+ content = WebResponseContent.Instance.Error(ex.Message);
+ }
+ return content;
+ }
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Common/APIEnum/APIEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Common/APIEnum/APIEnum.cs"
index ea9119a..5c487af 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Common/APIEnum/APIEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Common/APIEnum/APIEnum.cs"
@@ -20,14 +20,29 @@
[Description("AGV浠诲姟鏀捐鎺ュ彛")]
AgvTaskFlow,
/// <summary>
- /// WMS鍏ュ簱鍙嶉瀹屾垚
+ /// WMS鍑哄叆搴撳弽棣堝畬鎴�
/// </summary>
- [Description("WMS鍏ュ簱鍙嶉瀹屾垚")]
- WMSInBoundBack,
+ [Description("WMS鍑哄叆搴撳弽棣堝畬鎴�")]
+ WMSInOutBoundBack,
/// <summary>
/// WMS鏂欑鍒拌揪鎷i�変綅涓婃姤
/// </summary>
[Description("WMS鏂欑鍒拌揪鎷i�変綅涓婃姤")]
WMSPickArrivedUp,
+ /// <summary>
+ /// 浜屾湡鎾澧欏垵濮嬪寲
+ /// </summary>
+ [Description("浜屾湡鎾澧欏垵濮嬪寲")]
+ INITIALIZATION,
+ /// <summary>
+ /// 浜屾湡鎾澧欑粨鏉熶綔涓�
+ /// </summary>
+ [Description("浜屾湡鎾澧欑粨鏉熶綔涓�")]
+ ENDWORK,
+ /// <summary>
+ /// 浜屾湡鎾澧欎笅鍙�
+ /// </summary>
+ [Description("浜屾湡鎾澧欎笅鍙�")]
+ PickOrderInfoRequest,
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/EPLightBackDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/EPLightBackDTO.cs"
new file mode 100644
index 0000000..0e5c659
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/EPLightBackDTO.cs"
@@ -0,0 +1,32 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO
+{
+ public class EPLightBackDTO
+ {
+ /// <summary>
+ /// 璁㈠崟鍙�
+ /// </summary>
+ public string DOCNO { get; set; }
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public string TASKNO { get; set; }
+ /// <summary>
+ /// 璐т綅鍙�
+ /// </summary>
+ public string LOCATION { get; set; }
+ /// <summary>
+ /// 瀹為檯鎷嶇伅鏁伴噺
+ /// </summary>
+ public int QUANTITY { get; set; }
+ /// <summary>
+ /// 鎷嶇伅鏃堕棿
+ /// </summary>
+ public string RETURNTIME { get; set; }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/EPLightContent.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/EPLightContent.cs"
new file mode 100644
index 0000000..9d06305
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/EPLightContent.cs"
@@ -0,0 +1,39 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+
+namespace WIDESEAWCS_DTO
+{
+ public class EPLightContent
+ {
+ /// <summary>
+ /// 杩斿洖缁撴灉 0:鎴愬姛;-1:澶辫触
+ /// </summary>
+ public string Result { get; set; }
+ /// <summary>
+ /// 杩斿洖淇℃伅
+ /// </summary>
+ public string Msg { get; set; }
+
+ public EPLightContent()
+ {
+ }
+
+ public EPLightContent OK(string message = "")
+ {
+ Result = "0";
+ Msg = message;
+ return this;
+ }
+
+ public EPLightContent Error(string message = "")
+ {
+ Result = "-1";
+ Msg = message;
+ return this;
+ }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/EPLightSendDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/EPLightSendDTO.cs"
new file mode 100644
index 0000000..88ff6ed
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/EPLightSendDTO.cs"
@@ -0,0 +1,41 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO
+{
+ public class EPLightSendDTO
+ {
+ /// <summary>
+ /// 璁㈠崟鍙�
+ /// </summary>
+ public string DOCNO { get; set; }
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public string TASKNO { get; set; }
+ /// <summary>
+ /// 璐т綅鍙�
+ /// </summary>
+ public string LOCATION { get; set; }
+ /// <summary>
+ /// 浜伅鏁伴噺
+ /// </summary>
+ public int QUANTITY { get; set; }
+ /// <summary>
+ /// 浜伅棰滆壊
+ /// </summary>
+ public string LIGHTCOLOR { get; set; }
+ /// <summary>
+ /// 浜伅鐘舵�侊細1锛氫寒锛�2鐏�
+ /// </summary>
+ public string ORDERTYPE { get; set; }
+ /// <summary>
+ /// 涓氬姟绫诲瀷 1锛氬叆搴撲寒鐏� 2锛氬嚭搴撲寒鐏�
+ /// </summary>
+ public string LIGHTTYPE { get; set; }
+ }
+
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/TaskInfo/ContainerDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/TaskInfo/ContainerDTO.cs"
index 6c8d625..d072c58 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/TaskInfo/ContainerDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/TaskInfo/ContainerDTO.cs"
@@ -41,7 +41,7 @@
public string Direction { get; set; }
}
/// <summary>
- /// 鏂欑鍏ュ簱瀹屾垚涓婃姤
+ /// 鏂欑鍑哄叆搴撳畬鎴愪笂鎶�
/// </summary>
public class ContainerInFinishDTO
{
@@ -54,12 +54,16 @@
/// </summary>
public string ContainerCode { get; set; }
/// <summary>
- /// 璧峰绔欏彴
+ /// 绔欏彴
/// </summary>
- public string FromStationCode { get; set; }
+ public string StationCode { get; set; }
/// <summary>
- /// 鐩爣璐т綅
+ /// 璐т綅
/// </summary>
- public string ToLocationCode { get; set; }
+ public string LocationCode { get; set; }
+ /// <summary>
+ /// 1鍑哄簱瀹屾垚锛�2鍏ュ簱瀹屾垚
+ /// </summary>
+ public int CompleteType { get; set; }
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs"
index 0377d7b..cceb9a4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs"
@@ -15,10 +15,23 @@
/// 浠诲姟鍙�
/// </summary>
public string TaskCode { get; set; }
+
/// <summary>
/// 浠诲姟浼樺厛绾�
/// </summary>
public int TaskPriority { get; set; }
+
+ /// <summary>
+ /// 浠诲姟淇℃伅
+ /// </summary>
+ public TaskDescribe TaskDescribe { get; set; }
+
+ }
+ /// <summary>
+ /// 浠诲姟淇℃伅
+ /// </summary>
+ public class TaskDescribe
+ {
/// <summary>
/// 鏂欑鍙�
/// </summary>
@@ -44,7 +57,9 @@
/// </summary>
public string ToLocationCode { get; set; }
}
-
+ /// <summary>
+ /// 鎺ユ敹浠诲姟
+ /// </summary>
public class WMSTaskDTO
{
/// <summary>
@@ -64,4 +79,18 @@
/// </summary>
public List<TasksItem> Tasks { get; set; }
}
+ /// <summary>
+ /// 鍙栨秷浠诲姟
+ /// </summary>
+ public class TaskCancel
+ {
+ /// <summary>
+ /// 浠诲姟鍙�
+ /// </summary>
+ public string TaskCode { get; set; }
+ /// <summary>
+ /// 鏂欑缂栧彿
+ /// </summary>
+ public string ContainerCode { get; set; }
+ }
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
index c7c0852..6caa9f4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
@@ -136,5 +136,21 @@
/// </summary>
/// <returns></returns>
WebResponseContent TaskCompleted(int taskNum);
+ /// <summary>
+ /// 浜屾湡鎾澧欎笅鍙�
+ /// </summary>
+ /// <param name="lightSendDTOs"></param>
+ /// <returns></returns>
+ EPLightContent PickOrderInfoRequest(List<EPLightSendDTO> lightSendDTOs);
+ /// <summary>
+ /// 浜屾湡鎾澧欏垵濮嬪寲
+ /// </summary>
+ /// <returns></returns>
+ EPLightContent INITIALIZATION();
+ /// <summary>
+ /// 浜屾湡鎾澧欑粨鏉熷乏鍙�
+ /// </summary>
+ /// <returns></returns>
+ EPLightContent ENDWORK();
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Model/Models/BasicInfo/Dt_LocationInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Model/Models/BasicInfo/Dt_LocationInfo.cs"
index 615e8ee..fbf51af 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Model/Models/BasicInfo/Dt_LocationInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Model/Models/BasicInfo/Dt_LocationInfo.cs"
@@ -1,4 +1,5 @@
-锘縰sing SqlSugar;
+锘縰sing Magicodes.ExporterAndImporter.Core;
+using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -17,78 +18,104 @@
/// <summary>
/// 涓婚敭
/// </summary>
+ [ImporterHeader(Name = "涓婚敭")]
+ [ExporterHeader(DisplayName = "涓婚敭")]
[SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
public int Id { get; set; }
/// <summary>
/// 搴撳尯缂栧彿
/// </summary>
+ [ImporterHeader(IsIgnore = true)]
+ [ExporterHeader(IsIgnore = true)]
[SugarColumn(IsNullable = false, ColumnDescription = "搴撳尯缂栧彿")]
public int WarehouseId { get; set; }
/// <summary>
/// 鏂欑缂栧彿
/// </summary>
+ [ImporterHeader(Name = "鏂欑缂栧彿")]
+ [ExporterHeader(DisplayName = "鏂欑缂栧彿")]
[SugarColumn(IsNullable = false, ColumnDescription = "鏂欑缂栧彿")]
public string PalletCode { get; set; }
/// <summary>
/// 璐т綅缂栧彿
/// </summary>
+ [ImporterHeader(Name = "璐т綅缂栧彿")]
+ [ExporterHeader(DisplayName = "璐т綅缂栧彿")]
[SugarColumn(IsNullable = true, Length = 30, ColumnDescription = "璐т綅缂栧彿")]
public string LocationCode { get; set; }
/// <summary>
/// 璐т綅鍚嶇О
/// </summary>
+ [ImporterHeader(Name = "璐т綅鍚嶇О")]
+ [ExporterHeader(DisplayName = "璐т綅鍚嶇О")]
[SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "璐т綅鍚嶇О")]
public string LocationName { get; set; }
/// <summary>
/// 宸烽亾缂栧彿
/// </summary>
+ [ImporterHeader(Name = "宸烽亾缂栧彿")]
+ [ExporterHeader(DisplayName = "宸烽亾缂栧彿")]
[SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "宸烽亾缂栧彿")]
public string RoadwayNo { get; set; }
/// <summary>
/// 璐т綅琛�
/// </summary>
+ [ImporterHeader(Name = "璐т綅琛�")]
+ [ExporterHeader(DisplayName = "璐т綅琛�")]
[SugarColumn(IsNullable = true, ColumnDescription = "璐т綅琛�")]
public int Row { get; set; }
/// <summary>
/// 璐т綅鍒�
/// </summary>
+ [ImporterHeader(Name = "璐т綅鍒�")]
+ [ExporterHeader(DisplayName = "璐т綅鍒�")]
[SugarColumn(IsNullable = true, ColumnDescription = "璐т綅鍒�")]
public int Columns { get; set; }
/// <summary>
/// 璐т綅灞�
/// </summary>
+ [ImporterHeader(Name = "璐т綅灞�")]
+ [ExporterHeader(DisplayName = "璐т綅灞�")]
[SugarColumn(IsNullable = true, ColumnDescription = "璐т綅灞�")]
public int Layer { get; set; }
/// <summary>
/// AGV鍙栬揣鐐�
/// </summary>
+ [ImporterHeader(Name = "AGV鍙栬揣鐐�")]
+ [ExporterHeader(DisplayName = "AGV鍙栬揣鐐�")]
[SugarColumn(IsNullable = true, ColumnDescription = "AGV鍙栬揣鐐�")]
public string AgvPoint { get; set; }
/// <summary>
/// 璐т綅鐘舵��
/// </summary>
+ [ImporterHeader(Name = "璐т綅鐘舵��")]
+ [ExporterHeader(DisplayName = "璐т綅鐘舵��")]
[SugarColumn(IsNullable = true, DefaultValue = "0", ColumnDescription = "璐т綅鐘舵��")]
public int LocationStatus { get; set; }
/// <summary>
/// 绂佺敤鐘舵��
/// </summary>
+ [ImporterHeader(Name = "绂佺敤鐘舵��")]
+ [ExporterHeader(DisplayName = "绂佺敤鐘舵��")]
[SugarColumn(IsNullable = true, DefaultValue = "0", ColumnDescription = "绂佺敤鐘舵��")]
public int EnableStatus { get; set; }
/// <summary>
/// 澶囨敞
/// </summary>
+ [ImporterHeader(Name = "澶囨敞")]
+ [ExporterHeader(DisplayName = "澶囨敞")]
[SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "澶囨敞")]
public string Remark { get; set; }
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
index 21434a4..e1c855b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
@@ -66,12 +66,16 @@
/// <summary>
/// 鎵樼洏绫诲瀷
/// </summary>
+ [ImporterHeader(Name = "鎵樼洏绫诲瀷")]
+ [ExporterHeader(IsIgnore =true)]
[SugarColumn(IsNullable = false, ColumnDescription = "鎵樼洏绫诲瀷")]
public int PalletType { get; set; }
/// <summary>
/// 璁惧缂栧彿
/// </summary>
+ [ImporterHeader(Name = "璁惧缂栧彿")]
+ [ExporterHeader(IsIgnore = true)]
[SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "璁惧缂栧彿")]
public string DeviceCode { get; set; }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs"
index afff1ad..b412210 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs"
@@ -1,4 +1,7 @@
-锘縰sing System;
+锘縰sing Magicodes.ExporterAndImporter.Core;
+using Org.BouncyCastle.Crypto;
+using SqlSugar;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -9,10 +12,14 @@
{
public class Dt_Task_Hty : Dt_Task, IBaseHistoryEntity
{
+ [ImporterHeader(Name = "鏉ユ簮ID")]
+ [ExporterHeader(DisplayName = "鏉ユ簮ID")]
public int SourceId { get; set; }
-
+ [ImporterHeader(Name = "鎿嶄綔绫诲瀷")]
+ [ExporterHeader(DisplayName = "鎿嶄綔绫诲瀷")]
public string OperateType { get; set; }
-
+ [ImporterHeader(Name = "鍔犲叆鏃堕棿")]
+ [ExporterHeader(DisplayName = "鍔犲叆鏃堕棿")]
public DateTime InsertTime { get; set; }
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
index 72a97af..64f2b29 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
@@ -107,10 +107,21 @@
/// </summary>
/// <param name="taskNum"></param>
/// <returns></returns>
- [HttpPost, HttpGet, Route("RecWMSTaskCompleted"), AllowAnonymous]
- public WebResponseContent RecWMSTaskCompleted(int taskNum)
+ [HttpPost, HttpGet, Route("RecTaskCompleted"), AllowAnonymous]
+ public WebResponseContent RecTaskCompleted(int taskNum)
{
return Service.TaskCompleted(taskNum);
}
+
+ /// <summary>
+ /// WMS浠诲姟鍙栨秷鍚屾
+ /// </summary>
+ /// <param name="taskNum"></param>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("CancelTask"), AllowAnonymous]
+ public WebResponseContent CancelTask(List<TaskCancel> taskCancels)
+ {
+ return WebResponseContent.Instance.Error();
+ }
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/WebAPIController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/WebAPIController.cs"
new file mode 100644
index 0000000..40a56db
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Controllers/WebAPIController.cs"
@@ -0,0 +1,129 @@
+锘縰sing Autofac.Core;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System.Text;
+using System.Text.RegularExpressions;
+using WIDESEA_DTO.Agv;
+using WIDESEA_External.Model;
+using WIDESEAWCS_Common;
+using WIDESEAWCS_Common.APIEnum;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.Enums;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.LogHelper;
+using WIDESEAWCS_DTO;
+using WIDESEAWCS_DTO.Agv;
+using WIDESEAWCS_IBasicInfoRepository;
+using WIDESEAWCS_ITaskInfoRepository;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.DTO;
+using WIDESEAWCS_QuartzJob.Models;
+using WIDESEAWCS_QuartzJob.Repository;
+using WIDESEAWCS_Tasks;
+using WIDESEAWCS_Tasks.DBNames;
+using static Dm.net.buffer.ByteArrayBuffer;
+
+namespace WIDESEAWCS_Server.Controllers
+{
+ [Route("api/[controller]")]
+ [ApiController]
+ public class WebAPIController : ControllerBase
+ {
+ private readonly IStationMangerRepository _stationMangerRepository;
+ private readonly ITaskService _taskService;
+ private readonly ITaskRepository _taskRepository;
+ private readonly IRouterRepository _routerRepository;
+
+ public WebAPIController(IStationMangerRepository stationMangerRepository, ITaskService taskService, ITaskRepository taskRepository, IRouterRepository routerRepository)
+ {
+ _stationMangerRepository = stationMangerRepository;
+ _taskService = taskService;
+ _taskRepository = taskRepository;
+ _routerRepository = routerRepository;
+ }
+ /// <summary>
+ /// 鍥炶皟涓婁紶
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("PickOrderCallBack"), AllowAnonymous]
+ public EPLightContent? PickOrderCallBack([FromBody] List<EPLightBackDTO> lightBackDTOs)
+ {
+ EPLightContent content = new EPLightContent();
+ try
+ {
+ if (lightBackDTOs==null)
+ {
+ return content.Error("浼犲叆涓嶈兘涓虹┖");
+ }
+ content.OK("鎺ユ敹鎴愬姛");
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+ /// <summary>
+ /// 鎾澧欎笅鍙�(浜屾湡)
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("PickOrderInfoRequest"), AllowAnonymous]
+ public EPLightContent PickOrderInfoRequest([FromBody] List<EPLightSendDTO> lightSendDTOs)
+ {
+ EPLightContent content = new EPLightContent();
+ try
+ {
+ if (lightSendDTOs == null)
+ {
+ return content.Error("浼犲叆涓嶈兘涓虹┖");
+ }
+ content = _taskService.PickOrderInfoRequest(lightSendDTOs);
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+ /// <summary>
+ /// 鎾澧欏垵濮嬪寲(浜屾湡)
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("INITIALIZATION"), AllowAnonymous]
+ public EPLightContent INITIALIZATION()
+ {
+ EPLightContent content = new EPLightContent();
+ try
+ {
+ content = _taskService.INITIALIZATION();
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+ /// <summary>
+ /// 鎾澧欑粨鏉熶綔涓�(浜屾湡)
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("ENDWORK"), AllowAnonymous]
+ public EPLightContent ENDWORK()
+ {
+ EPLightContent content = new EPLightContent();
+ try
+ {
+ content = _taskService.ENDWORK();
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Filter/CustomProfile.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Filter/CustomProfile.cs"
index 95034e0..b57a18b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Filter/CustomProfile.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Server/Filter/CustomProfile.cs"
@@ -21,7 +21,7 @@
{
CreateMap<Sys_Menu, MenuDTO>();
CreateMap<Dt_DeviceInfo,DeviceInfoDTO>();
- CreateMap<TasksItem, Dt_Task>().ForMember(a => a.WMSId, b => b.MapFrom(b => b.TaskCode)).ForMember(a => a.PalletCode, b => b.MapFrom(b => b.ContainerCode)).ForMember(a => a.Grade, b => b.MapFrom(b => b.TaskPriority));
+ CreateMap<TasksItem, Dt_Task>().ForMember(a => a.WMSId, b => b.MapFrom(b => b.TaskCode)).ForMember(a => a.PalletCode, b => b.MapFrom(b => b.TaskDescribe.ContainerCode)).ForMember(a => a.Grade, b => b.MapFrom(b => b.TaskPriority));
}
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index d7eea4a..b640cce 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -21,6 +21,7 @@
using SqlSugar;
using System.Diagnostics.CodeAnalysis;
using System.DirectoryServices.Protocols;
+using System.Linq;
using System.Net.Http.Headers;
using System.Security.Policy;
using WIDESEA_DTO.Agv;
@@ -102,27 +103,38 @@
public WebResponseContent ReceiveWMSTask([NotNull] WMSTaskDTO taskDTO)
{
WebResponseContent content = new WebResponseContent();
+ string errorMsg = "";
try
{
lock (lock_taskReceive)
{
List<Dt_Task> tasks = new List<Dt_Task>();
- List<Dt_LocationInfo> locationInfos = _locationInfoRepository.GetCanOut(taskDTO.Tasks.Select(x=>x.ContainerCode).ToList());
- TasksItem? tasksItem = taskDTO.Tasks.FirstOrDefault(x => !locationInfos.Select(t => t.PalletCode).Contains(x.ContainerCode));
- if (tasksItem != null) throw new Exception($"浠诲姟{tasksItem.TaskCode}鏂欑鍙穥tasksItem.ContainerCode}涓嶅瓨鍦�");
+ Dt_Task taskOld = BaseDal.QueryFirst(x=> taskDTO.Tasks.Select(x => x.TaskDescribe.ContainerCode).Contains(x.PalletCode));
+ if (taskOld != null) throw new Exception($"鏂欑{taskOld.PalletCode}"+(taskOld.TaskType == TaskTypeEnum.Inbound.ObjToInt() ? "鍏ュ簱浠诲姟宸插瓨鍦�" : "鍑哄簱浠诲姟宸插瓨鍦�"));
+ List<Dt_LocationInfo> locationInfos = _locationInfoRepository.GetCanOut(taskDTO.Tasks.Select(x=>x.TaskDescribe.ContainerCode).ToList());
+
Dt_LocationInfo? noOutLocation = locationInfos.FirstOrDefault(x=>x.LocationStatus != LocationStatusEnum.InStock.ObjToInt() || x.EnableStatus != EnableStatusEnum.Normal.ObjToInt());
+
if (noOutLocation != null) throw new Exception($"鏂欑{noOutLocation.PalletCode}璐т綅{noOutLocation.LocationCode}鐘舵�佷笉鍙嚭搴�");
List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData();
//涓嬪彂浠诲姟缁�
string taskGroup= taskDTO.TaskGroupCode.IsNullOrEmpty() ? Guid.NewGuid().ToString().Replace("-","") : taskDTO.TaskGroupCode;
- foreach (var item in taskDTO.Tasks.OrderBy(x=>x.ToStationCode))
+ foreach (var item in taskDTO.Tasks.OrderBy(x=>x.TaskDescribe.ToStationCode))
{
- if (item.ToStationCode.IsNullOrEmpty()) throw new Exception($"浠诲姟{item.TaskCode}鍑哄簱鐩爣鎿嶄綔鍙颁笉鑳戒负绌�");
+ if (item.TaskDescribe.ToStationCode.IsNullOrEmpty()) throw new Exception($"浠诲姟{item.TaskCode}鍑哄簱鐩爣鎿嶄綔鍙颁笉鑳戒负绌�");
//鑾峰彇鎿嶄綔鍙�
- Dt_StationManger? stationManger = stationMangers.FirstOrDefault(x => x.PickStationCode == item.ToStationCode);
- if (stationManger == null) throw new Exception($"浠诲姟{item.TaskCode}鍑哄簱鐩爣鎿嶄綔鍙皗item.ToStationCode}涓嶅瓨鍦�");
+ Dt_StationManger? stationManger = stationMangers.FirstOrDefault(x => x.PickStationCode == item.TaskDescribe.ToStationCode);
+ if (stationManger == null) throw new Exception($"浠诲姟{item.TaskCode}鍑哄簱鐩爣鎿嶄綔鍙皗item.TaskDescribe.ToStationCode}涓嶅瓨鍦�");
+
+ Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.PalletCode == item.TaskDescribe.ContainerCode);
+ if (locationInfo == null)
+ {
+ errorMsg += $"鏂欑{item.TaskDescribe.ContainerCode}涓嶅瓨鍦�;";
+ continue;
+ };
+
Dt_Task task = _mapper.Map<Dt_Task>(item);
- Dt_LocationInfo locationInfo = locationInfos.FirstOrDefault(x=>x.PalletCode==item.ContainerCode);
+
task.SourceAddress = locationInfo.LocationCode;
task.CurrentAddress = locationInfo.LocationCode;
task.NextAddress = stationManger.PickStationCode;
@@ -147,7 +159,7 @@
_taskExecuteDetailService.AddTaskExecuteDetail(tasks.Select(x => x.TaskNum).ToList(), "鎺ユ敹WMS浠诲姟");
- content = tasks.Count > 0 ? content.OK("鎴愬姛") : content.Error("澶辫触");
+ content = tasks.Count > 0 ? content.OK("鎴愬姛!"+(errorMsg.IsNullOrEmpty()? "": errorMsg)) : content.Error("澶辫触");
}
}
catch (Exception ex)
@@ -170,12 +182,12 @@
{
List<Dt_LocationInfo> locationInfos = _locationInfoRepository.QueryData();
Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x=>x.PalletCode== containerFlowDTO.ContainerCode);
- if (locationInfo != null) throw new Exception($"鏂欑鍙穥containerFlowDTO.ContainerCode}宸插瓨鍦�");
+ if (locationInfo != null) throw new Exception($"搴撲綅鏂欑鍙穥containerFlowDTO.ContainerCode}宸插瓨鍦�");
if (BaseDal.QueryFirst(x=>x.PalletCode==containerFlowDTO.ContainerCode)!=null) throw new Exception($"鏂欑鍙穥containerFlowDTO.ContainerCode}浠诲姟宸插瓨鍦�");
Dt_LocationInfo? noInLocation = locationInfos.FirstOrDefault(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.EnableStatus == EnableStatusEnum.Normal.ObjToInt());
if (noInLocation == null) throw new Exception($"鍙敤璐т綅涓嶈冻!");
Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt() && x.StationDeviceCode == deviceCode);
- //涓嬪彂浠诲姟缁�
+ //鍒涘缓浠诲姟
Dt_Task task = new Dt_Task();
task.PalletCode = containerFlowDTO.ContainerCode;
task.SourceAddress = containerFlowDTO.SlotCode;
@@ -245,23 +257,11 @@
DateTime beginDate = DateTime.Now;
try
{
- using (HttpContent httpContent = new StringContent(requestJson))
+ using (HttpContent httpContent = new StringContent(string.Empty))
{
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
-
using HttpClient httpClient = new HttpClient();
httpClient.Timeout = new TimeSpan(0, 0, 30);
- string LoginToken = AppSettings.Get("MESLoginToken");
- headers = new Dictionary<string, string>
- {
- //姝e紡
- { "LoginToken", LoginToken }
- };
- if (headers != null)
- {
- foreach (var header in headers)
- httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
- }
HttpResponseMessage responseMessage = httpClient.PostAsync(serviceAddress, httpContent).Result;
result = responseMessage.Content.ReadAsStringAsync().Result;
}
@@ -478,7 +478,7 @@
try
{
Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
- if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)//鍑哄簱浠诲姟閫昏緫
+ if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)//鍑哄簱浠诲姟瀹屾垚閫昏緫
{
Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x=>x.PalletCode==task.PalletCode);
if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
@@ -488,32 +488,54 @@
task.TaskState = TaskStatusEnum.Finish.ObjToInt();
locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
locationInfo.PalletCode = "";
+ //鏂欑鍑哄簱瀹屾垚涓婃姤缁橶MS
+ string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMSInOutBoundBack.ToString())?.ApiAddress;
+ if (string.IsNullOrEmpty(url))
+ {
+ _taskExecuteDetailService.AddTaskExecuteDetail(task, $"鏈壘鍒癢MS鍑哄簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS鍑哄簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ return content.Error($"{taskNum},鏈壘鍒癢MS鍑哄簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ }
+ ContainerInFinishDTO containerInFinishDTO = new ContainerInFinishDTO()
+ {
+ TaskCode = task.TaskNum.ToString(),
+ ContainerCode = task.PalletCode,
+ StationCode = task.TargetAddress,
+ LocationCode = task.SourceAddress,
+ CompleteType = 1
+ };
+ string request = JsonConvert.SerializeObject(containerInFinishDTO, settings);
+ //璋冪敤鎺ュ彛
+ string response = HttpHelper.Post(url, request);
+ WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ?? throw new Exception($"{taskNum},鏈帴鏀跺埌WMS鍑哄簱涓婃姤杩斿洖鍊�");
+ if (wMSResponse.Code != "0") throw new Exception($"鍑哄簱浠诲姟{task.TaskNum}WMS鍑哄簱涓婃姤閿欒,淇℃伅:{wMSResponse.Msg}");
_unitOfWorkManage.BeginTran();
_locationInfoRepository.UpdateData(locationInfo);
BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
_unitOfWorkManage.CommitTran();
}
- else if(task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍏ュ簱浠诲姟閫昏緫
+ else if(task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍏ュ簱浠诲姟瀹屾垚閫昏緫
{
- //string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMSInBoundBack.ToString())?.ApiAddress;
- //if (string.IsNullOrEmpty(url))
- //{
- // _taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
- // UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
- // return content.Error($"{taskNum},鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
- //}
- //ContainerInFinishDTO containerInFinishDTO = new ContainerInFinishDTO()
- //{
- // TaskCode= task.TaskNum.ToString(),
- // ContainerCode = task.PalletCode,
- // FromStationCode = task.SourceAddress,
- // ToLocationCode = task.TargetAddress
- //};
- //string request = JsonConvert.SerializeObject(containerInFinishDTO, settings);
- ////璋冪敤鎺ュ彛
- //string response = HttpHelper.Post(url, request);
- //WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ??throw new Exception($"{taskNum},鏈帴鏀跺埌WMS鍏ュ簱涓婃姤杩斿洖鍊�");
- //if (wMSResponse.Code!="0") throw new Exception($"鍏ュ簱浠诲姟{task.TaskNum}WMS鍏ュ簱涓婃姤閿欒,淇℃伅:{wMSResponse.Msg}");
+ string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.WMSInOutBoundBack.ToString())?.ApiAddress;
+ if (string.IsNullOrEmpty(url))
+ {
+ _taskExecuteDetailService.AddTaskExecuteDetail(task, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ return content.Error($"{taskNum},鏈壘鍒癢MS鍏ュ簱涓婃姤鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ }
+ ContainerInFinishDTO containerInFinishDTO = new ContainerInFinishDTO()
+ {
+ TaskCode = task.TaskNum.ToString(),
+ ContainerCode = task.PalletCode,
+ StationCode = task.SourceAddress,
+ LocationCode = task.TargetAddress,
+ CompleteType = 2
+ };
+ string request = JsonConvert.SerializeObject(containerInFinishDTO, settings);
+ //璋冪敤鎺ュ彛
+ string response = HttpHelper.Post(url, request);
+ WMSResponseContent wMSResponse = JsonConvert.DeserializeObject<WMSResponseContent>(response) ?? throw new Exception($"{taskNum},鏈帴鏀跺埌WMS鍏ュ簱涓婃姤杩斿洖鍊�");
+ if (wMSResponse.Code != "0") throw new Exception($"鍏ュ簱浠诲姟{task.TaskNum}WMS鍏ュ簱涓婃姤閿欒,淇℃伅:{wMSResponse.Msg}");
Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress);
if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
{
@@ -536,5 +558,88 @@
}
return content;
}
+
+ /// <summary>
+ /// 浜屾湡鎾澧欎笅鍙�
+ /// </summary>
+ /// <param name="taskNum"></param>
+ /// <returns></returns>
+ public EPLightContent PickOrderInfoRequest(List<EPLightSendDTO> lightSendDTOs)
+ {
+ EPLightContent content = new EPLightContent();
+ try
+ {
+ string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.PickOrderInfoRequest.ToString())?.ApiAddress;
+ if (string.IsNullOrEmpty(url))
+ {
+ return content.Error($"鏈壘鍒版挱绉嶅涓嬪彂鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ }
+ string request = JsonConvert.SerializeObject(lightSendDTOs, settings);
+ //璋冪敤鎺ュ彛
+ string response = HttpHelper.Post(url, request);
+ EPLightContent lightContent = JsonConvert.DeserializeObject<EPLightContent>(response) ?? throw new Exception($"鏈帴鏀跺埌鎾澧欎笅鍙戜笂鎶ヨ繑鍥炲��");
+ if (lightContent.Result != "0") throw new Exception($"鎾澧欎笅鍙戦敊璇�,淇℃伅:{lightContent.Msg}");
+ content.OK("鎴愬姛");
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+ /// <summary>
+ /// 浜屾湡鎾澧欏垵濮嬪寲
+ /// </summary>
+ /// <param name="taskNum"></param>
+ /// <returns></returns>
+ public EPLightContent INITIALIZATION()
+ {
+ EPLightContent content = new EPLightContent();
+ try
+ {
+ string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.INITIALIZATION.ToString())?.ApiAddress;
+ if (string.IsNullOrEmpty(url))
+ {
+ return content.Error($"鏈壘鍒版挱绉嶅鍒濆鍖栨帴鍙�,璇锋鏌ユ帴鍙i厤缃�");
+ }
+ //璋冪敤鎺ュ彛
+ string response = Post(url);
+ EPLightContent lightContent = JsonConvert.DeserializeObject<EPLightContent>(response) ?? throw new Exception($"鏈帴鏀跺埌鎾澧欏垵濮嬪寲涓婃姤杩斿洖鍊�");
+ if (lightContent.Result != "0") throw new Exception($"鎾澧欏垵濮嬪寲閿欒,淇℃伅:{lightContent.Msg}");
+ content.OK("鎴愬姛");
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+ /// <summary>
+ /// 浜屾湡鎾澧欑粨鏉熶綔涓�
+ /// </summary>
+ /// <param name="taskNum"></param>
+ /// <returns></returns>
+ public EPLightContent ENDWORK()
+ {
+ EPLightContent content = new EPLightContent();
+ try
+ {
+ string? url = _apiInfoRepository.QueryFirst(x => x.ApiCode == APIEnum.ENDWORK.ToString())?.ApiAddress;
+ if (string.IsNullOrEmpty(url))
+ {
+ return content.Error($"鏈壘鍒版挱绉嶅缁撴潫浣滀笟鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ }
+ //璋冪敤鎺ュ彛
+ string response = Post(url);
+ EPLightContent lightContent = JsonConvert.DeserializeObject<EPLightContent>(response) ?? throw new Exception($"鏈帴鏀跺埌鎾澧欑粨鏉熶綔涓氫笂鎶ヨ繑鍥炲��");
+ if (lightContent.Result != "0") throw new Exception($"鎾澧欑粨鏉熶綔涓氶敊璇�,淇℃伅:{lightContent.Msg}");
+ content.OK("鎴愬姛");
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/AGV/AGVExtend.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/AGV/AGVExtend.cs"
index 7055ef8..6ed4caa 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/AGV/AGVExtend.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/AGV/AGVExtend.cs"
@@ -22,8 +22,8 @@
{
try
{
- var newTasksOut = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == TaskStatusEnum.AGV_Execute.ObjToInt()) && x.TaskType==TaskTypeEnum.Outbound.ObjToInt() && x.DeviceCode == "AGV").ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList();
- var newTasksIn = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == TaskStatusEnum.AGV_Execute.ObjToInt()) && x.TaskType == TaskTypeEnum.Inbound.ObjToInt() && x.DeviceCode == "AGV").ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList();
+ var newTasksOut = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == TaskStatusEnum.AGV_Execute.ObjToInt()) && x.TaskType==TaskTypeEnum.Outbound.ObjToInt() && x.DeviceCode == "AGV").ToList().OrderBy(x => x.Grade).ThenBy(x => x.TaskNum).ToList();
+ var newTasksIn = _taskService.Db.Queryable<Dt_Task>().Where(x => (x.TaskState == TaskStatusEnum.AGV_Execute.ObjToInt()) && x.TaskType == TaskTypeEnum.Inbound.ObjToInt() && x.DeviceCode == "AGV").ToList().OrderBy(x => x.Grade).ThenBy(x => x.TaskNum).ToList();
#region 鍑哄簱浠诲姟涓嬪彂
if (newTasksOut.Count>0)
{
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\270\200\346\234\237\347\272\277\344\275\223/ConveyorLineJob1.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\270\200\346\234\237\347\272\277\344\275\223/ConveyorLineJob1.cs"
new file mode 100644
index 0000000..35a4301
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\270\200\346\234\237\347\272\277\344\275\223/ConveyorLineJob1.cs"
@@ -0,0 +1,85 @@
+锘縰sing Autofac.Core;
+using Microsoft.AspNetCore.Components.Routing;
+using Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
+using Quartz;
+using System;
+using System.Collections.Generic;
+using System.IdentityModel.Tokens.Jwt;
+using System.Linq;
+using System.Reflection.Metadata;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Common;
+using WIDESEAWCS_Common.Helper;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Communicator;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_IBasicInfoRepository;
+using WIDESEAWCS_ITaskInfoRepository;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.ConveyorLine.Enum;
+using WIDESEAWCS_QuartzJob.DTO;
+using WIDESEAWCS_QuartzJob.Models;
+using WIDESEAWCS_QuartzJob.Repository;
+using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_Tasks.DBNames;
+using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
+
+namespace WIDESEAWCS_Tasks
+{
+ [DisallowConcurrentExecution]
+ public class ConveyorLineJob1 : JobBase, IJob
+ {
+ private readonly ICacheService _cacheService;
+ private readonly ITaskService _taskService;
+ private readonly ITaskExecuteDetailService _taskExecuteDetailService;
+ private readonly ITaskRepository _taskRepository;
+ private readonly IStationMangerRepository _stationMangerRepository;
+ private readonly IRouterRepository _routerRepository;
+ private readonly IRouterService _routerService;
+ private readonly IRouterExtension _routerExtension;
+
+ public ConveyorLineJob1(ICacheService cacheService, ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository, IRouterService routerService, IRouterExtension routerExtension)
+ {
+ _cacheService = cacheService;
+ _taskService = taskService;
+ _taskExecuteDetailService = taskExecuteDetailService;
+ _taskRepository = taskRepository;
+ _stationMangerRepository = stationMangerRepository;
+ _routerRepository = routerRepository;
+ _routerService = routerService;
+ _routerExtension = routerExtension;
+ }
+
+ public Task Execute(IJobExecutionContext context)
+ {
+ try
+ {
+ bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
+ if (flag && value != null)
+ {
+ OtherDevice device = (OtherDevice)value;
+ List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode);
+
+ foreach (var item in stationMangers)
+ {
+ byte[] bytesPut = device.Communicator.Read("22", 1);
+ ;
+ device.Communicator.Write("22", new byte[] { 2, 0 });
+ byte[] bytesPuted = device.Communicator.Read("22",1);
+ device.Communicator.Write("22", new byte[] { 0, 0 });
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ WriteError(nameof(ConveyorLineJob1), ex.Message);
+ }
+ return Task.CompletedTask;
+ }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\272\214\346\234\237\347\272\277\344\275\223/ConveyorLineJob2.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\272\214\346\234\237\347\272\277\344\275\223/ConveyorLineJob2.cs"
index 2cd34b8..8b3e751 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\272\214\346\234\237\347\272\277\344\275\223/ConveyorLineJob2.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_Tasks/\344\272\214\346\234\237\347\272\277\344\275\223/ConveyorLineJob2.cs"
@@ -60,21 +60,22 @@
//涓婃姤WMS鏂欑鍒拌揪
if (PickBarCode.IsNotEmptyOrNull())
{
- //WebResponseContent content = _taskService.WMSPickUp(station.PickStationCode, PickBarCode);
- WebResponseContent content = WebResponseContent.Instance.OK();
+ WebResponseContent content = _taskService.WMSPickUp(station.PickStationCode, PickBarCode);
+ //WebResponseContent content = WebResponseContent.Instance.OK();
if (content.Status)
{
//鍐欏叆鎷i�夌‘璁�
conveyorLine.SetValue(ConveyorLineDBName.W_PickToHode, (short)300, station.StationCode);
+ WriteInfo(conveyorLine.DeviceCode, $"{station.PickStationCode}鎷i�夌敵璇蜂笂鎶ユ垚鍔焮PickBarCode}");
}
else
{
- WriteError(nameof(conveyorLine.DeviceCode), $"{station.PickStationCode}鎷i�夌敵璇蜂笂鎶MS閿欒锛屼俊鎭瘂content.Message}");
+ WriteError(conveyorLine.DeviceCode, $"{station.PickStationCode}鎷i�夌敵璇蜂笂鎶MS閿欒{PickBarCode}锛屼俊鎭瘂content.Message}");
}
}
else
{
- WriteError(nameof(conveyorLine.DeviceCode), $"{station.PickStationCode}鎷i�夌敵璇蜂负{PickRequest}鏉$爜涓虹┖鍊�");
+ WriteError(conveyorLine.DeviceCode, $"{station.PickStationCode}鎷i�夌敵璇蜂负{PickRequest}鏉$爜涓虹┖鍊�");
}
}
@@ -97,15 +98,16 @@
{
//鍐欏叆鍏ュ簱纭
conveyorLine.SetValue(ConveyorLineDBName.W_InResponse, true, station.StationCode);
+ WriteInfo(conveyorLine.DeviceCode, $"绔欏彴{station.StationCode}鏂欑{InBarCode}鐢宠鍏ュ簱鎴愬姛");
}
else
{
- WriteError(nameof(conveyorLine.DeviceCode), $"绔欏彴{station.StationCode}鏂欑{InBarCode}鐢宠鍏ュ簱浠诲姟閿欒锛屼俊鎭瘂content.Message}");
+ WriteError(conveyorLine.DeviceCode, $"绔欏彴{station.StationCode}鏂欑{InBarCode}鐢宠鍏ュ簱浠诲姟閿欒锛屼俊鎭瘂content.Message}");
}
}
else
{
- WriteError(nameof(conveyorLine.DeviceCode), $"绔欏彴{station.StationCode}鍏ュ簱鐢宠涓簕InRequest}鏉$爜涓虹┖鍊�");
+ WriteError(conveyorLine.DeviceCode, $"绔欏彴{station.StationCode}鍏ュ簱鐢宠涓簕InRequest}鏉$爜涓虹┖鍊�");
}
}
}
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\345\223\210\345\260\224\346\273\250\344\270\200\346\234\237\350\276\223\351\200\201\347\272\277\345\257\271\346\216\245\345\215\217\350\256\256modbusTcp\345\215\217\350\256\256V1.1.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\345\223\210\345\260\224\346\273\250\344\270\200\346\234\237\350\276\223\351\200\201\347\272\277\345\257\271\346\216\245\345\215\217\350\256\256modbusTcp\345\215\217\350\256\256V1.1.xlsx"
index d94e44c..910f2e3 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\345\223\210\345\260\224\346\273\250\344\270\200\346\234\237\350\276\223\351\200\201\347\272\277\345\257\271\346\216\245\345\215\217\350\256\256modbusTcp\345\215\217\350\256\256V1.1.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\345\223\210\345\260\224\346\273\250\344\270\200\346\234\237\350\276\223\351\200\201\347\272\277\345\257\271\346\216\245\345\215\217\350\256\256modbusTcp\345\215\217\350\256\256V1.1.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\346\222\255\347\247\215\345\242\231\346\212\245\346\226\207.docx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\346\222\255\347\247\215\345\242\231\346\212\245\346\226\207.docx"
new file mode 100644
index 0000000..3add183
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\344\270\200\346\234\237\345\257\271\346\216\245\347\233\270\345\205\263\350\265\204\346\226\231/\346\222\255\347\247\215\345\242\231\346\212\245\346\226\207.docx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\261\207\346\200\273\346\226\207\344\273\266/EPLight Web API \346\216\245\345\217\243\346\226\207\346\241\2431.1.docx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\261\207\346\200\273\346\226\207\344\273\266/EPLight Web API \346\216\245\345\217\243\346\226\207\346\241\2431.1.docx"
new file mode 100644
index 0000000..b041b56
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\261\207\346\200\273\346\226\207\344\273\266/EPLight Web API \346\216\245\345\217\243\346\226\207\346\241\2431.1.docx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\261\207\346\200\273\346\226\207\344\273\266/WMS\346\216\245\345\217\243.docx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\261\207\346\200\273\346\226\207\344\273\266/WMS\346\216\245\345\217\243.docx"
new file mode 100644
index 0000000..cfaebaf
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\261\207\346\200\273\346\226\207\344\273\266/WMS\346\216\245\345\217\243.docx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\261\207\346\200\273\346\226\207\344\273\266/WMS\346\216\245\345\217\243\345\257\271\346\216\245\346\226\207\346\241\24320251202_V1.1.3.docx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\261\207\346\200\273\346\226\207\344\273\266/WMS\346\216\245\345\217\243\345\257\271\346\216\245\346\226\207\346\241\24320251202_V1.1.3.docx"
new file mode 100644
index 0000000..aa93369
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\346\261\207\346\200\273\346\226\207\344\273\266/WMS\346\216\245\345\217\243\345\257\271\346\216\245\346\226\207\346\241\24320251202_V1.1.3.docx"
Binary files differ
--
Gitblit v1.9.3