盘点单对接金蝶

This commit is contained in:
18942506660
2023-12-01 16:26:01 +08:00
parent c501aa2f8c
commit c8df7c91f2
12 changed files with 156 additions and 44 deletions

View File

@@ -30,9 +30,12 @@ namespace WMS.Web.Api.Controllers
private readonly IOutStockTaskRepositories _outStockTaskRepositories; private readonly IOutStockTaskRepositories _outStockTaskRepositories;
private readonly IOutStockTaskService _outStockTaskService; private readonly IOutStockTaskService _outStockTaskService;
private readonly IBoxInventoryRepositories _boxInventoryRepositories; private readonly IBoxInventoryRepositories _boxInventoryRepositories;
private readonly ITakeStockService _takeStockService;
private readonly ITakeStockRepositories _takeStockRepositories;
public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories, public TestController(IErpService erpService, IInStockTaskService inStockTaskService, IBoxInventoryRepositories boxInventoryRepositories,
IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService,
IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService) IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService,
ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories)
{ {
_boxInventoryRepositories = boxInventoryRepositories; _boxInventoryRepositories = boxInventoryRepositories;
this._erpService = erpService; this._erpService = erpService;
@@ -42,14 +45,16 @@ namespace WMS.Web.Api.Controllers
_boxService = boxService; _boxService = boxService;
_outStockTaskRepositories = outStockTaskRepositories; _outStockTaskRepositories = outStockTaskRepositories;
_outStockTaskService = outStockTaskService; _outStockTaskService = outStockTaskService;
_takeStockService = takeStockService;
_takeStockRepositories = takeStockRepositories;
} }
[HttpGet] [HttpGet]
[Route("hj")] [Route("hj")]
public async Task<string> TestHJ() public async Task<string> TestHJ()
{ {
var entity=await _takeStockRepositories.GetEntityList(new List<int>() {1 });
var r= await _takeStockService.Loss_Profit(entity.First());
//var list = await GetList(); //var list = await GetList();
//var c = await _erpService.BillQueryForSubStock(null,null); //var c = await _erpService.BillQueryForSubStock(null,null);
//var bc2 = await _erpService.BillQueryForDeliveryNoticeOutStock(new List<string>() { "FHTZD8022232" }, DateTime.Now.AddDays(-10)); //var bc2 = await _erpService.BillQueryForDeliveryNoticeOutStock(new List<string>() { "FHTZD8022232" }, DateTime.Now.AddDays(-10));

View File

@@ -590,6 +590,11 @@
参数 参数
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpBillQueryDto.FormId">
<summary>
参数(保存提交审核formId在外层)
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.Erp.ErpBillQueryParamDto"> <member name="T:WMS.Web.Core.Dto.Erp.ErpBillQueryParamDto">
<summary> <summary>
ERP单据查询-参数-dto ERP单据查询-参数-dto
@@ -710,6 +715,16 @@
单据类型 单据类型
</summary> </summary>
</member> </member>
<member name="T:WMS.Web.Core.Dto.Erp.ErpNumberDto">
<summary>
编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpNumberDto.Number">
<summary>
编码
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.Erp.ErpOperateDto"> <member name="T:WMS.Web.Core.Dto.Erp.ErpOperateDto">
<summary> <summary>
erp 提交和审核 erp 提交和审核
@@ -800,6 +815,11 @@
基本单位名称 基本单位名称
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpMaterialDto.BaseUnitNumber">
<summary>
基本单位编码
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.Erp.Org.ErpOrgDto"> <member name="T:WMS.Web.Core.Dto.Erp.Org.ErpOrgDto">
<summary> <summary>
金蝶组织-基本信息 金蝶组织-基本信息
@@ -1015,6 +1035,11 @@
业务组织(使用组织) 业务组织(使用组织)
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.Erp.ErpStockDto.OrgCode">
<summary>
业务组织(使用组织)编码
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.Erp.Supplier.ErpSupplierDto"> <member name="T:WMS.Web.Core.Dto.Erp.Supplier.ErpSupplierDto">
<summary> <summary>
erp供应商基础数据 erp供应商基础数据

View File

@@ -2598,6 +2598,14 @@
<param name="materialId"></param> <param name="materialId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Domain.IService.Public.IErpBasicDataExtendService.GetMaterialUnitNumber(System.Collections.Generic.List{WMS.Web.Core.Dto.Erp.ErpMaterialDto},System.Int32)">
<summary>
获取物料基本单位编码
</summary>
<param name="erpMaterials"></param>
<param name="materialId"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IErpBasicDataExtendService.GetOrgName(System.Collections.Generic.List{WMS.Web.Core.Dto.Erp.Org.ErpOrgDto},System.Int32)"> <member name="M:WMS.Web.Domain.IService.Public.IErpBasicDataExtendService.GetOrgName(System.Collections.Generic.List{WMS.Web.Core.Dto.Erp.Org.ErpOrgDto},System.Int32)">
<summary> <summary>
获取组织名称 获取组织名称
@@ -3925,6 +3933,14 @@
<param name="materialId"></param> <param name="materialId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Domain.Services.Public.ErpBasicDataExtendService.GetMaterialUnitNumber(System.Collections.Generic.List{WMS.Web.Core.Dto.Erp.ErpMaterialDto},System.Int32)">
<summary>
获取物料基本单位编码
</summary>
<param name="erpMaterials"></param>
<param name="materialId"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.Public.ErpBasicDataExtendService.GetOrgName(System.Collections.Generic.List{WMS.Web.Core.Dto.Erp.Org.ErpOrgDto},System.Int32)"> <member name="M:WMS.Web.Domain.Services.Public.ErpBasicDataExtendService.GetOrgName(System.Collections.Generic.List{WMS.Web.Core.Dto.Erp.Org.ErpOrgDto},System.Int32)">
<summary> <summary>
获取组织名称 获取组织名称

View File

@@ -16,6 +16,11 @@ namespace WMS.Web.Core.Dto.Erp
{ {
this.AccessToken = accessToken; this.AccessToken = accessToken;
} }
public ErpBillQueryDto(string accessToken,string formid)
{
this.AccessToken = accessToken;
this.FormId = formid;
}
/// <summary> /// <summary>
/// 令牌 /// 令牌
/// </summary> /// </summary>
@@ -26,5 +31,10 @@ namespace WMS.Web.Core.Dto.Erp
/// </summary> /// </summary>
[JsonProperty(PropertyName = "data")] [JsonProperty(PropertyName = "data")]
public string Data { get; set; } public string Data { get; set; }
/// <summary>
/// 参数(保存提交审核formId在外层)
/// </summary>
[JsonProperty(PropertyName = "formid")]
public string FormId { get; set; }
} }
} }

