From 2ec6103f11327c79b3eb7f695a95d7ef9a63fa2b Mon Sep 17 00:00:00 2001
From: tongfei <244188119@qq.com>
Date: Wed, 8 Nov 2023 10:39:23 +0800
Subject: [PATCH] =?UTF-8?q?=E9=87=91=E8=9D=B6=E7=89=A9=E6=96=99=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE-=E5=BC=80=E5=A7=8B=E4=BD=BF=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 57 +++++++++
.../Public/IErpBasicDataExtendService.cs | 36 ++++++
src/WMS.Web.Domain/Services/InStockService.cs | 18 ++-
.../Public/ErpBasicDataExtendService.cs | 66 ++++++++++
.../Services/Public/ErpService.cs | 117 +++++++++++-------
.../DependencyInjection/AppBuilder.cs | 3 +
.../InStockRepositories.cs | 36 ++++--
.../InStockTaskRepositories.cs | 54 +++++---
8 files changed, 315 insertions(+), 72 deletions(-)
create mode 100644 src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs
create mode 100644 src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 5a6bad72..bc5074b3 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -1510,6 +1510,34 @@
盘点单服务
+
+
+ erp基础数据:扩展服务接口
+
+
+
+
+ 获取物料名称
+
+
+
+
+
+
+ 获取物料编码
+
+
+
+
+
+
+
+ 获取物料规格型号
+
+
+
+
+
erp:单据查询-采购入库单
@@ -2281,6 +2309,35 @@
+
+
+ erp基础数据:扩展服务
+
+
+
+
+ 获取物料名称
+
+
+
+
+
+
+
+ 获取物料编码
+
+
+
+
+
+
+
+ 获取物料规格型号
+
+
+
+
+
erp数据交互服务
diff --git a/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs
new file mode 100644
index 00000000..33b488b3
--- /dev/null
+++ b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using WMS.Web.Core.Dto.Erp;
+
+namespace WMS.Web.Domain.IService.Public
+{
+ ///
+ /// erp基础数据:扩展服务接口
+ ///
+ public interface IErpBasicDataExtendService
+ {
+ ///
+ /// 获取物料名称
+ ///
+ ///
+ ///
+ string GetMaterialName(List erpMaterials, int materialId);
+
+ ///
+ /// 获取物料编码
+ ///
+ ///
+ ///
+ ///
+ string GetMaterialNumber(List erpMaterials, int materialId);
+
+ ///
+ /// 获取物料规格型号
+ ///
+ ///
+ ///
+ ///
+ string GetMaterialSpecifications(List erpMaterials, int materialId);
+ }
+}
diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs
index cf203d77..98dc27e5 100644
--- a/src/WMS.Web.Domain/Services/InStockService.cs
+++ b/src/WMS.Web.Domain/Services/InStockService.cs
@@ -6,6 +6,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WMS.Web.Core.Dto;
+using WMS.Web.Core.Dto.Erp;
using WMS.Web.Core.Dto.InStock;
using WMS.Web.Core.Dto.InStockTask;
using WMS.Web.Core.Dto.Login;
@@ -25,21 +26,25 @@ namespace WMS.Web.Domain.Services
public class InStockService : IInStockService
{
private readonly IMapper _mapper;
+ private readonly IErpService _erpService;
private readonly ILoginService _loginService;
private readonly IBoxRepositories _boxRepositories;
private readonly IBasicsRepositories _basicsRepositories;
private readonly IInStockRepositories _inStockRepositories;
private readonly IInStockTaskRepositories _inStockTaskRepositories;
- public InStockService(IMapper mapper, ILoginService loginService, IBoxRepositories boxRepositories,
- IBasicsRepositories basicsRepositories,
+ private readonly IErpBasicDataExtendService _erpBasicDataExtendService;
+ public InStockService(IMapper mapper, IErpService erpService, ILoginService loginService, IBoxRepositories boxRepositories,
+ IBasicsRepositories basicsRepositories, IErpBasicDataExtendService erpBasicDataExtendService,
IInStockRepositories inStockRepositories, IInStockTaskRepositories inStockTaskRepositories)
{
_mapper = mapper;
+ _erpService = erpService;
_loginService = loginService;
_boxRepositories = boxRepositories;
_basicsRepositories = basicsRepositories;
_inStockRepositories = inStockRepositories;
_inStockTaskRepositories = inStockTaskRepositories;
+ _erpBasicDataExtendService = erpBasicDataExtendService;
}
@@ -114,6 +119,12 @@ namespace WMS.Web.Domain.Services
///
public async Task> GetInfoByBox(string boxBillNo)
{
+ //1.获取物料集合
+ var materials_result = await _erpService.BillQueryForMaterial();
+ var materials = new List();
+ if (materials_result.IsSuccess)
+ materials = materials_result.Data.ToList();
+
//1.先判断:箱号已经绑定了入库任务单中;备注:业务说法就是箱是否收货了
var tast= await _inStockTaskRepositories.GetBy(boxBillNo);
if (tast==null)
@@ -134,6 +145,9 @@ namespace WMS.Web.Domain.Services
continue;
//3.2映射返回明细对象
var task_detail = _mapper.Map(item);
+ task_detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, task_detail.MaterialId);
+ task_detail.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, task_detail.MaterialId);
+ task_detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, task_detail.MaterialId);
result.Details.Add(task_detail);
}
return Result.ReSuccess(result);
diff --git a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs
new file mode 100644
index 00000000..16b284e0
--- /dev/null
+++ b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs
@@ -0,0 +1,66 @@
+using AutoMapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using WMS.Web.Core.Dto.Erp;
+using WMS.Web.Domain.Infrastructure;
+using WMS.Web.Domain.IService.Public;
+
+namespace WMS.Web.Domain.Services.Public
+{
+ ///
+ /// erp基础数据:扩展服务
+ ///
+ public class ErpBasicDataExtendService: IErpBasicDataExtendService
+ {
+ private readonly IMapper _mapper;
+ private readonly ILoginService _loginService;
+ private readonly IBasicsRepositories _basicsRepositories;
+
+ public ErpBasicDataExtendService(IMapper mapper, ILoginService loginService,
+ IBasicsRepositories basicsRepositories)
+ {
+ _mapper = mapper;
+ _loginService = loginService;
+ _basicsRepositories = basicsRepositories;
+
+ }
+
+ ///
+ /// 获取物料名称
+ ///
+ ///
+ ///
+ ///
+ public string GetMaterialName(List erpMaterials,int materialId)
+ {
+ var mat= erpMaterials.Where(x => x.MaterialId == materialId).FirstOrDefault();
+ return mat == null ? "" : mat.MaterialName;
+ }
+
+ ///
+ /// 获取物料编码
+ ///
+ ///
+ ///
+ ///
+ public string GetMaterialNumber(List erpMaterials, int materialId)
+ {
+ var mat = erpMaterials.Where(x => x.MaterialId == materialId).FirstOrDefault();
+ return mat == null ? "" : mat.MaterialNumber;
+ }
+
+ ///
+ /// 获取物料规格型号
+ ///
+ ///
+ ///
+ ///
+ public string GetMaterialSpecifications(List erpMaterials, int materialId)
+ {
+ var mat = erpMaterials.Where(x => x.MaterialId == materialId).FirstOrDefault();
+ return mat == null ? "" : mat.Specifications;
+ }
+ }
+}
diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs
index 47bf4091..de4f8972 100644
--- a/src/WMS.Web.Domain/Services/Public/ErpService.cs
+++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs
@@ -38,7 +38,6 @@ namespace WMS.Web.Domain.Services.Public
private ILogger _logger;
private ERPGWSoapClient _client;
private readonly IMemoryCache _memoryCache;
- private readonly IInStockTaskRepositories _inStockTaskRepositories;
private readonly ISingleDataService _singleDataService;
private readonly ILoginRepositories _loginRepositories;
private readonly IBasicsRepositories _basicsRepositories;
@@ -48,7 +47,6 @@ namespace WMS.Web.Domain.Services.Public
IOptions appOptions,
ILogger logger,
IMemoryCache memoryCache,
- IInStockTaskRepositories inStockTaskRepositories,
ISingleDataService singleDataService,
ILoginRepositories loginRepositories, IBasicsRepositories basicsRepositories)
{
@@ -58,7 +56,6 @@ namespace WMS.Web.Domain.Services.Public
this._mapper = mapper;
this._logger = logger;
this._memoryCache = memoryCache;
- this._inStockTaskRepositories = inStockTaskRepositories;
this._singleDataService = singleDataService;
this._loginRepositories = loginRepositories;
}
@@ -181,53 +178,77 @@ namespace WMS.Web.Domain.Services.Public
///
public async Task> BillQueryForMaterial()
{
- //1.先登录金蝶-拿到token
- var token_result = await this.Init();
- if (!token_result.IsSuccess)
- return ResultList.ReFailure(token_result);
-
- //3.获取金蝶物料:拼接参数和条件
- var query = new ErpBillQueryDto(token_result.Data);
- var param = new ErpBillQueryParamDto(FormIdParam.BD_MATERIAL.ToString());
- param.FieldKeys = "FMATERIALID,FName,FNumber,FSpecification,FForbidStatus,FUseOrgId";
- param.Limit = 10000;
- Console.Write("请输入第几行:");
- var row=Console.ReadLine();
- param.StartRow = (Convert.ToInt32(row) * param.Limit);
-
- //查询条件:备注其中的条件值以金蝶的值为准!!!
- //1.审核状态:已审核
- //2.禁用状态:A否,B是
- //3.使用组织:只查询“深圳市元创时代科技有限公司”这个组织;组织ID=100008--固定值查询(测试端和正式是一样的)
- param.FilterString = "FDocumentStatus='C' and FForbidStatus='A' and FUseOrgId=100008";
- param.OrderString = "FCreateDate ASC";
-
- query.Data = JsonConvert.SerializeObject(param);
- var json = JsonConvert.SerializeObject(query);
-
- var beginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
- _logger.LogInformation($"开始时间:{beginTime}");
- //4.请求查询接口
- var result_json = await _client.ExecuteBillQueryAsync(json);
- var result = JsonConvert.DeserializeObject>>(result_json);
-
- var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
- _logger.LogInformation($"结束时间:{beginTime}");
- //5.返回数据的组装
- var erp_list = new List();
- foreach (var item in result)
+ //1.获取缓存中的物料数据;
+ var cache_key = "erp_materials_list";
+ var materials = _memoryCache.Get>(cache_key);
+ if (materials == null || materials.Count == 0)
{
- var lis = new ErpMaterialDto();
- lis.MaterialId = Convert.ToInt32(item[0]);
- lis.MaterialName = item[1];
- lis.MaterialNumber = item[2];
- lis.Specifications = item[3];
- lis.Status = item[4];
- lis.UseOrgId = item[5];
- erp_list.Add(lis);
+
+
+ //2.先登录金蝶-拿到token
+ var token_result = await this.Init();
+ if (!token_result.IsSuccess)
+ return ResultList.ReFailure(token_result);
+
+ //3.获取金蝶物料:拼接参数和条件
+ var query = new ErpBillQueryDto(token_result.Data);
+ var param = new ErpBillQueryParamDto(FormIdParam.BD_MATERIAL.ToString());
+ param.FieldKeys = "FMATERIALID,FName,FNumber,FSpecification,FForbidStatus,FUseOrgId";
+ param.Limit = 10000;
+ //查询条件:备注其中的条件值以金蝶的值为准!!!
+ //1.审核状态:已审核
+ //2.禁用状态:A否,B是
+ //3.使用组织:只查询“深圳市元创时代科技有限公司”这个组织;组织ID=100008--固定值查询(测试端和正式是一样的)
+ param.FilterString = "FDocumentStatus='C' and FForbidStatus='A' and FUseOrgId=100008";
+ param.OrderString = "FCreateDate ASC";
+
+ //4.循环拿金蝶数据
+ bool isHave = true;
+ var erp_materials_list = new List();
+ int skip = 0;
+ var beginTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
+ _logger.LogInformation($"物料拉取-开始时间:{beginTime}");
+ while (isHave)
+ {
+ //4.1.页码:页码按照金蝶的要求从0开始
+ param.StartRow = (Convert.ToInt32(skip) * param.Limit);
+ //4.2.参数json化
+ query.Data = JsonConvert.SerializeObject(param);
+ var json = JsonConvert.SerializeObject(query);
+
+ //4.3.请求查询接口并返回数据
+ var result_json = await _client.ExecuteBillQueryAsync(json);
+ var result = JsonConvert.DeserializeObject>>(result_json);
+ //4.4.判断数据是否全部拉取完成:并停止循环的条件
+ if (result == null || result.Count == 0)
+ isHave = false;
+ //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.Status = item[4];
+ lis.UseOrgId = item[5];
+ erp_materials_list.Add(lis);
+ }
+ //4.6页面的叠加
+ skip++;
+ }
+ var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
+ _logger.LogInformation($"物料拉取-结束时间:{endTime}");
+ //5.物料集合进行缓存
+ _memoryCache.Set(cache_key, erp_materials_list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(12)));
+ _logger.LogInformation($"物料拉取-总条数:{erp_materials_list.Count}");
+ return ResultList.ReSuccess(erp_materials_list);
}
- _logger.LogInformation($"获取总条数:{erp_list.Count}");
- return ResultList.ReSuccess(erp_list);
+ else
+ {
+ return ResultList.ReSuccess(materials);
+ }
+
}
///
diff --git a/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs b/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs
index 3e16e9c1..10908300 100644
--- a/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs
+++ b/src/WMS.Web.Repositories/DependencyInjection/AppBuilder.cs
@@ -234,8 +234,11 @@ namespace WMS.Web.Repositories.DependencyInjection
Services.AddTransient();
Services.AddTransient();
Services.AddTransient();
+ Services.AddTransient();
+
+
Services.AddTransient();
Services.AddTransient();
Services.AddTransient();
diff --git a/src/WMS.Web.Repositories/InStockRepositories.cs b/src/WMS.Web.Repositories/InStockRepositories.cs
index c0f8c258..1dbdc1f4 100644
--- a/src/WMS.Web.Repositories/InStockRepositories.cs
+++ b/src/WMS.Web.Repositories/InStockRepositories.cs
@@ -27,19 +27,25 @@ namespace WMS.Web.Repositories
private readonly ILoginRepositories _loginRepositories;
private readonly RepositoryDbContext _context;
private readonly ISingleDataService _singleDataService;
+ private readonly IErpService _erpService;
+ private readonly IErpBasicDataExtendService _erpBasicDataExtendService;
public InStockRepositories(RepositoryDbContext context,
IMapper mapper,
+ IErpService erpService,
ILoginRepositories loginRepositories,
IServiceProvider serviceProvider,
- ISingleDataService singleDataService)
+ ISingleDataService singleDataService,
+ IErpBasicDataExtendService erpBasicDataExtendService)
{
_context = context;
_mapper = mapper;
+ _erpService = erpService;
_serviceProvider = serviceProvider;
_loginRepositories = loginRepositories;
_singleDataService = singleDataService;
+ _erpBasicDataExtendService = erpBasicDataExtendService;
}
///
@@ -49,6 +55,16 @@ namespace WMS.Web.Repositories
///
public async Task> GetPagedList(InStockQueryRequest dto)
{
+ //1.获取物料集合
+ var materials_result = await _erpService.BillQueryForMaterial();
+ if (!materials_result.IsSuccess)
+ return ResultPagedList.ReFailure(materials_result);
+ var materials = materials_result.Data.ToList();
+
+ //物料集合;模糊查询后的物料集合
+ if (!string.IsNullOrEmpty(dto.MaterialNumber))
+ materials = materials.Where(w => EF.Functions.Like(w.MaterialNumber, "%" + dto.MaterialNumber + "%")).ToList();
+
var query=_context.InStockDetails
.GroupJoin(_context.Instock, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
.SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
@@ -57,10 +73,14 @@ namespace WMS.Web.Repositories
if (!string.IsNullOrEmpty(dto.SourceBillNo))
query = query.Where(w => EF.Functions.Like(w.detail.SourceBillNo, "%" + dto.SourceBillNo + "%"));
- //if (!string.IsNullOrEmpty(dto.MaterialNumber))
- // query = query.Where(w => EF.Functions.Like(w.detail.BillNo, "%" + dto.BillNo + "%"));
+ //物料ID在模糊后的物料
+ if (materials != null && materials.Count != 0 && !string.IsNullOrEmpty(dto.MaterialNumber))
+ {
+ var mids = materials.Select(x => x.MaterialId).ToList();
+ query = query.Where(w => mids.Contains(w.detail.MaterialId));
+ }
- if(dto.SupplierId.HasValue)
+ if (dto.SupplierId.HasValue)
query = query.Where(w => w.detail.SupplierId == dto.SupplierId.Value);
if (dto.OrgId.HasValue)
@@ -90,10 +110,10 @@ namespace WMS.Web.Repositories
SourceBillNo=s.detail.SourceBillNo,
Supplier="",
Org="",
- MaterialName="",
- MaterialNumber="",
- Specifications="",
- Stock= _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.detail.StockId),
+ MaterialName= _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId),
+ MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId),
+ Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId),
+ Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.detail.StockId),
Qty =s.detail.Qty,
Creator = _singleDataService.GetSingleData(SingleAction.Staffs, _loginRepositories.CompanyId, s.order.CreatorId),
CreateTime =s.order.CreateTime,
diff --git a/src/WMS.Web.Repositories/InStockTaskRepositories.cs b/src/WMS.Web.Repositories/InStockTaskRepositories.cs
index 23c019f5..43b668fe 100644
--- a/src/WMS.Web.Repositories/InStockTaskRepositories.cs
+++ b/src/WMS.Web.Repositories/InStockTaskRepositories.cs
@@ -8,6 +8,7 @@ using System.Text;
using System.Threading.Tasks;
using WMS.Web.Core;
using WMS.Web.Core.Dto;
+using WMS.Web.Core.Dto.Erp;
using WMS.Web.Core.Dto.InStockTask;
using WMS.Web.Core.Help;
using WMS.Web.Core.Internal.Results;
@@ -31,19 +32,25 @@ namespace WMS.Web.Repositories
private readonly RepositoryDbContext _context;
private readonly ISingleDataService _singleDataService;
private readonly ILoginRepositories _loginRepositories;
+ private readonly IErpService _erpService;
+ private readonly IErpBasicDataExtendService _erpBasicDataExtendService;
public InStockTaskRepositories(RepositoryDbContext context,
IMapper mapper,
+ IErpService erpService,
IServiceProvider serviceProvider,
ISingleDataService singleDataService,
- ILoginRepositories loginRepositories)
+ ILoginRepositories loginRepositories,
+ IErpBasicDataExtendService erpBasicDataExtendService)
{
_context = context;
_mapper = mapper;
+ _erpService = erpService;
_serviceProvider = serviceProvider;
_singleDataService = singleDataService;
_loginRepositories = loginRepositories;
+ _erpBasicDataExtendService = erpBasicDataExtendService;
}
///
@@ -53,16 +60,31 @@ namespace WMS.Web.Repositories
///
public async Task> GetPagedList(InStockTaskQueryRequest dto)
{
+ //1.获取物料集合
+ var materials_result = await _erpService.BillQueryForMaterial();
+ if (!materials_result.IsSuccess)
+ return ResultPagedList.ReFailure(materials_result);
+ var materials = materials_result.Data.ToList();
+
+ //物料集合;模糊查询后的物料集合
+ if (!string.IsNullOrEmpty(dto.MaterialNumber))
+ materials = materials.Where(w => EF.Functions.Like(w.MaterialNumber, "%" + dto.MaterialNumber + "%")).ToList();
+
var query = _context.InStockTaskDetails
.GroupJoin(_context.InStockTask, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
- .SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
+ .SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
.Where(adv => 1 == 1);
if (!string.IsNullOrEmpty(dto.SourceBillNo))
query = query.Where(w => EF.Functions.Like(w.order.SourceBillNo, "%" + dto.SourceBillNo + "%"));
- //if (!string.IsNullOrEmpty(dto.MaterialNumber))
- // query = query.Where(w => EF.Functions.Like(w.detail.BillNo, "%" + dto.BillNo + "%"));
+ //物料ID在模糊后的物料
+ if (materials != null && materials.Count != 0 && !string.IsNullOrEmpty(dto.MaterialNumber))
+ {
+ var mids = materials.Select(x => x.MaterialId).ToList();
+ query = query.Where(w => mids.Contains(w.detail.MaterialId));
+ }
+
if (dto.SupplierId.HasValue)
query = query.Where(w => w.detail.SupplierId == dto.SupplierId.Value);
@@ -88,7 +110,7 @@ namespace WMS.Web.Repositories
int total = await query.CountAsync();
response.TotalCount = total;
- var list = await query.Select(s => new InStockTaskQueryResponse()
+ var list =await query.Select(s => new InStockTaskQueryResponse()
{
Id = s.order.Id,
DetailsId = s.detail.Id,
@@ -98,19 +120,17 @@ namespace WMS.Web.Repositories
SourceBillNo = s.order.SourceBillNo,
Supplier = "",
Org = "",
- MaterialName = "",
- MaterialNumber = "",
- Specifications = "",
+ MaterialName = _erpBasicDataExtendService.GetMaterialName(materials,s.detail.MaterialId),
+ MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId),
+ Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId),
FactoryPrice = s.detail.FactoryPrice,
Stock = "",
AccruedQty = s.detail.AccruedQty,
ReceiveQty = s.detail.ReceiveQty,
RealityQty = s.detail.RealityQty,
Receiver = "",
- //ReceiveTime= s.order.ReceiveTime.ToString("yyyy-MM-dd HH:mm:ss.fff"),
ReceiveTime = s.order.ReceiveTime.HasValue ? s.order.ReceiveTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
Shelfer = "",
- //ShelfTime= s.order.ShelfTime.ToString("yyyy-MM-dd HH:mm:ss.fff"),
ShelfTime = s.order.ShelfTime.HasValue ? s.order.ShelfTime.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
CreateTime = s.detail.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"),
}).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
@@ -199,6 +219,12 @@ namespace WMS.Web.Repositories
///
public async Task> GetListBy(string sourceBillNo, InstockType? type=null)
{
+ //1.获取物料集合
+ var materials_result = await _erpService.BillQueryForMaterial();
+ var materials = new List();
+ if (materials_result.IsSuccess)
+ materials = materials_result.Data.ToList();
+
var query = _context.InStockTaskDetails
.GroupJoin(_context.InStockTask, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
.SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
@@ -215,10 +241,10 @@ namespace WMS.Web.Repositories
MaterialId=s.detail.MaterialId,
StockCode=s.detail.StockCode,
StockName = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.detail.StockId),
- MaterialName = "",
- MaterialNumber = "",
- Specifications = "",
- Qty=s.detail.AccruedQty,
+ MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId),
+ MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId),
+ Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId),
+ Qty =s.detail.AccruedQty,
DeliveredQty=s.detail.DeliveredQty,
Remark = s.detail.Remark
}).ToListAsync();