Browse Source

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

dev_DY_CC
赵新宇 10 months ago
parent
commit
03eccdb2f4
  1. 14
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/appsettings.json
  2. 17
      be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/ErpLocationItemConverter.cs
  3. 16
      be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/appsettings.json
  4. 4
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs
  5. 15
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/SparePartIssueJobsController.cs
  6. 2
      be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs
  7. 31
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Dtos/SplitPackingRecDto.cs
  8. 3
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/ISplitPackingRecAppService.cs
  9. 35
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Inputs/SplitPackingRecEditInput.cs
  10. 11
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/SplitPackings/SplitPackingRecAppService.cs
  11. 28
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/PageHelper.cs
  12. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/ISplitPackingRecManager.cs
  13. 28
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRec.cs
  14. 105
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRecManager.cs
  15. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Win_in.Sfs.Basedata.Domain.csproj
  16. 4
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/SplitPackings/SplitPackingRecDbContextModelCreatingExtensions.cs
  17. 13
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Balances/BalanceManager.cs
  18. 30
      be/Modules/Label/src/Win_in.Sfs.Label.Application/InventoryLabels/InventoryLabelAppService.cs
  19. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/ICountJobAppService.cs
  20. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/SparePartIssueJobs/ISparePartIssueJobAppService.cs
  21. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAppService.cs
  22. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs
  23. 26
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/InventoryInitialNotes/InventoryInitialNoteAppService.cs
  24. 14
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs

14
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.EosAgent/appsettings.json

