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();
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |