usingHh.Mes.Common.config;usingHh.Mes.Common.log;usingHh.Mes.Pojo.System;usingHh.Mes.POJO.Entity;usingHh.Mes.POJO.Response;usingHh.Mes.Service.Repository;usingMicrosoft.AspNetCore.Hosting;usingMicrosoft.AspNetCore.Http;usingSqlSugar;usingSystem;usingSystem.Collections.Generic;usingSystem.Data;usingHh.Mes.Common;usingSystem.Linq;namespaceHh.Mes.Service.Configure{///<summary>///公司设置///</summary>publicclassSysCompanyService:RepositorySqlSugar<base_company>{///<summary>///新增///</summary>///<returns></returns>publicdynamicIns(base_companymodel){varresponse=newResponse();returnExceptionsHelp.Instance.ExecuteT(()=>{if(Context.Queryable<base_company>().Where(x=>x.isDelete==SystemVariable.AddOrUpdateFlag).Count()>0){response.Status=false;response.Message="新增失败:公司默认只有一条,请不要重复添加!";returnresponse;}model.createBy=sysWebUser.Name;model.createTime=DateTime.Now;model.isDelete=SystemVariable.AddOrUpdateFlag;if(!Add(model)){response.Status=false;response.Message=SystemVariable.dataActionError;}returnresponse;});}///<summary>///根据主键数组删除///</summary>publicdynamicDeleteByIds(int[]ids){varresponse=newResponse();returnExceptionsHelp.Instance.ExecuteT(()=>{if(GetSysCompanyOne()!=null){response.Status=false;response.Message="删除失败:公司默认需要有一条数据";returnresponse;}if(Context.Deleteable<base_company>().In(ids).ExecuteCommand()==0){response.Status=false;response.Message=SystemVariable.dataActionError;}returnresponse;});}///<summary>///更新///</summary>publicdynamicUpdataById(base_companymodel){varresponse=newResponse();returnExceptionsHelp.Instance.ExecuteT(()=>{model.updateBy=sysWebUser.Name;model.updateTime=DateTime.Now;if(!Update(model)){response.Status=false;response.Message=SystemVariable.dataActionError;}returnresponse;});}///<summary>///返回公司表第一条数据///</summary>///<returns></returns>publicbase_companyGetSysCompanyOne(){returnContext.Queryable<base_company>().Take(1).First(x=>x.isDelete==SystemVariable.AddOrUpdateFlag);}publicList<sys_File>GetSysFile(intid){varsql=string.Format("select * from sys_file where targetId={0}",id);varfiles=Context.Ado.SqlQuery<sys_File>(sql);returnfiles;}///<summary>///获取字典select*from[dbo].[sys_dict_data]wheredictType='url'///</summary>///<paramname="dictLabel">值</param>///<paramname="dictType">类型</param>///<returns>返回dictValue字段值</returns>publicoverridestringGetDictionaryDictValue(stringdictLabel,stringdictType="GetUrl"){returnContext.Queryable<sys_dict_data>().With(SqlWith.NoLock).Where(x=>x.dictType==dictType&&x.dictLabel==dictLabel).First()?.dictValue;}publicdynamicUpload(IFormFileCollectionfile,IHostingEnvironmentenvironment,sys_Filemodel){varresponse=newResponse();returnExceptionsHelp.Instance.ExecuteT(()=>{List<sys_File>sysFiles=newList<sys_File>{model};varresult=UploadFile(file,environment,sysFiles);if(!result){response.Status=false;response.Message=SystemVariable.dataActionError;}returnresponse;});}///<summary>///未完成工单信息///</summary>///<returns></returns>publicdynamicUnfinishedOrderInfo(){varresponse=newResponse();returnExceptionsHelp.Instance.ExecuteT(()=>{response.Status=false;doublePercentage=Convert.ToDouble(AppSettings.GetAppSeting("UnfinishedOrderPercentage").Substring(0,AppSettings.GetAppSeting("UnfinishedOrderPercentage").IndexOf("%")));//#region今日任务//varTodayUnfinishedOrderList=Context.Queryable<weld_detail_work_order>().Where(x=>x.State<(int)EnumWelDetailStatus.释放完成&&SqlFunc.DateIsSame(x.createTime,DateTime.Now)).ToList();//varTodayOrderList=Context.Queryable<weld_detail_work_order>().Where(x=>SqlFunc.DateIsSame(x.createTime,DateTime.Now)).ToList();//response.Message=$"今日任务未完成数:<span>【{TodayUnfinishedOrderList.Count}】</span>,今日任务数:<span>【{TodayOrderList.Count}】</span>,</br></br>";//if(TodayOrderList.Count!=0&&TodayUnfinishedOrderList.Count!=0)//response.Message+=$"今日任务未完成百分比:<span>【{((double)TodayUnfinishedOrderList.Count / (double)TodayOrderList.Count).ToString("0.0%")}】</span>。</br></br>";//else//response.Message+=$"今日任务未完成百分比:<span>【0.0%】</span>。</br></br>";//if(((double)TodayUnfinishedOrderList.Count/(double)TodayOrderList.Count)*100>Percentage)//{//response.Status=true;//}//#endregion//#region目前总任务//varAllUnfinishedOrderList=Context.Queryable<weld_detail_work_order>().Where(x=>x.State<(int)EnumWelDetailStatus.释放完成&&x.createTime<Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"))).ToList();//varAllOrderList=Context.Queryable<weld_detail_work_order>().Where(x=>x.createTime<Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"))).ToList();//response.Message+=$"目前总任务未完成数:<span>【{AllUnfinishedOrderList.Count}】</span>,目前总任务数:<span>【{AllOrderList.Count}】</span>,</br></br>";//if(AllUnfinishedOrderList.Count!=0&&AllOrderList.Count!=0)//response.Message+=$"目前总任务未完成百分比:<span>【{((double)AllUnfinishedOrderList.Count / (double)AllOrderList.Count).ToString("0.0%")}】</span>。</br></br>";//else//response.Message+=$"目前总任务未完成百分比:<span>【0.0%】</span>。</br></br>";//if(((double)AllUnfinishedOrderList.Count/(double)AllOrderList.Count)*100>Percentage)//{//response.Status=true;//}//#endregionreturnresponse;});}///<summary>///主页面错误信息提示///</summary>publicdynamicLogTips(){varresponse=newResponse();returnExceptionsHelp.Instance.ExecuteT(()=>{#regioncpu,硬盘,内存vartempServerLog=string.Empty;//"cpu 使用率:80%,内存使用率:80%,C盘使用率:80%,"varcpu=ComputerHelp.GetCpuUsage();if(int.TryParse(cpu.Replace("%",""),outintcpuUsage)&&cpuUsage>=80){tempServerLog+=$"cpu 使用率:{cpu};";}varmemory=ComputerHelp.GetMemery();if(int.TryParse(memory.Item4.Replace("%",""),outintmemoryUsage)&&memoryUsage>=80){tempServerLog+=$"内存 使用率:{memory.Item4};";}vardisk=ComputerHelp.GetDriveInfos();vardriveInfos=disk.Where(x=>((x.TotalSize-x.TotalFreeSpace)*100/x.TotalSize)>=80).Select(x=>new{dirName=x.Name,usage=((x.TotalSize-x.TotalFreeSpace)*100/x.TotalSize).ToString("N1")+"%"}).ToList();foreach(varitemindriveInfos){tempServerLog+=$"{item.dirName}盘使用率:{item.usage};";}#endregion//接口日志varlog=@"selectcount(1)astotalfromsys_interface_logt(nolock)wheret.flagisnullandt.responseNOTLIKE'%200%'--andt.createTime>=convert(varchar(15),getdate(),111)--andt.createTime<convert(varchar(15),DATEADD(day,1,getdate()),111)--and(t.method='POST'ort.method='post')--and(t.responselike'%500%'ort.responselike'%由于连接%')selectcount(1)astotalfromsys_job_logt(nolock)wheret.flagisnull--andt.createTime>=convert(varchar(15),getdate(),111)--andt.createTime<convert(varchar(15),DATEADD(day,1,getdate()),111)selectcount(1)astotalfromsys_interface_logt(nolock)wheret.flagisnulland[system]='appAndroid'andt.responseNOTLIKE'%200%'selectcount(1)astotalfromsys_interface_logt(nolock)wheret.flagisnulland[system]='api'and[type]like'API%'andt.responseNOTLIKE'%200%'";vards=Context.Ado.GetDataSetAll(log);varinterLog=ds.Tables[0].Rows[0]["total"].ToString();if(interLog=="0")interLog="";varjobLog=ds.Tables[1].Rows[0]["total"].ToString();if(jobLog=="0")jobLog="";varpdaLog=ds.Tables[2].Rows[0]["total"].ToString();if(pdaLog=="0")pdaLog="";varupstreamLog=ds.Tables[3].Rows[0]["total"].ToString();if(upstreamLog=="0")upstreamLog="";response.Result=new{interLog,jobLog,pdaLog,upstreamLog,serverLog=string.IsNullOrWhiteSpace(tempServerLog)?"":tempServerLog};returnresponse;});}publicdynamicUpdateLogTips(stringflag){varresponse=newResponse();returnExceptionsHelp.Instance.ExecuteT(()=>{if(flag=="inter"){stringsql="update sys_interface_log set flag=1 where flag is null";varresult=base.Context.Ado.ExecuteCommand(sql);returnresult>0?response.ResponseSuccess():response.ResponseError();}elseif(flag=="job"){stringsql="update sys_job_log set flag=1 where flag is null";varresult=base.Context.Ado.ExecuteCommand(sql);returnresult>0?response.ResponseSuccess():response.ResponseError();}elseif(flag=="upstream"){stringsql="update sys_interface_log set flag=1 where flag is null and [system] ='api' and [type] like 'API%'";varresult=base.Context.Ado.ExecuteCommand(sql);returnresult>0?response.ResponseSuccess():response.ResponseError();}elseif(flag=="pda"){stringsql="update sys_interface_log set flag=1 where flag is null and [system] ='app Android'";varresult=base.Context.Ado.ExecuteCommand(sql);returnresult>0?response.ResponseSuccess():response.ResponseError();}returnresponse;});}}}