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
505a4cdc22
  1. 2
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs
  2. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/ThirdLocationNotes/DTOs/ThirdLocationNoteDTO.cs
  3. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/ThirdLocationNotes/Inputs/ThirdLocationNoteEditInput.cs
  4. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/ThirdLocationNotes/Inputs/ThirdLocationNoteImportInput.cs
  5. 223
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs
  6. 58
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs
  7. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/IssueJobToRestoClient.cs
  8. 9
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedIssueRequests/UnplannedIssueRequestForDongyangAppService.cs
  9. 8
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs
  10. 1
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/ThirdLocationNotes/ThirdLocationNote.cs
  11. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/ThirdLocationNotes/ThirdLocationNoteDbContextModelCreatingExtensions.cs
  12. 6
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Jobs/ThirdLocationJobAutoMapperProfile.cs
  13. 14
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Notes/ThirdLocationNoteAutoMapperProfile.cs
  14. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/ThirdLocationNoteEventHandler.cs

2
be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/test/TestAppService.cs

@ -72,7 +72,7 @@ public class TestService:ApplicationService
{
ReusltObject reuslt=new ReusltObject();
reuslt.Code = "0";
reuslt.Code = "1";
reuslt.Message = "操作成功";
reuslt.OperateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/ThirdLocationNotes/DTOs/ThirdLocationNoteDTO.cs

@ -12,6 +12,7 @@ public class ThirdLocationNoteDTO : SfsStoreDTOBase<ThirdLocationNoteDetailDTO>,
/// </summary>
[Display(Name = "任务ID")]
public string JobNumber { get; set; }
/// <summary>
/// 车间

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/ThirdLocationNotes/Inputs/ThirdLocationNoteEditInput.cs

@ -27,6 +27,7 @@ public class ThirdLocationNoteEditInput : SfsStoreCreateOrUpdateInputBase
[Display(Name = "任务ID")]
[Required(ErrorMessage = "{0}是必填项")]
public string JobNumber { get; set; }
/// <summary>
/// 车间

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Notes/ThirdLocationNotes/Inputs/ThirdLocationNoteImportInput.cs

@ -9,6 +9,7 @@ public class ThirdLocationNoteImportInput : SfsStoreImportInputBase, IHasJobNumb
/// </summary>
[Display(Name = "任务ID")]
public string JobNumber { get; set; }
/// <summary>
/// 车间

223
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/CoatingIssueJobs/CoatingIssueJobAppService.cs

@ -204,116 +204,121 @@ public class CoatingIssueJobAppService
}
[HttpPost("sync-issue-job-stereo")]
public virtual async Task<ReusltObject> SyncCoatingJobStereoAsync(List<CoatingIssueJobDTO> input)
{
ReusltObject ret=new ReusltObject();
ret.Code = "1";
ret.Message = "操作成功";
ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd");
List<IssueJobToRestoDetailDTO> IssueJobToRestoDetailDTOs = new List<IssueJobToRestoDetailDTO>();
IssueJobToRestoDTO main=new IssueJobToRestoDTO();
main.OperatorName=CurrentUser.UserName;
foreach (var job in input)
{
foreach (var jobitem in job.Details)
{
IssueJobToRestoDetailDTOs.Add(new IssueJobToRestoDetailDTO()
{
Count=jobitem.HandledToQty,
ProductNo=jobitem.ItemCode,
NeedSite=jobitem.HandledToLocationCode,
WorkNo=job.Number,
TaskNo=job.Number
});
}
}
main.Details=IssueJobToRestoDetailDTOs;
#region
IssueJobToRestoClient client = new IssueJobToRestoClient(_options.Value.Address, _httpClientFactory.CreateClient());
ret = await client.SyncIssueJobStereoAsync(main).ConfigureAwait(false);
#endregion
return ret;
}
[HttpPost("receive-issue-job-stereo")]
public virtual async Task<ReusltObject> SyncReciveCoatingJobStereoAsync(IssueRequestFromRestoDTO input)
{
List<string> errors = new List<string>();
var ret=new ReusltObject()
{
Code = "1",
OperateTime = DateTime.Now.ToString("yyyy-MM-dd"),
Message = "操作成功"
};
try
{
if (input.Jobs.Count > 0)
{
var inputs = input.Jobs;
var numbers = inputs.Select(p => p.JobNumber);
var query = _repository.WithDetails()
.Where(p => numbers.Contains(p.Number));
var entities = query.ToList();
if (input.Jobs.Count == entities.Count) {
errors.Add("出库任务和WMS出库任务不符,请核对! \n");
}
var dtos = ObjectMapper.Map<List<CoatingIssueJob>, List<CoatingIssueJobDTO>>(entities);
foreach (var itm in dtos)
{
var first = inputs.FirstOrDefault<IssueJobFromRestoDTO>(p => p.JobNumber == itm.Number);
List<CoatingIssueJobDetailDTO> details = new List<CoatingIssueJobDetailDTO>();
foreach (var detail in first.Details)
{
CoatingIssueJobDetailDTO dto = new CoatingIssueJobDetailDTO();
dto.HandledFromLocationCode = detail.FromLocationCode;
dto.HandledToLocationCode = detail.ToLocationCode;
dto.ItemCode = detail.ItemCode;
dto.RecommendFromQty = detail.Qty;
dto.RecommendToQty = detail.Qty;
dto.HandledFromQty = detail.Qty;
dto.HandledToQty = detail.Qty;
details.Add(dto);
}
itm.Details = details;
}
}
else
{
errors.Add("立体库确认单据里无数据! \n");
}
}
catch (Exception ex)
{
ret=new ReusltObject()
{
Code = "2",
OperateTime = DateTime.Now.ToString("yyyy-MM-dd"),
Message = ex.Message
};
return ret;
}
if (errors.Count > 0)
{
//[HttpPost("sync-issue-job-stereo")]
//public virtual async Task<ReusltObject> SyncCoatingJobStereoAsync(List<CoatingIssueJobDTO> input)
//{
// ReusltObject ret=new ReusltObject();
// ret.Code = "1";
// ret.Message = "操作成功";
// ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd");
// List<IssueJobToRestoDetailDTO> IssueJobToRestoDetailDTOs = new List<IssueJobToRestoDetailDTO>();
// IssueJobToRestoDTO main=new IssueJobToRestoDTO();
// main.OperatorName=CurrentUser.UserName;
// foreach (var job in input)
// {
// foreach (var jobitem in job.Details)
// {
// IssueJobToRestoDetailDTOs.Add(new IssueJobToRestoDetailDTO()
// {
// Count=jobitem.HandledToQty,
// ProductNo=jobitem.ItemCode,
// NeedSite=jobitem.HandledToLocationCode,
// WorkNo=job.Number,
// TaskNo=job.Number
// });
// }
// }
// main.Details=IssueJobToRestoDetailDTOs;
// #region
// IssueJobToRestoClient client = new IssueJobToRestoClient(_options.Value.Address, _httpClientFactory.CreateClient());
// ret = await client.SyncIssueJobStereoAsync(main).ConfigureAwait(false);
// #endregion
// return ret;
//}
//[HttpPost("receive-issue-job-stereo")]
//public virtual async Task<ReusltObject> SyncReciveCoatingJobStereoAsync(IssueRequestFromRestoDTO input)
//{
// List<string> errors = new List<string>();
// var ret=new ReusltObject()
// {
// Code = "1",
// OperateTime = DateTime.Now.ToString("yyyy-MM-dd"),
// Message = "操作成功"
// };
// try
// {
// if (input.Jobs.Count > 0)
// {
// var inputs = input.Jobs;
// var numbers = inputs.Select(p => p.JobNumber);
// var query = _repository.WithDetails()
// .Where(p => numbers.Contains(p.Number));
// var entities = query.ToList();
// if (input.Jobs.Count == entities.Count) {
// errors.Add("出库任务和WMS出库任务不符,请核对! \n");
// }
// var dtos = ObjectMapper.Map<List<CoatingIssueJob>, List<CoatingIssueJobDTO>>(entities);
// foreach (var itm in dtos)
// {
// var first = inputs.FirstOrDefault<IssueJobFromRestoDTO>(p => p.JobNumber == itm.Number);
// var itmDetails = itm.Details;
// List<CoatingIssueJobDetailDTO> details = new List<CoatingIssueJobDetailDTO>();
// foreach (var detail in first.Details)
// {
// var entity=itmDetails.FirstOrDefault(p => p.ItemCode == detail.ItemCode);
// CoatingIssueJobDetailDTO dto = new CoatingIssueJobDetailDTO();
// dto.HandledFromLocationCode = entity.HandledFromContainerCode;
// dto.HandledToLocationCode = entity.HandledToLocationCode;
// dto.ItemCode = detail.ItemCode;
// dto.RecommendFromQty = detail.Qty;
// dto.RecommendToQty = detail.Qty;
// dto.HandledFromQty = detail.Qty;
// dto.HandledToQty = detail.Qty;
// details.Add(dto);
// }
// itm.Details = details;
// await CompleteAsync(itm.Id, itm).ConfigureAwait(false);
// }
// }
// else
// {
// errors.Add("立体库确认单据里无数据! \n");
// }
// }
// catch (Exception ex)
// {
// ret=new ReusltObject()
// {
// Code = "2",
// OperateTime = DateTime.Now.ToString("yyyy-MM-dd"),
// Message = ex.Message
// };
// return ret;
// }
// if (errors.Count > 0)
// {
ret= new ReusltObject()
{
Code = "2",
OperateTime = DateTime.Now.ToString("yyyy-MM-dd"),
Message = string.Join(",",errors.ToArray())
};
}
return ret;
}
// ret= new ReusltObject()
// {
// Code = "2",
// OperateTime = DateTime.Now.ToString("yyyy-MM-dd"),
// Message = string.Join(",",errors.ToArray())
// };
// }
// return ret;
//}