View File

@@ -0,0 +1,23 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto.Erp
{
/// <summary>
/// 编码
/// </summary>
public class ErpNumberDto
{
public ErpNumberDto() { }
public ErpNumberDto(string number) {
this.Number = number;
}
/// <summary>
/// 编码
/// </summary>
[JsonProperty("FNumber")]
public string Number { get; set; }
}
}

View File

@@ -36,5 +36,9 @@ namespace WMS.Web.Core.Dto.Erp
/// 基本单位名称 /// 基本单位名称
/// </summary> /// </summary>
public string BaseUnitName { get; set; } public string BaseUnitName { get; set; }
/// <summary>
/// 基本单位编码
/// </summary>
public string BaseUnitNumber { get; set; }
} }
} }

View File

@@ -25,5 +25,9 @@ namespace WMS.Web.Core.Dto.Erp
/// 业务组织(使用组织) /// 业务组织(使用组织)
/// </summary> /// </summary>
public int OrgId { get; set; } public int OrgId { get; set; }
/// <summary>
/// 业务组织(使用组织)编码
/// </summary>
public string OrgCode { get; set; }
} }
} }

View File

@@ -35,16 +35,16 @@ namespace WMS.Web.Core.Dto.Erp.TakeStock
/// 单据类型(标准盘亏单; 标准盘盈单 PY01_SYS) 盘亏 PK01_SYS /// 单据类型(标准盘亏单; 标准盘盈单 PY01_SYS) 盘亏 PK01_SYS
/// </summary> /// </summary>
[JsonProperty("FBillTypeID")] [JsonProperty("FBillTypeID")]
public string Type { get; set; } public ErpNumberDto Type { get; set; }
/// <summary> /// <summary>
/// 库存组织 (取仓库对应的库存组织) /// 库存组织 (取仓库对应的库存组织)
/// </summary> /// </summary>
[JsonProperty("FStockOrgId")] [JsonProperty("FStockOrgId")]
public string StockOrgId { get; set; } public ErpNumberDto StockOrgId { get; set; }
/// <summary> /// <summary>
/// 货主类型: 默认为业务组织 BD_OwnerOrg /// 货主类型: 默认为业务组织 BD_OwnerOrg
/// </summary> /// </summary>
[JsonProperty("FBillTypeID")] [JsonProperty("FOwnerTypeIdHead")]
public string FOwnerTypeIdHead { get; set; } = "BD_OwnerOrg"; public string FOwnerTypeIdHead { get; set; } = "BD_OwnerOrg";
/// <summary> /// <summary>
/// 单据编号 /// 单据编号
@@ -68,7 +68,7 @@ namespace WMS.Web.Core.Dto.Erp.TakeStock
/// 库存状态 KCZT001 /// 库存状态 KCZT001
/// </summary> /// </summary>
[JsonProperty("FStockStatusId")] [JsonProperty("FStockStatusId")]
public string FStockStatusId { get; set; } = "KCZT001"; public ErpNumberDto FStockStatusId { get; set; } = new ErpNumberDto("KCZT001");
/// <summary> /// <summary>
/// 货主类型: 默认为业务组织 BD_OwnerOrg /// 货主类型: 默认为业务组织 BD_OwnerOrg
/// </summary> /// </summary>
@@ -78,7 +78,7 @@ namespace WMS.Web.Core.Dto.Erp.TakeStock
/// 取仓库对应的货主信息 货主: 等于库存组织 /// 取仓库对应的货主信息 货主: 等于库存组织
/// </summary> /// </summary>
[JsonProperty("FOwnerid")] [JsonProperty("FOwnerid")]
public string FOwnerid { get; set; } public ErpNumberDto FOwnerid { get; set; }
/// <summary> /// <summary>
/// 保管者类型 /// 保管者类型
/// </summary> /// </summary>
@@ -88,22 +88,22 @@ namespace WMS.Web.Core.Dto.Erp.TakeStock
/// 保管者 仓库”库存组织” /// 保管者 仓库”库存组织”
/// </summary> /// </summary>
[JsonProperty("FKeeperId")] [JsonProperty("FKeeperId")]
public string FKeeperId { get; set; } public ErpNumberDto FKeeperId { get; set; }
/// <summary> /// <summary>
/// 物料ID /// 物料ID
/// </summary> /// </summary>
[JsonProperty("FMaterialId")] [JsonProperty("FMaterialId")]
public string MaterialId { get; set; } public ErpNumberDto MaterialId { get; set; }
/// <summary> /// <summary>
/// 单位ID /// 单位ID
/// </summary> /// </summary>
[JsonProperty("FUnitID")] [JsonProperty("FUnitID")]
public string UnitId { get; set; } public ErpNumberDto UnitId { get; set; }
/// <summary> /// <summary>
/// 仓库ID /// 仓库ID
/// </summary> /// </summary>
[JsonProperty("FStockId")] [JsonProperty("FStockId")]
public string StockId { get; set; } public ErpNumberDto StockId { get; set; }
/// <summary> /// <summary>
/// 仓位ID /// 仓位ID
/// </summary> /// </summary>

