You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
3.7 KiB

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<SwapOrderStep>
{
SwapOrderStepRepository _swapOrderStepRepository;
public SwapOrderStepService(SwapOrderStepRepository dal)
{
_swapOrderStepRepository = dal;
BaseDal = dal;
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><E7B2BD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>ҳ
/// </summary>
/// <param name="swapOrderStep"></param>
/// <returns></returns>
public PageResult<SwapOrderStepResp> QueryEqmFaultInfo(QuerySwapOrderStepReq swapOrderStep)
{
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>յı<D5B5><C4B1>ʽ<EFBFBD><CABD>
Expression<Func<SwapOrderStep, bool>> where = null;
//// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
ParameterExpression parameter = Expression.Parameter(typeof(SwapOrderStep), "u");
if (swapOrderStep.Id != 0)
{
Expression<Func<SwapOrderStep, bool>> condition1Expr = u => u.Id == swapOrderStep.Id;
where = condition1Expr;
}
6 months ago
if (swapOrderStep.Step !=null)
{
Expression<Func<SwapOrderStep, bool>> condition2Expr = u => u.Step == swapOrderStep.Step;
where = where == null
? condition2Expr
: Expression.Lambda<Func<SwapOrderStep, bool>>(Expression.AndAlso(where.Body, condition2Expr.Body),
parameter);
}
if (!string.IsNullOrEmpty(swapOrderStep.SwapOrderSn))
{
Expression<Func<SwapOrderStep, bool>> condition2Expr = u => u.SwapOrderSn == swapOrderStep.SwapOrderSn;
where = where == null
? condition2Expr
: Expression.Lambda<Func<SwapOrderStep, bool>>(Expression.AndAlso(where.Body, condition2Expr.Body),
parameter);
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
if (!string.IsNullOrEmpty(swapOrderStep.StepName))
{
Expression<Func<SwapOrderStep, bool>> condition2Expr = u => u.StepName == swapOrderStep.StepName;
where = where == null
? condition2Expr
: Expression.Lambda<Func<SwapOrderStep, bool>>(Expression.AndAlso(where.Body, condition2Expr.Body),
parameter);
}
// 查询结果
IPage<SwapOrderStep> queryResult = _swapOrderStepRepository.QueryIPage(swapOrderStep, where);
// 增加排序
var sortedList = queryResult.Rows
.OrderBy(u => u.SwapOrderSn)
.ThenBy(u => u.Step)
.ToList();
// 构建新的 IPage 对象
var sortedResult = new IPage<SwapOrderStep>(queryResult.Total, swapOrderStep, sortedList);
return PageResult<SwapOrderStepResp>.ConvertPage(sortedResult);
}
/// <summary>
/// 换电小步新增---换电主流程
/// </summary>
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);
}
}