Browse Source

提交AGV修改

Agv分支2024-11-19
赵新宇 5 months ago
parent
commit
85c306cf53
  1. 24
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/DTOS/AgvDto.cs
  2. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobAccount.cs
  3. 151
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/AgvJobs/AgvJobAccountService.cs
  4. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs
  5. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs
  6. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs
  7. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs
  8. 4
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs
  9. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs
  10. 14
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedReceiptJobs/UnplannedReceiptJobAppService.cs
  11. 43
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationModule.cs
  12. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/JobType.cs

24
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/DTOS/AgvDto.cs

@ -9,32 +9,32 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
/// <summary>
/// 海康调闻荫入参数
/// </summary>
public class AgvRequestHK
public class AgvRequestDto
{
[Display(Name = "请求编号")]
public string ReqCode { set; get; }
//[Display(Name = "请求编号")]
//public string ReqCode { set; get; }
[Display(Name = "明细")]
public List<AgvRequestHKDetail> Data { set; get; }
public List<AgvRequestDetailDto> Data { set; get; }
}
/// <summary>
/// 海康调闻荫入参数
/// </summary>
public class AgvRequestOnlyJobHK
{
//[Display(Name = "请求编号")]
//public string ReqCode { set; get; }
[Display(Name = "明细")]
public List<AgvRequestHKDetail> Data { set; get; }
//public class AgvRequestOnlyJobHK
//{
// //[Display(Name = "请求编号")]
// //public string ReqCode { set; get; }
// [Display(Name = "明细")]
// public List<AgvRequestDetailDto> Data { set; get; }
}
//}
/// <summary>
/// 海康调闻荫入参明细
/// </summary>
public class AgvRequestHKDetail
public class AgvRequestDetailDto
{
[Display(Name = "任务类型")]
public string OrderType { set; get; }

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobAccount.cs

@ -10,7 +10,7 @@ namespace Win_in.Sfs.Wms.Store.Application.Contracts;
public interface IAgvJobAccountService
{
Task<AgvResultObject> AccountOutOrderAsync(AgvRequestOnlyJobHK request);
Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request);
}

151
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/AgvJobs/AgvJobAccountService.cs

