using ProductionSystem_Log;
using ProductionSystem_Model.DbModel.Para;
using ProductionSystem_Model.ViewModel.Response.Para;
using SqlSugar;
using System;
using System.Collections.Generic;
namespace ProductionSystem_Service
{
public class ParaConfigService : DbContext
{
///
/// 查询所有参数配置项
///
///
public ISugarQueryable QueryParaConfigs()
{
try
{
return db.Queryable();
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行ParaConfigService下QueryParaConfigs时异常");
return null;
}
}
///
/// 查询有效参数配置项
///
///
public ISugarQueryable QueryActiveParaConfigs()
{
try
{
return db.Queryable().Where(m => m.IsActive);
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行ParaConfigService下QueryActiveParaConfigs时异常");
return null;
}
}
///
/// 根据参数类别查询有效参数配置项
///
///
///
public List QueryActiveParaConfigsByParaCategory(string paraCategory)
{
try
{
return db.Queryable()
.InnerJoin((a, b) =>a.ProductType==b.ProductType && a.ParaCode == b.ParaCode && a.ParaCategory == b.ParaCategory && a.IsActive && b.IsActive)
.WhereIF(!string.IsNullOrEmpty(paraCategory), a =>a.ParaCategory == paraCategory)
.Select((a, b) => new ParaConfigVM
{
Id = a.Id,
ParaCode = a.ParaCode,
ParaName = b.ParaName
}).ToList();
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行ParaConfigService下QueryActiveParaConfigsByParaCategory时异常");
return null;
}
}
///
/// 根据产品型号查询有效参数配置项
///
///
///
public ISugarQueryable QueryActiveParaConfigsByProductType(string productType)
{
try
{
return db.Queryable().Where(m => m.ProductType == productType && m.IsActive);
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行ParaConfigService下QueryActiveParaConfigsByProductType时异常");
return null;
}
}
///
/// 根据产品型号查询参数配置项
///
///
///
public ISugarQueryable QueryParaConfigsByProductType(string productType)
{
try
{
return db.Queryable().Where(m => m.ProductType == productType);
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行ParaConfigService下QueryParaConfigsByProductType时异常");
return null;
}
}
///
/// 新增参数配置项
///
///
///
public (bool isOk, string msg) AddParaConfig(T_ParaConfig t_ParaConfig)
{
try
{
var row = db.Insertable(t_ParaConfig).ExecuteCommand();
return (row > 0, row > 0 ? "操作成功!" : "操作失败!");
}
catch (Exception ex)
{
var errorMsg = $"执行ParaConfigService下AddParaConfig时异常:{ex.Message}";
LogHelper.Error(ex, errorMsg);
return (false, errorMsg);
}
}
///
/// 批量保存参数配置项
///
/// 产品型号
///
///
public (bool isOk, string msg) SaveParaConfigs(string productType, List t_ParaConfigs)
{
var result = db.UseTran(() =>
{
var delRows = db.Deleteable().Where(m => m.ProductType == productType).ExecuteCommand();
var rows = db.Insertable(t_ParaConfigs).ExecuteCommand();
if (rows > 0 && rows == t_ParaConfigs.Count)
{
return true;
}
else
{
return false;
}
});
if (!result.Data) //返回值为false
{
return (false, "批量保存参数配置项时,操作失败!");
}
return (true, "操作成功!");
}
}
}