285 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			285 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C#
		
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Linq;
 | 
						|
using System.Text;
 | 
						|
 | 
						|
namespace BLL
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// 事故调查处理报告
 | 
						|
    /// </summary>
 | 
						|
    public static class AccidentReportOtherService
 | 
						|
    {
 | 
						|
        public static Model.SGGLDB db = Funs.DB;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据主键获取事故调查处理报告
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="accidentReportOtherId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static Model.Accident_AccidentReportOther GetAccidentReportOtherById(string accidentReportOtherId)
 | 
						|
        {
 | 
						|
            return Funs.DB.Accident_AccidentReportOther.FirstOrDefault(e => e.AccidentReportOtherId == accidentReportOtherId);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 获取最近时间的工作受限或医疗处理事故调查处理报告
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="projectId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static DateTime? GetLastNoStartAccidentReportOther(string projectId)
 | 
						|
        {
 | 
						|
            var q = (from x in Funs.DB.Accident_AccidentReportOther
 | 
						|
                     where (x.AccidentTypeId == "1" || x.AccidentTypeId == "2")
 | 
						|
                        && x.ProjectId == projectId
 | 
						|
                     orderby x.AccidentDate descending
 | 
						|
                     select x).FirstOrDefault();
 | 
						|
            if (q == null)
 | 
						|
            {
 | 
						|
                return null;
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                return q.AccidentDate;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据时间段获取事故集合
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="startTime"></param>
 | 
						|
        /// <param name="endTime"></param>
 | 
						|
        /// <param name="projectId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static List<Model.Accident_AccidentReportOther> GetAccidentReportOthersByAccidentTime(DateTime startTime, DateTime endTime, string projectId)
 | 
						|
        {
 | 
						|
            return (from x in Funs.DB.Accident_AccidentReportOther where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.ProjectId == projectId && x.States == BLL.Const.State_2 select x).ToList();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据时间段获取事故集合
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="startTime"></param>
 | 
						|
        /// <param name="endTime"></param>
 | 
						|
        /// <param name="projectId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static List<Model.Accident_AccidentReportOther> GetRecordAccidentReportOthersByAccidentTime(DateTime startTime, DateTime endTime, string projectId)
 | 
						|
        {
 | 
						|
            return (from x in Funs.DB.Accident_AccidentReportOther where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.ProjectId == projectId && (x.AccidentTypeId == "1" || x.AccidentTypeId == "2") && x.States == BLL.Const.State_2 select x).ToList();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据类型获取事故数量
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="startTime"></param>
 | 
						|
        /// <param name="endTime"></param>
 | 
						|
        /// <param name="accidentType"></param>
 | 
						|
        /// <param name="projectId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static int GetCountByAccidentType(string accidentType, string projectId)
 | 
						|
        {
 | 
						|
            return (from x in Funs.DB.Accident_AccidentReportOther where x.AccidentTypeId == accidentType && x.ProjectId == projectId && x.States == BLL.Const.State_2 select x).Count();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据时间段和类型获取事故数量
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="startTime"></param>
 | 
						|
        /// <param name="endTime"></param>
 | 
						|
        /// <param name="accidentType"></param>
 | 
						|
        /// <param name="projectId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static int GetCountByAccidentTimeAndAccidentType(DateTime startTime, DateTime endTime, string accidentType, string projectId)
 | 
						|
        {
 | 
						|
            return (from x in Funs.DB.Accident_AccidentReportOther where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.AccidentTypeId == accidentType && x.ProjectId == projectId && x.States == BLL.Const.State_2 select x).Count();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据时间段和类型获取事故人数
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="startTime"></param>
 | 
						|
        /// <param name="endTime"></param>
 | 
						|
        /// <param name="accidentType"></param>
 | 
						|
        /// <param name="projectId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static int GetPersonNumByAccidentTimeAndAccidentType(DateTime startTime, DateTime endTime, string accidentType, string projectId)
 | 
						|
        {
 | 
						|
            int num = 0;
 | 
						|
            var q = from x in Funs.DB.Accident_AccidentReportOther where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.AccidentTypeId == accidentType && x.ProjectId == projectId && x.States == BLL.Const.State_2 select x.PeopleNum;
 | 
						|
            foreach (var item in q)
 | 
						|
            {
 | 
						|
                if (item != null)
 | 
						|
                {
 | 
						|
                    num += Funs.GetNewIntOrZero(item.ToString());
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return num;
 | 
						|
            //return (from x in Funs.DB.Accident_AccidentReportOther where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.AccidentTypeId == accidentType && x.ProjectId == projectId select x.PeopleNum ?? 0).Sum();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据时间段和类型获取事故损失工时
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="startTime"></param>
 | 
						|
        /// <param name="endTime"></param>
 | 
						|
        /// <param name="accidentType"></param>
 | 
						|
        /// <param name="projectId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static decimal GetSumLoseWorkTimeByAccidentTimeAndAccidentType(DateTime startTime, DateTime endTime, string accidentType, string projectId)
 | 
						|
        {
 | 
						|
            decimal loseTime = 0;
 | 
						|
            var q = from x in Funs.DB.Accident_AccidentReportOther where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.AccidentTypeId == accidentType && x.ProjectId == projectId && x.States == BLL.Const.State_2 select x.WorkingHoursLoss;
 | 
						|
            foreach (var item in q)
 | 
						|
            {
 | 
						|
                if (item != null)
 | 
						|
                {
 | 
						|
                    loseTime += Funs.GetNewDecimalOrZero(item.ToString());
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return loseTime;
 | 
						|
            //return (from x in Funs.DB.Accident_AccidentReportOther where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.AccidentTypeId == accidentType && x.ProjectId == projectId select x.WorkingHoursLoss ?? 0).Sum();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据时间段和类型获取事故损失金额
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="startTime"></param>
 | 
						|
        /// <param name="endTime"></param>
 | 
						|
        /// <param name="accidentType"></param>
 | 
						|
        /// <param name="projectId"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static decimal GetSumLosMoneyByAccidentTimeAndAccidentType(DateTime startTime, DateTime endTime, string accidentType, string projectId)
 | 
						|
        {
 | 
						|
            decimal loseMoney = 0;
 | 
						|
            var q = from x in Funs.DB.Accident_AccidentReportOther where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.AccidentTypeId == accidentType && x.ProjectId == projectId && x.States == BLL.Const.State_2 select x.EconomicLoss;
 | 
						|
            foreach (var item in q)
 | 
						|
            {
 | 
						|
                if (item != null)
 | 
						|
                {
 | 
						|
                    loseMoney += Funs.GetNewDecimalOrZero(item.ToString());
 | 
						|
                }
 | 
						|
            }
 | 
						|
            var c = from x in Funs.DB.Accident_AccidentReportOther where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.AccidentTypeId == accidentType && x.ProjectId == projectId && x.States == BLL.Const.State_2 select x.EconomicOtherLoss;
 | 
						|
            foreach (var item in c)
 | 
						|
            {
 | 
						|
                if (item != null)
 | 
						|
                {
 | 
						|
                    loseMoney += Funs.GetNewDecimalOrZero(item.ToString());
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return loseMoney;
 | 
						|
            //return (from x in Funs.DB.Accident_AccidentReportOther where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.AccidentTypeId == accidentType && x.ProjectId == projectId select x.EconomicLoss ?? 0).Sum();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据时间和事故类型名称获取事故调查处理报告集合
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="startTime"></param>
 | 
						|
        /// <param name="endTime"></param>
 | 
						|
        /// <param name="accidentTypeName"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static List<Model.Accident_AccidentReportOther> GetAccidentReportOthersByTimeAndAccidentTypeId(DateTime startTime, DateTime endTime, string projectId, string accidentTypeId)
 | 
						|
        {
 | 
						|
            return (from x in Funs.DB.Accident_AccidentReportOther
 | 
						|
                    where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.ProjectId == projectId && x.AccidentTypeId == accidentTypeId && x.States == BLL.Const.State_2
 | 
						|
                    select x).ToList();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 添加事故调查处理报告
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="accidentReportOther"></param>
 | 
						|
        public static void AddAccidentReportOther(Model.Accident_AccidentReportOther accidentReportOther)
 | 
						|
        {
 | 
						|
            Model.SGGLDB db = Funs.DB;
 | 
						|
            Model.Accident_AccidentReportOther newAccidentReportOther = new Model.Accident_AccidentReportOther
 | 
						|
            {
 | 
						|
                AccidentReportOtherId = accidentReportOther.AccidentReportOtherId,
 | 
						|
                ProjectId = accidentReportOther.ProjectId,
 | 
						|
                AccidentReportOtherCode = accidentReportOther.AccidentReportOtherCode,
 | 
						|
                AccidentReportOtherName = accidentReportOther.AccidentReportOtherName,
 | 
						|
                AccidentTypeId = accidentReportOther.AccidentTypeId,
 | 
						|
                Abstract = accidentReportOther.Abstract,
 | 
						|
                AccidentDate = accidentReportOther.AccidentDate,
 | 
						|
                WorkAreaId = accidentReportOther.WorkAreaId,
 | 
						|
                PeopleNum = accidentReportOther.PeopleNum,
 | 
						|
                UnitId = accidentReportOther.UnitId,
 | 
						|
                WorkingHoursLoss = accidentReportOther.WorkingHoursLoss,
 | 
						|
                EconomicLoss = accidentReportOther.EconomicLoss,
 | 
						|
                EconomicOtherLoss = accidentReportOther.EconomicOtherLoss,
 | 
						|
                ReportMan = accidentReportOther.ReportMan,
 | 
						|
                ReporterUnit = accidentReportOther.ReporterUnit,
 | 
						|
                ReportDate = accidentReportOther.ReportDate,
 | 
						|
                ProcessDescription = accidentReportOther.ProcessDescription,
 | 
						|
                EmergencyMeasures = accidentReportOther.EmergencyMeasures,
 | 
						|
                ImmediateCause = accidentReportOther.ImmediateCause,
 | 
						|
                IndirectReason = accidentReportOther.IndirectReason,
 | 
						|
                CorrectivePreventive = accidentReportOther.CorrectivePreventive,
 | 
						|
                FileContent = accidentReportOther.FileContent,
 | 
						|
                CompileMan = accidentReportOther.CompileMan,
 | 
						|
                CompileDate = accidentReportOther.CompileDate,
 | 
						|
                States = accidentReportOther.States,
 | 
						|
                WorkArea = accidentReportOther.WorkArea
 | 
						|
            };
 | 
						|
            db.Accident_AccidentReportOther.InsertOnSubmit(newAccidentReportOther);
 | 
						|
            db.SubmitChanges();
 | 
						|
            CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(Const.ProjectAccidentReportOtherMenuId, accidentReportOther.ProjectId, null, accidentReportOther.AccidentReportOtherId, accidentReportOther.CompileDate);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 修改事故调查处理报告
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="accidentReportOther"></param>
 | 
						|
        public static void UpdateAccidentReportOther(Model.Accident_AccidentReportOther accidentReportOther)
 | 
						|
        {
 | 
						|
            Model.SGGLDB db = Funs.DB;
 | 
						|
            Model.Accident_AccidentReportOther newAccidentReportOther = db.Accident_AccidentReportOther.FirstOrDefault(e => e.AccidentReportOtherId == accidentReportOther.AccidentReportOtherId);
 | 
						|
            if (newAccidentReportOther != null)
 | 
						|
            {
 | 
						|
                newAccidentReportOther.AccidentReportOtherCode = accidentReportOther.AccidentReportOtherCode;
 | 
						|
                newAccidentReportOther.AccidentReportOtherName = accidentReportOther.AccidentReportOtherName;
 | 
						|
                newAccidentReportOther.AccidentTypeId = accidentReportOther.AccidentTypeId;
 | 
						|
                newAccidentReportOther.Abstract = accidentReportOther.Abstract;
 | 
						|
                newAccidentReportOther.AccidentDate = accidentReportOther.AccidentDate;
 | 
						|
                newAccidentReportOther.WorkAreaId = accidentReportOther.WorkAreaId;
 | 
						|
                newAccidentReportOther.PeopleNum = accidentReportOther.PeopleNum;
 | 
						|
                newAccidentReportOther.UnitId = accidentReportOther.UnitId;
 | 
						|
                newAccidentReportOther.WorkingHoursLoss = accidentReportOther.WorkingHoursLoss;
 | 
						|
                newAccidentReportOther.EconomicLoss = accidentReportOther.EconomicLoss;
 | 
						|
                newAccidentReportOther.EconomicOtherLoss = accidentReportOther.EconomicOtherLoss;
 | 
						|
                newAccidentReportOther.ReportMan = accidentReportOther.ReportMan;
 | 
						|
                newAccidentReportOther.ReporterUnit = accidentReportOther.ReporterUnit;
 | 
						|
                newAccidentReportOther.ReportDate = accidentReportOther.ReportDate;
 | 
						|
                newAccidentReportOther.ProcessDescription = accidentReportOther.ProcessDescription;
 | 
						|
                newAccidentReportOther.EmergencyMeasures = accidentReportOther.EmergencyMeasures;
 | 
						|
                newAccidentReportOther.ImmediateCause = accidentReportOther.ImmediateCause;
 | 
						|
                newAccidentReportOther.IndirectReason = accidentReportOther.IndirectReason;
 | 
						|
                newAccidentReportOther.CorrectivePreventive = accidentReportOther.CorrectivePreventive;
 | 
						|
                newAccidentReportOther.FileContent = accidentReportOther.FileContent;
 | 
						|
                newAccidentReportOther.CompileMan = accidentReportOther.CompileMan;
 | 
						|
                newAccidentReportOther.CompileDate = accidentReportOther.CompileDate;
 | 
						|
                newAccidentReportOther.States = accidentReportOther.States;
 | 
						|
                newAccidentReportOther.WorkArea = accidentReportOther.WorkArea;
 | 
						|
                db.SubmitChanges();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据主键删除事故调查处理报告
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="accidentReportOtherId"></param>
 | 
						|
        public static void DeleteAccidentReportOtherById(string accidentReportOtherId)
 | 
						|
        {
 | 
						|
            Model.SGGLDB db = Funs.DB;
 | 
						|
            Model.Accident_AccidentReportOther accidentReportOther = db.Accident_AccidentReportOther.FirstOrDefault(e => e.AccidentReportOtherId == accidentReportOtherId);
 | 
						|
            if (accidentReportOther != null)
 | 
						|
            {
 | 
						|
                CodeRecordsService.DeleteCodeRecordsByDataId(accidentReportOtherId);
 | 
						|
                CommonService.DeleteFlowOperateByID(accidentReportOtherId);
 | 
						|
                db.Accident_AccidentReportOther.DeleteOnSubmit(accidentReportOther);
 | 
						|
                db.SubmitChanges();
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |