diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2
index 2068eb1a..73fdfcc5 100644
Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/src/WMS.Web.Api/Controllers/InStockController.cs b/src/WMS.Web.Api/Controllers/InStockController.cs
index a6ab6873..00728770 100644
--- a/src/WMS.Web.Api/Controllers/InStockController.cs
+++ b/src/WMS.Web.Api/Controllers/InStockController.cs
@@ -165,5 +165,21 @@ namespace WMS.Web.Api.Controllers
return await _inStockService.Sync(dto, loginInfo);
}
+
+ ///
+ /// 标记同步成功
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Route("Sync")]
+ public async Task SyncSuccess([FromBody] List dto)
+ {
+ var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
+ if (loginInfo == null || loginInfo.UserInfo == null)
+ return Result.ReFailure(ResultCodes.Token_Invalid_Error);
+
+ return await _inStockService.SyncSuccess(dto, loginInfo);
+ }
}
}
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
index 9b7a6940..44b32b1b 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
@@ -209,6 +209,13 @@
+
+
+ 标记同步成功
+
+
+
+
入库任务单-接口
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index ab41b3c9..a5153e18 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -2903,6 +2903,31 @@
保存入库单-请求对象
+
+
+ 入库单标记同步金蝶成功
+
+
+
+
+ 单据ID
+
+
+
+
+ 来源单号
+
+
+
+
+ 物料编码
+
+
+
+
+ 金蝶入库单号
+
+
入库单查询请求对象
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 5a0243a8..eec3c560 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -823,6 +823,15 @@
重传
+
+
+ 同步成功
+
+
+
+
+
+
wms入库单明细
@@ -3658,6 +3667,14 @@
+
+
+ 标记同步成功
+
+
+
+
+
收货
@@ -5412,6 +5429,15 @@
+
+
+ 标记同步成功
+
+
+
+
+
+
任务单的箱收货记录服务
diff --git a/src/WMS.Web.Core/Dto/InStock/SyncSuccessRequest.cs b/src/WMS.Web.Core/Dto/InStock/SyncSuccessRequest.cs
new file mode 100644
index 00000000..1fda7c3b
--- /dev/null
+++ b/src/WMS.Web.Core/Dto/InStock/SyncSuccessRequest.cs
@@ -0,0 +1,30 @@
+using Npoi.Mapper.Attributes;
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WMS.Web.Core.Dto.InStock
+{
+ ///
+ /// 入库单标记同步金蝶成功
+ ///
+ public class SyncSuccessRequest
+ {
+ ///
+ /// 单据ID
+ ///
+ public int Id { get; set; }
+ ///
+ /// 来源单号
+ ///
+ public string SourceBillNo { get; set; }
+ ///
+ /// 物料编码
+ ///
+ public string MaterialNumber { get; set; }
+ ///
+ /// 金蝶入库单号
+ ///
+ public string ErpBillNo { get; set; }
+ }
+}
diff --git a/src/WMS.Web.Domain/Entitys/InStock.cs b/src/WMS.Web.Domain/Entitys/InStock.cs
index 29b7c39a..450e0e8d 100644
--- a/src/WMS.Web.Domain/Entitys/InStock.cs
+++ b/src/WMS.Web.Domain/Entitys/InStock.cs
@@ -4,6 +4,7 @@ using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using WMS.Web.Core;
+using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.Values;
namespace WMS.Web.Domain.Entitys
@@ -20,11 +21,11 @@ namespace WMS.Web.Domain.Entitys
/// ID
///
public override int Id { get; set; }
-
+
///
/// 单据编号
///
- public string BillNo { get; set; }
+ public string BillNo { get; set; }
///
/// 入库类型
///
@@ -98,7 +99,7 @@ namespace WMS.Web.Domain.Entitys
this.CreateTime = DateTime.Now;
if (this.Type == InstockType.Purchase)
{
- this.SuccessSync = SyncStatus.SyncIng;
+ this.SuccessSync = SyncStatus.SyncIng;
this.ErpDetails.ForEach(f => f.SuccessSync = SyncStatus.SyncIng);
}
else//非采购订单,这里就没有记录erpdetails的数据了
@@ -151,8 +152,8 @@ namespace WMS.Web.Domain.Entitys
///
public void SyncSuccess(int erpDetailId, int operateId, string erpBillNo)
{
- var erpd = this.ErpDetails.Where(s=>s.ErpDetailId==erpDetailId).ToList();
- erpd.ForEach(det =>
+ var erpd = this.ErpDetails.Where(s => s.ErpDetailId == erpDetailId).ToList();
+ erpd.ForEach(det =>
{
det.SuccessSync = SyncStatus.Success;
det.ErpSyncBillNo = erpBillNo;
@@ -189,7 +190,7 @@ namespace WMS.Web.Domain.Entitys
this.OperateId = operateId;
this.SyncTime = DateTime.Now;
}
-
+
///
/// 全部失败
///
@@ -212,7 +213,7 @@ namespace WMS.Web.Domain.Entitys
if (this.SuccessSync != SyncStatus.Fail) return;
this.SuccessSync = SyncStatus.SyncIng;
var erpDetails = this.ErpDetails
- .Where(w => w.SuccessSync == SyncStatus.Fail || w.SuccessSync==SyncStatus.SubmitFail || w.SuccessSync == SyncStatus.CheckFail)
+ .Where(w => w.SuccessSync == SyncStatus.Fail || w.SuccessSync == SyncStatus.SubmitFail || w.SuccessSync == SyncStatus.CheckFail)
.ToList();
foreach (var e in erpDetails)
{
@@ -220,5 +221,27 @@ namespace WMS.Web.Domain.Entitys
}
this.Remark = "";
}
+ ///
+ /// 同步成功
+ ///
+ ///
+ ///
+ ///
+ ///
+ public Result OperationSyncSuccess(string sourceBillNo, string materialNumber, string erpBillNo)
+ {
+ var erpDetail = this.ErpDetails.FirstOrDefault(f => f.SourceBillNo.Equals(sourceBillNo) && f.MaterialNumber.Equals(materialNumber));
+ if (erpDetail == null) return Result.ReFailure(ResultCodes.NoDateError);
+ if (this.SuccessSync == SyncStatus.Success || erpDetail.SuccessSync == SyncStatus.Success)
+ return Result.ReFailure(ResultCodes.SyncSuccessError);
+
+ erpDetail.ErpSyncBillNo = erpBillNo;
+ erpDetail.SuccessSync = SyncStatus.Success;
+
+ if (this.ErpDetails.Where(w => w.SuccessSync == SyncStatus.Success).Count() == this.ErpDetails.Count())
+ this.SuccessSync = SyncStatus.Success;
+
+ return Result.ReSuccess();
+ }
}
}
diff --git a/src/WMS.Web.Domain/IService/IInStockService.cs b/src/WMS.Web.Domain/IService/IInStockService.cs
index d19350ef..e8565562 100644
--- a/src/WMS.Web.Domain/IService/IInStockService.cs
+++ b/src/WMS.Web.Domain/IService/IInStockService.cs
@@ -25,6 +25,13 @@ namespace WMS.Web.Domain.IService
///
///
Task Sync(OperateRequest dto, LoginInDto loginInfo, bool isRepeatSync = true);
+ ///
+ /// 标记同步成功
+ ///
+ ///
+ ///
+ ///
+ Task SyncSuccess(List dto, LoginInDto loginInfo);
///
/// 收货
diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs
index ba280431..3be8dd3a 100644
--- a/src/WMS.Web.Domain/Services/InStockService.cs
+++ b/src/WMS.Web.Domain/Services/InStockService.cs
@@ -1139,7 +1139,7 @@ namespace WMS.Web.Domain.Services
list.SelectMany(s => s.Details)
.Where(w => t_boxIds.Contains(w.BoxId))
.ForEach(f => f.UnBind = true);
-
+
if (list.Count != 0)
{
var isSuccess = await _inStockRepositories.UpdateRange(list, isTransaction);
@@ -1148,5 +1148,30 @@ namespace WMS.Web.Domain.Services
}
return Result.ReSuccess();
}
+ ///
+ /// 标记同步成功
+ ///
+ ///
+ ///
+ ///
+ ///
+ public async Task SyncSuccess(List dto, LoginInDto loginInfo)
+ {
+ _logger.LogInformation($"标记同步成功:{JsonConvert.SerializeObject(dto)} 操作人:{loginInfo.UserInfo.StaffId},{loginInfo.UserInfo.Nickname}");
+
+ var ids = dto.Select(s => s.Id).ToList();
+ var entityList = await _inStockRepositories.GetList(ids);
+ foreach (var d in dto)
+ {
+ var entity = entityList.FirstOrDefault(f => f.Id == d.Id);
+ if (entity == null) return Result.ReFailure(ResultCodes.NoDateError);
+ var res = entity.OperationSyncSuccess(d.SourceBillNo, d.MaterialNumber, d.ErpBillNo);
+ if (!res.IsSuccess) return res;
+ }
+ var isSuccess = await _inStockRepositories.UpdateRange(entityList, true);
+ if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
+
+ return Result.ReSuccess();
+ }
}
}
diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs
index 06a356cc..02548f64 100644
--- a/src/WMS.Web.Domain/Values/ResultCodes.cs
+++ b/src/WMS.Web.Domain/Values/ResultCodes.cs
@@ -97,5 +97,6 @@ namespace WMS.Web.Domain.Values
public static ValueTuple SubscribeNotificationNoData = (700001, "订阅通知信息不存在");
public static ValueTuple GetBarCodeSerialNumberError = (800001, "获取序列码异常");
+ public static ValueTuple SyncSuccessError = (800002, "单据已经同步成功");
}
}