diff --git a/src/WMS.Web.Api/Controllers/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs index 45cb1100..1fb89dde 100644 --- a/src/WMS.Web.Api/Controllers/SysConfigController.cs +++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System; using System.Collections.Generic; @@ -38,10 +39,13 @@ namespace WMS.Web.Api.Controllers private readonly IMapper _mapper; private readonly IErpBasicDataExtendService _erpBasicDataExtendService; private readonly IOutStockRepositories _outStockRepositories; + private readonly ILogger _logger; + public SysConfigController(ILoginService loginService, IBasicsRepositories basicsRepositories, IBoxRepositories boxRepositories, IErpService erpService, ISingleDataService singleDataService, ISerialNumbersRepositories serialNumbersRepositories, IBoxInventoryRepositories boxInventoryRepositories, - IMapper mapper, IErpBasicDataExtendService erpBasicDataExtendService, IOutStockRepositories outStockRepositories) + IMapper mapper, IErpBasicDataExtendService erpBasicDataExtendService, IOutStockRepositories outStockRepositories, + ILogger logger) { _loginService = loginService; _basicsRepositories = basicsRepositories; @@ -53,6 +57,7 @@ namespace WMS.Web.Api.Controllers _mapper = mapper; _erpBasicDataExtendService = erpBasicDataExtendService; _outStockRepositories = outStockRepositories; + _logger = logger; } /// @@ -215,9 +220,9 @@ namespace WMS.Web.Api.Controllers if (!number.Substring(0, 2).Equals("HD") && !number.Substring(0, 2).Equals("GD")) return Result>.ReSuccess(list); - var subs = await _erpService.BillQueryForSubStock(number, orgCode); + var subs = await _erpService.BillQueryForSubStock(); //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, Code = s.Code, @@ -393,6 +398,7 @@ namespace WMS.Web.Api.Controllers if (loginInfo == null || loginInfo.UserInfo == null) return Result.ReFailure(ResultCodes.Token_Invalid_Error); + _logger.LogInformation($"请求序列号信息:{serialNumber}"); var res = await _serialNumbersRepositories.GetSerialNumber(serialNumber); if (res == null) return Result.ReFailure(ResultCodes.MateriaNoData); diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index e1fd661f..e1aa9174 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -57,7 +57,8 @@ namespace WMS.Web.Api.Controllers public async Task TestHJ() { OperateRequest dto = new OperateRequest(); - dto.Ids.Add(54); + dto.Ids.Add(71); + //var result = await this._erpService.BillQueryForSubStock(); //await _outStockService.Sync(dto, null); var b = await _takeStockService.Sync(dto); // List list = null; diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index d7fdbaaa..6354fca0 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -3020,7 +3020,7 @@ - + 获取仓位信息信息 根据仓库编码 @@ -4414,7 +4414,7 @@ - + 根据仓库编码获取仓位 diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index 981a0b83..b392f1eb 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -142,7 +142,7 @@ namespace WMS.Web.Domain.IService.Public /// 获取仓位信息信息 根据仓库编码 /// /// - Task> BillQueryForSubStock(string code=null, string orgCode = null); + Task> BillQueryForSubStock(); //同步数据(保存提交审核) Task> Save(T dto, string formId); //提交 diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index a8155555..e16ecc88 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -1240,7 +1240,7 @@ namespace WMS.Web.Domain.Services.Public /// /// /// - public async Task> BillQueryForSubStock(string code = null, string orgCode = null) + public async Task> BillQueryForSubStock() { try { @@ -1254,10 +1254,9 @@ namespace WMS.Web.Domain.Services.Public return ResultList.ReFailure(token_result); var query = new ErpBillQueryDto(token_result.Data); 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; - if (!string.IsNullOrEmpty(code)) - param.FilterString = $"FNumber='{code}' and FUseOrgId.FNumber='{orgCode}'";//FNumber='C' + param.FilterString = $"FNumber='HD' or FNumber='GD'";//FNumber='C' query.Data = JsonConvert.SerializeObject(param); var json = JsonConvert.SerializeObject(query); @@ -1272,13 +1271,12 @@ namespace WMS.Web.Domain.Services.Public lis.Id = int.Parse(item[0]); lis.Name = item[1]; lis.Code = item[2]; - lis.OrgId = Convert.ToInt32(item[3]); + lis.OrgCode = item[3]; list.Add(lis); } //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}"); return ResultList.ReSuccess(list); } @@ -2080,7 +2078,7 @@ namespace WMS.Web.Domain.Services.Public { var lis = new ErpSalOutStockDetailsSaveDto(); lis.DetailId = item[1]; - lis.Qty =Convert.ToDecimal(item[2]); + lis.Qty = Convert.ToDecimal(item[2]); lis.DeliveryNoticeDetailId = ""; erp_list.Details.Add(lis); } diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 0fd1dff9..45081c40 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -68,7 +68,7 @@ namespace WMS.Web.Domain.Services public async Task Save(List dto, LoginInDto loginInfo) { _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); List list = new List(); @@ -135,7 +135,10 @@ namespace WMS.Web.Domain.Services //同步金蝶 foreach (var entity in list) - await Loss_Profit(entity); + { + var res = await Loss_Profit(entity); + if (!res.IsSuccess) return res; + } return Result.ReSuccess(); } @@ -150,7 +153,10 @@ namespace WMS.Web.Domain.Services var list = await _takeStockRepositories.GetEntityList(dto.Ids); list = list.Where(w => w.SuccessSync == SyncStatus.Fail).ToList(); foreach (var entity in list) - await Loss_Profit(entity); + { + var res = await Loss_Profit(entity); + if (!res.IsSuccess) return res; + } return Result.ReSuccess(); } @@ -161,33 +167,35 @@ namespace WMS.Web.Domain.Services /// public async Task Loss_Profit(TakeStock entity) { + _logger.LogInformation($"盘点同步金蝶: {JsonConvert.SerializeObject(entity)}"); try { + if (entity.Details.Count() == 0) return Result.ReSuccess(); var materials_result = await _erpService.BillQueryForMaterial(); if (!materials_result.IsSuccess) return Result.ReFailure(ResultCodes.ErpMaterialError); var materials = materials_result.Data.ToList(); - var res = await _erpService.BillQueryForStock(); - if (!res.IsSuccess) return Result.ReFailure(ResultCodes.ErpStockError); - var stock = res.Data.FirstOrDefault(f => f.Code == entity.Details[0].StockCode);//需要根据单点code搜索 - if (stock == null) return Result.ReFailure(ResultCodes.ErpStockNoData); + //var res = await _erpService.BillQueryForStock(); + //if (!res.IsSuccess) return Result.ReFailure(ResultCodes.ErpStockError); + //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); //组装dto #region 组装dto //子仓库 ORICO_JD:1000008 GD:1000005 HD:1000007 AD:1000004 List detils = new List(); 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); detils.Add(new ErpTakeStockDetailsSaveDto() { - FOwnerid = new ErpNumberDto(stock.OrgCode.ToString()), - FKeeperId = new ErpNumberDto(stock.OrgCode.ToString()), + FOwnerid = new ErpNumberDto(d.OrgCode), + FKeeperId = new ErpNumberDto(d.OrgCode), MaterialId = new ErpNumberDto(_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId)), UnitId = new ErpNumberDto(unitNumber), //物料带出来 - StockId = new ErpNumberDto(stock.Code), - SubStockId = new ErpSubStockDto(stock.Code, d.Erp_SubStockCode), + StockId = new ErpNumberDto(d.StockCode), + SubStockId = new ErpSubStockDto(d.StockCode, d.Erp_SubStockCode), BeforeQty = d.BeforeQty, AfterQty = d.AfterQty, FinalQty = entity.ResultType == TakeStockType.Profit ? d.FinalQty : 0, @@ -198,7 +206,7 @@ namespace WMS.Web.Domain.Services ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto() { 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"), Date = entity.Date, Details = detils @@ -210,7 +218,7 @@ namespace WMS.Web.Domain.Services var resSync = await ErpOperate(dto, type); entity.Sync(resSync.result.IsSuccess, resSync.result.Message, resSync.syncStatus, resSync.erpBillNo); await _takeStockRepositories.Edit(entity, true); - return res; + return Result.ReSuccess(); } catch (Exception ex) {