Browse Source

更新版本

dev_DY_CC
赵新宇 8 months ago
parent
commit
f5b0033a87
  1. 184
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs
  2. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/UnplannedIssuesNotes/UnplannedIssueNoteAppService.cs
  3. 5
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs
  4. 3
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJob.cs
  5. 33
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJobManager.cs
  6. 73
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/UnplannedIssueJobEventHandler.cs

184
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs

@ -2,6 +2,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Linq; using System.Linq;
using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using Castle.Components.DictionaryAdapter; using Castle.Components.DictionaryAdapter;
using Irony; using Irony;
@ -84,6 +85,68 @@ public class UnplannedIssueJobAppService
/// <summary>
/// 根据储位推荐
/// </summary>
/// <returns></returns>
//[HttpPost("add-detail")]
//public async Task AddDetailsAsync(UnplannedIssueJobDTO jobInput)
//{
// var entity=await _repository.GetAsync(p=>p.Id==jobInput.Id).ConfigureAwait(false);
// var details=ObjectMapper.Map<List<UnplannedIssueJobDetailDTO>, List<UnplannedIssueJobDetail>>(jobInput.Details);
// var balances=new List<BalanceDTO>();
// foreach (var itm in entity.Details)
// {
// entity.RemoveDetail(itm.Id);
// }
// //var strs=GetAllFields(typeof(UnplannedIssueJobDetail));
// foreach (var detail in details)//明细
// {
// //_locationAppService.get detail.HandledFromLocationCode
// var input = new RecommendBalanceRequestInput
// {
// ItemCode = detail.ItemCode,
// Qty = detail.HandledQty,
// Statuses = new EditableList<EnumInventoryStatus> { EnumInventoryStatus.OK },
// Locations = new List<string>() { detail.RecommendFromLocationCode },
// IsPackingCode = false
// };
// var usableList = await _balanceAppService.GetUsableListAsync(input).ConfigureAwait(false);//获取推荐库存
// usableList = usableList
// .OrderBy(p => p.Lot)
// .ThenBy(p => p.PutInTime)
// .ThenBy(p => p.Qty) //2023-9-14 苑静雯 从小数开始发料
// .ThenBy(p => p.LocationCode)
// .ThenBy(p => p.PackingCode)
// .ToList();
// decimal qty = 0;
// //实际要用库存
// var returnlist = DeductInventory(usableList, detail.HandledQty);
// balances.AddRange(returnlist);
// //useBalancesOut.AddRange(returnlist);
// entity.AddDetail(detail);
// }
// var outEditInputs = await BuildExpectOutAsync(balances).ConfigureAwait(false);
// foreach (var itm in outEditInputs)
// {
// itm.JobNumber = jobInput.Number;
// }
// await _expectOutAppService.AddManyAsync(outEditInputs).ConfigureAwait(false);
//}
public static string[] GetAllFields(Type type)
{
// 获取公共实例字段
var fields = type.GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.NonPublic);
// 返回字段名称
return fields.Select(f => f.Name).ToArray();
}
private List<BalanceDTO> DeductInventory(List<BalanceDTO> inventory, decimal quantityToDeduct) private List<BalanceDTO> DeductInventory(List<BalanceDTO> inventory, decimal quantityToDeduct)
{ {
List<BalanceDTO> balanceDTOs = new List<BalanceDTO>(); List<BalanceDTO> balanceDTOs = new List<BalanceDTO>();
@ -110,30 +173,6 @@ public class UnplannedIssueJobAppService
//public override async Task<UnplannedIssueJobDTO> GetAsync(Guid id)
//{
// var entity=await _repository.GetAsync(id).ConfigureAwait(false);
// var entityDTO=ObjectMapper.Map<UnplannedIssueJob, UnplannedIssueJobDTO>(entity);
// var details=ObjectMapper.Map<List<UnplannedIssueJobDetail>, List<UnplannedIssueJobDetailDTO>>(entity.Details);
// var facDetails=ObjectMapper.Map<List<UnplannedIssueJobFacDetail>, List<UnplannedIssueJobFacDetailDTO>>(entity.FacDetails);
// entityDTO.Details = details;
// entityDTO.FacDetails = facDetails;
// return entityDTO;
// // var inspectJob = await _repository.FindAsync(id).ConfigureAwait(false);
//}
private async Task<List<UnplannedIssueJob>> BuildUnplannedIssueJobAsync(UnplannedIssueRequest requestDto, List<BalanceDTO> useBalancesOut) private async Task<List<UnplannedIssueJob>> BuildUnplannedIssueJobAsync(UnplannedIssueRequest requestDto, List<BalanceDTO> useBalancesOut)
{ {
List<UnplannedIssueJob> jobs = new EditableList<UnplannedIssueJob>(); List<UnplannedIssueJob> jobs = new EditableList<UnplannedIssueJob>();
@ -165,8 +204,6 @@ public class UnplannedIssueJobAppService
useBalances.AddRange(returnlist); useBalances.AddRange(returnlist);
useBalancesOut.AddRange(returnlist); useBalancesOut.AddRange(returnlist);
//foreach (var balanceDto in usableList) //foreach (var balanceDto in usableList)
//{ //{
// decimal availableToDeduct = Math.Min(balanceDto.Qty, balanceDto.Qty - qty); // decimal availableToDeduct = Math.Min(balanceDto.Qty, balanceDto.Qty - qty);
@ -215,39 +252,48 @@ public class UnplannedIssueJobAppService
foreach (var balanceDto in balanceDtoGroup) foreach (var balanceDto in balanceDtoGroup)
{ {
var jobDetail = new UnplannedIssueJobDetail(); //var jobDetail = new UnplannedIssueJobDetail();
//jobDetail.Number = job.Number;
jobDetail.Number = job.Number; //jobDetail.SetIdAndNumber(GuidGenerator,job.Id,job.Number);
jobDetail.SetIdAndNumber(GuidGenerator,job.Id,job.Number); //jobDetail.CaseCode = requestDtoDetail.CaseCode;
//jobDetail.Explain = requestDtoDetail.Explain;
jobDetail.CaseCode = requestDtoDetail.CaseCode; //jobDetail.OnceBusiCode = requestDtoDetail.OnceBusiCode;
jobDetail.Explain = requestDtoDetail.Explain; //jobDetail.ProjCapacityCode = requestDtoDetail.ProjCapacityCode;
jobDetail.OnceBusiCode = requestDtoDetail.OnceBusiCode; ////jobDetail.ReasonCode = requestDtoDetail.ReasonCode;
jobDetail.ProjCapacityCode = requestDtoDetail.ProjCapacityCode; //jobDetail.ItemCode = requestDtoDetail.ItemCode;
//jobDetail.ReasonCode = requestDtoDetail.ReasonCode; //jobDetail.ItemDesc1 = requestDtoDetail.ItemDesc1;
jobDetail.ItemCode = requestDtoDetail.ItemCode; //jobDetail.ItemDesc2 = requestDtoDetail.ItemDesc2;
jobDetail.ItemDesc1 = requestDtoDetail.ItemDesc1; //jobDetail.ItemName = requestDtoDetail.ItemName;
jobDetail.ItemDesc2 = requestDtoDetail.ItemDesc2; //jobDetail.RecommendArriveDate = balanceDto.ArriveDate;
jobDetail.ItemName = requestDtoDetail.ItemName; //jobDetail.RecommendContainerCode = string.Empty;
jobDetail.RecommendArriveDate = balanceDto.ArriveDate; //jobDetail.RecommendExpireDate = balanceDto.ExpireDate;
jobDetail.RecommendContainerCode = string.Empty; //jobDetail.RecommendLot = balanceDto.Lot;
jobDetail.RecommendExpireDate = balanceDto.ExpireDate; //jobDetail.RecommendPackingCode = balanceDto.PackingCode;
jobDetail.RecommendLot = balanceDto.Lot; //jobDetail.RecommendProduceDate = balanceDto.ProduceDate;
jobDetail.RecommendPackingCode = balanceDto.PackingCode; //jobDetail.RecommendQty = balanceDto.Qty;
jobDetail.RecommendProduceDate = balanceDto.ProduceDate; //jobDetail.RecommendSupplierBatch = balanceDto.SupplierBatch;
jobDetail.RecommendQty = balanceDto.Qty; //jobDetail.StdPackQty = requestDtoDetail.StdPackQty;
jobDetail.RecommendSupplierBatch = balanceDto.SupplierBatch; //jobDetail.RecommendPackingCode = balanceDto.PackingCode;
jobDetail.StdPackQty = requestDtoDetail.StdPackQty; //jobDetail.HandledPackingCode = balanceDto.PackingCode;
jobDetail.RecommendPackingCode = balanceDto.PackingCode; //jobDetail.RecommendFromLocationArea = balanceDto.LocationArea;
jobDetail.HandledPackingCode = balanceDto.PackingCode; //jobDetail.RecommendFromLocationCode = balanceDto.LocationCode;
jobDetail.RecommendFromLocationArea = balanceDto.LocationArea; //jobDetail.RecommendFromLocationErpCode = balanceDto.LocationErpCode;
jobDetail.RecommendFromLocationCode = balanceDto.LocationCode; //jobDetail.RecommendFromLocationGroup = balanceDto.LocationGroup;
jobDetail.RecommendFromLocationErpCode = balanceDto.LocationErpCode; //jobDetail.RecommendFromWarehouseCode = balanceDto.WarehouseCode;
jobDetail.RecommendFromLocationGroup = balanceDto.LocationGroup; //jobDetail.HandledFromLocationGroup = balanceDto.LocationGroup;
jobDetail.RecommendFromWarehouseCode = balanceDto.WarehouseCode; //jobDetail.HandledFromLocationArea = balanceDto.LocationArea;
jobDetail.HandledQty = balanceDto.Qty; //jobDetail.HandledFromLocationCode = balanceDto.LocationCode;
//jobDetail.HandledFromLocationErpCode = balanceDto.LocationErpCode;
//jobDetail.HandledFromWarehouseCode = balanceDto.WarehouseCode;
//jobDetail.HandledQty = balanceDto.Qty;
//jobDetail.HandledSupplierBatch = balanceDto.Lot;
//jobDetail.HandledArriveDate = balanceDto.ArriveDate;
//jobDetail.HandledProduceDate = balanceDto.ProduceDate;
//jobDetail.HandledExpireDate = balanceDto.ExpireDate;
//jobDetail.HandledContainerCode = balanceDto.ContainerCode;
//jobDetail.HandledLot = balanceDto.Lot;
//jobDetail.HandledPackingCode = balanceDto.PackingCode;
//jobDetail.Uom = balanceDto.Uom;
var jobfacDetail = new UnplannedIssueJobFacDetail(); var jobfacDetail = new UnplannedIssueJobFacDetail();
@ -272,17 +318,29 @@ public class UnplannedIssueJobAppService
jobfacDetail.RecommendSupplierBatch = balanceDto.SupplierBatch; jobfacDetail.RecommendSupplierBatch = balanceDto.SupplierBatch;
jobfacDetail.StdPackQty = requestDtoDetail.StdPackQty; jobfacDetail.StdPackQty = requestDtoDetail.StdPackQty;
jobfacDetail.RecommendPackingCode = balanceDto.PackingCode; jobfacDetail.RecommendPackingCode = balanceDto.PackingCode;
jobfacDetail.HandledPackingCode = balanceDto.PackingCode; jobfacDetail.HandledFromLocationGroup = balanceDto.LocationGroup;
jobfacDetail.HandledFromLocationArea = balanceDto.LocationArea;
jobfacDetail.HandledFromLocationCode = balanceDto.LocationCode;
jobfacDetail.HandledFromLocationErpCode = balanceDto.LocationErpCode;
jobfacDetail.HandledFromWarehouseCode = balanceDto.WarehouseCode;
jobfacDetail.HandledQty = balanceDto.Qty;
jobfacDetail.HandledSupplierBatch = balanceDto.Lot;
jobfacDetail.HandledArriveDate = balanceDto.ArriveDate;
jobfacDetail.HandledProduceDate = balanceDto.ProduceDate;
jobfacDetail.HandledExpireDate = balanceDto.ExpireDate;
jobfacDetail.HandledContainerCode =balanceDto.ContainerCode ;
jobfacDetail.HandledLot = balanceDto.Lot;
jobfacDetail.HandledPackingCode =balanceDto.PackingCode;
jobfacDetail.RecommendFromLocationArea = balanceDto.LocationArea; jobfacDetail.RecommendFromLocationArea = balanceDto.LocationArea;
jobfacDetail.RecommendFromLocationCode = balanceDto.LocationCode; jobfacDetail.RecommendFromLocationCode = balanceDto.LocationCode;
jobfacDetail.RecommendFromLocationErpCode = balanceDto.LocationErpCode; jobfacDetail.RecommendFromLocationErpCode = balanceDto.LocationErpCode;
jobfacDetail.RecommendFromLocationGroup = balanceDto.LocationGroup; jobfacDetail.RecommendFromLocationGroup = balanceDto.LocationGroup;
jobfacDetail.RecommendFromWarehouseCode = balanceDto.WarehouseCode; jobfacDetail.RecommendFromWarehouseCode = balanceDto.WarehouseCode;
jobfacDetail.Status = balanceDto.Status;
jobfacDetail.HandledQty = balanceDto.Qty; jobfacDetail.HandledQty = balanceDto.Qty;
jobfacDetail.Uom = balanceDto.Uom;
//job.Details.Add(jobDetail);
job.Details.Add(jobDetail);
job.FacDetails.Add(jobfacDetail); job.FacDetails.Add(jobfacDetail);
} }
if (locationDto.Type == EnumLocationType.DimensionalStorehouse)//如果是立库的 if (locationDto.Type == EnumLocationType.DimensionalStorehouse)//如果是立库的

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/UnplannedIssuesNotes/UnplannedIssueNoteAppService.cs

@ -50,7 +50,8 @@ public class UnplannedIssueNoteAppService :
entity.Details.Add(detail); entity.Details.Add(detail);
//2023-10-20 袁静雯要求修改计划外出入库 Worker为userName //2023-10-20 袁静雯要求修改计划外出入库 Worker为userName
var userName = await _userAppService.GetUserNameByUserAsync(input.Worker).ConfigureAwait(false); var userName = input.Worker;
//await _userAppService.GetUserNameByUserAsync(input.Worker).ConfigureAwait(false);
entity.Worker = userName; entity.Worker = userName;
} }

5
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs

@ -86,7 +86,7 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA
/// <returns></returns> /// <returns></returns>
/// <exception cref="UserFriendlyException"></exception> /// <exception cref="UserFriendlyException"></exception>
[HttpPost("import-dongyang")] [HttpPost("import-dongyang")]
public async Task<IActionResult> ImportDYAsync([FromForm] SfsImportRequestInput requestInput, [Required] IFormFile file) public async Task<IActionResult> ImportDYAsync([FromForm] SfsImportRequestInput requestInput, [Required] IFormFile file)
{ {
try try
@ -207,6 +207,9 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA
detail.PackingCode = packingcode; detail.PackingCode = packingcode;
detail.Status = EnumInventoryStatus.OK;
} }

3
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJob.cs

@ -101,4 +101,7 @@ public class UnplannedIssueJob : SfsJobAggregateRootBase<UnplannedIssueJobDetail
detail.ExtraProperties = extraProperty; detail.ExtraProperties = extraProperty;
await Task.CompletedTask.ConfigureAwait(false); await Task.CompletedTask.ConfigureAwait(false);
} }
} }

