分步式调入单-服务
This commit is contained in:
@@ -705,47 +705,47 @@
|
|||||||
明细备注
|
明细备注
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="T:WMS.Web.Core.Dto.Erp.ErptTransferinDto">
|
<member name="T:WMS.Web.Core.Dto.Erp.ErpTransferinDto">
|
||||||
<summary>
|
<summary>
|
||||||
erp:分步式调入单-响应对象
|
erp:分步式调入单-响应对象
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.Erp.ErptTransferinDto.BillNo">
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpTransferinDto.BillNo">
|
||||||
<summary>
|
<summary>
|
||||||
单据编号
|
单据编号
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.Erp.ErptTransferinDto.StockOrgId">
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpTransferinDto.StockOrgId">
|
||||||
<summary>
|
<summary>
|
||||||
库存组织
|
库存组织
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.Erp.ErptTransferinDto.MaterialId">
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpTransferinDto.MaterialId">
|
||||||
<summary>
|
<summary>
|
||||||
物料ID
|
物料ID
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.Erp.ErptTransferinDto.DestStockId">
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpTransferinDto.DestStockId">
|
||||||
<summary>
|
<summary>
|
||||||
调入仓库ID
|
调入仓库ID
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.Erp.ErptTransferinDto.DestStockCode">
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpTransferinDto.DestStockCode">
|
||||||
<summary>
|
<summary>
|
||||||
调入仓库code
|
调入仓库code
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.Erp.ErptTransferinDto.Qty">
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpTransferinDto.Qty">
|
||||||
<summary>
|
<summary>
|
||||||
调入数量
|
调入数量
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.Erp.ErptTransferinDto.Remark">
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpTransferinDto.Remark">
|
||||||
<summary>
|
<summary>
|
||||||
明细备注
|
明细备注
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="P:WMS.Web.Core.Dto.Erp.ErptTransferinDto.CreateTime">
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpTransferinDto.CreateTime">
|
||||||
<summary>
|
<summary>
|
||||||
创建时间
|
创建时间
|
||||||
</summary>
|
</summary>
|
||||||
|
|||||||
@@ -1831,6 +1831,14 @@
|
|||||||
<param name="isTransaction"></param>
|
<param name="isTransaction"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WMS.Web.Domain.IService.IInStockTaskService.SysnTransferin(System.Collections.Generic.List{System.String},System.Boolean)">
|
||||||
|
<summary>
|
||||||
|
同步:分步式入库单据
|
||||||
|
</summary>
|
||||||
|
<param name="billNos"></param>
|
||||||
|
<param name="isTransaction"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:WMS.Web.Domain.IService.IOutStockService">
|
<member name="T:WMS.Web.Domain.IService.IOutStockService">
|
||||||
<summary>
|
<summary>
|
||||||
出库服务
|
出库服务
|
||||||
@@ -2756,6 +2764,14 @@
|
|||||||
<param name="isTransaction"></param>
|
<param name="isTransaction"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WMS.Web.Domain.Services.InStockTaskService.SysnTransferin(System.Collections.Generic.List{System.String},System.Boolean)">
|
||||||
|
<summary>
|
||||||
|
同步:分步式调入单
|
||||||
|
</summary>
|
||||||
|
<param name="billNos"></param>
|
||||||
|
<param name="isTransaction"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:WMS.Web.Domain.Services.OutStockService">
|
<member name="T:WMS.Web.Domain.Services.OutStockService">
|
||||||
<summary>
|
<summary>
|
||||||
出库服务
|
出库服务
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ namespace WMS.Web.Core.Dto.Erp
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// erp:分步式调入单-响应对象
|
/// erp:分步式调入单-响应对象
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ErptTransferinDto
|
public class ErpTransferinDto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 单据编号
|
/// 单据编号
|
||||||
@@ -48,5 +48,13 @@ namespace WMS.Web.Domain.IService
|
|||||||
/// <param name="isTransaction"></param>
|
/// <param name="isTransaction"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<Result> SysnTransferDirect(List<string> billNos = null, bool isTransaction = true);
|
Task<Result> SysnTransferDirect(List<string> billNos = null, bool isTransaction = true);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 同步:分步式入库单据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="billNos"></param>
|
||||||
|
/// <param name="isTransaction"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<Result> SysnTransferin(List<string> billNos = null, bool isTransaction = true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ namespace WMS.Web.Domain.IService.Public
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sourceBillNos"></param>
|
/// <param name="sourceBillNos"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<ResultList<ErptTransferinDto>> BillQueryForTransferin(List<string> sourceBillNos = null);
|
Task<ResultList<ErpTransferinDto>> BillQueryForTransferin(List<string> sourceBillNos = null);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// erp:单据查询-出库单
|
/// erp:单据查询-出库单
|
||||||
|
|||||||
@@ -78,6 +78,18 @@ namespace WMS.Web.Domain.Mappers
|
|||||||
|
|
||||||
CreateMap<ErpTransferDirectDto, InStockTask>()
|
CreateMap<ErpTransferDirectDto, InStockTask>()
|
||||||
.ForMember(x => x.SourceBillNo, ops => ops.MapFrom(x => x.BillNo))
|
.ForMember(x => x.SourceBillNo, ops => ops.MapFrom(x => x.BillNo))
|
||||||
|
.ForMember(x => x.CreateTime, ops => ops.MapFrom(x => x.CreateTime));
|
||||||
|
|
||||||
|
//ERP分步式入库单
|
||||||
|
CreateMap<ErpTransferinDto, InStockTaskDetails>()
|
||||||
|
.ForMember(x => x.OrgId, ops => ops.MapFrom(x => x.StockOrgId))
|
||||||
|
.ForMember(x => x.MaterialId, ops => ops.MapFrom(x => x.MaterialId))
|
||||||
|
.ForMember(x => x.StockCode, ops => ops.MapFrom(x => x.DestStockCode))
|
||||||
|
.ForMember(x => x.AccruedQty, ops => ops.MapFrom(x => x.Qty))
|
||||||
|
.ForMember(x => x.Remark, ops => ops.MapFrom(x => x.Remark));
|
||||||
|
|
||||||
|
CreateMap<ErpTransferinDto, InStockTask>()
|
||||||
|
.ForMember(x => x.SourceBillNo, ops => ops.MapFrom(x => x.BillNo))
|
||||||
.ForMember(x => x.CreateTime, ops => ops.MapFrom(x => x.CreateTime));
|
.ForMember(x => x.CreateTime, ops => ops.MapFrom(x => x.CreateTime));
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
@@ -355,5 +355,80 @@ namespace WMS.Web.Domain.Services
|
|||||||
|
|
||||||
return Result.ReSuccess();
|
return Result.ReSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 同步:分步式调入单
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="billNos"></param>
|
||||||
|
/// <param name="isTransaction"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<Result> SysnTransferin(List<string> billNos = null, bool isTransaction = true)
|
||||||
|
{
|
||||||
|
//1.获取金蝶数据:分步式入库订单数据
|
||||||
|
var erp_result = await _erpService.BillQueryForTransferin(billNos);
|
||||||
|
if (!erp_result.IsSuccess)
|
||||||
|
return Result.ReFailure(erp_result.Message, erp_result.Status);
|
||||||
|
var erp_list = erp_result.Data;
|
||||||
|
|
||||||
|
//2.通过单据编号找到wms系统现有的任务单;并修改
|
||||||
|
var erp_removeList = new List<ErpTransferinDto>();
|
||||||
|
var SourceBillNo_list = erp_list.GroupBy(x => x.BillNo).Select(x => x.Key).ToList();
|
||||||
|
var data_list = await _inStockTaskRepositories.GetListBy(SourceBillNo_list);
|
||||||
|
if (data_list.Count != 0)
|
||||||
|
{
|
||||||
|
//2.1提取出wms任务单明细信息
|
||||||
|
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();
|
||||||
|
|
||||||
|
//2.1.1对比erp的物料信息
|
||||||
|
var erp_data = erp_list.Where(x => x.BillNo == data.SourceBillNo && x.MaterialId == item.MaterialId).FirstOrDefault();
|
||||||
|
if (erp_data != null)
|
||||||
|
{
|
||||||
|
//2.1.2修改数量
|
||||||
|
item.AccruedQty = erp_data.Qty;
|
||||||
|
erp_removeList.Add(erp_data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//2.2.提交修改
|
||||||
|
var isSuccess = await _inStockTaskRepositories.UpdateRange(data_list, isTransaction);
|
||||||
|
if (!isSuccess)
|
||||||
|
return Result.ReFailure(ResultCodes.DateWriteError);
|
||||||
|
|
||||||
|
//2.3剔除:已修改的单据
|
||||||
|
foreach (var item in erp_removeList)
|
||||||
|
{
|
||||||
|
erp_list.Remove(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//3.wms任务单的来源单据编号不存在于erp中,那么就新增
|
||||||
|
if (erp_list.Count != 0)
|
||||||
|
{
|
||||||
|
var add_entitys = new List<InStockTask>();
|
||||||
|
var current_billNos = erp_list.GroupBy(x => new { x.BillNo, x.CreateTime }).Select(x => new { x.Key.BillNo, x.Key.CreateTime }).ToList();
|
||||||
|
foreach (var item in current_billNos)
|
||||||
|
{
|
||||||
|
var dto = new InStockTask();
|
||||||
|
dto.SourceBillNo = item.BillNo;
|
||||||
|
dto.CreateTime = item.CreateTime;
|
||||||
|
dto.Create(InstockType.StktransferInst);
|
||||||
|
|
||||||
|
//找到当前对应来源单据编号的集合数据
|
||||||
|
var current_erp_details = erp_list.Where(x => x.BillNo == item.BillNo).ToList();
|
||||||
|
//给到dto的实体明细中
|
||||||
|
dto.Details = _mapper.Map<List<InStockTaskDetails>>(current_erp_details);
|
||||||
|
add_entitys.Add(dto);
|
||||||
|
}
|
||||||
|
//3.1提交新增
|
||||||
|
var isSuccess = await _inStockTaskRepositories.AddRange(add_entitys, isTransaction);
|
||||||
|
if (!isSuccess)
|
||||||
|
return Result.ReFailure(ResultCodes.DateWriteError);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Result.ReSuccess();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -457,21 +457,21 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sourceBillNos"></param>
|
/// <param name="sourceBillNos"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<ResultList<ErptTransferinDto>> BillQueryForTransferin(List<string> sourceBillNos = null)
|
public async Task<ResultList<ErpTransferinDto>> BillQueryForTransferin(List<string> sourceBillNos = null)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId);
|
var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId);
|
||||||
if (stocks.Count == 0)
|
if (stocks.Count == 0)
|
||||||
return ResultList<ErptTransferinDto>.ReFailure(ResultCodes.ErpStockNoData);
|
return ResultList<ErpTransferinDto>.ReFailure(ResultCodes.ErpStockNoData);
|
||||||
var stocks_codes = stocks.Select(x => x.Code).ToList();
|
var stocks_codes = stocks.Select(x => x.Code).ToList();
|
||||||
|
|
||||||
|
|
||||||
//1.先登录金蝶-拿到token
|
//1.先登录金蝶-拿到token
|
||||||
var token_result = await this.Init();
|
var token_result = await this.Init();
|
||||||
if (!token_result.IsSuccess)
|
if (!token_result.IsSuccess)
|
||||||
return ResultList<ErptTransferinDto>.ReFailure(token_result);
|
return ResultList<ErpTransferinDto>.ReFailure(token_result);
|
||||||
|
|
||||||
//2.时间条件:可能还有其它条件
|
//2.时间条件:可能还有其它条件
|
||||||
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
|
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
|
||||||
@@ -532,10 +532,10 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
|
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
|
||||||
|
|
||||||
//5.返回数据的组装
|
//5.返回数据的组装
|
||||||
var erp_list = new List<ErptTransferinDto>();
|
var erp_list = new List<ErpTransferinDto>();
|
||||||
foreach (var item in result)
|
foreach (var item in result)
|
||||||
{
|
{
|
||||||
var lis = new ErptTransferinDto();
|
var lis = new ErpTransferinDto();
|
||||||
lis.BillNo = item[0];
|
lis.BillNo = item[0];
|
||||||
lis.StockOrgId = Convert.ToInt32(item[1]);
|
lis.StockOrgId = Convert.ToInt32(item[1]);
|
||||||
lis.MaterialId = Convert.ToInt32(item[2]);
|
lis.MaterialId = Convert.ToInt32(item[2]);
|
||||||
@@ -546,11 +546,11 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
lis.Remark = item[7];
|
lis.Remark = item[7];
|
||||||
erp_list.Add(lis);
|
erp_list.Add(lis);
|
||||||
}
|
}
|
||||||
return ResultList<ErptTransferinDto>.ReSuccess(erp_list);
|
return ResultList<ErpTransferinDto>.ReSuccess(erp_list);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
return ResultList<ErptTransferinDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
|
return ResultList<ErpTransferinDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user