This commit is contained in:
tongfei
2023-11-10 17:07:06 +08:00
5 changed files with 71 additions and 65 deletions

View File

@@ -3229,13 +3229,6 @@
<param name="dto"></param> <param name="dto"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Domain.Services.TakeStockService.Profit(WMS.Web.Domain.Entitys.TakeStock)">
<summary>
作废
</summary>
<param name="entity"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.TakeStockService.Loss_Profit(WMS.Web.Domain.Entitys.TakeStock)"> <member name="M:WMS.Web.Domain.Services.TakeStockService.Loss_Profit(WMS.Web.Domain.Entitys.TakeStock)">
<summary> <summary>
盘盈盘亏同步金蝶 盘盈盘亏同步金蝶
@@ -3243,6 +3236,14 @@
<param name="entity"></param> <param name="entity"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Domain.Services.TakeStockService.ErpOperate(WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockSaveDto,System.String)">
<summary>
同步金蝶操作
</summary>
<param name="dto"></param>
<param name="formId"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.Values.BackRecordType"> <member name="T:WMS.Web.Domain.Values.BackRecordType">
<summary> <summary>
出入库回退类型 出入库回退类型

View File

@@ -19,10 +19,7 @@ namespace WMS.Web.Domain.IService
Task<Result> Save(List<SaveTakeStockRequest> dto, LoginInDto loginInfo); Task<Result> Save(List<SaveTakeStockRequest> dto, LoginInDto loginInfo);
// 同步金蝶 // 同步金蝶
Task<Result> Sync(OperateRequest dto); Task<Result> Sync(OperateRequest dto);
// //盘亏盘亏
//盘盈
Task<Result> Profit(TakeStock entity);
//盘亏
Task<Result> Loss_Profit(TakeStock entity); Task<Result> Loss_Profit(TakeStock entity);
} }
} }

View File

@@ -97,7 +97,7 @@ namespace WMS.Web.Domain.IService.Public
/// <returns></returns> /// <returns></returns>
Task<ResultList<ErpStockDto>> BillQueryForSubStock(string code=null); Task<ResultList<ErpStockDto>> BillQueryForSubStock(string code=null);
//同步数据(保存提交审核) //同步数据(保存提交审核)
Task<Result> Save<T>(T dto, string formId); Task<Result<string>> Save<T>(T dto, string formId);
//提交 //提交
Task<Result> Submit(ErpOperateDto dto, string formId); Task<Result> Submit(ErpOperateDto dto, string formId);
//审核 //审核

View File

@@ -767,13 +767,13 @@ namespace WMS.Web.Domain.Services.Public
/// <param name="dto"></param> /// <param name="dto"></param>
/// <param name="formId"></param> /// <param name="formId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<Result> Save<T>(T dto, string formId) public async Task<Result<string>> Save<T>(T dto, string formId)
{ {
try try
{ {
var token_result = await this.Init(); var token_result = await this.Init();
if (!token_result.IsSuccess) if (!token_result.IsSuccess)
return token_result; return Result<string>.ReFailure(token_result.Message,token_result.Status);
var query = new ErpBillQueryDto(token_result.Data); var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpSave<T>(formId, dto); var param = new ErpSave<T>(formId, dto);
query.Data = JsonConvert.SerializeObject(param); query.Data = JsonConvert.SerializeObject(param);
@@ -784,14 +784,18 @@ namespace WMS.Web.Domain.Services.Public
var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower(); 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(); {
//保存成功后返回Id 后续操作根据Id操作
string id = jobject["Result"]["ResponseStatus"]["SuccessEntitys"]["Id"].ToString();
return Result<string>.ReSuccess(id);
}
var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString(); var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString();
return Result.ReFailure(msg, 10002); return Result<string>.ReFailure(msg, 10002);
} }
catch (Exception) catch (Exception)
{ {
return Result.ReFailure("错误", 10002); return Result<string>.ReFailure("错误", 10002);
} }
} }
/// <summary> /// <summary>

View File

