From 8b65642d7478407e03f751f2d5d8756b825969a2 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周六, 31 8月 2024 16:10:01 +0800
Subject: [PATCH] 优化
---
iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs | 360 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 341 insertions(+), 19 deletions(-)
diff --git a/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs b/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs
index 8d5a7b4..6a6c9fb 100644
--- a/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs
+++ b/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs
@@ -32,12 +32,16 @@
private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep;
private readonly IRepository<WorkPieceInfoLog, MasterDbContextLocator> _workPieceInfoLogRep;
private readonly IRepository<WorkPieceOutbound, MasterDbContextLocator> _workPieceOutboundRep;
+ private readonly IRepository<WorkPieceOutboundRecord, MasterDbContextLocator> _workPieceOutboundRecordRep;
+ private readonly IRepository<WorkPieceUnLine, MasterDbContextLocator> _workPieceUnLineRep;
/// <summary>
/// 璁惧鍩虹淇℃伅鏋勯�犲嚱鏁�
/// </summary>
/// <param name="equipmentBaseInfoRep"></param>
public PdaService(
+ IRepository<WorkPieceOutboundRecord, MasterDbContextLocator> workPieceOutboundRecordRep,
+ IRepository<WorkPieceUnLine, MasterDbContextLocator> workPieceUnLineRep,
IRepository<EquipmentBaseInfo, MasterDbContextLocator> equipmentBaseInfoRep,
IRepository<V_GetEquipmentAlert, MasterDbContextLocator> v_GetEquipmentAlert,
IRepository<EquipmentCurrentMonitor, MasterDbContextLocator> equipmentCurrentMonitorRep,
@@ -50,6 +54,8 @@
IRepository<WorkPieceOutbound, MasterDbContextLocator> workPieceOutboundRep
)
{
+ _workPieceOutboundRecordRep = workPieceOutboundRecordRep;
+ _workPieceUnLineRep = workPieceUnLineRep;
_equipmentBaseInfoRep = equipmentBaseInfoRep;
_v_GetEquipmentAlertRep = v_GetEquipmentAlert;
_equipmentCurrentMonitorRep = equipmentCurrentMonitorRep;
@@ -489,39 +495,27 @@
throw Oops.Oh("宸ヤ欢鍑哄簱澶辫触锛氭暟鎹笉鑳戒负绌猴紒");
}
- List<WorkPieceInfoOutput> WorkPieceInfoLst = input.WorkPieceInfoLst;
+ List<OutBoundDetailsInput> WorkPieceInfoLst = input.WorkPieceInfoLst;
var addOutBoundList = new List<WorkPieceOutbound>();
- var queryWorkPieceIDList = WorkPieceInfoLst.Select(x => x.WorkPieceID).ToList();
- List<WorkPieceOutbound> db_itemModelList = await _workPieceOutboundRep.Where(w => queryWorkPieceIDList.Contains(w.WorkPieceID) && w.IsDeleted == false).ToListAsync();
+ var queryOP80NewCodeList = WorkPieceInfoLst.Select(x => x.OP80NewCode).ToList();
+ List<WorkPieceOutbound> db_itemModelList = await _workPieceOutboundRep.Where(w => queryOP80NewCodeList.Contains(w.OP80NewCode) && w.IsDeleted == false).ToListAsync();
- List<WorkPieceInfo> db_WorkPieceInfoList = await _workPieceInfoRep.Where(w => queryWorkPieceIDList.Contains(w.WorkPieceID) && w.IsDeleted == false).ToListAsync();
+ List<WorkPieceInfo> db_WorkPieceInfoList = await _workPieceInfoRep.Where(w => queryOP80NewCodeList.Contains(w.OP80NewCode) && w.IsDeleted == false).ToListAsync();
foreach (var item in WorkPieceInfoLst)
{
- var itemModel = db_itemModelList.FirstOrDefault(w => w.WorkPieceID == item.WorkPieceID);
+ var itemModel = db_itemModelList.FirstOrDefault(w => w.OP80NewCode == item.OP80NewCode);
if (itemModel != null)
{
//itemModel.IsDeleted = true;
//itemModel.Remark = itemModel.Remark ?? "" + "浜屾鍙戣揣鑷姩鎾ら攢鍙戣揣";
//await _workPieceOutboundRep.UpdateAsync(itemModel);
var createitme = itemModel.CreatedTime == null ? "" : (((DateTimeOffset)itemModel.CreatedTime).UtcDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
- throw Oops.Oh($"宸ヤ欢{itemModel.WorkPieceID}宸插嚭搴擄紝鍑哄簱鏃堕棿:{createitme}");
+ throw Oops.Oh($"鎴愬搧鐮亄itemModel.OP80NewCode}宸插嚭搴擄紝鍑哄簱鏃堕棿:{createitme}");
}
- var outBoundLog = new WorkPieceOutbound
- {
- WorkPieceID = item.WorkPieceID,
- OP80NewCode = item.OP80NewCode,
- WorkPieceOutboundTime = DateTime.Now,
- WorkPieceOutboundUserId = CurrentUserInfo.UserId,
- WorkPieceOutboundUserName = CurrentUserInfo.Name,
- CreatedUserId = CurrentUserInfo.UserId,
- CreatedUserName = CurrentUserInfo.Name,
- };
- addOutBoundList.Add(outBoundLog);
-
- var workPiece = db_WorkPieceInfoList.FirstOrDefault(w => w.WorkPieceID == item.WorkPieceID);
+ var workPiece = db_WorkPieceInfoList.FirstOrDefault(w => w.OP80NewCode == item.OP80NewCode);
if (workPiece != null)
{
workPiece.OutPerson = CurrentUserInfo.Name;
@@ -531,6 +525,19 @@
await _workPieceInfoRep.UpdateAsync(workPiece);
}
+ var outBoundLog = new WorkPieceOutbound
+ {
+ WorkPieceID = workPiece?.WorkPieceID,
+ OP80NewCode = item.OP80NewCode,
+ WorkPieceOutboundTime = DateTime.Now,
+ WorkPieceOutboundUserId = CurrentUserInfo.UserId,
+ WorkPieceOutboundUserName = CurrentUserInfo.Name,
+ CreatedUserId = CurrentUserInfo.UserId,
+ CreatedUserName = CurrentUserInfo.Name,
+ };
+ addOutBoundList.Add(outBoundLog);
+
+
}
await _workPieceOutboundRep.InsertAsync(addOutBoundList);
return "鍑哄簱鎴愬姛";
@@ -553,5 +560,320 @@
return db_itemModelList.Count().ToString();
}
+
+ #region 鏂扮増 涓嬬嚎銆佸嚭搴撴墽琛�
+
+ /// <summary>
+ /// 涓嬬嚎鎵ц
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost("unLineWorkPiece")]
+ [DisableOpLog]
+ [UnitOfWork]
+ public async Task<string> unLineWorkPiece([FromBody] UnLineInput input)
+ {
+ if (input.WorkPieceInfoLst.Count < 1)
+ {
+ throw Oops.Oh("鏁版嵁涓嶈兘涓虹┖锛�");
+ }
+ if (input.CarNo == null || input.CarNo.Equals(""))
+ {
+ throw Oops.Oh("灏忚溅鐮佸繀椤昏緭鍏ワ紒");
+ }
+
+ List<UnBoundDetailsInput> WorkPieceInfoLst = input.WorkPieceInfoLst;
+
+ var addOutBoundList = new List<WorkPieceOutbound>();
+ var addOutBoundLogList = new List<WorkPieceOutboundRecord>();
+
+ var queryOP80NewCodeList = WorkPieceInfoLst.Select(x => x.OP80NewCode).ToList();
+ List<WorkPieceOutbound> db_WorkPieceOutboundList = await _workPieceOutboundRep.Where(w => queryOP80NewCodeList.Contains(w.OP80NewCode) && w.IsDeleted == false).ToListAsync();
+
+ List<WorkPieceInfo> db_WorkPieceInfoList = await _workPieceInfoRep.Where(w => queryOP80NewCodeList.Contains(w.OP80NewCode) && w.IsDeleted == false).ToListAsync();
+
+ foreach (var item in WorkPieceInfoLst)
+ {
+ var itemModel = db_WorkPieceOutboundList.FirstOrDefault(w => w.OP80NewCode == item.OP80NewCode);
+ if (itemModel != null)
+ {
+ if (itemModel.UnLineStage == PieceUnLineStage.宸插嚭搴�)
+ {
+ var createitme = itemModel.WorkPieceOutboundTime == null ? "" : (((DateTimeOffset)itemModel.WorkPieceOutboundTime).UtcDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
+ throw Oops.Oh($"鎴愬搧鐮亄itemModel.OP80NewCode}宸插嚭搴擄紝鍑哄簱鏃堕棿:{createitme}");
+ }
+ if (itemModel.UnLineStage == PieceUnLineStage.宸蹭笅绾�)
+ {
+ var createitme = itemModel.WorkPieceUnLineTime == null ? "" : (((DateTimeOffset)itemModel.WorkPieceUnLineTime).UtcDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
+ throw Oops.Oh($"鎴愬搧鐮亄itemModel.OP80NewCode}宸蹭笅绾匡紝涓嬬嚎鏃堕棿:{createitme}");
+ }
+ }
+ var workPiece = db_WorkPieceInfoList.FirstOrDefault(w => w.OP80NewCode == item.OP80NewCode);
+ if (workPiece != null)
+ {
+
+ workPiece.OutRemark = "宸ヤ欢涓嬬嚎";
+ workPiece.UnLineStage = PieceUnLineStage.宸蹭笅绾�;
+ workPiece.UnLineStageName = PieceUnLineStage.宸蹭笅绾�.ToString();
+ workPiece.WorkPieceUnLineTime = DateTime.Now;
+ workPiece.WorkPieceUnLineUserId = CurrentUserInfo.UserId;
+ workPiece.WorkPieceUnLineUserName = CurrentUserInfo.Name;
+
+ await _workPieceInfoRep.UpdateAsync(workPiece);
+ }
+ var outBound = new WorkPieceOutbound
+ {
+ WorkPieceID = workPiece?.WorkPieceID,
+ OP80NewCode = item.OP80NewCode,
+ WorkPieceOutboundTime = DateTime.Now,
+ WorkPieceOutboundUserId = CurrentUserInfo.UserId,
+ WorkPieceOutboundUserName = CurrentUserInfo.Name,
+ CreatedUserId = CurrentUserInfo.UserId,
+ CreatedUserName = CurrentUserInfo.Name,
+
+ UnLineStage = PieceUnLineStage.宸蹭笅绾�,
+ UnLineStageName = PieceUnLineStage.宸蹭笅绾�.ToString(),
+ WorkPieceUnLineTime = DateTime.Now,
+ WorkPieceUnLineUserId = CurrentUserInfo.UserId,
+ WorkPieceUnLineUserName = CurrentUserInfo.Name,
+ CarNo = input.CarNo,
+ Remark = "宸ヤ欢涓嬬嚎",
+
+ };
+ addOutBoundList.Add(outBound);
+
+ var outBoundLog = new WorkPieceOutboundRecord
+ {
+ OperationType = OutboundOperationType.涓嬬嚎.ToString(),
+ WorkPieceID = workPiece?.WorkPieceID,
+ OP80NewCode = item.OP80NewCode,
+
+ CreatedUserId = CurrentUserInfo.UserId,
+ CreatedUserName = CurrentUserInfo.Name,
+
+
+ CarNo = input.CarNo,
+ Remark = "宸ヤ欢涓嬬嚎",
+
+ };
+ addOutBoundLogList.Add(outBoundLog);
+
+
+
+ }
+ await _workPieceOutboundRep.InsertAsync(addOutBoundList);
+ await _workPieceOutboundRecordRep.InsertAsync(addOutBoundLogList);
+
+ return "涓嬬嚎鎴愬姛";
+ }
+
+
+
+
+ /// <summary>
+ /// 鍑哄簱鎵ц
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost("outStoreWorkPiece")]
+ [DisableOpLog]
+ [UnitOfWork]
+ public async Task<string> outStoreWorkPiece([FromBody] OutStoreInput input)
+ {
+ if (input.CarNo == null || input.CarNo.Equals(""))
+ {
+ throw Oops.Oh("灏忚溅鐮佸繀椤昏緭鍏ワ紒");
+ }
+
+
+ var updateOutBoundList = new List<WorkPieceOutbound>();
+ var addOutBoundLogList = new List<WorkPieceOutboundRecord>();
+
+ List<WorkPieceOutbound> db_WorkPieceOutboundList = await _workPieceOutboundRep.Where(w =>
+ w.CarNo == input.CarNo
+ && w.UnLineStage == PieceUnLineStage.宸蹭笅绾�
+ && w.IsDeleted == false).ToListAsync();
+
+ if (db_WorkPieceOutboundList?.Count == 0)
+ {
+ throw Oops.Oh("娌℃湁鍙嚭搴撶殑鏁版嵁锛�");
+ }
+
+
+ var queryOP80NewCodeList = db_WorkPieceOutboundList.Select(x => x.OP80NewCode).ToList();
+
+ List<WorkPieceInfo> db_WorkPieceInfoList = await _workPieceInfoRep.Where(w => queryOP80NewCodeList.Contains(w.OP80NewCode) && w.IsDeleted == false).ToListAsync();
+
+ foreach (var item in db_WorkPieceOutboundList)
+ {
+ var itemModel = db_WorkPieceOutboundList.FirstOrDefault(w => w.OP80NewCode == item.OP80NewCode);
+ if (itemModel != null)
+ {
+ if (itemModel.UnLineStage == PieceUnLineStage.宸插嚭搴�)
+ {
+ var createitme = itemModel.WorkPieceOutboundTime == null ? "" : (((DateTimeOffset)itemModel.WorkPieceOutboundTime).UtcDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
+ throw Oops.Oh($"鎴愬搧鐮亄itemModel.OP80NewCode}宸插嚭搴擄紝鍑哄簱鏃堕棿:{createitme}");
+ }
+ }
+ else
+ {
+ throw Oops.Oh($"鎴愬搧鐮亄itemModel.OP80NewCode}娌℃湁涓嬬嚎鏁版嵁");
+ }
+ var workPiece = db_WorkPieceInfoList.FirstOrDefault(w => w.OP80NewCode == item.OP80NewCode);
+ if (workPiece != null)
+ {
+
+ workPiece.OutRemark = "宸ヤ欢鍑哄簱";
+ workPiece.UnLineStage = PieceUnLineStage.宸插嚭搴�;
+ workPiece.UnLineStageName = PieceUnLineStage.宸插嚭搴�.ToString();
+ workPiece.OutTime = DateTime.Now;
+ workPiece.OutPerson = CurrentUserInfo.Name;
+
+ await _workPieceInfoRep.UpdateAsync(workPiece);
+ }
+
+ item.UnLineStage = PieceUnLineStage.宸插嚭搴�;
+ item.UnLineStageName = PieceUnLineStage.宸插嚭搴�.ToString();
+ item.WorkPieceUnLineTime = DateTime.Now;
+ item.WorkPieceUnLineUserId = CurrentUserInfo.UserId;
+ item.WorkPieceUnLineUserName = CurrentUserInfo.Name;
+ updateOutBoundList.Add(item);
+
+ var outBoundLog = new WorkPieceOutboundRecord
+ {
+ OperationType = OutboundOperationType.鍑哄簱.ToString(),
+ WorkPieceID = workPiece?.WorkPieceID,
+ OP80NewCode = item.OP80NewCode,
+
+ CreatedUserId = CurrentUserInfo.UserId,
+ CreatedUserName = CurrentUserInfo.Name,
+
+
+ CarNo = input.CarNo,
+ Remark = "宸ヤ欢鍑哄簱",
+
+ };
+ addOutBoundLogList.Add(outBoundLog);
+
+
+
+ }
+ await _workPieceOutboundRep.UpdateAsync(updateOutBoundList);
+ await _workPieceOutboundRecordRep.InsertAsync(addOutBoundLogList);
+
+ return "鍑哄簱鎴愬姛";
+ }
+
+
+ /// <summary>
+ /// 涓嬬嚎鎾ゅ洖/鍑哄簱鎾ゅ洖
+ /// </summary>
+ /// <param name="input"></param>
+ /// <returns></returns>
+ [HttpPost("unLineWorkPieceRollback")]
+ [DisableOpLog]
+ [UnitOfWork]
+ public async Task<string> unLineWorkPieceRollback([FromBody] UnLineRoolbackInput input)
+ {
+ if (input.WorkPieceInfoLst.Count < 1)
+ {
+ throw Oops.Oh("鏁版嵁涓嶈兘涓虹┖锛�");
+ }
+ if (!(input.Flag == 1 || input.Flag == 2))
+ {
+ throw Oops.Oh("鏍囪涓嶆纭紒");
+ }
+ var remark = "宸ヤ欢涓嬬嚎鎾ゅ洖";
+ if (input.Flag == 2)
+ {
+ remark = "宸ヤ欢鍑哄簱鎾ゅ洖";
+ }
+
+ List<UnBoundDetailsInput> WorkPieceInfoLst = input.WorkPieceInfoLst;
+
+ var removeOutBoundList = new List<WorkPieceOutbound>();
+ var addOutBoundLogList = new List<WorkPieceOutboundRecord>();
+
+ var queryOP80NewCodeList = WorkPieceInfoLst.Select(x => x.OP80NewCode).ToList();
+ List<WorkPieceOutbound> db_WorkPieceOutboundList = await _workPieceOutboundRep.Where(w => queryOP80NewCodeList.Contains(w.OP80NewCode) && w.IsDeleted == false).ToListAsync();
+
+ List<WorkPieceInfo> db_WorkPieceInfoList = await _workPieceInfoRep.Where(w => queryOP80NewCodeList.Contains(w.OP80NewCode) && w.IsDeleted == false).ToListAsync();
+
+ foreach (var item in WorkPieceInfoLst)
+ {
+ var itemModel = db_WorkPieceOutboundList.FirstOrDefault(w => w.OP80NewCode == item.OP80NewCode);
+ if (itemModel != null)
+ {
+ if (input.Flag == 1 && itemModel.UnLineStage == PieceUnLineStage.宸插嚭搴�)
+ {
+ var createitme = itemModel.WorkPieceOutboundTime == null ? "" : (((DateTimeOffset)itemModel.WorkPieceOutboundTime).UtcDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
+ throw Oops.Oh($"鎴愬搧鐮亄itemModel.OP80NewCode}宸插嚭搴擄紝鍑哄簱鏃堕棿:{createitme}");
+ }
+ if (input.Flag == 2 && itemModel.UnLineStage == PieceUnLineStage.宸蹭笅绾�)
+ {
+ var createitme = itemModel.WorkPieceUnLineTime == null ? "" : (((DateTimeOffset)itemModel.WorkPieceUnLineTime).UtcDateTime.ToString("yyyy-MM-dd HH:mm:ss"));
+ throw Oops.Oh($"鎴愬搧鐮亄itemModel.OP80NewCode}宸蹭笅绾匡紝涓嬬嚎鏃堕棿:{createitme}");
+ }
+ }
+ else
+ {
+ throw Oops.Oh($"鎴愬搧鐮亄itemModel.OP80NewCode}娌℃湁涓嬬嚎鍑哄簱鏁版嵁");
+ }
+ var workPiece = db_WorkPieceInfoList.FirstOrDefault(w => w.OP80NewCode == item.OP80NewCode);
+ if (workPiece != null)
+ {
+ workPiece.OutRemark = remark;
+
+ if (input.Flag == 1)
+ {
+ workPiece.UnLineStage = null;
+ workPiece.UnLineStageName = "";
+ workPiece.WorkPieceUnLineTime = null;
+ workPiece.WorkPieceUnLineUserId = null;
+ workPiece.WorkPieceUnLineUserName = "";
+ }
+ else
+ {
+ workPiece.UnLineStage = PieceUnLineStage.宸蹭笅绾�;
+ workPiece.UnLineStageName = PieceUnLineStage.宸蹭笅绾�.ToString();
+ workPiece.WorkPieceUnLineTime = DateTime.Now;
+ workPiece.WorkPieceUnLineUserId = CurrentUserInfo.UserId;
+ workPiece.WorkPieceUnLineUserName = CurrentUserInfo.Name;
+ }
+
+
+ await _workPieceInfoRep.UpdateAsync(workPiece);
+ }
+
+
+ removeOutBoundList.Add(itemModel);
+
+ var outBoundLog = new WorkPieceOutboundRecord
+ {
+ OperationType = input.Flag == 1 ? OutboundOperationType.鎾ら攢涓嬬嚎.ToString() : OutboundOperationType.鎾ら攢鍑哄簱.ToString(),
+ WorkPieceID = workPiece?.WorkPieceID,
+ OP80NewCode = item.OP80NewCode,
+
+ CreatedUserId = CurrentUserInfo.UserId,
+ CreatedUserName = CurrentUserInfo.Name,
+
+ CarNo = itemModel.CarNo,
+ Remark = remark,
+
+ };
+ addOutBoundLogList.Add(outBoundLog);
+
+
+
+ }
+ await _workPieceOutboundRep.DeleteAsync(removeOutBoundList);
+ await _workPieceOutboundRecordRep.InsertAsync(addOutBoundLogList);
+
+ return "鎿嶄綔鎴愬姛";
+ }
+
+
+ #endregion
+
}
}
--
Gitblit v1.9.3