/// <summary> /// 保存機台實時生產數據匯總記錄 /// </summary> /// <param name="listNewSummaries">機台實時生產數據匯總記錄</param> /// <returns>保存是否成功</returns> public bool SaveMacRealtimeSummaries(MachineRealtimeSummary insRecord) { bool lRes = false; if (insRecord == null) { return lRes; } try { using (SqlConnection conn = new SqlConnection(DbHelperSQL.connectionString)) { SqlTransaction transaction = null; conn.Open(); //開啟連接 transaction = conn.BeginTransaction(); //開啟事務 try { MachineRealtimeSummary existRecord = this.m_objProductionDataSynDAL.GetExistedMachineRealtimeSummary(insRecord.MachineNO); insRecord.StatusChangeTime = DateTime.Now; if (existRecord!=null) { if (existRecord.MachineStatusCode.Trim() == insRecord.MachineStatusCode.Trim()) { insRecord.StatusChangeTime = existRecord.StatusChangeTime; } this.m_objProductionDataSynDAL.UpdateMacRealtimeSummary(insRecord, transaction); } else { this.m_objProductionDataSynDAL.AddMacRealtimeSummary(insRecord, transaction); } lRes = true; } catch (Exception exTran) { lRes = false; throw exTran; } finally { if (lRes) transaction.Commit(); else transaction.Rollback(); } } } catch (Exception ex) { throw ex; } return lRes; }
/// <summary> /// 綁定機台的實時生產數據 /// </summary> /// <param name="strMacNo">機台編號</param> private void BindMacSummary(string strMacNo) { MachineRealtimeSummaryBLL macSummaryBL = new MachineRealtimeSummaryBLL(); MachineRealtimeSummary searchInfo = new MachineRealtimeSummary(); searchInfo.MachineNO = strMacNo.Trim(); List<MachineRealtimeSummary> listSummaries = macSummaryBL.GetMacRealtimeSummaries(searchInfo); this.dtvMacSummary.DataSource = listSummaries; this.dtvMacSummary.DataBind(); }
/// <summary> /// 新增機台實時生產數據匯總記錄 /// </summary> /// <param name="insRecord">新增的記錄</param> /// <param name="sqlTrans">數據庫事務對象</param> /// <returns>是否新增成功</returns> public bool AddMacRealtimeSummary(MachineRealtimeSummary insRecord, SqlTransaction sqlTrans) { if (insRecord == null || sqlTrans == null) { return false; } if (string.IsNullOrEmpty(insRecord.MachineNO)) { return false; } try { Common.MappingTools.MappingHelper.HandleNullProperty(insRecord);//TODO:需要檢查當時間值為空時,會自動填充什麼默認值 StringBuilder strSql = new StringBuilder(); strSql.AppendLine("insert into MachineRealtimeSummary_mrs("); strSql.AppendLine("mrs_cMachineNO,mrs_cMachineStatusCode,mrs_PPJID,mrs_cSONo,mrs_cItemNo,mrs_cItemName,mrs_cEdition,mrs_iPlanProdQty,"); strSql.AppendLine("mrs_cProjectNo,mrs_dProjBeginTime,mrs_dProdBeginTime,mrs_iProdActualQty,mrs_dPrepareBeginTime,"); strSql.AppendLine("mrs_dPrepareEndTime,mrs_cPrepareItemsDesc,mrs_cPrepareCountdown,mrs_iMachineHaltTimes,"); strSql.AppendLine("mrs_iMachineHaltDuration,mrs_cDutyCaptain,mrs_cMachineStaffsDesc,mrs_dLastDate,"); strSql.AppendLine("mrs_cSystemVersion,mrs_cMachineIP,mrs_dStatusChangeTime"); strSql.Append(") values ("); strSql.Append("@mrs_cMachineNO,@mrs_cMachineStatusCode,@mrs_PPJID,@mrs_cSONo,@mrs_cItemNo,@mrs_cItemName,@mrs_cEdition,@mrs_iPlanProdQty,@mrs_cProjectNo,@mrs_dProjBeginTime,@mrs_dProdBeginTime,@mrs_iProdActualQty,@mrs_dPrepareBeginTime,@mrs_dPrepareEndTime,@mrs_cPrepareItemsDesc,@mrs_cPrepareCountdown,@mrs_iMachineHaltTimes,@mrs_iMachineHaltDuration,@mrs_cDutyCaptain,@mrs_cMachineStaffsDesc,GETDATE(),@mrs_cSystemVersion,@mrs_cMachineIP,@mrs_dStatusChangeTime)"); SqlParameter[] parameters = GetMacSummarySqlParams(insRecord); int iRes = DbHelperSQL.ExecuteNonQuery(sqlTrans, CommandType.Text, strSql.ToString(), parameters); if (iRes > 0) { return true; } else { return false; } } catch (Exception ex) { throw ex; } }
/// <summary> /// 獲取SQL參數列表 /// </summary> /// <param name="record">機台實時生產數據匯總記錄</param> /// <returns>SQL參數列表</returns> private SqlParameter[] GetMacSummarySqlParams(MachineRealtimeSummary record) { if (record == null) { return null; } SqlParameter[] parameters = { DbHelperSQL.MakeInParam("@mrs_cMachineNO", SqlDbType.NVarChar,80, record.MachineNO), DbHelperSQL.MakeInParam("@mrs_cProjectNo", SqlDbType.NVarChar,200, record.ProjectNo), DbHelperSQL.MakeInParam("@mrs_cMachineStatusCode", SqlDbType.VarChar,50, record.MachineStatusCode), DbHelperSQL.MakeInParam("@mrs_PPJID", SqlDbType.UniqueIdentifier,16, record.PPJID), DbHelperSQL.MakeInParam("@mrs_cSONo", SqlDbType.NVarChar,1020, record.SONo), DbHelperSQL.MakeInParam("@mrs_cItemNo", SqlDbType.NVarChar,200, record.ItemNo), DbHelperSQL.MakeInParam("@mrs_cItemName", SqlDbType.NVarChar,1040, record.ItemName), DbHelperSQL.MakeInParam("@mrs_cEdition", SqlDbType.NVarChar,200, record.Edition), DbHelperSQL.MakeInParam("@mrs_iPlanProdQty", SqlDbType.Int,4, record.PlanProdQty), DbHelperSQL.MakeInParam("@mrs_dProjBeginTime", SqlDbType.DateTime,8,record.ProjBeginTime), DbHelperSQL.MakeInParam("@mrs_dProdBeginTime", SqlDbType.DateTime,8,record.ProdBeginTime), DbHelperSQL.MakeInParam("@mrs_iProdActualQty", SqlDbType.Int, 4, record.ProdActualQty), DbHelperSQL.MakeInParam("@mrs_dPrepareBeginTime", SqlDbType.DateTime,8,record.PrepareBeginTime), DbHelperSQL.MakeInParam("@mrs_dPrepareEndTime", SqlDbType.DateTime,8,record.PrepareEndTime), DbHelperSQL.MakeInParam("@mrs_cPrepareItemsDesc", SqlDbType.NVarChar, 1000, record.PrepareItemsDesc), DbHelperSQL.MakeInParam("@mrs_cPrepareCountdown", SqlDbType.NVarChar,400, record.PrepareCountdown), DbHelperSQL.MakeInParam("@mrs_iMachineHaltTimes", SqlDbType.Int,4, record.MachineHaltTimes), DbHelperSQL.MakeInParam("@mrs_iMachineHaltDuration", SqlDbType.Int,4, record.MachineHaltDuration), DbHelperSQL.MakeInParam("@mrs_cDutyCaptain", SqlDbType.NVarChar,160, record.DutyCaptain), DbHelperSQL.MakeInParam("@mrs_cMachineStaffsDesc", SqlDbType.NVarChar,1000, record.MachineStaffsDesc), DbHelperSQL.MakeInParam("@mrs_cSystemVersion", SqlDbType.NVarChar,50, record.SystemVersion), DbHelperSQL.MakeInParam("@mrs_cMachineIP", SqlDbType.VarChar,50, record.MachineIP), DbHelperSQL.MakeInParam("@mrs_dStatusChangeTime", SqlDbType.SmallDateTime,4,record.StatusChangeTime)}; return parameters; }
/// <summary> /// 更新機台實時生產數據匯總記錄 /// </summary> /// <param name="udRecord">更新的記錄</param> /// <param name="sqlTrans">數據庫事務對象</param> /// <returns>是否更新成功</returns> public bool UpdateMacRealtimeSummary(MachineRealtimeSummary udRecord, SqlTransaction sqlTrans) { if (udRecord == null || sqlTrans == null) { return false; } if (string.IsNullOrEmpty(udRecord.MachineNO)) { return false; } try { Common.MappingTools.MappingHelper.HandleNullProperty(udRecord); StringBuilder strSql = new StringBuilder(); strSql.Append("update MachineRealtimeSummary_mrs set "); strSql.Append("mrs_cProjectNo=@mrs_cProjectNo,"); strSql.Append("mrs_cMachineStatusCode=@mrs_cMachineStatusCode,"); strSql.Append("mrs_PPJID=@mrs_PPJID,"); strSql.Append("mrs_cSONo=@mrs_cSONo,"); strSql.Append("mrs_cItemNo=@mrs_cItemNo,"); strSql.Append("mrs_cItemName=@mrs_cItemName,"); strSql.Append("mrs_cEdition=@mrs_cEdition,"); strSql.Append("mrs_iPlanProdQty=@mrs_iPlanProdQty,"); strSql.Append("mrs_dProjBeginTime=@mrs_dProjBeginTime,"); strSql.Append("mrs_dProdBeginTime=@mrs_dProdBeginTime,"); strSql.Append("mrs_iProdActualQty=@mrs_iProdActualQty,"); strSql.Append("mrs_dPrepareBeginTime=@mrs_dPrepareBeginTime,"); strSql.Append("mrs_dPrepareEndTime=@mrs_dPrepareEndTime,"); strSql.Append("mrs_cPrepareItemsDesc=@mrs_cPrepareItemsDesc,"); strSql.Append("mrs_cPrepareCountdown=@mrs_cPrepareCountdown,"); strSql.Append("mrs_iMachineHaltTimes=@mrs_iMachineHaltTimes,"); strSql.Append("mrs_iMachineHaltDuration=@mrs_iMachineHaltDuration,"); strSql.Append("mrs_cDutyCaptain=@mrs_cDutyCaptain,"); strSql.Append("mrs_cMachineStaffsDesc=@mrs_cMachineStaffsDesc,"); strSql.Append("mrs_dLastDate=GETDATE(),"); strSql.Append("mrs_cSystemVersion=@mrs_cSystemVersion,"); strSql.Append("mrs_cMachineIP=@mrs_cMachineIP,"); strSql.Append("mrs_dStatusChangeTime=@mrs_dStatusChangeTime"); strSql.Append(" where mrs_cMachineNO=@mrs_cMachineNO"); SqlParameter[] parameters = GetMacSummarySqlParams(udRecord); DbHelperSQL.ExecuteNonQuery(sqlTrans, CommandType.Text, strSql.ToString(), parameters); return true; } catch (Exception ex) { throw ex; } }
/// <summary> /// 獲取已存在的機台實時生產數據匯總記錄 /// </summary> /// <param name="MachineNo">機台編號</param> /// <returns></returns> public MachineRealtimeSummary GetExistedMachineRealtimeSummary(string MachineNo) { MachineRealtimeSummary realtimeSummary = null; try { StringBuilder strSql = new StringBuilder(); strSql.Append("SELECT mrs_cMachineNO,mrs_cMachineStatusCode,mrs_dStatusChangeTime FROM MachineRealtimeSummary_mrs with(nolock) where mrs_cMachineNO = '" + MachineNo.Trim() + "'"); using (IDataReader dataReader = DbHelperSQL.ExecuteReader(strSql.ToString())) { while (dataReader.Read()) { realtimeSummary = new MachineRealtimeSummary(); if (dataReader["mrs_cMachineNO"] != null) { realtimeSummary.MachineNO = dataReader["mrs_cMachineNO"].ToString().Trim(); } if (dataReader["mrs_cMachineStatusCode"] != null) { realtimeSummary.MachineStatusCode = dataReader["mrs_cMachineStatusCode"].ToString().Trim(); } if (dataReader["mrs_dStatusChangeTime"] != null && dataReader["mrs_dStatusChangeTime"].ToString().Trim() != "") { realtimeSummary.StatusChangeTime = DateTime.Parse(dataReader["mrs_dStatusChangeTime"].ToString()); } } } } catch (Exception exTran) { throw exTran; } return realtimeSummary; }
/// <summary> /// 獲取指定條件的機台實時生產數據匯總記錄 /// </summary> /// <param name="searchInfo">篩選條件,傳入NULL值時,返回NULL結果</param> /// <returns>機台實時生產數據匯總記錄</returns> public List<MachineRealtimeSummary> GetMacRealtimeSummaries(MachineRealtimeSummary searchInfo) { try { return this.m_MacSummaryDA.GetMacRealtimeSummaries(searchInfo); } catch (Exception ex) { throw ex; } }
/// <summary> /// 獲取指定條件的機台實時生產數據匯總記錄 /// </summary> /// <param name="strSql">SQL查詢語句</param> /// <param name="strConn">數據庫連接字符串</param> /// <returns></returns> private List<MachineRealtimeSummary> GetSummaries(string strSql, string strConn) { if (string.IsNullOrEmpty(strSql) || string.IsNullOrEmpty(strConn)) { return null; } List<MachineRealtimeSummary> listSummary = new List<MachineRealtimeSummary>(); string strDBType = GetDBType(strConn); try { using (SqlDataReader reader = DbHelperSQL.ExecuteReader(strConn, strSql)) { while (reader.Read()) { MachineRealtimeSummary model = new MachineRealtimeSummary(); model.DBType = strDBType; #region 逐個屬性賦值 if (reader["mrs_cMachineNO"] != null && reader["mrs_cMachineNO"].ToString() != string.Empty) { model.MachineNO = reader["mrs_cMachineNO"].ToString(); } if (reader["MachineName"] != null && reader["MachineName"].ToString() != string.Empty) { model.MachineName = reader["MachineName"].ToString(); } if (reader["MachineTypeCode"] != null && reader["MachineTypeCode"].ToString() != string.Empty) { model.MachineTypeCode = reader["MachineTypeCode"].ToString(); } if (reader["MachineType"] != null && reader["MachineType"].ToString() != string.Empty) { model.MachineType = reader["MachineType"].ToString(); } if (reader["MachineStatus"] != null && reader["MachineStatus"].ToString() != string.Empty) { model.MachineStatus = reader["MachineStatus"].ToString(); } if (reader["mrs_cMachineStatusCode"] != null && reader["mrs_cMachineStatusCode"].ToString() != string.Empty) { model.MachineStatusCode = reader["mrs_cMachineStatusCode"].ToString(); } if (reader["mrs_PPJID"] != null && reader["mrs_PPJID"].ToString() != string.Empty) { model.PPJID = new Guid(reader["mrs_PPJID"].ToString()); } if (reader["mrs_cSONo"] != null && reader["mrs_cSONo"].ToString() != string.Empty) { model.SONo = reader["mrs_cSONo"].ToString(); } if (reader["mrs_cItemNo"] != null && reader["mrs_cItemNo"].ToString() != string.Empty) { model.ItemNo = reader["mrs_cItemNo"].ToString(); } if (reader["mrs_cItemName"] != null && reader["mrs_cItemName"].ToString() != string.Empty) { model.ItemName = reader["mrs_cItemName"].ToString(); } if (reader["ProdName"] != null && reader["ProdName"].ToString() != string.Empty) { model.ProdName = reader["ProdName"].ToString(); } if (reader["mrs_cEdition"] != null && reader["mrs_cEdition"].ToString() != string.Empty) { model.Edition = reader["mrs_cEdition"].ToString(); } if (reader["mrs_iPlanProdQty"] != null && reader["mrs_iPlanProdQty"].ToString() != string.Empty) { model.PlanProdQty = int.Parse(reader["mrs_iPlanProdQty"].ToString()); } if (reader["mrs_cNextGroup"] != null && reader["mrs_cNextGroup"].ToString() != string.Empty) { model.NextGroup = reader["mrs_cNextGroup"].ToString(); } if (reader["mrs_dProjBeginTime"] != null && reader["mrs_dProjBeginTime"].ToString() != string.Empty) { model.ProjBeginTime = DateTime.Parse(reader["mrs_dProjBeginTime"].ToString()); model.ProjBeginTimeDesc = model.ProjBeginTime.Value.ToString(DateTimeDispalyFormat).Replace('-', '/'); } if (reader["mrs_dProdBeginTime"] != null && reader["mrs_dProdBeginTime"].ToString() != string.Empty) { model.ProdBeginTime = DateTime.Parse(reader["mrs_dProdBeginTime"].ToString()); model.ProdBeginTimeDesc = model.ProdBeginTime.Value.ToString(DateTimeDispalyFormat).Replace('-', '/'); } if (reader["mrs_iProdActualQty"] != null && reader["mrs_iProdActualQty"].ToString() != string.Empty) { model.ProdActualQty = int.Parse(reader["mrs_iProdActualQty"].ToString()); } if (reader["mrs_dPrepareBeginTime"] != null && reader["mrs_dPrepareBeginTime"].ToString() != string.Empty) { model.PrepareBeginTime = DateTime.Parse(reader["mrs_dPrepareBeginTime"].ToString()); model.PrepareBeginTimeDesc = model.PrepareBeginTime.Value.ToString(DateTimeDispalyFormat).Replace('-', '/'); } if (reader["mrs_dPrepareEndTime"] != null && reader["mrs_dPrepareEndTime"].ToString() != string.Empty) { model.PrepareEndTime = DateTime.Parse(reader["mrs_dPrepareEndTime"].ToString()); model.PrepareEndTimeDesc = model.PrepareEndTime.Value.ToString(DateTimeDispalyFormat).Replace('-', '/'); } if (reader["mrs_cPrepareItemsDesc"] != null && reader["mrs_cPrepareItemsDesc"].ToString() != string.Empty) { model.PrepareItemsDesc = reader["mrs_cPrepareItemsDesc"].ToString(); } if (reader["mrs_cPrepareCountdown"] != null && reader["mrs_cPrepareCountdown"].ToString() != string.Empty) { model.PrepareCountdown = reader["mrs_cPrepareCountdown"].ToString(); } if (reader["mrs_iMachineHaltTimes"] != null && reader["mrs_iMachineHaltTimes"].ToString() != string.Empty) { model.MachineHaltTimes = int.Parse(reader["mrs_iMachineHaltTimes"].ToString()); } if (reader["mrs_iMachineHaltDuration"] != null && reader["mrs_iMachineHaltDuration"].ToString() != string.Empty) { model.MachineHaltDuration = int.Parse(reader["mrs_iMachineHaltDuration"].ToString()); } if (reader["mrs_cDutyCaptain"] != null && reader["mrs_cDutyCaptain"].ToString() != string.Empty) { model.DutyCaptain = reader["mrs_cDutyCaptain"].ToString(); } if (reader["mrs_cMachineStaffsDesc"] != null && reader["mrs_cMachineStaffsDesc"].ToString() != string.Empty) { model.MachineStaffsDesc = reader["mrs_cMachineStaffsDesc"].ToString(); } if (reader["mrs_dLastDate"] != null && reader["mrs_dLastDate"].ToString() != string.Empty) { model.LastDate = DateTime.Parse(reader["mrs_dLastDate"].ToString()); } if (reader["AreaCode"] != null && reader["AreaCode"].ToString() != string.Empty) { model.AreaCode = reader["AreaCode"].ToString(); } if (reader["AreaName"] != null && reader["AreaName"].ToString() != string.Empty) { model.AreaName = reader["AreaName"].ToString(); } if (reader["PublicInstitution"] != null && reader["PublicInstitution"].ToString() != string.Empty) { model.PublicInstitution = reader["PublicInstitution"].ToString(); } if (reader["mrs_dStatusChangeTime"] != null && reader["mrs_dStatusChangeTime"].ToString() != string.Empty) { model.StatusChangeTime = DateTime.Parse(reader["mrs_dStatusChangeTime"].ToString()); } #endregion listSummary.Add(model); } } } catch (Exception ex) { throw ex; } return listSummary; }
/// <summary> /// 獲取指定條件的機台實時生產數據匯總記錄 /// </summary> /// <param name="searchInfo">篩選條件,傳入NULL值時,為返回全部有效的記錄</param> /// <returns>機台實時生產數據匯總記錄</returns> private List<MachineRealtimeSummary> GetSummaries(MachineRealtimeSummary searchInfo) { try { StringBuilder strSQL = GetSummariesBaseSQL(); if (searchInfo != null) { #region 篩選條件 if (!string.IsNullOrEmpty(searchInfo.MachineType)) { strSQL.AppendLine("AND CMTType.cmt_cRemark=N'" + searchInfo.MachineType.Trim() + "'"); } if (!string.IsNullOrEmpty(searchInfo.MachineTypeCode)) { strSQL.AppendLine("AND mmt_cMachineType='" + searchInfo.MachineTypeCode.Trim() + "'"); } if (!string.IsNullOrEmpty(searchInfo.MachineNO)) { strSQL.AppendLine("AND mrs_cMachineNO='" + searchInfo.MachineNO.Trim() + "'"); } if (!string.IsNullOrEmpty(searchInfo.MachineStatusCode)) { strSQL.AppendLine("AND mrs_cMachineStatusCode='" + searchInfo.MachineStatusCode.Trim() + "'"); } if (!string.IsNullOrEmpty(searchInfo.AreaCode)) { strSQL.AppendLine("AND amr_cAreaCode='" + searchInfo.AreaCode.Trim() + "'"); } if (!string.IsNullOrEmpty(searchInfo.PublicInstitution)) { strSQL.AppendLine("AND amr_cPublicInstitution='" + searchInfo.PublicInstitution.Trim() + "'"); } if (searchInfo.PPJID != null && searchInfo.PPJID != Guid.Empty) { strSQL.AppendLine("AND mrs_PPJID='" + searchInfo.PPJID.ToString() + "'"); } if (!string.IsNullOrEmpty(searchInfo.SONo)) { strSQL.AppendLine("AND mrs_cSONo = '" + searchInfo.SONo.Trim() + "'"); } if (!string.IsNullOrEmpty(searchInfo.ItemNo)) { strSQL.AppendLine("AND mrs_cItemNo = '" + searchInfo.ItemNo.Trim() + "'"); } if (!string.IsNullOrEmpty(searchInfo.ItemName)) { strSQL.AppendLine("AND mrs_cItemName LIKE N'" + searchInfo.ItemName.Trim() + "%'"); } if (!string.IsNullOrEmpty(searchInfo.Edition)) { strSQL.AppendLine("AND mrs_cEdition LIKE N'" + searchInfo.Edition.Trim() + "%'"); } if (!string.IsNullOrEmpty(searchInfo.NextGroup)) { strSQL.AppendLine("AND mrs_cNextGroup LIKE N'" + searchInfo.NextGroup.Trim() + "%'"); } #endregion } List<MachineRealtimeSummary> listSummary = new List<MachineRealtimeSummary>(); List<MachineRealtimeSummary> listPatial = GetSummaries(strSQL.ToString(), this.m_strConn_LAMIMSN); if (listPatial != null && listPatial.Count > 0) { listSummary.AddRange(listPatial); } listPatial = GetSummaries(strSQL.ToString(), this.m_strConn_HOTIMSN); if (listPatial != null && listPatial.Count > 0) { listSummary.AddRange(listPatial); } listPatial = GetSummaries(strSQL.ToString(), this.m_strConn_SILKIMSN); if (listPatial != null && listPatial.Count > 0) { listSummary.AddRange(listPatial); } return listSummary; } catch (Exception ex) { throw ex; } }
/// <summary> /// 獲取指定條件的機台實時生產數據匯總記錄 /// </summary> /// <param name="searchInfo">篩選條件,傳入NULL值時,返回NULL結果</param> /// <returns>機台實時生產數據匯總記錄</returns> public List<MachineRealtimeSummary> GetMacRealtimeSummaries(MachineRealtimeSummary searchInfo) { if (searchInfo == null) { return null; } return GetSummaries(searchInfo); }
/// <summary> /// 實時上傳機台生產數據 /// </summary> void UploadMachineRealtimeProductionData() { if (this.MachineShiftDataInformation == null || this.MachineShiftDataInformation.sifo_cMachineNO.Trim()=="") { return; } if (this.MachineRuningDataInformation == null) { return; } MachineRealtimeSummary prodcutionData = new MachineRealtimeSummary(); prodcutionData.MachineNO = this.MachineShiftDataInformation.sifo_cMachineNO; prodcutionData.MachineIP = this.MachineRuningDataInformation.MachineIP; prodcutionData.MachineStatusCode = this.MachineRuningDataInformation.MachineStatusNo; prodcutionData.SystemVersion = this.MachineRuningDataInformation.SystemVersion; prodcutionData.DutyCaptain = this.MachineShiftDataInformation.DutyCaptain; prodcutionData.MachineStaffsDesc = this.GetMachineStaffs(this.MachineShiftDataInformation.StaffInfos); if (this.ProjectProductionDataInformation != null) { this.SetProductionDataByProject(this.ProjectProductionDataInformation, prodcutionData); } try { this.m_objSynDataBLL.SaveMacRealtimeSummaries(prodcutionData); } catch (Exception ex) { this.OnException("ProductionDataSynchronismManager", "UploadMachineRealtimeProductionData", ex.Message); } }
/// <summary> /// 設置工程信息 /// </summary> /// <param name="projectData"></param> /// <param name="prodcutionData"></param> /// <returns></returns> MachineRealtimeSummary SetProductionDataByProject(ProjectProductionData projectData, MachineRealtimeSummary prodcutionData) { if (projectData == null) { return null; } prodcutionData.PPJID = projectData.ProjectMachineProductionID; prodcutionData.ProjectNo = projectData.ProjectBaseData.swl_cProjectNO; prodcutionData.SONo = projectData.ProjectBaseData.swl_cSONO; prodcutionData.ItemNo = projectData.ProjectBaseData.swl_cItemNO; prodcutionData.ItemName = projectData.ProjectBaseData.swl_cItemName; prodcutionData.Edition = projectData.ProjectBaseData.swl_cEdition; prodcutionData.PlanProdQty = projectData.ProjectBaseData.swl_iPlanProdQty; prodcutionData.ProjBeginTime = projectData.ProjectMProductionData.ppj_dProjBeginTime; prodcutionData.ProdBeginTime = projectData.ProjectMProductionData.ppj_dProdBeginTime; prodcutionData.ProdActualQty = projectData.ProjectMProductionData.ppj_iActualProdNum + projectData.ShiftProjectData.ActualProdQty; prodcutionData.PrepareBeginTime = projectData.ProjectMProductionData.ppj_dProjBeginTime; prodcutionData.PrepareEndTime = projectData.ProjectMProductionData.ppj_dProdBeginTime; string prepareItems = string.Empty; if (projectData.PrepareJobItems != null && projectData.PrepareJobItems.Count > 0) { for (int i = 0; i < projectData.PrepareJobItems.Count; i++) { ProjectPrepareJobItem prepareItem=projectData.PrepareJobItems[i]; if (prepareItem != null) { if (prepareItems.Trim().Length > 0) { prepareItems += ","; } prepareItems += prepareItem.ItemName.Trim(); } } } prodcutionData.PrepareItemsDesc = prepareItems; prodcutionData.PrepareCountdown = projectData.ShiftProjectData.PrepareCountdown; //停機次數 int machineHaltTimes = projectData.ProjectMProductionData.ppj_iStopTimes; if (projectData.ShiftProjectData.MachineHaltRecords != null) { machineHaltTimes += projectData.ShiftProjectData.MachineHaltRecords.Count; } prodcutionData.MachineHaltTimes = machineHaltTimes; //停機時間 int machineHaltTime = projectData.ProjectMProductionData.ppj_iStopTime; machineHaltTime += this.CountProjectStopTime(projectData.ShiftProjectData.MachineHaltRecords); prodcutionData.MachineHaltDuration = machineHaltTime; return prodcutionData; }
/// <summary> /// 獲取指定的實時生產數據的HTML內容 /// </summary> /// <param name="MacSummary">機台實時生產數據記錄</param> /// <param name="viewMode">顯示模式</param> /// <param name="iTableWidth">信息表格寬度</param> /// <param name="iTableHeight">信息表格高度</param> /// <returns></returns> private string GetSummaryViewHtmlStr(MachineRealtimeSummary MacSummary, EnmViewMode viewMode, out int iTableWidth, out int iTableHeight) { iTableWidth = 0; iTableHeight = 0; if (MacSummary == null) { return string.Empty; } if (string.IsNullOrEmpty(MacSummary.MachineNO)) { return string.Empty; } string strMacStatus = MacSummary.MachineStatus;//機台狀態 string strMacNo = MacSummary.MachineNO.Trim();//機台編號 string strMacName = MacSummary.MachineName;//機台名稱 string strCssType = GetSummaryViewCss(MacSummary.MachineStatusCode);//樣式名稱 string strItemName = "無任務";//生產內容 string strBeginTime = string.Empty;//工程開始時間 string strBeginTimeSpan = string.Empty;//工程開始持續時間 string strLastTimeSpan = string.Empty;//當前狀態持續時間 int iSubFormWidth = 0; int iSubFormHeight = 0; if (!string.IsNullOrEmpty(MacSummary.ItemName)) { strItemName = MacSummary.ItemName.Trim(); } if (MacSummary.ProjBeginTime != null) { strBeginTime = MacSummary.ProjBeginTimeDesc; strBeginTimeSpan = Common.Util.DateUtil.Convert((DateTime.Now - MacSummary.ProjBeginTime.Value).TotalSeconds); } else { strBeginTimeSpan = "未知"; } if (MacSummary.StatusChangeTime != null) { strLastTimeSpan = Common.Util.DateUtil.Convert((DateTime.Now - MacSummary.StatusChangeTime.Value).TotalSeconds); } else { strLastTimeSpan = "未知"; } string strTbHTML = string.Empty; strTbHTML = "<table class='tbMainProfile' ' cellpadding='0' cellspacing='0' "; if (viewMode == EnmViewMode.SmallView) { iSubFormWidth = 600; iSubFormHeight = 480; iTableWidth = DataConverter.GetSmallViewTableWidth(); iTableHeight = DataConverter.GetSmallViewTableHeight(); string strJS = GetJSScript_OpenPage(strMacName, "MacInfoDetail.aspx?MacNo=" + strMacNo, iSubFormWidth, iSubFormHeight); strTbHTML += " width='" + iTableWidth.ToString() + "px' >"; strTbHTML += "<tr><td align='center' class='tdMacNo' onclick='" + strJS + "'>" + strMacNo + "</td></tr>"; strTbHTML += "<tr><td align='center'>"; strTbHTML += "<table cellpadding='0' cellspacing='0' class='" + strCssType + "' "; strTbHTML += " height='" + iTableHeight.ToString() + "px'"; strTbHTML += " style='font-size: 14.25px;color:blue;'' width='100%'>"; strTbHTML += "<tr align='center'><td>" + strMacStatus + "</td></tr>"; strTbHTML += "<tr align='center'><td>" + strLastTimeSpan + "</td></tr>"; strTbHTML += "</table></td></tr>"; } else if (viewMode == EnmViewMode.LargeView) { iSubFormWidth = 600; iSubFormHeight = 620; iTableWidth = DataConverter.GetLargeViewTableWidth(); iTableHeight = DataConverter.GetLargeViewTableHeight(); string strJS = GetJSScript_OpenPage(strMacName, "MacSummaryView.aspx?MacNo=" + strMacNo, iSubFormWidth, iSubFormHeight); strTbHTML += " width='" + iTableWidth.ToString() + "px' >"; strTbHTML += "<tr align='center'><td class='tdMacNo' onclick='" + strJS + "'>" + MacSummary.MachineName.Trim() + "(" + strMacNo + ")</td></tr>"; strTbHTML += "<tr align='center'><td><table cellpadding='0' cellspacing='0' class='" + strCssType + "' "; strTbHTML += " height='" + iTableHeight.ToString() + "px'"; strTbHTML += " style='font-size: 14.25px;color:blue;'' width='100%'>"; strTbHTML += "<tr><td align='right' style='width:25%;'>工程開始 </td><td align='left'>" + strBeginTime + "</td></tr>"; strTbHTML += "<tr><td align='right'>工程單編號 </td><td align='left'>" + MacSummary.SONo + "</td></tr>"; strTbHTML += "<tr><td align='right'>印張編號 </td><td align='left'>" + MacSummary.ItemNo + "</td></tr>"; strTbHTML += "<tr><td align='right'>生產數量 </td><td align='left'>" + MacSummary.ProdActualQty.ToString() + "/" + MacSummary.PlanProdQty.ToString() + "</td></tr>";//現時數量/要求生產數量 strTbHTML += "<tr><td align='right'>狀態時間 </td><td align='left'>" + strMacStatus + "/" + strBeginTimeSpan + "</td></tr>";//現時狀態/該狀態從工程開始至目前為止累計的分鐘數 strTbHTML += "<tr><td align='right'>產品名稱 </td><td align='left'>" + MacSummary.ProdName + "</td></tr>"; strTbHTML += "<tr><td align='right'>產品內容 </td><td align='left'>" + strItemName + "</td></tr>"; strTbHTML += "<tr><td align='right'>持續時間 </td><td align='left'>" + strLastTimeSpan + "</td></tr>";//例如停機發生多次,只顯示今次發生的狀態到今刻的時間 strTbHTML += "</table></td></tr>"; } strTbHTML += "</table>"; return strTbHTML; }