Browse Source

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

dev_DY_CC
周红军 1 year ago
parent
commit
6db83c0241
  1. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/DTOs/EquipmentDTO.cs
  2. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentEditInput.cs
  3. 4
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentImportInput.cs
  4. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Equipments/Equipment.cs
  5. 50
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/MesNotes/MesNoteAppService.cs
  6. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationAutoMapperProfile.cs
  7. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreDbContextModelCreatingExtensions.cs
  8. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreEntityFrameworkCoreModule.cs
  9. 44
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Notes/MesNoteAutoMapperProfile.cs
  10. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/StoreEventAutoMapperProfile.cs

2
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/DTOs/EquipmentDTO.cs

@ -16,7 +16,7 @@ public class EquipmentDTO : SfsBaseDataDTOBase, IHasCode
/// 类型 /// 类型
/// </summary> /// </summary>
[Display(Name = "类型")] [Display(Name = "类型")]
public EnumContainerType Type { get; set; } public string Type { get; set; }
/// <summary> /// <summary>
/// 器具编号 /// 器具编号
/// </summary> /// </summary>

2
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentEditInput.cs

@ -12,7 +12,7 @@ public class EquipmentEditInput : SfsBaseDataCreateOrUpdateInputBase
/// 类型 /// 类型
/// </summary> /// </summary>
[Display(Name = "类型")] [Display(Name = "类型")]
public EnumContainerType Type { get; set; } public string Type { get; set; }
/// <summary> /// <summary>
/// 器具编号 /// 器具编号
/// </summary> /// </summary>

4
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentImportInput.cs

@ -12,7 +12,7 @@ public class EquipmentImportInput : SfsBaseDataImportInputBase
/// 类型 /// 类型
/// </summary> /// </summary>
[Display(Name = "类型")] [Display(Name = "类型")]
public EnumContainerType Type { get; set; } public string Type { get; set; }
/// <summary> /// <summary>
/// 器具编号 /// 器具编号
/// </summary> /// </summary>
@ -37,7 +37,7 @@ public class EquipmentImportInput : SfsBaseDataImportInputBase
/// 库位编号 /// 库位编号
/// </summary> /// </summary>
[Display(Name = "库位代码")] [Display(Name = "库位代码")]
//[Required(ErrorMessage = "{0}是必填项")] [Required(ErrorMessage = "{0}是必填项")]
public string LocCode { get; set; } = string.Empty; public string LocCode { get; set; } = string.Empty;
/// <summary> /// <summary>
/// 状态 /// 状态

2
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Equipments/Equipment.cs

@ -22,7 +22,7 @@ public class Equipment : SfsBaseDataAggregateRootBase, IHasCode
/// <summary> /// <summary>
/// 器具类型 /// 器具类型
/// </summary> /// </summary>
public EnumContainerType Type { get; set; } public string Type { get; set; }
/// <summary> /// <summary>
/// 器具规格 /// 器具规格
/// </summary> /// </summary>

50
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/MesNotes/MesNoteAppService.cs

