From ac2920c6c36227646c03a38c76a335120b449817 Mon Sep 17 00:00:00 2001
From: Zhang-Hong-Lin <a3219986988@163.com>
Date: 星期日, 06 七月 2025 18:29:13 +0800
Subject: [PATCH] 优先级
---
项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs | 80 +++++++++++++++++++++++++++++++++-------
1 files changed, 66 insertions(+), 14 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs"
index b29a8be..7292299 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs"
@@ -20,12 +20,16 @@
public IRepository<Dt_LocationInfo> Repository => BaseDal;
private readonly IRepository<dt_storagemode> _dt_storagemode;
private readonly IMapper _mapper;
+ private readonly IRepository<Dt_StockInfo> _stockInfoRepository;
+ private readonly IRepository<dt_batchInfo> _batchInfoRepository;
//private readonly Idt_ErrormsginfoService _ErrormsginfoService;
- public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal, IRepository<dt_storagemode> storagemode, IMapper mapper) : base(BaseDal)
+ public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal, IRepository<dt_storagemode> storagemode, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<dt_batchInfo> batchInfoRepository, IMapper mapper) : base(BaseDal)
{
_dt_storagemode = storagemode;
_mapper = mapper;
+ _stockInfoRepository = stockInfoRepository;
+ _batchInfoRepository = batchInfoRepository;
}
public override PageGridData<Dt_LocationInfo> GetPageData(PageDataOptions options)
@@ -40,6 +44,35 @@
Dt_LocationInfo locationInfo = BaseDal.QueryFirst(x => x.Id == id);
locationInfo.LocationStatus = locationStatus;
locationInfo.EnableStatus = enableStatus;
+ //鏈夎揣鐢熸垚搴撳瓨淇℃伅
+ if (locationStatus == 2)
+ {
+ //鍒ゆ柇鏄惁瀛樺湪搴撳瓨淇℃伅
+ var w = _stockInfoRepository.QueryFirst(x => x.LocationCode == locationInfo.LocationCode);
+ if(w == null)
+ {
+ Dt_StockInfo stockInfo = new Dt_StockInfo();
+ //鏌ヨ褰撳墠闇�瑕佸嚭搴撶殑鎵规鍙凤紝浠ュ強鍑哄簱鐗╂枡绫诲瀷
+ var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1);
+ stockInfo.BatchNo = batch.OutBatch;
+ stockInfo.Weight = 4;
+ stockInfo.LocationCode = locationInfo.LocationCode;
+ stockInfo.WarehouseId = 0;
+ stockInfo.StockStatus = 0;
+ stockInfo.Remark = 1;
+ _stockInfoRepository.AddData(stockInfo);
+ }
+ }
+ //鏃犺揣鍒犻櫎搴撳瓨淇℃伅
+ else if(locationStatus == 0)
+ {
+ //鍒ゆ柇鏄惁瀛樺湪搴撳瓨淇℃伅
+ var w = _stockInfoRepository.QueryFirst(x => x.LocationCode == locationInfo.LocationCode);
+ if (w != null)
+ {
+ _stockInfoRepository.DeleteData(w);
+ }
+ }
return UpdateData(locationInfo);
//return base.UpdateData(saveModel);
}
@@ -116,9 +149,18 @@
try
{
var mode = _dt_storagemode.QueryFirst(v=>v.Id==1);
- if (mode.storagemode==(int)StorageModeEnum.Out)
+ if (InMode == 6)
{
- var locations = BaseDal.QueryData(v=>v.EnableStatus== (int)EnableStatusEnum.Normal && v.LocationStatus==(int)LocationStatusEnum.Free).OrderBy(v=>v.Row).ToList();
+ var locations = BaseDal.QueryData(v => v.EnableStatus == (int)EnableStatusEnum.Normal && v.LocationStatus == (int)LocationStatusEnum.Free && v.LocationType==(int)LocationTypeEnum.Cube).OrderBy(v => v.Row).ToList();
+ if (locations.Count <= 0)
+ {
+ throw new Exception($"鍏ュ簱浼樺厛璐т綅鍒嗛厤澶辫触锛屽綋鍓嶆棤绌洪棽璐т綅");
+ }
+ location = locations[0];
+ }
+ else if (mode.storagemode==(int)StorageModeEnum.Out)
+ {
+ var locations = BaseDal.QueryData(v=>v.EnableStatus== (int)EnableStatusEnum.Normal && v.LocationStatus==(int)LocationStatusEnum.Free && v.LocationType == (int)LocationTypeEnum.Flat).OrderBy(v=>v.Row).ToList();
if (locations.Count<=0)
{
throw new Exception($"鍑哄簱浼樺厛璐т綅鍒嗛厤澶辫触锛屽綋鍓嶆棤绌洪棽璐т綅");
@@ -127,7 +169,7 @@
}
else if(mode.storagemode == (int)StorageModeEnum.In)
{
- var locations = BaseDal.QueryData(v => v.EnableStatus == (int)EnableStatusEnum.Normal && v.LocationStatus == (int)LocationStatusEnum.Free).OrderByDescending(v => v.Row).ToList();
+ var locations = BaseDal.QueryData(v => v.EnableStatus == (int)EnableStatusEnum.Normal && v.LocationStatus == (int)LocationStatusEnum.Free && v.LocationType == (int)LocationTypeEnum.Flat).OrderByDescending(v => v.Row).ToList();
if (locations.Count <= 0)
{
throw new Exception($"鍏ュ簱浼樺厛璐т綅鍒嗛厤澶辫触锛屽綋鍓嶆棤绌洪棽璐т綅");
@@ -136,21 +178,31 @@
}
if (location!=null)
{
- //鏌ユ壘鐩搁偦鐨勫簱浣�
- Dt_LocationInfo Towlocation = new Dt_LocationInfo();
- var Onelocation = BaseDal.QueryFirst(v => v.LocationCode == location.LocationCode);
- if (Onelocation.Depth == 1)
+ if (InMode == 6)
{
- Towlocation = BaseDal.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2);
+ location.LocationStatus = (int)LocationStatusEnum.Lock;
+ BaseDal.UpdateData(location);
}
else
{
- Towlocation = BaseDal.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1);
+ //鏌ユ壘鐩搁偦鐨勫簱浣�
+ Dt_LocationInfo Towlocation = new Dt_LocationInfo();
+
+ var Onelocation = BaseDal.QueryFirst(v => v.LocationCode == location.LocationCode);
+
+ if (Onelocation.Depth == 1)
+ {
+ Towlocation = BaseDal.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2);
+ }
+ else
+ {
+ Towlocation = BaseDal.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1);
+ }
+ location.LocationStatus = (int)LocationStatusEnum.Lock;
+ Towlocation.LocationStatus = (int)LocationStatusEnum.Lock;
+ BaseDal.UpdateData(location);
+ BaseDal.UpdateData(Towlocation);
}
- location.LocationStatus = (int)LocationStatusEnum.Lock;
- Towlocation.LocationStatus = (int)LocationStatusEnum.Lock;
- BaseDal.UpdateData(location);
- BaseDal.UpdateData(Towlocation);
}
}
catch (Exception ex)
--
Gitblit v1.9.3