58
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs

@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Castle.Components.DictionaryAdapter;
using Microsoft.AspNetCore.Authorization;
@ -22,6 +23,7 @@ using Win_in.Sfs.Wms.Store.Jobs.IssueJobs.proxy;
using Win_in.Sfs.Wms.Store.Notes;
using Win_in.Sfs.Wms.Store.Options;
using static IdentityModel.ClaimComparer;
using static Volo.Abp.Identity.Settings.IdentitySettingNames;
namespace Win_in.Sfs.Wms.Store.Application;
@ -368,10 +370,15 @@ public class KittingIssueJobAppService
/// <summary>
/// 立体库同步
/// </summary>
/// <param name="input"></param>
/// <param name="p_loc"></param>
/// <returns></returns>
[HttpPost("sync-issue-job-stereo")]
private async Task<ReusltObject> SyncIssueJobStereoAsync(List<KittingIssueJobDTO> input,string p_loc)
public async Task<ReusltObject> SyncIssueJobStereoAsync(List<KittingIssueJobDTO> input,string p_loc)
{
ReusltObject ret = new ReusltObject();
ret.Code = "1";
@ -397,15 +404,29 @@ public class KittingIssueJobAppService
}
}
main.Details = IssueJobToRestoDetailDTOs;
var httpclient = _httpClientFactory.CreateClient();
#if DEBUG
string json= System.Text.Json.JsonSerializer.Serialize(main);
_options.Value.Address = "http://localhost:59094/CargoState/SyncCoatingJobStereo";//测试地址
_options.Value.Address = "http://localhost:59094/";//测试地址
_options.Value.Token = "";//测试token
_options.Value.UserName = "";//测试用户名
_options.Value.Password = "";//测试密码
#endif
if (!string.IsNullOrEmpty(_options.Value.Token))
{
var token = _options.Value.Token;
httpclient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer",token );
}
if (!string.IsNullOrEmpty(_options.Value.UserName) && !string.IsNullOrEmpty(_options.Value.Password))
{
var username = _options.Value.UserName;
var password = _options.Value.Password;
httpclient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes($"{username}:{password}")));
}
#region
IssueJobToRestoClient client = new IssueJobToRestoClient(_options.Value.Address, _httpClientFactory.CreateClient());
IssueJobToRestoClient client = new IssueJobToRestoClient(_options.Value.Address, httpclient);
ret = await client.SyncIssueJobStereoAsync(main).ConfigureAwait(false);
}
catch(Exception ex) {
@ -414,14 +435,11 @@ public class KittingIssueJobAppService
ret.Message=ex.Message;
ret.OperateTime = DateTime.Now.ToString("yyyy-MM-dd");
}
#endregion
return ret;
}
[HttpPost("receive-issue-job-stereo")]
public virtual async Task<ReusltObject> SyncReciveIssueJobStereoAsync(IssueRequestFromRestoDTO input)
{
@ -446,18 +464,11 @@ public class KittingIssueJobAppService
var query = _repository.WithDetails()
.Where(p => numbers.Contains(p.Number));
var entities = query.ToList();
var dtos = ObjectMapper.Map<List<KittingIssueJob>, List<KittingIssueJobDTO>>(entities);
if (input.Jobs.Count == entities.Count)
{
errors.Add("提交出库任务和WMS出库任务不符,请核对! \n");
errors.Add("立体库提交出库任务和WMS任务不符,请核对! \n");
}
foreach (var itm in dtos)
{
var first = jobs.FirstOrDefault<IssueJobFromRestoDTO>(p => p.JobNumber == itm.Number);
@ -465,17 +476,20 @@ public class KittingIssueJobAppService
List<KittingIssueJobDetailDTO> details = new List<KittingIssueJobDetailDTO>();
foreach (var detail in first.Details)
{
var entity = itmDetails.FirstOrDefault(p => p.ItemCode == detail.ItemCode);
KittingIssueJobDetailDTO dto = new KittingIssueJobDetailDTO();
dto.HandledFromLocationCode = detail.FromLocationCode;
dto.HandledToLocationCode = detail.ToLocationCode;
dto.HandledFromLocationCode = entity.HandledFromLocationCode;
dto.HandledToLocationCode = entity.HandledToLocationCode;
dto.ItemCode = detail.ItemCode;
dto.RecommendFromQty = detail.Qty;
dto.RecommendToQty = detail.Qty;
dto.HandledFromQty = detail.Qty;
dto.HandledToQty = detail.Qty;
dto.Status =entity.Status;
details.Add(dto);
}
itm.Details = details;
await CompleteAsync(itm.Id, itm).ConfigureAwait(false);
}
}
else

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/proxy/IssueJobToRestoClient.cs

