|
|
@ -204,116 +204,121 @@ public class CoatingIssueJobAppService |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[HttpPost("sync-issue-job-stereo")] |
|
|
|
public virtual async Task<ReusltObject> SyncCoatingJobStereoAsync(List<CoatingIssueJobDTO> input) |
|
|
|
{ |
|
|
|
|
|
|
|
ReusltObject ret=new ReusltObject(); |
|
|
|
ret.Code = "1"; |
|
|
|
ret.Message = "操作成功"; |
|
|
|
ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd"); |
|
|
|
|
|
|
|
List<IssueJobToRestoDetailDTO> IssueJobToRestoDetailDTOs = new List<IssueJobToRestoDetailDTO>(); |
|
|
|
IssueJobToRestoDTO main=new IssueJobToRestoDTO(); |
|
|
|
main.OperatorName=CurrentUser.UserName; |
|
|
|
foreach (var job in input) |
|
|
|
{ |
|
|
|
foreach (var jobitem in job.Details) |
|
|
|
{ |
|
|
|
IssueJobToRestoDetailDTOs.Add(new IssueJobToRestoDetailDTO() |
|
|
|
{ |
|
|
|
Count=jobitem.HandledToQty, |
|
|
|
ProductNo=jobitem.ItemCode, |
|
|
|
NeedSite=jobitem.HandledToLocationCode, |
|
|
|
WorkNo=job.Number, |
|
|
|
TaskNo=job.Number |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
main.Details=IssueJobToRestoDetailDTOs; |
|
|
|
|
|
|
|
#region
|
|
|
|
IssueJobToRestoClient client = new IssueJobToRestoClient(_options.Value.Address, _httpClientFactory.CreateClient()); |
|
|
|
ret = await client.SyncIssueJobStereoAsync(main).ConfigureAwait(false); |
|
|
|
#endregion
|
|
|
|
return ret; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[HttpPost("receive-issue-job-stereo")] |
|
|
|
public virtual async Task<ReusltObject> SyncReciveCoatingJobStereoAsync(IssueRequestFromRestoDTO input) |
|
|
|
{ |
|
|
|
List<string> errors = new List<string>(); |
|
|
|
var ret=new ReusltObject() |
|
|
|
{ |
|
|
|
Code = "1", |
|
|
|
OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), |
|
|
|
Message = "操作成功" |
|
|
|
}; |
|
|
|
try |
|
|
|
{ |
|
|
|
if (input.Jobs.Count > 0) |
|
|
|
{ |
|
|
|
var inputs = input.Jobs; |
|
|
|
var numbers = inputs.Select(p => p.JobNumber); |
|
|
|
var query = _repository.WithDetails() |
|
|
|
.Where(p => numbers.Contains(p.Number)); |
|
|
|
var entities = query.ToList(); |
|
|
|
|
|
|
|
if (input.Jobs.Count == entities.Count) { |
|
|
|
errors.Add("出库任务和WMS出库任务不符,请核对! \n"); |
|
|
|
} |
|
|
|
var dtos = ObjectMapper.Map<List<CoatingIssueJob>, List<CoatingIssueJobDTO>>(entities); |
|
|
|
foreach (var itm in dtos) |
|
|
|
{ |
|
|
|
var first = inputs.FirstOrDefault<IssueJobFromRestoDTO>(p => p.JobNumber == itm.Number); |
|
|
|
List<CoatingIssueJobDetailDTO> details = new List<CoatingIssueJobDetailDTO>(); |
|
|
|
foreach (var detail in first.Details) |
|
|
|
{ |
|
|
|
CoatingIssueJobDetailDTO dto = new CoatingIssueJobDetailDTO(); |
|
|
|
dto.HandledFromLocationCode = detail.FromLocationCode; |
|
|
|
dto.HandledToLocationCode = detail.ToLocationCode; |
|
|
|
dto.ItemCode = detail.ItemCode; |
|
|
|
dto.RecommendFromQty = detail.Qty; |
|
|
|
dto.RecommendToQty = detail.Qty; |
|
|
|
dto.HandledFromQty = detail.Qty; |
|
|
|
dto.HandledToQty = detail.Qty; |
|
|
|
details.Add(dto); |
|
|
|
} |
|
|
|
itm.Details = details; |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
errors.Add("立体库确认单据里无数据! \n"); |
|
|
|
} |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
ret=new ReusltObject() |
|
|
|
{ |
|
|
|
Code = "2", |
|
|
|
OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), |
|
|
|
Message = ex.Message |
|
|
|
}; |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
if (errors.Count > 0) |
|
|
|
{ |
|
|
|
|
|
|
|
ret= new ReusltObject() |
|
|
|
{ |
|
|
|
Code = "2", |
|
|
|
OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), |
|
|
|
Message = string.Join(",",errors.ToArray()) |
|
|
|
}; |
|
|
|
} |
|
|
|
return ret; |
|
|
|
} |
|
|
|
//[HttpPost("sync-issue-job-stereo")]
|
|
|
|
//public virtual async Task<ReusltObject> SyncCoatingJobStereoAsync(List<CoatingIssueJobDTO> input)
|
|
|
|
//{
|
|
|
|
|
|
|
|
// ReusltObject ret=new ReusltObject();
|
|
|
|
// ret.Code = "1";
|
|
|
|
// ret.Message = "操作成功";
|
|
|
|
// ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd");
|
|
|
|
|
|
|
|
// List<IssueJobToRestoDetailDTO> IssueJobToRestoDetailDTOs = new List<IssueJobToRestoDetailDTO>();
|
|
|
|
// IssueJobToRestoDTO main=new IssueJobToRestoDTO();
|
|
|
|
// main.OperatorName=CurrentUser.UserName;
|
|
|
|
// foreach (var job in input)
|
|
|
|
// {
|
|
|
|
// foreach (var jobitem in job.Details)
|
|
|
|
// {
|
|
|
|
// IssueJobToRestoDetailDTOs.Add(new IssueJobToRestoDetailDTO()
|
|
|
|
// {
|
|
|
|
// Count=jobitem.HandledToQty,
|
|
|
|
// ProductNo=jobitem.ItemCode,
|
|
|
|
// NeedSite=jobitem.HandledToLocationCode,
|
|
|
|
// WorkNo=job.Number,
|
|
|
|
// TaskNo=job.Number
|
|
|
|
// });
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// main.Details=IssueJobToRestoDetailDTOs;
|
|
|
|
|
|
|
|
// #region
|
|
|
|
// IssueJobToRestoClient client = new IssueJobToRestoClient(_options.Value.Address, _httpClientFactory.CreateClient());
|
|
|
|
// ret = await client.SyncIssueJobStereoAsync(main).ConfigureAwait(false);
|
|
|
|
// #endregion
|
|
|
|
// return ret;
|
|
|
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//[HttpPost("receive-issue-job-stereo")]
|
|
|
|
//public virtual async Task<ReusltObject> SyncReciveCoatingJobStereoAsync(IssueRequestFromRestoDTO input)
|
|
|
|
//{
|
|
|
|
// List<string> errors = new List<string>();
|
|
|
|
// var ret=new ReusltObject()
|
|
|
|
// {
|
|
|
|
// Code = "1",
|
|
|
|
// OperateTime = DateTime.Now.ToString("yyyy-MM-dd"),
|
|
|
|
// Message = "操作成功"
|
|
|
|
// };
|
|
|
|
// try
|
|
|
|
// {
|
|
|
|
// if (input.Jobs.Count > 0)
|
|
|
|
// {
|
|
|
|
// var inputs = input.Jobs;
|
|
|
|
// var numbers = inputs.Select(p => p.JobNumber);
|
|
|
|
// var query = _repository.WithDetails()
|
|
|
|
// .Where(p => numbers.Contains(p.Number));
|
|
|
|
// var entities = query.ToList();
|
|
|
|
|
|
|
|
// if (input.Jobs.Count == entities.Count) {
|
|
|
|
// errors.Add("出库任务和WMS出库任务不符,请核对! \n");
|
|
|
|
// }
|
|
|
|
// var dtos = ObjectMapper.Map<List<CoatingIssueJob>, List<CoatingIssueJobDTO>>(entities);
|
|
|
|
// foreach (var itm in dtos)
|
|
|
|
// {
|
|
|
|
// var first = inputs.FirstOrDefault<IssueJobFromRestoDTO>(p => p.JobNumber == itm.Number);
|
|
|
|
|
|
|
|
// var itmDetails = itm.Details;
|
|
|
|
// List<CoatingIssueJobDetailDTO> details = new List<CoatingIssueJobDetailDTO>();
|
|
|
|
// foreach (var detail in first.Details)
|
|
|
|
// {
|
|
|
|
// var entity=itmDetails.FirstOrDefault(p => p.ItemCode == detail.ItemCode);
|
|
|
|
// CoatingIssueJobDetailDTO dto = new CoatingIssueJobDetailDTO();
|
|
|
|
// dto.HandledFromLocationCode = entity.HandledFromContainerCode;
|
|
|
|
// dto.HandledToLocationCode = entity.HandledToLocationCode;
|
|
|
|
// dto.ItemCode = detail.ItemCode;
|
|
|
|
// dto.RecommendFromQty = detail.Qty;
|
|
|
|
// dto.RecommendToQty = detail.Qty;
|
|
|
|
// dto.HandledFromQty = detail.Qty;
|
|
|
|
// dto.HandledToQty = detail.Qty;
|
|
|
|
// details.Add(dto);
|
|
|
|
// }
|
|
|
|
// itm.Details = details;
|
|
|
|
// await CompleteAsync(itm.Id, itm).ConfigureAwait(false);
|
|
|
|
// }
|
|
|
|
|
|
|
|
// }
|
|
|
|
// else
|
|
|
|
// {
|
|
|
|
// errors.Add("立体库确认单据里无数据! \n");
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// catch (Exception ex)
|
|
|
|
// {
|
|
|
|
// ret=new ReusltObject()
|
|
|
|
// {
|
|
|
|
// Code = "2",
|
|
|
|
// OperateTime = DateTime.Now.ToString("yyyy-MM-dd"),
|
|
|
|
// Message = ex.Message
|
|
|
|
// };
|
|
|
|
// return ret;
|
|
|
|
// }
|
|
|
|
|
|
|
|
// if (errors.Count > 0)
|
|
|
|
// {
|
|
|
|
|
|
|
|
// ret= new ReusltObject()
|
|
|
|
// {
|
|
|
|
// Code = "2",
|
|
|
|
// OperateTime = DateTime.Now.ToString("yyyy-MM-dd"),
|
|
|
|
// Message = string.Join(",",errors.ToArray())
|
|
|
|
// };
|
|
|
|
// }
|
|
|
|
// return ret;
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|