diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2
index b810d7a0..ab89519a 100644
Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/src/WMS.Web.Api/Controllers/OutStockTaskController.cs b/src/WMS.Web.Api/Controllers/OutStockTaskController.cs
index 07d6b5b6..345c3388 100644
--- a/src/WMS.Web.Api/Controllers/OutStockTaskController.cs
+++ b/src/WMS.Web.Api/Controllers/OutStockTaskController.cs
@@ -84,5 +84,23 @@ namespace WMS.Web.Api.Controllers
return await _outStockService.merge(dto, loginInfo);
}
+ ///
+ /// 根据出库单任务编号搜索
+ ///
+ ///
+ ///
+ [HttpGet]
+ [Route("GetOutStockTaskByNo/{billNo}")]
+ public async Task> GetOutStockTaskByNo([FromRoute] string billNo)
+ {
+ var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
+ if (loginInfo == null || loginInfo.UserInfo == null)
+ return Result.ReFailure(ResultCodes.Token_Invalid_Error);
+
+ var res= await _repositories.GetOutStockTaskByNo(billNo);
+ if (res == null) return Result.ReFailure(ResultCodes.OutStockTaskNoData);
+ return Result.ReSuccess(res);
+ }
+
}
}
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
index eeeb8478..b1da5d49 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
@@ -192,7 +192,7 @@
- 保存
+ 保存(出库)
@@ -230,6 +230,13 @@
+
+
+ 根据出库单任务编号搜索
+
+
+
+
系统配置
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index 632bfa07..ba44fa72 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -2010,6 +2010,56 @@
操作 Id集合
+
+
+ 根据单号搜索出库单任务信息
+
+
+
+
+ 主键 订单编号
+
+
+
+
+ 单据编号
+
+
+
+
+ 详情
+
+
+
+
+ 物料Id
+
+
+
+
+ 物料名称
+
+
+
+
+ 物料编码
+
+
+
+
+ 物料规格型号
+
+
+
+
+ 应出库数量
+
+
+
+
+ 已出库数量
+
+
出库单任务列表
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 81c8250c..37b5445b 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -889,6 +889,14 @@
创建时间(erp那边的创建时间)
+
+
+ 出库 反写 任务单
+
+
+
+
+
wms盘点单
diff --git a/src/WMS.Web.Core/Dto/OutStockTask/GetOutStockTaskByNoResponse.cs b/src/WMS.Web.Core/Dto/OutStockTask/GetOutStockTaskByNoResponse.cs
new file mode 100644
index 00000000..ad9e095e
--- /dev/null
+++ b/src/WMS.Web.Core/Dto/OutStockTask/GetOutStockTaskByNoResponse.cs
@@ -0,0 +1,53 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WMS.Web.Core.Dto.OutStockTask
+{
+ ///
+ /// 根据单号搜索出库单任务信息
+ ///
+ public class GetOutStockTaskByNoResponse
+ {
+ ///
+ /// 主键 订单编号
+ ///
+ public int Id { get; set; }
+ ///
+ /// 单据编号
+ ///
+ public string BillNo { get; set; }
+ ///
+ /// 详情
+ ///
+ public List details { get; set; } = new List();
+ }
+
+ public class GetOutStockTaskByNoDetailsResponse
+ {
+ ///
+ /// 物料Id
+ ///
+ public int MaterialId { get; set; }
+ ///
+ /// 物料名称
+ ///
+ public string MaterialName { get; set; }
+ ///
+ /// 物料编码
+ ///
+ public string MaterialNumber { get; set; }
+ ///
+ /// 物料规格型号
+ ///
+ public string Specifications { get; set; }
+ ///
+ /// 应出库数量
+ ///
+ public decimal AccruedQty { get; set; }
+ ///
+ /// 已出库数量
+ ///
+ public decimal RealityQty { get; set; }
+ }
+}
diff --git a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs
index 6dc775a2..ec2294aa 100644
--- a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs
+++ b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs
@@ -3,6 +3,8 @@ using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text;
using WMS.Web.Core;
+using WMS.Web.Core.Internal.Results;
+using WMS.Web.Domain.Values;
namespace WMS.Web.Domain.Entitys
{
@@ -74,5 +76,21 @@ namespace WMS.Web.Domain.Entitys
///
[Column("CreateTime")]
public DateTime? CreateTime { get; set; }
+
+ ///
+ /// 出库 反写 任务单
+ ///
+ ///
+ ///
+ ///
+ public Result OutStock(int materialId,decimal qty)
+ {
+ if ((this.AccruedQty - this.RealityQty) < qty)
+ return Result.ReFailure(ResultCodes.OutStockQtyError);
+
+ this.RealityQty = this.RealityQty + qty;
+
+ return Result.ReSuccess();
+ }
}
}
diff --git a/src/WMS.Web.Domain/Infrastructure/IOutStockTaskRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IOutStockTaskRepositories.cs
index 0f22ff7e..e56baac5 100644
--- a/src/WMS.Web.Domain/Infrastructure/IOutStockTaskRepositories.cs
+++ b/src/WMS.Web.Domain/Infrastructure/IOutStockTaskRepositories.cs
@@ -17,10 +17,13 @@ namespace WMS.Web.Domain.Infrastructure
Task> GetEntityList(List ids);
/// 修改实体集合
Task EditEntityList(List entitys, bool isTransaction = true);
-
+ //编辑
+ Task Edit(OutStockTask entity, bool isTransaction = true);
/// 删除实体集合
Task DeleteEntityList(List ids, bool isTransaction = true);
//获取实体
Task Get(int id);
+ //根据订单号获取订单信息
+ Task GetOutStockTaskByNo(string billNo);
}
}
diff --git a/src/WMS.Web.Domain/Mappers/OutStockMapper.cs b/src/WMS.Web.Domain/Mappers/OutStockMapper.cs
index da9a2561..042de07d 100644
--- a/src/WMS.Web.Domain/Mappers/OutStockMapper.cs
+++ b/src/WMS.Web.Domain/Mappers/OutStockMapper.cs
@@ -3,6 +3,7 @@ using System;
using System.Collections.Generic;
using System.Text;
using WMS.Web.Core.Dto.OutStock;
+using WMS.Web.Core.Dto.OutStockTask;
using WMS.Web.Domain.Entitys;
namespace WMS.Web.Domain.Mappers
@@ -17,6 +18,10 @@ namespace WMS.Web.Domain.Mappers
.ForMember(x => x.Id, ops => ops.Ignore())
.ForMember(x => x.Fid, ops => ops.Ignore())
.ForMember(x => x.Qty, ops => ops.Ignore());
+
+
+ CreateMap();
+ CreateMap();
}
}
}
diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs
index 62c55c56..3d6a26c8 100644
--- a/src/WMS.Web.Domain/Services/OutStockService.cs
+++ b/src/WMS.Web.Domain/Services/OutStockService.cs
@@ -56,8 +56,11 @@ namespace WMS.Web.Domain.Services
//任务单明细
var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialId == d.MaterialId);
if (tDetail == null) continue;
- var outd = _mapper.Map(tDetail);
-
+ var res = tDetail.OutStock(d.MaterialId, d.Qty);
+ if (!res.IsSuccess) return res;
+
+ var outd = _mapper.Map(tDetail);
+
outd.Qty = outd.Qty + d.Qty;
entity.Details.Add(outd);
}
diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs
index e8896b1b..01874a0d 100644
--- a/src/WMS.Web.Domain/Values/ResultCodes.cs
+++ b/src/WMS.Web.Domain/Values/ResultCodes.cs
@@ -24,6 +24,8 @@ namespace WMS.Web.Domain.Values
//出库任务单
public static ValueTuple MergeStatusError = (70000, "所选单据数据不一致,不能合并");
+ public static ValueTuple OutStockQtyError = (70001, "可出库数量不足");
+ public static ValueTuple OutStockTaskNoData = (70002, "出库任务数据不存在");
public static ValueTuple BoxNoData = (80000, "箱信息不存在");
public static ValueTuple BoxMateriaNoData = (800010, "箱对应物料信息不存在");
diff --git a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs
index b9eeba76..47fd5754 100644
--- a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs
+++ b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs
@@ -169,6 +169,42 @@ namespace WMS.Web.Repositories
return res.Clone();
}
+ ///
+ /// 编辑
+ ///
+ ///
+ ///
+ ///
+ public async Task Edit(OutStockTask entity, bool isTransaction = true)
+ {
+ IDbContextTransaction _transaction = null;
+ if (isTransaction)
+ _transaction = _context.Database.BeginTransaction();
+
+ try
+ {
+ var res = await _context.OutStockTask
+ .Include(s => s.Details)
+ .FirstOrDefaultAsync(f => f.Id == entity.Id);
+ if (res == null) return null;
+
+ _mapper.Map(entity, res);
+ _mapper.ToMapList(entity.Details, res.Details);
+ await _context.SaveChangesAsync();
+
+ if (_transaction != null)
+ _transaction.Commit();
+
+ return res;
+ }
+ catch (Exception)
+ {
+ if (_transaction != null)
+ _transaction.Rollback();
+ return null;
+ }
+ }
+
///
/// 列表
///
@@ -224,5 +260,18 @@ namespace WMS.Web.Repositories
}).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
return (list, total);
}
+ ///
+ /// 根据订单号获取订单信息
+ ///
+ ///
+ ///
+ public async Task GetOutStockTaskByNo(string billNo)
+ {
+ var entity = await _context.OutStockTask.Include(x => x.Details).FirstOrDefaultAsync(f => billNo.Equals(f.BillNo));
+ var response = _mapper.Map(entity);
+ //获取物料信息 显示物料三件套
+ var mIds = entity.Details.Select(s => s.MaterialId).ToList();
+ return response;
+ }
}
}