using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEA_Common.OrderEnum;
|
using WIDESEA_Core;
|
using WIDESEA_Core.BaseServices;
|
using WIDESEA_Core.Helper;
|
using WIDESEA_IApprovalRepository;
|
using WIDESEA_ICheckRepository;
|
using WIDESEA_ICheckService;
|
using WIDESEA_Model.Models;
|
|
namespace WIDESEA_CheckService
|
{
|
public class CheckOrderResultService : ServiceBase<Dt_CheckOrderResult, ICheckOrderResultRepository>, ICheckOrderResultService
|
{
|
private readonly ICheckOrderRepository _checkOrderRepository;
|
|
public CheckOrderResultService(ICheckOrderResultRepository BaseDal, ICheckOrderRepository checkOrderRepository) : base(BaseDal)
|
{
|
_checkOrderRepository = checkOrderRepository;
|
}
|
|
public WebResponseContent CommitCheckResult(int checkOrderId, Dt_CheckOrderResult checkResult)
|
{
|
try
|
{
|
Dt_CheckOrder checkOrder = _checkOrderRepository.QueryFirst(x => x.CheckOrderId == checkOrderId);
|
if (checkOrder == null)
|
{
|
return WebResponseContent.Instance.Error($"未找到该质检单");
|
}
|
if (checkOrder.CheckOrderStatus == CheckOrderStatusEnum.Checked.ObjToInt())
|
{
|
return WebResponseContent.Instance.Error($"该单据已经检验完成");
|
}
|
if (checkResult.Quantity < 0 || checkResult.Quantity > checkOrder.ReceivedQuantity || checkOrder.ReceivedQuantity - checkOrder.ScrappedQuantity - checkOrder.DefectedQuantity - checkOrder.ReturnQuantity < checkResult.Quantity)
|
{
|
return WebResponseContent.Instance.Error($"数量输入错误");
|
}
|
if (checkResult.Result == CheckResultEnum.Defect.ToString())//特采
|
{
|
checkOrder.DefectedNote = checkResult.Note;
|
checkOrder.DefectedQuantity += checkResult.Quantity;
|
checkOrder.QualifiedQuantity -= checkResult.Quantity;
|
}
|
else if (checkResult.Result == CheckResultEnum.Return.ToString())//退货
|
{
|
checkOrder.DefectedNote = checkResult.Note;
|
checkOrder.ReturnQuantity += checkResult.Quantity;
|
checkOrder.QualifiedQuantity -= checkResult.Quantity;
|
}
|
else if (checkResult.Result == CheckResultEnum.Scrapped.ToString())//报废
|
{
|
checkOrder.DefectedNote = checkResult.Note;
|
checkOrder.ScrappedQuantity += checkResult.Quantity;
|
checkOrder.QualifiedQuantity -= checkResult.Quantity;
|
}
|
|
checkOrder.CheckOrderStatus = CheckOrderStatusEnum.Checked.ObjToInt();
|
|
Dt_CheckOrderResult checkOrderResult = new Dt_CheckOrderResult()
|
{
|
Quantity = checkResult.Quantity,
|
CheckOrderId = checkOrderId,
|
DefectCode = checkResult.DefectCode,
|
Result = checkResult.Result,
|
Note = checkResult.Note
|
};
|
_checkOrderRepository.UpdateData(checkOrder);
|
BaseDal.AddData(checkOrderResult);
|
return WebResponseContent.Instance.OK();
|
}
|
catch (Exception ex)
|
{
|
return WebResponseContent.Instance.Error($"{ex.Message}");
|
}
|
}
|
}
|
}
|