BIP异常信息接口:采购订单删除,修改接口
This commit is contained in:
@@ -546,6 +546,128 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 删除采购订单
|
||||
/// </summary>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<Entities.Dto.Outputs.Result> DeletePurchaseOrder(PurchaseOrderDeleteInput input)
|
||||
{
|
||||
LoggerErp2Mes.LogInformation($"【PurchaseOrderDeleteInput】ERP传入数据:{JsonConvert.SerializeObject(input)}");
|
||||
var db = _repository.AsSugarClient();
|
||||
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(input.erp_pk))
|
||||
{
|
||||
_LoggerErp2Mes.LogWarning($"【PurchaseOrderDeleteInput】主表主键不能为空!");
|
||||
throw new AppFriendlyException($@"主表主键不能为空!", 500);
|
||||
}
|
||||
|
||||
await db.Ado.BeginTranAsync();
|
||||
|
||||
// 判断采购订单是否存在
|
||||
WmsPurchaseOrderH wmsPurchaseOrderRep = await db.Queryable<WmsPurchaseOrderH>().Where(r => r.erp_pk == input.erp_pk).FirstAsync();
|
||||
if (wmsPurchaseOrderRep != null)
|
||||
{
|
||||
// 判断收货单是否已经生成
|
||||
WmsPurchaseH wmsPurchaseH = await db.Queryable<WmsPurchaseH>().Where(r => r.source_id == wmsPurchaseOrderRep.id).FirstAsync();
|
||||
if (wmsPurchaseH != null)
|
||||
{
|
||||
_LoggerErp2Mes.LogWarning($@"【PurchaseOrderDeleteInput】wms已创建收货单{wmsPurchaseH.bill_code}!");
|
||||
throw new AppFriendlyException($@"wms已创建收货单{wmsPurchaseH.bill_code}!", 500);
|
||||
}
|
||||
else // 删除数据重新插入
|
||||
{
|
||||
await db.Deleteable<WmsPurchaseOrderH>().Where(r => r.id == wmsPurchaseOrderRep.id).ExecuteCommandAsync();
|
||||
await db.Deleteable<WmsPurchaseOrderD>().Where(r => r.fk_wms_purchase_order_id == wmsPurchaseOrderRep.id).ExecuteCommandAsync();
|
||||
}
|
||||
}
|
||||
await db.Ado.CommitTranAsync();
|
||||
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LoggerErp2Mes.LogError($"【PurchaseOrderDeleteInput】{ex.Message}");
|
||||
LoggerErp2Mes.LogError($"【PurchaseOrderDeleteInput】{ex.StackTrace}");
|
||||
await db.Ado.RollbackTranAsync();
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 修改采购订单
|
||||
/// </summary>
|
||||
[HttpPost, NonUnify, AllowAnonymous]
|
||||
public async Task<Entities.Dto.Outputs.Result> UpdatePurchaseOrder(PurchaseOrderUpdateInput input)
|
||||
{
|
||||
LoggerErp2Mes.LogInformation($"【PurchaseOrderUpdateInput】ERP传入数据:{JsonConvert.SerializeObject(input)}");
|
||||
var db = _repository.AsSugarClient();
|
||||
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(input.erp_pk))
|
||||
{
|
||||
_LoggerErp2Mes.LogWarning($"【PurchaseOrderUpdateInput】主表主键不能为空!");
|
||||
throw new AppFriendlyException($@"主表主键不能为空!", 500);
|
||||
}
|
||||
|
||||
await db.Ado.BeginTranAsync();
|
||||
|
||||
// 判断采购订单是否存在
|
||||
WmsPurchaseOrderH wmsPurchaseOrderH = await db.Queryable<WmsPurchaseOrderH>().Where(r => r.erp_pk == input.erp_pk).FirstAsync();
|
||||
|
||||
if(wmsPurchaseOrderH == null)
|
||||
{
|
||||
_LoggerErp2Mes.LogWarning($"【PurchaseOrderUpdateInput】未找到采购订单,erp_pk:{input.erp_pk}");
|
||||
throw new AppFriendlyException($@"未找到采购订单,erp_pk:{input.erp_pk}!", 500);
|
||||
}
|
||||
|
||||
if(input.details!=null && input.details.Count > 0)
|
||||
{
|
||||
foreach(var item in input.details)
|
||||
{
|
||||
WmsPurchaseOrderD wmsPurchaseOrderD = await db.Queryable<WmsPurchaseOrderD>().Where(r => r.fk_wms_purchase_order_id == wmsPurchaseOrderH.id && r.erp_line_pk == item.erp_line_pk).FirstAsync();
|
||||
if(wmsPurchaseOrderD==null)
|
||||
{
|
||||
_LoggerErp2Mes.LogWarning($"【PurchaseOrderUpdateInput】未找到采购订单明细数据,erp_pk:{input.erp_pk},erp_line_pk:{item.erp_line_pk}");
|
||||
throw new AppFriendlyException($@"未找到采购订单明细数据,erp_pk:{input.erp_pk},erp_line_pk{item.erp_line_pk}!", 500);
|
||||
}
|
||||
else
|
||||
{
|
||||
await db.Updateable<WmsPurchaseOrderD>()
|
||||
.SetColumns(r => r.net_price == item.net_price)
|
||||
.SetColumns(r => r.purchase_quantity == item.purchase_quantity)
|
||||
.SetColumns(r => r.actual_quantity == item.actual_quantity)
|
||||
.Where(r => r.id == wmsPurchaseOrderD.id).ExecuteCommandAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
await db.Ado.CommitTranAsync();
|
||||
|
||||
return await ToApiResult(HttpStatusCode.OK, "成功");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
LoggerErp2Mes.LogError($"【PurchaseOrderUpdateInput】{ex.Message}");
|
||||
LoggerErp2Mes.LogError($"【PurchaseOrderUpdateInput】{ex.StackTrace}");
|
||||
await db.Ado.RollbackTranAsync();
|
||||
return await ToApiResult(HttpStatusCode.InternalServerError, ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 委外订单
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user