




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
EMSV1.5.0能源管理系統軟件源代碼文件編號生效日期受控編號保密級別一級版本號V1.00修改次數總頁數85正文81附錄無編制項目組各成員審核批準(版權所有,翻版必究)
評審記錄對《EMSV1.5.0能源管理系統軟件源代碼V1.00》的評審意見上述問題修改驗證后,由驗證后,本文件即可發布。評審人員簽字:問題修改驗證結果:驗證人簽字:時間:年月日 變更日志編號版本修改內容修改人修改日期1V1.00初稿項目組各成員2017-10-30
目錄1. EMS1.5.0代碼審核報告 51.1 集成管理工具 51.2 變壓器負載率報告 631.3 滑動能耗分析 681.4 碳排放 731.5 App接口 81
EMS1.5.0代碼審核報告集成管理工具usingFramework.Common;usingFramework.Configuration;usingFramework.Data;usingFramework.DataConfiguration;usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.IO;usingSystem.Linq;usingSystem.ServiceProcess;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingSystem.Xml;usingSystem.ServiceModel;usingSystem.Configuration;usingIOMSRegister;namespaceIntegrateManageTool{publicpartialclassForm1:Form{IntegrateManageTool.BLL.CommonBllbll=newBLL.CommonBll();boolisFirstInit=false;publicForm1(){InitializeComponent();//防止線程間訪問出錯,臨時加此屬性。終極解決辦法是委托或使用BackgroundWorker控件屈云明20170719DataGridView.CheckForIllegalCrossThreadCalls=false;}///<summary>///主畫面加載///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidForm1_Load(objectsender,EventArgse){Common.WriteLog.CreateLog("開始啟動集成管理工具");try{this.btnRefreshAll.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+"\\Resources\\refresh.png");this.btnAdd.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+"\\Resources\\add.png");this.btnStart.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+"\\Resources\\start.png");this.btnRestart.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+"\\Resources\\restart.png");this.btnDelete.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+"\\Resources\\delete.png");this.btnClose.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+"\\Resources\\close.png");this.btnApply.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+"\\Resources\\save.png");this.btnQuit.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+"\\Resources\\power.png");this.btnWcfOpen.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+"\\Resources\\startservice.png");this.btnWcfClose.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+"\\Resources\\stopservice.png");this.btnInstall.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+"\\Resources\\install.png");this.btnModeSwitch.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+"\\Resources\\setting.png");this.btnReadMe.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+"\\Resources\\help.png");//先加載Program.config里面的程序。若在數據庫中沒有就先保存入數據庫。后面一律以數據庫保存的為準LoadXmlProgramToDatabase();//調用刷新按鈕事件初始化數據this.btnRefreshAll_Click(null,null);System.Threading.Thread.Sleep(1000);//先把集成管理工具的數據庫批量適用到所有工具this.ModifyDataSrc();System.Threading.Thread.Sleep(1000);//調用刷新按鈕事件初始化數據this.btnRefreshAll_Click(null,null);//定期檢查進程或服務是否正常ScheduleWork();//高級功能根據配置顯示if(System.Configuration.ConfigurationManager.AppSettings["IsShowAdvancedFunction"].ToLower().Equals("false")){this.groupBox3.Visible=false;this.btnModeSwitch.Visible=false;this.btnInstall.Visible=false;this.label1.Location=newPoint(this.label1.Location.X,480);this.label2.Location=newPoint(this.label2.Location.X,500);this.btnReadMe.Location=newPoint(this.btnReadMe.Location.X,480);this.btnQuit.Location=newPoint(this.btnQuit.Location.X,480);}}catch(Exceptionex){Common.WriteLog.CreateLog("啟動異常:"+ex.Message);MessageBox.Show("啟動異常:"+ex.Message,"出錯啦",MessageBoxButtons.OK,MessageBoxIcon.Error);}Common.WriteLog.CreateLog("啟動成功");//開始服務this.Start();}///<summary>///先把集成管理工具的數據庫批量適用到所有工具///</summary>privatevoidModifyDataSrc(){if(isFirstInit){//當存在數據時,認為不是初始化,批量修改數據的操作return;}//%%%%%%%%%%%%%%%%%%%%%%%%%%%//初始化把數據庫全部修改一遍//修改數據庫連接//先判斷數據庫配置文件是否存在stringconnectstringTmp=string.Empty;if(System.IO.File.Exists(Application.StartupPath+"\\"+GlobalConfigurationSource.GlobalAppSettings["DatabaseListFile"])){//加載數據源DatabaseListdatabaseList=XmlHelper.XmlDeserializeFromFile<DatabaseList>(Application.StartupPath+"\\"+GlobalConfigurationSource.GlobalAppSettings["DatabaseListFile"],Encoding.UTF8);if(!string.IsNullOrEmpty(databaseList.MDatabaseInstances[0].ConnectionString)){connectstringTmp=databaseList.MDatabaseInstances[0].ConnectionString;}}else{//文件不存在的情況下記錄日志后繼續執行MessageBox.Show("不存在數據庫文件!請檢查。"+Application.StartupPath+"\\"+GlobalConfigurationSource.GlobalAppSettings["DatabaseListFile"]);}for(inti=0;i<this.dgvExeList.Rows.Count;i++){//必須有數據源才需要修改屈云明20170720if(dgvExeList.Rows[i].Cells["是否有數據源"].Value.Equals(1)){//必須名稱有值的數據才有意義if(dgvExeList.Rows[i].Cells["名稱"].Value!=null){XmlDocumentxml2=newXmlDocument();xml2.Load(this.dgvExeList.Rows[i].Cells["路徑"].Value.ToString()+"configs\\Database.config");XmlNodexnTmp=xml2.DocumentElement;foreach(XmlNodenodeinxnTmp.ChildNodes){if(node.Name=="database"){foreach(XmlNodenode2innode.ChildNodes){node2.InnerText=connectstringTmp;}}}xml2.Save(this.dgvExeList.Rows[i].Cells["路徑"].Value.ToString()+"configs\\Database.config");}}}//%%%%%%%%%%%%%%%%%%%%%%%%%%%}///<summary>///把Program.config里面配置的程序加載入數據庫///</summary>privatevoidLoadXmlProgramToDatabase(){isFirstInit=bll.IsHaveDataInDB();if(isFirstInit){//當存在數據時,認為不是初始化,跳過讀取Program.config的邏輯return;}//@@@@@@@@@@@@@@@@@@@@@@@@@@@@//tobecontinued把xml序列化為二進制對象,使用時再從二進制對象反序列化為xml。目的是防止用戶來修改//夏工的意思是初始化文件裝機時肯定存在,且永遠只用一次。不考慮其他異常情況if(!System.IO.File.Exists(System.Windows.Forms.Application.StartupPath+"\\configs\\Program.config")){MessageBox.Show("執行路徑根目錄下找不到Program.config文件,請仔細檢查\r\n路徑:"+Application.StartupPath+"\\configs","文件未找到",MessageBoxButtons.OK,MessageBoxIcon.Error);return;}List<Model.ManageConfig>lstMc=newList<Model.ManageConfig>();XmlDocumentdoc=newXmlDocument();doc.Load(System.Windows.Forms.Application.StartupPath+"\\configs\\Program.config");XmlNodexn=doc.SelectSingleNode("configuration");DirectoryInfoinfo=newDirectoryInfo(Application.StartupPath);stringparentPath=info.Parent.FullName;foreach(XmlNodexn1inxn){if(xn1.OuterXml.Contains("!--")){continue;}if(xn1.Name.Equals("add")){Model.ManageConfigmc=newModel.ManageConfig();mc.Cname=xn1.SelectSingleNode("@name").InnerText;mc.ExePath=parentPath+xn1.SelectSingleNode("@relativePath").InnerText;mc.WorkType=int.Parse(xn1.SelectSingleNode("@workType").InnerText);mc.ServiceName=xn1.SelectSingleNode("@serviceName").InnerText;//存在某些程序不需要數據庫配置屈云明20170720mc.IsHaveDataSrc=int.Parse(xn1.SelectSingleNode("@isHaveDataSrc").InnerText);mc.Comments="根據Program.config自動添加的";lstMc.Add(mc);}}//保存入數據庫stringerrInfo=string.Empty;//返回0表示插入失敗if(this.bll.BatchInsertIntoIntegrateManageConfig(lstMc,referrInfo)==0){Common.WriteLog.CreateLog("把Program.config的插入數據庫失敗。"+errInfo);MessageBox.Show("把Program.config的插入數據庫失敗。"+errInfo,"出錯了",MessageBoxButtons.OK,MessageBoxIcon.Error);}//@@@@@@@@@@@@@@@@@@@@@@@@@@@@}privatevoidScheduleWork(){try{//設定固定時間檢查進程是否存在,并記錄日志vartimer=newSystem.Timers.Timer{Interval=int.Parse(System.Configuration.ConfigurationManager.AppSettings["checkFrenquency"])*1000,Enabled=true,AutoReset=true};timer.Elapsed+=(sender,e)=>{boolisHaveUninstallService=false;boolisHaveStoppedData=false;if(this.btnModeSwitch.Text.Equals("手動模式中")){Common.WriteLog.CreateLog("當前在"+this.btnModeSwitch.Text+",跳過定期檢查并啟動已停止的程序功能");return;}elseif(this.btnModeSwitch.Text.Equals("自動模式中")){Common.WriteLog.CreateLog("當前在"+this.btnModeSwitch.Text+",即將檢查并啟動已停止的程序");}else{Common.WriteLog.CreateLog("當前既不是手動模式,也不是自動模式。這是非常嚴重的問題,請聯系程序開發人員!");return;}//#########################//先刷新grid的狀態for(inti=0;i<this.dgvExeList.RowCount;i++){if(this.dgvExeList.Rows[i].Cells["類型"].Value.ToString().Equals(Model.EnumWorkType.WorkType.應用程序.ToString())){//狀態實時獲取boolbInTaskMgr=Common.Function.isExistInTaskMgr(this.dgvExeList.Rows[i].Cells["名稱"].Value.ToString().Trim());stringsStatus=string.Empty;if(bInTaskMgr){sStatus="Running";this.dgvExeList.Rows[i].DefaultCellStyle.BackColor=Color.White;}else{sStatus="Stopped";this.dgvExeList.Rows[i].DefaultCellStyle.BackColor=Color.Red;Common.WriteLog.CreateLog("自動偵測到應用程序"+this.dgvExeList.Rows[i].Cells["名稱"].Value.ToString()+"進程已經不存在于任務管理器中");}this.dgvExeList.Rows[i].Cells["狀態"].Value=sStatus;//狀態實時獲取}elseif(this.dgvExeList.Rows[i].Cells["類型"].Value.ToString().Equals(Model.EnumWorkType.WorkType.服務程序.ToString())){//當服務程序的服務名稱沒有時,提示if(string.IsNullOrEmpty(this.dgvExeList.Rows[i].Cells["服務名稱"].Value.ToString().Trim())){Common.WriteLog.CreateLog("加載"+this.dgvExeList.Rows[i].Cells["服務名稱"].Value.ToString().Trim()+"時出錯,服務名稱為空。請檢查");}else{stringsStatus=string.Empty;if(Common.Function.IsExistsService(this.dgvExeList.Rows[i].Cells["服務名稱"].Value.ToString().Trim())){sStatus=Common.Function.GetServiceState(this.dgvExeList.Rows[i].Cells["服務名稱"].Value.ToString().Trim()).ToString();}else{sStatus="未安裝";Common.WriteLog.CreateLog("自動偵測到服務程序"+this.dgvExeList.Rows[i].Cells["服務名稱"].Value.ToString()+"沒有安裝");}this.dgvExeList.Rows[i].Cells["狀態"].Value=sStatus;//狀態實時獲取if(!sStatus.Equals("Running")){Common.WriteLog.CreateLog("自動偵測到服務程序"+this.dgvExeList.Rows[i].Cells["服務名稱"].Value.ToString()+"的狀態為"+sStatus);}}}else{Common.WriteLog.CreateLog("程序"+this.dgvExeList.Rows[i].Cells["名稱"].Value.ToString()+"類型不是應用程序也不是服務程序!");this.dgvExeList.Rows[i].DefaultCellStyle.BackColor=Color.Red;continue;}}//#########################//先判斷有無未安裝的服務for(inti=0;i<this.dgvExeList.RowCount;i++){if(this.dgvExeList.Rows[i].Cells["類型"].Value.ToString().Equals(Model.EnumWorkType.WorkType.服務程序.ToString())){if(this.dgvExeList.Rows[i].Cells["狀態"].Value.ToString().Equals("未安裝")){DataGridViewCheckBoxCellcheckCell=(DataGridViewCheckBoxCell)dgvExeList.Rows[i].Cells["選擇"];checkCell.Value=true;isHaveUninstallService=true;}}}//存在未安裝的服務if(isHaveUninstallService){this.btnInstall_Click(null,null);}else{//若無未安裝的服務,則檢查有無stopped的程序for(inti=0;i<this.dgvExeList.RowCount;i++){if(this.dgvExeList.Rows[i].Cells["狀態"].Value.ToString().Equals("Stopped")){DataGridViewCheckBoxCellcheckCell=(DataGridViewCheckBoxCell)dgvExeList.Rows[i].Cells["選擇"];checkCell.Value=true;isHaveStoppedData=true;}}//存在則把停止的程序啟動if(isHaveStoppedData){timer.Stop();this.btnStart_Click(null,null);timer.Start();}}};}catch(Exceptionex){Common.WriteLog.CreateLog("ScheduleWork方法出現異常:"+ex.Message);}}///<summary>///全部刷新按鈕按下后,從數據庫和配置文件中重載所有參數///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidbtnRefreshAll_Click(objectsender,EventArgse){//先不用綁定數據源,直接賦值靈活點//this.dgvExeList.DataSource=bll.GetAllExe();//實現要清空表格,不然刷新時返回0條數據不會重繪表格this.dgvExeList.Rows.Clear();List<Model.ManageConfig>list=bll.GetAllExe();//grid好像不能把列數變為0this.dgvExeList.RowCount=(list.Count==0)?1:list.Count;intindex=0;foreach(Model.ManageConfigmcinlist){try{DataGridViewCheckBoxCellcb=newDataGridViewCheckBoxCell(false);cb.Value=false;this.dgvExeList.Rows[index].Cells["選擇"]=cb;this.dgvExeList.Rows[index].Cells["名稱"].Value=mc.Cname;this.dgvExeList.Rows[index].Cells["類型"].Value=(mc.WorkType==1)?Model.EnumWorkType.WorkType.應用程序:Model.EnumWorkType.WorkType.服務程序;this.dgvExeList.Rows[index].Cells["路徑"].Value=mc.ExePath;this.dgvExeList.Rows[index].Cells["備注"].Value=mc.Comments;this.dgvExeList.Rows[index].Cells["主鍵"].Value=mc.ObjectId;this.dgvExeList.Rows[index].Cells["服務名稱"].Value=mc.ServiceName;this.dgvExeList.Rows[index].Cells["是否有數據源"].Value=mc.IsHaveDataSrc;//##################//必須存在數據源的情況下才需要讀取配置文件屈云明20170720if(this.dgvExeList.Rows[index].Cells["是否有數據源"].Value.Equals(1)){//先判斷數據庫配置文件是否存在if(System.IO.File.Exists(mc.ExePath+GlobalConfigurationSource.GlobalAppSettings["DatabaseListFile"])){//加載數據源DatabaseListdatabaseList=XmlHelper.XmlDeserializeFromFile<DatabaseList>(mc.ExePath+"\\"+GlobalConfigurationSource.GlobalAppSettings["DatabaseListFile"],Encoding.UTF8);if(!string.IsNullOrEmpty(databaseList.MDatabaseInstances[0].ConnectionString)){this.dgvExeList.Rows[index].Cells["數據源"].Value=databaseList.MDatabaseInstances[0].ConnectionString;}}else{//文件不存在的情況下記錄日志后繼續執行Common.WriteLog.CreateLog("不存在文件!請檢查。"+mc.ExePath+"\\"+GlobalConfigurationSource.GlobalAppSettings["DatabaseListFile"]);this.dgvExeList.Rows[index].DefaultCellStyle.BackColor=Color.Red;}}//##################//@@@@@@@@@@@@@@@@@@@@@@@@if(this.dgvExeList.Rows[index].Cells["類型"].Value.ToString().Equals(Model.EnumWorkType.WorkType.應用程序.ToString())){//狀態實時獲取boolbInTaskMgr=Common.Function.isExistInTaskMgr(mc.Cname.Trim());stringsStatus=string.Empty;if(bInTaskMgr){sStatus="Running";this.dgvExeList.Rows[index].DefaultCellStyle.BackColor=Color.White;}else{sStatus="Stopped";this.dgvExeList.Rows[index].DefaultCellStyle.BackColor=Color.Red;}this.dgvExeList.Rows[index].Cells["狀態"].Value=sStatus;//狀態實時獲取}elseif(this.dgvExeList.Rows[index].Cells["類型"].Value.ToString().Equals(Model.EnumWorkType.WorkType.服務程序.ToString())){//當服務程序的服務名稱沒有時,提示if(string.IsNullOrEmpty(mc.ServiceName)){Common.WriteLog.CreateLog("加載"+mc.Cname+"時出錯,服務名稱為空。請檢查");}else{stringsStatus=string.Empty;if(Common.Function.IsExistsService(mc.ServiceName.Trim())){sStatus=Common.Function.GetServiceState(mc.ServiceName.Trim()).ToString();if(sStatus.Equals("Running")){this.dgvExeList.Rows[index].DefaultCellStyle.BackColor=Color.White;}else{this.dgvExeList.Rows[index].DefaultCellStyle.BackColor=Color.Red;}}else{sStatus="未安裝";this.dgvExeList.Rows[index].DefaultCellStyle.BackColor=Color.Red;}this.dgvExeList.Rows[index].Cells["狀態"].Value=sStatus;//狀態實時獲取}}else{Common.WriteLog.CreateLog("程序"+this.dgvExeList.Rows[index].Cells["名稱"].Value.ToString()+"類型不是應用程序也不是服務程序!");this.dgvExeList.Rows[index].DefaultCellStyle.BackColor=Color.Red;continue;}//@@@@@@@@@@@@@@@@@@@@@@@@index++;}catch(Exceptionex){Common.WriteLog.CreateLog("加載"+mc.Cname+"時出錯,請檢查"+ex.Message);continue;}}}///<summary>///彈出新增畫面///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidbtnAdd_Click(objectsender,EventArgse){frmAddOrModifyfrm=newfrmAddOrModify();frm.StrIndicator="Add";if(frm.ShowDialog().Equals(DialogResult.OK)){//刷新this.btnRefreshAll_Click(null,null);}else{//取消按鈕,什么也不做}}///<summary>///退出工具///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidbtnQuit_Click(objectsender,EventArgse){//會觸發formclosig事件,那邊會記錄日志this.Close();}///<summary>///各種按鈕的點擊事件///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoiddgvExeList_CellClick(objectsender,DataGridViewCellEventArgse){try{//點擊列頭或行頭,不執行任何邏輯if(e.RowIndex==-1||e.ColumnIndex==-1){return;}//選擇列if(this.dgvExeList.Columns[e.ColumnIndex].Name.Equals("選擇")){DataGridViewCheckBoxCellcheckCell=(DataGridViewCheckBoxCell)dgvExeList.Rows[e.RowIndex].Cells["選擇"];Booleanflag=Convert.ToBoolean(checkCell.Value);checkCell.Value=!flag;}elseif(this.dgvExeList.Columns[e.ColumnIndex].Name.Equals("安裝")){//第7列是安裝列。只有服務程序才需要安裝if(this.dgvExeList.Rows[e.RowIndex].Cells["類型"].Value.ToString()==Model.EnumWorkType.WorkType.應用程序.ToString()){MessageBox.Show(this.dgvExeList.Rows[e.RowIndex].Cells["名稱"].Value.ToString()+"是應用程序,不需要安裝","不需要安裝",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}elseif(this.dgvExeList.Rows[e.RowIndex].Cells["類型"].Value.ToString()==Model.EnumWorkType.WorkType.服務程序.ToString()){if(Common.Function.IsExistsService(dgvExeList.Rows[e.RowIndex].Cells["服務名稱"].Value.ToString())){MessageBox.Show("已經存在名稱為"+dgvExeList.Rows[e.RowIndex].Cells["服務名稱"].Value.ToString()+"的服務,不能重復安裝","安裝失敗",MessageBoxButtons.OK,MessageBoxIcon.Error);return;}//顯示等待框//this.Cursor=System.Windows.Forms.Cursors.WaitCursor;//調用命令安裝windows服務stringstrTmp=string.Empty;if(!dgvExeList.Rows[e.RowIndex].Cells["路徑"].Value.ToString().EndsWith("\\")&&!dgvExeList.Rows[e.RowIndex].Cells["名稱"].Value.ToString().EndsWith("\\")){strTmp=dgvExeList.Rows[e.RowIndex].Cells["路徑"].Value.ToString()+"\\"+dgvExeList.Rows[e.RowIndex].Cells["名稱"].Value.ToString();}else{strTmp=dgvExeList.Rows[e.RowIndex].Cells["路徑"].Value.ToString()+dgvExeList.Rows[e.RowIndex].Cells["名稱"].Value.ToString();}//替換為sccreate命令創建,因為此命令可以自定義服務名稱屈云明20170721//stringstr=@"%windir%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe"+strTmp;stringstr=@"sccreate"+dgvExeList.Rows[e.RowIndex].Cells["服務名稱"].Value.ToString()+"binpath="+strTmp;System.Diagnostics.Processp=newSystem.Diagnostics.Process();p.StartInfo.FileName="cmd.exe";p.StartInfo.UseShellExecute=false;//是否使用操作系統shell啟動p.StartInfo.RedirectStandardInput=true;//接受來自調用程序的輸入信息p.StartInfo.RedirectStandardOutput=true;//由調用程序獲取輸出信息p.StartInfo.RedirectStandardError=true;//重定向標準錯誤輸出p.StartInfo.CreateNoWindow=true;//不顯示程序窗口p.Start();//啟動程序//向cmd窗口發送輸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海外企業員工招聘與派遣外包合同
- 綠色智慧園區BIMCIM技術集成實施合同
- 簽合同授權協議書
- 生態修復工程環保合規性承諾協議
- 裝配式農房抗震施工與抗震加固合同
- 執行款支付協議書
- 社區居民簽協議書
- 聯通套餐送寬帶協議書
- 股權激勵與員工績效考核對接合同
- 蓋彩鋼瓦房協議書
- 2024年秋《MySQL數據庫應用》形考 實驗訓練1 在MySQL中創建數據庫和表答案
- 《數據資產會計》 課件 第五章 數據資產的價值評估
- 合同到期不續簽的模板
- 北京市2018年中考歷史真題試卷(含答案)
- (完整版)新概念英語第一冊單詞表(打印版)
- 露天煤礦智能集控員職業技能競賽理論考試題庫(含答案)
- 市政府綜合服務樓食堂及綜合服務托管投標方案(技術方案)【附圖】
- 北京市《配電室安全管理規范》(DB11T 527-2021)地方標準
- 工程物品采購清單-含公式
- 湖北武漢歷年中考語文現代文閱讀真題45篇(含答案)(2003-2023)
- 帶貨主播規章制度范本
評論
0/150
提交評論