Пример #1
0
        protected void btnOK_Click(object sender, EventArgs e)
        {
            try
            {
                EquipmentInfo equipmentData = EquipmentInfo.GetEquipmentByName(mEQP.EquipmentName);

                if (mEQP.Tag != equipmentData.Tag)
                {
                    throw new RuleCimesException(TextMessage.Error.T00747(""));
                }

                string             EqpID          = ciEquipment.Must(lblEquipment);
                string             Reason         = csReason.Must(lblReasonCode).Value;
                EquipmentStateInfo equipmentState = EquipmentStateInfo.GetEquipmentStateByState(ddlNewState.Must(lblNewState).Text);

                var txnStamp = new TransactionStamp(User.Identity.Name, ProgramRight, ProgramRight, this.ApplicationName);
                var rcData   = csReason.GetBusinessReason().CategoryReason;
                txnStamp.CategoryReasonCode = rcData;
                txnStamp.Description        = ttbDesc.Text.Trim();

                #region 檢查是否有設定機台變更狀態警報,若有,則發送警報
                //使用Function取得ALM設定,可彈性使用
                //取得機台狀態警報設定,預設是抓取系統資料設定[EquipStateAlarm]
                AlarmTypeInfo AlarmType = RuleExtendManager.GetEquipmentChangeStateAlarm(equipmentData, ddlNewState.Must(lblNewState).Text);
                string        ALMsg     = @"[Subject:{0}][Content:{1}:{2};   {3}:{4};   {5}:{6};   {7}:{8};   {9}:{10}]";
                if (AlarmType != null)
                {
                    // "[Content:TEST][Subject:TEST]"
                    ALMsg = string.Format(ALMsg, ProgramInformationBlock1.Caption, lblEquipment.Text, mEQP.EquipmentName, lblOldState.Text, mEQP.CurrentState, lblNewState.Text, equipmentState.State, lblReasonCode.Text, rcData.Reason, lblDescription.Text, txnStamp.Description);
                }
                #endregion

                using (var cts = CimesTransactionScope.Create())
                {
                    EMSTransaction.ChangeState(equipmentData, equipmentState, txnStamp);
                    RuleExtendManager.EquipmentTxnEnd(equipmentData);
                    cts.Complete();
                }

                #region 發送警報
                if (AlarmType != null)
                {
                    AlarmService WebServiceALM = new AlarmService();

                    string url = "http://" + Request.Url.Host + Request.ApplicationPath + "/ALM/Services/AlarmService.asmx";

                    WebServiceALM.Url = url;
                    string ReturnMsg = WebServiceALM.LaunchAlarm(AlarmType.GroupRights, AlarmType.TYPE, ALMsg, txnStamp.RecordTime, "UI", User.Identity.Name);
                }
                #endregion

                Response.Redirect(ciMes.Security.UserSetting.GetPreviousListPage(this), false);
            }
            catch (Exception ex)
            {
                HandleError(ex);
            }
        }
Пример #2
0
        private void LoadControlDefault()
        {
            ttbDesc.Enabled = false;
            csReason.Setup(ProgramRight, "ALL", "Default", ReasonMode.Category);
            if (csReason.IsNull)
            {
                throw new RuleCimesException(TextMessage.Error.T00642(ProgramRight, "ALL", "Default", ReasonMode.Category.ToString()));
            }

            if (ttbOldState.Text.Trim() != "")
            {
                #region P_GET_CHAGNESTATE_EQPSTATE
                List <EquipmentStateInfo> eqpState = RuleExtendManager.GetChangeStateEqpState(ttbOldState.Text.Trim());
                eqpState.Sort(p => p.State);
                #endregion
                ddlNewState.DataSource = eqpState;
            }

            ddlNewState.DataTextField  = "State";
            ddlNewState.DataValueField = "State";
            ddlNewState.DataBind();
            ddlNewState.Items.Insert(0, string.Empty);
            ddlNewState.Enabled = false;

            if (Request["NewStatus"].IsNullOrEmpty())
            {
                //[01597]傳入的參數{0}為空值,無法提供所需數據!
                throw new RuleCimesException(TextMessage.Error.T01597("NewStatus"));
            }
            var item = ddlNewState.Items.FindByValue(Request["NewStatus"].ToString());
            if (item != null)
            {
                ddlNewState.ClearSelection();
                item.Selected = true;
            }
        }