From cbf06cbb2e7988fdee53507dede034756ebfbf59 Mon Sep 17 00:00:00 2001
From: hutongqing <hutongqing@hnkhzn.com>
Date: 星期二, 14 一月 2025 15:47:40 +0800
Subject: [PATCH] 1
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/LocationInfoService.cs | 131 ++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 128 insertions(+), 3 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/LocationInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/LocationInfoService.cs"
index b48d9f6..b291525 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/LocationInfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Base/LocationInfoService.cs"
@@ -1,4 +1,5 @@
锘縰sing HslCommunication.WebSocket;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using SqlSugar;
using System;
@@ -6,16 +7,22 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_Common.CommonEnum;
using WIDESEA_Common.LocationEnum;
+using WIDESEA_Common.StockEnum;
using WIDESEA_Core;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Const;
+using WIDESEA_Core.DB;
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
+using WIDESEA_Core.Seed;
using WIDESEA_Core.Utilities;
using WIDESEA_DTO.Basic;
using WIDESEA_IBasicRepository;
using WIDESEA_IBasicService;
+using WIDESEA_IStockRepository;
using WIDESEA_Model.Models;
namespace WIDESEA_BasicService
@@ -23,12 +30,15 @@
public partial class LocationInfoService : ServiceBase<Dt_LocationInfo, ILocationInfoRepository>, ILocationInfoService
{
private readonly IUnitOfWorkManage _unitOfWorkManage;
-
+ private readonly IBasicRepository _basicRepository;
+ private readonly IStockInfoRepository _stockInfoRepository;
public ILocationInfoRepository Repository => BaseDal;
- public LocationInfoService(ILocationInfoRepository BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
+ public LocationInfoService(ILocationInfoRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IBasicRepository basicRepository, IStockInfoRepository stockInfoRepository) : base(BaseDal)
{
_unitOfWorkManage = unitOfWorkManage;
+ _basicRepository = basicRepository;
+ _stockInfoRepository = stockInfoRepository;
}
/// <summary>
@@ -86,6 +96,121 @@
}
/// <summary>
+ /// 鑾峰彇杈呮枡浠撳簱瀛�
+ /// </summary>
+ /// <returns></returns>
+ public WebResponseContent GetContainerInfo()
+ {
+ try
+ {
+ SqlSugarClient TesugarClient = new SqlSugarClient(new ConnectionConfig
+ {
+ ConfigId = MainDb.CurrentDbConnId,
+ ConnectionString = AppSettings.Get("TeConnectionString").DecryptDES(AppSecret.DB),
+ IsAutoCloseConnection = true,
+ DbType = MainDb.DbType,
+ });
+
+ var ContainerInfos = TesugarClient.Queryable("ContainerInfo", "x").Where("WaId", "=", 8).Where("UpState", "=", 2).ToList();
+ if (ContainerInfos != null)
+ {
+ List<Dt_StockInfo> stockInfos = new List<Dt_StockInfo>();
+ foreach (var item in ContainerInfos)
+ {
+ dynamic ruleConfig = item;
+ int id = ruleConfig.CId;//涓婚敭
+ string BoxNo = ruleConfig.BoxNo;//绠卞彿
+ string LNo = ruleConfig.LNo;//璐т綅缂栧彿
+ Dt_StockInfo stockInfo = new Dt_StockInfo()
+ {
+ LocationCode = LNo == "骞冲簱浣�" ? LNo : GetLocationCode(LNo),
+ PalletCode = BoxNo,
+ StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(),
+ WarehouseId = 5,
+ PalletType = PalletTypeEnum.LargestPallet.ObjToInt(),
+ Details = new List<Dt_StockInfoDetail>()
+ };
+ var ContainerDetailsInfos = TesugarClient.Queryable("ContainerDetailsInfo", "x").Where("CId", "=", id).ToList();
+ if (ContainerDetailsInfos.Count < 1) stockInfo.PalletType = PalletTypeEnum.Empty.ObjToInt();
+ foreach (var ContainerDetailsInfo in ContainerDetailsInfos)
+ {
+ dynamic ruleConfig1 = ContainerDetailsInfo;
+ string MaterialCode = ruleConfig1.MaterialCode;//鐗╂枡缂栧彿
+ string MaterialName = ruleConfig1.MaterialName;//鐗╂枡鍚嶇О
+ string MaterialLot = ruleConfig1.MaterialLot;//鐗╂枡鎵瑰彿
+ var PackQty = ruleConfig1.PackQty;//鏁伴噺
+ string ProduceData = ruleConfig1.ProduceData;//鐢熸垚鏃ユ湡
+ string ValidData = ruleConfig1.ValidData;//鏈夋晥鏈�
+ string Unit = ruleConfig1.Unit;//鍗曚綅
+ string Standard = ruleConfig1.Standard;//澶囨敞
+ int MId = ruleConfig1.MId;//鍏ュ簱鍗曟槑缁嗚鍙�
+ string Model = ruleConfig1.Model;//鍗曟嵁缂栧彿
+ Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
+ {
+ MaterielCode = MaterialCode,
+ MaterielName = MaterialName,
+ BatchNo = MaterialLot,
+ OrderNo = Model,
+ SerialNumber = "",
+ StockQuantity = (float)PackQty,
+ OutboundQuantity = 0,
+ Unit = Unit,
+ Status = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt(),
+ ProductionDate = ProduceData,
+ EffectiveDate = ValidData ?? DateTime.Parse(ProduceData).AddYears(2).ToString("yyyy-MM-dd"),
+ Remark = Standard,
+ InboundOrderRowNo = MId,
+ };
+ stockInfo.Details.Add(stockInfoDetail);
+ }
+ stockInfos.Add(stockInfo);
+ }
+ var LocationCodes = stockInfos.Where(x => x.LocationCode != "骞冲簱浣�").Select(stockInfo => stockInfo.LocationCode).ToList();
+ List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => LocationCodes.Contains(x.LocationCode));
+ locationInfos.ForEach(x =>
+ {
+ x.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
+ x.EnableStatus = EnableStatusEnum.Normal.ObjToInt();
+ });
+ _unitOfWorkManage.BeginTran();
+ _stockInfoRepository.Db.InsertNav(stockInfos).Include(x => x.Details).ExecuteCommand();
+ Repository.UpdateData(locationInfos);
+ _unitOfWorkManage.CommitTran();
+ }
+ }
+ catch (Exception ex)
+ {
+ _unitOfWorkManage.RollbackTran();
+ return WebResponseContent.Instance.Error(ex.Message);
+ }
+ return WebResponseContent.Instance.OK();
+ }
+ /// <summary>
+ /// 鑾峰彇璐т綅缂栧彿
+ /// </summary>
+ /// <param name="locationCode"></param>
+ /// <returns></returns>
+ string GetLocationCode(string locationCode)
+ {
+ var a = locationCode.Substring(0, 1);
+ var Row = a switch
+ {
+ "A" => "001",
+ "B" => "002",
+ "C" => "003",
+ "D" => "004",
+ "E" => "005",
+ _ => throw new Exception($"鏈畾涔夌殑鎺�,鍦板潃:銆恵locationCode}銆�"),
+ };
+ var Column = locationCode.Substring(4, 2);
+ if (locationCode.Length == 7)
+ Column = locationCode.Substring(5, 2);
+ var Layer = locationCode.Substring(2, 2);
+ locationCode = "AGV_FL-" + Row + "-0" + Column + "-0" + Layer + "-01";
+ return locationCode;
+ }
+
+ /// <summary>
/// 鍒濆鍖栬揣浣�
/// </summary>
/// <param name="initializationLocationDTO"></param>
@@ -129,7 +254,7 @@
Layer = k + 1,
LocationStatus = LocationStatusEnum.Free.ObjToInt(),
LocationType = LocationTypeEnum.Undefined.ObjToInt(),
- RoadwayNo = $"R{initializationLocationDTO.Roadway.ToString()}",
+ RoadwayNo = $"{initializationLocationDTO.Roadway.ToString()}",
Row = i + 1,
Depth = depth,
};
--
Gitblit v1.9.3