@ -26,58 +26,105 @@ namespace Win_in.Sfs.Wms.Store.Jobs.AgvJobs;
public class AgvJobAccountService : ApplicationService
{
private readonly Func<string, IAgvJobAccountService> _Accessor;
public AgvJobAccountService(
Func<string, IAgvJobAccountService> Accessor
)
{
_Accessor = Accessor;
}
[HttpPost("accountOutOrder")]
public async Task<AgvResultObject> AccountOutOrderAsync(AgvRequestOnlyJobHK request)
{
var res = new AgvResultObject();
;
List<string> errors= new List<string>();
var jobList = request.Data.Select(p => p.OrderNum).Distinct();
foreach (var job in jobList)
{
var jobdetails = request.Data.Where(p => p.OrderNum == job);
if (jobdetails!=null && jobdetails.Any())
{
var first= jobdetails.FirstOrDefault();
var agvJobAccountService = _Accessor(first.OrderType);
var jobreq = new AgvRequestOnlyJobHK();
jobreq.Data =jobdetails.ToList();
var result = await agvJobAccountService.AccountOutOrderAsync(jobreq).ConfigureAwait(false);
if (result.Code != "0")
{
errors.Add($"任务{job}类型{first.OrderType}错误{result.Message}");
}
}
}
if (errors.Count > 0)
{
res.Code = "1";
res.Message =string.Join(",",errors);
res.ReqCode = "0";
return res;
}
res.Code = "0";
res.ReqCode = "0";
res.Message = "OK";
return res;
}
//private readonly Func<string, IAgvJobAccountService> _Accessor;
//private readonly IAssembleIssueJobAppService _assembleIssueJobAppService;
//private readonly ICoatingIssueJobAppService _coatingIssueJobAppService;
//private readonly IInjectionIssueJobAppService _injectionIssueJobAppService;
//private readonly IKittingIssueJobAppService _kittingIssueJobAppService;
//private readonly ISparePartIssueJobAppService _sparePartIssueJobAppService;
//private readonly IProductionLineAppService _productionLineAppService;
//private readonly IUnplannedIssueJobAppService _unplannedIssueJobAppService;
//private readonly IUnplannedReceiptJobAppService _unplannedReceiptJobAppService;
//public AgvJobAccountService(
// IAssembleIssueJobAppService assembleIssueJobAppService,
// ICoatingIssueJobAppService coatingIssueJobAppService,
// IInjectionIssueJobAppService injectionIssueJobAppService,
// IKittingIssueJobAppService kittingIssueJobAppService,
// ISparePartIssueJobAppService sparePartIssueJobAppService,
// IProductionLineAppService productionLineAppService,
// IUnplannedIssueJobAppService unplannedIssueJobAppService,
// IUnplannedReceiptJobAppService unplannedReceiptJobAppService
// //Func<string, IAgvJobAccountService> Accessor
// )
//{
// _unplannedIssueJobAppService = unplannedIssueJobAppService;
// _assembleIssueJobAppService = assembleIssueJobAppService;
// _coatingIssueJobAppService = coatingIssueJobAppService;
// _injectionIssueJobAppService = injectionIssueJobAppService;
// _kittingIssueJobAppService = kittingIssueJobAppService;
// _sparePartIssueJobAppService = sparePartIssueJobAppService;
// _productionLineAppService = productionLineAppService;
// _unplannedIssueJobAppService = unplannedIssueJobAppService;
// _unplannedReceiptJobAppService = unplannedReceiptJobAppService;
//}
//[HttpPost("accountOutOrder")]
//public async Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request)
//{
// var res = new AgvResultObject();
// List<string> errors= new List<string>();
// var jobList = request.Data.Select(p => p.OrderNum).Distinct();//多少个任务
// foreach (var job in jobList)
// {
// var jobdetails = request.Data.Where(p => p.OrderNum == job);//每个任务的明细
// if (jobdetails!=null && jobdetails.Any())
// {
// var first= jobdetails.FirstOrDefault();//每个任务指定那种类型
// var jobreq = new AgvRequestDto();
// jobreq.Data = jobdetails.ToList();//
// switch (int.Parse(first.OrderType))
// {
// case (int)EnumJobType.AssembleIssueJob:
// await _assembleIssueJobAppService.CallBackAgvAsync(jobreq).ConfigureAwait(false);
// break;
// case (int)EnumJobType.CoatingIssueJob:
// await _coatingIssueJobAppService.CallBackAgvAsync(jobreq).ConfigureAwait(false);
// break;
// case (int)EnumJobType.InjectionIssueJob:
// await _injectionIssueJobAppService.CallBackAgvAsync(jobreq).ConfigureAwait(false);
// break;
// case (int)EnumJobType.KittingIssueJob:
// await _assembleIssueJobAppService.CallBackAgvAsync(jobreq).ConfigureAwait(false);
// break;
// case (int)EnumJobType.SparePartIssueJob:
// await _sparePartIssueJobAppService.CallBackAgvAsync(jobreq).ConfigureAwait(false);
// break;
// case (int)EnumJobType.UnplannedIssueJob:
// await _sparePartIssueJobAppService.CallBackAgvAsync(jobreq).ConfigureAwait(false);
// break;
// case (int)EnumJobType.UnplannedReceiptJob:
// await _sparePartIssueJobAppService.CallBackAgvAsync(jobreq).ConfigureAwait(false);
// break;
// }
// // var result = await agvJobAccountService.CallBackAgvAsync(jobreq).ConfigureAwait(false);
// if (result.Code != "0")
// {
// errors.Add($"任务{job}类型{first.OrderType}错误{result.Message}");
// }
// }
// }
// if (errors.Count > 0)
// {
// res.Code = "1";
// res.Message =string.Join(",",errors);
// res.ReqCode = "0";
// return res;
// }
// res.Code = "0";
// res.ReqCode = "0";
// res.Message = "OK";
// return res;
//}
}

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

