diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/CommonHelper.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/CommonHelper.cs
index 1859b5324..ade4d7ddb 100644
--- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/CommonHelper.cs
+++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Domain.Shared/Commons/CommonHelper.cs
@@ -28,4 +28,13 @@ public sealed class CommonHelper
return DateTime.Now;
}
}
+
+ public static string CurTimeStr
+ {
+ get
+ {
+ return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ }
+ }
+
}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/DTOs/GaoTongResultDTO.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/DTOs/GaoTongResultDTO.cs
new file mode 100644
index 000000000..dce8b9274
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/DTOs/GaoTongResultDTO.cs
@@ -0,0 +1,34 @@
+using System;
+using System.ComponentModel.DataAnnotations;
+using Volo.Abp.Application.Dtos;
+
+namespace Win_in.Sfs.Wms.Store.Application.Contracts;
+
+///
+/// 库存转移记录-实体DTO //??TransferLib实体
+///
+public class GaoTongResultDTO : EntityDto
+{
+ ///
+ ///
+ ///
+ [Display(Name = "")]
+ public string Code { get; set; }
+
+ ///
+ ///
+ ///
+ [Display(Name = "")]
+ public string Message { get; set; }
+
+ ///
+ ///
+ ///
+ [Display(Name = "")]
+ public string OperateTime { get; set; }
+}
+/*
+{"code":"1","message":"接收成功",
+"operateTime":"2020-01-0513:50:01"}
+
+*/
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/DTOs/GaoTongResultStatus.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/DTOs/GaoTongResultStatus.cs
new file mode 100644
index 000000000..306df7ca1
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/DTOs/GaoTongResultStatus.cs
@@ -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
+{
+ ///
+ /// 成功
+ ///
+ public const string Success = "1";
+
+ ///
+ /// 失败
+ ///
+ public const string Failure = "-1";
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/GaoTongPermissions.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/GaoTongPermissions.cs
new file mode 100644
index 000000000..e5fc16d51
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/GaoTongPermissions.cs
@@ -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
+{
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/IGaoTongAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/IGaoTongAppService.cs
new file mode 100644
index 000000000..b7daebf3c
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/IGaoTongAppService.cs
@@ -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;
+
+///
+/// 立库接口
+///
+public interface IGaoTongAppService : IApplicationService
+{
+ ///
+ /// 组盘信息反馈到东阳WMS(喷涂完工转储)
+ ///
+ /// 组盘接口输入参数
+ /// 立库接口通用输出参数
+ Task FeedbackZuPanAsync(ZuPanEditInput input);
+}
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/Inputs/ZuPanEditInput.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/Inputs/ZuPanEditInput.cs
new file mode 100644
index 000000000..743546879
--- /dev/null
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/GaoTongs/Inputs/ZuPanEditInput.cs
@@ -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;
+
+///
+/// 新增和更新基础DTO //??TransferLib实体
+///
+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"
+}
+*/
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/GaoTongs/GaoTongAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/GaoTongs/GaoTongAppService.cs
index f7f61320f..f898c8741 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/GaoTongs/GaoTongAppService.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/GaoTongs/GaoTongAppService.cs
@@ -1,10 +1,142 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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;
-internal class GaoTongAppService
+namespace Win_in.Sfs.Wms.Store.Application;
+
+///
+/// 立库接口
+///
+//[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;
+ }
+ ///
+ /// 组盘信息反馈到东阳WMS
+ ///
+ ///
+ ///
+ [HttpPost("feedback-zu-pan")]
+ public async Task 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 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;
+ }
+ }
}
+
diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationAutoMapperProfile.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationAutoMapperProfile.cs
index 2e3025d3c..29ab23d85 100644
--- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationAutoMapperProfile.cs
+++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/StoreApplicationAutoMapperProfile.cs
@@ -137,5 +137,7 @@ public partial class StoreApplicationAutoMapperProfile : Profile
ChassisOperationSequenceAutoMapperProfile();
KittingPackagingNoteAutoMapperProfile();
+ //高通WMS-立库接口
+ GaoTongAutoMapperProfile();
}
}