@ -1,12 +1,12 @@
{
"ConnectionStrings": {
"Default": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True;Encrypt=false",
"DataExchange": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_DataExchange_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True;Encrypt=false",
"EOS": "Server=10.164.0.224;Database=EOSNEV;Uid=wms;Pwd=1;TrustServerCertificate=True"
"Default": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True;Encrypt=false",
"DataExchange": "Server=10.164.233.6;Database=WMS_DongYang_DataExchange_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True;Encrypt=false",
"EOS": "Server=61.139.155.47;Database=EOSNEV;Uid=wms;Pwd=1;TrustServerCertificate=True"
},
"AuthServer": {
"Authority": "http://dev.ccwin-in.com:60083/",
"Authority": "http://10.164.233.5:60083/",
"RequireHttpsMetadata": "false",
"SwaggerClientId": "admin",
"SwaggerClientSecret": "1q2w3E*",
@ -25,13 +25,13 @@
"RemoteServices": {
"BaseData": {
"BaseUrl": "http://dev.ccwin-in.com:60084/"
"BaseUrl": "http://10.164.233.5:60084/"
},
"Store": {
"BaseUrl": "http://dev.ccwin-in.com:60085/"
"BaseUrl": "http://localhost:59095/"
},
"Label": {
"BaseUrl": "http://dev.ccwin-in.com:60082/"
"BaseUrl": "http://10.164.233.5:60082/"
}
},
"EosOptions": {

17
be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/ErpLocationItemConverter.cs

@ -53,20 +53,19 @@ public class ErpLocationItemConverter : IIncomingConverter
{
await Task.CompletedTask.ConfigureAwait(false);
var incomingToWmsList = new List<IncomingToWms>();
var groups = incomingDataList.GroupBy(p => p.SourceDataGroupCode);
foreach (var group in groups)
// var groups = incomingDataList.GroupBy(p => p.SourceDataGroupCode);
foreach (var detail in incomingDataList)
{
var first = group.First();
var incomingToWms = new IncomingToWms()
{
DataType = first.DataType,
DataAction = first.DataAction,
SourceSystem = first.SourceSystem,
DataIdentityCode = first.SourceDataGroupCode,
DataType = detail.DataType,
DataAction = detail.DataAction,
SourceSystem = detail.SourceSystem,
DataIdentityCode = detail.SourceDataGroupCode,
};
incomingToWms.SetId(_guidGenerator.Create());
incomingToWms.SetEffectiveDate(first.EffectiveDate);
var exchangeErpLocationItem = JsonSerializer.Deserialize<ErpLocationItemExchangeDto>(first.DestinationDataContent);
incomingToWms.SetEffectiveDate(detail.EffectiveDate);
var exchangeErpLocationItem = JsonSerializer.Deserialize<ErpLocationItemExchangeDto>(detail.DestinationDataContent);
var wmsErpLocationItem = _objectMapper.Map<ErpLocationItemExchangeDto, ErpLocationItemEditInput>(exchangeErpLocationItem);
incomingToWms.DataContent = JsonSerializer.Serialize(wmsErpLocationItem);
incomingToWmsList.Add(incomingToWms);

16
be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/appsettings.json

@ -1,13 +1,13 @@
{
"ConnectionStrings": {
"Default": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True",
"DataExchange": "Server=dev.ccwin-in.com,13319;Database=WMS_DongYang_DataExchange_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True"
"Default": "Server=10.164.233.6;Database=WMS_DongYang_Main_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True",
"DataExchange": "Server=10.164.233.6;Database=WMS_DongYang_DataExchange_CC;uid=ccwin-in;pwd=Microsoft@2022;TrustServerCertificate=True"
},
"AuthServer": {
"Authority": "http://dev.ccwin-in.com:60083/",
"Authority": "http://10.164.233.5:60083/",
"RequireHttpsMetadata": "false",
"SwaggerClientId": "admin",
"SwaggerClientSecret": "1q2w3E*",
@ -26,16 +26,16 @@
"RemoteServices": {
"BaseData": {
"BaseUrl": "http://dev.ccwin-in.com:60084/"
"BaseUrl": "http://10.164.233.5:60084/"
},
"Store": {
"BaseUrl": "http://dev.ccwin-in.com:60085/"
"BaseUrl": "http://localhost:59095/"
},
"Label": {
"BaseUrl": "http://dev.ccwin-in.com:60082/"
"BaseUrl": "http://10.164.233.5:60082/"
},
"Auth": {
"BaseUrl": "http://dev.ccwin-in.com:60083/"
"BaseUrl": "http://10.164.233.5:60083/"
}
},
"DataExchangeOptions": {
@ -44,7 +44,7 @@
"PeriodSeconds": 10,
"RetryTimes": 1,
"BatchSize": 100,
"apiUrl": "http://dev.ccwin-in.com:60085/"
"apiUrl": "http://10.164.233.5:60085/"
},
"OutgoingOptions": {
"Active": false,

4
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/CountJobController.cs

@ -105,10 +105,10 @@ public class CountJobController : AbpController
/// </summary>
/// <param name="jobNumber"></param>
/// <returns></returns>
[HttpGet("by-number/{jobNumber}")]
[HttpGet("by-number")]
public virtual async Task<ActionResult<CountJobDTO>> GetByNumberAsync(string jobNumber)
{
var jobDto = await _countJobAppService.GetByNumberAsync(jobNumber).ConfigureAwait(false);
var jobDto = await _countJobAppService.GetByNumber2Async(jobNumber).ConfigureAwait(false);
if (jobDto == null)
{
throw new UserFriendlyException($"未找到编号为 {jobNumber} 的任务");

15
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Jobs/IssueJobs/SparePartIssueJobsController.cs

@ -44,7 +44,7 @@ public class SparePartIssueJobsController : AbpController
if (jobStatus == "ALL")
{
status.Add((int)EnumJobStatus.Open);
status.Add((int)EnumJobStatus.Wait);
//status.Add((int)EnumJobStatus.Wait);
status.Add((int)EnumJobStatus.Doing);
status.Add((int)EnumJobStatus.Partial);
}
@ -162,17 +162,18 @@ public class SparePartIssueJobsController : AbpController
[HttpGet("by-number/{jobNumber}")]
public virtual async Task<ActionResult<SparePartIssueJobDTO>> GetByNumberAsync(string jobNumber)
{
var jobDto = await _sparePartIssueJobAppService.GetByNumberAsync(jobNumber).ConfigureAwait(false);
//var jobDto = await _sparePartIssueJobAppService.GetByNumberAsync(jobNumber).ConfigureAwait(false);
var jobDto = await _sparePartIssueJobAppService.GetByNumber2Async(jobNumber).ConfigureAwait(false);
if (jobDto == null)
{
throw new UserFriendlyException($"未找到编号为 {jobNumber} 的任务");
}
var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
if (!wlgCodes.Contains(jobDto.WorkGroupCode))
{
return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}");
}
//var wlgCodes = await _userWorkGroupAppService.GetCodsOfCurrentUserAsync().ConfigureAwait(false);
//if (!wlgCodes.Contains(jobDto.WorkGroupCode))
//{
// return new NotFoundObjectResult($"任务属于工作组 {jobDto.WorkGroupCode}");
//}
if (jobDto.JobStatus == EnumJobStatus.Doing && jobDto.ClaimsUserId != CurrentUser.Id.ToString())
{

2
be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/Stores/PurchaseReturnNoteController.cs

@ -147,7 +147,7 @@ public class PurchaseReturnNoteController : AbpController
{
var po = await _purchaseOrderAppService.GetListByNumberAndItemCodeAsync(poNumber, createInputDetail.ItemCode).ConfigureAwait(false);
Check.NotNull(po, nameof(PurchaseOrderDTO));
var detail = po.Details.FirstOrDefault(r => r.ItemCode == createInputDetail.ItemCode && r.Lot== createInputDetail.Lot);
var detail = po.Details.FirstOrDefault(r => r.ItemCode == createInputDetail.ItemCode);
Check.NotNull(detail, nameof(PurchaseOrderDetailDTO));
createInputDetail.PoLine = detail.PoLine;
}

31
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Dtos/SplitPackingRecDto.cs

@ -162,8 +162,6 @@ public class SplitPackingRecDTO : SfsBaseDataDTOBase
#region InventoryLabel兼容成员
/// <summary>
@ -217,22 +215,22 @@ public class SplitPackingRecDTO : SfsBaseDataDTOBase
/// <summary>
/// 托标签号
/// </summary>
[Display(Name = "托标签号")]
public string ContainerCode { get; set; }
//[Display(Name = "托标签号")]
//public string ContainerCode { get; set; }
#region 三个子实体成员
//-----------------------QualityInfo
/// <summary>
/// 质量级别
/// </summary>
[Display(Name = "质量级别")]
public string QLevel { get; set; }
//[Display(Name = "质量级别")]
//public string QLevel { get; set; }
/// <summary>
/// 质检文件
/// </summary>
[Display(Name = "质检文件")]
public string QualityFile { get; set; }
//[Display(Name = "质检文件")]
//public string QualityFile { get; set; }
//----------------------PurchaseInfo
/// <summary>
@ -263,28 +261,28 @@ public class SplitPackingRecDTO : SfsBaseDataDTOBase
/// <summary>
/// 生产线
/// </summary>
[Display(Name = "生产线")]
public string ProdLine { get; set; }
//[Display(Name = "生产线")]
//public string ProdLine { get; set; }
/// <summary>
/// 班组
/// </summary>
[Display(Name = "班组")]
public string Team { get; set; }
//[Display(Name = "班组")]
//public string Team { get; set; }
/// <summary>
/// 班次
/// </summary>
[Display(Name = "班次")]
public string Shift { get; set; }
//[Display(Name = "班次")]
//public string Shift { get; set; }
#endregion
/// <summary>
/// 规格
/// </summary>
[Display(Name = "规格")]
public string Specifications { get; set; }
//[Display(Name = "规格")]
//public string Specifications { get; set; }
/// <summary>
/// 供应商名称
@ -317,6 +315,5 @@ public class SplitPackingRecDTO : SfsBaseDataDTOBase
[Required(ErrorMessage = "{0}是必填项")]
public DateTime PlanArriveDate { get; set; }
#endregion
}

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

@ -45,4 +45,7 @@ public interface ISplitPackingRecAppService
/// <returns></returns>
Task<bool> CheckSplitNum(string fromPackCode, decimal inputQty);
Task<bool> BatchInsertTestAsync(List<SplitPackingRecEditInput> inputs);
}

35
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/SplitPackings/Inputs/SplitPackingRecEditInput.cs

@ -14,8 +14,8 @@ namespace Win_in.Sfs.Basedata.Application.Contracts;
public class SplitPackingRecEditInput : SfsBaseDataCreateOrUpdateInputBase
//, IHasPurchaseInfoDto
, IHasProductionInfoDto
, IHasQualityInfoDto
//, IHasProductionInfoDto
//, IHasQualityInfoDto
{
/// <summary>
/// 操作类型
@ -170,8 +170,6 @@ public class SplitPackingRecEditInput : SfsBaseDataCreateOrUpdateInputBase
public EnumLabelType LabelType { get; set; }
#region InventoryLabel兼容成员
/// <summary>
@ -225,22 +223,22 @@ public class SplitPackingRecEditInput : SfsBaseDataCreateOrUpdateInputBase
/// <summary>
/// 托标签号
/// </summary>
[Display(Name = "托标签号")]
public string ContainerCode { get; set; }
//[Display(Name = "托标签号")]
//public string ContainerCode { get; set; }
#region 三个子实体成员
//-----------------------QualityInfo
/// <summary>
/// 质量级别
/// </summary>
[Display(Name = "质量级别")]
public string QLevel { get; set; }
//[Display(Name = "质量级别")]
//public string QLevel { get; set; }
/// <summary>
/// 质检文件
/// </summary>
[Display(Name = "质检文件")]
public string QualityFile { get; set; }
//[Display(Name = "质检文件")]
//public string QualityFile { get; set; }
//----------------------PurchaseInfo
/// <summary>
@ -271,28 +269,28 @@ public class SplitPackingRecEditInput : SfsBaseDataCreateOrUpdateInputBase
/// <summary>
/// 生产线
/// </summary>
[Display(Name = "生产线")]
public string ProdLine { get; set; }
//[Display(Name = "生产线")]
//public string ProdLine { get; set; }
/// <summary>
/// 班组
/// </summary>
[Display(Name = "班组")]
public string Team { get; set; }
//[Display(Name = "班组")]
//public string Team { get; set; }
/// <summary>
/// 班次
/// </summary>
[Display(Name = "班次")]
public string Shift { get; set; }
//[Display(Name = "班次")]
//public string Shift { get; set; }
#endregion
/// <summary>
/// 规格
/// </summary>
[Display(Name = "规格")]
public string Specifications { get; set; }
//[Display(Name = "规格")]
//public string Specifications { get; set; }
/// <summary>
/// 供应商名称
@ -325,5 +323,4 @@ public class SplitPackingRecEditInput : SfsBaseDataCreateOrUpdateInputBase
[Required(ErrorMessage = "{0}是必填项")]
public DateTime PlanArriveDate { get; set; }
#endregion
}

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

@ -8,6 +8,7 @@ using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
using System.Linq;
using Volo.Abp;
using Volo.Abp.Uow;
namespace Win_in.Sfs.Basedata.Application;
@ -149,6 +150,12 @@ public class SplitPackingRecAppService :
return overplusQty >= inputQty;
}
[HttpPost("batch-insert-test")]
[UnitOfWork(IsDisabled =true)]
public async Task<bool> BatchInsertTestAsync(List<SplitPackingRecEditInput> inputs)
{
List<SplitPackingRec> lst = ObjectMapper.Map<List<SplitPackingRecEditInput>, List<SplitPackingRec>>(inputs);
bool ret = await _splitPackingRecManager.BatchInsertTestAsync(lst).ConfigureAwait(false);
return ret;
}
}

28
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/PageHelper.cs

@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Win_in.Sfs.Basedata.Commons;
public static class PageHelper
{
// 计算总页数
public static int GetTotalPages(int itemCount, int pageSize)
{
return (int)Math.Ceiling((double)itemCount / pageSize);
}
// 获取特定页的数据
public static List<T> GetPage<T>(List<T> sourceList, int pageNumber, int pageSize)
{
if (pageNumber < 1 || pageSize < 1)
throw new ArgumentException("页数和每页大小必须大于零");
int startIndex = (pageNumber - 1) * pageSize;
int count = Math.Min(pageSize, sourceList.Count - startIndex);
return sourceList.GetRange(startIndex, count);
}
}

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

@ -34,4 +34,6 @@ public interface ISplitPackingRecManager : IDomainService
/// <returns></returns>
Task<List<SplitPackingRec>> GetAllByFromPackingCode(string fromPackingCode);
Task<bool> BatchInsertTestAsync(List<SplitPackingRec> input);
}

28
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/SplitPackings/SplitPackingRec.cs

@ -148,8 +148,6 @@ public class SplitPackingRec : SfsBaseDataAggregateRootBase
public EnumLabelType LabelType { get; set; }
#region InventoryLabel兼容成员
/// <summary>
@ -195,7 +193,7 @@ public class SplitPackingRec : SfsBaseDataAggregateRootBase
/// <summary>
/// 托标签号
/// </summary>
public string ContainerCode { get; set; }
//public string ContainerCode { get; set; }
/// <summary>
/// 质量信息
@ -205,14 +203,14 @@ public class SplitPackingRec : SfsBaseDataAggregateRootBase
/// <summary>
/// 质量等级
/// </summary>
[MaxLength(SfsEfCorePropertyConst.CodeLength)]
public string QLevel { get; set; }
//[MaxLength(SfsEfCorePropertyConst.CodeLength)]
//public string QLevel { get; set; }
/// <summary>
/// 质检文件
/// </summary>
[MaxLength(SfsEfCorePropertyConst.CodeLength)]
public string QualityFile { get; set; }
//[MaxLength(SfsEfCorePropertyConst.CodeLength)]
//public string QualityFile { get; set; }
/// <summary>
@ -240,26 +238,26 @@ public class SplitPackingRec : SfsBaseDataAggregateRootBase
/// <summary>
/// 生产线
/// </summary>
[MaxLength(SfsEfCorePropertyConst.CodeLength)]
public string ProdLine { get; set; }
//[MaxLength(SfsEfCorePropertyConst.CodeLength)]
//public string ProdLine { get; set; }
/// <summary>
/// 班组
/// </summary>
[MaxLength(SfsEfCorePropertyConst.CodeLength)]
public string Team { get; set; }
//[MaxLength(SfsEfCorePropertyConst.CodeLength)]
//public string Team { get; set; }
/// <summary>
/// 班次
/// </summary>
[MaxLength(SfsEfCorePropertyConst.CodeLength)]
public string Shift { get; set; }
//[MaxLength(SfsEfCorePropertyConst.CodeLength)]
//public string Shift { get; set; }
/// <summary>
/// 规格
/// </summary>
[Display(Name = "规格")]
public string Specifications { get; set; }
//[Display(Name = "规格")]
//public string Specifications { get; set; }
/// <summary>
/// 供应商名称

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

@ -7,6 +7,7 @@ using Volo.Abp;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Domain.Services;
using Volo.Abp.ObjectMapping;
using Win_in.Sfs.Basedata.Commons;
using Win_in.Sfs.Basedata.Domain.Shared;
namespace Win_in.Sfs.Basedata.Domain;
@ -76,7 +77,8 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
if (hisLst3.ContainsKey(item.ToPackingCode) == false)
{
//SplitPackingRec newObj = CommonHelper.CloneObj(item);
SplitPackingRec newObj = ExpressionGenericMapper<SplitPackingRec, SplitPackingRec>.Trans(item);
//SplitPackingRec newObj = ExpressionGenericMapper<SplitPackingRec, SplitPackingRec>.Trans(item);
SplitPackingRec newObj = CloneSplitPackingRec(item);
newObj.SetId(GuidGenerator.Create());
newObj.OprType = OprTypeEnum.Other;
newObj.FromPackingCode = newObj.ToPackingCode; //克隆赋值
@ -93,11 +95,12 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
//{
//}
//SplitPackingRec newEntity = CommonHelper.CloneObj(item);
SplitPackingRec newEntity = ExpressionGenericMapper<SplitPackingRec, SplitPackingRec>.Trans(item);
//SplitPackingRec newEntity = ExpressionGenericMapper<SplitPackingRec, SplitPackingRec>.Trans(item);
SplitPackingRec newEntity = CloneSplitPackingRec(item);
newEntity.SetId(GuidGenerator.Create());
// var ret = await _repository.InsertAsync(newEntity, false).ConfigureAwait(false);
operLst.Add(newEntity);
// var ret = await _repository.InsertAsync(newEntity, false).ConfigureAwait(false);
operLst.Add(newEntity);
}
else
@ -108,19 +111,79 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
}
if (item.ToTopPackingCode.IsNullOrEmpty())
{
item.ToTopPackingCode = item.FromPackingCode;// ToPackingCode;
item.ToTopPackingCode = item.FromPackingCode;
}
//SplitPackingRec newEntity = CommonHelper.CloneObj(item);
SplitPackingRec newEntity = ExpressionGenericMapper<SplitPackingRec, SplitPackingRec>.Trans(item);
//SplitPackingRec newEntity = ExpressionGenericMapper<SplitPackingRec, SplitPackingRec>.Trans(item);
SplitPackingRec newEntity = CloneSplitPackingRec(item);
newEntity.SetId(GuidGenerator.Create());
//var ret = await _repository.InsertAsync(newEntity, false).ConfigureAwait(false);
operLst.Add(newEntity);
}
} //foreach
await _repository.InsertManyAsync(operLst).ConfigureAwait(false);
bool autoSave = false;
await _repository.InsertManyAsync(operLst, autoSave).ConfigureAwait(false);
return true;
}
private static SplitPackingRec CloneSplitPackingRec(SplitPackingRec input)
{
SplitPackingRec entity = new SplitPackingRec();
entity.OprType = input.OprType;
entity.FromPackingCode = input.FromPackingCode;
entity.FromTopPackingCode = input.FromTopPackingCode;
entity.FromStdPackQty = input.FromStdPackQty;
entity.FromUom = input.FromUom;
entity.FromQty = input.FromQty;
entity.ToPackingCode = input.ToPackingCode;
entity.ToTopPackingCode = input.ToTopPackingCode;
entity.ToStdPackQty = input.ToStdPackQty;
entity.ToUom = input.ToUom;
entity.ToQty = input.ToQty;
entity.ItemCode = input.ItemCode;
entity.ItemName = input.ItemName;
entity.ItemDesc1 = input.ItemDesc1;
entity.ItemDesc2 = input.ItemDesc2;
entity.FromLot = input.FromLot;
entity.ToLot = input.ToLot;
entity.PurchaseInfo_PoNumber = input.PurchaseInfo_PoNumber;
entity.PurchaseInfo_AsnNumber = input.PurchaseInfo_AsnNumber;
entity.ArrivalNoticNumber = input.ArrivalNoticNumber;
entity.TaskOrderNumber = input.TaskOrderNumber;
entity.ReceiptRecNumber = input.ReceiptRecNumber;
entity.PutOnShelfNumber = input.PutOnShelfNumber;
entity.LabelType = input.LabelType;
entity.CreationTime = input.CreationTime;
entity.CreatorId = input.CreatorId;
entity.LastModificationTime = input.LastModificationTime;
entity.LastModifierId = input.LastModifierId;
entity.Remark = input.Remark;
entity.ArriveDate = input.ArriveDate;
//entity.ContainerCode = input.ContainerCode;
entity.ExpireDate = input.ExpireDate;
entity.FullBarcodeString = input.FullBarcodeString;
entity.LabelStatus = input.LabelStatus;
entity.LocationErpCode = input.LocationErpCode;
entity.PlanArriveDate = input.PlanArriveDate;
entity.ProduceDate = input.ProduceDate;
//entity.ProdLine = input.ProdLine;
//entity.Shift = input.Shift;
//entity.Team = input.Team;
entity.RpNumber = input.RpNumber;
entity.SupplierCode = input.SupplierCode;
//entity.QLevel = input.QLevel;
//entity.QualityFile = input.QualityFile;
entity.RecommendLocationCode = input.RecommendLocationCode;
//entity.Specifications = input.Specifications;
entity.SupplierBatch = input.SupplierBatch;
entity.SupplierItemCode = input.SupplierItemCode;
entity.SupplierItemName = input.SupplierItemName;
entity.SupplierName = input.SupplierName;
entity.SupplierSimpleName = input.SupplierSimpleName;
return entity;
}
/// <summary>
/// 取每个目标箱码的最后一条拆箱记录
/// </summary>
@ -343,4 +406,32 @@ public class SplitPackingRecManager : DomainService, ISplitPackingRecManager
return lst;
}
public async Task<bool> BatchInsertTestAsync(List<SplitPackingRec> input)
{
List<SplitPackingRec> operLst = new List<SplitPackingRec>();
var firstObj = input[0];
int cnt = (int)(firstObj.FromStdPackQty);
for (int i = 1; i <= cnt; i++)
{
var newObj = CloneSplitPackingRec(firstObj);
newObj.SetId(this.GuidGenerator.Create());
newObj.FromTopPackingCode = newObj.FromPackingCode;
newObj.ToTopPackingCode = newObj.ToPackingCode;
operLst.Add(newObj);
}
//分页
int pageSize = 50;
int pageTotal = PageHelper.GetTotalPages(operLst.Count, pageSize);
for (int i = 1; i <= pageTotal; i++)
{
var curPage = PageHelper.GetPage<SplitPackingRec>(operLst, i, pageSize);
bool autoSave = false;
await _repository.InsertManyAsync(curPage, autoSave).ConfigureAwait(false);
}
return true;
}
}

