非采购接口优化
This commit is contained in:
@@ -81,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(new InStockTaskBillNoQueryRequest() { SourceBillNo=code,Type= (int)InstockType.Purchase });
|
||||
var list= await _inStockTaskRepositories.GetListBy(new InStockTaskBillNoQueryRequest() { SourceBillNo=code,InstockType= (int)InstockType.Purchase });
|
||||
return ResultList<InStockTaskBillNoQueryResponse>.ReSuccess(list);
|
||||
}
|
||||
|
||||
@@ -92,7 +92,24 @@ namespace WMS.Web.Api.Controllers
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("GetSourceOrder/{code}")]
|
||||
public async Task<ResultList<InStockTaskBillNoQueryResponse>> InStockTask([FromRoute] string code)
|
||||
public async Task<ResultList<InStockTaskBillNoQueryResponse>> GetSourceOrder([FromRoute] string code)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
return ResultList<InStockTaskBillNoQueryResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
|
||||
var list= await _inStockTaskRepositories.GetListBy(new InStockTaskBillNoQueryRequest() { SourceBillNo = code, InstockType = null });
|
||||
return ResultList<InStockTaskBillNoQueryResponse>.ReSuccess(list);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 来源单的信息校准-对应金蝶-pad
|
||||
/// </summary>
|
||||
/// <param name="code"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
[Route("Adjust/{code}")]
|
||||
public async Task<ResultList<InStockTaskBillNoQueryResponse>> Adjust([FromRoute] string code)
|
||||
{
|
||||
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||
|
||||
@@ -115,13 +115,20 @@
|
||||
<param name="code"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Api.Controllers.InStockTaskController.InStockTask(System.String)">
|
||||
<member name="M:WMS.Web.Api.Controllers.InStockTaskController.GetSourceOrder(System.String)">
|
||||
<summary>
|
||||
来源单-编号模糊查询-pad
|
||||
</summary>
|
||||
<param name="code"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Api.Controllers.InStockTaskController.Adjust(System.String)">
|
||||
<summary>
|
||||
来源单的信息校准-对应金蝶-pad
|
||||
</summary>
|
||||
<param name="code"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Api.Controllers.InStockTaskController.Contrast(WMS.Web.Core.Dto.InStockTask.ContrastMaterialsRequest)">
|
||||
<summary>
|
||||
采购订单物料明细和箱物料明细-对比-pad
|
||||
|
||||
@@ -1070,6 +1070,21 @@
|
||||
箱号明细数量的总和
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryRequest">
|
||||
<summary>
|
||||
模糊查询来源单据-请求对象
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryRequest.SourceBillNo">
|
||||
<summary>
|
||||
来源单据编号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryRequest.InstockType">
|
||||
<summary>
|
||||
来源单据类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.InStockTask.InStockTaskBillNoQueryResponse">
|
||||
<summary>
|
||||
来源单号模糊查询响应对象
|
||||
|
||||
@@ -2459,7 +2459,7 @@
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.InStockTaskService.GetPurchaseInstockTask(System.String)">
|
||||
<summary>
|
||||
来源单-编号模糊查询-pad
|
||||
来源单-与金蝶校准-第二步-pad
|
||||
</summary>
|
||||
<param name="sourceBillNo"></param>
|
||||
<returns></returns>
|
||||
|
||||
@@ -4,10 +4,19 @@ using System.Text;
|
||||
|
||||
namespace WMS.Web.Core.Dto.InStockTask
|
||||
{
|
||||
/// <summary>
|
||||
/// 模糊查询来源单据-请求对象
|
||||
/// </summary>
|
||||
public class InStockTaskBillNoQueryRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 来源单据编号
|
||||
/// </summary>
|
||||
public string SourceBillNo { get; set; }
|
||||
|
||||
public int? Type { get; set; }
|
||||
/// <summary>
|
||||
/// 来源单据类型
|
||||
/// </summary>
|
||||
public int? InstockType { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace WMS.Web.Domain.Services
|
||||
/// <summary>
|
||||
/// 入库任务单-服务
|
||||
/// </summary>
|
||||
public class InStockTaskService: IInStockTaskService
|
||||
public class InStockTaskService : IInStockTaskService
|
||||
{
|
||||
private readonly IMapper _mapper;
|
||||
private readonly IErpService _erpService;
|
||||
@@ -40,7 +40,7 @@ namespace WMS.Web.Domain.Services
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 来源单-编号模糊查询-pad
|
||||
/// 来源单-与金蝶校准-第二步-pad
|
||||
/// </summary>
|
||||
/// <param name="sourceBillNo"></param>
|
||||
/// <returns></returns>
|
||||
@@ -52,19 +52,41 @@ namespace WMS.Web.Domain.Services
|
||||
bool isTransaction = false;
|
||||
|
||||
//2.查看是否有入库任务单
|
||||
var tasks= await _inStockTaskRepositories.GetListBy(sourceBillNo);
|
||||
if (tasks == null || tasks.Count == 0)
|
||||
return ResultList < InStockTaskBillNoQueryResponse > .ReFailure(ResultCodes.OrderNoData);
|
||||
var task = await _inStockTaskRepositories.GetBy(sourceBillNo);
|
||||
if (task == null)
|
||||
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;
|
||||
var billNos = new List<string>();
|
||||
billNos.Add(sourceBillNo);
|
||||
//3.1这里要对入库任务单的类型逐一判断,进行去ErpService找对应的单据类型重新获取;这里只有采购,后面再加其它的
|
||||
if (task.Type == InstockType.Purchase)
|
||||
{
|
||||
var result = await this.SsynPurchaseInStock(billNos, isTransaction);
|
||||
if (!result.IsSuccess) isRollback = true;
|
||||
}
|
||||
else if (task.Type == InstockType.Miscellaneous)
|
||||
{
|
||||
|
||||
}
|
||||
else if (task.Type == InstockType.Assembled)
|
||||
{
|
||||
|
||||
}
|
||||
else if (task.Type == InstockType.Stkdirecttransfers)
|
||||
{
|
||||
|
||||
}
|
||||
else if (task.Type == InstockType.StktransferInst)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
//4.提交事务
|
||||
var isSuccess = _basicsRepositories.CommitTransaction(isRollback, _transaction);
|
||||
if (!isSuccess)
|
||||
return ResultList < InStockTaskBillNoQueryResponse > .ReFailure(result.Message, result.Status);
|
||||
return ResultList<InStockTaskBillNoQueryResponse>.ReFailure(ResultCodes.AdjustError);
|
||||
|
||||
|
||||
//5.再一次查询新的数据:并返回最后的结果
|
||||
@@ -78,12 +100,12 @@ namespace WMS.Web.Domain.Services
|
||||
/// </summary>
|
||||
/// <param name="isTransaction"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> SsynPurchaseInStock(List<string> billNos=null,bool isTransaction=true)
|
||||
public async Task<Result> SsynPurchaseInStock(List<string> billNos = null, bool isTransaction = true)
|
||||
{
|
||||
//1.获取金蝶数据:采购订单数据
|
||||
var erp_result= await _erpService.BillQueryForPurchaseInStock(billNos);
|
||||
var erp_result = await _erpService.BillQueryForPurchaseInStock(billNos);
|
||||
if (!erp_result.IsSuccess)
|
||||
return Result.ReFailure(erp_result.Message,erp_result.Status);
|
||||
return Result.ReFailure(erp_result.Message, erp_result.Status);
|
||||
var erp_list = erp_result.Data;
|
||||
|
||||
//2.通过单据编号找到wms系统现有的任务单;并修改
|
||||
@@ -96,12 +118,12 @@ namespace WMS.Web.Domain.Services
|
||||
var data_list_details = data_list.SelectMany(x => x.Details).ToList();
|
||||
foreach (var item in data_list_details)
|
||||
{
|
||||
var data= data_list.Where(x => x.Id == item.Fid).FirstOrDefault();
|
||||
var data = data_list.Where(x => x.Id == item.Fid).FirstOrDefault();
|
||||
|
||||
//2.1.1对比erp的物料信息
|
||||
var erp_data = erp_list.Where(x =>x.FBillNo==data.SourceBillNo && x.FMaterialId == item.MaterialId).FirstOrDefault();
|
||||
var erp_data = erp_list.Where(x => x.FBillNo == data.SourceBillNo && x.FMaterialId == item.MaterialId).FirstOrDefault();
|
||||
if (erp_data != null)
|
||||
{
|
||||
{
|
||||
//2.1.2修改数量
|
||||
item.AccruedQty = erp_data.FQty;
|
||||
item.DeliveredQty = erp_data.FStockInQty;
|
||||
@@ -133,7 +155,7 @@ namespace WMS.Web.Domain.Services
|
||||
dto.Create(InstockType.Purchase);
|
||||
|
||||
//找到当前对应来源单据编号的集合数据
|
||||
var current_erp_details= erp_list.Where(x => x.FBillNo == item).ToList();
|
||||
var current_erp_details = erp_list.Where(x => x.FBillNo == item).ToList();
|
||||
//给到dto的实体明细中
|
||||
dto.Details = _mapper.Map<List<InStockTaskDetails>>(current_erp_details);
|
||||
add_entitys.Add(dto);
|
||||
|
||||
@@ -40,6 +40,7 @@ namespace WMS.Web.Domain.Values
|
||||
public static ValueTuple<int, string> ErpStockError = (80006, "获取Erp相关仓库数据失败,请稍候再试!");
|
||||
public static ValueTuple<int, string> ErpMaterialError = (80007, "获取Erp相关物料数据失败,请稍候再试!");
|
||||
public static ValueTuple<int, string> BoxHaveError = (80008, "该箱信息已被记录,请重新选择箱号!");
|
||||
public static ValueTuple<int, string> AdjustError = (80009, "与金蝶校准发生错误,请稍候再试!");
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,8 +257,8 @@ namespace WMS.Web.Repositories
|
||||
.SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order })
|
||||
.Where(w => EF.Functions.Like(w.order.SourceBillNo, "%" + dto.SourceBillNo + "%") && (w.order.Status== InstockStatus.Part || w.order.Status==InstockStatus.Wait));
|
||||
|
||||
if(dto.Type.HasValue)
|
||||
query = query.Where(w => (int)w.order.Type == dto.Type.Value);
|
||||
if(dto.InstockType.HasValue)
|
||||
query = query.Where(w => (int)w.order.Type == dto.InstockType.Value);
|
||||
|
||||
var list = await query.Select(s => new InStockTaskBillNoQueryResponse()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user