using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using EmitMapper; namespace BLL { /// /// 奖励通知单 /// public static class APIIncentiveNoticeService { #region 根据IncentiveNoticeId获取奖励通知单 /// /// 根据 IncentiveNoticeId获取奖励通知单 /// /// /// public static Model.IncentiveNoticeItem getIncentiveNoticeById(string incentiveNoticeId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getInfo = from x in db.Check_IncentiveNotice where x.IncentiveNoticeId == incentiveNoticeId select new Model.IncentiveNoticeItem { IncentiveNoticeId = x.IncentiveNoticeId, ProjectId = x.ProjectId, IncentiveNoticeCode = x.IncentiveNoticeCode, IncentiveDate = string.Format("{0:yyyy-MM-dd}", x.IncentiveDate), RewardTypeId = x.RewardType, RewardTypeName = db.Sys_Const.First(y => y.GroupId == ConstValue.Group_RewardType && y.ConstValue == x.RewardType).ConstText, UnitId = x.UnitId, UnitName = db.Base_Unit.First(u => u.UnitId == x.UnitId).UnitName, TeamGroupId = x.TeamGroupId, TeamGroupName = db.ProjectData_TeamGroup.First(u => u.TeamGroupId == x.TeamGroupId).TeamGroupName, PersonId = x.PersonId, PersonName = db.SitePerson_Person.First(u => u.PersonId == x.PersonId).PersonName, BasicItem = x.BasicItem, IncentiveMoney = x.IncentiveMoney ?? 0, Currency = x.Currency, TitleReward = x.TitleReward, MattleReward = x.MattleReward, FileContents = System.Web.HttpUtility.HtmlDecode(x.FileContents), CompileManId = x.CompileMan, CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName, CompileDate = string.Format("{0:yyyy-MM-dd}", x.CompileDate), SignManId = x.SignMan, SignManName = db.Sys_User.First(u => u.UserId == x.SignMan).UserName, ApproveManId = x.ApproveMan, ApproveManName = db.Sys_User.First(u => u.UserId == x.ApproveMan).UserName, States = x.States, AttachUrl = x.AttachUrl.Replace('\\', '/'), }; return getInfo.FirstOrDefault(); } } #endregion #region 获取奖励通知单列表信息 /// /// 获取奖励通知单列表信息 /// /// /// /// /// public static List getIncentiveNoticeList(string projectId, string unitId, string strParam, string states) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getIncentiveNotice = from x in db.Check_IncentiveNotice where x.ProjectId == projectId && (x.UnitId == unitId || unitId == null) //&& (strParam == null || x.IncentiveNoticeName.Contains(strParam)) && x.States == states orderby x.IncentiveNoticeCode descending select new Model.IncentiveNoticeItem { IncentiveNoticeId = x.IncentiveNoticeId, ProjectId = x.ProjectId, IncentiveNoticeCode = x.IncentiveNoticeCode, IncentiveDate = string.Format("{0:yyyy-MM-dd}", x.IncentiveDate), RewardTypeId = x.RewardType, RewardTypeName = db.Sys_Const.First(y => y.GroupId == ConstValue.Group_RewardType && y.ConstValue == x.RewardType).ConstText, UnitId = x.UnitId, UnitName = db.Base_Unit.First(u => u.UnitId == x.UnitId).UnitName, TeamGroupId = x.TeamGroupId, TeamGroupName = db.ProjectData_TeamGroup.First(u => u.TeamGroupId == x.TeamGroupId).TeamGroupName, PersonId = x.PersonId, PersonName = db.SitePerson_Person.First(u => u.PersonId == x.PersonId).PersonName, BasicItem = x.BasicItem, IncentiveMoney = x.IncentiveMoney, Currency = x.Currency, TitleReward = x.TitleReward, MattleReward = x.MattleReward, // FileContents = System.Web.HttpUtility.HtmlDecode(x.FileContents), CompileManId = x.CompileMan, CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName, CompileDate = string.Format("{0:yyyy-MM-dd}", x.CompileDate), //SignManId = x.SignMan, //SignManName = db.Sys_User.First(u => u.UserId == x.SignMan).UserName, // ApproveManId = x.ApproveMan, //ApproveManName = db.Sys_User.First(u => u.UserId == x.ApproveMan).UserName, States = x.States, //AttachUrl = x.AttachUrl.Replace('\\', '/'), }; return getIncentiveNotice.ToList(); } } #endregion #region 保存Check_IncentiveNotice /// /// 保存Check_IncentiveNotice /// /// 奖励通知单 /// public static void SaveIncentiveNotice(Model.IncentiveNoticeItem newItem) { Model.SGGLDB db = Funs.DB; Model.Check_IncentiveNotice newIncentiveNotice = new Model.Check_IncentiveNotice { IncentiveNoticeId = newItem.IncentiveNoticeId, IncentiveNoticeCode = newItem.IncentiveNoticeCode, ProjectId = newItem.ProjectId, IncentiveDate = Funs.GetNewDateTime(newItem.IncentiveDate), UnitId = newItem.UnitId, RewardType = newItem.RewardTypeId, BasicItem = newItem.BasicItem, IncentiveMoney = newItem.IncentiveMoney, Currency = newItem.Currency, TitleReward = newItem.TitleReward, MattleReward = newItem.MattleReward, FileContents = System.Web.HttpUtility.HtmlEncode(newItem.FileContents), CompileMan = newItem.CompileManId, AttachUrl = newItem.AttachUrl, States = newItem.States, }; if (!string.IsNullOrEmpty(newItem.TeamGroupId)) { newIncentiveNotice.TeamGroupId = newItem.TeamGroupId; } if (!string.IsNullOrEmpty(newItem.CompileManId)) { newIncentiveNotice.CompileMan = newItem.CompileManId; } if (!string.IsNullOrEmpty(newItem.PersonId)) { newIncentiveNotice.PersonId = newItem.PersonId; } if (newIncentiveNotice.States == Const.State_1) { newIncentiveNotice.SignMan = newItem.SignManId; } var getUpdate = db.Check_IncentiveNotice.FirstOrDefault(x => x.IncentiveNoticeId == newItem.IncentiveNoticeId); if (getUpdate == null) { newIncentiveNotice.States = Const.State_0; newIncentiveNotice.CompileDate = DateTime.Now; newIncentiveNotice.IncentiveNoticeId = SQLHelper.GetNewID(); newIncentiveNotice.IncentiveNoticeCode = CodeRecordsService.ReturnCodeByMenuIdProjectId(Const.ProjectIncentiveNoticeMenuId, newIncentiveNotice.ProjectId, newIncentiveNotice.UnitId); IncentiveNoticeService.AddIncentiveNotice(newIncentiveNotice); } else { newIncentiveNotice.IncentiveNoticeId = getUpdate.IncentiveNoticeId; getUpdate.States = newItem.States; if (newIncentiveNotice.States == "0" || newIncentiveNotice.States == "1") ////编制人 修改或提交 { getUpdate.IncentiveDate = newIncentiveNotice.IncentiveDate; getUpdate.UnitId = newIncentiveNotice.UnitId; getUpdate.TeamGroupId = newIncentiveNotice.TeamGroupId; getUpdate.PersonId = newIncentiveNotice.PersonId; getUpdate.RewardType = newIncentiveNotice.RewardType; getUpdate.BasicItem = newIncentiveNotice.BasicItem; getUpdate.IncentiveMoney = newIncentiveNotice.IncentiveMoney; getUpdate.Currency = newIncentiveNotice.Currency; getUpdate.TitleReward = newIncentiveNotice.TitleReward; getUpdate.MattleReward = newIncentiveNotice.MattleReward; getUpdate.FileContents = newIncentiveNotice.FileContents; if (newIncentiveNotice.States == "1" && !string.IsNullOrEmpty(newItem.SignManId)) { getUpdate.SignMan = newItem.SignManId; } else { newIncentiveNotice.States = getUpdate.States = "0"; } db.SubmitChanges(); } else if (newIncentiveNotice.States == "2") ////【签发】总包安全经理 { /// 不同意 打回 同意抄送专业工程师、施工经理、相关施工分包单位并提交【批准】总包项目经理 if (newItem.IsAgree == false) { newIncentiveNotice.States = getUpdate.States = "0"; } else { if (!string.IsNullOrEmpty(newItem.ProfessionalEngineerId)) { getUpdate.ProfessionalEngineerId = newItem.ProfessionalEngineerId; } if (!string.IsNullOrEmpty(newItem.ConstructionManagerId)) { getUpdate.ConstructionManagerId = newItem.ConstructionManagerId; } if (!string.IsNullOrEmpty(newItem.UnitHeadManId)) { getUpdate.UnitHeadManId = newItem.UnitHeadManId; } if (!string.IsNullOrEmpty(newItem.ApproveManId)) { getUpdate.ApproveMan = newItem.ApproveManId; getUpdate.SignDate = DateTime.Now; } else { newIncentiveNotice.States = getUpdate.States = "1"; } } db.SubmitChanges(); } else if (newIncentiveNotice.States == "3") ////【批准】总包项目经理 { /// 不同意 打回 同意下发【回执】施工分包单位 if (newItem.IsAgree == false) { newIncentiveNotice.States = getUpdate.States = "1"; } else { getUpdate.ApproveDate = DateTime.Now; } db.SubmitChanges(); } } //// 增加审核记录 if (newItem.FlowOperateItem != null && newItem.FlowOperateItem.Count() > 0) { var getOperate = newItem.FlowOperateItem.FirstOrDefault(); if (getOperate != null && !string.IsNullOrEmpty(getOperate.OperaterId)) { Model.Check_IncentiveNoticeFlowOperate newOItem = new Model.Check_IncentiveNoticeFlowOperate { FlowOperateId = SQLHelper.GetNewID(), IncentiveNoticeId = newIncentiveNotice.IncentiveNoticeId, OperateName = getOperate.AuditFlowName, OperateManId = getOperate.OperaterId, OperateTime = DateTime.Now, IsAgree = getOperate.IsAgree, Opinion = getOperate.Opinion, }; db.Check_IncentiveNoticeFlowOperate.InsertOnSubmit(newOItem); db.SubmitChanges(); } } if (newIncentiveNotice.States == "1" || newIncentiveNotice.States == "0") { CommonService.btnSaveData(newIncentiveNotice.ProjectId, Const.ProjectIncentiveNoticeMenuId, newIncentiveNotice.IncentiveNoticeId, newIncentiveNotice.CompileMan, true, newIncentiveNotice.IncentiveNoticeCode, "../Check/IncentiveNoticeView.aspx?IncentiveNoticeId={0}"); } } #endregion } }