|
@ -18,6 +18,7 @@ using Win_in.Sfs.Wms.Store.Application.Contracts; |
|
|
using Win_in.Sfs.Wms.Store.Domain; |
|
|
using Win_in.Sfs.Wms.Store.Domain; |
|
|
using Win_in.Sfs.Wms.Store.Domain.Shared; |
|
|
using Win_in.Sfs.Wms.Store.Domain.Shared; |
|
|
using Win_in.Sfs.Wms.Store.Jobs.IssueJobs; |
|
|
using Win_in.Sfs.Wms.Store.Jobs.IssueJobs; |
|
|
|
|
|
using Win_in.Sfs.Wms.Store.Jobs.IssueJobs.proxy; |
|
|
using Win_in.Sfs.Wms.Store.Notes; |
|
|
using Win_in.Sfs.Wms.Store.Notes; |
|
|
using Win_in.Sfs.Wms.Store.Options; |
|
|
using Win_in.Sfs.Wms.Store.Options; |
|
|
using static IdentityModel.ClaimComparer; |
|
|
using static IdentityModel.ClaimComparer; |
|
@ -311,7 +312,14 @@ public class KittingIssueJobAppService |
|
|
if (loctionDto.Type == EnumLocationType.DimensionalStorehouse) |
|
|
if (loctionDto.Type == EnumLocationType.DimensionalStorehouse) |
|
|
{ |
|
|
{ |
|
|
//TODO 立体库
|
|
|
//TODO 立体库
|
|
|
|
|
|
var ret = await SyncIssueJobStereoAsync(new List<KittingIssueJobDTO> { kittingIssueJobDto }, loctionDto.Code).ConfigureAwait(false); |
|
|
|
|
|
if (ret.Code != "1") |
|
|
|
|
|
{ |
|
|
|
|
|
throw new UserFriendlyException($"调用立体库不成功!原因:{ret.Message}"); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// <summary>
|
|
@ -352,8 +360,8 @@ public class KittingIssueJobAppService |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[HttpPost("sync-issue-job-stereo")] |
|
|
|
|
|
public virtual async Task<ReusltObject> SyncCoatingJobStereoAsync(List<CoatingIssueJobDTO> input) |
|
|
private async Task<ReusltObject> SyncIssueJobStereoAsync(List<KittingIssueJobDTO> input,string p_loc) |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
ReusltObject ret = new ReusltObject(); |
|
|
ReusltObject ret = new ReusltObject(); |
|
@ -362,7 +370,6 @@ public class KittingIssueJobAppService |
|
|
ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd"); |
|
|
ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd"); |
|
|
try |
|
|
try |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
List<IssueJobToRestoDetailDTO> IssueJobToRestoDetailDTOs = new List<IssueJobToRestoDetailDTO>(); |
|
|
List<IssueJobToRestoDetailDTO> IssueJobToRestoDetailDTOs = new List<IssueJobToRestoDetailDTO>(); |
|
|
IssueJobToRestoDTO main = new IssueJobToRestoDTO(); |
|
|
IssueJobToRestoDTO main = new IssueJobToRestoDTO(); |
|
|
main.OperatorName = CurrentUser.UserName; |
|
|
main.OperatorName = CurrentUser.UserName; |
|
@ -374,7 +381,7 @@ public class KittingIssueJobAppService |
|
|
{ |
|
|
{ |
|
|
Count = jobitem.HandledToQty, |
|
|
Count = jobitem.HandledToQty, |
|
|
ProductNo = jobitem.ItemCode, |
|
|
ProductNo = jobitem.ItemCode, |
|
|
NeedSite = jobitem.HandledToLocationCode, |
|
|
NeedSite = p_loc, |
|
|
WorkNo = job.Number, |
|
|
WorkNo = job.Number, |
|
|
TaskNo = job.Number |
|
|
TaskNo = job.Number |
|
|
}); |
|
|
}); |
|
@ -382,17 +389,21 @@ public class KittingIssueJobAppService |
|
|
} |
|
|
} |
|
|
main.Details = IssueJobToRestoDetailDTOs; |
|
|
main.Details = IssueJobToRestoDetailDTOs; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if DEBUG
|
|
|
|
|
|
string json= System.Text.Json.JsonSerializer.Serialize(main); |
|
|
|
|
|
_options.Value.Address = "http://localhost:59094/CargoState/SyncCoatingJobStereo";//测试地址
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
#region
|
|
|
#region
|
|
|
IssueJobToRestoClient client = new IssueJobToRestoClient(_options.Value.Address, _httpClientFactory.CreateClient()); |
|
|
IssueJobToRestoClient client = new IssueJobToRestoClient(_options.Value.Address, _httpClientFactory.CreateClient()); |
|
|
ret = await client.SyncCoatingJobStereoAsync(main).ConfigureAwait(false); |
|
|
ret = await client.SyncIssueJobStereoAsync(main).ConfigureAwait(false); |
|
|
} |
|
|
} |
|
|
catch(Exception ex) { |
|
|
catch(Exception ex) { |
|
|
|
|
|
|
|
|
ret = new ReusltObject(); |
|
|
ret = new ReusltObject(); |
|
|
ret.Code = "1"; |
|
|
ret.Code = "2"; |
|
|
ret.Message=ex.Message; |
|
|
ret.Message=ex.Message; |
|
|
ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd"); |
|
|
ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd"); |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
#endregion
|
|
|
#endregion
|
|
|
return ret; |
|
|
return ret; |
|
@ -403,8 +414,12 @@ public class KittingIssueJobAppService |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[HttpPost("receive-issue-job-stereo")] |
|
|
[HttpPost("receive-issue-job-stereo")] |
|
|
public virtual async Task<ReusltObject> SyncReciveCoatingJobStereoAsync(IssueRequestFromRestoDTO input) |
|
|
public virtual async Task<ReusltObject> SyncReciveIssueJobStereoAsync(IssueRequestFromRestoDTO input) |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
#if DEBUG
|
|
|
|
|
|
var json= System.Text.Json.JsonSerializer.Serialize(input); |
|
|
|
|
|
#endif
|
|
|
List<string> errors = new List<string>(); |
|
|
List<string> errors = new List<string>(); |
|
|
var ret = new ReusltObject() |
|
|
var ret = new ReusltObject() |
|
|
{ |
|
|
{ |
|
@ -414,22 +429,30 @@ public class KittingIssueJobAppService |
|
|
}; |
|
|
}; |
|
|
try |
|
|
try |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
|
if (input.Jobs.Count > 0) |
|
|
if (input.Jobs.Count > 0) |
|
|
{ |
|
|
{ |
|
|
var inputs = input.Jobs; |
|
|
var jobs = input.Jobs; |
|
|
var numbers = inputs.Select(p => p.JobNumber); |
|
|
var numbers = jobs.Select(p => p.JobNumber); |
|
|
var query = _repository.WithDetails() |
|
|
var query = _repository.WithDetails() |
|
|
.Where(p => numbers.Contains(p.Number)); |
|
|
.Where(p => numbers.Contains(p.Number)); |
|
|
var entities = query.ToList(); |
|
|
var entities = query.ToList(); |
|
|
|
|
|
|
|
|
|
|
|
var dtos = ObjectMapper.Map<List<KittingIssueJob>, List<KittingIssueJobDTO>>(entities); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (input.Jobs.Count == entities.Count) |
|
|
if (input.Jobs.Count == entities.Count) |
|
|
{ |
|
|
{ |
|
|
errors.Add("出库任务和WMS出库任务不符,请核对! \n"); |
|
|
errors.Add("提交出库任务和WMS出库任务不符,请核对! \n"); |
|
|
} |
|
|
} |
|
|
var dtos = ObjectMapper.Map<List<KittingIssueJob>, List<KittingIssueJobDTO>>(entities); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var itm in dtos) |
|
|
foreach (var itm in dtos) |
|
|
{ |
|
|
{ |
|
|
var first = inputs.FirstOrDefault<IssueJobFromRestoDTO>(p => p.JobNumber == itm.Number); |
|
|
var first = jobs.FirstOrDefault<IssueJobFromRestoDTO>(p => p.JobNumber == itm.Number); |
|
|
|
|
|
var itmDetails= itm.Details.ToList(); |
|
|
List<KittingIssueJobDetailDTO> details = new List<KittingIssueJobDetailDTO>(); |
|
|
List<KittingIssueJobDetailDTO> details = new List<KittingIssueJobDetailDTO>(); |
|
|
foreach (var detail in first.Details) |
|
|
foreach (var detail in first.Details) |
|
|
{ |
|
|
{ |
|
@ -461,7 +484,6 @@ public class KittingIssueJobAppService |
|
|
}; |
|
|
}; |
|
|
return ret; |
|
|
return ret; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (errors.Count > 0) |
|
|
if (errors.Count > 0) |
|
|
{ |
|
|
{ |
|
|
|
|
|
|
|
@ -474,11 +496,5 @@ public class KittingIssueJobAppService |
|
|
} |
|
|
} |
|
|
return ret; |
|
|
return ret; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
#endregion
|
|
|
} |
|
|
} |
|
|