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
{
//var temp = db.Queryable().Where(m => m.ProductType == productType && m.IsActive);
return db.Queryable().Where(m => m.ProductType == productType && m.IsActive);
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行ParaConfigService下QueryActiveParaConfigsByProductType时异常");
return null;
}
}
private ISugarQueryable QueryTargetValWithParaCodeByParaCategery(string paraCategory)
{
try
{
var temp = db.Queryable().Where(m => m.ParaCategory == paraCategory && m.IsActive);
return temp;
}catch (Exception ex)
{
LogHelper.Error(ex, "执行ParaConfigService下QueryTargetValWithParaCodeByParaCategery时异常");
return null;
}
}
///
/// 根据参数种类查询有效参数配置项,例如传“BZ1”、“BZ2”
///
///
///
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;
}
///
/// 根据产品型号查询参数配置项
///
///
///
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, "操作成功!");
}
}
}