static public List <DM_Factory> GetFactoryArray(ServerConnection conn, ref string strError) { if (conn == null) { conn = new ServerConnection(); } //查询工厂信息 PacketTable[] arrSendTable = new PacketTable[0]; Packet recvPacket = conn.ExecuteCommand(4, arrSendTable); PacketTable[] arrRecvTable = conn.ReadTable(recvPacket); if (arrRecvTable == null) { strError = conn.ErrorMessage; return(null); } List <DM_Factory> arrFactory = new List <DM_Factory>(); PacketTable recvTable = arrRecvTable[0]; int nIndexFactoryName = recvTable.GetFieldIndex("FactoryName"); int nIndexDatabaseID = recvTable.GetFieldIndex("DatabaseID"); int nIndexServerID = recvTable.GetFieldIndex("ServerID"); for (int nRow = 0; nRow < recvTable.Rows; nRow++) { DM_Factory factory = new DM_Factory(); factory.ServerID = (int)recvTable.GetValue(nRow, nIndexServerID); factory.DatabaseID = (int)recvTable.GetValue(nRow, nIndexDatabaseID); factory.FactoryName = (string)recvTable.GetValue(nRow, nIndexFactoryName); arrFactory.Add(factory); } return(arrFactory); }
public string GetSettingInfo(HttpContext context, ref string strError) { try { Export handler = new Export(); SystemSettingInfo systemSettingInfo = new SystemSettingInfo(); Period period = GlobalSession.Period; systemSettingInfo.LastNum = period.LastNum; systemSettingInfo.DateFrom = period.DateFrom.ToString("yyyy-MM-dd"); systemSettingInfo.DateTo = period.DateTo.ToString("yyyy-MM-dd"); systemSettingInfo.ArrayFactory = GetFactoryList(); if (systemSettingInfo.ArrayFactory == null) { return(handler.Error("无法获取所有工厂信息")); } DM_Factory factory = GetFactory(); if (factory == null) { return(handler.Error("无法获取工厂信息")); } systemSettingInfo.SelectFactory = factory.FactoryName; return(handler.Success(systemSettingInfo)); } catch (Exception ex) { Export handler = new Export(); return(handler.Error("错误:" + ex.Message)); } }
//绑定零件ID信息 protected void BindPartID(DM_Factory factory, List <ProjectInfo> arrProjectInfo) { string strError = ""; ServerConnection conn = new ServerConnection(factory.ServerID, factory.DatabaseID); List <DM_ModelProject> arrProject = CmdQuery.GetProjectArray(conn, ref strError); if (arrProject == null || arrProject.Count == 0) { return; } foreach (DM_ModelProject project in arrProject) { ProjectInfo curProject = null; foreach (ProjectInfo projectInfo in arrProjectInfo) { if (projectInfo.ProjectName == project.ProjectName) { projectInfo.ProjectID = project.ProjectID; curProject = projectInfo; break; } } //绑定所有标签中的零件ID if (curProject != null) { List <DM_ModelPart> arrPart = CmdQuery.GetPartArray(conn, project.ProjectID, ref strError); foreach (DM_ModelPart part in arrPart) { for (int i = 0; i < curProject.Tags.Length; i++) { if (curProject.Tags[i].GetPartInfo() != null) //标签需要零件信息 { PartInfo partInfo = curProject.Tags[i].GetPartInfo(); if (partInfo.PartName == part.PartName) { partInfo.PartID = part.PartID; } } else if (curProject.Tags[i].GetPartArray() != null) //标签需要零件数组信息 { PartInfo[] arrPartInfo = curProject.Tags[i].GetPartArray(); for (int j = 0; j < arrPartInfo.Length; j++) { if (arrPartInfo[j].PartName == part.PartName) { arrPartInfo[j].PartID = part.PartID; } } } } } } } }
//统计合格率和CII protected ProjectStatInfo Stat(DM_Factory factory, ProjectInfo projectInfo) { projectInfo.ClearData(); //清除旧的数据 ProjectStatInfo statInfo = new ProjectStatInfo(); statInfo.Tags = projectInfo.Tags; statInfo.URL = GetImagURL(projectInfo.ImageURL); if (projectInfo.ProjectID == 0) { return(statInfo); } string strError = ""; ServerConnection conn = new ServerConnection(factory.ServerID, factory.DatabaseID); for (int i = 0; i < statInfo.Tags.Length; i++) { if (statInfo.Tags[i].TagName == "PassrateChart") { StatPassrate(conn, projectInfo, (PassrateChartTag)statInfo.Tags[i], ref strError); } else if (statInfo.Tags[i].TagName == "CIIChart") { StatCII(conn, projectInfo, (CIIChartTag)statInfo.Tags[i], ref strError); } else if (statInfo.Tags[i].TagName == "KeyPartPassrateChart") { StatKeyPartPassrate(conn, projectInfo, (KeyPartPassrateChartTag)statInfo.Tags[i], ref strError); } else if (statInfo.Tags[i].TagName == "KeyPartCIIChart") { StatKeyPartCII(conn, projectInfo, (KeyPartCIIChartTag)statInfo.Tags[i], ref strError); } else if (statInfo.Tags[i].TagName == "SortChart") { StatSortClass(conn, projectInfo, (SortChartTag)statInfo.Tags[i], ref strError); } else if (statInfo.Tags[i].TagName == "Image") { SetImage((ImageTag)statInfo.Tags[i]); } } for (int i = 0; i < statInfo.Tags.Length; i++) { if (statInfo.Tags[i].TagName == "Label") { StatLabel(conn, projectInfo, (LabelTag)statInfo.Tags[i], ref strError); } } return(statInfo); }
public string GetAllProjectInfo(HttpContext context, ref string strError) { Export handler = new Export(); ExportDataEx export = new ExportDataEx(); DM_Factory factory = GetFactory(); List <ProjectInfo> arrPartInfo = LoadProjectInfo(factory); export.Data = arrPartInfo; if (arrPartInfo == null) { return(handler.Error("零件信息为空")); } return(handler.Success(export)); }
public string GetProjectInfo(HttpContext context, ref string strError) { int nProjectIndex = CommandTool.ReqInt(context, "ProjectIndex", 0); try { Export handler = new Export(); DM_Factory factory = GetFactory(); if (factory == null) { return(handler.Error("无法获取工厂信息")); } List <ProjectInfo> arrProject = LoadProjectInfo(factory); if (arrProject == null || arrProject.Count == 0) { return(handler.Error("无法获取该工厂车型信息")); } if (nProjectIndex < 0) { nProjectIndex = -1; } if (nProjectIndex > arrProject.Count - 1) { nProjectIndex = arrProject.Count - 1; } int nPrevIndex = nProjectIndex > 0 ? nProjectIndex - 1 : -1; int nNextIndex = nProjectIndex < arrProject.Count - 1 ? nProjectIndex + 1 : -1; ProjectStatInfo statInfo = Stat(factory, arrProject[nProjectIndex]); statInfo.ProjectIndex = nProjectIndex; statInfo.PrevProjectIndex = nPrevIndex; statInfo.NextProjectIndex = nNextIndex; string strInfo = handler.Success(statInfo); return(strInfo); } catch (System.Exception ex) { Export handler = new Export(); return(handler.Error("错误:" + ex.Message)); } }
//配置文件(或Session)中读取要显示的零件信息,并存储到Session中 protected List <ProjectInfo> LoadProjectInfo(DM_Factory facrtory) { if (GlobalSession.ProjectInfo != null) { return(GlobalSession.ProjectInfo); } string strFile = HttpContext.Current.Server.MapPath("~\\Config\\ProjectConfig.xml"); ProjectConfig config = new ProjectConfig(); List <ProjectInfo> arrProjectInfo = config.ReadFile(strFile, facrtory.FactoryName); if (arrProjectInfo != null && arrProjectInfo.Count > 0) { BindPartID(facrtory, arrProjectInfo); GlobalSession.ProjectInfo = arrProjectInfo; } return(arrProjectInfo); }