@@ -1,11 +1,13 @@
using AutoMapper; using AutoMapper;
using Microsoft.EntityFrameworkCore.Storage; using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.Extensions.Logging;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using WMS.Web.Core.Dto; using WMS.Web.Core.Dto;
using WMS.Web.Core.Dto.Erp;
using WMS.Web.Core.Dto.Erp.TakeStock; using WMS.Web.Core.Dto.Erp.TakeStock;
using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.Login;
using WMS.Web.Core.Dto.TakeStock; using WMS.Web.Core.Dto.TakeStock;
@@ -32,10 +34,11 @@ namespace WMS.Web.Domain.Services
private readonly ILoginRepositories _loginRepositories; private readonly ILoginRepositories _loginRepositories;
private readonly ISingleDataService _singleDataService; private readonly ISingleDataService _singleDataService;
private readonly IErpService _erpService; private readonly IErpService _erpService;
private readonly ILogger<TakeStockService> _logger;
public TakeStockService(IMapper mapper, ILoginService loginService, public TakeStockService(IMapper mapper, ILoginService loginService,
IBasicsRepositories transactionRepositories, IBasicsRepositories transactionRepositories,
ITakeStockRepositories takeStockRepositories, ILoginRepositories loginRepositories, ITakeStockRepositories takeStockRepositories, ILoginRepositories loginRepositories,
ISingleDataService singleDataService, IErpService erpService) ISingleDataService singleDataService, IErpService erpService, ILogger<TakeStockService> logger)
{ {
_mapper = mapper; _mapper = mapper;
_loginService = loginService; _loginService = loginService;
@@ -44,6 +47,7 @@ namespace WMS.Web.Domain.Services
_loginRepositories = loginRepositories; _loginRepositories = loginRepositories;
_singleDataService = singleDataService; _singleDataService = singleDataService;
_erpService = erpService; _erpService = erpService;
_logger = logger;
} }
/// <summary> /// <summary>
/// 保存 /// 保存
@@ -93,52 +97,6 @@ namespace WMS.Web.Domain.Services
return Result.ReSuccess(); return Result.ReSuccess();
} }
/// <summary> /// <summary>
/// 作废
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public async Task<Result> Profit(TakeStock entity)
{
//获取金蝶仓库仓位编码
//var stockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.StockCode);
var subStockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.SubStockId);
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);
//组装dto
#region dto
List<ErpTakeStockDetailsSaveDto> detils = new List<ErpTakeStockDetailsSaveDto>();
detils.Add(new ErpTakeStockDetailsSaveDto()
{
FOwnerid = stock.OrgId.ToString(),
FKeeperId = stock.OrgId.ToString(),
MaterialId = entity.MaterialId.ToString(),
UnitId = "",//物料带出来
StockId = stock.Id.ToString(),
SubStockId = subStock.Id.ToString(),
BeforeQty = entity.BeforeQty,
AfterQty = entity.AfterQty,
FinalQty = entity.FinalQty,
Fnote = ""
});
ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto()
{
BillNo = entity.BillNo,
StockOrgId = stock.OrgId.ToString(),
Type = "PY01_SYS",
Date = entity.Date,
Details = detils
};
#endregion
var resSync = await _erpService.Save<ErpTakeStockSaveDto>(dto, FormIdParam.STK_StockCountGain.ToString());
entity.Sync(resSync.IsSuccess, resSync.Message);
await _takeStockRepositories.Edit(entity, true);
return res;
}
/// <summary>
/// 盘盈盘亏同步金蝶 /// 盘盈盘亏同步金蝶
/// </summary> /// </summary>
/// <param name="entity"></param> /// <param name="entity"></param>
@@ -180,10 +138,56 @@ namespace WMS.Web.Domain.Services
#endregion #endregion
//判断盘盈盘亏 //判断盘盈盘亏
string formId = entity.ResultType == TakeStockType.Loss ? FormIdParam.STK_StockCountLoss.ToString() : FormIdParam.STK_StockCountGain.ToString(); string formId = entity.ResultType == TakeStockType.Loss ? FormIdParam.STK_StockCountLoss.ToString() : FormIdParam.STK_StockCountGain.ToString();
var resSync = await _erpService.Save<ErpTakeStockSaveDto>(dto, formId); //操作金蝶
var resSync = await ErpOperate(dto, formId);
entity.Sync(resSync.IsSuccess, resSync.Message); entity.Sync(resSync.IsSuccess, resSync.Message);
await _takeStockRepositories.Edit(entity, true); await _takeStockRepositories.Edit(entity, true);
return res; return res;
} }
/// <summary>
/// 同步金蝶操作
/// </summary>
/// <param name="dto"></param>
/// <param name="formId"></param>
/// <returns></returns>
private async Task<Result> ErpOperate(ErpTakeStockSaveDto dto, string formId)
{
var res_s = await _erpService.Save<ErpTakeStockSaveDto>(dto, formId);
if (!res_s.IsSuccess)
return Result.ReFailure(res_s.Message,res_s.Status);
//提交
ErpOperateDto o_dto = new ErpOperateDto(formId, res_s.Data);
var res = await _erpService.Submit(o_dto, formId);
if (!res.IsSuccess)
{
//如果提交失败
//1.则调删单接口
var del_res = await _erpService.Delete(o_dto, formId);
if (!del_res.IsSuccess)
_logger.LogError($"盘盈盘亏同步金蝶 单号:{dto.BillNo} 提交失败原因: {res.Message} 删单失败原因:{del_res.Message}");
return res;
}
//审核
res = await _erpService.Audit(o_dto, formId);
if (!res.IsSuccess)
{
//如果审核失败
//1.调反审核接口
//2.调删除接口
var noAudit_res = await _erpService.NoAudit(o_dto, formId);
if (!noAudit_res.IsSuccess)
{
_logger.LogError($"盘盈盘亏同步金蝶 单号:{dto.BillNo} 审核失败原因: {res.Message} 反审核失败原因:{noAudit_res.Message}");
return res;
}
var del_res = await _erpService.Delete(o_dto, formId);
if (!del_res.IsSuccess)
_logger.LogError($"盘盈盘亏同步金蝶 单号:{dto.BillNo} 审核失败原因: {res.Message} 删单失败原因:{del_res.Message}");
return res;
}
return Result.ReSuccess();
}
} }
} }