481 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			481 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Text;
							 | 
						|||
| 
								 | 
							
								using System.Threading.Tasks;
							 | 
						|||
| 
								 | 
							
								using EmitMapper;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace BLL
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    /// <summary>
							 | 
						|||
| 
								 | 
							
								    /// 处罚通知单
							 | 
						|||
| 
								 | 
							
								    /// </summary>
							 | 
						|||
| 
								 | 
							
								    public static class APIPunishNoticeService
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        #region 根据PunishNoticeId获取处罚通知单
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        ///  根据 PunishNoticeId获取处罚通知单
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="PunishNoticeId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static Model.PunishNoticeItem getPunishNoticeById(string PunishNoticeId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var getInfo = from x in db.Check_PunishNotice
							 | 
						|||
| 
								 | 
							
								                              where x.PunishNoticeId == PunishNoticeId
							 | 
						|||
| 
								 | 
							
								                              select new Model.PunishNoticeItem
							 | 
						|||
| 
								 | 
							
								                              {
							 | 
						|||
| 
								 | 
							
								                                  PunishNoticeId = x.PunishNoticeId,
							 | 
						|||
| 
								 | 
							
								                                  ProjectId = x.ProjectId,
							 | 
						|||
| 
								 | 
							
								                                  PunishNoticeCode = x.PunishNoticeCode,
							 | 
						|||
| 
								 | 
							
								                                  UnitId = x.UnitId,
							 | 
						|||
| 
								 | 
							
								                                  UnitName = db.Base_Unit.First(u => u.UnitId == x.UnitId).UnitName,
							 | 
						|||
| 
								 | 
							
								                                  PunishPersonId = x.PunishPersonId,
							 | 
						|||
| 
								 | 
							
								                                  PunishPersonName = db.Sys_User.First(u => u.UserId == x.PunishPersonId).UserName,
							 | 
						|||
| 
								 | 
							
								                                  ContractNum = x.ContractNum,
							 | 
						|||
| 
								 | 
							
								                                  PunishNoticeDate = string.Format("{0:yyyy-MM-dd}", x.PunishNoticeDate),
							 | 
						|||
| 
								 | 
							
								                                  BasicItem = x.BasicItem,
							 | 
						|||
| 
								 | 
							
								                                  IncentiveReason = x.IncentiveReason,
							 | 
						|||
| 
								 | 
							
								                                  PunishMoney = x.PunishMoney ?? 0,
							 | 
						|||
| 
								 | 
							
								                                  Currency = x.Currency,
							 | 
						|||
| 
								 | 
							
								                                  FileContents = System.Web.HttpUtility.HtmlDecode(x.FileContents),
							 | 
						|||
| 
								 | 
							
								                                  CompileManId = x.CompileMan,
							 | 
						|||
| 
								 | 
							
								                                  CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName,
							 | 
						|||
| 
								 | 
							
								                                  CompileDate = string.Format("{0:yyyy-MM-dd HH:mm}", x.CompileDate),
							 | 
						|||
| 
								 | 
							
								                                  SignManId = x.SignMan,
							 | 
						|||
| 
								 | 
							
								                                  SignManName = db.Sys_User.First(u => u.UserId == x.SignMan).UserName,
							 | 
						|||
| 
								 | 
							
								                                  SignDate = string.Format("{0:yyyy-MM-dd HH:mm}", x.SignDate),
							 | 
						|||
| 
								 | 
							
								                                  ApproveManId = x.ApproveMan,
							 | 
						|||
| 
								 | 
							
								                                  ApproveManName = db.Sys_User.First(u => u.UserId == x.ApproveMan).UserName,
							 | 
						|||
| 
								 | 
							
								                                  ApproveDate = string.Format("{0:yyyy-MM-dd HH:mm}", x.ApproveDate),
							 | 
						|||
| 
								 | 
							
								                                  DutyPersonId = x.DutyPersonId,
							 | 
						|||
| 
								 | 
							
								                                  DutyPersonName = db.Sys_User.First(u => u.UserId == x.DutyPersonId).UserName,
							 | 
						|||
| 
								 | 
							
								                                  DutyPersonDate = string.Format("{0:yyyy-MM-dd HH:mm}", x.DutyPersonDate),
							 | 
						|||
| 
								 | 
							
								                                  ProfessionalEngineerId = x.ProfessionalEngineerId,
							 | 
						|||
| 
								 | 
							
								                                  ProfessionalEngineerName = db.Sys_User.First(u => u.UserId == x.ProfessionalEngineerId).UserName,
							 | 
						|||
| 
								 | 
							
								                                  ProfessionalEngineerTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ProfessionalEngineerTime),
							 | 
						|||
