This commit is contained in:
tongfei
2023-11-22 11:06:27 +08:00
12 changed files with 77 additions and 72 deletions

View File

@@ -47,6 +47,11 @@ namespace WMS.Web.Domain.Entitys
[Column("ReceiptCustomerId")]
public int ReceiptCustomerId { get; set; }
/// <summary>
/// 仓库
///</summary>
[Column("StockCode")]
public string StockCode { get; set; }
/// <summary>
/// 创建人
/// </summary>
[Column("CreatorId")]

View File

@@ -35,16 +35,12 @@ namespace WMS.Web.Domain.Entitys
/// </summary>
[Column("SerialNumbers")]
public List<string> SerialNumbers { get; set; } = new List<string>();
/// <summary>
/// 仓库
///</summary>
[Column("StockCode")]
public string StockCode { get; set; }
/// <summary>
/// 仓位
///</summary>
[Column("SubStockId")]
public string SubStockId { get; set; }
///// <summary>
///// 仓位
/////</summary>
//[Column("SubStockId")]
//public string SubStockId { get; set; }
/// <summary>
/// 出库数量
///</summary>

View File

@@ -39,6 +39,11 @@ namespace WMS.Web.Domain.Entitys
[Column("ReceiptCustomerId")]
public int ReceiptCustomerId { get; set; }
/// <summary>
/// 仓库ID
///</summary>
[Column("StockCode")]
public string StockCode { get; set; }
/// <summary>
/// 单据状态
/// </summary>
[Column("Status")]
@@ -67,10 +72,10 @@ namespace WMS.Web.Domain.Entitys
/// 明细
/// </summary>
public List<OutStockTaskDetails> Details = new List<OutStockTaskDetails>();
public void Create(OutStockType type, int deliveryOrgId, int receiptCustomerId, DateTime createTime)
public void Create(OutStockType type,string stockCode, int deliveryOrgId, int receiptCustomerId, DateTime createTime)
{
this.Type = type;
//this.SourceBillNos.Add(sourceBillNo);
this.StockCode = stockCode;
this.DeliveryOrgId = deliveryOrgId;
this.ReceiptCustomerId = receiptCustomerId;
this.CreateTime = createTime;
@@ -175,7 +180,7 @@ namespace WMS.Web.Domain.Entitys
if (list.GroupBy(g => g.DeliveryOrgId).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
if (list.GroupBy(g => g.ReceiptCustomerId).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
var details = list.SelectMany(s => s.Details).ToList();
if (details.GroupBy(g => g.StockCode).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
if (list.GroupBy(g => g.StockCode).Count() > 1) return Result.ReFailure(ResultCodes.MergeStatusError);
List<OutStockTaskDetails> details_new = new List<OutStockTaskDetails>();
//清空数据绑定

View File

@@ -32,16 +32,12 @@ namespace WMS.Web.Domain.Entitys
///</summary>
[Column("MaterialId")]
public int MaterialId { get; set; }
/// <summary>
/// 仓库ID
///</summary>
[Column("StockCode")]
public string StockCode { get; set; }
/// <summary>
/// 仓位ID
///</summary>
[Column("SubStockId")]
public int SubStockId { get; set; }
///// <summary>
///// 仓位ID
/////</summary>
//[Column("SubStockId")]
//public int SubStockId { get; set; }
/// <summary>
/// 应出库数量
///</summary>

View File

@@ -114,8 +114,8 @@ namespace WMS.Web.Domain.Services
{
BoxId = boxId,
InventoryInOutMethod = dto.Method,
StockCode = outStockTask.Details.First().StockCode,
SubStockId = outStockTask.Details.First().SubStockId,
StockCode = outStockTask.StockCode,
SubStockId = 0,// outStockTask.Details.First().SubStockId,
Details = inventoryDetail
};
inventoryList.Add(inventory);

View File

@@ -106,9 +106,11 @@ namespace WMS.Web.Domain.Services
foreach (var outStockTask in data_list)
{
var sourcNos = outStockTask.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo).ToList();
var erps = erp_list.Where(w => sourcNos.Contains(w.SourceBillNo)).ToList();
//仓库不同 拆分成不同的任务单
var erps = erp_list.Where(w => sourcNos.Contains(w.SourceBillNo) && outStockTask.StockCode.Equals(w.StockCode)).ToList();
foreach (var erp in erps)
{
//仓库不同 拆分成不同的
var detail = outStockTask.Details.FirstOrDefault(w => w.MaterialId == erp.MaterialId);
if (detail == null)
{
@@ -120,19 +122,17 @@ namespace WMS.Web.Domain.Services
}
else
{
//找到物料明细下面对应的来源单明细 然后修改
var erpDetail = detail.ErpDetails.FirstOrDefault(f => f.SourceBillNo.Equals(erp.SourceBillNo));
//找到物料明细下面对应的金蝶明细Id 然后修改(跟金蝶明细一一对应)
var erpDetail = detail.ErpDetails.FirstOrDefault(f => f.Erp_DetailId == erp.Erp_DetailId);
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);
}
detail.AccruedQty = detail.ErpDetails.Sum(s => s.AccruedQty);
}
//操作完后剔除
erp_removeList.Add(erp);
@@ -153,21 +153,26 @@ namespace WMS.Web.Domain.Services
if (erp_list.Count != 0)
{
var add_entitys = new List<OutStockTask>();
var billNos = erp_list.GroupBy(x => x.SourceBillNo).Select(x => x.Key).ToList();
//根据来源订单号和仓库分组 一个来源订单号和一个仓库 对应一个任务单
var billNos = erp_list.GroupBy(x => (x.SourceBillNo, x.StockCode)).Select(x => x.Key).ToList();
foreach (var item in billNos)
{
var e = erp_list.FirstOrDefault(f => f.SourceBillNo == item);
var eList = erp_list.Where(f => f.SourceBillNo == item.SourceBillNo && f.StockCode == item.StockCode).ToList();
var e = eList.First();
var entity = new OutStockTask();
entity.Create((OutStockType)e.Type, e.DeliveryOrgId, e.ReceiptCustomerId, (DateTime)e.CreateTime);
entity.Create((OutStockType)e.Type, e.StockCode, e.DeliveryOrgId, e.ReceiptCustomerId, (DateTime)e.CreateTime);
//找到当前对应来源单据编号的集合数据
var current_erp_details = erp_list.Where(x => x.SourceBillNo == item).ToList();
var mIds = eList.GroupBy(g => g.MaterialId).Select(s => s.Key).ToList();
//给到dto的实体明细中
foreach (var erp in current_erp_details)
foreach (var mid in mIds)
{
var detail = _mapper.Map<OutStockTaskDetails>(erp);
var erpDetail = _mapper.Map<OutStockTaskErpDetails>(erp);
detail.ErpDetails.Add(erpDetail);
var emList = eList.Where(w => w.MaterialId == mid).ToList();
var detail = _mapper.Map<OutStockTaskDetails>(emList.First());
var erpDetail = _mapper.Map<List<OutStockTaskErpDetails>>(emList);
detail.ErpDetails.AddRange(erpDetail);
detail.AccruedQty = detail.ErpDetails.Sum(s => s.AccruedQty);
entity.Details.Add(detail);
}
add_entitys.Add(entity);

View File

@@ -1465,7 +1465,7 @@ namespace WMS.Web.Domain.Services.Public
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.STK_TransferDirect.ToString());
param.FieldKeys = "FBillNo,'',FStockOutOrgId,FStockOrgId,FMaterialID,FSrcStockId.FNumber,FSrcStockLocId,FQty,FNoteEntry,FCreateDate";
param.FieldKeys = "FBillNo,'',FStockOutOrgId,FStockOrgId,FMaterialID,FSrcStockId.FNumber,FSrcStockLocId,FQty,FNoteEntry,FCreateDate,FBillEntry_FEntryID";
param.Limit = 10;
//查询条件:备注其中的条件值以金蝶的值为准!!!
//1.创建时间在两天前和当天时间之间
@@ -1507,6 +1507,7 @@ namespace WMS.Web.Domain.Services.Public
lis.Remark = item[8];
lis.CreateTime = Convert.ToDateTime(item[9]);
lis.Type = (int)OutStockType.Stkdirecttransfers;
lis.Erp_DetailId = Convert.ToInt32(item[10]);
erp_list.Add(lis);
}
return ResultList<ErpDeliveryNoticeOutStockResultDto>.ReSuccess(erp_list);
@@ -1543,7 +1544,7 @@ namespace WMS.Web.Domain.Services.Public
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.STK_TRANSFEROUT.ToString());
param.FieldKeys = "FBillNo,'',FStockOrgID,FStockInOrgID,FMaterialID,FSrcStockID.FNumber,FSrcStockLocId,FQty,FEntryNote,FCreateDate";
param.FieldKeys = "FBillNo,'',FStockOrgID,FStockInOrgID,FMaterialID,FSrcStockID.FNumber,FSrcStockLocId,FQty,FEntryNote,FCreateDate,FSTKTRSOUTENTRY_FEntryID";
param.Limit = 10;
//查询条件:备注其中的条件值以金蝶的值为准!!!
//1.创建时间在两天前和当天时间之间
@@ -1585,6 +1586,7 @@ namespace WMS.Web.Domain.Services.Public
lis.Remark = item[8];
lis.CreateTime = Convert.ToDateTime(item[9]);
lis.Type = (int)OutStockType.StktransferInst;
lis.Erp_DetailId = Convert.ToInt32(item[10]);
erp_list.Add(lis);
}
return ResultList<ErpDeliveryNoticeOutStockResultDto>.ReSuccess(erp_list);
@@ -1621,7 +1623,7 @@ namespace WMS.Web.Domain.Services.Public
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.STK_AssembledApp.ToString());
param.FieldKeys = "FBillNo,'','0','0',FMaterialID,FStockID.FNumber,FStockLocId,FQty,FDescription,FCreateDate";
param.FieldKeys = "FBillNo,'','0','0',FMaterialID,FStockID.FNumber,FStockLocId,FQty,FDescription,FCreateDate,FEntity_FEntryID";
param.Limit = 10;
//查询条件:备注其中的条件值以金蝶的值为准!!!
//1.创建时间在两天前和当天时间之间
@@ -1663,6 +1665,7 @@ namespace WMS.Web.Domain.Services.Public
lis.Remark = item[8];
lis.CreateTime = Convert.ToDateTime(item[9]);
lis.Type = (int)OutStockType.Assembled;
lis.Erp_DetailId = Convert.ToInt32(item[10]);
erp_list.Add(lis);
}
return ResultList<ErpDeliveryNoticeOutStockResultDto>.ReSuccess(erp_list);
@@ -1699,7 +1702,7 @@ namespace WMS.Web.Domain.Services.Public
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.STK_MisDelivery.ToString());
param.FieldKeys = "FBillNo,'',FStockOrgId,FPickOrgId,FMaterialId,FStockId.FNumber,FStockLocId ,FQty,FEntryNote,FCreateDate";
param.FieldKeys = "FBillNo,'',FStockOrgId,FPickOrgId,FMaterialId,FStockId.FNumber,FStockLocId ,FQty,FEntryNote,FCreateDate,FEntity_FEntryID";
param.Limit = 10;
//查询条件:备注其中的条件值以金蝶的值为准!!!
//1.创建时间在两天前和当天时间之间
@@ -1741,6 +1744,7 @@ namespace WMS.Web.Domain.Services.Public
lis.Remark = item[8];
lis.CreateTime = Convert.ToDateTime(item[9]);
lis.Type = (int)OutStockType.Miscellaneous;
lis.Erp_DetailId = Convert.ToInt32(item[10]);
erp_list.Add(lis);
}
return ResultList<ErpDeliveryNoticeOutStockResultDto>.ReSuccess(erp_list);
@@ -1777,7 +1781,7 @@ namespace WMS.Web.Domain.Services.Public
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.STK_AssembledApp.ToString());
param.FieldKeys = "FBillNo,'',FSubProOwnerIdH,FOwnerIdHead,FMaterialIDSETY,FStockIDSETY.FNumber,FStockLocIdSETY,FQtySETY,FDescriptionSETY,FCreateDate";
param.FieldKeys = "FBillNo,'',FSubProOwnerIdH,FOwnerIdHead,FMaterialIDSETY,FStockIDSETY.FNumber,FStockLocIdSETY,FQtySETY,FDescriptionSETY,FCreateDate,FSubEntity_FDetailID";
param.Limit = 10;
//查询条件:备注其中的条件值以金蝶的值为准!!!
//1.创建时间在两天前和当天时间之间
@@ -1819,6 +1823,7 @@ namespace WMS.Web.Domain.Services.Public
lis.Remark = item[8];
lis.CreateTime = Convert.ToDateTime(item[9]);
lis.Type = (int)OutStockType.Assembled;
lis.Erp_DetailId = Convert.ToInt32(item[10]);
erp_list.Add(lis);
}
return ResultList<ErpDeliveryNoticeOutStockResultDto>.ReSuccess(erp_list);