@ -95,7 +95,7 @@ namespace MyNamespace
var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(_baseUrl)) urlBuilder_.Append(_baseUrl);
// Operation Path: "CargoState/SyncIssueJobStereo"
urlBuilder_.Append("CargoState/SyncIssueJobStereo");//修改路由
urlBuilder_.Append("CargoState/SyncIssueJobStereo");//修改路由按需求
PrepareRequest(client_, request_, urlBuilder_);

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

@ -174,15 +174,6 @@ public class UnplannedIssueRequestForDongyangAppService : UnplannedIssueRequestA
return newDetail;
}
protected override UnplannedIssueRequest ModifyEntityBeforeAgree(UnplannedIssueRequest obj)
{
if (obj.UnplannedIssueType == EnumUnplannedIssueType.Wip)
{
obj.DirectCreateNote = true; //线边 直接生成记录
}
return obj;
}
#region 赋值
/// <summary>

8
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/UnplannedReceiptRequests/UnplannedReceiptRequestForDongyangAppService.cs

@ -142,14 +142,6 @@ public class UnplannedReceiptRequestForDongyangAppService : UnplannedReceiptRequ
return dictionary;
}
protected override UnplannedReceiptRequest ModifyEntityBeforeAgree(UnplannedReceiptRequest obj)
{
if (obj.UnplannedReceiptType == EnumUnplannedReceiptType.Wip)
{
obj.DirectCreateNote = true;
}
return obj;
}
#region 赋值

