8 changed files with 266 additions and 3 deletions
@ -0,0 +1,34 @@ |
|||||
|
using System; |
||||
|
using System.ComponentModel.DataAnnotations; |
||||
|
using Volo.Abp.Application.Dtos; |
||||
|
|
||||
|
namespace Win_in.Sfs.Wms.Store.Application.Contracts; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 库存转移记录-实体DTO //??TransferLib实体
|
||||
|
/// </summary>
|
||||
|
public class GaoTongResultDTO : EntityDto |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
///
|
||||
|
/// </summary>
|
||||
|
[Display(Name = "")] |
||||
|
public string Code { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
///
|
||||
|
/// </summary>
|
||||
|
[Display(Name = "")] |
||||
|
public string Message { get; set; } |
||||
|
|
||||
|
/// <summary>
|
||||
|
///
|
||||
|
/// </summary>
|
||||
|
[Display(Name = "")] |
||||
|
public string OperateTime { get; set; } |
||||
|
} |
||||
|
/* |
||||
|
{"code":"1","message":"接收成功", |
||||
|
"operateTime":"2020-01-0513:50:01"} |
||||
|
|
||||
|
*/ |
@ -0,0 +1,20 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
|
||||
|
namespace Win_in.Sfs.Wms.Store.Application.Contracts; |
||||
|
|
||||
|
public sealed class GaoTongResultStatus |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// 成功
|
||||
|
/// </summary>
|
||||
|
public const string Success = "1"; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 失败
|
||||
|
/// </summary>
|
||||
|
public const string Failure = "-1"; |
||||
|
} |
@ -0,0 +1,8 @@ |
|||||
|
using Volo.Abp.Authorization.Permissions; |
||||
|
using Win_in.Sfs.Wms.Store.Domain; |
||||
|
|
||||
|
namespace Win_in.Sfs.Wms.Store.Application.Contracts; |
||||
|
|
||||
|
public static class GaoTongPermissions |
||||
|
{ |
||||
|
} |
@ -0,0 +1,21 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Threading; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp.Application.Dtos; |
||||
|
using Volo.Abp.Application.Services; |
||||
|
|
||||
|
namespace Win_in.Sfs.Wms.Store.Application.Contracts; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 立库接口
|
||||
|
/// </summary>
|
||||
|
public interface IGaoTongAppService : IApplicationService |
||||
|
{ |
||||
|
/// <summary>
|
||||
|
/// 组盘信息反馈到东阳WMS(喷涂完工转储)
|
||||
|
/// </summary>
|
||||
|
/// <param name="input">组盘接口输入参数</param>
|
||||
|
/// <returns>立库接口通用输出参数</returns>
|
||||
|
Task<GaoTongResultDTO> FeedbackZuPanAsync(ZuPanEditInput input); |
||||
|
} |
@ -0,0 +1,37 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.ComponentModel.DataAnnotations; |
||||
|
using Volo.Abp.Application.Dtos; |
||||
|
|
||||
|
namespace Win_in.Sfs.Wms.Store.Application.Contracts; |
||||
|
|
||||
|
/// <summary>
|
||||
|
/// 新增和更新基础DTO //??TransferLib实体
|
||||
|
/// </summary>
|
||||
|
public class ZuPanEditInput : EntityDto |
||||
|
{ |
||||
|
[Display(Name = "产品编号:映射ERP料号")] |
||||
|
public string ItemCode { get; set; } |
||||
|
|
||||
|
[Display(Name = "器具号")] |
||||
|
public string ContainerCode { get; set; } |
||||
|
|
||||
|
[Display(Name = "数量")] |
||||
|
public string Qty { get; set; } |
||||
|
|
||||
|
[Display(Name = "固定值,在立库中配置。用于多立库时区分哪个立库")] |
||||
|
public string ToLocationCode { get; set; } |
||||
|
|
||||
|
[Display(Name = "由1.2接口中获取富维东阳MES提供的来源位置")] |
||||
|
public string FromLocationCode { get; set; } |
||||
|
|
||||
|
} |
||||
|
/* |
||||
|
{ |
||||
|
"ItemCode": "ERPCODE0001", |
||||
|
"Qty": 122, |
||||
|
"ContainerCode": "C111123", |
||||
|
"ToLocationCode": "W1", |
||||
|
"FromLocationCode": "WIPT" |
||||
|
} |
||||
|
*/ |
@ -1,10 +1,142 @@ |
|||||
using System; |
using System; |
||||
using System.Collections.Generic; |
using System.Collections.Generic; |
||||
using System.Linq; |
using System.Linq; |
||||
using System.Text; |
using System.Text; |
||||
using System.Threading.Tasks; |
using System.Threading.Tasks; |
||||
|
using Microsoft.AspNetCore.Authorization; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using Volo.Abp; |
||||
|
using Volo.Abp.Application.Services; |
||||
|
using Volo.Abp.Users; |
||||
|
using Win_in.Sfs.Basedata.Application.Contracts; |
||||
|
using Win_in.Sfs.Basedata.Domain.Shared; |
||||
|
using Win_in.Sfs.Shared.Domain.Shared; |
||||
|
using Win_in.Sfs.Wms.Inventory.Application.Contracts; |
||||
|
using Win_in.Sfs.Wms.Store.Application.Contracts; |
||||
|
using Win_in.Sfs.Wms.Store.Domain.Shared; |
||||
|
|
||||
namespace Win_in.Sfs.Wms.Store.GaoTongs; |
namespace Win_in.Sfs.Wms.Store.Application; |
||||
internal class GaoTongAppService |
|
||||
|
/// <summary>
|
||||
|
/// 立库接口
|
||||
|
/// </summary>
|
||||
|
//[Authorize]
|
||||
|
[AllowAnonymous] |
||||
|
[Route($"{StoreConsts.RootPath}gao-tong")] |
||||
|
public class GaoTongAppService : ApplicationService, IGaoTongAppService |
||||
|
{ |
||||
|
private readonly IBalanceAppService _balanceAppService; |
||||
|
private readonly ITransferNoteAppService _transferNoteAppService; |
||||
|
private readonly CurrentUser _currentUser; |
||||
|
private readonly IItemBasicAppService _itemBasicAppService; |
||||
|
private readonly ILocationAppService _locationAppService; |
||||
|
|
||||
|
public GaoTongAppService( |
||||
|
IBalanceAppService balanceAppService |
||||
|
, ITransferNoteAppService transferNoteAppService |
||||
|
, CurrentUser currentUser |
||||
|
, IItemBasicAppService itemBasicAppService |
||||
|
,ILocationAppService locationAppService) |
||||
|
{ |
||||
|
_balanceAppService = balanceAppService; |
||||
|
_transferNoteAppService = transferNoteAppService; |
||||
|
_currentUser = currentUser; |
||||
|
_itemBasicAppService = itemBasicAppService; |
||||
|
_locationAppService = locationAppService; |
||||
|
} |
||||
|
/// <summary>
|
||||
|
/// 组盘信息反馈到东阳WMS
|
||||
|
/// </summary>
|
||||
|
/// <param name="input"></param>
|
||||
|
/// <returns></returns>
|
||||
|
[HttpPost("feedback-zu-pan")] |
||||
|
public async Task<GaoTongResultDTO> FeedbackZuPanAsync(ZuPanEditInput input) |
||||
|
{ |
||||
|
GaoTongResultDTO ret = new GaoTongResultDTO(); |
||||
|
try |
||||
|
{ |
||||
|
ItemBasicDTO itemBasicObj = await _itemBasicAppService.GetByCodeAsync(input.ItemCode).ConfigureAwait(false); |
||||
|
if (itemBasicObj == null) |
||||
|
{ |
||||
|
throw new UserFriendlyException($"{input.ItemCode}在Item表不存在!"); |
||||
|
} |
||||
|
|
||||
|
TransferNoteEditInput transferNoteEditInput = new TransferNoteEditInput(); |
||||
|
transferNoteEditInput.TenantId = null; |
||||
|
transferNoteEditInput.Remark = String.Empty; |
||||
|
transferNoteEditInput.Worker = _currentUser.UserName; |
||||
|
transferNoteEditInput.ActiveDate = CommonHelper.CurTime; |
||||
|
transferNoteEditInput.Type = EnumTransSubType.Transfer_Coating.ToString(); //喷涂完工转储
|
||||
|
transferNoteEditInput.UseOnTheWayLocation = false; |
||||
|
//transferNoteEditInput.number
|
||||
|
//transferNoteEditInput.CallServerName
|
||||
|
//transferNoteEditInput.Confirmed = true;
|
||||
|
//transferNoteEditInput.ConfirmTime = CommonHelper.CurTime;
|
||||
|
if (transferNoteEditInput.Details == null) |
||||
|
{ |
||||
|
transferNoteEditInput.Details = new List<TransferNoteDetailInput>(); |
||||
|
} |
||||
|
TransferNoteDetailInput detailObj = new TransferNoteDetailInput(); |
||||
|
transferNoteEditInput.Details.Add(detailObj); |
||||
|
detailObj.Remark = ""; |
||||
|
detailObj.ItemCode = input.ItemCode; |
||||
|
detailObj.ItemName = itemBasicObj.Name; |
||||
|
detailObj.ItemDesc1 = itemBasicObj.Desc1; |
||||
|
detailObj.ItemDesc2 = itemBasicObj.Desc2; |
||||
|
detailObj.Uom = itemBasicObj.BasicUom; |
||||
|
detailObj.Qty = input.Qty.TryToDecimalZero(); |
||||
|
detailObj.StdPackQty = itemBasicObj.StdPackQty; |
||||
|
|
||||
|
#region 去箱、去批、去托
|
||||
|
detailObj.FromPackingCode = String.Empty; |
||||
|
detailObj.ToPackingCode = String.Empty; |
||||
|
detailObj.FromContainerCode = String.Empty; |
||||
|
detailObj.ToContainerCode = String.Empty; |
||||
|
detailObj.FromLot = String.Empty; |
||||
|
detailObj.ToLot = String.Empty; |
||||
|
#endregion
|
||||
|
|
||||
|
detailObj.SupplierBatch = String.Empty; |
||||
|
detailObj.ArriveDate = CommonHelper.CurTime; |
||||
|
detailObj.ProduceDate = CommonHelper.CurTime; |
||||
|
detailObj.ExpireDate = DateTime.MaxValue; |
||||
|
var fromLocationObj = await _locationAppService.GetByCodeAsync(input.FromLocationCode).ConfigureAwait(false); |
||||
|
if (fromLocationObj == null) |
||||
{ |
{ |
||||
|
throw new UserFriendlyException($"{input.FromLocationCode}在Location表不存在!"); |
||||
|
} |
||||
|
detailObj.FromLocationCode = input.FromLocationCode; |
||||
|
detailObj.FromLocationArea = fromLocationObj.AreaCode; |
||||
|
detailObj.FromLocationGroup = fromLocationObj.LocationGroupCode; |
||||
|
detailObj.FromLocationErpCode = fromLocationObj.ErpLocationCode; |
||||
|
detailObj.FromWarehouseCode = fromLocationObj.WarehouseCode; |
||||
|
var toLocationObj = await _locationAppService.GetByCodeAsync(input.ToLocationCode).ConfigureAwait(false); |
||||
|
if (toLocationObj == null) |
||||
|
{ |
||||
|
throw new UserFriendlyException($"{input.ToLocationCode}在Location表不存在!"); |
||||
|
} |
||||
|
detailObj.ToLocationCode = input.ToLocationCode; |
||||
|
detailObj.ToLocationArea = toLocationObj.AreaCode; |
||||
|
detailObj.ToLocationGroup = toLocationObj.LocationGroupCode; |
||||
|
detailObj.ToLocationErpCode = toLocationObj.ErpLocationCode; |
||||
|
detailObj.ToWarehouseCode = toLocationObj.WarehouseCode; |
||||
|
detailObj.FromStatus = EnumInventoryStatus.OK; |
||||
|
detailObj.ToStatus = EnumInventoryStatus.OK; |
||||
|
detailObj.OnTheWayLocationCode = String.Empty; |
||||
|
detailObj.Reason = ""; |
||||
|
var temp = await _transferNoteAppService.CreateAsync(transferNoteEditInput).ConfigureAwait(false); |
||||
|
ret.Code = GaoTongResultStatus.Success; |
||||
|
ret.Message = "接收成功"; |
||||
|
ret.OperateTime = CommonHelper.CurTimeStr; |
||||
|
return ret; |
||||
} |
} |
||||
|
catch (Exception ex) |
||||
|
{ |
||||
|
ret.Code = GaoTongResultStatus.Failure; |
||||
|
ret.Message = "FeedbackZuPanAsync执行失败:" + ex.Message; |
||||
|
ret.OperateTime = CommonHelper.CurTimeStr; |
||||
|
return ret; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
Loading…
Reference in new issue