标记同步成功

This commit is contained in:
18942506660
2024-09-20 16:37:34 +08:00
parent 8c284d1823
commit 01e7b1da36
10 changed files with 168 additions and 8 deletions

View File

@@ -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
/// </summary>
public override int Id { get; set; }
/// <summary>
/// 单据编号
/// </summary>
public string BillNo { get; set; }
public string BillNo { get; set; }
/// <summary>
/// 入库类型
/// </summary>
@@ -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
/// <param name="erpBillNo"></param>
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;
}
/// <summary>
/// 全部失败
/// </summary>
@@ -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 = "";
}
/// <summary>
/// 同步成功
/// </summary>
/// <param name="sourceBillNo"></param>
/// <param name="materialNumber"></param>
/// <param name="erpBillNo"></param>
/// <returns></returns>
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();
}
}
}

View File

@@ -25,6 +25,13 @@ namespace WMS.Web.Domain.IService
/// <param name="loginInfo"></param>
/// <returns></returns>
Task<Result> Sync(OperateRequest dto, LoginInDto loginInfo, bool isRepeatSync = true);
/// <summary>
/// 标记同步成功
/// </summary>
/// <param name="dto"></param>
/// <param name="loginInfo"></param>
/// <returns></returns>
Task<Result> SyncSuccess(List<SyncSuccessRequest> dto, LoginInDto loginInfo);
/// <summary>
/// 收货

View File

@@ -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();
}
/// <summary>
/// 标记同步成功
/// </summary>
/// <param name="dto"></param>
/// <param name="loginInfo"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
public async Task<Result> SyncSuccess(List<SyncSuccessRequest> 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();
}
}
}

View File

@@ -97,5 +97,6 @@ namespace WMS.Web.Domain.Values
public static ValueTuple<int, string> SubscribeNotificationNoData = (700001, "订阅通知信息不存在");
public static ValueTuple<int, string> GetBarCodeSerialNumberError = (800001, "获取序列码异常");
public static ValueTuple<int, string> SyncSuccessError = (800002, "单据已经同步成功");
}
}