diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/EquipmentController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/EquipmentController.cs
new file mode 100644
index 000000000..b0b52c481
--- /dev/null
+++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/EquipmentController.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Options;
+using Volo.Abp.AspNetCore.Mvc;
+using Volo.Abp.Json;
+using Win_in.Sfs.Basedata.Application.Contracts;
+
+namespace Win_in.Sfs.Wms.Pda.Controllers.BaseDatas;
+
+///
+/// 器具控制器
+///
+[ApiController]
+[Route($"{PdaHostConst.ROOT_ROUTE}Equipment")]
+public class EquipmentController : AbpController
+{
+ private readonly IEquipmentAppService _dictApp;
+
+ ///
+ ///
+ ///
+ ///
+ public EquipmentController(IEquipmentAppService dictApp,IOptions options)
+ {
+ _dictApp = dictApp;
+ var str = options.Value.DefaultDateTimeFormat;
+ Console.WriteLine(str);
+ }
+
+ ///
+ /// 按代码获取字典
+ ///
+ /// 字典代码
+ ///
+ [HttpGet("by-code")]
+ public virtual async Task GetByCodeAsync(string code)
+ {
+ var dtos = await _dictApp.GetByCodeAsync(code).ConfigureAwait(false);
+
+ return dtos;
+ }
+}
diff --git a/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/KittingController.cs b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/KittingController.cs
new file mode 100644
index 000000000..f2f15ec47
--- /dev/null
+++ b/be/Hosts/WmsPda.Host/Win_in.Sfs.Wms.Pda.Host/Controllers/BaseDatas/KittingController.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Options;
+using Volo.Abp.AspNetCore.Mvc;
+using Volo.Abp.Json;
+using Win_in.Sfs.Basedata.Application.Contracts;
+
+namespace Win_in.Sfs.Wms.Pda.Controllers.BaseDatas;
+
+///
+/// 器具控制器
+///
+[ApiController]
+[Route($"{PdaHostConst.ROOT_ROUTE}Kitting")]
+public class KittingController : AbpController
+{
+ private readonly IKittingAppService _dictApp;
+
+ ///
+ ///
+ ///
+ ///
+ public KittingController(IKittingAppService dictApp,IOptions options)
+ {
+ _dictApp = dictApp;
+ var str = options.Value.DefaultDateTimeFormat;
+ Console.WriteLine(str);
+ }
+
+ ///
+ /// 按代码获取字典
+ ///
+ /// 字典代码
+ ///
+ [HttpGet("by-code")]
+ public virtual async Task GetByCodeAsync(string code)
+ {
+ var dtos = await _dictApp.GetByCodeAsync(code).ConfigureAwait(false);
+
+ return dtos;
+ }
+}
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentEditInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentEditInput.cs
index e76aa7b41..9c00c6a23 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentEditInput.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentEditInput.cs
@@ -7,17 +7,26 @@ namespace Win_in.Sfs.Basedata.Application.Contracts;
public class EquipmentEditInput : SfsBaseDataCreateOrUpdateInputBase
{
+ ///
+ /// 类型
+ ///
+ [Display(Name = "类型")]
+ public string Type { get; set; } = string.Empty;
///
/// 器具编号
///
- [Display(Name = "器具编号")]
+ [Display(Name = "器具代码")]
[Required(ErrorMessage = "{0}是必填项")]
public string Code { get; set; }
+
+
///
- /// 类型
+ /// 标包数量
///
- [Display(Name = "类型")]
- public string Type { get; set; } = string.Empty;
+ [Display(Name = "标包数")]
+ [Required(ErrorMessage = "{0}是必填项")]
+ public decimal StdQty { get; set; }
+
///
/// 型号
///
@@ -26,11 +35,13 @@ public class EquipmentEditInput : SfsBaseDataCreateOrUpdateInputBase
///
/// 库位编号
///
- [Display(Name = "库位编号")]
+ [Display(Name = "库位代码")]
+ [Required(ErrorMessage = "{0}是必填项")]
public string LocCode { get; set; } = string.Empty;
///
/// 状态
///
+
[Display(Name = "状态")]
public int State { get; set; } = 0;
@@ -46,11 +57,7 @@ public class EquipmentEditInput : SfsBaseDataCreateOrUpdateInputBase
[Display(Name = "创建时间")]
public DateTime CreatTime { get; set; }=DateTime.Now;
- ///
- /// 标包数量
- ///
- [Display(Name = "标包数")]
- public decimal StdQty { get; set; }
+
//#region Base
/////
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentImportInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentImportInput.cs
index 747bdef64..c09872d2a 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentImportInput.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Equipments/Inputs/EquipmentImportInput.cs
@@ -9,17 +9,26 @@ namespace Win_in.Sfs.Basedata.Application.Contracts;
[Display(Name = "物品")]
public class EquipmentImportInput : SfsBaseDataImportInputBase
{
+ ///
+ /// 类型
+ ///
+ [Display(Name = "类型")]
+ public string Type { get; set; } = string.Empty;
///
/// 器具编号
///
- [Display(Name = "器具编号")]
+ [Display(Name = "器具代码")]
[Required(ErrorMessage = "{0}是必填项")]
public string Code { get; set; }
+
+
///
- /// 类型
+ /// 标包数量
///
- [Display(Name = "类型")]
- public string Type { get; set; } = string.Empty;
+ [Display(Name = "标包数")]
+ [Required(ErrorMessage = "{0}是必填项")]
+ public decimal StdQty { get; set; }
+
///
/// 型号
///
@@ -28,13 +37,16 @@ public class EquipmentImportInput : SfsBaseDataImportInputBase
///
/// 库位编号
///
- [Display(Name = "库位编号")]
+ [Display(Name = "库位代码")]
+ [Required(ErrorMessage = "{0}是必填项")]
public string LocCode { get; set; } = string.Empty;
///
/// 状态
///
+
[Display(Name = "状态")]
public int State { get; set; } = 0;
+
///
/// 创建人
///
@@ -47,12 +59,6 @@ public class EquipmentImportInput : SfsBaseDataImportInputBase
[Display(Name = "创建时间")]
public DateTime CreatTime { get; set; } = DateTime.Now;
- ///
- /// 标包数量
- ///
- [Display(Name = "标包数")]
- public decimal StdQty { get; set; }
-
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDTO.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDTO.cs
index a4ed711da..919062672 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDTO.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/DTOs/KittingDTO.cs
@@ -1,5 +1,7 @@
+using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
+using Volo.Abp.Application.Dtos;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Shared.Domain;
@@ -8,7 +10,7 @@ using Win_in.Sfs.Shared.Domain.Entities;
namespace Win_in.Sfs.Basedata.Application.Contracts;
[Display(Name = "Kitting箱")]
-public class KittingDTO : SfsBaseDataDTOBase, IHasCode, IHasName
+public class KittingDTO : EntityDto, IHasCode, IHasName
{
[Display(Name ="编号")]
public string Code { get; set; }
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingEditInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingEditInput.cs
index df0b27c65..75c7ac409 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingEditInput.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingEditInput.cs
@@ -1,5 +1,10 @@
+using System;
using System.Collections.Generic;
+using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Data;
+using Volo.Abp.MultiTenancy;
using Win_in.Sfs.Basedata.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Basedata.Kittings.Inputs;
@@ -8,7 +13,7 @@ using Win_in.Sfs.Shared.Domain.Entities;
namespace Win_in.Sfs.Basedata.Application.Contracts;
-public class KittingEditInput : SfsBaseDataCreateOrUpdateInputBase
+public class KittingEditInput : EntityDto, IMultiTenant, IRemark, IHasExtraProperties
{
public string Code { get; set; }
@@ -17,5 +22,11 @@ public class KittingEditInput : SfsBaseDataCreateOrUpdateInputBase
public virtual List Details { get; set; }=new List();
+ [DefaultValue(null)]
+ public Guid? TenantId { get; set; }
+ public string Remark { get; set; }
+
+ [DefaultValue("{}")]
+ public ExtraPropertyDictionary ExtraProperties { get; set; }
}
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs
index e47e7d778..38f183eec 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/Kittings/Inputs/KittingImportInput.cs
@@ -1,3 +1,4 @@
+using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Win_in.Sfs.Basedata.Domain;
@@ -10,11 +11,52 @@ namespace Win_in.Sfs.Basedata.Application.Contracts;
[Display(Name = "Kitting箱")]
public class KittingImportInput : SfsBaseDataImportInputBase
{
-
+ ///
+ /// Kitting编码
+ ///
+ [Display(Name ="Kitting编码")]
public string Code { get; set; }
+ ///
+ /// Kitting名称
+ ///
+ [Display(Name = "Kitting名称")]
public string Name { get; set; }
+ ///
+ /// 物料编码
+ ///
+ [Display(Name = "物料编码")]
+ public string PartCode { set; get; }
+ ///
+ /// 描述1
+ ///
+ [Display(Name = "物料描述1")]
+ public string Desc1 { set; get; }
+ ///
+ /// 描述2
+ ///
+ [Display(Name = "物料描述2")]
+ public string Desc2 { set; get; }
+ ///
+ /// 包装数量
+ ///
+ [Display(Name = "包装数量")]
+ public decimal Qty { set; get; }
+ ///
+ /// 配置
+ ///
+ [Display(Name = "配置")]
+ public string Conf { set; get; }
+ //[Display(Name = "租户ID")]
+ //public Guid? TenantId
+ //{
+ // set; get;
+ //}
+ //[Display(Name = "备注")]
+ //public string Remark { get; set; }
+
+
+
-
}
//[Serializable]
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs
index 33ef8b711..5a68489e2 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAppService.cs
@@ -1,19 +1,29 @@
using System;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.IO;
using System.Linq;
using System.Threading.Tasks;
+using EFCore.BulkExtensions;
using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using NUglify.Helpers;
+using Omu.ValueInjecter;
using Volo.Abp;
using Volo.Abp.Caching;
using Volo.Abp.Domain.Entities;
+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.Domain;
using Win_in.Sfs.Basedata.Domain.Shared;
using Win_in.Sfs.Basedata.Kittings.Inputs;
using Win_in.Sfs.Shared;
+using Win_in.Sfs.Shared.Application.Contracts;
+using Win_in.Sfs.Shared.Application.Contracts.ExportAndImport;
namespace Win_in.Sfs.Basedata.Application;
@@ -25,13 +35,15 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase cache, IKittingManager manager) : base(repository,cache)
+ public KittingAppService(IKittingRepository repository, IDistributedCache cache, IKittingManager manager, IExportImportService excelService) : base(repository,cache)
{
_repository = repository;
_manager = manager;
+ _excelService = excelService;
//base.CreatePolicyName = KittingPermissions.Create;
//base.UpdatePolicyName = KittingPermissions.Update;
//base.DeletePolicyName = KittingPermissions.Delete;
@@ -62,7 +74,6 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase(entity);
}
else
@@ -98,23 +109,13 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase p.Id);
//first.Details.Where(p =>ids.Contains(p.Id));
-
-
return base.UpdateAsync(id, input);
-
-
-
-
-
//var entity = ObjectMapper.Map(input);
////entity.SetId(id);
////entity.Code = first.Code;
//await _repository.UpsertAsync(entity).ConfigureAwait(false);
//var firstEntity = detailquery.FirstOrDefault(p => p.Id == id);
-
-
-
//return ObjectMapper.Map(first);
@@ -139,11 +140,208 @@ public class KittingAppService : SfsBaseDataWithCodeAppServiceBase(input);
await _repository.UpsertAsync(entity).ConfigureAwait(false);
+ }
+ [HttpPost("import")]
+ [Consumes("multipart/form-data")]
+
+ public override async Task ImportAsync([FromForm] SfsImportRequestInput requestInput, [Required] IFormFile file)
+ {
+ var query= _repository.WithDetails().AsNoTracking();
+ using var ms = new MemoryStream();
+ await file.OpenReadStream().CopyToAsync(ms).ConfigureAwait(false);
+ var inputFileBytes = ms.GetAllBytes();
+ var importList= _excelService.Import(inputFileBytes).ToList();
+ var checklist=importList.GroupBy(p => new { p.Code, p.PartCode }).Where(g => g.Count() > 1).Select(p => new { Code = p.Key.Code, PartCode = p.Key.PartCode });//导入重复报错
+ //检测是否导入重复
+
+
+
+
+ var codeList=importList.Select(p=>p.Code).Distinct().ToList();
+ var includeList = query.Where(p => codeList.Contains(p.Code)).ToList();
+ var existCodeList = includeList.Select(p => p.Code).ToList();
+ var newCodeList = from itm in codeList
+ join itm1 in existCodeList on itm equals itm1
+ into temp
+ from tm in temp.DefaultIfEmpty()
+ where tm == null
+ select itm;
+ if(newCodeList.Any())
+ {
+ #region 新KITTING
+ var newKittingList = importList.Where(p => newCodeList.Contains(p.Code)).ToList();//新Kitting
+ List newKittingInputList = new List();
+ List newMainList = new List();
+ List newdetailList = new List();
+ foreach (var itm in newCodeList)
+ {
+ var newDetail = newKittingList.Where(p => p.Code == itm).ToList();
+ var first = newDetail.FirstOrDefault();
+ var kitting = new KittingEditInput();
+ kitting.InjectFrom(first);
+ foreach (var detail in newDetail)
+ {
+ var inputdetail = new KittingDetailInput();
+ inputdetail.InjectFrom(detail);
+ kitting.Details.Add(inputdetail);
+ }
+ newKittingInputList.Add(kitting);
+ }
+ var kittingList = ObjectMapper.Map, List>(newKittingInputList);
+ foreach (var itm in kittingList)
+ {
+ var id = Guid.NewGuid();
+ itm.SetId(id);
+ //newMainList.Add(itm);
+ foreach (var detail in itm.Details)
+ {
+ detail.SetId(Guid.NewGuid());
+ detail.MasterId = id;
+ //newdetailList.Add(detail);
+ }
+ }
+ await _repository.InsertManyAsync(kittingList).ConfigureAwait(false);
+
+ //await _repository.GetDbContext().BulkInsertAsync(newMainList).ConfigureAwait(false);
+ //await _repository.GetDbContext().BulkInsertAsync(newdetailList).ConfigureAwait(false);
+ #endregion
+ }
+ if (existCodeList.Any())
+ {
+ var existKittingList = importList.Where(p => existCodeList.Contains(p.Code)).ToList();//新Kitting
+ List existKittingInputList = new List();
+ List existKittingDetailList = new List();
+ List newKittingDetailList = new List();
+ foreach (var include in includeList)
+ {
+ var newDetail = existKittingList.Where(p => p.Code == include.Code).ToList();
+ var innerExist = from itm in newDetail
+ join itm1 in include.Details on itm.PartCode equals itm1.PartCode
+ select itm;
+ if (innerExist.Any())
+ {
+ var list = innerExist.ToList();
+ foreach (var itm in include.Details)
+ {
+ var entity = list.FirstOrDefault(p => p.PartCode == itm.PartCode);
+ itm.Desc1 = entity.Desc1;
+ itm.Desc2 = entity.Desc2;
+ itm.Qty = entity.Qty;
+ itm.Conf = entity.Conf;
+ //existKittingDetailList.Add(itm);
+ }
+ }
+ //var leftExist = from itm in newDetail
+ // join itm1 in include.Details on itm.PartCode equals itm1.PartCode
+ // into temp
+ // from tm in temp.DefaultIfEmpty()
+ // where tm == null
+ // select itm;
+ //if (leftExist.Any())
+ //{
+ // var list = leftExist.ToList();
+ // foreach (var itm in list)
+ // {
+ // var detail = new KittingDetail();
+ // detail.InjectFrom(itm);
+ // detail.SetId(Guid.NewGuid());
+ // detail.MasterId = include.Id;
+ // //newKittingDetailList.Add(detail);
+
+ // }
+ //}
+
+ //var entity = new KittingEditInput();
+ //entity.InjectFrom(include);
+
+ //foreach (var detail in include.Details)
+ //{
+ // var detailInput = new KittingDetailInput();
+ // detailInput.InjectFrom(detail);
+ // entity.Details.Add(detailInput);
+
+ //}
+
+ //var newDetail = existKittingList.Where(p => p.Code == entity.Code).ToList();
+ //var innerExist = from itm in newDetail
+ // join itm1 in entity.Details on itm.PartCode equals itm1.PartCode
+ // select itm;
+ //if (innerExist.Any())
+ //{
+ // var list = innerExist.ToList();
+ // foreach (var itm in entity.Details)
+ // {
+ // var l = list.FirstOrDefault(p => p.PartCode == itm.PartCode);
+ // itm.Desc1 = l.Desc1;
+ // itm.Desc2 = l.Desc2;
+ // itm.Qty = l.Qty;
+ // itm.Conf = l.Conf;
+ // }
+ //}
+ //var leftExist = from itm in newDetail
+ // join itm1 in entity.Details on itm.PartCode equals itm1.PartCode
+ // into temp
+ // from tm in temp.DefaultIfEmpty()
+ // where tm == null
+ // select itm;
+ //if (leftExist.Any())
+ //{
+ // var list = leftExist.ToList();
+ // foreach (var itm in list)
+ // {
+ // var detail = new KittingDetailInput();
+ // detail.InjectFrom(itm);
+ // detail.Id = Guid.NewGuid();
+ // detail.MasterId = entity.Id;
+ // entity.Details.Add(detail);
+
+ // }
+ //}
+ //existKittingInputList.Add(entity);
+ }
+
+ // List list1 = new List();
+ // foreach (var itm in existKittingInputList)
+ // {
+ // Kitting kitting = new Kitting();
+ // kitting.InjectFrom(itm);
+ // kitting.SetId(itm.Id);
+ // foreach (var detail in itm.Details)
+ // {
+ // KittingDetail kittingDetail = new KittingDetail();
+ // kittingDetail.InjectFrom(detail);
+ // kittingDetail.SetId(detail.Id);
+ // kitting.AddDetails(kittingDetail);
+ // }
+ // list1.Add(kitting);
+
+ // }
+ //var details= list1.Select(p => p.Details).ToList();
+
+
+ // //await _repository.GetDbContext().BulkInsertAsync(newKittingDetailList).ConfigureAwait(continueOnCapturedContext: false);
+ // //await _repository.GetDbContext().BulkUpdateAsync(existKittingDetailList).ConfigureAwait(continueOnCapturedContext: false);
+ // // var ls= ObjectMapper.Map< List ,List >(existKittingInputList);
+
+
+ // //await _repository.UpdateManyAsync(list1,true).ConfigureAwait(continueOnCapturedContext: false);
+
+
+ // await _manager.ImportDataAsync(includeList).ConfigureAwait(false);
- }
+ }
+
+
+ return new JsonResult(new { Code = 200, Message = "" });
+
+
+
+
+ }
+
protected override async Task GetFromRepositoryAsync(string code)
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAutoMapperProfile.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAutoMapperProfile.cs
index 2c675cc43..657c97e5a 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAutoMapperProfile.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Kittings/KittingAutoMapperProfile.cs
@@ -17,6 +17,33 @@ public partial class BasedataApplicationAutoMapperProfile : Profile
.ReverseMap();
+ CreateMap()
+ .IgnoreAuditedObjectProperties()
+ .Ignore(x => x.Details)
+ .Ignore(x => x.TenantId)
+ .Ignore(x => x.ExtraProperties)
+ .Ignore(x => x.Remark)
+ .Ignore(x => x.ConcurrencyStamp)
+ .Ignore(x => x.Id);
+
+
+ CreateMap()
+ .IgnoreAuditedObjectProperties()
+ //.ForMember(x => x., y => y.MapFrom(t => t.Code))
+ .ForMember(x => x.PartCode, y => y.MapFrom(t => t.PartCode))
+ .ForMember(x => x.Desc1, y => y.MapFrom(t => t.Desc1))
+ .ForMember(x => x.Desc2, y => y.MapFrom(t => t.Desc2))
+ .Ignore(x => x.MasterId)
+ .Ignore(x => x.TenantId)
+ .Ignore(x => x.Remark)
+ .Ignore(x => x.Id);
+
+
+
+
+
+
+
// CreateMap()
// .IgnoreAuditedObjectProperties()
@@ -29,7 +56,7 @@ public partial class BasedataApplicationAutoMapperProfile : Profile
//CreateMap()
// .IgnoreAuditedObjectProperties()
-
+
// .Ignore(x => x.MasterId)
// .Ignore(x => x.Enabled)
// .Ignore(x => x.TenantId)
@@ -37,9 +64,9 @@ public partial class BasedataApplicationAutoMapperProfile : Profile
// .Ignore(x => x.Id);
CreateMap()
- .IgnoreAuditedObjectProperties()
+ .IgnoreAuditedObjectProperties();
// .ForMember(x => x.MasterId, y => y.MapFrom(t => t.MasterId))
- ;
+
CreateMap()
.IgnoreAuditedObjectProperties()
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs
index b1af95693..37b5133a2 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain/Kittings/KittingDetail.cs
@@ -38,6 +38,7 @@ public class KittingDetail : AuditedEntity, IMultiTenant, IRemark
public string Remark { get; set; }
+
public void SetId(Guid guid)
{
Id= guid;
diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Kittings/KittingEfCoreRepository.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Kittings/KittingEfCoreRepository.cs
index f4dba107c..24cccf4b8 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Kittings/KittingEfCoreRepository.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.EntityFrameworkCore/Kittings/KittingEfCoreRepository.cs
@@ -19,10 +19,7 @@ public class KittingEfCoreRepository : SfsBaseDataEfCoreRepositoryBase();
var detail=DbContext.Set();
-
var dbSet = await GetDbSetAsync().ConfigureAwait(false);
-
-
var exist = await main.FirstOrDefaultAsync(p => p.Code == newData.Code).ConfigureAwait(false);
if (exist == null)
{
diff --git a/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs b/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs
index 64a9ac7db..45001dae6 100644
--- a/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs
+++ b/be/Modules/Shared/src/Win_in.Sfs.Shared.Application/SfsCrudWithDetailsAppServiceBase.cs
@@ -399,6 +399,7 @@ public abstract class SfsCrudWithDetailsAppServiceBase();
await Cache.SetItemAsync(dto.Id.ToString(), dto, SfsCacheConst.SeveralMinutes).ConfigureAwait(false);
return dto;