225 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			225 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace BLL
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    /// <summary>
							 | 
						|||
| 
								 | 
							
								    /// 奖励通知单
							 | 
						|||
| 
								 | 
							
								    /// </summary>
							 | 
						|||
| 
								 | 
							
								    public static class IncentiveNoticeService
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        public static Model.SGGLDB db = Funs.DB;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据主键获取奖励通知单
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="incentiveNoticeId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static Model.Check_IncentiveNotice GetIncentiveNoticeById(string incentiveNoticeId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return Funs.DB.Check_IncentiveNotice.FirstOrDefault(e => e.IncentiveNoticeId == incentiveNoticeId);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据日期获取HSE奖励通知单集合
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="startTime">开始时间</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="endTime">结束时间</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectId">项目号</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns>HSE奖励通知单集合</returns>
							 | 
						|||
| 
								 | 
							
								        public static List<Model.Check_IncentiveNotice> GetIncentiveNoticeListsByDate(DateTime startTime, DateTime endTime, string projectId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return (from x in Funs.DB.Check_IncentiveNotice where x.IncentiveDate >= startTime && x.IncentiveDate <= endTime && x.ProjectId == projectId orderby x.IncentiveDate select x).ToList();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据时间段获取HSE奖励通知单集合
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="startTime">开始时间</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="endTime">结束时间</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectId">项目Id</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns>时间段内的HSE奖励通知单集合</returns>
							 | 
						|||
| 
								 | 
							
								        public static int GetCountByDate(DateTime startTime, DateTime endTime, string projectId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return (from x in Funs.DB.Check_IncentiveNotice where x.IncentiveDate >= startTime && x.IncentiveDate <= endTime && x.ProjectId == projectId select x).Count();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据时间段获取HSE奖励通知单奖励总金额
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="startTime">开始时间</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="endTime">结束时间</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectId">项目Id</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns>时间段内的HSE奖励通知单奖励总金额</returns>
							 | 
						|||
| 
								 | 
							
								        public static decimal GetSumMoneyByDate(DateTime startTime, DateTime endTime, string projectId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            var q = (from x in Funs.DB.Check_IncentiveNotice where x.IncentiveDate >= startTime && x.IncentiveDate <= endTime && x.ProjectId == projectId select x).ToList();
							 | 
						|||
| 
								 | 
							
								            if (q.Count > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return (from x in q select x.IncentiveMoney ?? 0).Sum();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return 0;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 获取金额总和
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="startTime"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="endTime"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="rewardType"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static decimal? GetSumMoney(string projectId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.SGGLDB db = Funs.DB;
							 | 
						|||
| 
								 | 
							
								            decimal? sumRewardMoney = (from x in db.Check_IncentiveNotice
							 | 
						|||
| 
								 | 
							
								                                       where
							 | 
						|||
| 
								 | 
							
								                                       x.ProjectId == projectId && x.States == BLL.Const.State_2
							 | 
						|||
| 
								 | 
							
								                                       select x.IncentiveMoney).Sum();
							 | 
						|||
| 
								 | 
							
								            if (sumRewardMoney == null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return 0;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return sumRewardMoney;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据日期获取金额总和
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="startTime"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="endTime"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="rewardType"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static decimal? GetSumMoneyByTime(DateTime startTime, DateTime endTime, string projectId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.SGGLDB db = Funs.DB;
							 | 
						|||
| 
								 | 
							
								            decimal? sumRewardMoney = (from x in db.Check_IncentiveNotice
							 | 
						|||
| 
								 | 
							
								                                       where
							 | 
						|||
| 
								 | 
							
								                                       x.IncentiveDate >= startTime && x.IncentiveDate < endTime && x.ProjectId == projectId && x.States == BLL.Const.State_2
							 | 
						|||
| 
								 | 
							
								                                       select x.IncentiveMoney).Sum();
							 | 
						|||
| 
								 | 
							
								            if (sumRewardMoney == null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return 0;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return sumRewardMoney;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据日期和奖励方式获取金额总和
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="startTime"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="endTime"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="rewardType"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static decimal? GetSumMoneyByTimeAndType(DateTime startTime, DateTime endTime, string rewardType, string projectId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.SGGLDB db = Funs.DB;
							 | 
						|||
| 
								 | 
							
								            decimal? sumRewardMoney = (from x in db.Check_IncentiveNotice
							 | 
						|||
| 
								 | 
							
								                                       where
							 | 
						|||
| 
								 | 
							
								                                       x.RewardType == rewardType &&
							 | 
						|||
| 
								 | 
							
								                                       x.IncentiveDate >= startTime && x.IncentiveDate < endTime && x.ProjectId == projectId && x.States == BLL.Const.State_2
							 | 
						|||
| 
								 | 
							
								                                       select x.IncentiveMoney).Sum();
							 | 
						|||
| 
								 | 
							
								            if (sumRewardMoney == null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return 0;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return sumRewardMoney;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 添加奖励通知单
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="incentiveNotice"></param>
							 | 
						|||
| 
								 | 
							
								        public static void AddIncentiveNotice(Model.Check_IncentiveNotice incentiveNotice)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.SGGLDB db = Funs.DB;
							 | 
						|||
| 
								 | 
							
								            Model.Check_IncentiveNotice newIncentiveNotice = new Model.Check_IncentiveNotice
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                IncentiveNoticeId = incentiveNotice.IncentiveNoticeId,
							 | 
						|||
| 
								 | 
							
								                ProjectId = incentiveNotice.ProjectId,
							 | 
						|||
| 
								 | 
							
								                IncentiveNoticeCode = incentiveNotice.IncentiveNoticeCode,
							 | 
						|||
| 
								 | 
							
								                UnitId = incentiveNotice.UnitId,
							 | 
						|||
| 
								 | 
							
								                TeamGroupId = incentiveNotice.TeamGroupId,
							 | 
						|||
| 
								 | 
							
								                IncentiveDate = incentiveNotice.IncentiveDate,
							 | 
						|||
| 
								 | 
							
								                PersonId = incentiveNotice.PersonId,
							 | 
						|||
| 
								 | 
							
								                BasicItem = incentiveNotice.BasicItem,
							 | 
						|||
| 
								 | 
							
								                IncentiveMoney = incentiveNotice.IncentiveMoney,
							 | 
						|||
| 
								 | 
							
								                TitleReward = incentiveNotice.TitleReward,
							 | 
						|||
| 
								 | 
							
								                MattleReward = incentiveNotice.MattleReward,
							 | 
						|||
| 
								 | 
							
								                FileContents = incentiveNotice.FileContents,
							 | 
						|||
| 
								 | 
							
								                AttachUrl = incentiveNotice.AttachUrl,
							 | 
						|||
| 
								 | 
							
								                CompileMan = incentiveNotice.CompileMan,
							 | 
						|||
| 
								 | 
							
								                CompileDate = incentiveNotice.CompileDate,
							 | 
						|||
| 
								 | 
							
								                States = incentiveNotice.States,
							 | 
						|||
| 
								 | 
							
								                SignMan = incentiveNotice.SignMan,
							 | 
						|||
| 
								 | 
							
								                ApproveMan = incentiveNotice.ApproveMan,
							 | 
						|||
| 
								 | 
							
								                RewardType = incentiveNotice.RewardType,
							 | 
						|||
| 
								 | 
							
								                Currency = incentiveNotice.Currency
							 | 
						|||
| 
								 | 
							
								            };
							 | 
						|||
| 
								 | 
							
								            db.Check_IncentiveNotice.InsertOnSubmit(newIncentiveNotice);
							 | 
						|||
| 
								 | 
							
								            db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								            CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(Const.ProjectIncentiveNoticeMenuId, incentiveNotice.ProjectId, null, incentiveNotice.IncentiveNoticeId, incentiveNotice.CompileDate);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 修改奖励通知单
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="incentiveNotice"></param>
							 | 
						|||
| 
								 | 
							
								        public static void UpdateIncentiveNotice(Model.Check_IncentiveNotice incentiveNotice)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.SGGLDB db = Funs.DB;
							 | 
						|||
| 
								 | 
							
								            Model.Check_IncentiveNotice newIncentiveNotice = db.Check_IncentiveNotice.FirstOrDefault(e => e.IncentiveNoticeId == incentiveNotice.IncentiveNoticeId);
							 | 
						|||
| 
								 | 
							
								            if (newIncentiveNotice != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                //newIncentiveNotice.ProjectId = incentiveNotice.ProjectId;
							 | 
						|||
| 
								 | 
							
								                //newIncentiveNotice.IncentiveNoticeCode = incentiveNotice.IncentiveNoticeCode;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.UnitId = incentiveNotice.UnitId;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.IncentiveDate = incentiveNotice.IncentiveDate;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.TeamGroupId = incentiveNotice.TeamGroupId;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.PersonId = incentiveNotice.PersonId;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.BasicItem = incentiveNotice.BasicItem;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.IncentiveMoney = incentiveNotice.IncentiveMoney;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.TitleReward = incentiveNotice.TitleReward;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.MattleReward = incentiveNotice.MattleReward;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.FileContents = incentiveNotice.FileContents;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.AttachUrl = incentiveNotice.AttachUrl;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.CompileMan = incentiveNotice.CompileMan;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.CompileDate = incentiveNotice.CompileDate;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.States = incentiveNotice.States;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.SignMan = incentiveNotice.SignMan;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.ApproveMan = incentiveNotice.ApproveMan;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.RewardType = incentiveNotice.RewardType;
							 | 
						|||
| 
								 | 
							
								                newIncentiveNotice.Currency = incentiveNotice.Currency;
							 | 
						|||
| 
								 | 
							
								                db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据主键删除奖励通知单
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="incentiveNoticeId"></param>
							 | 
						|||
| 
								 | 
							
								        public static void DeleteIncentiveNoticeById(string incentiveNoticeId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.SGGLDB db = Funs.DB;
							 | 
						|||
| 
								 | 
							
								            Model.Check_IncentiveNotice incentiveNotice = db.Check_IncentiveNotice.FirstOrDefault(e => e.IncentiveNoticeId == incentiveNoticeId);
							 | 
						|||
| 
								 | 
							
								            if (incentiveNotice != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                CodeRecordsService.DeleteCodeRecordsByDataId(incentiveNoticeId);//删除编号                 
							 | 
						|||
| 
								 | 
							
								                UploadFileService.DeleteFile(Funs.RootPath, incentiveNotice.AttachUrl);//删除附件
							 | 
						|||
| 
								 | 
							
								                ////删除流程表
							 | 
						|||
| 
								 | 
							
								                BLL.CommonService.DeleteFlowOperateByID(incentiveNotice.IncentiveNoticeId);
							 | 
						|||
| 
								 | 
							
								                var getFlow = db.Check_IncentiveNoticeFlowOperate.Where(x => x.IncentiveNoticeId == incentiveNotice.IncentiveNoticeId);
							 | 
						|||
| 
								 | 
							
								                if (getFlow.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    db.Check_IncentiveNoticeFlowOperate.DeleteAllOnSubmit(getFlow);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                db.Check_IncentiveNotice.DeleteOnSubmit(incentiveNotice);
							 | 
						|||
| 
								 | 
							
								                db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |