Merge branch 'master' of https://codeup.aliyun.com/62ce7bca487c500c27f70a79/OPS/WMS-Api
This commit is contained in:
Binary file not shown.
@@ -131,7 +131,11 @@ namespace WMS.Web.Api.Controllers
|
|||||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||||
return ResultList<GetOutStockTaskByNoResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
return ResultList<GetOutStockTaskByNoResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||||
|
|
||||||
|
List<string> str = new List<string>();
|
||||||
|
str.Add(billNo);
|
||||||
|
var res2 = await _repositories.GetListBySourceBillNo(str);
|
||||||
var res = await _repositories.GetOutStockTaskListByNo(billNo);
|
var res = await _repositories.GetOutStockTaskListByNo(billNo);
|
||||||
|
|
||||||
if (res == null || res.Count() == 0) return ResultList<GetOutStockTaskByNoResponse>.ReFailure(ResultCodes.OutStockTaskNoData);
|
if (res == null || res.Count() == 0) return ResultList<GetOutStockTaskByNoResponse>.ReFailure(ResultCodes.OutStockTaskNoData);
|
||||||
return ResultList<GetOutStockTaskByNoResponse>.ReSuccess(res);
|
return ResultList<GetOutStockTaskByNoResponse>.ReSuccess(res);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,10 @@ namespace WMS.Web.Api.Controllers
|
|||||||
[Route("hj")]
|
[Route("hj")]
|
||||||
public async Task<string> TestHJ()
|
public async Task<string> TestHJ()
|
||||||
{
|
{
|
||||||
|
//var t=await _outStockTaskRepositories.Get(1);
|
||||||
|
// t.Details[0].Remark = "sdf";
|
||||||
|
// t.Details[0].ErpDetails[0].SaleBillNo = "sdfsfsbbbb";
|
||||||
|
// var s = await _outStockTaskRepositories.Edit(t);
|
||||||
// await _boxService.Sync();
|
// await _boxService.Sync();
|
||||||
//var res = await this._erpService.BillQueryForDeliveryNoticeOutStock(null,DateTime.Now.AddDays(-300));
|
//var res = await this._erpService.BillQueryForDeliveryNoticeOutStock(null,DateTime.Now.AddDays(-300));
|
||||||
//var result= await this._erpService.BillQueryForPurchaseInStock();
|
//var result= await this._erpService.BillQueryForPurchaseInStock();
|
||||||
|
|||||||
@@ -3191,6 +3191,16 @@
|
|||||||
单据编号
|
单据编号
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.OutStockTask.GetOutStockTaskByNoResponse.StockCode">
|
||||||
|
<summary>
|
||||||
|
仓库编码
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.OutStockTask.GetOutStockTaskByNoResponse.StockName">
|
||||||
|
<summary>
|
||||||
|
仓库名
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.OutStockTask.GetOutStockTaskByNoResponse.details">
|
<member name="P:WMS.Web.Core.Dto.OutStockTask.GetOutStockTaskByNoResponse.details">
|
||||||
<summary>
|
<summary>
|
||||||
详情
|
详情
|
||||||
@@ -3581,6 +3591,11 @@
|
|||||||
出库数量
|
出库数量
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockDetailsRequest.BoxId">
|
||||||
|
<summary>
|
||||||
|
箱Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockDetailsRequest.SerialNumbers">
|
<member name="P:WMS.Web.Core.Dto.OutStock.SaveOutStockDetailsRequest.SerialNumbers">
|
||||||
<summary>
|
<summary>
|
||||||
序列号集
|
序列号集
|
||||||
|
|||||||
@@ -964,6 +964,11 @@
|
|||||||
同步成功或者失败 null 就是未同步
|
同步成功或者失败 null 就是未同步
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStock.SuccessSyncFail">
|
||||||
|
<summary>
|
||||||
|
同步失败的源订单号
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.OutStock.SyncTime">
|
<member name="P:WMS.Web.Domain.Entitys.OutStock.SyncTime">
|
||||||
<summary>
|
<summary>
|
||||||
同步时间
|
同步时间
|
||||||
@@ -985,7 +990,7 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<param name="creatorId"></param>
|
<param name="creatorId"></param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Entitys.OutStock.Sync(System.Boolean,System.Int32,System.String)">
|
<member name="M:WMS.Web.Domain.Entitys.OutStock.Sync(System.Collections.Generic.List{System.String},System.Boolean,System.Int32,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
同步金蝶
|
同步金蝶
|
||||||
</summary>
|
</summary>
|
||||||
@@ -1011,16 +1016,6 @@
|
|||||||
单据头Id
|
单据头Id
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.OutStockDetails.SaleBillNos">
|
|
||||||
<summary>
|
|
||||||
销售订单号
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:WMS.Web.Domain.Entitys.OutStockDetails.SourceBillNos">
|
|
||||||
<summary>
|
|
||||||
来源单号
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:WMS.Web.Domain.Entitys.OutStockDetails.MaterialId">
|
<member name="P:WMS.Web.Domain.Entitys.OutStockDetails.MaterialId">
|
||||||
<summary>
|
<summary>
|
||||||
物料Id
|
物料Id
|
||||||
@@ -1046,6 +1041,46 @@
|
|||||||
出库数量
|
出库数量
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockDetails.ErpDetails">
|
||||||
|
<summary>
|
||||||
|
对应erp明细 同一个物料 存在于不同的来源单中(合并后出现多条)
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:WMS.Web.Domain.Entitys.OutStockErpDetails">
|
||||||
|
<summary>
|
||||||
|
对应金蝶的明细
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockErpDetails.Id">
|
||||||
|
<summary>
|
||||||
|
主键 订单编号
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockErpDetails.DetailId">
|
||||||
|
<summary>
|
||||||
|
任务单明细Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockErpDetails.Erp_DetailId">
|
||||||
|
<summary>
|
||||||
|
对应金蝶单据明细id(销售出库同步金蝶下推使用)
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockErpDetails.SourceBillNo">
|
||||||
|
<summary>
|
||||||
|
来源单号
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockErpDetails.SaleBillNo">
|
||||||
|
<summary>
|
||||||
|
销售订单号
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockErpDetails.Qty">
|
||||||
|
<summary>
|
||||||
|
出库数量
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:WMS.Web.Domain.Entitys.OutStockTask">
|
<member name="T:WMS.Web.Domain.Entitys.OutStockTask">
|
||||||
<summary>
|
<summary>
|
||||||
erp出库任务单
|
erp出库任务单
|
||||||
@@ -1103,7 +1138,7 @@
|
|||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Entitys.OutStockTask.OutStock(System.Int32,System.Decimal)">
|
<member name="M:WMS.Web.Domain.Entitys.OutStockTask.OutStock(System.Int32,System.Decimal)">
|
||||||
<summary>
|
<summary>
|
||||||
出库 反写 任务单
|
出库 反写 任务单(返回 这个物料下面的来源单号出了多少数量)
|
||||||
</summary>
|
</summary>
|
||||||
<param name="materialId"></param>
|
<param name="materialId"></param>
|
||||||
<param name="qty"></param>
|
<param name="qty"></param>
|
||||||
@@ -1142,21 +1177,6 @@
|
|||||||
单据头Id
|
单据头Id
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Domain.Entitys.OutStockTaskDetails.Erp_DetailId">
|
|
||||||
<summary>
|
|
||||||
对应金蝶单据明细id(销售出库同步金蝶下推使用)
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:WMS.Web.Domain.Entitys.OutStockTaskDetails.SourceBillNos">
|
|
||||||
<summary>
|
|
||||||
来源单号(合并后有多个)
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:WMS.Web.Domain.Entitys.OutStockTaskDetails.SaleBillNos">
|
|
||||||
<summary>
|
|
||||||
销售订单号
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="P:WMS.Web.Domain.Entitys.OutStockTaskDetails.MaterialId">
|
<member name="P:WMS.Web.Domain.Entitys.OutStockTaskDetails.MaterialId">
|
||||||
<summary>
|
<summary>
|
||||||
物料Id
|
物料Id
|
||||||
@@ -1197,6 +1217,51 @@
|
|||||||
出库结束时间
|
出库结束时间
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockTaskDetails.ErpDetails">
|
||||||
|
<summary>
|
||||||
|
对应erp明细 同一个物料 存在于不同的来源单中(合并后出现多条)
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:WMS.Web.Domain.Entitys.OutStockTaskErpDetails">
|
||||||
|
<summary>
|
||||||
|
对应金蝶的明细
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockTaskErpDetails.Id">
|
||||||
|
<summary>
|
||||||
|
主键 订单编号
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockTaskErpDetails.DetailId">
|
||||||
|
<summary>
|
||||||
|
任务单明细Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockTaskErpDetails.Erp_DetailId">
|
||||||
|
<summary>
|
||||||
|
对应金蝶单据明细id(销售出库同步金蝶下推使用)
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockTaskErpDetails.SourceBillNo">
|
||||||
|
<summary>
|
||||||
|
来源单号
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockTaskErpDetails.SaleBillNo">
|
||||||
|
<summary>
|
||||||
|
销售订单号
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockTaskErpDetails.AccruedQty">
|
||||||
|
<summary>
|
||||||
|
应出库数量
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Domain.Entitys.OutStockTaskErpDetails.RealityQty">
|
||||||
|
<summary>
|
||||||
|
已出库数量
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:WMS.Web.Domain.Entitys.SerialNumberOperate">
|
<member name="T:WMS.Web.Domain.Entitys.SerialNumberOperate">
|
||||||
<summary>
|
<summary>
|
||||||
序列号操作记录表
|
序列号操作记录表
|
||||||
@@ -1872,7 +1937,7 @@
|
|||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Infrastructure.IOutStockTaskRepositories.GetListBySourceBillNo(System.Collections.Generic.List{System.String})">
|
<member name="M:WMS.Web.Domain.Infrastructure.IOutStockTaskRepositories.GetListBySourceBillNo(System.Collections.Generic.List{System.String})">
|
||||||
<summary>
|
<summary>
|
||||||
列表-根据明细中的来源单号
|
列表-根据明细中的来源单号精确匹配
|
||||||
</summary>
|
</summary>
|
||||||
<param name="sourceBillNos"></param>
|
<param name="sourceBillNos"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
|
|||||||
@@ -31,6 +31,11 @@ namespace WMS.Web.Core.Dto.OutStock
|
|||||||
[Required(ErrorMessage = "出库数量不能为空")]
|
[Required(ErrorMessage = "出库数量不能为空")]
|
||||||
public decimal Qty { get; set; }
|
public decimal Qty { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 箱Id
|
||||||
|
///</summary>
|
||||||
|
[Required(ErrorMessage = "箱不能为空")]
|
||||||
|
public int BoxId { get; set; }
|
||||||
|
/// <summary>
|
||||||
/// 序列号集
|
/// 序列号集
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<string> SerialNumbers { get; set; } = new List<string>();
|
public List<string> SerialNumbers { get; set; } = new List<string>();
|
||||||
|
|||||||
@@ -18,6 +18,14 @@ namespace WMS.Web.Core.Dto.OutStockTask
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string BillNo { get; set; }
|
public string BillNo { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 仓库编码
|
||||||
|
///</summary>
|
||||||
|
public string StockCode { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 仓库名
|
||||||
|
///</summary>
|
||||||
|
public string StockName { get; set; }
|
||||||
|
/// <summary>
|
||||||
/// 详情
|
/// 详情
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public List<GetOutStockTaskByNoDetailsResponse> details { get; set; } = new List<GetOutStockTaskByNoDetailsResponse>();
|
public List<GetOutStockTaskByNoDetailsResponse> details { get; set; } = new List<GetOutStockTaskByNoDetailsResponse>();
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.ComponentModel.DataAnnotations.Schema;
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using WMS.Web.Core;
|
using WMS.Web.Core;
|
||||||
using WMS.Web.Domain.Values;
|
using WMS.Web.Domain.Values;
|
||||||
@@ -66,6 +67,11 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
[Column("SuccessSync")]
|
[Column("SuccessSync")]
|
||||||
public bool? SuccessSync { get; set; }
|
public bool? SuccessSync { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 同步失败的源订单号
|
||||||
|
/// </summary>
|
||||||
|
[Column("SuccessSyncFail")]
|
||||||
|
public List<string> SuccessSyncFail { get; set; }=new List<string>();
|
||||||
|
/// <summary>
|
||||||
/// 同步时间
|
/// 同步时间
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Column("SyncTime")]
|
[Column("SyncTime")]
|
||||||
@@ -96,8 +102,10 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
/// 同步金蝶
|
/// 同步金蝶
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="operateId"></param>
|
/// <param name="operateId"></param>
|
||||||
public void Sync(bool isSuccess, int operateId,string remark)
|
public void Sync(List<string> sourcBilNos, bool isSuccess, int operateId, string remark)
|
||||||
{
|
{
|
||||||
|
SuccessSyncFail.AddRange(sourcBilNos);
|
||||||
|
SuccessSyncFail.Distinct();
|
||||||
this.SuccessSync = isSuccess;
|
this.SuccessSync = isSuccess;
|
||||||
this.Remark = remark;
|
this.Remark = remark;
|
||||||
this.OperateId = operateId;
|
this.OperateId = operateId;
|
||||||
|
|||||||
@@ -25,17 +25,6 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[Column("Fid")]
|
[Column("Fid")]
|
||||||
public int Fid { get; set; }
|
public int Fid { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 销售订单号
|
|
||||||
///</summary>
|
|
||||||
[Column("SaleBillNo")]
|
|
||||||
public List<string> SaleBillNos { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 来源单号
|
|
||||||
///</summary>
|
|
||||||
[Column("SourceBillNo")]
|
|
||||||
public List<string> SourceBillNos { get; set; }
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 物料Id
|
/// 物料Id
|
||||||
///</summary>
|
///</summary>
|
||||||
@@ -61,5 +50,10 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
///</summary>
|
///</summary>
|
||||||
[Column("Qty")]
|
[Column("Qty")]
|
||||||
public decimal Qty { get; set; }
|
public decimal Qty { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 对应erp明细 同一个物料 存在于不同的来源单中(合并后出现多条)
|
||||||
|
/// </summary>
|
||||||
|
public List<OutStockErpDetails> ErpDetails { get; set; } = new List<OutStockErpDetails>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
48
src/WMS.Web.Domain/Entitys/OutStockErpDetails.cs
Normal file
48
src/WMS.Web.Domain/Entitys/OutStockErpDetails.cs
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.Text;
|
||||||
|
using WMS.Web.Core;
|
||||||
|
|
||||||
|
namespace WMS.Web.Domain.Entitys
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 对应金蝶的明细
|
||||||
|
/// </summary>
|
||||||
|
[Serializable]
|
||||||
|
[Table("t_wms_outstock_erp_details")]
|
||||||
|
public class OutStockErpDetails : EntityBase
|
||||||
|
{
|
||||||
|
public OutStockErpDetails() { }
|
||||||
|
/// <summary>
|
||||||
|
/// 主键 订单编号
|
||||||
|
/// </summary>
|
||||||
|
[Column("Id")]
|
||||||
|
public override int Id { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 任务单明细Id
|
||||||
|
/// </summary>
|
||||||
|
[Column("DetailId")]
|
||||||
|
public int DetailId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 对应金蝶单据明细id(销售出库同步金蝶下推使用)
|
||||||
|
/// </summary>
|
||||||
|
[Column("Erp_DetailId")]
|
||||||
|
public int Erp_DetailId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 来源单号
|
||||||
|
///</summary>
|
||||||
|
[Column("SourceBillNo")]
|
||||||
|
public string SourceBillNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 销售订单号
|
||||||
|
///</summary>
|
||||||
|
[Column("SaleBillNo")]
|
||||||
|
public string SaleBillNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 出库数量
|
||||||
|
///</summary>
|
||||||
|
[Column("Qty")]
|
||||||
|
public decimal Qty { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -76,22 +76,41 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
this.CreateTime = createTime;
|
this.CreateTime = createTime;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 出库 反写 任务单
|
/// 出库 反写 任务单(返回 这个物料下面的来源单号出了多少数量)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="materialId"></param>
|
/// <param name="materialId"></param>
|
||||||
/// <param name="qty"></param>
|
/// <param name="qty"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Result OutStock(int materialId, decimal qty)
|
public Result<List<(string sourceBillNo, decimal qty)>> OutStock(int materialId, decimal qty)
|
||||||
{
|
{
|
||||||
if (this.Status == OutStockStatus.Already)
|
if (this.Status == OutStockStatus.Already)
|
||||||
return Result.ReFailure(ResultCodes.OutStockTaskAlready);
|
return Result<List<(string sourceBillNo, decimal qty)>>.ReFailure(ResultCodes.OutStockTaskAlready);
|
||||||
if (this.Status == OutStockStatus.Repeal)
|
if (this.Status == OutStockStatus.Repeal)
|
||||||
return Result.ReFailure(ResultCodes.OutStockTaskRepeal);
|
return Result<List<(string sourceBillNo, decimal qty)>>.ReFailure(ResultCodes.OutStockTaskRepeal);
|
||||||
|
|
||||||
var detail = this.Details.FirstOrDefault(f => f.MaterialId == materialId);
|
var detail = this.Details.FirstOrDefault(f => f.MaterialId == materialId);
|
||||||
if (detail == null) return Result.ReFailure(ResultCodes.OrderNoData);
|
if (detail == null) return Result<List<(string sourceBillNo, decimal qty)>>.ReFailure(ResultCodes.OrderNoData);
|
||||||
if ((detail.AccruedQty - detail.RealityQty) < qty)
|
if ((detail.AccruedQty - detail.RealityQty) < qty)
|
||||||
return Result.ReFailure(ResultCodes.OutStockQtyError);
|
return Result<List<(string sourceBillNo, decimal qty)>>.ReFailure(ResultCodes.OutStockQtyError);
|
||||||
|
List<(string sourceBillNo, decimal qty)> resList = new List<(string sourceBillNo, decimal qty)>();
|
||||||
|
var mQty = qty;
|
||||||
|
foreach (var d in detail.ErpDetails)
|
||||||
|
{
|
||||||
|
if ((d.AccruedQty - d.RealityQty) >= mQty)
|
||||||
|
{
|
||||||
|
d.RealityQty += qty;
|
||||||
|
resList.Add((d.SourceBillNo, mQty));
|
||||||
|
break;//本次出库数量已经分配完毕 调出循环
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//代表这一个来源单号对应的物料 能全部出掉,并且还有剩余 进行下一个来源单的出货
|
||||||
|
var cQty = d.AccruedQty - d.RealityQty;//本次出货数量
|
||||||
|
mQty -= cQty;
|
||||||
|
d.RealityQty = d.AccruedQty;
|
||||||
|
resList.Add((d.SourceBillNo, cQty));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (detail.RealityQty <= 0)
|
if (detail.RealityQty <= 0)
|
||||||
detail.OutStockBeginTime = DateTime.Now;
|
detail.OutStockBeginTime = DateTime.Now;
|
||||||
@@ -106,7 +125,7 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
else
|
else
|
||||||
this.Status = OutStockStatus.Part;
|
this.Status = OutStockStatus.Part;
|
||||||
|
|
||||||
return Result.ReSuccess();
|
return Result<List<(string sourceBillNo, decimal qty)>>.ReSuccess(resList);
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 生成单据号
|
/// 生成单据号
|
||||||
@@ -168,8 +187,13 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
if (detail_new != null)
|
if (detail_new != null)
|
||||||
{
|
{
|
||||||
detail_new.AccruedQty += d.AccruedQty;//应出数量累加
|
detail_new.AccruedQty += d.AccruedQty;//应出数量累加
|
||||||
detail_new.SaleBillNos.AddRange(d.SaleBillNos);
|
foreach (var erpd in d.ErpDetails)
|
||||||
detail_new.SourceBillNos.AddRange(d.SourceBillNos);
|
{
|
||||||
|
var cd = erpd.Clone();
|
||||||
|
cd.Id = 0; cd.DetailId = 0;
|
||||||
|
detail_new.ErpDetails.Add(cd);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
details_new.Add(d);
|
details_new.Add(d);
|
||||||
|
|||||||
@@ -28,22 +28,6 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
[Column("Fid")]
|
[Column("Fid")]
|
||||||
public int Fid { get; set; }
|
public int Fid { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 对应金蝶单据明细id(销售出库同步金蝶下推使用)
|
|
||||||
/// </summary>
|
|
||||||
[Column("Erp_DetailId")]
|
|
||||||
public int Erp_DetailId { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 来源单号(合并后有多个)
|
|
||||||
///</summary>
|
|
||||||
[Column("SourceBillNo")]
|
|
||||||
public List<string> SourceBillNos { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 销售订单号
|
|
||||||
///</summary>
|
|
||||||
[Column("SaleBillNo")]
|
|
||||||
public List<string> SaleBillNos { get; set; }
|
|
||||||
/// <summary>
|
|
||||||
/// 物料Id
|
/// 物料Id
|
||||||
///</summary>
|
///</summary>
|
||||||
[Column("MaterialId")]
|
[Column("MaterialId")]
|
||||||
@@ -83,7 +67,10 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
///</summary>
|
///</summary>
|
||||||
[Column("OutStockEndTime")]
|
[Column("OutStockEndTime")]
|
||||||
public DateTime? OutStockEndTime { get; set; }
|
public DateTime? OutStockEndTime { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 对应erp明细 同一个物料 存在于不同的来源单中(合并后出现多条)
|
||||||
|
/// </summary>
|
||||||
|
public List<OutStockTaskErpDetails> ErpDetails { get; set; } = new List<OutStockTaskErpDetails>();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
53
src/WMS.Web.Domain/Entitys/OutStockTaskErpDetails.cs
Normal file
53
src/WMS.Web.Domain/Entitys/OutStockTaskErpDetails.cs
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.Text;
|
||||||
|
using WMS.Web.Core;
|
||||||
|
|
||||||
|
namespace WMS.Web.Domain.Entitys
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 对应金蝶的明细
|
||||||
|
/// </summary>
|
||||||
|
[Serializable]
|
||||||
|
[Table("t_erp_outstock_task_erp_details")]
|
||||||
|
public class OutStockTaskErpDetails : EntityBase
|
||||||
|
{
|
||||||
|
public OutStockTaskErpDetails() { }
|
||||||
|
/// <summary>
|
||||||
|
/// 主键 订单编号
|
||||||
|
/// </summary>
|
||||||
|
[Column("Id")]
|
||||||
|
public override int Id { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 任务单明细Id
|
||||||
|
/// </summary>
|
||||||
|
[Column("DetailId")]
|
||||||
|
public int DetailId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 对应金蝶单据明细id(销售出库同步金蝶下推使用)
|
||||||
|
/// </summary>
|
||||||
|
[Column("Erp_DetailId")]
|
||||||
|
public int Erp_DetailId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 来源单号
|
||||||
|
///</summary>
|
||||||
|
[Column("SourceBillNo")]
|
||||||
|
public string SourceBillNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 销售订单号
|
||||||
|
///</summary>
|
||||||
|
[Column("SaleBillNo")]
|
||||||
|
public string SaleBillNo { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 应出库数量
|
||||||
|
///</summary>
|
||||||
|
[Column("AccruedQty")]
|
||||||
|
public decimal AccruedQty { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 已出库数量
|
||||||
|
///</summary>
|
||||||
|
[Column("RealityQty")]
|
||||||
|
public decimal RealityQty { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -23,7 +23,7 @@ namespace WMS.Web.Domain.Infrastructure
|
|||||||
/// 查询实体集合
|
/// 查询实体集合
|
||||||
Task<List<OutStockTask>> GetEntityList(List<int> ids);
|
Task<List<OutStockTask>> GetEntityList(List<int> ids);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 列表-根据明细中的来源单号
|
/// 列表-根据明细中的来源单号精确匹配
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sourceBillNos"></param>
|
/// <param name="sourceBillNos"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
|||||||
@@ -13,20 +13,32 @@ namespace WMS.Web.Domain.Mappers
|
|||||||
{
|
{
|
||||||
public OutStockMapper()
|
public OutStockMapper()
|
||||||
{
|
{
|
||||||
|
CreateMap<OutStockTask, OutStockTask>();
|
||||||
|
CreateMap<OutStockTaskDetails, OutStockTaskDetails>();
|
||||||
|
CreateMap<OutStockTaskErpDetails, OutStockTaskErpDetails>();
|
||||||
|
|
||||||
|
CreateMap<OutStock, OutStock>();
|
||||||
|
CreateMap<OutStockDetails, OutStockDetails>();
|
||||||
|
CreateMap<OutStockErpDetails, OutStockErpDetails>();
|
||||||
|
|
||||||
|
|
||||||
CreateMap<SaveOutStockRequest, OutStockDetails>();
|
CreateMap<SaveOutStockRequest, OutStockDetails>();
|
||||||
|
|
||||||
CreateMap<OutStockTaskDetails, OutStockDetails>()
|
CreateMap<OutStockTaskDetails, OutStockDetails>()
|
||||||
.ForMember(x => x.Id, ops => ops.Ignore())
|
.ForMember(x => x.Id, ops => ops.Ignore())
|
||||||
.ForMember(x => x.Fid, ops => ops.Ignore())
|
.ForMember(x => x.Fid, ops => ops.Ignore())
|
||||||
.ForMember(x => x.Qty, ops => ops.Ignore());
|
.ForMember(x => x.Qty, ops => ops.Ignore());
|
||||||
|
CreateMap<OutStockTaskErpDetails, OutStockErpDetails>()
|
||||||
|
.ForMember(x => x.Id, ops => ops.Ignore())
|
||||||
|
.ForMember(x => x.DetailId, ops => ops.Ignore())
|
||||||
|
.ForMember(x => x.Qty, ops => ops.Ignore());
|
||||||
|
|
||||||
|
|
||||||
CreateMap<OutStockTask, GetOutStockTaskByNoResponse>();
|
CreateMap<OutStockTask, GetOutStockTaskByNoResponse>();
|
||||||
CreateMap<OutStockTaskDetails, GetOutStockTaskByNoDetailsResponse>();
|
CreateMap<OutStockTaskDetails, GetOutStockTaskByNoDetailsResponse>();
|
||||||
|
|
||||||
CreateMap<ErpDeliveryNoticeOutStockResultDto, OutStockTaskDetails>()
|
CreateMap<ErpDeliveryNoticeOutStockResultDto, OutStockTaskDetails>();
|
||||||
.ForPath(x => x.SourceBillNos, ops => ops.MapFrom(x =>new List<string>() { x.SourceBillNo }))
|
CreateMap<ErpDeliveryNoticeOutStockResultDto, OutStockTaskErpDetails>();
|
||||||
.ForPath(x => x.SaleBillNos, ops => ops.MapFrom(x => new List<string>() { x.SaleBillNo }));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
foreach (var sn in ops_box.Details.SelectMany(s => s.SerialNumbers))
|
foreach (var sn in ops_box.Details.SelectMany(s => s.SerialNumbers))
|
||||||
{
|
{
|
||||||
var detail = ops_box.Details.FirstOrDefault(f => f.SerialNumbers.Select(s=>s.SerialNumber).Equals(sn.SerialNumber));
|
var detail = ops_box.Details.FirstOrDefault(f => f.SerialNumbers.Select(s=>s.SerialNumber).Equals(sn.SerialNumber));
|
||||||
|
if (detail == null) continue;
|
||||||
var opsSerial = list.FirstOrDefault(f => f.OpsBoxId == b.OpsBoxId).Details
|
var opsSerial = list.FirstOrDefault(f => f.OpsBoxId == b.OpsBoxId).Details
|
||||||
.SelectMany(s => s.SerialNumbers)
|
.SelectMany(s => s.SerialNumbers)
|
||||||
.FirstOrDefault(s => s.SerialNumber.Equals(sn.SerialNumber));
|
.FirstOrDefault(s => s.SerialNumber.Equals(sn.SerialNumber));
|
||||||
|
|||||||
@@ -54,30 +54,40 @@ namespace WMS.Web.Domain.Services
|
|||||||
public async Task<Result> Save(SaveOutStockRequest dto, LoginInDto loginInfo)
|
public async Task<Result> Save(SaveOutStockRequest dto, LoginInDto loginInfo)
|
||||||
{
|
{
|
||||||
var outStockTask = await _outStockTaskRepositories.Get(dto.TaskId);
|
var outStockTask = await _outStockTaskRepositories.Get(dto.TaskId);
|
||||||
if(outStockTask.Status== OutStockStatus.Already)
|
if (outStockTask.Status == OutStockStatus.Already)
|
||||||
return Result.ReFailure(ResultCodes.OutStockTaskAlready);
|
return Result.ReFailure(ResultCodes.OutStockTaskAlready);
|
||||||
if (outStockTask.Status == OutStockStatus.Repeal)
|
if (outStockTask.Status == OutStockStatus.Repeal)
|
||||||
return Result.ReFailure(ResultCodes.OutStockTaskRepeal);
|
return Result.ReFailure(ResultCodes.OutStockTaskRepeal);
|
||||||
//上传的物料在任务单里没有找到不能出库
|
//上传的物料在任务单里没有找到不能出库
|
||||||
var ex = dto.Details.Select(s=>s.MaterialId).Except(outStockTask.Details.Select(s=>s.MaterialId)).ToList();
|
var ex = dto.Details.Select(s => s.MaterialId).Except(outStockTask.Details.Select(s => s.MaterialId)).ToList();
|
||||||
if (ex.Count() > 0)
|
if (ex.Count() > 0)
|
||||||
return Result.ReFailure(ResultCodes.OutStockMaterialError);
|
return Result.ReFailure(ResultCodes.OutStockMaterialError);
|
||||||
|
|
||||||
|
var mIds = dto.Details.GroupBy(g => g.MaterialId).Select(s => s.Key).ToList();
|
||||||
OutStock entity = new OutStock();
|
OutStock entity = new OutStock();
|
||||||
entity.Create(loginInfo.UserInfo.StaffId, outStockTask);
|
entity.Create(loginInfo.UserInfo.StaffId, outStockTask);
|
||||||
foreach (var d in dto.Details)
|
foreach (var mid in mIds)
|
||||||
{
|
{
|
||||||
//任务单明细
|
//任务单明细
|
||||||
var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialId == d.MaterialId);
|
var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialId == mid);
|
||||||
|
var dtoDetails = dto.Details.Where(w => w.MaterialId == mid);
|
||||||
|
var qty = dtoDetails.Sum(s => s.Qty);
|
||||||
|
|
||||||
if (tDetail == null) continue;
|
if (tDetail == null) continue;
|
||||||
var res = outStockTask.OutStock(d.MaterialId, d.Qty);
|
var res = outStockTask.OutStock(mid, qty);
|
||||||
if (!res.IsSuccess) return res;
|
if (!res.IsSuccess) return res;
|
||||||
|
|
||||||
var outd = _mapper.Map<OutStockDetails>(tDetail);
|
var outd = _mapper.Map<OutStockDetails>(tDetail);
|
||||||
|
//循环添加erp同步明细
|
||||||
outd.Qty = d.Qty;
|
foreach (var c in res.Data)
|
||||||
outd.SerialNumbers = d.SerialNumbers;
|
{
|
||||||
|
var tErpDetail = tDetail.ErpDetails.FirstOrDefault(f => f.SourceBillNo.Equals(c.sourceBillNo));
|
||||||
|
var oErpDetail = _mapper.Map<OutStockErpDetails>(tErpDetail);
|
||||||
|
oErpDetail.Qty = c.qty;
|
||||||
|
outd.ErpDetails.Add(oErpDetail);
|
||||||
|
}
|
||||||
|
outd.Qty = qty;
|
||||||
|
outd.SerialNumbers.AddRange(dtoDetails.SelectMany(s => s.SerialNumbers));
|
||||||
entity.Details.Add(outd);
|
entity.Details.Add(outd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,7 +124,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
{
|
{
|
||||||
//下推金蝶
|
//下推金蝶
|
||||||
var res = await _erpService.Push(new Core.Dto.Erp.ErpPushDto() { });
|
var res = await _erpService.Push(new Core.Dto.Erp.ErpPushDto() { });
|
||||||
entity.Sync(res.IsSuccess, loginInfo.UserInfo.StaffId, res.Message);
|
entity.Sync(new List<string>(), res.IsSuccess, loginInfo.UserInfo.StaffId, res.Message);
|
||||||
}
|
}
|
||||||
var isSuccess = await _outStockRepositories.EditEntityList(list, true);
|
var isSuccess = await _outStockRepositories.EditEntityList(list, true);
|
||||||
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
|
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
|
||||||
|
|||||||
@@ -103,18 +103,41 @@ namespace WMS.Web.Domain.Services
|
|||||||
if (data_list.Count != 0)
|
if (data_list.Count != 0)
|
||||||
{
|
{
|
||||||
//2.1提取出wms任务单明细信息
|
//2.1提取出wms任务单明细信息
|
||||||
foreach (var e in erp_list)
|
foreach (var outStockTask in data_list)
|
||||||
{
|
{
|
||||||
//代表单据已经存在 那么就对单据进行修改
|
var sourcNos = outStockTask.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo).ToList();
|
||||||
var data = data_list.FirstOrDefault(f => f.Details.SelectMany(s => s.SourceBillNos).Contains(e.SourceBillNo));
|
var erps = erp_list.Where(w => sourcNos.Contains(w.SourceBillNo)).ToList();
|
||||||
var detail = data.Details.FirstOrDefault(w => w.MaterialId == e.MaterialId);
|
foreach (var erp in erps)
|
||||||
//存在就修改,没有就添加
|
{
|
||||||
if (detail != null)
|
var detail = outStockTask.Details.FirstOrDefault(w => w.MaterialId == erp.MaterialId);
|
||||||
detail.AccruedQty = e.AccruedQty;
|
if (detail == null)
|
||||||
else
|
{
|
||||||
data.Details.Add(_mapper.Map<OutStockTaskDetails>(e));
|
//添加一条物料明细
|
||||||
|
detail = _mapper.Map<OutStockTaskDetails>(erp);
|
||||||
|
var erpDetail = _mapper.Map<OutStockTaskErpDetails>(erp);
|
||||||
|
detail.ErpDetails.Add(erpDetail);
|
||||||
|
outStockTask.Details.Add(detail);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//找到物料明细下面对应的来源单明细 然后修改
|
||||||
|
var erpDetail = detail.ErpDetails.FirstOrDefault(f => f.SourceBillNo.Equals(erp.SourceBillNo));
|
||||||
|
if (erpDetail == null)
|
||||||
|
{
|
||||||
|
erpDetail = _mapper.Map<OutStockTaskErpDetails>(erp);
|
||||||
|
detail.ErpDetails.Add(erpDetail);
|
||||||
|
outStockTask.Details.Add(detail);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
erpDetail.AccruedQty = erp.AccruedQty;
|
||||||
|
detail.AccruedQty = detail.ErpDetails.Sum(s => s.AccruedQty);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//操作完后剔除
|
||||||
|
erp_removeList.Add(erp);
|
||||||
|
}
|
||||||
|
|
||||||
erp_removeList.Add(e);
|
|
||||||
}
|
}
|
||||||
//2.2.提交修改
|
//2.2.提交修改
|
||||||
var isSuccess = await _outStockTaskRepositories.EditEntityList(data_list, isTransaction);
|
var isSuccess = await _outStockTaskRepositories.EditEntityList(data_list, isTransaction);
|
||||||
@@ -139,7 +162,13 @@ namespace WMS.Web.Domain.Services
|
|||||||
//找到当前对应来源单据编号的集合数据
|
//找到当前对应来源单据编号的集合数据
|
||||||
var current_erp_details = erp_list.Where(x => x.SourceBillNo == item).ToList();
|
var current_erp_details = erp_list.Where(x => x.SourceBillNo == item).ToList();
|
||||||
//给到dto的实体明细中
|
//给到dto的实体明细中
|
||||||
entity.Details = _mapper.Map<List<OutStockTaskDetails>>(current_erp_details);
|
foreach (var erp in current_erp_details)
|
||||||
|
{
|
||||||
|
var detail = _mapper.Map<OutStockTaskDetails>(erp);
|
||||||
|
var erpDetail = _mapper.Map<OutStockTaskErpDetails>(erp);
|
||||||
|
detail.ErpDetails.Add(erpDetail);
|
||||||
|
entity.Details.Add(detail);
|
||||||
|
}
|
||||||
add_entitys.Add(entity);
|
add_entitys.Add(entity);
|
||||||
}
|
}
|
||||||
//3.1提交新增
|
//3.1提交新增
|
||||||
@@ -281,15 +310,15 @@ namespace WMS.Web.Domain.Services
|
|||||||
foreach (var entity in taskList)
|
foreach (var entity in taskList)
|
||||||
{
|
{
|
||||||
if (entity.Type == OutStockType.Sal)
|
if (entity.Type == OutStockType.Sal)
|
||||||
DeliveryNotice_Nos.AddRange(entity.Details.SelectMany(s => s.SourceBillNos));
|
DeliveryNotice_Nos.AddRange(entity.Details.SelectMany(s => s.ErpDetails).Select(s=>s.SourceBillNo));
|
||||||
else if (entity.Type == OutStockType.Stkdirecttransfers)
|
else if (entity.Type == OutStockType.Stkdirecttransfers)
|
||||||
TransferDirect_Nos.AddRange(entity.Details.SelectMany(s => s.SourceBillNos));
|
TransferDirect_Nos.AddRange(entity.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo));
|
||||||
else if (entity.Type == OutStockType.StktransferInst)
|
else if (entity.Type == OutStockType.StktransferInst)
|
||||||
TransferOut_Nos.AddRange(entity.Details.SelectMany(s => s.SourceBillNos));
|
TransferOut_Nos.AddRange(entity.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo));
|
||||||
else if (entity.Type == OutStockType.Assembled)
|
else if (entity.Type == OutStockType.Assembled)
|
||||||
AssembledApp_Nos.AddRange(entity.Details.SelectMany(s => s.SourceBillNos));
|
AssembledApp_Nos.AddRange(entity.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo));
|
||||||
else if (entity.Type == OutStockType.Miscellaneous)
|
else if (entity.Type == OutStockType.Miscellaneous)
|
||||||
MisDeliveryOut_Nos.AddRange(entity.Details.SelectMany(s => s.SourceBillNos));
|
MisDeliveryOut_Nos.AddRange(entity.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DeliveryNotice_Nos.Count() > 0)
|
if (DeliveryNotice_Nos.Count() > 0)
|
||||||
|
|||||||
@@ -204,14 +204,14 @@ namespace WMS.Web.Domain.Services
|
|||||||
OperateTime = DateTime.Now,
|
OperateTime = DateTime.Now,
|
||||||
OperateType = OutStockTypeConvert(outStock.Type),
|
OperateType = OutStockTypeConvert(outStock.Type),
|
||||||
OperateUser = userName,
|
OperateUser = userName,
|
||||||
Remark = "来源单号:" + string.Join(",", outstockDetail.SourceBillNos) + "\r\n" + "出库单号:" + outStock.BillNo
|
Remark = "来源单号:" + string.Join(",", outstockDetail.ErpDetails.Select(s=>s.SourceBillNo)) + "\r\n" + "出库单号:" + outStock.BillNo
|
||||||
};
|
};
|
||||||
if (outStock.Type == OutStockType.Sal)
|
if (outStock.Type == OutStockType.Sal)
|
||||||
{
|
{
|
||||||
var detail = outStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId);
|
var detail = outStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId);
|
||||||
var res_c = await _erpService.BillQueryForCustomer();
|
var res_c = await _erpService.BillQueryForCustomer();
|
||||||
var customer = res_c.Data.FirstOrDefault(f => f.Id == outStock.ReceiptCustomerId);
|
var customer = res_c.Data.FirstOrDefault(f => f.Id == outStock.ReceiptCustomerId);
|
||||||
op.Remark += "\r\n" + "销售订单号:" + string.Join(",", detail.SaleBillNos);
|
op.Remark += "\r\n" + "销售订单号:" + string.Join(",", detail.ErpDetails.Select(s => s.SaleBillNo));
|
||||||
op.Remark += "\r\n" + "客户:" + customer?.Name;
|
op.Remark += "\r\n" + "客户:" + customer?.Name;
|
||||||
}
|
}
|
||||||
sList.Add(op);
|
sList.Add(op);
|
||||||
|
|||||||
@@ -81,6 +81,10 @@ namespace WMS.Web.Repositories.Configuration
|
|||||||
ent.ToTable("t_wms_outstock");
|
ent.ToTable("t_wms_outstock");
|
||||||
ent.HasKey(x => x.Id);
|
ent.HasKey(x => x.Id);
|
||||||
|
|
||||||
|
ent.Property(f => f.SuccessSyncFail).HasConversion(
|
||||||
|
v => JsonConvert.SerializeObject(v),
|
||||||
|
v => JsonConvert.DeserializeObject<List<string>>(v));
|
||||||
|
|
||||||
ent.HasMany(p => p.Details)
|
ent.HasMany(p => p.Details)
|
||||||
.WithOne()
|
.WithOne()
|
||||||
.HasForeignKey(p => p.Fid)
|
.HasForeignKey(p => p.Fid)
|
||||||
@@ -95,13 +99,16 @@ namespace WMS.Web.Repositories.Configuration
|
|||||||
v => JsonConvert.SerializeObject(v),
|
v => JsonConvert.SerializeObject(v),
|
||||||
v => JsonConvert.DeserializeObject<List<string>>(v));
|
v => JsonConvert.DeserializeObject<List<string>>(v));
|
||||||
|
|
||||||
ent.Property(f => f.SourceBillNos).HasConversion(
|
ent.HasMany(p => p.ErpDetails)
|
||||||
v => JsonConvert.SerializeObject(v),
|
.WithOne()
|
||||||
v => JsonConvert.DeserializeObject<List<string>>(v));
|
.HasForeignKey(p => p.DetailId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
ent.Property(f => f.SaleBillNos).HasConversion(
|
builder.Entity<OutStockErpDetails>(ent =>
|
||||||
v => JsonConvert.SerializeObject(v),
|
{
|
||||||
v => JsonConvert.DeserializeObject<List<string>>(v));
|
ent.ToTable("t_wms_outstock_erp_details");
|
||||||
|
ent.HasKey(x => x.Id);
|
||||||
});
|
});
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -121,13 +128,16 @@ namespace WMS.Web.Repositories.Configuration
|
|||||||
ent.ToTable("t_erp_outstock_task_details");
|
ent.ToTable("t_erp_outstock_task_details");
|
||||||
ent.HasKey(x => x.Id);
|
ent.HasKey(x => x.Id);
|
||||||
|
|
||||||
ent.Property(f => f.SourceBillNos).HasConversion(
|
ent.HasMany(p => p.ErpDetails)
|
||||||
v => JsonConvert.SerializeObject(v),
|
.WithOne()
|
||||||
v => JsonConvert.DeserializeObject<List<string>>(v));
|
.HasForeignKey(p => p.DetailId)
|
||||||
|
.OnDelete(DeleteBehavior.Cascade);
|
||||||
|
});
|
||||||
|
|
||||||
ent.Property(f => f.SaleBillNos).HasConversion(
|
builder.Entity<OutStockTaskErpDetails>(ent =>
|
||||||
v => JsonConvert.SerializeObject(v),
|
{
|
||||||
v => JsonConvert.DeserializeObject<List<string>>(v));
|
ent.ToTable("t_erp_outstock_task_erp_details");
|
||||||
|
ent.HasKey(x => x.Id);
|
||||||
});
|
});
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -285,7 +295,9 @@ namespace WMS.Web.Repositories.Configuration
|
|||||||
public DbSet<OutStockTask> OutStockTask { get; set; }
|
public DbSet<OutStockTask> OutStockTask { get; set; }
|
||||||
public DbSet<TakeStock> TakeStock { get; set; }
|
public DbSet<TakeStock> TakeStock { get; set; }
|
||||||
public DbSet<OutStockDetails> OutStockDetails { get; set; }
|
public DbSet<OutStockDetails> OutStockDetails { get; set; }
|
||||||
|
public DbSet<OutStockErpDetails> OutStockErpDetails { get; set; }
|
||||||
public DbSet<OutStockTaskDetails> OutStockTaskDetails { get; set; }
|
public DbSet<OutStockTaskDetails> OutStockTaskDetails { get; set; }
|
||||||
|
public DbSet<OutStockTaskErpDetails> OutStockTaskErpDetails { get; set; }
|
||||||
public DbSet<TakeStockDetails> TakeStockDetails { get; set; }
|
public DbSet<TakeStockDetails> TakeStockDetails { get; set; }
|
||||||
public DbSet<InStock> Instock { get; set; }
|
public DbSet<InStock> Instock { get; set; }
|
||||||
public DbSet<InStockDetails> InStockDetails { get; set; }
|
public DbSet<InStockDetails> InStockDetails { get; set; }
|
||||||
|
|||||||
@@ -82,10 +82,6 @@ namespace WMS.Web.Repositories
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<(List<OutStockQueryInfoResponse> list, int total)> GetListAsync(OutStockQueryRequest dto)
|
public async Task<(List<OutStockQueryInfoResponse> list, int total)> GetListAsync(OutStockQueryRequest dto)
|
||||||
{
|
{
|
||||||
List<int> detailIds = new List<int>();
|
|
||||||
if (!string.IsNullOrEmpty(dto.SourceBillNo))
|
|
||||||
detailIds = await _context.OutStockTaskDetails.FromSqlRaw($"SELECT Id FROM t_wms_outstock_details WHERE SourceBillNo like '%{dto.SourceBillNo}%'").Select(s => s.Id).ToListAsync();
|
|
||||||
|
|
||||||
List<int> ids = new List<int>();
|
List<int> ids = new List<int>();
|
||||||
if (!string.IsNullOrEmpty(dto.Creator))
|
if (!string.IsNullOrEmpty(dto.Creator))
|
||||||
{
|
{
|
||||||
@@ -118,7 +114,7 @@ namespace WMS.Web.Repositories
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
var query = _context.OutStockDetails
|
var query = _context.OutStockDetails.Include(x => x.ErpDetails)
|
||||||
.GroupJoin(_context.OutStock, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
|
.GroupJoin(_context.OutStock, 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 })
|
||||||
.OrderByDescending(o => o.order.Id)
|
.OrderByDescending(o => o.order.Id)
|
||||||
@@ -138,8 +134,8 @@ namespace WMS.Web.Repositories
|
|||||||
query = query.Where(w => mIds.Contains(w.detail.MaterialId));
|
query = query.Where(w => mIds.Contains(w.detail.MaterialId));
|
||||||
if (ids.Count() > 0)
|
if (ids.Count() > 0)
|
||||||
query = query.Where(w => ids.Contains(w.order.CreatorId));
|
query = query.Where(w => ids.Contains(w.order.CreatorId));
|
||||||
if (detailIds.Count()!=0)
|
if (!string.IsNullOrEmpty(dto.SourceBillNo))
|
||||||
query = query.Where(w => detailIds.Contains(w.detail.Id));
|
query = query.Where(w => w.detail.ErpDetails.Where(wd => EF.Functions.Like(wd.SourceBillNo, "%" + dto.SourceBillNo + "%")).Select(s => s.DetailId).Contains(w.detail.Id));
|
||||||
if (dto.Type != null)
|
if (dto.Type != null)
|
||||||
query = query.Where(w => w.order.Type == (OutStockType)dto.Type);
|
query = query.Where(w => w.order.Type == (OutStockType)dto.Type);
|
||||||
if (dto.SuccessSync != null)
|
if (dto.SuccessSync != null)
|
||||||
@@ -164,8 +160,8 @@ namespace WMS.Web.Repositories
|
|||||||
CreateTime = s.order.CreateTime.DateToStringSeconds(),
|
CreateTime = s.order.CreateTime.DateToStringSeconds(),
|
||||||
SuccessSync = s.order.SuccessSync,
|
SuccessSync = s.order.SuccessSync,
|
||||||
Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.detail.StockCode),
|
Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.detail.StockCode),
|
||||||
SourceBillNo =string.Join(",",s.detail.SourceBillNos),
|
SourceBillNo = string.Join(",", s.detail.ErpDetails.Select(s => s.SourceBillNo)),
|
||||||
SaleBillNo = string.Join(",", s.detail.SaleBillNos),
|
SaleBillNo = string.Join(",", s.detail.ErpDetails.Select(s => s.SaleBillNo)),
|
||||||
DeliveryOrg = _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId),
|
DeliveryOrg = _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId),
|
||||||
ReceiptCustomer = s.order.Type == OutStockType.Sal
|
ReceiptCustomer = s.order.Type == OutStockType.Sal
|
||||||
? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId)
|
? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId)
|
||||||
@@ -196,12 +192,12 @@ namespace WMS.Web.Repositories
|
|||||||
List<int> list = entitys.Select(s => s.Id).ToList();
|
List<int> list = entitys.Select(s => s.Id).ToList();
|
||||||
|
|
||||||
var res = await _context.OutStock
|
var res = await _context.OutStock
|
||||||
.Include(s => s.Details)
|
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
|
||||||
.Where(f => list.Contains(f.Id)).ToListAsync();
|
.Where(f => list.Contains(f.Id)).ToListAsync();
|
||||||
|
|
||||||
_mapper.ToMapList(entitys, res);
|
_mapper.ToMapList(entitys, res);
|
||||||
_mapper.ToMapList(entitys.SelectMany(s => s.Details).ToList(), res.SelectMany(s => s.Details).ToList());
|
_mapper.ToMapList(entitys.SelectMany(s => s.Details).ToList(), res.SelectMany(s => s.Details).ToList());
|
||||||
|
_mapper.ToMapList(entitys.SelectMany(s => s.Details).SelectMany(s => s.ErpDetails).ToList(), res.SelectMany(s => s.Details).SelectMany(s => s.ErpDetails).ToList());
|
||||||
await _context.SaveChangesAsync();
|
await _context.SaveChangesAsync();
|
||||||
if (_transaction != null)
|
if (_transaction != null)
|
||||||
_transaction.Commit();
|
_transaction.Commit();
|
||||||
@@ -223,7 +219,7 @@ namespace WMS.Web.Repositories
|
|||||||
public async Task<List<OutStock>> GetEntityList(List<int> ids)
|
public async Task<List<OutStock>> GetEntityList(List<int> ids)
|
||||||
{
|
{
|
||||||
var res = await _context.OutStock
|
var res = await _context.OutStock
|
||||||
.Include(s => s.Details)
|
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
|
||||||
.Where(f => ids.Contains(f.Id))
|
.Where(f => ids.Contains(f.Id))
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
@@ -244,12 +240,13 @@ namespace WMS.Web.Repositories
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var res = await _context.OutStock
|
var res = await _context.OutStock
|
||||||
.Include(s => s.Details)
|
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
|
||||||
.FirstOrDefaultAsync(f => f.Id == entity.Id);
|
.FirstOrDefaultAsync(f => f.Id == entity.Id);
|
||||||
if (res == null) return null;
|
if (res == null) return null;
|
||||||
|
|
||||||
_mapper.Map(entity, res);
|
_mapper.Map(entity, res);
|
||||||
_mapper.ToMapList(entity.Details, res.Details);
|
_mapper.ToMapList(entity.Details, res.Details);
|
||||||
|
_mapper.ToMapList(entity.Details.SelectMany(s => s.ErpDetails).ToList(), res.Details.SelectMany(s => s.ErpDetails).ToList());
|
||||||
await _context.SaveChangesAsync();
|
await _context.SaveChangesAsync();
|
||||||
|
|
||||||
if (_transaction != null)
|
if (_transaction != null)
|
||||||
@@ -272,7 +269,7 @@ namespace WMS.Web.Repositories
|
|||||||
public async Task<OutStock> GetByTaskId(int taskId)
|
public async Task<OutStock> GetByTaskId(int taskId)
|
||||||
{
|
{
|
||||||
var res = await _context.OutStock
|
var res = await _context.OutStock
|
||||||
.Include(s => s.Details)
|
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
|
||||||
.FirstOrDefaultAsync(f => taskId == f.TaskId);
|
.FirstOrDefaultAsync(f => taskId == f.TaskId);
|
||||||
|
|
||||||
return res.Clone();
|
return res.Clone();
|
||||||
|
|||||||
@@ -125,12 +125,12 @@ namespace WMS.Web.Repositories
|
|||||||
List<int> list = entitys.Select(s => s.Id).ToList();
|
List<int> list = entitys.Select(s => s.Id).ToList();
|
||||||
|
|
||||||
var res = await _context.OutStockTask
|
var res = await _context.OutStockTask
|
||||||
.Include(s => s.Details)
|
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
|
||||||
.Where(f => list.Contains(f.Id)).ToListAsync();
|
.Where(f => list.Contains(f.Id)).ToListAsync();
|
||||||
|
|
||||||
_mapper.ToMapList(entitys, res);
|
_mapper.ToMapList(entitys, res);
|
||||||
_mapper.ToMapList(entitys.SelectMany(s => s.Details).ToList(), res.SelectMany(s => s.Details).ToList());
|
_mapper.ToMapList(entitys.SelectMany(s => s.Details).ToList(), res.SelectMany(s => s.Details).ToList());
|
||||||
|
_mapper.ToMapList(entitys.SelectMany(s => s.Details).SelectMany(s => s.ErpDetails).ToList(), res.SelectMany(s => s.Details).SelectMany(s => s.ErpDetails).ToList());
|
||||||
await _context.SaveChangesAsync();
|
await _context.SaveChangesAsync();
|
||||||
if (_transaction != null)
|
if (_transaction != null)
|
||||||
_transaction.Commit();
|
_transaction.Commit();
|
||||||
@@ -152,7 +152,7 @@ namespace WMS.Web.Repositories
|
|||||||
public async Task<OutStockTask> Get(int id)
|
public async Task<OutStockTask> Get(int id)
|
||||||
{
|
{
|
||||||
var res = await _context.OutStockTask
|
var res = await _context.OutStockTask
|
||||||
.Include(s => s.Details)
|
.Include(s => s.Details).ThenInclude(x=>x.ErpDetails)
|
||||||
.FirstOrDefaultAsync(f => id == f.Id);
|
.FirstOrDefaultAsync(f => id == f.Id);
|
||||||
|
|
||||||
return res.Clone();
|
return res.Clone();
|
||||||
@@ -188,12 +188,13 @@ namespace WMS.Web.Repositories
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var res = await _context.OutStockTask
|
var res = await _context.OutStockTask
|
||||||
.Include(s => s.Details)
|
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
|
||||||
.FirstOrDefaultAsync(f => f.Id == entity.Id);
|
.FirstOrDefaultAsync(f => f.Id == entity.Id);
|
||||||
if (res == null) return null;
|
if (res == null) return null;
|
||||||
|
|
||||||
_mapper.Map(entity, res);
|
_mapper.Map(entity, res);
|
||||||
_mapper.ToMapList(entity.Details, res.Details);
|
_mapper.ToMapList(entity.Details, res.Details);
|
||||||
|
_mapper.ToMapList(entity.Details.SelectMany(s => s.ErpDetails).ToList(), res.Details.SelectMany(s => s.ErpDetails).ToList());
|
||||||
await _context.SaveChangesAsync();
|
await _context.SaveChangesAsync();
|
||||||
|
|
||||||
if (_transaction != null)
|
if (_transaction != null)
|
||||||
@@ -216,17 +217,13 @@ namespace WMS.Web.Repositories
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<(List<OutStockTaskQueryInfoResponse> list, int total)> GetListAsync(OutStockTaskQueryRequest dto)
|
public async Task<(List<OutStockTaskQueryInfoResponse> list, int total)> GetListAsync(OutStockTaskQueryRequest dto)
|
||||||
{
|
{
|
||||||
List<int> ids = new List<int>();
|
|
||||||
if (!string.IsNullOrEmpty(dto.SourceBillNo))
|
|
||||||
ids = await _context.OutStockTaskDetails.FromSqlRaw($"SELECT Id FROM t_erp_outstock_task_details WHERE SourceBillNo like '%{dto.SourceBillNo}%'").Select(s => s.Id).ToListAsync();
|
|
||||||
|
|
||||||
|
|
||||||
#region erp基础资料
|
#region erp基础资料
|
||||||
List<int> mIds = new List<int>();
|
List<int> mIds = new List<int>();
|
||||||
var materials_result = await _erpService.BillQueryForMaterial();
|
var materials_result = await _erpService.BillQueryForMaterial();
|
||||||
if (!materials_result.IsSuccess)
|
if (!materials_result.IsSuccess)
|
||||||
return (new List<OutStockTaskQueryInfoResponse>(), 0);
|
return (new List<OutStockTaskQueryInfoResponse>(), 0);
|
||||||
var materials = materials_result.Data.ToList();
|
var materials = materials_result.Data.ToList();
|
||||||
|
//var materials =new List<ErpMaterialDto>();
|
||||||
//物料集合;模糊查询后的物料集合
|
//物料集合;模糊查询后的物料集合
|
||||||
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
if (!string.IsNullOrEmpty(dto.MaterialNumber))
|
||||||
{
|
{
|
||||||
@@ -247,7 +244,7 @@ namespace WMS.Web.Repositories
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
var query = _context.OutStockTaskDetails
|
var query = _context.OutStockTaskDetails.Include(x => x.ErpDetails)
|
||||||
.GroupJoin(_context.OutStockTask, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
|
.GroupJoin(_context.OutStockTask, 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 })
|
||||||
.OrderByDescending(o => o.order.Id)
|
.OrderByDescending(o => o.order.Id)
|
||||||
@@ -267,8 +264,8 @@ namespace WMS.Web.Repositories
|
|||||||
query = query.Where(w => mIds.Contains(w.detail.MaterialId));
|
query = query.Where(w => mIds.Contains(w.detail.MaterialId));
|
||||||
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 (ids.Count() != 0)
|
if (!string.IsNullOrEmpty(dto.SourceBillNo))
|
||||||
query = query.Where(w => ids.Contains(w.detail.Id));
|
query = query.Where(w => w.detail.ErpDetails.Where(wd => EF.Functions.Like(wd.SourceBillNo, "%" + dto.SourceBillNo + "%")).Select(s => s.DetailId).Contains(w.detail.Id));
|
||||||
if (dto.Type != null)
|
if (dto.Type != null)
|
||||||
query = query.Where(w => w.order.Type == (OutStockType)dto.Type);
|
query = query.Where(w => w.order.Type == (OutStockType)dto.Type);
|
||||||
if (dto.Status != null)
|
if (dto.Status != null)
|
||||||
@@ -295,8 +292,8 @@ namespace WMS.Web.Repositories
|
|||||||
OutStockBeginTime = s.detail.OutStockBeginTime.DateToStringSeconds(),
|
OutStockBeginTime = s.detail.OutStockBeginTime.DateToStringSeconds(),
|
||||||
OutStockEndTime = s.detail.OutStockEndTime.DateToStringSeconds(),
|
OutStockEndTime = s.detail.OutStockEndTime.DateToStringSeconds(),
|
||||||
Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.detail.StockCode),
|
Stock = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, s.detail.StockCode),
|
||||||
SourceBillNo = string.Join(",", s.detail.SourceBillNos),
|
SourceBillNo = string.Join(",", s.detail.ErpDetails.Select(s => s.SourceBillNo)),
|
||||||
SaleBillNo = string.Join(",", s.detail.SaleBillNos),
|
SaleBillNo = string.Join(",", s.detail.ErpDetails.Select(s => s.SaleBillNo)),
|
||||||
DeliveryOrg = _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId),
|
DeliveryOrg = _erpBasicDataExtendService.GetOrgName(orgs, s.order.DeliveryOrgId),
|
||||||
ReceiptCustomer = s.order.Type == OutStockType.Sal
|
ReceiptCustomer = s.order.Type == OutStockType.Sal
|
||||||
? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId)
|
? _erpBasicDataExtendService.GetCustomerName(customers, s.order.ReceiptCustomerId)
|
||||||
@@ -321,17 +318,22 @@ namespace WMS.Web.Repositories
|
|||||||
if (!materials_result.IsSuccess)
|
if (!materials_result.IsSuccess)
|
||||||
return new List<GetOutStockTaskByNoResponse>();
|
return new List<GetOutStockTaskByNoResponse>();
|
||||||
var materials = materials_result.Data.ToList();
|
var materials = materials_result.Data.ToList();
|
||||||
|
|
||||||
List<int> ids = new List<int>();
|
List<int> ids = new List<int>();
|
||||||
ids = await _context.OutStockTaskDetails.FromSqlRaw($"SELECT Fid FROM t_erp_outstock_task_details WHERE SourceBillNo like '%{billNo}%'").Select(s => s.Id).ToListAsync();
|
|
||||||
|
|
||||||
var list = await _context.OutStockTask.Include(x => x.Details)
|
|
||||||
|
var list = await _context.OutStockTask.Include(x => x.Details).ThenInclude(s => s.ErpDetails)
|
||||||
.Where(f => (EF.Functions.Like(f.BillNo, "%" + billNo + "%") ||
|
.Where(f => (EF.Functions.Like(f.BillNo, "%" + billNo + "%") ||
|
||||||
ids.Contains(f.Id)) &&
|
f.Details.SelectMany(s => s.ErpDetails).Where(w => EF.Functions.Like(w.SourceBillNo, "%" + billNo + "%")).Any()) &&
|
||||||
(f.Status == OutStockStatus.Part || f.Status == OutStockStatus.Wait))
|
(f.Status == OutStockStatus.Part || f.Status == OutStockStatus.Wait))
|
||||||
.OrderByDescending(o => o.Id)
|
.OrderByDescending(o => o.Id)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
var response = _mapper.Map<List<GetOutStockTaskByNoResponse>>(list);
|
var response = _mapper.Map<List<GetOutStockTaskByNoResponse>>(list);
|
||||||
|
foreach (var r in response)
|
||||||
|
{
|
||||||
|
var entity = list.FirstOrDefault(f => f.Id == r.Id);
|
||||||
|
r.StockCode = entity.Details.First().StockCode;
|
||||||
|
r.StockName = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, r.StockCode);
|
||||||
|
}
|
||||||
//获取物料信息 显示物料三件套
|
//获取物料信息 显示物料三件套
|
||||||
foreach (var r in response.SelectMany(s => s.details))
|
foreach (var r in response.SelectMany(s => s.details))
|
||||||
{
|
{
|
||||||
@@ -354,13 +356,15 @@ namespace WMS.Web.Repositories
|
|||||||
return new GetOutStockTaskByNoResponse();
|
return new GetOutStockTaskByNoResponse();
|
||||||
var materials = materials_result.Data.ToList();
|
var materials = materials_result.Data.ToList();
|
||||||
|
|
||||||
var entity = await _context.OutStockTask.Include(x => x.Details)
|
var entity = await _context.OutStockTask.Include(x => x.Details).ThenInclude(s => s.ErpDetails)
|
||||||
.FirstOrDefaultAsync(f => f.BillNo.Equals(billNo) &&
|
.FirstOrDefaultAsync(f => f.BillNo.Equals(billNo) &&
|
||||||
(f.Status == OutStockStatus.Part || f.Status == OutStockStatus.Wait));
|
(f.Status == OutStockStatus.Part || f.Status == OutStockStatus.Wait));
|
||||||
|
|
||||||
if (entity == null) return new GetOutStockTaskByNoResponse();
|
if (entity == null) return new GetOutStockTaskByNoResponse();
|
||||||
|
|
||||||
var response = _mapper.Map<GetOutStockTaskByNoResponse>(entity);
|
var response = _mapper.Map<GetOutStockTaskByNoResponse>(entity);
|
||||||
|
response.StockCode = entity.Details.First().StockCode;
|
||||||
|
response.StockName = _singleDataService.GetSingleData(SingleAction.Stocks, _loginRepositories.CompanyId, response.StockCode);
|
||||||
//获取物料信息 显示物料三件套
|
//获取物料信息 显示物料三件套
|
||||||
foreach (var r in response.details)
|
foreach (var r in response.details)
|
||||||
{
|
{
|
||||||
@@ -372,26 +376,15 @@ namespace WMS.Web.Repositories
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 单号搜索
|
/// 单号精确匹配
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sourceBillNos"></param>
|
/// <param name="sourceBillNos"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<List<OutStockTask>> GetListBySourceBillNo(List<string> sourcebillNos)
|
public async Task<List<OutStockTask>> GetListBySourceBillNo(List<string> sourcebillNos)
|
||||||
{
|
{
|
||||||
List<int> ids = new List<int>();
|
|
||||||
string str=$"SELECT Fid FROM t_erp_outstock_task_details WHERE ";
|
|
||||||
for (int i=0;i<sourcebillNos.Count();i++)
|
|
||||||
{
|
|
||||||
if (i == 0)
|
|
||||||
str += $" SourceBillNo like '%{sourcebillNos[i]}%'";
|
|
||||||
else
|
|
||||||
str += $" or SourceBillNo like '%{sourcebillNos[i]}%'";
|
|
||||||
}
|
|
||||||
ids = await _context.OutStockTaskDetails.FromSqlRaw(str).Select(s => s.Id).ToListAsync();
|
|
||||||
|
|
||||||
var entitys = await _context.OutStockTask
|
var entitys = await _context.OutStockTask
|
||||||
.Include(s => s.Details)
|
.Include(s => s.Details).ThenInclude(s => s.ErpDetails)
|
||||||
.Where(w => ids.Contains(w.Id))
|
.Where(w => w.Details.SelectMany(s => s.ErpDetails).Where(wd => sourcebillNos.Contains(wd.SourceBillNo)).Any())
|
||||||
.OrderByDescending(o => o.Id)
|
.OrderByDescending(o => o.Id)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
@@ -436,12 +429,9 @@ namespace WMS.Web.Repositories
|
|||||||
|
|
||||||
public async Task<List<string>> GetOutStockTaskNosByNo(string billNo)
|
public async Task<List<string>> GetOutStockTaskNosByNo(string billNo)
|
||||||
{
|
{
|
||||||
List<int> ids = new List<int>();
|
return await _context.OutStockTask.Include(x => x.Details).ThenInclude(s => s.ErpDetails)
|
||||||
ids = await _context.OutStockTaskDetails.FromSqlRaw($"SELECT Fid FROM t_erp_outstock_task_details WHERE SourceBillNo like '%{billNo}%'").Select(s => s.Id).ToListAsync();
|
|
||||||
|
|
||||||
return await _context.OutStockTask.Include(x => x.Details)
|
|
||||||
.Where(f => (EF.Functions.Like(f.BillNo, "%" + billNo + "%") ||
|
.Where(f => (EF.Functions.Like(f.BillNo, "%" + billNo + "%") ||
|
||||||
ids.Contains(f.Id)) &&
|
f.Details.SelectMany(s => s.ErpDetails).Where(w => EF.Functions.Like(w.SourceBillNo, "%" + billNo + "%")).Any()) &&
|
||||||
(f.Status == OutStockStatus.Part || f.Status == OutStockStatus.Wait))
|
(f.Status == OutStockStatus.Part || f.Status == OutStockStatus.Wait))
|
||||||
.OrderByDescending(o => o.Id)
|
.OrderByDescending(o => o.Id)
|
||||||
.Select(s => s.BillNo)
|
.Select(s => s.BillNo)
|
||||||
@@ -458,11 +448,16 @@ namespace WMS.Web.Repositories
|
|||||||
{
|
{
|
||||||
return await GetListAsync(dto);
|
return await GetListAsync(dto);
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 根据订单号精确搜索
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="billNos"></param>
|
||||||
|
/// <returns></returns>
|
||||||
public async Task<List<OutStockTask>> GetListByBillNo(List<string> billNos)
|
public async Task<List<OutStockTask>> GetListByBillNo(List<string> billNos)
|
||||||
{
|
{
|
||||||
var entitys = await _context.OutStockTask
|
var entitys = await _context.OutStockTask
|
||||||
.Include(s => s.Details)
|
.Include(s => s.Details)
|
||||||
|
.ThenInclude(s => s.ErpDetails)
|
||||||
.Where(w => billNos.Contains(w.BillNo))
|
.Where(w => billNos.Contains(w.BillNo))
|
||||||
.OrderByDescending(o => o.Id)
|
.OrderByDescending(o => o.Id)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|||||||
Reference in New Issue
Block a user