增加 序列码对接供应链
This commit is contained in:
Binary file not shown.
@@ -18,6 +18,7 @@ using WMS.Web.Core.Dto.Erp.Supplier;
|
||||
using WMS.Web.Core.Dto.SingleData;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
using WMS.Web.Domain.Infrastructure;
|
||||
using WMS.Web.Domain.IService;
|
||||
using WMS.Web.Domain.IService.Public;
|
||||
using WMS.Web.Domain.Options;
|
||||
using WMS.Web.Domain.Values;
|
||||
@@ -46,12 +47,14 @@ namespace WMS.Web.Api.Controllers
|
||||
private readonly ILogger<SysConfigController> _logger;
|
||||
private ErpOptions _erpOptions;
|
||||
private readonly IMemoryCache _memoryCache;
|
||||
private readonly ISerialNumberService _serialNumberService;
|
||||
|
||||
public SysConfigController(ILoginService loginService, IBasicsRepositories basicsRepositories, IOptions<ErpOptions> erpOptions,
|
||||
IBoxRepositories boxRepositories, IErpService erpService, ISingleDataService singleDataService, IMemoryCache memoryCache,
|
||||
ISerialNumbersRepositories serialNumbersRepositories, IBoxInventoryRepositories boxInventoryRepositories,
|
||||
IMapper mapper, IErpBasicDataExtendService erpBasicDataExtendService, IOutStockRepositories outStockRepositories,
|
||||
ILogger<SysConfigController> logger, IMoveBoxRecordRepositories moveBoxRecordRepositories)
|
||||
ILogger<SysConfigController> logger, IMoveBoxRecordRepositories moveBoxRecordRepositories,
|
||||
ISerialNumberService serialNumberService)
|
||||
{
|
||||
this._erpOptions = erpOptions?.Value;
|
||||
this._memoryCache = memoryCache;
|
||||
@@ -67,6 +70,7 @@ namespace WMS.Web.Api.Controllers
|
||||
_outStockRepositories = outStockRepositories;
|
||||
_logger = logger;
|
||||
_moveBoxRecordRepositories = moveBoxRecordRepositories;
|
||||
_serialNumberService = serialNumberService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -371,7 +375,7 @@ namespace WMS.Web.Api.Controllers
|
||||
return Result<List<UcSubStockResponse>>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||
var r = await _basicsRepositories.GetSubUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), dto.Name, loginInfo.UserInfo.CompanyId);
|
||||
if (!string.IsNullOrEmpty(dto.StockCode))
|
||||
r = r.Where(w => w.StockCode == dto.StockCode && w.ErpOrgCode==dto.OrgCode).ToList();
|
||||
r = r.Where(w => w.StockCode == dto.StockCode && w.ErpOrgCode == dto.OrgCode).ToList();
|
||||
return Result<List<UcSubStockResponse>>.ReSuccess(r);
|
||||
}
|
||||
/// <summary>
|
||||
@@ -526,7 +530,12 @@ namespace WMS.Web.Api.Controllers
|
||||
|
||||
_logger.LogInformation($"请求序列号信息:{serialNumber} 组织:{orgCode} 是否Ops:{IsOps} 查询状态 {serialStatus}");
|
||||
var res = await _serialNumbersRepositories.GetSerialNumber(serialNumber, orgCode, IsOps, serialStatus ?? 0);
|
||||
if (res == null) return Result<MaterialResponse>.ReFailure(ResultCodes.MateriaNoData);
|
||||
//if (res == null) return Result<MaterialResponse>.ReFailure(ResultCodes.MateriaNoData);
|
||||
if (res == null)
|
||||
{
|
||||
//没有搜索到数据 则去同步供应链系统
|
||||
return await _serialNumberService.GetBarCodeSerialNumber(serialNumber, orgCode, IsOps, serialStatus ?? 0);
|
||||
}
|
||||
/*
|
||||
以下页面需要判断后提示:如果状态为非冻结的提示:序列号已上架入库 ; 状态为冻结的扫描成功;
|
||||
不存在的序列号提示:产品信息不存在
|
||||
|
||||
@@ -5604,6 +5604,41 @@
|
||||
收货客户
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.SerialNumbers.SerialNumbersWmsRequest">
|
||||
<summary>
|
||||
获取没有装过箱的序列码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.SerialNumbers.SerialNumbersWmsRequest.SerialNumber">
|
||||
<summary>
|
||||
序列号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.SerialNumbers.SerialNumbersWmsResponse">
|
||||
<summary>
|
||||
wms系统请求序列码返回
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.SerialNumbers.SerialNumbersWmsResponse.SerialNumber">
|
||||
<summary>
|
||||
序列号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.SerialNumbers.SerialNumbersWmsResponse.MaterialNumber">
|
||||
<summary>
|
||||
物料编码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.SerialNumbers.SerialNumbersWmsResponse.Creator">
|
||||
<summary>
|
||||
创建人
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.SerialNumbers.SerialNumbersWmsResponse.CreateTime">
|
||||
<summary>
|
||||
生成时间
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.SingleData.IdRequest">
|
||||
<summary>
|
||||
ID请求对象
|
||||
|
||||
@@ -3772,6 +3772,16 @@
|
||||
<param name="isTransaction"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.ISerialNumberService.GetBarCodeSerialNumber(System.String,System.String,System.Boolean,System.Int32)">
|
||||
<summary>
|
||||
获取供应链系统序列码
|
||||
</summary>
|
||||
<param name="serialNumber"></param>
|
||||
<param name="orgCode"></param>
|
||||
<param name="IsOps"></param>
|
||||
<param name="serialStatus"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.IService.ITakeStockService">
|
||||
<summary>
|
||||
盘点单服务
|
||||
@@ -6121,6 +6131,14 @@
|
||||
ops服务
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.OpsService.GetSerialNumbers(WMS.Web.Core.Dto.SerialNumbers.SerialNumbersWmsRequest)">
|
||||
<summary>
|
||||
获取序列码
|
||||
</summary>
|
||||
<param name="request"></param>
|
||||
<returns></returns>
|
||||
<exception cref="T:System.NotImplementedException"></exception>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.RedisClientService.SetStringKey(System.String,System.String,System.Nullable{System.TimeSpan})">
|
||||
<summary>
|
||||
保存单个key value
|
||||
@@ -6437,6 +6455,17 @@
|
||||
<param name="isTransaction"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.SerialNumberService.GetBarCodeSerialNumber(System.String,System.String,System.Boolean,System.Int32)">
|
||||
<summary>
|
||||
获取供应链系统序列码
|
||||
</summary>
|
||||
<param name="serialNumber"></param>
|
||||
<param name="orgCode"></param>
|
||||
<param name="IsOps"></param>
|
||||
<param name="serialStatus"></param>
|
||||
<returns></returns>
|
||||
<exception cref="T:System.NotImplementedException"></exception>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Services.TakeStockService">
|
||||
<summary>
|
||||
盘点单服务
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace WMS.Web.Core.Dto.SerialNumbers
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取没有装过箱的序列码
|
||||
/// </summary>
|
||||
public class SerialNumbersWmsRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 序列号
|
||||
/// </summary>
|
||||
public string SerialNumber { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace WMS.Web.Core.Dto.SerialNumbers
|
||||
{
|
||||
/// <summary>
|
||||
/// wms系统请求序列码返回
|
||||
/// </summary>
|
||||
public class SerialNumbersWmsResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 序列号
|
||||
/// </summary>
|
||||
public string SerialNumber { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 物料编码
|
||||
/// </summary>
|
||||
public string MaterialNumber { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 创建人
|
||||
/// </summary>
|
||||
public string Creator { get; set; } = string.Empty;
|
||||
/// <summary>
|
||||
/// 生成时间
|
||||
/// </summary>
|
||||
public DateTime CreateTime { get; set; } = DateTime.Now;
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Core.Dto;
|
||||
using WMS.Web.Core.Dto.Login;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
using WMS.Web.Domain.Entitys;
|
||||
@@ -33,5 +34,14 @@ namespace WMS.Web.Domain.IService
|
||||
/// <param name="isTransaction"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result> SerialNumberOperate(List<SerialNumberOperate> list, bool isTransaction = true);
|
||||
/// <summary>
|
||||
/// 获取供应链系统序列码
|
||||
/// </summary>
|
||||
/// <param name="serialNumber"></param>
|
||||
/// <param name="orgCode"></param>
|
||||
/// <param name="IsOps"></param>
|
||||
/// <param name="serialStatus"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result<MaterialResponse>> GetBarCodeSerialNumber(string serialNumber, string orgCode, bool IsOps = false, int serialStatus = 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
using System;
|
||||
using MySqlX.XDevAPI.Common;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Core.Dto;
|
||||
using WMS.Web.Core.Dto.SerialNumbers;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
using WMS.Web.Domain.Entitys;
|
||||
|
||||
namespace WMS.Web.Domain.IService.Public
|
||||
{
|
||||
public interface IOpsService
|
||||
{
|
||||
Task<List<OpsBoxResponse>> GetBox(OpsBoxRequest request);
|
||||
Task<Result<SerialNumbersWmsResponse>> GetSerialNumbers(SerialNumbersWmsRequest request);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,8 +8,11 @@ using System.ComponentModel;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Core.Dto;
|
||||
using WMS.Web.Core.Dto.SerialNumbers;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
using WMS.Web.Domain.IService.Public;
|
||||
using WMS.Web.Domain.Options;
|
||||
using WMS.Web.Domain.Values;
|
||||
|
||||
namespace WMS.Web.Domain.Services.Public
|
||||
{
|
||||
@@ -51,6 +54,21 @@ namespace WMS.Web.Domain.Services.Public
|
||||
var list = JsonConvert.DeserializeObject<List<OpsBoxResponse>>(res.data.date);
|
||||
return list;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取序列码
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
public async Task<Result<SerialNumbersWmsResponse>> GetSerialNumbers(SerialNumbersWmsRequest request)
|
||||
{
|
||||
string endStr = "api/WmsBox/GetSerialNumber";
|
||||
Dictionary<string, string> dicHeaders = new Dictionary<string, string>();
|
||||
//dicHeaders.Add("Authorization", "Bearer " + token);
|
||||
//_httpClientService.BuildHttpClient(contentHeaders);
|
||||
var res = await _httpClientService.PostAsync<Result<SerialNumbersWmsResponse>>(_option.Url + endStr, JsonConvert.SerializeObject(request), dicHeaders);
|
||||
return res;
|
||||
}
|
||||
|
||||
private async Task<string> GetToken()
|
||||
{
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
using Microsoft.EntityFrameworkCore.Storage;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Core.Dto;
|
||||
using WMS.Web.Core.Dto.Login;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
using WMS.Web.Domain.Entitys;
|
||||
@@ -28,10 +30,12 @@ namespace WMS.Web.Domain.Services
|
||||
private readonly ISingleDataService _singleDataService;
|
||||
private readonly IErpService _erpService;
|
||||
private readonly IBoxInventoryRepositories _boxInventoryRepositories;
|
||||
private readonly IOpsService _opsService;
|
||||
private readonly ILogger<SerialNumberService> _logger;
|
||||
public SerialNumberService(ISerialNumberOperateRepositories serialNumberOperateRepositories,
|
||||
ISerialNumbersRepositories serialNumbersRepositories, IBasicsRepositories transactionRepositories,
|
||||
IBoxRepositories boxRepositories, ISingleDataService singleDataService, IErpService erpService,
|
||||
IBoxInventoryRepositories boxInventoryRepositories)
|
||||
IBoxInventoryRepositories boxInventoryRepositories, IOpsService opsService, ILogger<SerialNumberService> logger)
|
||||
{
|
||||
_serialNumberOperateRepositories = serialNumberOperateRepositories;
|
||||
_serialNumbersRepositories = serialNumbersRepositories;
|
||||
@@ -40,6 +44,8 @@ namespace WMS.Web.Domain.Services
|
||||
_singleDataService = singleDataService;
|
||||
_erpService = erpService;
|
||||
_boxInventoryRepositories = boxInventoryRepositories;
|
||||
_opsService = opsService;
|
||||
_logger = logger;
|
||||
}
|
||||
/// <summary>
|
||||
/// 改箱
|
||||
@@ -564,5 +570,48 @@ namespace WMS.Web.Domain.Services
|
||||
if (!res.Success) return Result.ReFailure(ResultCodes.DateWriteError);
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取供应链系统序列码
|
||||
/// </summary>
|
||||
/// <param name="serialNumber"></param>
|
||||
/// <param name="orgCode"></param>
|
||||
/// <param name="IsOps"></param>
|
||||
/// <param name="serialStatus"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
public async Task<Result<MaterialResponse>> GetBarCodeSerialNumber(string serialNumber, string orgCode, bool IsOps = false, int serialStatus = 0)
|
||||
{
|
||||
//外层方法没有调到数据是null 如果这里查询到序列码
|
||||
var list = await _serialNumbersRepositories.GetEntityList(new List<string>() { serialNumber });
|
||||
if (list.FirstOrDefault(f => f.SerialNumber.Equals(serialNumber)) != null)
|
||||
return Result<MaterialResponse>.ReFailure(ResultCodes.MateriaNoData);
|
||||
//进入供应链系统调数据
|
||||
_logger.LogInformation($"拉取供应链系统条码->{serialNumber}");
|
||||
var res = await _opsService.GetSerialNumbers(new Core.Dto.SerialNumbers.SerialNumbersWmsRequest() { SerialNumber = serialNumber });
|
||||
if (!res.IsSuccess)
|
||||
return Result<MaterialResponse>.ReFailure(ResultCodes.MateriaNoData);
|
||||
|
||||
_logger.LogInformation($"拉取供应链系统条码结果:->{JsonConvert.SerializeObject(res)}");
|
||||
//插入序列码信息
|
||||
SerialNumbers entity = new SerialNumbers(res.Data.SerialNumber, res.Data.MaterialNumber
|
||||
, 0, 0, res.Data.Creator, res.Data.CreateTime, null);
|
||||
var isSuccess = await _serialNumbersRepositories.AddRange(new List<SerialNumbers>() { entity });
|
||||
if (!isSuccess) return Result<MaterialResponse>.ReFailure(ResultCodes.DateWriteError);
|
||||
|
||||
var res_s = await _serialNumbersRepositories.GetSerialNumber(serialNumber, orgCode, IsOps, serialStatus);
|
||||
if (res_s == null) return Result<MaterialResponse>.ReFailure(ResultCodes.MateriaNoData);
|
||||
/*
|
||||
以下页面需要判断后提示:如果状态为非冻结的提示:序列号已上架入库 ; 状态为冻结的扫描成功;
|
||||
不存在的序列号提示:产品信息不存在
|
||||
非采购上架 改箱 (非激活的或者(激活被冻结)) 1
|
||||
出库回退上架 (激活被冻结) 2
|
||||
*/
|
||||
if (serialStatus == 1 || serialStatus == 2)
|
||||
{
|
||||
if (res_s.IsActivate == true && res_s.IsDelete != true)
|
||||
return Result<MaterialResponse>.ReFailure(ResultCodes.SerialNumbersIsShelf);
|
||||
}
|
||||
return Result<MaterialResponse>.ReSuccess(res_s);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,5 +95,7 @@ namespace WMS.Web.Domain.Values
|
||||
public static ValueTuple<int, string> TakeStockBoxIdError = (610007, "箱信息错误");
|
||||
|
||||
public static ValueTuple<int, string> SubscribeNotificationNoData = (700001, "订阅通知信息不存在");
|
||||
|
||||
public static ValueTuple<int, string> GetBarCodeSerialNumberError = (800001, "获取序列码异常");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user