Merge branch 'master' of https://codeup.aliyun.com/62ce7bca487c500c27f70a79/OPS/WMS-Api
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -38,10 +39,13 @@ namespace WMS.Web.Api.Controllers
|
|||||||
private readonly IMapper _mapper;
|
private readonly IMapper _mapper;
|
||||||
private readonly IErpBasicDataExtendService _erpBasicDataExtendService;
|
private readonly IErpBasicDataExtendService _erpBasicDataExtendService;
|
||||||
private readonly IOutStockRepositories _outStockRepositories;
|
private readonly IOutStockRepositories _outStockRepositories;
|
||||||
|
private readonly ILogger<SysConfigController> _logger;
|
||||||
|
|
||||||
public SysConfigController(ILoginService loginService, IBasicsRepositories basicsRepositories,
|
public SysConfigController(ILoginService loginService, IBasicsRepositories basicsRepositories,
|
||||||
IBoxRepositories boxRepositories, IErpService erpService, ISingleDataService singleDataService,
|
IBoxRepositories boxRepositories, IErpService erpService, ISingleDataService singleDataService,
|
||||||
ISerialNumbersRepositories serialNumbersRepositories, IBoxInventoryRepositories boxInventoryRepositories,
|
ISerialNumbersRepositories serialNumbersRepositories, IBoxInventoryRepositories boxInventoryRepositories,
|
||||||
IMapper mapper, IErpBasicDataExtendService erpBasicDataExtendService, IOutStockRepositories outStockRepositories)
|
IMapper mapper, IErpBasicDataExtendService erpBasicDataExtendService, IOutStockRepositories outStockRepositories,
|
||||||
|
ILogger<SysConfigController> logger)
|
||||||
{
|
{
|
||||||
_loginService = loginService;
|
_loginService = loginService;
|
||||||
_basicsRepositories = basicsRepositories;
|
_basicsRepositories = basicsRepositories;
|
||||||
@@ -53,6 +57,7 @@ namespace WMS.Web.Api.Controllers
|
|||||||
_mapper = mapper;
|
_mapper = mapper;
|
||||||
_erpBasicDataExtendService = erpBasicDataExtendService;
|
_erpBasicDataExtendService = erpBasicDataExtendService;
|
||||||
_outStockRepositories = outStockRepositories;
|
_outStockRepositories = outStockRepositories;
|
||||||
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -215,9 +220,9 @@ namespace WMS.Web.Api.Controllers
|
|||||||
if (!number.Substring(0, 2).Equals("HD") && !number.Substring(0, 2).Equals("GD"))
|
if (!number.Substring(0, 2).Equals("HD") && !number.Substring(0, 2).Equals("GD"))
|
||||||
return Result<List<UcStockResponse>>.ReSuccess(list);
|
return Result<List<UcStockResponse>>.ReSuccess(list);
|
||||||
|
|
||||||
var subs = await _erpService.BillQueryForSubStock(number, orgCode);
|
var subs = await _erpService.BillQueryForSubStock();
|
||||||
//var subs = await _erpService.BillQueryForSubStock(null, null);
|
//var subs = await _erpService.BillQueryForSubStock(null, null);
|
||||||
list = subs.Data.Where(w => w.Name.Contains(name)).Select(s => new UcStockResponse()
|
list = subs.Data.Where(w => w.Name.Equals(name) && w.OrgCode.Equals(orgCode)).Select(s => new UcStockResponse()
|
||||||
{
|
{
|
||||||
Id = s.Id,
|
Id = s.Id,
|
||||||
Code = s.Code,
|
Code = s.Code,
|
||||||
@@ -393,6 +398,7 @@ namespace WMS.Web.Api.Controllers
|
|||||||
if (loginInfo == null || loginInfo.UserInfo == null)
|
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||||
return Result<MaterialResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
return Result<MaterialResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||||
|
|
||||||
|
_logger.LogInformation($"请求序列号信息:{serialNumber}");
|
||||||
var res = await _serialNumbersRepositories.GetSerialNumber(serialNumber);
|
var res = await _serialNumbersRepositories.GetSerialNumber(serialNumber);
|
||||||
if (res == null) return Result<MaterialResponse>.ReFailure(ResultCodes.MateriaNoData);
|
if (res == null) return Result<MaterialResponse>.ReFailure(ResultCodes.MateriaNoData);
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,8 @@ namespace WMS.Web.Api.Controllers
|
|||||||
public async Task<string> TestHJ()
|
public async Task<string> TestHJ()
|
||||||
{
|
{
|
||||||
OperateRequest dto = new OperateRequest();
|
OperateRequest dto = new OperateRequest();
|
||||||
dto.Ids.Add(54);
|
dto.Ids.Add(71);
|
||||||
|
//var result = await this._erpService.BillQueryForSubStock();
|
||||||
//await _outStockService.Sync(dto, null);
|
//await _outStockService.Sync(dto, null);
|
||||||
var b = await _takeStockService.Sync(dto);
|
var b = await _takeStockService.Sync(dto);
|
||||||
// List<ErpCustomerDto> list = null;
|
// List<ErpCustomerDto> list = null;
|
||||||
|
|||||||
@@ -3020,7 +3020,7 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForSubStock(System.String,System.String)">
|
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForSubStock">
|
||||||
<summary>
|
<summary>
|
||||||
获取仓位信息信息 根据仓库编码
|
获取仓位信息信息 根据仓库编码
|
||||||
</summary>
|
</summary>
|
||||||
@@ -4414,7 +4414,7 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForSubStock(System.String,System.String)">
|
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForSubStock">
|
||||||
<summary>
|
<summary>
|
||||||
根据仓库编码获取仓位
|
根据仓库编码获取仓位
|
||||||
</summary>
|
</summary>
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ namespace WMS.Web.Domain.IService.Public
|
|||||||
/// 获取仓位信息信息 根据仓库编码
|
/// 获取仓位信息信息 根据仓库编码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<ResultList<ErpStockDto>> BillQueryForSubStock(string code=null, string orgCode = null);
|
Task<ResultList<ErpStockDto>> BillQueryForSubStock();
|
||||||
//同步数据(保存提交审核)
|
//同步数据(保存提交审核)
|
||||||
Task<Result<string>> Save<T>(T dto, string formId);
|
Task<Result<string>> Save<T>(T dto, string formId);
|
||||||
//提交
|
//提交
|
||||||
|
|||||||
@@ -1240,7 +1240,7 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="code"></param>
|
/// <param name="code"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<ResultList<ErpStockDto>> BillQueryForSubStock(string code = null, string orgCode = null)
|
public async Task<ResultList<ErpStockDto>> BillQueryForSubStock()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -1254,10 +1254,9 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
return ResultList<ErpStockDto>.ReFailure(token_result);
|
return ResultList<ErpStockDto>.ReFailure(token_result);
|
||||||
var query = new ErpBillQueryDto(token_result.Data);
|
var query = new ErpBillQueryDto(token_result.Data);
|
||||||
var param = new ErpBillQueryParamDto(FormIdParam.BD_STOCK.ToString());
|
var param = new ErpBillQueryParamDto(FormIdParam.BD_STOCK.ToString());
|
||||||
param.FieldKeys = "FStockFlexDetail_FDetailID,FFlexEntryName,FFlexEntryId,'0'";
|
param.FieldKeys = "FStockFlexDetail_FDetailID,FFlexEntryName,FFlexEntryId,FUseOrgId.FNumber";
|
||||||
param.Limit = 100000;
|
param.Limit = 100000;
|
||||||
if (!string.IsNullOrEmpty(code))
|
param.FilterString = $"FNumber='HD' or FNumber='GD'";//FNumber='C'
|
||||||
param.FilterString = $"FNumber='{code}' and FUseOrgId.FNumber='{orgCode}'";//FNumber='C'
|
|
||||||
query.Data = JsonConvert.SerializeObject(param);
|
query.Data = JsonConvert.SerializeObject(param);
|
||||||
var json = JsonConvert.SerializeObject(query);
|
var json = JsonConvert.SerializeObject(query);
|
||||||
|
|
||||||
@@ -1272,13 +1271,12 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
lis.Id = int.Parse(item[0]);
|
lis.Id = int.Parse(item[0]);
|
||||||
lis.Name = item[1];
|
lis.Name = item[1];
|
||||||
lis.Code = item[2];
|
lis.Code = item[2];
|
||||||
lis.OrgId = Convert.ToInt32(item[3]);
|
lis.OrgCode = item[3];
|
||||||
list.Add(lis);
|
list.Add(lis);
|
||||||
|
|
||||||
}
|
}
|
||||||
//5.供应商集合进行缓存 只有查询全部的时候才缓存
|
//5.供应商集合进行缓存 只有查询全部的时候才缓存
|
||||||
if (code == null)
|
_memoryCache.Set(cache_key, list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(12)));
|
||||||
_memoryCache.Set(cache_key, list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(12)));
|
|
||||||
_logger.LogInformation($"子仓库拉取-总条数:{list.Count}");
|
_logger.LogInformation($"子仓库拉取-总条数:{list.Count}");
|
||||||
return ResultList<ErpStockDto>.ReSuccess(list);
|
return ResultList<ErpStockDto>.ReSuccess(list);
|
||||||
}
|
}
|
||||||
@@ -2080,7 +2078,7 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
{
|
{
|
||||||
var lis = new ErpSalOutStockDetailsSaveDto();
|
var lis = new ErpSalOutStockDetailsSaveDto();
|
||||||
lis.DetailId = item[1];
|
lis.DetailId = item[1];
|
||||||
lis.Qty =Convert.ToDecimal(item[2]);
|
lis.Qty = Convert.ToDecimal(item[2]);
|
||||||
lis.DeliveryNoticeDetailId = "";
|
lis.DeliveryNoticeDetailId = "";
|
||||||
erp_list.Details.Add(lis);
|
erp_list.Details.Add(lis);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
public async Task<Result> Save(List<SaveTakeStockRequest> dto, LoginInDto loginInfo)
|
public async Task<Result> Save(List<SaveTakeStockRequest> dto, LoginInDto loginInfo)
|
||||||
{
|
{
|
||||||
_logger.LogInformation($"盘点保存:{JsonConvert.SerializeObject(dto)} 盘点人:{loginInfo.UserInfo.StaffId}");
|
_logger.LogInformation($"盘点保存:{JsonConvert.SerializeObject(dto)} 盘点人:{loginInfo.UserInfo.StaffId}");
|
||||||
if(dto.GroupBy(g=>g.BoxId).Count()>1)
|
if (dto.GroupBy(g => g.BoxId).Count() > 1)
|
||||||
return Result.ReFailure(ResultCodes.TakeStockBoxError);
|
return Result.ReFailure(ResultCodes.TakeStockBoxError);
|
||||||
|
|
||||||
List<TakeStock> list = new List<TakeStock>();
|
List<TakeStock> list = new List<TakeStock>();
|
||||||
@@ -135,7 +135,10 @@ namespace WMS.Web.Domain.Services
|
|||||||
|
|
||||||
//同步金蝶
|
//同步金蝶
|
||||||
foreach (var entity in list)
|
foreach (var entity in list)
|
||||||
await Loss_Profit(entity);
|
{
|
||||||
|
var res = await Loss_Profit(entity);
|
||||||
|
if (!res.IsSuccess) return res;
|
||||||
|
}
|
||||||
|
|
||||||
return Result.ReSuccess();
|
return Result.ReSuccess();
|
||||||
}
|
}
|
||||||
@@ -150,7 +153,10 @@ namespace WMS.Web.Domain.Services
|
|||||||
var list = await _takeStockRepositories.GetEntityList(dto.Ids);
|
var list = await _takeStockRepositories.GetEntityList(dto.Ids);
|
||||||
list = list.Where(w => w.SuccessSync == SyncStatus.Fail).ToList();
|
list = list.Where(w => w.SuccessSync == SyncStatus.Fail).ToList();
|
||||||
foreach (var entity in list)
|
foreach (var entity in list)
|
||||||
await Loss_Profit(entity);
|
{
|
||||||
|
var res = await Loss_Profit(entity);
|
||||||
|
if (!res.IsSuccess) return res;
|
||||||
|
}
|
||||||
|
|
||||||
return Result.ReSuccess();
|
return Result.ReSuccess();
|
||||||
}
|
}
|
||||||
@@ -161,33 +167,35 @@ namespace WMS.Web.Domain.Services
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<Result> Loss_Profit(TakeStock entity)
|
public async Task<Result> Loss_Profit(TakeStock entity)
|
||||||
{
|
{
|
||||||
|
_logger.LogInformation($"盘点同步金蝶: {JsonConvert.SerializeObject(entity)}");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (entity.Details.Count() == 0) return Result.ReSuccess();
|
||||||
var materials_result = await _erpService.BillQueryForMaterial();
|
var materials_result = await _erpService.BillQueryForMaterial();
|
||||||
if (!materials_result.IsSuccess) return Result.ReFailure(ResultCodes.ErpMaterialError);
|
if (!materials_result.IsSuccess) return Result.ReFailure(ResultCodes.ErpMaterialError);
|
||||||
var materials = materials_result.Data.ToList();
|
var materials = materials_result.Data.ToList();
|
||||||
|
|
||||||
var res = await _erpService.BillQueryForStock();
|
//var res = await _erpService.BillQueryForStock();
|
||||||
if (!res.IsSuccess) return Result.ReFailure(ResultCodes.ErpStockError);
|
//if (!res.IsSuccess) return Result.ReFailure(ResultCodes.ErpStockError);
|
||||||
var stock = res.Data.FirstOrDefault(f => f.Code == entity.Details[0].StockCode);//需要根据单点code搜索
|
//var stock = res.Data.FirstOrDefault(f => f.Code == entity.Details[0].StockCode && f.OrgCode == entity.Details[0].OrgCode);//需要根据单点code搜索
|
||||||
if (stock == null) return Result.ReFailure(ResultCodes.ErpStockNoData);
|
//if (stock == null) return Result.ReFailure(ResultCodes.ErpStockNoData);
|
||||||
//组装dto
|
//组装dto
|
||||||
#region 组装dto
|
#region 组装dto
|
||||||
//子仓库 ORICO_JD:1000008 GD:1000005 HD:1000007 AD:1000004
|
//子仓库 ORICO_JD:1000008 GD:1000005 HD:1000007 AD:1000004
|
||||||
List<ErpTakeStockDetailsSaveDto> detils = new List<ErpTakeStockDetailsSaveDto>();
|
List<ErpTakeStockDetailsSaveDto> detils = new List<ErpTakeStockDetailsSaveDto>();
|
||||||
foreach (var d in entity.Details)
|
foreach (var d in entity.Details)
|
||||||
{
|
{
|
||||||
var subStockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, d.SubStockId);
|
//var subStockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, d.SubStockId);
|
||||||
|
|
||||||
var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, d.MaterialId);
|
var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, d.MaterialId);
|
||||||
detils.Add(new ErpTakeStockDetailsSaveDto()
|
detils.Add(new ErpTakeStockDetailsSaveDto()
|
||||||
{
|
{
|
||||||
FOwnerid = new ErpNumberDto(stock.OrgCode.ToString()),
|
FOwnerid = new ErpNumberDto(d.OrgCode),
|
||||||
FKeeperId = new ErpNumberDto(stock.OrgCode.ToString()),
|
FKeeperId = new ErpNumberDto(d.OrgCode),
|
||||||
MaterialId = new ErpNumberDto(_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId)),
|
MaterialId = new ErpNumberDto(_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId)),
|
||||||
UnitId = new ErpNumberDto(unitNumber), //物料带出来
|
UnitId = new ErpNumberDto(unitNumber), //物料带出来
|
||||||
StockId = new ErpNumberDto(stock.Code),
|
StockId = new ErpNumberDto(d.StockCode),
|
||||||
SubStockId = new ErpSubStockDto(stock.Code, d.Erp_SubStockCode),
|
SubStockId = new ErpSubStockDto(d.StockCode, d.Erp_SubStockCode),
|
||||||
BeforeQty = d.BeforeQty,
|
BeforeQty = d.BeforeQty,
|
||||||
AfterQty = d.AfterQty,
|
AfterQty = d.AfterQty,
|
||||||
FinalQty = entity.ResultType == TakeStockType.Profit ? d.FinalQty : 0,
|
FinalQty = entity.ResultType == TakeStockType.Profit ? d.FinalQty : 0,
|
||||||
@@ -198,7 +206,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto()
|
ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto()
|
||||||
{
|
{
|
||||||
BillNo = entity.BillNo,
|
BillNo = entity.BillNo,
|
||||||
StockOrgId = new ErpNumberDto(stock.OrgCode),
|
StockOrgId = new ErpNumberDto(entity.Details[0].OrgCode),
|
||||||
Type = new ErpNumberDto(entity.ResultType == TakeStockType.Loss ? "PK01_SYS" : "PY01_SYS"),
|
Type = new ErpNumberDto(entity.ResultType == TakeStockType.Loss ? "PK01_SYS" : "PY01_SYS"),
|
||||||
Date = entity.Date,
|
Date = entity.Date,
|
||||||
Details = detils
|
Details = detils
|
||||||
@@ -210,7 +218,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
var resSync = await ErpOperate(dto, type);
|
var resSync = await ErpOperate(dto, type);
|
||||||
entity.Sync(resSync.result.IsSuccess, resSync.result.Message, resSync.syncStatus, resSync.erpBillNo);
|
entity.Sync(resSync.result.IsSuccess, resSync.result.Message, resSync.syncStatus, resSync.erpBillNo);
|
||||||
await _takeStockRepositories.Edit(entity, true);
|
await _takeStockRepositories.Edit(entity, true);
|
||||||
return res;
|
return Result.ReSuccess();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user