397 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			397 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
using System;
 | 
						|
using System.Collections;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Linq;
 | 
						|
using System.Text;
 | 
						|
using System.Threading.Tasks;
 | 
						|
using System.Web.UI.WebControls;
 | 
						|
 | 
						|
namespace BLL
 | 
						|
{
 | 
						|
    public class CheckEquipmentService
 | 
						|
    {
 | 
						|
        public static Model.SGGLDB db = Funs.DB;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 记录数
 | 
						|
        /// </summary>
 | 
						|
        private static int count
 | 
						|
        {
 | 
						|
            get;
 | 
						|
            set;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 定义变量
 | 
						|
        /// </summary>
 | 
						|
        private static IQueryable<Model.Check_CheckEquipment> qq = from x in db.Check_CheckEquipment orderby x.CompileDate descending select x;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 获取分页列表
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="startRowIndex"></param>
 | 
						|
        /// <param name="maximumRows"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static IEnumerable getListData(string projectId, string userId, string roleId, int startRowIndex, int maximumRows)
 | 
						|
        {
 | 
						|
            IQueryable<Model.Check_CheckEquipment> q = qq;
 | 
						|
            if (!string.IsNullOrEmpty(projectId))
 | 
						|
            {
 | 
						|
                q = q.Where(e => e.ProjectId == projectId);
 | 
						|
            }
 | 
						|
            //if (!string.IsNullOrEmpty(userId))
 | 
						|
            //{
 | 
						|
            //    var roleList = BLL.CommonService.GetUserRoleEntrustedRole(userId);
 | 
						|
            //    if (roleId != "admin" && !roleList.Contains(BLL.Const.CNPrincipalRole) && !roleList.Contains(BLL.Const.CQPrincipalRole)
 | 
						|
            //        && !roleList.Contains(BLL.Const.INPrincipalRole))
 | 
						|
            //    {
 | 
						|
            //        string entrusteUserId = BLL.EntrustDetailService.GetEntrusteUserId(userId);
 | 
						|
            //        if (!string.IsNullOrEmpty(entrusteUserId))
 | 
						|
            //        {
 | 
						|
            //            q = q.Where(e => e.CompileMan == userId || e.CompileMan == entrusteUserId);
 | 
						|
            //        }
 | 
						|
            //        else
 | 
						|
            //        {
 | 
						|
            //            q = q.Where(e => e.CompileMan == userId);
 | 
						|
            //        }
 | 
						|
            //    }
 | 
						|
            //}
 | 
						|
            count = q.Count();
 | 
						|
            if (count == 0)
 | 
						|
            {
 | 
						|
                return new object[] { "" };
 | 
						|
            }
 | 
						|
 | 
						|
            return from x in q.Skip(startRowIndex).Take(maximumRows)
 | 
						|
                   select new
 | 
						|
                   {
 | 
						|
                       x.CheckEquipmentId,
 | 
						|
                       x.ProjectId,
 | 
						|
                       UserUnit = (from y in db.Base_Unit where y.UnitId == x.UserUnitId select y.UnitName).First(),
 | 
						|
                       x.EquipmentName,
 | 
						|
                       x.Format,
 | 
						|
                       x.SetAccuracyGrade,
 | 
						|
                       x.RealAccuracyGrade,
 | 
						|
                       x.CheckCycle,
 | 
						|
                       x.CheckDay,
 | 
						|
                       IsIdentification = x.IsIdentification == true ? "有" : "没有",
 | 
						|
                       IsCheckCertificate = x.IsCheckCertificate == true ? "有" : "没有",
 | 
						|
                       x.AttachUrl,
 | 
						|
                       CompileMan = (from y in db.Sys_User where y.UserId == x.CompileMan select y.UserName).First(),
 | 
						|
                       x.CompileDate,
 | 
						|
                       x.State,
 | 
						|
                   };
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 获取列表数
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static int getListCount(string projectId, string userId, string roleId)
 | 
						|
        {
 | 
						|
            return count;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据检试验设备及测量器具信息Id获取一个检试验设备及测量器具信息
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="CheckEquipmentCode">检试验设备及测量器具信息Id</param>
 | 
						|
        /// <returns>一个检试验设备及测量器具信息实体</returns>
 | 
						|
        public static Model.Check_CheckEquipment GetCheckEquipmentByCheckEquipmentId(string CheckEquipmentId)
 | 
						|
        {
 | 
						|
            Model.Check_CheckEquipment res = Funs.DB.Check_CheckEquipment.FirstOrDefault(x => x.CheckEquipmentId == CheckEquipmentId);
 | 
						|
            //res.AttachUrl = AttachFileService.getFileUrl(res.CheckEquipmentId);
 | 
						|
            return res;
 | 
						|
 | 
						|
        }
 | 
						|
        public static Model.Check_CheckEquipment GetCheckEquipmentByCheckEquipmentIdForApi(string CheckEquipmentId)
 | 
						|
        {
 | 
						|
            using (var db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                Model.Check_CheckEquipment res = db.Check_CheckEquipment.FirstOrDefault(a => a.CheckEquipmentId == CheckEquipmentId);
 | 
						|
                //res.AttachUrl = AttachFileService.getFileUrl(res.CheckEquipmentId);
 | 
						|
                Model.Check_CheckEquipment x = new Model.Check_CheckEquipment();
 | 
						|
                x.CheckEquipmentId = res.CheckEquipmentId;
 | 
						|
                x.UserUnitId = res.UserUnitId + "$" + UnitService.getUnitNamesUnitIds(res.UserUnitId);
 | 
						|
                x.ProjectId = res.ProjectId;
 | 
						|
                x.EquipmentName = res.EquipmentName;
 | 
						|
                x.Format = res.Format;
 | 
						|
                x.SetAccuracyGrade = res.SetAccuracyGrade;
 | 
						|
                x.RealAccuracyGrade = res.RealAccuracyGrade;
 | 
						|
                x.CheckCycle = res.CheckCycle;
 | 
						|
                x.CheckDay = res.CheckDay;
 | 
						|
                x.IsIdentification = res.IsIdentification;
 | 
						|
                x.IsCheckCertificate = res.IsCheckCertificate;
 | 
						|
                x.CompileDate = res.CompileDate;
 | 
						|
                x.State = res.State;
 | 
						|
                x.Isdamage = res.Isdamage;
 | 
						|
                if (res.CheckCycle.HasValue && res.CheckDay.HasValue)
 | 
						|
                {
 | 
						|
                    x.CompileMan = res.CompileMan + "$" + ConvertIsBeOverdue(res.CheckCycle.Value, res.CheckDay.Value);
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    x.CompileMan = res.CompileMan + "$";
 | 
						|
 | 
						|
                }
 | 
						|
                x.AttachUrl = AttachFileService.getFileUrl(res.CheckEquipmentId);
 | 
						|
 | 
						|
                return x;
 | 
						|
            }
 | 
						|
 | 
						|
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 增加检试验设备及测量器具信息信息
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="CheckEquipment">检试验设备及测量器具信息实体</param>
 | 
						|
        public static void AddCheckEquipment(Model.Check_CheckEquipment CheckEquipment)
 | 
						|
        {
 | 
						|
            using (var db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                Model.Check_CheckEquipment newCheckEquipment = new Model.Check_CheckEquipment();
 | 
						|
                newCheckEquipment.CheckEquipmentId = CheckEquipment.CheckEquipmentId;
 | 
						|
                newCheckEquipment.ProjectId = CheckEquipment.ProjectId;
 | 
						|
                newCheckEquipment.UserUnitId = CheckEquipment.UserUnitId;
 | 
						|
                newCheckEquipment.EquipmentName = CheckEquipment.EquipmentName;
 | 
						|
                newCheckEquipment.Format = CheckEquipment.Format;
 | 
						|
                newCheckEquipment.SetAccuracyGrade = CheckEquipment.SetAccuracyGrade;
 | 
						|
                newCheckEquipment.RealAccuracyGrade = CheckEquipment.RealAccuracyGrade;
 | 
						|
                newCheckEquipment.CheckCycle = CheckEquipment.CheckCycle;
 | 
						|
                newCheckEquipment.CheckDay = CheckEquipment.CheckDay;
 | 
						|
                newCheckEquipment.IsIdentification = CheckEquipment.IsIdentification;
 | 
						|
                newCheckEquipment.IsCheckCertificate = CheckEquipment.IsCheckCertificate;
 | 
						|
                newCheckEquipment.AttachUrl = CheckEquipment.AttachUrl;
 | 
						|
                newCheckEquipment.CompileMan = CheckEquipment.CompileMan;
 | 
						|
                newCheckEquipment.CompileDate = CheckEquipment.CompileDate;
 | 
						|
                newCheckEquipment.State = CheckEquipment.State;
 | 
						|
                newCheckEquipment.Isdamage = CheckEquipment.Isdamage;
 | 
						|
                if (!string.IsNullOrEmpty(CheckEquipment.SaveHandleMan))
 | 
						|
                    newCheckEquipment.SaveHandleMan = CheckEquipment.SaveHandleMan;
 | 
						|
 | 
						|
 | 
						|
                db.Check_CheckEquipment.InsertOnSubmit(newCheckEquipment);
 | 
						|
                db.SubmitChanges();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 修改检试验设备及测量器具信息信息
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="CheckEquipment">检试验设备及测量器具信息实体</param>
 | 
						|
        public static void UpdateCheckEquipment(Model.Check_CheckEquipment CheckEquipment)
 | 
						|
        {
 | 
						|
            using (var db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                Model.Check_CheckEquipment newCheckEquipment = db.Check_CheckEquipment.First(e => e.CheckEquipmentId == CheckEquipment.CheckEquipmentId);
 | 
						|
                if (!string.IsNullOrEmpty(CheckEquipment.UserUnitId))
 | 
						|
                    newCheckEquipment.UserUnitId = CheckEquipment.UserUnitId;
 | 
						|
                if (!string.IsNullOrEmpty(CheckEquipment.EquipmentName))
 | 
						|
                    newCheckEquipment.EquipmentName = CheckEquipment.EquipmentName;
 | 
						|
                if (!string.IsNullOrEmpty(CheckEquipment.Format))
 | 
						|
                    newCheckEquipment.Format = CheckEquipment.Format;
 | 
						|
                if (!string.IsNullOrEmpty(CheckEquipment.SetAccuracyGrade))
 | 
						|
                    newCheckEquipment.SetAccuracyGrade = CheckEquipment.SetAccuracyGrade;
 | 
						|
                if (!string.IsNullOrEmpty(CheckEquipment.RealAccuracyGrade))
 | 
						|
                    newCheckEquipment.RealAccuracyGrade = CheckEquipment.RealAccuracyGrade;
 | 
						|
                if (!string.IsNullOrEmpty(CheckEquipment.CheckCycle.ToString()))
 | 
						|
                    newCheckEquipment.CheckCycle = CheckEquipment.CheckCycle;
 | 
						|
                if (CheckEquipment.CheckDay.HasValue)
 | 
						|
                    newCheckEquipment.CheckDay = CheckEquipment.CheckDay;
 | 
						|
                if (!string.IsNullOrEmpty(CheckEquipment.IsIdentification.ToString()))
 | 
						|
                    newCheckEquipment.IsIdentification = CheckEquipment.IsIdentification;
 | 
						|
                if (!string.IsNullOrEmpty(CheckEquipment.IsCheckCertificate.ToString()))
 | 
						|
                    newCheckEquipment.IsCheckCertificate = CheckEquipment.IsCheckCertificate;
 | 
						|
                if (!string.IsNullOrEmpty(CheckEquipment.AttachUrl))
 | 
						|
                    newCheckEquipment.AttachUrl = CheckEquipment.AttachUrl;
 | 
						|
                if (!string.IsNullOrEmpty(CheckEquipment.State))
 | 
						|
                    newCheckEquipment.State = CheckEquipment.State;
 | 
						|
                if (!string.IsNullOrEmpty(CheckEquipment.Isdamage))
 | 
						|
                    newCheckEquipment.Isdamage = CheckEquipment.Isdamage;
 | 
						|
                if (!string.IsNullOrEmpty(CheckEquipment.SaveHandleMan))
 | 
						|
                    newCheckEquipment.SaveHandleMan = CheckEquipment.SaveHandleMan;
 | 
						|
                db.SubmitChanges();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据检试验设备及测量器具信息Id删除一个检试验设备及测量器具信息信息
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="CheckEquipmentCode">检试验设备及测量器具信息Id</param>
 | 
						|
        public static void DeleteCheckEquipment(string CheckEquipmentId)
 | 
						|
        {
 | 
						|
            using (var db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                Model.Check_CheckEquipment CheckEquipment = db.Check_CheckEquipment.First(e => e.CheckEquipmentId == CheckEquipmentId);
 | 
						|
 | 
						|
                db.Check_CheckEquipment.DeleteOnSubmit(CheckEquipment);
 | 
						|
                db.SubmitChanges();
 | 
						|
            }
 | 
						|
                
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据项目主键获得检试验设备及测量器具信息的数量
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="projectId">项目主键</param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static int GetCheckEquipmentCountByProjectId(string projectId)
 | 
						|
        {
 | 
						|
            var q = (from x in Funs.DB.Check_CheckEquipment where x.ProjectId == projectId select x).ToList();
 | 
						|
            return q.Count();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据状态选择下一步办理类型
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="state"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static ListItem[] GetDHandleTypeByState(string state)
 | 
						|
        {
 | 
						|
            if (state == Const.CheckEquipment_Compile || state == Const.CheckEquipment_ReCompile)
 | 
						|
            {
 | 
						|
                ListItem[] lis = new ListItem[2];
 | 
						|
                lis[0] = new ListItem("审核", Const.CheckEquipment_Approve);
 | 
						|
                lis[1] = new ListItem("审批完成", Const.CheckEquipment_Complete);
 | 
						|
                return lis;
 | 
						|
            }
 | 
						|
            else if (state == Const.CheckEquipment_Approve)
 | 
						|
            {
 | 
						|
                ListItem[] lis = new ListItem[2];
 | 
						|
                lis[0] = new ListItem("审批完成", Const.CheckEquipment_Complete);
 | 
						|
                lis[1] = new ListItem("重新编制", Const.CheckEquipment_ReCompile);
 | 
						|
                return lis;
 | 
						|
            }
 | 
						|
            else
 | 
						|
                return null;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据单位主键获得检试验设备及测量器具的数量
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="unitId">单位主键</param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static int GetCheckEquipmentCountByUnitId(string unitId)
 | 
						|
        {
 | 
						|
            var q = (from x in Funs.DB.Check_CheckEquipment where x.UserUnitId == unitId select x).ToList();
 | 
						|
            return q.Count();
 | 
						|
        }
 | 
						|
        public static List<Model.Check_CheckEquipment> getListByProject(string name, string projectId, int startRowIndex, int maximumRows)
 | 
						|
        {
 | 
						|
            List<Model.Check_CheckEquipment> listRes = new List<Model.Check_CheckEquipment>();
 | 
						|
            List<String> unitids = new List<string>();
 | 
						|
            using (var db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                if (!string.IsNullOrEmpty(name))
 | 
						|
                {
 | 
						|
                    var qunit = from u in db.Base_Unit
 | 
						|
                                where u.UnitName.Contains(name)
 | 
						|
                                select u.UnitId;
 | 
						|
                    unitids = qunit.ToList();
 | 
						|
                }
 | 
						|
                var q = from x in db.Check_CheckEquipment
 | 
						|
                        orderby x.CheckDay descending
 | 
						|
                        where x.ProjectId == projectId &&
 | 
						|
                          (name == "" || x.EquipmentName.Contains(name) || unitids.Contains(x.UserUnitId))
 | 
						|
                        select new
 | 
						|
                        {
 | 
						|
                            x.CheckEquipmentId,
 | 
						|
                            x.ProjectId,
 | 
						|
                            x.EquipmentName,
 | 
						|
                            x.Format,
 | 
						|
                            x.SetAccuracyGrade,
 | 
						|
                            x.RealAccuracyGrade,
 | 
						|
                            x.CheckCycle,
 | 
						|
                            x.CheckDay,
 | 
						|
                            x.IsIdentification,
 | 
						|
                            x.IsCheckCertificate,
 | 
						|
                            x.AttachUrl,
 | 
						|
                            x.CompileDate,
 | 
						|
                            x.State,
 | 
						|
                            x.Isdamage,
 | 
						|
                            x.UserUnitId,
 | 
						|
                            x.CompileMan,
 | 
						|
                            UserUnitName = (from y in db.Base_Unit where y.UnitId == x.UserUnitId select y.UnitName).FirstOrDefault(),
 | 
						|
 | 
						|
                        };
 | 
						|
                var list = q.Skip(startRowIndex * maximumRows).Take(maximumRows).ToList();
 | 
						|
 | 
						|
                for (int i = 0; i < list.Count; i++)
 | 
						|
                {
 | 
						|
                    Model.Check_CheckEquipment x = new Model.Check_CheckEquipment();
 | 
						|
                    x.CheckEquipmentId = list[i].CheckEquipmentId;
 | 
						|
                    x.UserUnitId = list[i].UserUnitId + "$" + list[i].UserUnitName;
 | 
						|
                    x.ProjectId = list[i].ProjectId;
 | 
						|
                    x.EquipmentName = list[i].EquipmentName;
 | 
						|
                    x.Format = list[i].Format;
 | 
						|
                    x.SetAccuracyGrade = list[i].SetAccuracyGrade;
 | 
						|
                    x.RealAccuracyGrade = list[i].RealAccuracyGrade;
 | 
						|
                    x.CheckCycle = list[i].CheckCycle;
 | 
						|
                    x.CheckDay = list[i].CheckDay;
 | 
						|
                    x.IsIdentification = list[i].IsIdentification;
 | 
						|
                    x.IsCheckCertificate = list[i].IsCheckCertificate;
 | 
						|
                    x.CompileDate = list[i].CompileDate;
 | 
						|
                    x.State = list[i].State;
 | 
						|
                    x.Isdamage = list[i].Isdamage;
 | 
						|
                    if (x.CheckCycle.HasValue && x.CheckDay.HasValue)
 | 
						|
                    {
 | 
						|
                        x.CompileMan = list[i].CompileMan + "$" + ConvertMan(list[i].CheckEquipmentId) + "$" + ConvertIsBeOverdue(list[i].CheckCycle.Value, list[i].CheckDay.Value);
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        x.CompileMan = list[i].CompileMan + "$" + ConvertMan(list[i].CheckEquipmentId) + "$";
 | 
						|
 | 
						|
                    }
 | 
						|
                    x.AttachUrl = AttachFileService.getFileUrl(list[i].CheckEquipmentId);
 | 
						|
                    listRes.Add(x);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return listRes;
 | 
						|
        }
 | 
						|
        protected static string ConvertIsBeOverdue(object CheckCycle, object CheckDay)
 | 
						|
        {
 | 
						|
            if (CheckCycle != null && CheckDay != null)
 | 
						|
            {
 | 
						|
                if (!string.IsNullOrEmpty(CheckCycle.ToString()) && !string.IsNullOrEmpty(CheckDay.ToString()))
 | 
						|
                {
 | 
						|
                    var ResultData = Convert.ToDateTime(CheckDay).AddDays(Convert.ToDouble(CheckCycle) * 365);
 | 
						|
                    if (ResultData >= DateTime.Now)
 | 
						|
                    {
 | 
						|
                        return "未过期";
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        return "过期";
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return "";
 | 
						|
 | 
						|
        }
 | 
						|
        protected static string ConvertMan(string designId)
 | 
						|
        {
 | 
						|
            if (!string.IsNullOrEmpty(designId))
 | 
						|
            {
 | 
						|
                Model.Check_CheckEquipmentApprove a = BLL.CheckEquipmentApproveService.GetCheckEquipmentApproveByCheckEquipmentId(designId);
 | 
						|
                if (a != null)
 | 
						|
                {
 | 
						|
                    if (a.ApproveMan != null)
 | 
						|
                    {
 | 
						|
                        var item = BLL.UserService.GetUserByUserId(a.ApproveMan);
 | 
						|
                        if (item != null)
 | 
						|
                            return item.UserName;
 | 
						|
                        else
 | 
						|
                            return "";
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    return "";
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return "";
 | 
						|
        }
 | 
						|
 | 
						|
    }
 | 
						|
}
 |