From bce2cc310d462ffbe56ee3d9f3d9368abf481aad Mon Sep 17 00:00:00 2001
From: huanghongfeng <huanghongfeng@hnkhzn.com>
Date: 星期四, 06 十一月 2025 16:02:35 +0800
Subject: [PATCH] 最新
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs | 165 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 159 insertions(+), 6 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
index f44e941..267c874 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
@@ -18,6 +18,11 @@
using WIDESEA_Common.TaskEnum;
using WIDESEA_Common.StockEnum;
using WIDESEA_Common.LocationEnum;
+using WIDESEA_Common.CommonEnum;
+using WIDESEA_DTO.ToMes;
+using System.Diagnostics;
+using WIDESEA_Common.OtherEnum;
+using WIDESEA_Core.Const;
namespace WIDESEA_TaskInfoService
{
@@ -40,10 +45,12 @@
PushTasksToWCS(new List<Dt_Task> { task });
return WebResponseContent.Instance.OK($"璇ユ墭鐩樺凡鐢熸垚浠诲姟", _mapper.Map<WMSTaskDTO>(task));
}
- if (Repository.QueryFirst(x => x.SourceAddress == stationCode && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null)
+ /* if (Repository.QueryFirst(x => x.SourceAddress == stationCode && x.TaskStatus == OutTaskStatusEnum.New.ObjToInt()) != null)
{
return WebResponseContent.Instance.Error($"璇ョ珯鐐瑰凡鏈夋湭鎵ц鐨勪换鍔�");
- }
+ }*/
+
+
//Dt_StockInfo stockInfo = _stockRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
//if (stockInfo == null)
@@ -63,7 +70,7 @@
Dt_Warehouse warehouse = _warehouseRepository.QueryFirst(x => x.WarehouseCode == roadwayInfo.RoadwayNo);
if (warehouse == null)
{
- return WebResponseContent.Instance.Error("鏈壘鍒版敼浠撳簱");
+ return WebResponseContent.Instance.Error("鏈壘鍒拌浠撳簱");
}
Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayInfo.RoadwayNo, warehouse.WarehouseId, "");//
if (locationInfo == null)
@@ -90,9 +97,9 @@
Roadway = "1",
SourceAddress = "",
TargetAddress = locationInfo.LocationCode,
- TaskType = TaskTypeEnum.Inbound.ObjToInt(),
- TaskStatus = TaskStatusEnum.New.ObjToInt(),
- WarehouseId = 1,
+ TaskType = TaskInboundTypeEnum.Inbound.ObjToInt(),
+ TaskStatus = TaskInStatusEnum.Line_InExecuting.ObjToInt(),
+ WarehouseId = warehouse.WarehouseId,
//PalletType = GetPalletType(warehouse, palletCode),//GetPalletType(warehouse, palletCode)
Creater = "WCS",
CreateDate = DateTime.Now
@@ -118,5 +125,151 @@
}
}
+
+ /// <summary>
+ /// 鍒涘缓鍏ュ簱浠诲姟
+ /// </summary>
+ /// <param name="inboundTask"></param>
+ /// <returns></returns>
+ /// <exception cref="NotImplementedException"></exception>
+ public ApiResponse<object> sendEnTask(InOutboundTaskReceived inboundTask)
+ {
+ WebResponseContent webResponseContent = new WebResponseContent();
+
+ try
+ {
+ List<Dt_Task> AddtaskList = new List<Dt_Task>();
+ List<Dt_LocationInfo> Adddt_Locations = new List<Dt_LocationInfo>();
+ List<Dt_StockInfo> Adddtstockt = new List<Dt_StockInfo>();
+
+ if (inboundTask.palletInfoList.Count > 0)
+ {
+ List<Dt_Task> taskData = BaseDal.QueryData();
+ List<Dt_StockInfo> Stockdata = _stockRepository.QueryData();
+
+ /*Dt_StationManger dt_Station = _stationMangerService.QueryPlatform(inboundTask.NodeCode);
+ if (dt_Station == null) return MESresponse($"鏈壘鍒扮珯鍙颁俊鎭�,绔欏彴缂栧彿锛歿inboundTask.NodeCode}", false);*/
+
+ foreach (PalletInfo palletInfo in inboundTask.palletInfoList)
+ {
+ Dt_LocationInfo location = null;
+ if (palletInfo.locationCode == null || palletInfo.locationCode == "")
+ {
+ location = _basicService.LocationInfoService.GetLocationInfo();//鑾峰彇鍒版柊搴撲綅
+ }
+ else
+ {
+ location = _locationInfoRepository.QueryFirst(x => x.LocationCode == palletInfo.locationCode);
+ }
+ if (location == null) return MESresponse($"鏈壘鍒拌揣浣嶄俊鎭�,鏉$爜锛歿palletInfo.palletCode}", false);
+ if (location.LocationStatus != (int)LocationStatusEnum.Free) return MESresponse($"鎵樼洏鏉$爜锛歿palletInfo.palletCode}锛屾煡鎵惧埌鐨勮揣浣嶏細{location.LocationCode},涓嶄负绌鸿揣浣嶏紒", false);
+
+ Dt_StockInfo dt_ = Stockdata.Where(x => x.PalletCode == palletInfo.palletCode).FirstOrDefault();
+ if (dt_ == null)
+ {
+ //鍒涘缓缁勭洏淇℃伅
+ var dt_Stock = new Dt_StockInfo
+ {
+ PalletCode = palletInfo.palletCode,
+ PalletType = 1,
+ LocationCode = location.LocationCode,
+ StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+ Creater = "WMS",
+ CreateDate = DateTime.Now,
+ MESsubPalletCode = palletInfo.palletCode,
+ };
+ Adddtstockt.Add(dt_Stock);
+ }
+ else
+ {
+ if(dt_.StockStatus == (int)StockStatusEmun.宸插叆搴�)
+ {
+ return MESresponse($"璇ュ簱瀛樻潯鐮佸凡鍏ュ簱锛屼笉鍙噸澶嶅叆搴�,鏉$爜锛歿palletInfo.palletCode}", false);
+ }
+ }
+
+ string TaregtAddres = "";
+ if (inboundTask.NodeCode !="2011" && inboundTask.NodeCode != "2009")
+ {
+ int nextTaregt = int.Parse(inboundTask.NodeCode);
+ //纭鐩爣绔欏彴锛堝浐瀹氾級
+ TaregtAddres = (nextTaregt + 1).ToString();
+ }
+ else
+ {
+ TaregtAddres = location.RoadwayNo == "SC01" ? "2021" : "2020";
+ }
+
+
+
+
+ location.LocationStatus = (int)LocationStatusEnum.InStockLock;
+
+ //鐢熸垚绉诲姩浠诲姟
+ Dt_Task dt_Task = new()
+ {
+ PalletCode = palletInfo.palletCode,
+ TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
+ Roadway = location.RoadwayNo,
+ TaskType = TaskInboundTypeEnum.Inbound.ObjToInt(),
+ TaskStatus = TaskInStatusEnum.Line_InExecuting.ObjToInt(),
+ SourceAddress = TaregtAddres,
+ TargetAddress = location.LocationCode,
+ CurrentAddress = TaregtAddres,
+ NextAddress = location.LocationCode,
+ Grade = 1,
+ Creater = "MES",
+ Depth = location.Depth,
+ CreateDate = DateTime.Now,
+ MEStaskId = inboundTask.TaskId,
+ MESbusinessId = inboundTask.BusinessId,
+ MESsubPalletCode = palletInfo.subPalletCode,
+ OutboundPlatform = inboundTask.NodeCode
+ };
+
+ Adddt_Locations.Add(location);
+ AddtaskList.Add(dt_Task);
+ }
+ if (Adddtstockt.Count > 0 && Adddt_Locations.Count > 0 && AddtaskList.Count > 0)
+ {
+ _unitOfWorkManage.BeginTran();
+
+
+ _stockRepository.AddData(Adddtstockt);
+ _locationInfoRepository.UpdateData(Adddt_Locations);
+ BaseDal.AddData(AddtaskList);
+
+ var respon = PushTasksToWCS(AddtaskList, "");
+ if (respon.Status)
+ {
+ _unitOfWorkManage.CommitTran(); //鎻愪氦浜嬪姟
+ return MESresponse("", true);
+ }
+ else
+ {
+ _unitOfWorkManage.RollbackTran(); //鍥炴粴浜嬪姟
+ return MESresponse($"涓嬪彂鍑哄簱澶辫触锛屽師鍥狅細{respon.Message}锛�", false);
+ }
+
+ }
+ else
+ {
+ return MESresponse("浠诲姟鐢熸垚澶辫触锛�", false);
+ }
+
+ }
+ else
+ {
+ return MESresponse("鎺ユ敹鍒癕ES鎵樼洏缂栫爜鍒楄〃鏃犳暟鎹紒", false);
+ }
+ }
+ catch (Exception ex)
+ {
+ _unitOfWorkManage.RollbackTran(); //鍥炴粴浜嬪姟
+ return MESresponse($"涓嬪彂鍑哄簱澶辫触锛屽師鍥狅細{ex.Message}锛�", false);
+ throw;
+ }
+ }
+
}
}
--
Gitblit v1.9.3