2
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Win_in.Sfs.Basedata.Domain.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\common.props" />

4
be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/SplitPackings/SplitPackingRecDbContextModelCreatingExtensions.cs

@ -51,8 +51,8 @@ public static class SplitPackingRecDbContextModelCreatingExtensions
b.Property(q => q.SupplierBatch).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.RecommendLocationCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.LocationErpCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.ContainerCode).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.Specifications).HasMaxLength(SfsPropertyConst.CodeLength);
//b.Property(q => q.ContainerCode).HasMaxLength(SfsPropertyConst.CodeLength);
//b.Property(q => q.Specifications).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.SupplierName).HasMaxLength(SfsPropertyConst.NameLength);
b.Property(q => q.SupplierSimpleName).HasMaxLength(SfsPropertyConst.NameLength);
b.Property(q => q.SupplierItemCode).HasMaxLength(SfsPropertyConst.CodeLength);

13
be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Domain/Balances/BalanceManager.cs

@ -164,11 +164,16 @@ public class BalanceManager : DomainService, IBalanceManager
private async Task CheckErpLocationItemAsync(Transaction transaction)
{
var erpLocationItem =await _erpLocationItemAclService.GetFirstAsync( transaction.ItemCode, transaction.LocationErpCode).ConfigureAwait(false);
if (erpLocationItem == null)
var locationDto=await _locationAclService.GetByCodeAsync(transaction.LocationCode).ConfigureAwait(false);
if (locationDto.Type is not (EnumLocationType.INSP or EnumLocationType.HOLD or EnumLocationType.TRANSPORT))
{
throw new UserFriendlyException($"未找到物品【{transaction.ItemCode}】与ERP储位【{transaction.LocationErpCode}】的开账信息");
}
if (erpLocationItem == null)
{
throw new UserFriendlyException(
$"未找到物品【{transaction.ItemCode}】与ERP储位【{transaction.LocationErpCode}】的开账信息");
}
}
}
/// <summary>

