using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.UI.WebControls; namespace BLL { public class WorkContactService { #region 把状态转换代号为文字形式 /// /// 把状态转换代号为文字形式 /// /// /// public static string ConvertState(object state) { if (state != null) { if (state.ToString() == BLL.Const.WorkContact_ReCompile) { return "重新编制"; } else if (state.ToString() == BLL.Const.WorkContact_Compile) { return "编制"; } else if (state.ToString() == BLL.Const.WorkContact_Audit1) { return "分包负责人审核"; } else if (state.ToString() == BLL.Const.WorkContact_Audit2) { return "总包专工回复"; } else if (state.ToString() == BLL.Const.WorkContact_Audit3) { return "总包负责人审核"; } else if (state.ToString() == BLL.Const.WorkContact_Complete) { return "审批完成"; } else if (state.ToString() == BLL.Const.WorkContact_Audit1R) { return "分包专工重新回复"; } else if (state.ToString() == BLL.Const.WorkContact_Audit2R) { return "总包专工重新回复"; } else if (state.ToString() == BLL.Const.WorkContact_Audit4) { return "分包专工回复"; } else { return ""; } } else { return ""; } } #endregion /// /// 根据工作联系单信息Id删除一个工作联系单信息信息 /// /// 工作联系单信息Id public static void DeleteWorkContact(string workContactId) { Model.SGGLDB db = Funs.DB; Model.Unqualified_WorkContact workContact = db.Unqualified_WorkContact.First(e => e.WorkContactId == workContactId); db.Unqualified_WorkContact.DeleteOnSubmit(workContact); db.SubmitChanges(); } /// /// 根据状态选择下一步办理类型 /// /// /// public static ListItem[] GetDHandleTypeByState(string state, string unitType, string isReply) { ListItem[] lis = null; if (state == Const.WorkContact_Compile || state == Const.WorkContact_ReCompile) { if (unitType == Const.ProjectUnitType_2) //分包商 { lis = new ListItem[1]; lis[0] = new ListItem("分包负责人审核", Const.WorkContact_Audit1); //lis[1] = new ListItem("审核完结", Const.WorkContact_Complete); } else { lis = new ListItem[1]; lis[0] = new ListItem("总包负责人审核", Const.WorkContact_Audit3); //lis[1] = new ListItem("审核完结", Const.WorkContact_Complete); } } else if (state == Const.WorkContact_Audit1) { if (unitType == Const.ProjectUnitType_2) //分包商 { if (isReply == "1") //需要回复 { lis = new ListItem[2]; lis[0] = new ListItem("总包专工回复", Const.WorkContact_Audit2); lis[1] = new ListItem("重新编制", Const.WorkContact_ReCompile); } else //不需回复 { lis = new ListItem[2]; lis[0] = new ListItem("审批完成", Const.WorkContact_Complete); lis[1] = new ListItem("重新编制", Const.WorkContact_ReCompile); } } else //总包 { if (isReply == "1") //需要回复 { lis = new ListItem[2]; lis[0] = new ListItem("审批完成", Const.WorkContact_Complete); lis[1] = new ListItem("分包专工重新回复", Const.WorkContact_Audit1R); } } } else if (state == Const.WorkContact_Audit2 || state == Const.WorkContact_Audit2R) { lis = new ListItem[2]; lis[0] = new ListItem("总包负责人审核", Const.WorkContact_Audit3); lis[1] = new ListItem("重新编制", Const.WorkContact_ReCompile); } else if (state == Const.WorkContact_Audit3) { if (unitType == Const.ProjectUnitType_2) //分包商 { lis = new ListItem[3]; lis[0] = new ListItem("审批完成", Const.WorkContact_Complete); lis[1] = new ListItem("重新编制", Const.WorkContact_ReCompile); lis[2] = new ListItem("总包专工重新回复", Const.WorkContact_Audit2R); } else //总包 { if (isReply == "1") //需要回复 { lis = new ListItem[2]; lis[0] = new ListItem("分包专工回复", Const.WorkContact_Audit4); lis[1] = new ListItem("重新编制", Const.WorkContact_ReCompile); } else { lis = new ListItem[2]; lis[0] = new ListItem("审批完成", Const.WorkContact_Complete); lis[1] = new ListItem("重新编制", Const.WorkContact_ReCompile); } } } else if (state == Const.WorkContact_Audit4 || state == Const.WorkContact_Audit1R) { if (isReply == "1") //需要回复 { lis = new ListItem[1]; lis[0] = new ListItem("分包负责人审核", Const.WorkContact_Audit1); //lis[1] = new ListItem("重新编制", Const.WorkContact_ReCompile); } } return lis; } public static void InitHandleType(FineUIPro.DropDownList dropName, bool isShowPlease, string state, string unitType, string isReply) { dropName.DataValueField = "Value"; dropName.DataTextField = "Text"; dropName.DataSource = GetDHandleTypeByState(state, unitType, isReply); dropName.DataBind(); if (isShowPlease) { Funs.FineUIPleaseSelect(dropName); } } /// /// 根据工作联系单信息Id获取一个工作联系单信息信息 /// /// 工作联系单信息Id /// 一个工作联系单信息实体 public static Model.Unqualified_WorkContact GetWorkContactByWorkContactId(string workContactId) { return Funs.DB.Unqualified_WorkContact.FirstOrDefault(x => x.WorkContactId == workContactId); } public static Model.Unqualified_WorkContact GetWorkContactByWorkContactIdForApi(string workContactId) { using (var db = new Model.SGGLDB(Funs.ConnString)) { var res = db.Unqualified_WorkContact.FirstOrDefault(x => x.WorkContactId == workContactId); //Model.Base_Unit unit = db.Base_Unit.FirstOrDefault(e => e.UnitId == res.ProposedUnitId); var unit = db.Project_ProjectUnit.FirstOrDefault(e => e.UnitId == res.ProposedUnitId && e.ProjectId == res.ProjectId); if (unit != null) { res.ProposedUnitId = res.ProposedUnitId + "$" + unit.Base_Unit.UnitName + "$" + unit.UnitType; } res.MainSendUnitIds = res.MainSendUnitIds + "$" + UnitService.getUnitNamesUnitIds(res.MainSendUnitIds); res.CCUnitIds = res.CCUnitIds + "$" + UnitService.getUnitNamesUnitIds(res.CCUnitIds); res.AttachUrl = AttachFileService.getFileUrl(res.WorkContactId); res.ReturnAttachUrl = AttachFileService.getFileUrl(res.WorkContactId + "r"); return res; } } #region 获取办理人姓名 // //获取办理人姓名 // // // public static string ConvertMan(object WorkContactId) { if (WorkContactId != null) { Model.Unqualified_WorkContactApprove a = WorkContactApproveService.GetWorkContactApproveByWorkContactId(WorkContactId.ToString()); if (a != null) { if (a.ApproveMan != null) { return UserService.GetUserByUserId(a.ApproveMan).UserName; } } else { return ""; } } return ""; } public static string ConvertManAndId(object WorkContactId) { if (WorkContactId != null) { Model.Unqualified_WorkContactApprove a = WorkContactApproveService.GetWorkContactApproveByWorkContactId(WorkContactId.ToString()); if (a != null) { if (a.ApproveMan != null) { var user = UserService.GetUserByUserId(a.ApproveMan); return user.UserName + "$" + user.UserId; } } else { return ""; } } return ""; } #endregion /// /// 增加工作联系单信息信息 /// /// 工作联系单信息实体 public static void AddWorkContact(Model.Unqualified_WorkContact workContact) { Model.SGGLDB db = Funs.DB; Model.Unqualified_WorkContact newWorkContact = new Model.Unqualified_WorkContact(); newWorkContact.WorkContactId = workContact.WorkContactId; newWorkContact.ProjectId = workContact.ProjectId; newWorkContact.Code = workContact.Code; newWorkContact.ProposedUnitId = workContact.ProposedUnitId; newWorkContact.MainSendUnitIds = workContact.MainSendUnitIds; newWorkContact.CCUnitIds = workContact.CCUnitIds; newWorkContact.Cause = workContact.Cause; newWorkContact.Contents = workContact.Contents; newWorkContact.IsReply = workContact.IsReply; newWorkContact.AttachUrl = workContact.AttachUrl; newWorkContact.CompileMan = workContact.CompileMan; newWorkContact.CompileDate = workContact.CompileDate; newWorkContact.State = workContact.State; newWorkContact.IsFinal = workContact.IsFinal; newWorkContact.ReOpinion = workContact.ReOpinion; newWorkContact.SaveHandleMan = workContact.SaveHandleMan; db.Unqualified_WorkContact.InsertOnSubmit(newWorkContact); db.SubmitChanges(); } public static void AddWorkContactForApi(Model.Unqualified_WorkContact workContact) { using (var db = new Model.SGGLDB(Funs.ConnString)) { Model.Unqualified_WorkContact newWorkContact = new Model.Unqualified_WorkContact(); newWorkContact.WorkContactId = workContact.WorkContactId; newWorkContact.ProjectId = workContact.ProjectId; newWorkContact.Code = workContact.Code; newWorkContact.ProposedUnitId = workContact.ProposedUnitId; newWorkContact.MainSendUnitIds = workContact.MainSendUnitIds; newWorkContact.CCUnitIds = workContact.CCUnitIds; newWorkContact.Cause = workContact.Cause; newWorkContact.Contents = workContact.Contents; newWorkContact.IsReply = workContact.IsReply; newWorkContact.AttachUrl = workContact.AttachUrl; newWorkContact.CompileMan = workContact.CompileMan; newWorkContact.CompileDate = workContact.CompileDate; newWorkContact.State = workContact.State; newWorkContact.IsFinal = workContact.IsFinal; newWorkContact.ReOpinion = workContact.ReOpinion; newWorkContact.SaveHandleMan = workContact.SaveHandleMan; db.Unqualified_WorkContact.InsertOnSubmit(newWorkContact); db.SubmitChanges(); } } /// /// 修改工作联系单信息信息 /// /// 工作联系单信息实体 public static void UpdateWorkContact(Model.Unqualified_WorkContact workContact) { Model.SGGLDB db = Funs.DB; Model.Unqualified_WorkContact newWorkContact = db.Unqualified_WorkContact.First(e => e.WorkContactId == workContact.WorkContactId); newWorkContact.Code = workContact.Code; newWorkContact.ProposedUnitId = workContact.ProposedUnitId; newWorkContact.MainSendUnitIds = workContact.MainSendUnitIds; newWorkContact.CCUnitIds = workContact.CCUnitIds; newWorkContact.Cause = workContact.Cause; newWorkContact.Contents = workContact.Contents; newWorkContact.IsReply = workContact.IsReply; newWorkContact.AttachUrl = workContact.AttachUrl; newWorkContact.State = workContact.State; newWorkContact.ReOpinion = workContact.ReOpinion; newWorkContact.SaveHandleMan = workContact.SaveHandleMan; db.SubmitChanges(); } public static List getListDataForApi(string projectId, string name, int startRowIndex, int maximumRows) { using (var db = new Model.SGGLDB(Funs.ConnString)) { IQueryable q = db.Unqualified_WorkContact; if (!string.IsNullOrEmpty(projectId)) { q = q.Where(e => e.ProjectId == projectId); } if (!string.IsNullOrEmpty(name)) { List ids = new List(); var qunit = from u in Funs.DB.Base_Unit where u.UnitName.Contains(name) select u.UnitId; ids = qunit.ToList(); q = q.Where(e => ids.Contains(e.ProposedUnitId)); } var qres = from x in q orderby x.Code descending select new { x.WorkContactId, x.Code, x.ProjectId, x.CompileMan, x.CompileDate, x.Cause, x.ProposedUnitId, x.State, x.Contents, MainSendUnitName = UnitService.getUnitNamesUnitIds(x.MainSendUnitIds), CCUnitName = UnitService.getUnitNamesUnitIds(x.CCUnitIds), x.IsReply }; List res = new List(); var list = qres.Skip(startRowIndex * maximumRows).Take(maximumRows).ToList(); foreach (var item in list) { Model.Unqualified_WorkContact wc = new Model.Unqualified_WorkContact(); wc.WorkContactId = item.WorkContactId; wc.Code = item.Code; wc.ProjectId = item.ProjectId; wc.CompileMan = item.CompileMan; wc.CompileDate = item.CompileDate; wc.Cause = item.Cause; wc.State = item.State; var unit = db.Project_ProjectUnit.FirstOrDefault(u => u.ProjectId == wc.ProjectId && u.UnitId == item.ProposedUnitId); if (unit != null) { wc.ProposedUnitId = item.ProposedUnitId + "$" + unit.Base_Unit.UnitName + "$" + unit.UnitType; } else { wc.ProposedUnitId = item.ProposedUnitId + "$$"; } wc.MainSendUnitIds = item.MainSendUnitName; wc.CCUnitIds = item.CCUnitName; wc.CompileMan = ConvertManAndId(item.WorkContactId); wc.IsReply = item.IsReply; wc.Contents = item.Contents; wc.AttachUrl = AttachFileService.getFileUrl(item.WorkContactId); wc.ReturnAttachUrl = AttachFileService.getFileUrl(item.WorkContactId + "r"); res.Add(wc); } return res; } } public static List getListDataForApi(string code, string proposedUnitId, string mainSendUnitId, string cCUnitId, string cause, string contents, string dateA, string dateZ, string projectId, int startRowIndex, int maximumRows) { using (var db = new Model.SGGLDB(Funs.ConnString)) { IQueryable q = db.Unqualified_WorkContact; if (!string.IsNullOrEmpty(code) && "undefined" != code) { q = q.Where(e => e.Code.Contains(code)); } if (!string.IsNullOrEmpty(proposedUnitId) && "undefined" != proposedUnitId) { q = q.Where(e => e.ProposedUnitId.Contains(proposedUnitId)); } if (!string.IsNullOrEmpty(mainSendUnitId) && "undefined" != mainSendUnitId) { q = q.Where(e => e.MainSendUnitIds.Contains(mainSendUnitId)); } if (!string.IsNullOrEmpty(cCUnitId) && "undefined" != cCUnitId) { q = q.Where(e => e.CCUnitIds.Contains(cCUnitId)); } if (!string.IsNullOrEmpty(cause) && "undefined" != cause) { q = q.Where(e => e.Cause.Contains(cause)); } if (!string.IsNullOrEmpty(contents) && "undefined" != contents) { q = q.Where(e => e.Contents.Contains(contents)); } if (!string.IsNullOrEmpty(dateA) && "undefined" != dateA) { DateTime date = DateTime.ParseExact(dateA, "yyyy-MM-dd", new CultureInfo("zh-CN", true)); q = q.Where(e => e.CompileDate >= date); } if (!string.IsNullOrEmpty(dateZ) && "undefined" != dateZ) { DateTime date = DateTime.ParseExact(dateZ + "23:59:59", "yyyy-MM-ddHH:mm:ss", new CultureInfo("zh-CN", true)); q = q.Where(e => e.CompileDate <= date); } if (!string.IsNullOrEmpty(projectId) && "undefined" != projectId) { q = q.Where(e => e.ProjectId == projectId); } var qres = from x in q orderby x.Code descending select new { x.WorkContactId, x.Code, x.ProjectId, x.CompileMan, x.CompileDate, x.Cause, x.ProposedUnitId, x.State, x.Contents, x.AttachUrl, MainSendUnitName = UnitService.getUnitNamesUnitIds(x.MainSendUnitIds), CCUnitName = UnitService.getUnitNamesUnitIds(x.CCUnitIds), x.IsReply }; List res = new List(); var list = qres.Skip(startRowIndex * maximumRows).Take(maximumRows).ToList(); foreach (var item in list) { Model.Unqualified_WorkContact wc = new Model.Unqualified_WorkContact(); wc.WorkContactId = item.WorkContactId; wc.Code = item.Code; wc.ProjectId = item.ProjectId; wc.CompileMan = item.CompileMan; wc.CompileDate = item.CompileDate; wc.Cause = item.Cause; wc.State = item.State; var unit = db.Project_ProjectUnit.FirstOrDefault(u => u.ProjectId == wc.ProjectId && u.UnitId == item.ProposedUnitId); if (unit != null) { wc.ProposedUnitId = item.ProposedUnitId + "$" + unit.Base_Unit.UnitName + "$" + unit.UnitType; } else { wc.ProposedUnitId = item.ProposedUnitId + "$$"; } wc.MainSendUnitIds = item.MainSendUnitName; wc.CCUnitIds = item.CCUnitName; wc.CompileMan = ConvertManAndId(item.WorkContactId); wc.IsReply = item.IsReply; wc.Contents = item.Contents; wc.AttachUrl = item.AttachUrl; wc.IsReply = item.IsReply; wc.AttachUrl = AttachFileService.getFileUrl(item.WorkContactId); wc.ReturnAttachUrl = AttachFileService.getFileUrl(item.WorkContactId + "r"); res.Add(wc); } return res; } } public static void UpdateWorkContactForApi(Model.Unqualified_WorkContact workContact) { using (var db = new Model.SGGLDB(Funs.ConnString)) { Model.Unqualified_WorkContact newWorkContact = db.Unqualified_WorkContact.FirstOrDefault(e => e.WorkContactId == workContact.WorkContactId); if (newWorkContact != null) { if (!string.IsNullOrEmpty(workContact.Code)) newWorkContact.Code = workContact.Code; if (!string.IsNullOrEmpty(workContact.ProposedUnitId)) newWorkContact.ProposedUnitId = workContact.ProposedUnitId; if (!string.IsNullOrEmpty(workContact.MainSendUnitIds)) newWorkContact.MainSendUnitIds = workContact.MainSendUnitIds; if (!string.IsNullOrEmpty(workContact.CCUnitIds)) newWorkContact.CCUnitIds = workContact.CCUnitIds; if (!string.IsNullOrEmpty(workContact.Cause)) newWorkContact.Cause = workContact.Cause; if (!string.IsNullOrEmpty(workContact.Contents)) newWorkContact.Contents = workContact.Contents; if (!string.IsNullOrEmpty(workContact.IsReply)) newWorkContact.IsReply = workContact.IsReply; if (!string.IsNullOrEmpty(workContact.AttachUrl)) newWorkContact.AttachUrl = workContact.AttachUrl; if (workContact.CompileDate.HasValue) newWorkContact.CompileDate = workContact.CompileDate; if (!string.IsNullOrEmpty(workContact.State)) newWorkContact.State = workContact.State; if (!string.IsNullOrEmpty(workContact.ReOpinion)) newWorkContact.ReOpinion = workContact.ReOpinion; db.SubmitChanges(); } } } public static int getListCount(string projectId) { using (var db = new Model.SGGLDB(Funs.ConnString)) { IQueryable q = db.Unqualified_WorkContact; if (!string.IsNullOrEmpty(projectId)) { q = q.Where(e => e.ProjectId == projectId); } return q.Count(); } } } }