优化接口
This commit is contained in:
Binary file not shown.
@@ -416,5 +416,13 @@ namespace WMS.Web.Api.Controllers
|
|||||||
Console.WriteLine("redis1:" + tt2);
|
Console.WriteLine("redis1:" + tt2);
|
||||||
return Result<bool>.ReSuccess(tt2);
|
return Result<bool>.ReSuccess(tt2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
[Route("lst3")]
|
||||||
|
public async Task<bool> lst3()
|
||||||
|
{
|
||||||
|
var data=await _erpService.BillQueryForPurchaseInStockBy("1541693");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1076,6 +1076,41 @@
|
|||||||
批号
|
批号
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpPurchaseInStockDetailsDto.OrderId">
|
||||||
|
<summary>
|
||||||
|
入库订单ID
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpPurchaseInStockDetailsDto.DocumentStatus">
|
||||||
|
<summary>
|
||||||
|
状态
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpPurchaseInStockDetailsDto.OrderBillNo">
|
||||||
|
<summary>
|
||||||
|
入库单订单号
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpPurchaseInStockDetailsDto.PurchaseBillNo">
|
||||||
|
<summary>
|
||||||
|
采购订单号
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpPurchaseInStockDetailsDto.DetailId">
|
||||||
|
<summary>
|
||||||
|
入库单明细Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpPurchaseInStockDetailsDto.PurchaseDetailId">
|
||||||
|
<summary>
|
||||||
|
采购订单明细Id
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:WMS.Web.Core.Dto.Erp.ErpPurchaseInStockDetailsDto.Qty">
|
||||||
|
<summary>
|
||||||
|
入库数量
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:WMS.Web.Core.Dto.Erp.ErpPushDto">
|
<member name="T:WMS.Web.Core.Dto.Erp.ErpPushDto">
|
||||||
<summary>
|
<summary>
|
||||||
下推
|
下推
|
||||||
|
|||||||
@@ -3917,6 +3917,13 @@
|
|||||||
<param name="id"></param>
|
<param name="id"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForPurchaseInStockBy(System.String)">
|
||||||
|
<summary>
|
||||||
|
|
||||||
|
</summary>
|
||||||
|
<param name="purchaseDetailId"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForPurchaseInStock(System.Collections.Generic.List{System.String})">
|
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForPurchaseInStock(System.Collections.Generic.List{System.String})">
|
||||||
<summary>
|
<summary>
|
||||||
erp:单据查询-采购入库单
|
erp:单据查询-采购入库单
|
||||||
@@ -5156,6 +5163,17 @@
|
|||||||
<param name="billNo"></param>
|
<param name="billNo"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WMS.Web.Domain.Services.InStockService.QueryFirst(WMS.Web.Core.Dto.Erp.ErpPurchaseInStockDetailsDto,System.String,System.String,WMS.Web.Domain.Entitys.InStockErpDetails,WMS.Web.Domain.IService.Public.IErpService)">
|
||||||
|
<summary>
|
||||||
|
金蝶已有的入库单进行不同处理:保存、提交、审核
|
||||||
|
</summary>
|
||||||
|
<param name="currentDet"></param>
|
||||||
|
<param name="formId"></param>
|
||||||
|
<param name="billNo"></param>
|
||||||
|
<param name="erpDetail"></param>
|
||||||
|
<param name="sc_erpService"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:WMS.Web.Domain.Services.InStockTaskBoxService">
|
<member name="T:WMS.Web.Domain.Services.InStockTaskBoxService">
|
||||||
<summary>
|
<summary>
|
||||||
任务单的箱收货记录服务
|
任务单的箱收货记录服务
|
||||||
@@ -6421,6 +6439,36 @@
|
|||||||
出库单
|
出库单
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:WMS.Web.Domain.Values.ErpOrderStatus">
|
||||||
|
<summary>
|
||||||
|
erp订单状态
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:WMS.Web.Domain.Values.ErpOrderStatus.A">
|
||||||
|
<summary>
|
||||||
|
创建
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:WMS.Web.Domain.Values.ErpOrderStatus.B">
|
||||||
|
<summary>
|
||||||
|
审核中
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:WMS.Web.Domain.Values.ErpOrderStatus.C">
|
||||||
|
<summary>
|
||||||
|
已审核
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:WMS.Web.Domain.Values.ErpOrderStatus.D">
|
||||||
|
<summary>
|
||||||
|
重新审核
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:WMS.Web.Domain.Values.ErpOrderStatus.Z">
|
||||||
|
<summary>
|
||||||
|
暂存
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:WMS.Web.Domain.Values.Erp.FormIdParam">
|
<member name="T:WMS.Web.Domain.Values.Erp.FormIdParam">
|
||||||
<summary>
|
<summary>
|
||||||
业务对象表单Id:对应erp的单据表的名称
|
业务对象表单Id:对应erp的单据表的名称
|
||||||
|
|||||||
@@ -68,4 +68,40 @@ namespace WMS.Web.Core.Dto.Erp
|
|||||||
[JsonProperty("FNumber")]
|
[JsonProperty("FNumber")]
|
||||||
public string Number { get; set; }
|
public string Number { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class ErpPurchaseInStockDetailsDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 入库订单ID
|
||||||
|
/// </summary>
|
||||||
|
public string OrderId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 状态
|
||||||
|
/// </summary>
|
||||||
|
public string DocumentStatus { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 入库单订单号
|
||||||
|
/// </summary>
|
||||||
|
public string OrderBillNo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 采购订单号
|
||||||
|
/// </summary>
|
||||||
|
public string PurchaseBillNo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 入库单明细Id
|
||||||
|
/// </summary>
|
||||||
|
public string DetailId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 采购订单明细Id
|
||||||
|
/// </summary>
|
||||||
|
public string PurchaseDetailId { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 入库数量
|
||||||
|
/// </summary>
|
||||||
|
public decimal Qty { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,13 @@ namespace WMS.Web.Domain.IService.Public
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<Result<ErpPurchaseInStockSaveDto>> BillQueryForPurchaseInStock(string id);
|
Task<Result<ErpPurchaseInStockSaveDto>> BillQueryForPurchaseInStock(string id);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="purchaseDetailId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<Result<List<ErpPurchaseInStockDetailsDto>>> BillQueryForPurchaseInStockBy(string purchaseDetailId);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// erp:单据查询-采购入库单
|
/// erp:单据查询-采购入库单
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
// 构建 Redis 锁的值,用于标识锁的持有者
|
// 构建 Redis 锁的值,用于标识锁的持有者
|
||||||
string lockValue = Guid.NewGuid().ToString();
|
string lockValue = Guid.NewGuid().ToString();
|
||||||
// 获取 Redis 锁,设置超时时间为 10 秒
|
// 获取 Redis 锁,设置超时时间为 10 秒
|
||||||
if (await _redisDb.LockTakeAsync(lockKey, lockValue, TimeSpan.FromSeconds(10)))
|
if (await _redisDb.LockTakeAsync(lockKey, lockValue, TimeSpan.FromSeconds(10)))
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -203,7 +203,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
await _redisDb.LockReleaseAsync(lockKey, lockValue);
|
await _redisDb.LockReleaseAsync(lockKey, lockValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return Result.ReFailure(ResultCodes.Concurrent_Instock);
|
return Result.ReFailure(ResultCodes.Concurrent_Instock);
|
||||||
}
|
}
|
||||||
@@ -856,30 +856,50 @@ namespace WMS.Web.Domain.Services
|
|||||||
|
|
||||||
if (erpDetails.Count != 0)
|
if (erpDetails.Count != 0)
|
||||||
{
|
{
|
||||||
foreach (var s in erpDetails)
|
foreach (var det in erpDetails)
|
||||||
{
|
{
|
||||||
var erp_details = entity.ErpDetails
|
var erp_details = entity.ErpDetails
|
||||||
.Where(w => w.SourceBillNo.Equals(s)).Select(s => s.ErpDetailId).ToList();
|
.Where(w => w.SourceBillNo.Equals(det)).Select(t => t.ErpDetailId).ToList();
|
||||||
var erpDto = new ErpPushDto()
|
var erpDto = new ErpPushDto()
|
||||||
{
|
{
|
||||||
RuleId = "PUR_PurchaseOrder-STK_InStock",//转换规则内码 采购订单下推采购入库单
|
RuleId = "PUR_PurchaseOrder-STK_InStock",//转换规则内码 采购订单下推采购入库单
|
||||||
FormId = FormIdParam.PUR_PurchaseOrder.ToString(),
|
FormId = FormIdParam.PUR_PurchaseOrder.ToString(),
|
||||||
TargetFormId = FormIdParam.STK_InStock.ToString(),
|
TargetFormId = FormIdParam.STK_InStock.ToString(),
|
||||||
DetailsId = s.ErpDetailId.ToString(),
|
DetailsId = det.ErpDetailId.ToString(),
|
||||||
IsDraftWhenSaveFail = true//是否需要暂存
|
IsDraftWhenSaveFail = true//是否需要暂存
|
||||||
};
|
};
|
||||||
//下推金蝶
|
|
||||||
var res = await this.Push(erpDto, s, entity.BillNo, sc_erpService, sc_inStockRepositories);
|
List<ErpPurchaseInStockDetailsDto> details = new List<ErpPurchaseInStockDetailsDto>();
|
||||||
if (res.result.IsSuccess)
|
var resPurchaseInStockDetails_result = await sc_erpService.BillQueryForPurchaseInStockBy(det.ErpDetailId.ToString());
|
||||||
entity.SyncSuccess(s.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo);
|
if (resPurchaseInStockDetails_result.IsSuccess)
|
||||||
|
details = resPurchaseInStockDetails_result.Data;
|
||||||
|
|
||||||
|
//金蝶已有的单;进行金蝶不同操作处理:保存,提交,审核
|
||||||
|
var currentDet = details.Where(x => x.Qty == det.Qty).FirstOrDefault();
|
||||||
|
if (currentDet != null)
|
||||||
|
{
|
||||||
|
var res= await this.QueryFirst(currentDet, erpDto.FormId, entity.BillNo, det, sc_erpService);
|
||||||
|
if (res.result.IsSuccess)
|
||||||
|
entity.SyncSuccess(det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo);
|
||||||
|
else
|
||||||
|
entity.SyncFail(res.result.Message, det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.syncStatus);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
entity.SyncFail(res.result.Message, s.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.syncStatus);
|
{
|
||||||
|
//下推金蝶
|
||||||
|
var res = await this.Push(erpDto, det, entity.BillNo, sc_erpService, sc_inStockRepositories);
|
||||||
|
if (res.result.IsSuccess)
|
||||||
|
entity.SyncSuccess(det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo);
|
||||||
|
else
|
||||||
|
entity.SyncFail(res.result.Message, det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.syncStatus);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
erpDetails_tags.ForEach(x => { x.SuccessSync = SyncStatus.Fail; });
|
erpDetails_tags.ForEach(x => { x.SuccessSync = SyncStatus.Fail; });
|
||||||
entity.SyncFailAll("同步金蝶失败,金蝶存在已审核的采购入库单", loginInfo?.UserInfo?.StaffId ?? 0);
|
entity.SyncFailAll("同步金蝶失败,该采购单已存在采购入库单", loginInfo?.UserInfo?.StaffId ?? 0);
|
||||||
}
|
}
|
||||||
//最好一条一条执行,否则执行失败 但是金蝶那边又同步成功 就会造成数据比价乱
|
//最好一条一条执行,否则执行失败 但是金蝶那边又同步成功 就会造成数据比价乱
|
||||||
var isSuccess = await sc_InStockRepositories.Update(entity, true);
|
var isSuccess = await sc_InStockRepositories.Update(entity, true);
|
||||||
@@ -975,6 +995,102 @@ namespace WMS.Web.Domain.Services
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 金蝶已有的入库单进行不同处理:保存、提交、审核
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="currentDet"></param>
|
||||||
|
/// <param name="formId"></param>
|
||||||
|
/// <param name="billNo"></param>
|
||||||
|
/// <param name="erpDetail"></param>
|
||||||
|
/// <param name="sc_erpService"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private async Task<(Result result, SyncStatus syncStatus, string erpBillNo)> QueryFirst(ErpPurchaseInStockDetailsDto currentDet, string formId, string billNo, InStockErpDetails erpDetail, IErpService sc_erpService)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var purchaseInstock = new ErpPurchaseInStockSaveDto(currentDet.OrderId);
|
||||||
|
var det = new ErpPurchaseInStockDetailsSaveDto();
|
||||||
|
det.DetailId = currentDet.DetailId;
|
||||||
|
det.Qty = currentDet.Qty;
|
||||||
|
purchaseInstock.Details.Add(det);
|
||||||
|
ErpOperateDto o_dto = new ErpOperateDto(formId, currentDet.OrderBillNo);//res_s.Data
|
||||||
|
if (currentDet.DocumentStatus == ErpOrderStatus.Z.ToString())
|
||||||
|
{
|
||||||
|
//保存
|
||||||
|
_logger.LogInformation($"入库单->查询到已有暂存的入库单 开始保存 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 数据: {JsonConvert.SerializeObject(purchaseInstock)}");
|
||||||
|
var res_s = await sc_erpService.Save<ErpPurchaseInStockSaveDto>(purchaseInstock, formId);
|
||||||
|
if (!res_s.IsSuccess)
|
||||||
|
{
|
||||||
|
_logger.LogInformation($"入库单->保存失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{res_s.Message}");
|
||||||
|
return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.SubmitFail, currentDet.OrderId);
|
||||||
|
}
|
||||||
|
|
||||||
|
//提交
|
||||||
|
_logger.LogInformation($"入库单->保存成功 开始提交 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}");
|
||||||
|
var resSubmit = await sc_erpService.Submit(o_dto, formId);
|
||||||
|
if (!resSubmit.IsSuccess)
|
||||||
|
{
|
||||||
|
_logger.LogInformation($"入库单->提交失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{resSubmit.Message}");
|
||||||
|
return (resSubmit, SyncStatus.SubmitFail, o_dto.Numbers.First());
|
||||||
|
}
|
||||||
|
|
||||||
|
//审核
|
||||||
|
_logger.LogInformation($"入库单->提交成功 开始审核 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}");
|
||||||
|
resSubmit = await sc_erpService.Audit(o_dto, formId);
|
||||||
|
if (!resSubmit.IsSuccess)
|
||||||
|
{
|
||||||
|
_logger.LogInformation($"入库单->审核失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{resSubmit.Message}");
|
||||||
|
return (resSubmit, SyncStatus.CheckFail, o_dto.Numbers.First());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (currentDet.DocumentStatus == ErpOrderStatus.A.ToString())
|
||||||
|
{
|
||||||
|
//提交
|
||||||
|
_logger.LogInformation($"入库单->查询到已有保存的入库单 开始提交 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}");
|
||||||
|
var resSubmit = await sc_erpService.Submit(o_dto, formId);
|
||||||
|
if (!resSubmit.IsSuccess)
|
||||||
|
{
|
||||||
|
_logger.LogInformation($"入库单->提交失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{resSubmit.Message}");
|
||||||
|
return (resSubmit, SyncStatus.SubmitFail, o_dto.Numbers.First());
|
||||||
|
}
|
||||||
|
|
||||||
|
//审核
|
||||||
|
_logger.LogInformation($"入库单->提交成功 开始审核 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}");
|
||||||
|
resSubmit = await sc_erpService.Audit(o_dto, formId);
|
||||||
|
if (!resSubmit.IsSuccess)
|
||||||
|
{
|
||||||
|
_logger.LogInformation($"入库单->审核失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{resSubmit.Message}");
|
||||||
|
return (resSubmit, SyncStatus.CheckFail, o_dto.Numbers.First());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (currentDet.DocumentStatus == ErpOrderStatus.B.ToString())
|
||||||
|
{
|
||||||
|
//审核
|
||||||
|
_logger.LogInformation($"入库单->查询到已有提交的入库单 开始审核 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}");
|
||||||
|
var resSubmit = await sc_erpService.Audit(o_dto, formId);
|
||||||
|
if (!resSubmit.IsSuccess)
|
||||||
|
{
|
||||||
|
_logger.LogInformation($"入库单->审核失败 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{resSubmit.Message}");
|
||||||
|
return (resSubmit, SyncStatus.CheckFail, o_dto.Numbers.First());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (currentDet.DocumentStatus == ErpOrderStatus.C.ToString())
|
||||||
|
{
|
||||||
|
_logger.LogInformation($"入库单->存在已审核的ERP入库单 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:存在已审核的ERP入库单");
|
||||||
|
return (Result.ReFailure("存在已审核的ERP入库单", 2001), SyncStatus.CheckFail, o_dto.Numbers.First());
|
||||||
|
}
|
||||||
|
_logger.LogInformation($"入库单->同步金蝶成功->单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}");
|
||||||
|
return (Result.ReSuccess(), SyncStatus.Success, o_dto.Numbers.First());
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
|
||||||
|
_logger.LogInformation($"入库单-同步:错误:{billNo} erp明细Id:{erpDetail.ErpDetailId} 错误:{ex.Message}");
|
||||||
|
var result = Result.ReFailure(ex.Message, 50001);
|
||||||
|
return (result, SyncStatus.Fail, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2510,6 +2510,52 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<Result<List<ErpPurchaseInStockDetailsDto>>> BillQueryForPurchaseInStockBy(string purchaseDetailId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//1.先登录金蝶-拿到token
|
||||||
|
var token_result = await this.Init();
|
||||||
|
if (!token_result.IsSuccess)
|
||||||
|
return Result<List<ErpPurchaseInStockDetailsDto>>.ReFailure(token_result);
|
||||||
|
|
||||||
|
|
||||||
|
//3.获取金蝶采购订单:拼接参数和条件
|
||||||
|
var query = new ErpBillQueryDto(token_result.Data);
|
||||||
|
var param = new ErpBillQueryParamDto(FormIdParam.STK_InStock.ToString());
|
||||||
|
param.FieldKeys = "FID,FInStockEntry_FEntryID,FRealQty,FPOOrderNo,FBillNo,FDocumentStatus";
|
||||||
|
param.Limit = 10000;
|
||||||
|
param.FilterString = $"FPOORDERENTRYID={purchaseDetailId}";
|
||||||
|
|
||||||
|
query.Data = JsonConvert.SerializeObject(param);
|
||||||
|
var json = JsonConvert.SerializeObject(query);
|
||||||
|
|
||||||
|
//4.请求查询接口
|
||||||
|
var result_json = await _client.ExecuteBillQueryAsync(json);
|
||||||
|
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
|
||||||
|
|
||||||
|
//5.返回数据的组装
|
||||||
|
var erp_list = new List<ErpPurchaseInStockDetailsDto>();
|
||||||
|
foreach (var item in result)
|
||||||
|
{
|
||||||
|
var lis = new ErpPurchaseInStockDetailsDto();
|
||||||
|
lis.OrderId =item[0];
|
||||||
|
lis.DetailId = item[1];
|
||||||
|
lis.Qty = Convert.ToDecimal(item[2]);
|
||||||
|
lis.PurchaseBillNo = item[3];
|
||||||
|
lis.OrderBillNo = item[4];
|
||||||
|
lis.DocumentStatus = item[5];
|
||||||
|
lis.PurchaseDetailId = purchaseDetailId;
|
||||||
|
erp_list.Add(lis);
|
||||||
|
}
|
||||||
|
return Result<List<ErpPurchaseInStockDetailsDto>>.ReSuccess(erp_list);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return Result<List<ErpPurchaseInStockDetailsDto>>.ReFailure(ResultCodes.Erp_BillQuery_Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<ResultList<ErpInventoryDto>> BillQueryForInventory(List<(string materialNumber, string orgCode, string stockCode, int subStockId)> request)
|
public async Task<ResultList<ErpInventoryDto>> BillQueryForInventory(List<(string materialNumber, string orgCode, string stockCode, int subStockId)> request)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|||||||
33
src/WMS.Web.Domain/Values/ErpOrderStatus.cs
Normal file
33
src/WMS.Web.Domain/Values/ErpOrderStatus.cs
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WMS.Web.Domain.Values
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// erp订单状态
|
||||||
|
/// </summary>
|
||||||
|
public enum ErpOrderStatus
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 创建
|
||||||
|
/// </summary>
|
||||||
|
A,
|
||||||
|
/// <summary>
|
||||||
|
/// 审核中
|
||||||
|
/// </summary>
|
||||||
|
B,
|
||||||
|
/// <summary>
|
||||||
|
/// 已审核
|
||||||
|
/// </summary>
|
||||||
|
C,
|
||||||
|
/// <summary>
|
||||||
|
/// 重新审核
|
||||||
|
/// </summary>
|
||||||
|
D,
|
||||||
|
/// <summary>
|
||||||
|
/// 暂存
|
||||||
|
/// </summary>
|
||||||
|
Z
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -139,21 +139,21 @@ namespace WMS.Web.Repositories
|
|||||||
|
|
||||||
//1.获取物料集合和组织集合和供应商的集合
|
//1.获取物料集合和组织集合和供应商的集合
|
||||||
var materials = new List<ErpMaterialDto>();
|
var materials = new List<ErpMaterialDto>();
|
||||||
var materials_result = await _erpService.BillQueryForMaterial();
|
//var materials_result = await _erpService.BillQueryForMaterial();
|
||||||
if (materials_result.IsSuccess)
|
//if (materials_result.IsSuccess)
|
||||||
materials = materials_result.Data.ToList();
|
// materials = materials_result.Data.ToList();
|
||||||
|
|
||||||
//组织集合
|
//组织集合
|
||||||
var orgs = new List<ErpOrgDto>();
|
var orgs = new List<ErpOrgDto>();
|
||||||
var orgs_result = await _erpService.BillQueryForOrg();
|
//var orgs_result = await _erpService.BillQueryForOrg();
|
||||||
if (orgs_result.IsSuccess)
|
//if (orgs_result.IsSuccess)
|
||||||
orgs = orgs_result.Data.ToList();
|
// orgs = orgs_result.Data.ToList();
|
||||||
|
|
||||||
//供应商集合
|
//供应商集合
|
||||||
var suppliers = new List<ErpSupplierDto>();
|
var suppliers = new List<ErpSupplierDto>();
|
||||||
var suppliers_result = await _erpService.BillQueryForSupplier();
|
//var suppliers_result = await _erpService.BillQueryForSupplier();
|
||||||
if (suppliers_result.IsSuccess)
|
//if (suppliers_result.IsSuccess)
|
||||||
suppliers = suppliers_result.Data.ToList();
|
// suppliers = suppliers_result.Data.ToList();
|
||||||
|
|
||||||
var entity = await _context.InStockTask.Include(x => x.Details).Where(x => x.Id == id).FirstOrDefaultAsync();
|
var entity = await _context.InStockTask.Include(x => x.Details).Where(x => x.Id == id).FirstOrDefaultAsync();
|
||||||
|
|
||||||
@@ -238,7 +238,7 @@ namespace WMS.Web.Repositories
|
|||||||
if (current_box != null)
|
if (current_box != null)
|
||||||
{
|
{
|
||||||
var current_boxDet = current_box.Details.Where(d => d.MaterialNumber == x.MaterialNumber).FirstOrDefault();
|
var current_boxDet = current_box.Details.Where(d => d.MaterialNumber == x.MaterialNumber).FirstOrDefault();
|
||||||
if (x.MethodForInt == (int)InventoryInOutMethod.Product && current_boxDet.Qty != 0)
|
if (current_boxDet!=null && x.MethodForInt == (int)InventoryInOutMethod.Product && current_boxDet.Qty != 0)
|
||||||
x.Qty = current_boxDet.Qty;
|
x.Qty = current_boxDet.Qty;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user