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