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 | 206 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 200 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 b7c8f5b..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,7 +45,48 @@
PushTasksToWCS(new List<Dt_Task> { task });
return WebResponseContent.Instance.OK($"璇ユ墭鐩樺凡鐢熸垚浠诲姟", _mapper.Map<WMSTaskDTO>(task));
}
+ /* 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)
+ //{
+ // return WebResponseContent.Instance.Error($"鏈壘鍒扮粍鐩樹俊鎭�");
+ //}
+ //var details = stockInfo.Details.FirstOrDefault();
+ //if (!string.IsNullOrEmpty(stockInfo.LocationCode))
+ //{
+ // return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡缁戝畾璐т綅");
+ //}
+ Dt_RoadwayInfo roadwayInfo = _roadwayInforepository.QueryFirst(x => x.InStationCode == stationCode);
+ if (roadwayInfo == null)
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒板垰鍏ュ簱绔欏彴鍦板潃");
+ }
+ Dt_Warehouse warehouse = _warehouseRepository.QueryFirst(x => x.WarehouseCode == roadwayInfo.RoadwayNo);
+ if (warehouse == null)
+ {
+ return WebResponseContent.Instance.Error("鏈壘鍒拌浠撳簱");
+ }
+ Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayInfo.RoadwayNo, warehouse.WarehouseId, "");//
+ if (locationInfo == null)
+ {
+ return WebResponseContent.Instance.Error($"璐т綅鍒嗛厤澶辫触,鏈壘鍒板彲鍒嗛厤璐т綅");
+ }
+ var dt_Stock = new Dt_StockInfo
+ {
+ PalletCode = palletCode,
+ PalletType = 1,
+ LocationCode = locationInfo.LocationCode,
+ StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+ Creater = "WMS",
+ CreateDate = DateTime.Now,
+ WarehouseId = warehouse.WarehouseId,
+ };
Dt_Task newTask = new Dt_Task()
{
CurrentAddress = stationCode,
@@ -50,24 +96,26 @@
OrderNo = "1",
Roadway = "1",
SourceAddress = "",
- TargetAddress = "2-20-1",
- TaskType = TaskTypeEnum.Inbound.ObjToInt(),
- TaskStatus = TaskStatusEnum.New.ObjToInt(),
- WarehouseId = 1,
+ TargetAddress = locationInfo.LocationCode,
+ TaskType = TaskInboundTypeEnum.Inbound.ObjToInt(),
+ TaskStatus = TaskInStatusEnum.Line_InExecuting.ObjToInt(),
+ WarehouseId = warehouse.WarehouseId,
//PalletType = GetPalletType(warehouse, palletCode),//GetPalletType(warehouse, palletCode)
Creater = "WCS",
CreateDate = DateTime.Now
};
_unitOfWorkManage.BeginTran();
+ locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
int taskId = BaseDal.AddData(newTask);
newTask.TaskId = taskId;
+ _stockRepository.AddData(dt_Stock);
//_stockRepository.UpdateData(stockInfo);
- //_locationInfoRepository.UpdateData(locationInfo);
+ _locationInfoRepository.UpdateData(locationInfo);
_unitOfWorkManage.CommitTran();
WMSTaskDTO wMSTaskDTO = _mapper.Map<WMSTaskDTO>(newTask);
- //PushTasksToWCS(new List<Dt_Task> { newTask });
+ PushTasksToWCS(new List<Dt_Task> { newTask });
return WebResponseContent.Instance.OK(data: wMSTaskDTO);
}
catch (Exception ex)
@@ -77,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