调整物料编码

This commit is contained in:
18942506660
2024-03-16 15:39:45 +08:00
parent 405b414912
commit d8e2c7509d
28 changed files with 343 additions and 160 deletions

View File

@@ -29,10 +29,14 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord
/// </summary> /// </summary>
[Required(ErrorMessage = "目标箱号不能为空")] [Required(ErrorMessage = "目标箱号不能为空")]
public string DestBoxBillNo { get; set; } public string DestBoxBillNo { get; set; }
///// <summary>
///// 目标箱仓位或重新上架选择仓位
/////</summary>
//public int SubStockId { get; set; } = 0;
/// <summary> /// <summary>
/// 目标箱仓位或重新上架选择仓位 /// 目标箱仓位或重新上架选择仓位
///</summary> ///</summary>
public int SubStockId { get; set; } = 0; public string SubStockCode { get; set; }
/// <summary> /// <summary>
/// 明细 /// 明细
/// </summary> /// </summary>
@@ -44,23 +48,23 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord
public class SaveChangeBoxRecordDetailsRequest public class SaveChangeBoxRecordDetailsRequest
{ {
public SaveChangeBoxRecordDetailsRequest() { } public SaveChangeBoxRecordDetailsRequest() { }
public SaveChangeBoxRecordDetailsRequest(int materialId, decimal qty, List<string> serialNumbers) public SaveChangeBoxRecordDetailsRequest(string materialNumber, decimal qty, List<string> serialNumbers)
{ {
this.MaterialId = materialId; this.MaterialNumber = materialNumber;
this.Qty = qty; this.Qty = qty;
this.SerialNumbers = serialNumbers; this.SerialNumbers = serialNumbers;
} }
public SaveChangeBoxRecordDetailsRequest(int materialId, decimal qty, string serialNumber) public SaveChangeBoxRecordDetailsRequest(string materialNumber, decimal qty, string serialNumber)
{ {
this.MaterialId = materialId; this.MaterialNumber = materialNumber;
this.Qty = qty; this.Qty = qty;
this.SerialNumbers.Add(serialNumber); this.SerialNumbers.Add(serialNumber);
} }
/// <summary> ///// <summary>
/// 物料ID ///// 物料ID
/// </summary> ///// </summary>
[Required(ErrorMessage = "物料不能为空")] //[Required(ErrorMessage = "物料不能为空")]
public int MaterialId { get; set; } //public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 物料编码 /// 物料编码
/// </summary> /// </summary>

View File

@@ -13,10 +13,14 @@ namespace WMS.Web.Core.Dto.Inventory
/// 序列号 /// 序列号
/// </summary> /// </summary>
public string SerialNumber { get; set; } public string SerialNumber { get; set; }
///// <summary>
///// 物料ID
///// </summary>
//public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 物料ID /// 物料编码
/// </summary> /// </summary>
public int MaterialId { get; set; } public string MaterialNumber { get; set; }
/// <summary> /// <summary>
/// wms箱ID /// wms箱ID
/// </summary> /// </summary>

View File

@@ -15,11 +15,16 @@ namespace WMS.Web.Core.Dto.MoveBoxRecord
/// </summary> /// </summary>
[Required(ErrorMessage = "箱号不能为空")] [Required(ErrorMessage = "箱号不能为空")]
public int BoxId { get; set; } public int BoxId { get; set; }
///// <summary>
///// 仓位ID
///// </summary>
//[Required(ErrorMessage = "仓位不能为空")]
//public int SubStockId { get; set; }
/// <summary> /// <summary>
/// 仓位ID /// 仓位
/// </summary> /// </summary>
[Required(ErrorMessage = "仓位不能为空")] [Required(ErrorMessage = "仓位不能为空")]
public int SubStockId { get; set; } public string SubStockCode { get; set; }
/// <summary> /// <summary>
/// 数量 /// 数量
/// </summary> /// </summary>
@@ -36,11 +41,11 @@ namespace WMS.Web.Core.Dto.MoveBoxRecord
/// </summary> /// </summary>
public class SaveMoveBoxRecordDetailsRequest public class SaveMoveBoxRecordDetailsRequest
{ {
/// <summary> ///// <summary>
/// 物料Id ///// 物料Id
///</summary> /////</summary>
[Required(ErrorMessage = "物料不能为空")] //[Required(ErrorMessage = "物料不能为空")]
public int MaterialId { get; set; } //public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 物料编码 /// 物料编码
/// </summary> /// </summary>

View File

@@ -25,10 +25,10 @@ namespace WMS.Web.Core.Dto.OutStock
} }
public class SaveOutStockDetailsRequest public class SaveOutStockDetailsRequest
{ {
/// <summary> ///// <summary>
/// 物料Id ///// 物料Id
///</summary> /////</summary>
public int MaterialId { get; set; } //public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 物料编码 /// 物料编码
/// </summary> /// </summary>
@@ -43,10 +43,10 @@ namespace WMS.Web.Core.Dto.OutStock
///</summary> ///</summary>
[Required(ErrorMessage = "箱不能为空")] [Required(ErrorMessage = "箱不能为空")]
public int BoxId { get; set; } public int BoxId { get; set; }
/// <summary> ///// <summary>
/// 箱对应仓位不能为空 ///// 箱对应仓位不能为空
/// </summary> ///// </summary>
public int SubStockId { get; set; } //public int SubStockId { get; set; }
/// <summary> /// <summary>
/// 仓位 /// 仓位
/// </summary> /// </summary>

View File

@@ -15,21 +15,26 @@ namespace WMS.Web.Core.Dto.TakeStock
/// </summary> /// </summary>
[Required(ErrorMessage = "箱不能为空")] [Required(ErrorMessage = "箱不能为空")]
public int BoxId { get; set; } public int BoxId { get; set; }
/// <summary> ///// <summary>
/// 物料ID ///// 物料ID
/// </summary> ///// </summary>
[Required(ErrorMessage = "物料不能为空")] //[Required(ErrorMessage = "物料不能为空")]
public int MaterialId { get; set; } //public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 物料编码 /// 物料编码
/// </summary> /// </summary>
[Required(ErrorMessage = "物料不能为空")] [Required(ErrorMessage = "物料不能为空")]
public string MaterialNumber { get; set; } public string MaterialNumber { get; set; }
///// <summary>
///// 仓位ID
///// </summary>
//[Required(ErrorMessage = "仓位不能为空")]
//public int SubStockId { get; set; }
/// <summary> /// <summary>
/// 仓位ID /// 仓位
/// </summary> /// </summary>
[Required(ErrorMessage = "仓位不能为空")] [Required(ErrorMessage = "仓位不能为空")]
public int SubStockId { get; set; } public string SubStockCode { get; set; }
/// <summary> /// <summary>
/// 子仓库(跟金蝶交互字段) /// 子仓库(跟金蝶交互字段)
/// </summary> /// </summary>

View File

@@ -62,11 +62,11 @@ namespace WMS.Web.Domain.Entitys
public List<BoxDetails> Details { get; set; } = new List<BoxDetails>(); public List<BoxDetails> Details { get; set; } = new List<BoxDetails>();
//移出 //移出
public Result Out(List<(int MaterialId, decimal Qty, List<string> SerialNumbers)> list) public Result Out(List<(string MaterialNumber, decimal Qty, List<string> SerialNumbers)> list)
{ {
foreach (var l in list) foreach (var l in list)
{ {
var d = this.Details.FirstOrDefault(f => f.MaterialId == l.MaterialId); var d = this.Details.FirstOrDefault(f => f.MaterialNumber == l.MaterialNumber);
if (d == null) return Result.ReFailure(ResultCodes.BoxMateriaNoData); if (d == null) return Result.ReFailure(ResultCodes.BoxMateriaNoData);
d.Qty = d.Qty - l.Qty; d.Qty = d.Qty - l.Qty;
if (d.Qty <= 0) this.Details.Remove(d); if (d.Qty <= 0) this.Details.Remove(d);
@@ -76,16 +76,16 @@ namespace WMS.Web.Domain.Entitys
} }
//移入 //移入
public Result In(List<(int MaterialId, decimal Qty, List<string> SerialNumbers)> list) public Result In(List<(string MaterialNumber, decimal Qty, List<string> SerialNumbers)> list)
{ {
foreach (var l in list) foreach (var l in list)
{ {
var d = this.Details.FirstOrDefault(f => f.MaterialId == l.MaterialId); var d = this.Details.FirstOrDefault(f => f.MaterialNumber == l.MaterialNumber);
if (d == null) if (d == null)
{ {
this.Details.Add(new BoxDetails() this.Details.Add(new BoxDetails()
{ {
MaterialId = l.MaterialId, MaterialNumber = l.MaterialNumber,
Qty = l.Qty, Qty = l.Qty,
//SerialNumbers=l.SerialNumbers //SerialNumbers=l.SerialNumbers
}); });
@@ -98,14 +98,14 @@ namespace WMS.Web.Domain.Entitys
} }
//移入 //移入
public Result TakeStock(int materialId, decimal qty) public Result TakeStock(string materialNumber, decimal qty)
{ {
var d = this.Details.FirstOrDefault(f => f.MaterialId == materialId); var d = this.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber);
if (d == null) if (d == null)
{ {
this.Details.Add(new BoxDetails() this.Details.Add(new BoxDetails()
{ {
MaterialId = materialId, MaterialNumber = materialNumber,
Qty = qty Qty = qty
}); });
} }
@@ -114,17 +114,17 @@ namespace WMS.Web.Domain.Entitys
/// <summary> /// <summary>
/// 出入库回退上架 /// 出入库回退上架
/// </summary> /// </summary>
/// <param name="materialId"></param> /// <param name="materialNumber"></param>
/// <param name="qty"></param> /// <param name="qty"></param>
/// <returns></returns> /// <returns></returns>
public Result BackRecordUp(int materialId, decimal qty) public Result BackRecordUp(string materialNumber, decimal qty)
{ {
var d = this.Details.FirstOrDefault(f => f.MaterialId == materialId); var d = this.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber);
if (d == null) if (d == null)
{ {
this.Details.Add(new BoxDetails() this.Details.Add(new BoxDetails()
{ {
MaterialId = materialId, MaterialNumber = materialNumber,
Qty = qty Qty = qty
}); });
} }
@@ -136,12 +136,12 @@ namespace WMS.Web.Domain.Entitys
/// <summary> /// <summary>
/// 出入库回退下架 /// 出入库回退下架
/// </summary> /// </summary>
/// <param name="materialId"></param> /// <param name="materialNumber"></param>
/// <param name="qty"></param> /// <param name="qty"></param>
/// <returns></returns> /// <returns></returns>
public Result BackRecordDown(int materialId, decimal qty) public Result BackRecordDown(string materialNumber, decimal qty)
{ {
var d = this.Details.FirstOrDefault(f => f.MaterialId == materialId); var d = this.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber);
if (d != null) if (d != null)
d.Qty = (d.Qty - qty) > 0 ? (d.Qty - qty) : 0; d.Qty = (d.Qty - qty) > 0 ? (d.Qty - qty) : 0;
@@ -150,12 +150,12 @@ namespace WMS.Web.Domain.Entitys
/// <summary> /// <summary>
/// 出库 /// 出库
/// </summary> /// </summary>
/// <param name="materialId"></param> /// <param name="materialNumber"></param>
/// <param name="qty"></param> /// <param name="qty"></param>
/// <returns></returns> /// <returns></returns>
public Result OutStock(int materialId, decimal qty) public Result OutStock(string materialNumber, decimal qty)
{ {
var d = this.Details.FirstOrDefault(f => f.MaterialId == materialId); var d = this.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber);
if (d != null) if (d != null)
d.Qty = (d.Qty - qty) > 0 ? (d.Qty - qty) : 0; d.Qty = (d.Qty - qty) > 0 ? (d.Qty - qty) : 0;

View File

@@ -23,10 +23,10 @@ namespace WMS.Web.Domain.Entitys
/// 单据头ID /// 单据头ID
/// </summary> /// </summary>
public int Fid { get; set; } public int Fid { get; set; }
/// <summary> ///// <summary>
/// 物料ID ///// 物料ID
/// </summary> ///// </summary>
public int MaterialId { get; set; } //public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 物料编码 /// 物料编码
/// </summary> /// </summary>

View File

@@ -24,11 +24,11 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
[Column("BillNo")] [Column("BillNo")]
public string BillNo { get; set; } public string BillNo { get; set; }
/// <summary> ///// <summary>
/// 物料ID ///// 物料ID
/// </summary> ///// </summary>
[Column("MaterialId")] //[Column("MaterialId")]
public int MaterialId { get; set; } //public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 物料编码 /// 物料编码
/// </summary> /// </summary>
@@ -99,14 +99,14 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
/// <param name="creatorId"></param> /// <param name="creatorId"></param>
/// <param name="qty"></param> /// <param name="qty"></param>
/// <param name="materialId"></param> /// <param name="materialNumber"></param>
/// <param name="serialNumbers"></param> /// <param name="serialNumbers"></param>
public void Create(int creatorId,decimal qty,int materialId, List<string> serialNumbers,int srcBoxId,int destBoxId) public void Create(int creatorId,decimal qty,string materialNumber, List<string> serialNumbers,int srcBoxId,int destBoxId)
{ {
this.SrcBoxId = srcBoxId; this.SrcBoxId = srcBoxId;
this.DestBoxId = destBoxId; this.DestBoxId = destBoxId;
this.SerialNumbers = serialNumbers; this.SerialNumbers = serialNumbers;
this.MaterialId = materialId; this.MaterialNumber = materialNumber;
this.Qty = qty; this.Qty = qty;
this.CreatorId = creatorId; this.CreatorId = creatorId;
this.CreateTime = DateTime.Now; this.CreateTime = DateTime.Now;

View File

@@ -24,11 +24,11 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
[Column("Fid")] [Column("Fid")]
public int Fid { get; set; } public int Fid { get; set; }
/// <summary> ///// <summary>
/// 物料Id ///// 物料Id
///</summary> /////</summary>
[Column("MaterialId")] //[Column("MaterialId")]
public int MaterialId { get; set; } //public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 物料编码 /// 物料编码
/// </summary> /// </summary>

View File

@@ -25,11 +25,11 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
[Column("Fid")] [Column("Fid")]
public int Fid { get; set; } public int Fid { get; set; }
/// <summary> ///// <summary>
/// 物料Id ///// 物料Id
///</summary> /////</summary>
[Column("MaterialId")] //[Column("MaterialId")]
public int MaterialId { get; set; } //public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 物料编码 /// 物料编码
/// </summary> /// </summary>

View File

@@ -27,11 +27,11 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
[Column("Fid")] [Column("Fid")]
public int Fid { get; set; } public int Fid { get; set; }
/// <summary> ///// <summary>
/// 物料Id ///// 物料Id
///</summary> /////</summary>
[Column("MaterialId")] //[Column("MaterialId")]
public int MaterialId { get; set; } //public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 物料编码 /// 物料编码
/// </summary> /// </summary>

View File

@@ -15,12 +15,12 @@ namespace WMS.Web.Domain.Entitys
public class SerialNumberOperate : EntityBase public class SerialNumberOperate : EntityBase
{ {
public SerialNumberOperate() { } public SerialNumberOperate() { }
public SerialNumberOperate(string serialNumber, SerialNumberOperateType operateType, int materialId, string operateUser, string remark, public SerialNumberOperate(string serialNumber, SerialNumberOperateType operateType, string materialNumber, string operateUser, string remark,
int? supplierId = null, int? orgId = null, int? stockId = null, int? supplierId = null, int? orgId = null, int? stockId = null,
DateTime? operateTime = null) DateTime? operateTime = null)
{ {
this.SerialNumber = serialNumber; this.SerialNumber = serialNumber;
this.MaterialId = materialId; this.MaterialNumber = materialNumber;
this.OperateType = operateType; this.OperateType = operateType;
this.OperateUser = operateUser; this.OperateUser = operateUser;
this.Remark = remark; this.Remark = remark;
@@ -41,10 +41,10 @@ namespace WMS.Web.Domain.Entitys
/// 序列号操作类型 /// 序列号操作类型
/// </summary> /// </summary>
public SerialNumberOperateType OperateType { get; set; } = SerialNumberOperateType.Generate; public SerialNumberOperateType OperateType { get; set; } = SerialNumberOperateType.Generate;
/// <summary> ///// <summary>
/// 物料ID ///// 物料ID
/// </summary> ///// </summary>
public int MaterialId { get; set; } //public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 物料编码 /// 物料编码
/// </summary> /// </summary>
@@ -77,13 +77,13 @@ namespace WMS.Web.Domain.Entitys
/// <summary> /// <summary>
/// 装箱(记录) /// 装箱(记录)
/// </summary> /// </summary>
/// <param name="SerialNumber"></param> /// <param name="serialNumber"></param>
/// <param name="MaterialId"></param> /// <param name="materialNumber"></param>
/// <param name="box"></param> /// <param name="box"></param>
public void CompleteCartonBox(string serialNumber, int materialId, Box box) public void CompleteCartonBox(string serialNumber, string materialNumber, Box box)
{ {
this.SerialNumber = serialNumber; this.SerialNumber = serialNumber;
this.MaterialId = materialId; this.MaterialNumber = materialNumber;
this.OperateType = SerialNumberOperateType.CompleteCartonBox; this.OperateType = SerialNumberOperateType.CompleteCartonBox;
this.OperateTime = box.CompleteCartonTime; this.OperateTime = box.CompleteCartonTime;
this.OperateUser = box.CreateUser; this.OperateUser = box.CreateUser;

View File

@@ -17,10 +17,10 @@ namespace WMS.Web.Domain.Entitys
public class SerialNumbers : EntityBase public class SerialNumbers : EntityBase
{ {
public SerialNumbers() { } public SerialNumbers() { }
public SerialNumbers(string serialNumber, int materialId, int boxId, int opsBoxId, string creator, DateTime? createTime, DateTime? completeCartonTime) public SerialNumbers(string serialNumber, string materialNumber, int boxId, int opsBoxId, string creator, DateTime? createTime, DateTime? completeCartonTime)
{ {
this.SerialNumber = serialNumber; this.SerialNumber = serialNumber;
this.MaterialId = materialId; this.MaterialNumber = materialNumber;
this.BoxId = boxId; this.BoxId = boxId;
this.OpsBoxId = opsBoxId; this.OpsBoxId = opsBoxId;
this.Creator = creator; this.Creator = creator;
@@ -37,11 +37,11 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
[Column("SerialNumber")] [Column("SerialNumber")]
public string SerialNumber { get; set; } public string SerialNumber { get; set; }
/// <summary> ///// <summary>
/// 物料ID ///// 物料ID
/// </summary> ///// </summary>
[Column("MaterialId")] //[Column("MaterialId")]
public int MaterialId { get; set; } //public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 物料编码 /// 物料编码
/// </summary> /// </summary>
@@ -118,9 +118,9 @@ namespace WMS.Web.Domain.Entitys
/// 出库 /// 出库
/// </summary> /// </summary>
/// <param name="outStock">出库单</param> /// <param name="outStock">出库单</param>
public void OutStock(OutStock outStock, int materialId) public void OutStock(OutStock outStock, string materialNumber)
{ {
var outstockDetail = outStock.Details.FirstOrDefault(f => f.MaterialId == materialId); var outstockDetail = outStock.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber);
if (outstockDetail == null) return; if (outstockDetail == null) return;
//按产品出才解绑 按箱子出不解绑 //按产品出才解绑 按箱子出不解绑
if (outStock.Method == InventoryInOutMethod.Product) if (outStock.Method == InventoryInOutMethod.Product)

View File

@@ -30,11 +30,11 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
[Column("BoxId")] [Column("BoxId")]
public int BoxId { get; set; } public int BoxId { get; set; }
/// <summary> ///// <summary>
/// 物料ID ///// 物料ID
/// </summary> ///// </summary>
[Column("MaterialId")] //[Column("MaterialId")]
public int MaterialId { get; set; } //public int MaterialId { get; set; }
/// <summary> /// <summary>
/// 物料编码 /// 物料编码
/// </summary> /// </summary>

View File

@@ -36,6 +36,21 @@ namespace WMS.Web.Domain.IService.Public
/// <returns></returns> /// <returns></returns>
string GetMaterialSpecifications(List<ErpMaterialDto> erpMaterials, int materialId); string GetMaterialSpecifications(List<ErpMaterialDto> erpMaterials, int materialId);
/// <summary>
/// 获取物料名称
/// </summary>
/// <param name="erpMaterials"></param>
/// <param name="materialNumber"></param>
string GetMaterialName(List<ErpMaterialDto> erpMaterials, string materialNumber);
/// <summary>
/// 获取物料规格型号
/// </summary>
/// <param name="erpMaterials"></param>
/// <param name="materialNumber"></param>
/// <returns></returns>
string GetMaterialSpecifications(List<ErpMaterialDto> erpMaterials, string materialNumber);
/// <summary> /// <summary>
/// 获取物料基本单位名称 /// 获取物料基本单位名称
/// </summary> /// </summary>

View File

@@ -121,6 +121,12 @@ namespace WMS.Web.Domain.IService.Public
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
Task<Result<ErpMaterialDto>> BillQueryForMaterial(int id); Task<Result<ErpMaterialDto>> BillQueryForMaterial(int id);
/// <summary>
/// erp:基础数据-物料信息
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
Task<Result<ErpMaterialDto>> BillQueryForMaterial(string number);
/// <summary> /// <summary>
/// ///

View File

@@ -102,14 +102,14 @@ namespace WMS.Web.Domain.Services
.SelectMany(s => s.SerialNumbers) .SelectMany(s => s.SerialNumbers)
.FirstOrDefault(s => s.SerialNumber.Equals(sn.SerialNumber)); .FirstOrDefault(s => s.SerialNumber.Equals(sn.SerialNumber));
//序列号 //序列号
SerialNumbers s = new SerialNumbers(sn.SerialNumber, detail.MaterialId, b.Id, b.OpsBoxId, opsSerial.BarCereateUser, opsSerial.BarCreateTime, b.CompleteCartonTime); SerialNumbers s = new SerialNumbers(sn.SerialNumber, detail.MaterialNumber, b.Id, b.OpsBoxId, opsSerial.BarCereateUser, opsSerial.BarCreateTime, b.CompleteCartonTime);
sList.Add(s); sList.Add(s);
//序列号记录(序列号生成) //序列号记录(序列号生成)
SerialNumberOperate so = new SerialNumberOperate(sn.SerialNumber, SerialNumberOperateType.Generate, detail.MaterialId, opsSerial.BarCereateUser, "", b.SupplierId, b.OrgId, null, opsSerial.BarCreateTime); SerialNumberOperate so = new SerialNumberOperate(sn.SerialNumber, SerialNumberOperateType.Generate, detail.MaterialNumber, opsSerial.BarCereateUser, "", b.SupplierId, b.OrgId, null, opsSerial.BarCreateTime);
soList.Add(so); soList.Add(so);
//序列号记录(装箱) //序列号记录(装箱)
SerialNumberOperate so_g = new SerialNumberOperate(); SerialNumberOperate so_g = new SerialNumberOperate();
so_g.CompleteCartonBox(sn.SerialNumber, detail.MaterialId, b); so_g.CompleteCartonBox(sn.SerialNumber, detail.MaterialNumber, b);
soList.Add(so_g); soList.Add(so_g);
} }
} }

View File

@@ -132,7 +132,7 @@ namespace WMS.Web.Domain.Services
if (destBoxs.Count() != destIds.Count()) return Result.ReFailure(ResultCodes.BoxNoData); if (destBoxs.Count() != destIds.Count()) return Result.ReFailure(ResultCodes.BoxNoData);
foreach (var d in dto) foreach (var d in dto)
{ {
var l = d.Details.Select(s => (s.MaterialId, s.Qty, s.SerialNumbers)).ToList(); var l = d.Details.Select(s => (s.MaterialNumber, s.Qty, s.SerialNumbers)).ToList();
var srcBox = srcBoxs.FirstOrDefault(f => f.Id == d.SrcBoxId); var srcBox = srcBoxs.FirstOrDefault(f => f.Id == d.SrcBoxId);
var destBox = destBoxs.FirstOrDefault(f => f.Id == d.DestBoxId); var destBox = destBoxs.FirstOrDefault(f => f.Id == d.DestBoxId);
//原箱移出 //原箱移出
@@ -167,7 +167,7 @@ namespace WMS.Web.Domain.Services
foreach (var d in dt.Details) foreach (var d in dt.Details)
{ {
ChangeBoxRecord entity = new ChangeBoxRecord(); ChangeBoxRecord entity = new ChangeBoxRecord();
entity.Create(loginInfo.UserInfo.StaffId, d.Qty, d.MaterialId, d.SerialNumbers, dt.SrcBoxId, dt.DestBoxId); entity.Create(loginInfo.UserInfo.StaffId, d.Qty, d.MaterialNumber, d.SerialNumbers, dt.SrcBoxId, dt.DestBoxId);
entity.SrcSubStockId = boxi?.SubStockId ?? 0;//原乡仓位需要去拉一下库存获取 entity.SrcSubStockId = boxi?.SubStockId ?? 0;//原乡仓位需要去拉一下库存获取
entity.SrcSubStockCode = subStock_s?.Code ?? ""; entity.SrcSubStockCode = subStock_s?.Code ?? "";
if (subStock != null) if (subStock != null)
@@ -236,7 +236,7 @@ namespace WMS.Web.Domain.Services
} }
OpsBoxDetailsResponse dr = new OpsBoxDetailsResponse() OpsBoxDetailsResponse dr = new OpsBoxDetailsResponse()
{ {
MaterialId = d.MaterialId, MaterialNumber = d.MaterialNumber,
Qty = d.Qty, Qty = d.Qty,
SerialNumbers = s SerialNumbers = s
}; };
@@ -283,7 +283,7 @@ namespace WMS.Web.Domain.Services
entity.Create(IsUp == true ? MoveBoxType.Up : MoveBoxType.Down, d.BoxId, d.Qty, subStock?.ErpOrgCode, subStock?.StockCode, d.SubStockId, loginInfo.UserInfo.StaffId, subStock?.Code); entity.Create(IsUp == true ? MoveBoxType.Up : MoveBoxType.Down, d.BoxId, d.Qty, subStock?.ErpOrgCode, subStock?.StockCode, d.SubStockId, loginInfo.UserInfo.StaffId, subStock?.Code);
entity.Details = d.Details.Select(s => new MoveBoxRecordDetails() entity.Details = d.Details.Select(s => new MoveBoxRecordDetails()
{ {
MaterialId = s.MaterialId, MaterialNumber = s.MaterialNumber,
Qty = s.Qty, Qty = s.Qty,
SerialNumbers = s.SerialNumbers SerialNumbers = s.SerialNumbers
}).ToList(); }).ToList();

View File

@@ -92,15 +92,15 @@ namespace WMS.Web.Domain.Services
if (outStockTask.Status == OutStockStatus.Repeal) if (outStockTask.Status == OutStockStatus.Repeal)
return Result.ReFailure(ResultCodes.OutStockTaskRepeal); return Result.ReFailure(ResultCodes.OutStockTaskRepeal);
var mIds = dto.Details.GroupBy(g => g.MaterialId).Select(s => s.Key).ToList(); var mIds = dto.Details.GroupBy(g => g.MaterialNumber).Select(s => s.Key).ToList();
foreach (var m in mIds) foreach (var m in mIds)
{ {
var d_boxIds = dto.Details.Where(w => w.MaterialId == m).Select(s => s.BoxId); var d_boxIds = dto.Details.Where(w => w.MaterialNumber == m).Select(s => s.BoxId);
if (d_boxIds.Distinct().Count() != d_boxIds.Count()) if (d_boxIds.Distinct().Count() != d_boxIds.Count())
return Result.ReFailure(ResultCodes.BoxOutStockTaskBoxError); return Result.ReFailure(ResultCodes.BoxOutStockTaskBoxError);
} }
//上传的物料在任务单里没有找到不能出库 //上传的物料在任务单里没有找到不能出库
var ex = dto.Details.Select(s => s.MaterialId).Except(outStockTask.Details.Select(s => s.MaterialId)).ToList(); var ex = dto.Details.Select(s => s.MaterialNumber).Except(outStockTask.Details.Select(s => s.MaterialNumber)).ToList();
if (ex.Count() > 0 && dto.Method == 2) if (ex.Count() > 0 && dto.Method == 2)
return Result.ReFailure(ResultCodes.OutStockMaterialError); return Result.ReFailure(ResultCodes.OutStockMaterialError);
var boxIds = dto.Details.Select(s => s.BoxId).ToList(); var boxIds = dto.Details.Select(s => s.BoxId).ToList();
@@ -134,7 +134,7 @@ namespace WMS.Web.Domain.Services
foreach (var b in boxInventoryDetails) foreach (var b in boxInventoryDetails)
{ {
var num = boxInventoryDetails.Where(w => w.MaterialId == b.MaterialId).Sum(s => s.Qty); var num = boxInventoryDetails.Where(w => w.MaterialId == b.MaterialId).Sum(s => s.Qty);
var taskDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialId == b.MaterialId); var taskDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialNumber == b.MaterialId);
if (taskDetail == null) return Result.ReFailure(ResultCodes.BoxOutStockTaskMaterialError); if (taskDetail == null) return Result.ReFailure(ResultCodes.BoxOutStockTaskMaterialError);
//箱子里该物料的总数量大于出库单(应出库数量-已出库数量) 不能出库 //箱子里该物料的总数量大于出库单(应出库数量-已出库数量) 不能出库
if (num > (taskDetail.AccruedQty - taskDetail.RealityQty)) if (num > (taskDetail.AccruedQty - taskDetail.RealityQty))
@@ -154,8 +154,8 @@ namespace WMS.Web.Domain.Services
foreach (var mid in mIds) foreach (var mid in mIds)
{ {
//任务单明细 //任务单明细
var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialId == mid); var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialNumber == mid);
var dtoDetails = dto.Details.Where(w => w.MaterialId == mid); var dtoDetails = dto.Details.Where(w => w.MaterialNumber == mid);
var qty = dtoDetails.Sum(s => s.Qty); var qty = dtoDetails.Sum(s => s.Qty);
if (tDetail == null) continue; if (tDetail == null) continue;
@@ -173,7 +173,7 @@ namespace WMS.Web.Domain.Services
oErpDetail.Qty = c.qty; oErpDetail.Qty = c.qty;
outd.ErpDetails.Add(oErpDetail); outd.ErpDetails.Add(oErpDetail);
} }
var boxs = dto.Details.Where(w => w.MaterialId == mid).ToList(); var boxs = dto.Details.Where(w => w.MaterialNumber == mid).ToList();
outd.BoxsDetails = _mapper.Map<List<OutStockBoxsDetails>>(boxs); outd.BoxsDetails = _mapper.Map<List<OutStockBoxsDetails>>(boxs);
outd.Qty = qty; outd.Qty = qty;

View File

@@ -97,6 +97,50 @@ namespace WMS.Web.Domain.Services.Public
return mat.Specifications; return mat.Specifications;
} }
/// <summary>
/// 获取物料名称
/// </summary>
/// <param name="erpMaterials"></param>
/// <param name="materialNumber"></param>
/// <returns></returns>
public string GetMaterialName(List<ErpMaterialDto> erpMaterials, string materialNumber)
{
if (erpMaterials == null || erpMaterials.Count == 0)
return "";
var mat = erpMaterials.Where(x => x.MaterialNumber == materialNumber).FirstOrDefault();
if (mat == null)
{
var result = _erpService.BillQueryForMaterial(materialNumber).GetAwaiter().GetResult();
if (!result.IsSuccess)
return "";
return result.Data == null ? "" : result.Data.MaterialName;
}
return mat.MaterialName;
}
/// <summary>
/// 获取物料编码
/// </summary>
/// <param name="erpMaterials"></param>
/// <param name="materialNumber"></param>
/// <returns></returns>
public string GetMaterialSpecifications(List<ErpMaterialDto> erpMaterials, string materialNumber)
{
if (erpMaterials == null || erpMaterials.Count == 0)
return "";
var mat = erpMaterials.Where(x => x.MaterialNumber == materialNumber).FirstOrDefault();
if (mat == null)
{
var result = _erpService.BillQueryForMaterial(materialNumber).GetAwaiter().GetResult();
if (!result.IsSuccess)
return "";
return result.Data == null ? "" : result.Data.Specifications;
}
return mat.Specifications;
}
/// <summary> /// <summary>
/// 获取物料基本单位名称 /// 获取物料基本单位名称
/// </summary> /// </summary>
@@ -303,5 +347,6 @@ namespace WMS.Web.Domain.Services.Public
var stock = erpStocks.Where(x => x.Code == code).FirstOrDefault(); var stock = erpStocks.Where(x => x.Code == code).FirstOrDefault();
return stock == null ? "" : stock.Name; return stock == null ? "" : stock.Name;
} }
} }
} }

View File

@@ -890,7 +890,36 @@ namespace WMS.Web.Domain.Services.Public
return Result<ErpMaterialDto>.ReSuccess(mater); return Result<ErpMaterialDto>.ReSuccess(mater);
} }
/// <summary>
/// erp:基础数据-物料信息
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
public async Task<Result<ErpMaterialDto>> BillQueryForMaterial(string number)
{
//1.获取缓存中的物料数据
var materials = _memoryCache.Get<List<ErpMaterialDto>>(_erpOptions.cache_materail_key);
if (materials == null || materials.Count == 0)
return Result<ErpMaterialDto>.ReSuccess(null);
//2.通过ID取当前物料列表中的
var mater = materials.Where(x => x.MaterialNumber == number).FirstOrDefault();
if (mater == null)
{
//2.1没有的话:去金蝶取
mater = await this.BillQueryForMaterialByNumber(number);
if (mater != null)
{
//把取到的数据放集合中并重新给缓存
materials.Add(mater);
_memoryCache.Set(_erpOptions.cache_materail_key, materials, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(DateTimeUtil.GetTotalMinutesTimeSpan())));
return Result<ErpMaterialDto>.ReSuccess(mater);
}
else
return Result<ErpMaterialDto>.ReSuccess(null);
}
return Result<ErpMaterialDto>.ReSuccess(mater);
}
/// <summary> /// <summary>
/// erp:基础数据-物料-分页查询 /// erp:基础数据-物料-分页查询
/// </summary> /// </summary>
@@ -1042,6 +1071,74 @@ namespace WMS.Web.Domain.Services.Public
return null; return null;
} }
}
/// <summary>
/// erp:基础数据-物料-number查询
/// </summary>
/// <param name="number"></param>
/// <returns></returns>
private async Task<ErpMaterialDto> BillQueryForMaterialByNumber(string number)
{
//2.先登录金蝶-拿到token
var token_result = await this.Init();
if (!token_result.IsSuccess)
return null;
//3.获取金蝶物料:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.BD_MATERIAL.ToString());
param.FieldKeys = "FMATERIALID,FName,FNumber,FSpecification,FBaseUnitId,FBaseUnitId.FName,FBaseUnitId.FNumber,FBARCODE";
param.Limit = 10000;
//查询条件:备注其中的条件值以金蝶的值为准!!!
//1.审核状态:已审核
//2.禁用状态A否B是
//3.使用组织只查询“深圳市元创时代科技有限公司”这个组织组织ID=100008--固定值查询(测试端和正式是一样的)---按ID查询就不需要固定组织条件了
param.FilterString = "FDocumentStatus='C' and FForbidStatus='A'";
param.OrderString = "FCreateDate ASC";
//根据物料ID查询
param.FilterString = param.FilterString + $" and FNumber={number}";
//4.循环拿金蝶数据
var erp_materials_list = new List<ErpMaterialDto>();
//4.2.参数json化
query.Data = JsonConvert.SerializeObject(param);
var json = JsonConvert.SerializeObject(query);
var error_josn = "";
try
{
//4.3.请求查询接口并返回数据
var result_json = await _client.ExecuteBillQueryAsync(json);
error_josn = result_json;
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
//4.5.拼装
foreach (var item in result)
{
var lis = new ErpMaterialDto();
lis.MaterialId = Convert.ToInt32(item[0]);
lis.MaterialName = item[1];
lis.MaterialNumber = item[2];
lis.Specifications = item[3];
lis.BaseUnitId = Convert.ToInt32(item[4]);
lis.BaseUnitName = item[5];
lis.BaseUnitNumber = item[6];
lis.BarCode = item[7];
erp_materials_list.Add(lis);
}
if (erp_materials_list.Count == 0)
return null;
else
return erp_materials_list.FirstOrDefault();
}
catch (Exception)
{
_logger.LogInformation("物料拉取按Number->错误的Json" + error_josn);
return null;
}
} }
/// <summary> /// <summary>
@@ -2392,8 +2489,10 @@ namespace WMS.Web.Domain.Services.Public
return ResultList<ErpInventoryDto>.ReFailure(ResultCodes.Erp_Inventory_Error); return ResultList<ErpInventoryDto>.ReFailure(ResultCodes.Erp_Inventory_Error);
} }
} }
#endregion #endregion
} }
} }