@ -51,12 +51,23 @@ public class MesNoteAppService :
var number = string.IsNullOrEmpty(entity.Number) ? await GenerateNumberAsync(nameof(MesNote), entity.ActiveDate).ConfigureAwait(false) : entity.Number; var number = string.IsNullOrEmpty(entity.Number) ? await GenerateNumberAsync(nameof(MesNote), entity.ActiveDate).ConfigureAwait(false) : entity.Number;
entity.SetIdAndNumberWithDetails(GuidGenerator, number); entity.SetIdAndNumberWithDetails(GuidGenerator, number);
foreach (var detail in entity.Details) foreach (var detail in entity.Details)
{ {
var fromLocation=await _locationAppService.GetByCodeAsync(detail.FromLocationCode).ConfigureAwait(false); var fromLocation=await _locationAppService.GetByCodeAsync(detail.FromLocationCode).ConfigureAwait(false);
var toLocation =await _locationAppService.GetByCodeAsync(detail.ToLocationCode).ConfigureAwait(false); var toLocation =await _locationAppService.GetByCodeAsync(detail.ToLocationCode).ConfigureAwait(false);
var itemBasicDto =await _itemBasicAppService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false); var itemBasicDto =await _itemBasicAppService.GetByCodeAsync(detail.ItemCode).ConfigureAwait(false);
if (fromLocation == null)
{
throw new UserFriendlyException($"库位为空");
}
detail.SetIdAndNumber(GuidGenerator, entity.Id, entity.Number); detail.SetIdAndNumber(GuidGenerator, entity.Id, entity.Number);
detail.FromLocationArea = fromLocation.AreaCode; detail.FromLocationArea = fromLocation.AreaCode;
detail.FromLocationErpCode = fromLocation.ErpLocationCode; detail.FromLocationErpCode = fromLocation.ErpLocationCode;
@ -71,24 +82,27 @@ public class MesNoteAppService :
detail.StdPackQty = itemBasicDto.StdPackQty; detail.StdPackQty = itemBasicDto.StdPackQty;
#region 添加校验 #region 添加校验
RecommendBalanceRequestInput rInput = new RecommendBalanceRequestInput(); //RecommendBalanceRequestInput rInput = new RecommendBalanceRequestInput();
rInput.ItemCode = detail.ItemCode; //rInput.ItemCode = detail.ItemCode;
rInput.Locations = new List<string>() { detail.FromLocationCode }; //rInput.Locations = new List<string>() { detail.FromLocationCode };
rInput.Qty = detail.Qty; //rInput.Qty = detail.Qty;
rInput.Statuses = new List<EnumInventoryStatus> { EnumInventoryStatus.OK }; //rInput.Statuses = new List<EnumInventoryStatus> { EnumInventoryStatus.OK };
var balanceLst = await _balanceAppService.GetRecommendBalancesByLocationsAsync(rInput).ConfigureAwait(false);
var first = balanceLst.FirstOrDefault();
if (first != null)
{ //var balanceLst = await _balanceAppService.GetRecommendBalancesByLocationsAsync(rInput).ConfigureAwait(false);
if (detail.Qty <= first.Qty) //var first = balanceLst.FirstOrDefault();
{ //if (first != null)
throw new UserFriendlyException($"库存数量不足"); //{
} // if (detail.Qty <= first.Qty)
} // {
else // throw new UserFriendlyException($"库存数量不足");
{ // }
throw new UserFriendlyException($"库存数量不足"); //}
} //else
//{
// throw new UserFriendlyException($"库存数量不足");
//}
#endregion #endregion
} }

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationAutoMapperProfile.cs

@ -93,7 +93,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile
NoOkConvertOkNoteAutoMapperProfile(); NoOkConvertOkNoteAutoMapperProfile();
InventoryInitialNoteAutoMapperProfile(); InventoryInitialNoteAutoMapperProfile();
WipWarehouseAdjustNoteMapperProfile(); WipWarehouseAdjustNoteMapperProfile();
MesNoteAutoMapperProfile();
#endregion #endregion
#region Jobs #region Jobs

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreDbContextModelCreatingExtensions.cs

@ -105,6 +105,7 @@ public static class StoreDbContextModelCreatingExtensions
builder.ConfigureNoOkConvertOKNote(options); builder.ConfigureNoOkConvertOKNote(options);
builder.ConfigureInventoryInitialNote(options); builder.ConfigureInventoryInitialNote(options);
builder.ConfigureWipWarehouseAdjustNote(options); builder.ConfigureWipWarehouseAdjustNote(options);
builder.ConfigureMesNote(options);
#endregion #endregion
#region Jobs #region Jobs

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/StoreEntityFrameworkCoreModule.cs