1
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Domain/Notes/ThirdLocationNotes/ThirdLocationNote.cs

@ -16,6 +16,7 @@ public class ThirdLocationNote : SfsStoreAggregateRootBase<ThirdLocationNoteDeta
/// </summary>
[IgnoreUpdate]
public string JobNumber { get; set; }
/// <summary>
/// 车间

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.EntityFrameworkCore/Notes/ThirdLocationNotes/ThirdLocationNoteDbContextModelCreatingExtensions.cs

@ -21,7 +21,7 @@ public static class ThirdLocationNoteDbContextModelCreatingExtensions
//Properties
b.Property(q => q.RequestNumber).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.RequestType).HasMaxLength(SfsPropertyConst.CodeLength);
b.Property(q => q.Workshop).HasMaxLength(SfsPropertyConst.NameLength);
b.Property(q => q.Workshop).HasMaxLength(SfsPropertyConst.NameLength);
b.Property(q => q.Remark).HasMaxLength(SfsPropertyConst.RemarkLength);
//Relations

6
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Jobs/ThirdLocationJobAutoMapperProfile.cs

@ -16,10 +16,10 @@ public partial class StoreEventAutoMapperProfile : Profile
CreateMap<ThirdLocationJob, ThirdLocationNote>()
.ForMember(x => x.JobNumber, y => y.MapFrom(d => d.Number))
.ForMember(x => x.RequestNumber, y => y.MapFrom(d => d.RequestNumber))
.ForMember(x => x.ActiveDate, y => y.MapFrom(d => DateTime.Now))
.ForMember(x => x.ActiveDate, y => y.MapFrom(d => DateTime.Now))
.ForMember(x => x.Worker, y => y.MapFrom(d => d.CompleteUserName))
.Ignore(x => x.Confirmed)
.Ignore(x => x.Number)
.Ignore(x => x.Number)
.Ignore(x => x.ConfirmTime);
CreateMap<ThirdLocationJobDetail, ThirdLocationNoteDetail>()
@ -64,7 +64,7 @@ public partial class StoreEventAutoMapperProfile : Profile
CreateMap<ThirdLocationJob, ThirdLocationNoteEditInput>()
.ForMember(x => x.RequestNumber, y => y.MapFrom(d => d.RequestNumber))
.Ignore(x => x.Confirmed)
.Ignore(x => x.JobNumber)
.Ignore(x => x.JobNumber)
.Ignore(x => x.ActiveDate)
;
CreateMap<ThirdLocationJobDetail, ThirdLocationNoteDetailInput>()

