diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/DTOs/EquipmentLocCapDTO.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/DTOs/EquipmentLocCapDTO.cs new file mode 100644 index 000000000..6a4ad91ce --- /dev/null +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/DTOs/EquipmentLocCapDTO.cs @@ -0,0 +1,40 @@ +using System.ComponentModel.DataAnnotations; +using Win_in.Sfs.Shared.Domain; +using Win_in.Sfs.Shared.Domain.Shared; + +namespace Win_in.Sfs.Basedata.Application.Contracts; + + + +[Display(Name = "器具容量占用信息")] + +public class EquipmentLocCapDTO : SfsBaseDataDTOBase, IHasCode +{ + /// + /// 器具代码 + /// + [Display(Name = "器具代码")] + public string Code { get; set; } + /// 占用百分比 + /// + [Display(Name = "占用百分比")] + public decimal Percent { get; set; } + + + /// + /// 零件号 + /// + public string PartCode { get; set; } + + /// + /// 录入数量 + /// + public decimal Qty { get; set; } + + /// + /// 标包数量 + /// + public decimal StdQty { get; set; } + + +} diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/DTOs/EquipmentPartCodeDTO.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/DTOs/EquipmentPartCodeDTO.cs index 03e9f4dba..2a6510242 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/DTOs/EquipmentPartCodeDTO.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/DTOs/EquipmentPartCodeDTO.cs @@ -7,7 +7,7 @@ namespace Win_in.Sfs.Basedata.Application.Contracts; using System; using System.Collections.Generic; -[Display(Name = "器具基本信息")] +[Display(Name = "器具零件关系信息")] public class EquipmentPartCodeDTO : SfsBaseDataDTOBase, IHasCode { diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/IEquipmentLocCapAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/IEquipmentLocCapAppService.cs new file mode 100644 index 000000000..dfe01c9b7 --- /dev/null +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/IEquipmentLocCapAppService.cs @@ -0,0 +1,28 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Win_in.Sfs.Shared.Application.Contracts; +using Win_in.Sfs.Shared.Domain.Shared; + +namespace Win_in.Sfs.Basedata.Application.Contracts; + +public interface IEquipmentLocCapAppService + : ISfsBaseDataAppServiceBase + , ISfsGetByCodeAppService + , ISfsCheckAppService + , ISfsUpsertAppService +{ + //Task CheckItemIsAvailable(string itemCode); + //[HttpGet("check-item-is-available-no-select-sql")] + //void CheckItemIsAvailable(EquipmentLocCapDTO EquipmentLocCapDTO); + + //Task> GetListByNameAsync(string name); + + //Task GetOrAddAsync(EquipmentLocCapEditInput input); + + //Task GetManageTypeAsync(string itemCode); + //Task> GetManageTypesAsync(List itemCodes); + + //Task UpsertAsyncByInterface(EquipmentLocCapEditInput input); + //Task UpsertStdPackQtyAsync(string itemCode, decimal stdpackqty); +} diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentLocCapCheckInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentLocCapCheckInput.cs new file mode 100644 index 000000000..d7b272c8e --- /dev/null +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentLocCapCheckInput.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using Win_in.Sfs.Shared.Domain.Shared; + +namespace Win_in.Sfs.Basedata.Application.Contracts; + +public class EquipmentLocCapCheckInput +{ + /// + /// 器具代码 + /// + [Display(Name = "器具代码")] + public string Code { get; set; } + /// 占用百分比 + /// + [Display(Name = "占用百分比")] + public decimal Percent { get; set; } + +} diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentLocCapEditInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentLocCapEditInput.cs new file mode 100644 index 000000000..ef9146b56 --- /dev/null +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentLocCapEditInput.cs @@ -0,0 +1,20 @@ +using System; +using System.ComponentModel.DataAnnotations; +using Win_in.Sfs.Shared.Domain; +using Win_in.Sfs.Shared.Domain.Shared; +using Win_in.Sfs.Shared.Domain.Shared.Enums.Basedata; + +namespace Win_in.Sfs.Basedata.Application.Contracts; + +public class EquipmentLocCapEditInput : SfsBaseDataCreateOrUpdateInputBase +{ + /// + /// 器具代码 + /// + [Display(Name = "器具代码")] + public string Code { get; set; } + /// 占用百分比 + /// + [Display(Name = "占用百分比")] + public decimal Percent { get; set; } +} diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentLocCapImportInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentLocCapImportInput.cs new file mode 100644 index 000000000..796c95708 --- /dev/null +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentLocCapImportInput.cs @@ -0,0 +1,38 @@ +using System; +using System.ComponentModel.DataAnnotations; + +using Win_in.Sfs.Shared.Domain.Shared.Enums.Basedata; + +namespace Win_in.Sfs.Basedata.Application.Contracts; + +[Display(Name = "器具容量")] +public class EquipmentLocCapImportInput : SfsBaseDataImportInputBase +{ + /// + /// 器具代码 + /// + [Display(Name = "器具代码")] + public string Code { get; set; } + /// 占用百分比 + /// + [Display(Name = "占用百分比")] + public decimal Percent { get; set; } + //[Display(Name = "零件代码")] + + //public string PartCode { get; set; } + + //[Display(Name = "当前数量")] + ///// + ///// 录入数量 + ///// + //public decimal Qty { get; set; } + //[Display(Name = "标包数量")] + ///// + ///// 标包数量 + ///// + //public decimal StdQty { get; set; } + + + + +} diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs index 4f94c8ef2..c5301da0f 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/BasedataApplicationAutoMapperProfile.cs @@ -54,6 +54,8 @@ public partial class BasedataApplicationAutoMapperProfile : Profile KittingAutoMapperProfile(); EquipmentLocAutoMapperProfile(); EquipmentPartCodeAutoMapperProfile(); - + EquipmentLocCapAutoMapperProfile(); + + } } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentLocCapAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentLocCapAppService.cs new file mode 100644 index 000000000..8b1e527b9 --- /dev/null +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentLocCapAppService.cs @@ -0,0 +1,70 @@ +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp; +using Volo.Abp.Caching; +using Win_in.Sfs.Basedata.Application.Contracts; +using Win_in.Sfs.Basedata.Domain; +using Win_in.Sfs.Basedata.Domain.Shared; +using Win_in.Sfs.Shared.Application.Contracts.ExportAndImport; +namespace Win_in.Sfs.Basedata.Application; + +[Authorize] +[Route($"{BasedataConsts.RootPath}EquipmentLocCap")] +public class EquipmentLocCapAppService + : SfsBaseDataWithCodeAppServiceBase + , IEquipmentLocCapAppService +{ + private readonly IEquipmentLocCapManager _manager; + private new readonly IEquipmentLocCapRepository _repository; + private readonly IExportImportService _importService; + public EquipmentLocCapAppService( + IEquipmentLocCapRepository repository, + IDistributedCache cache, + IExportImportService importService, + IEquipmentLocCapManager manager) + : base(repository, cache) + { + _importService=importService; + _repository = repository; + _manager = manager; + base.CreatePolicyName = EquipmentPermissions.Create; + base.UpdatePolicyName = EquipmentPermissions.Update; + base.DeletePolicyName = EquipmentPermissions.Delete; + } + + [HttpPost("check")] + //[Authorize(ErpLocationPermissions.Default)] + public virtual async Task CheckAsync(string code, EquipmentLocCapCheckInput input) + { + await Task.CompletedTask.ConfigureAwait(false); + } + [HttpPost("upsert")] + + public virtual async Task UpsertAsync(EquipmentLocCapEditInput input) + { + var entity = ObjectMapper.Map(input); + await _repository.UpsertAsync(entity).ConfigureAwait(false); + } + + [HttpPost] + [Route("")] + public override async Task CreateAsync(EquipmentLocCapEditInput input) + { + var query =await _repository.GetQueryableAsync().ConfigureAwait(false); + var first=query.FirstOrDefault(p => p.Code == input.Code); + if (first == null) + { + var entity = ObjectMapper.Map(input); + entity.Code = string.Format("{0}{1}", "Q", entity.Code); + await _repository.UpsertAsync(entity).ConfigureAwait(false); + var entity1=_repository.WithDetails().FirstOrDefault(p => p.Code == input.Code); + return ObjectMapper.Map(entity1); + } + else + { + throw new UserFriendlyException($"已存在器具编号{input.Code}!"); + } + } +} diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentLocCapAutoMapperProfile.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentLocCapAutoMapperProfile.cs new file mode 100644 index 000000000..fd94d51bb --- /dev/null +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Equipments/EquipmentLocCapAutoMapperProfile.cs @@ -0,0 +1,43 @@ +using AutoMapper; +using Volo.Abp.AutoMapper; +using Win_in.Sfs.Basedata.Application.Contracts; +using Win_in.Sfs.Basedata.Domain; + +namespace Win_in.Sfs.Basedata.Application; + +public partial class BasedataApplicationAutoMapperProfile : Profile +{ + private void EquipmentLocCapAutoMapperProfile() + { + CreateMap() + .IgnoreAuditedObjectProperties() + + .ReverseMap(); + + CreateMap() + .IgnoreAuditedObjectProperties() + .Ignore(x => x.TenantId) + .Ignore(x => x.Remark) + .Ignore(x => x.ExtraProperties) + .Ignore(x => x.ConcurrencyStamp) + .Ignore(x => x.StdQty) + .Ignore(x => x.PartCode) + .Ignore(x => x.Qty) + .Ignore(x => x.ConcurrencyStamp) + + + .ForMember(p => p.Code, p => p.MapFrom(q =>q.Code)); + + //CreateMap() + + //CreateMap() + // .Ignore(x => x.ItemCategory) + // .Ignore(x => x.Color); + CreateMap() + .IgnoreAuditedObjectProperties() + .Ignore(x => x.StdQty) + .Ignore(x => x.PartCode) + .Ignore(x => x.Qty) + .Ignore(x => x.ConcurrencyStamp).Ignore(x => x.Id); + } +} diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Equipments/EquipmentLocCap.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Equipments/EquipmentLocCap.cs index d2e0183c5..facd32dde 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Equipments/EquipmentLocCap.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Equipments/EquipmentLocCap.cs @@ -8,12 +8,12 @@ using Win_in.Sfs.Shared.Domain; namespace Win_in.Sfs.Basedata.Domain; -public class EquipmentLocCap:SfsAggregateRootBase +public class EquipmentLocCap:SfsAggregateRootBase, IHasCode { /// - /// 器具编码 + /// 器具代码 /// - public string EqptCode { get; set; } + public string Code { get; set; } /// /// 零件号 /// diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Equipments/IEquipmentLocCapRepository.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Equipments/IEquipmentLocCapRepository.cs index 6bd79f7bf..1d8089fe8 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Equipments/IEquipmentLocCapRepository.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Equipments/IEquipmentLocCapRepository.cs @@ -5,7 +5,7 @@ using Win_in.Sfs.Shared.Domain; namespace Win_in.Sfs.Basedata.Domain; -public interface IEquipmentLocCapRepository : IDomainService, ISfsBulkRepositoryBase +public interface IEquipmentLocCapRepository : ISfsBaseDataRepositoryBase, ISfsBulkRepositoryBase { Task UpsertAsync(EquipmentLocCap newData); } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Equipments/EquipmentDbContextModelCreatingExtensions.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Equipments/EquipmentDbContextModelCreatingExtensions.cs index cf85b7de0..37b9c9852 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Equipments/EquipmentDbContextModelCreatingExtensions.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Equipments/EquipmentDbContextModelCreatingExtensions.cs @@ -42,7 +42,7 @@ public static class EquipmentDbContextModelCreatingExtensions b.ConfigureSfsBase(); //Properties - b.Property(q => q.EqptCode).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength).IsRequired(true); + b.Property(q => q.Code).IsRequired().HasMaxLength(SfsPropertyConst.CodeLength).IsRequired(true); b.Property(q => q.PartCode).HasMaxLength(SfsPropertyConst.CodeLength); @@ -50,7 +50,7 @@ public static class EquipmentDbContextModelCreatingExtensions //None //Indexes - b.HasIndex(q => new { q.EqptCode }).IsUnique(); + b.HasIndex(q => new { q.Code }).IsUnique(); }); diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Equipments/EquipmentEfCoreRepository.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Equipments/EquipmentEfCoreRepository.cs index 2c56b70d6..1d52ed2b1 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Equipments/EquipmentEfCoreRepository.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Equipments/EquipmentEfCoreRepository.cs @@ -24,7 +24,7 @@ public class EquipmentEfCoreRepository : SfsBaseDataEfCoreRepositoryBase().AddAsync(cap).ConfigureAwait(false); @@ -49,7 +49,7 @@ public class EquipmentEfCoreRepository : SfsBaseDataEfCoreRepositoryBase().AddAsync(cap).ConfigureAwait(false); diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Equipments/EquipmentLocCapEfCoreRepository.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Equipments/EquipmentLocCapEfCoreRepository.cs index 2c0124040..6315ea9e0 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Equipments/EquipmentLocCapEfCoreRepository.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Equipments/EquipmentLocCapEfCoreRepository.cs @@ -18,7 +18,7 @@ public class EquipmentLocCapEfCoreRepository : SfsBaseDataEfCoreRepositoryBase p.EqptCode == entity.EqptCode).ConfigureAwait(false); + var exist = await dbSet.FirstOrDefaultAsync(p => p.Code == entity.Code).ConfigureAwait(false); if (exist == null) { var insRet = await InsertAsync(entity).ConfigureAwait(false); @@ -40,7 +40,7 @@ public class EquipmentLocCapEfCoreRepository : SfsBaseDataEfCoreRepositoryBase p.EqptCode == entity.EqptCode).ConfigureAwait(false); + var exist = await dbSet.FirstOrDefaultAsync(p => p.Code == entity.Code).ConfigureAwait(false); if (exist == null) { var insRet = await InsertAsync(entity).ConfigureAwait(false);