666 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			666 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			C#
		
	
	
	
using System;
 | 
						|
using System.Collections;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Globalization;
 | 
						|
using System.Linq;
 | 
						|
using System.Text;
 | 
						|
using System.Threading.Tasks;
 | 
						|
using System.Web.UI.WebControls;
 | 
						|
 | 
						|
namespace BLL
 | 
						|
{
 | 
						|
    public class DesignService
 | 
						|
    {
 | 
						|
        public static Model.SGGLDB db = Funs.DB;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 记录数
 | 
						|
        /// </summary>
 | 
						|
        private static int count
 | 
						|
        {
 | 
						|
            get;
 | 
						|
            set;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 定义变量
 | 
						|
        /// </summary>
 | 
						|
        private static IQueryable<Model.Check_Design> qq = from x in db.Check_Design orderby x.DesignDate descending select x;
 | 
						|
 | 
						|
 | 
						|
        public static string CovBool(bool? b)
 | 
						|
        {
 | 
						|
            string str = string.Empty;
 | 
						|
            if (b == true)
 | 
						|
            {
 | 
						|
                str = "是";
 | 
						|
            }
 | 
						|
            else if (b == false)
 | 
						|
            {
 | 
						|
                str = "否";
 | 
						|
            }
 | 
						|
            return str;
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 获取列表数
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static int getListCount(string projectId, string userId, string roleId, string designType, string startTime, string endTime, string unitId, string mainItemId, string cNProfessionalCode)
 | 
						|
        {
 | 
						|
            return count;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据设计变更信息Id获取一个设计变更信息
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="DesignCode">设计变更信息Id</param>
 | 
						|
        /// <returns>一个设计变更信息实体</returns>
 | 
						|
        public static Model.Check_Design GetDesignByDesignId(string DesignId)
 | 
						|
        {
 | 
						|
            return Funs.DB.Check_Design.FirstOrDefault(x => x.DesignId == DesignId);
 | 
						|
        }
 | 
						|
        public static Model.Check_Design GetDesignByDesignIdForApi(string DesignId)
 | 
						|
        {
 | 
						|
            using (var db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
 | 
						|
                Model.Check_Design res = db.Check_Design.FirstOrDefault(x => x.DesignId == DesignId);
 | 
						|
                res.AttachUrl = AttachFileService.getFileUrl(res.DesignId);
 | 
						|
                res.CarryUnitIds = res.CarryUnitIds + "$" + UnitService.getUnitNamesUnitIds(res.CarryUnitIds);
 | 
						|
                var resItem = (from y in db.ProjectData_MainItem where y.MainItemId == res.MainItemId select y.MainItemName).FirstOrDefault();
 | 
						|
                res.MainItemId = res.MainItemId + "$" + resItem;
 | 
						|
                res.BuyMaterialUnitIds = res.BuyMaterialUnitIds + "$" + UnitService.getUnitNamesUnitIds(res.BuyMaterialUnitIds);
 | 
						|
                res.CNProfessionalCode = res.CNProfessionalCode + "$" + DesignProfessionalService.GetDesignProfessional(res.CNProfessionalCode).ProfessionalName;
 | 
						|
                res.CompileMan = res.CompileMan + "$" + ConvertManAndId(res.DesignId);
 | 
						|
                return res;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 增加设计变更信息信息
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="Design">设计变更信息实体</param>
 | 
						|
        public static void AddDesign(Model.Check_Design Design)
 | 
						|
        {
 | 
						|
            Model.SGGLDB db = Funs.DB;
 | 
						|
            Model.Check_Design newDesign = new Model.Check_Design();
 | 
						|
            newDesign.DesignId = Design.DesignId;
 | 
						|
            newDesign.ProjectId = Design.ProjectId;
 | 
						|
            newDesign.DesignCode = Design.DesignCode;
 | 
						|
            newDesign.MainItemId = Design.MainItemId;
 | 
						|
            newDesign.CNProfessionalCode = Design.CNProfessionalCode;
 | 
						|
            newDesign.DesignType = Design.DesignType;
 | 
						|
            newDesign.DesignContents = Design.DesignContents;
 | 
						|
            newDesign.DesignDate = Design.DesignDate;
 | 
						|
            newDesign.CarryUnitIds = Design.CarryUnitIds;
 | 
						|
            newDesign.IsNoChange = Design.IsNoChange;
 | 
						|
            newDesign.IsNeedMaterial = Design.IsNeedMaterial;
 | 
						|
            newDesign.BuyMaterialUnitIds = Design.BuyMaterialUnitIds;
 | 
						|
            newDesign.MaterialPlanReachDate = Design.MaterialPlanReachDate;
 | 
						|
            newDesign.PlanDay = Design.PlanDay;
 | 
						|
            newDesign.PlanCompleteDate = Design.PlanCompleteDate;
 | 
						|
            newDesign.MaterialRealReachDate = Design.MaterialRealReachDate;
 | 
						|
            newDesign.RealCompleteDate = Design.RealCompleteDate;
 | 
						|
            newDesign.AttachUrl = Design.AttachUrl;
 | 
						|
            newDesign.CompileMan = Design.CompileMan;
 | 
						|
            newDesign.CompileDate = Design.CompileDate;
 | 
						|
            newDesign.State = Design.State;
 | 
						|
            newDesign.SaveHandleMan = Design.SaveHandleMan;
 | 
						|
 | 
						|
            db.Check_Design.InsertOnSubmit(newDesign);
 | 
						|
            db.SubmitChanges();
 | 
						|
        }
 | 
						|
        public static void AddDesignForApi(Model.Check_Design Design)
 | 
						|
        {
 | 
						|
            using (var db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                Model.Check_Design newDesign = new Model.Check_Design();
 | 
						|
                newDesign.DesignId = Design.DesignId;
 | 
						|
                newDesign.ProjectId = Design.ProjectId;
 | 
						|
                newDesign.DesignCode = Design.DesignCode;
 | 
						|
                newDesign.MainItemId = Design.MainItemId;
 | 
						|
                newDesign.CNProfessionalCode = Design.CNProfessionalCode;
 | 
						|
                newDesign.DesignType = Design.DesignType;
 | 
						|
                newDesign.DesignContents = Design.DesignContents;
 | 
						|
                newDesign.DesignDate = Design.DesignDate;
 | 
						|
                newDesign.CarryUnitIds = Design.CarryUnitIds;
 | 
						|
                newDesign.IsNoChange = Design.IsNoChange;
 | 
						|
                newDesign.IsNeedMaterial = Design.IsNeedMaterial;
 | 
						|
                newDesign.BuyMaterialUnitIds = Design.BuyMaterialUnitIds;
 | 
						|
                newDesign.MaterialPlanReachDate = Design.MaterialPlanReachDate;
 | 
						|
                newDesign.PlanDay = Design.PlanDay;
 | 
						|
                newDesign.PlanCompleteDate = Design.PlanCompleteDate;
 | 
						|
                newDesign.MaterialRealReachDate = Design.MaterialRealReachDate;
 | 
						|
                newDesign.RealCompleteDate = Design.RealCompleteDate;
 | 
						|
                newDesign.AttachUrl = Design.AttachUrl;
 | 
						|
                newDesign.CompileMan = Design.CompileMan;
 | 
						|
                newDesign.CompileDate = Design.CompileDate;
 | 
						|
                newDesign.State = Design.State;
 | 
						|
                newDesign.SaveHandleMan = Design.SaveHandleMan;
 | 
						|
                db.Check_Design.InsertOnSubmit(newDesign);
 | 
						|
                db.SubmitChanges();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 修改设计变更信息信息
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="Design">设计变更信息实体</param>
 | 
						|
        public static void UpdateDesign(Model.Check_Design Design)
 | 
						|
        {
 | 
						|
            Model.SGGLDB db = Funs.DB;
 | 
						|
            Model.Check_Design newDesign = db.Check_Design.First(e => e.DesignId == Design.DesignId);
 | 
						|
            newDesign.DesignCode = Design.DesignCode;
 | 
						|
            newDesign.MainItemId = Design.MainItemId;
 | 
						|
            newDesign.CNProfessionalCode = Design.CNProfessionalCode;
 | 
						|
            newDesign.DesignType = Design.DesignType;
 | 
						|
            newDesign.DesignContents = Design.DesignContents;
 | 
						|
            newDesign.DesignDate = Design.DesignDate;
 | 
						|
            newDesign.CarryUnitIds = Design.CarryUnitIds;
 | 
						|
            newDesign.IsNoChange = Design.IsNoChange;
 | 
						|
            newDesign.IsNeedMaterial = Design.IsNeedMaterial;
 | 
						|
            newDesign.BuyMaterialUnitIds = Design.BuyMaterialUnitIds;
 | 
						|
            newDesign.MaterialPlanReachDate = Design.MaterialPlanReachDate;
 | 
						|
            newDesign.PlanDay = Design.PlanDay;
 | 
						|
            newDesign.PlanCompleteDate = Design.PlanCompleteDate;
 | 
						|
            newDesign.MaterialRealReachDate = Design.MaterialRealReachDate;
 | 
						|
            newDesign.RealCompleteDate = Design.RealCompleteDate;
 | 
						|
            newDesign.AttachUrl = Design.AttachUrl;
 | 
						|
            newDesign.State = Design.State;
 | 
						|
            newDesign.SaveHandleMan = Design.SaveHandleMan;
 | 
						|
 | 
						|
            db.SubmitChanges();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据设计变更信息Id删除一个设计变更信息信息
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="DesignCode">设计变更信息Id</param>
 | 
						|
        public static void DeleteDesign(string DesignId)
 | 
						|
        {
 | 
						|
            Model.SGGLDB db = Funs.DB;
 | 
						|
            Model.Check_Design Design = db.Check_Design.First(e => e.DesignId == DesignId);
 | 
						|
 | 
						|
            db.Check_Design.DeleteOnSubmit(Design);
 | 
						|
            db.SubmitChanges();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据项目主键获得设计变更信息的数量
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="projectId">项目主键</param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static int GetDesignCountByProjectId(string projectId)
 | 
						|
        {
 | 
						|
            var q = (from x in Funs.DB.Check_Design where x.ProjectId == projectId select x).ToList();
 | 
						|
            return q.Count();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据主项主键获得设计变更信息的数量
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="projectId">项目主键</param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static int GetDesignCountByMainItemId(string mainItemId)
 | 
						|
        {
 | 
						|
            var q = (from x in Funs.DB.Check_Design where x.MainItemId == mainItemId select x).ToList();
 | 
						|
            return q.Count();
 | 
						|
        }
 | 
						|
        private static string GetUnitNames(string unitIds)
 | 
						|
        {
 | 
						|
            string unitNames = string.Empty;
 | 
						|
            if (!string.IsNullOrEmpty(unitIds))
 | 
						|
            {
 | 
						|
                string[] ids = unitIds.Split(',');
 | 
						|
                foreach (var id in ids)
 | 
						|
                {
 | 
						|
                    Model.Base_Unit unit = BLL.UnitService.GetUnitByUnitId(id);
 | 
						|
                    if (unit != null)
 | 
						|
                    {
 | 
						|
                        unitNames += unit.UnitName + ",";
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrEmpty(unitNames))
 | 
						|
                {
 | 
						|
                    unitNames = unitNames.Substring(0, unitNames.LastIndexOf(","));
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return unitNames;
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 根据时间段获取设计变更集合
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="startTime">开始时间</param>
 | 
						|
        /// <param name="endTime">结束时间</param>
 | 
						|
        public static IEnumerable GetDesignListByTime(string projectId, DateTime startTime, DateTime endTime)
 | 
						|
        {
 | 
						|
            Model.SGGLDB db = Funs.DB;
 | 
						|
            return from x in db.Check_Design
 | 
						|
                   where x.ProjectId == projectId && x.DesignDate >= startTime && x.DesignDate < endTime
 | 
						|
                   select new
 | 
						|
                   {
 | 
						|
                       x.DesignId,
 | 
						|
                       x.ProjectId,
 | 
						|
                       x.DesignCode,
 | 
						|
                       MainItemName = (from y in db.ProjectData_MainItem where y.MainItemId == x.MainItemId select y.MainItemName).First(),
 | 
						|
                       CNProfessional = (from y in db.Base_DesignProfessional where y.DesignProfessionalId == x.CNProfessionalCode select y.ProfessionalName).First(),
 | 
						|
                       x.DesignType,
 | 
						|
                       x.DesignContents,
 | 
						|
                       x.DesignDate,
 | 
						|
                       CarryUnit = GetUnitNames(x.CarryUnitIds),
 | 
						|
                       IsNoChange = x.IsNoChange == true ? "是" : "否",
 | 
						|
                       IsNeedMaterial = x.IsNeedMaterial == true ? "是" : "否",
 | 
						|
                       BuyMaterialUnit = GetUnitNames(x.BuyMaterialUnitIds),
 | 
						|
                       x.MaterialPlanReachDate,
 | 
						|
                       x.PlanDay,
 | 
						|
                       x.PlanCompleteDate,
 | 
						|
                       x.MaterialRealReachDate,
 | 
						|
                       x.RealCompleteDate,
 | 
						|
                       x.CompileMan,
 | 
						|
                       x.CompileDate,
 | 
						|
                       x.State,
 | 
						|
                   };
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 获取变更类型项
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="projectId">项目Id</param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static ListItem[] GetDesignTypeList()
 | 
						|
        {
 | 
						|
            ListItem[] lis = new ListItem[10];
 | 
						|
            lis[0] = new ListItem("标准规范升版", "标准规范升版");
 | 
						|
            lis[1] = new ListItem("设计优化", "设计优化");
 | 
						|
            lis[2] = new ListItem("设计不当", "设计不当");
 | 
						|
            lis[3] = new ListItem("设计漏项", "设计漏项");
 | 
						|
            lis[4] = new ListItem("材料代用", "材料代用");
 | 
						|
            lis[5] = new ListItem("业主要求", "业主要求");
 | 
						|
            lis[6] = new ListItem("供货偏离", "供货偏离");
 | 
						|
            lis[7] = new ListItem("施工偏离", "施工偏离");
 | 
						|
            lis[8] = new ListItem("外部条件改变", "外部条件改变");
 | 
						|
            lis[9] = new ListItem("其它", "其它");
 | 
						|
            return lis;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 根据状态选择下一步办理类型
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="state"></param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static ListItem[] GetDHandleTypeByState(string state)
 | 
						|
        {
 | 
						|
            if (state == Const.Design_Compile || state == Const.Design_ReCompile)
 | 
						|
            {
 | 
						|
                ListItem[] lis = new ListItem[1];
 | 
						|
                lis[0] = new ListItem("变更分析", Const.Design_Audit1);
 | 
						|
                return lis;
 | 
						|
            }
 | 
						|
            else if (state == Const.Design_Audit1)
 | 
						|
            {
 | 
						|
                ListItem[] lis = new ListItem[2];
 | 
						|
                lis[0] = new ListItem("变更分析审核", Const.Design_Audit2);
 | 
						|
                lis[1] = new ListItem("重新整理", Const.Design_ReCompile);
 | 
						|
                return lis;
 | 
						|
            }
 | 
						|
            else if (state == Const.Design_Audit2)
 | 
						|
            {
 | 
						|
                ListItem[] lis = new ListItem[2];
 | 
						|
                lis[0] = new ListItem("变更实施", Const.Design_Audit3);
 | 
						|
                lis[1] = new ListItem("变更分析", Const.Design_Audit1);
 | 
						|
                return lis;
 | 
						|
            }
 | 
						|
            else if (state == Const.Design_Audit3)
 | 
						|
            {
 | 
						|
                ListItem[] lis = new ListItem[2];
 | 
						|
                lis[0] = new ListItem("变更实施审核", Const.Design_Audit4);
 | 
						|
                lis[1] = new ListItem("变更分析审核", Const.Design_Audit2);
 | 
						|
                return lis;
 | 
						|
            }
 | 
						|
            else if (state == Const.Design_Audit4)
 | 
						|
            {
 | 
						|
                ListItem[] lis = new ListItem[2];
 | 
						|
                lis[0] = new ListItem("审批完成", Const.Design_Complete);
 | 
						|
                lis[1] = new ListItem("变更实施", Const.Design_Audit3);
 | 
						|
                return lis;
 | 
						|
            }
 | 
						|
            else
 | 
						|
                return null;
 | 
						|
        }
 | 
						|
        public static List<Model.Check_Design> getListDataForApi(string projectId, string unitName, int startRowIndex, int maximumRows)
 | 
						|
        {
 | 
						|
            using (var db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                IQueryable<Model.Check_Design> q = db.Check_Design;
 | 
						|
                if (!string.IsNullOrEmpty(projectId))
 | 
						|
                {
 | 
						|
                    q = q.Where(e => e.ProjectId == projectId);
 | 
						|
                }
 | 
						|
 | 
						|
                if (!string.IsNullOrEmpty(projectId))
 | 
						|
                {
 | 
						|
                    q = q.Where(e => e.ProjectId == projectId);
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrEmpty(unitName))
 | 
						|
                {
 | 
						|
 | 
						|
                    q = q.Where(e => e.CarryUnitIds != null);
 | 
						|
                }
 | 
						|
 | 
						|
 | 
						|
                var qres = from x in q
 | 
						|
                           orderby x.DesignCode descending
 | 
						|
                           select new
 | 
						|
                           {
 | 
						|
                               x.DesignId,
 | 
						|
                               x.ProjectId,
 | 
						|
                               x.DesignCode,
 | 
						|
                               x.MainItemId,
 | 
						|
                               x.CNProfessionalCode,
 | 
						|
                               MainItemName = (from y in db.ProjectData_MainItem where y.MainItemId == x.MainItemId select y.MainItemName).First(),
 | 
						|
                               CNProfessional = (from y in db.Base_DesignProfessional where y.DesignProfessionalId == x.CNProfessionalCode select y.ProfessionalName).First(),
 | 
						|
                               CompileManName = (from y in db.Sys_User where y.UserId == x.CompileMan select y.UserName).First(),
 | 
						|
                               x.DesignType,
 | 
						|
                               x.DesignContents,
 | 
						|
                               x.DesignDate,
 | 
						|
                               x.CarryUnitIds,
 | 
						|
                               CarryUnit = GetUnitNames(x.CarryUnitIds),
 | 
						|
                               x.IsNoChange,
 | 
						|
                               x.IsNeedMaterial,
 | 
						|
                               x.BuyMaterialUnitIds,
 | 
						|
                               BuyMaterialUnit = GetUnitNames(x.BuyMaterialUnitIds),
 | 
						|
                               x.MaterialPlanReachDate,
 | 
						|
                               x.PlanDay,
 | 
						|
                               x.PlanCompleteDate,
 | 
						|
                               x.MaterialRealReachDate,
 | 
						|
                               x.RealCompleteDate,
 | 
						|
                               x.CompileMan,
 | 
						|
                               x.CompileDate,
 | 
						|
                               x.State
 | 
						|
                           };
 | 
						|
                List<Model.Check_Design> res = new List<Model.Check_Design>();
 | 
						|
 | 
						|
                if (!string.IsNullOrEmpty(unitName))
 | 
						|
                {
 | 
						|
                    List<string> ids;
 | 
						|
                    var qids = from x in Funs.DB.Base_Unit where x.UnitName.Contains(unitName) select x.UnitId;
 | 
						|
                    ids = qids.ToList();
 | 
						|
 | 
						|
 | 
						|
                    var list = qres.ToList();
 | 
						|
                    foreach (var item in list)
 | 
						|
                    {
 | 
						|
                        string[] carryIds = item.CarryUnitIds.Split(',');
 | 
						|
                        foreach (string id in carryIds)
 | 
						|
                        {
 | 
						|
                            if (ids.Contains(id))
 | 
						|
                            {
 | 
						|
                                Model.Check_Design cd = new Model.Check_Design();
 | 
						|
                                cd.DesignId = item.DesignId;
 | 
						|
                                cd.ProjectId = item.ProjectId;
 | 
						|
                                cd.DesignCode = item.DesignCode;
 | 
						|
                                cd.CNProfessionalCode = item.CNProfessionalCode + "$" + item.CNProfessional;
 | 
						|
                                cd.DesignType = item.DesignType;
 | 
						|
                                cd.DesignContents = item.DesignContents;
 | 
						|
                                cd.DesignDate = item.DesignDate;
 | 
						|
                                cd.CarryUnitIds = item.CarryUnitIds + "$" + item.CarryUnit;
 | 
						|
                                cd.IsNoChange = item.IsNoChange;
 | 
						|
                                cd.IsNeedMaterial = item.IsNeedMaterial;
 | 
						|
                                cd.MainItemId = item.MainItemId + "$" + item.MainItemName;
 | 
						|
                                cd.BuyMaterialUnitIds = item.BuyMaterialUnitIds + "$" + item.BuyMaterialUnit;
 | 
						|
                                cd.MaterialPlanReachDate = item.MaterialPlanReachDate;
 | 
						|
                                cd.PlanDay = item.PlanDay;
 | 
						|
                                cd.PlanCompleteDate = item.PlanCompleteDate;
 | 
						|
                                cd.MaterialRealReachDate = item.MaterialRealReachDate;
 | 
						|
                                cd.RealCompleteDate = item.RealCompleteDate;
 | 
						|
                                cd.CompileMan = item.CompileManName + "$" + ConvertMan(item.DesignId);
 | 
						|
                                cd.CompileDate = item.CompileDate;
 | 
						|
                                cd.State = item.State;
 | 
						|
                                cd.AttachUrl = AttachFileService.getFileUrl(item.DesignId);
 | 
						|
                                res.Add(cd);
 | 
						|
                                break;
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
 | 
						|
                    }
 | 
						|
                    res = res.Skip(startRowIndex).Take(maximumRows).ToList();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    var list = qres.Skip(startRowIndex).Take(maximumRows).ToList();
 | 
						|
                    foreach (var item in list)
 | 
						|
                    {
 | 
						|
                        Model.Check_Design cd = new Model.Check_Design();
 | 
						|
                        cd.DesignId = item.DesignId;
 | 
						|
                        cd.ProjectId = item.ProjectId;
 | 
						|
                        cd.DesignCode = item.DesignCode;
 | 
						|
                        cd.CNProfessionalCode = item.CNProfessionalCode + "$" + item.CNProfessional;
 | 
						|
                        cd.DesignType = item.DesignType;
 | 
						|
                        cd.DesignContents = item.DesignContents;
 | 
						|
                        cd.DesignDate = item.DesignDate;
 | 
						|
                        cd.CarryUnitIds = item.CarryUnitIds + "$" + item.CarryUnit;
 | 
						|
                        cd.IsNoChange = item.IsNoChange;
 | 
						|
                        cd.IsNeedMaterial = item.IsNeedMaterial;
 | 
						|
                        cd.MainItemId = item.MainItemId + "$" + item.MainItemName;
 | 
						|
                        cd.BuyMaterialUnitIds = item.BuyMaterialUnitIds + "$" + item.BuyMaterialUnit;
 | 
						|
                        cd.MaterialPlanReachDate = item.MaterialPlanReachDate;
 | 
						|
                        cd.PlanDay = item.PlanDay;
 | 
						|
                        cd.PlanCompleteDate = item.PlanCompleteDate;
 | 
						|
                        cd.MaterialRealReachDate = item.MaterialRealReachDate;
 | 
						|
                        cd.RealCompleteDate = item.RealCompleteDate;
 | 
						|
                        cd.CompileMan = item.CompileManName + "$" + ConvertManAndId(item.DesignId);
 | 
						|
                        cd.CompileDate = item.CompileDate;
 | 
						|
                        cd.State = item.State;
 | 
						|
                        cd.AttachUrl = AttachFileService.getFileUrl(item.DesignId);
 | 
						|
                        res.Add(cd);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                return res;
 | 
						|
            }
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
        public static List<Model.Check_Design> getListDataForApi(string carryUnitIds, string state, string mainItemId, string cNProfessionalCode, string designType, string designDateA, string designDateZ, string projectId, int startRowIndex, int maximumRows)
 | 
						|
        {
 | 
						|
            using (var db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                IQueryable<Model.Check_Design> q = db.Check_Design;
 | 
						|
                if (!string.IsNullOrEmpty(projectId) && "undefined" != projectId)
 | 
						|
                {
 | 
						|
                    q = q.Where(e => e.ProjectId == projectId);
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrEmpty(carryUnitIds) && "undefined" != carryUnitIds)
 | 
						|
                {
 | 
						|
                    q = q.Where(e => e.CarryUnitIds.Contains(carryUnitIds));
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrEmpty(state) && "undefined" != state)
 | 
						|
                {
 | 
						|
                    if ("已闭合" == state)
 | 
						|
                    {
 | 
						|
                        q = q.Where(e => e.State == "6");
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        q = q.Where(e => e.State != "6");
 | 
						|
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrEmpty(mainItemId) && "undefined" != mainItemId)
 | 
						|
                {
 | 
						|
                    q = q.Where(e => e.MainItemId == mainItemId);
 | 
						|
                }
 | 
						|
 | 
						|
                if (!string.IsNullOrEmpty(cNProfessionalCode) && "undefined" != cNProfessionalCode)
 | 
						|
                {
 | 
						|
                    q = q.Where(e => e.CNProfessionalCode.Contains(cNProfessionalCode));
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrEmpty(designType) && "undefined" != designType)
 | 
						|
                {
 | 
						|
                    q = q.Where(e => e.DesignType == designType);
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrEmpty(designDateA) && "undefined" != designDateA)
 | 
						|
                {
 | 
						|
                    DateTime date = DateTime.ParseExact(designDateA, "yyyy-MM-dd", new CultureInfo("zh-CN", true));
 | 
						|
                    q = q.Where(e => e.DesignDate >= date);
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrEmpty(designDateZ) && "undefined" != designDateZ)
 | 
						|
                {
 | 
						|
                    DateTime date = DateTime.ParseExact(designDateZ + "23:59:59", "yyyy-MM-ddHH:mm:ss", new CultureInfo("zh-CN", true));
 | 
						|
                    q = q.Where(e => e.DesignDate <= date);
 | 
						|
                }
 | 
						|
 | 
						|
                var qres = from x in q.Skip(startRowIndex).Take(maximumRows)
 | 
						|
                           select new
 | 
						|
                           {
 | 
						|
                               x.DesignId,
 | 
						|
                               x.ProjectId,
 | 
						|
                               x.DesignCode,
 | 
						|
                               x.MainItemId,
 | 
						|
                               x.CNProfessionalCode,
 | 
						|
                               MainItemName = (from y in db.ProjectData_MainItem where y.MainItemId == x.MainItemId select y.MainItemName).First(),
 | 
						|
                               CNProfessional = (from y in db.Base_DesignProfessional where y.DesignProfessionalId == x.CNProfessionalCode select y.ProfessionalName).First(),
 | 
						|
                               CompileManName = (from y in db.Sys_User where y.UserId == x.CompileMan select y.UserName).First(),
 | 
						|
                               x.DesignType,
 | 
						|
                               x.DesignContents,
 | 
						|
                               x.DesignDate,
 | 
						|
                               CarryUnit = GetUnitNames(x.CarryUnitIds),
 | 
						|
                               x.IsNoChange,
 | 
						|
                               x.IsNeedMaterial,
 | 
						|
                               x.BuyMaterialUnitIds,
 | 
						|
                               BuyMaterialUnit = GetUnitNames(x.BuyMaterialUnitIds),
 | 
						|
                               x.MaterialPlanReachDate,
 | 
						|
                               x.PlanDay,
 | 
						|
                               x.PlanCompleteDate,
 | 
						|
                               x.MaterialRealReachDate,
 | 
						|
                               x.RealCompleteDate,
 | 
						|
                               x.CompileMan,
 | 
						|
                               x.CompileDate,
 | 
						|
                               x.State
 | 
						|
 | 
						|
                           };
 | 
						|
                List<Model.Check_Design> res = new List<Model.Check_Design>();
 | 
						|
                var list = qres.ToList();
 | 
						|
                foreach (var item in list)
 | 
						|
                {
 | 
						|
                    Model.Check_Design cd = new Model.Check_Design();
 | 
						|
                    cd.DesignId = item.DesignId;
 | 
						|
                    cd.ProjectId = item.ProjectId;
 | 
						|
                    cd.DesignCode = item.DesignCode;
 | 
						|
                    cd.CNProfessionalCode = cd.CNProfessionalCode + "$" + item.CNProfessional;
 | 
						|
                    cd.DesignType = item.DesignType;
 | 
						|
                    cd.DesignContents = item.DesignContents;
 | 
						|
                    cd.DesignDate = item.DesignDate;
 | 
						|
                    cd.CarryUnitIds = cd.CarryUnitIds + "$" + item.CarryUnit;
 | 
						|
                    cd.IsNoChange = item.IsNoChange;
 | 
						|
                    cd.IsNeedMaterial = item.IsNeedMaterial;
 | 
						|
                    cd.MainItemId = item.MainItemId + "$" + item.MainItemName;
 | 
						|
                    cd.BuyMaterialUnitIds = item.BuyMaterialUnitIds + "$" + item.BuyMaterialUnit;
 | 
						|
                    cd.MaterialPlanReachDate = item.MaterialPlanReachDate;
 | 
						|
                    cd.PlanDay = item.PlanDay;
 | 
						|
                    cd.PlanCompleteDate = item.PlanCompleteDate;
 | 
						|
                    cd.MaterialRealReachDate = item.MaterialRealReachDate;
 | 
						|
                    cd.RealCompleteDate = item.RealCompleteDate;
 | 
						|
                    cd.CompileMan = item.CompileManName + "$" + ConvertManAndId(item.DesignId);
 | 
						|
                    cd.CompileDate = item.CompileDate;
 | 
						|
                    cd.State = item.State;
 | 
						|
                    cd.AttachUrl = AttachFileService.getFileUrl(item.DesignId);
 | 
						|
                    res.Add(cd);
 | 
						|
                }
 | 
						|
                return res;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        public static string ConvertMan(string id)
 | 
						|
        {
 | 
						|
            if (id != null)
 | 
						|
            {
 | 
						|
                Model.Check_DesignApprove a = BLL.DesignApproveService.getCurrApproveForApi(id);
 | 
						|
                if (a != null)
 | 
						|
                {
 | 
						|
                    if (a.ApproveMan != null)
 | 
						|
                    {
 | 
						|
                        return BLL.UserService.GetUserByUserId(a.ApproveMan).UserName;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    return "";
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return "";
 | 
						|
        }
 | 
						|
        public static string ConvertManAndId(string id)
 | 
						|
        {
 | 
						|
            if (id != null)
 | 
						|
            {
 | 
						|
                Model.Check_DesignApprove a = BLL.DesignApproveService.getCurrApproveForApi(id);
 | 
						|
                if (a != null)
 | 
						|
                {
 | 
						|
                    if (a.ApproveMan != null)
 | 
						|
                    {
 | 
						|
                        var user = BLL.UserService.GetUserByUserId(a.ApproveMan);
 | 
						|
                        return user.UserName + "$" + user.UserId;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    return "";
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return "";
 | 
						|
        }
 | 
						|
 | 
						|
        public static void UpdateDesignForApi(Model.Check_Design Design)
 | 
						|
        {
 | 
						|
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | 
						|
            {
 | 
						|
                Model.Check_Design newDesign = db.Check_Design.FirstOrDefault(e => e.DesignId == Design.DesignId);
 | 
						|
                if (newDesign != null)
 | 
						|
                {
 | 
						|
                    if (!string.IsNullOrEmpty(Design.DesignCode))
 | 
						|
                        newDesign.DesignCode = Design.DesignCode;
 | 
						|
                    if (!string.IsNullOrEmpty(Design.MainItemId))
 | 
						|
                        newDesign.MainItemId = Design.MainItemId;
 | 
						|
                    if (!string.IsNullOrEmpty(Design.CNProfessionalCode))
 | 
						|
                        newDesign.CNProfessionalCode = Design.CNProfessionalCode;
 | 
						|
                    if (!string.IsNullOrEmpty(Design.DesignType))
 | 
						|
                        newDesign.DesignType = Design.DesignType;
 | 
						|
                    if (!string.IsNullOrEmpty(Design.DesignContents))
 | 
						|
                        newDesign.DesignContents = Design.DesignContents;
 | 
						|
                    if (Design.DesignDate.HasValue)
 | 
						|
                        newDesign.DesignDate = Design.DesignDate;
 | 
						|
                    if (!string.IsNullOrEmpty(Design.CarryUnitIds))
 | 
						|
                        newDesign.CarryUnitIds = Design.CarryUnitIds;
 | 
						|
                    if (Design.IsNoChange.HasValue)
 | 
						|
                        newDesign.IsNoChange = Design.IsNoChange;
 | 
						|
                    if (Design.IsNeedMaterial.HasValue)
 | 
						|
                        newDesign.IsNeedMaterial = Design.IsNeedMaterial;
 | 
						|
 | 
						|
                    if (!string.IsNullOrEmpty(Design.BuyMaterialUnitIds))
 | 
						|
                        newDesign.BuyMaterialUnitIds = Design.BuyMaterialUnitIds;
 | 
						|
                    if (Design.MaterialPlanReachDate.HasValue)
 | 
						|
                        newDesign.MaterialPlanReachDate = Design.MaterialPlanReachDate;
 | 
						|
                    if (newDesign.IsNeedMaterial.HasValue && !newDesign.IsNeedMaterial.Value)
 | 
						|
                    {
 | 
						|
                        newDesign.BuyMaterialUnitIds = null;
 | 
						|
                        newDesign.MaterialPlanReachDate = null;
 | 
						|
                    }
 | 
						|
                    if (Design.PlanDay.HasValue)
 | 
						|
                        newDesign.PlanDay = Design.PlanDay;
 | 
						|
                    if (Design.PlanCompleteDate.HasValue)
 | 
						|
                        newDesign.PlanCompleteDate = Design.PlanCompleteDate;
 | 
						|
                    if (Design.MaterialRealReachDate.HasValue)
 | 
						|
                        newDesign.MaterialRealReachDate = Design.MaterialRealReachDate;
 | 
						|
                    if (Design.RealCompleteDate.HasValue)
 | 
						|
                        newDesign.RealCompleteDate = Design.RealCompleteDate;
 | 
						|
                    if (!string.IsNullOrEmpty(Design.AttachUrl))
 | 
						|
                        newDesign.AttachUrl = Design.AttachUrl;
 | 
						|
                    if (!string.IsNullOrEmpty(Design.State))
 | 
						|
                        newDesign.State = Design.State;
 | 
						|
 | 
						|
                    db.SubmitChanges();
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |