2025-12-01 10:41:53 +08:00

177 lines
6.3 KiB
C#

using Infrastructure.Attribute;
using Infrastructure.Extensions;
using Infrastructure.Model;
using RIZO.Model.Mes.Dto.ProductionPreparation;
using RIZO.Model.Mes.Dto.WorkOrderInfo;
using RIZO.Model.Mes.ProductionPreparation;
using RIZO.Model.Mes.WorkOrderInfo;
using RIZO.Repository;
using RIZO.Service.Mes.IMesService.ProductionPreparation;
using RIZO.Service.Mes.ProductionPreparation;
namespace RIZO.Service.Mes
{
/// <summary>
/// 质量控制主表Service业务层处理
/// </summary>
[AppService(ServiceType = typeof(IQualityControlService), ServiceLifetime = LifeTime.Transient)]
public class QualityControlService : BaseService<QualityControl>, IQualityControlService
{
private QualityControlDetailService qualityControlDetailService = new QualityControlDetailService();
/// <summary>
/// 查询质量控制主表列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public PagedInfo<QualityControlDto> GetList(QualityControlQueryDto parm)
{
var predicate = QueryExp(parm);
var response = Queryable()
.Where(predicate.ToExpression())
.ToPage<QualityControl, QualityControlDto>(parm);
return response;
}
/// <summary>
/// 获取详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public QualityControl GetInfo(long Id)
{
var response = Queryable()
.Where(x => x.Id == Id)
.First();
return response;
}
/// <summary>
/// 添加质量控制主表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public QualityControl AddQualityControl(QualityControl model)
{
return Insertable(model).ExecuteReturnEntity();
}
/// <summary>
/// 修改质量控制主表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int UpdateQualityControl(QualityControl model)
{
return Update(model, true);
}
public ApiResult ChangeQCStatus(QualityControlDto parm)
{
try
{
var qc = Queryable().Where(it => it.Id == parm.Id).First();
if (qc == null)
{
return new ApiResult(400, "质控数据不存在!");
}
qc.CheckResult = parm.CheckResult;
qc.UpdatedBy = parm.UpdatedBy;
qc.UpdatedName = parm.UpdatedName;
qc.UpdatedTime = parm.UpdatedTime;
qc.Remark = parm.Remark;
int iResult = Update(qc);
if (iResult > 0)
{
return ApiResult.Success(qc);
}
else
{
return ApiResult.Error("变更状态失败!");
}
}
catch (Exception ex)
{
return ApiResult.Error("出现错误!");
}
}
/// <summary>
/// 查询导出表达式
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
private static Expressionable<QualityControl> QueryExp(QualityControlQueryDto parm)
{
var predicate = Expressionable.Create<QualityControl>();
return predicate;
}
public ApiResult AddQC(QualityControlDto parm)
{
if (parm == null)
{
return ApiResult.Error(400, "数据为空,请重新新增");
}
List<QualityControlDetailDto> parmDetails = parm.parmDetails;
List<QualityControlDetail> qcDetaiList = new List<QualityControlDetail>();
string strDay = DateTime.Now.ToString("yyyyMMdd");
int Sequcence = 1;
QualityControl qualityControl = Queryable()
.Where(it => it.QcCode.Contains(strDay)).OrderByDescending(it => it.Sequcence).First();
if (qualityControl != null)
{
Sequcence = qualityControl.Sequcence;
Sequcence += 1;
}
string formattedSequence = Sequcence.ToString("D3");
string QcCode = "QC" + strDay + formattedSequence;
QualityControl qcNew = new QualityControl();
qcNew.QcCode = QcCode;
qcNew.CheckType = parm.CheckType;
qcNew.CheckDate = parm.CheckDate;
qcNew.LineCode = parm.LineCode;
qcNew.LineName = parm.LineName;
qcNew.CheckResult = parm.CheckResult;
qcNew.CheckTime = parm.CheckTime;
qcNew.Remark = parm.Remark;
qcNew.Sequcence = Sequcence;
qcNew.CreatedBy = parm.CreatedBy;
qcNew.CreatedName = parm.CreatedName;
qcNew.UpdatedBy = parm.UpdatedBy;
qcNew.UpdatedName = parm.UpdatedName;
int iResult = Insert(qcNew);
if (iResult > 0)
{
if (parmDetails != null && parmDetails.Count > 0)
{
foreach (QualityControlDetailDto qcDDto in parmDetails)
{
QualityControlDetail qcDNew = new QualityControlDetail();
qcDNew.QcCode = QcCode;
qcDNew.ParamName = qcDDto.ParamName;
qcDNew.ParamValue = qcDDto.ParamValue;
qcDNew.ParamUnit = qcDDto.ParamUnit;
qcDNew.IsPass = qcDDto.IsPass;
qcDNew.CreatedBy = qcDDto.CreatedBy;
qcDNew.CreatedName = qcDDto.CreatedName;
qcDNew.CreatedTime = qcDDto.CreatedTime;
qcDetaiList.Add(qcDNew);
}
if (qcDetaiList.Count > 0)
{
int Flag = qualityControlDetailService.Insert(qcDetaiList);
}
}
return ApiResult.Success(qcNew);
}
else
{
return ApiResult.Error("质控数据创建失败");
}
}
}
}