| 
								 | 
							
								                                  ConstructionManagerId = x.ConstructionManagerId,
							 | 
						|||
| 
								 | 
							
								                                  ConstructionManagerName = db.Sys_User.First(u => u.UserId == x.ConstructionManagerId).UserName,
							 | 
						|||
| 
								 | 
							
								                                  ConstructionManagerTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ConstructionManagerTime),
							 | 
						|||
| 
								 | 
							
								                                  UnitHeadManId = x.UnitHeadManId,
							 | 
						|||
| 
								 | 
							
								                                  UnitHeadManName = db.Sys_User.First(u => u.UserId == x.UnitHeadManId).UserName,
							 | 
						|||
| 
								 | 
							
								                                  UnitHeadManTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.UnitHeadManTime),
							 | 
						|||
| 
								 | 
							
								                                  States = x.States,
							 | 
						|||
| 
								 | 
							
								                                  PunishStates = x.PunishStates,
							 | 
						|||
| 
								 | 
							
								                                  PunishUrl = APIUpLoadFileService.getFileUrl(Const.ProjectPunishNoticeStatisticsMenuId, x.PunishNoticeId, null),
							 | 
						|||
| 
								 | 
							
								                                  ReceiptUrl = APIUpLoadFileService.getFileUrl(Const.ProjectPunishNoticeMenuId, x.PunishNoticeId, null),
							 | 
						|||
| 
								 | 
							
								                                  FlowOperateItem = getFlowOperateItem(x.PunishNoticeId),
							 | 
						|||
| 
								 | 
							
								                                  PunishNoticeItemItem = GetPunishNoticeItemList(x.PunishNoticeId),
							 | 
						|||
| 
								 | 
							
								                              };
							 | 
						|||