30
be/Modules/Label/src/Win_in.Sfs.Label.Application/InventoryLabels/InventoryLabelAppService.cs

@ -12,6 +12,7 @@ using Volo.Abp.Domain.Repositories;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Basedata.Commons;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Label.Application.Contracts;
using Win_in.Sfs.Label.Domain;
@ -205,17 +206,17 @@ public class InventoryLabelAppService
packRec.LabelStatus = (Win_in.Sfs.Basedata.LabelStatus)((int)inputObj.LabelStatus);
packRec.RecommendLocationCode = inputObj.RecommendLocationCode;
packRec.LocationErpCode = inputObj.LocationErpCode;
packRec.ContainerCode = inputObj.ContainerCode;
packRec.QLevel = inputObj.QLevel;//
packRec.QualityFile = inputObj.QualityFile;
//packRec.ContainerCode = inputObj.ContainerCode;
//packRec.QLevel = inputObj.QLevel;//
//packRec.QualityFile = inputObj.QualityFile;
packRec.SupplierCode = inputObj.SupplierCode;
//packRec.PoNumber = inputObj.PoNumber;
packRec.RpNumber = inputObj.RpNumber;
//packRec.AsnNumber = inputObj.AsnNumber;
packRec.ProdLine = inputObj.ProdLine;
packRec.Team = inputObj.Team;
packRec.Shift = inputObj.Shift;//
packRec.Specifications = inputObj.Specifications;
//packRec.ProdLine = inputObj.ProdLine;
//packRec.Team = inputObj.Team;
//packRec.Shift = inputObj.Shift;//
//packRec.Specifications = inputObj.Specifications;
packRec.SupplierName = inputObj.SupplierName;
packRec.SupplierSimpleName = inputObj.SupplierSimpleName;
packRec.SupplierItemCode = inputObj.SupplierItemCode;
@ -224,15 +225,20 @@ public class InventoryLabelAppService
#endregion
recLst.Add(packRec);
}
bool bo = await _splitPackingRecAppService.BatchInsertAsync(recLst).ConfigureAwait(false);
if (bo == false)
int pageSize = 50;
int pageTotal = PageHelper.GetTotalPages(recLst.Count, pageSize);
for (int i = 1; i <= pageTotal; i++)
{
throw new UserFriendlyException("调用插入拆箱记录表方法时返回假!");
}
var curPage = PageHelper.GetPage<SplitPackingRecEditInput>(recLst, i, pageSize);
bool bo = await _splitPackingRecAppService.BatchInsertAsync(curPage).ConfigureAwait(false);
if (bo == false)
{
throw new UserFriendlyException("调用插入拆箱记录表方法时返回假!");
}
}
}
[HttpPost("generate-and-create")]
[UnitOfWork]
public virtual async Task<InventoryLabelDto> GenerateAndCreateAsync(InventoryLabelWithoutCodeCreateInput input)

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/CountJobs/ICountJobAppService.cs