View File

@@ -222,7 +222,7 @@ namespace WMS.Web.Domain.Services
foreach (var d in details) foreach (var d in details)
{ {
int subStockId = subs.Data.FirstOrDefault(w => w.OrgCode.Equals(d.OrgCode) && w.StockCode.Equals(d.Erp_SubStockCode))?.Id ?? 0; int subStockId = subs.Data.FirstOrDefault(w => w.OrgCode.Equals(d.OrgCode) && w.StockCode.Equals(d.Erp_SubStockCode))?.Id ?? 0;
requestInventory.Add((_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId), d.OrgCode, d.StockCode, subStockId)); requestInventory.Add((d.MaterialNumber, d.OrgCode, d.StockCode, subStockId));
}; };
var res_s = await sc_erpService.BillQueryForInventory(requestInventory); var res_s = await sc_erpService.BillQueryForInventory(requestInventory);
if (!res_s.IsSuccess) if (!res_s.IsSuccess)
@@ -239,7 +239,7 @@ namespace WMS.Web.Domain.Services
foreach (var d in details) foreach (var d in details)
{ {
int subStockId = subs.Data.FirstOrDefault(w => w.OrgCode.Equals(d.OrgCode) && w.StockCode.Equals(d.Erp_SubStockCode))?.Id ?? 0; int subStockId = subs.Data.FirstOrDefault(w => w.OrgCode.Equals(d.OrgCode) && w.StockCode.Equals(d.Erp_SubStockCode))?.Id ?? 0;
var number = _erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId); var number = d.MaterialNumber;
var erpInventory = res_s.Data.FirstOrDefault(f => f.MaterialNumber == number && f.StockCode == d.StockCode var erpInventory = res_s.Data.FirstOrDefault(f => f.MaterialNumber == number && f.StockCode == d.StockCode
&& f.OrgCode == d.OrgCode && f.Erp_SubStockId == subStockId); && f.OrgCode == d.OrgCode && f.Erp_SubStockId == subStockId);
decimal qty = erpInventory?.Qty ?? 0; decimal qty = erpInventory?.Qty ?? 0;
@@ -248,7 +248,7 @@ namespace WMS.Web.Domain.Services
{ {
FOwnerid = new ErpNumberDto(d.OrgCode), FOwnerid = new ErpNumberDto(d.OrgCode),
FKeeperId = new ErpNumberDto(d.OrgCode), FKeeperId = new ErpNumberDto(d.OrgCode),
MaterialId = new ErpNumberDto(_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId)), MaterialId = new ErpNumberDto(d.MaterialNumber),
UnitId = new ErpNumberDto(unitNumber), //物料带出来 UnitId = new ErpNumberDto(unitNumber), //物料带出来
StockId = new ErpNumberDto(d.StockCode), StockId = new ErpNumberDto(d.StockCode),
SubStockId = new ErpSubStockDto(d.StockCode, d.Erp_SubStockCode), SubStockId = new ErpSubStockDto(d.StockCode, d.Erp_SubStockCode),
@@ -358,7 +358,7 @@ namespace WMS.Web.Domain.Services
list.Add(new SerialNumbersBoxInventoryDto() list.Add(new SerialNumbersBoxInventoryDto()
{ {
BoxId = entity.BoxId, BoxId = entity.BoxId,
MaterialId = d.MaterialId, MaterialNumber = d.MaterialNumber,
SerialNumber = s SerialNumber = s
}); });
} }

