Esempio n. 1
0
        /// <summary>
        /// 结束流消息(流程已经走完)
        /// </summary>
        /// <param name="msgContent">消息内容</param>
        void EndFlowMessage(string msgContent)
        {
            Flow_BillFlowMessage msg = m_billFlowMsg.GetMessage(BasicInfo.LoginID, labelTitle.Text, m_strBillID);

            if (msg == null)
            {
                return;
            }

            m_billFlowMsg.EndMessage(BasicInfo.LoginID, msg.序号, msgContent);
            SendFinishedFlagToMessagePromptForm(m_strBillID);

            #region 发送知会消息

            StringBuilder sb = new StringBuilder();
            sb.AppendFormat("{0} 号自制件工装报检已经处理完毕, ", msg.单据流水号);

            List <string> noticeRoles = new List <string>();

            noticeRoles.Add(CE_RoleEnum.工装管理员.ToString());

            List <string> noticeUsers = new List <string>();

            noticeUsers.Add(msg.初始发起方用户编码);

            m_billMessageServer.NotifyMessage(msg.单据类型, msg.单据号, sb.ToString(), BasicInfo.LoginID, noticeRoles, noticeUsers);

            #endregion 发送知会消息
        }
Esempio n. 2
0
        /// <summary>
        /// 传递流消息(走流程)
        /// </summary>
        /// <param name="msgContent">消息内容</param>
        /// <param name="receivedRole">接收方角色</param>
        void PassFlowMessage(string msgContent, CE_RoleEnum receivedRole)
        {
            try
            {
                Flow_BillFlowMessage msg = m_billFlowMsg.GetMessage(BasicInfo.LoginID, labelTitle.Text, txtBill_ID.Text);

                if (msg == null)
                {
                    return;
                }

                msg.发起方用户编码 = BasicInfo.LoginID;
                msg.发起方消息   = msgContent;
                msg.接收方类型   = BillFlowMessage_ReceivedUserType.角色.ToString();
                msg.接收方     = receivedRole.ToString();

                msg.期望的处理完成时间 = null;

                m_billFlowMsg.ContinueMessage(BasicInfo.LoginID, msg);
                SendFinishedFlagToMessagePromptForm(txtBill_ID.Text);
            }
            catch (Exception exce)
            {
                Console.WriteLine(exce.Message);
            }
        }
        /// <summary>
        /// 回退流消息
        /// </summary>
        /// <param name="message">消息内容</param>
        /// <returns>操作是否成功的标志</returns>
        public bool RebackFlowMessage(string billNo, string message)
        {
            if (m_billType == null || m_billType == "")
            {
                m_billType = GetBillType(billNo);
            }

            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(m_billType), "单据类别不能为空");
            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(billNo), "单据号不能为空");
            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(message), "消息不能为空");

            try
            {
                Flow_BillFlowMessage msg = GetMessage(billNo);

                if (msg != null)
                {
                    m_billFlowMsg.RebackMessage(BasicInfo.LoginID, msg.序号, message);

                    SendFinishedFlagToMessagePromptForm(billNo);
                }

                return(true);
            }
            catch (Exception exce)
            {
                m_logManagement.WriteException(exce.Message + "\t\r" + exce.StackTrace, out m_error);
                return(false);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 结束流消息(流程已经走完)
        /// </summary>
        /// <param name="msgContent">消息内容</param>
        void EndFlowMessage(string msgContent)
        {
            try
            {
                Flow_BillFlowMessage msg = m_billFlowMsg.GetMessage(BasicInfo.LoginID, labelTitle.Text, txtBill_ID.Text);

                if (msg == null)
                {
                    return;
                }

                m_billFlowMsg.EndMessage(BasicInfo.LoginID, msg.序号, msgContent);
                SendFinishedFlagToMessagePromptForm(txtBill_ID.Text);

                #region 发送知会消息

                List <string> noticeUsers = new List <string>();
                noticeUsers.Add(msg.初始发起方用户编码);

                m_billMessageServer.NotifyMessage(msg.单据类型, msg.单据号, msgContent, BasicInfo.LoginID, null, noticeUsers);

                #endregion 发送知会消息
            }
            catch (Exception exce)
            {
                Console.WriteLine(exce.Message);
            }
        }
        /// <summary>
        /// 结束流消息(流程已经走完)
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <param name="msgContent">消息内容</param>
        void EndFlowMessage(string billNo, string msgContent)
        {
            Flow_BillFlowMessage msg = m_billFlowMsg.GetMessage(BasicInfo.LoginID, labelTitle.Text, billNo);

            if (msg == null)
            {
                return;
            }

            m_billFlowMsg.EndMessage(BasicInfo.LoginID, msg.序号, msgContent);
            SendFinishedFlagToMessagePromptForm(billNo);

            #region 发送知会消息

            string content = string.Format("{0} 号采购退货单已经处理完毕", msg.单据流水号);

            List <string> noticeRoles = new List <string>();

            noticeRoles.AddRange(m_billMessageServer.GetDeptDirectorRoleName(
                                     dataGridView1.SelectedRows[0].Cells["申请部门编码"].Value.ToString()));
            noticeRoles.Add(CE_RoleEnum.会计.ToString());
            noticeRoles.Add(CE_RoleEnum.质量总监.ToString());
            noticeRoles.Add(CE_RoleEnum.质控主管.ToString());
            noticeRoles.Add(CE_RoleEnum.质量工程师.ToString());

            m_billMessageServer.NotifyMessage(msg.单据类型, msg.单据号, content, BasicInfo.LoginID, noticeRoles, null);

            #endregion 发送知会消息
        }
        /// <summary>
        /// 发送新的流消息
        /// </summary>
        /// <param name="bill">单据内容</param>
        void SendNewFlowMessage(string billNo)
        {
            Flow_BillFlowMessage msg = new Flow_BillFlowMessage();

            m_billMessageServer.SendNewFlowMessage(billNo, string.Format("{0}号物料扣货单已提交,请上级领导审核", billNo),
                                                   BillFlowMessage_ReceivedUserType.角色,
                                                   m_billMessageServer.GetSuperior(CE_RoleStyleType.级领导, BasicInfo.LoginID));
        }
        /// <summary>
        /// 发送传递流消息
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <param name="message">单据消息</param>
        /// <param name="receivedUserType">接收用户类别,角色或用户</param>
        /// <param name="receiver">接收消息的角色或用户组</param>
        /// <param name="lstAdditionalInfo">
        /// 附加信息,用于重定向及数据定位等功能(列表第1个位置始终为重定向单据的单据类型,列表第2个位置始终为重定向单据的单据号)
        /// </param>
        public void SendMessage(string billNo, string message, BillFlowMessage_ReceivedUserType receivedUserType,
                                List <string> receiver, List <string> lstAdditionalInfo)
        {
            if (m_billType == null || m_billType == "")
            {
                m_billType = GetBillType(billNo);
            }

            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(m_billType), "单据类别不能为空");
            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(billNo), "单据号不能为空");
            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(message), "消息不能为空");

            try
            {
                Flow_BillFlowMessage msg = GetMessage(billNo);

                if (msg != null)
                {
                    msg.发起方用户编码 = BasicInfo.LoginID;
                    msg.发起方消息   = message;
                    msg.接收方类型   = receivedUserType.ToString();
                    msg.接收方     = StapleFunction.CreateSplitString(",", receiver);

                    msg.期望的处理完成时间 = null;

                    InitAdditionalInfo(ref msg, lstAdditionalInfo);

                    m_billFlowMsg.ContinueMessage(BasicInfo.LoginID, msg);

                    SendFinishedFlagToMessagePromptForm(billNo);
                }
                else
                {
                    msg = new Flow_BillFlowMessage();

                    msg.初始发起方用户编码 = BasicInfo.LoginID;
                    msg.单据号       = billNo;
                    msg.单据类型      = m_billType;
                    msg.单据流水号     = billNo;
                    msg.接收方类型     = receivedUserType.ToString();
                    msg.单据状态      = BillStatus.等待处理.ToString();
                    msg.发起方消息     = message;
                    msg.接收方       = StapleFunction.CreateSplitString(",", receiver);

                    msg.期望的处理完成时间 = null;

                    InitAdditionalInfo(ref msg, lstAdditionalInfo);

                    m_billFlowMsg.SendRequestMessage(BasicInfo.LoginID, msg);
                }
            }
            catch (Exception exce)
            {
                m_logManagement.WriteException(exce.Message + "\t\r" + exce.StackTrace, out m_error);
            }
        }
Esempio n. 8
0
        /// <summary>
        /// 销毁消息
        /// </summary>
        /// <param name="billNo">单据号</param>
        void DestroyMessage(string billNo)
        {
            Flow_BillFlowMessage msg = m_billFlowMsg.GetMessage(BasicInfo.LoginID, labelTitle.Text, billNo);

            if (msg == null)
            {
                return;
            }

            m_billFlowMsg.DestroyMessage(BasicInfo.LoginID, msg.序号);
            SendFinishedFlagToMessagePromptForm(billNo);
        }
Esempio n. 9
0
        /// <summary>
        /// 添加需重新打印的单据
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAdd_Click(object sender, EventArgs e)
        {
            if (txtBill_ID.Text == string.Empty)
            {
                MessageDialog.ShowPromptMessage("请填写单据号!");
                return;
            }

            if (txtPrintRemark.Text == string.Empty)
            {
                MessageDialog.ShowPromptMessage("请填写重打原因!");
                return;
            }

            DataTable dt = m_serverPrintManagement.GetPrintBillTableByDJH(txtBill_ID.Text);

            if (dt.Rows.Count > 0)
            {
                S_AgainPrintBillTable againprint = new S_AgainPrintBillTable();

                againprint.Bill_ID                  = txtBill_ID.Text;
                againprint.PrintPersonnelCode       = BasicInfo.LoginID;
                againprint.PrintPersonnelName       = BasicInfo.LoginName;
                againprint.PrintPersonnelDepartment = BasicInfo.DeptName;
                againprint.PrintDateTime            = ServerTime.Time;
                againprint.Remark = txtPrintRemark.Text;

                bool b = m_serverPrintManagement.Add_S_AgainPrintBillTable(againprint, out m_strErr);

                if (b)
                {
                    MessageBox.Show("提交成功!等待主管审核");

                    Flow_BillFlowMessage msg = m_billFlowMsg.GetMessage(BasicInfo.LoginID, labelTitle.Text, txtBill_ID.Text);

                    if (msg != null)
                    {
                        m_billFlowMsg.DestroyMessage(BasicInfo.LoginID, msg.序号);
                    }

                    SendNewFlowMessage(txtBill_ID.Text);
                }
                else
                {
                    MessageDialog.ShowErrorMessage(m_strErr);
                }
            }
            else
            {
                MessageDialog.ShowErrorMessage("单据号不正确 或 此单据号还没有打印过!");
            }
        }
        /// <summary>
        /// 获取消息
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <returns>成功返回获取到的消息,失败返回null</returns>
        private Flow_BillFlowMessage GetMessage(string billNo)
        {
            if (m_billType == null || m_billType == "")
            {
                m_billType = GetBillType(billNo);
            }

            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(m_billType), "单据类别不能为空");
            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(billNo), "单据号不能为空");

            try
            {
                Flow_BillFlowMessage msg = m_billFlowMsg.GetMessage(BasicInfo.LoginID, m_billType, billNo);

                if (msg == null)
                {
                    m_logManagement.WriteException(string.Format("没有找到对应的单据消息,类型【{0}】,单据号【{1}】,操作人【{2},{3}】",
                                                                 m_billType, billNo, BasicInfo.LoginID, BasicInfo.LoginName), out m_error);
                }

                //if (msg == null)
                //{
                //    StackTrace st = new StackTrace();

                //    for (int i = 0; i < st.FrameCount; i++)
                //    {
                //        if (st.GetFrame(st.FrameCount - 1 - i).GetMethod().Name.Contains("SaveData"))
                //        {
                //            return null;
                //        }
                //    }

                //    m_logManagement.WriteException(
                //     string.Format("没有找到对应的单据消息:{0},{1}", BasicInfo.LoginID, billNo), out m_error);

                //    return null;
                //}

                return(msg);
            }
            catch (Exception exce)
            {
                m_logManagement.WriteException(exce.Message + "\t\r" + exce.StackTrace, out m_error);
                return(null);
            }
        }
Esempio n. 11
0
        /// <summary>
        /// 发送新的流消息
        /// </summary>
        /// <param name="billNo">单据编号</param>
        /// <param name="role">消息发送到的角色</param>
        /// <param name="msgContent">消息内容</param>
        void SendNewFlowMessage(string billNo, CE_RoleEnum role, string msgContent)
        {
            Flow_BillFlowMessage msg = new Flow_BillFlowMessage();

            msg.初始发起方用户编码 = BasicInfo.LoginID;
            msg.单据号       = billNo;
            msg.单据类型      = labelTitle.Text;
            msg.单据流水号     = billNo;
            msg.接收方类型     = BillFlowMessage_ReceivedUserType.角色.ToString();
            msg.单据状态      = BillStatus.等待处理.ToString();
            msg.发起方消息     = msgContent;

            msg.接收方 = role.ToString();

            msg.期望的处理完成时间 = null;
            m_billFlowMsg.SendRequestMessage(BasicInfo.LoginID, msg);
        }
Esempio n. 12
0
        /// <summary>
        /// 传递流消息(走流程)
        /// </summary>
        /// <param name="msgContent">消息内容</param>
        /// <param name="receivedRole">接收方角色</param>
        void PassFlowMessage(string msgContent, CE_RoleEnum receivedRole)
        {
            Flow_BillFlowMessage msg = m_billFlowMsg.GetMessage(BasicInfo.LoginID, labelTitle.Text, m_strBillID);

            if (msg == null)
            {
                return;
            }

            msg.发起方用户编码 = BasicInfo.LoginID;
            msg.发起方消息   = msgContent;
            msg.接收方类型   = BillFlowMessage_ReceivedUserType.角色.ToString();
            msg.接收方     = receivedRole.ToString();

            msg.期望的处理完成时间 = null;
            m_billFlowMsg.ContinueMessage(BasicInfo.LoginID, msg);
            SendFinishedFlagToMessagePromptForm(m_strBillID);
        }
