/// <summary> /// 是否为第三层次文件 /// </summary> /// <param name="sortID">文件类别ID</param> /// <returns>是 返回True,否 返回False</returns> bool IsThreeTripFile(int sortID) { ISystemFileBasicInfo serverBasic = ServerModuleFactory.GetServerModule <ISystemFileBasicInfo>(); FM_FileSort sort = serverBasic.SortInfo(sortID); if (sort.FileType == (int)CE_FileType.制度文件) { if (sort.SortName.Contains("_规定、细则、规程、标准")) { return(true); } else { return(false); } } else { return(false); } }
/// <summary> /// 更新流程 /// </summary> /// <param name="billNo">单据号</param> /// <param name="advise">意见</param> /// <param name="error">错误信息</param> /// <returns>成功返回True,失败返回False</returns> public bool UpdateInfo(string billNo, string advise, out string error) { error = null; IBillMessagePromulgatorServer serverBill = BasicServerFactory.GetServerModule <IBillMessagePromulgatorServer>(); ISystemFileBasicInfo m_serverFileBasicInfo = Service_Quality_File.ServerModuleFactory.GetServerModule <ISystemFileBasicInfo>(); FileServiceSocket m_serverFTP = new FileServiceSocket(GlobalObject.GlobalParameter.FTPServerIP, GlobalObject.GlobalParameter.FTPServerAdvancedUser, GlobalObject.GlobalParameter.FTPServerAdvancedPassword); DepotManagementDataContext ctx = CommentParameter.DepotDataContext; try { var varData = from a in ctx.FM_InstitutionProcess where a.BillNo == billNo select a; FM_InstitutionProcess lnqProcess = varData.Single(); serverBill.BillType = serverBill.GetBillTypeEnum(lnqProcess.TypeCode).ToString(); CE_BillTypeEnum billType = GlobalObject.GeneralFunction.StringConvertToEnum <CE_BillTypeEnum>(serverBill.BillType); InstitutionBillStatus billStatus = GlobalObject.GeneralFunction.StringConvertToEnum <InstitutionBillStatus>(lnqProcess.BillStatus); var varList = from a in ctx.FM_InstitutionProcessPointDept where a.BillNo == billNo select a; FM_InstitutionProcessPointDept lnqPoint = new FM_InstitutionProcessPointDept(); List <FM_InstitutionProcessPointDept> list = varList.ToList(); List <string> listTemp = new List <string>(); switch (billStatus) { case InstitutionBillStatus.新建流程: break; case InstitutionBillStatus.等待科长审查: lnqProcess.BillStatus = InstitutionBillStatus.等待负责人审查.ToString(); lnqProcess.Chief = BasicInfo.LoginName; lnqProcess.ChiefAdvise = advise; lnqProcess.ChiefTime = ServerTime.Time; serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.角色, serverBill.GetDeptPrincipalRoleName(UniversalFunction.GetPersonnelInfo(lnqProcess.Propoer).部门编码).ToList()); break; case InstitutionBillStatus.等待负责人审查: lnqProcess.BillStatus = InstitutionBillStatus.等待相关负责人审查.ToString(); lnqProcess.DepartmentHead = BasicInfo.LoginName; lnqProcess.DepartmentHeadAdvise = advise; lnqProcess.DepartmentHeadTime = ServerTime.Time; if (billType == CE_BillTypeEnum.制度销毁申请流程) { lnqProcess.BillStatus = InstitutionBillStatus.等待分管领导审查.ToString(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.角色, serverBill.GetDeptLeaderRoleName(UniversalFunction.GetPersonnelInfo(lnqProcess.Propoer).部门编码).ToList()); } else { listTemp = (from a in list where a.PersonnelType == RoleStyle.负责人.ToString() select a.Personnel).ToList(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.用户, listTemp); } break; case InstitutionBillStatus.等待相关负责人审查: lnqPoint = (from a in list where a.Personnel == BasicInfo.LoginID && a.PersonnelType == RoleStyle.负责人.ToString() select a).Single(); lnqPoint.PersonnelTime = ServerTime.Time; lnqPoint.Advise = advise; var varHead = from a in list where a.PersonnelType == RoleStyle.负责人.ToString() && a.PersonnelTime == null select a; if (varHead.Count() == 0) { if (IsThreeTripFile(lnqProcess.SortID)) { lnqProcess.BillStatus = InstitutionBillStatus.等待分管领导审查.ToString(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.角色, serverBill.GetDeptLeaderRoleName(UniversalFunction.GetPersonnelInfo(lnqProcess.Propoer).部门编码).ToList()); } else { lnqProcess.BillStatus = InstitutionBillStatus.等待相关分管领导审查.ToString(); listTemp = (from a in list where a.PersonnelType == RoleStyle.分管领导.ToString() select a.Personnel).ToList(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.用户, listTemp); } } else { listTemp = (from a in varHead select a.Personnel).ToList(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.用户, listTemp); } break; case InstitutionBillStatus.等待相关分管领导审查: lnqPoint = (from a in list where a.Personnel == BasicInfo.LoginID && a.PersonnelType == RoleStyle.分管领导.ToString() select a).Single(); lnqPoint.PersonnelTime = ServerTime.Time; lnqPoint.Advise = advise; var varLead = from a in list where a.PersonnelType == RoleStyle.分管领导.ToString() && a.PersonnelTime == null select a; if (varLead.Count() == 0) { lnqProcess.BillStatus = InstitutionBillStatus.等待总经理审查.ToString(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.角色, CE_RoleEnum.总经理.ToString()); } else { listTemp = (from a in varLead select a.Personnel).ToList(); serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName), BillFlowMessage_ReceivedUserType.用户, listTemp); } break; case InstitutionBillStatus.等待分管领导审查: case InstitutionBillStatus.等待总经理审查: lnqProcess.BillStatus = InstitutionBillStatus.流程已结束.ToString(); lnqProcess.GeneralManager = BasicInfo.LoginName; lnqProcess.GeneralManagerAdvise = advise; lnqProcess.GeneralManagerTime = ServerTime.Time; FM_FileList fileInfo = new FM_FileList(); if (lnqProcess.FileID != null) { var varFileInfo = from a in ctx.FM_FileList where a.FileID == lnqProcess.FileID select a; if (varFileInfo.Count() == 1) { fileInfo = varFileInfo.Single(); } } if (billType == CE_BillTypeEnum.制度发布流程) { string strVersion = "1.0"; if (lnqProcess.ReplaceFileID == null) { DataTable dtTemp = m_serverFileBasicInfo.GetFilesInfo(lnqProcess.FileNo, null); } else { m_serverFileBasicInfo.OperatorFTPSystemFile(ctx, Convert.ToInt32(lnqProcess.ReplaceFileID), 29); strVersion = (Convert.ToDouble(m_serverFileBasicInfo.GetFile(Convert.ToInt32(lnqProcess.ReplaceFileID)).Version) + 0.1).ToString(); } FM_FileList lnqFile = new FM_FileList(); lnqFile.Department = lnqProcess.Department; lnqFile.FileName = lnqProcess.FileName; lnqFile.FileNo = lnqProcess.FileNo; lnqFile.FileUnique = lnqProcess.FileUnique; lnqFile.SortID = lnqProcess.SortID; lnqFile.Version = strVersion; ctx.FM_FileList.InsertOnSubmit(lnqFile); if (m_serverFTP.Errormessage.Length != 0) { throw new Exception(m_serverFTP.Errormessage); } } else if (billType == CE_BillTypeEnum.制度修订废弃申请流程 && lnqProcess.OperationMode == "废弃") { if (fileInfo != null) { fileInfo.SortID = 29; } } else if (billType == CE_BillTypeEnum.制度销毁申请流程) { ctx.FM_FileList.DeleteOnSubmit(fileInfo); } serverBill.EndFlowMessage(lnqProcess.BillNo, string.Format("{0}号文件审查流程已结束", lnqProcess.BillNo), null, (from a in varList select a.Personnel).ToList()); break; case InstitutionBillStatus.流程已结束: break; default: break; } ctx.SubmitChanges(); return(true); } catch (Exception ex) { error = ex.Message; return(false); } }