| 
								 | 
							
								                return getInfo.FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        public static List<Model.PunishNoticeItemItem> GetPunishNoticeItemList(string punishNoticeId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return (from x in db.Check_PunishNoticeItem
							 | 
						|||
| 
								 | 
							
								                        where x.PunishNoticeId == punishNoticeId
							 | 
						|||
| 
								 | 
							
								                        orderby x.SortIndex
							 | 
						|||
| 
								 | 
							
								                        select new Model.PunishNoticeItemItem
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            PunishNoticeItemId = x.PunishNoticeItemId,
							 | 
						|||
| 
								 | 
							
								                            PunishNoticeId = x.PunishNoticeId,
							 | 
						|||
| 
								 | 
							
								                            PunishContent = x.PunishContent,
							 | 
						|||
| 
								 | 
							
								                            PunishMoney = x.PunishMoney ?? 0,
							 | 
						|||
| 
								 | 
							
								                            SortIndex = x.SortIndex,
							 | 
						|||
| 
								 | 
							
								                        }).ToList();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion     
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 根据ID 获取审核信息
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        ///  根据ID 获取审核信息
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static List<Model.FlowOperateItem> getFlowOperateItem(string punishNoticeId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var getInfo = from x in db.Check_PunishNoticeFlowOperate
							 | 
						|||
| 
								 | 
							
								                              where x.PunishNoticeId == punishNoticeId
							 | 
						|||
| 
								 | 
							
								                              orderby x.OperateTime descending
							 | 
						|||
| 
								 | 
							
								                              select new Model.FlowOperateItem
							 | 
						|||
| 
								 | 
							
								                              {
							 | 
						|||
| 
								 | 
							
								                                  FlowOperateId = x.FlowOperateId,
							 | 
						|||
| 
								 | 
							
								                                  DataId = x.PunishNoticeId,
							 | 
						|||
| 
								 | 
							
								                                  AuditFlowName = x.OperateName,
							 | 
						|||
| 
								 | 
							
								                                  OperaterId = x.OperateManId,
							 | 
						|||
| 
								 | 
							
								                                  OperaterName = db.Sys_User.First(z => z.UserId == x.OperateManId).UserName,
							 | 
						|||
| 
								 | 
							
								                                  OperaterTime = string.Format("{0:yyyy-MM-dd HH:mm:ss}", x.OperateTime),
							 | 
						|||
| 
								 | 
							
								                                  IsAgree = x.IsAgree,
							 | 
						|||
| 
								 | 
							
								                                  Opinion = x.Opinion,
							 | 
						|||
| 
								 | 
							
								                                  SignatureUrl = APIUpLoadFileService.getFileUrl(string.Empty, x.SignatureUrl),
							 | 
						|||
| 
								 | 
							
								                              };
							 | 
						|||
| 
								 | 
							
								                return getInfo.ToList();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 获取处罚通知单列表信息
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 获取处罚通知单列表信息
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="unitId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="strParam"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static List<Model.PunishNoticeItem> getPunishNoticeList(string projectId, string unitId, string strParam, string states)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var getPunishNotice = from x in db.Check_PunishNotice
							 | 
						|||
| 
								 | 
							
								                                      where x.ProjectId == projectId && (x.UnitId == unitId || unitId == null) && x.PunishStates == states
							 | 
						|||
| 
								 | 
							
								                                      orderby x.PunishNoticeCode descending
							 | 
						|||
| 
								 | 
							
								                                      select new Model.PunishNoticeItem
							 | 
						|||
| 
								 | 
							
								                                      {
							 | 
						|||
| 
								 | 
							
								                                          PunishNoticeId = x.PunishNoticeId,
							 | 
						|||
| 
								 | 
							
								                                          ProjectId = x.ProjectId,
							 | 
						|||
| 
								 | 
							
								                                          PunishNoticeCode = x.PunishNoticeCode,
							 | 
						|||
| 
								 | 
							
								                                          UnitId = x.UnitId,
							 | 
						|||
| 
								 | 
							
								                                          UnitName = db.Base_Unit.First(u => u.UnitId == x.UnitId).UnitName,
							 | 
						|||
| 
								 | 
							
								                                          ContractNum = x.ContractNum,
							 | 
						|||
| 
								 | 
							
								                                          PunishNoticeDate = string.Format("{0:yyyy-MM-dd}", x.PunishNoticeDate),
							 | 
						|||
| 
								 | 
							
								                                          BasicItem = x.BasicItem,
							 | 
						|||
| 
								 | 
							
								                                          IncentiveReason = x.IncentiveReason,
							 | 
						|||
| 
								 | 
							
								                                          PunishMoney = x.PunishMoney ?? 0,
							 | 
						|||
| 
								 | 
							
								                                          Currency = x.Currency,
							 | 
						|||
| 
								 | 
							
								                                          //FileContents = System.Web.HttpUtility.HtmlDecode(x.FileContents),
							 | 
						|||
| 
								 | 
							
								                                          CompileManId = x.CompileMan,
							 | 
						|||
| 
								 | 
							
								                                          CompileManName = db.Sys_User.First(u => u.UserId == x.CompileMan).UserName,
							 | 
						|||
| 
								 | 
							
								                                          CompileDate = string.Format("{0:yyyy-MM-dd}", x.CompileDate),
							 | 
						|||
| 
								 | 
							
								                                          //SignManId = x.SignMan,
							 | 
						|||
| 
								 | 
							
								                                          //SignManName = db.Sys_User.First(u => u.UserId == x.SignMan).UserName,
							 | 
						|||
| 
								 | 
							
								                                          //ApproveManId = x.ApproveMan,
							 | 
						|||
| 
								 | 
							
								                                          //ApproveManName = db.Sys_User.First(u => u.UserId == x.ApproveMan).UserName,
							 | 
						|||
| 
								 | 
							
								                                          States = x.States,
							 | 
						|||
| 
								 | 
							
								                                          PunishStates = x.PunishStates,
							 | 
						|||
| 
								 | 
							
								                                          //PunishUrl = db.AttachFile.FirstOrDefault(z => z.MenuId == Const.ProjectPunishNoticeStatisticsMenuId && z.ToKeyId == x.PunishNoticeId).AttachUrl.Replace('\\', '/'),
							 | 
						|||
| 
								 | 
							
								                                          //ReceiptUrl = db.AttachFile.FirstOrDefault(z => z.MenuId == Const.ProjectPunishNoticeMenuId && z.ToKeyId == x.PunishNoticeId).AttachUrl.Replace('\\', '/'),
							 | 
						|||
| 
								 | 
							
								                                      };
							 | 
						|||
| 
								 | 
							
								                if (!string.IsNullOrEmpty(strParam))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    getPunishNotice = getPunishNotice.Where(x => x.PunishNoticeCode.Contains(strParam) || x.IncentiveReason.Contains(strParam));
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                return getPunishNotice.ToList();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion        
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 保存Check_PunishNotice
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 保存Check_PunishNotice
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="newItem">处罚通知单</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static void SavePunishNotice(Model.PunishNoticeItem newItem)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                bool insertPunishNoticeItemItem = false;
							 | 
						|||
| 
								 | 
							
								                Model.Check_PunishNotice newPunishNotice = new Model.Check_PunishNotice
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    PunishNoticeId = newItem.PunishNoticeId,
							 | 
						|||
| 
								 | 
							
								                    PunishNoticeCode = newItem.PunishNoticeCode,
							 | 
						|||
| 
								 | 
							
								                    ProjectId = newItem.ProjectId,
							 | 
						|||
| 
								 | 
							
								                    PunishNoticeDate = Funs.GetNewDateTime(newItem.PunishNoticeDate),
							 | 
						|||
| 
								 | 
							
								                    UnitId = newItem.UnitId,
							 | 
						|||
| 
								 | 
							
								                    ContractNum = newItem.ContractNum,
							 | 
						|||
| 
								 | 
							
								                    IncentiveReason = newItem.IncentiveReason,
							 | 
						|||
| 
								 | 
							
								                    BasicItem = newItem.BasicItem,
							 | 
						|||
| 
								 | 
							
								                    PunishMoney = newItem.PunishMoney,
							 | 
						|||
| 
								 | 
							
								                    Currency = newItem.Currency,
							 | 
						|||
| 
								 | 
							
								                    FileContents = System.Web.HttpUtility.HtmlEncode(newItem.FileContents),               
							 | 
						|||
| 
								 | 
							
								                    States = Const.State_0,
							 | 
						|||
| 
								 | 
							
								                    PunishStates = newItem.PunishStates,
							 | 
						|||
| 
								 | 
							
								                };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (!string.IsNullOrEmpty(newItem.CompileManId))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    newPunishNotice.CompileMan = newItem.CompileManId;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (!string.IsNullOrEmpty(newItem.PunishPersonId))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    newPunishNotice.PunishPersonId = newItem.PunishPersonId;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (newPunishNotice.PunishStates == Const.State_1)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    newPunishNotice.SignMan = newItem.SignManId;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                var getUpdate = db.Check_PunishNotice.FirstOrDefault(x => x.PunishNoticeId == newItem.PunishNoticeId);
							 | 
						|||