Esempio n. 13
0
        /// <summary>
        /// 回退流消息
        /// </summary>
        /// <param name="msgContent">消息内容</param>
        void RebackFlowMessage(string msgContent)
        {
            try
            {
                Flow_BillFlowMessage msg = m_billFlowMsg.GetMessage(BasicInfo.LoginID, labelTitle.Text, txtBill_ID.Text);

                if (msg == null)
                {
                    return;
                }

                m_billFlowMsg.RebackMessage(BasicInfo.LoginID, msg.序号, msgContent);
                SendFinishedFlagToMessagePromptForm(txtBill_ID.Text);
            }
            catch (Exception exce)
            {
                Console.WriteLine(exce.Message);
            }
        }
        /// <summary>
        /// 发送新的流消息
        /// </summary>
        /// <param name="bill">单据内容</param>
        void SendNewFlowMessage(string billNo)
        {
            Flow_BillFlowMessage msg = new Flow_BillFlowMessage();

            msg.初始发起方用户编码 = BasicInfo.LoginID;
            msg.单据号       = billNo;
            msg.单据类型      = labelTitle.Text;
            msg.单据流水号     = billNo;
            msg.接收方类型     = BillFlowMessage_ReceivedUserType.角色.ToString();
            msg.接收方       = CE_RoleEnum.会计.ToString();
            msg.单据状态      = BillStatus.等待处理.ToString();

            msg.发起方消息 = string.Format("{0}号自制件退货单已提交,请财务审核",
                                      billNo);

            msg.期望的处理完成时间 = null;

            m_billFlowMsg.SendRequestMessage(BasicInfo.LoginID, msg);
        }
Esempio n. 15
0
        /// <summary>
        /// 传递流消息(走流程)
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <param name="msgContent">消息内容</param>
        /// <param name="receivedRole">接收方角色</param>
        void PassFlowMessage(string billNo, string msgContent, CE_RoleEnum receivedRole)
        {
            Flow_BillFlowMessage msg = m_billFlowMsg.GetMessage(BasicInfo.LoginID, labelTitle.Text, billNo);

            if (msg == null)
            {
                return;
            }

            msg.发起方用户编码 = BasicInfo.LoginID;
            msg.发起方消息   = string.Format("【用途】:{0}  【退库类别】:{1} 【申请人】:{2}  ※※※ 等待【{3}】处理",
                                        txtPurpose.Text, cmbType.Text, txtProposer.Text, receivedRole.ToString());
            msg.接收方类型 = BillFlowMessage_ReceivedUserType.角色.ToString();
            msg.接收方   = receivedRole.ToString();

            msg.期望的处理完成时间 = null;
            m_billFlowMsg.ContinueMessage(BasicInfo.LoginID, msg);

            SendFinishedFlagToMessagePromptForm(billNo);
        }
        /// <summary>
        /// 销毁消息
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <returns>操作是否成功的标志</returns>
        public bool DestroyMessage(string billNo)
        {
            if (m_billType == null || m_billType == "")
            {
                m_billType = GetBillType(billNo);
            }

            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(m_billType), "单据类别不能为空");
            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(billNo), "单据号不能为空");

            try
            {
                Flow_BillFlowMessage msg = GetMessage(billNo);

                if (msg != null)
                {
                    m_billFlowMsg.DestroyMessage(BasicInfo.LoginID, msg.序号);
                }

                DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

                //添加删除单据的记录 CJB 2012.3.19
                BASE_DeleteBill lnqDeleteBill = new BASE_DeleteBill();

                lnqDeleteBill.Bill_ID    = billNo;
                lnqDeleteBill.DeleteTime = ServerTime.Time;
                lnqDeleteBill.WorkID     = BasicInfo.LoginID;

                ctx.BASE_DeleteBill.InsertOnSubmit(lnqDeleteBill);
                ctx.SubmitChanges();

                SendFinishedFlagToMessagePromptForm(billNo);

                return(true);
            }
            catch (Exception exce)
            {
                m_logManagement.WriteException(exce.Message + "\t\r" + exce.StackTrace, out m_error);
                return(false);
            }
        }
Esempio n. 17
0
        /// <summary>
        /// 发送新的流消息
        /// </summary>
        /// <param name="bill">单据内容</param>
        void SendNewFlowMessage(S_HomemadePartBill bill)
        {
            Flow_BillFlowMessage msg = new Flow_BillFlowMessage();

            msg.初始发起方用户编码 = BasicInfo.LoginID;
            msg.单据号       = bill.Bill_ID;
            msg.单据类型      = labelTitle.Text;
            msg.单据流水号     = bill.Bill_ID;
            msg.接收方类型     = BillFlowMessage_ReceivedUserType.角色.ToString();
            msg.单据状态      = BillStatus.等待处理.ToString();

            StringBuilder sb = new StringBuilder();

            sb.AppendFormat("物品【{0}】,批次号【{1}】  ※※※ 等待【检验员】处理", txtName.Text, txtBatchNo.Text);

            msg.发起方消息 = sb.ToString();
            msg.接收方   = CE_RoleEnum.自制件检验组长.ToString();

            msg.期望的处理完成时间 = null;

            m_billFlowMsg.SendRequestMessage(BasicInfo.LoginID, msg);
        }
        /// <summary>
        /// 传递流消息到多个角色或用户(走流程)
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <param name="message">消息内容</param>
        /// <param name="receivedUserType">接收方类别,角色或用户</param>
        /// <param name="receiver">接收方代码数组,角色编码或用户编码</param>
        /// <param name="lstAdditionalInfo">
        /// 附加信息,用于重定向及数据定位等功能(列表第1个位置始终为重定向单据的单据类型,列表第2个位置始终为重定向单据的单据号)
        /// </param>
        /// <returns>操作是否成功的标志</returns>
        public bool PassFlowMessage(string billNo, string message, BillFlowMessage_ReceivedUserType receivedUserType,
                                    List <string> receiver, List <string> lstAdditionalInfo)
        {
            if (m_billType == null || m_billType == "")
            {
                m_billType = GetBillType(billNo);
            }

            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(m_billType), "单据类别不能为空");
            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(billNo), "单据号不能为空");
            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(message), "消息不能为空");

            try
            {
                Flow_BillFlowMessage msg = GetMessage(billNo);

                if (msg != null)
                {
                    msg.发起方用户编码 = BasicInfo.LoginID;
                    msg.发起方消息   = message;
                    msg.接收方类型   = receivedUserType.ToString();
                    msg.接收方     = StapleFunction.CreateSplitString(",", receiver);

                    msg.期望的处理完成时间 = null;

                    InitAdditionalInfo(ref msg, lstAdditionalInfo);

                    m_billFlowMsg.ContinueMessage(BasicInfo.LoginID, msg);

                    SendFinishedFlagToMessagePromptForm(billNo);
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Esempio n. 19
0
        /// <summary>
        /// 发送新的流消息
        /// </summary>
        /// <param name="billNo">单据内容</param>
        void SendNewFlowMessage(string billNo)
        {
            try
            {
                string[] roleCodes = m_billMessageServer.GetSuperior(CE_RoleStyleType.级领导, BasicInfo.LoginID).ToArray();

                Flow_BillFlowMessage msg = new Flow_BillFlowMessage();
                msg.初始发起方用户编码 = BasicInfo.LoginID;
                msg.单据号       = billNo;
                msg.单据类型      = labelTitle.Text;
                msg.单据流水号     = billNo;
                msg.接收方类型     = BillFlowMessage_ReceivedUserType.角色.ToString();
                msg.单据状态      = BillStatus.等待处理.ToString();

                msg.发起方消息 = string.Format("【用途】:{0}  【退库类别】:{1} 【申请人】:{2}  ※※※ 等待【上级领导】处理",
                                          txtPurpose.Text, cmbType.Text, txtProposer.Text);

                msg.接收方 = "";

                if (roleCodes.Count() > 0)
                {
                    foreach (string role in roleCodes)
                    {
                        msg.接收方 += role + ",";
                    }
                }

                msg.接收方 = msg.接收方.Substring(0, msg.接收方.Length - 1);

                msg.期望的处理完成时间 = null;

                m_billFlowMsg.SendRequestMessage(BasicInfo.LoginID, msg);
            }
            catch (Exception exce)
            {
                MessageDialog.ShowErrorMessage(exce.Message);
            }
        }
        /// <summary>
        /// 初始化指定单据信息的附加数据
        /// </summary>
        /// <param name="msg">要初始化附加数据的单据信息</param>
        /// <param name="lstAdditionalInfo">附加信息值列表</param>
        private void InitAdditionalInfo(ref Flow_BillFlowMessage msg, List <string> lstAdditionalInfo)
        {
            msg.附加信息1 = "";
            msg.附加信息2 = "";
            msg.附加信息3 = "";
            msg.附加信息4 = "";
            msg.附加信息5 = "";
            msg.附加信息6 = "";
            msg.附加信息7 = "";
            msg.附加信息8 = "";

            if (lstAdditionalInfo != null)
            {
                for (int i = 1; i <= lstAdditionalInfo.Count; i++)
                {
                    if (lstAdditionalInfo[i - 1] == null)
                    {
                        lstAdditionalInfo[i - 1] = "";
                    }
                    else
                    {
                        lstAdditionalInfo[i - 1] = lstAdditionalInfo[i - 1].Trim();
                    }

                    GlobalObject.GeneralFunction.SetValue(msg, "附加信息" + i.ToString(), lstAdditionalInfo[i - 1]);
                }

                // 附加信息1始终为重定向单据的单据类型,附加信息2始终为重定向单据的单据号
                if (lstAdditionalInfo.Count >= 2)
                {
                    if (GlobalObject.GeneralFunction.IsNullOrEmpty(lstAdditionalInfo[0]) && !GlobalObject.GeneralFunction.IsNullOrEmpty(lstAdditionalInfo[1]))
                    {
                        lstAdditionalInfo[0] = GetBillType(lstAdditionalInfo[1]);
                    }
                }
            }
        }
Esempio n. 21
0
        /// <summary>
        /// 重新窗体消息处理函数
        /// </summary>
        /// <param name="m">窗体消息</param>
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
            //接收自定义消息,放弃未提交的单据号
            case WndMsgSender.CloseMsg:
                break;

            case WndMsgSender.PositioningMsg:
                WndMsgData msg      = new WndMsgData();     //这是创建自定义信息的结构
                Type       dataType = msg.GetType();

                msg = (WndMsgData)m.GetLParam(dataType);    //这里获取的就是作为LParam参数发送来的信息的结构

                DataTable dtMessage = UniversalFunction.PositioningOneRecord(msg.MessageContent, "重新打印");

                if (dtMessage.Rows.Count == 0)
                {
                    Flow_BillFlowMessage billmsg = m_billFlowMsg.GetMessage(BasicInfo.LoginID, "重新打印", msg.MessageContent);

                    m_billFlowMsg.DestroyMessage(BasicInfo.LoginID, billmsg.序号);

                    MessageDialog.ShowPromptMessage("未找到相关记录");
                }
                else
                {
                    dgvShowInfo.DataSource       = dtMessage;
                    dgvShowInfo.Rows[0].Selected = true;
                }

                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
        /// <summary>
        /// 发送新的流消息
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <param name="message">单据消息</param>
        /// <param name="receivedUserType">接收用户类别,角色或用户</param>
        /// <param name="receiver">接收消息的角色或用户组</param>
        /// <param name="lstAdditionalInfo">
        /// 附加信息,用于重定向及数据定位等功能(列表第1个位置始终为重定向单据的单据类型,列表第2个位置始终为重定向单据的单据号)
        /// </param>
        public void SendNewFlowMessage(string billNo, string message, BillFlowMessage_ReceivedUserType receivedUserType,
                                       List <string> receiver, List <string> lstAdditionalInfo)
        {
            if (m_billType == null || m_billType == "")
            {
                m_billType = GetBillType(billNo);
            }

            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(m_billType), "单据类别不能为空");
            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(billNo), "单据号不能为空");
            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(message), "消息不能为空");

            try
            {
                Flow_BillFlowMessage msg = new Flow_BillFlowMessage();

                msg.初始发起方用户编码 = BasicInfo.LoginID;
                msg.单据号       = billNo;
                msg.单据类型      = m_billType;
                msg.单据流水号     = billNo;
                msg.接收方类型     = receivedUserType.ToString();
                msg.单据状态      = BillStatus.等待处理.ToString();
                msg.发起方消息     = message;
                msg.接收方       = StapleFunction.CreateSplitString(",", receiver);

                msg.期望的处理完成时间 = null;

                InitAdditionalInfo(ref msg, lstAdditionalInfo);

                m_billFlowMsg.SendRequestMessage(BasicInfo.LoginID, msg);
            }
            catch (Exception)
            {
                throw;
            }
        }
