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

707 lines
35 KiB

using FactorySystemCommon;
using FactorySystemModel.BusinessModel;
using FactorySystemModel.EnumModel;
using FactorySystemModel.SqlSugarModel;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Web;
namespace FactorySystemBll
{
public class BaseBll
{
/// <summary>
/// 修改数据信息
/// </summary>
public static int UpdateDataModel(Dictionary<string, object> updateModel, string tableName)
{
return AppSettingsHelper.GetSqlSugar().Updateable(updateModel).AS(tableName).WhereColumns("FID").ExecuteCommand();
}
/// <summary>
/// 修改数据信息
/// </summary>
public static int UpdateDataModel(dynamic updateModel)
{
return AppSettingsHelper.GetSqlSugar().Updateable(updateModel).ExecuteCommand();
}
/// <summary>
/// 删除数据信息
/// </summary>
public int DeleteDataById(Dictionary<string, object> updateModel, string tableName, bool realDel = false)
{
if (updateModel.TryGetValue("FID", out object objId) || updateModel.TryGetValue("dataId", out objId))
{
if (updateModel.ContainsKey("dataId")) updateModel.Remove("dataId");
if (updateModel.ContainsKey("FID")) updateModel.Remove("FID");
if (realDel)
{
return AppSettingsHelper.GetSqlSugar().Deleteable<object>().AS(tableName).Where("FID=" + objId).ExecuteCommand();
}
else
{
updateModel.Add("FDeleted", (int)Constant.DeleteCode.);
return AppSettingsHelper.GetSqlSugar().Updateable(updateModel).AS(tableName).Where("FID=" + objId).ExecuteCommand();
}
}
return 0;
}
/// <summary>
/// 删除数据信息
/// </summary>
public int DeleteDataById(int dataId, string tableName, bool realDel = false)
{
Dictionary<string, object> updateModel = new Dictionary<string, object>();
updateModel.Add("FID", dataId);
return DeleteDataById(updateModel, tableName, realDel);
}
/// <summary>
/// 新增数据信息
/// </summary>
public int InsertDataModel(Dictionary<string, object> insertData, string tableName)
{
var model= AppSettingsHelper.GetSqlSugar().Insertable(insertData).AS(tableName).ExecuteReturnIdentity();
return model;
}
/// <summary>
/// 公共列表接口(前缀未Or_的为或条件检索后缀为ID的是多唯一编号检索)
/// </summary>
public object GetPageList<T>(Dictionary<string, object> updateModel, out int totalCount, string selectKey = null, string orderBy = "FID desc")
{
totalCount = 0;
int pageIndex = 1, pageSize = 15;
List<string> paramName = new List<string>() { "FDeleted!=1" };
List<SugarParameter> paramVal = new List<SugarParameter>();
if (updateModel != null && updateModel.Count > 0)
{
List<string> orList = new List<string>();
if (updateModel.TryGetValue("FPageOrderBy", out object orderBy2))
{
updateModel.Remove("FPageOrderBy");
orderBy = HttpUtility.UrlEncode(orderBy2.ToString());
if (string.IsNullOrEmpty(orderBy)) orderBy = "FID desc";
}
foreach (var item in updateModel)
{
if (item.Key == "FPageIndex" || item.Key == "PageIndex")
{
int.TryParse(item.Value.ToString(), out pageIndex);
}
else if (item.Key == "FPageSize" || item.Key == "PageSize")
{
int.TryParse(item.Value.ToString(), out pageSize);
}
else
{
try
{
string keyVal = "@" + item.Key;
string keyName = item.Key;
if (item.Key.EndsWith("ID")) keyVal = "','+" + keyVal + "+','";
if (item.Key.StartsWith("Or_"))
{
keyName = keyName.Replace("Or_", "");
keyVal = keyVal.Replace("Or_", "");
orList.Add("','+cast(" + keyName + " as varchar(400))+',' like '%'+" + keyVal + "+'%'");
}
else
{
paramName.Add("','+cast(" + keyName + " as varchar(400))+',' like '%'+" + keyVal + "+'%'");
}
paramVal.Add(new SugarParameter("@" + keyName, item.Value.ToString()));
}
catch (Exception) { }
}
}
if (orList.Count() > 0) paramName.Add("(" + string.Join(" or ", orList) + ")");
}
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
var temp = db.Queryable<T>().Where(string.Join(" and ", paramName), paramVal).OrderBy(orderBy);
if (!string.IsNullOrEmpty(selectKey)) temp = temp.Select(selectKey);
return temp.ToPageList(pageIndex, pageSize, ref totalCount);
}
/// <summary>
/// 根据类型获取字段对应关系
/// </summary>
public List<TFS_FieldInfo> GetFileInfoList(int typeId)
{
return AppSettingsHelper.GetSqlSugar().Queryable<TFS_FieldInfo>().Where(s => s.FDeleted != (int)Constant.DeleteCode.
&& s.FType == typeId).OrderBy(s => s.FOrder).ToList();
}
/// <summary>
/// 根据键获取设置值
/// </summary>
public string GetSettingByKey(string setKey)
{
TFS_Setting setting = AppSettingsHelper.GetSqlSugar().Queryable<TFS_Setting>().Where(s => s.FState == 1 && s.FKey == setKey)
.OrderBy(s => s.FID, OrderByType.Desc).First();
if (setting != null) return setting.FValue;
return "";
}
/// <summary>
/// 根据键获取数据
/// </summary>
public static T GetTempModel<T>(int dataId, string keys = "")
{
if (string.IsNullOrEmpty(keys))
return AppSettingsHelper.GetSqlSugar().Queryable<T>().Where("FID=" + dataId).First();
return AppSettingsHelper.GetSqlSugar().Queryable<T>().Where("FID=" + dataId).Select(keys).First();
}
/// <summary>
/// 根据键获取数据
/// </summary>
public static T GetTempModel<T>(string where, string keys = "")
{
if (string.IsNullOrEmpty(keys))
return AppSettingsHelper.GetSqlSugar().Queryable<T>().Where(where).First();
return AppSettingsHelper.GetSqlSugar().Queryable<T>().Where(where).Select(keys).First();
}
/// <summary>
/// 根据键获取数据
/// </summary>
public Dictionary<string, object> GetTempDict<T>(int dataId, string keys = "")
{
if (string.IsNullOrEmpty(keys))
return AppSettingsHelper.GetSqlSugar().Queryable<T>().Where("FID=" + dataId).ToDictionaryList().FirstOrDefault();
return AppSettingsHelper.GetSqlSugar().Queryable<T>().Where("FID=" + dataId).Select<dynamic>(keys).ToDictionaryList().FirstOrDefault();
}
/// <summary>
/// 事项变更修改流程进度
/// proProgress事项文字类型对应F+proProgress
/// proState事项状态0未开始1进行中2已完成
/// </summary>
public void UpdateTeamProcess(int teamId, int proType, int proProgress, int proState = -1, string appWhere = "1=1")
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
TBasicCode basicCode = db.Queryable<TBasicCode>().Where(s => s.FValue == proType.ToString()
&& s.FType == (int)Constant.BasicCode.).First();
if (basicCode != null)
{
Dictionary<string, object> updateModel = new Dictionary<string, object>();
switch (proProgress)
{
case 1:
updateModel.Add("FDesc", basicCode.F1);
break;
case 2:
updateModel.Add("FDesc", basicCode.F2);
break;
case 3:
updateModel.Add("FDesc", basicCode.F3);
break;
case 4:
updateModel.Add("FDesc", basicCode.F4);
break;
case 5:
updateModel.Add("FDesc", basicCode.F5);
break;
}
if (proState > 0)
{
updateModel.Add("FState", proState);
if (proState == 1) updateModel.Add("FStartDate", DateTime.Now);
else if (proState == 2) updateModel.Add("FFinishDate", DateTime.Now);
}
updateModel.Add("FProgress", proProgress);
db.Updateable<TFS_FTeamProcess>(updateModel).Where(s => s.FTeamID == teamId && s.FType == proType)
.Where(appWhere).ExecuteCommand();
}
}
/// <summary>
/// 试验号变更修改流程进度
/// </summary>
/// <param name="teamId"></param>
/// <param name="proType"></param>
/// <param name="proProgress"></param>
/// <param name="proState"></param>
/// <param name="appWhere"></param>
public void UpdateTeamProcess2(int teamId, int proType, int proProgress, int proState = -1, string appWhere = "1=1")
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
TBasicCode basicCode = db.Queryable<TBasicCode>().Where(s => s.FValue == proType.ToString()
&& s.FType == (int)Constant.BasicCode.).First();
if (basicCode != null)
{
Dictionary<string, object> updateModel = new Dictionary<string, object>();
switch (proProgress)
{
case 1:
updateModel.Add("FDesc", basicCode.F1);
break;
case 2:
updateModel.Add("FDesc", basicCode.F2);
break;
case 3:
updateModel.Add("FDesc", basicCode.F3);
break;
case 4:
updateModel.Add("FDesc", basicCode.F4);
break;
case 5:
updateModel.Add("FDesc", basicCode.F5);
break;
}
if (proState > 0)
{
updateModel.Add("FState", proState);
if (proState == 1) updateModel.Add("FStartDate", DateTime.Now);
else if (proState == 2) updateModel.Add("FFinishDate", DateTime.Now);
}
updateModel.Add("FProgress", proProgress);
db.Updateable<TFS_MaterialFTeamProcess>(updateModel).Where(s => s.FTeamID == teamId && s.FType == proType)
.Where(appWhere).ExecuteCommand();
}
}
/// <summary>
/// 创建数据库表
/// </summary>
public void CreateSqlSugarModel(string likeName)
{
string porPath = AppDomain.CurrentDomain.BaseDirectory.Trim('\\') + "\\SqlSugarModel";
porPath = porPath.Replace("/", "\\").Replace("FactorySystemApi\\FactorySystemApi", "FactorySystemApi\\FactorySystemModel");
string nameSpace = "FactorySystemModel.SqlSugarModel";
AppSettingsHelper.GetSqlSugar().DbFirst.Where(it => it.Contains(likeName)).IsCreateAttribute().CreateClassFile(porPath, nameSpace);
}
/// <summary>
/// 创建事项
/// </summary>
public static void CreateTaskData(int teamId, int userId, string taskTypes, string factoryId = "", bool onceMore = true, SqlSugarClient db = null)
{
List<TFS_Task> insertList = new List<TFS_Task>();
List<TFS_Task> updateList = new List<TFS_Task>();
List<MessageDto> messageList = new List<MessageDto>();
try
{
if (db == null) db = AppSettingsHelper.GetSqlSugar();
List<string> taskTypeList = taskTypes.Split(',').ToList();
List<TBasicCode> basicCodeList = db.Queryable<TBasicCode>().Where(s => s.FType == (int)Constant.BasicCode.
&& s.FState == 1 && taskTypeList.Contains(s.FValue)).ToList();
PropertyInfo[] basicCodeProps = typeof(TBasicCode).GetProperties();
for (int i = 0; i < taskTypeList.Count; i++)
{
TBasicCode basicCode = basicCodeList.Find(s => s.FValue == taskTypeList[i]);
if (basicCode == null) continue;
string[] temps = basicCode.FRemark.Split('_');
int temp0 = int.Parse(temps[0]), funcType = -1;
string taskDesc = basicCode.F1;
List<string> funcVal = new List<string>();
switch (temp0)
{
case (int)Constant.BasicCode.:
funcType = (int)Constant.RoleType.;
funcVal.Add(temps[1]);
break;
case (int)Constant.BasicCode.:
funcType = (int)Constant.RoleType.;
string tType = temps[1];
funcVal = db.Queryable<TBasicCode>().Where(s => s.FType == (int)Constant.BasicCode. &&
s.F1 == tType && s.FState == 1).Select(s => s.FValue).ToList();
break;
}
if (funcType > 0)
{
List<TUser> users = db.Queryable<TUser, TRole_Right>((a, b) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID))
.Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString()))
.Where(string.IsNullOrEmpty(factoryId) ? "1=1" : string.Format("a.FFactoryID in({0})", factoryId))
.GroupBy("a.FID,a.FFactoryID,a.FName,a.FUser").Select<TUser>("a.FID,a.FFactoryID,a.FName,a.FUser").ToList();
if (users.Count() > 0)
{
if (string.IsNullOrEmpty(factoryId))
{
TFS_Task newTask = new TFS_Task()
{
FName = basicCode.FName,
FDesc = taskDesc,
FTeamID = teamId,
FEditUser = userId,
FFactoryID = -1,
FAddDate = DateTime.Now,
FCanEdit = 1,
FEditDate = DateTime.Now,
FType = int.Parse(basicCode.FValue),
FUserID = string.Join(",", users.GroupBy(ss => ss.FID).Select(sss => sss.Key)),
FUserName = string.Join("、", users.GroupBy(ss => ss.FName).Select(sss => sss.Key)),
FState = 1
};
TFS_Task oldTask = db.Queryable<TFS_Task>().Where(s => s.FTeamID == teamId && s.FType == newTask.FType
&& s.FFactoryID == newTask.FFactoryID).First();
if (oldTask == null)
{
insertList.Add(newTask);
messageList.Add(new MessageDto()
{
message = newTask.FDesc,
userId = string.Join(",", users.GroupBy(ss => ss.FDockID).Select(sss => sss.Key))
});
}
else
{
oldTask.FUserID = newTask.FUserID;
updateList.Add(oldTask);
}
}
else
{
foreach (var factory in users.GroupBy(s => s.FFactoryID))
{
TFS_Task newTask = new TFS_Task()
{
FName = basicCode.FName,
FDesc = taskDesc,
FTeamID = teamId,
FEditUser = userId,
FFactoryID = factory.Key,
FAddDate = DateTime.Now,
FCanEdit = 1,
FEditDate = DateTime.Now,
FType = int.Parse(basicCode.FValue),
FUserID = string.Join(",", factory.GroupBy(ss => ss.FID).Select(sss => sss.Key)),
FUserName = string.Join("、", factory.GroupBy(ss => ss.FName).Select(sss => sss.Key)),
FState = 1
};
TFS_Task oldTask = db.Queryable<TFS_Task>().Where(s => s.FTeamID == teamId && s.FType == newTask.FType
&& s.FFactoryID == factory.Key).First();
if (oldTask == null)
{
insertList.Add(newTask);
messageList.Add(new MessageDto()
{
message = newTask.FDesc,
userId = string.Join(",", factory.GroupBy(ss => ss.FDockID).Select(sss => sss.Key))
});
}
else
{
oldTask.FUserID = newTask.FUserID;
updateList.Add(oldTask);
}
}
}
}
}
}
if (insertList.Count() > 0)
{
db.Insertable(insertList).ExecuteCommand();
SendWeChatMessage(messageList);
}
if (updateList.Count() > 0) db.Updateable(updateList).ExecuteCommand();
}
catch (Exception ex)
{
if (onceMore)
{
CreateTaskData(teamId, userId, taskTypes, factoryId, false);
}
else
{
insertList.AddRange(updateList);
ExceptionHelper.AddSystemJournal(null, insertList, ex.Message, userId, "TeamworkBll.CreateTaskData");
}
}
}
public static int CreateMaterialTask(int teamId, int userId, int type, int factoryId)
{
SqlSugarClient db = AppSettingsHelper.GetSqlSugar();
int funcType = (int)Constant.RoleType.;
string tType = "10";
int taskId = -1;
try
{
List<string> funcVal = db.Queryable<TBasicCode>().Where(s => s.FType == (int)Constant.BasicCode. && s.F1 == tType && s.FState == 1).Select(s => s.FValue).ToList();
List<TUser> users = db.Queryable<TUser, TRole_Right>((a, b) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID))
.Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString()))
.Where(string.Format("a.FFactoryID in({0})", factoryId))
.GroupBy("a.FID,a.FFactoryID,a.FName,a.FUser").Select<TUser>("a.FID,a.FFactoryID,a.FName,a.FUser").ToList();
if (users.Count > 0) {
TFS_FMaterialTask materialTask = new TFS_FMaterialTask();
materialTask.FMaterialTeamID = teamId;
materialTask.FType = type;
materialTask.FFactoryID = factoryId;
materialTask.FCanEdit = 1;
materialTask.FAddUser = userId;
materialTask.FAddDate = DateTime.Now;
materialTask.FState = 1;
if (type == 15)
{
materialTask.FName = "物料分类";
materialTask.FDesc = "物料分类选择";
}
else
{
materialTask.FName = "物料视图";
materialTask.FDesc = "物料视图编辑";
}
materialTask.FUserID = string.Join(",", users.GroupBy(ss => ss.FID).Select(sss => sss.Key));
materialTask.FUserName = string.Join("、", users.GroupBy(ss => ss.FName).Select(sss => sss.Key));
taskId = db.Insertable(materialTask).IgnoreColumns(true).ExecuteReturnIdentity();
}
}
catch (Exception ex)
{
taskId = -1;
}
return taskId;
}
/// <summary>
/// 更换试验号流程创建事项
/// </summary>
public static void CreateTaskData2(int teamId, int userId, string taskTypes, string factoryId = "", bool onceMore = true, SqlSugarClient db = null)
{
List<TFS_MaterialTask> insertList = new List<TFS_MaterialTask>();
List<TFS_MaterialTask> updateList = new List<TFS_MaterialTask>();
List<MessageDto> messageList = new List<MessageDto>();
try
{
if (db == null) db = AppSettingsHelper.GetSqlSugar();
List<string> taskTypeList = taskTypes.Split(',').ToList();
List<TBasicCode> basicCodeList = db.Queryable<TBasicCode>().Where(s => s.FType == (int)Constant.BasicCode.
&& s.FState == 1 && taskTypeList.Contains(s.FValue)).ToList();
PropertyInfo[] basicCodeProps = typeof(TBasicCode).GetProperties();
for (int i = 0; i < taskTypeList.Count; i++)
{
TBasicCode basicCode = basicCodeList.Find(s => s.FValue == taskTypeList[i]);
if (basicCode == null) continue;
string[] temps = basicCode.FRemark.Split('_');
int temp0 = int.Parse(temps[0]), funcType = -1;
string taskDesc = basicCode.F1;
List<string> funcVal = new List<string>();
switch (temp0)
{
case (int)Constant.BasicCode.:
funcType = (int)Constant.RoleType.;
funcVal.Add(temps[1]);
break;
case (int)Constant.BasicCode.:
funcType = (int)Constant.RoleType.;
string tType = temps[1];
funcVal = db.Queryable<TBasicCode>().Where(s => s.FType == (int)Constant.BasicCode. &&
s.F1 == tType && s.FState == 1).Select(s => s.FValue).ToList();
break;
}
if (funcType > 0)
{
List<TUser> users = db.Queryable<TUser, TRole_Right>((a, b) => new JoinQueryInfos(JoinType.Left, a.FRoleID == b.FRoleID))
.Where((a, b) => a.FState == 1 && a.FDeleted != 1 && b.FType == funcType && funcVal.Contains(b.FFunctionID.ToString()))
.Where(string.IsNullOrEmpty(factoryId) ? "1=1" : string.Format("a.FFactoryID in({0})", factoryId))
.GroupBy("a.FID,a.FFactoryID,a.FName,a.FUser").Select<TUser>("a.FID,a.FFactoryID,a.FName,a.FUser").ToList();
if (users.Count() > 0)
{
if (string.IsNullOrEmpty(factoryId))
{
TFS_MaterialTask newTask = new TFS_MaterialTask()
{
FName = basicCode.FName,
FDesc = taskDesc,
FTeamID = teamId,
FEditUser = userId,
FFactoryID = -1,
FAddDate = DateTime.Now,
FCanEdit = 1,
FEditDate = DateTime.Now,
FType = int.Parse(basicCode.FValue),
FUserID = string.Join(",", users.GroupBy(ss => ss.FID).Select(sss => sss.Key)),
FUserName = string.Join("、", users.GroupBy(ss => ss.FName).Select(sss => sss.Key)),
FState = 1
};
TFS_MaterialTask oldTask = db.Queryable<TFS_MaterialTask>().Where(s => s.FTeamID == teamId && s.FType == newTask.FType
&& s.FFactoryID == newTask.FFactoryID).First();
if (oldTask == null)
{
insertList.Add(newTask);
messageList.Add(new MessageDto()
{
message = newTask.FDesc,
userId = string.Join(",", users.GroupBy(ss => ss.FDockID).Select(sss => sss.Key))
});
}
else
{
oldTask.FUserID = newTask.FUserID;
updateList.Add(oldTask);
}
}
else
{
foreach (var factory in users.GroupBy(s => s.FFactoryID))
{
TFS_MaterialTask newTask = new TFS_MaterialTask()
{
FName = basicCode.FName,
FDesc = taskDesc,
FTeamID = teamId,
FEditUser = userId,
FFactoryID = factory.Key,
FAddDate = DateTime.Now,
FCanEdit = 1,
FEditDate = DateTime.Now,
FType = int.Parse(basicCode.FValue),
FUserID = string.Join(",", factory.GroupBy(ss => ss.FID).Select(sss => sss.Key)),
FUserName = string.Join("、", factory.GroupBy(ss => ss.FName).Select(sss => sss.Key)),
FState = 1
};
TFS_MaterialTask oldTask = db.Queryable<TFS_MaterialTask>().Where(s => s.FTeamID == teamId && s.FType == newTask.FType
&& s.FFactoryID == factory.Key).First();
if (oldTask == null)
{
insertList.Add(newTask);
messageList.Add(new MessageDto()
{
message = newTask.FDesc,
userId = string.Join(",", factory.GroupBy(ss => ss.FDockID).Select(sss => sss.Key))
});
}
else
{
oldTask.FUserID = newTask.FUserID;
updateList.Add(oldTask);
}
}
}
}
}
}
if (insertList.Count() > 0)
{
db.Insertable(insertList).ExecuteCommand();
SendWeChatMessage(messageList);
}
if (updateList.Count() > 0) db.Updateable(updateList).ExecuteCommand();
}
catch (Exception ex)
{
if (onceMore)
{
CreateTaskData(teamId, userId, taskTypes, factoryId, false);
}
else
{
insertList.AddRange(updateList);
ExceptionHelper.AddSystemJournal(null, insertList, ex.Message, userId, "TeamworkBll.CreateTaskData");
}
}
}
/// <summary>
/// 发送微信消息
/// </summary>
public static void SendWeChatMessage(List<MessageDto> messageList)
{
if (!AppSettingsHelper.GetAppSettingVal("SendWeChatMsg").Equals("1")) return;
WeChatMsg.SendPLMMsgInterface ws = new WeChatMsg.SendPLMMsgInterface();
string tempResult = "";
foreach (MessageDto msg in messageList)
{
foreach (string userId in msg.userId.Split(','))
{
try
{
tempResult = ws.SendMsg(userId, msg.message, "FMC");
}
catch (Exception)
{
ExceptionHelper.AddSystemJournal(null, msg, tempResult, -1, "BaseController.SendWeChatMessage");
}
}
}
}
/// <summary>
/// 事项变更SQL语句
/// </summary>
public static string GetTaskSql(int taskId, int taskState, int teamId = -1, int taskType = -1, int taskEdit = -1, string sqlAppend = "")
{
string updateSql = string.Format("a.FState={0}", taskState);
if (taskState == 2) updateSql += ",FFinishDate=isnull(a.FFinishDate, getdate())";
if (taskEdit > 0) updateSql += string.Format(",a.FCanEdit={0}", taskEdit);
List<string> whereSql = new List<string>();
if (taskId > 0) whereSql.Add(string.Format("a.FID={0}", taskId));
if (teamId > 0) whereSql.Add(string.Format("a.FTeamID={0}", teamId));
if (taskType > 0) whereSql.Add(string.Format("a.FType={0}", taskType));
if (whereSql.Count == 0 && string.IsNullOrEmpty(sqlAppend)) return "";
if (!string.IsNullOrEmpty(sqlAppend) && whereSql.Count > 0) sqlAppend = " and " + sqlAppend;
return string.Format(@"update a set {0} from TFS_Task a where {1} {2};", updateSql, string.Join(" and ", whereSql), sqlAppend);
}
/// <summary>
/// 试验号更换事项变更SQL语句
/// </summary>
public static string GetTaskSql2(int taskId, int taskState, int teamId = -1, int taskType = -1, int taskEdit = -1, string sqlAppend = "")
{
string updateSql = string.Format("a.FState={0}", taskState);
if (taskState == 2) updateSql += ",FFinishDate=isnull(a.FFinishDate, getdate())";
if (taskEdit > 0) updateSql += string.Format(",a.FCanEdit={0}", taskEdit);
List<string> whereSql = new List<string>();
if (taskId > 0) whereSql.Add(string.Format("a.FID={0}", taskId));
if (teamId > 0) whereSql.Add(string.Format("a.FTeamID={0}", teamId));
if (taskType > 0) whereSql.Add(string.Format("a.FType={0}", taskType));
if (whereSql.Count == 0 && string.IsNullOrEmpty(sqlAppend)) return "";
if (!string.IsNullOrEmpty(sqlAppend) && whereSql.Count > 0) sqlAppend = " and " + sqlAppend;
return string.Format(@"update a set {0} from TFS_Task a where {1} {2};", updateSql, string.Join(" and ", whereSql), sqlAppend);
}
/// <summary>
/// 流程变更SQL语句
/// </summary>
public static string GetProcessSql(int teamId, int proType, string viewDesc, int proState, string sqlAppend = "")
{
string timeSql = proState.ToString();
if (proState == 1) timeSql += ",FStartDate=getdate()";
else if (proState == 2) timeSql += ",FFinishDate=getdate()";
return string.Format(@"update a set a.FDesc=(select {2} from TBasicCode where FType=34 and FValue={1}),
FState={3} from TFS_FTeamProcess a where a.FTeamID={0} {5} and FType={1} {4};", teamId,
proType, viewDesc, timeSql, sqlAppend, proState > 0 ? ("and FState<" + proState) : "");
}
/// <summary>
/// 试验号流程变更SQL语句
/// </summary>
public static string GetProcessSql2(int teamId, int proType, string viewDesc, int proState, string sqlAppend = "")
{
string timeSql = proState.ToString();
if (proState == 1) timeSql += ",FStartDate=getdate()";
else if (proState == 2) timeSql += ",FFinishDate=getdate()";
return string.Format(@"update a set a.FDesc=(select {2} from TBasicCode where FType=34 and FValue={1}),
FState={3} from TFS_MaterialFTeamProcess a where a.FTeamID={0} {5} and FType={1} {4};", teamId,
proType, viewDesc, timeSql, sqlAppend, proState > 0 ? ("and FState<" + proState) : "");
}
}
}