From 8f9b9411ca279670bd85fcfa7763987295ed9abf Mon Sep 17 00:00:00 2001
From: zhanghonglin <zhanghonglin@hnkhzn.com>
Date: 星期五, 10 四月 2026 10:55:38 +0800
Subject: [PATCH] 空桶入出扩展开发
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 320 +++++++++++++++++++++++++++++++++++-----------------
1 files changed, 213 insertions(+), 107 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index fca3355..0c5dff4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -50,10 +50,9 @@
private readonly IRepository<Dt_StockInfos> _IStockInfosRepository;
private readonly IRepository<Dt_FillingOrder> _FillingOrderRepository;
private readonly IRepository<Dt_OutboundOrder> _OutboundOrderRepository;
- //WCS婊℃《鍑哄簱淇″彿
- private static bool kk = false;
+ private readonly IRepository<Dt_OutboundOrder_Hty> _OutboundOrderHtyRepository;
- public TaskService(IRepository<Dt_Task> BaseDal, IRepository<Dt_OutboundOrder> OutboundOrderRepository, IRepository<Dt_FillingOrder> FillingOrderRepository, IRepository<Dt_StockInfos> IStockInfosRepository, ILocationInfoService ILocationInfoService, IRepository<Dt_StockInfoDetail> IStockInfoDetailRepository, IRepository<Dt_StockInfo_hty> IStockInfohtyRepository, IRepository<Dt_StockInfoDetail_Hty> IStockInfoDetailHtyRepository, IRepository<Dt_Outstockinfo> IOutstockinfoService, IStockService IStockService, IRepository<Dt_Warehouse> WarehouseService, IRepository<Dt_Outstockinfo> OutstockinfoRepository, ILocationInfoService LocationInfoService, IRepository<Dt_StockInfo> StockInfoRepository, IRepository<Dt_LocationInfo> LocationInfoRepository, IRepository<Dt_Task_Hty> Task_HtyRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+ public TaskService(IRepository<Dt_Task> BaseDal, IRepository<Dt_OutboundOrder_Hty> OutboundOrderHtyRepository, IRepository<Dt_OutboundOrder> OutboundOrderRepository, IRepository<Dt_FillingOrder> FillingOrderRepository, IRepository<Dt_StockInfos> IStockInfosRepository, ILocationInfoService ILocationInfoService, IRepository<Dt_StockInfoDetail> IStockInfoDetailRepository, IRepository<Dt_StockInfo_hty> IStockInfohtyRepository, IRepository<Dt_StockInfoDetail_Hty> IStockInfoDetailHtyRepository, IRepository<Dt_Outstockinfo> IOutstockinfoService, IStockService IStockService, IRepository<Dt_Warehouse> WarehouseService, IRepository<Dt_Outstockinfo> OutstockinfoRepository, ILocationInfoService LocationInfoService, IRepository<Dt_StockInfo> StockInfoRepository, IRepository<Dt_LocationInfo> LocationInfoRepository, IRepository<Dt_Task_Hty> Task_HtyRepository, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
{
_LocationInfoService = LocationInfoService;
_unitOfWorkManage = unitOfWorkManage;
@@ -71,6 +70,7 @@
_IStockInfosRepository = IStockInfosRepository;
_FillingOrderRepository = FillingOrderRepository;
_OutboundOrderRepository = OutboundOrderRepository;
+ _OutboundOrderHtyRepository = OutboundOrderHtyRepository;
}
public IRepository<Dt_Task> Repository => BaseDal;
@@ -90,9 +90,12 @@
{
WebResponseContent content = new WebResponseContent();
Dt_Task task = new Dt_Task();
+ //鏌ヨ褰撳墠鍏ュ簱绌烘《绫诲瀷
+ Dt_Outstockinfo Warehouse = _OutstockinfoRepository.QueryFirst(x => x.Id == 1);
//鍏ュ簱鍒嗛厤璐т綅
Dt_LocationInfo locations = _LocationInfoService.AllotLocationInfo(1);
locations.LocationStatus = (int)LocationStatusEnum.Lock;
+ locations.Remark = Warehouse.EmptyOutSet;
task.SourceAddress = location;
task.TargetAddress = locations.LocationCode;
@@ -100,7 +103,7 @@
task.Grade = 1;
task.TaskType = (int)TaskTypeEnum.InEmpty;
task.TaskState = (int)TaskStatusEnum.InNew;
- task.TaskNum = DateTime.Now.ToString("mmss").ObjToInt();
+ task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt());
//寮�濮嬫暟鎹簱浜嬪姟
_unitOfWorkManage.BeginTran();
@@ -148,12 +151,10 @@
//鍏ュ簱鍒嗛厤璐т綅
Dt_LocationInfo locations = _LocationInfoService.AllotLocationInfo(k);
- locations.LocationStatus = (int)LocationStatusEnum.Lock;
//鍒涘缓鐗╂枡缁勭洏
Dt_StockInfo stockInfo = new Dt_StockInfo();
stockInfo.LocationCode = locations.LocationCode;
- stockInfo.StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨;
stockInfo.MaterielCode1 = stock.MaterialCode1;
stockInfo.MaterielCode2 = stock.MaterialCode2;
stockInfo.MaterielCode3 = stock.MaterialCode3;
@@ -167,24 +168,29 @@
//姝e父鍏ュ簱
if (outstockinfo.OutMode == 1)
{
+ locations.LocationStatus = (int)LocationStatusEnum.Lock;
+ stockInfo.StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨;
+
task.SourceAddress = stock.location;
task.TargetAddress = locations.LocationCode;
task.Roadway = "SC01";
task.Grade = 1;
task.TaskType = (int)TaskTypeEnum.Infull;
task.TaskState = (int)TaskStatusEnum.InNew;
- task.TaskNum = DateTime.Now.ToString("mmss").ObjToInt();
+ task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt());
}
//鐩存帴鍑哄簱
else
{
+ stockInfo.StockStatus = (int)StockStatusEmun.鐩存帴鍑哄簱;
+
task.SourceAddress = "1-52-1";
task.TargetAddress = locations.LocationCode;
task.Roadway = "SC01";
task.Grade = 1;
task.TaskType = (int)TaskTypeEnum.OutDirect;
task.TaskState = (int)TaskStatusEnum.InNew;
- task.TaskNum = DateTime.Now.ToString("mmss").ObjToInt();
+ task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt());
}
//寮�濮嬫暟鎹簱浜嬪姟
@@ -204,7 +210,7 @@
return content;
}
- //WCS鍏ュ簱浠诲姟瀹屾垚
+ //WCS浠诲姟瀹屾垚
public Stock WCSAccomplishIn(int TaskNum)
{
Stock content = new Stock();
@@ -293,6 +299,7 @@
//淇敼璐т綅鐘舵��
Dt_LocationInfo locationInfo = _LocationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress);
locationInfo.LocationStatus = (int)LocationStatusEnum.Free;
+ locationInfo.Remark = "";
//鐢熸垚鍘嗗彶浠诲姟
Dt_Task_Hty taskhty = new Dt_Task_Hty();
@@ -323,7 +330,6 @@
{
//鍒犻櫎搴撳瓨淇℃伅
Dt_StockInfo stockInfo = _StockInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress);
- List<Dt_StockInfoDetail> stockInfoDetail = _IStockInfoDetailRepository.QueryData(x => x.MaterielDetailedid == stockInfo.MaterielDetailedid);
//鐢熸垚鍘嗗彶搴撳瓨淇℃伅
Dt_StockInfo_hty stockInfo_Hty = new Dt_StockInfo_hty();
stockInfo_Hty.PalletCode = stockInfo.PalletCode;
@@ -337,13 +343,6 @@
stockInfo_Hty.MaterielCode4 = stockInfo.MaterielCode4;
stockInfo_Hty.StockType = stockInfo.StockType;
stockInfo_Hty.MaterielDetailedid = stockInfo.MaterielDetailedid;
- List<Dt_StockInfoDetail_Hty> stockInfoDetail_Hty = new List<Dt_StockInfoDetail_Hty>();
- int k = stockInfoDetail.Count() - 1;
- for (int i = 0; i <= k; i++)
- {
- stockInfoDetail_Hty[i].MaterielCode = stockInfoDetail[i].MaterielCode;
- stockInfoDetail_Hty[i].MaterielDetailedid = stockInfoDetail[i].MaterielDetailedid;
- }
//淇敼璐т綅鐘舵��
Dt_LocationInfo locationInfo = _LocationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress);
@@ -374,12 +373,12 @@
//寮�濮嬫暟鎹簱浜嬪姟
_unitOfWorkManage.BeginTran();
_StockInfoRepository.DeleteData(stockInfo);
- _IStockInfoDetailRepository.DeleteData(stockInfoDetail);
_IStockInfohtyRepository.AddData(stockInfo_Hty);
- _IStockInfoDetailHtyRepository.AddData(stockInfoDetail_Hty);
_LocationInfoRepository.UpdateData(locationInfo);
_Task_HtyRepository.AddData(taskhty);
BaseDal.DeleteData(task);
+ //鍒ゆ柇璁㈠崟浠诲姟鏄惁瀹屾垚
+ OrderTask(task, stockInfo);
//鎻愪氦浜嬪姟
_unitOfWorkManage.CommitTran();
}
@@ -388,7 +387,6 @@
{
//鍒犻櫎搴撳瓨淇℃伅
Dt_StockInfo stockInfo = _StockInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress);
- List<Dt_StockInfoDetail> stockInfoDetail = _IStockInfoDetailRepository.QueryData(x => x.MaterielDetailedid == stockInfo.MaterielDetailedid);
//鐢熸垚鍘嗗彶搴撳瓨淇℃伅
Dt_StockInfo_hty stockInfo_Hty = new Dt_StockInfo_hty();
stockInfo_Hty.PalletCode = stockInfo.PalletCode;
@@ -402,27 +400,6 @@
stockInfo_Hty.MaterielCode4 = stockInfo.MaterielCode4;
stockInfo_Hty.StockType = stockInfo.StockType;
stockInfo_Hty.MaterielDetailedid = stockInfo.MaterielDetailedid;
- List<Dt_StockInfoDetail_Hty> stockInfoDetail_Hty = new List<Dt_StockInfoDetail_Hty>();
- int k = stockInfoDetail.Count() - 1;
- for (int i = 0; i <= k; i++)
- {
- stockInfoDetail_Hty[i].MaterielCode = stockInfoDetail[i].MaterielCode;
- stockInfoDetail_Hty[i].MaterielDetailedid = stockInfoDetail[i].MaterielDetailedid;
- stockInfoDetail_Hty[i].BarcodeType = stockInfoDetail[i].BarcodeType;
- stockInfoDetail_Hty[i].AuxQty = stockInfoDetail[i].AuxQty;
- stockInfoDetail_Hty[i].Quantity = stockInfoDetail[i].Quantity;
- stockInfoDetail_Hty[i].MaxQty = stockInfoDetail[i].MaxQty;
- stockInfoDetail_Hty[i].BarWeight = stockInfoDetail[i].BarWeight;
- stockInfoDetail_Hty[i].PackageQty = stockInfoDetail[i].PackageQty;
- stockInfoDetail_Hty[i].QuantityIn = stockInfoDetail[i].QuantityIn;
- stockInfoDetail_Hty[i].QuantityOut = stockInfoDetail[i].QuantityOut;
- stockInfoDetail_Hty[i].Status = stockInfoDetail[i].Status;
- stockInfoDetail_Hty[i].Materialld = stockInfoDetail[i].Materialld;
- stockInfoDetail_Hty[i].BatchNum = stockInfoDetail[i].BatchNum;
- stockInfoDetail_Hty[i].CreateEmpld = stockInfoDetail[i].CreateEmpld;
- stockInfoDetail_Hty[i].Taskld = stockInfoDetail[i].Taskld;
- stockInfoDetail_Hty[i].TaskSubld = stockInfoDetail[i].TaskSubld;
- }
//鐢熸垚鍘嗗彶浠诲姟
Dt_Task_Hty taskhty = new Dt_Task_Hty();
@@ -446,19 +423,81 @@
content.MaterialCode3 = stockInfo.MaterielCode3;
content.MaterialCode4 = stockInfo.MaterielCode4;
- //寮�濮嬫暟鎹簱浜嬪姟
- _unitOfWorkManage.BeginTran();
- _StockInfoRepository.DeleteData(stockInfo);
- _IStockInfoDetailRepository.DeleteData(stockInfoDetail);
- _IStockInfohtyRepository.AddData(stockInfo_Hty);
- _IStockInfoDetailHtyRepository.AddData(stockInfoDetail_Hty);
- _Task_HtyRepository.AddData(taskhty);
- BaseDal.DeleteData(task);
- //鎻愪氦浜嬪姟
- _unitOfWorkManage.CommitTran();
+ //鏌ヨ褰撳墠鎵ц鐨勮鍗�
+ Dt_OutboundOrder OutboundOrder = _OutboundOrderRepository.QueryFirst(x => x.BoundOrderStatue == (int)OutboundOrderEnum.Execute);
+ Dt_OutboundOrder_Hty OutboundOrder_Hty = new Dt_OutboundOrder_Hty();
+ int num = OutboundOrder.BoundTaskNum + 1;
+ OutboundOrder.BoundTaskNum = num;
+ //鍒ゆ柇璁㈠崟鏄惁鎵ц瀹屾垚
+ if (num == OutboundOrder.num)
+ {
+ //鐢熸垚鍘嗗彶璁㈠崟
+ OutboundOrder_Hty.MaterielName = OutboundOrder.MaterielName;
+ OutboundOrder_Hty.num = OutboundOrder.num;
+ OutboundOrder_Hty.BoundOrderType = OutboundOrder.BoundOrderType;
+ OutboundOrder_Hty.BoundOrderCode = OutboundOrder.BoundOrderCode;
+ OutboundOrder_Hty.BoundOrderStatue = (int)OutboundOrderEnum.Accomplish;
+
+ //淇敼鍏ュ簱妯″紡
+ Dt_Outstockinfo outstockinfo = _IOutstockinfoService.QueryFirst(x => x.Id == 1);
+ outstockinfo.OutMode = 0;
+
+ //寮�濮嬫暟鎹簱浜嬪姟
+ _unitOfWorkManage.BeginTran();
+ _StockInfoRepository.DeleteData(stockInfo);
+ _IStockInfohtyRepository.AddData(stockInfo_Hty);
+ _Task_HtyRepository.AddData(taskhty);
+ BaseDal.DeleteData(task);
+ _OutboundOrderRepository.DeleteData(OutboundOrder);
+ _OutboundOrderHtyRepository.AddData(OutboundOrder_Hty);
+ _IOutstockinfoService.UpdateData(outstockinfo);
+ //鎻愪氦浜嬪姟
+ _unitOfWorkManage.CommitTran();
+ }
+ else
+ {
+ //寮�濮嬫暟鎹簱浜嬪姟
+ _unitOfWorkManage.BeginTran();
+ _StockInfoRepository.DeleteData(stockInfo);
+ _IStockInfohtyRepository.AddData(stockInfo_Hty);
+ _Task_HtyRepository.AddData(taskhty);
+ BaseDal.DeleteData(task);
+ _OutboundOrderRepository.UpdateData(OutboundOrder);
+ //鎻愪氦浜嬪姟
+ _unitOfWorkManage.CommitTran();
+ }
}
return content;
+ }
+
+ //鍒ゆ柇璁㈠崟浠诲姟鏄惁瀹屾垚
+ public void OrderTask(Dt_Task task, Dt_StockInfo stock)
+ {
+ //鍒ゆ柇鏄惁涓鸿鍗曚换鍔�
+ if (task.Remark != null && task.Remark.Equals(""))
+ {
+ //鍒ゆ柇褰撳墠璁㈠崟浠诲姟鏄惁杩樻湁鏈墽琛屽畬鎴愮殑
+ Dt_Task tasks = BaseDal.QueryFirst(x => x.Remark == task.Remark);
+ if (tasks == null)
+ {
+ Dt_OutboundOrder OutboundOrder = _OutboundOrderRepository.QueryFirst(x=>x.MaterielName == stock.MaterielName && x.BoundOrderCode == task.Remark);
+ //鐢熸垚鍘嗗彶璁㈠崟
+ Dt_OutboundOrder_Hty OutboundOrder_Hty = new Dt_OutboundOrder_Hty();
+ OutboundOrder_Hty.MaterielName = OutboundOrder.MaterielName;
+ OutboundOrder_Hty.num = OutboundOrder.num;
+ OutboundOrder_Hty.BoundOrderType = OutboundOrder.BoundOrderType;
+ OutboundOrder_Hty.BoundOrderCode = OutboundOrder.BoundOrderCode;
+ OutboundOrder_Hty.BoundOrderStatue = (int)OutboundOrderEnum.Accomplish;
+
+ //寮�濮嬫暟鎹簱浜嬪姟
+ _unitOfWorkManage.BeginTran();
+ _OutboundOrderHtyRepository.AddData(OutboundOrder_Hty);
+ _OutboundOrderRepository.UpdateData(OutboundOrder);
+ //鎻愪氦浜嬪姟
+ _unitOfWorkManage.CommitTran();
+ }
+ }
}
//鏍规嵁浠诲姟鍙锋煡璇换鍔�
@@ -510,7 +549,7 @@
task.Grade = 1;
task.TaskType = (int)TaskTypeEnum.OutEmpty;
task.TaskState = (int)TaskStatusEnum.OutNew;
- task.TaskNum = DateTime.Now.ToString("mmss").ObjToInt();
+ task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt());
//寮�濮嬫暟鎹簱浜嬪姟
_unitOfWorkManage.BeginTran();
@@ -528,48 +567,83 @@
}
//鏍规嵁鏁伴噺鍜岀绫讳笅鍙戞弧妗跺嚭搴撲换鍔�
- public WebResponseContent ArtificialTask(int Num, string Types)
+ public WebResponseContent ArtificialTask(int Num, string Types, string? remark)
{
WebResponseContent content = new WebResponseContent();
List<Dt_Task> tasks = new List<Dt_Task>();
List<Dt_LocationInfo> LocationInfo = new List<Dt_LocationInfo>();
List<Dt_StockInfo> StockInfo = new List<Dt_StockInfo>();
- if (Num > 0 && !Types.Equals("") && Types != null && kk == true)
+ if (Num > 0 && !Types.Equals("") && Types != null)
{
- Dt_Outstockinfo outstockinfo = _OutstockinfoRepository.QueryFirst(x => x.Id == 1);
- //婊�
- if (outstockinfo.BigOrLittle == 1)
+ Dt_Warehouse Warehouse = _WarehouseRepository.QueryFirst(x=>x.MateriaCode == Types);
+ //婊℃《鍑哄簱
+ if (Warehouse == null)
{
- //鑾峰彇骞堕攣瀹氱墿鏂�
- StockInfo = _IStockService.PriorityBig(Num, Types);
- if (StockInfo == null || StockInfo.Count <= 0)
+ Dt_Outstockinfo outstockinfo = _OutstockinfoRepository.QueryFirst(x => x.Id == 1);
+ //婊�
+ if (outstockinfo.BigOrLittle == 1)
{
- StockInfo = _IStockService.PriorityLittle(Num, Types);
- }
- }
- //娈�
- else
- {
- //鑾峰彇骞堕攣瀹氱墿鏂�
- StockInfo = _IStockService.PriorityLittle(Num, Types);
- if (StockInfo == null || StockInfo.Count <= 0)
- {
+ //鑾峰彇骞堕攣瀹氱墿鏂�
StockInfo = _IStockService.PriorityBig(Num, Types);
+ if (StockInfo == null || StockInfo.Count <= 0)
+ {
+ StockInfo = _IStockService.PriorityLittle(Num, Types);
+ }
+ }
+ //娈�
+ else
+ {
+ //鑾峰彇骞堕攣瀹氱墿鏂�
+ StockInfo = _IStockService.PriorityLittle(Num, Types);
+ if (StockInfo == null || StockInfo.Count <= 0)
+ {
+ StockInfo = _IStockService.PriorityBig(Num, Types);
+ }
+ }
+
+ //鍒涘缓浠诲姟
+ if (StockInfo != null && StockInfo.Count > 0)
+ {
+ //鑾峰彇骞堕攣瀹氳揣浣�
+ LocationInfo = _ILocationInfoService.StockLockLocation(StockInfo);
+ //鍒涘缓浠诲姟
+ tasks = StocksAddTasks(StockInfo, remark);
+ }
+ else
+ {
+ return content.Error("鐗╂枡涓嶈冻");
}
}
-
- //鍒涘缓浠诲姟
- if (StockInfo != null && StockInfo.Count > 0)
+ //绌烘《鍑哄簱
+ else
{
//鑾峰彇骞堕攣瀹氳揣浣�
- LocationInfo = _ILocationInfoService.StockLockLocation(StockInfo);
- //鍒涘缓浠诲姟
- tasks = StocksAddTasks(StockInfo);
- }
- else
- {
- return content.Error("鐗╂枡涓嶈冻");
+ LocationInfo = _LocationInfoRepository.QueryData(x => x.Remark == Types && x.LocationStatus == (int)LocationStatusEnum.EmptyBarrel).Take(Num).ToList();
+ if (LocationInfo.Count() == Num)
+ {
+ string StationName = "婊℃《鍑�";
+ string StationNames = SelectStationManger(StationName);
+ foreach (var item in LocationInfo)
+ {
+ item.LocationStatus = (int)LocationStatusEnum.Lock;
+
+ //鍒涘缓浠诲姟
+ Dt_Task task = new Dt_Task();
+ task.SourceAddress = item.LocationCode;
+ task.TargetAddress = StationNames;
+ task.Roadway = "SC01";
+ task.Grade = 1;
+ task.TaskType = (int)TaskTypeEnum.OutEmpty;
+ task.TaskState = (int)TaskStatusEnum.OutNew;
+ task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt());
+ tasks.Add(task);
+ }
+ }
+ else
+ {
+ return content.Error("鐗╂枡涓嶈冻");
+ }
}
//寮�濮嬫暟鎹簱浜嬪姟
@@ -588,14 +662,14 @@
}
else
{
- LogLock.OutLogAOP("鎺ュ彛鏃ュ織", new string[] { "涓嬪彂鏁伴噺銆佺绫绘垨淇″彿寮傚父" });
- return content.Error("涓嬪彂鏁伴噺銆佺绫绘垨淇″彿寮傚父");
+ LogLock.OutLogAOP("鎺ュ彛鏃ュ織", new string[] { "涓嬪彂鏁伴噺鎴栫绫诲紓甯�" });
+ return content.Error("涓嬪彂鏁伴噺鎴栫绫诲紓甯�");
}
return content;
}
//鏍规嵁澶氭潯鐗╂枡鍒涘缓澶氭潯鍑哄簱浠诲姟
- public List<Dt_Task> StocksAddTasks(List<Dt_StockInfo> StockInfo)
+ public List<Dt_Task> StocksAddTasks(List<Dt_StockInfo> StockInfo ,string? remark)
{
List<Dt_Task> tasks = new List<Dt_Task>();
int k = StockInfo.Count() - 1;
@@ -611,7 +685,8 @@
task.Grade = 1;
task.TaskType = (int)TaskTypeEnum.Outfull;
task.TaskState = (int)TaskStatusEnum.OutNew;
- task.TaskNum = DateTime.Now.ToString("mmss").ObjToInt() + i;
+ task.TaskNum = TaskNum(DateTime.Now.ToString("mmss").ObjToInt() + i);
+ task.Remark = remark;
tasks.Add(task);
}
@@ -672,6 +747,7 @@
{
Dt_LocationInfo locationInfo = _LocationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress);
locationInfo.LocationStatus = (int)LocationStatusEnum.Free;
+ locationInfo.Remark = "";
//寮�濮嬫暟鎹簱浜嬪姟
_unitOfWorkManage.BeginTran();
@@ -714,6 +790,8 @@
BaseDal.DeleteData(task);
WCSTaskDelete(task.TaskNum);
_Task_HtyRepository.AddData(taskhty);
+ //鍒ゆ柇璁㈠崟浠诲姟鏄惁瀹屾垚
+ OrderTask(task, stockInfo);
//鎻愪氦浜嬪姟
_unitOfWorkManage.CommitTran();
}
@@ -744,37 +822,65 @@
return task;
}
- //WCS婊℃《鍑哄簱淇″彿
- public WebResponseContent WCSSignal(int k)
- {
- WebResponseContent content = new WebResponseContent();
- //鍙互鍑�
- if (k == 1)
- {
- kk = true;
- }
- //涓嶅彲浠ュ嚭
- else
- {
- kk = false;
- }
-
- return content;
- }
-
//鎵ц璁㈠崟
public string ExecuteOrder(int k)
{
WebResponseContent content = new WebResponseContent();
Dt_OutboundOrder OutboundOrder = _OutboundOrderRepository.QueryFirst(x => x.Id == k);
- //涓嬪彂浠诲姟
- content = ArtificialTask(OutboundOrder.num, OutboundOrder.MaterielName);
- if (content.Message == null || content.Message.Equals(""))
+ //鐩存帴鍑哄簱璁㈠崟
+ if (OutboundOrder.BoundOrderType == 4)
{
- OutboundOrder.BoundOrderStatue = (int)OutboundOrderEnum.Execute;
- _OutboundOrderRepository.UpdateData(OutboundOrder);
+ //闃叉澶氭潯璁㈠崟鎵ц
+ Dt_OutboundOrder OutboundOrders = _OutboundOrderRepository.QueryFirst(x => x.BoundOrderStatue == (int)OutboundOrderEnum.Execute);
+ if (OutboundOrders == null)
+ {
+ //淇敼鍏ュ簱妯″紡
+ Dt_Outstockinfo outstockinfo = _IOutstockinfoService.QueryFirst(x => x.Id == 1);
+ outstockinfo.OutMode = 1;
+ OutboundOrder.BoundOrderStatue = (int)OutboundOrderEnum.Execute;
+
+ //寮�濮嬫暟鎹簱浜嬪姟
+ _unitOfWorkManage.BeginTran();
+ _IOutstockinfoService.UpdateData(outstockinfo);
+ _OutboundOrderRepository.UpdateData(OutboundOrder);
+ //鎻愪氦浜嬪姟
+ _unitOfWorkManage.CommitTran();
+ }
+ else
+ {
+ content.Message="璇风瓑寰呭叾浠栬鍗曟墽琛屽畬鎴�";
+ }
+ }
+ //鍏朵粬姝e父鍑哄簱
+ else
+ {
+ content = ArtificialTask(OutboundOrder.num, OutboundOrder.MaterielName, OutboundOrder.BoundOrderCode);
+ if (content.Message == null || content.Message.Equals(""))
+ {
+ OutboundOrder.BoundOrderStatue = (int)OutboundOrderEnum.Execute;
+ _OutboundOrderRepository.UpdateData(OutboundOrder);
+ }
}
return content.Message;
}
+
+ //闃叉浠诲姟鍙烽噸澶�
+ public int TaskNum(int num)
+ {
+ int k = num;
+ while (true)
+ {
+ Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == k);
+ if (task == null)
+ {
+ return k;
+ }
+ else
+ {
+ k = DateTime.Now.ToString("mmss").ObjToInt();
+ continue;
+ }
+ }
+ }
}
}
--
Gitblit v1.9.3