diff --git a/src/WMS.Web.Api/Controllers/SerialNumberController.cs b/src/WMS.Web.Api/Controllers/SerialNumberController.cs
new file mode 100644
index 00000000..05d33b8a
--- /dev/null
+++ b/src/WMS.Web.Api/Controllers/SerialNumberController.cs
@@ -0,0 +1,50 @@
+using AutoMapper;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using WMS.Web.Core.Dto.SerialNumbers;
+using WMS.Web.Core.Internal.Results;
+using WMS.Web.Domain.Infrastructure;
+using WMS.Web.Domain.IService.Public;
+using WMS.Web.Domain.Values;
+
+namespace WMS.Web.Api.Controllers
+{
+ [Route("api/[controller]")]
+ [ApiController]
+ public class SerialNumberController : ControllerBase
+ {
+ private readonly IMapper _mapper;
+ private readonly ILoginService _loginService;
+ private readonly ISerialNumbersRepositories _serialNumbersRepositories;
+ public SerialNumberController(IMapper mapper, ILoginService loginService, ISerialNumbersRepositories serialNumbersRepositories)
+ {
+ _mapper = mapper;
+ _loginService = loginService;
+ _serialNumbersRepositories = serialNumbersRepositories;
+ }
+
+ ///
+ /// 获取序列号信息
+ ///
+ /// 序列号
+ ///
+ [HttpGet]
+ [Route("Get/{serialNumber}")]
+ public async Task> Get([FromRoute] string serialNumber)
+ {
+ //var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
+ //if (loginInfo == null || loginInfo.UserInfo == null)
+ // return Result.ReFailure(ResultCodes.Token_Invalid_Error);
+ if (string.IsNullOrEmpty(serialNumber))
+ return Result.ReFailure(ResultCodes.SerialNumbersNoData);
+
+ var serial = await _serialNumbersRepositories.Get(serialNumber);
+ if (serial == null)return Result.ReFailure(ResultCodes.SerialNumbersNoData);
+ return Result.ReSuccess(serial);
+ }
+ }
+}
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
index 18297c0d..9b767d07 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
@@ -430,6 +430,13 @@
+
+
+ 获取序列号信息
+
+ 序列号
+
+
系统配置
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index 33b3daaa..7e18e7bc 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -4241,6 +4241,66 @@
每页条数 不传默认每页10 条
+
+
+ 序列号信息
+
+
+
+
+ 序列号
+
+
+
+
+ 物料名称
+
+
+
+
+ 物料编码
+
+
+
+
+ 物料规格型号
+
+
+
+
+ 完成装箱时间
+
+
+
+
+ 出库单对应销售订单号
+
+
+
+
+ 出库时间
+
+
+
+
+ 生产单号
+
+
+
+
+ 采购单号
+
+
+
+
+ 入库时间
+
+
+
+
+ 收货客户
+
+
ID请求对象
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index e8c249c3..4e6e7330 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -1566,17 +1566,37 @@
创建时间(老ops过来)
-
+
- 出库单号
+ 完成装箱时间
-
+
+
+ 出库单对应销售订单号
+
+
+
+
+ 出库时间
+
+
+
- 入库单号/采购单号
+ 采购单号
-
+
+
+ 入库时间
+
+
+
+
+ 收货客户
+
+
+
操作(绑定箱信息)
@@ -1587,7 +1607,7 @@
解绑
-
+
出库
diff --git a/src/WMS.Web.Core/Dto/SerialNumbers/SerialNumbersResponse.cs b/src/WMS.Web.Core/Dto/SerialNumbers/SerialNumbersResponse.cs
new file mode 100644
index 00000000..31e3044f
--- /dev/null
+++ b/src/WMS.Web.Core/Dto/SerialNumbers/SerialNumbersResponse.cs
@@ -0,0 +1,57 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WMS.Web.Core.Dto.SerialNumbers
+{
+ ///
+ /// 序列号信息
+ ///
+ public class SerialNumbersResponse
+ {
+ ///
+ /// 序列号
+ ///
+ public string SerialNumber { get; set; }
+ ///
+ /// 物料名称
+ ///
+ public string MaterialName { get; set; }
+ ///
+ /// 物料编码
+ ///
+ public string MaterialNumber { get; set; }
+ ///
+ /// 物料规格型号
+ ///
+ public string Specifications { get; set; }
+ ///
+ /// 完成装箱时间
+ ///
+ public DateTime? CompleteCartonTime { get; set; }
+ ///
+ /// 出库单对应销售订单号
+ ///
+ public string SalBillNo { get; set; }
+ ///
+ /// 出库时间
+ ///
+ public string OutStockTime { get; set; }
+ ///
+ /// 生产单号
+ ///
+ public string ProduceBillNo { get; set; }
+ ///
+ /// 采购单号
+ ///
+ public string PurchaseBillNo { get; set; }
+ ///
+ /// 入库时间
+ ///
+ public string InStockTime { get; set; }
+ ///
+ /// 收货客户
+ ///
+ public string Customer { get; set; }
+ }
+}
diff --git a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs
index 810dddd6..60711f1a 100644
--- a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs
+++ b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs
@@ -15,7 +15,7 @@ namespace WMS.Web.Domain.Entitys
public class SerialNumbers : EntityBase
{
public SerialNumbers() { }
- public SerialNumbers(string serialNumber, int materialId, int boxId, int opsBoxId, string creator, DateTime? createTime)
+ public SerialNumbers(string serialNumber, int materialId, int boxId, int opsBoxId, string creator, DateTime? createTime,DateTime? completeCartonTime)
{
this.SerialNumber = serialNumber;
this.MaterialId = materialId;
@@ -23,6 +23,7 @@ namespace WMS.Web.Domain.Entitys
this.OpsBoxId = opsBoxId;
this.Creator = creator;
this.CreateTime = createTime == null ? DateTime.Now : (DateTime)createTime;
+ this.CompleteCartonTime = completeCartonTime;
}
///
/// 主键 订单编号
@@ -60,23 +61,44 @@ namespace WMS.Web.Domain.Entitys
[Column("CreateTime")]
public DateTime CreateTime { get; set; } = DateTime.Now;
///
- /// 出库单号
+ /// 完成装箱时间
///
- [Column("OutStockBillNo")]
- public string OutStockBillNo { get; set; }
+ [Column("CompleteCartonTime")]
+ public DateTime? CompleteCartonTime { get; set; }
///
- /// 入库单号/采购单号
+ /// 出库单对应销售订单号
+ ///
+ [Column("SalBillNo")]
+ public string SalBillNo { get; set; }
+ ///
+ /// 出库时间
+ ///
+ [Column("OutStockTime")]
+ public DateTime? OutStockTime { get; set; }
+ ///
+ /// 采购单号
///
- [Column("InStockBillNo")]
- public string InStockBillNo { get; set; }
+ [Column("PurchaseBillNo")]
+ public string PurchaseBillNo { get; set; }
+ ///
+ /// 入库时间
+ ///
+ [Column("InStockTime")]
+ public DateTime? InStockTime { get; set; }
+ ///
+ /// 收货客户
+ ///
+ [Column("CustomerId")]
+ public int CustomerId { get; set; } = 0;
///
/// 操作(绑定箱信息)
///
/// 目标箱号
- public void Bind(int destBoxId)
+ public void Bind(int destBoxId,DateTime completeCartonTime)
{
this.BoxId = destBoxId;
+ this.CompleteCartonTime = completeCartonTime;
}
///
/// 解绑
@@ -89,11 +111,15 @@ namespace WMS.Web.Domain.Entitys
/// 出库
///
/// 出库单号
- public void OutStock(string outStockBillNo, OutStockType type)
+ public void OutStock(string outStockBillNo, OutStockType type,int customerId)
{
this.BoxId = 0;
if (type == OutStockType.Sal)
- this.OutStockBillNo = outStockBillNo;
+ {
+ this.SalBillNo = outStockBillNo;
+ this.CustomerId = customerId;
+ this.OutStockTime = DateTime.Now;
+ }
}
///
/// 入库
@@ -102,7 +128,10 @@ namespace WMS.Web.Domain.Entitys
public void InStock(string inStockBillNo, InstockType type)
{
if (type == InstockType.Purchase)
- this.InStockBillNo = inStockBillNo;
+ {
+ this.PurchaseBillNo = inStockBillNo;
+ this.InStockTime = DateTime.Now;
+ }
}
}
}
diff --git a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs
index 42ac023b..d9e44233 100644
--- a/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs
+++ b/src/WMS.Web.Domain/Infrastructure/ISerialNumbersRepositories.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Core.Dto;
+using WMS.Web.Core.Dto.SerialNumbers;
using WMS.Web.Domain.Entitys;
namespace WMS.Web.Domain.Infrastructure
@@ -21,6 +22,8 @@ namespace WMS.Web.Domain.Infrastructure
Task AddRange(List entitys, bool isTransaction = true);
//根据序列号模糊搜索信息
Task GetSerialNumber(string serialNumber);
+ //根据序列号搜索信息
+ Task Get(string serialNumber);
/// 查询实体集合
Task> GetEntityList(List serialNumbers);
/// 根据箱Id查询集合
diff --git a/src/WMS.Web.Domain/Services/BoxService.cs b/src/WMS.Web.Domain/Services/BoxService.cs
index 7eb5eb2f..6488100e 100644
--- a/src/WMS.Web.Domain/Services/BoxService.cs
+++ b/src/WMS.Web.Domain/Services/BoxService.cs
@@ -87,7 +87,7 @@ namespace WMS.Web.Domain.Services
.SelectMany(s => s.SerialNumbers)
.FirstOrDefault(s => s.SerialNumber.Equals(sn.SerialNumber));
//序列号
- SerialNumbers s = new SerialNumbers(sn.SerialNumber, detail.MaterialId, b.Id, b.OpsBoxId, opsSerial.BarCereateUser, opsSerial.BarCreateTime);
+ SerialNumbers s = new SerialNumbers(sn.SerialNumber, detail.MaterialId, b.Id, b.OpsBoxId, opsSerial.BarCereateUser, opsSerial.BarCreateTime, b.CompleteCartonTime);
sList.Add(s);
//序列号记录(序列号生成)
SerialNumberOperate so = new SerialNumberOperate(sn.SerialNumber, SerialNumberOperateType.Generate, detail.MaterialId, opsSerial.BarCereateUser, "", b.SupplierId, b.OrgId, null, opsSerial.BarCreateTime);
diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs
index c4662eb2..59679a91 100644
--- a/src/WMS.Web.Domain/Services/SerialNumberService.cs
+++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs
@@ -60,10 +60,11 @@ namespace WMS.Web.Domain.Services
foreach (var entity in entityList)
{
var destBox = changeBoxRecords.FirstOrDefault(f => f.SerialNumbers.Contains(entity.SerialNumber));
- //修改序列号和箱绑定关系
- entity.Bind(destBox.DestBoxId);
-
var box = boxList.FirstOrDefault(f => f.Id == destBox.DestBoxId);
+ //修改序列号和箱绑定关系
+ entity.Bind(destBox.DestBoxId, box.CompleteCartonTime);
+
+
//记录序列号操作日志
SerialNumberOperate op = new SerialNumberOperate()
{
@@ -193,7 +194,7 @@ namespace WMS.Web.Domain.Services
var outstockDetail = outStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId);
if (outstockDetail == null) continue;
//修改序列号和箱绑定关系
- entity.OutStock(outStock.BillNo, outStock.Type);
+ entity.OutStock(outStock.BillNo, outStock.Type, outStock.ReceiptCustomerId);
//记录序列号操作日志
SerialNumberOperate op = new SerialNumberOperate()
@@ -321,7 +322,7 @@ namespace WMS.Web.Domain.Services
var instockDetail = inStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId);
var subStock = _singleDataService.GetSingleData(SingleAction.SubStocks, loginInfo.UserInfo.CompanyId, instockDetail.SubStockId);
//修改序列号和箱绑定关系
- entity.InStock(inStock.BillNo, inStock.Type);
+ entity.InStock(instockDetail.SourceBillNo, inStock.Type);
//记录序列号操作日志
SerialNumberOperate op = new SerialNumberOperate()
@@ -386,7 +387,7 @@ namespace WMS.Web.Domain.Services
//if (backRecord.Type == BackRecordType.InstockOff)
// entity.UnBind();
if (backRecord.Type == BackRecordType.OutstockOn)
- entity.Bind(detail.BoxId);
+ entity.Bind(detail.BoxId,box.CompleteCartonTime);
//记录序列号操作日志
diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs
index e06cb916..2213e828 100644
--- a/src/WMS.Web.Domain/Values/ResultCodes.cs
+++ b/src/WMS.Web.Domain/Values/ResultCodes.cs
@@ -66,6 +66,6 @@ namespace WMS.Web.Domain.Values
public static ValueTuple InventoryInOutDetailsWriteError = (800014, "写入物料收发明细失败!");
public static ValueTuple InventoryDetailsWriteError = (800014, "写入即时库存明细失败!");
-
+ public static ValueTuple SerialNumbersNoData = (610000, "序列号不存在");
}
}
diff --git a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs
index 2d169fdc..da0a01e4 100644
--- a/src/WMS.Web.Repositories/SerialNumbersRepositories.cs
+++ b/src/WMS.Web.Repositories/SerialNumbersRepositories.cs
@@ -7,6 +7,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Core.Dto;
+using WMS.Web.Core.Dto.SerialNumbers;
using WMS.Web.Core.Help;
using WMS.Web.Domain.Entitys;
using WMS.Web.Domain.Infrastructure;
@@ -91,6 +92,42 @@ namespace WMS.Web.Repositories
}
return true;
}
+ ///
+ /// 根据序列号搜索信息
+ ///
+ ///
+ ///
+ public async Task Get(string serialNumber)
+ {
+ var materials_result = await _erpService.BillQueryForMaterial();
+ if (!materials_result.IsSuccess)
+ return null;
+ var materials = materials_result.Data.ToList();
+
+ var customer_result = await _erpService.BillQueryForCustomer();
+ if (!customer_result.IsSuccess)
+ return null;
+ var customers = customer_result.Data.ToList();
+
+ var s = await _context.SerialNumbers
+ .FirstOrDefaultAsync(f => serialNumber.Equals(f.SerialNumber));
+ if (s == null) return null;
+ SerialNumbersResponse respone = new SerialNumbersResponse()
+ {
+ MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialId),
+ MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.MaterialId),
+ Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialId),
+ CompleteCartonTime = s.CompleteCartonTime,
+ InStockTime = s.InStockTime.DateToStringSeconds(),
+ OutStockTime = s.OutStockTime.DateToStringSeconds(),
+ PurchaseBillNo = s.PurchaseBillNo,
+ SalBillNo = s.SalBillNo,
+ Customer = _erpBasicDataExtendService.GetCustomerName(customers, s.CustomerId),
+ SerialNumber = s.SerialNumber
+ };
+ return respone;
+ }
+
///
/// 根据序列号查询
///