@ -39,7 +39,7 @@ namespace Win_in.Sfs.Wms.Store.Application;
public class AssembleIssueJobAppService
: SfsJobAppServiceBase<AssembleIssueJob, AssembleIssueJobDetail, AssembleIssueJobDTO, SfsJobRequestInputBase,
AssembleIssueJobCheckInput, AssembleIssueJobEditInput>,
IAssembleIssueJobAppService, ITransferLibCallback, IAgvJobAccountService
IAssembleIssueJobAppService, ITransferLibCallback
{
protected IAssembleIssueRequestAppService AssembleIssueRequestAppService =>
LazyServiceProvider.LazyGetRequiredService<IAssembleIssueRequestAppService>();
@ -878,7 +878,7 @@ public class AssembleIssueJobAppService
}
[HttpPost("call-back-agv")]
public async Task<AgvResultObject> AccountOutOrderAsync(AgvRequestOnlyJobHK request)
public async Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request)
{
var json = JsonSerializer.Serialize(request);
var flag = DateTime.Now.ToString("yyyyMMddHHmmss");
@ -903,13 +903,11 @@ public class AssembleIssueJobAppService
var numbers = jobs.Select(p => p.OrderNum);
var query = _repository.WithDetails()
.Where(p => numbers.Contains(p.Number) && p.JobStatus != EnumJobStatus.Done);
var entities = query.ToList();
if (entities.Count == 0)
{
errors.Add($"任务号{string.Join(",", numbers)}不存在!");
}
var dtos = ObjectMapper.Map<List<AssembleIssueJob>, List<AssembleIssueJobDTO>>(entities);
foreach (var itm in dtos)
@ -919,7 +917,6 @@ public class AssembleIssueJobAppService
var details = new List<AssembleIssueJobDetailDTO>();
foreach (var detail in arys)
{
var fromloc = await _postionLocationAppService.GetByCodeAsync(detail.BeginPosition).ConfigureAwait(false);
if (fromloc == null)
{
@ -1188,7 +1185,7 @@ public class AssembleIssueJobAppService
request.MatCode = first.ItemCode;
request.MatQty = first.HandledToQty;
request.OrderNum = job.Number;
request.OrderType = "1001";
request.OrderType = EnumJobType.AssembleIssueJob.ToString();
var httpclient = _httpClientFactory.CreateClient();
_agvOptions.Value.Address = string.IsNullOrEmpty(_agvOptions.Value.Address)

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs

@ -754,7 +754,7 @@ public class CoatingIssueJobAppService
request.MatCode = first.ItemCode;
request.MatQty = first.HandledToQty;
request.OrderNum = job.Number;
request.OrderType = "2";
request.OrderType = EnumJobType.CoatingIssueJob.ToString();
var httpclient = _httpClientFactory.CreateClient();
_agvOptions.Value.Address = string.IsNullOrEmpty(_agvOptions.Value.Address)
@ -801,7 +801,7 @@ public class CoatingIssueJobAppService
return ret;
}
[HttpPost("accountOutOrder")]
public async Task<AgvResultObject> AccountOutOrderAsync(AgvRequestOnlyJobHK request)
public async Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request)
{
var json = JsonSerializer.Serialize(request);
var flag = DateTime.Now.ToString("yyyyMMddHHmmss");

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/InjectionIssueJobs/InjectionIssueJobAppService.cs

@ -703,7 +703,7 @@ public class InjectionIssueJobAppService
request.MatCode = first.ItemCode;
request.MatQty = first.HandledToQty;
request.OrderNum = job.Number;
request.OrderType = "2";
request.OrderType =EnumJobType.InjectionIssueJob.ToString();
var httpclient = _httpClientFactory.CreateClient();
_agvOptions.Value.Address = string.IsNullOrEmpty(_agvOptions.Value.Address)
@ -750,7 +750,7 @@ public class InjectionIssueJobAppService
return ret;
}
[HttpPost("accountOutOrder")]
public async Task<AgvResultObject> AccountOutOrderAsync(AgvRequestOnlyJobHK request)
public async Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request)
{
var json = JsonSerializer.Serialize(request);
var flag = DateTime.Now.ToString("yyyyMMddHHmmss");

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs

@ -715,7 +715,7 @@ public class KittingIssueJobAppService
request.MatCode = first.ItemCode;
request.MatQty = first.HandledToQty;
request.OrderNum = job.Number;
request.OrderType = "2";
request.OrderType = EnumJobType.KittingIssueJob.ToString();
var httpclient = _httpClientFactory.CreateClient();
_agvOptions.Value.Address = string.IsNullOrEmpty(_agvOptions.Value.Address)
@ -762,7 +762,7 @@ public class KittingIssueJobAppService
return ret;
}
[HttpPost("accountOutOrder")]
public async Task<AgvResultObject> AccountOutOrderAsync(AgvRequestOnlyJobHK request)
public async Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request)
{
var json = JsonSerializer.Serialize(request);
var flag = DateTime.Now.ToString("yyyyMMddHHmmss");

4
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs

@ -693,7 +693,7 @@ public class SparePartIssueJobAppService
request.MatCode = first.ItemCode;
request.MatQty = first.HandledToQty;
request.OrderNum = job.Number;
request.OrderType = "2";
request.OrderType = EnumJobType.SparePartIssueJob.ToString();
var httpclient = _httpClientFactory.CreateClient();
_agvOptions.Value.Address = string.IsNullOrEmpty(_agvOptions.Value.Address)
@ -739,7 +739,7 @@ public class SparePartIssueJobAppService
return ret;
}
[HttpPost("accountOutOrder")]
public async Task<AgvResultObject> AccountOutOrderAsync(AgvRequestOnlyJobHK request)
public async Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request)
{
var json = JsonSerializer.Serialize(request);
var flag = DateTime.Now.ToString("yyyyMMddHHmmss");

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs

@ -34,7 +34,7 @@ namespace Win_in.Sfs.Wms.Store.Application;
public class UnplannedIssueJobAppService
: SfsJobAppServiceBase<UnplannedIssueJob, UnplannedIssueJobDetail, UnplannedIssueJobDTO, SfsJobRequestInputBase,
UnplannedIssueJobCheckInput, UnplannedIssueJobEditInput>,
IUnplannedIssueJobAppService,IAgvJobAccountService
IUnplannedIssueJobAppService
{
protected IUnplannedIssueRequestAppService UnplannedReceiptRequestAppService =>
LazyServiceProvider.LazyGetRequiredService<IUnplannedIssueRequestAppService>();
@ -669,7 +669,7 @@ public class UnplannedIssueJobAppService
request.MatCode = first.ItemCode;
request.MatQty = first.HandledQty;
request.OrderNum = job.Number;
request.OrderType = "2";
request.OrderType = EnumJobType.UnplannedIssueJob.ToString(); ;
var httpclient = _httpClientFactory.CreateClient();
_agvOptions.Value.Address = string.IsNullOrEmpty(_agvOptions.Value.Address)
@ -715,7 +715,7 @@ public class UnplannedIssueJobAppService
return ret;
}
[HttpPost("accountOutOrder")]
public async Task<AgvResultObject> AccountOutOrderAsync(AgvRequestOnlyJobHK request)
public async Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request)
{
var json = JsonSerializer.Serialize(request);
var flag = DateTime.Now.ToString("yyyyMMddHHmmss");

14
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedReceiptJobs/UnplannedReceiptJobAppService.cs

@ -41,7 +41,7 @@ using Microsoft.Extensions.Logging;
public class UnplannedReceiptJobAppService
: SfsJobAppServiceBase<UnplannedReceiptJob, UnplannedReceiptJobDetail, UnplannedReceiptJobDTO, SfsJobRequestInputBase, UnplannedReceiptJobCheckInput, UnplannedReceiptJobEditInput>,
IUnplannedReceiptJobAppService, IAgvJobAccountService
IUnplannedReceiptJobAppService
{
protected IUnplannedReceiptRequestAppService UnplannedReceiptRequestAppService=>
LazyServiceProvider.LazyGetRequiredService<IUnplannedReceiptRequestAppService>();
@ -345,7 +345,7 @@ public class UnplannedReceiptJobAppService
request.MatCode = first.ItemCode;
request.MatQty = first.HandledQty;
request.OrderNum = job.Number;
request.OrderType = "2";
request.OrderType = EnumJobType.UnplannedReceiptJob.ToString();
var httpclient = _httpClientFactory.CreateClient();
_agvOptions.Value.Address = string.IsNullOrEmpty(_agvOptions.Value.Address)
@ -391,7 +391,7 @@ public class UnplannedReceiptJobAppService
return ret;
}
[HttpPost("accountOutOrder")]
public async Task<AgvResultObject> AccountOutOrderAsync(AgvRequestOnlyJobHK request)
public async Task<AgvResultObject> CallBackAgvAsync(AgvRequestDto request)
{
var json = JsonSerializer.Serialize(request);
var flag = DateTime.Now.ToString("yyyyMMddHHmmss");
@ -467,8 +467,6 @@ public class UnplannedReceiptJobAppService
{
errors.Add($"结束点{detail.EndPosition}库位没查到");
}
var entity = itmDetails.FirstOrDefault(p => p.ItemCode == detail.MatCode);
if (entity == null)
{
@ -483,9 +481,6 @@ public class UnplannedReceiptJobAppService
Message = string.Join(",", errors.ToArray())
};
}
var dto = new UnplannedReceiptJobDetailDTO();
dto.InjectFrom(entity);
@ -512,9 +507,6 @@ public class UnplannedReceiptJobAppService
details.Add(dto);
//await ExecuteDetailExtAsync(itm.Id, entity.Id, dto).ConfigureAwait(false);
}

