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

159 lines
5.4 KiB
C#

12 months ago
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
{
/// <summary>
/// 查询所有参数配置项
/// </summary>
/// <returns></returns>
public ISugarQueryable<T_ParaConfig> QueryParaConfigs()
{
try
{
return db.Queryable<T_ParaConfig>();
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行ParaConfigService下QueryParaConfigs时异常");
return null;
}
}
/// <summary>
/// 查询有效参数配置项
/// </summary>
/// <returns></returns>
public ISugarQueryable<T_ParaConfig> QueryActiveParaConfigs()
{
try
{
return db.Queryable<T_ParaConfig>().Where(m => m.IsActive);
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行ParaConfigService下QueryActiveParaConfigs时异常");
return null;
}
}
/// <summary>
/// 根据参数类别查询有效参数配置项
/// </summary>
/// <param name="paraCategory"></param>
/// <returns></returns>
public List<ParaConfigVM> QueryActiveParaConfigsByParaCategory(string paraCategory)
{
try
{
return db.Queryable<T_ParaConfig>()
.InnerJoin<T_ParaColumnConfig>((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;
}
}
/// <summary>
/// 根据产品型号查询有效参数配置项
/// </summary>
/// <param name="productType"></param>
/// <returns></returns>
public ISugarQueryable<T_ParaConfig> QueryActiveParaConfigsByProductType(string productType)
{
try
{
return db.Queryable<T_ParaConfig>().Where(m => m.ProductType == productType && m.IsActive);
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行ParaConfigService下QueryActiveParaConfigsByProductType时异常");
return null;
}
}
/// <summary>
/// 根据产品型号查询参数配置项
/// </summary>
/// <param name="productType"></param>
/// <returns></returns>
public ISugarQueryable<T_ParaConfig> QueryParaConfigsByProductType(string productType)
{
try
{
return db.Queryable<T_ParaConfig>().Where(m => m.ProductType == productType);
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行ParaConfigService下QueryParaConfigsByProductType时异常");
return null;
}
}
/// <summary>
/// 新增参数配置项
/// </summary>
/// <param name="t_ParaConfig"></param>
/// <returns></returns>
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);
}
}
/// <summary>
/// 批量保存参数配置项
/// </summary>
/// <param name="productType">产品型号</param>
/// <param name="t_ParaConfigs"></param>
/// <returns></returns>
public (bool isOk, string msg) SaveParaConfigs(string productType, List<T_ParaConfig> t_ParaConfigs)
{
var result = db.UseTran(() =>
{
var delRows = db.Deleteable<T_ParaConfig>().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, "操作成功!");
}
}
}