iWara.SCADA.Code/iWare.Wms.Application/Service/Pda/PdaService.cs
@@ -447,6 +447,16 @@ OP80NewCode = OP80NewCode, }; } //判断是否已经出库 List<WorkPieceOutbound> db_itemModelList = await _workPieceOutboundRep.DetachedEntities.Where(w => (w.WorkPieceID == OP80NewCode || w.OP80NewCode == OP80NewCode) && w.IsDeleted == false).ToListAsync(); if (db_itemModelList != null && db_itemModelList.Count > 0) { var itemModel = db_itemModelList.First(); var createitme = itemModel.CreatedTime == null ? "" : (((DateTimeOffset)itemModel.CreatedTime).UtcDateTime.ToString("yyyy-MM-dd HH:mm:ss")); throw Oops.Oh($"工件{itemModel.WorkPieceID}已出库,出库时间:{createitme}"); } return workPieceInfo; } @@ -456,6 +466,7 @@ /// <param name="input"></param> /// <returns></returns> [HttpPost("outBoundWorkPiece")] [UnitOfWork] public async Task<string> outBoundWorkPiece([FromBody] OutBoundInput input) { @@ -474,6 +485,8 @@ var queryWorkPieceIDList = WorkPieceInfoLst.Select(x => x.WorkPieceID).ToList(); List<WorkPieceOutbound> db_itemModelList = await _workPieceOutboundRep.Where(w => queryWorkPieceIDList.Contains(w.WorkPieceID) && w.IsDeleted == false).ToListAsync(); List<WorkPieceInfo> db_WorkPieceInfoList = await _workPieceInfoRep.Where(w => queryWorkPieceIDList.Contains(w.WorkPieceID) && w.IsDeleted == false).ToListAsync(); foreach (var item in WorkPieceInfoLst) { @@ -497,6 +510,17 @@ CreatedUserName = CurrentUserInfo.Name, }; addOutBoundList.Add(outBoundLog); var workPiece = db_WorkPieceInfoList.FirstOrDefault(w => w.WorkPieceID == item.WorkPieceID); if (workPiece != null) { workPiece.OutPerson = CurrentUserInfo.Name; workPiece.OutRemark = "撤销工件出库"; workPiece.OutTime = DateTime.Now; workPiece.IsOut = false; await _workPieceInfoRep.UpdateAsync(workPiece); } } await _workPieceOutboundRep.InsertAsync(addOutBoundList); return "出库成功"; iWara.SCADA.Code/iWare.Wms.Application/Service/WorkPieceOutbound/WorkPieceOutboundService.cs
@@ -21,13 +21,15 @@ [DisableOpLog] public class WorkPieceOutboundService : IWorkPieceOutboundService, IDynamicApiController, ITransient { private readonly IRepository<WorkPieceOutbound,MasterDbContextLocator> _workPieceOutboundRep; private readonly IRepository<WorkPieceOutbound, MasterDbContextLocator> _workPieceOutboundRep; private readonly IRepository<WorkPieceInfo, MasterDbContextLocator> _workPieceInfoRep; public WorkPieceOutboundService( IRepository<WorkPieceOutbound,MasterDbContextLocator> workPieceOutboundRep IRepository<WorkPieceInfo, MasterDbContextLocator> workPieceInfoRep, IRepository<WorkPieceOutbound, MasterDbContextLocator> workPieceOutboundRep ) { _workPieceInfoRep = workPieceInfoRep; _workPieceOutboundRep = workPieceOutboundRep; } @@ -86,7 +88,7 @@ if (!isExist) throw Oops.Oh(ErrorCode.D3000); var workPieceOutbound = input.Adapt<WorkPieceOutbound>(); await _workPieceOutboundRep.UpdateAsync(workPieceOutbound,ignoreNullValues:true); await _workPieceOutboundRep.UpdateAsync(workPieceOutbound, ignoreNullValues: true); } /// <summary> @@ -117,19 +119,32 @@ /// <param name="input"></param> /// <returns></returns> [HttpPost("revoke")] [UnitOfWork] public async Task Revoke(List<DeleteWorkPieceOutboundInput> input) { foreach (var item in input) { foreach (var item in input) { var workPieceOutbound = await _workPieceOutboundRep.FirstOrDefaultAsync(u => u.Id == item.Id); if (workPieceOutbound == null) { throw Oops.Oh("工件出库信息不存在"); } workPieceOutbound.IsDeleted = true; workPieceOutbound.Remark = workPieceOutbound.Remark??""+"撤销发货"; workPieceOutbound.Remark = workPieceOutbound.Remark ?? "" + "撤销发货"; await _workPieceOutboundRep.UpdateAsync(workPieceOutbound); var workPiece = await _workPieceInfoRep.FirstOrDefaultAsync(u => u.WorkPieceID == workPieceOutbound.WorkPieceID); if (workPiece != null) { workPiece.OutPerson = CurrentUserInfo.Name; workPiece.OutRemark = "撤销工件出库"; workPiece.OutTime = DateTime.Now; workPiece.IsOut = false; await _workPieceInfoRep.UpdateAsync(workPiece); } } } } iWara.SCADA.Code/iWare.Wms.Core/Entity/SCADA/WorkPieceInfo.cs
@@ -79,12 +79,12 @@ [Comment("工序开始时间")] public DateTime? WorkingProcedureStartTime { get; set; } [Comment("工序结束时间")] public DateTime? WorkingProcedureEndTime{get; set;} public DateTime? WorkingProcedureEndTime { get; set; } /// <summary> /// 当前工序加工时长 /// </summary> [Comment("当前工序加工时长")] /// <summary> /// 当前工序加工时长 /// </summary> [Comment("当前工序加工时长")] public int? ProcessingDurationForCurrent { get; set; } /// <summary> @@ -103,7 +103,7 @@ /// 工序下线时间 /// </summary> [Comment("工序下线时间")] public DateTime? WorkPieceLastOfflineTime { get; set; } public DateTime? WorkPieceLastOfflineTime { get; set; } /// <summary> /// 数量 @@ -231,5 +231,36 @@ /// </summary> [Comment("完成时间")] public DateTime? CompleteTime { get; set; } #region 出库相关 /// <summary> /// 是否出库 /// </summary> [Comment("是否出库")] public bool? IsOut { get; set; } /// <summary> /// 出库人 /// </summary> [Comment("出库人")] [MaxLength(255)] public string OutPerson { get; set; } /// <summary> /// 出库备注 /// </summary> [Comment("出库备注")] [MaxLength(255)] public string OutRemark { get; set; } /// <summary> /// 出库时间 /// </summary> [Comment("出库时间")] public DateTime? OutTime { get; set; } #endregion } }