43
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationModule.cs

@ -6,8 +6,9 @@ using Volo.Abp.AutoMapper;
using Volo.Abp.Modularity;
using Volo.Abp.Settings;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
using Win_in.Sfs.Wms.Store.Jobs.AgvJobs;
using Win_in.Sfs.Wms.Store.Options;
namespace Win_in.Sfs.Wms.Store.Application;
@ -41,46 +42,8 @@ public class StoreApplicationModule : AbpModule
context.Services.Replace(ServiceDescriptor.Transient<IUnplannedReceiptRequestAppService, UnplannedReceiptRequestForDongyangAppService>());
context.Services.Replace(ServiceDescriptor.Transient<ICountAdjustRequestAppService, CountAdjustRequestForDongyangAppService>());
context.Services.AddTransient(implementationFactory =>
{
Func<string, IAgvJobAccountService> accesor = key =>
{
if (key.Equals("1001"))
{
return implementationFactory.GetService<AssembleIssueJobAppService>();
}
if (key.Equals("1002"))
{
return implementationFactory.GetService<CoatingIssueJobAppService>();
}
if (key.Equals("1003"))
{
return implementationFactory.GetService<KittingIssueJobAppService>();
}
if (key.Equals("1004"))
{
return implementationFactory.GetService<InjectionIssueJobAppService>();
}
if (key.Equals("1005"))
{
return implementationFactory.GetService<SparePartIssueJobAppService>();
}
if (key.Equals("1005"))
{
return implementationFactory.GetService<UnplannedIssueJobAppService>();
}
if (key.Equals("1005"))
{
return implementationFactory.GetService<UnplannedReceiptJobAppService>();
}
else
{
throw new ArgumentException($"Not Support key:{key}");
}
}; return accesor;
});
//context.Services.Replace(ServiceDescriptor.Transient<IDeliverRequestAppService, deli>());
Configure<AbpSettingOptions>(options =>
{

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Bases/JobType.cs

@ -0,0 +1,9 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Win_in.Sfs.Wms.Store.Bases;
Loading…
Cancel
Save