This commit is contained in:
tongfei
2023-12-20 11:59:33 +08:00
6 changed files with 43 additions and 30 deletions

View File

@@ -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);

View File

@@ -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;

View File

@@ -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>

View File

@@ -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);
//提交 //提交

View File

@@ -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);
} }

View File

@@ -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_JD1000008 GD1000005 HD1000007 AD1000004 //子仓库 ORICO_JD1000008 GD1000005 HD1000007 AD1000004
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)
{ {