View File

@@ -51,6 +51,13 @@ namespace WMS.Web.Domain.IService.Public
/// <returns></returns> /// <returns></returns>
int GetMaterialUnitId(List<ErpMaterialDto> erpMaterials, int materialId); int GetMaterialUnitId(List<ErpMaterialDto> erpMaterials, int materialId);
/// <summary> /// <summary>
/// 获取物料基本单位编码
/// </summary>
/// <param name="erpMaterials"></param>
/// <param name="materialId"></param>
/// <returns></returns>
string GetMaterialUnitNumber(List<ErpMaterialDto> erpMaterials, int materialId);
/// <summary>
/// 获取组织名称 /// 获取组织名称
/// </summary> /// </summary>
/// <param name="erpOrgs"></param> /// <param name="erpOrgs"></param>

View File

@@ -125,6 +125,24 @@ namespace WMS.Web.Domain.Services.Public
} }
return mat.BaseUnitId; return mat.BaseUnitId;
} }
/// <summary>
/// 获取物料基本单位编码
/// </summary>
/// <param name="erpMaterials"></param>
/// <param name="materialId"></param>
/// <returns></returns>
public string GetMaterialUnitNumber(List<ErpMaterialDto> 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;
}
/// <summary> /// <summary>
/// 获取组织名称 /// 获取组织名称

