CNCEC_SUBQHSE_WUHUAN/SGGL/BLL/TestRun/TestRunConstructSolutionSer...

473 lines
22 KiB
C#
Raw Normal View History

2024-02-28 16:45:20 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
namespace BLL
{
public class TestRunConstructSolutionService
{
public static string IsAgree(Object type, Object res)
{
string result = string.Empty;
if (type.ToString().Equals(Const.TestRunConstructSolution_ReCompile) || type.ToString().Equals(Const.TestRunConstructSolution_Compile))
{
res = null;
}
if (res != null)
{
if (Convert.ToBoolean(res))
{
result = "是";
}
else
{
result = "否";
}
}
return result;
}
/// <summary>
/// 根据方案审查Id删除一个方案审查信息
/// </summary>
/// <param name="constructSolutionCode">方案审查Id</param>
public static void DeleteConstructSolution(string constructSolutionId)
{
Model.SGGLDB db = Funs.DB;
Model.Solution_TestRunConstructSolution constructSolution = db.Solution_TestRunConstructSolution.First(e => e.ConstructSolutionId == constructSolutionId);
db.Solution_TestRunConstructSolution.DeleteOnSubmit(constructSolution);
db.SubmitChanges();
}
/// <summary>
/// 增加方案审查信息
/// </summary>
/// <param name="constructSolution">方案审查实体</param>
public static void AddConstructSolution(Model.Solution_TestRunConstructSolution constructSolution)
{
Model.SGGLDB db = Funs.DB;
Model.Solution_TestRunConstructSolution newConstructSolution = new Model.Solution_TestRunConstructSolution();
newConstructSolution.ConstructSolutionId = constructSolution.ConstructSolutionId;
newConstructSolution.Code = constructSolution.Code;
newConstructSolution.ProjectId = constructSolution.ProjectId;
newConstructSolution.UnitId = constructSolution.UnitId;
newConstructSolution.SolutionName = constructSolution.SolutionName;
newConstructSolution.SolutionType = constructSolution.SolutionType;
newConstructSolution.UnitWorkIds = constructSolution.UnitWorkIds;
newConstructSolution.CNProfessionalCodes = constructSolution.CNProfessionalCodes;
newConstructSolution.AttachUrl = constructSolution.AttachUrl;
newConstructSolution.CompileMan = constructSolution.CompileMan;
newConstructSolution.CompileDate = constructSolution.CompileDate;
newConstructSolution.State = constructSolution.State;
newConstructSolution.Edition = constructSolution.Edition;
newConstructSolution.SpecialSchemeTypeId = constructSolution.SpecialSchemeTypeId;
newConstructSolution.Content = constructSolution.Content;
2024-03-05 11:22:03 +08:00
newConstructSolution.System = constructSolution.System;
2024-02-28 16:45:20 +08:00
db.Solution_TestRunConstructSolution.InsertOnSubmit(newConstructSolution);
db.SubmitChanges();
}
/// <summary>
/// 修改方案审查信息
/// </summary>
/// <param name="constructSolution">方案审查实体</param>
public static void UpdateConstructSolution(Model.Solution_TestRunConstructSolution constructSolution)
{
Model.SGGLDB db = Funs.DB;
Model.Solution_TestRunConstructSolution newConstructSolution = db.Solution_TestRunConstructSolution.First(e => e.ConstructSolutionId == constructSolution.ConstructSolutionId);
newConstructSolution.Code = constructSolution.Code;
newConstructSolution.UnitId = constructSolution.UnitId;
newConstructSolution.SolutionName = constructSolution.SolutionName;
newConstructSolution.SolutionType = constructSolution.SolutionType;
newConstructSolution.UnitWorkIds = constructSolution.UnitWorkIds;
newConstructSolution.CNProfessionalCodes = constructSolution.CNProfessionalCodes;
newConstructSolution.AttachUrl = constructSolution.AttachUrl;
newConstructSolution.State = constructSolution.State;
newConstructSolution.Edition = constructSolution.Edition;
newConstructSolution.SpecialSchemeTypeId = constructSolution.SpecialSchemeTypeId;
newConstructSolution.Content = constructSolution.Content;
2024-03-05 11:22:03 +08:00
newConstructSolution.System = constructSolution.System;
2024-02-28 16:45:20 +08:00
db.SubmitChanges();
}
/// <summary>
/// 把状态转换代号为文字形式
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
///
public static string ConvertState(object state)
{
if (state != null)
{
if (state.ToString() == BLL.Const.TestRunConstructSolution_ReCompile)
{
return "重报";
}
else if (state.ToString() == BLL.Const.TestRunConstructSolution_Compile)
{
return "编制";
}
else if (state.ToString() == BLL.Const.TestRunConstructSolution_Audit)
{
2024-03-05 11:22:03 +08:00
return "审核";
}
else if (state.ToString() == BLL.Const.TestRunConstructSolution_Audit2)
{
return "审批";
2024-02-28 16:45:20 +08:00
}
else if (state.ToString() == BLL.Const.TestRunConstructSolution_Complete)
{
2024-03-05 11:22:03 +08:00
return "发布";
2024-02-28 16:45:20 +08:00
}
}
return "";
}
/// <summary>
/// 获取单位信息中的常用工程类型信息
/// </summary>
/// <returns></returns>
public static ListItem[] GetSolutionType()
{
2024-03-05 11:22:03 +08:00
ListItem[] list = new ListItem[12];
2024-02-28 16:45:20 +08:00
list[0] = new ListItem("01 开车文件编制计划", "01");
list[1] = new ListItem("02 单机试车方案", "02");
list[2] = new ListItem("03 冲洗吹扫方案", "03");
list[3] = new ListItem("04 气密试验方案", "04");
list[4] = new ListItem("05 化洗清洗方案", "05");
list[5] = new ListItem("06 烘炉方案", "06");
list[6] = new ListItem("07 催化剂装填方案", "07");
list[7] = new ListItem("08 联动试车方案", "08");
list[8] = new ListItem("09 投料试车方案", "09");
list[9] = new ListItem("10 性能考核方案", "10");
list[10] = new ListItem("11 其他方案(如:真空试验、升温还原、煮炉、预冷、预热等)", "11");
list[11] = new ListItem("12 总体试车方案", "12");
2024-03-05 11:22:03 +08:00
//list[12] = new ListItem("13 方案审查记录", "13");
2024-02-28 16:45:20 +08:00
return list;
}
/// <summary>
/// 根据方案审查Id获取一个方案审查信息
/// </summary>
/// <param name="constructSolutionCode">方案审查Id</param>
/// <returns>一个方案审查实体</returns>
public static Model.Solution_TestRunConstructSolution GetConstructSolutionByConstructSolutionId(string constructSolutionId)
{
return Funs.DB.Solution_TestRunConstructSolution.FirstOrDefault(x => x.ConstructSolutionId == constructSolutionId);
}
public static Model.Solution_TestRunConstructSolution GetConstructSolutionByConstructSolutionIdForApi(string constructSolutionId)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
Model.Solution_TestRunConstructSolution solution = db.Solution_TestRunConstructSolution.FirstOrDefault(x => x.ConstructSolutionId == constructSolutionId);
solution.AttachUrl = AttachFileService.getFileUrl(solution.ConstructSolutionId);
solution.CNProfessionalCodes = solution.CNProfessionalCodes + "$" + GetProfessionalName(solution.CNProfessionalCodes);
solution.UnitWorkIds = solution.UnitWorkIds + "$" + GetUnitWorkName(solution.UnitWorkIds);
var unit = BLL.UnitService.GetUnitByUnitId(solution.UnitId);
solution.UnitId = solution.UnitId + "$" + (unit != null ? unit.UnitName : "");
solution.CompileMan = solution.CompileMan + "$" + UserService.GetUserNameByUserId(solution.CompileMan);
return solution;
}
}
/// <summary>
/// 获取方案类别
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
public static string ConvertSolutionType(object solutionType)
{
if (solutionType != null)
{
ListItem[] list = GetSolutionType();
var item = list.FirstOrDefault(x => x.Value == solutionType.ToString());
if (item != null)
{
return item.Text.Substring(3);
}
}
return "";
}
public static string GetProfessionalName(string cNProfessionalCodes)
{
string professionalName = string.Empty;
if (!string.IsNullOrEmpty(cNProfessionalCodes))
{
string[] strs = cNProfessionalCodes.Split(',');
foreach (var item in strs)
{
var cn = BLL.CNProfessionalService.GetCNProfessional(item);
if (cn != null)
{
professionalName += cn.ProfessionalName + ",";
}
}
if (!string.IsNullOrEmpty(professionalName))
{
professionalName = professionalName.Substring(0, professionalName.LastIndexOf(","));
}
}
return professionalName;
}
public static string GetUnitWorkName(string unitWorkIds)
{
string unitWorkName = string.Empty;
if (!string.IsNullOrEmpty(unitWorkIds))
{
string[] strs = unitWorkIds.Split(',');
foreach (var item in strs)
{
var un = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(item);
if (un != null)
{
unitWorkName += un.UnitWorkName + BLL.UnitWorkService.GetProjectType(un.ProjectType) + ",";
}
}
if (!string.IsNullOrEmpty(unitWorkName))
{
unitWorkName = unitWorkName.Substring(0, unitWorkName.LastIndexOf(","));
}
}
return unitWorkName;
}
public static List<Model.Solution_TestRunConstructSolution> getListDataForApi(string name, string unitId, string unitWork, string cNProfessionalCodes, string solutionType, string state, string projectId, int startRowIndex, int maximumRows)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
IQueryable<Model.Solution_TestRunConstructSolution> q = db.Solution_TestRunConstructSolution;
if (!string.IsNullOrEmpty(projectId))
{
q = q.Where(e => e.ProjectId == projectId);
}
if (!string.IsNullOrEmpty(unitId) && unitId != "undefined")
{
q = q.Where(e => e.UnitId == unitId);
}
if (!string.IsNullOrEmpty(unitWork) && unitWork != "undefined")
{
q = q.Where(e => e.UnitWorkIds.Contains(unitWork));
}
if (!string.IsNullOrEmpty(cNProfessionalCodes) && cNProfessionalCodes != "undefined")
{
q = q.Where(e => e.CNProfessionalCodes.Contains(cNProfessionalCodes));
}
if (!string.IsNullOrEmpty(solutionType) && solutionType != "undefined")
{
q = q.Where(e => e.SolutionType == solutionType);
}
if (!string.IsNullOrEmpty(state) && state != "undefined")
{
if ("已闭合" == state)
{
q = q.Where(e => e.State == "3");
}
else if ("未闭合" == state)
{
q = q.Where(e => e.State != "3");
}
}
if (!string.IsNullOrEmpty(name))
{
List<string> ids = new List<string>();
var qunit = from u in Funs.DB.Base_Unit
where u.UnitName.Contains(name)
select u.UnitId;
ids = qunit.ToList();
q = q.Where(e => e.SolutionName.Contains(name) || ids.Contains(e.UnitId));
}
var qlist = from x in q
orderby x.Code descending
select new
{
x.ConstructSolutionId,
x.Code,
x.ProjectId,
x.UnitId,
UnitName = (from y in db.Base_Unit where y.UnitId == x.UnitId select y.UnitName).First(),
x.SolutionName,
x.SolutionType,
x.UnitWorkIds,
UnitWorkName = GetUnitWorkName(x.UnitWorkIds),
x.CNProfessionalCodes,
ProfessionalName = GetProfessionalName(x.CNProfessionalCodes),
x.AttachUrl,
x.CompileMan,
x.CompileDate,
x.State,
x.Edition,
CompileManName = (from y in db.Sys_User where y.UserId == x.CompileMan select y.UserName).First(),
};
List<Model.Solution_TestRunConstructSolution> res = new List<Model.Solution_TestRunConstructSolution>();
var qres = qlist.Skip(startRowIndex * maximumRows).Take(maximumRows).ToList();
foreach (var item in qres)
{
Model.Solution_TestRunConstructSolution cs = new Model.Solution_TestRunConstructSolution();
cs.ConstructSolutionId = item.ConstructSolutionId;
cs.Code = item.Code;
cs.ProjectId = item.ProjectId;
cs.UnitId = item.UnitId + "$" + item.UnitName;
cs.SolutionName = item.SolutionName;
cs.SolutionType = item.SolutionType;
cs.UnitWorkIds = item.UnitWorkIds + "$" + item.UnitWorkName;
cs.CNProfessionalCodes = item.CNProfessionalCodes + "$" + item.ProfessionalName;
cs.AttachUrl = item.AttachUrl;
cs.CompileMan = item.CompileMan + "$" + item.CompileManName;
cs.CompileDate = item.CompileDate;
cs.State = item.State;
cs.Edition = item.Edition;
res.Add(cs);
}
return res;
}
}
public static List<Model.Solution_TestRunConstructSolution> getListDataForApi(string name, string projectId, int startRowIndex, int maximumRows)
{
var db = Funs.DB;
IQueryable<Model.Solution_TestRunConstructSolution> q = db.Solution_TestRunConstructSolution;
if (!string.IsNullOrEmpty(projectId))
{
q = q.Where(e => e.ProjectId == projectId);
}
if (!string.IsNullOrEmpty(name))
{
List<string> ids = new List<string>();
var qunit = from u in Funs.DB.Base_Unit
where u.UnitName.Contains(name)
select u.UnitId;
ids = qunit.ToList();
q = q.Where(e => e.SolutionName.Contains(name) || ids.Contains(e.UnitId));
}
var qlist = from x in q
orderby x.Code descending
select new
{
x.ConstructSolutionId,
x.Code,
x.ProjectId,
x.UnitId,
UnitName = (from y in db.Base_Unit where y.UnitId == x.UnitId select y.UnitName).First(),
x.SolutionName,
x.SolutionType,
x.UnitWorkIds,
UnitWorkName = GetUnitWorkName(x.UnitWorkIds),
x.CNProfessionalCodes,
ProfessionalName = GetProfessionalName(x.CNProfessionalCodes),
x.AttachUrl,
x.CompileMan,
x.CompileDate,
x.State,
x.Edition,
CompileManName = (from y in db.Sys_User where y.UserId == x.CompileMan select y.UserName).First(),
};
List<Model.Solution_TestRunConstructSolution> res = new List<Model.Solution_TestRunConstructSolution>();
var qres = qlist.Skip(startRowIndex * maximumRows).Take(maximumRows).ToList();
foreach (var item in qres)
{
Model.Solution_TestRunConstructSolution cs = new Model.Solution_TestRunConstructSolution();
cs.ConstructSolutionId = item.ConstructSolutionId;
cs.Code = item.Code;
cs.ProjectId = item.ProjectId;
cs.UnitId = item.UnitId + "$" + item.UnitName;
cs.SolutionName = item.SolutionName;
cs.SolutionType = item.SolutionType;
cs.UnitWorkIds = item.UnitWorkIds + "$" + item.UnitWorkName;
cs.CNProfessionalCodes = item.CNProfessionalCodes + "$" + item.ProfessionalName;
cs.AttachUrl = AttachFileService.getFileUrl(item.ConstructSolutionId);
cs.CompileMan = item.CompileMan + "$" + item.CompileManName;
cs.CompileDate = item.CompileDate;
cs.State = item.State;
cs.Edition = item.Edition;
res.Add(cs);
}
return res;
}
public static void UpdateConstructSolutionForApi(Model.Solution_TestRunConstructSolution constructSolution)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
Model.Solution_TestRunConstructSolution newConstructSolution = db.Solution_TestRunConstructSolution.First(e => e.ConstructSolutionId == constructSolution.ConstructSolutionId);
if (!string.IsNullOrEmpty(constructSolution.Code))
newConstructSolution.Code = constructSolution.Code;
if (!string.IsNullOrEmpty(constructSolution.UnitId))
newConstructSolution.UnitId = constructSolution.UnitId;
if (!string.IsNullOrEmpty(constructSolution.SolutionName))
newConstructSolution.SolutionName = constructSolution.SolutionName;
if (!string.IsNullOrEmpty(constructSolution.SolutionType))
newConstructSolution.SolutionType = constructSolution.SolutionType;
if (!string.IsNullOrEmpty(constructSolution.UnitWorkIds))
newConstructSolution.UnitWorkIds = constructSolution.UnitWorkIds;
if (!string.IsNullOrEmpty(constructSolution.CNProfessionalCodes))
newConstructSolution.CNProfessionalCodes = constructSolution.CNProfessionalCodes;
if (!string.IsNullOrEmpty(constructSolution.AttachUrl))
newConstructSolution.AttachUrl = constructSolution.AttachUrl;
if (!string.IsNullOrEmpty(constructSolution.State))
newConstructSolution.State = constructSolution.State;
if (constructSolution.Edition.HasValue)
newConstructSolution.Edition = constructSolution.Edition;
db.SubmitChanges();
}
}
2024-03-05 11:22:03 +08:00
public static void Init(FineUIPro.DropDownList dropName, string state, bool isShowPlease)
{
dropName.DataValueField = "Value";
dropName.DataTextField = "Text";
dropName.DataSource = GetDHandleTypeByState(state);
dropName.DataBind();
if (isShowPlease)
{
Funs.FineUIPleaseSelect(dropName);
}
}
/// <summary>
/// 根据状态选择下一步办理类型
/// </summary>
/// <param name="state"></param>
/// <returns></returns>
public static ListItem[] GetDHandleTypeByState(string state)
{
if (state == Const.TestRunConstructSolution_Compile || state == Const.TestRunConstructSolution_ReCompile) //无是否同意
{
ListItem[] lis = new ListItem[1];
lis[0] = new ListItem("审核", Const.TestRunConstructSolution_Audit);
return lis;
}
else if (state == Const.TestRunConstructSolution_Audit)//有是否同意
{
ListItem[] lis = new ListItem[2];
lis[0] = new ListItem("审批", Const.TestRunConstructSolution_Audit2);//是 加载
lis[1] = new ListItem("重新编制", Const.TestRunConstructSolution_ReCompile);//否加载
return lis;
}
else if (state == Const.TestRunConstructSolution_Audit2)//无是否同意
{
ListItem[] lis = new ListItem[2];
lis[0] = new ListItem("发布", Const.TestRunConstructSolution_Complete);
lis[1] = new ListItem("重新编制", Const.TestRunConstructSolution_ReCompile);
return lis;
}
else
return null;
}
2024-02-28 16:45:20 +08:00
}
}