From 68628c6cc163cddfcc745c225a9f3f34767261ef Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期六, 22 十一月 2025 20:44:40 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/ZhongRui/ALDbanyunxiangmu
---
项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_OutboundService/SplitPackageService.cs | 209 +++++++++-------------------------------------------
1 files changed, 37 insertions(+), 172 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/SplitPackageService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/SplitPackageService.cs"
index 34b8f2b..3c4b50b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/SplitPackageService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_OutboundService/SplitPackageService.cs"
@@ -17,6 +17,7 @@
using WIDESEA_IOutboundService;
using WIDESEA_IStockService;
using WIDESEA_Model.Models;
+using WIDESEA_Model.Models.Basic;
namespace WIDESEA_OutboundService
{
@@ -30,9 +31,9 @@
private readonly IOutStockLockInfoService _outStockLockInfoService;
private readonly IDailySequenceService _dailySequenceService;
private readonly IInvokeMESService _invokeMESService;
-
+ private readonly IMaterielToMesService _materielToMesService;
private readonly ILogger<SplitPackageService> _logger;
- public SplitPackageService(IRepository<Dt_SplitPackageRecord> BaseDal, IUnitOfWorkManage unitOfWorkManage, IStockInfoService stockInfoService, IOutStockLockInfoService outStockLockInfoService, IStockInfoDetailService stockInfoDetailService, IDailySequenceService dailySequenceService, IInvokeMESService invokeMESService, ILogger<SplitPackageService> logger) : base(BaseDal)
+ public SplitPackageService(IRepository<Dt_SplitPackageRecord> BaseDal, IUnitOfWorkManage unitOfWorkManage, IStockInfoService stockInfoService, IOutStockLockInfoService outStockLockInfoService, IStockInfoDetailService stockInfoDetailService, IDailySequenceService dailySequenceService, IInvokeMESService invokeMESService, ILogger<SplitPackageService> logger, IMaterielToMesService materielToMesService) : base(BaseDal)
{
_unitOfWorkManage = unitOfWorkManage;
_stockInfoService = stockInfoService;
@@ -41,172 +42,8 @@
_dailySequenceService = dailySequenceService;
_invokeMESService = invokeMESService;
_logger = logger;
+ _materielToMesService = materielToMesService;
}
-
- /// <summary>
- /// 鎷嗗寘鎷嗙鎿嶄綔
- /// </summary>
- //public async Task<WebResponseContent> SplitPackage(SplitPackageDto request)
- //{
- // try
- // {
- // _unitOfWorkManage.BeginTran();
-
- // // 1. 楠岃瘉鍑哄簱閿佸畾淇℃伅
- // var lockInfo = await _outStockLockInfoService.Db.Queryable<Dt_OutStockLockInfo>()
- // .Where(x => x.OrderNo == request.OrderNo &&
- // x.PalletCode == request.PalletCode &&
- // x.CurrentBarcode == request.OriginalBarcode &&
- // x.Status == 1)
- // .FirstAsync();
-
- // if (lockInfo == null)
- // return WebResponseContent.Instance.Error("鏈壘鍒版湁鏁堢殑鍑哄簱閿佸畾淇℃伅");
-
- // // 2. 妫�鏌ュ墿浣欓攣瀹氭暟閲�
- // decimal remainingLockQuantity = lockInfo.OriginalQuantity - lockInfo.PickedQty;
- // if (request.SplitQuantity > remainingLockQuantity)
- // return WebResponseContent.Instance.Error($"鎷嗗寘鏁伴噺涓嶈兘澶т簬鍓╀綑閿佸畾鏁伴噺锛屽墿浣欙細{remainingLockQuantity}");
-
- // var baseStockDetail = await _stockInfoDetailService.Db.Queryable<Dt_StockInfoDetail>()
- // .Where(x => x.Barcode == request.OriginalBarcode && x.StockId == lockInfo.StockId)
- // .FirstAsync();
- // if (baseStockDetail == null)
- // throw new Exception($"鏈壘鍒版潯鐮亄request.OriginalBarcode}瀵瑰簲鐨勫簱瀛樿褰�");
-
-
- // // 4. 璁$畻鎷嗗垎鍚庣殑鏁伴噺
- // decimal remainingQty = baseStockDetail.StockQuantity - request.SplitQuantity;
-
- // // 鏇存柊鍩虹鏉$爜鐨勫簱瀛樻暟閲忎负鍓╀綑鏁伴噺
- // baseStockDetail.StockQuantity = remainingQty;
- // baseStockDetail.OutboundQuantity = remainingQty;
- // await _stockInfoDetailService.Db.Updateable(baseStockDetail).ExecuteCommandAsync();
-
-
- // var seq = await _dailySequenceService.GetNextSequenceAsync();
- // // 3. 鐢熸垚鏂版潯鐮�
- // string newBarcode = "WSLOT" + DateTime.Now.ToString("yyyyMMdd") + seq.ToString()?.PadLeft(5, '0');
-
-
- // // 涓烘媶鍖呬骇鐢熺殑鏂版潯鐮佸垱寤哄簱瀛樿褰�
- // var newStockDetail = new Dt_StockInfoDetail
- // {
- // SupplyCode = baseStockDetail.SupplyCode,
- // WarehouseCode = baseStockDetail.WarehouseCode,
- // BarcodeQty = baseStockDetail.BarcodeQty,
- // BarcodeUnit = baseStockDetail.BarcodeUnit,
- // BusinessType = baseStockDetail.BusinessType,
- // Unit = baseStockDetail.Unit,
- // StockId = lockInfo.StockId,
- // MaterielCode = baseStockDetail.MaterielCode,
- // OrderNo = baseStockDetail.OrderNo,
- // BatchNo = baseStockDetail.BatchNo,
- // StockQuantity = request.SplitQuantity, // 鏂版潯鐮佽幏寰楁媶鍒嗘暟閲�
- // OutboundQuantity = request.SplitQuantity,
- // Barcode = newBarcode,
- // InboundOrderRowNo = baseStockDetail.InboundOrderRowNo,
-
- // };
- // await _outStockLockInfoService.Db.Insertable(newStockDetail).ExecuteCommandAsync();
-
- // // 4. 鍒涘缓鏂扮殑鍑哄簱閿佸畾淇℃伅锛堟柊鏉$爜锛�
- // var newLockInfo = new Dt_OutStockLockInfo
- // {
-
- // OrderNo = lockInfo.OrderNo,
- // OrderDetailId = lockInfo.OrderDetailId,
- // BatchNo = lockInfo.BatchNo,
- // MaterielCode = lockInfo.MaterielCode,
- // MaterielName = lockInfo.MaterielName,
- // StockId = lockInfo.StockId,
- // OrderQuantity = request.SplitQuantity,
- // OriginalQuantity = request.SplitQuantity,
- // AssignQuantity = request.SplitQuantity, // 鏂版潯鐮佸垎閰嶆暟閲�
- // PickedQty = 0, // 鏂版潯鐮佹湭鎷i��
- // LocationCode = lockInfo.LocationCode,
- // PalletCode = lockInfo.PalletCode,
- // TaskNum = lockInfo.TaskNum,
- // Status = (int)OutLockStockStatusEnum.鍑哄簱涓�,
- // Unit = lockInfo.Unit,
- // SupplyCode = lockInfo.SupplyCode,
- // OrderType = lockInfo.OrderType,
- // CurrentBarcode = newBarcode, // 鏂版潯鐮�
- // OriginalLockQuantity = request.SplitQuantity,
- // IsSplitted = 1,
- // ParentLockId = lockInfo.Id // 璁板綍鐖剁骇閿佸畾ID
- // };
- // await _outStockLockInfoService.Db.Insertable(newLockInfo).ExecuteCommandAsync();
-
- // lockInfo.AssignQuantity = remainingQty;
- // lockInfo.IsSplitted = 1; // 鏍囪涓哄凡鎷嗗寘
- // await _outStockLockInfoService.Db.Updateable(lockInfo).ExecuteCommandAsync();
-
- // var previousSplitRecord = await Db.Queryable<Dt_SplitPackageRecord>()
- // .Where(x => x.OriginalBarcode == request.OriginalBarcode && !x.IsReverted)
- // .OrderByDescending(x => x.SplitTime)
- // .FirstAsync();
-
- // // 6. 璁板綍鎷嗗寘鍘嗗彶锛堢敤浜庤拷韪級
- // var splitHistory = new Dt_SplitPackageRecord
- // {
- // FactoryArea = lockInfo.FactoryArea,
- // TaskNum = lockInfo.TaskNum,
- // OutStockLockInfoId = lockInfo.Id,
- // StockId = baseStockDetail.StockId,
- // Operator = App.User.UserName,
- // IsReverted = false,
- // OriginalBarcode = request.OriginalBarcode,
- // NewBarcode = newBarcode,
- // SplitQty = request.SplitQuantity,
- // RemainQuantity = remainingQty, // 璁板綍鎷嗗垎鍚庣殑鍓╀綑鏁伴噺
- // MaterielCode = lockInfo.MaterielCode,
- // SplitTime = DateTime.Now,
- // OrderNo = request.OrderNo,
- // PalletCode = request.PalletCode,
- // Status = (int)SplitPackageStatusEnum.宸叉媶鍖�,
- // PreviousSplitRecordId = previousSplitRecord?.Id??0 // 璁板綍鍓嶄竴娆℃媶鍖匢D锛屽缓绔嬫媶鍖呴摼
- // };
- // await Db.Insertable(splitHistory).ExecuteCommandAsync();
-
- // _unitOfWorkManage.CommitTran();
-
- // try
- // {
- // MaterielToMesDTO dto = new MaterielToMesDTO
- // {
- // batchNo = baseStockDetail.BatchNo,
- // factoryArea = baseStockDetail.FactoryArea,
- // materialCode = baseStockDetail.MaterielCode,
- // newmaterialCode = newBarcode,
- // oldmaterialCode = request.OriginalBarcode,
- // operationType = 1,
- // qty = remainingQty,
- // supplyCode = baseStockDetail.SupplyCode,
- // unit = baseStockDetail.BarcodeUnit,
- // warehouseCode = baseStockDetail.WarehouseCode,
- // reqCode = Guid.NewGuid().ToString(),
- // reqTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
- // };
- // _invokeMESService.NewMaterielToMes(dto);
- // }
- // catch(Exception ex)
- // {
- // _logger.LogError("SplitPackage 鍥炰紶MES: " + ex.Message);
- // }
- // return WebResponseContent.Instance.OK("鎷嗗寘鎴愬姛", new
- // {
- // NewBarcode = newBarcode,
- // NewLockInfoId = newLockInfo.Id
- // });
- // }
- // catch (Exception ex)
- // {
- // _unitOfWorkManage.RollbackTran();
- // return WebResponseContent.Instance.Error($"鎷嗗寘澶辫触: {ex.Message}");
- // }
- //}
- // 鑾峰彇鏉$爜鐨勬媶鍖呭巻鍙查摼
public async Task<WebResponseContent> SplitPackage(SplitPackageDto request)
{
@@ -297,7 +134,11 @@
CurrentBarcode = newBarcode,
OriginalLockQuantity = request.SplitQuantity,
IsSplitted = 1,
- ParentLockId = lockInfo.Id
+ ParentLockId = lockInfo.Id,
+ Operator = App.User.UserName,
+ FactoryArea = lockInfo.FactoryArea,
+ lineNo = lockInfo.lineNo,
+ WarehouseCode = lockInfo.WarehouseCode,
};
await _outStockLockInfoService.Db.Insertable(newLockInfo).ExecuteCommandAsync();
@@ -330,6 +171,30 @@
await Db.Insertable(splitHistory).ExecuteCommandAsync();
_unitOfWorkManage.CommitTran();
+
+ try
+ {
+
+ var dt_MaterielToMes = new Dt_MaterielToMes
+ {
+ OldMaterialBarCode = request.OriginalBarcode,
+ NewMaterialBarCode = newBarcode,
+ Unit = baseStockDetail.BarcodeUnit,
+ factoryArea = baseStockDetail.FactoryArea,
+ Qty = remainingQty,
+ supplyCode = baseStockDetail.SupplyCode,
+ warehouseCode = baseStockDetail.WarehouseCode,
+ BatchNo = baseStockDetail.BatchNo,
+ MaterielCode = baseStockDetail.MaterielCode,
+
+ };
+ _materielToMesService.AddData(dt_MaterielToMes);
+
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError("SplitPackage 鍥炰紶MES: " + ex.Message);
+ }
return WebResponseContent.Instance.OK("鎷嗗寘鎴愬姛", new SplitPackageChainDto
{
@@ -418,7 +283,7 @@
{
record.IsReverted = true;
record.RevertTime = DateTime.Now;
-
+
record.Status = (int)SplitPackageStatusEnum.宸叉挙閿�;
}
await Db.Updateable(splitRecords).ExecuteCommandAsync();
@@ -526,14 +391,14 @@
// 鑾峰彇鍙挙閿�鐨勬媶鍖呰褰曞垪琛�
public Dt_SplitPackageRecord GetRevertableSplitRecords(string originalBarcode)
{
- var revertableRecords = Db.Queryable<Dt_SplitPackageRecord>()
+ var revertableRecords = Db.Queryable<Dt_SplitPackageRecord>()
.Where(x => x.OriginalBarcode == originalBarcode && !x.IsReverted)
.OrderBy(x => x.SplitTime)
.First();
- return revertableRecords ;
+ return revertableRecords;
}
-
+
// 鑾峰彇鎷嗗寘淇℃伅
public async Task<WebResponseContent> GetSplitPackageInfo(string orderNo, string palletCode, string barcode)
{
--
Gitblit v1.9.3