View File

@@ -163,9 +163,9 @@ namespace WMS.Web.Repositories
{ {
#region dto组装 #region dto组装
BillNo = s.changeBox.BillNo, BillNo = s.changeBox.BillNo,
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.changeBox.MaterialId), MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.changeBox.MaterialNumber),
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.changeBox.MaterialId), MaterialNumber = s.changeBox.MaterialNumber,
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.changeBox.MaterialId), Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.changeBox.MaterialNumber),
//Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.changeBox.StockId), //Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.changeBox.StockId),
SerialNumbers = string.Join(",", s.changeBox.SerialNumbers), SerialNumbers = string.Join(",", s.changeBox.SerialNumbers),
SrcBox = s.srcBox.BoxBillNo, SrcBox = s.srcBox.BoxBillNo,

View File

@@ -127,11 +127,11 @@ namespace WMS.Web.Repositories
foreach (var d in res.First().Details) foreach (var d in res.First().Details)
{ {
BoxDetailResponse detail = new BoxDetailResponse(); BoxDetailResponse detail = new BoxDetailResponse();
detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, d.MaterialId); detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, d.MaterialNumber);
detail.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId); detail.MaterialNumber = d.MaterialNumber;
detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, d.MaterialId); detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, d.MaterialNumber);
detail.SerialNumbers = d.SerialNumbers; detail.SerialNumbers = d.SerialNumbers;
detail.MaterialId = d.MaterialId; detail.MaterialId = 0;
detail.Qty = d.Qty; detail.Qty = d.Qty;
details.Add(detail); details.Add(detail);
} }