| 
								 | 
							
								                if (getUpdate == null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    insertPunishNoticeItemItem = true;
							 | 
						|||
| 
								 | 
							
								                    newPunishNotice.CompileDate = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                    newPunishNotice.PunishNoticeId = SQLHelper.GetNewID();
							 | 
						|||
| 
								 | 
							
								                    newPunishNotice.PunishNoticeCode = CodeRecordsService.ReturnCodeByMenuIdProjectId(Const.ProjectPunishNoticeMenuId, newPunishNotice.ProjectId, newPunishNotice.UnitId);
							 | 
						|||
| 
								 | 
							
								                    db.Check_PunishNotice.InsertOnSubmit(newPunishNotice);
							 | 
						|||
| 
								 | 
							
								                    db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								                    CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(Const.ProjectPunishNoticeMenuId, newPunishNotice.ProjectId, newPunishNotice.UnitId, newPunishNotice.PunishNoticeId, newPunishNotice.CompileDate); 
							 | 
						|||
| 
								 | 
							
								               
							 | 
						|||
| 
								 | 
							
								                    //// 回写巡检记录表
							 | 
						|||
| 
								 | 
							
								                    if (!string.IsNullOrEmpty(newItem.HazardRegisterId))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        List<string> listIds = Funs.GetStrListByStr(newItem.HazardRegisterId, ',');
							 | 
						|||
| 
								 | 
							
								                        foreach (var item in listIds)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            var getHazardRegister = db.HSSE_Hazard_HazardRegister.FirstOrDefault(x => x.HazardRegisterId == item);
							 | 
						|||
| 
								 | 
							
								                            if (getHazardRegister != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                getHazardRegister.States = "3";
							 | 
						|||
| 
								 | 
							
								                                getHazardRegister.HandleIdea += "已下发处罚通知单:" + newPunishNotice.PunishNoticeCode;
							 | 
						|||
| 
								 | 
							
								                                getHazardRegister.ResultId = newPunishNotice.PunishNoticeId;
							 | 
						|||
| 
								 | 
							
								                                getHazardRegister.ResultType = "2";
							 | 
						|||
| 
								 | 
							
								                                db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    //// 回写专项检查明细表
							 | 
						|||
| 
								 | 
							
								                    if (!string.IsNullOrEmpty(newItem.CheckSpecialDetailId))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        List<string> listIds = Funs.GetStrListByStr(newItem.CheckSpecialDetailId, ',');
							 | 
						|||
| 
								 | 
							
								                        foreach (var item in listIds)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            var getCheckSpecialDetail = db.Check_CheckSpecialDetail.FirstOrDefault(x => x.CheckSpecialDetailId == item);
							 | 
						|||
| 
								 | 
							
								                            if (getCheckSpecialDetail != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                string dataType = string.Empty;
							 | 
						|||
| 
								 | 
							
								                                string dataId = string.Empty;
							 | 
						|||
| 
								 | 
							
								                                if (string.IsNullOrEmpty(getCheckSpecialDetail.DataType))
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    dataType = "2";
							 | 
						|||
| 
								 | 
							
								                                    dataId = "2," + newPunishNotice.PunishNoticeId;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    dataType = getCheckSpecialDetail.DataType+",2";
							 | 
						|||
| 
								 | 
							
								                                    dataId = getCheckSpecialDetail.DataId + "|2," + newPunishNotice.PunishNoticeId;
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                getCheckSpecialDetail.DataType = dataType;
							 | 
						|||
| 
								 | 
							
								                                getCheckSpecialDetail.DataId = dataId;
							 | 
						|||
| 
								 | 
							
								                                db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    newPunishNotice.PunishNoticeId = getUpdate.PunishNoticeId;
							 | 
						|||
| 
								 | 
							
								                    getUpdate.PunishStates = newItem.PunishStates;
							 | 
						|||
| 
								 | 
							
								                    if (newPunishNotice.PunishStates == "0" || newPunishNotice.PunishStates == "1")  ////编制人 修改或提交
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var geDeleteItems = from x in db.Check_PunishNoticeItem
							 | 
						|||
| 
								 | 
							
								                                            where x.PunishNoticeId == getUpdate.PunishNoticeId
							 | 
						|||
| 
								 | 
							
								                                            select x;
							 | 
						|||
| 
								 | 
							
								                        if (geDeleteItems.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            db.Check_PunishNoticeItem.DeleteAllOnSubmit(geDeleteItems);
							 | 
						|||
| 
								 | 
							
								                            db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        insertPunishNoticeItemItem = true;
							 | 
						|||
| 
								 | 
							
								                        getUpdate.PunishNoticeDate = newPunishNotice.PunishNoticeDate;
							 | 
						|||
| 
								 | 
							
								                        getUpdate.UnitId = newPunishNotice.UnitId;
							 | 
						|||
| 
								 | 
							
								                        getUpdate.ContractNum = newPunishNotice.ContractNum;
							 | 
						|||
| 
								 | 
							
								                        getUpdate.IncentiveReason = newPunishNotice.IncentiveReason;
							 | 
						|||
| 
								 | 
							
								                        getUpdate.BasicItem = newPunishNotice.BasicItem;
							 | 
						|||
| 
								 | 
							
								                        getUpdate.PunishMoney = newPunishNotice.PunishMoney;
							 | 
						|||
| 
								 | 
							
								                        getUpdate.Currency = newPunishNotice.Currency;
							 | 
						|||
| 
								 | 
							
								                        getUpdate.FileContents = newPunishNotice.FileContents;
							 | 
						|||
| 
								 | 
							
								                        if (newPunishNotice.PunishStates == "1" && !string.IsNullOrEmpty(newItem.SignManId))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            getUpdate.SignMan = newItem.SignManId;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            newPunishNotice.PunishStates = getUpdate.PunishStates = "0";
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        db.SubmitChanges();                     
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else if (newPunishNotice.PunishStates == "2") ////【签发】总包安全经理
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        /// 不同意 打回 同意抄送专业工程师、施工经理、相关施工分包单位并提交【批准】总包项目经理
							 | 
						|||
| 
								 | 
							
								                        if (newItem.IsAgree == false)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            newPunishNotice.PunishStates = getUpdate.PunishStates = "0";
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(newItem.ProfessionalEngineerId))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                getUpdate.ProfessionalEngineerId = newItem.ProfessionalEngineerId;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(newItem.ConstructionManagerId))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                getUpdate.ConstructionManagerId = newItem.ConstructionManagerId;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(newItem.UnitHeadManId))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                getUpdate.UnitHeadManId = newItem.UnitHeadManId;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            if (!string.IsNullOrEmpty(newItem.ApproveManId))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                getUpdate.ApproveMan = newItem.ApproveManId;
							 | 
						|||
| 
								 | 
							
								                                getUpdate.SignDate = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                                getUpdate.SginOpinion = "同意";
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                newPunishNotice.PunishStates = getUpdate.States = "1";
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else if (newPunishNotice.PunishStates == "3") ////【批准】总包项目经理
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        /// 不同意 打回 同意下发【回执】施工分包单位
							 | 
						|||
| 
								 | 
							
								                        if (newItem.IsAgree == false || string.IsNullOrEmpty(newItem.DutyPersonId))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            newPunishNotice.PunishStates = getUpdate.PunishStates = "1";
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            getUpdate.DutyPersonId = newItem.DutyPersonId;
							 | 
						|||
| 
								 | 
							
								                            getUpdate.ApproveDate = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                            getUpdate.ApproveOpinion = "同意";
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else if (newPunishNotice.PunishStates == "4") ////【批准】总包项目经理
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        /// 不同意 打回 同意下发【回执】施工分包单位
							 | 
						|||
| 
								 | 
							
								                        if (string.IsNullOrEmpty(newItem.ReceiptUrl))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            newPunishNotice.PunishStates = getUpdate.PunishStates = "3";
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            getUpdate.DutyPersonDate = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                            getUpdate.States = Const.State_2;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (insertPunishNoticeItemItem)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    //// 新增明细
							 | 
						|||
| 
								 | 
							
								                    if (newItem.PunishNoticeItemItem != null && newItem.PunishNoticeItemItem.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        foreach (var rItem in newItem.PunishNoticeItemItem)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Model.Check_PunishNoticeItem newPItem = new Model.Check_PunishNoticeItem
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                PunishNoticeItemId = SQLHelper.GetNewID(),
							 | 
						|||
| 
								 | 
							
								                                PunishNoticeId = newPunishNotice.PunishNoticeId,
							 | 
						|||
| 
								 | 
							
								                                PunishContent = rItem.PunishContent,
							 | 
						|||
| 
								 | 
							
								                                SortIndex = rItem.SortIndex,
							 | 
						|||
| 
								 | 
							
								                                PunishMoney=rItem.PunishMoney,
							 | 
						|||
| 
								 | 
							
								                            };
							 | 
						|||
| 
								 | 
							
								                            db.Check_PunishNoticeItem.InsertOnSubmit(newPItem);
							 | 
						|||
| 
								 | 
							
								                            db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //// 增加审核记录
							 | 
						|||
| 
								 | 
							
								                if (newItem.FlowOperateItem != null && newItem.FlowOperateItem.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var getOperate = newItem.FlowOperateItem.FirstOrDefault();
							 | 
						|||
| 
								 | 
							
								                    if (getOperate != null && !string.IsNullOrEmpty(getOperate.OperaterId))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (newItem.IsAgree == false)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (newPunishNotice.PunishStates == "2")
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                getUpdate.SginOpinion = getOperate.Opinion;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else if (newPunishNotice.PunishStates == "3")
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                getUpdate.ApproveOpinion = getOperate.Opinion;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        Model.Check_PunishNoticeFlowOperate newOItem = new Model.Check_PunishNoticeFlowOperate
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            FlowOperateId = SQLHelper.GetNewID(),
							 | 
						|||
| 
								 | 
							
								                            PunishNoticeId = newPunishNotice.PunishNoticeId,
							 | 
						|||
| 
								 | 
							
								                            OperateName = getOperate.AuditFlowName,
							 | 
						|||
| 
								 | 
							
								                            OperateManId = getOperate.OperaterId,
							 | 
						|||
| 
								 | 
							
								                            OperateTime = DateTime.Now,
							 | 
						|||
| 
								 | 
							
								                            IsAgree = getOperate.IsAgree,
							 | 
						|||
| 
								 | 
							
								                            Opinion = getOperate.Opinion,
							 | 
						|||
| 
								 | 
							
								                        };
							 | 
						|||
| 
								 | 
							
								                        db.Check_PunishNoticeFlowOperate.InsertOnSubmit(newOItem);
							 | 
						|||
| 
								 | 
							
								                        db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (newItem.PunishStates == Const.State_0 || newItem.PunishStates == Const.State_1)
							 | 
						|||
| 
								 | 
							
								                {     //// 通知单附件
							 | 
						|||
| 
								 | 
							
								                    APIUpLoadFileService.SaveAttachUrl(Const.ProjectPunishNoticeStatisticsMenuId, newPunishNotice.PunishNoticeId, newItem.PunishUrl, "0");
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (newItem.PunishStates == Const.State_4)
							 | 
						|||
| 
								 | 
							
								                {     //// 回执单附件
							 | 
						|||
| 
								 | 
							
								                    APIUpLoadFileService.SaveAttachUrl(Const.ProjectPunishNoticeMenuId, newPunishNotice.PunishNoticeId, newItem.ReceiptUrl, "0");
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (getUpdate != null && getUpdate.States == Const.State_2)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    CommonService.btnSaveData(newPunishNotice.ProjectId, Const.ProjectPunishNoticeMenuId, newPunishNotice.PunishNoticeId, newPunishNotice.CompileMan, true, newPunishNotice.PunishNoticeCode, "../Check/PunishNoticeView.aspx?PunishNoticeId={0}");
							 | 
						|||
| 
								 | 
							
								                    var getcheck = db.Check_CheckSpecialDetail.FirstOrDefault(x => x.DataId.Contains(getUpdate.PunishNoticeId));
							 | 
						|||
| 
								 | 
							
								                    if (getcheck != null)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        getcheck.CompleteStatus = true;
							 | 
						|||
| 
								 | 
							
								                        getcheck.CompletedDate = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                        db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								                        //// 根据明细ID判断是否全部整改完成 并更新专项检查状态
							 | 
						|||
| 
								 | 
							
								                        Check_CheckSpecialService.UpdateCheckSpecialStates(getcheck.CheckSpecialId);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 保存处罚单-通知单回执单
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 保存处罚单-回执单
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="punishNoticeId">主键</param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="attachUrl">回执单路径</param>
							 | 
						|||
| 
								 | 
							
								        public static void SavePunishNoticeReceiptUrl(string punishNoticeId, string attachUrl, string type)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var getPunishNotice = db.Check_PunishNotice.FirstOrDefault(x => x.PunishNoticeId == punishNoticeId);
							 | 
						|||
| 
								 | 
							
								                if (getPunishNotice != null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    string menuId = Const.ProjectPunishNoticeMenuId;
							 | 
						|||
| 
								 | 
							
								                    if (type == "0")
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        menuId = Const.ProjectPunishNoticeStatisticsMenuId;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    ////保存附件
							 | 
						|||
| 
								 | 
							
								                    if (!string.IsNullOrEmpty(attachUrl))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        UploadFileService.SaveAttachUrl(UploadFileService.GetSourceByAttachUrl(attachUrl, 10, null), attachUrl, menuId, getPunishNotice.PunishNoticeId);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        CommonService.DeleteAttachFileById(menuId, getPunishNotice.PunishNoticeId);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |