添加不良品相关操作逻辑
This commit is contained in:
@@ -240,6 +240,33 @@ namespace DOAN.Admin.WebApi.Controllers.BZFM
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据工单号填写不良品单
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm">不良品单数据</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("defectOrder/byWorkorder")]
|
||||||
|
[ActionPermissionFilter(Permission = "qcscraprecords:add")]
|
||||||
|
[Log(Title = "根据工单号创建不良品单", BusinessType = BusinessType.INSERT)]
|
||||||
|
public IActionResult CreateDefectOrderByWorkorder([FromBody] QcScrapRecordsDto parm)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(parm.Workorder))
|
||||||
|
{
|
||||||
|
return ToResponse(StatusCodes.Status400BadRequest, "工单号不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
var modal = parm.Adapt<QcScrapRecords>().ToCreate(HttpContext);
|
||||||
|
var response = _QcScrapRecordsService.CreateDefectOrderByWorkorder(modal);
|
||||||
|
return SUCCESS(response);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return ToResponse(StatusCodes.Status500InternalServerError, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 根据不良品记录ID撤销不良品记录
|
/// 根据不良品记录ID撤销不良品记录
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
namespace DOAN.Model.BZFM.Dto
|
namespace DOAN.Model.BZFM.Dto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 报废记录表查询对象
|
/// 不良记录表查询对象
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class QcScrapRecordsQueryDto : PagerInfo
|
public class QcScrapRecordsQueryDto : PagerInfo
|
||||||
{
|
{
|
||||||
@@ -22,7 +22,7 @@ namespace DOAN.Model.BZFM.Dto
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 报废记录表输入输出对象
|
/// 不良记录表输入输出对象
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class QcScrapRecordsDto
|
public class QcScrapRecordsDto
|
||||||
{
|
{
|
||||||
@@ -32,20 +32,20 @@ namespace DOAN.Model.BZFM.Dto
|
|||||||
public long Id { get; set; }
|
public long Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 报废单号
|
/// 不良单号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ScrapOrderNo { get; set; }
|
public string ScrapOrderNo { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 报废日期
|
/// 不良日期
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required(ErrorMessage = "报废日期不能为空")]
|
[Required(ErrorMessage = "不良日期不能为空")]
|
||||||
public DateTime? ScrapDate { get; set; }
|
public DateTime? ScrapDate { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 报废数量
|
/// 不良数量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Required(ErrorMessage = "报废数量不能为空")]
|
[Required(ErrorMessage = "不良数量不能为空")]
|
||||||
public decimal ScrapQuantity { get; set; }
|
public decimal ScrapQuantity { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -59,12 +59,12 @@ namespace DOAN.Model.BZFM.Dto
|
|||||||
public string DisposalMethod { get; set; }
|
public string DisposalMethod { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 报废类型
|
/// 不良类型
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ScrapType { get; set; }
|
public string ScrapType { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 报废原因说明
|
/// 不良原因说明
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ScrapReason { get; set; }
|
public string ScrapReason { get; set; }
|
||||||
|
|
||||||
@@ -151,7 +151,7 @@ namespace DOAN.Model.BZFM.Dto
|
|||||||
public string QualityInspector { get; set; }
|
public string QualityInspector { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 班组长/主管
|
/// 审核人
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string SupervisorName { get; set; }
|
public string SupervisorName { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
|||||||
namespace DOAN.Model.BZFM.Dto
|
namespace DOAN.Model.BZFM.Dto
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 报废审批DTO
|
/// 不良审批DTO
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ScrapApproveDto
|
public class ScrapApproveDto
|
||||||
{
|
{
|
||||||
@@ -21,4 +21,19 @@ namespace DOAN.Model.BZFM.Dto
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string Approver { get; set; }
|
public string Approver { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 不良品归属审批
|
||||||
|
/// </summary>
|
||||||
|
public class DefectApproveDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 不良品记录ID
|
||||||
|
/// </summary>
|
||||||
|
public long Id { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 工单号
|
||||||
|
/// </summary>
|
||||||
|
public string Workorder { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -67,6 +67,21 @@ namespace DOAN.Service.BZFM.IService
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
QcScrapRecords CreateTransferOrderByWorkorder(QcScrapRecords parm);
|
QcScrapRecords CreateTransferOrderByWorkorder(QcScrapRecords parm);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据工单号填写不良品单
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm">转用单数据</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
QcScrapRecords CreateDefectOrderByWorkorder(QcScrapRecords parm);
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据不良品记录ID对不良品进行操作
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm">转用单数据</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
string ApproveDefectRecordById(DefectApproveDto parm);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 根据不良品记录ID撤销不良品记录
|
/// 根据不良品记录ID撤销不良品记录
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ namespace DOAN.Service.BZFM
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 生成报废单号
|
/// 生成不良单号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="prefix">前缀,默认BF表示报废</param>
|
/// <param name="prefix">前缀,默认BF表示报废</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
@@ -527,6 +527,73 @@ namespace DOAN.Service.BZFM
|
|||||||
return CreateTransferOrder(parm);
|
return CreateTransferOrder(parm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据工单号填写不良品单据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm">不良品单数据</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public QcScrapRecords CreateDefectOrderByWorkorder(QcScrapRecords parm)
|
||||||
|
{
|
||||||
|
// 验证工单号
|
||||||
|
if (string.IsNullOrEmpty(parm.Workorder))
|
||||||
|
{
|
||||||
|
throw new Exception("工单号不能为空");
|
||||||
|
}
|
||||||
|
QcScrapRecords newQcScrapRecords = parm;
|
||||||
|
var workorderInfo = Context
|
||||||
|
.Queryable<ProWorkorder>()
|
||||||
|
.Where(x => x.Workorder == parm.Workorder)
|
||||||
|
.First();
|
||||||
|
|
||||||
|
// 单据不良数校验
|
||||||
|
if(parm.ScrapQuantity + workorderInfo.DefectNum > workorderInfo.PlanNum)
|
||||||
|
{
|
||||||
|
throw new Exception("不良数量总和大于计划数,请检查输入!");
|
||||||
|
}
|
||||||
|
if (parm.ScrapQuantity < 0)
|
||||||
|
{
|
||||||
|
throw new Exception("不良数量需要为正数!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 工单号创建,根据工单信息填充报废单的相关字段
|
||||||
|
if (workorderInfo != null)
|
||||||
|
{
|
||||||
|
newQcScrapRecords.ProductCode = workorderInfo.productionCode;
|
||||||
|
newQcScrapRecords.ProductName = workorderInfo.productionName;
|
||||||
|
newQcScrapRecords.LineCode = workorderInfo.RouteCode;
|
||||||
|
newQcScrapRecords.StoveCode = workorderInfo.StoveCode;
|
||||||
|
newQcScrapRecords.BatchNo = workorderInfo.FeedOrder;
|
||||||
|
newQcScrapRecords.MaterialCode = workorderInfo.MaterialCode;
|
||||||
|
newQcScrapRecords.MaterialName = workorderInfo.MaterialName;
|
||||||
|
// 如有领料记录,则绑定采购记录
|
||||||
|
var purchaseInfo = Context
|
||||||
|
.Queryable<MmRecordInbound>()
|
||||||
|
.Where(it => it.BatchNo == workorderInfo.FeedOrder)
|
||||||
|
.Where(it => it.TransactionType == "采购入库")
|
||||||
|
.Where(it => it.Remarks != "已撤销")
|
||||||
|
.First();
|
||||||
|
if (purchaseInfo != null)
|
||||||
|
{
|
||||||
|
newQcScrapRecords.SupplierCode = purchaseInfo.SupplierCode;
|
||||||
|
newQcScrapRecords.SupplierName = purchaseInfo.SupplierName;
|
||||||
|
newQcScrapRecords.StoveCode = purchaseInfo.StoveCode;
|
||||||
|
newQcScrapRecords.Unit = purchaseInfo.Unit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 生成单号
|
||||||
|
newQcScrapRecords.ScrapOrderNo = GenerateScrapOrderNo("BL"); // BL表示不良
|
||||||
|
|
||||||
|
// 设置状态为待审批,类型为转用
|
||||||
|
newQcScrapRecords.Status = "待审批";
|
||||||
|
newQcScrapRecords.ScrapType = "不良品";
|
||||||
|
newQcScrapRecords.TenantId = 0;
|
||||||
|
newQcScrapRecords.Version = 1;
|
||||||
|
return Context.Insertable(newQcScrapRecords).ExecuteReturnEntity();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 根据不良品记录ID撤销不良品记录
|
/// 根据不良品记录ID撤销不良品记录
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -537,5 +604,16 @@ namespace DOAN.Service.BZFM
|
|||||||
// 调用现有的撤销方法
|
// 调用现有的撤销方法
|
||||||
return RevokeScrapRecord(id);
|
return RevokeScrapRecord(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 根据不良记录进行审批
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="parm"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
/// <exception cref="NotImplementedException"></exception>
|
||||||
|
public string ApproveDefectRecordById(DefectApproveDto parm)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user