This commit is contained in:
tongfei
2024-03-22 16:54:27 +08:00
parent 17378dafb5
commit ae135dff4e
4 changed files with 90 additions and 91 deletions

View File

@@ -179,7 +179,7 @@ namespace WMS.Web.Domain.Entitys
/// <param name="syncStatus"></param> /// <param name="syncStatus"></param>
public void SyncFail(string remark, int erpDetailId, int operateId, SyncStatus syncStatus) public void SyncFail(string remark, int erpDetailId, int operateId, SyncStatus syncStatus)
{ {
var erpd = this.ErpDetails.Where(w=>w.ErpDetailId==erpDetailId).ToList(); var erpd = this.ErpDetails.Where(w => w.ErpDetailId == erpDetailId).ToList();
erpd.ForEach(det => erpd.ForEach(det =>
{ {
det.SuccessSync = syncStatus; det.SuccessSync = syncStatus;

View File

@@ -149,7 +149,7 @@ namespace WMS.Web.Domain.Services
{ {
OperateRequest oRequest = new OperateRequest(); OperateRequest oRequest = new OperateRequest();
oRequest.Ids.Add(entity.Id); oRequest.Ids.Add(entity.Id);
await Sync(oRequest, loginInfo,false); await Sync(oRequest, loginInfo, false);
} }
return Result.ReSuccess(); return Result.ReSuccess();
} }
@@ -162,7 +162,7 @@ namespace WMS.Web.Domain.Services
/// <returns></returns> /// <returns></returns>
public async Task<Result> ShelfNoPurchase(NoPurchaseShelfRequest dto, LoginInDto loginInDto) public async Task<Result> ShelfNoPurchase(NoPurchaseShelfRequest dto, LoginInDto loginInDto)
{ {
_logger.LogInformation($"非采购入库:{JsonConvert.SerializeObject(dto)} 操作人:{loginInDto.UserInfo.StaffId+loginInDto.UserInfo.Nickname}"); _logger.LogInformation($"非采购入库:{JsonConvert.SerializeObject(dto)} 操作人:{loginInDto.UserInfo.StaffId + loginInDto.UserInfo.Nickname}");
IDbContextTransaction _transaction = _basicsRepositories.GetTransaction(); IDbContextTransaction _transaction = _basicsRepositories.GetTransaction();
bool isRollback = false; bool isRollback = false;
bool isTransaction = false; bool isTransaction = false;
@@ -272,7 +272,7 @@ namespace WMS.Web.Domain.Services
var taskIds = dto.Details.GroupBy(x => x.TaskId).Select(x => x.Key).ToList(); var taskIds = dto.Details.GroupBy(x => x.TaskId).Select(x => x.Key).ToList();
var tasks = await _inStockTaskRepositories.GetList(taskIds); var tasks = await _inStockTaskRepositories.GetList(taskIds);
if (tasks == null || tasks.Count==0) if (tasks == null || tasks.Count == 0)
return Result<InStock>.ReFailure(ResultCodes.SourceBillNoDateError); return Result<InStock>.ReFailure(ResultCodes.SourceBillNoDateError);
// 组织集合 // 组织集合
@@ -361,7 +361,7 @@ namespace WMS.Web.Domain.Services
//保存成功后:序列号跟踪流程添加 //保存成功后:序列号跟踪流程添加
var serialNumber_result = await _serialNumberService.InStock(entity, loginInfo, isTransaction); var serialNumber_result = await _serialNumberService.InStock(entity, loginInfo, isTransaction);
if (!serialNumber_result.IsSuccess) if (!serialNumber_result.IsSuccess)
return Result<InStock >.ReFailure(serialNumber_result); return Result<InStock>.ReFailure(serialNumber_result);
//箱库存变动 //箱库存变动
var boxInventoryResult = await _boxInventoryService.GenerateInStockBox(entity, isTransaction); var boxInventoryResult = await _boxInventoryService.GenerateInStockBox(entity, isTransaction);
@@ -384,7 +384,7 @@ namespace WMS.Web.Domain.Services
_logger.LogInformation($"非采购上架-保存:{JsonConvert.SerializeObject(dto)} 操作人:{loginInfo.UserInfo.StaffId}"); _logger.LogInformation($"非采购上架-保存:{JsonConvert.SerializeObject(dto)} 操作人:{loginInfo.UserInfo.StaffId}");
//非采购入库的时候:不能扫同样的箱,按箱入库时候 //非采购入库的时候:不能扫同样的箱,按箱入库时候
if (dto.Boxs != null && dto.Boxs.Count != 0 && dto.ShelfMethod==(int)ShelfMethod.Box) if (dto.Boxs != null && dto.Boxs.Count != 0 && dto.ShelfMethod == (int)ShelfMethod.Box)
{ {
if (dto.Boxs.Select(x => x.BoxId).Distinct().Count() != dto.Boxs.Select(x => x.BoxId).Count()) if (dto.Boxs.Select(x => x.BoxId).Distinct().Count() != dto.Boxs.Select(x => x.BoxId).Count())
return Result<InStock>.ReFailure(ResultCodes.BoxOutStockTaskBoxError); return Result<InStock>.ReFailure(ResultCodes.BoxOutStockTaskBoxError);
@@ -402,7 +402,7 @@ namespace WMS.Web.Domain.Services
//1.1.2判断上架数量不能超过应入库数量 //1.1.2判断上架数量不能超过应入库数量
var dtoDetails = dto.Boxs.SelectMany(x => x.Details).ToList(); var dtoDetails = dto.Boxs.SelectMany(x => x.Details).ToList();
var dtoTotalDetails = dtoDetails.GroupBy(x => new { x.ErpDetailId,x.MaterialNumber }).Select(x => new { ErpDetailId = x.Key.ErpDetailId, MaterialNumber = x.Key.MaterialNumber, Qty = x.Sum(t => t.Qty) }).ToList(); var dtoTotalDetails = dtoDetails.GroupBy(x => new { x.ErpDetailId, x.MaterialNumber }).Select(x => new { ErpDetailId = x.Key.ErpDetailId, MaterialNumber = x.Key.MaterialNumber, Qty = x.Sum(t => t.Qty) }).ToList();
foreach (var item in task.Details) foreach (var item in task.Details)
{ {
var current_det = dtoTotalDetails.Where(x => x.ErpDetailId == item.ErpDetailId && x.MaterialNumber == item.MaterialNumber).FirstOrDefault(); var current_det = dtoTotalDetails.Where(x => x.ErpDetailId == item.ErpDetailId && x.MaterialNumber == item.MaterialNumber).FirstOrDefault();
@@ -617,7 +617,7 @@ namespace WMS.Web.Domain.Services
//1.1筛选出对应仓库的明细 //1.1筛选出对应仓库的明细
var task_details = task.Details.Where(x => x.StockCode == dto.StockCode && x.AccruedQty>0).ToList(); var task_details = task.Details.Where(x => x.StockCode == dto.StockCode && x.AccruedQty > 0).ToList();
//2.找到箱对应的物料信息:多个箱 //2.找到箱对应的物料信息:多个箱
var boxs = await _boxRepositories.GetEntityListByNos(dto.BoxBillNos); var boxs = await _boxRepositories.GetEntityListByNos(dto.BoxBillNos);
@@ -627,7 +627,7 @@ namespace WMS.Web.Domain.Services
//3.判断箱里面对应的物料是否存在;不存在就报错 //3.判断箱里面对应的物料是否存在;不存在就报错
foreach (var item in boxs) foreach (var item in boxs)
{ {
if(item.Details==null || item.Details.Count==0) if (item.Details == null || item.Details.Count == 0)
return Result<ContrastMaterialsResponse>.ReFailure(ResultCodes.BoxMateriaNoData); return Result<ContrastMaterialsResponse>.ReFailure(ResultCodes.BoxMateriaNoData);
} }
@@ -707,19 +707,17 @@ namespace WMS.Web.Domain.Services
var sc_erpService = scope.ServiceProvider.GetRequiredService<IErpService>(); var sc_erpService = scope.ServiceProvider.GetRequiredService<IErpService>();
//找到金蝶最新的采购订单数据 //找到金蝶最新的采购订单数据
var erp_purchase_result =await sc_erpService.BillQueryForPurchaseInStock(entity.ErpDetails.GroupBy(x=>x.SourceBillNo).Select(x=>x.Key).ToList()); var erp_purchase_result = await sc_erpService.BillQueryForPurchaseInStock(entity.ErpDetails.GroupBy(x => x.SourceBillNo).Select(x => x.Key).ToList());
if (!erp_purchase_result.IsSuccess) if (!erp_purchase_result.IsSuccess)
return erp_purchase_result; return erp_purchase_result;
//然后刷选出对应金蝶明细和物料和wms的任务单的明细和物料是一致的就同步下推 //然后刷选出对应金蝶明细和物料和wms的任务单的明细和物料是一致的就同步下推
foreach (var item in erpDetails_tags) foreach (var item in erpDetails_tags)
{ {
var isHave= erp_purchase_result.Data.Where(x => x.ErpDetailId == item.ErpDetailId && x.MaterialNumber == item.MaterialNumber).Any(); var isHave = erp_purchase_result.Data.Where(x => x.ErpDetailId == item.ErpDetailId && x.MaterialNumber == item.MaterialNumber).Any();
if (isHave) if (isHave)
erpDetails.Add(item); erpDetails.Add(item);
} }
try
{
foreach (var s in erpDetails) foreach (var s in erpDetails)
{ {
var erp_details = entity.ErpDetails var erp_details = entity.ErpDetails
@@ -744,14 +742,6 @@ namespace WMS.Web.Domain.Services
if (entity == null) return Result.ReFailure(ResultCodes.DateWriteError); if (entity == null) return Result.ReFailure(ResultCodes.DateWriteError);
return Result.ReSuccess(); return Result.ReSuccess();
} }
catch (Exception ex)
{
_logger.LogInformation($"采购下推-同步:错误:{JsonConvert.SerializeObject(entity)} 操作人:{loginInfo.UserInfo.StaffId}");
return Result.ReFailure(ResultCodes.ErpSynsError);
}
}
/// <summary> /// <summary>
/// 下推 /// 下推
@@ -762,7 +752,8 @@ namespace WMS.Web.Domain.Services
/// <returns></returns> /// <returns></returns>
private async Task<(Result result, SyncStatus syncStatus, string erpBillNo)> Push(ErpPushDto dto, InStockErpDetails erpDetail, string billNo, IErpService sc_erpService) private async Task<(Result result, SyncStatus syncStatus, string erpBillNo)> Push(ErpPushDto dto, InStockErpDetails erpDetail, string billNo, IErpService sc_erpService)
{ {
try
{
//下推动作 //下推动作
var res = await sc_erpService.Push(dto); var res = await sc_erpService.Push(dto);
if (!res.IsSuccess) if (!res.IsSuccess)
@@ -802,6 +793,14 @@ namespace WMS.Web.Domain.Services
_logger.LogInformation($"入库单->同步金蝶成功->单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}"); _logger.LogInformation($"入库单->同步金蝶成功->单号:{billNo} erp明细Id:{erpDetail.ErpDetailId}");
return (Result.ReSuccess(), SyncStatus.Success, o_dto.Numbers.First()); 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, "");
}
}
} }

View File

@@ -173,8 +173,8 @@ namespace WMS.Web.Domain.Services.Public
loginInfo.TokenInfo = token; loginInfo.TokenInfo = token;
//var ops_login_time = token.Expired.AddDays(1) - DateTime.Now;//用于正式 //var ops_login_time = token.Expired.AddDays(1) - DateTime.Now;//用于正式
var ops_login_time = token.Expired - DateTime.Now;//用于正式
_redisClientService.SetStringKey<LoginInDto>($"wms_login_{token.Token}", loginInfo, token.Expired.TimeOfDay); _redisClientService.SetStringKey<LoginInDto>($"wms_login_{token.Token}", loginInfo, ops_login_time);
_logger.LogInformation($"登录信息:用户人员信息->{staffName}{r.UserInfo.StaffId}),公司名称->{r.UserInfo.CompanyName}"+",过期时间:"+token.Expired.ToString("yyyy-MM-dd HH:mm:ss")); _logger.LogInformation($"登录信息:用户人员信息->{staffName}{r.UserInfo.StaffId}),公司名称->{r.UserInfo.CompanyName}"+",过期时间:"+token.Expired.ToString("yyyy-MM-dd HH:mm:ss"));

View File

@@ -34,6 +34,6 @@ namespace WMS.Web.Domain.Values
/// 同步中 /// 同步中
/// </summary> /// </summary>
[EnumRemark("同步中")] [EnumRemark("同步中")]
SyncIng = 4 SyncIng = 4,
} }
} }