View File

@@ -100,7 +100,7 @@ namespace WMS.Web.Repositories
ids = staffList.Where(w => w.Name.Contains(dto.Creator)).Select(s => s.Id).ToList(); ids = staffList.Where(w => w.Name.Contains(dto.Creator)).Select(s => s.Id).ToList();
} }
#region erp基础资料 #region erp基础资料
List<int> mIds = new List<int>(); List<string> mNumber = new List<string>();
var materials_result = await _erpService.BillQueryForMaterial(); var materials_result = await _erpService.BillQueryForMaterial();
List<ErpMaterialDto> materials = new List<ErpMaterialDto>(); List<ErpMaterialDto> materials = new List<ErpMaterialDto>();
if (materials_result.IsSuccess) if (materials_result.IsSuccess)
@@ -109,10 +109,10 @@ namespace WMS.Web.Repositories
if (!string.IsNullOrEmpty(dto.MaterialNumber)) if (!string.IsNullOrEmpty(dto.MaterialNumber))
{ {
if (materials != null) if (materials != null)
mIds = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber) mNumber = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|| w.MaterialName.Contains(dto.MaterialNumber) || w.MaterialName.Contains(dto.MaterialNumber)
|| w.Specifications.Contains(dto.MaterialNumber) || w.Specifications.Contains(dto.MaterialNumber)
).Select(s => s.MaterialId).ToList(); ).Select(s => s.MaterialNumber).ToList();
} }
//取组织 //取组织
@@ -146,7 +146,7 @@ namespace WMS.Web.Repositories
query = query.Where(w => rec_id == w.order.ReceiptCustomerId && w.order.Type != OutStockType.Sal); query = query.Where(w => rec_id == w.order.ReceiptCustomerId && w.order.Type != OutStockType.Sal);
} }
if (!string.IsNullOrEmpty(dto.MaterialNumber)) if (!string.IsNullOrEmpty(dto.MaterialNumber))
query = query.Where(w => mIds.Contains(w.detail.MaterialId)); query = query.Where(w => mNumber.Contains(w.detail.MaterialNumber));
if (!string.IsNullOrEmpty(dto.Creator)) if (!string.IsNullOrEmpty(dto.Creator))
query = query.Where(w => ids.Contains(w.order.CreatorId)); query = query.Where(w => ids.Contains(w.order.CreatorId));
if (!string.IsNullOrEmpty(dto.SourceBillNo)) if (!string.IsNullOrEmpty(dto.SourceBillNo))
@@ -194,9 +194,9 @@ namespace WMS.Web.Repositories
ReceiptCustomer = s.order.Type == OutStockType.Sal ReceiptCustomer = s.order.Type == OutStockType.Sal
? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId) ? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId)
: _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId), : _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId), MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber),
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId), MaterialNumber = s.detail.MaterialNumber,
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId), Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber),
Qty = s.detail.Qty, Qty = s.detail.Qty,
Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.detail.MaterialId), Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.detail.MaterialId),
Remark = s.order.Remark Remark = s.order.Remark
@@ -361,11 +361,11 @@ namespace WMS.Web.Repositories
var boxDetail = d.BoxsDetails.FirstOrDefault(f => f.BoxId == boxId); var boxDetail = d.BoxsDetails.FirstOrDefault(f => f.BoxId == boxId);
if (boxDetail == null) continue; if (boxDetail == null) continue;
BoxDetailResponse detail = new BoxDetailResponse(); BoxDetailResponse detail = new BoxDetailResponse();
detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, d.MaterialId); detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, d.MaterialNumber);
detail.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId); detail.MaterialNumber = d.MaterialNumber;
detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, d.MaterialId); detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, d.MaterialNumber);
detail.SerialNumbers = boxDetail.SerialNumbers; detail.SerialNumbers = boxDetail.SerialNumbers;
detail.MaterialId = d.MaterialId; detail.MaterialId = 0;
detail.Qty = boxDetail.Qty; detail.Qty = boxDetail.Qty;
details.Add(detail); details.Add(detail);
} }

