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 | 149 +++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 135 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 9226319..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"
@@ -1,7 +1,6 @@
-锘�
-
-using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
+锘縰sing AutoMapper;
using WIDESEAWCS_Common.LocationEnum;
+using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
@@ -16,19 +15,67 @@
/// <summary>
/// 璐т綅淇℃伅涓氬姟鎺ュ彛瀹炵幇灞�
/// </summary>
- public partial class LocationInfoService : ServiceBase<Dt_LocationInfo, IRepository<Dt_LocationInfo>>, ILocationInfoService
+ public class LocationInfoService : ServiceBase<Dt_LocationInfo, IRepository<Dt_LocationInfo>>, ILocationInfoService
{
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) : 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)
{
return base.GetPageData(options);
}
-
+ public override WebResponseContent UpdateData(SaveModel saveModel)
+ {
+ int id = saveModel.MainData["id"].ObjToInt();
+ int locationStatus = saveModel.MainData["locationStatus"].ObjToInt();
+ int enableStatus = saveModel.MainData["enableStatus"].ObjToInt();
+ 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);
+ }
public WebResponseContent GetLocationLayer()
{
WebResponseContent content = new WebResponseContent();
@@ -52,7 +99,7 @@
return content = WebResponseContent.Instance.Error(ex.Message);
}
}
- public WebResponseContent getlocation()
+ public WebResponseContent getlocation()
{
WebResponseContent content = new WebResponseContent();
try
@@ -60,13 +107,13 @@
List<Dt_LocationInfo> locationInfos = new List<Dt_LocationInfo>();
for (int i = 1; i < 38; i++)
{
- for (int a = 1; a < 7; a++)
+ for (int a = 1; a < 12; a++)
{
for (int g = 1; g < 3; g++)
{
Dt_LocationInfo location = new Dt_LocationInfo();
- location.LocationCode = i+"-"+a+"-"+g;
- location.LocationName = i+ "琛�" + a + "鍒�" + "宸ヤ綅" + g;
+ location.LocationCode = i + "-" + a + "-" + g;
+ location.LocationName = i + "琛�" + a + "鍒�" + "宸ヤ綅" + g;
location.RoadwayNo = "TC1";
location.Row = i;
location.Column = a;
@@ -74,7 +121,7 @@
location.Depth = g;
location.LocationType = (int)LocationTypeEnum.Flat;
location.LocationStatus = (int)LocationStatusEnum.Free;
- location.EnableStatus=(int)EnableStatusEnum.Normal;
+ location.EnableStatus = (int)EnableStatusEnum.Normal;
location.CreateDate = DateTime.Now;
location.ModifyDate = DateTime.Now;
location.Creater = "WCS";
@@ -89,6 +136,80 @@
{
return content = WebResponseContent.Instance.Error(ex.Message);
}
+ }
+
+ /// <summary>
+ /// 鏍规嵁閫夋嫨鐨勫叆搴撹鍒欏垎閰嶈揣浣�
+ /// </summary>
+ /// <param name="InMode"></param>
+ /// <returns></returns>
+ public Dt_LocationInfo GetInLocation(int InMode)
+ {
+ Dt_LocationInfo location = new Dt_LocationInfo();
+ try
+ {
+ var mode = _dt_storagemode.QueryFirst(v=>v.Id==1);
+ if (InMode == 6)
+ {
+ 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($"鍑哄簱浼樺厛璐т綅鍒嗛厤澶辫触锛屽綋鍓嶆棤绌洪棽璐т綅");
+ }
+ location = locations[0];
+ }
+ else if(mode.storagemode == (int)StorageModeEnum.In)
+ {
+ 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($"鍏ュ簱浼樺厛璐т綅鍒嗛厤澶辫触锛屽綋鍓嶆棤绌洪棽璐т綅");
+ }
+ location = locations[0];
+ }
+ if (location!=null)
+ {
+ if (InMode == 6)
+ {
+ location.LocationStatus = (int)LocationStatusEnum.Lock;
+ BaseDal.UpdateData(location);
+ }
+ else
+ {
+ //鏌ユ壘鐩搁偦鐨勫簱浣�
+ 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);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ return location;
}
public WebResponseContent GetLocationConfigs(int layer)
@@ -153,12 +274,12 @@
Row = i + 1,
};
-
+
locationInfo.Depth = 1;
locationInfo.LocationCode = $"{locationInfo.Row.ToString().PadLeft(3, '0')}-{locationInfo.Column.ToString().PadLeft(3, '0')}-{locationInfo.Layer.ToString().PadLeft(3, '0')}";
locationInfo.LocationName = $"{locationInfo.Row.ToString().PadLeft(3, '0')}琛寋locationInfo.Column.ToString().PadLeft(3, '0')}鍒梴locationInfo.Layer.ToString().PadLeft(3, '0')}灞�";
-
-
+
+
locationInfos.Add(locationInfo);
}
--
Gitblit v1.9.3