@ -123,6 +123,8 @@ public class StoreEntityFrameworkCoreModule : AbpModule
context.Services.AddTransient<IWipWarehouseAdjustNoteRepository, WipWarehouseAdjustNoteEfCoreRepository>(); context.Services.AddTransient<IWipWarehouseAdjustNoteRepository, WipWarehouseAdjustNoteEfCoreRepository>();
context.Services.AddTransient<ICoatingIssueNoteRepository, CoatingIssueNoteEfCoreRepository>(); context.Services.AddTransient<ICoatingIssueNoteRepository, CoatingIssueNoteEfCoreRepository>();
context.Services.AddTransient<IMesNoteRepository, MesNoteEfCoreRepository>();
#endregion #endregion
#region Jobs #region Jobs
@ -254,6 +256,8 @@ public class StoreEntityFrameworkCoreModule : AbpModule
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)); orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<IssueNote>(orderOptions => options.Entity<IssueNote>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)); orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<CoatingIssueNote>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<InjectionNote>(orderOptions => options.Entity<InjectionNote>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)); orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<AssembleNote>(orderOptions => options.Entity<AssembleNote>(orderOptions =>
@ -264,6 +268,8 @@ public class StoreEntityFrameworkCoreModule : AbpModule
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)); orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<ScrapNote>(orderOptions => options.Entity<ScrapNote>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)); orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<MesNote>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<IsolationNote>(orderOptions => options.Entity<IsolationNote>(orderOptions =>
orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details)); orderOptions.DefaultWithDetailsFunc = query => query.Include(o => o.Details));
options.Entity<ReceiptAbnormalNote>(orderOptions => options.Entity<ReceiptAbnormalNote>(orderOptions =>

44
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Notes/MesNoteAutoMapperProfile.cs

@ -0,0 +1,44 @@
using AutoMapper;
using Volo.Abp.AutoMapper;
using Win_in.Sfs.Shared.Application;
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 MesNoteAutoMapperProfile()
{
CreateMap<MesNoteDetail, TransferLogEditInput>()
.Ignore(x => x.ExtraProperties)
.Ignore(x => x.DocNumber)
.Ignore(x => x.JobNumber)
.Ignore(x => x.Worker)
.Ignore(x => x.TransType)
.Ignore(x => x.TransSubType)
;
CreateMap<MesNoteDetail, TransactionEditInput>()
.MapNegativeQty()
.ForMember(x => x.PackingCode, y => y.MapFrom(d => d.FromPackingCode))
.ForMember(x => x.ContainerCode, y => y.MapFrom(d => d.FromContainerCode))
.ForMember(x => x.Lot, y => y.MapFrom(d => d.FromLot))
.ForMember(x => x.Status, y => y.MapFrom(d => d.FromStatus))
.ForMember(x => x.LocationCode, y => y.MapFrom(d => d.FromLocationCode))
.ForMember(x => x.LocationArea, y => y.MapFrom(d => d.FromLocationArea))
.ForMember(x => x.LocationGroup, y => y.MapFrom(d => d.FromLocationGroup))
.ForMember(x => x.LocationErpCode, y => y.MapFrom(d => d.FromLocationErpCode))
.ForMember(x => x.WarehouseCode, y => y.MapFrom(d => d.FromWarehouseCode))
.Ignore(x => x.ExtraProperties)
.Ignore(x => x.DocNumber)
.Ignore(x => x.JobNumber)
.Ignore(x => x.Worker)
.Ignore(x => x.ManageType)
.Ignore(x => x.TransType)
.Ignore(x => x.TransSubType)
.Ignore(x => x.TransInOut)
;
}
}

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/StoreEventAutoMapperProfile.cs

@ -110,6 +110,7 @@ public partial class StoreEventAutoMapperProfile : Profile
CoatingIssueJobAutoMapperProfile(); CoatingIssueJobAutoMapperProfile();
CoatingIssueNoteAutoMapperProfile(); CoatingIssueNoteAutoMapperProfile();
CoatingMaterialRequestAutoMapperProfile(); CoatingMaterialRequestAutoMapperProfile();
MesNoteAutoMapperProfile();
} }
} }

Loading…
Cancel
Save