Esempio n. 23
0
        /// <summary>
        /// 发送新的流消息
        /// </summary>
        /// <param name="billNo">单据号</param>
        void SendNewFlowMessage(string billNo)
        {
            try
            {
                Flow_BillFlowMessage msg = new Flow_BillFlowMessage();

                msg.初始发起方用户编码 = BasicInfo.LoginID;
                msg.单据号       = billNo;
                msg.单据类型      = labelTitle.Text;
                msg.单据流水号     = billNo;
                msg.接收方类型     = BillFlowMessage_ReceivedUserType.角色.ToString();
                msg.单据状态      = BillStatus.等待处理.ToString();

                msg.发起方消息 = string.Format("{0} 号单据重新打印,请主管审核", billNo);

                string[] roleCodes = m_billMessageServer.GetDeptDirectorRoleName(BasicInfo.DeptCode);

                msg.接收方 = "";
                if (roleCodes.Count() > 0)
                {
                    foreach (string role in roleCodes)
                    {
                        msg.接收方 += role + ",";
                    }
                }

                msg.接收方       = msg.接收方.Substring(0, msg.接收方.Length - 1);
                msg.期望的处理完成时间 = null;

                m_billFlowMsg.SendRequestMessage(BasicInfo.LoginID, msg);
            }
            catch (Exception exce)
            {
                Console.WriteLine(exce.Message);
            }
        }
        /// <summary>
        /// 结束流消息(流程已经走完)
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <param name="message">消息内容</param>
        /// <param name="noticeRoles">要知会的角色列表</param>
        /// <param name="noticeUsers">要知会的用户列表</param>
        /// <returns>操作是否成功的标志</returns>
        public bool EndFlowMessage(string billNo, string message, List <string> noticeRoles, List <string> noticeUsers)
        {
            if (m_billType == null || m_billType == "")
            {
                m_billType = GetBillType(billNo);
            }

            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(m_billType), "单据类别不能为空");
            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(billNo), "单据号不能为空");
            Debug.Assert(!GlobalObject.GeneralFunction.IsNullOrEmpty(message), "消息不能为空");
            //Debug.Assert(noticeRoles != null, "要知会的角色列表不能为空");

            try
            {
                m_logManagement.WriteException(string.Format("进入EndFlowMessage, BillNo:{0},Msg:{1}", billNo, message), out m_error);

                Flow_BillFlowMessage msg = GetMessage(billNo);

                if (msg != null)
                {
                    m_billFlowMsg.EndMessage(BasicInfo.LoginID, msg.序号, message);

                    // 2014-11-17 14:55 增加判断,如果没有角色和知会用户时不发送知会消息
                    if ((noticeRoles != null && noticeRoles.Count > 0) || (noticeUsers != null && noticeUsers.Count > 0))
                    {
                        // 获取要知会的用户编码
                        List <string> lstNoticeUser = GetUserCodes(noticeRoles, noticeUsers);

                        if (!lstNoticeUser.Contains(msg.初始发起方用户编码))
                        {
                            lstNoticeUser.Add(msg.初始发起方用户编码);
                        }

                        // 发送知会消息
                        NotifyMessage(msg.单据类型, msg.单据号, message, BasicInfo.LoginID, noticeRoles, lstNoticeUser);
                    }

                    SendFinishedFlagToMessagePromptForm(billNo);
                }
                else
                {
                    m_logManagement.WriteException(string.Format("没有找到单据消息,主动添加消息。EndFlowMessage, BillNo:{0},Msg:{1}", billNo, message), out m_error);

                    BillFlowMessage_ReceivedUserType receivedUserType = BillFlowMessage_ReceivedUserType.用户;

                    if (noticeRoles != null && noticeRoles.Count > 0)
                    {
                        receivedUserType = BillFlowMessage_ReceivedUserType.角色;
                    }

                    msg = new Flow_BillFlowMessage();

                    msg.初始发起方用户编码 = BasicInfo.LoginID;
                    msg.单据号       = billNo;
                    msg.单据类型      = m_billType;
                    msg.单据流水号     = billNo;
                    msg.接收方类型     = receivedUserType.ToString();
                    msg.单据状态      = BillStatus.已完成.ToString();
                    msg.发起方消息     = message;
                    msg.接收方       = StapleFunction.CreateSplitString(",",
                                                                     receivedUserType == BillFlowMessage_ReceivedUserType.角色 ? noticeRoles : noticeUsers);

                    msg.期望的处理完成时间 = null;

                    m_billFlowMsg.SendRequestMessage(BasicInfo.LoginID, msg);
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
 /// <summary>
 /// 获取单据类消息字符串
 /// </summary>
 /// <param name="message">单据消息</param>
 /// <returns>返回获取到的字符串</returns>
 private string GetBillMessage(Flow_BillFlowMessage message)
 {
     //return string.Format("{0}{1} 内容:{2}", message.单据流水号, message.单据类型, message.发起方消息);
     return(string.Format("{0}:{1}", message.单据类型, message.发起方消息));
 }