@ -15,4 +15,5 @@ public interface ICountJobAppService
Task CloseByCountPlanAsync(string countPlanNumber);
Task<List<CountJob>> GetCountJobDependentDetailByPlanNumber(string countPlanNumber,int inventoryStage);
Task<List<CountJobDTO>> ResetStatusByNumberAsync(List<string> numbers);
Task<CountJobDTO> GetByNumber2Async(string number);
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/SparePartIssueJobs/ISparePartIssueJobAppService.cs

@ -24,4 +24,6 @@ public interface ISparePartIssueJobAppService
/// <param name="requestNumber"></param>
/// <returns></returns>
Task CompleteByRequestNumberAsync(string requestNumber);
Task<SparePartIssueJobDTO> GetByNumber2Async(string number);
}

9
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/CountJobs/CountJobAppService.cs

@ -11,6 +11,7 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using Volo.Abp;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Validation;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Shared.Application.Contracts;
@ -325,6 +326,14 @@ public class CountJobAppService
}
return entities;
}
[HttpPost("get-by-number-2")]
public async Task<CountJobDTO> GetByNumber2Async(string number)
{
var entity = await _repository.FirstOrDefaultAsync(p => p.Number == number).ConfigureAwait(false);
return ObjectMapper.Map<CountJob, CountJobDTO>(entity);
}
//[HttpPost("handle-count-job-async")]
//public virtual async Task HandleCountJobAsync(Guid guid, CountJobDTO dto)
//{

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

@ -12,6 +12,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;
using MyNamespace;
using Volo.Abp;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Uow;
using Volo.Abp.Users;
using Win_in.Sfs.Basedata.Application.Contracts;
@ -64,6 +65,14 @@ public class SparePartIssueJobAppService
_currentUser = currentUser;
}
[HttpPost("get-by-number-2")]
public async Task<SparePartIssueJobDTO> GetByNumber2Async(string number)
{
var entity = await _repository.FindAsync(p => p.Number == number).ConfigureAwait(false);
return ObjectMapper.Map<SparePartIssueJob, SparePartIssueJobDTO>(entity);
}
[HttpPost("add-many")]
public override async Task<List<SparePartIssueJobDTO>> CreateManyAsync(List<SparePartIssueJobEditInput> inputs)
{

26
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/InventoryInitialNotes/InventoryInitialNoteAppService.cs

@ -19,6 +19,7 @@ using Volo.Abp;
using Win_in.Sfs.Shared.Application.Contracts;
using Win_in.Sfs.Shared.Domain;
using Win_in.Sfs.Basedata.Application.Contracts;
using Win_in.Sfs.Wms.Inventory.Domain.Acl.ErpLocationItem;
/// <summary>
/// 库存初始化记录
@ -32,17 +33,20 @@ public class InventoryInitialNoteAppService :
private readonly IInventoryInitialNoteManager _inventoryInitialNoteManager;
private readonly IInventoryLabelAppService _inventoryLabelService;
private readonly IItemBasicAppService _itemBasicAppService;
private readonly IErpLocationItemAclService _erpLocationItemAclService;
public InventoryInitialNoteAppService(
IInventoryInitialNoteRepository repository
, IInventoryInitialNoteManager inventoryInitialNoteManager
, IInventoryLabelAppService inventoryLabelService,
IErpLocationItemAclService erpLocationItemAclService,
IItemBasicAppService itemBasicAppService
) : base(repository)
{
_inventoryInitialNoteManager = inventoryInitialNoteManager;
_inventoryLabelService = inventoryLabelService;
_itemBasicAppService = itemBasicAppService;
_erpLocationItemAclService= erpLocationItemAclService;
}
/// <summary>
/// 数据加工
@ -88,8 +92,8 @@ public class InventoryInitialNoteAppService :
await CheckItemBasicAsync(importInput, validationRresult).ConfigureAwait(false);
await CheckLocationAsync(importInput, validationRresult).ConfigureAwait(false);
await CheckStatusAsync(importInput, validationRresult).ConfigureAwait(false);
await CheckPackingAsync(importInput, validationRresult).ConfigureAwait(false);
await CheckPackingAsync(importInput, validationRresult).ConfigureAwait(false);
await CheckErpLocationItemAsync(importInput, validationRresult).ConfigureAwait(false);
}
private static void CheckItemBasic(ItemBasicDTO itemcBasicDto, string itemCode)
@ -130,6 +134,7 @@ public class InventoryInitialNoteAppService :
await CheckLocationAsync(importInput, validationRresult).ConfigureAwait(false);
await CheckStatusAsync(importInput, validationRresult).ConfigureAwait(false);
await CheckPackingAsync(importInput, validationRresult).ConfigureAwait(false);
}
private async Task CheckPackingAsync(InventoryInitialNoteImportInput importInput, List<ValidationResult> validationRresult)
@ -175,6 +180,23 @@ public class InventoryInitialNoteAppService :
}
}
/// <summary>
/// 校验开账信息
/// </summary>
/// <param name="importInput"></param>
/// <param name="validationRresult"></param>
/// <returns></returns>
/// <exception cref="UserFriendlyException"></exception>
private async Task CheckErpLocationItemAsync(InventoryInitialNoteImportInput importInput, List<ValidationResult> validationRresult)
{
var erpLocationItem = await _erpLocationItemAclService.GetFirstAsync(importInput.ItemCode, importInput.LocationErpCode).ConfigureAwait(false);
if (erpLocationItem == null)
{
validationRresult.Add("ERP料号", $"未找到物品【{importInput.ItemCode}】与ERP储位【{importInput.LocationErpCode}】的开账信息");
}
}
protected async Task CheckLocationAsync(InventoryInitialNoteImportInput importInput, List<ValidationResult> validationRresult)
{
var location = await LocationAclService.GetByCodeAsync(importInput.LocationCode).ConfigureAwait(false);

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

@ -486,17 +486,17 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase
packRec.LabelStatus = (Win_in.Sfs.Basedata.LabelStatus)((int)inputObj.LabelStatus);
packRec.RecommendLocationCode = inputObj.RecommendLocationCode;
packRec.LocationErpCode = inputObj.LocationErpCode;
packRec.ContainerCode = inputObj.ContainerCode;
packRec.QLevel = inputObj.QLevel;//
packRec.QualityFile = inputObj.QualityFile;
//packRec.ContainerCode = inputObj.ContainerCode;
//packRec.QLevel = inputObj.QLevel;//
//packRec.QualityFile = inputObj.QualityFile;
packRec.SupplierCode = inputObj.SupplierCode;
packRec.PurchaseInfo_PoNumber = inputObj.PoNumber;
packRec.RpNumber = inputObj.RpNumber;
packRec.PurchaseInfo_AsnNumber = inputObj.AsnNumber;
packRec.ProdLine = inputObj.ProdLine;
packRec.Team = inputObj.Team;
packRec.Shift = inputObj.Shift;//
packRec.Specifications = inputObj.Specifications;
//packRec.ProdLine = inputObj.ProdLine;
//packRec.Team = inputObj.Team;
//packRec.Shift = inputObj.Shift;//
//packRec.Specifications = inputObj.Specifications;
packRec.SupplierName = inputObj.SupplierName;
packRec.SupplierSimpleName = inputObj.SupplierSimpleName;
packRec.SupplierItemCode = inputObj.SupplierItemCode;

Loading…
Cancel
Save