Merge branch 'master' of https://codeup.aliyun.com/62ce7bca487c500c27f70a79/OPS/WMS-Api
This commit is contained in:
@@ -73,7 +73,7 @@ namespace WMS.Web.Api.Controllers
|
||||
//var entity=await _takeStockRepositories.GetEntityList(new List<int>() {2 });
|
||||
//var r= await _takeStockService.Loss_Profit(entity.First());
|
||||
//var list = await GetList();
|
||||
var c = await _erpService.BillQueryForInventory("G03-60-551495", "101", "12485666");
|
||||
//var c = await _erpService.BillQueryForInventory("G03-60-551495", "101", "12485666");
|
||||
//var c = await _erpService.BillQueryForAssembledAppOutStock_Assembly(new List<string>() { "ZZCX003061" }, DateTime.Now.AddDays(-10));
|
||||
//var bc2 = await _erpService.BillQueryForDeliveryNoticeOutStock(new List<string>() { "FHTZD8022232" }, DateTime.Now.AddDays(-10));
|
||||
//var bc = await _erpService.BillQueryForTransferOutOutStock(null, DateTime.Now.AddDays(-10));
|
||||
|
||||
@@ -745,6 +745,26 @@
|
||||
单据类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.ErpInventoryDto.MaterialId">
|
||||
<summary>
|
||||
物料ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.ErpInventoryDto.OrgCode">
|
||||
<summary>
|
||||
组织编码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.ErpInventoryDto.StockCode">
|
||||
<summary>
|
||||
仓库
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.ErpInventoryDto.Qty">
|
||||
<summary>
|
||||
数量
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.Erp.ErpNumberDto">
|
||||
<summary>
|
||||
编码
|
||||
@@ -1291,6 +1311,11 @@
|
||||
仓位ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockDetailsSaveDto.AfterQty">
|
||||
<summary>
|
||||
盘点实际数量(实际仓库数量)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockDetailsSaveDto.FinalQty">
|
||||
<summary>
|
||||
盘盈数量
|
||||
|
||||
@@ -3095,7 +3095,7 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForInventory(System.String,System.String,System.String)">
|
||||
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForInventory(System.Collections.Generic.List{System.ValueTuple{System.Int32,System.String,System.String}})">
|
||||
<summary>
|
||||
及时库存
|
||||
</summary>
|
||||
@@ -5185,6 +5185,11 @@
|
||||
销售出库单
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Erp.FormIdParam.STK_Inventory">
|
||||
<summary>
|
||||
即时库存
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Values.ExportStatus">
|
||||
<summary>
|
||||
文件导出状态
|
||||
|
||||
@@ -28,7 +28,6 @@ namespace WMS.Web.Core.Dto.ChangeBoxRecord
|
||||
/// 目标箱号
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "目标箱号不能为空")]
|
||||
[RegularExpression(@"^[0-9a-zA-Z]{1,}$", ErrorMessage = "箱号只包含英文字母、数字")]
|
||||
public string DestBoxBillNo { get; set; }
|
||||
/// <summary>
|
||||
/// 目标箱仓位或重新上架选择仓位
|
||||
|
||||
26
src/WMS.Web.Core/Dto/Erp/ErpInventoryDto.cs
Normal file
26
src/WMS.Web.Core/Dto/Erp/ErpInventoryDto.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WMS.Web.Core.Dto.Erp
|
||||
{
|
||||
public class ErpInventoryDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 物料ID
|
||||
/// </summary>
|
||||
public int MaterialId { get; set; }
|
||||
/// <summary>
|
||||
/// 组织编码
|
||||
/// </summary>
|
||||
public string OrgCode { get; set; }
|
||||
/// <summary>
|
||||
/// 仓库
|
||||
/// </summary>
|
||||
public string StockCode { get; set; }
|
||||
/// <summary>
|
||||
/// 数量
|
||||
/// </summary>
|
||||
public decimal Qty { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -114,11 +114,11 @@ namespace WMS.Web.Core.Dto.Erp.TakeStock
|
||||
///// </summary>
|
||||
//[JsonProperty("FAcctQty")]
|
||||
//public decimal BeforeQty { get; set; }
|
||||
///// <summary>
|
||||
///// 盘点实际数量(实际仓库数量)
|
||||
///// </summary>
|
||||
//[JsonProperty("FCountQty")]
|
||||
//public decimal AfterQty { get; set; }
|
||||
/// <summary>
|
||||
/// 盘点实际数量(实际仓库数量)
|
||||
/// </summary>
|
||||
[JsonProperty("FCountQty")]
|
||||
public decimal AfterQty { get; set; }
|
||||
/// <summary>
|
||||
/// 盘盈数量
|
||||
/// </summary>
|
||||
|
||||
@@ -147,7 +147,7 @@ namespace WMS.Web.Domain.IService.Public
|
||||
/// 及时库存
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<Result<decimal>> BillQueryForInventory(string materialId, string orgCode, string stockId);
|
||||
Task<ResultList<ErpInventoryDto>> BillQueryForInventory(List<(int materialId, string orgCode, string stockCode)> request);
|
||||
//同步数据(保存提交审核)
|
||||
Task<Result<string>> Save<T>(T dto, string formId);
|
||||
//提交
|
||||
|
||||
@@ -2133,25 +2133,28 @@ namespace WMS.Web.Domain.Services.Public
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<Result<decimal>> BillQueryForInventory(string materialId,string orgCode,string stockId)
|
||||
public async Task<ResultList<ErpInventoryDto>> BillQueryForInventory(List<(int materialId, string orgCode, string stockCode)> request)
|
||||
{
|
||||
try
|
||||
{
|
||||
//1.先登录金蝶-拿到token
|
||||
var token_result = await this.Init();
|
||||
if (!token_result.IsSuccess)
|
||||
return Result<decimal>.ReFailure(token_result);
|
||||
return ResultList<ErpInventoryDto>.ReFailure(token_result);
|
||||
|
||||
|
||||
//3.获取金蝶采购订单:拼接参数和条件
|
||||
var query = new ErpBillQueryDto(token_result.Data);
|
||||
var param = new ErpBillQueryParamDto("STK_Inventory");
|
||||
param.FieldKeys = "FQTY,FBASEAVBQTY,FMATERIALID.FNumber,FSTOCKORGID.FNumber,FSTOCKID.FNumber";
|
||||
var param = new ErpBillQueryParamDto(FormIdParam.STK_Inventory.ToString());
|
||||
param.FieldKeys = "FBASEQTY,FMATERIALID,FSTOCKORGID.FNumber,FSTOCKID.FNumber";
|
||||
param.Limit = 100;
|
||||
//param.FilterString = $"FMATERIALID.FNumber='{materialId}' and FSTOCKORGID.FNumber='{orgCode}'";
|
||||
//param.FilterString = $"";
|
||||
param.FilterString = $"FMATERIALID.FNumber='{materialId}' and FSTOCKORGID.FNumber='{orgCode}' and FSTOCKID.FNumber='{stockId}'";
|
||||
|
||||
for (int i = 0; i < request.Count(); i++)
|
||||
{
|
||||
if(i==0)
|
||||
param.FilterString = $"(FMATERIALID={request[0].materialId} and FSTOCKORGID.FNumber='{request[0].orgCode}' and FSTOCKID.FNumber='{request[0].stockCode}')";
|
||||
else
|
||||
param.FilterString += $" or (FMATERIALID={request[i].materialId} and FSTOCKORGID.FNumber='{request[i].orgCode}' and FSTOCKID.FNumber='{request[i].stockCode}')";
|
||||
}
|
||||
query.Data = JsonConvert.SerializeObject(param);
|
||||
var json = JsonConvert.SerializeObject(query);
|
||||
|
||||
@@ -2159,12 +2162,31 @@ namespace WMS.Web.Domain.Services.Public
|
||||
var result_json = await _client.ExecuteBillQueryAsync(json);
|
||||
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
|
||||
|
||||
var erp_list = new List<ErpInventoryDto>();
|
||||
foreach (var item in result)
|
||||
{
|
||||
|
||||
return Result<decimal>.ReSuccess(0);
|
||||
var lis = erp_list.FirstOrDefault(f => f.MaterialId == Convert.ToInt32(item[1])
|
||||
&& f.OrgCode.Equals(item[2])
|
||||
&& f.StockCode.Equals(item[3]));
|
||||
|
||||
if (lis == null)
|
||||
{
|
||||
lis.Qty = Convert.ToInt32(item[0]);
|
||||
lis.MaterialId = Convert.ToInt32(item[1]);
|
||||
lis.OrgCode = item[2];
|
||||
lis.StockCode = item[3];
|
||||
erp_list.Add(lis);
|
||||
}
|
||||
else
|
||||
lis.Qty = lis.Qty + Convert.ToInt32(item[0]);
|
||||
}
|
||||
|
||||
return ResultList<ErpInventoryDto>.ReSuccess(erp_list);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return Result<decimal>.ReFailure(ResultCodes.Erp_BillQuery_Error);
|
||||
return ResultList<ErpInventoryDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -203,12 +203,23 @@ namespace WMS.Web.Domain.Services
|
||||
var materials_result = await sc_erpService.BillQueryForMaterial();
|
||||
if (!materials_result.IsSuccess) return Result.ReFailure(ResultCodes.ErpMaterialError);
|
||||
var materials = materials_result.Data.ToList();
|
||||
|
||||
List<(int materialId, string orgCode, string stockCode)> requestInventory = new List<(int materialId, string orgCode, string stockCode)>();
|
||||
entity.Details.ForEach(f => requestInventory.Add((f.MaterialId, f.OrgCode, f.StockCode)));
|
||||
var res_s = await sc_erpService.BillQueryForInventory(requestInventory);
|
||||
if (!res_s.IsSuccess)
|
||||
{
|
||||
_logger.LogInformation($"及时库存获取异常->错误:{res_s.Message} 数据: {JsonConvert.SerializeObject(entity)}");
|
||||
return Result<ErpTakeStockSaveDto>.ReFailure(res_s.Message, res_s.Status);
|
||||
}
|
||||
//组装dto
|
||||
#region 组装dto
|
||||
//子仓库 ORICO_JD:1000008 GD:1000005 HD:1000007 AD:1000004
|
||||
List<ErpTakeStockDetailsSaveDto> detils = new List<ErpTakeStockDetailsSaveDto>();
|
||||
foreach (var d in entity.Details)
|
||||
{
|
||||
var erpInventory = res_s.Data.FirstOrDefault(f => f.MaterialId == d.MaterialId && f.StockCode == d.StockCode && f.OrgCode == d.OrgCode);
|
||||
decimal qty = erpInventory?.Qty ?? 0;
|
||||
var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, d.MaterialId);
|
||||
detils.Add(new ErpTakeStockDetailsSaveDto()
|
||||
{
|
||||
@@ -218,11 +229,12 @@ namespace WMS.Web.Domain.Services
|
||||
UnitId = new ErpNumberDto(unitNumber), //物料带出来
|
||||
StockId = new ErpNumberDto(d.StockCode),
|
||||
SubStockId = new ErpSubStockDto(d.StockCode, d.Erp_SubStockCode),
|
||||
//AfterQty = d.AfterQty,
|
||||
AfterQty = entity.ResultType == TakeStockType.Profit ? (qty + d.FinalQty) : ((qty - d.FinalQty) > 0 ? (qty - d.FinalQty) : 0),
|
||||
FinalQty = entity.ResultType == TakeStockType.Profit ? d.FinalQty : 0,
|
||||
LossQty = entity.ResultType == TakeStockType.Loss ? d.FinalQty : 0,
|
||||
Fnote = d.Remark
|
||||
});
|
||||
}); ;
|
||||
requestInventory.Add((d.MaterialId, d.OrgCode, d.StockCode));
|
||||
}
|
||||
ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto()
|
||||
{
|
||||
@@ -247,6 +259,7 @@ namespace WMS.Web.Domain.Services
|
||||
return Result.ReFailure(ResultCodes.NoDateError);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 同步金蝶操作
|
||||
/// </summary>
|
||||
|
||||
@@ -76,6 +76,10 @@ namespace WMS.Web.Domain.Values.Erp
|
||||
/// <summary>
|
||||
/// 销售出库单
|
||||
/// </summary>
|
||||
SAL_OUTSTOCK=17
|
||||
SAL_OUTSTOCK = 17,
|
||||
/// <summary>
|
||||
/// 即时库存
|
||||
/// </summary>
|
||||
STK_Inventory = 18
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user