using RIZO.Model; using RIZO.Model.MES.recipe; using RIZO.Model.MES.recipe.Dto; using RIZO.Repository; using RIZO.Service.MES.recipe.IService; using Infrastructure.Attribute; using Infrastructure.Extensions; using Infrastructure.Model; using MDM.Service; namespace RIZO.Service.MES.recipe { /// /// 配方下达记录表Service业务层处理 /// [AppService(ServiceType = typeof(IPfRecipeIssueLogService), ServiceLifetime = LifeTime.Transient)] public class PfRecipeIssueLogService : BaseService, IPfRecipeIssueLogService { private readonly PfRecipeParametersService pfRecipeParametersService = new PfRecipeParametersService(); /// /// 查询配方下达记录表列表 /// /// /// public PagedInfo GetList(PfRecipeIssueLogQueryDto parm) { var predicate = QueryExp(parm); var response = Queryable() .Where(predicate.ToExpression()) .ToPage(parm); return response; } /// /// 获取详情 /// /// /// public PfRecipeIssueLog GetInfo(int Id) { var response = Queryable() .Where(x => x.Id == Id) .First(); return response; } /// /// 添加配方下达记录表 /// /// /// public PfRecipeIssueLog AddPfRecipeIssueLog(PfRecipeIssueLog model) { return Insertable(model).ExecuteReturnEntity(); } /// /// 修改配方下达记录表 /// /// /// public int UpdatePfRecipeIssueLog(PfRecipeIssueLog model) { return Update(model, true); } /// /// 查询导出表达式 /// /// /// private static Expressionable QueryExp(PfRecipeIssueLogQueryDto parm) { var predicate = Expressionable.Create(); if (parm != null) { if (!string.IsNullOrEmpty(parm.RecipeCode)) { predicate = predicate.And(it => it.RecipeCode == parm.RecipeCode); } if (!string.IsNullOrEmpty(parm.Version)) { predicate = predicate.And(it => it.Version == parm.Version); } if (parm.StartTime != null && parm.StartTime > DateTime.MinValue) { predicate = predicate.And(it => it.CreatedTime >= parm.StartTime); } if (parm.EndTime != null && parm.EndTime > DateTime.MinValue) { predicate = predicate.And(it => it.CreatedTime <= parm.EndTime); } } return predicate; } public ApiResult IssueRecipe(PfRecipeIssueLog model) { try { if (string.IsNullOrEmpty(model.RecipeCode) || string.IsNullOrEmpty(model.Version)) { return new ApiResult(210, "参数不可为空", -1); } var parmeterlist = pfRecipeParametersService.Queryable() .Where(x => x.RecipeCode == model.RecipeCode && x.Version == model.Version).ToList(); if (!parmeterlist.Any()) { return new ApiResult(210, "该配方未配置参数", -1); } bool bResult = sendRecipeByMqtt(parmeterlist); if (!bResult) { return new ApiResult(210, "发送配方失败", -1); } else { int iResult = Insertable(model).ExecuteReturnIdentity(); return new ApiResult(200, "操作成功"); } } catch (Exception ex) { return new ApiResult(210,ex.ToString()); } } private bool sendRecipeByMqtt(List parmeterlist) { //实现MQTT发送配方到上位机 return true; } } }