From e719f3e5d5d16ee8a9dece97d9889610507628ac Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期一, 18 八月 2025 08:15:27 +0800
Subject: [PATCH] 1
---
项目代码/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs | 18 -
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/StackerCraneJob_CP.cs | 3
项目资料/技术协议/龙利得项目对接记录.xlsx | 0
项目代码/WMS/WMSClient/src/views/stock/stockInfo.vue | 6
项目代码/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs | 34 ++
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/ConveyorLineJob_CPD.cs | 23 +
项目代码/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json | 6
项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService.cs | 4
项目代码/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_AGVStationInfo.cs | 5
项目代码/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs | 68 ++--
项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs | 101 -----
项目资料/通信协议/原料库输送线通讯协议.xlsx | 0
项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Completed.cs | 2
项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs | 106 ++++++
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/成品仓/AGV_CPExtend.cs | 4
项目资料/技术协议/利拓系统对龙利得二期系统的需求.docx | 0
项目资料/通信协议/成品输送线通讯协议_20250707.xlsx | 0
项目代码/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs | 19 +
项目资料/接口协议/MES.xlsx | 0
项目代码/WMS/WMSServices/WIDESEA_Common/CommonEnum/AGVStationAreaEnum.cs | 64 ++-
项目代码/WMS/WMSClient/src/views/basic/agvStationInfo.vue | 1
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/原料库/ConveyorLineJob_YL1ndFloor.cs | 19
项目代码/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs | 44 +-
项目资料/接口协议/龙利德点位.xlsx | 0
项目代码/WCS/WCSServices/WIDESEAWCS_Tasks/原料库/StackerCraneJob_YLSC2.cs | 56 +-
项目代码/WMS/WMSServices/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs | 6
项目资料/通信协议/龙利得软件计划表.xlsx | 0
项目代码/WMS/WMSServices/WIDESEA_Common/WareHouseEnum/WarehouseEnum.cs | 5
项目代码/WCS/WCSServices/WIDESEAWCS_DTO/Agv/AgvUpdateDTO.cs | 2
项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs | 233 ++++++++++++++
项目代码/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs | 14
项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Reloaction.cs | 82 +++-
32 files changed, 624 insertions(+), 301 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
index f893828..aa83b00 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
@@ -29,21 +29,25 @@
/// </summary>
[Description("璐ㄦ鍑哄簱")]
OutQuality = 130,
+
/// <summary>
/// 绌虹鍑哄簱
/// </summary>
[Description("绌虹鍑哄簱")]
OutEmpty = 140,
+
/// <summary>
/// 璋冩嫧鍑哄簱
/// </summary>
[Description("璋冩嫧鍑哄簱")]
OutAllocate = 150,
+
/// <summary>
- /// 鍙犵洏鍑哄簱
+ /// 鑰佸巶鍑哄簱
/// </summary>
- [Description("鍙犵洏鍑哄簱")]
- StackingPlates = 160,
+ [Description("鑰佸巶鍑哄簱")]
+ OldOutbound = 160,
+
/// <summary>
/// MES鍑哄簱
/// </summary>
@@ -72,7 +76,7 @@
[Description("鎴愬搧瀵勫敭鍑哄簱")]
OutSendProduct = 240,
/// <summary>
- /// 鎴愬搧MES鍑哄簱/鎻愬簱
+ /// 鎴愬搧MES鎻愬簱
/// </summary>
[Description("鎴愬搧MES鎻愬簱")]
OutMesRworkProduct = 250,
@@ -110,6 +114,12 @@
MesMatReturn = 560,
/// <summary>
+ /// 璋冩嫧鍏ュ簱
+ /// </summary>
+ [Description("璋冩嫧鍏ュ簱")]
+ InAllocate = 570,
+
+ /// <summary>
/// MES澶х┖鎵橀��鏂�
/// </summary>
[Description("MES澶х┖鎵橀��鏂�")]
@@ -122,27 +132,9 @@
MesPalletSmallReturn = 585,
/// <summary>
- /// 璋冩嫧鍏ュ簱
+ /// 鎵嬪姩鍏ュ簱
/// </summary>
- [Description("璋冩嫧鍏ュ簱")]
- InAllocate = 570,
-
- /// <summary>
- /// 绾胯竟浠撳叆搴�
- /// </summary>
- [Description("绾胯竟浠撳叆搴�")]
- InboundXB = 580,
-
- /// <summary>
- /// 鏈哄彴鍏ュ簱
- /// </summary>
- [Description("鏈哄彴鍏ュ簱")]
- InboundJT = 590,
-
- /// <summary>
- /// 绌虹鍏ュ簱
- /// </summary>
- [Description("绌虹鍏ュ簱")]
+ [Description("鎵嬪姩鍏ュ簱")]
InEmpty = 600,
/// <summary>
@@ -157,9 +149,9 @@
[Description("鎴愬搧浣欐枡鍥炲簱")]
InProductBack = 620,
/// <summary>
- /// 鎴愬搧绌烘鍥炲簱
+ /// 鎴愬搧绌烘墭鍥炲簱
/// </summary>
- [Description("鎴愬搧绌烘鍥炲簱")]
+ [Description("鎴愬搧绌烘墭鍥炲簱")]
EmptyProductBack = 630,
/// <summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/Agv/AgvUpdateDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/Agv/AgvUpdateDTO.cs"
index 1945e64..0f3aea6 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/Agv/AgvUpdateDTO.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_DTO/Agv/AgvUpdateDTO.cs"
@@ -25,6 +25,6 @@
/// 1鍙栬揣瀹屾垚<br/>
/// 2鏀捐揣瀹屾垚<br/>
/// </summary>
- public int GoodsState { get; set; }
+ public string GoodsState { get; set; }
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
index 4aab91b..2d1bf0a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
@@ -91,16 +91,6 @@
//WebResponseContent RequestWMSTask(string palletCode, string sourceAddress, string roadway);
/// <summary>
- ///
- /// </summary>
- /// <param name="sourceAddress"></param>
- /// <param name="palletCode"></param>
- /// <param name="heightType"></param>
- /// <param name="roadways"></param>
- /// <returns></returns>
- WebResponseContent RequestWMSTask(string palletCode, string sourceAddress, int heightType, List<string> roadways);
-
- /// <summary>
/// 鍚慦MS鐢宠鍒嗛厤璐т綅
/// </summary>
/// <param name="taskNum">浠诲姟鍙�</param>
@@ -275,10 +265,6 @@
/// </summary>
/// <returns></returns>
WebResponseContent AgvBoxApplyPass(AgvCTUCancelDTO applyPassDTO, APIEnum SecureReply = APIEnum.AGV_CTUCancelTask);
- /// <summary>
- /// 鐢熸垚绌烘浠诲姟
- /// </summary>
- WebResponseContent AgvCarrying(int row, int startColumn, int endColumn, int layer, int targetLayer);
/// <summary>
/// 棰勮皟搴︽寚浠�
/// </summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
index d4daa32..4724199 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
@@ -51,7 +51,7 @@
{
var task = _taskRepository.QueryFirst(x => secureApplyModel.ReceiveTaskID.ObjToInt() == x.TaskNum);
if (task == null) throw new Exception("鏈壘鍒颁换鍔�");
- if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
+ if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
{
var content = TakeRequest(task.CurrentAddress);
if (!content.Status)
@@ -200,17 +200,18 @@
if (task == null) throw new Exception($"鏈壘鍒颁换鍔�,浠诲姟鍙枫�恵agvUpdateModel.ReceiveTaskID}銆�");
switch (agvUpdateModel.GoodsState)
{
- //case 1://鍑哄簱鏍规嵁杩欎釜淇″彿鍒ゆ柇鍙栬揣瀹屾垚
- // if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
- // {
- // var content = TakeFinish(task.CurrentAddress);
- // if (!content.Status) throw new Exception(content.Message);
- // task.TaskState = TaskStatusEnum.AGV_Finish.ObjToInt();
- // var up = _taskRepository.DeleteAndMoveIntoHty(task, OperateTypeEnum.鑷姩瀹屾垚);
- // _taskService.TaskCompleted(task.TaskNum);
- // }
- // break;
- case 2://鍏ュ簱鏍规嵁杩欎釜淇″彿鍒ゆ柇鏀捐揣瀹屾垚
+ case "1"://鍑哄簱鏍规嵁杩欎釜淇″彿鍒ゆ柇鍙栬揣瀹屾垚
+ if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+ {
+ var content = TakeFinish(task.CurrentAddress);
+ if (!content.Status)
+ {
+ throw new Exception(content.Message);
+ };
+ return agvResponse.OK("鎴愬姛", "0");
+ }
+ break;
+ case "2"://鍏ュ簱鏍规嵁杩欎釜淇″彿鍒ゆ柇鏀捐揣瀹屾垚
if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
{
Dt_StationManger dt_Station = _stationMangerRepository.QueryFirst(x => x.StationCode == task.NextAddress);
@@ -224,6 +225,11 @@
task.DeviceCode = dt_Station.StationDeviceCode;
var up = _taskRepository.UpdateData(task);
return agvResponse.OK("鎴愬姛","0");
+ }
+ else if(task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+ {
+ _taskService.TaskCompleted(task.TaskNum);
+ return agvResponse.OK("鎴愬姛", "0");
}
break;
default:
@@ -321,45 +327,36 @@
[HttpPost, HttpGet, Route("TakeRequest"), AllowAnonymous]
public WebResponseContent TakeRequest(string code)
{
+ WebResponseContent content = new WebResponseContent();
try
{
- Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.AGVStationCode == code);
+ Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == code);
if (stationManger == null)
{
- return WebResponseContent.Instance.Error($"鏈壘鍒扮珯鍙伴厤缃�");
+ return WebResponseContent.Instance.Error($"鏈壘鍒扮珯鍙伴厤缃畕code}");
}
IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == stationManger.StationDeviceCode);
if (device == null)
{
- return WebResponseContent.Instance.Error($"鏈壘鍒板搴旇澶�");
+ return WebResponseContent.Instance.Error($"鏈壘鍒板搴旇澶噞stationManger.StationDeviceCode}");
}
OtherDevice otherDevice = (OtherDevice)device;
- bool canPut = otherDevice.GetValue<GroundStationDBName, bool>(GroundStationDBName.R_IsCanTake, stationManger.StationCode);
- if (canPut)
+ short Command = otherDevice.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode);
+ if (Command == 2)
{
- otherDevice.SetValue(GroundStationDBName.W_TakeRequest, true, stationManger.StationCode);
- return WebResponseContent.Instance.OK();
+ content.OK("鍏佽鍙栨枡");
}
else
{
- otherDevice.SetValue(GroundStationDBName.W_TakeRequest, true, stationManger.StationCode);
- Thread.Sleep(1000);
- canPut = otherDevice.GetValue<GroundStationDBName, bool>(GroundStationDBName.R_IsCanTake, stationManger.StationCode);
- if (canPut)
- {
- return WebResponseContent.Instance.OK();
- }
- else
- {
- return WebResponseContent.Instance.Error($"鍙栬揣鐢宠涓�");
- }
+ return content.Error("绂佹鍙栨枡");
}
+ return content;
}
catch (Exception ex)
{
- return WebResponseContent.Instance.Error(ex.Message);
+ return content.Error(ex.Message);
}
}
@@ -374,7 +371,7 @@
{
try
{
- Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.AGVStationCode == code);
+ Dt_StationManger stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == code);
if (stationManger == null)
{
return WebResponseContent.Instance.Error($"鏈壘鍒扮珯鍙伴厤缃�");
@@ -386,9 +383,10 @@
}
OtherDevice otherDevice = (OtherDevice)device;
- otherDevice.SetValue(GroundStationDBName.W_TakeFinish, true, stationManger.StationCode);
- Thread.Sleep(1000);
- otherDevice.SetValue(GroundStationDBName.W_TakeFinish, false, stationManger.StationCode);
+ if (device.DeviceCode.Contains("CP"))
+ {
+ otherDevice.SetValue(W_ConveyorLineCPDB.W_Command, 2, stationManger.StationCode);
+ }
return WebResponseContent.Instance.OK();
}
catch (Exception ex)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
index 8e1d69a..35a9f81 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
@@ -80,11 +80,6 @@
{
return WebResponseContent.Instance.OK(data: _routerExtension.GetEndPoint(startPoint, routeType));
}
- [HttpPost, HttpGet, Route("AgvCarrying"), AllowAnonymous]
- public WebResponseContent AgvCarrying(int row, int startColumn, int endColumn, int layer, int targetLayer)
- {
- return Service.AgvCarrying(row, startColumn, endColumn, layer, targetLayer);
- }
/// <summary>
/// 娴嬭瘯鍫嗗灈鏈哄嚭搴�
/// </summary>
@@ -119,19 +114,6 @@
{
return Service.RequestWMSTaskSimple(palletCode,sourceAddress, roadWay, taskType);
}
- //[HttpPost, HttpGet, Route("WebSocketPushMessage"), AllowAnonymous]
- //public WebResponseContent WebSocketPushMessage(string message)
- //{
- // try
- // {
- // _webSocketServer.PublishAllClientPayload(message);
- // return WebResponseContent.Instance.OK();
- // }
- // catch(Exception ex)
- // {
- // return WebResponseContent.Instance.Error(ex.Message);
- // }
- //}
[HttpPost, HttpGet, Route("RecWMSTaskCompleted"), AllowAnonymous]
public WebResponseContent RecWMSTaskCompleted(int taskNum)
{
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json"
index 33aa85e..ceb7f2f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Server/appsettings.json"
@@ -13,10 +13,10 @@
"DBType": "SqlServer",
//杩炴帴瀛楃涓�
//"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
- "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WCSLLD;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
- //"ConnectionString": "Data Source=10.30.4.92;Initial Catalog=TestWCS_TC;User ID=sa;Password=duo123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+ "ConnectionString": "Data Source=192.168.35.3;Initial Catalog=WIDESEA_WCSLLD;User ID=sa;Password=Sa123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+ //"ConnectionString": "Data Source=192.168.35.3;Initial Catalog=TestWCS_TC;User ID=sa;Password=Sa123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"ConnectionString": "Data Source=10.30.4.92;Initial Catalog=TESTWCSCP_WCS;User ID=sa;Password=duo123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
- "WMSConnectionStrings": "Data Source=.;Initial Catalog=WIDESEA_WMSLLD;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+ "WMSConnectionStrings": "Data Source=192.168.35.3;Initial Catalog=WIDESEA_WMSLLD;User ID=sa;Password=Sa123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"WMSConnectionStrings": "Data Source=10.30.4.92;Initial Catalog=WIDESEAWMS_HUAIAN;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//璺ㄥ煙
"Cors": {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index fbca59f..f8398a4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -139,53 +139,6 @@
return WebResponseContent.Instance.Error(ex.Message);
}
}
- public WebResponseContent AgvCarrying(int row,int startColumn, int endColumn, int startlayer,int targetLayer)
- {
- try
- {
- List<Dt_Task> tasks = new List<Dt_Task>();
- for (int i = startColumn; i <= endColumn; i++)
- {
- string column = i.ToString();
- if (i<10)
- {
- column = "0" + i.ToString();
- }
- string layer = targetLayer.ToString();
- if (targetLayer<10)
- {
- layer = "0"+targetLayer.ToString();
- }
- Dt_Task task = new Dt_Task()
- {
- WarehouseId = 7,
- TaskNum = DateTime.Now.ToString("yyMMddHHmm").ObjToInt() + i,
- PalletCode= DateTime.Now.ToString("yyMMddHHmm") +i,
- PalletType=0,
- DeviceCode="AGV_CP",
- Roadway= "AGV_CP",
- TaskType =999,
- SourceAddress=string.Format($"AGV_CP-00{row}-0{column}-00{startlayer}-01"),
- CurrentAddress=string.Format($"AGV_CP-00{row}-0{column}-00{startlayer}-01"),
- TargetAddress= string.Format($"AGV_CP-00{row}-0{column}-00{layer}-01"),
- NextAddress= string.Format($"AGV_CP-00{row}-0{column}-00{layer}-01"),
- Grade=0,
- WMSId=0,
- AgvTaskNum = "CP" + DateTime.Now.ToString("yyMMddHHmm").ObjToInt() + i,
- TaskState = TaskStatusEnum.New.ObjToInt(),
- Remark= "娴嬭瘯绌烘"
- };
- tasks.Add(task);
- }
- BaseDal.AddData(tasks);
- return WebResponseContent.Instance.OK("");
- }
- catch (Exception ex)
- {
- return WebResponseContent.Instance.Error(ex.Message);
- }
-
- }
/// <summary>
/// 鎺ユ敹WMS浠诲姟淇℃伅
/// </summary>
@@ -211,10 +164,18 @@
task.CurrentAddress = item.SourceAddress;
Dt_Router? router;
-
+ if (task.TaskType==TaskTypeEnum.Relocation.ObjToInt())
+ {
+ task.DeviceCode = task.Roadway;
+ task.NextAddress = task.TargetAddress;
+ task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt();
+ tasks.Add(task);
+ break;
+ }
TaskTypeGroup taskTypeGroup = item.TaskType.GetTaskTypeGroup();
if (string.IsNullOrEmpty(item.AGVArea))
{
+
Dt_StationManger stationManger;
//鑾峰彇绔欏彴淇℃伅
if (taskTypeGroup == TaskTypeGroup.InboundGroup)
@@ -239,27 +200,30 @@
if (routers.Count == 1)
{
+ //鍏ュ簱
if (taskTypeGroup == TaskTypeGroup.InboundGroup)
{
task.CurrentAddress = router.StartPosi;
task.NextAddress = router.NextPosi;
task.DeviceCode = router.ChildPosiDeviceCode;
}
- else
+ else //鍑哄簱
{
task.DeviceCode = stationManger.StackerCraneCode;
task.NextAddress = router.NextPosi;
+ task.TaskState = (int)TaskStatusEnum.SC_Execute;
}
}
else
{
+ //鎴愬搧鐮佸灈浠诲姟鐢熸垚
if (taskTypeGroup == TaskTypeGroup.InboundGroup && !task.Roadway.Contains("YL"))
{
task.CurrentAddress = router.StartPosi;
task.NextAddress = "";
task.DeviceCode = router.ChildPosiDeviceCode;
}
- else
+ else if(taskTypeGroup == TaskTypeGroup.InboundGroup && task.Roadway.Contains("YL")) //鍘熸枡鍏ュ簱
{
router = routers.FirstOrDefault(x=>x.ChildPosiDeviceCode==task.Roadway);
task.CurrentAddress = router.StartPosi;
@@ -270,6 +234,7 @@
}
else
{
+ //鎴愬搧鍏ュ簱
List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && x.StartPosi=="AGV" && x.ChildPosiDeviceCode==item.RoadWay);
router = routers.FirstOrDefault();
if (routers.Count == 1)
@@ -461,42 +426,6 @@
// return content;
//}
- /// <summary>
- ///
- /// </summary>
- /// <param name="sourceAddress"></param>
- /// <param name="palletCode"></param>
- /// <param name="heightType"></param>
- /// <param name="roadways"></param>
- /// <returns></returns>
- public WebResponseContent RequestWMSTask(string palletCode, string sourceAddress, int heightType, List<string> roadways)
- {
- WebResponseContent content = new WebResponseContent();
- try
- {
- string address = AppSettings.Get("WMSApiAddress");
- if (string.IsNullOrEmpty(address))
- {
- return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃");
- }
- string responseStr = HttpHelper.Post($"{address}/api/Task/DeviceRequestInboundTaskByRoadways?stationCode={sourceAddress}&palletCode={palletCode}&heightType={heightType}", roadways.Serialize());
- WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr);
- if (responseContent != null && responseContent.Status && responseContent.Data != null)
- {
- WMSTaskDTO? taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(responseContent.Data.ToString());
- if (taskDTO != null)
- {
- content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
- }
- }
-
- }
- catch (Exception ex)
- {
- content = WebResponseContent.Instance.Error(ex.Message);
- }
- return content;
- }
/// <summary>
/// 鍒嗛厤宸烽亾
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/ConveyorLineJob_YL1ndFloor.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/ConveyorLineJob_YL1ndFloor.cs"
index e7cd405..2267256 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/ConveyorLineJob_YL1ndFloor.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/ConveyorLineJob_YL1ndFloor.cs"
@@ -126,29 +126,18 @@
}
}
- else if (conveyorLineInfoRead != null && item.StationType == StationTypeEnum.StationType_OnlyOutbound.ObjToInt() && conveyorLineInfoRead.WR_ToHode <= 0 && conveyorLineInfoRead.WR_Request == 99 && !string.IsNullOrEmpty(conveyorLineInfoRead.WR_TMID) && conveyorLineInfoRead.WR_Task <= 0) //鍑虹珯鍙板垎閰嶇洰鏍囩偣
+ else if (conveyorLineInfoRead != null && item.StationType == StationTypeEnum.StationType_OnlyOutbound.ObjToInt() && conveyorLineInfoRead.WR_ToHode <= 0 && conveyorLineInfoRead.WR_Request == 99 && conveyorLineInfoRead.WR_Task <= 0) //鍑虹珯鍙板垎閰嶇洰鏍囩偣
{
Dt_Task task = _taskRepository.QueryFirst(x => x.CurrentAddress == item.StationCode && _taskService.TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.Line_Execute.ObjToInt() && x.DeviceCode == device.DeviceCode);
if (task != null)
{
- List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == task.TaskType && task.CurrentAddress == x.StartPosi);
- Dt_Router? router = routers.FirstOrDefault();
- if (routers == null || routers.Count == 0 || router == null)
- {
- WriteError(item.StationName, $"鏈壘鍒板搴旇矾鐢变俊鎭�,璁惧缂栧彿:{item.StationCode},浠诲姟鍙�:{task.TaskNum}");
- continue;
- }
- if (routers.Count > 1)
- {
- WriteError(item.StationName, $"璺敱淇℃伅閰嶇疆閿欒,璁惧缂栧彿:{item.StationCode},浠诲姟鍙�:{task.TaskNum}");
- continue;
- }
//鍙戦�佺洰鏍囩偣
device.SetValue(WR_CLineYLDB.WR_Task, task.TaskNum, item.StationCode);
+ device.SetValue(WR_CLineYLDB.WR_Width, task.TaskLength, item.StationCode);
device.SetValue(WR_CLineYLDB.WR_TMID, task.PalletCode, item.StationCode);
- device.SetValue(WR_CLineYLDB.WR_ToHode, router.NextPosi, item.StationCode);
+ device.SetValue(WR_CLineYLDB.WR_ToHode, task.NextAddress, item.StationCode);
device.SetValue(WR_CLineYLDB.WR_Reresult, 86, item.StationCode);
- _taskService.UpdateTask(task,TaskStatusEnum.Line_Executing,nextAddress: router.NextPosi);
+ _taskService.UpdateTask(task,TaskStatusEnum.Line_Executing);
}
}
else if (conveyorLineInfoRead != null && item.StationType == StationTypeEnum.StationType_InboundAndOutbound.ObjToInt() && conveyorLineInfoRead.WR_Task > 0 && conveyorLineInfoRead.WR_Request == 98) //涓�妤艰�佸巶鍑哄簱鍙e畬鎴�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/StackerCraneJob_YLSC2.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/StackerCraneJob_YLSC2.cs"
index 0d28a1b..4c1a6ca 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/StackerCraneJob_YLSC2.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\345\216\237\346\226\231\345\272\223/StackerCraneJob_YLSC2.cs"
@@ -132,16 +132,10 @@
return WebResponseContent.Instance.Error($"鏈壘鍒拌矾鐢变俊鎭�,{task.NextAddress}");
}
int oldStatus = task.TaskState;
- task.DeviceCode = stationManger.StationDeviceCode;
- task.TaskState = TaskStatusEnum.Line_Execute.ObjToInt();
- task.CurrentAddress = stationManger.StationCode;
- task.NextAddress = router.NextPosi;
- task.TargetAddress = router.NextPosi;
- _taskRepository.UpdateData(task);
//todo 鍫嗗灈鏈哄畬鎴愬畬鎴�
- //_taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, deviceCode: stationManger.StationDeviceCode, currentAddress: stationManger.StationCode, nextAddress: router.NextPosi, targetAddress: router.NextPosi);
+ _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, deviceCode: stationManger.StationDeviceCode, currentAddress: stationManger.StationCode, nextAddress: router.NextPosi);
_taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"绯荤粺鑷姩娴佺▼,浠诲姟鐘舵�佷粠銆恵oldStatus}銆戣浆鍒般�恵task.TaskState}銆�");
- WriteInfo(deviceCode, $"鍫嗗灈鏈轰换鍔″畬鎴�,浠诲姟鍙�:{taskNum}");
+ WriteInfo(deviceCode, $"鍫嗗灈鏈哄嚭搴撲换鍔″畬鎴�,浠诲姟鍙�:{taskNum}");
}
else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup || task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
{
@@ -203,28 +197,28 @@
}
}
- //if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
- //{
- // if (OutTaskStationIsOccupied(task) == null)
- // {
- // bool flag = false;
- // List<string> otherOutStaionCodes = _routerService.QueryNextRoutes(commonStackerCrane.DeviceCode, task.NextAddress, task.TaskType).Select(x => x.ChildPosi).ToList();
- // List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode, otherOutStaionCodes);
- // foreach (var item in tasks)
- // {
- // if (OutTaskStationIsOccupied(task) != null)
- // {
- // flag = true;
- // break;
- // }
- // }
- // if (!flag)
- // {
- // task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
- // }
- // }
- //}
-
+ if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+ {
+ if (OutTaskStationIsOccupied(task) == null)
+ {
+ bool flag = false;
+ List<string> otherOutStaionCodes = _routerService.QueryNextRoutes(commonStackerCrane.DeviceCode, task.NextAddress, task.TaskType).Select(x => x.ChildPosi).ToList();
+ List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode, otherOutStaionCodes);
+ foreach (var item in tasks)
+ {
+ if (OutTaskStationIsOccupied(task) != null)
+ {
+ flag = true;
+ break;
+ }
+ }
+ if (!flag)
+ {
+ task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
+ }
+ }
+ }
+ task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode);
return task;
}
@@ -242,7 +236,7 @@
if (device != null)
{
OtherDevice client = (OtherDevice)device;
- if (client.GetValue<R_ConveyorLineCPDB, short>(R_ConveyorLineCPDB.Command, stationManger.StationCode) == 3)//鍑哄簱绔欏彴鏈鍗犵敤
+ if (client.GetValue<WR_CLineYLDB, short>(WR_CLineYLDB.WR_Request, stationManger.StationCode) != 99)//鍑哄簱绔欏彴鏈鍗犵敤
{
task.NextAddress = stationManger.StackerCraneStationCode;
_taskRepository.UpdateData(task);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
index 85f37d2..06e8917 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/AGV_CPExtend.cs"
@@ -90,6 +90,10 @@
{
throw new Exception("鏈壘鍒癆GV绔欑偣");
}
+ if (!stationMangerStart.StationCode.Contains("PNT") && stationMangerEnd.StationCode.Contains("PNT"))
+ {
+ agvTaskSend.TaskCode = "DUIGAO2";
+ }
//鍙戦�丄GV浠诲姟
WebResponseContent content = _taskService.AgvSendTask(agvTaskSend, APIEnum.AgvSendTask);
if (!content.Status)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPD.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPD.cs"
index 5f2809f..d36d9ec 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPD.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/ConveyorLineJob_CPD.cs"
@@ -100,12 +100,31 @@
//鏇存柊浠诲姟淇℃伅
task.CurrentAddress = item.StationCode;
task.NextAddress = router.NextPosi;
- task.PalletType = 1;
- task.PalletCode = conveyorLineInfoRead.PalletCode;
_taskService.UpdateTask(task, TaskStatusEnum.Line_Executing);
WriteInfo(item.StationName, $"浠诲姟鍙穥conveyorLineInfoRead.TaskNo}涓嬩竴姝�");
}
}
+ else if (conveyorLineInfoRead != null && conveyorLineInfoRead.Command == 2 && conveyorLineInfoRead.TaskNo > 0)
+ {
+ Dt_Task task = _taskRepository.QueryFirst(x =>x.TaskNum== conveyorLineInfoRead.TaskNo && x.NextAddress == item.StationCode && _taskService.TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == TaskStatusEnum.Line_Executing.ObjToInt() && x.DeviceCode == device.DeviceCode);
+ if (task != null)
+ {
+ //鍒嗛厤宸烽亾 瀛樺叆鎵樼洏鏁版嵁
+ List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == task.TaskType && task.NextAddress == x.StartPosi);
+ Dt_Router router = routers.FirstOrDefault();
+ if (router == null)
+ {
+ WriteError(item.StationName, $"浠诲姟鍙�:{task.TaskNum}鏈壘鍒拌矾鐢遍厤缃俊鎭�");
+ return Task.CompletedTask;
+ }
+ //鏇存柊浠诲姟淇℃伅
+ task.CurrentAddress = router.StartPosi;
+ task.NextAddress = task.TargetAddress;
+ task.DeviceCode = router.NextPosi;
+ _taskService.UpdateTask(task, TaskStatusEnum.AGV_Execute);
+ WriteInfo(item.StationName, $"浠诲姟鍙穥conveyorLineInfoRead.TaskNo}涓嬩竴姝�");
+ }
+ }
}
else if (item.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt() && deviceProRead != null)
{
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/StackerCraneJob_CP.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/StackerCraneJob_CP.cs"
index 87c5655..789ddf7 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/StackerCraneJob_CP.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_Tasks/\346\210\220\345\223\201\344\273\223/StackerCraneJob_CP.cs"
@@ -136,8 +136,7 @@
task.TaskState = TaskStatusEnum.Line_Execute.ObjToInt();
task.CurrentAddress = stationManger.StationCode;
task.NextAddress = router.NextPosi;
- task.TargetAddress = router.NextPosi;
- _taskRepository.UpdateData(task);
+ _taskService.UpdateTask(task, TaskStatusEnum.Line_Execute);
//todo 鍫嗗灈鏈哄畬鎴愬畬鎴�
//_taskService.UpdateTask(task, TaskStatusEnum.Line_Execute, deviceCode: stationManger.StationDeviceCode, currentAddress: stationManger.StationCode, nextAddress: router.NextPosi, targetAddress: router.NextPosi);
_taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"绯荤粺鑷姩娴佺▼,浠诲姟鐘舵�佷粠銆恵oldStatus}銆戣浆鍒般�恵task.TaskState}銆�");
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/basic/agvStationInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/basic/agvStationInfo.vue"
index 8c72388..6d178e4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/basic/agvStationInfo.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/basic/agvStationInfo.vue"
@@ -84,6 +84,7 @@
{field:'agvStationHeight',title:'鍙栨斁楂樺害',type:'float',width:110,require:true,align:'left'},
{field:'agvFrontCode',title:'AGV鍓嶇疆鐐�',type:'string',width:110,require:true,align:'left'},
{field:'stationArea',title:'AGV鍖哄煙',type:'string',width:110,require:true,align:'left',bind: { key: "agvStationAreaEnum", data: [] }},
+ {field:'isOccupied',title:'鏄惁鍗犵敤',type:'string',width:110,require:true,align:'left',bind: { key: "enable", data: [] }},
{field:'creater',title:'鍒涘缓鑰�',type:'string',width:110,require:true,align:'left'},
{field:'createDate',title:'鍒涘缓鏃堕棿',type:'datetime',width:150,require:true,align:'left'},
{field:'modifier',title:'淇敼浜�',type:'string',width:100,align:'left'},
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/stock/stockInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/stock/stockInfo.vue"
index ccc4acd..3ba97af 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/stock/stockInfo.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/stock/stockInfo.vue"
@@ -48,8 +48,10 @@
});
const searchFormOptions = ref([
[
- { title: "鎵樼洏缂栧彿", field: "palletCode" },
- { title: "璐т綅缂栧彿", field: "locationCode" },
+ { title: "鎵樼洏缂栧彿", field: "palletCode",type:"like" },
+ { title: "璐т綅缂栧彿", field: "locationCode",type:"like" },
+ {title: "搴撳瓨缁勭粐", field:"materielInvOrgId",type:"select",dataKey:"materielInvOrgEnum",data:[]},
+ {title: "鐗╂枡缂栧彿", field:"materielCode",type:"like"},
],
]);
const columns = ref([
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/CommonEnum/AGVStationAreaEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/CommonEnum/AGVStationAreaEnum.cs"
index 2f85b79..d68fb1c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/CommonEnum/AGVStationAreaEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/CommonEnum/AGVStationAreaEnum.cs"
@@ -12,49 +12,73 @@
/// <summary>
/// 鏈堝彴鍖�
/// </summary>
- [Description("鏈堝彴鐮佸ご")]
- AreaA = 0,
-
- /// <summary>
- /// 鎴愬搧鍖�
- /// </summary>
- [Description("鎴愬搧搴撳唴")]
- AreaB = 1,
+ [Description("鏈堝彴鍖�")]
+ AreaA = 1,
/// <summary>
/// 鍏ュ簱鍖�
/// </summary>
[Description("鍏ュ簱鍖�")]
- AreaC = 2,
-
- /// <summary>
- /// 娣嬭啘鍖�
- /// </summary>
- [Description("娣嬭啘鍖�")]
- AreaD = 3,
+ AreaB = 2,
/// <summary>
/// 缁囧竷鍖�
/// </summary>
[Description("缁囧竷鍖�")]
- AreaE = 4,
+ AreaC = 3,
+
+ /// <summary>
+ /// 娣嬭啘鍖�
+ /// </summary>
+ [Description("娣嬭啘鍖�")]
+ AreaD = 4,
/// <summary>
/// 鏆傚瓨鍖�
/// </summary>
- [Description("缁囧竷鍖�")]
- AreaF = 5,
+ [Description("鏆傚瓨鍖�")]
+ AreaE = 5,
/// <summary>
/// 鍗板埛鍖�
/// </summary>
[Description("鍗板埛鍖�")]
- AreaG = 6,
+ AreaF = 6,
/// <summary>
/// 鍐插垏鍖�
/// </summary>
[Description("鍐插垏鍖�")]
- AreaH = 7
+ AreaG = 7,
+
+ /// <summary>
+ /// 鍘熸枡鍖�
+ /// </summary>
+ [Description("鍘熸枡鍖�")]
+ AreaH = 8,
+
+ /// <summary>
+ /// 绾歌鍖�
+ /// </summary>
+ [Description("绾歌鍖�")]
+ AreaI = 9,
+
+ /// <summary>
+ /// 甯冭鍖�
+ /// </summary>
+ [Description("甯冭鍖�")]
+ AreaJ = 10,
+
+ /// <summary>
+ /// 绾告澂鍖�
+ /// </summary>
+ [Description("绾告澂鍖�")]
+ AreaK = 11,
+
+ /// <summary>
+ /// 闆惧寲鍖�
+ /// </summary>
+ [Description("闆惧寲鍖�")]
+ AreaL = 12
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs"
index e672fbc..2cd97a0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/TaskEnum/TaskTypeEnum.cs"
@@ -43,6 +43,12 @@
OutAllocate = 150,
/// <summary>
+ /// 鑰佸巶鍑哄簱
+ /// </summary>
+ [Description("鑰佸巶鍑哄簱")]
+ OldOutbound = 160,
+
+ /// <summary>
/// MES鍑哄簱
/// </summary>
[Description("MES鍑哄簱")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/WareHouseEnum/WarehouseEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/WareHouseEnum/WarehouseEnum.cs"
index c3d90ee..ad755aa 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/WareHouseEnum/WarehouseEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Common/WareHouseEnum/WarehouseEnum.cs"
@@ -77,6 +77,11 @@
/// </summary>
[Description("鎴愬搧搴�")]
LLDCP,
+ /// <summary>
+ /// 鍘熸枡搴�
+ /// </summary>
+ [Description("鍘熸枡搴�")]
+ LLDYL,
}
public enum WarehouseTypEnum
{
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs"
index 01f13f3..2043f3f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_ITaskInfoService/ITaskService.cs"
@@ -72,7 +72,7 @@
WebResponseContent RequestYLWMSTaskSimple(string stationCode, string palletCode);
/// <summary>
- /// 鍒嗛厤宸烽亾
+ /// 鍒嗛厤鍘熸枡宸烽亾
/// </summary>
/// <returns></returns>
string AssignYLRoadwayNo(string palletCode);
@@ -166,5 +166,22 @@
/// <param name="startPoint"></param>
/// <returns></returns>
WebResponseContent EmptyBackTask(string barCode, string startPoint);
+
+ /// <summary>
+ /// 鎴愬搧鍑哄簱
+ /// </summary>
+ /// <param name="Count"></param>
+ /// <returns></returns>
+ WebResponseContent RequestCPWMSTaskOut(int Count);
+ /// <summary>
+ /// 鍘熸枡鍑哄簱浠诲姟
+ /// </summary>
+ /// <param name="materielCode">鐗╂枡浠g爜</param>
+ /// <param name="materielWide">鐗╂枡骞呭</param>
+ /// <param name="Count">鍗锋暟</param>
+ /// <returns></returns>
+ WebResponseContent RequestYLWMSTaskOut(string materielCode, int materielWide, int Count);
+
+ WebResponseContent IsRelocation(string startAddress, string endAddress, string roadWay);
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_AGVStationInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_AGVStationInfo.cs"
index 13a0859..ae1dc37 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_AGVStationInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_Model/Models/Basic/Dt_AGVStationInfo.cs"
@@ -40,6 +40,11 @@
[SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍖哄煙")]
public int StationArea { get; set; }
/// <summary>
+ /// 鏄惁鍗犵敤
+ /// </summary>
+ [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鏄惁鍗犵敤")]
+ public int IsOccupied { get; set; }
+ /// <summary>
/// 澶囨敞
/// </summary>
[SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "澶囨敞")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService.cs"
index 50f0f44..5ddf32a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService.cs"
@@ -72,9 +72,9 @@
{nameof(Dt_Task.CreateDate),OrderByType.Asc},
};
- public List<int> TaskTypes => typeof(TaskTypeEnum).GetEnumIndexList();
+ public List<int> TaskInboundTypes => typeof(TaskTypeEnum).GetEnumIndexList().Where(x => x >= 500 && x < 900).ToList();
- public List<int> TaskOutboundTypes => typeof(TaskTypeEnum).GetEnumIndexList();
+ public List<int> TaskOutboundTypes => typeof(TaskTypeEnum).GetEnumIndexList().Where(x => x >= 100 && x < 500).ToList();
public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IStockRepository stockRepository, IBasicService basicService, IRecordService recordService, IStockService stockService, IBasicRepository basicRepository, IApiInfoRepository apiInfoRepository, IInvokeERPService invokeERPService, IPalletTypeInfoRepository palletTypeInfoRepository, IAGVStationInfoRepository agvStationInfoRepository) : base(BaseDal)
{
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Completed.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Completed.cs"
index 4a6f8b5..1ddd8a0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Completed.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Completed.cs"
@@ -34,7 +34,7 @@
}
else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
{
- return await Task.FromResult(RelocationTaskCompleted(task));
+ return await Task.FromResult(OutboundTaskCompleted(task));
}
else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
{
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
index bd50d60..bb167ed 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
@@ -4,6 +4,7 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
+using System.Reflection.Metadata;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
@@ -189,15 +190,15 @@
}
string roadwayNo = "";
- if (stockInfo.MaterielWide < 2200 && stockInfo.MaterielThickness > 800)
+ if (stockInfo.MaterielThickness > 800)
{
- List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("SC01_YL")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
- roadwayNo = locationCounts.OrderBy(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
- }
- else if (stockInfo.MaterielWide>2200 && stockInfo.MaterielThickness>800)
- {
- List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && !x.RoadwayNo.Contains("SC01_YL")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
- roadwayNo = locationCounts.OrderBy(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
+ List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("YL")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
+ roadwayNo = locationCounts.OrderByDescending(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
+ if (stockInfo.MaterielWide > 2200)
+ {
+ locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && !x.RoadwayNo.Contains("SC01_YL")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
+ roadwayNo = locationCounts.OrderByDescending(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
+ }
}
return !string.IsNullOrEmpty(roadwayNo) ? (roadwayNo) : throw new Exception("鏈壘鍒板彲鍒嗛厤宸烽亾");
}
@@ -207,6 +208,80 @@
throw new Exception(ex.Message);
}
}
+ /// <summary>
+ /// 鍏ュ簱瀹屾垚
+ /// </summary>
+ public WebResponseContent InboundTaskCompleted(Dt_Task task)
+ {
+ try
+ {
+ Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == task.WarehouseId);
+ if (warehouse.WarehouseCode == WarehouseEnum.LLDCP.ToString()) //鎴愬搧瀹屾垚
+ {
+ Dt_LocationInfo locationInfoEnd = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
+ if (locationInfoEnd == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑缁堢偣璐т綅淇℃伅");
+ }
+ Dt_AGVStationInfo agvstation = _agvStationInfoRepository.QueryFirst(x => x.AGVStationCode == task.SourceAddress && x.StationArea == AGVStationAreaEnum.AreaA.ObjToInt());
+ if (agvstation != null)
+ {
+ agvstation.IsOccupied = WhetherEnum.False.ObjToInt();
+ }
+ Dt_ProStockInfo proStockInfo = _stockRepository.ProStockInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
+ if (proStockInfo != null && proStockInfo.StockStatus == StockStatusEmun.MES绌烘墭閫�搴�.ObjToInt())
+ {
+ task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
+ _unitOfWorkManage.BeginTran();
+ if (agvstation != null)
+ {
+ _agvStationInfoRepository.UpdateData(agvstation);
+ }
+ proStockInfo.LocationCode = locationInfoEnd.LocationCode;
+ proStockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+ _stockRepository.ProStockInfoRepository.UpdateData(proStockInfo);
+ _basicService.LocationInfoService.UpdateLocationStatus(locationInfoEnd, proStockInfo.PalletType, LocationStatusEnum.InStock, proStockInfo.WarehouseId);
+ BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.浜哄伐瀹屾垚 : WIDESEA_Core.Enums.OperateTypeEnum.鑷姩瀹屾垚);
+ _unitOfWorkManage.CommitTran();
+ }
+ else
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒板搴斿簱瀛樹俊鎭�");
+ }
+ }
+ else//鍘熸枡搴撳畬鎴�
+ {
+ Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == task.PalletCode);
+ if (stockInfo == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒板搴斿簱瀛樹俊鎭�");
+ }
+ Dt_LocationInfo locationInfoEnd = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
+ if (locationInfoEnd == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑缁堢偣璐т綅淇℃伅");
+ }
+ task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
+ _unitOfWorkManage.BeginTran();
+ stockInfo.LocationCode = locationInfoEnd.LocationCode;
+ stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+ _stockService.StockInfoService.Repository.UpdateData(stockInfo);
+ _basicService.LocationInfoService.UpdateLocationStatus(locationInfoEnd, stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId);
+ BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.浜哄伐瀹屾垚 : WIDESEA_Core.Enums.OperateTypeEnum.鑷姩瀹屾垚);
+ _unitOfWorkManage.CommitTran();
+ }
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ _unitOfWorkManage.RollbackTran();
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
+ /// <summary>
+ /// 鍒嗛厤鎴愬搧宸烽亾
+ /// </summary>
+ /// <returns></returns>
public string AssignCPRoadwayNo()
{
try
@@ -219,7 +294,20 @@
string roadwayNo = "";
List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("CP")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList();
- roadwayNo = locationCounts.OrderBy(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
+
+ //鑾峰彇褰撳墠鍏ュ簱浠诲姟涓凡鍒嗛厤宸烽亾浠诲姟鏁伴噺
+ List<LocationCount> useLocationCounts = Db.Queryable<Dt_Task>().Where(x => x.WarehouseId == warehouse.WarehouseId
+ && locationCounts.Select(j=>j.RoadwayNo).Contains(x.Roadway)
+ && TaskInboundTypes.Contains(x.TaskType)).GroupBy(x => x.Roadway).Select(x => new LocationCount { RoadwayNo = x.Roadway, Count = SqlFunc.AggregateCount(x) }).ToList();
+ foreach (var item in locationCounts)
+ {
+ LocationCount? count = useLocationCounts.FirstOrDefault(x => x.RoadwayNo == item.RoadwayNo);
+ if (count!=null)
+ {
+ item.Count -= count.Count;
+ }
+ }
+ roadwayNo = locationCounts.OrderByDescending(x => x.Count).FirstOrDefault()?.RoadwayNo ?? "";
return !string.IsNullOrEmpty(roadwayNo) ? (roadwayNo) : throw new Exception("鏈壘鍒板彲鍒嗛厤宸烽亾");
}
catch (Exception ex)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
index ec5d9d5..fb613e5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs"
@@ -20,6 +20,8 @@
using WIDESEA_Core.CodeConfigEnum;
using Microsoft.AspNetCore.Mvc;
using WIDESEA_DTO.ERP;
+using WIDESEA_Common.MaterielEnum;
+using WIDESEA_Common.WareHouseEnum;
namespace WIDESEA_TaskInfoService
{
@@ -78,6 +80,68 @@
return content;
}
/// <summary>
+ /// 鍑哄簱浠诲姟瀹屾垚
+ /// </summary>
+ public WebResponseContent OutboundTaskCompleted(Dt_Task task)
+ {
+ try
+ {
+ Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == task.WarehouseId);
+ if (warehouse.WarehouseCode == WarehouseEnum.LLDCP.ToString()) //鎴愬搧瀹屾垚
+ {
+ Dt_LocationInfo locationInfoStart = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
+ if (locationInfoStart == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑璧风偣璐т綅淇℃伅");
+ }
+ Dt_ProStockInfo proStockInfo = _stockRepository.ProStockInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
+ if (proStockInfo != null && proStockInfo.StockStatus==StockStatusEmun.鍑哄簱閿佸畾.ObjToInt())
+ {
+ task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
+ _unitOfWorkManage.BeginTran();
+ proStockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+ _stockRepository.ProStockInfoRepository.DeleteAndMoveIntoHty(proStockInfo,App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.浜哄伐瀹屾垚 : WIDESEA_Core.Enums.OperateTypeEnum.鑷姩瀹屾垚);
+ _basicService.LocationInfoService.UpdateLocationStatus(locationInfoStart, proStockInfo.PalletType, LocationStatusEnum.Free, proStockInfo.WarehouseId);
+ BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.浜哄伐瀹屾垚 : WIDESEA_Core.Enums.OperateTypeEnum.鑷姩瀹屾垚);
+ _unitOfWorkManage.CommitTran();
+ }
+ else
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒板搴斿簱瀛樹俊鎭�");
+ }
+ }
+ else//鍘熸枡搴撳畬鎴�
+ {
+ Dt_LocationInfo locationInfoStart = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
+ if (locationInfoStart == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑璧风偣璐т綅淇℃伅");
+ }
+ Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.QueryFirst(x => x.PalletCode == task.PalletCode);
+ if (stockInfo != null && stockInfo.StockStatus == StockStatusEmun.鍑哄簱閿佸畾.ObjToInt())
+ {
+ task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
+ _unitOfWorkManage.BeginTran();
+ stockInfo.StockStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt();
+ _stockRepository.StockInfoRepository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.浜哄伐瀹屾垚 : WIDESEA_Core.Enums.OperateTypeEnum.鑷姩瀹屾垚);
+ _basicService.LocationInfoService.UpdateLocationStatus(locationInfoStart, stockInfo.PalletType, LocationStatusEnum.Free, stockInfo.WarehouseId);
+ BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.浜哄伐瀹屾垚 : WIDESEA_Core.Enums.OperateTypeEnum.鑷姩瀹屾垚);
+ _unitOfWorkManage.CommitTran();
+ }
+ else
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒板搴斿簱瀛樹俊鎭�");
+ }
+ }
+ return WebResponseContent.Instance.OK();
+ }
+ catch (Exception ex)
+ {
+ _unitOfWorkManage.RollbackTran();
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ }
+ /// <summary>
/// 搴撳瓨鏁版嵁杞嚭搴撲换鍔�
/// </summary>
/// <param name="stockInfos"></param>
@@ -111,9 +175,9 @@
MaterielCode = stockInfo.MaterielCode,
Quantity = 0,
};
- if (stockInfo.StockLength>0)
+ if (stockInfo.MaterielWide>0)
{
- task.TaskLength = stockInfo.StockLength;
+ task.TaskLength = (int)stockInfo.MaterielWide;
}
tasks.Add(task);
}
@@ -121,6 +185,171 @@
}
return tasks;
}
+ public List<Dt_Task> GetTasks(List<Dt_ProStockInfo> stockInfos, TaskTypeEnum taskType)
+ {
+ List<Dt_Task> tasks = new List<Dt_Task>();
+ for (int i = 0; i < stockInfos.Count; i++)
+ {
+ Dt_ProStockInfo stockInfo = stockInfos[i];
+ if (stockInfo != null)
+ {
+ Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode);
+ if (!tasks.Exists(x => x.PalletCode == stockInfo.PalletCode))
+ {
+ Dt_Task task = new()
+ {
+ CurrentAddress = stockInfo.LocationCode,
+ Grade = 0,
+ PalletCode = stockInfo.PalletCode,
+ NextAddress = "",
+ Roadway = locationInfo.RoadwayNo,
+ SourceAddress = stockInfo.LocationCode,
+ TargetAddress = "",
+ TaskStatus = TaskStatusEnum.New.ObjToInt(),
+ TaskType = taskType.ObjToInt(),
+ TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
+ PalletType = stockInfo.PalletType,
+ WarehouseId = stockInfo.WarehouseId,
+ Quantity = 0,
+ };
+ tasks.Add(task);
+ }
+ }
+ }
+ return tasks;
+ }
+ /// <summary>
+ /// 鎴愬搧鍑哄簱
+ /// </summary>
+ /// <param name="Count"></param>
+ /// <returns></returns>
+ public WebResponseContent RequestCPWMSTaskOut(int Count)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ List<Dt_AGVStationInfo> aGVStationInfos = _agvStationInfoRepository.QueryData(x=>x.StationArea==AGVStationAreaEnum.AreaA.ObjToInt() && x.IsOccupied==WhetherEnum.False.ObjToInt());
+ if (aGVStationInfos.Count< Count)
+ {
+ return content.Error($"鍙敤缂撳瓨鏁颁笉瓒�");
+ }
+ List<Dt_ProStockInfo> stockInfos = _stockRepository.ProStockInfoRepository.QueryData(x => x.ProStockAttribute == ProStockAttributeEnum.绌烘墭.ObjToInt() && x.StockStatus == StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt()).OrderBy(x=>x.CreateDate).Take(Count).ToList();
+ List<Dt_LocationInfo> locationInfos = _basicRepository.LocationInfoRepository.QueryData(x => stockInfos.Select(x => x.LocationCode).Contains(x.LocationCode));
+ if (stockInfos.Count < Count)
+ {
+ return content.Error($"搴撳瓨鏁伴噺涓嶈冻");
+ }
+ foreach (var item in stockInfos)
+ {
+ Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x => x.LocationCode == item.LocationCode);
+ if (locationInfo != null && (locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && locationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt())
+ {
+ item.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt();
+ }
+ else
+ {
+ return content.Error($"璐т綅鐘舵�佷笉姝g‘");
+ }
+ }
+ List<Dt_Task> tasks = GetTasks(stockInfos, TaskTypeEnum.OutProduct);
+ if (tasks == null || tasks.Count <= 0)
+ {
+ return content.Error($"鐢熸垚浠诲姟澶辫触");
+ }
+ for (int i = 0; i < tasks.Count; i++)
+ {
+ aGVStationInfos[i].IsOccupied = WhetherEnum.True.ObjToInt();
+ tasks[i].TargetAddress = aGVStationInfos[i].AGVStationCode;
+ }
+ //鍒ゆ柇鏄惁鏈夊嚭搴撳崟淇℃伅
+ _unitOfWorkManage.BeginTran();
+ //鏇存柊搴撳瓨鐘舵��
+ _stockRepository.ProStockInfoRepository.UpdateData(stockInfos);
+ _agvStationInfoRepository.UpdateData(aGVStationInfos);
+ //鏇存柊璐т綅鐘舵��
+ _basicRepository.LocationInfoRepository.UpdateLocationStatus(locationInfos, LocationStatusEnum.Lock);
+ //鍔犲叆璐т綅鍙樺姩璁板綍
+ _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfos, LocationStatusEnum.Lock, LocationChangeType.OutboundAssignLocation, taskNums: tasks.Select(x => x.TaskNum).ToList());
+ //鏂板缓浠诲姟
+ BaseDal.AddData(tasks);
+ _unitOfWorkManage.CommitTran();
+ PushTasksToWCS(tasks);
+ content.OK();
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
+ /// <summary>
+ /// 鍘熸枡鍑哄簱浠诲姟
+ /// </summary>
+ /// <param name="materielCode">鐗╂枡浠g爜</param>
+ /// <param name="materielWide">鐗╂枡骞呭</param>
+ /// <param name="Count">鍗锋暟</param>
+ /// <returns></returns>
+ public WebResponseContent RequestYLWMSTaskOut(string materielCode, int materielWide, int Count)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ //鑾峰彇瀵瑰簲搴撳瓨
+ List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.QueryData(x=>x.MaterielCode==materielCode && x.MaterielWide== materielWide && x.StockStatus==StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt()).OrderBy(x=>x.CreateDate).Take(Count).ToList();
+
+ if (stockInfos.Count< Count)
+ {
+ return content.Error($"搴撳瓨{materielCode}鏁伴噺涓嶈冻");
+ }
+ //鑾峰彇璐т綅
+ List<Dt_LocationInfo> locationInfos = _basicRepository.LocationInfoRepository.QueryData(x => stockInfos.Select(x => x.LocationCode).Contains(x.LocationCode));
+ foreach (var item in stockInfos)
+ {
+ Dt_LocationInfo? locationInfo = locationInfos.FirstOrDefault(x=>x.LocationCode==item.LocationCode);
+ if (locationInfo!=null && (locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && locationInfo.LocationStatus == LocationStatusEnum.InStock.ObjToInt())
+ {
+ item.StockStatus = StockStatusEmun.鍑哄簱閿佸畾.ObjToInt();
+ }
+ else
+ {
+ return content.Error($"璐т綅鐘舵�佷笉姝g‘");
+ }
+ }
+ TaskTypeEnum taskTypeEnum = new();
+ if (stockInfos.FirstOrDefault()?.MaterielInvOrgId==MaterielInvOrgEnum.鑰佸巶.ObjToInt())
+ {
+ taskTypeEnum = TaskTypeEnum.OldOutbound;
+ }
+ else
+ {
+ taskTypeEnum = TaskTypeEnum.Outbound;
+ }
+ List<Dt_Task> tasks = GetTasks(stockInfos, taskTypeEnum);
+ if (tasks == null || tasks.Count <= 0)
+ {
+ return content.Error($"鐢熸垚浠诲姟澶辫触");
+ }
+ //鍒ゆ柇鏄惁鏈夊嚭搴撳崟淇℃伅
+ _unitOfWorkManage.BeginTran();
+ //鏇存柊搴撳瓨鐘舵��
+ _stockRepository.StockInfoRepository.UpdateData(stockInfos);
+ //鏇存柊璐т綅鐘舵��
+ _basicRepository.LocationInfoRepository.UpdateLocationStatus(locationInfos, LocationStatusEnum.Lock);
+ //鍔犲叆璐т綅鍙樺姩璁板綍
+ _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfos, LocationStatusEnum.Lock, LocationChangeType.OutboundAssignLocation,taskNums:tasks.Select(x=>x.TaskNum).ToList());
+
+ //鏂板缓浠诲姟
+ BaseDal.AddData(tasks);
+ _unitOfWorkManage.CommitTran();
+ PushTasksToWCS(tasks);
+ content.OK();
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+ }
}
}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Reloaction.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Reloaction.cs"
index 6bbdb17..7e3464f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Reloaction.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Reloaction.cs"
@@ -8,8 +8,10 @@
using WIDESEA_Common.OtherEnum;
using WIDESEA_Common.StockEnum;
using WIDESEA_Common.TaskEnum;
+using WIDESEA_Common.WareHouseEnum;
using WIDESEA_Core;
using WIDESEA_Core.Helper;
+using WIDESEA_DTO.Basic;
using WIDESEA_DTO.Task;
using WIDESEA_Model.Models;
@@ -126,37 +128,6 @@
return WebResponseContent.Instance.Error(ex.Message);
}
}
- public WebResponseContent InboundTaskCompleted(Dt_Task task)
- {
- try
- {
- Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == task.PalletCode);
- if (stockInfo == null)
- {
- return WebResponseContent.Instance.Error($"鏈壘鍒板搴斿簱瀛樹俊鎭�");
- }
- Dt_LocationInfo locationInfoEnd = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
- if (locationInfoEnd == null)
- {
- return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑缁堢偣璐т綅淇℃伅");
- }
- task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
- FeedBackWCSTaskCompleted(task.TaskNum);
- _unitOfWorkManage.BeginTran();
- stockInfo.LocationCode = locationInfoEnd.LocationCode;
- stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
- _stockService.StockInfoService.Repository.UpdateData(stockInfo);
- _basicService.LocationInfoService.UpdateLocationStatus(locationInfoEnd, stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId);
- BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.浜哄伐瀹屾垚 : WIDESEA_Core.Enums.OperateTypeEnum.鑷姩瀹屾垚);
- _unitOfWorkManage.CommitTran();
- return WebResponseContent.Instance.OK();
- }
- catch (Exception ex)
- {
- _unitOfWorkManage.RollbackTran();
- return WebResponseContent.Instance.Error(ex.Message);
- }
- }
public WebResponseContent RelocationTaskCompleted(Dt_Task task)
{
try
@@ -196,5 +167,54 @@
return WebResponseContent.Instance.Error(ex.Message);
}
}
+ public WebResponseContent IsRelocation(string startAddress,string endAddress,string roadWay)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ //鑾峰彇璐т綅
+ Dt_LocationInfo startLocationInfo = _basicRepository.LocationInfoRepository.QueryFirst(x => x.LocationCode == startAddress);
+ Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.QueryFirst(x => x.LocationCode == startAddress);
+ Dt_LocationInfo endLocationInfo = _basicRepository.LocationInfoRepository.QueryFirst(x => x.LocationCode == endAddress);
+ if (startLocationInfo != null && endLocationInfo != null && stockInfo!=null)
+ {
+ Dt_Task newTask = new Dt_Task()
+ {
+ Roadway = roadWay,
+ WarehouseId = stockInfo.WarehouseId,
+ CurrentAddress = startLocationInfo.LocationCode,
+ Grade = 99,
+ NextAddress = endLocationInfo.LocationCode,
+ OrderNo = "",
+ PalletCode = stockInfo.PalletCode,
+ PalletType = stockInfo.PalletType,
+ SourceAddress = startLocationInfo.LocationCode,
+ TargetAddress = endLocationInfo.LocationCode,
+ TaskNum = Repository.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
+ TaskStatus = 0,
+ TaskType = TaskTypeEnum.Relocation.ObjToInt()
+ };
+ stockInfo.StockStatus = StockStatusEmun.绉诲簱閿佸畾.ObjToInt();
+ _unitOfWorkManage.BeginTran();
+ Repository.AddData(newTask);
+ _basicService.LocationInfoService.UpdateLocationStatus(startLocationInfo, stockInfo.PalletType, LocationStatusEnum.Lock, stockInfo.WarehouseId);
+ _basicService.LocationInfoService.UpdateLocationStatus(endLocationInfo, stockInfo.PalletType, LocationStatusEnum.Lock, stockInfo.WarehouseId);
+ _stockService.StockInfoService.Repository.UpdateData(stockInfo);
+ _unitOfWorkManage.CommitTran();
+ PushTasksToWCS(new List<Dt_Task> { newTask });
+ content.OK("鎴愬姛");
+ }
+ else
+ {
+ content.Error("搴撳瓨璐т綅淇℃伅涓虹┖");
+ }
+ }
+ catch (Exception ex)
+ {
+ _unitOfWorkManage.RollbackTran();
+ content.Error(ex.Message);
+ }
+ return content;
+ }
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs"
index 2c8be3d..24cc3df 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_WMSServer/Controllers/TaskInfo/TaskController.cs"
@@ -182,5 +182,39 @@
{
return Service.RequestYLWMSTaskSimple(stationCode,palletCode);
}
+
+ /// <summary>
+ /// 鎴愬搧鍑哄簱浠诲姟璇锋眰
+ /// </summary>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("RequestCPWMSTaskOut"), AllowAnonymous]
+ public WebResponseContent RequestCPWMSTaskOut(int Count)
+ {
+ return Service.RequestCPWMSTaskOut(Count);
+ }
+ /// <summary>
+ /// 鍘熸枡鍑哄簱浠诲姟
+ /// </summary>
+ /// <param name="materielCode">鐗╂枡浠g爜</param>
+ /// <param name="materielWide">鐗╂枡骞呭</param>
+ /// <param name="Count">鍗锋暟</param>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("RequestYLWMSTaskOut"), AllowAnonymous]
+ public WebResponseContent RequestYLWMSTaskOut(string materielCode,int materielWide, int Count)
+ {
+ return Service.RequestYLWMSTaskOut(materielCode, materielWide, Count);
+ }
+ /// <summary>
+ /// 鍘熸枡绉诲簱浠诲姟
+ /// </summary>
+ /// <param name="startAddress"></param>
+ /// <param name="endAddress"></param>
+ /// <param name="roadWay"></param>
+ /// <returns></returns>
+ [HttpPost, HttpGet, Route("Relocation"), AllowAnonymous]
+ public WebResponseContent IsRelocation(string startAddress, string endAddress, string roadWay)
+ {
+ return Service.IsRelocation(startAddress, endAddress, roadWay);
+ }
}
}
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\345\210\251\346\213\223\347\263\273\347\273\237\345\257\271\351\276\231\345\210\251\345\276\227\344\272\214\346\234\237\347\263\273\347\273\237\347\232\204\351\234\200\346\261\202.docx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\345\210\251\346\213\223\347\263\273\347\273\237\345\257\271\351\276\231\345\210\251\345\276\227\344\272\214\346\234\237\347\263\273\347\273\237\347\232\204\351\234\200\346\261\202.docx"
index 73b7081..9b63aad 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\345\210\251\346\213\223\347\263\273\347\273\237\345\257\271\351\276\231\345\210\251\345\276\227\344\272\214\346\234\237\347\263\273\347\273\237\347\232\204\351\234\200\346\261\202.docx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\345\210\251\346\213\223\347\263\273\347\273\237\345\257\271\351\276\231\345\210\251\345\276\227\344\272\214\346\234\237\347\263\273\347\273\237\347\232\204\351\234\200\346\261\202.docx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\345\257\271\346\216\245\350\256\260\345\275\225.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\345\257\271\346\216\245\350\256\260\345\275\225.xlsx"
index f6ca304..f094204 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\345\257\271\346\216\245\350\256\260\345\275\225.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\212\200\346\234\257\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\351\241\271\347\233\256\345\257\271\346\216\245\350\256\260\345\275\225.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/MES.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/MES.xlsx"
new file mode 100644
index 0000000..d537c49
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/MES.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\267\347\202\271\344\275\215.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\267\347\202\271\344\275\215.xlsx"
index 77ff942..6ff358f 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\267\347\202\271\344\275\215.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\346\216\245\345\217\243\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\267\347\202\271\344\275\215.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\345\216\237\346\226\231\345\272\223\350\276\223\351\200\201\347\272\277\351\200\232\350\256\257\345\215\217\350\256\256.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\345\216\237\346\226\231\345\272\223\350\276\223\351\200\201\347\272\277\351\200\232\350\256\257\345\215\217\350\256\256.xlsx"
index 7000985..a1adcea 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\345\216\237\346\226\231\345\272\223\350\276\223\351\200\201\347\272\277\351\200\232\350\256\257\345\215\217\350\256\256.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\345\216\237\346\226\231\345\272\223\350\276\223\351\200\201\347\272\277\351\200\232\350\256\257\345\215\217\350\256\256.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\210\220\345\223\201\350\276\223\351\200\201\347\272\277\351\200\232\350\256\257\345\215\217\350\256\256_20250707.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\210\220\345\223\201\350\276\223\351\200\201\347\272\277\351\200\232\350\256\257\345\215\217\350\256\256_20250707.xlsx"
index e873504..a745a85 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\210\220\345\223\201\350\276\223\351\200\201\347\272\277\351\200\232\350\256\257\345\215\217\350\256\256_20250707.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\346\210\220\345\223\201\350\276\223\351\200\201\347\272\277\351\200\232\350\256\257\345\215\217\350\256\256_20250707.xlsx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\350\275\257\344\273\266\350\256\241\345\210\222\350\241\250.xlsx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\350\275\257\344\273\266\350\256\241\345\210\222\350\241\250.xlsx"
index 61acd3f..4a86236 100644
--- "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\350\275\257\344\273\266\350\256\241\345\210\222\350\241\250.xlsx"
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/\351\276\231\345\210\251\345\276\227\350\275\257\344\273\266\350\256\241\345\210\222\350\241\250.xlsx"
Binary files differ
--
Gitblit v1.9.3