Merge branch 'master' of https://codeup.aliyun.com/62ce7bca487c500c27f70a79/OPS/WMS-Api
This commit is contained in:
@@ -227,7 +227,7 @@ namespace WMS.Web.Api.Controllers
|
||||
return Result<List<UcStockResponse>>.ReSuccess(list);
|
||||
|
||||
var subs = await _erpService.BillQueryForSubStock();
|
||||
var res = subs.Data.Where(w => w.OrgCode.Equals(orgCode));
|
||||
var res = subs.Data.Where(w => w.OrgCode.Equals(orgCode)&&w.StockCode.Equals(number));
|
||||
if (!string.IsNullOrEmpty(name))
|
||||
res = res.Where(w => w.Name.Contains(name));
|
||||
list = res.Select(s => new UcStockResponse()
|
||||
|
||||
@@ -8,6 +8,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.ServiceModel;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using WMS.Web.Core.Dto;
|
||||
using WMS.Web.Core.Dto.Erp.Customer;
|
||||
@@ -56,10 +57,10 @@ namespace WMS.Web.Api.Controllers
|
||||
[Route("hj")]
|
||||
public async Task<string> TestHJ()
|
||||
{
|
||||
// OperateRequest dto = new OperateRequest();
|
||||
// dto.Ids.Add(71);
|
||||
// var result = await this._erpService.BillQueryForSubStock();
|
||||
//var ss= result.Data.Where(w => w.Name.Equals("Fares")).ToList();
|
||||
// OperateRequest dto = new OperateRequest();
|
||||
// dto.Ids.Add(71);
|
||||
// var result = await this._erpService.BillQueryForSubStock();
|
||||
//var ss= result.Data.Where(w => w.Name.Equals("Fares")).ToList();
|
||||
//await _outStockService.Sync(dto, null);
|
||||
//var b = await _takeStockService.Sync(dto);
|
||||
// List<ErpCustomerDto> list = null;
|
||||
|
||||
@@ -1151,6 +1151,41 @@
|
||||
业务组织(使用组织)编码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.Erp.Erp_SubStockDto">
|
||||
<summary>
|
||||
子仓库信息
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.Erp_SubStockDto.Id">
|
||||
<summary>
|
||||
id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.Erp_SubStockDto.Code">
|
||||
<summary>
|
||||
编码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.Erp_SubStockDto.Name">
|
||||
<summary>
|
||||
名字
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.Erp_SubStockDto.OrgId">
|
||||
<summary>
|
||||
业务组织(使用组织)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.Erp_SubStockDto.OrgCode">
|
||||
<summary>
|
||||
业务组织(使用组织)编码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.Erp_SubStockDto.StockCode">
|
||||
<summary>
|
||||
仓库编码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.Erp.Supplier.ErpSupplierDto">
|
||||
<summary>
|
||||
erp供应商基础数据
|
||||
@@ -4817,6 +4852,11 @@
|
||||
单据编号
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryRequest.SuccessSync">
|
||||
<summary>
|
||||
同步成功或者失败 null 就是未同步
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryRequest.DateBeginDate">
|
||||
<summary>
|
||||
盘点日期-开始
|
||||
|
||||
@@ -2886,6 +2886,14 @@
|
||||
<param name="stockId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.IErpBasicDataExtendService.GetSubStockName(System.Collections.Generic.List{WMS.Web.Core.Dto.Erp.Erp_SubStockDto},System.String)">
|
||||
<summary>
|
||||
获取子仓库名称
|
||||
</summary>
|
||||
<param name="erpStocks"></param>
|
||||
<param name="code"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForBillType">
|
||||
<summary>
|
||||
查单据类型的值
|
||||
@@ -4303,6 +4311,14 @@
|
||||
<param name="stockId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.ErpBasicDataExtendService.GetSubStockName(System.Collections.Generic.List{WMS.Web.Core.Dto.Erp.Erp_SubStockDto},System.String)">
|
||||
<summary>
|
||||
子仓库
|
||||
</summary>
|
||||
<param name="erpStocks"></param>
|
||||
<param name="code"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Services.Public.ErpService">
|
||||
<summary>
|
||||
erp数据交互服务
|
||||
|
||||
37
src/WMS.Web.Core/Dto/Erp/Stock/ErpSubStockDto.cs
Normal file
37
src/WMS.Web.Core/Dto/Erp/Stock/ErpSubStockDto.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WMS.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// 子仓库信息
|
||||
/// </summary>
|
||||
public class Erp_SubStockDto
|
||||
{
|
||||
/// <summary>
|
||||
/// id
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
/// <summary>
|
||||
/// 编码
|
||||
/// </summary>
|
||||
public string Code { get; set; }
|
||||
/// <summary>
|
||||
/// 名字
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// 业务组织(使用组织)
|
||||
/// </summary>
|
||||
public int OrgId { get; set; }
|
||||
/// <summary>
|
||||
/// 业务组织(使用组织)编码
|
||||
/// </summary>
|
||||
public string OrgCode { get; set; }
|
||||
/// <summary>
|
||||
/// 仓库编码
|
||||
/// </summary>
|
||||
public string StockCode { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,10 @@ namespace WMS.Web.Core.Dto.TakeStock
|
||||
/// </summary>
|
||||
public string BillNo { get; set; }
|
||||
/// <summary>
|
||||
/// 同步成功或者失败 null 就是未同步
|
||||
/// </summary>
|
||||
public int? SuccessSync { get; set; }
|
||||
/// <summary>
|
||||
/// 盘点日期-开始
|
||||
/// </summary>
|
||||
public DateTime? DateBeginDate { get; set; } = null;
|
||||
|
||||
@@ -118,5 +118,13 @@ namespace WMS.Web.Domain.IService.Public
|
||||
/// <param name="stockId"></param>
|
||||
/// <returns></returns>
|
||||
string GetStockCode(List<ErpStockDto> erpStocks, int stockId);
|
||||
|
||||
/// <summary>
|
||||
/// 获取子仓库名称
|
||||
/// </summary>
|
||||
/// <param name="erpStocks"></param>
|
||||
/// <param name="code"></param>
|
||||
/// <returns></returns>
|
||||
string GetSubStockName(List<Erp_SubStockDto> erpStocks, string code);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,7 +142,7 @@ namespace WMS.Web.Domain.IService.Public
|
||||
/// 获取仓位信息信息 根据仓库编码
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<ResultList<ErpStockDto>> BillQueryForSubStock();
|
||||
Task<ResultList<Erp_SubStockDto>> BillQueryForSubStock();
|
||||
//同步数据(保存提交审核)
|
||||
Task<Result<string>> Save<T>(T dto, string formId);
|
||||
//提交
|
||||
|
||||
@@ -197,10 +197,9 @@ namespace WMS.Web.Domain.Services
|
||||
|
||||
if (entity.Type == OutStockType.Sal)
|
||||
{
|
||||
Task.Run(async () =>
|
||||
{
|
||||
await SalOutStock(entity, loginInfo);
|
||||
}).GetAwaiter().GetResult();
|
||||
OperateRequest oRequest = new OperateRequest();
|
||||
oRequest.Ids.Add(entity.Id);
|
||||
await Sync(oRequest, loginInfo);
|
||||
}
|
||||
|
||||
return Result.ReSuccess();
|
||||
@@ -210,18 +209,21 @@ namespace WMS.Web.Domain.Services
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> Sync(OperateRequest dto, LoginInDto loginInfo)
|
||||
public Task<Result> Sync(OperateRequest dto, LoginInDto loginInfo)
|
||||
{
|
||||
var list = await _outStockRepositories.GetEntityList(dto.Ids);
|
||||
var list = _outStockRepositories.GetEntityList(dto.Ids).GetAwaiter().GetResult();
|
||||
foreach (var entity in list)
|
||||
{
|
||||
Task.Run(async () =>
|
||||
{
|
||||
await SalOutStock(entity, loginInfo);
|
||||
}).GetAwaiter().GetResult();
|
||||
var res = await SalOutStock(entity, loginInfo);
|
||||
if (!res.IsSuccess)
|
||||
_logger.LogError($"出库单同步失败:{res.Message}");
|
||||
});
|
||||
}
|
||||
return Result.ReSuccess();
|
||||
return Task.FromResult(Result.ReSuccess());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 同步金蝶销售出库
|
||||
/// </summary>
|
||||
|
||||
@@ -267,7 +267,18 @@ namespace WMS.Web.Domain.Services.Public
|
||||
var stock = erpStocks.Where(x => x.Id == stockId).FirstOrDefault();
|
||||
return stock == null ? "" : stock.Code;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 子仓库
|
||||
/// </summary>
|
||||
/// <param name="erpStocks"></param>
|
||||
/// <param name="code"></param>
|
||||
/// <returns></returns>
|
||||
public string GetSubStockName(List<Erp_SubStockDto> erpStocks, string code)
|
||||
{
|
||||
if (erpStocks == null || erpStocks.Count == 0)
|
||||
return "";
|
||||
var stock = erpStocks.Where(x => x.Code == code).FirstOrDefault();
|
||||
return stock == null ? "" : stock.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1240,21 +1240,21 @@ namespace WMS.Web.Domain.Services.Public
|
||||
/// </summary>
|
||||
/// <param name="code"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<ResultList<ErpStockDto>> BillQueryForSubStock()
|
||||
public async Task<ResultList<Erp_SubStockDto>> BillQueryForSubStock()
|
||||
{
|
||||
try
|
||||
{
|
||||
//1.获取缓存中的仓库数据;
|
||||
var cache_key = "erp_substock_list";
|
||||
var stocks = _memoryCache.Get<List<ErpStockDto>>(cache_key);
|
||||
var stocks = _memoryCache.Get<List<Erp_SubStockDto>>(cache_key);
|
||||
if (stocks == null || stocks.Count == 0)
|
||||
{
|
||||
var token_result = await this.Init();
|
||||
if (!token_result.IsSuccess)
|
||||
return ResultList<ErpStockDto>.ReFailure(token_result);
|
||||
return ResultList<Erp_SubStockDto>.ReFailure(token_result);
|
||||
var query = new ErpBillQueryDto(token_result.Data);
|
||||
var param = new ErpBillQueryParamDto(FormIdParam.BD_STOCK.ToString());
|
||||
param.FieldKeys = "FStockFlexDetail_FDetailID,FFlexEntryName,FFlexEntryId.FNumber,FUseOrgId.FNumber";
|
||||
param.FieldKeys = "FStockFlexDetail_FDetailID,FFlexEntryName,FFlexEntryId.FNumber,FUseOrgId.FNumber,FNumber";
|
||||
param.Limit = 100000;
|
||||
param.FilterString = $"FNumber='HD' or FNumber='GD'";//FNumber='C'
|
||||
query.Data = JsonConvert.SerializeObject(param);
|
||||
@@ -1263,31 +1263,32 @@ namespace WMS.Web.Domain.Services.Public
|
||||
var result_json = await _client.ExecuteBillQueryAsync(json);
|
||||
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
|
||||
|
||||
var list = new List<ErpStockDto>();
|
||||
var list = new List<Erp_SubStockDto>();
|
||||
foreach (var item in result)
|
||||
{
|
||||
var lis = new ErpStockDto();
|
||||
var lis = new Erp_SubStockDto();
|
||||
if (item[0] == "0") continue;
|
||||
lis.Id = int.Parse(item[0]);
|
||||
lis.Name = item[1];
|
||||
lis.Code = item[2];
|
||||
lis.OrgCode = item[3];
|
||||
lis.StockCode = item[4];
|
||||
list.Add(lis);
|
||||
|
||||
}
|
||||
//5.供应商集合进行缓存 只有查询全部的时候才缓存
|
||||
_memoryCache.Set(cache_key, list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(12)));
|
||||
_logger.LogInformation($"子仓库拉取-总条数:{list.Count}");
|
||||
return ResultList<ErpStockDto>.ReSuccess(list);
|
||||
return ResultList<Erp_SubStockDto>.ReSuccess(list);
|
||||
}
|
||||
else
|
||||
{
|
||||
return ResultList<ErpStockDto>.ReSuccess(stocks);
|
||||
return ResultList<Erp_SubStockDto>.ReSuccess(stocks);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return ResultList<ErpStockDto>.ReFailure("错误", 10002);
|
||||
return ResultList<Erp_SubStockDto>.ReFailure("错误", 10002);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -135,15 +135,9 @@ namespace WMS.Web.Domain.Services
|
||||
return Result.ReFailure(ResultCodes.DateWriteError);
|
||||
|
||||
//同步金蝶
|
||||
foreach (var entity in list)
|
||||
{
|
||||
Task.Run(async () =>
|
||||
{
|
||||
var res = await Loss_Profit(entity);
|
||||
if (!res.IsSuccess)
|
||||
_logger.LogError($"盘点同步失败:{res.Message}");
|
||||
}).GetAwaiter().GetResult();
|
||||
}
|
||||
OperateRequest oRequest = new OperateRequest();
|
||||
oRequest.Ids = list.Select(s => s.Id).ToList();
|
||||
await Sync(oRequest);
|
||||
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
@@ -153,9 +147,9 @@ namespace WMS.Web.Domain.Services
|
||||
/// </summary>
|
||||
/// <param name="dto"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result> Sync(OperateRequest dto)
|
||||
public Task<Result> Sync(OperateRequest dto)
|
||||
{
|
||||
var list = await _takeStockRepositories.GetEntityList(dto.Ids);
|
||||
var list = _takeStockRepositories.GetEntityList(dto.Ids).GetAwaiter().GetResult();
|
||||
list = list.Where(w => w.SuccessSync == SyncStatus.Fail || w.SuccessSync == SyncStatus.SyncIng).ToList();
|
||||
foreach (var entity in list)
|
||||
{
|
||||
@@ -164,11 +158,11 @@ namespace WMS.Web.Domain.Services
|
||||
var res = await Loss_Profit(entity);
|
||||
if (!res.IsSuccess)
|
||||
_logger.LogError($"盘点同步失败:{res.Message}");
|
||||
}).GetAwaiter().GetResult();
|
||||
});
|
||||
}
|
||||
|
||||
return Result.ReSuccess();
|
||||
return Task.FromResult(Result.ReSuccess());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 盘盈盘亏同步金蝶
|
||||
/// </summary>
|
||||
|
||||
@@ -188,6 +188,17 @@ namespace WMS.Web.Repositories
|
||||
var split = dto.StockCode.Split("_$");
|
||||
query = query.Where(w => w.detail.StockCode == split[0] && w.detail.OrgCode == split[1]);
|
||||
}
|
||||
if (dto.SuccessSync != null)
|
||||
{
|
||||
if ((SyncStatus)dto.SuccessSync == SyncStatus.Success)
|
||||
query = query.Where(w => w.order.SuccessSync == SyncStatus.Success);
|
||||
else if ((SyncStatus)dto.SuccessSync == SyncStatus.SyncIng)
|
||||
query = query.Where(w => w.order.SuccessSync == SyncStatus.SyncIng);
|
||||
else if ((SyncStatus)dto.SuccessSync == SyncStatus.Fail)
|
||||
query = query.Where(w => w.order.SuccessSync == SyncStatus.Fail
|
||||
|| w.order.SuccessSync == SyncStatus.SubmitFail
|
||||
|| w.order.SuccessSync == SyncStatus.CheckFail);
|
||||
}
|
||||
if (dto.DateBeginDate != null)
|
||||
query = query.Where(w => w.order.Date >= dto.DateBeginDate);
|
||||
if (dto.DateEndDate != null)
|
||||
@@ -202,7 +213,7 @@ namespace WMS.Web.Repositories
|
||||
Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.detail.MaterialId),
|
||||
Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.detail.StockCode + s.detail.OrgCode),
|
||||
SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.detail.SubStockId),
|
||||
Erp_SubStock= _erpBasicDataExtendService.GetStockName(subStocks, s.detail.Erp_SubStockCode),
|
||||
Erp_SubStock= _erpBasicDataExtendService.GetSubStockName(subStocks, s.detail.Erp_SubStockCode),
|
||||
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId),
|
||||
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId),
|
||||
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId),
|
||||
|
||||
Reference in New Issue
Block a user