Browse Source

Merge branch 'dev_DY_CC' of http://dev.ccwin-in.com:3000/BoXu.Zheng/WZC2 into dev_DY_CC

dev_DY_CC
lvzb 11 months ago
parent
commit
ee18658f07
  1. 29
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Client/WebApi.cs
  2. 6
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs
  3. 2
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/ThirdLocationJobController.cs
  4. 9
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs
  5. 22
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs
  6. 24
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs
  7. 8
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs
  8. 13
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs
  9. 63
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs
  10. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/ThirdLocationJobs/ThirdLocationJobAppService.cs
  11. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs
  12. 105
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Notes/AssembleIssueNoteAutoMapperProfile.cs
  13. 51
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Notes/AssembleNoteAutoMapperProfile.cs
  14. 65
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/Issue/AssembleIssueNoteEventHandler.cs
  15. 65
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/Issue/CoatingIssueNoteEventHandler.cs
  16. 65
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/Issue/InjectionIssueNoteEventHandler.cs
  17. 0
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/Issue/KittingIssueNoteEventHandler.cs
  18. 107
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/Issue/SparePartIssueNoteEventHandler.cs
  19. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/ThirdLocationJobEventHandler.cs
  20. 16
      build/src/docker/publish/conf/settings/appsettings.Development.json
  21. 15
      build/src/docker/publish/conf/settings/appsettings.json

29
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Client/WebApi.cs