View File

@@ -845,7 +845,7 @@ namespace WMS.Web.Domain.Services.Public
//3.获取金蝶物料:拼接参数和条件 //3.获取金蝶物料:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data); var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.BD_MATERIAL.ToString()); 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; param.Limit = 10000;
//查询条件:备注其中的条件值以金蝶的值为准!!! //查询条件:备注其中的条件值以金蝶的值为准!!!
@@ -885,6 +885,7 @@ namespace WMS.Web.Domain.Services.Public
lis.Specifications = item[3]; lis.Specifications = item[3];
lis.BaseUnitId = Convert.ToInt32(item[4]); lis.BaseUnitId = Convert.ToInt32(item[4]);
lis.BaseUnitName = item[5]; lis.BaseUnitName = item[5];
lis.BaseUnitNumber = item[6];
erp_materials_list.Add(lis); erp_materials_list.Add(lis);
} }
//4.6页面的叠加 //4.6页面的叠加
@@ -913,7 +914,7 @@ namespace WMS.Web.Domain.Services.Public
//3.获取金蝶物料:拼接参数和条件 //3.获取金蝶物料:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data); var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.BD_MATERIAL.ToString()); 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; param.Limit = 10000;
//查询条件:备注其中的条件值以金蝶的值为准!!! //查询条件:备注其中的条件值以金蝶的值为准!!!
@@ -947,6 +948,7 @@ namespace WMS.Web.Domain.Services.Public
lis.Specifications = item[3]; lis.Specifications = item[3];
lis.BaseUnitId = Convert.ToInt32(item[4]); lis.BaseUnitId = Convert.ToInt32(item[4]);
lis.BaseUnitName = item[5]; lis.BaseUnitName = item[5];
lis.BaseUnitNumber = item[6];
erp_materials_list.Add(lis); erp_materials_list.Add(lis);
} }
if (erp_materials_list.Count == 0) if (erp_materials_list.Count == 0)
@@ -1191,7 +1193,7 @@ namespace WMS.Web.Domain.Services.Public
//3.获取金蝶仓库:拼接参数和条件 //3.获取金蝶仓库:拼接参数和条件
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 = "FStockId,FName,FNumber,FUseOrgId"; param.FieldKeys = "FStockId,FName,FNumber,FUseOrgId,FUseOrgId.FNumber";
param.Limit = 10000; param.Limit = 10000;
//查询条件:备注其中的条件值以金蝶的值为准!!! //查询条件:备注其中的条件值以金蝶的值为准!!!
param.FilterString = ""; param.FilterString = "";
@@ -1213,6 +1215,7 @@ namespace WMS.Web.Domain.Services.Public
lis.Name = item[1]; lis.Name = item[1];
lis.Code = item[2]; lis.Code = item[2];
lis.OrgId = Convert.ToInt32(item[3]); lis.OrgId = Convert.ToInt32(item[3]);
lis.OrgCode = item[4];
list.Add(lis); list.Add(lis);
} }
@@ -1303,23 +1306,22 @@ namespace WMS.Web.Domain.Services.Public
var token_result = await this.Init(); var token_result = await this.Init();
if (!token_result.IsSuccess) if (!token_result.IsSuccess)
return Result<string>.ReFailure(token_result.Message, token_result.Status); return Result<string>.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<T>(formId, dto); var param = new ErpSave<T>(formId, dto);
query.Data = JsonConvert.SerializeObject(param); query.Data = JsonConvert.SerializeObject(param);
//保存 //保存
var result_json = await _client.SaveAsync(JsonConvert.SerializeObject(query)); var result_json = await _client.SaveAsync(JsonConvert.SerializeObject(query));
JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json); JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json);
var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower();
if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true") if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true")
{ {
//保存成功后返回Id 后续操作根据Id操作 //保存成功后返回Id 后续操作根据Id操作
string id = jobject["Result"]["ResponseStatus"]["SuccessEntitys"]["Id"].ToString(); string id =jobject["Result"]["ResponseStatus"]["SuccessEntitys"][0]["Id"].ToString();
return Result<string>.ReSuccess(id); return Result<string>.ReSuccess(id);
} }
var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString(); var msg = jobject["Result"]["ResponseStatus"]["Errors"][0]["Message"].ToString();
return Result<string>.ReFailure(msg, 10002); return Result<string>.ReFailure(msg, 10002);
} }
catch (Exception ex) catch (Exception ex)
@@ -1340,18 +1342,17 @@ namespace WMS.Web.Domain.Services.Public
var token_result = await this.Init(); var token_result = await this.Init();
if (!token_result.IsSuccess) if (!token_result.IsSuccess)
return token_result; return token_result;
var query = new ErpBillQueryDto(token_result.Data); var query = new ErpBillQueryDto(token_result.Data, formId);
//提交 //提交
query.Data = JsonConvert.SerializeObject(dto); query.Data = JsonConvert.SerializeObject(dto);
var result_json = await _client.SubmitAsync(JsonConvert.SerializeObject(query)); var result_json = await _client.SubmitAsync(JsonConvert.SerializeObject(query));
JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json); JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json);
var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower();
if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true") if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true")
return Result.ReSuccess(); 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); return Result.ReFailure(msg, 10002);
} }
catch (Exception ex) catch (Exception ex)
@@ -1372,18 +1373,17 @@ namespace WMS.Web.Domain.Services.Public
var token_result = await this.Init(); var token_result = await this.Init();
if (!token_result.IsSuccess) if (!token_result.IsSuccess)
return token_result; return token_result;
var query = new ErpBillQueryDto(token_result.Data); var query = new ErpBillQueryDto(token_result.Data, formId);
//提交 //提交
query.Data = JsonConvert.SerializeObject(dto); query.Data = JsonConvert.SerializeObject(dto);
var result_json = await _client.AuditAsync(JsonConvert.SerializeObject(query)); var result_json = await _client.AuditAsync(JsonConvert.SerializeObject(query));
JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json); JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json);
var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower();
if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true") if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true")
return Result.ReSuccess(); 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); return Result.ReFailure(msg, 10002);
} }
catch (Exception ex) catch (Exception ex)

