using Entity.Api.Req; using Entity.Api.Resp; using Entity.DbModel.Station; using HybirdFrameworkCore.Autofac.Attribute; using HybirdFrameworkCore.Entity; using Repository.Station; using SqlSugar; using System.Linq.Expressions; using Entity.Constant; using HybirdFrameworkCore.Utils; using Quartz.Util; namespace Service.Station; [Scope("SingleInstance")] public class SwapOrderStepService : BaseServices { SwapOrderStepRepository _swapOrderStepRepository; public SwapOrderStepService(SwapOrderStepRepository dal) { _swapOrderStepRepository = dal; BaseDal = dal; } /// /// ����������ѯ���粽����Ϣ��ҳ /// /// /// public PageResult QueryEqmFaultInfo(QuerySwapOrderStepReq swapOrderStep) { //����һ���յı��ʽ�� Expression> where = null; //// ����������ʽ ParameterExpression parameter = Expression.Parameter(typeof(SwapOrderStep), "u"); if (swapOrderStep.Id != 0) { Expression> condition1Expr = u => u.Id == swapOrderStep.Id; where = condition1Expr; } if (swapOrderStep.Step !=null) { Expression> condition2Expr = u => u.Step == swapOrderStep.Step; where = where == null ? condition2Expr : Expression.Lambda>(Expression.AndAlso(where.Body, condition2Expr.Body), parameter); } if (!string.IsNullOrEmpty(swapOrderStep.SwapOrderSn)) { Expression> condition2Expr = u => u.SwapOrderSn == swapOrderStep.SwapOrderSn; where = where == null ? condition2Expr : Expression.Lambda>(Expression.AndAlso(where.Body, condition2Expr.Body), parameter); } // ������ѯ���� if (!string.IsNullOrEmpty(swapOrderStep.StepName)) { Expression> condition2Expr = u => u.StepName == swapOrderStep.StepName; where = where == null ? condition2Expr : Expression.Lambda>(Expression.AndAlso(where.Body, condition2Expr.Body), parameter); } // 查询结果 IPage queryResult = _swapOrderStepRepository.QueryIPage(swapOrderStep, where); // 增加排序 var sortedList = queryResult.Rows .OrderBy(u => u.SwapOrderSn) .ThenBy(u => u.Step) .ToList(); // 构建新的 IPage 对象 var sortedResult = new IPage(queryResult.Total, swapOrderStep, sortedList); return PageResult.ConvertPage(sortedResult); } /// /// 换电小步新增---换电主流程 /// public void InsertSwapStepForSwapMain(InfoEnum.BusinessSwappingStep step, int sort, String? swapOrderSn, string desc="" ,string param=null,int type=(int)SwapConstant.StepType.AUTO) { SwapOrderStep swapOrderStep = new () { StepName = BaseEnumExtensions.GetDescription(step), Step = (int)step, Sort = sort, SwapOrderSn = swapOrderSn, StepType = type, Param = param, StepDesc = ObjUtils.IsNullOrWhiteSpace(desc)?BaseEnumExtensions.GetDescription(step):desc, }; _swapOrderStepRepository.Insert(swapOrderStep); } }