From c8df7c91f2593ce3825d495e8ba857cb81de1514 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 1 Dec 2023 16:26:01 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E7=9B=98=E7=82=B9=E5=8D=95=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=E9=87=91=E8=9D=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/Controllers/TestController.cs | 11 ++++-- src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 25 ++++++++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 16 ++++++++ src/WMS.Web.Core/Dto/Erp/ErpBillQueryDto.cs | 10 +++++ src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs | 23 +++++++++++ .../Dto/Erp/Material/ErpMaterialDto.cs | 4 ++ src/WMS.Web.Core/Dto/Erp/Stock/ErpStockDto.cs | 4 ++ .../Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs | 18 ++++----- .../Public/IErpBasicDataExtendService.cs | 7 ++++ .../Public/ErpBasicDataExtendService.cs | 18 +++++++++ .../Services/Public/ErpService.cs | 26 ++++++------- .../Services/TakeStockService.cs | 38 +++++++++---------- 12 files changed, 156 insertions(+), 44 deletions(-) create mode 100644 src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index d6c3a5f0..6bd1d61c 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -30,9 +30,12 @@ namespace WMS.Web.Api.Controllers private readonly IOutStockTaskRepositories _outStockTaskRepositories; private readonly IOutStockTaskService _outStockTaskService; private readonly IBoxInventoryRepositories _boxInventoryRepositories; + private readonly ITakeStockService _takeStockService; + private readonly ITakeStockRepositories _takeStockRepositories; public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories, IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, - IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService) + IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, + ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories) { _boxInventoryRepositories = boxInventoryRepositories; this._erpService = erpService; @@ -42,14 +45,16 @@ namespace WMS.Web.Api.Controllers _boxService = boxService; _outStockTaskRepositories = outStockTaskRepositories; _outStockTaskService = outStockTaskService; + _takeStockService = takeStockService; + _takeStockRepositories = takeStockRepositories; } [HttpGet] [Route("hj")] public async Task TestHJ() { - - + var entity=await _takeStockRepositories.GetEntityList(new List() {1 }); + var r= await _takeStockService.Loss_Profit(entity.First()); //var list = await GetList(); //var c = await _erpService.BillQueryForSubStock(null,null); //var bc2 = await _erpService.BillQueryForDeliveryNoticeOutStock(new List() { "FHTZD8022232" }, DateTime.Now.AddDays(-10)); diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 4fa4e155..2314ea3a 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -590,6 +590,11 @@ 参数 + + + 参数(保存提交审核formId在外层) + + ERP:单据查询-参数-dto @@ -710,6 +715,16 @@ 单据类型 + + + 编码 + + + + + 编码 + + erp 提交和审核 @@ -800,6 +815,11 @@ 基本单位名称 + + + 基本单位编码 + + 金蝶组织-基本信息 @@ -1015,6 +1035,11 @@ 业务组织(使用组织) + + + 业务组织(使用组织)编码 + + erp供应商基础数据 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index e18efa9b..f1b081e3 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -2598,6 +2598,14 @@ + + + 获取物料基本单位编码 + + + + + 获取组织名称 @@ -3925,6 +3933,14 @@ + + + 获取物料基本单位编码 + + + + + 获取组织名称 diff --git a/src/WMS.Web.Core/Dto/Erp/ErpBillQueryDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpBillQueryDto.cs index 30064913..326f6823 100644 --- a/src/WMS.Web.Core/Dto/Erp/ErpBillQueryDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/ErpBillQueryDto.cs @@ -16,6 +16,11 @@ namespace WMS.Web.Core.Dto.Erp { this.AccessToken = accessToken; } + public ErpBillQueryDto(string accessToken,string formid) + { + this.AccessToken = accessToken; + this.FormId = formid; + } /// /// 令牌 /// @@ -26,5 +31,10 @@ namespace WMS.Web.Core.Dto.Erp /// [JsonProperty(PropertyName = "data")] public string Data { get; set; } + /// + /// 参数(保存提交审核formId在外层) + /// + [JsonProperty(PropertyName = "formid")] + public string FormId { get; set; } } } diff --git a/src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs new file mode 100644 index 00000000..500f384d --- /dev/null +++ b/src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs @@ -0,0 +1,23 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.Erp +{ + /// + /// 编码 + /// + public class ErpNumberDto + { + public ErpNumberDto() { } + public ErpNumberDto(string number) { + this.Number = number; + } + /// + /// 编码 + /// + [JsonProperty("FNumber")] + public string Number { get; set; } + } +} diff --git a/src/WMS.Web.Core/Dto/Erp/Material/ErpMaterialDto.cs b/src/WMS.Web.Core/Dto/Erp/Material/ErpMaterialDto.cs index 7f8f88f1..5aa29e2a 100644 --- a/src/WMS.Web.Core/Dto/Erp/Material/ErpMaterialDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/Material/ErpMaterialDto.cs @@ -36,5 +36,9 @@ namespace WMS.Web.Core.Dto.Erp /// 基本单位名称 /// public string BaseUnitName { get; set; } + /// + /// 基本单位编码 + /// + public string BaseUnitNumber { get; set; } } } diff --git a/src/WMS.Web.Core/Dto/Erp/Stock/ErpStockDto.cs b/src/WMS.Web.Core/Dto/Erp/Stock/ErpStockDto.cs index 69484205..e9111d89 100644 --- a/src/WMS.Web.Core/Dto/Erp/Stock/ErpStockDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/Stock/ErpStockDto.cs @@ -25,5 +25,9 @@ namespace WMS.Web.Core.Dto.Erp /// 业务组织(使用组织) /// public int OrgId { get; set; } + /// + /// 业务组织(使用组织)编码 + /// + public string OrgCode { get; set; } } } diff --git a/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs b/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs index d2e42ee0..d80ed522 100644 --- a/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs @@ -35,16 +35,16 @@ namespace WMS.Web.Core.Dto.Erp.TakeStock /// 单据类型(标准盘亏单; 标准盘盈单 PY01_SYS) 盘亏 PK01_SYS /// [JsonProperty("FBillTypeID")] - public string Type { get; set; } + public ErpNumberDto Type { get; set; } /// /// 库存组织 (取仓库对应的库存组织) /// [JsonProperty("FStockOrgId")] - public string StockOrgId { get; set; } + public ErpNumberDto StockOrgId { get; set; } /// /// 货主类型: 默认为业务组织 BD_OwnerOrg /// - [JsonProperty("FBillTypeID")] + [JsonProperty("FOwnerTypeIdHead")] public string FOwnerTypeIdHead { get; set; } = "BD_OwnerOrg"; /// /// 单据编号 @@ -68,7 +68,7 @@ namespace WMS.Web.Core.Dto.Erp.TakeStock /// 库存状态 KCZT001 /// [JsonProperty("FStockStatusId")] - public string FStockStatusId { get; set; } = "KCZT001"; + public ErpNumberDto FStockStatusId { get; set; } = new ErpNumberDto("KCZT001"); /// /// 货主类型: 默认为业务组织 BD_OwnerOrg /// @@ -78,7 +78,7 @@ namespace WMS.Web.Core.Dto.Erp.TakeStock /// 取仓库对应的货主信息 货主: 等于库存组织 /// [JsonProperty("FOwnerid")] - public string FOwnerid { get; set; } + public ErpNumberDto FOwnerid { get; set; } /// /// 保管者类型 /// @@ -88,22 +88,22 @@ namespace WMS.Web.Core.Dto.Erp.TakeStock /// 保管者 仓库”库存组织” /// [JsonProperty("FKeeperId")] - public string FKeeperId { get; set; } + public ErpNumberDto FKeeperId { get; set; } /// /// 物料ID /// [JsonProperty("FMaterialId")] - public string MaterialId { get; set; } + public ErpNumberDto MaterialId { get; set; } /// /// 单位ID /// [JsonProperty("FUnitID")] - public string UnitId { get; set; } + public ErpNumberDto UnitId { get; set; } /// /// 仓库ID /// [JsonProperty("FStockId")] - public string StockId { get; set; } + public ErpNumberDto StockId { get; set; } /// /// 仓位ID /// diff --git a/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs index d3d27b77..3d611bde 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs @@ -51,6 +51,13 @@ namespace WMS.Web.Domain.IService.Public /// int GetMaterialUnitId(List erpMaterials, int materialId); /// + /// 获取物料基本单位编码 + /// + /// + /// + /// + string GetMaterialUnitNumber(List erpMaterials, int materialId); + /// /// 获取组织名称 /// /// diff --git a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs index b77462fb..20c884bd 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs @@ -125,6 +125,24 @@ namespace WMS.Web.Domain.Services.Public } return mat.BaseUnitId; } + /// + /// 获取物料基本单位编码 + /// + /// + /// + /// + public string GetMaterialUnitNumber(List erpMaterials, int materialId) + { + var mat = erpMaterials.Where(x => x.MaterialId == materialId).FirstOrDefault(); + if (mat == null) + { + var result = _erpService.BillQueryForMaterial(materialId).Result; + if (!result.IsSuccess) + return ""; + return result.Data == null ? "" : result.Data.BaseUnitNumber; + } + return mat.BaseUnitNumber; + } /// /// 获取组织名称 diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index a3bac4c3..f45859ef 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -845,7 +845,7 @@ namespace WMS.Web.Domain.Services.Public //3.获取金蝶物料:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); var param = new ErpBillQueryParamDto(FormIdParam.BD_MATERIAL.ToString()); - param.FieldKeys = "FMATERIALID,FName,FNumber,FSpecification,FBaseUnitId,FBaseUnitId.FName"; + param.FieldKeys = "FMATERIALID,FName,FNumber,FSpecification,FBaseUnitId,FBaseUnitId.FName,FBaseUnitId.FNumber"; param.Limit = 10000; //查询条件:备注其中的条件值以金蝶的值为准!!! @@ -885,6 +885,7 @@ namespace WMS.Web.Domain.Services.Public lis.Specifications = item[3]; lis.BaseUnitId = Convert.ToInt32(item[4]); lis.BaseUnitName = item[5]; + lis.BaseUnitNumber = item[6]; erp_materials_list.Add(lis); } //4.6页面的叠加 @@ -913,7 +914,7 @@ namespace WMS.Web.Domain.Services.Public //3.获取金蝶物料:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); var param = new ErpBillQueryParamDto(FormIdParam.BD_MATERIAL.ToString()); - param.FieldKeys = "FMATERIALID,FName,FNumber,FSpecification,FBaseUnitId,FBaseUnitId.FName"; + param.FieldKeys = "FMATERIALID,FName,FNumber,FSpecification,FBaseUnitId,FBaseUnitId.FName,FBaseUnitId.FNumber"; param.Limit = 10000; //查询条件:备注其中的条件值以金蝶的值为准!!! @@ -947,6 +948,7 @@ namespace WMS.Web.Domain.Services.Public lis.Specifications = item[3]; lis.BaseUnitId = Convert.ToInt32(item[4]); lis.BaseUnitName = item[5]; + lis.BaseUnitNumber = item[6]; erp_materials_list.Add(lis); } if (erp_materials_list.Count == 0) @@ -1191,7 +1193,7 @@ namespace WMS.Web.Domain.Services.Public //3.获取金蝶仓库:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); var param = new ErpBillQueryParamDto(FormIdParam.BD_STOCK.ToString()); - param.FieldKeys = "FStockId,FName,FNumber,FUseOrgId"; + param.FieldKeys = "FStockId,FName,FNumber,FUseOrgId,FUseOrgId.FNumber"; param.Limit = 10000; //查询条件:备注其中的条件值以金蝶的值为准!!! param.FilterString = ""; @@ -1213,6 +1215,7 @@ namespace WMS.Web.Domain.Services.Public lis.Name = item[1]; lis.Code = item[2]; lis.OrgId = Convert.ToInt32(item[3]); + lis.OrgCode = item[4]; list.Add(lis); } @@ -1303,23 +1306,22 @@ namespace WMS.Web.Domain.Services.Public var token_result = await this.Init(); if (!token_result.IsSuccess) return Result.ReFailure(token_result.Message, token_result.Status); - var query = new ErpBillQueryDto(token_result.Data); + var query = new ErpBillQueryDto(token_result.Data,formId); var param = new ErpSave(formId, dto); query.Data = JsonConvert.SerializeObject(param); //保存 var result_json = await _client.SaveAsync(JsonConvert.SerializeObject(query)); JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json); - var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower(); if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true") { //保存成功后返回Id 后续操作根据Id操作 - string id = jobject["Result"]["ResponseStatus"]["SuccessEntitys"]["Id"].ToString(); + string id =jobject["Result"]["ResponseStatus"]["SuccessEntitys"][0]["Id"].ToString(); return Result.ReSuccess(id); } - var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString(); + var msg = jobject["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString(); return Result.ReFailure(msg, 10002); } catch (Exception ex) @@ -1340,18 +1342,17 @@ namespace WMS.Web.Domain.Services.Public var token_result = await this.Init(); if (!token_result.IsSuccess) return token_result; - var query = new ErpBillQueryDto(token_result.Data); + var query = new ErpBillQueryDto(token_result.Data, formId); //提交 query.Data = JsonConvert.SerializeObject(dto); var result_json = await _client.SubmitAsync(JsonConvert.SerializeObject(query)); JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json); - var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower(); if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true") return Result.ReSuccess(); - var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString(); + var msg = jobject["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString(); return Result.ReFailure(msg, 10002); } catch (Exception ex) @@ -1372,18 +1373,17 @@ namespace WMS.Web.Domain.Services.Public var token_result = await this.Init(); if (!token_result.IsSuccess) return token_result; - var query = new ErpBillQueryDto(token_result.Data); + var query = new ErpBillQueryDto(token_result.Data, formId); //提交 query.Data = JsonConvert.SerializeObject(dto); var result_json = await _client.AuditAsync(JsonConvert.SerializeObject(query)); JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json); - var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower(); if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true") return Result.ReSuccess(); - var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString(); + var msg = jobject["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString(); return Result.ReFailure(msg, 10002); } catch (Exception ex) diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index d5de94a4..31b1ab3b 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -76,13 +76,13 @@ namespace WMS.Web.Domain.Services IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); Result res_Rollback = Result.ReSuccess(); bool isSuccess = true; - + if (res_Rollback.IsSuccess) { isSuccess = await _takeStockRepositories.AddRange(list, false); if (!isSuccess) res_Rollback = Result.ReFailure(ResultCodes.DateWriteError); } - if(res_Rollback.IsSuccess) + if (res_Rollback.IsSuccess) { var res_Inventory = await _boxInventoryService.GenerateTakeBox(list, false); if (!res_Inventory.IsSuccess) res_Rollback = res_Inventory; @@ -127,22 +127,22 @@ namespace WMS.Web.Domain.Services var subStockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.SubStockId); var materials_result = await _erpService.BillQueryForMaterial(); var materials = materials_result.Data.ToList(); - var unitId = _erpBasicDataExtendService.GetMaterialUnitId(materials,entity.MaterialId); + var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, entity.MaterialId); var res = await _erpService.BillQueryForStock(); var stock = res.Data.FirstOrDefault(f => f.Code == entity.StockCode);//需要根据单点code搜索 var subStock = res.Data.FirstOrDefault(f => f.Code == subStockCode);//需要根据单点code搜索 - if (stock == null || subStock == null) return Result.ReFailure(ResultCodes.ErpStockNoData); + if (stock == null) return Result.ReFailure(ResultCodes.ErpStockNoData); //组装dto #region 组装dto List detils = new List(); detils.Add(new ErpTakeStockDetailsSaveDto() { - FOwnerid = stock.OrgId.ToString(), - FKeeperId = stock.OrgId.ToString(), - MaterialId = entity.MaterialId.ToString(), - UnitId = unitId.ToString(), //物料带出来 - StockId = stock.Id.ToString(), - SubStockId = subStock.Id.ToString(), + FOwnerid = new ErpNumberDto(stock.OrgCode.ToString()), + FKeeperId = new ErpNumberDto(stock.OrgCode.ToString()), + MaterialId = new ErpNumberDto(_erpBasicDataExtendService.GetMaterialNumber(materials, entity.MaterialId)), + UnitId = new ErpNumberDto(unitNumber), //物料带出来 + StockId = new ErpNumberDto(stock.Code), + SubStockId = subStock?.Id.ToString(), BeforeQty = entity.BeforeQty, AfterQty = entity.AfterQty, FinalQty = entity.FinalQty, @@ -151,8 +151,8 @@ namespace WMS.Web.Domain.Services ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto() { BillNo = entity.BillNo, - StockOrgId = stock.OrgId.ToString(), - Type = entity.ResultType == TakeStockType.Loss ? "PK01_SYS" : "PY01_SYS", + StockOrgId = new ErpNumberDto(stock.OrgCode), + Type = new ErpNumberDto(entity.ResultType == TakeStockType.Loss ? "PK01_SYS" : "PY01_SYS"), Date = entity.Date, Details = detils }; @@ -161,7 +161,7 @@ namespace WMS.Web.Domain.Services FormIdParam type = entity.ResultType == TakeStockType.Loss ? FormIdParam.STK_StockCountLoss : FormIdParam.STK_StockCountGain; //操作金蝶 var resSync = await ErpOperate(dto, type); - entity.Sync(resSync.result.IsSuccess, resSync.result.Message,resSync.syncStatus); + entity.Sync(resSync.result.IsSuccess, resSync.result.Message, resSync.syncStatus); await _takeStockRepositories.Edit(entity, true); return res; } @@ -171,15 +171,15 @@ namespace WMS.Web.Domain.Services /// /// /// - private async Task<(Result result,SyncStatus syncStatus)> ErpOperate(ErpTakeStockSaveDto dto, FormIdParam type) + private async Task<(Result result, SyncStatus syncStatus)> ErpOperate(ErpTakeStockSaveDto dto, FormIdParam type) { string formId = type.ToString(); _logger.LogInformation($"开始同步金蝶 单号:{dto.BillNo} 数据: {JsonConvert.SerializeObject(dto)}"); - var res_s = await _erpService.Save(dto, formId); - if (!res_s.IsSuccess) - return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.Fail); + //var res_s = await _erpService.Save(dto, formId); + //if (!res_s.IsSuccess) + // return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.Fail); //提交 - ErpOperateDto o_dto = new ErpOperateDto(formId, res_s.Data); + ErpOperateDto o_dto = new ErpOperateDto(formId,"257552");//res_s.Data var res = await _erpService.Submit(o_dto, formId); if (!res.IsSuccess) { @@ -210,7 +210,7 @@ namespace WMS.Web.Domain.Services return (res, SyncStatus.PortionSuccess); } _logger.LogInformation($"同步金蝶成功"); - return (Result.ReSuccess(),SyncStatus.Success); + return (Result.ReSuccess(), SyncStatus.Success); } } } From 4270cfd97b4f74385d0d564bc0f0cf4395a25382 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 1 Dec 2023 16:27:48 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Domain/Services/TakeStockService.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 31b1ab3b..a3eee65a 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -175,11 +175,11 @@ namespace WMS.Web.Domain.Services { string formId = type.ToString(); _logger.LogInformation($"开始同步金蝶 单号:{dto.BillNo} 数据: {JsonConvert.SerializeObject(dto)}"); - //var res_s = await _erpService.Save(dto, formId); - //if (!res_s.IsSuccess) - // return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.Fail); + var res_s = await _erpService.Save(dto, formId); + if (!res_s.IsSuccess) + return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.Fail); //提交 - ErpOperateDto o_dto = new ErpOperateDto(formId,"257552");//res_s.Data + ErpOperateDto o_dto = new ErpOperateDto(formId, res_s.Data);//res_s.Data var res = await _erpService.Submit(o_dto, formId); if (!res.IsSuccess) { From a7d15e6a0235b782929760e2ce358c1d031c4e2c Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 1 Dec 2023 16:36:40 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 11 ++++++++--- src/WMS.Web.Domain/Services/TakeStockService.cs | 4 ++-- src/WMS.Web.Domain/Values/SyncStatus.cs | 13 +++++++++---- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index f1b081e3..bbf79165 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -5627,7 +5627,7 @@ - 失败 + 失败(保存失败 未保存) @@ -5635,9 +5635,14 @@ 成功 - + - 部分成功(数据保存成功,提交或者审核失败) + 提交失败 + + + + + 审核失败 diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index a3eee65a..e07026cb 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -188,7 +188,7 @@ namespace WMS.Web.Domain.Services //var del_res = await _erpService.Delete(o_dto, formId); //if (!del_res.IsSuccess) // _logger.LogError($"盘盈盘亏同步金蝶 单号:{dto.BillNo} 提交失败原因: {res.Message} 删单失败原因:{del_res.Message}"); - return (res, SyncStatus.PortionSuccess); + return (res, SyncStatus.SubmitFail); } //审核 res = await _erpService.Audit(o_dto, formId); @@ -207,7 +207,7 @@ namespace WMS.Web.Domain.Services //var del_res = await _erpService.Delete(o_dto, formId); //if (!del_res.IsSuccess) // _logger.LogError($"盘盈盘亏同步金蝶 单号:{dto.BillNo} 审核失败原因: {res.Message} 删单失败原因:{del_res.Message}"); - return (res, SyncStatus.PortionSuccess); + return (res, SyncStatus.CheckFail); } _logger.LogInformation($"同步金蝶成功"); return (Result.ReSuccess(), SyncStatus.Success); diff --git a/src/WMS.Web.Domain/Values/SyncStatus.cs b/src/WMS.Web.Domain/Values/SyncStatus.cs index ced02c2c..91379454 100644 --- a/src/WMS.Web.Domain/Values/SyncStatus.cs +++ b/src/WMS.Web.Domain/Values/SyncStatus.cs @@ -11,7 +11,7 @@ namespace WMS.Web.Domain.Values public enum SyncStatus { /// - /// 失败 + /// 失败(保存失败 未保存) /// [EnumRemark("失败")] Fail =0, @@ -21,9 +21,14 @@ namespace WMS.Web.Domain.Values [EnumRemark("成功")] Success =1, /// - /// 部分成功(数据保存成功,提交或者审核失败) + /// 提交失败 /// - [EnumRemark("部分成功")] - PortionSuccess =2 + [EnumRemark("提交失败")] + SubmitFail = 2, + /// + /// 审核失败 + /// + [EnumRemark("审核失败")] + CheckFail = 3 } } From 64fb6e50afe8c581acc63b68fea27a6060f13468 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 1 Dec 2023 16:40:00 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Domain/Services/TakeStockService.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index e07026cb..af129b2d 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -174,11 +174,15 @@ namespace WMS.Web.Domain.Services private async Task<(Result result, SyncStatus syncStatus)> ErpOperate(ErpTakeStockSaveDto dto, FormIdParam type) { string formId = type.ToString(); - _logger.LogInformation($"开始同步金蝶 单号:{dto.BillNo} 数据: {JsonConvert.SerializeObject(dto)}"); + _logger.LogInformation($"盘点单->开始同步金蝶 单号:{dto.BillNo} 数据: {JsonConvert.SerializeObject(dto)}"); var res_s = await _erpService.Save(dto, formId); if (!res_s.IsSuccess) + { + _logger.LogInformation($"盘点单->保存失败 单号:{dto.BillNo} 错误:{res_s.Message}"); return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.Fail); + } //提交 + _logger.LogInformation($"盘点单->保存成功 开始提交 单号:{dto.BillNo}"); ErpOperateDto o_dto = new ErpOperateDto(formId, res_s.Data);//res_s.Data var res = await _erpService.Submit(o_dto, formId); if (!res.IsSuccess) @@ -188,9 +192,11 @@ namespace WMS.Web.Domain.Services //var del_res = await _erpService.Delete(o_dto, formId); //if (!del_res.IsSuccess) // _logger.LogError($"盘盈盘亏同步金蝶 单号:{dto.BillNo} 提交失败原因: {res.Message} 删单失败原因:{del_res.Message}"); + _logger.LogInformation($"盘点单->提交失败 单号:{dto.BillNo} 错误:{res.Message}"); return (res, SyncStatus.SubmitFail); } //审核 + _logger.LogInformation($"盘点单->提交成功 开始审核 单号:{dto.BillNo}"); res = await _erpService.Audit(o_dto, formId); if (!res.IsSuccess) { @@ -207,6 +213,7 @@ namespace WMS.Web.Domain.Services //var del_res = await _erpService.Delete(o_dto, formId); //if (!del_res.IsSuccess) // _logger.LogError($"盘盈盘亏同步金蝶 单号:{dto.BillNo} 审核失败原因: {res.Message} 删单失败原因:{del_res.Message}"); + _logger.LogInformation($"盘点单->审核失败 单号:{dto.BillNo} 错误:{res.Message}"); return (res, SyncStatus.CheckFail); } _logger.LogInformation($"同步金蝶成功"); From 4e3926ff8964237a6ccf84ba2f6dc305e3b48aea Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 1 Dec 2023 16:55:34 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/Controllers/SysConfigController.cs | 2 +- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 7 ++++++- src/WMS.Web.Domain/Entitys/TakeStock.cs | 8 +++++++- src/WMS.Web.Domain/Services/TakeStockService.cs | 12 ++++++------ 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/WMS.Web.Api/Controllers/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs index fff21c7d..f4ae79fb 100644 --- a/src/WMS.Web.Api/Controllers/SysConfigController.cs +++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs @@ -210,7 +210,7 @@ namespace WMS.Web.Api.Controllers return Result>.ReFailure(ResultCodes.Token_Invalid_Error); List list = new List(); - if (!number.Substring(0, 2).Equals("HD") && !number.Substring(0, 2).Equals("JD")) + if (!number.Substring(0, 2).Equals("HD") && !number.Substring(0, 2).Equals("GD")) return Result>.ReSuccess(list); var subs = await _erpService.BillQueryForSubStock(number, orgCode); diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index bbf79165..7668dd6e 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -1630,6 +1630,11 @@ 备注 + + + 同步到金蝶后金蝶的单据Id + + 序列号 @@ -1641,7 +1646,7 @@ - + 同步金蝶结果 diff --git a/src/WMS.Web.Domain/Entitys/TakeStock.cs b/src/WMS.Web.Domain/Entitys/TakeStock.cs index 66eb5cc3..44e5008c 100644 --- a/src/WMS.Web.Domain/Entitys/TakeStock.cs +++ b/src/WMS.Web.Domain/Entitys/TakeStock.cs @@ -97,6 +97,11 @@ namespace WMS.Web.Domain.Entitys [Column("Remark")] public string Remark { get; set; } /// + /// 同步到金蝶后金蝶的单据Id + /// + [Column("ErpSyncId")] + public string ErpSyncId { get; set; } + /// /// 序列号 /// [Column("SerialNumbers")] @@ -115,10 +120,11 @@ namespace WMS.Web.Domain.Entitys /// /// /// - public void Sync(bool isSuccess, string remark, SyncStatus syncStatus) + public void Sync(bool isSuccess, string remark, SyncStatus syncStatus,string erpId) { this.SuccessSync = syncStatus; this.Remark = ""; + this.ErpSyncId = erpId; } /// /// 生成单据号 diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index af129b2d..efb499a5 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -161,7 +161,7 @@ namespace WMS.Web.Domain.Services FormIdParam type = entity.ResultType == TakeStockType.Loss ? FormIdParam.STK_StockCountLoss : FormIdParam.STK_StockCountGain; //操作金蝶 var resSync = await ErpOperate(dto, type); - entity.Sync(resSync.result.IsSuccess, resSync.result.Message, resSync.syncStatus); + entity.Sync(resSync.result.IsSuccess, resSync.result.Message, resSync.syncStatus, resSync.erpId); await _takeStockRepositories.Edit(entity, true); return res; } @@ -171,7 +171,7 @@ namespace WMS.Web.Domain.Services /// /// /// - private async Task<(Result result, SyncStatus syncStatus)> ErpOperate(ErpTakeStockSaveDto dto, FormIdParam type) + private async Task<(Result result, SyncStatus syncStatus,string erpId)> ErpOperate(ErpTakeStockSaveDto dto, FormIdParam type) { string formId = type.ToString(); _logger.LogInformation($"盘点单->开始同步金蝶 单号:{dto.BillNo} 数据: {JsonConvert.SerializeObject(dto)}"); @@ -179,7 +179,7 @@ namespace WMS.Web.Domain.Services if (!res_s.IsSuccess) { _logger.LogInformation($"盘点单->保存失败 单号:{dto.BillNo} 错误:{res_s.Message}"); - return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.Fail); + return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.Fail,""); } //提交 _logger.LogInformation($"盘点单->保存成功 开始提交 单号:{dto.BillNo}"); @@ -193,7 +193,7 @@ namespace WMS.Web.Domain.Services //if (!del_res.IsSuccess) // _logger.LogError($"盘盈盘亏同步金蝶 单号:{dto.BillNo} 提交失败原因: {res.Message} 删单失败原因:{del_res.Message}"); _logger.LogInformation($"盘点单->提交失败 单号:{dto.BillNo} 错误:{res.Message}"); - return (res, SyncStatus.SubmitFail); + return (res, SyncStatus.SubmitFail, o_dto.Ids); } //审核 _logger.LogInformation($"盘点单->提交成功 开始审核 单号:{dto.BillNo}"); @@ -214,10 +214,10 @@ namespace WMS.Web.Domain.Services //if (!del_res.IsSuccess) // _logger.LogError($"盘盈盘亏同步金蝶 单号:{dto.BillNo} 审核失败原因: {res.Message} 删单失败原因:{del_res.Message}"); _logger.LogInformation($"盘点单->审核失败 单号:{dto.BillNo} 错误:{res.Message}"); - return (res, SyncStatus.CheckFail); + return (res, SyncStatus.CheckFail, o_dto.Ids); } _logger.LogInformation($"同步金蝶成功"); - return (Result.ReSuccess(), SyncStatus.Success); + return (Result.ReSuccess(), SyncStatus.Success, o_dto.Ids); } } } From 165db0ead414f18edbafef5c57100f01d4206001 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 1 Dec 2023 17:08:38 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs | 26 +++++++++++++++++++ .../Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs | 2 +- .../Services/Public/ErpService.cs | 11 ++++---- .../Services/TakeStockService.cs | 6 +++-- 4 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs index 500f384d..107fe37a 100644 --- a/src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs @@ -20,4 +20,30 @@ namespace WMS.Web.Core.Dto.Erp [JsonProperty("FNumber")] public string Number { get; set; } } + + /// + /// 盘点子仓库 + /// + public class ErpSubStockDto + { + public ErpSubStockDto() { } + public ErpSubStockDto(string code) + { + if (code.Equals("GD")) + this.GD = new ErpNumberDto(code); + if (code.Equals("HD")) + this.HD = new ErpNumberDto(code); + } + /// + /// GD仓 + /// + [JsonProperty("FSTOCKLOCID__FF100005")] + public ErpNumberDto GD { get; set; } = new ErpNumberDto(""); + + /// + /// HD仓 + /// + [JsonProperty("FSTOCKLOCID__FF100007")] + public ErpNumberDto HD { get; set; } = new ErpNumberDto(""); + } } diff --git a/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs b/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs index d80ed522..2708f6c5 100644 --- a/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs @@ -108,7 +108,7 @@ namespace WMS.Web.Core.Dto.Erp.TakeStock /// 仓位ID /// [JsonProperty("FStockLocId")] - public string SubStockId { get; set; } + public ErpSubStockDto SubStockId { get; set; } /// /// 盘点前数量(wms系统数量) /// diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index f45859ef..65916b0d 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -803,7 +803,7 @@ namespace WMS.Web.Domain.Services.Public /// /// /// - public async Task> BillQueryForMaterial(int id) + public async Task> BillQueryForMaterial(int id) { //1.获取缓存中的物料数据; var cache_key = "erp_materials_list"; @@ -1276,8 +1276,9 @@ namespace WMS.Web.Domain.Services.Public list.Add(lis); } - //5.供应商集合进行缓存 - _memoryCache.Set(cache_key, list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(12))); + //5.供应商集合进行缓存 只有查询全部的时候才缓存 + if (code == null) + _memoryCache.Set(cache_key, list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromHours(12))); _logger.LogInformation($"子仓库拉取-总条数:{list.Count}"); return ResultList.ReSuccess(list); } @@ -1306,7 +1307,7 @@ namespace WMS.Web.Domain.Services.Public var token_result = await this.Init(); if (!token_result.IsSuccess) return Result.ReFailure(token_result.Message, token_result.Status); - var query = new ErpBillQueryDto(token_result.Data,formId); + var query = new ErpBillQueryDto(token_result.Data, formId); var param = new ErpSave(formId, dto); query.Data = JsonConvert.SerializeObject(param); //保存 @@ -1317,7 +1318,7 @@ namespace WMS.Web.Domain.Services.Public if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true") { //保存成功后返回Id 后续操作根据Id操作 - string id =jobject["Result"]["ResponseStatus"]["SuccessEntitys"][0]["Id"].ToString(); + string id = jobject["Result"]["ResponseStatus"]["SuccessEntitys"][0]["Id"].ToString(); return Result.ReSuccess(id); } diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index efb499a5..b48c1566 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -129,11 +129,13 @@ namespace WMS.Web.Domain.Services var materials = materials_result.Data.ToList(); var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, entity.MaterialId); var res = await _erpService.BillQueryForStock(); + var resSub = await _erpService.BillQueryForSubStock(); var stock = res.Data.FirstOrDefault(f => f.Code == entity.StockCode);//需要根据单点code搜索 - var subStock = res.Data.FirstOrDefault(f => f.Code == subStockCode);//需要根据单点code搜索 + var subStock = resSub.Data.FirstOrDefault(f => f.Code == subStockCode);//需要根据单点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(); detils.Add(new ErpTakeStockDetailsSaveDto() { @@ -142,7 +144,7 @@ namespace WMS.Web.Domain.Services MaterialId = new ErpNumberDto(_erpBasicDataExtendService.GetMaterialNumber(materials, entity.MaterialId)), UnitId = new ErpNumberDto(unitNumber), //物料带出来 StockId = new ErpNumberDto(stock.Code), - SubStockId = subStock?.Id.ToString(), + SubStockId =new ErpSubStockDto(resSub.Data.FirstOrDefault(f => f.Id == entity.Erp_SubStockId).Code), BeforeQty = entity.BeforeQty, AfterQty = entity.AfterQty, FinalQty = entity.FinalQty, From b5a729768c1922761e9c4810f6ad24e46935786d Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 1 Dec 2023 17:29:06 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/Controllers/TestController.cs | 2 +- src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 22 ++++++++++++++++++- src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs | 15 +++++++------ .../Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs | 7 +++++- .../Services/TakeStockService.cs | 11 +++++----- 5 files changed, 42 insertions(+), 15 deletions(-) diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index 6bd1d61c..fa221d85 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -53,7 +53,7 @@ namespace WMS.Web.Api.Controllers [Route("hj")] public async Task TestHJ() { - var entity=await _takeStockRepositories.GetEntityList(new List() {1 }); + var entity=await _takeStockRepositories.GetEntityList(new List() {2 }); var r= await _takeStockService.Loss_Profit(entity.First()); //var list = await GetList(); //var c = await _erpService.BillQueryForSubStock(null,null); diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 2314ea3a..e1b42902 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -725,6 +725,21 @@ 编码 + + + 盘点子仓库 + + + + + GD仓 + + + + + HD仓 + + erp 提交和审核 @@ -1152,7 +1167,12 @@ - 盘点后数量 + 盘盈数量 + + + + + 盘亏数量 diff --git a/src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs index 107fe37a..42e84e27 100644 --- a/src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/ErpNumberDto.cs @@ -8,10 +8,11 @@ namespace WMS.Web.Core.Dto.Erp /// /// 编码 /// - public class ErpNumberDto + public class ErpNumberDto { public ErpNumberDto() { } - public ErpNumberDto(string number) { + public ErpNumberDto(string number) + { this.Number = number; } /// @@ -27,12 +28,12 @@ namespace WMS.Web.Core.Dto.Erp public class ErpSubStockDto { public ErpSubStockDto() { } - public ErpSubStockDto(string code) + public ErpSubStockDto(string stockCode, string subCode) { - if (code.Equals("GD")) - this.GD = new ErpNumberDto(code); - if (code.Equals("HD")) - this.HD = new ErpNumberDto(code); + if (stockCode != null && stockCode.Equals("GD")) + this.GD = new ErpNumberDto(subCode ?? ""); + if (stockCode != null && stockCode.Equals("HD")) + this.HD = new ErpNumberDto(subCode ?? ""); } /// /// GD仓 diff --git a/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs b/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs index 2708f6c5..0019ee79 100644 --- a/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs @@ -120,11 +120,16 @@ namespace WMS.Web.Core.Dto.Erp.TakeStock [JsonProperty("FCountQty")] public decimal AfterQty { get; set; } /// - /// 盘点后数量 + /// 盘盈数量 /// [JsonProperty("FGainQty")] public decimal FinalQty { get; set; } /// + /// 盘亏数量 + /// + [JsonProperty("FLossQty")] + public decimal LossQty { get; set; } + /// /// 备注 /// [JsonProperty("Fnote")] diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index b48c1566..7ecf41e2 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -144,11 +144,12 @@ namespace WMS.Web.Domain.Services MaterialId = new ErpNumberDto(_erpBasicDataExtendService.GetMaterialNumber(materials, entity.MaterialId)), UnitId = new ErpNumberDto(unitNumber), //物料带出来 StockId = new ErpNumberDto(stock.Code), - SubStockId =new ErpSubStockDto(resSub.Data.FirstOrDefault(f => f.Id == entity.Erp_SubStockId).Code), + SubStockId = new ErpSubStockDto(stock.Code, resSub.Data.FirstOrDefault(f => f.Id == entity.Erp_SubStockId)?.Code), BeforeQty = entity.BeforeQty, AfterQty = entity.AfterQty, - FinalQty = entity.FinalQty, - Fnote = "" + FinalQty = entity.ResultType == TakeStockType.Profit ? entity.FinalQty : 0, + LossQty = entity.ResultType == TakeStockType.Loss ? entity.FinalQty : 0, + Fnote = entity.ResultType == TakeStockType.Loss ? "wms盘亏单同步" : "wms盘盈单同步" }); ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto() { @@ -173,7 +174,7 @@ namespace WMS.Web.Domain.Services /// /// /// - private async Task<(Result result, SyncStatus syncStatus,string erpId)> ErpOperate(ErpTakeStockSaveDto dto, FormIdParam type) + private async Task<(Result result, SyncStatus syncStatus, string erpId)> ErpOperate(ErpTakeStockSaveDto dto, FormIdParam type) { string formId = type.ToString(); _logger.LogInformation($"盘点单->开始同步金蝶 单号:{dto.BillNo} 数据: {JsonConvert.SerializeObject(dto)}"); @@ -181,7 +182,7 @@ namespace WMS.Web.Domain.Services if (!res_s.IsSuccess) { _logger.LogInformation($"盘点单->保存失败 单号:{dto.BillNo} 错误:{res_s.Message}"); - return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.Fail,""); + return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.Fail, ""); } //提交 _logger.LogInformation($"盘点单->保存成功 开始提交 单号:{dto.BillNo}"); From afe636029b1b3609ae92826b8a2dc0e7ef08f60f Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 1 Dec 2023 17:39:15 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/Controllers/TakeStockController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/WMS.Web.Api/Controllers/TakeStockController.cs b/src/WMS.Web.Api/Controllers/TakeStockController.cs index 0f5a264d..ed217328 100644 --- a/src/WMS.Web.Api/Controllers/TakeStockController.cs +++ b/src/WMS.Web.Api/Controllers/TakeStockController.cs @@ -102,7 +102,7 @@ namespace WMS.Web.Api.Controllers /// /// /// - [HttpGet] + [HttpPost] [Route("Sync")] public async Task Sync(OperateRequest dto) {