14
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/AutoMapperProfiles/Notes/ThirdLocationNoteAutoMapperProfile.cs

@ -1,6 +1,7 @@
using AutoMapper;
using Volo.Abp.AutoMapper;
using Win_in.Sfs.Wms.Inventory.Application.Contracts;
using Win_in.Sfs.Wms.Store.Application.Contracts;
using Win_in.Sfs.Wms.Store.Domain;
namespace Win_in.Sfs.Wms.Store.Event;
@ -17,6 +18,19 @@ public partial class StoreEventAutoMapperProfile : Profile
.Ignore(x => x.ExtraProperties)
.Ignore(x => x.TransSubType)
;
CreateMap<ThirdLocationNote, TransferNoteDTO>()
.ForMember(dest => dest.Type, opts => opts.MapFrom(src => src.RequestType))
.Ignore(x => x.ExtraProperties)
.Ignore(x => x.CallServerName)
.Ignore(x => x.CallBusinessType)
.Ignore(x => x.CallRequestNumber)
.Ignore(x => x.CallJobNumber)
;
CreateMap<ThirdLocationNoteDetail, TransferNoteDetailDTO>()
.Ignore(x => x.Reason)
;
}
}

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/ThirdLocationNoteEventHandler.cs

@ -40,7 +40,7 @@ namespace Win_in.Sfs.Wms.Store.Event.DataExchanges
protected override async Task AddExchangeDataAsync(List<ThirdLocationNote> entities)
{
var dtos = ObjectMapper.Map<List<ThirdLocationNote>, List<ThirdLocationNoteDTO>>(entities);
var dtos = ObjectMapper.Map<List<ThirdLocationNote>, List<TransferNoteDTO>>(entities);
foreach (var detail in dtos.SelectMany(dto => dto.Details))
{
await detail.TrySetLocationAsync(LocationAclService).ConfigureAwait(false);

Loading…
Cancel
Save