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

226 lines
8.0 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
{
//var temp = db.Queryable<T_ParaConfig>().Where(m => m.ProductType == productType && m.IsActive);
return db.Queryable<T_ParaConfig>().Where(m => m.ProductType == productType && m.IsActive);
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行ParaConfigService下QueryActiveParaConfigsByProductType时异常");
return null;
}
}
private ISugarQueryable<T_ParaConfig> QueryTargetValWithParaCodeByParaCategery(string paraCategory)
{
try
{
var temp = db.Queryable<T_ParaConfig>().Where(m => m.ParaCategory == paraCategory && m.IsActive);
return temp;
}catch (Exception ex)
{
LogHelper.Error(ex, "执行ParaConfigService下QueryTargetValWithParaCodeByParaCategery时异常");
return null;
}
}
/// <summary>
/// 根据参数种类查询有效参数配置项,例如传“BZ1”、“BZ2”
/// </summary>
/// <param name="paraCategory"></param>
/// <returns></returns>
public ParaTargetValVM GetParaTargetVal(string paraCategory)
{
ParaTargetValVM paraTargetVal = new ParaTargetValVM();
var paraConfig = QueryTargetValWithParaCodeByParaCategery(paraCategory).ToList();
for (int i = 0; i < paraConfig.Count; i++)
{
if(paraConfig[i].ParaCode == "STF1MS")
{
paraTargetVal.STF1TargetVal = paraConfig[i].TargetVal.ToString();
continue;
}
else if (paraConfig[i].ParaCode == "STF2MS")
{
paraTargetVal.STF2TargetVal = paraConfig[i].TargetVal.ToString();
continue;
}
else if (paraConfig[i].ParaCode == "DZPZF1")
{
paraTargetVal.PZF1TargetVal = paraConfig[i].TargetVal.ToString();
continue;
}
else if (paraConfig[i].ParaCode == "DZPZF2")
{
paraTargetVal.PZF2TargetVal = paraConfig[i].TargetVal.ToString();
continue;
}
else if (paraConfig[i].ParaCode == "SB1ZS")
{
paraTargetVal.SB1TargetVal = paraConfig[i].TargetVal.ToString();
continue;
}
else if (paraConfig[i].ParaCode == "SB2ZS")
{
paraTargetVal.SB2TargetVal = paraConfig[i].TargetVal.ToString();
continue;
}
else if (paraConfig[i].ParaCode == "SB3ZS")
{
paraTargetVal.SB3TargetVal = paraConfig[i].TargetVal.ToString();
continue;
}
}
return paraTargetVal;
}
/// <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, "操作成功!");
}
}
}