From 120e7a933c675b5587db9db17bb202075cacee00 Mon Sep 17 00:00:00 2001 From: schangxiang@126.com <schangxiang@126.com> Date: 周五, 30 8月 2024 09:33:55 +0800 Subject: [PATCH] 1 --- iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs | 304 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 304 insertions(+), 0 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 48ddb7f..b7f4f72 100644 --- a/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs +++ b/iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs @@ -32,6 +32,7 @@ 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> @@ -39,6 +40,7 @@ /// </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, @@ -52,6 +54,7 @@ IRepository<WorkPieceOutbound, MasterDbContextLocator> workPieceOutboundRep ) { + _workPieceOutboundRecordRep = workPieceOutboundRecordRep; _workPieceUnLineRep = workPieceUnLineRep; _equipmentBaseInfoRep = equipmentBaseInfoRep; _v_GetEquipmentAlertRep = v_GetEquipmentAlert; @@ -560,7 +563,308 @@ #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(); + + 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