@ -1,3 +1,5 @@
//---------------------- //----------------------
// <auto-generated> // <auto-generated>
// Generated using the NSwag toolchain v14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org) // Generated using the NSwag toolchain v14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org)
@ -212,15 +214,15 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
/// <returns>Success</returns> /// <returns>Success</returns>
/// <exception cref="ApiException">A server side error occurred.</exception> /// <exception cref="ApiException">A server side error occurred.</exception>
public virtual System.Threading.Tasks.Task<System.Collections.Generic.ICollection<ResponCargoItem>> GetCargoStaticAsync(string p_AreaID) public virtual System.Threading.Tasks.Task<System.Collections.Generic.ICollection<ResponCargoItem>> GetCargoStaticAsync(string areaID)
{ {
return GetCargoStaticAsync(p_AreaID, System.Threading.CancellationToken.None); return GetCargoStaticAsync(areaID, System.Threading.CancellationToken.None);
} }
/// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param> /// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
/// <returns>Success</returns> /// <returns>Success</returns>
/// <exception cref="ApiException">A server side error occurred.</exception> /// <exception cref="ApiException">A server side error occurred.</exception>
public virtual async System.Threading.Tasks.Task<System.Collections.Generic.ICollection<ResponCargoItem>> GetCargoStaticAsync(string p_AreaID, System.Threading.CancellationToken cancellationToken) public virtual async System.Threading.Tasks.Task<System.Collections.Generic.ICollection<ResponCargoItem>> GetCargoStaticAsync(string areaID, System.Threading.CancellationToken cancellationToken)
{ {
var client_ = _httpClient; var client_ = _httpClient;
var disposeClient_ = false; var disposeClient_ = false;
@ -228,8 +230,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
{ {
using (var request_ = new System.Net.Http.HttpRequestMessage()) using (var request_ = new System.Net.Http.HttpRequestMessage())
{ {
request_.Content = new System.Net.Http.StringContent(string.Empty, System.Text.Encoding.UTF8, "text/plain"); request_.Method = new System.Net.Http.HttpMethod("GET");
request_.Method = new System.Net.Http.HttpMethod("POST");
request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("text/plain")); request_.Headers.Accept.Add(System.Net.Http.Headers.MediaTypeWithQualityHeaderValue.Parse("text/plain"));
var urlBuilder_ = new System.Text.StringBuilder(); var urlBuilder_ = new System.Text.StringBuilder();
@ -237,9 +238,9 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
// Operation Path: "CargoState/GetCargoStatic" // Operation Path: "CargoState/GetCargoStatic"
urlBuilder_.Append("CargoState/GetCargoStatic"); urlBuilder_.Append("CargoState/GetCargoStatic");
urlBuilder_.Append('?'); urlBuilder_.Append('?');
if (p_AreaID != null) if (areaID != null)
{ {
urlBuilder_.Append(System.Uri.EscapeDataString("p_AreaID")).Append('=').Append(System.Uri.EscapeDataString(ConvertToString(p_AreaID, System.Globalization.CultureInfo.InvariantCulture))).Append('&'); urlBuilder_.Append(System.Uri.EscapeDataString("AreaID")).Append('=').Append(System.Uri.EscapeDataString(ConvertToString(areaID, System.Globalization.CultureInfo.InvariantCulture))).Append('&');
} }
urlBuilder_.Length--; urlBuilder_.Length--;
@ -535,16 +536,8 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
} }
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))")]
public partial class ResponCargoItem1 public partial class ResponCargoItem1
{ {
/// <summary>
/// 读取次数
/// </summary>
[Newtonsoft.Json.JsonProperty("number", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public string Number { get; set; }
/// <summary> /// <summary>
/// 区域ID /// 区域ID
/// </summary> /// </summary>
@ -569,8 +562,12 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.Incoming
[Newtonsoft.Json.JsonProperty("flag", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)] [Newtonsoft.Json.JsonProperty("flag", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public int Flag { get; set; } public int Flag { get; set; }
}
[Newtonsoft.Json.JsonProperty("number", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public string Number { get; set; }
}

6
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs

@ -50,7 +50,6 @@ public class InjectionMoldingRequestReader : IReader
) )
{ {
_injectionRequest = injectionRequest; _injectionRequest = injectionRequest;
_logger = logger; _logger = logger;
_options = options; _options = options;
_httpClientFactory = httpClientFactory; _httpClientFactory = httpClientFactory;
@ -102,8 +101,7 @@ public class InjectionMoldingRequestReader : IReader
{ {
var idsList = await client.GetCargoStaticAsync(itm).ConfigureAwait(false); var idsList = await client.GetCargoStaticAsync(itm).ConfigureAwait(false);
Thread.Sleep(500);//设备读取50ms延时,设置延时时间为1000ms保证读取更新到信息
Thread.Sleep(1000);//设备读取50ms延时,设置延时时间为1000ms保证读取更新到信息
//flag 1-有货 0-空闲 //flag 1-有货 0-空闲
foreach (var respon in idsList.Where(r => r.Flag == 0)) foreach (var respon in idsList.Where(r => r.Flag == 0))
{ {
@ -167,6 +165,8 @@ public class InjectionMoldingRequestReader : IReader
_logger.LogInformation(MakeGrid($"{guid}同步WMS内容", injectionList)); _logger.LogInformation(MakeGrid($"{guid}同步WMS内容", injectionList));
//_logger.LogInformation($"标识{guid}同步WMS开始");
foreach (var inject in injectionList) foreach (var inject in injectionList)

2
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/ThirdLocationJobController.cs

@ -182,7 +182,7 @@ public class ThirdLocationJobController : AbpController
} }
/// <summary> /// <summary>
/// 关闭任务 /// 终止关闭任务
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>

9
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs

@ -36,4 +36,13 @@ public interface ISplitPackingRecAppService
/// <param name="toPackingCode"></param> /// <param name="toPackingCode"></param>
/// <returns></returns> /// <returns></returns>
Task<List<SplitPackingRecDTO>> GetSamePoNumberListByToPackingCode(string toPackingCode); Task<List<SplitPackingRecDTO>> GetSamePoNumberListByToPackingCode(string toPackingCode);
/// <summary>
///
/// </summary>
/// <param name="fromPackCode">from箱码</param>
/// <param name="inputQty">数量</param>
/// <returns></returns>
Task<bool> CheckSplitNum(string fromPackCode, decimal inputQty);
} }

22
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs

@ -128,5 +128,27 @@ public class SplitPackingRecAppService :
return ret; return ret;
} }
/// <summary>
///
/// </summary>
/// <param name="fromPackCode">from箱码</param>
/// <param name="inputQty">数量</param>
/// <returns></returns>
[HttpGet("check-split-num")]
public async Task<bool> CheckSplitNum(string fromPackCode, decimal inputQty)
{
var lst = await _splitPackingRecManager.GetAllByFromPackingCode(fromPackCode).ConfigureAwait(false);
var originObj = lst.FirstOrDefault(itm => itm.FromPackingCode == fromPackCode && itm.OprType == OprTypeEnum.Other);
if (originObj == null)
{
throw new UserFriendlyException($"[CheckSplitNum]拆箱记录表没有数据:fromPackCode={fromPackCode},OprType={OprTypeEnum.Other}");
}
var splitLst = lst.Where(itm => itm.FromPackingCode == fromPackCode && itm.OprType == OprTypeEnum.SplitBox);
decimal splitSum = splitLst.Sum(itm => itm.ToQty);
decimal overplusQty = originObj.FromQty - splitSum;
return overplusQty >= inputQty;
}
} }

24
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs

@ -47,11 +47,11 @@ public class TestService:ApplicationService
[HttpPost("GetCargoStatic")] [HttpGet("GetCargoStatic")]
/// <summary> /// <summary>
/// 异步开始生命周期操作不能堵塞 /// 异步开始生命周期操作不能堵塞
/// </summary> /// </summary>
public async Task<List<ResponCargoItem>> GetCargoStatic(string p_AreaID) public async Task<List<ResponCargoItem>> GetCargoStatic(string AreaID)
{ {
List<ResponCargoItem> result = new List<ResponCargoItem>(); List<ResponCargoItem> result = new List<ResponCargoItem>();
@ -60,28 +60,28 @@ public class TestService:ApplicationService
result.Add(new ResponCargoItem() { AreaID = "1", CargoID = "PTXB2", PartCode = "TMDLYA0A061AB", Flag = 0 }); result.Add(new ResponCargoItem() { AreaID = "1", CargoID = "PTXB2", PartCode = "TMDLYA0A061AB", Flag = 0 });
result.Add(new ResponCargoItem() { AreaID = "2", CargoID = "ZSXB2", PartCode = "TMDLYD0ABM5A", Flag = 0 }); result.Add(new ResponCargoItem() { AreaID = "2", CargoID = "ZSXB2", PartCode = "TMDLYD0ABM5A", Flag = 0 });
result = result.Where(p => p.AreaID == p_AreaID).ToList(); result = result.Where(p => p.AreaID == AreaID).ToList();
return result; return result;
} }
[HttpPost("SyncIssueJobStereo")] //[HttpPost("SyncIssueJobStereo")]
public virtual async Task<ReusltObject> SyncIssueJobStereoAsync(IssueJobToRestoDTO input) //public virtual async Task<ReusltObject> SyncIssueJobStereoAsync(IssueJobToRestoDTO input)
{ //{
ReusltObject reuslt=new ReusltObject(); // ReusltObject reuslt=new ReusltObject();
reuslt.Code = "1"; // reuslt.Code = "1";
reuslt.Message = "操作成功"; // reuslt.Message = "操作成功";
reuslt.OperateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // reuslt.OperateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
return reuslt; // return reuslt;
} //}

8
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs

@ -26,4 +26,12 @@ public interface ISplitPackingRecManager : IDomainService
Task<SplitPackingRec> GetTopPackingCode(string packingCode); Task<SplitPackingRec> GetTopPackingCode(string packingCode);
Task<SplitPackingRec> GetSplitPackingCode(string packingCode); Task<SplitPackingRec> GetSplitPackingCode(string packingCode);
Task<List<SplitPackingRec>> GetFirstOrDefaultPackingCode(List<string> toPackingCodeList); Task<List<SplitPackingRec>> GetFirstOrDefaultPackingCode(List<string> toPackingCodeList);
/// <summary>
/// 根据from箱码取所有记录
/// </summary>
/// <param name="fromPackingCode"></param>
/// <returns></returns>
Task<List<SplitPackingRec>> GetAllByFromPackingCode(string fromPackingCode);
} }

13
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs

@ -267,4 +267,17 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
//} //}
} }
/// <summary>
/// 根据from箱码取所有记录
/// </summary>
/// <param name="fromPackingCode"></param>
/// <returns></returns>
public async Task<List<SplitPackingRec>> GetAllByFromPackingCode(string fromPackingCode)
{
List<SplitPackingRec> lst = await _repository.GetListAsync(
itm => itm.FromPackingCode ==fromPackingCode)
.ConfigureAwait(false);
return lst;
}
} }

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