33
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Jobs/UnplannedIssueJobs/UnplannedIssueJobManager.cs

@ -4,6 +4,10 @@ using System.ComponentModel.DataAnnotations;
using System.Linq; using System.Linq;
using System.Linq.Expressions; using System.Linq.Expressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using DocumentFormat.OpenXml.Office.CustomUI;
using DocumentFormat.OpenXml.Office2010.Excel;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Users; using Volo.Abp.Users;
using Volo.Abp.Validation; using Volo.Abp.Validation;
using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Shared.Domain.Shared;
@ -22,26 +26,35 @@ public class UnplannedIssueJobManager : SfsJobManagerBase<UnplannedIssueJob, Unp
/// <summary> /// <summary>
/// 执行任务 发料任务 /// 执行任务 发料任务
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name=id></param>
/// <param name="input"></param> /// <param name=input></param>
/// <param name="user"></param> /// <param name=user></param>
/// <returns></returns> /// <returns></returns>
public override async Task<UnplannedIssueJob> CompleteAsync(UnplannedIssueJob input, ICurrentUser user) public override async Task<UnplannedIssueJob> CompleteAsync(UnplannedIssueJob input, ICurrentUser user)
{ {
UnplannedIssueJob entity = await Repository.FindAsync(input.Id).ConfigureAwait(false); var entity = await Repository.GetAsync(input.Id).ConfigureAwait(false);
entity.BuildDate = input.BuildDate; entity.BuildDate = input.BuildDate;
entity.DeptCode = input.DeptCode; entity.DeptCode = input.DeptCode;
entity.DeptName = input.DeptName; entity.DeptName = input.DeptName;
entity.CompleteUserName = input.CompleteUserName; entity.CompleteUserName = input.CompleteUserName;
entity.CompleteUserId = input.CompleteUserId; entity.CompleteUserId = input.CompleteUserId;
var first= entity.FacDetails.FirstOrDefault();
foreach (var detail in input.Details) foreach (var detail in input.Details)
{ {
detail.SetIdAndNumber(GuidGenerator, input.Id, input.Number);
detail.ReasonCode = first.ReasonCode;
detail.CaseCode = first.CaseCode;
detail.ProjCapacityCode = first.ProjCapacityCode;
detail.OnceBusiCode = first.OnceBusiCode;
detail.Explain = first.Explain;
detail.Status = EnumInventoryStatus.OK;
entity.AddDetail(detail);
//发料子任务 赋值实际转移 //发料子任务 赋值实际转移
await entity.BuildDetail(detail.Id, detail.HandledFromLocationGroup, detail.HandledFromLocationArea,detail.HandledFromLocationCode, detail.HandledFromLocationErpCode, detail.HandledFromWarehouseCode, detail.HandledQty, detail.HandledSupplierBatch, detail.HandledArriveDate, detail.HandledProduceDate, detail.HandledExpireDate,
detail.HandledContainerCode, detail.HandledLot, detail.HandledPackingCode, detail.ExtraProperties).ConfigureAwait(false);
} }
return await base.CompleteAsync(entity, user).ConfigureAwait(false); return await base.CompleteAsync(entity, user).ConfigureAwait(false);
} }
@ -52,7 +65,7 @@ public class UnplannedIssueJobManager : SfsJobManagerBase<UnplannedIssueJob, Unp
{ {
if (detail.HandledFromLocationCode == null) if (detail.HandledFromLocationCode == null)
{ {
result.Errors.Add(new ValidationResult($"{detail.HandledFromLocationCode} 不能为空")); result.Errors.Add(new ValidationResult($"{detail.HandledFromLocationCode}不能为空"));
} }
} }
@ -73,7 +86,7 @@ public class UnplannedIssueJobManager : SfsJobManagerBase<UnplannedIssueJob, Unp
///// <summary> ///// <summary>
///// 临时修改 解决补料无法拿到订阅错误 ///// 临时修改 解决补料无法拿到订阅错误
///// </summary> ///// </summary>
///// <param name="eventData"></param> ///// <param name=eventData></param>
///// <returns></returns> ///// <returns></returns>
//public virtual async Task<List<UnplannedIssueJob>> AddByEtoAsync(MaterialRequestHandledETO eventData) //public virtual async Task<List<UnplannedIssueJob>> AddByEtoAsync(MaterialRequestHandledETO eventData)
//{ //{
@ -89,7 +102,7 @@ public class UnplannedIssueJobManager : SfsJobManagerBase<UnplannedIssueJob, Unp
//public virtual async Task TestError() //public virtual async Task TestError()
//{ //{
// throw new UserFriendlyException("我是测试的异常"); // throw new UserFriendlyException(我是测试的异常);
//} //}
public async Task<UnplannedIssueJob> GetAsync(Expression<Func<UnplannedIssueJob, bool>> expression) public async Task<UnplannedIssueJob> GetAsync(Expression<Func<UnplannedIssueJob, bool>> expression)
{ {

73
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Jobs/UnplannedIssueJobEventHandler.cs

@ -1,3 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.EventBus; using Volo.Abp.EventBus;
using Volo.Abp.Uow; using Volo.Abp.Uow;
@ -63,22 +67,73 @@ public class UnplannedIssueJobEventHandler :
private UnplannedIssueNoteEditInput BuildUnplannedIssueNoteCreateInput(UnplannedIssueJob entity) private UnplannedIssueNoteEditInput BuildUnplannedIssueNoteCreateInput(UnplannedIssueJob entity)
{ {
var createInput = ObjectMapper.Map<UnplannedIssueJob, UnplannedIssueNoteEditInput>(entity); var createInput = ObjectMapper.Map<UnplannedIssueJob, UnplannedIssueNoteEditInput>(entity);
createInput.Details.RemoveAll(p => p.Qty == 0);
/*
createInput.Details = new List<UnplannedIssueNoteDetailInput>(); createInput.Details = new List<UnplannedIssueNoteDetailInput>();
//var strs= GetDifferentPropertyNames(typeof(UnplannedIssueJobDetail), typeof(UnplannedIssueNoteDetailInput));
//var strs1 = GetDifferentPropertyNames(typeof(UnplannedIssueNoteDetailInput), typeof(UnplannedIssueJobDetail));
foreach (var inputDetail in entity.Details) foreach (var inputDetail in entity.Details)
{ {
var detail = ObjectMapper.Map<UnplannedIssueJobDetail, UnplannedIssueNoteDetailInput>(inputDetail); if (inputDetail.HandledQty > 0)
{
var detail = ObjectMapper.Map<UnplannedIssueJobDetail, UnplannedIssueNoteDetailInput>(inputDetail);
detail.LocationCode = inputDetail.HandledFromLocationCode;
detail.LocationArea = inputDetail.HandledFromLocationArea;
detail.LocationGroup=inputDetail.HandledFromLocationGroup;
detail.LocationErpCode = inputDetail.HandledFromLocationErpCode;
detail.WarehouseCode = inputDetail.HandledFromWarehouseCode;
detail.PackingCode = inputDetail.HandledPackingCode;
detail.ContainerCode=inputDetail.HandledContainerCode;
detail.Qty=inputDetail.HandledQty;
detail.Lot=inputDetail.HandledLot;
detail.SupplierBatch = inputDetail.HandledSupplierBatch;
detail.ArriveDate=inputDetail.HandledArriveDate;
detail.ProduceDate = inputDetail.HandledProduceDate;
detail.ExpireDate=inputDetail.HandledExpireDate;
detail.Uom = inputDetail.Uom;
detail.ExtraProperties = inputDetail.ExtraProperties;
createInput.Details.Add(detail);
}
}
return createInput;
}
detail.ExtraProperties = inputDetail.ExtraProperties; //public static string[] GetDifferentFieldNames(Type type1, Type type2)
//{
// // 获取两个类型的字段
// var fields1 = type1.GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
// var fields2 = type2.GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
createInput.Details.Add(detail); // // 获取字段名称
} // var fieldNames1 = fields1.Select(f => f.Name).ToArray();
*/ // var fieldNames2 = fields2.Select(f => f.Name).ToArray();
return createInput; // // 找出不同的字段名称
// var differentFields = fieldNames1.Except(fieldNames2).ToArray();
// return differentFields;
//}
public static string[] GetDifferentPropertyNames(Type type1, Type type2)
{
// 获取两个类型的属性
var properties1 = type1.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
var properties2 = type2.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
// 获取属性名称
var propertyNames1 = properties1.Select(p => p.Name).ToArray();
var propertyNames2 = properties2.Select(p => p.Name).ToArray();
// 找出不同的属性名称
var differentProperties = propertyNames1.Except(propertyNames2)
.ToArray();
return differentProperties;
} }
} }

Loading…
Cancel
Save