盘盈盘亏同步
This commit is contained in:
@@ -96,6 +96,24 @@ namespace WMS.Web.Domain.Entitys
|
|||||||
this.Date = DateTime.Now;
|
this.Date = DateTime.Now;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 同步金蝶结果
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="isSuccess"></param>
|
||||||
|
/// <param name="remark"></param>
|
||||||
|
public void Sync(bool isSuccess,string remark)
|
||||||
|
{
|
||||||
|
if (isSuccess)
|
||||||
|
{
|
||||||
|
this.SuccessSync = true;
|
||||||
|
this.Remark = "";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
this.SuccessSync = false;
|
||||||
|
this.Remark = remark;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
/// 生成单据号
|
/// 生成单据号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void GenerateNo()
|
public void GenerateNo()
|
||||||
|
|||||||
@@ -23,6 +23,6 @@ namespace WMS.Web.Domain.IService
|
|||||||
//盘盈
|
//盘盈
|
||||||
Task<Result> Profit(TakeStock entity);
|
Task<Result> Profit(TakeStock entity);
|
||||||
//盘亏
|
//盘亏
|
||||||
Task<Result> Loss(TakeStock entity);
|
Task<Result> Loss_Profit(TakeStock entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,18 @@ namespace WMS.Web.Domain.Infrastructure
|
|||||||
{
|
{
|
||||||
// 新增
|
// 新增
|
||||||
Task<TakeStock> Add(TakeStock entity, bool isTransaction = true);
|
Task<TakeStock> Add(TakeStock entity, bool isTransaction = true);
|
||||||
|
/// <summary>
|
||||||
|
/// 批量添加
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="entitys"></param>
|
||||||
|
/// <param name="isTransaction"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<bool> AddRange(List<TakeStock> entitys, bool isTransaction = true);
|
||||||
|
//编辑
|
||||||
|
Task<TakeStock> Edit(TakeStock entity, bool isTransaction = true);
|
||||||
// 获取列表
|
// 获取列表
|
||||||
Task<(List<TakeStockQueryInfoResponse> list, int total)> GetListAsync(TakeStockQueryRequest dto);
|
Task<(List<TakeStockQueryInfoResponse> list, int total)> GetListAsync(TakeStockQueryRequest dto);
|
||||||
|
/// 查询实体集合
|
||||||
|
Task<List<TakeStock>> GetEntityList(List<int> ids);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ namespace WMS.Web.Domain.Mappers
|
|||||||
{
|
{
|
||||||
CreateMap<SaveTakeStockRequest, TakeStockDetails>()
|
CreateMap<SaveTakeStockRequest, TakeStockDetails>()
|
||||||
.ForMember(x => x.ResultType, ops => ops.MapFrom(x => (x.AfterQty - x.BeforeQty) >0? TakeStockType.Profit: TakeStockType.Loss));
|
.ForMember(x => x.ResultType, ops => ops.MapFrom(x => (x.AfterQty - x.BeforeQty) >0? TakeStockType.Profit: TakeStockType.Loss));
|
||||||
|
CreateMap<SaveTakeStockRequest, TakeStock>()
|
||||||
|
.ForMember(x => x.ResultType, ops => ops.MapFrom(x => (x.AfterQty - x.BeforeQty) > 0 ? TakeStockType.Profit : TakeStockType.Loss));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,8 +53,8 @@ namespace WMS.Web.Domain.Services
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<Result> Save(List<SaveTakeStockRequest> dto, LoginInDto loginInfo)
|
public async Task<Result> Save(List<SaveTakeStockRequest> dto, LoginInDto loginInfo)
|
||||||
{
|
{
|
||||||
TakeStock entity = new TakeStock();
|
List<TakeStock> list = _mapper.Map<List<TakeStock>>(dto);
|
||||||
//entity.Details = _mapper.Map<List<TakeStockDetails>>(dto);
|
foreach (var entity in list)
|
||||||
entity.Create(loginInfo.UserInfo.StaffId);
|
entity.Create(loginInfo.UserInfo.StaffId);
|
||||||
|
|
||||||
//需要填写序列号
|
//需要填写序列号
|
||||||
@@ -63,14 +63,18 @@ namespace WMS.Web.Domain.Services
|
|||||||
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
|
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
|
||||||
bool isRollback = false;
|
bool isRollback = false;
|
||||||
bool isSuccess = true;
|
bool isSuccess = true;
|
||||||
entity = await _takeStockRepositories.Add(entity, false);
|
isSuccess = await _takeStockRepositories.AddRange(list, false);
|
||||||
if (entity == null) isRollback = true;
|
if (!isSuccess) isRollback = true;
|
||||||
|
|
||||||
//提交事务
|
//提交事务
|
||||||
isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
|
isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
|
||||||
if (!isSuccess)
|
if (!isSuccess)
|
||||||
return Result.ReFailure(ResultCodes.DateWriteError);
|
return Result.ReFailure(ResultCodes.DateWriteError);
|
||||||
|
|
||||||
|
//同步金蝶
|
||||||
|
foreach (var entity in list)
|
||||||
|
await Loss_Profit(entity);
|
||||||
|
|
||||||
return Result.ReSuccess();
|
return Result.ReSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,12 +83,17 @@ namespace WMS.Web.Domain.Services
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="dto"></param>
|
/// <param name="dto"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task<Result> Sync(OperateRequest dto)
|
public async Task<Result> Sync(OperateRequest dto)
|
||||||
{
|
{
|
||||||
return Task.FromResult(Result.ReSuccess());
|
var list = await _takeStockRepositories.GetEntityList(dto.Ids);
|
||||||
|
list = list.Where(w => w.SuccessSync == false).ToList();
|
||||||
|
foreach (var entity in list)
|
||||||
|
await Loss_Profit(entity);
|
||||||
|
|
||||||
|
return Result.ReSuccess();
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 盘盈
|
/// 作废
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="entity"></param>
|
/// <param name="entity"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
@@ -113,7 +122,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
AfterQty = entity.AfterQty,
|
AfterQty = entity.AfterQty,
|
||||||
FinalQty = entity.FinalQty,
|
FinalQty = entity.FinalQty,
|
||||||
Fnote = ""
|
Fnote = ""
|
||||||
}) ;
|
});
|
||||||
ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto()
|
ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto()
|
||||||
{
|
{
|
||||||
BillNo = entity.BillNo,
|
BillNo = entity.BillNo,
|
||||||
@@ -124,14 +133,17 @@ namespace WMS.Web.Domain.Services
|
|||||||
};
|
};
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
return await _erpService.Sync<ErpTakeStockSaveDto>(dto, FormIdParam.STK_StockCountGain.ToString());
|
var resSync = await _erpService.Sync<ErpTakeStockSaveDto>(dto, FormIdParam.STK_StockCountGain.ToString());
|
||||||
|
entity.Sync(resSync.IsSuccess, resSync.Message);
|
||||||
|
await _takeStockRepositories.Edit(entity, true);
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 盘亏
|
/// 盘盈盘亏同步金蝶
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="entity"></param>
|
/// <param name="entity"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<Result> Loss(TakeStock entity)
|
public async Task<Result> Loss_Profit(TakeStock entity)
|
||||||
{
|
{
|
||||||
//获取金蝶仓库仓位编码
|
//获取金蝶仓库仓位编码
|
||||||
var stockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.StockId);
|
var stockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.StockId);
|
||||||
@@ -156,18 +168,22 @@ namespace WMS.Web.Domain.Services
|
|||||||
AfterQty = entity.AfterQty,
|
AfterQty = entity.AfterQty,
|
||||||
FinalQty = entity.FinalQty,
|
FinalQty = entity.FinalQty,
|
||||||
Fnote = ""
|
Fnote = ""
|
||||||
}) ;
|
});
|
||||||
ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto()
|
ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto()
|
||||||
{
|
{
|
||||||
BillNo = entity.BillNo,
|
BillNo = entity.BillNo,
|
||||||
StockOrgId = stock.OrgId.ToString(),
|
StockOrgId = stock.OrgId.ToString(),
|
||||||
Type = "PK01_SYS",
|
Type = entity.ResultType == TakeStockType.Loss ? "PK01_SYS" : "PY01_SYS",
|
||||||
Date = entity.Date,
|
Date = entity.Date,
|
||||||
Details = detils
|
Details = detils
|
||||||
};
|
};
|
||||||
#endregion
|
#endregion
|
||||||
|
//判断盘盈盘亏
|
||||||
return await _erpService.Sync<ErpTakeStockSaveDto>(dto, FormIdParam.STK_StockCountLoss.ToString());
|
string formId = entity.ResultType == TakeStockType.Loss ? FormIdParam.STK_StockCountLoss.ToString() : FormIdParam.STK_StockCountGain.ToString();
|
||||||
|
var resSync = await _erpService.Sync<ErpTakeStockSaveDto>(dto, formId);
|
||||||
|
entity.Sync(resSync.IsSuccess, resSync.Message);
|
||||||
|
await _takeStockRepositories.Edit(entity, true);
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,6 +70,86 @@ namespace WMS.Web.Repositories
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 批量添加
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="entitys"></param>
|
||||||
|
/// <param name="isTransaction"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<bool> AddRange(List<TakeStock> entitys, bool isTransaction = true)
|
||||||
|
{
|
||||||
|
IDbContextTransaction _transaction = null;
|
||||||
|
if (isTransaction)
|
||||||
|
_transaction = _context.Database.BeginTransaction();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (entitys != null && entitys.Count != 0)
|
||||||
|
{
|
||||||
|
await _context.TakeStock.AddRangeAsync(entitys);
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
foreach (var item in entitys)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(item.BillNo))
|
||||||
|
//自动生成单据编号
|
||||||
|
item.GenerateNo();
|
||||||
|
}
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
if (_transaction != null)
|
||||||
|
_transaction.Commit();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
if (_transaction != null)
|
||||||
|
_transaction.Rollback();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 编辑
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="entity"></param>
|
||||||
|
/// <param name="isTransaction"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<TakeStock> Edit(TakeStock entity, bool isTransaction = true)
|
||||||
|
{
|
||||||
|
IDbContextTransaction _transaction = null;
|
||||||
|
if (isTransaction)
|
||||||
|
_transaction = _context.Database.BeginTransaction();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var res = await _context.TakeStock
|
||||||
|
.FirstOrDefaultAsync(f => f.Id == entity.Id);
|
||||||
|
if (res == null) return null;
|
||||||
|
|
||||||
|
_mapper.Map(entity, res);
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
|
||||||
|
if (_transaction != null)
|
||||||
|
_transaction.Commit();
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
if (_transaction != null)
|
||||||
|
_transaction.Rollback();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<List<TakeStock>> GetEntityList(List<int> ids)
|
||||||
|
{
|
||||||
|
var res = await _context.TakeStock
|
||||||
|
.Where(f => ids.Contains(f.Id))
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
|
return res.Clone();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 盘点单列表
|
/// 盘点单列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user