Browse Source

更新版本

dev_DY_CC
赵新宇 11 months ago
parent
commit
db374da29a
  1. 76
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs

76
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs

@ -12,6 +12,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using MyNamespace;
using Omu.ValueInjecter;
using Volo.Abp;
using Volo.Abp.ObjectMapping;
using Win_in.Sfs.Basedata.Application.Contracts;
@ -321,7 +322,7 @@ public class AssembleIssueJobAppService
Count = jobitem.RecommendFromQty,
ProductNo = jobitem.ItemCode,
NeedSite = pLoc,
WorkNo = job.Number,
WorkNo = job.AssembleRequestNumber,
TaskNo = job.Number
});
}
@ -369,7 +370,7 @@ public class AssembleIssueJobAppService
var client = new IssueJobToRestoClient(_options.Value.Address, httpclient, _options.Value.Path);
ret = await client.SyncIssueJobStereoAsync(main).ConfigureAwait(false);
_logger.LogInformation($"标志{flag}调用高通WMS:返回值{ret}");
_logger.LogInformation($"标志{flag}调用高通WMS:返回值{System.Text.Json.JsonSerializer.Serialize(ret)}");
}
catch (Exception ex)
{
@ -385,8 +386,14 @@ public class AssembleIssueJobAppService
[HttpPost("receive-issue-job-stereo")]
public virtual async Task<ReusltObject> SyncReciveIssueJobStereoAsync(IssueRequestFromRestoDTO input)
{
#if DEBUG
var json = JsonSerializer.Serialize(input);
var flag = DateTime.Now.ToString("yyyyMMddHHmmss");
_logger.LogInformation($"{flag}接收到立体库确认单据内容:" + json);
#if DEBUG
#endif
var errors = new List<string>();
var ret = new ReusltObject { Code = int.Parse(GaoTongResultStatus.Success), OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), Message = "操作成功" };
@ -403,41 +410,85 @@ public class AssembleIssueJobAppService
{
errors.Add($"任务号{string.Join(",", numbers)}不存在!");
}
var dtos = ObjectMapper.Map<List<AssembleIssueJob>, List<AssembleIssueJobDTO>>(entities);
if (input.Jobs.Count == entities.Count)
if (input.Jobs.Count != entities.Count)
{
errors.Add("立体库提交出库任务和WMS任务不符,请核对! \n");
}
if (errors.Count > 0)
{
ret = new ReusltObject
{
Code = int.Parse(GaoTongResultStatus.Failure),
OperateTime = DateTime.Now.ToString("yyyy-MM-dd"),
Message = string.Join(",", errors.ToArray()),
Data = json
};
}
foreach (var itm in dtos)
{
var first = jobs.FirstOrDefault(p => p.JobNumber == itm.Number);
var itmDetails = itm.Details.ToList();
var details = new List<AssembleIssueJobDetailDTO>();
foreach (var detail in first.Details)
{
var loc=await _locationAppService.GetByCodeAsync(detail.FromLocationCode).ConfigureAwait(false);
if (loc == null)
{
errors.Add($"目标库位{detail.FromLocationCode}没查到");
}
var entity = itmDetails.FirstOrDefault(p => p.ItemCode == detail.ItemCode);
var dto = new AssembleIssueJobDetailDTO();
dto.HandledFromLocationCode = entity.HandledFromLocationCode;
dto.HandledToLocationCode = entity.HandledToLocationCode;
dto.ItemCode = detail.ItemCode;
//dto.HandledFromLocationCode = entity.HandledFromLocationCode;
//dto.HandledToLocationCode = entity.HandledToLocationCode;
// dto.ItemCode = detail.ItemCode;
dto.InjectFrom(entity);
dto.RecommendFromQty = detail.Qty;
dto.RecommendToQty = detail.Qty;
dto.HandledFromQty = detail.Qty;
dto.HandledToQty = detail.Qty;
dto.Status = entity.Status;
//dto.HandledToLocationCode = loc.Code;
//dto.HandledToLocationGroup = loc.LocationGroupCode;
//dto.HandledToLocationArea = loc.AreaCode;
//dto.HandledToLocationErpCode = loc.ErpLocationCode;
//dto.HandledToPackingCode = "";
dto.HandledFromLocationCode = loc.Code;
dto.HandledFromLocationGroup = loc.LocationGroupCode;
dto.HandledFromLocationArea = loc.AreaCode;
dto.HandledFromLocationErpCode = loc.ErpLocationCode;
dto.HandledFromPackingCode = "";
//dto.Status = entity.Status;
details.Add(dto);
}
itm.Details = details;
await CompleteAsync(itm.Id, itm).ConfigureAwait(false);
_logger.LogInformation($"{flag}接收到立体库确认单据内容:" + json+"立体库任务完成");
}
}
else
{
errors.Add("立体库确认单据里无数据! \n");
}
}
catch (Exception ex)
@ -445,6 +496,7 @@ public class AssembleIssueJobAppService
ret = new ReusltObject
{
Code = int.Parse(GaoTongResultStatus.Failure), OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), Message = ex.Message
, Data = json
};
return ret;
}
@ -455,7 +507,9 @@ public class AssembleIssueJobAppService
{
Code = int.Parse(GaoTongResultStatus.Failure),
OperateTime = DateTime.Now.ToString("yyyy-MM-dd"),
Message = string.Join(",", errors.ToArray())
Message = string.Join(",", errors.ToArray()),
Data = json
};
}
@ -560,7 +614,7 @@ public class AssembleIssueJobAppService
var jobDetailInputdetail = assembleIssueJobDto.Details.FirstOrDefault();
var loctionDto = await _locationAppService.GetByCodeAsync(jobDetailInputdetail.RecommendFromLocationCode)
var loctionDto = await _locationAppService.GetByCodeAsync(jobDetailInputdetail.RecommendToLocationCode)
.ConfigureAwait(false);

Loading…
Cancel
Save