@ -341,11 +341,11 @@ public class AssembleIssueJobAppService
#endif #endif
//var json = JsonSerializer.Serialize(main); //var json = JsonSerializer.Serialize(main);
_options.Value.Address = "http://7e42682n64.goho.co:21171/"; //测试地址 _options.Value.Address =string.IsNullOrEmpty(_options.Value.Address)?"http://7e42682n64.goho.co:21171/": _options.Value.Address; //测试地址
_options.Value.Token = ""; //测试token _options.Value.Token = string.IsNullOrEmpty(_options.Value.Token)? string.Empty: _options.Value.Token; //测试token
_options.Value.UserName = ""; //测试用户名 _options.Value.UserName = string.IsNullOrEmpty(_options.Value.UserName) ? "": _options.Value.UserName; //测试用户名
_options.Value.Password = ""; //测试密码 _options.Value.Password = string.IsNullOrEmpty(_options.Value.Password) ? "": _options.Value.Password; //测试密码
_options.Value.Path = "zozocnApi/custom/receiveProductionPlan"; //测试密码 _options.Value.Path = string.IsNullOrEmpty(_options.Value.Path) ? "zozocnApi/custom/receiveProductionPlan":_options.Value.Path; //测试密码
_logger.LogInformation(System.Text.Json.JsonSerializer.Serialize(_options)); _logger.LogInformation(System.Text.Json.JsonSerializer.Serialize(_options));
@ -390,13 +390,9 @@ public class AssembleIssueJobAppService
var flag = DateTime.Now.ToString("yyyyMMddHHmmss"); var flag = DateTime.Now.ToString("yyyyMMddHHmmss");
_logger.LogInformation($"{flag}接收到立体库确认单据内容:" + json); _logger.LogInformation($"{flag}接收到立体库确认单据内容:" + json);
#if DEBUG #if DEBUG
#endif #endif
var errors = new List<string>(); var errors = new List<string>();
var ret = new ReusltObject { Code = int.Parse(GaoTongResultStatus.Success), OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), Message = "操作成功" }; var ret = new ReusltObject { Code = int.Parse(GaoTongResultStatus.Success), OperateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), Message = "操作成功" };
try try
{ {
if (input.Jobs.Count > 0) if (input.Jobs.Count > 0)
@ -415,56 +411,43 @@ public class AssembleIssueJobAppService
{ {
errors.Add("立体库提交出库任务和WMS任务不符,请核对! \n"); errors.Add("立体库提交出库任务和WMS任务不符,请核对! \n");
} }
foreach (var itm in dtos) foreach (var itm in dtos)
{ {
var first = jobs.FirstOrDefault(p => p.JobNumber == itm.Number); var first = jobs.FirstOrDefault(p => p.JobNumber == itm.Number);
var itmDetails = itm.Details.ToList(); var itmDetails = itm.Details.ToList();
var details = new List<AssembleIssueJobDetailDTO>(); var details = new List<AssembleIssueJobDetailDTO>();
foreach (var detail in first.Details) foreach (var detail in first.Details)
{ {
var loc=await _locationAppService.GetByCodeAsync(detail.FromLocationCode).ConfigureAwait(false); var loc=await _locationAppService.GetByCodeAsync(detail.FromLocationCode).ConfigureAwait(false);
if (loc == null) if (loc == null)
{ {
errors.Add($"目标库位{detail.FromLocationCode}没查到"); errors.Add($"来源库位{detail.FromLocationCode}没查到");
} }
var entity = itmDetails.FirstOrDefault(p => p.ItemCode == detail.ItemCode);
if (entity == null)
{
errors.Add($"物料号{detail.ItemCode}不在任务明细内!");
}
var entity = itmDetails.FirstOrDefault(p => p.ItemCode == detail.ItemCode);
var dto = new AssembleIssueJobDetailDTO(); var dto = new AssembleIssueJobDetailDTO();
//dto.HandledFromLocationCode = entity.HandledFromLocationCode;
//dto.HandledToLocationCode = entity.HandledToLocationCode;
// dto.ItemCode = detail.ItemCode;
dto.InjectFrom(entity); dto.InjectFrom(entity);
/*
dto.RecommendFromQty = detail.Qty; dto.RecommendFromQty = detail.Qty;
dto.RecommendToQty = detail.Qty; dto.RecommendToQty = detail.Qty;
dto.HandledFromQty = detail.Qty; dto.HandledFromQty = detail.Qty;
dto.HandledToQty = detail.Qty; dto.HandledToQty = detail.Qty;
*/
//dto.HandledToLocationCode = loc.Code;
//dto.HandledToLocationGroup = loc.LocationGroupCode;
//dto.HandledToLocationArea = loc.AreaCode;
//dto.HandledToLocationErpCode = loc.ErpLocationCode;
//dto.HandledToPackingCode = "";
dto.HandledFromLocationCode = loc.Code; dto.HandledFromLocationCode = loc.Code;
dto.HandledFromLocationGroup = loc.LocationGroupCode; dto.HandledFromLocationGroup = loc.LocationGroupCode;
dto.HandledFromLocationArea = loc.AreaCode; dto.HandledFromLocationArea = loc.AreaCode;
dto.HandledFromLocationErpCode = loc.ErpLocationCode; dto.HandledFromLocationErpCode = loc.ErpLocationCode;
dto.HandledFromPackingCode = ""; // dto.HandledToLocationCode = entity.HandledToLocationCode;
//dto.Status = entity.Status;
dto.HandledFromPackingCode = "";
details.Add(dto); details.Add(dto);
await ExecuteDetailAsync(itm.Id, entity.Id, dto).ConfigureAwait(false);
} }
if (errors.Count > 0) if (errors.Count > 0)
{ {
@ -474,23 +457,16 @@ public class AssembleIssueJobAppService
OperateTime = DateTime.Now.ToString("yyyy-MM-dd"), OperateTime = DateTime.Now.ToString("yyyy-MM-dd"),
Message = string.Join(",", errors.ToArray()), Message = string.Join(",", errors.ToArray()),
Data = json Data = json
}; };
} }
itm.Details = details; itm.Details = details;
await CompleteAsync(itm.Id, itm).ConfigureAwait(false); // await CompleteAsync(itm.Id, itm).ConfigureAwait(false);
_logger.LogInformation($"{flag}接收到立体库确认单据内容:" + json+"立体库任务完成"); _logger.LogInformation($"{flag}接收到立体库确认单据内容:" + json+"立体库任务完成");
} }
} }
else else
{ {
errors.Add("立体库确认单据里无数据! \n"); errors.Add("立体库确认单据里无数据! \n");
} }
} }
catch (Exception ex) catch (Exception ex)
@ -615,7 +591,6 @@ public class AssembleIssueJobAppService
{ {
var jobDetailInputdetail = assembleIssueJobDto.Details.FirstOrDefault(); var jobDetailInputdetail = assembleIssueJobDto.Details.FirstOrDefault();
var loctionDto = await _locationAppService.GetByCodeAsync(jobDetailInputdetail.RecommendFromLocationCode) var loctionDto = await _locationAppService.GetByCodeAsync(jobDetailInputdetail.RecommendFromLocationCode)
.ConfigureAwait(false); .ConfigureAwait(false);

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/ThirdLocationJobs/ThirdLocationJobAppService.cs

@ -89,6 +89,12 @@ public class ThirdLocationJobAppService
return handleDto; return handleDto;
} }
/// <summary>
/// 终止关闭任务
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
[HttpPost("close-job/{id}")] [HttpPost("close-job/{id}")]
public virtual async Task CloseJobAsync(Guid id) public virtual async Task CloseJobAsync(Guid id)
{ {

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs

@ -414,9 +414,15 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase
/// <returns></returns> /// <returns></returns>
private async Task<bool> WriteSplitPackingRec(TransferNoteEditInput transferNoteEditInput, SplitPacking_UpdateJobDetailInput updateJobDetailInput = null) private async Task<bool> WriteSplitPackingRec(TransferNoteEditInput transferNoteEditInput, SplitPacking_UpdateJobDetailInput updateJobDetailInput = null)
{ {
List<SplitPackingRecEditInput> recLst = new List<SplitPackingRecEditInput>(); List<SplitPackingRecEditInput> recLst = new List<SplitPackingRecEditInput>();
foreach (var inputDetail in transferNoteEditInput.Details) foreach (var inputDetail in transferNoteEditInput.Details)
{ {
bool qtyEnough = await _splitPackingRecAppService.CheckSplitNum(inputDetail.FromPackingCode, inputDetail.Qty).ConfigureAwait(false);
if (qtyEnough == false)
{
throw new UserFriendlyException($"[WriteSplitPackingRec]拆箱记录表数量不足:FromPackingCode={inputDetail.FromPackingCode},Qty={inputDetail.Qty}");
}
SplitPackingRecEditInput packRec = new SplitPackingRecEditInput(); SplitPackingRecEditInput packRec = new SplitPackingRecEditInput();
packRec.OprType = OprTypeEnum.SplitBox; packRec.OprType = OprTypeEnum.SplitBox;

105
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Notes/AssembleIssueNoteAutoMapperProfile.cs

@ -0,0 +1,105 @@
using AutoMapper;
using Microsoft.OpenApi.Extensions;
using Volo.Abp.AutoMapper;
using Win_in.Sfs.Wms.Inventory.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Event;
public partial class StoreEventAutoMapperProfile : Profile
{
private void AssembleIssueNoteAutoMapperProfile()
{
CreateMap<AssembleIssueNoteDetail, TransferLogEditInput>()
.Ignore(x => x.DocNumber)
.Ignore(x => x.JobNumber)
.Ignore(x => x.Worker)
.Ignore(x => x.TransType)
.Ignore(x => x.ExtraProperties)
.Ignore(x => x.TransSubType)
.ForMember(x => x.Qty, y => y.MapFrom(t => t.HandledToQty))
.ForMember(x => x.SupplierBatch, y => y.MapFrom(t => t.HandledFromSupplierBatch))
.ForMember(x => x.ArriveDate, y => y.MapFrom(t => t.HandledFromArriveDate))
.ForMember(x => x.ProduceDate, y => y.MapFrom(t => t.HandledFromProduceDate))
.ForMember(x => x.ExpireDate, y => y.MapFrom(t => t.HandledFromExpireDate))
.ForMember(x => x.FromPackingCode, y => y.MapFrom(t => t.HandledFromPackingCode))
.ForMember(x => x.FromContainerCode, y => y.MapFrom(t => t.HandledFromContainerCode))
.ForMember(x => x.FromLot, y => y.MapFrom(t => t.HandledFromLot))
.ForMember(x => x.FromStatus, y => y.MapFrom(t => t.Status))
.ForMember(x => x.FromLocationCode, y => y.MapFrom(t => t.HandledFromLocationCode))
.ForMember(x => x.FromLocationGroup, y => y.MapFrom(t => t.HandledFromLocationGroup))
.ForMember(x => x.FromLocationArea, y => y.MapFrom(t => t.HandledFromLocationArea))
.ForMember(x => x.FromLocationErpCode, y => y.MapFrom(t => t.HandledFromLocationErpCode))
.ForMember(x => x.FromWarehouseCode, y => y.MapFrom(t => t.HandledFromWarehouseCode))
.ForMember(x => x.ToLot, y => y.MapFrom(t => t.HandledToLot))
.ForMember(x => x.ToStatus, y => y.MapFrom(t => t.Status))
.ForMember(x => x.ToPackingCode, y => y.MapFrom(t => t.HandledToPackingCode))
.ForMember(x => x.ToContainerCode, y => y.MapFrom(t => t.HandledToContainerCode))
.ForMember(x => x.ToLocationCode, y => y.MapFrom(t => t.HandledToLocationCode))
.ForMember(x => x.ToLocationGroup, y => y.MapFrom(t => t.HandledToLocationGroup))
.ForMember(x => x.ToLocationArea, y => y.MapFrom(t => t.HandledToLocationArea))
.ForMember(x => x.ToLocationErpCode, y => y.MapFrom(t => t.HandledToLocationErpCode))
.ForMember(x => x.ToWarehouseCode, y => y.MapFrom(t => t.HandledToWarehouseCode))
;
CreateMap<AssembleIssueNote, IssueNoteDTO>()
.ForMember(x => x.RequestType, y => y.MapFrom(t => t.IssueRequestType.GetDisplayName()))
.Ignore(x => x.Workshop)
;
CreateMap<AssembleIssueNoteDetail, IssueNoteDetailDTO>()
.ForMember(x => x.IssueTime, y => y.MapFrom(t => t.CreationTime))
.ForMember(x => x.WorkStation, y => y.MapFrom(t => t.ProdLine))
.ForMember(x => x.RecommendQty, y => y.MapFrom(t => t.RecommendFromQty))
.ForMember(x => x.RecommendContainerCode, y => y.MapFrom(t => t.RecommendFromContainerCode))
.ForMember(x => x.RecommendPackingCode, y => y.MapFrom(t => t.RecommendFromPackingCode))
.ForMember(x => x.RecommendSupplierBatch, y => y.MapFrom(t => t.RecommendFromSupplierBatch))
.ForMember(x => x.RecommendArriveDate, y => y.MapFrom(t => t.RecommendFromArriveDate))
.ForMember(x => x.RecommendProduceDate, y => y.MapFrom(t => t.RecommendFromProduceDate))
.ForMember(x => x.RecommendExpireDate, y => y.MapFrom(t => t.RecommendFromExpireDate))
.ForMember(x => x.RecommendLot, y => y.MapFrom(t => t.RecommendFromLot))
.ForMember(x => x.HandledContainerCode, y => y.MapFrom(t => t.HandledToContainerCode))
.ForMember(x => x.HandledPackingCode, y => y.MapFrom(t => t.HandledToPackingCode))
.ForMember(x => x.HandledSupplierBatch, y => y.MapFrom(t => t.HandledToSupplierBatch))
.ForMember(x => x.HandledArriveDate, y => y.MapFrom(t => t.HandledToArriveDate))
.ForMember(x => x.HandledProduceDate, y => y.MapFrom(t => t.HandledToProduceDate))
.ForMember(x => x.HandledExpireDate, y => y.MapFrom(t => t.HandledToExpireDate))
.ForMember(x => x.HandledLot, y => y.MapFrom(t => t.HandledToLot))
.ForMember(x => x.HandledQty, y => y.MapFrom(t => t.HandledToQty))
.ForMember(x => x.FromPackingCode, y => y.MapFrom(t => t.HandledFromPackingCode))
.ForMember(x => x.ToPackingCode, y => y.MapFrom(t => t.HandledToPackingCode))
.ForMember(x => x.FromContainerCode, y => y.MapFrom(t => t.HandledFromContainerCode))
.ForMember(x => x.ToContainerCode, y => y.MapFrom(t => t.HandledToContainerCode))
.ForMember(x => x.FromLot, y => y.MapFrom(t => t.HandledFromLot))
.ForMember(x => x.ToLot, y => y.MapFrom(t => t.HandledToLot))
.ForMember(x => x.SupplierBatch, y => y.MapFrom(t => t.HandledToSupplierBatch))
.ForMember(x => x.ArriveDate, y => y.MapFrom(t => t.HandledToArriveDate))
.ForMember(x => x.ProduceDate, y => y.MapFrom(t => t.HandledToProduceDate))
.ForMember(x => x.ExpireDate, y => y.MapFrom(t => t.HandledToExpireDate))
.ForMember(x => x.FromLocationCode, y => y.MapFrom(t => t.HandledFromLocationCode))
.ForMember(x => x.FromLocationArea, y => y.MapFrom(t => t.HandledFromLocationArea))
.ForMember(x => x.FromLocationGroup, y => y.MapFrom(t => t.HandledFromLocationGroup))
.ForMember(x => x.FromLocationErpCode, y => y.MapFrom(t => t.HandledFromLocationErpCode))
.ForMember(x => x.FromWarehouseCode, y => y.MapFrom(t => t.HandledFromWarehouseCode))
.ForMember(x => x.ToLocationCode, y => y.MapFrom(t => t.HandledToLocationCode))
.ForMember(x => x.ToLocationArea, y => y.MapFrom(t => t.HandledToLocationArea))
.ForMember(x => x.ToLocationGroup, y => y.MapFrom(t => t.HandledToLocationGroup))
.ForMember(x => x.ToLocationErpCode, y => y.MapFrom(t => t.HandledToLocationErpCode))
.ForMember(x => x.ToWarehouseCode, y => y.MapFrom(t => t.HandledToWarehouseCode))
.ForMember(x => x.FromStatus, y => y.MapFrom(t => t.Status))
.ForMember(x => x.ToStatus, y => y.MapFrom(t => t.Status))
.ForMember(x => x.Qty, y => y.MapFrom(t => t.HandledToQty))
.ForMember(x => x.ItemCode, y => y.MapFrom(t => t.ItemCode))
.Ignore(x => x.ExpiredTime)
;
}
}

51
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Notes/AssembleNoteAutoMapperProfile.cs

@ -1,51 +0,0 @@
using AutoMapper;
using Volo.Abp.AutoMapper;
using Win_in.Sfs.Wms.Inventory.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Event;
public partial class StoreEventAutoMapperProfile : Profile
{
private void AssembleIssueNoteAutoMapperProfile()
{
CreateMap<AssembleIssueNoteDetail, TransferLogEditInput>()
.Ignore(x => x.DocNumber)
.Ignore(x => x.JobNumber)
.Ignore(x => x.Worker)
.Ignore(x => x.TransType)
.Ignore(x => x.ExtraProperties)
.Ignore(x => x.TransSubType)
.ForMember(x => x.Qty, y => y.MapFrom(t => t.HandledToQty))
.ForMember(x => x.SupplierBatch, y => y.MapFrom(t => t.HandledFromSupplierBatch))
.ForMember(x => x.ArriveDate, y => y.MapFrom(t => t.HandledFromArriveDate))
.ForMember(x => x.ProduceDate, y => y.MapFrom(t => t.HandledFromProduceDate))
.ForMember(x => x.ExpireDate, y => y.MapFrom(t => t.HandledFromExpireDate))
.ForMember(x => x.FromPackingCode, y => y.MapFrom(t => t.HandledFromPackingCode))
.ForMember(x => x.FromContainerCode, y => y.MapFrom(t => t.HandledFromContainerCode))
.ForMember(x => x.FromLot, y => y.MapFrom(t => t.HandledFromLot))
.ForMember(x => x.FromStatus, y => y.MapFrom(t => t.Status))
.ForMember(x => x.FromLocationCode, y => y.MapFrom(t => t.HandledFromLocationCode))
.ForMember(x => x.FromLocationGroup, y => y.MapFrom(t => t.HandledFromLocationGroup))
.ForMember(x => x.FromLocationArea, y => y.MapFrom(t => t.HandledFromLocationArea))
.ForMember(x => x.FromLocationErpCode, y => y.MapFrom(t => t.HandledFromLocationErpCode))
.ForMember(x => x.FromWarehouseCode, y => y.MapFrom(t => t.HandledFromWarehouseCode))
.ForMember(x => x.ToLot, y => y.MapFrom(t => t.HandledToLot))
.ForMember(x => x.ToStatus, y => y.MapFrom(t => t.Status))
.ForMember(x => x.ToPackingCode, y => y.MapFrom(t => t.HandledToPackingCode))
.ForMember(x => x.ToContainerCode, y => y.MapFrom(t => t.HandledToContainerCode))
.ForMember(x => x.ToLocationCode, y => y.MapFrom(t => t.HandledToLocationCode))
.ForMember(x => x.ToLocationGroup, y => y.MapFrom(t => t.HandledToLocationGroup))
.ForMember(x => x.ToLocationArea, y => y.MapFrom(t => t.HandledToLocationArea))
.ForMember(x => x.ToLocationErpCode, y => y.MapFrom(t => t.HandledToLocationErpCode))
.ForMember(x => x.ToWarehouseCode, y => y.MapFrom(t => t.HandledToWarehouseCode))
;
}
}

65
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/AssembleIssueNoteEventHandler.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/Issue/AssembleIssueNoteEventHandler.cs

@ -37,44 +37,45 @@ public class AssembleIssueNoteEventHandler
protected override async Task AddExchangeDataAsync(List<AssembleIssueNote> entities) protected override async Task AddExchangeDataAsync(List<AssembleIssueNote> entities)
{ {
var dtos = ObjectMapper.Map<List<AssembleIssueNote>, List<AssembleIssueNoteDTO>>(entities); var dtos = ObjectMapper.Map<List<AssembleIssueNote>, List<IssueNoteDTO>>(entities);
foreach (var detail in dtos.SelectMany(dto => dto.Details)) foreach (var detail in dtos.SelectMany(dto => dto.Details))
{ {
if (string.IsNullOrEmpty(detail.HandledFromLocationErpCode)) await detail.TrySetLocationAsync(LocationAclService).ConfigureAwait(false);
{ //if (string.IsNullOrEmpty(detail.HandledFromLocationErpCode))
var location = await LocationAclService.GetByCodeAsync(detail.HandledFromLocationCode).ConfigureAwait(false); //{
if (location != null) // var location = await LocationAclService.GetByCodeAsync(detail.HandledFromLocationCode).ConfigureAwait(false);
{ // if (location != null)
detail.HandledFromLocationErpCode = location.ErpLocationCode; // {
detail.HandledFromLocationGroup = location.LocationGroupCode; // detail.HandledFromLocationErpCode = location.ErpLocationCode;
detail.HandledFromLocationArea = location.AreaCode; // detail.HandledFromLocationGroup = location.LocationGroupCode;
// detail.HandledFromLocationArea = location.AreaCode;
if (string.IsNullOrEmpty(detail.HandledFromWarehouseCode)) // if (string.IsNullOrEmpty(detail.HandledFromWarehouseCode))
{ // {
detail.HandledFromWarehouseCode = location.WarehouseCode; // detail.HandledFromWarehouseCode = location.WarehouseCode;
} // }
} // }
} //}
if (string.IsNullOrEmpty(detail.HandledToLocationErpCode)) //if (string.IsNullOrEmpty(detail.HandledToLocationErpCode))
{ //{
var location = await LocationAclService.GetByCodeAsync(detail.HandledToLocationCode).ConfigureAwait(false); // var location = await LocationAclService.GetByCodeAsync(detail.HandledToLocationCode).ConfigureAwait(false);
if (location != null) // if (location != null)
{ // {
detail.HandledToLocationErpCode = location.ErpLocationCode; // detail.HandledToLocationErpCode = location.ErpLocationCode;
detail.HandledToLocationGroup = location.LocationGroupCode; // detail.HandledToLocationGroup = location.LocationGroupCode;
detail.HandledToLocationArea = location.AreaCode; // detail.HandledToLocationArea = location.AreaCode;
if (string.IsNullOrEmpty(detail.HandledToWarehouseCode)) // if (string.IsNullOrEmpty(detail.HandledToWarehouseCode))
{ // {
detail.HandledToWarehouseCode = location.WarehouseCode; // detail.HandledToWarehouseCode = location.WarehouseCode;
} // }
} // }
} //}
} }
var toErpDto = new List<AssembleIssueNoteDTO>(); var toErpDto = new List<IssueNoteDTO>();
foreach (var item in dtos) foreach (var item in dtos)
{ {
if (item.Details != null && item.Details.Count != 0) if (item.Details != null && item.Details.Count != 0)
@ -84,10 +85,10 @@ public class AssembleIssueNoteEventHandler
} }
//2023-12-6要求同储位不传入接口 按历史规则 //2023-12-6要求同储位不传入接口 按历史规则
var result = new List<AssembleIssueNoteDTO>(); var result = new List<IssueNoteDTO>();
foreach (var assembleIssueNoteDto in toErpDto) foreach (var assembleIssueNoteDto in toErpDto)
{ {
assembleIssueNoteDto.Details.RemoveAll(p => p.HandledFromLocationErpCode == p.HandledToLocationErpCode); assembleIssueNoteDto.Details.RemoveAll(p => p.HandledFromLocationErpCode == p.ToLocationErpCode);
if (assembleIssueNoteDto.Details.Count > 0) if (assembleIssueNoteDto.Details.Count > 0)
{ {
result.Add(assembleIssueNoteDto); result.Add(assembleIssueNoteDto);

65
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/CoatingIssueNoteEventHandler.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/Issue/CoatingIssueNoteEventHandler.cs

@ -37,44 +37,45 @@ public class CoatingIssueNoteEventHandler
protected override async Task AddExchangeDataAsync(List<CoatingIssueNote> entities) protected override async Task AddExchangeDataAsync(List<CoatingIssueNote> entities)
{ {
var dtos = ObjectMapper.Map<List<CoatingIssueNote>, List<CoatingIssueNoteDTO>>(entities); var dtos = ObjectMapper.Map<List<CoatingIssueNote>, List<IssueNoteDTO>>(entities);
foreach (var detail in dtos.SelectMany(dto => dto.Details)) foreach (var detail in dtos.SelectMany(dto => dto.Details))
{ {
if (string.IsNullOrEmpty(detail.HandledFromLocationErpCode)) await detail.TrySetLocationAsync(LocationAclService).ConfigureAwait(false);
{ //if (string.IsNullOrEmpty(detail.HandledFromLocationErpCode))
var location = await LocationAclService.GetByCodeAsync(detail.HandledFromLocationCode).ConfigureAwait(false); //{
if (location != null) // var location = await LocationAclService.GetByCodeAsync(detail.HandledFromLocationCode).ConfigureAwait(false);
{ // if (location != null)
detail.HandledFromLocationErpCode = location.ErpLocationCode; // {
detail.HandledFromLocationGroup = location.LocationGroupCode; // detail.HandledFromLocationErpCode = location.ErpLocationCode;
detail.HandledFromLocationArea = location.AreaCode; // detail.HandledFromLocationGroup = location.LocationGroupCode;
// detail.HandledFromLocationArea = location.AreaCode;
if (string.IsNullOrEmpty(detail.HandledFromWarehouseCode)) // if (string.IsNullOrEmpty(detail.HandledFromWarehouseCode))
{ // {
detail.HandledFromWarehouseCode = location.WarehouseCode; // detail.HandledFromWarehouseCode = location.WarehouseCode;
} // }
} // }
} //}
if (string.IsNullOrEmpty(detail.HandledToLocationErpCode)) //if (string.IsNullOrEmpty(detail.HandledToLocationErpCode))
{ //{
var location = await LocationAclService.GetByCodeAsync(detail.HandledToLocationCode).ConfigureAwait(false); // var location = await LocationAclService.GetByCodeAsync(detail.HandledToLocationCode).ConfigureAwait(false);
if (location != null) // if (location != null)
{ // {
detail.HandledToLocationErpCode = location.ErpLocationCode; // detail.HandledToLocationErpCode = location.ErpLocationCode;
detail.HandledToLocationGroup = location.LocationGroupCode; // detail.HandledToLocationGroup = location.LocationGroupCode;
detail.HandledToLocationArea = location.AreaCode; // detail.HandledToLocationArea = location.AreaCode;
if (string.IsNullOrEmpty(detail.HandledToWarehouseCode)) // if (string.IsNullOrEmpty(detail.HandledToWarehouseCode))
{ // {
detail.HandledToWarehouseCode = location.WarehouseCode; // detail.HandledToWarehouseCode = location.WarehouseCode;
} // }
} // }
} //}
} }
var toErpDto = new List<CoatingIssueNoteDTO>(); var toErpDto = new List<IssueNoteDTO>();
foreach (var item in dtos) foreach (var item in dtos)
{ {
if (item.Details != null && item.Details.Count != 0) if (item.Details != null && item.Details.Count != 0)
@ -84,10 +85,10 @@ public class CoatingIssueNoteEventHandler
} }
//2023-12-6要求同储位不传入接口 按历史规则 //2023-12-6要求同储位不传入接口 按历史规则
var result = new List<CoatingIssueNoteDTO>(); var result = new List<IssueNoteDTO>();
foreach (var coatingIssueNoteDto in toErpDto) foreach (var coatingIssueNoteDto in toErpDto)
{ {
coatingIssueNoteDto.Details.RemoveAll(p => p.HandledFromLocationErpCode == p.HandledToLocationErpCode); coatingIssueNoteDto.Details.RemoveAll(p => p.HandledFromLocationErpCode == p.ToLocationErpCode);
if (coatingIssueNoteDto.Details.Count > 0) if (coatingIssueNoteDto.Details.Count > 0)
{ {
result.Add(coatingIssueNoteDto); result.Add(coatingIssueNoteDto);

65
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/InjectionIssueNoteEventHandler.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/Issue/InjectionIssueNoteEventHandler.cs

@ -37,44 +37,45 @@ public class InjectionIssueNoteEventHandler
protected override async Task AddExchangeDataAsync(List<InjectionIssueNote> entities) protected override async Task AddExchangeDataAsync(List<InjectionIssueNote> entities)
{ {
var dtos = ObjectMapper.Map<List<InjectionIssueNote>, List<InjectionIssueNoteDTO>>(entities); var dtos = ObjectMapper.Map<List<InjectionIssueNote>, List<IssueNoteDTO>>(entities);
foreach (var detail in dtos.SelectMany(dto => dto.Details)) foreach (var detail in dtos.SelectMany(dto => dto.Details))
{ {
if(string.IsNullOrEmpty(detail.HandledFromLocationErpCode)) await detail.TrySetLocationAsync(LocationAclService).ConfigureAwait(false);
{ //if(string.IsNullOrEmpty(detail.HandledFromLocationErpCode))
var location = await LocationAclService.GetByCodeAsync(detail.HandledFromLocationCode).ConfigureAwait(false); //{
if (location != null) // var location = await LocationAclService.GetByCodeAsync(detail.HandledFromLocationCode).ConfigureAwait(false);
{ // if (location != null)
detail.HandledFromLocationErpCode = location.ErpLocationCode; // {
detail.HandledFromLocationGroup = location.LocationGroupCode; // detail.HandledFromLocationErpCode = location.ErpLocationCode;
detail.HandledFromLocationArea = location.AreaCode; // detail.HandledFromLocationGroup = location.LocationGroupCode;
// detail.HandledFromLocationArea = location.AreaCode;
if (string.IsNullOrEmpty(detail.HandledFromWarehouseCode)) // if (string.IsNullOrEmpty(detail.HandledFromWarehouseCode))
{ // {
detail.HandledFromWarehouseCode = location.WarehouseCode; // detail.HandledFromWarehouseCode = location.WarehouseCode;
} // }
} // }
} //}
if(string.IsNullOrEmpty(detail.HandledToLocationErpCode)) //if(string.IsNullOrEmpty(detail.HandledToLocationErpCode))
{ //{
var location = await LocationAclService.GetByCodeAsync(detail.HandledToLocationCode).ConfigureAwait(false); // var location = await LocationAclService.GetByCodeAsync(detail.HandledToLocationCode).ConfigureAwait(false);
if (location != null) // if (location != null)
{ // {
detail.HandledToLocationErpCode = location.ErpLocationCode; // detail.HandledToLocationErpCode = location.ErpLocationCode;
detail.HandledToLocationGroup = location.LocationGroupCode; // detail.HandledToLocationGroup = location.LocationGroupCode;
detail.HandledToLocationArea = location.AreaCode; // detail.HandledToLocationArea = location.AreaCode;
if (string.IsNullOrEmpty(detail.HandledToWarehouseCode)) // if (string.IsNullOrEmpty(detail.HandledToWarehouseCode))
{ // {
detail.HandledToWarehouseCode = location.WarehouseCode; // detail.HandledToWarehouseCode = location.WarehouseCode;
} // }
} // }
} //}
} }
var toErpDto = new List<InjectionIssueNoteDTO>(); var toErpDto = new List<IssueNoteDTO>();
foreach (var item in dtos) foreach (var item in dtos)
{ {
if (item.Details != null && item.Details.Count != 0) if (item.Details != null && item.Details.Count != 0)
@ -84,10 +85,10 @@ public class InjectionIssueNoteEventHandler
} }
//2023-12-6要求同储位不传入接口 按历史规则 //2023-12-6要求同储位不传入接口 按历史规则
var result = new List<InjectionIssueNoteDTO>(); var result = new List<IssueNoteDTO>();
foreach (var injectionIssueNoteDto in toErpDto) foreach (var injectionIssueNoteDto in toErpDto)
{ {
injectionIssueNoteDto.Details.RemoveAll(p => p.HandledFromLocationErpCode == p.HandledToLocationErpCode); injectionIssueNoteDto.Details.RemoveAll(p => p.HandledFromLocationErpCode == p.ToLocationErpCode);
if (injectionIssueNoteDto.Details.Count > 0) if (injectionIssueNoteDto.Details.Count > 0)
{ {
result.Add(injectionIssueNoteDto); result.Add(injectionIssueNoteDto);

0
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/KittingIssueNoteEventHandler.cs → be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/Issue/KittingIssueNoteEventHandler.cs

107
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/Issue/SparePartIssueNoteEventHandler.cs

@ -0,0 +1,107 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.EventBus;
using Volo.Abp.Uow;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Shared.Event;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Event.DataExchanges;
/// <summary>
/// 备品发料记录传给TYRP(线边仓领料单)
/// </summary>
public class SparePartIssueNoteEventHandler
: StoreDataExchangeEventHandlerBase<SparePartIssueNote>
, ILocalEventHandler<SfsCreatedEntityEventData<SparePartIssueNote>>
, ILocalEventHandler<SfsCreatedEntityEventData<List<SparePartIssueNote>>>
{
//线边仓领料单
private const EnumExchangeDataType ExchangeDataType = EnumExchangeDataType.Issue;
[UnitOfWork]
public virtual async Task HandleEventAsync(SfsCreatedEntityEventData<SparePartIssueNote> eventData)
{
var entity = eventData.Entity;
await AddExchangeDataAsync(entity).ConfigureAwait(false);
}
[UnitOfWork]
public virtual async Task HandleEventAsync(SfsCreatedEntityEventData<List<SparePartIssueNote>> eventData)
{
var entities = eventData.Entity;
await AddExchangeDataAsync(entities).ConfigureAwait(false);
}
protected override async Task AddExchangeDataAsync(List<SparePartIssueNote> entities)
{
var dtos = ObjectMapper.Map<List<SparePartIssueNote>, List<IssueNoteDTO>>(entities);
foreach (var detail in dtos.SelectMany(dto => dto.Details))
{
await detail.TrySetLocationAsync(LocationAclService).ConfigureAwait(false);
//if(string.IsNullOrEmpty(detail.HandledFromLocationErpCode))
//{
// var location = await LocationAclService.GetByCodeAsync(detail.HandledFromLocationCode).ConfigureAwait(false);
// if (location != null)
// {
// detail.HandledFromLocationErpCode = location.ErpLocationCode;
// detail.HandledFromLocationGroup = location.LocationGroupCode;
// detail.HandledFromLocationArea = location.AreaCode;
// if (string.IsNullOrEmpty(detail.HandledFromWarehouseCode))
// {
// detail.HandledFromWarehouseCode = location.WarehouseCode;
// }
// }
//}
//if(string.IsNullOrEmpty(detail.HandledToLocationErpCode))
//{
// var location = await LocationAclService.GetByCodeAsync(detail.HandledToLocationCode).ConfigureAwait(false);
// if (location != null)
// {
// detail.HandledToLocationErpCode = location.ErpLocationCode;
// detail.HandledToLocationGroup = location.LocationGroupCode;
// detail.HandledToLocationArea = location.AreaCode;
// if (string.IsNullOrEmpty(detail.HandledToWarehouseCode))
// {
// detail.HandledToWarehouseCode = location.WarehouseCode;
// }
// }
//}
}
var toErpDto = new List<IssueNoteDTO>();
foreach (var item in dtos)
{
if (item.Details != null && item.Details.Count != 0)
{
toErpDto.Add(item);
}
}
//2023-12-6要求同储位不传入接口 按历史规则
var result = new List<IssueNoteDTO>();
foreach (var sparePartIssueNoteDto in toErpDto)
{
sparePartIssueNoteDto.Details.RemoveAll(p => p.HandledFromLocationErpCode == p.ToLocationErpCode);
if (sparePartIssueNoteDto.Details.Count > 0)
{
result.Add(sparePartIssueNoteDto);
}
}
if (result.Count > 0)
{
var exchangeDataerp =
await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, ExchangeDataType, result)
.ConfigureAwait(false);
await AddManyAsync(exchangeDataerp).ConfigureAwait(false);
}
}
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/ThirdLocationJobEventHandler.cs

@ -104,7 +104,7 @@ public class ThirdLocationJobEventHandler :
} }
/// <summary> /// <summary>
/// 关闭任务后 /// 终止关闭任务后
/// </summary> /// </summary>
/// <param name="eventData"></param> /// <param name="eventData"></param>
/// <returns></returns> /// <returns></returns>

16
build/src/docker/publish/conf/settings/appsettings.Development.json

@ -1,5 +1,21 @@
{ {
"AlwaysAllowAuthorization": "true", "AlwaysAllowAuthorization": "true",
"RestoOptions":
{
"Address" :"http://7e42682n64.goho.co:21171/",
//
"UserName" :"",
//
"Password" :"",
//
"Token" :"",
"Path" :"zozocnApi/custom/receiveProductionPlan"
},
"App": { "App": {
"CorsOrigins": [ "CorsOrigins": [
"http://localhost:59080", "http://localhost:59080",

15
build/src/docker/publish/conf/settings/appsettings.json

@ -1,4 +1,19 @@
{ {
"RestoOptions":
{
"Address" :"http://7e42682n64.goho.co:21171/",
//
"UserName" :"",
//
"Password" :"",
//
"Token" :"",
"Path" :"zozocnApi/custom/receiveProductionPlan"
},
// //
"AlwaysAllowAuthorization": "True", "AlwaysAllowAuthorization": "True",
// //

Loading…
Cancel
Save