View File

@@ -76,13 +76,13 @@ namespace WMS.Web.Domain.Services
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
Result res_Rollback = Result.ReSuccess(); Result res_Rollback = Result.ReSuccess();
bool isSuccess = true; bool isSuccess = true;
if (res_Rollback.IsSuccess) if (res_Rollback.IsSuccess)
{ {
isSuccess = await _takeStockRepositories.AddRange(list, false); isSuccess = await _takeStockRepositories.AddRange(list, false);
if (!isSuccess) res_Rollback = Result.ReFailure(ResultCodes.DateWriteError); if (!isSuccess) res_Rollback = Result.ReFailure(ResultCodes.DateWriteError);
} }
if(res_Rollback.IsSuccess) if (res_Rollback.IsSuccess)
{ {
var res_Inventory = await _boxInventoryService.GenerateTakeBox(list, false); var res_Inventory = await _boxInventoryService.GenerateTakeBox(list, false);
if (!res_Inventory.IsSuccess) res_Rollback = res_Inventory; 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 subStockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.SubStockId);
var materials_result = await _erpService.BillQueryForMaterial(); var materials_result = await _erpService.BillQueryForMaterial();
var materials = materials_result.Data.ToList(); 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 res = await _erpService.BillQueryForStock();
var stock = res.Data.FirstOrDefault(f => f.Code == entity.StockCode);//需要根据单点code搜索 var stock = res.Data.FirstOrDefault(f => f.Code == entity.StockCode);//需要根据单点code搜索
var subStock = res.Data.FirstOrDefault(f => f.Code == subStockCode);//需要根据单点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 //组装dto
#region dto #region dto
List<ErpTakeStockDetailsSaveDto> detils = new List<ErpTakeStockDetailsSaveDto>(); List<ErpTakeStockDetailsSaveDto> detils = new List<ErpTakeStockDetailsSaveDto>();
detils.Add(new ErpTakeStockDetailsSaveDto() detils.Add(new ErpTakeStockDetailsSaveDto()
{ {
FOwnerid = stock.OrgId.ToString(), FOwnerid = new ErpNumberDto(stock.OrgCode.ToString()),
FKeeperId = stock.OrgId.ToString(), FKeeperId = new ErpNumberDto(stock.OrgCode.ToString()),
MaterialId = entity.MaterialId.ToString(), MaterialId = new ErpNumberDto(_erpBasicDataExtendService.GetMaterialNumber(materials, entity.MaterialId)),
UnitId = unitId.ToString(), //物料带出来 UnitId = new ErpNumberDto(unitNumber), //物料带出来
StockId = stock.Id.ToString(), StockId = new ErpNumberDto(stock.Code),
SubStockId = subStock.Id.ToString(), SubStockId = subStock?.Id.ToString(),
BeforeQty = entity.BeforeQty, BeforeQty = entity.BeforeQty,
AfterQty = entity.AfterQty, AfterQty = entity.AfterQty,
FinalQty = entity.FinalQty, FinalQty = entity.FinalQty,
@@ -151,8 +151,8 @@ namespace WMS.Web.Domain.Services
ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto() ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto()
{ {
BillNo = entity.BillNo, BillNo = entity.BillNo,
StockOrgId = stock.OrgId.ToString(), StockOrgId = new ErpNumberDto(stock.OrgCode),
Type = 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
}; };
@@ -161,7 +161,7 @@ namespace WMS.Web.Domain.Services
FormIdParam type = entity.ResultType == TakeStockType.Loss ? FormIdParam.STK_StockCountLoss : FormIdParam.STK_StockCountGain; FormIdParam type = entity.ResultType == TakeStockType.Loss ? FormIdParam.STK_StockCountLoss : FormIdParam.STK_StockCountGain;
//操作金蝶 //操作金蝶
var resSync = await ErpOperate(dto, type); 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); await _takeStockRepositories.Edit(entity, true);
return res; return res;
} }
@@ -171,15 +171,15 @@ namespace WMS.Web.Domain.Services
/// <param name="dto"></param> /// <param name="dto"></param>
/// <param name="type"></param> /// <param name="type"></param>
/// <returns></returns> /// <returns></returns>
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(); string formId = type.ToString();
_logger.LogInformation($"开始同步金蝶 单号:{dto.BillNo} 数据: {JsonConvert.SerializeObject(dto)}"); _logger.LogInformation($"开始同步金蝶 单号:{dto.BillNo} 数据: {JsonConvert.SerializeObject(dto)}");
var res_s = await _erpService.Save<ErpTakeStockSaveDto>(dto, formId); //var res_s = await _erpService.Save<ErpTakeStockSaveDto>(dto, formId);
if (!res_s.IsSuccess) //if (!res_s.IsSuccess)
return (Result.ReFailure(res_s.Message, res_s.Status), SyncStatus.Fail); // 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); var res = await _erpService.Submit(o_dto, formId);
if (!res.IsSuccess) if (!res.IsSuccess)
{ {
@@ -210,7 +210,7 @@ namespace WMS.Web.Domain.Services
return (res, SyncStatus.PortionSuccess); return (res, SyncStatus.PortionSuccess);
} }
_logger.LogInformation($"同步金蝶成功"); _logger.LogInformation($"同步金蝶成功");
return (Result.ReSuccess(),SyncStatus.Success); return (Result.ReSuccess(), SyncStatus.Success);
} }
} }
} }