using System.Collections.Generic;
using System.Linq;
namespace BLL
{
    /// 
    /// 专项检查
    /// 
    public static class APICheckSpecialService
    {
        #region  获取专项检查详细
        /// 
        ///  获取专项检查详细
        /// 
        /// 
        /// 
        public static Model.CheckSpecialItem getCheckSpecialById(string CheckSpecialId,string state="0")
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                if (state == "0")
                {
                    //状态是0的时候查看所有
                    var getInfo = from x in db.Check_CheckSpecial
                                  where x.CheckSpecialId == CheckSpecialId
                                  select new Model.CheckSpecialItem
                                  {
                                      CheckSpecialId = x.CheckSpecialId,
                                      ProjectId = x.ProjectId,
                                      CheckSpecialCode = x.CheckSpecialCode,
                                      CheckTypeName = (x.CheckType == "1" ? "联合" : "专项"),
                                      CheckType = x.CheckType,
                                      CheckItemSetId = x.CheckItemSetId,
                                      CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItemSetId).CheckItemName,
                                      CheckPersonId = x.CheckPerson,
                                      CheckPersonName = db.Sys_User.First(u => u.UserId == x.CheckPerson).UserName,
                                      CheckTime = string.Format("{0:yyyy-MM-dd}", x.CheckTime),
                                      DaySummary = x.DaySummary,
                                      PartInUnitIds = x.PartInUnits,
                                      PartInUnitNames = UnitService.getUnitNamesUnitIds(x.PartInUnits),
                                      PartInPersonIds = x.PartInPersonIds,
                                      PartInPersonNames = UserService.getUserNamesUserIds(x.PartInPersonIds),
                                      PartInPersonNames2 = x.PartInPersonNames,
                                      CompileManId = x.CompileMan,
                                      CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName,
                                      States = x.States,
                                      AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialId, null),
                                      CheckSpecialDetailItems = getCheckSpecialDetailList(x.CheckSpecialId,"0"),
                                      ResponsibleUnit = x.ResponsibleUnit,
                                      ResponsibleUnitName = UnitService.GetUnitNameByUnitId(x.ResponsibleUnit),
                                      WorkAreaId = x.WorkAreaId,
                                      WorkAreaName = UnitWorkService.GetUnitWorkName(x.WorkAreaId),
                                      QuestionType = x.QuestionType,
                                      QuestionTypeName = UnitService.GetQuestionTypeId(x.QuestionType),
                                      ResponsibleMan = x.ResponsibleMan,
                                      ReceiveMan = x.ReceiveMan,
                                      ReceiveManName = UserService.getUserNamesUserIds(x.ReceiveMan),
                                      AttachUrl2= APIUpLoadFileService.getFileUrl(x.CheckSpecialId+"zgh", null),
                                  };
                    return getInfo.FirstOrDefault();
                }
                else {
                    //状态是1的时候查看不合格的子项
                    var getInfo = from x in db.Check_CheckSpecial
                                  where x.CheckSpecialId == CheckSpecialId
                                  select new Model.CheckSpecialItem
                                  {
                                      CheckSpecialId = x.CheckSpecialId,
                                      ProjectId = x.ProjectId,
                                      CheckSpecialCode = x.CheckSpecialCode,
                                      CheckTypeName = (x.CheckType == "1" ? "联合" : "专项"),
                                      CheckType = x.CheckType,
                                      CheckItemSetId = x.CheckItemSetId,
                                      CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItemSetId).CheckItemName,
                                      CheckPersonId = x.CheckPerson,
                                      CheckPersonName = db.Sys_User.First(u => u.UserId == x.CheckPerson).UserName,
                                      CheckTime = string.Format("{0:yyyy-MM-dd}", x.CheckTime),
                                      DaySummary = x.DaySummary,
                                      PartInUnitIds = x.PartInUnits,
                                      PartInUnitNames = UnitService.getUnitNamesUnitIds(x.PartInUnits),
                                      PartInPersonIds = x.PartInPersonIds,
                                      PartInPersonNames = UserService.getUserNamesUserIds(x.PartInPersonIds),
                                      PartInPersonNames2 = x.PartInPersonNames,
                                      CompileManId = x.CompileMan,
                                      CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName,
                                      States = x.States,
                                      AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialId, null),
                                      CheckSpecialDetailItems = getCheckSpecialDetailList(x.CheckSpecialId,"1"),
                                      ResponsibleUnit = x.ResponsibleUnit,
                                      ResponsibleUnitName = UnitService.GetUnitNameByUnitId(x.ResponsibleUnit),
                                      WorkAreaId = x.WorkAreaId,
                                      WorkAreaName = UnitWorkService.GetUnitWorkName(x.WorkAreaId),
                                      QuestionType = x.QuestionType,
                                      QuestionTypeName = UnitService.GetQuestionTypeId(x.QuestionType),
                                      ResponsibleMan = x.ResponsibleMan,
                                      ReceiveMan = x.ReceiveMan,
                                      ReceiveManName = UserService.getUserNamesUserIds(x.ReceiveMan),
                                      AttachUrl2 = APIUpLoadFileService.getFileUrl(x.CheckSpecialId + "zgh", null),
                                  };
                    return getInfo.FirstOrDefault();
                }
                
            }
        }
        #endregion        
        #region 获取专项检查列表信息
        /// 
        /// 获取专项检查列表信息
        /// 
        /// 
        /// 
        /// 
        public static List getCheckSpecialList(string projectId,  string states,string userid)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                var getCheckSpecial = from x in db.Check_CheckSpecial
                                      where x.ProjectId == projectId &&  x.States ==states
                                      //当前保存人、审核人、确认人能看到
                                      &&(x.CompileMan==userid || x.ResponsibleMan==userid || userid.Split(',').Contains(x.ReceiveMan))
                                      orderby x.CheckSpecialCode descending
                                      select new Model.CheckSpecialItem
                                      {
                                          CheckSpecialId = x.CheckSpecialId,
                                          ProjectId = x.ProjectId,
                                          CheckSpecialCode = db.Sys_CodeRecords.First(y => y.DataId == x.CheckSpecialId).Code ?? x.CheckSpecialCode,
                                          CheckTypeName = (x.CheckType == "1" ? "联合" : "专项"),
                                          CheckType = x.CheckType,
                                          CheckItemSetId = x.CheckItemSetId,
                                          CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItemSetId).CheckItemName,
                                          CheckPersonId = x.CheckPerson,
                                          CheckPersonName = db.Sys_User.First(u => u.UserId == x.CheckPerson).UserName,
                                          CheckTime = string.Format("{0:yyyy-MM-dd}", x.CheckTime),
                                          DaySummary = x.DaySummary,
                                          PartInUnitIds = x.PartInUnits,
                                          PartInUnitNames = UnitService.getUnitNamesUnitIds(x.PartInUnits),
                                          PartInPersonIds = x.PartInPersonIds,
                                          PartInPersonNames = UserService.getUserNamesUserIds(x.PartInPersonIds),
                                          PartInPersonNames2 = x.PartInPersonNames,
                                          CompileManId = x.CompileMan,
                                          CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName,
                                          States = x.States,
                                          AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialId, null),
                                          ReceiveMan=x.ReceiveMan,
                                          ReceiveManName= UserService.getUserNamesUserIds(x.ReceiveMan)
                                      };
                return getCheckSpecial.ToList();
            }
        }       
        #endregion        
        #region 保存Check_CheckSpecial
        /// 
        /// 保存Check_CheckSpecial
        /// 
        /// 处罚通知单
        /// 
        public static string SaveCheckSpecial(Model.CheckSpecialItem newItem)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                string message = string.Empty;
                Model.Check_CheckSpecial newCheckSpecial = new Model.Check_CheckSpecial
                {
                    CheckSpecialId = newItem.CheckSpecialId,
                    CheckSpecialCode = newItem.CheckSpecialCode,
                    CheckItemSetId=newItem.CheckItemSetId,
                    CheckType = newItem.CheckType,
                    ProjectId = newItem.ProjectId,
                    CheckPerson = newItem.CheckPersonId,
                    CheckTime = Funs.GetNewDateTime(newItem.CheckTime),
                    DaySummary = System.Web.HttpUtility.HtmlEncode(newItem.DaySummary),
                    PartInUnits = newItem.PartInUnitIds,
                    PartInPersonIds = newItem.PartInPersonIds,
                    PartInPersons = UserService.getUserNamesUserIds(newItem.PartInPersonIds),
                    PartInPersonNames = newItem.PartInPersonNames2,
                    CompileMan = newItem.CompileManId,
                    States = newItem.States,
                    ResponsibleUnit=newItem.ResponsibleUnit,
                    WorkAreaId=newItem.WorkAreaId,
                    QuestionType=newItem.QuestionType,
                    //审核人
                    ResponsibleMan=newItem.ResponsibleMan,
                    ReceiveMan=newItem.ReceiveMan
                };
                //if (newItem.States != Const.State_1)
                //{
                //    newCheckSpecial.States = Const.State_0;
                //}
                //if (newItem.CheckSpecialDetailItems == null || newItem.CheckSpecialDetailItems.Count() == 0)
                //{
                //    if (newItem.States == Const.State_1)
                //    {
                //        newCheckSpecial.States = Const.State_2;
                //    }
                //}
                //如果审核状态不为空
                if (!string.IsNullOrEmpty(newItem.AuditState))
                {
                    //不同意的话
                    if (newItem.AuditState=="0")
                    {
                        newCheckSpecial.States = "0";
                    }
                    else if (newItem.AuditState=="1")
                    {
                        newCheckSpecial.States = "2";
                    }
                }
                var updateCheckSpecial = db.Check_CheckSpecial.FirstOrDefault(x => x.CheckSpecialId == newItem.CheckSpecialId);
                if (updateCheckSpecial == null)
                {
                    newCheckSpecial.CheckSpecialId = SQLHelper.GetNewID();                    
                    newCheckSpecial.CheckSpecialCode = CodeRecordsService.ReturnCodeByMenuIdProjectId(Const.ProjectCheckSpecialMenuId, newCheckSpecial.ProjectId, string.Empty);
                    db.Check_CheckSpecial.InsertOnSubmit(newCheckSpecial);
                    db.SubmitChanges();
                    ////增加一条编码记录
                    BLL.CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(BLL.Const.ProjectCheckSpecialMenuId, newCheckSpecial.ProjectId, null, newCheckSpecial.CheckSpecialId, newCheckSpecial.CheckTime);
                }
                else
                {
                    Check_CheckSpecialService.UpdateCheckSpecial(newCheckSpecial);
                    //// 删除专项检查明细项
                    Check_CheckSpecialDetailService.DeleteCheckSpecialDetails(newCheckSpecial.CheckSpecialId);
                }               
                ////保存附件(提交前附件)
                if (!string.IsNullOrEmpty(newItem.AttachUrl1))
                {
                    UploadFileService.SaveAttachUrl(UploadFileService.GetSourceByAttachUrl(newItem.AttachUrl1, 10, null), newItem.AttachUrl1, Const.ProjectCheckSpecialMenuId, newCheckSpecial.CheckSpecialId);
                }
                else
                {
                    CommonService.DeleteAttachFileById(Const.ProjectCheckSpecialMenuId, newCheckSpecial.CheckSpecialId);
                }
                ////保存附件(整改后附件)
                if (!string.IsNullOrEmpty(newItem.AttachUrl2))
                {
                    UploadFileService.SaveAttachUrl(UploadFileService.GetSourceByAttachUrl(newItem.AttachUrl2, 10, null), newItem.AttachUrl2, Const.ProjectCheckSpecialMenuId, newCheckSpecial.CheckSpecialId+"zgh");
                }
                else
                {
                    CommonService.DeleteAttachFileById(Const.ProjectCheckSpecialMenuId, newCheckSpecial.CheckSpecialId + "zgh");
                }
                ///// 新增检查项
                if (newItem.CheckSpecialDetailItems != null && newItem.CheckSpecialDetailItems.Count() > 0)
                {                      
                    foreach (var item in newItem.CheckSpecialDetailItems)
                    {
                        item.CheckSpecialId = newCheckSpecial.CheckSpecialId;
                        SaveCheckSpecialDetail(item);                      
                    }
                    //// 单据完成后 系统自动按照单位 整改要求生成隐患整改单
                    ///五环不需要
                    //if (newItem.States == Const.State_1)
                    //{
                    //    var getC = newItem.CheckSpecialDetailItems.FirstOrDefault(x => x.CompleteStatus == false);
                    //    if (getC == null)
                    //    {
                    //        newCheckSpecial.States = Const.State_2;
                    //        Check_CheckSpecialService.UpdateCheckSpecial(newCheckSpecial);
                    //    }
                    //    else
                    //    {
                    //        var getNA = newItem.CheckSpecialDetailItems.FirstOrDefault(x => x.CompleteStatus == false && (x.HandleStep== null || x.HandleStep==""));
                    //        if (getNA == null)
                    //        {
                    //            var detailLists = db.Check_CheckSpecialDetail.Where(x => x.CheckSpecialId == newCheckSpecial.CheckSpecialId && x.CompleteStatus == false);
                    //            if (detailLists.Count() > 0)
                    //            {
                    //                message = Check_CheckSpecialService.IssueRectification(detailLists.ToList(), newCheckSpecial);
                    //            }
                    //        }
                    //        else
                    //        {
                    //            message += "存在待整改,没有处理措施的记录!";
                    //        }
                    //    }
                    //}
                }
                return message;
            }
        }
        #endregion
        #region  获取专项检查明细项列表
        /// 
        ///  获取专项检查明细项
        /// 
        /// 
        /// 
        public static List getCheckSpecialDetailList(string checkSpecialId,string CompleteStatus="0")
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                if (CompleteStatus == "0")
                {
                    var getInfo = from x in db.Check_CheckSpecialDetail
                                  where x.CheckSpecialId == checkSpecialId
                                  orderby x.SortIndex
                                  select new Model.CheckSpecialDetailItem
                                  {
                                      CheckSpecialDetailId = x.CheckSpecialDetailId,
                                      CheckSpecialId = x.CheckSpecialId,
                                      CheckItemSetId = x.CheckItem,
                                      CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItem).CheckItemName,
                                      CheckContent = x.CheckContent,
                                      SortIndex = x.SortIndex,
                                      Unqualified = x.Unqualified,
                                      Suggestions = x.Suggestions,
                                      WorkArea = db.WBS_UnitWork.First(y => y.UnitWorkId == x.CheckArea).UnitWorkName,
                                      WorkAreaId = x.CheckArea,
                                      UnitId = x.UnitId,
                                      UnitName = db.Base_Unit.First(y => y.UnitId == x.UnitId).UnitName,
                                      HandleStep = x.HandleStep,
                                      HandleStepName = getNames(x.HandleStep),
                                      HiddenHazardType = x.HiddenHazardType,
                                      HiddenHazardTypeName = x.HiddenHazardType == "3" ? "重大" : (x.HiddenHazardType == "2" ? "较大" : "一般"),
                                      LimitedDate = string.Format("{0:yyyy-MM-dd}", x.LimitedDate),
                                      CompleteStatus = x.CompleteStatus,
                                      CompleteStatusName = x.CompleteStatus == true ? "已整改" : "待整改",
                                      CompletedDate = string.Format("{0:yyyy-MM-dd}", x.CompletedDate),
                                      AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialDetailId, null),
                                      CheckItemDetailSetId = x.CheckItemSetId,
                                      CheckItemDetailContent = x.CheckItemSetContent,
                                      Rectification_Date = string.Format("{0:yyyy-MM-dd}", x.Rectification_Date),
                                      CheckOpinions = x.CheckOpinions,
                                  };
                    return getInfo.ToList();
                }
                else {
                    //查询不合格子项
                    var getInfo = from x in db.Check_CheckSpecialDetail
                                  where x.CheckSpecialId == checkSpecialId && x.CompleteStatus==false
                                  orderby x.SortIndex
                                  select new Model.CheckSpecialDetailItem
                                  {
                                      CheckSpecialDetailId = x.CheckSpecialDetailId,
                                      CheckSpecialId = x.CheckSpecialId,
                                      CheckItemSetId = x.CheckItem,
                                      CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItem).CheckItemName,
                                      CheckContent = x.CheckContent,
                                      SortIndex = x.SortIndex,
                                      Unqualified = x.Unqualified,
                                      Suggestions = x.Suggestions,
                                      WorkArea = db.WBS_UnitWork.First(y => y.UnitWorkId == x.CheckArea).UnitWorkName,
                                      WorkAreaId = x.CheckArea,
                                      UnitId = x.UnitId,
                                      UnitName = db.Base_Unit.First(y => y.UnitId == x.UnitId).UnitName,
                                      HandleStep = x.HandleStep,
                                      HandleStepName = getNames(x.HandleStep),
                                      HiddenHazardType = x.HiddenHazardType,
                                      HiddenHazardTypeName = x.HiddenHazardType == "3" ? "重大" : (x.HiddenHazardType == "2" ? "较大" : "一般"),
                                      LimitedDate = string.Format("{0:yyyy-MM-dd}", x.LimitedDate),
                                      CompleteStatus = x.CompleteStatus,
                                      CompleteStatusName = x.CompleteStatus == true ? "已整改" : "待整改",
                                      CompletedDate = string.Format("{0:yyyy-MM-dd}", x.CompletedDate),
                                      AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialDetailId, null),
                                      CheckItemDetailSetId = x.CheckItemSetId,
                                      CheckItemDetailContent = x.CheckItemSetContent,
                                      Rectification_Date = string.Format("{0:yyyy-MM-dd}", x.Rectification_Date),
                                      CheckOpinions = x.CheckOpinions,
                                  };
                    return getInfo.ToList();
                }
                
            }
        }
        /// 
        /// 
        /// 
        /// 
        private static string getNames(string constValue)
        {
            return ConstValue.getConstTextsConstValues(constValue, ConstValue.Group_HandleStep);
        }
        #endregion      
        #region  获取专项检查明细项详细
        /// 
        ///  获取专项检查明细项详细
        /// 
        /// 
        /// 
        public static Model.CheckSpecialDetailItem getCheckSpecialDetailById(string checkSpecialDetailId)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                var getInfo = from x in db.Check_CheckSpecialDetail
                              where x.CheckSpecialDetailId == checkSpecialDetailId
                              orderby x.SortIndex
                              select new Model.CheckSpecialDetailItem
                              {
                                  CheckSpecialDetailId = x.CheckSpecialDetailId,
                                  CheckSpecialId = x.CheckSpecialId,
                                  CheckItemSetId = x.CheckItem,
                                  CheckItemSetName = db.Technique_CheckItemSet.First(y => y.CheckItemSetId == x.CheckItem).CheckItemName,
                                  CheckContent = x.CheckContent,
                                  Unqualified = x.Unqualified,
                                  Suggestions = x.Suggestions,
                                  WorkArea = db.WBS_UnitWork.First(y => y.UnitWorkId == x.CheckArea).UnitWorkName,
                                  WorkAreaId = x.CheckArea,
                                  UnitId = x.UnitId,
                                  UnitName = db.Base_Unit.First(y => y.UnitId == x.UnitId).UnitName,
                                  HandleStep = x.HandleStep,
                                  HandleStepName = getNames(x.HandleStep),
                                  HiddenHazardType = x.HiddenHazardType,
                                  HiddenHazardTypeName = x.HiddenHazardType == "3" ? "重大" : (x.HiddenHazardType == "2" ? "较大" : "一般"),
                                  LimitedDate = string.Format("{0:yyyy-MM-dd}", x.LimitedDate),
                                  CompleteStatus = x.CompleteStatus,
                                  CompleteStatusName = x.CompleteStatus == true ? "已整改" : "待整改",
                                  AttachUrl1 = APIUpLoadFileService.getFileUrl(x.CheckSpecialDetailId, null),
                                  CheckItemDetailSetId=x.CheckItemSetId,
                                  CheckItemDetailContent=x.CheckItemSetContent,
                                  Rectification_Date= string.Format("{0:yyyy-MM-dd}", x.Rectification_Date),
                                  CheckOpinions=x.CheckOpinions
                              };
                return getInfo.First();
            }
        }
        #endregion
        #region 保存专项检查明细项
        /// 
        ///  保存专项检查明细项
        /// 
        /// 
        public static void SaveCheckSpecialDetail(Model.CheckSpecialDetailItem newDetail)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                if (!string.IsNullOrEmpty(newDetail.CheckSpecialId))
                {
                    Model.Check_CheckSpecialDetail newCheckSpecialDetail = new Model.Check_CheckSpecialDetail
                    {
                        CheckSpecialId = newDetail.CheckSpecialId,
                        SortIndex = newDetail.SortIndex,
                        CheckItemType = newDetail.CheckItemSetName,
                        Unqualified = newDetail.Unqualified,
                        UnitId = newDetail.UnitId,
                        HandleStep = newDetail.HandleStep,
                        HiddenHazardType = newDetail.HiddenHazardType,
                        CompleteStatus = newDetail.CompleteStatus,
                        RectifyNoticeId = newDetail.RectifyNoticeId,
                        LimitedDate = Funs.GetNewDateTime(newDetail.LimitedDate),
                        CompletedDate = Funs.GetNewDateTime(newDetail.CompletedDate),
                        Suggestions = newDetail.Suggestions,
                        WorkArea = newDetail.WorkArea,
                        CheckArea = newDetail.WorkAreaId,
                        CheckContent = newDetail.CheckContent,
                        //整改日期、检查内容、检查内容id、处理意见
                        CheckItemSetId= newDetail.CheckItemDetailSetId,
                        CheckItemSetContent= newDetail.CheckItemDetailContent,
                        Rectification_Date = Funs.GetNewDateTime(newDetail.Rectification_Date),
                        CheckOpinions=newDetail.CheckOpinions,
                    };
                    if (newCheckSpecialDetail.CompleteStatus == false && newCheckSpecialDetail.HandleStep.Contains("1") && string.IsNullOrEmpty(newCheckSpecialDetail.HiddenHazardType))
                    {
                        newCheckSpecialDetail.HiddenHazardType = "1";
                    }
                    var getUnit = UnitService.GetUnitByUnitId(newDetail.UnitId);
                    if (getUnit != null)
                    {
                        newCheckSpecialDetail.UnitId = newDetail.UnitId;
                    }
                    var getCheckItem = db.Technique_CheckItemSet.FirstOrDefault(x => x.CheckItemSetId == newDetail.CheckItemSetId);
                    if (getCheckItem != null)
                    {
                        newCheckSpecialDetail.CheckItem = newDetail.CheckItemSetId;
                    }
                    var updateDetail = db.Check_CheckSpecialDetail.FirstOrDefault(x => x.CheckSpecialDetailId == newDetail.CheckSpecialDetailId);
                    if (updateDetail == null)
                    {
                        newCheckSpecialDetail.CheckSpecialDetailId = SQLHelper.GetNewID();
                        db.Check_CheckSpecialDetail.InsertOnSubmit(newCheckSpecialDetail);
                        db.SubmitChanges();
                    }
                    else
                    {
                        newCheckSpecialDetail.CheckSpecialDetailId = updateDetail.CheckSpecialDetailId;
                        updateDetail.CheckItem = newCheckSpecialDetail.CheckItem;
                        updateDetail.CheckItemType = newCheckSpecialDetail.CheckItemType;
                        updateDetail.SortIndex = newCheckSpecialDetail.SortIndex;
                        updateDetail.Unqualified = newCheckSpecialDetail.Unqualified;
                        updateDetail.UnitId = newCheckSpecialDetail.UnitId;
                        updateDetail.HandleStep = newCheckSpecialDetail.HandleStep;
                        updateDetail.HiddenHazardType = newCheckSpecialDetail.HiddenHazardType;
                        updateDetail.CompleteStatus = newCheckSpecialDetail.CompleteStatus;
                        updateDetail.RectifyNoticeId = newCheckSpecialDetail.RectifyNoticeId;
                        updateDetail.LimitedDate = newCheckSpecialDetail.LimitedDate;
                        updateDetail.CompletedDate = newCheckSpecialDetail.CompletedDate;
                        updateDetail.Suggestions = newCheckSpecialDetail.Suggestions;
                        updateDetail.WorkArea = newCheckSpecialDetail.WorkArea;    
                        updateDetail.CheckArea = newCheckSpecialDetail.CheckArea;
                        updateDetail.CheckContent = newCheckSpecialDetail.CheckContent;
                        //整改日期、检查内容、检查内容id、处理意见
                        updateDetail.CheckItemSetId = newDetail.CheckItemDetailSetId;
                        updateDetail.CheckItemSetContent = newDetail.CheckItemDetailContent;
                        updateDetail.Rectification_Date = Funs.GetNewDateTime(newDetail.Rectification_Date);
                        updateDetail.CheckOpinions = newDetail.CheckOpinions;
                        db.SubmitChanges();
                    }
                    ////保存附件
                    if (!string.IsNullOrEmpty(newDetail.AttachUrl1))
                    {
                        UploadFileService.SaveAttachUrl(UploadFileService.GetSourceByAttachUrl(newDetail.AttachUrl1, 10, null), newDetail.AttachUrl1, Const.ProjectCheckSpecialMenuId, newCheckSpecialDetail.CheckSpecialDetailId);
                    }
                    else
                    {
                        CommonService.DeleteAttachFileById(Const.ProjectCheckSpecialMenuId, newCheckSpecialDetail.CheckSpecialDetailId);
                    }
                }
            }
        }
        #endregion        
    }
}