View File

@@ -232,7 +232,7 @@ namespace WMS.Web.Repositories
if (companyId == 0) if (companyId == 0)
companyId = _loginRepositories.CompanyId; companyId = _loginRepositories.CompanyId;
#region erp基础资料 #region erp基础资料
List<int> mIds = new List<int>(); List<string> mNumber = new List<string>();
var materials_result = await _erpService.BillQueryForMaterial(); var materials_result = await _erpService.BillQueryForMaterial();
List<ErpMaterialDto> materials = new List<ErpMaterialDto>(); List<ErpMaterialDto> materials = new List<ErpMaterialDto>();
if (materials_result.IsSuccess) if (materials_result.IsSuccess)
@@ -241,10 +241,10 @@ namespace WMS.Web.Repositories
if (!string.IsNullOrEmpty(dto.MaterialNumber)) if (!string.IsNullOrEmpty(dto.MaterialNumber))
{ {
if (materials != null) if (materials != null)
mIds = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber) mNumber = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|| w.MaterialName.Contains(dto.MaterialNumber) || w.MaterialName.Contains(dto.MaterialNumber)
|| w.Specifications.Contains(dto.MaterialNumber) || w.Specifications.Contains(dto.MaterialNumber)
).Select(s => s.MaterialId).ToList(); ).Select(s => s.MaterialNumber).ToList();
} }
//取组织 //取组织
@@ -278,7 +278,7 @@ namespace WMS.Web.Repositories
query = query.Where(w => rec_id == w.order.ReceiptCustomerId && w.order.Type != OutStockType.Sal); query = query.Where(w => rec_id == w.order.ReceiptCustomerId && w.order.Type != OutStockType.Sal);
} }
if (!string.IsNullOrEmpty(dto.MaterialNumber)) if (!string.IsNullOrEmpty(dto.MaterialNumber))
query = query.Where(w => mIds.Contains(w.detail.MaterialId)); query = query.Where(w => mNumber.Contains(w.detail.MaterialNumber));
if (dto.Ids.Count() > 0) if (dto.Ids.Count() > 0)
query = query.Where(w => dto.Ids.Contains(w.detail.Id)); query = query.Where(w => dto.Ids.Contains(w.detail.Id));
if (!string.IsNullOrEmpty(dto.SourceBillNo)) if (!string.IsNullOrEmpty(dto.SourceBillNo))
@@ -324,9 +324,9 @@ namespace WMS.Web.Repositories
ReceiptCustomer = s.order.Type == OutStockType.Sal ReceiptCustomer = s.order.Type == OutStockType.Sal
? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId) ? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId)
: _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId), : _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId), MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber),
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId), MaterialNumber = s.detail.MaterialNumber,
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId), Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber),
Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.detail.MaterialId), Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.detail.MaterialId),
Remark = s.detail.Remark Remark = s.detail.Remark
#endregion #endregion

View File

@@ -117,9 +117,9 @@ namespace WMS.Web.Repositories
if (s == null) return null; if (s == null) return null;
SerialNumbersResponse respone = new SerialNumbersResponse() SerialNumbersResponse respone = new SerialNumbersResponse()
{ {
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialId), MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialNumber),
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.MaterialId), MaterialNumber = s.MaterialNumber,
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialId), Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialNumber),
CompleteCartonTime = s.CompleteCartonTime.DateToStringSeconds(), CompleteCartonTime = s.CompleteCartonTime.DateToStringSeconds(),
InStockTime = s.InStockTime.DateToStringSeconds(), InStockTime = s.InStockTime.DateToStringSeconds(),
OutStockTime = s.OutStockTime.DateToStringSeconds(), OutStockTime = s.OutStockTime.DateToStringSeconds(),
@@ -209,10 +209,10 @@ namespace WMS.Web.Repositories
response.BoxBillNo = entity?.box?.BoxBillNo ?? ""; response.BoxBillNo = entity?.box?.BoxBillNo ?? "";
response.SubStockId = entity?.boxInventory?.SubStockId ?? 0; response.SubStockId = entity?.boxInventory?.SubStockId ?? 0;
response.SerialNumber = entity.serial.SerialNumber; response.SerialNumber = entity.serial.SerialNumber;
response.MaterialId = entity.serial.MaterialId; response.MaterialId = 0;
response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, entity.serial.MaterialId); response.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, entity.serial.MaterialNumber);
response.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, entity.serial.MaterialId); response.MaterialNumber = entity.serial.MaterialNumber;
response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, entity.serial.MaterialId); response.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, entity.serial.MaterialNumber);
if (entity.boxInventory != null) if (entity.boxInventory != null)
response.IsBoxInventory = entity.boxInventory.Details.SelectMany(s => s.SerialNumbers).Where(w => serialNumber.Equals(w)).Count() >= 1 ? true : false; response.IsBoxInventory = entity.boxInventory.Details.SelectMany(s => s.SerialNumbers).Where(w => serialNumber.Equals(w)).Count() >= 1 ? true : false;

View File

@@ -196,7 +196,7 @@ namespace WMS.Web.Repositories
if (companyId == 0) if (companyId == 0)
companyId = _loginRepositories.CompanyId; companyId = _loginRepositories.CompanyId;
//1.获取物料集合 //1.获取物料集合
List<int> mIds = new List<int>(); List<string> mNumber = new List<string>();
var materials_result = await _erpService.BillQueryForMaterial(); var materials_result = await _erpService.BillQueryForMaterial();
List<ErpMaterialDto> materials = new List<ErpMaterialDto>(); List<ErpMaterialDto> materials = new List<ErpMaterialDto>();
if (materials_result.IsSuccess) if (materials_result.IsSuccess)
@@ -205,10 +205,10 @@ namespace WMS.Web.Repositories
if (!string.IsNullOrEmpty(dto.MaterialNumber)) if (!string.IsNullOrEmpty(dto.MaterialNumber))
{ {
if (materials != null) if (materials != null)
mIds = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber) mNumber = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|| w.MaterialName.Contains(dto.MaterialNumber) || w.MaterialName.Contains(dto.MaterialNumber)
|| w.Specifications.Contains(dto.MaterialNumber) || w.Specifications.Contains(dto.MaterialNumber)
).Select(s => s.MaterialId).ToList(); ).Select(s => s.MaterialNumber).ToList();
} }
//金蝶子仓库 //金蝶子仓库
var subStock_result = await _erpService.BillQueryForSubStock(); var subStock_result = await _erpService.BillQueryForSubStock();
@@ -225,7 +225,7 @@ namespace WMS.Web.Repositories
.Where(adv => 1 == 1 && adv.detail.FinalQty > 0); .Where(adv => 1 == 1 && adv.detail.FinalQty > 0);
if (!string.IsNullOrEmpty(dto.MaterialNumber)) if (!string.IsNullOrEmpty(dto.MaterialNumber))
query = query.Where(w => mIds.Contains(w.detail.MaterialId)); query = query.Where(w => mNumber.Contains(w.detail.MaterialNumber));
if (dto.ResultType != null) if (dto.ResultType != null)
query = query.Where(w => w.order.ResultType == (TakeStockType)dto.ResultType); query = query.Where(w => w.order.ResultType == (TakeStockType)dto.ResultType);
if (!string.IsNullOrEmpty(dto.BillNo)) if (!string.IsNullOrEmpty(dto.BillNo))
@@ -261,9 +261,9 @@ namespace WMS.Web.Repositories
Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.detail.StockCode + s.detail.OrgCode), Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.detail.StockCode + s.detail.OrgCode),
SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.detail.SubStockId), SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.detail.SubStockId),
Erp_SubStock = _erpBasicDataExtendService.GetSubStockName(subStocks, s.detail.Erp_SubStockCode), Erp_SubStock = _erpBasicDataExtendService.GetSubStockName(subStocks, s.detail.Erp_SubStockCode),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId), MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber),
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId), MaterialNumber = s.detail.MaterialNumber,
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId), Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber),
BeforeQty = s.detail.BeforeQty, BeforeQty = s.detail.BeforeQty,
AfterQty = s.detail.AfterQty, AfterQty = s.detail.AfterQty,
FinalQty = s.detail.FinalQty, FinalQty = s.detail.FinalQty,