采购查询接口优化
This commit is contained in:
@@ -23,11 +23,16 @@ namespace WMS.Web.Api.Controllers
|
||||
{
|
||||
private readonly ILoginService _loginService;
|
||||
private readonly IInStockService _inStockService;
|
||||
private readonly IInStockTaskService _inStockTaskService;
|
||||
private readonly IInStockTaskRepositories _inStockTaskRepositories;
|
||||
public InStockTaskController(ILoginService loginService, IInStockTaskRepositories inStockTaskRepositories, IInStockService inStockService)
|
||||
public InStockTaskController(ILoginService loginService,
|
||||
IInStockTaskService inStockTaskService,
|
||||
IInStockTaskRepositories inStockTaskRepositories,
|
||||
IInStockService inStockService)
|
||||
{
|
||||
this._loginService = loginService;
|
||||
this._inStockService = inStockService;
|
||||
this._inStockTaskService = inStockTaskService;
|
||||
this._inStockTaskRepositories = inStockTaskRepositories;
|
||||
}
|
||||
|
||||
@@ -76,7 +81,7 @@ namespace WMS.Web.Api.Controllers
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return ResultList<InStockTaskBillNoQueryResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
var list= await _inStockTaskRepositories.GetListBy(code, InstockType.Purchase);
|
||||
var list= await _inStockTaskRepositories.GetListBy(new InStockTaskBillNoQueryRequest() { SourceBillNo=code,Type= (int)InstockType.Purchase });
|
||||
return ResultList<InStockTaskBillNoQueryResponse>.ReSuccess(list);
|
||||
}
|
||||
|
||||
@@ -93,8 +98,7 @@ namespace WMS.Web.Api.Controllers
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return ResultList<InStockTaskBillNoQueryResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
var list = await _inStockTaskRepositories.GetListBy(code);
|
||||
return ResultList<InStockTaskBillNoQueryResponse>.ReSuccess(list);
|
||||
return await _inStockTaskService.GetPurchaseInstockTask(code);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -1070,6 +1070,71 @@
|
||||
箱号明细数量的总和
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse">
|
||||
<summary>
|
||||
来源单号模糊查询响应对象
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.Id">
|
||||
<summary>
|
||||
单据ID(等同-入库任务单ID)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.DetailsId">
|
||||
<summary>
|
||||
明细ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.SourceBillNo">
|
||||
<summary>
|
||||
来源单号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.StockCode">
|
||||
<summary>
|
||||
仓库编码(对应金蝶和单点)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.StockName">
|
||||
<summary>
|
||||
仓库名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.MaterialId">
|
||||
<summary>
|
||||
物料ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.MaterialName">
|
||||
<summary>
|
||||
物料名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.MaterialNumber">
|
||||
<summary>
|
||||
物料编码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.Specifications">
|
||||
<summary>
|
||||
物料规格型号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.Qty">
|
||||
<summary>
|
||||
订单数量
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.DeliveredQty">
|
||||
<summary>
|
||||
已交数量
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.Remark">
|
||||
<summary>
|
||||
明细备注
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.InStockTask.InStockTaskDetailsInfoDto">
|
||||
<summary>
|
||||
入库任务单明细详情
|
||||
@@ -1140,71 +1205,6 @@
|
||||
明细
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse">
|
||||
<summary>
|
||||
来源单号模糊查询响应对象
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.Id">
|
||||
<summary>
|
||||
单据ID(等同-入库任务单ID)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.DetailsId">
|
||||
<summary>
|
||||
明细ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.SourceBillNo">
|
||||
<summary>
|
||||
来源单号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.StockCode">
|
||||
<summary>
|
||||
仓库编码(对应金蝶和单点)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.StockName">
|
||||
<summary>
|
||||
仓库名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.MaterialId">
|
||||
<summary>
|
||||
物料ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.MaterialName">
|
||||
<summary>
|
||||
物料名称
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.MaterialNumber">
|
||||
<summary>
|
||||
物料编码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.Specifications">
|
||||
<summary>
|
||||
物料规格型号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.Qty">
|
||||
<summary>
|
||||
订单数量
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.DeliveredQty">
|
||||
<summary>
|
||||
已交数量
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse.Remark">
|
||||
<summary>
|
||||
明细备注
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskBoxRequest">
|
||||
<summary>
|
||||
箱信息和任务单绑定
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WMS.Web.Core.Dto.InStockTask
|
||||
{
|
||||
public class InStockTaskBillNoQueryRequest
|
||||
{
|
||||
public string SourceBillNo { get; set; }
|
||||
|
||||
public int? Type { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Core.Dto.InStockTask;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
|
||||
namespace WMS.Web.Domain.IService
|
||||
@@ -11,11 +12,17 @@ namespace WMS.Web.Domain.IService
|
||||
/// </summary>
|
||||
public interface IInStockTaskService
|
||||
{
|
||||
/// <summary>
|
||||
/// 来源单-编号模糊查询-pad
|
||||
/// </summary>
|
||||
/// <param name="sourceBillNo"></param>
|
||||
/// <returns></returns>
|
||||
Task<ResultList<InStockTaskBillNoQueryResponse>> GetPurchaseInstockTask(string sourceBillNo);
|
||||
/// <summary>
|
||||
/// 同步:采购入库类型单据
|
||||
/// </summary>
|
||||
/// <param name="isTransaction"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result> SsynPurchaseInStock(bool isTransaction);
|
||||
Task<Result> SsynPurchaseInStock(List<string> billNos = null, bool isTransaction=true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace WMS.Web.Domain.IService.Public
|
||||
/// erp:单据查询-采购入库单
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<ResultList<ErpPurchaseInStockResultDto>> BillQueryForPurchaseInStock(string billNo="", List<string> sourceBillNos = null);
|
||||
Task<ResultList<ErpPurchaseInStockResultDto>> BillQueryForPurchaseInStock(List<string> sourceBillNos = null);
|
||||
/// <summary>
|
||||
/// erp:单据查询-出库单
|
||||
/// </summary>
|
||||
|
||||
@@ -57,12 +57,19 @@ namespace WMS.Web.Domain.Infrastructure
|
||||
/// <returns></returns>
|
||||
Task<List<InStockTask>> GetListBy(List<string> sourceBillNos);
|
||||
|
||||
/// <summary>
|
||||
/// 列表-根据来源单号模糊搜索
|
||||
/// </summary>
|
||||
/// <param name="sourceBillNos"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<InStockTask>> GetListBy(string sourceBillNos);
|
||||
|
||||
/// <summary>
|
||||
/// 列表-根据来源单号模糊
|
||||
/// </summary>
|
||||
/// <param name="sourceBillNo"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<InStockTaskBillNoQueryResponse>> GetListBy(string sourceBillNo, InstockType? type=null);
|
||||
Task<List<InStockTaskBillNoQueryResponse>> GetListBy(InStockTaskBillNoQueryRequest dto);
|
||||
|
||||
/// <summary>
|
||||
/// 批量添加
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
using AutoMapper;
|
||||
using Microsoft.EntityFrameworkCore.Storage;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Core.Dto.Erp.Purchase;
|
||||
using WMS.Web.Core.Dto.InStockTask;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
using WMS.Web.Domain.Entitys;
|
||||
using WMS.Web.Domain.Infrastructure;
|
||||
@@ -37,16 +39,49 @@ namespace WMS.Web.Domain.Services
|
||||
_inStockTaskRepositories = inStockTaskRepositories;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 来源单-编号模糊查询-pad
|
||||
/// </summary>
|
||||
/// <param name="sourceBillNo"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ResultList<InStockTaskBillNoQueryResponse>> GetPurchaseInstockTask(string sourceBillNo)
|
||||
{
|
||||
//1.事务
|
||||
IDbContextTransaction _transaction = _basicsRepositories.GetTransaction();
|
||||
bool isRollback = false;
|
||||
bool isTransaction = false;
|
||||
|
||||
//2.查看是否有入库任务单
|
||||
var tasks= await _inStockTaskRepositories.GetListBy(sourceBillNo);
|
||||
if (tasks == null || tasks.Count == 0)
|
||||
return ResultList < InStockTaskBillNoQueryResponse > .ReFailure(ResultCodes.OrderNoData);
|
||||
|
||||
//3.有的话就同步一下金蝶的数据
|
||||
var billNos = tasks.Select(x => x.SourceBillNo).ToList();
|
||||
var result=await this.SsynPurchaseInStock(billNos, isTransaction);
|
||||
if (!result.IsSuccess) isRollback = true;
|
||||
|
||||
//4.提交事务
|
||||
var isSuccess = _basicsRepositories.CommitTransaction(isRollback, _transaction);
|
||||
if (!isSuccess)
|
||||
return ResultList < InStockTaskBillNoQueryResponse > .ReFailure(result.Message, result.Status);
|
||||
|
||||
|
||||
//5.再一次查询新的数据:并返回最后的结果
|
||||
var request = new InStockTaskBillNoQueryRequest() { SourceBillNo = sourceBillNo };
|
||||
var list = await _inStockTaskRepositories.GetListBy(request);
|
||||
return ResultList<InStockTaskBillNoQueryResponse>.ReSuccess(list);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 同步:采购入库类型单据
|
||||
/// </summary>
|
||||
/// <param name="isTransaction"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> SsynPurchaseInStock(bool isTransaction)
|
||||
public async Task<Result> SsynPurchaseInStock(List<string> billNos=null,bool isTransaction=true)
|
||||
{
|
||||
//1.获取金蝶数据:采购订单数据
|
||||
var erp_result= await _erpService.BillQueryForPurchaseInStock();
|
||||
var erp_result= await _erpService.BillQueryForPurchaseInStock(billNos);
|
||||
if (!erp_result.IsSuccess)
|
||||
return Result.ReFailure(erp_result.Message,erp_result.Status);
|
||||
var erp_list = erp_result.Data;
|
||||
@@ -69,6 +104,7 @@ namespace WMS.Web.Domain.Services
|
||||
{
|
||||
//2.1.2修改数量
|
||||
item.AccruedQty = erp_data.FQty;
|
||||
item.DeliveredQty = erp_data.FStockInQty;
|
||||
erp_removeList.Add(erp_data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,10 +89,9 @@ namespace WMS.Web.Domain.Services.Public
|
||||
/// <summary>
|
||||
/// erp:单据查询-采购入库单
|
||||
/// </summary>
|
||||
/// <param name="billNo">模糊搜索</param>
|
||||
/// <param name="sourceBillNos">单据编号集合精确查找</param>
|
||||
/// <returns></returns>
|
||||
public async Task<ResultList<ErpPurchaseInStockResultDto>> BillQueryForPurchaseInStock(string billNo="", List<string> sourceBillNos = null)
|
||||
public async Task<ResultList<ErpPurchaseInStockResultDto>> BillQueryForPurchaseInStock(List<string> sourceBillNos = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -137,12 +136,6 @@ namespace WMS.Web.Domain.Services.Public
|
||||
}
|
||||
param.FilterString = param.FilterString + str + ")";
|
||||
|
||||
//单据编号模糊查询
|
||||
if (!string.IsNullOrEmpty(billNo))
|
||||
{
|
||||
param.FilterString = param.FilterString + " and FBillNo like '%"+billNo+"%'";
|
||||
}
|
||||
|
||||
//根据原订单号查询
|
||||
if (sourceBillNos != null && sourceBillNos.Count() > 0)
|
||||
{
|
||||
|
||||
@@ -223,12 +223,27 @@ namespace WMS.Web.Repositories
|
||||
return entitys;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 列表-根据来源单号模糊搜索
|
||||
/// </summary>
|
||||
/// <param name="sourceBillNos"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<InStockTask>> GetListBy(string sourceBillNos)
|
||||
{
|
||||
var entitys = await _context.InStockTask
|
||||
.Include(s => s.Details)
|
||||
.Where(w => EF.Functions.Like(w.SourceBillNo, "%" + sourceBillNos + "%"))
|
||||
.ToListAsync();
|
||||
|
||||
return entitys;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 列表-根据来源单号模糊
|
||||
/// </summary>
|
||||
/// <param name="sourceBillNo"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<InStockTaskBillNoQueryResponse>> GetListBy(string sourceBillNo, InstockType? type=null)
|
||||
public async Task<List<InStockTaskBillNoQueryResponse>> GetListBy(InStockTaskBillNoQueryRequest dto)
|
||||
{
|
||||
//1.获取物料集合
|
||||
var materials_result = await _erpService.BillQueryForMaterial();
|
||||
@@ -240,10 +255,10 @@ namespace WMS.Web.Repositories
|
||||
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 })
|
||||
.Where(w => EF.Functions.Like(w.order.SourceBillNo, "%" + sourceBillNo + "%") && (w.order.Status== InstockStatus.Part || w.order.Status==InstockStatus.Wait));
|
||||
.Where(w => EF.Functions.Like(w.order.SourceBillNo, "%" + dto.SourceBillNo + "%") && (w.order.Status== InstockStatus.Part || w.order.Status==InstockStatus.Wait));
|
||||
|
||||
if(type.HasValue)
|
||||
query = query.Where(w => w.order.Type == type.Value);
|
||||
if(dto.Type.HasValue)
|
||||
query = query.Where(w => (int)w.order.Type == dto.Type.Value);
|
||||
|
||||
var list = await query.Select(s => new InStockTaskBillNoQueryResponse()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user