|
|
@ -40,7 +40,7 @@ public class UnplannedIssueJobAppService |
|
|
|
|
|
|
|
public UnplannedIssueJobAppService( |
|
|
|
IUnplannedIssueJobRepository repository, IUnplannedIssueJobManager unplannedIssueJobManager, ILocationAppService locationAppService, IBalanceAppService balanceAppService, IExpectOutAppService expectOutAppService |
|
|
|
) : base(repository, unplannedIssueJobManager) |
|
|
|
) : base(repository, unplannedIssueJobManager ) |
|
|
|
{ |
|
|
|
_unplannedIssueJobManager = unplannedIssueJobManager; |
|
|
|
_locationAppService = locationAppService; |
|
|
@ -96,57 +96,7 @@ public class UnplannedIssueJobAppService |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 根据储位推荐
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
//[HttpPost("add-detail")]
|
|
|
|
//public async Task AddDetailsAsync(UnplannedIssueJobDTO jobInput)
|
|
|
|
//{
|
|
|
|
// var entity=await _repository.GetAsync(p=>p.Id==jobInput.Id).ConfigureAwait(false);
|
|
|
|
// var details=ObjectMapper.Map<List<UnplannedIssueJobDetailDTO>, List<UnplannedIssueJobDetail>>(jobInput.Details);
|
|
|
|
|
|
|
|
// var balances=new List<BalanceDTO>();
|
|
|
|
|
|
|
|
|
|
|
|
// foreach (var itm in entity.Details)
|
|
|
|
// {
|
|
|
|
// entity.RemoveDetail(itm.Id);
|
|
|
|
// }
|
|
|
|
// //var strs=GetAllFields(typeof(UnplannedIssueJobDetail));
|
|
|
|
// foreach (var detail in details)//明细
|
|
|
|
// {
|
|
|
|
// //_locationAppService.get detail.HandledFromLocationCode
|
|
|
|
// var input = new RecommendBalanceRequestInput
|
|
|
|
// {
|
|
|
|
// ItemCode = detail.ItemCode,
|
|
|
|
// Qty = detail.HandledQty,
|
|
|
|
// Statuses = new EditableList<EnumInventoryStatus> { EnumInventoryStatus.OK },
|
|
|
|
// Locations = new List<string>() { detail.RecommendFromLocationCode },
|
|
|
|
// IsPackingCode = false
|
|
|
|
// };
|
|
|
|
// var usableList = await _balanceAppService.GetUsableListAsync(input).ConfigureAwait(false);//获取推荐库存
|
|
|
|
// usableList = usableList
|
|
|
|
// .OrderBy(p => p.Lot)
|
|
|
|
// .ThenBy(p => p.PutInTime)
|
|
|
|
// .ThenBy(p => p.Qty) //2023-9-14 苑静雯 从小数开始发料
|
|
|
|
// .ThenBy(p => p.LocationCode)
|
|
|
|
// .ThenBy(p => p.PackingCode)
|
|
|
|
// .ToList();
|
|
|
|
// decimal qty = 0;
|
|
|
|
// //实际要用库存
|
|
|
|
// var returnlist = DeductInventory(usableList, detail.HandledQty);
|
|
|
|
// balances.AddRange(returnlist);
|
|
|
|
// //useBalancesOut.AddRange(returnlist);
|
|
|
|
// entity.AddDetail(detail);
|
|
|
|
// }
|
|
|
|
// var outEditInputs = await BuildExpectOutAsync(balances).ConfigureAwait(false);
|
|
|
|
// foreach (var itm in outEditInputs)
|
|
|
|
// {
|
|
|
|
// itm.JobNumber = jobInput.Number;
|
|
|
|
// }
|
|
|
|
// await _expectOutAppService.AddManyAsync(outEditInputs).ConfigureAwait(false);
|
|
|
|
//}
|
|
|
|
|
|
|
|
public static string[] GetAllFields(Type type) |
|
|
|
{ |
|
|
|
// 获取公共实例字段
|
|
|
@ -267,48 +217,7 @@ public class UnplannedIssueJobAppService |
|
|
|
|
|
|
|
foreach (var balanceDto in balanceDtoGroup) |
|
|
|
{ |
|
|
|
//var jobDetail = new UnplannedIssueJobDetail();
|
|
|
|
//jobDetail.Number = job.Number;
|
|
|
|
//jobDetail.SetIdAndNumber(GuidGenerator,job.Id,job.Number);
|
|
|
|
//jobDetail.CaseCode = requestDtoDetail.CaseCode;
|
|
|
|
//jobDetail.Explain = requestDtoDetail.Explain;
|
|
|
|
//jobDetail.OnceBusiCode = requestDtoDetail.OnceBusiCode;
|
|
|
|
//jobDetail.ProjCapacityCode = requestDtoDetail.ProjCapacityCode;
|
|
|
|
////jobDetail.ReasonCode = requestDtoDetail.ReasonCode;
|
|
|
|
//jobDetail.ItemCode = requestDtoDetail.ItemCode;
|
|
|
|
//jobDetail.ItemDesc1 = requestDtoDetail.ItemDesc1;
|
|
|
|
//jobDetail.ItemDesc2 = requestDtoDetail.ItemDesc2;
|
|
|
|
//jobDetail.ItemName = requestDtoDetail.ItemName;
|
|
|
|
//jobDetail.RecommendArriveDate = balanceDto.ArriveDate;
|
|
|
|
//jobDetail.RecommendContainerCode = string.Empty;
|
|
|
|
//jobDetail.RecommendExpireDate = balanceDto.ExpireDate;
|
|
|
|
//jobDetail.RecommendLot = balanceDto.Lot;
|
|
|
|
//jobDetail.RecommendPackingCode = balanceDto.PackingCode;
|
|
|
|
//jobDetail.RecommendProduceDate = balanceDto.ProduceDate;
|
|
|
|
//jobDetail.RecommendQty = balanceDto.Qty;
|
|
|
|
//jobDetail.RecommendSupplierBatch = balanceDto.SupplierBatch;
|
|
|
|
//jobDetail.StdPackQty = requestDtoDetail.StdPackQty;
|
|
|
|
//jobDetail.RecommendPackingCode = balanceDto.PackingCode;
|
|
|
|
//jobDetail.HandledPackingCode = balanceDto.PackingCode;
|
|
|
|
//jobDetail.RecommendFromLocationArea = balanceDto.LocationArea;
|
|
|
|
//jobDetail.RecommendFromLocationCode = balanceDto.LocationCode;
|
|
|
|
//jobDetail.RecommendFromLocationErpCode = balanceDto.LocationErpCode;
|
|
|
|
//jobDetail.RecommendFromLocationGroup = balanceDto.LocationGroup;
|
|
|
|
//jobDetail.RecommendFromWarehouseCode = balanceDto.WarehouseCode;
|
|
|
|
//jobDetail.HandledFromLocationGroup = balanceDto.LocationGroup;
|
|
|
|
//jobDetail.HandledFromLocationArea = balanceDto.LocationArea;
|
|
|
|
//jobDetail.HandledFromLocationCode = balanceDto.LocationCode;
|
|
|
|
//jobDetail.HandledFromLocationErpCode = balanceDto.LocationErpCode;
|
|
|
|
//jobDetail.HandledFromWarehouseCode = balanceDto.WarehouseCode;
|
|
|
|
//jobDetail.HandledQty = balanceDto.Qty;
|
|
|
|
//jobDetail.HandledSupplierBatch = balanceDto.Lot;
|
|
|
|
//jobDetail.HandledArriveDate = balanceDto.ArriveDate;
|
|
|
|
//jobDetail.HandledProduceDate = balanceDto.ProduceDate;
|
|
|
|
//jobDetail.HandledExpireDate = balanceDto.ExpireDate;
|
|
|
|
//jobDetail.HandledContainerCode = balanceDto.ContainerCode;
|
|
|
|
//jobDetail.HandledLot = balanceDto.Lot;
|
|
|
|
//jobDetail.HandledPackingCode = balanceDto.PackingCode;
|
|
|
|
//jobDetail.Uom = balanceDto.Uom;
|
|
|
|
|
|
|
|
|
|
|
|
var jobfacDetail = new UnplannedIssueJobFacDetail(); |
|
|
|
|
|
|
@ -435,7 +344,10 @@ public class UnplannedIssueJobAppService |
|
|
|
|
|
|
|
public override async Task<UnplannedIssueJobDTO> CompleteAsync(Guid id, UnplannedIssueJobDTO dto) |
|
|
|
{ |
|
|
|
var job = await _repository.GetAsync(id).ConfigureAwait(false); |
|
|
|
|
|
|
|
//using (var _uow = new UnitOfWorkManager()) { }
|
|
|
|
|
|
|
|
var job = await _repository.GetAsync(id).ConfigureAwait(false); |
|
|
|
if (job.JobStatus is EnumJobStatus.Closed or EnumJobStatus.Cancelled or EnumJobStatus.None or EnumJobStatus.Done)//需要考虑下 多次提交的问题 所以不判断 进行中
|
|
|
|
{ |
|
|
|
throw new UserFriendlyException($"任务状态错误:编号为【{job.Number}】的任务已经【{job.JobStatus.GetDisplayName()}】"); |
|
|
@ -447,7 +359,7 @@ public class UnplannedIssueJobAppService |
|
|
|
var handleDto = ObjectMapper.Map<UnplannedIssueJob, UnplannedIssueJobDTO>(handleResult); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await UpdateRequestStatusAsync(job.UnplannedIssueRequestNumber).ConfigureAwait(false); |
|
|
|
|
|
|
|
|
|
|
|
return handleDto; |
|
|
|