Ejemplo n.º 1
0
        public static void dllEntry(ReturnInfo RetInfo, DispatchTable SyscallTable, IntPtr Unknown)
        {
            SDK.QAGameInit(SyscallTable);
            SDK.PRINT(Colors.Red + "[QAGame] Hello Quake Live!\n");

            IntPtr _uix86 = Kernel32.LoadLibrary("cliq3\\orig\\_qagamex86.dll");
            dllEntryFunc _dllEntry = Kernel32.GetProcAddress<dllEntryFunc>(_uix86, "dllEntry");
            _dllEntry(RetInfo, SyscallTable, Unknown);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 执行流程后
        /// </summary>
        /// <param name="flowCensorshipOut">流程关卡输出</param>
        /// <param name="flowIn">流程输入</param>
        /// <param name="isSuccess">是否成功</param>
        /// <param name="connectionId">连接ID</param>
        /// <param name="currUser">当前用户</param>
        /// <returns>返回信息</returns>
        public override ReturnInfo <bool> AfterExecFlow(FlowCensorshipOutInfo flowCensorshipOut, object flowIn, bool isSuccess, string connectionId = null, BasicUserInfo currUser = null)
        {
            ReturnInfo <bool> returnInfo = new ReturnInfo <bool>();

            if (isSuccess)
            {
                // 当前为申请者关卡
                if (flowCensorshipOut.IsCurrApplicantCensorship() &&
                    (flowCensorshipOut.ActionType == ActionType.SAVE || flowCensorshipOut.ActionType == ActionType.SEND))
                {
                    FlowInInfo <FlowInitInfo <PersonTimeInfo> > conFlowIn;
                    ConcreteFormInfoT form = ToApplyConcreteFormInfo(flowCensorshipOut, flowIn, returnInfo, out conFlowIn);
                    if (returnInfo.Failure())
                    {
                        return(returnInfo);
                    }

                    ReturnInfo <ConcreteFormInfo> reFormInfo = FormDataReaderFactory.Create(conFlowIn.Flow.WorkflowCode).ReaderByWorkflowId(flowCensorshipOut.Workflow.Id, connectionId, currUser);
                    if (reFormInfo.Failure())
                    {
                        returnInfo.FromBasic(reFormInfo);

                        return(returnInfo);
                    }
                    if (reFormInfo.Data != null)
                    {
                        switch (reFormInfo.Data.FlowStatus)
                        {
                        case FlowStatusEnum.AUDITING:
                            returnInfo.SetFailureMsg("此表单在审核中不允许重复申请");

                            return(returnInfo);

                        case FlowStatusEnum.AUDIT_PASS:
                            returnInfo.SetFailureMsg("此表单已审核通过不允许重复申请");

                            return(returnInfo);

                        case FlowStatusEnum.AUDIT_NOPASS:
                            returnInfo.SetFailureMsg("此表单已审核驳回不允许重复申请");

                            return(returnInfo);
                        }

                        form.SetModifyInfo(currUser);
                    }
                    else
                    {
                        form.SetCreateInfo(currUser);
                    }

                    form.ApplyNo    = flowCensorshipOut.Workflow.ApplyNo;
                    form.WorkflowId = flowCensorshipOut.Workflow.Id;
                    form.FlowStatus = flowCensorshipOut.Workflow.FlowStatus;

                    returnInfo = FormService.Set(form, connectionId, currUser);
                } // 下一关卡如果是结束关卡(送件)或是申请关卡(退件)
                else if ((flowCensorshipOut.IsNextEndCensorship() && flowCensorshipOut.ActionType == ActionType.SEND) ||
                         (flowCensorshipOut.IsNextApplicantCensorship() && flowCensorshipOut.ActionType == ActionType.RETURN))
                {
                    ConcreteFormInfoT form = typeof(ConcreteFormInfoT).CreateInstance <ConcreteFormInfoT>();
                    form.WorkflowId = flowCensorshipOut.Workflow.Id;
                    form.FlowStatus = flowCensorshipOut.Workflow.FlowStatus;
                    form.SetModifyInfo(currUser);

                    returnInfo = FormService.ModifyFlowStatusByWorkflowId(form, connectionId, currUser);
                }
            }

            return(returnInfo);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 创建报修单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Press(object sender, EventArgs e)
        {
            try
            {
                if (String.IsNullOrEmpty(btnDealMan.Text))
                {
                    throw new Exception("报修人不能为空");
                }

                if (String.IsNullOrEmpty(txtrepairman.Text))
                {
                    throw new Exception("维修人不能为空");
                }

                if (String.IsNullOrEmpty(txtContent.Text))
                {
                    throw new Exception("维修内容不能为空!");
                }

                if (String.IsNullOrEmpty(txtNote.Text))
                {
                    throw new Exception("发现者不能为空");
                }

                if (String.IsNullOrEmpty(txtsns.Text))
                {
                    throw new Exception("维修资产SN号不能为空");
                }

                if (String.IsNullOrEmpty(SN))
                {
                    List <string> sn_list = autofacConfig.SettingService.GetAllSns();
                    if (!sn_list.Contains(txtsns.Text))
                    {
                        throw new Exception("不存在序列号为" + txtsns.Text + "的闲置资产");
                    }
                }


                AssetsOutputDto outputDto = autofacConfig.SettingService.GetAssetsBysn(txtsns.Text);

                repairInPutDto repairs = new repairInPutDto
                {
                    //id = 0,
                    find_man       = txtNote.Text,
                    call_man       = btnDealMan.Text,
                    call_date      = DatePicker.Value,
                    repair_man     = txtrepairman.Text,
                    repair_content = txtContent.Text,
                    repair_status  = "等待修",
                    asset_id       = outputDto.id
                };

                //List<AssRepairOrderRow> Data = new List<AssRepairOrderRow>();
                //if (ListAssetsSN.Rows.Count == 0) throw new Exception("维修行项不能为空!");
                //foreach (ListViewRow Row in ListAssetsSN.Rows)
                //{
                //    frmOrderCreateSNLayout Layout = Row.Control as frmOrderCreateSNLayout;
                //    AssetsOrderRow RowData = Layout.getData();
                //    AssRepairOrderRow assRow = new AssRepairOrderRow();

                //    assRow.IMAGE = RowData.IMAGE;
                //    assRow.ASSID = RowData.ASSID;
                //    assRow.WAITREPAIRQTY = RowData.QTY;
                //    assRow.SN = RowData.SN;
                //    assRow.LOCATIONID = RowData.LOCATIONID;
                //    assRow.STATUS = RowData.STATUS;
                //    assRow.CREATEDATE = DateTime.Now;
                //    Data.Add(assRow);
                //}
                //RepairData.Rows = Data;
                ReturnInfo r = autofacConfig.assRepairOrderService.AddAssRepairOrder(repairs);
                if (r.IsSuccess)
                {
                    ShowResult = ShowResult.Yes;
                    Form.Close();          //创建成功
                    Toast("创建维修单成功!");
                }
                else
                {
                    throw new Exception(r.ErrorInfo);
                }
            }
            catch (Exception ex)
            {
                Toast(ex.Message);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 注册
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Press(object sender, EventArgs e)
        {
            try
            {
                if (txtName.Text.Trim().Length <= 0)
                {
                    throw new Exception("请输入昵称!");
                }
                if (VCode == null)
                {
                    throw new Exception("请输入手机验证码!");
                }
                string pwd1 = txtPwd1.Text.Trim();
                string pwd2 = txtPwd2.Text.Trim();
                if (pwd1.Length <= 0)
                {
                    throw new Exception("请输入新密码!");
                }
                if (pwd1.Length < 6 || pwd1.Length > 12)
                {
                    throw new Exception("新密码必须为6-12位!");
                }

                if (pwd2.Length <= 0)
                {
                    throw new Exception("请输入确认密码!");
                }
                if (pwd2.Length < 6 || pwd2.Length > 12)
                {
                    throw new Exception("新密码必须为6-12位!");
                }
                if (!pwd1.Equals(pwd2))
                {
                    throw new Exception("两次密码输入不一致,请检查!");
                }

                RadioButton   selectRole = radioGroup1.CheckedButton;
                List <string> listrole   = new List <string>();
                listrole.Add(selectRole.Value);

                //密码处理,经过加密
                string     encryptPwd = AutofacConfig.userService.Encrypt(pwd2);
                ReturnInfo result     = AutofacConfig.userService.RegisterByVCode(Tel, encryptPwd, txtName.Text.Trim(), listrole, VCode);
                //如果返回true则注册成功,否则弹出错误
                if (result.IsSuccess == false)
                {
                    throw new Exception(result.ErrorInfo);
                }
                else
                {
                    List <Role> role = AutofacConfig.userService.GetRoleByUserID(Tel);
                    Client.Session["U_ID"]  = Tel;
                    Client.Session["Roler"] = role;
                    Close();                         //关闭当前界面
                    frmWork frmWork = new frmWork(); //跳转到工作界面
                    Show(frmWork);
                }
            }
            catch (Exception ex)
            {
                Toast(ex.Message, ToastLength.SHORT);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 更新报销单
        /// </summary>
        /// <param name="entity">报销单对象</param>
        public ReturnInfo UpdateRB(RBInputDto entity)
        {
            ReturnInfo    RInfo = new ReturnInfo();
            StringBuilder sb    = new StringBuilder();
            Reimbursement rb    = _reimbursementRepository.GetByID(entity.RB_ID).FirstOrDefault();

            if (rb != null)
            {
                Reimbursement rb2 = _reimbursementRepository.GetByID(entity.RB_ID).AsNoTracking().FirstOrDefault();
                if (rb2.RB_Status >= 1)
                {
                    RInfo.IsSuccess = false;
                    RInfo.ErrorInfo = "只有新建和已拒绝的才能修改.";
                    return(RInfo);
                }
                else
                {
                    string ValidateInfo = Helper.ValidateRBInputDto(entity);
                    sb.Append(ValidateInfo);
                    if (string.IsNullOrEmpty(ValidateInfo))
                    {
                        try
                        {
                            rb.RB_UpdateDate = DateTime.Now;
                            List <int> OldIDs = _rbrowsRepository.GetByRBID(entity.RB_ID).Select(o => o.R_ID).ToList();
                            List <int> NewIDs = new List <int>();
                            decimal    Total  = 0;
                            foreach (RB_RowsInputDto row in entity.RB_Rows)
                            {
                                NewIDs.Add(row.R_ID);
                                Total += row.R_Amount;
                            }
                            rb.RB_TotalAmount = Total;
                            CostCenter cc = _costCenterRepository.GetByID(entity.CC_ID).AsNoTracking().FirstOrDefault();
                            if (cc != null)
                            {
                                rb.RB_LiableMan = cc.CC_LiableMan;
                            }
                            CC_Type_Template ctp = _cc_Type_TemplateRepository.GetByID(cc.CC_TemplateID).AsNoTracking().FirstOrDefault();
                            if (ctp != null)
                            {
                                rb.RB_AEACheckers       = ctp.CC_TT_AEACheckers;
                                rb.RB_FinancialCheckers = ctp.CC_TT_FinancialCheckers;
                            }
                            if (entity.CC_ID != null)
                            {
                                rb.CC_ID = entity.CC_ID;
                            }
                            rb.RB_Img1 = entity.RB_Img1;
                            rb.RB_Img2 = entity.RB_Img2;
                            rb.RB_Img3 = entity.RB_Img3;
                            rb.RB_Img4 = entity.RB_Img4;
                            rb.RB_Img5 = entity.RB_Img5;
                            rb.RB_Img6 = entity.RB_Img6;
                            rb.RB_Img7 = entity.RB_Img7;
                            rb.RB_Img8 = entity.RB_Img8;
                            rb.RB_Img9 = entity.RB_Img9;
                            if (entity.RB_Note != null)
                            {
                                rb.RB_Note = entity.RB_Note;
                            }
                            //rb.RB_RejectionReason = entity.RB_RejectionReason;
                            rb.RB_Status     = (int)RB_Status.新建;
                            rb.RB_UpdateDate = DateTime.Now;
                            if (entity.RB_UpdateUser != null)
                            {
                                rb.RB_UpdateUser = entity.RB_UpdateUser;
                            }
                            rb.RB_CurrantCheck = "";
                            _unitOfWork.RegisterDirty(rb);
                            List <int> Add    = NewIDs.Except(OldIDs).ToList();
                            List <int> Delete = OldIDs.Except(NewIDs).ToList();
                            foreach (int addID in Add)
                            {
                                RB_Rows row = _rbrowsRepository.GetByID(addID).FirstOrDefault();
                                row.RB_ID = entity.RB_ID;
                                _unitOfWork.RegisterDirty(row);
                            }
                            foreach (int deleteID in Delete)
                            {
                                RB_Rows row = _rbrowsRepository.GetByID(deleteID).FirstOrDefault();
                                row.RB_ID = null;
                                _unitOfWork.RegisterDirty(row);
                            }
                            bool result = _unitOfWork.Commit();
                            RInfo.IsSuccess = result;
                            RInfo.ErrorInfo = sb.ToString();
                            return(RInfo);
                        }
                        catch (Exception ex)
                        {
                            _unitOfWork.RegisterClean(rb);
                            _unitOfWork.Rollback();
                            sb.Append(ex.Message);
                            RInfo.IsSuccess = false;
                            RInfo.ErrorInfo = sb.ToString();
                            return(RInfo);
                        }
                    }
                    else
                    {
                        RInfo.IsSuccess = false;
                        RInfo.ErrorInfo = sb.ToString();
                        return(RInfo);
                    }
                }
            }
            else
            {
                RInfo.IsSuccess = false;
                RInfo.ErrorInfo = "查找不到该ID的报销单!";
                return(RInfo);
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 根据ID移除模型前
 /// </summary>
 /// <param name="returnInfo">返回信息</param>
 /// <param name="id">ID</param>
 /// <param name="connectionId">连接ID</param>
 /// <returns>返回信息</returns>
 protected override void BeforeRemoveById(ReturnInfo <bool> returnInfo, int id, ref string connectionId)
 {
     ValiCanRemove(returnInfo, Persistence.Select(id, connectionId));
 }
Ejemplo n.º 7
0
        /// <summary>
        /// 执行返回函数
        /// </summary>
        /// <typeparam name="OutT">输出类型</typeparam>
        /// <param name="func">函数</param>
        /// <param name="returnInfo">返回信息</param>
        /// <returns>返回信息</returns>
        protected ReturnInfo <OutT> ExecReturnFunc <OutT>(Func <ReturnInfo <OutT>, OutT> func, ReturnInfo <OutT> returnInfo = null)
        {
            if (returnInfo == null)
            {
                returnInfo = new ReturnInfo <OutT>();
            }

            returnInfo.Data = func(returnInfo);

            return(returnInfo);
        }
Ejemplo n.º 8
0
        internal void Return(
            IChargingForm charging_form,
            // bool bLost,
            string strAction,
            string strReaderBarcode,
            string strItemBarcode,
            string strConfirmItemRecPath,
            string strReaderSummary,
            string strItemXml,  // 2008/5/9
            ReturnInfo return_info,
            DateTime start_time,
            DateTime end_time)
        {
            TimeSpan delta = end_time - start_time; // 未包括GetSummary()的时间

            string strText = "";
            int nRet = 0;

            string strOperName = "还";
#if NO
            if (bLost == true)
                strOperName = "丢失";
#endif
            if (strAction == "lost")
                strOperName = "丢失";
            else if (strAction == "inventory")
                strOperName = "盘点";
            else if (strAction == "read")
                strOperName = "读过";

            string strError = "";
            string strSummary = "";
            nRet = this.GetBiblioSummary(strItemBarcode,
                    strConfirmItemRecPath,
                    out strSummary,
                    out strError);
            if (nRet == -1)
                strSummary = "获取书目摘要时出错: " + strError;

            string strOperClass = "even";
            if ((this.m_nCount % 2) == 1)
                strOperClass = "odd";

            string strLocation = "";
            if (return_info != null)
                strLocation = return_info.Location;

            string strItemLink = "<a href='javascript:void(0);' onclick=\"window.external.OpenForm('ItemInfoForm', this.innerText, true);\">" + HttpUtility.HtmlEncode(strItemBarcode) + "</a>";
            string strReaderLink = "";
            if (string.IsNullOrEmpty(strReaderBarcode) == false)
                strReaderLink = "<a href='javascript:void(0);' onclick=\"window.external.OpenForm('ReaderInfoForm', this.innerText, true);\">" + HttpUtility.HtmlEncode(strReaderBarcode) + "</a>";

            strText = "<div class='item " + strOperClass + " return'>"
                + "<div class='time_line'>"
                + " <div class='time'>" + DateTime.Now.ToLongTimeString() + "</div>"
                + " <div class='time_span'>耗时 " + DoubleToString(delta.TotalSeconds) + "秒</div>"
                + " <div class='clear'></div>"
                + "</div>"
                + (
                string.IsNullOrEmpty(strReaderLink) == false ?
                ("<div class='reader_line'>"
                + " <div class='reader_prefix_text'>读者</div>"
                + " <div class='reader_barcode'>" + strReaderLink + "</div>"
                + " <div class='reader_summary'>" + HttpUtility.HtmlEncode(strReaderSummary) + "</div>"
                + " <div class='clear'></div>") : ""
                )
                + "</div>"
                + "<div class='opername_line'>"
                + " <div class='opername'>" + HttpUtility.HtmlEncode(strOperName) + "</div>"
                + " <div class='clear'></div>"
                + "</div>"
                + "<div class='item_line'>"
                + " <div class='item_prefix_text'>册</div>"
                + " <div class='item_barcode'>" + strItemLink + "</div> "
                + " <div class='item_summary'>" + HttpUtility.HtmlEncode(strSummary) + "</div>"

                + (string.IsNullOrEmpty(strLocation) == false ? " <div class='item_location'>" + HttpUtility.HtmlEncode(strLocation) + "</div>" : "")
                + " <div class='clear'></div>"
                + "</div>"
                + " <div class='clear'></div>"
                + "</div>";

            /*
            strText = "<div class='" + strOperClass + "'>"
    + "<div class='time_line'><span class='time'>" + DateTime.Now.ToLongTimeString() + "</span> <span class='time_span'>耗时 " + delta.TotalSeconds.ToString() + "秒</span></div>"
    + "<div class='reader_line'><span class='reader_prefix_text'>读者</span> <span class='reader_barcode'>[" + strReaderBarcode + "]</span>"
+ " <span class='reader_summary'>" + strReaderSummary + "<span></div>"
+ "<div class='opername_line'><span class='opername'>" + strOperName + "<span></div>"
+ "<div class='item_line'><span class='item_prefix_text'>册</span> <span class='item_barcode'>[" + strItemBarcode + "]</span> "
+ "<span class='item_summary' id='" + m_nCount.ToString() + "' onreadystatechange='GetOneSummary(\"" + m_nCount.ToString() + "\");'>" + strItemBarcode + "</span></div>"
+ "</div>";
             * */
            AppendHtml(strText);
            m_nCount++;

            // 运行Script代码
            if (this.PrintAssembly != null)
            {
                ReturnedEventArgs e = new ReturnedEventArgs();
                e.OperName = strOperName;
                e.BiblioSummary = strSummary;
                e.ItemBarcode = strItemBarcode;
                e.ReaderBarcode = strReaderBarcode;
                e.TimeSpan = delta;
                e.ReaderSummary = strReaderSummary;
                e.ItemXml = strItemXml;
                e.ChargingForm = charging_form;

                if (return_info != null)
                {
                    if (String.IsNullOrEmpty(return_info.BorrowTime) == true)
                        e.BorrowDate = new DateTime(0);
                    else
                        e.BorrowDate = DateTimeUtil.FromRfc1123DateTimeString(return_info.BorrowTime).ToLocalTime();

                    if (String.IsNullOrEmpty(return_info.LatestReturnTime) == true)
                        e.LatestReturnDate = new DateTime(0);
                    else
                        e.LatestReturnDate = DateTimeUtil.FromRfc1123DateTimeString(return_info.LatestReturnTime).ToLocalTime();
                    e.Period = return_info.Period;
                    e.BorrowCount = return_info.BorrowCount;
                    e.OverdueString = return_info.OverdueString;

                    e.BorrowOperator = return_info.BorrowOperator;
                    e.ReturnOperator = return_info.ReturnOperator;

                    // 2013/4/2
                    e.Location = return_info.Location;
                    e.BookType = return_info.BookType;
                }

                this.PrintHostObj.MainForm = this.MainForm;
                this.PrintHostObj.Assembly = this.PrintAssembly;
                try
                {
                    this.PrintHostObj.OnReturned(this, e);
                }
                catch (Exception ex)
                {
                    string strErrorInfo = "<br/>单据打印脚本运行时出错: " + HttpUtility.HtmlEncode(ExceptionUtil.GetDebugText(ex));
                    AppendHtml(strErrorInfo);
                }
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 耗材采购单入库
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public ReturnInfo InStoConPurhcaseOrder(ConPOInStoInputDto entity)
        {
            ReturnInfo    RInfo = new ReturnInfo();
            StringBuilder sb    = new StringBuilder();

            if (String.IsNullOrEmpty(entity.WAREID) || String.IsNullOrEmpty(entity.STID) || String.IsNullOrEmpty(entity.SLID))
            {
                throw new Exception("请扫描调入库位!");
            }
            int thisOver = 0;    //此次完成入库的行项数

            foreach (ConPurchaseOrderRowInputDto row in entity.RowDatas)
            {
                ConPurchaseOrderInstorage hasInSto = _conPurchaseOrderInstorageReposity.GetByPOIDAndWareID(entity.POID, row.POROWID, entity.WAREID, entity.STID, entity.SLID).FirstOrDefault();
                if (hasInSto == null) //不存在入库行项
                {
                    ConPurchaseOrderInstorage instorage = new ConPurchaseOrderInstorage();
                    instorage.POID    = entity.POID;
                    instorage.POROWID = row.POROWID;
                    instorage.WAREID  = entity.WAREID;
                    instorage.STID    = entity.STID;
                    instorage.SLID    = entity.SLID;
                    instorage.QUANT   = row.QUANTSTORED;
                    _unitOfWork.RegisterNew(instorage);
                }
                else      //已存在入库行项
                {
                    hasInSto.QUANT = hasInSto.QUANT + row.QUANTSTORED;
                    _unitOfWork.RegisterDirty(hasInSto);
                }

                //OrderRow表修改入库数量以及状态
                ConPurchaseOrderRow orderRow = _ConPurchaseOrderRowReposity.GetOrderRowByCID(entity.POID, row.CID).FirstOrDefault();
                orderRow.QUANTSTORED = orderRow.QUANTSTORED + row.QUANTSTORED;
                orderRow.STATUS      = (int)PurchaseOrderStatus.入库中;
                if (orderRow.QUANTSTORED == orderRow.QUANTPURCHASED)
                {
                    orderRow.STATUS = (int)PurchaseOrderStatus.已完成;
                    thisOver       += 1;
                }
                if (orderRow.QUANTSTORED > orderRow.QUANTPURCHASED)
                {
                    throw new Exception("实际入库数量不可大于可入库数量!");
                }
                _unitOfWork.RegisterDirty(orderRow);

                ConQuant con = _conQuantRepository.GetByCID(row.CID, entity.WAREID, entity.STID, entity.SLID).FirstOrDefault();
                if (con == null)  //如果原先不存在相关库存,则添加库存信息
                {
                    ConQuant conQuant = new ConQuant();
                    conQuant.CID        = row.CID;
                    conQuant.WAREID     = entity.WAREID;
                    conQuant.STID       = entity.STID;
                    conQuant.SLID       = entity.SLID;
                    conQuant.QUANTITY   = row.QUANTSTORED;
                    conQuant.CREATEDATE = DateTime.Now;
                    conQuant.CREATEUSER = entity.CREATEUSER;
                    conQuant.MODIFYDATE = DateTime.Now;
                    conQuant.MODIFYUSER = entity.CREATEUSER;
                    _unitOfWork.RegisterNew(conQuant);
                }
                else
                {
                    con.QUANTITY = con.QUANTITY + row.QUANTSTORED;
                    _unitOfWork.RegisterDirty(con);
                }
            }

            //order表修改状态
            ConPurchaseOrder conPurchaseOrder = _ConPurchaseOrderReposity.GetById(entity.POID).FirstOrDefault();
            int allRowsCount = _ConPurchaseOrderRowReposity.GetByPOID(entity.POID).ToList().Count;
            int hasOverCount = _ConPurchaseOrderRowReposity.GetOrderRowsByStatus(entity.POID, (int)PurchaseOrderStatus.已完成).ToList().Count;

            if (allRowsCount == hasOverCount + thisOver)
            {
                conPurchaseOrder.STATUS = (int)PurchaseOrderStatus.已完成;
            }
            else
            {
                conPurchaseOrder.STATUS = (int)PurchaseOrderStatus.入库中;
            }
            _unitOfWork.RegisterDirty(conPurchaseOrder);
            try
            {
                _unitOfWork.Commit();
                RInfo.IsSuccess = true;
                return(RInfo);
            }
            catch (Exception ex)
            {
                _unitOfWork.Rollback();
                sb.Append(ex.Message);
                RInfo.IsSuccess = false;
                RInfo.ErrorInfo = sb.ToString();
                return(RInfo);
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 更新采购单
        /// </summary>
        /// <param name="inputDto"></param>
        /// <returns></returns>
        public ReturnInfo UpdatePruchaseOrder(ConPurchaseOrderInputDto inputDto)
        {
            ReturnInfo       RInfo = new ReturnInfo();
            StringBuilder    sb    = new StringBuilder();
            ConPurchaseOrder Order = _ConPurchaseOrderReposity.GetById(inputDto.POID).FirstOrDefault();

            if (Order == null)
            {
                sb.Append("该采购单不存在,请检查!");
                RInfo.IsSuccess = false;
                RInfo.ErrorInfo = sb.ToString();
                return(RInfo);
            }
            else      //采购单存在
            {
                Order.REALID     = inputDto.REALID;
                Order.NAME       = inputDto.NAME;
                Order.VID        = inputDto.VID;
                Order.PURCHASER  = inputDto.PURCHASER;
                Order.MODIFYDATE = inputDto.MODIFYDATE;
                Order.MODIFYUSER = inputDto.MODIFYUSER;
                _unitOfWork.RegisterDirty(Order);

                //如果原来存在行项,则先删除
                List <ConPurchaseOrderRow> Rows = _ConPurchaseOrderRowReposity.GetByPOID(inputDto.POID).ToList();
                if (Rows.Count > 0)    //如果存在行项
                {
                    foreach (ConPurchaseOrderRow Row in Rows)
                    {
                        _unitOfWork.RegisterDeleted(Row);
                    }
                }
                ///添加新的选择行项
                foreach (ConPurchaseOrderRowInputDto Row in inputDto.RowData)
                {
                    ConPurchaseOrderRow purchaseOrderRow = new ConPurchaseOrderRow();
                    purchaseOrderRow            = Mapper.Map <ConPurchaseOrderRowInputDto, ConPurchaseOrderRow>(Row);
                    purchaseOrderRow.POID       = inputDto.POID;
                    purchaseOrderRow.CREATEUSER = inputDto.CREATEUSER;
                    purchaseOrderRow.CREATEDATE = DateTime.Now;
                    purchaseOrderRow.MODIFYUSER = inputDto.MODIFYUSER;
                    purchaseOrderRow.MODIFYDATE = DateTime.Now;
                    purchaseOrderRow.STATUS     = 0;
                    _unitOfWork.RegisterNew(purchaseOrderRow);
                }
                try
                {
                    _unitOfWork.Commit();
                    RInfo.IsSuccess = true;
                    return(RInfo);
                }
                catch (Exception ex)
                {
                    _unitOfWork.Rollback();
                    sb.Append(ex.Message);
                    RInfo.IsSuccess = false;
                    RInfo.ErrorInfo = sb.ToString();
                    return(RInfo);
                }
            }
        }
        /// <summary>
        /// 读取其他配置
        /// </summary>
        /// <param name="workflowDefine">工作流定义</param>
        /// <param name="connectionId">连接ID</param>
        private BasicReturnInfo ReaderOtherConfig(WorkflowDefineInfo workflowDefine, string connectionId)
        {
            BasicReturnInfo basicReturn = new BasicReturnInfo();

            if (workflowDefine == null)
            {
                basicReturn.SetFailureMsg("找不到工作流定义信息");
                return(basicReturn);
            }

            #region 查找流程/表单/流程关卡

            ReturnInfo <FlowInfo> reFlow = FlowService.Find(workflowDefine.FlowId, connectionId);
            if (reFlow.Failure())
            {
                basicReturn.FromBasic(reFlow);
                return(basicReturn);
            }
            if (reFlow.Data == null)
            {
                basicReturn.SetFailureMsg("找不到工作流的流程信息");
                return(basicReturn);
            }

            ReturnInfo <FormInfo> reForm = FormService.Find(workflowDefine.FormId, connectionId);

            workflowDefine.Flow = reFlow.Data;

            if (reForm.Failure())
            {
                basicReturn.FromBasic(reForm);
                return(basicReturn);
            }
            if (reForm.Data == null)
            {
                basicReturn.SetFailureMsg("找不到工作流的表单信息");
                return(basicReturn);
            }
            workflowDefine.Form = reForm.Data;

            ReturnInfo <IList <FlowCensorshipInfo> > reFlowCensorships = FlowCensorshipService.QueryByFlowId(workflowDefine.FlowId, connectionId);
            if (reFlowCensorships.Failure())
            {
                basicReturn.FromBasic(reFlowCensorships);
                return(basicReturn);
            }
            if (reFlowCensorships.Data.IsNullOrCount0())
            {
                basicReturn.SetFailureMsg("找不到工作流的流程关卡信息");
                return(basicReturn);
            }
            workflowDefine.Flow.FlowCensorships = reFlowCensorships.Data.ToArray();

            // 构造流程关卡ID数组
            int[]       flowCensorshipIds   = new int[workflowDefine.Flow.FlowCensorships.Length];
            IList <int> stFlowCensorshipIds = new List <int>();
            for (var i = 0; i < flowCensorshipIds.Length; i++)
            {
                var f = workflowDefine.Flow.FlowCensorships[i];
                flowCensorshipIds[i] = f.Id;

                if (f.OwnerCensorshipType == CensorshipTypeEnum.STANDARD)
                {
                    stFlowCensorshipIds.Add(f.OwnerCensorshipId);
                }
            }
            #endregion

            #region 查找送件/退件路线/标准关卡

            IList <StandardCensorshipInfo> standardCensorships = null;
            // 标准关卡
            if (!stFlowCensorshipIds.IsNullOrCount0())
            {
                ReturnInfo <IList <StandardCensorshipInfo> > reStand = StandardCensorshipService.Find(stFlowCensorshipIds.ToArray(), connectionId);
                if (reStand.Failure())
                {
                    basicReturn.FromBasic(reStand);
                    return(basicReturn);
                }
                if (reStand.Data.IsNullOrCount0())
                {
                    basicReturn.SetFailureMsg("找不到标准关卡信息");
                    return(basicReturn);
                }

                standardCensorships = reStand.Data;
            }

            ReturnInfo <IList <SendFlowRouteInfo> > reSend = SendFlowRouteService.QueryByFlowCensorshipIds(flowCensorshipIds, connectionId);
            if (reSend.Failure())
            {
                basicReturn.FromBasic(reSend);
                return(basicReturn);
            }
            if (reSend.Data.IsNullOrCount0())
            {
                basicReturn.SetFailureMsg("找不到工作流的送件路线信息");
            }

            ReturnInfo <IList <ReturnFlowRouteInfo> > reReturn = ReturnFlowRouteService.QueryByFlowCensorshipIds(flowCensorshipIds, connectionId);
            if (reReturn.Failure())
            {
                basicReturn.FromBasic(reReturn);
                return(basicReturn);
            }

            foreach (var f in workflowDefine.Flow.FlowCensorships)
            {
                switch (f.OwnerCensorshipType)
                {
                case CensorshipTypeEnum.STANDARD:
                    IList <StandardCensorshipInfo> stdList = new List <StandardCensorshipInfo>();
                    foreach (var s in standardCensorships)
                    {
                        if (f.OwnerCensorshipId == s.Id)
                        {
                            stdList.Add(s);
                        }
                    }

                    if (stdList.Count == 0)
                    {
                        basicReturn.SetFailureMsg($"找不到归属ID为{f.OwnerCensorshipId}的标准关卡信息");
                        return(basicReturn);
                    }

                    f.StandardCensorships = stdList.ToArray();

                    break;
                }

                IList <SendFlowRouteInfo> sendRotes = new List <SendFlowRouteInfo>();
                foreach (var send in reSend.Data)
                {
                    if (f.Id == send.FlowCensorshipId)
                    {
                        sendRotes.Add(send);
                    }
                }

                if (!sendRotes.IsNullOrCount0())
                {
                    f.SendFlowRoutes = sendRotes.ToArray();
                }

                if (!reReturn.Data.IsNullOrCount0())
                {
                    IList <ReturnFlowRouteInfo> returnRotes = new List <ReturnFlowRouteInfo>();
                    foreach (var re in reReturn.Data)
                    {
                        if (f.Id == re.FlowCensorshipId)
                        {
                            returnRotes.Add(re);
                        }
                    }

                    if (!returnRotes.IsNullOrCount0())
                    {
                        f.ReturnFlowRoutes = returnRotes.ToArray();
                    }
                }
            }

            #endregion

            return(basicReturn);
        }
 /// <summary>
 /// 填充页面数据,包含当前用户所拥有的权限功能列表
 /// </summary>
 /// <param name="returnInfo">返回信息</param>
 /// <param name="comData">通用数据</param>
 protected virtual void FillPageData(ReturnInfo <PageInfoT> returnInfo, CommonUseData comData = null)
 {
 }
Ejemplo n.º 13
0
        /// <summary>
        /// 保存实体
        /// </summary>
        /// <param name="UI"></param>
        /// <param name="IsSave">是否保存true保存</param>
        /// <param name="ActionName"></param>
        public static ReturnInfo SaveEntity(EntityBase p_entEntityData, FormsUIBase p_objFormUIBase, Boolean p_blnIsSaveDraft, String p_strActionName, String p_strTemplateName)
        {
            ReturnInfo l_objReturnInfo = new ReturnInfo();

            EntityBase l_entArchive = p_entEntityData;

            //当流程类型为“程序文件”且为协助会签步骤,取SubProcessID
            if (p_strTemplateName == ProcessConstString.TemplateName.PROGRAM_FILE &&
                l_entArchive.StepName == ProcessConstString.StepName.ProgramFile.STEP_ASSIST_SIGN)
            {
                l_entArchive.ProcessID = p_objFormUIBase.SubProcessID;
            }
            else
            {
                l_entArchive.ProcessID = p_objFormUIBase.ProcessID;
            }

            //WorkItemID为空的情况为初始节点,流程尚未发起
            if (String.IsNullOrEmpty(p_objFormUIBase.WorkItemID))
            {
                //如果是保存草稿的状态
                if (p_blnIsSaveDraft)
                {
                    //节点名称设置为"保存",以供草稿列表里查询使用
                    l_entArchive.StepName = ProcessConstString.SubmitAction.ACTION_SAVE_DRAFT;
                }
                else
                {
                    l_entArchive.StepName = p_objFormUIBase.StepName;
                }
            }

            if (string.IsNullOrEmpty(l_entArchive.ReceiveUserID))
            {
                l_entArchive.ReceiveUserID = CurrentUserInfo.UserName;
                l_entArchive.ReceiveUserName = CurrentUserInfo.DisplayName;
                l_entArchive.ReceiveDateTime = DateTime.Now;
            }
            else if (OAConfig.GetConfig(ConstString.Config.Section.Start_WORKFLOW_AGENT, ConstString.Config.Key.IS_START) == "1") //流程代理
            {
                if (l_entArchive.ReceiveUserID != CurrentUserInfo.UserName)
                {
                    l_entArchive.AgentUserID = CurrentUserInfo.UserName;
                    l_entArchive.AgentUserName = CurrentUserInfo.DisplayName;
                }
            }

            //如果是保存草稿的状态
            if (p_blnIsSaveDraft ||
                (p_strTemplateName == ProcessConstString.TemplateName.PROGRAM_FILE &&
                p_strActionName == ProcessConstString.SubmitAction.ProgramFile.ACTION_ASSIGN))
            {
                l_entArchive.D_StepStatus = ProcessConstString.StepStatus.STATUS_ASSIGNED;
            }
            else
            {
                l_entArchive.D_StepStatus = ProcessConstString.StepStatus.STATUS_COMPLETED;
            }
            l_entArchive.WorkItemID = p_objFormUIBase.WorkItemID;
            l_entArchive.CommonID = p_objFormUIBase.CommonID;
            l_entArchive.SubmitAction = p_strActionName;
            l_entArchive.IsFormSave = p_blnIsSaveDraft;

            if (l_entArchive.DraftDate == DateTime.MinValue)
            {
                l_entArchive.DraftDate = DateTime.Now;
            }

            l_entArchive.FormsData = XmlUtility.SerializeXml(l_entArchive);

            //开始事务
            l_entArchive.EnTrans.Begin();

            if (l_entArchive.Save())
            {
                l_objReturnInfo.IsSucess = true;
                l_entArchive.EnTrans.Commit();
            }
            else
            {
                l_objReturnInfo.IsSucess = false;
                l_objReturnInfo.ErrMessage = SysString.GetErrorMsgs(l_entArchive.ErrMsgs);
                l_entArchive.EnTrans.Rollback();
                ILogger log = LoggerFactory.GetLogger(LogType.TxtFile, @"Log", p_strTemplateName);
                log.WriteLog("保存实体出错:" + l_objReturnInfo.ErrMessage);
            }
            return l_objReturnInfo;
        }
Ejemplo n.º 14
0
        //二次分发和追加分发调用
        public static ReturnInfo SaveNewEntity(EntityBase EntityData, FormsUIBase info, String ActionName)
        {
            ReturnInfo RetInfo = new ReturnInfo();
            ArrayList ErrList = new ArrayList();

            EntityData.ReceiveDateTime = DateTime.Now;
            EntityData.ProcessID = info.ProcessID;
            EntityData.WorkItemID = info.WorkItemID;
            EntityData.StepName = info.StepName;
            EntityData.D_StepStatus = ProcessConstString.StepStatus.STATUS_COMPLETED;
            EntityData.SubmitAction = ActionName;

            EntityData.EnTrans.Begin();
            if (!EntityData.Save())
            {
                ErrList.AddRange(EntityData.ErrMsgs);
            }
            else
            {
                info.IdentityID = EntityData.ID;
            }

            String strErr = String.Empty;
            foreach (String str in ErrList)
            {
                strErr += str + "\\n";
            }
            if (String.IsNullOrEmpty(strErr.Trim()))
            {
                //提交事务
                RetInfo.IsSucess = true;
                EntityData.EnTrans.Commit();
            }
            else
            {
                //实体保存出错,回滚
                RetInfo.IsSucess = false;
                RetInfo.ErrMessage = strErr.Trim();
                EntityData.EnTrans.Rollback();
            }
            return RetInfo;
        }
 /// <summary>
 /// 追加页面数据
 /// </summary>
 /// <param name="returnInfo">返回信息</param>
 protected virtual void AppendPageData(ReturnInfo <PageInfoT> returnInfo)
 {
 }
Ejemplo n.º 16
0
 /// <summary>
 /// 执行核心
 /// </summary>
 /// <param name="returnInfo">返回信息</param>
 /// <param name="workflow">工作流</param>
 /// <param name="connectionId">连接ID</param>
 protected virtual void ExecCore(ReturnInfo <bool> returnInfo, WorkflowInfo workflow, string connectionId = null)
 {
     WorkflowHandlePersistence.DeleteByWorkflowId(workflow.Id, connectionId);
     WorkflowPersistence.DeleteById(workflow.Id, connectionId);
 }
Ejemplo n.º 17
0
        /// <summary>
        /// 耗材采购单退库
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public ReturnInfo ReturnConPurchaseOrder(ConPOInStoInputDto entity)
        {
            ReturnInfo    RInfo = new ReturnInfo();
            StringBuilder sb    = new StringBuilder();

            foreach (ConPurchaseOrderRowInputDto row in entity.RowDatas)
            {
                ConPurchaseOrderReturn hasReturn = _conPurchaseOrderReturnReposity.GetByPOIDAndWareID(entity.POID, row.POROWID, row.WAREID, row.STID, row.SLID).FirstOrDefault();
                if (hasReturn == null) //不存在退库行项
                {
                    ConPurchaseOrderReturn orderReturn = new ConPurchaseOrderReturn();
                    orderReturn.POID    = entity.POID;
                    orderReturn.POROWID = row.POROWID;
                    orderReturn.WAREID  = row.WAREID;
                    orderReturn.STID    = row.STID;
                    orderReturn.SLID    = row.SLID;
                    orderReturn.QUANT   = row.QUANTRETREATED;
                    _unitOfWork.RegisterNew(orderReturn);
                }
                else      //已存在退库行项
                {
                    hasReturn.QUANT = hasReturn.QUANT + row.QUANTRETREATED;
                    _unitOfWork.RegisterDirty(hasReturn);
                }

                ConPurchaseOrderRow orderRow = _ConPurchaseOrderRowReposity.GetOrderRowByCID(entity.POID, row.CID).FirstOrDefault();
                orderRow.QUANTRETREATED = orderRow.QUANTRETREATED + row.QUANTRETREATED;
                if (orderRow.QUANTRETREATED > orderRow.QUANTSTORED)
                {
                    throw new Exception("实际退库数量不可大于可退库数量!");
                }
                _unitOfWork.RegisterDirty(orderRow);

                ConQuant conq = _conQuantRepository.GetByCID(row.CID, row.WAREID, row.STID, row.SLID).FirstOrDefault();
                if (conq == null)  //如果原先不存在相关库存,则添加库存信息
                {
                    throw new Exception("不存在耗材编号为" + row.CID + "的库存,请检查!");
                }
                else
                {
                    conq.QUANTITY = conq.QUANTITY - row.QUANTRETREATED;
                    if (conq.QUANTITY < 0)
                    {
                        throw new Exception("耗材" + row.CID + "库存不足,无法退库!");
                    }
                    else if (conq.QUANTITY == 0)
                    {
                        _unitOfWork.RegisterDeleted(conq);
                    }
                    else
                    {
                        _unitOfWork.RegisterDirty(conq);
                    }
                }
            }
            try
            {
                _unitOfWork.Commit();
                RInfo.IsSuccess = true;
                return(RInfo);
            }
            catch (Exception ex)
            {
                _unitOfWork.Rollback();
                sb.Append(ex.Message);
                RInfo.IsSuccess = false;
                RInfo.ErrorInfo = sb.ToString();
                return(RInfo);
            }
        }
Ejemplo n.º 18
0
        public static ReturnInfo SaveEntity(EntityBase entity, bool isSerialize)
        {
            ReturnInfo RetInfo = new ReturnInfo();
            ArrayList ErrList = new ArrayList();

            if (isSerialize)
            {
                String strformdada = XmlUtility.SerializeXml(entity);
                entity.FormsData = strformdada;
            }
            entity.EnTrans.Begin();
            if (!entity.Save())
            {
                ErrList.AddRange(entity.ErrMsgs);
            }
            String strErr = String.Empty;
            foreach (String str in ErrList)
            {
                strErr += str + "\\n";
            }
            if (String.IsNullOrEmpty(strErr.Trim()))
            {
                //提交事务
                RetInfo.IsSucess = true;
                entity.EnTrans.Commit();
            }
            else
            {
                //实体保存出错,回滚
                RetInfo.IsSucess = false;
                RetInfo.ErrMessage = strErr.Trim();
                entity.EnTrans.Rollback();
            }
            return RetInfo;
        }
Ejemplo n.º 19
0
        /// <summary>
        /// 数据绑定
        /// </summary>
        public void Bind()
        {
            try
            {
                DataTable table = new DataTable();
                table.Columns.Add("ID");                                                                //签到模板编号
                table.Columns.Add("Picture");                                                           //签到图片
                table.Columns.Add("Description");                                                       //签到描述
                table.Columns.Add("Time", typeof(System.String));                                       //签到时间
                table.Columns.Add("Img");                                                               //图片ID
                table.Columns.Add("Action");                                                            //签到或签退
                table.Columns.Add("Info");                                                              //显示当前是否能签到,是否已经签到
                if ((ATMainState)Enum.Parse(typeof(ATMainState), enter.ToString()) == ATMainState.统计查看) //统计页面进入查看
                {
                    List <ALDto> listStats = AutofacConfig.attendanceService.GetALByUserAndDate(UserID, Convert.ToDateTime(DayTime));
                    if (listStats != null && listStats.Count > 0)
                    {
                        CommutingType = listStats[0].AL_CommutingType;                                                            //上下班类型
                        if ((WorkTimeType)Enum.Parse(typeof(WorkTimeType), listStats[0].AL_CommutingType) == WorkTimeType.一天一上下班) //一天一上下班
                        {
                            table.Rows.Add("4", "shangban2", "上班", listStats[0].AL_OnTime.ToString("HH:mm"), null, null, "未开始");
                            table.Rows.Add("5", "xiaban2", "下班", listStats[1].AL_OnTime.ToString("HH:mm"), null, null, "未开始");
                        }
                        else               //一天两上下班
                        {
                            table.Rows.Add("0", "shangban2", "上午上班", listStats[0].AL_OnTime.ToString("HH:mm"), null, null, "未开始");
                            table.Rows.Add("1", "gongzuozhong2", "上午下班", listStats[1].AL_OnTime.ToString("HH:mm"), null, null, "未开始");
                            table.Rows.Add("2", "gongzuozhong2", "下午上班", listStats[2].AL_OnTime.ToString("HH:mm"), null, null, "未开始");
                            table.Rows.Add("3", "xiaban2", "下午下班", listStats[3].AL_OnTime.ToString("HH:mm"), null, null, "未开始");
                        }
                    }
                }
                else        //进入签到页面
                {
                    WorkTimeDto Mode = AutofacConfig.attendanceService.GetCurrantASByUser(UserID);
                    CommutingType = Mode.AT_CommutingType;           //上下班类型
                    if (Mode.AT_ASType == "上班")
                    {
                        if ((WorkTimeType)Enum.Parse(typeof(WorkTimeType), Mode.AT_CommutingType) == WorkTimeType.一天一上下班)            //一天一上下班
                        {
                            table.Rows.Add("4", "shangban1", "上班", Convert.ToDateTime(Mode.AT_StartTime).ToString("HH:mm"), null, null, "未开始");
                            table.Rows.Add("5", "xiaban1", "下班", Convert.ToDateTime(Mode.AT_EndTime).ToString("HH:mm"), null, null, "未开始");
                        }
                        else                     //一天两上下班
                        {
                            table.Rows.Add("0", "shangban1", "上午上班", Convert.ToDateTime(Mode.AT_AMStartTime).ToString("HH:mm"), null, null, "未开始");
                            table.Rows.Add("1", "gongzuozhong1", "上午下班", Convert.ToDateTime(Mode.AT_AMEndTime).ToString("HH:mm"), null, null, "未开始");
                            table.Rows.Add("2", "gongzuozhong1", "下午上班", Convert.ToDateTime(Mode.AT_PMStartTime).ToString("HH:mm"), null, null, "未开始");
                            table.Rows.Add("3", "xiaban1", "下午下班", Convert.ToDateTime(Mode.AT_PMEndTime).ToString("HH:mm"), null, null, "未开始");
                        }
                    }
                    else
                    {
                        this.lblInfo.Visible = true;
                        this.lblInfo.Text    = "今天是休息日!";
                    }
                }
                List <ALDto> listLogs = AutofacConfig.attendanceService.GetALByUserAndDate(UserID, DateTime.Now);                             //判断当天是否已经有签到
                if (listLogs.Count == table.Rows.Count && (ATMainState)Enum.Parse(typeof(ATMainState), enter.ToString()) == ATMainState.考勤签到) //如果当天已完成所有签到
                {
                    DayTime = DateTime.Now.ToString();                                                                                        //给DayTime值,使得页面显示统计模式
                }
                if (string.IsNullOrEmpty(DayTime) == false)                                                                                   //如果进入的是统计查看页面
                {
                    List <ALDto> listStats = AutofacConfig.attendanceService.GetALByUserAndDate(UserID, Convert.ToDateTime(DayTime));
                    for (int i = 0; i < table.Rows.Count; i++)
                    {
                        //table.Rows[i]["Action"] = null;         //隐藏签到(签退)按钮
                        foreach (ALDto Row in listStats)
                        {
                            if (Row.AL_OnTime.ToString("HH:mm") == table.Rows[i]["Time"].ToString())
                            {
                                AL_Date = Row.AL_Date;                  //签到时间
                                switch ((AttendanceType)Enum.Parse(typeof(AttendanceType), Row.AL_Status))
                                {
                                case AttendanceType.未签到:
                                case AttendanceType.未签退:
                                    table.Rows[i]["Info"] = Row.AL_Status;
                                    break;

                                case AttendanceType.迟到:
                                case AttendanceType.早退:
                                case AttendanceType.准点:
                                    if (Convert.ToInt32(table.Rows[i]["ID"].ToString()) % 2 == 0)           //奇数行
                                    {
                                        table.Rows[i]["Info"] = "已签到" + "  " + AL_Date.ToString("HH:mm");
                                    }
                                    else
                                    {
                                        table.Rows[i]["Info"] = "已签退" + "  " + AL_Date.ToString("HH:mm");
                                    }
                                    break;
                                }
                            }
                            if (string.IsNullOrEmpty(Row.AL_Reason) == false && Row.AL_LogTimeType == table.Rows[i]["Description"] + "时间")   //如果有迟到早退原因,则显示信息提示框
                            {
                                table.Rows[i]["Img"] = "!\\ue85d000146223";
                            }
                            ATMainPicture.AllBlackWhite(table);           //签到状态下,将图片显示为黑白
                        }
                    }
                }
                else                //判断当天哪几次已经签到,并且进行显示(签到页面)
                {
                    int x = 0;
                    while (x < table.Rows.Count - 1)    //当上一条行项未签到,且时间已超过下一行项的签到时间时,显示未签到
                    {
                        if (DateTime.Now >= Convert.ToDateTime(table.Rows[x + 1]["Time"]))
                        {
                            if (Convert.ToInt32(table.Rows[x]["ID"].ToString()) % 2 == 0)
                            {
                                table.Rows[x]["Info"] = "未签到";
                            }
                            else
                            {
                                table.Rows[x]["Info"] = "未签退";
                            }
                            x++;
                        }
                        else
                        {
                            x++;
                            break;
                        }
                    }
                    int count = 0;             //当前页面未签到和未签退的行项数
                    foreach (DataRow Row in table.Rows)
                    {
                        if (Row["Info"].ToString() == "未签到" || Row["Info"].ToString() == "未签退")
                        {
                            count++;
                        }
                    }
                    for (int i = listLogs.Count; i < count; i++)//当未签行项数大于数据库已记录未签条数时
                    {
                        if (table.Rows[i]["Info"].ToString() == "未签到" || table.Rows[i]["Info"].ToString() == "未签退")
                        {
                            newLog.AL_Reason = null;
                            switch ((StatisticsTime)Enum.Parse(typeof(StatisticsTime), table.Rows[i]["Description"] + "时间"))
                            {
                            case StatisticsTime.午上班时间:
                                newLog.AL_LogTimeType = StatisticsTime.午上班时间;
                                break;

                            case StatisticsTime.午下班时间:
                                newLog.AL_LogTimeType = StatisticsTime.午下班时间;
                                break;

                            case StatisticsTime.午上班时间:
                                newLog.AL_LogTimeType = StatisticsTime.午上班时间;
                                break;

                            case StatisticsTime.午下班时间:
                                newLog.AL_LogTimeType = StatisticsTime.午下班时间;
                                break;

                            case StatisticsTime.班时间:
                                newLog.AL_LogTimeType = StatisticsTime.班时间;
                                break;

                            case StatisticsTime.班时间:
                                newLog.AL_LogTimeType = StatisticsTime.班时间;
                                break;
                            }
                            newLog.AL_Date   = DateTime.Now;    //考勤日期
                            newLog.AL_UserID = UserID;          //用户ID
                            if ((WorkTimeType)Enum.Parse(typeof(WorkTimeType), CommutingType) == WorkTimeType.一天一上下班)
                            {
                                newLog.AL_CommutingType = WorkTimeType.一天一上下班;       //上下班类型
                            }
                            else
                            {
                                newLog.AL_CommutingType = WorkTimeType.一天二上下班;              //上下班类型
                            }
                            newLog.AL_Position = "无签到地点";                                   //考勤地点
                            newLog.AL_OnTime   = Convert.ToDateTime(table.Rows[i]["Time"]); //签到准点时间
                            if (Convert.ToInt32(table.Rows[i]["ID"].ToString()) % 2 == 0)   //判断考勤状态
                            {
                                newLog.AL_Status = AttendanceType.未签到;
                            }
                            else
                            {
                                newLog.AL_Status = AttendanceType.未签退;
                            }
                            ReturnInfo r = AutofacConfig.attendanceService.AddAttendanceLog(newLog);
                        }
                    }
                    if (Convert.ToInt32(table.Rows[x - 1]["ID"]) % 2 == 0)
                    {
                        table.Rows[x - 1]["Action"] = "签到";    //尚未签到的第一行,显示签到(签退)按钮
                    }
                    else
                    {
                        table.Rows[x - 1]["Action"] = "签退";                                                              //尚未签到的第一行,显示签到(签退)按钮
                    }
                    List <ALDto> listNewLogs = AutofacConfig.attendanceService.GetALByUserAndDate(UserID, DateTime.Now); //判断当天是否已经有签到
                    for (int i = 0; i < listNewLogs.Count; i++)
                    {
                        table.Rows[i]["Action"] = null;           //隐藏已签到这行的签到按钮
                        if (Convert.ToInt32(table.Rows[i + 1]["ID"]) % 2 == 0)
                        {
                            table.Rows[i + 1]["Action"] = "签到";    //尚未签到的第一行,显示签到(签退)按钮
                        }
                        else
                        {
                            table.Rows[i + 1]["Action"] = "签退";    //尚未签到的第一行,显示签到(签退)按钮
                        }
                        foreach (ALDto Row in listNewLogs)
                        {
                            AL_Date = Row.AL_Date;                                                                             //考勤时间
                            if (Convert.ToInt32(table.Rows[i]["ID"].ToString()) % 2 == 0 && listNewLogs[i].AL_Status != "未签到") //显示已签和签到时间
                            {
                                table.Rows[i]["Info"] = "已签到" + "  " + AL_Date.ToString("HH:mm");
                            }
                            else if (Convert.ToInt32(table.Rows[i]["ID"].ToString()) % 2 == 1 && listNewLogs[i].AL_Status != "未签退")
                            {
                                table.Rows[i]["Info"] = "已签退" + "  " + AL_Date.ToString("HH:mm");
                            }
                            if (Row.AL_OnTime == Convert.ToDateTime(table.Rows[i]["Time"]))
                            {
                                if (Row.AL_Status == "未签到" || Row.AL_Status == "未签退")         //显示未签
                                {
                                    table.Rows[i]["Info"] = Row.AL_Status;
                                }
                                if (string.IsNullOrEmpty(Row.AL_Reason) == false)   //如果有迟到早退原因,显示信息提示框
                                {
                                    table.Rows[i]["Img"] = "!\\ue85d000146223";
                                }
                            }
                        }
                        ATMainPicture.BlackWhite(table, i);  //已经签到的行项中,图片显示黑白
                    }
                    ATMainPicture.getPictures(table);        //对每个行项进行匹配,显示正确的图片信息
                }
                gridATdata.Rows.Clear();
                if (table.Rows.Count > 0)           //如果数据不为空
                {
                    this.gridATdata.DataSource = table;
                    this.gridATdata.DataBind();
                }
            }
            catch (Exception ex)
            {
                Toast(ex.Message);
            }
        }
Ejemplo n.º 20
0
        public virtual ReturnInfo <UserMenuInfo> CanAccessMenus([DisplayName2("用户ID"), Id] int userId, string connectionId = null)
        {
            return(ExecReturnFuncAndConnectionId <UserMenuInfo>((reInfo, connId) =>
            {
                ReturnInfo <UserInfo> protoReturnInfo = Find(userId, connId);
                if (protoReturnInfo.Failure())
                {
                    reInfo.FromBasic(protoReturnInfo);
                    return null;
                }
                if (protoReturnInfo.Data == null)
                {
                    reInfo.SetFailureMsg("找不到该用户");
                    return null;
                }
                protoReturnInfo.Data.Password = null;

                // 查找该用户所属角色
                ReturnInfo <IList <RoleInfo> > reRoleInfo = UserRoleService.OwnRolesByUserId(userId, connId);
                if (reRoleInfo.Failure())
                {
                    reInfo.FromBasic(reRoleInfo);
                    return null;
                }
                protoReturnInfo.Data.OwnRoles = reRoleInfo.Data;

                var result = Mapper.Map <UserInfo, UserMenuInfo>(protoReturnInfo.Data);

                // 查找能拥有的权限菜单
                IList <MenuInfo> menus = null;
                if ("Role".Equals(AppConfig["User:PermissionBenchmark"]))
                {
                    if (!reRoleInfo.Data.IsNullOrCount0())
                    {
                        int[] roleIds = new int[reRoleInfo.Data.Count];
                        for (var i = 0; i < roleIds.Length; i++)
                        {
                            roleIds[i] = reRoleInfo.Data[i].Id;
                        }
                        menus = MenuPersistence.SelectByRoleIds(roleIds, connId);
                    }
                }
                else
                {
                    menus = MenuPersistence.SelectByUserId(userId, connId);
                }

                if (menus.IsNullOrCount0())
                {
                    return result;
                }

                // 如果没有查询权限则需要移除
                IList <MenuInfo> tempMenus = new List <MenuInfo>();
                foreach (MenuInfo m in menus)
                {
                    if (m.Functions.IsNullOrCount0())
                    {
                        continue;
                    }

                    foreach (FunctionInfo funInfo in m.Functions)
                    {
                        if (FunCodeDefine.QUERY_CODE.Equals(funInfo.Code))
                        {
                            tempMenus.Add(m);
                            break;
                        }
                    }
                }

                result.Menus = tempMenus.ToOrigAndSort();

                return result;
            }, connectionId: connectionId, accessMode: AccessMode.SLAVE));
        }
Ejemplo n.º 21
0
        protected IInfo GetRecords(SmartDB dbInstance, string cmdText, SqlParameter[] parms)
        {
            var   list = new List <Model.Meter>();
            IInfo result;

            try
            {
                bool          transactionControl = dbInstance.TransactionControl;
                SqlDataReader sqlDataReader;
                if (transactionControl)
                {
                    bool flag = parms == null;
                    if (flag)
                    {
                        sqlDataReader = SqlHelper.ExecuteReader(dbInstance.Transaction, CommandType.StoredProcedure, cmdText, Array.Empty <SqlParameter>());
                    }
                    else
                    {
                        sqlDataReader = SqlHelper.ExecuteReader(dbInstance.Transaction, CommandType.StoredProcedure, cmdText, parms);
                    }
                }
                else
                {
                    bool flag2 = parms == null;
                    if (flag2)
                    {
                        sqlDataReader = SqlHelper.ExecuteReader(SqlHelper.MyConnectionString, CommandType.StoredProcedure, cmdText, Array.Empty <SqlParameter>());
                    }
                    else
                    {
                        sqlDataReader = SqlHelper.ExecuteReader(SqlHelper.MyConnectionString, CommandType.StoredProcedure, cmdText, parms);
                    }
                }
                bool hasRows = sqlDataReader.HasRows;
                if (hasRows)
                {
                    while (sqlDataReader.Read())
                    {
                        Model.Meter item;
                        this.SetInfo(out item, sqlDataReader);
                        list.Add(item);
                    }
                    result = new ReturnInfo
                    {
                        BizObject = list,
                        Code      = ErrorEnum.NoError
                    };
                }
                else
                {
                    result = new ReturnInfo
                    {
                        Message = "No records found",
                        Code    = ErrorEnum.NoRecord
                    };
                }
            }
            catch (Exception ex)
            {
                result = new ReturnInfo(ErrorEnum.DataException, ex.Message);
            }
            return(result);
        }
Ejemplo n.º 22
0
        /// <summary>
        /// 添加报销单
        /// </summary>
        /// <param name="entity">报销单对象</param>
        public ReturnInfo CreateRB(RBInputDto entity)
        {
            ReturnInfo    RInfo = new ReturnInfo();
            StringBuilder sb    = new StringBuilder();
            string        MaxID = _reimbursementRepository.GetMaxID();
            string        NowID = Helper.GenerateID("RB", MaxID);

            entity.RB_ID = NowID;
            string ValidateInfo = Helper.ValidateRBInputDto(entity);

            sb.Append(ValidateInfo);
            if (string.IsNullOrEmpty(ValidateInfo))
            {
                try
                {
                    Reimbursement rb = Mapper.Map <RBInputDto, Reimbursement>(entity);
                    rb.RB_CreateDate   = DateTime.Now;
                    rb.RB_UpdateDate   = DateTime.Now;
                    rb.RB_AEADate      = DateTime.Now;
                    rb.RB_FinDate      = DateTime.Now;
                    rb.RB_LiableDate   = DateTime.Now;
                    rb.RB_Status       = (int)RB_Status.新建;
                    rb.RB_CurrantCheck = "";
                    if (!string.IsNullOrEmpty(entity.CC_ID))
                    {
                        CCDetailDto cc = Mapper.Map <CostCenter, CCDetailDto> (_costCenterRepository.GetByID(entity.CC_ID).AsNoTracking().FirstOrDefault());
                        rb.RB_LiableMan = cc.CC_LiableMan;
                        if (!string.IsNullOrEmpty(cc.CC_TemplateID))
                        {
                            CC_Type_TemplateDto ctp = Mapper.Map <CC_Type_Template, CC_Type_TemplateDto>(_cc_Type_TemplateRepository.GetByID(cc.CC_TemplateID).AsNoTracking().FirstOrDefault());
                            rb.RB_AEACheckers       = ctp.CC_TT_AEACheckers;
                            rb.RB_FinancialCheckers = ctp.CC_TT_FinancialCheckers;
                        }
                    }
                    decimal Total  = 0;
                    string  MaxID2 = _reimbursementRepository.GetMaxID();
                    string  NowID2 = Helper.GenerateID("RB", MaxID2);
                    rb.RB_ID = NowID2;
                    foreach (RB_RowsInputDto row in entity.RB_Rows)
                    {
                        RB_Rows r = _rbrowsRepository.GetByID(row.R_ID).FirstOrDefault();
                        r.RB_ID = NowID2;
                        _unitOfWork.RegisterDirty(r);
                        Total += row.R_Amount;
                    }
                    rb.RB_TotalAmount = Total;
                    _unitOfWork.RegisterNew(rb);
                    bool result = _unitOfWork.Commit();
                    RInfo.IsSuccess = result;
                    RInfo.ErrorInfo = sb.ToString();
                    return(RInfo);
                }
                catch (Exception ex)
                {
                    _unitOfWork.Rollback();
                    sb.Append(ex.Message);
                    RInfo.IsSuccess = false;
                    RInfo.ErrorInfo = sb.ToString();
                    return(RInfo);
                }
            }
            else
            {
                RInfo.IsSuccess = false;
                RInfo.ErrorInfo = sb.ToString();
                return(RInfo);
            }
        }
Ejemplo n.º 23
0
        protected override void AttachChildControls()
        {
            string orderId = this.Page.Request.QueryString["orderId"];

            this.LogisticsInfo = (HtmlGenericControl)this.FindControl("LogisticsInfoPanel");
            Literal literal = this.FindControl("litLogisiticType") as Literal;

            this.hylExpress100Search = (HyperLink)this.FindControl("hylExpress100Search");
            this.ulExpress           = (HtmlGenericControl)this.FindControl("ulExpress");
            int num = 0;

            int.TryParse(this.Page.Request.QueryString["returnsId"], out num);
            int num2 = 0;

            int.TryParse(this.Page.Request.QueryString["replaceId"], out num2);
            string          text            = "";
            string          text2           = "";
            string          text3           = "";
            string          text4           = "";
            string          text5           = "";
            string          text6           = "";
            bool            flag            = false;
            HtmlInputHidden htmlInputHidden = this.FindControl("hidReplaceType") as HtmlInputHidden;
            OrderInfo       orderInfo       = ShoppingProcessor.GetOrderInfo(orderId);

            if (orderInfo == null || orderInfo.UserId != HiContext.Current.UserId)
            {
                if (num > 0)
                {
                    ReturnInfo returnInfo = TradeHelper.GetReturnInfo(num);
                    if (returnInfo != null && (returnInfo.HandleStatus == ReturnStatus.Deliverying || returnInfo.HandleStatus == ReturnStatus.GetGoods || returnInfo.HandleStatus == ReturnStatus.Returned))
                    {
                        text  = returnInfo.ExpressCompanyName;
                        text2 = returnInfo.ShipOrderNumber;
                        text3 = returnInfo.AdminShipTo;
                        text4 = returnInfo.AdminCellPhone;
                        text5 = returnInfo.AdminShipAddress;
                        text6 = returnInfo.ExpressCompanyAbb;
                        flag  = true;
                    }
                }
                if (num2 > 0)
                {
                    ReplaceInfo replaceInfo = TradeHelper.GetReplaceInfo(num2);
                    orderInfo = ShoppingProcessor.GetOrderInfo(replaceInfo.OrderId);
                    if (orderInfo == null)
                    {
                        this.LogisticsInfo.InnerHtml = "订单不存在或已被删除";
                        return;
                    }
                    if (replaceInfo != null)
                    {
                        if (replaceInfo.HandleStatus == ReplaceStatus.UserDelivery)
                        {
                            htmlInputHidden.Value = "User";
                            text  = replaceInfo.UserExpressCompanyName;
                            text2 = replaceInfo.UserShipOrderNumber;
                            text3 = replaceInfo.AdminShipTo;
                            text4 = replaceInfo.AdminCellPhone;
                            text5 = replaceInfo.AdminShipAddress;
                            text6 = replaceInfo.ExpressCompanyAbb;
                            flag  = true;
                        }
                        if (replaceInfo.HandleStatus == ReplaceStatus.MerchantsDelivery || replaceInfo.HandleStatus == ReplaceStatus.Replaced)
                        {
                            htmlInputHidden.Value = "Mall";
                            text  = replaceInfo.ExpressCompanyName;
                            text2 = replaceInfo.ShipOrderNumber;
                            text3 = orderInfo.ShipTo;
                            text4 = (string.IsNullOrEmpty(orderInfo.CellPhone) ? orderInfo.TelPhone : orderInfo.CellPhone);
                            text5 = orderInfo.ShippingRegion + "   " + orderInfo.Address;
                            text6 = orderInfo.ExpressCompanyAbb;
                        }
                        else
                        {
                            this.LogisticsInfo.InnerHtml = "商家还未发货";
                        }
                    }
                }
            }
            else
            {
                flag  = true;
                text  = orderInfo.ExpressCompanyName;
                text2 = orderInfo.ShipOrderNumber;
                text3 = orderInfo.ShipTo;
                text4 = (string.IsNullOrEmpty(orderInfo.CellPhone) ? orderInfo.TelPhone : orderInfo.CellPhone);
                text5 = orderInfo.ShippingRegion + "   " + orderInfo.Address;
                text6 = orderInfo.ExpressCompanyAbb;
            }
            if (!flag)
            {
                base.GotoResourceNotFound("错误的物流数据");
            }
            Literal         literal2         = this.FindControl("ltlExpressCompanyName") as Literal;
            Literal         literal3         = this.FindControl("ltlShipOrderNumber") as Literal;
            Literal         literal4         = this.FindControl("ltlReceiveName") as Literal;
            Literal         literal5         = this.FindControl("ltlTel") as Literal;
            Literal         literal6         = this.FindControl("ltlShipAddress") as Literal;
            Literal         literal7         = this.FindControl("Repeater") as Literal;
            HtmlInputHidden htmlInputHidden2 = this.FindControl("hidOrderId") as HtmlInputHidden;

            htmlInputHidden2.Value = ((orderInfo != null) ? orderInfo.OrderId : string.Empty);
            HtmlInputHidden htmlInputHidden3 = this.FindControl("hidIsShowDadaGIS") as HtmlInputHidden;
            HtmlInputHidden htmlInputHidden4 = this.FindControl("hidUserLatlng") as HtmlInputHidden;
            HtmlInputHidden htmlInputHidden5 = this.FindControl("hidStoreLatlng") as HtmlInputHidden;
            HtmlInputHidden htmlInputHidden6 = this.FindControl("hidBaseURL") as HtmlInputHidden;

            htmlInputHidden6.Value = Globals.HostPath(this.Page.Request.Url);
            if (orderInfo != null)
            {
                if (orderInfo.ExpressCompanyName.ToNullString() == "同城物流配送")
                {
                    htmlInputHidden3.Value = "1";
                }
                if (orderInfo.ShippingId > 0)
                {
                    ShippingAddressInfo shippingAddress = MemberProcessor.GetShippingAddress(orderInfo.ShippingId);
                    if (shippingAddress != null && !string.IsNullOrWhiteSpace(shippingAddress.LatLng))
                    {
                        htmlInputHidden4.Value = shippingAddress.LatLng;
                    }
                }
                if (orderInfo.StoreId > 0)
                {
                    StoresInfo storeById = StoresHelper.GetStoreById(orderInfo.StoreId);
                    if (storeById != null && !string.IsNullOrWhiteSpace(storeById.LatLng))
                    {
                        htmlInputHidden5.Value = storeById.LatLng;
                    }
                }
                else
                {
                    ShippersInfo defaultOrFirstShipper = SalesHelper.GetDefaultOrFirstShipper(0);
                    if (defaultOrFirstShipper != null)
                    {
                        htmlInputHidden5.Value = defaultOrFirstShipper.Latitude + "," + defaultOrFirstShipper.Longitude;
                    }
                }
            }
            literal2.Text = text;
            literal3.Text = text2;
            if (!string.IsNullOrEmpty(text2))
            {
                string text7 = HttpContext.Current.Request.Url.ToString().ToLower();
                if (text7.IndexOf("/wapshop/") != -1)
                {
                    if (text6.ToLower() == "sf")
                    {
                        this.hylExpress100Search.NavigateUrl = $"http://www.sf-express.com/mobile/cn/sc/dynamic_function/waybill/waybill_query_info.html?billno={text2}";
                        this.hylExpress100Search.Text        = "顺丰官网查询>";
                    }
                    else
                    {
                        this.hylExpress100Search.NavigateUrl = $"https://m.kuaidi100.com/result.jsp?nu={text2}";
                    }
                }
                else if (text6.ToLower() == "sf")
                {
                    this.hylExpress100Search.NavigateUrl = $"http://www.sf-express.com/mobile/cn/sc/dynamic_function/waybill/waybill_query_info.html?billno={text2}";
                    this.hylExpress100Search.Text        = "顺丰官网查询>";
                }
                else
                {
                    this.hylExpress100Search.NavigateUrl = $"https://www.kuaidi100.com/chaxun?nu={text2}";
                }
            }
            else
            {
                this.ulExpress.Visible = false;
            }
            literal4.Text = text3;
            literal5.Text = text4;
            literal6.Text = text5;
            PageTitle.AddSiteNameTitle("查看物流");
        }
Ejemplo n.º 24
0
        /// <summary>
        /// 更新报销单状态
        /// </summary>
        /// <param name="ID">报销单ID</param>
        /// <param name="Status">报销单状态</param>
        /// <param name="UserID">当前审批者的ID</param>
        public ReturnInfo UpdateRBStatus(string ID, RB_Status Status, string UserID, string RejectionReason)
        {
            ReturnInfo    RInfo  = new ReturnInfo();
            StringBuilder sb     = new StringBuilder();
            Reimbursement entity = _reimbursementRepository.GetByID(ID).FirstOrDefault();

            if (entity != null)
            {
                try
                {
                    Reimbursement entity2 = _reimbursementRepository.GetByID(ID).AsNoTracking().FirstOrDefault();
                    if (entity2.RB_Status == (int)RB_Status.财务审批)
                    {
                        RInfo.IsSuccess = false;
                        RInfo.ErrorInfo = "财务审批通过后,不能变更状态了!";
                        return(RInfo);
                    }
                    else
                    {
                        entity.RB_UpdateDate = DateTime.Now;
                        if (Status == RB_Status.已拒绝)
                        {
                            if (entity2.RB_Status == (int)RB_Status.责任人审批 || entity2.RB_Status == (int)RB_Status.行政审批)
                            {
                                //行政和财务拒绝的时候,成本中心已用金额减少
                                CostCenter cc   = _costCenterRepository.GetByID(entity.CC_ID).FirstOrDefault();
                                decimal    Used = cc.CC_UsedAmount;
                                cc.CC_UsedAmount = Used - entity.RB_TotalAmount;
                                _unitOfWork.RegisterDirty(cc);
                                if (entity2.RB_Status == (int)RB_Status.责任人审批)
                                {
                                    entity.RB_CurrantLiableMan = UserID;
                                    entity.RB_LiableDate       = DateTime.Now;
                                }
                                else if (entity2.RB_Status == (int)RB_Status.行政审批)
                                {
                                    entity.RB_CurrantAEACheck = UserID;
                                    entity.RB_AEADate         = DateTime.Now;
                                }
                            }
                            entity.RB_Status          = (int)Status;
                            entity.RB_CurrantCheck    = UserID;
                            entity.RB_RejectionReason = RejectionReason;
                            entity.RB_UpdateUser      = UserID;
                            _unitOfWork.RegisterDirty(entity);
                            bool result = _unitOfWork.Commit();
                            RInfo.IsSuccess = result;
                            RInfo.ErrorInfo = sb.ToString();
                            return(RInfo);
                        }
                        else
                        {
                            if (entity2.RB_Status + 1 == (int)Status)
                            {
                                entity.RB_Status          = (int)Status;
                                entity.RB_CurrantCheck    = UserID;
                                entity.RB_UpdateUser      = UserID;
                                entity.RB_RejectionReason = RejectionReason;
                                //责任人审核通过的话,需要更新成本中心里的已使用金额
                                if (Status == RB_Status.责任人审批)
                                {
                                    CostCenter cc   = _costCenterRepository.GetByID(entity.CC_ID).FirstOrDefault();
                                    decimal    Used = cc.CC_UsedAmount;
                                    decimal    Left = cc.CC_Amount - Used;
                                    if (Left >= entity.RB_TotalAmount)
                                    {
                                        cc.CC_UsedAmount = Used + entity.RB_TotalAmount;
                                        _unitOfWork.RegisterDirty(cc);
                                    }
                                    else
                                    {
                                        RInfo.IsSuccess = false;
                                        RInfo.ErrorInfo = "成本中心余额不足!";
                                        return(RInfo);
                                    }
                                    entity.RB_CurrantLiableMan = UserID;
                                    entity.RB_LiableDate       = DateTime.Now;
                                }
                                else if (Status == RB_Status.行政审批)
                                {
                                    entity.RB_CurrantAEACheck = UserID;
                                    entity.RB_AEADate         = DateTime.Now;
                                }
                                else if (Status == RB_Status.财务审批)
                                {
                                    entity.RB_CurrantFinCheck = UserID;
                                    entity.RB_FinDate         = DateTime.Now;
                                }
                                _unitOfWork.RegisterDirty(entity);
                                bool result = _unitOfWork.Commit();
                                RInfo.IsSuccess = result;
                                RInfo.ErrorInfo = sb.ToString();
                                return(RInfo);
                            }
                            else
                            {
                                RInfo.IsSuccess = false;
                                RInfo.ErrorInfo = "不符合审批流程!";
                                return(RInfo);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    _unitOfWork.RegisterClean(entity);
                    _unitOfWork.Rollback();
                    sb.Append(ex.Message);
                    RInfo.IsSuccess = false;
                    RInfo.ErrorInfo = sb.ToString();
                    return(RInfo);
                }
            }
            else
            {
                RInfo.IsSuccess = false;
                RInfo.ErrorInfo = "该报销单ID不存在!";
                return(RInfo);
            }
        }
Ejemplo n.º 25
0
 /// <summary>
 /// 创建消费记录
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnSave_Press(object sender, EventArgs e)
 {
     try
     {
         if (string.IsNullOrEmpty(this.txtMoney.Text))
         {
             throw new Exception("请输入消费金额!");
         }
         else
         {
             if (System.Text.RegularExpressions.Regex.IsMatch(txtMoney.Text.Trim(), @"^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$") == false)
             {
                 throw new Exception("金额必须为大于0的数字!");
             }
         }
         if (string.IsNullOrEmpty(TYPEID))
         {
             throw new Exception("请选择消费类别!");
         }
         if (string.IsNullOrEmpty(this.txtNote.Text))
         {
             throw new Exception("请输入备注!");
         }
         RB_RowsInputDto Row = new RB_RowsInputDto();
         Row.R_Amount      = decimal.Parse(this.txtMoney.Text); //消费金额
         Row.R_Note        = this.txtNote.Text;                 //明细
         Row.R_TypeID      = TYPEID;                            //消费类型
         Row.R_ConsumeDate = this.DatePicker.Value;             //消费记录日期
         if (string.IsNullOrWhiteSpace(ID) == false)
         {
             int RID = Convert.ToInt32(ID);       //将ID转换成Int类型
             Row.R_ID = Convert.ToInt32(ID);
             ReturnInfo r = AutofacConfig.rBService.UpdateRB_Rows(Row);
             if (r.IsSuccess == true)
             {
                 this.ShowResult = ShowResult.Yes;
                 this.Close();
                 Toast("消费记录修改成功");
             }
             else
             {
                 throw new Exception(r.ErrorInfo);
             }
         }
         else
         {
             Row.R_CreateUser = Client.Session["U_ID"].ToString();                //创建用户
             ReturnInfo r = AutofacConfig.rBService.CreateRB_Rows(Row);           //数据库创建消费记录
             if (r.IsSuccess == true)
             {
                 this.ShowResult = ShowResult.Yes;
                 this.Close();
                 Toast("消费记录提交成功!");
             }
             else
             {
                 throw new Exception(r.ErrorInfo);
             }
         }
     }
     catch (Exception ex)
     {
         Toast(ex.Message);
     }
 }
Ejemplo n.º 26
0
        /// <summary>
        /// 提交操作
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Press(object sender, EventArgs e)
        {
            try
            {
                if (String.IsNullOrEmpty(txtID.Text))
                {
                    throw new Exception("分类编号不能为空");
                }
                if (String.IsNullOrEmpty(txtName.Text))
                {
                    throw new Exception("分类名称不能为空");
                }
                if (String.IsNullOrEmpty(txtDate.Text))
                {
                    throw new Exception("年限不能为空");
                }

                AssetsType type = autofacConfig.assTypeService.GetByID(txtID.Text);
                if (type != null)
                {
                    throw new Exception("该编号已存在");
                }
                if (System.Text.RegularExpressions.Regex.IsMatch(txtDate.Text.Trim(), "^\\d+$") == false)
                {
                    throw new Exception("年限必须为数字");
                }

                AssetsType at = new AssetsType();
                if (isCreate == true || isCreateSon == true)           //新建分类
                {
                    at.TYPEID         = txtID.Text;                    //分类编号
                    at.NAME           = txtName.Text;                  //分类名称
                    at.EXPIRYDATE     = Convert.ToInt32(txtDate.Text); //分类有效日期
                    at.PARENTTYPEID   = txtFID.Text;                   //父分类编号
                    at.EXPIRYDATEUNIT = 1;                             //默认为月
                    at.ISENABLE       = 1;                             //启用
                    at.CREATEUSER     = Client.Session["UserID"].ToString();
                    if (isCreate == true)
                    {
                        at.TLEVEL = 1;                         //分类级别
                    }
                    if (isCreateSon == true)
                    {
                        at.TLEVEL = autofacConfig.assTypeService.GetByID(txtFID.Text).TLEVEL + 1;
                    }

                    ReturnInfo r = autofacConfig.assTypeService.AddAssetsType(at);
                    if (r.IsSuccess == true)
                    {
                        this.Close();      //关闭创建弹出框
                        this.Form.Toast("创建资产分类成功");
                    }
                    else
                    {
                        throw new Exception(r.ErrorInfo);
                    }
                }
                else if (isEdit == true)                             //修改分类
                {
                    at.TYPEID       = txtID.Text;                    //分类编号
                    at.NAME         = txtName.Text;                  //分类名称
                    at.EXPIRYDATE   = Convert.ToInt32(txtDate.Text); //分类有效日期
                    at.PARENTTYPEID = txtFID.Text;                   //父分类编号

                    ReturnInfo r = autofacConfig.assTypeService.UpdateAssetsType(at);
                    if (r.IsSuccess == true)
                    {
                        this.Close();      //关闭创建弹出框
                        this.Form.Toast("资产分类信息修改成功");
                    }
                    else
                    {
                        throw new Exception(r.ErrorInfo);
                    }
                }
            }
            catch (Exception ex)
            {
                Form.Toast(ex.Message);
            }
        }
Ejemplo n.º 27
0
        /// <summary>
        /// 更新用户信息
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="Type"></param>
        /// <returns></returns>
        public ReturnInfo UpdateUser(coreUser entity, EuserInfo Type)
        {
            ReturnInfo RInfo    = new ReturnInfo();
            coreUser   coreUser = _coreUserRepository.GetByID(entity.USER_ID).FirstOrDefault();

            if (coreUser == null)
            {
                throw new Exception("该用户不存在,请检查!");
            }
            try
            {
                switch (Type)
                {
                case EuserInfo.修改地址:
                    coreUser.USER_ADDRESS = entity.USER_ADDRESS;
                    break;

                case EuserInfo.修改头像:
                    coreUser.USER_IMAGEID = entity.USER_IMAGEID;
                    break;

                case EuserInfo.修改性别:
                    coreUser.USER_SEX = entity.USER_SEX;
                    break;

                case EuserInfo.修改昵称:
                    coreUser.USER_NAME = entity.USER_NAME;
                    break;

                case EuserInfo.修改生日:
                    coreUser.USER_BIRTHDAY = entity.USER_BIRTHDAY;
                    break;

                case EuserInfo.修改所属区域:
                    coreUser.USER_LOCATIONID = entity.USER_LOCATIONID;
                    break;
                }
                _unitOfWork.RegisterDirty(coreUser);
                if (Type == EuserInfo.修改所属区域)    //由于用户所在区域变更,用户所领用借用的资产区域也一起变更
                {
                    List <Assets> listAss = _assetsRepository.GetByUser(entity.USER_ID).ToList();
                    if (listAss.Count > 0)
                    {
                        foreach (Assets Row in listAss)
                        {
//                            Row.LOCATIONID = coreUser.USER_LOCATIONID;
                            _unitOfWork.RegisterDirty(Row);
                        }
                    }
                }
                bool result = _unitOfWork.Commit();
                RInfo.IsSuccess = result;
                RInfo.ErrorInfo = "修改信息成功!";
                return(RInfo);
            }
            catch (Exception ex)
            {
                _unitOfWork.Rollback();
                RInfo.IsSuccess = false;
                RInfo.ErrorInfo = ex.Message;
                return(RInfo);
            }
        }
Ejemplo n.º 28
0
        /// <summary>
        /// 转换为申请的具体表单信息
        /// </summary>
        /// <param name="flowCensorshipOut">流程关卡输出</param>
        /// <param name="flowIn">流程输入</param>
        /// <param name="returnInfo">返回信息</param>
        /// <param name="conFlowIn">具体流程输入</param>
        /// <returns>具体表单信息</returns>
        private ConcreteFormInfoT ToApplyConcreteFormInfo(FlowCensorshipOutInfo flowCensorshipOut, object flowIn, ReturnInfo <bool> returnInfo, out FlowInInfo <FlowInitInfo <PersonTimeInfo> > conFlowIn)
        {
            conFlowIn = flowIn as FlowInInfo <FlowInitInfo <PersonTimeInfo> >;
            if (conFlowIn == null)
            {
                returnInfo.SetFailureMsg("流程输入不能转换为FlowInInfo<FlowApplyInfo<PersonTimeInfo>>");
                return(null);
            }
            ConcreteFormInfoT form = conFlowIn.Form as ConcreteFormInfoT;

            if (form == null)
            {
                returnInfo.SetFailureMsg($"表单不能转换为{typeof(ConcreteFormInfoT).Name}");
                return(null);
            }

            return(form);
        }
Ejemplo n.º 29
0
        /// <summary>
        /// 添加领用单
        /// </summary>
        /// <param name="collarOrderInput">领用单信息</param>
        /// <returns></returns>
        public ReturnInfo AddAssCollarOrder(AssCollarOrderInputDto collarOrderInput)
        {
            //验证
            ReturnInfo    rInfo = new ReturnInfo();
            StringBuilder sb    = new StringBuilder();
            string        maxId = _assCollarOrderRepository.GetMaxId();
            string        coId  = Helper.GenerateIDEx("CO", maxId);

            collarOrderInput.COID = coId;
            sb.Append(Helper.BasicValidate(collarOrderInput).ToString());
            if (sb.Length == 0)
            {
                var assco = Mapper.Map <AssCollarOrderInputDto, AssCollarOrder>(collarOrderInput);
                assco.CREATEDATE = DateTime.Now;
                assco.MODIFYDATE = DateTime.Now;
                try
                {
                    _unitOfWork.RegisterNew(assco);

                    foreach (var assId in collarOrderInput.AssIds)
                    {
                        //修改Asset的状态
                        Assets assets = _assetsRepository.GetByID(assId).FirstOrDefault();
                        if (assets != null)
                        {
                            assets.STATUS      = (int)STATUS.使用中;
                            assets.CURRENTUSER = collarOrderInput.USERID;

                            var User = _SMOSECDbContext.coreUsers.Where(a => a.USER_ID == assco.USERID)
                                       .AsNoTracking().FirstOrDefault();
                            if (User != null)
                            {
                                assets.LOCATIONID   = User.USER_LOCATIONID;
                                assets.DEPARTMENTID = User.USER_DEPARTMENTID;
                            }
                            else
                            {
                                throw new Exception("该用户不存在。");
                            }
                            _unitOfWork.RegisterDirty(assets);
                        }
                        //添加行项
                        var corow = new AssCollarOrderRow
                        {
                            ASSID      = assId,
                            COID       = coId,
                            CREATEDATE = DateTime.Now,
                            CREATEUSER = collarOrderInput.CREATEUSER,
                            MODIFYDATE = DateTime.Now,
                            MODIFYUSER = collarOrderInput.MODIFYUSER
                        };
                        _unitOfWork.RegisterNew(corow);

                        //添加处理记录
                        var pr = new AssProcessRecord
                        {
                            ASSID          = assId,
                            CREATEDATE     = DateTime.Now,
                            CREATEUSER     = collarOrderInput.CREATEUSER,
                            HANDLEDATE     = DateTime.Now,
                            HANDLEMAN      = collarOrderInput.HANDLEMAN,
                            MODIFYDATE     = DateTime.Now,
                            MODIFYUSER     = collarOrderInput.MODIFYUSER,
                            PROCESSCONTENT = collarOrderInput.USERID + "领用了" + assId,
                            PROCESSMODE    = (int)PROCESSMODE.领用,
                            QUANTITY       = 1
                        };
                        _unitOfWork.RegisterNew(pr);
                    }

                    bool result = _unitOfWork.Commit();
                    rInfo.IsSuccess = result;
                    rInfo.ErrorInfo = sb.ToString();
                    return(rInfo);
                }
                catch (Exception ex)
                {
                    _unitOfWork.Rollback();
                    sb.Append(ex.Message);
                    rInfo.IsSuccess = false;
                    rInfo.ErrorInfo = sb.ToString();
                    return(rInfo);
                }
            }
            else
            {
                rInfo.IsSuccess = false;
                rInfo.ErrorInfo = sb.ToString();
                return(rInfo);
            }
        }
Ejemplo n.º 30
0
        public async Task <ReturnInfo <LoginReturnInfo> > Login(LoginInfo loginInfo)
        {
            // 这里写自定义登录验证
            var context = await interactionService.GetAuthorizationContextAsync(loginInfo.ReturnUrl);

            var re = new ReturnInfo <LoginReturnInfo>()
            {
                Data = new LoginReturnInfo()
                {
                    ReturnUrl = loginInfo.ReturnUrl
                }
            };
            int num = HttpContext.Session.GetInt32("ErrLoginNum").GetValueOrDefault();

            num++;
            //错误登录超过3次则需要验证码
            if (num > 3)
            {
                if (string.IsNullOrWhiteSpace(loginInfo.VerificationCode))
                {
                    re.Data.IsVerificationCode = true;
                    re.SetFailureMsg("请输入验证码");

                    return(re);
                }

                if (string.Compare(loginInfo.VerificationCode, HttpContext.Session.GetString("VerificationCode"), true) != 0)
                {
                    re.Data.IsVerificationCode = true;
                    re.SetFailureMsg("验证码不对,请输入正确的验证码");

                    return(re);
                }
            }

            if (users.ValidateCredentials(loginInfo.LoginId, loginInfo.Password))
            {
                var user   = users.FindByUsername(loginInfo.LoginId);
                var isuser = new IdentityServerUser(user.SubjectId)
                {
                    DisplayName = user.Username,
                };

                isuser.AdditionalClaims.Add(new Claim(ClaimTypes.Name, user.Username));
                isuser.AdditionalClaims.Add(new Claim("ProviderName", user.ProviderName));
                isuser.AdditionalClaims.Add(new Claim("ProviderSubjectId", user.ProviderSubjectId));
                isuser.AdditionalClaims.Add(new Claim("c1", user.Claims.Where(p => p.Type == "c1").FirstOrDefault().Value));


                isuser.AdditionalClaims.Add(new Claim(ClaimTypes.MobilePhone, "13726354556"));
                isuser.AdditionalClaims.Add(new Claim(ClaimTypes.HomePhone, "07556585412"));
                isuser.AdditionalClaims.Add(new Claim(ClaimTypes.OtherPhone, "599866685"));
                isuser.AdditionalClaims.Add(new Claim(ClaimTypes.Email, "*****@*****.**"));

                isuser.AdditionalClaims.Add(new Claim(ClaimTypes.Country, "中国"));
                isuser.AdditionalClaims.Add(new Claim(ClaimTypes.StateOrProvince, "广东省"));
                isuser.AdditionalClaims.Add(new Claim(ClaimTypes.StreetAddress, "平湖街道"));

                re.SetSuccessMsg("登录成功");

                HttpContext.Session.Remove("VerificationCode");
                HttpContext.Session.Remove("ErrLoginNum");

                await HttpContext.SignInAsync(isuser);
            }
            else
            {
                HttpContext.Session.SetInt32("ErrLoginNum", num);
                re.Data.IsVerificationCode = IsNeedIsVerificationCode();

                re.SetFailureMsg("用户名或密码不对");
            }

            return(re);
        }
Ejemplo n.º 31
0
        /// <summary>
        /// 添加退库单
        /// </summary>
        /// <param name="restoreOrderInput">退库单信息</param>
        /// <returns></returns>
        public ReturnInfo AddAssRestoreOrder(AssRestoreOrderInputDto restoreOrderInput)
        {
            //验证
            ReturnInfo    rInfo = new ReturnInfo();
            StringBuilder sb    = new StringBuilder();
            string        maxId = _assRestoreOrderRepository.GetMaxID();
            string        rsoId = Helper.GenerateIDEx("RS", maxId);

            restoreOrderInput.RSOID = rsoId;
            sb.Append(Helper.BasicValidate(restoreOrderInput).ToString());
            if (sb.Length == 0)
            {
                var assrso = Mapper.Map <AssRestoreOrderInputDto, AssRestoreOrder>(restoreOrderInput);
                assrso.CREATEDATE = DateTime.Now;
                assrso.MODIFYDATE = DateTime.Now;
                try
                {
                    _unitOfWork.RegisterNew(assrso);

                    foreach (var assId in restoreOrderInput.AssIds)
                    {
                        //修改Asset的状态
                        Assets assets = _assetsRepository.GetByID(assId).FirstOrDefault();
                        if (assets != null)
                        {
                            assets.STATUS      = (int)STATUS.闲置;
                            assets.CURRENTUSER = "";
                            _unitOfWork.RegisterDirty(assets);
                        }
                        //添加行项
                        var corow = new AssRestoreOrderRow
                        {
                            ASSID      = assId,
                            RSOID      = rsoId,
                            CREATEDATE = DateTime.Now,
                            CREATEUSER = restoreOrderInput.CREATEUSER,
                            MODIFYDATE = DateTime.Now,
                            MODIFYUSER = restoreOrderInput.MODIFYUSER
                        };
                        _unitOfWork.RegisterNew(corow);

                        //添加处理记录
                        var pr = new AssProcessRecord
                        {
                            ASSID          = assId,
                            CREATEDATE     = DateTime.Now,
                            CREATEUSER     = restoreOrderInput.CREATEUSER,
                            HANDLEDATE     = DateTime.Now,
                            HANDLEMAN      = restoreOrderInput.HANDLEMAN,
                            MODIFYDATE     = DateTime.Now,
                            MODIFYUSER     = restoreOrderInput.MODIFYUSER,
                            PROCESSCONTENT = restoreOrderInput.RESTORER + "退库了" + assId,
                            PROCESSMODE    = (int)PROCESSMODE.退库,
                            QUANTITY       = 1
                        };
                        _unitOfWork.RegisterNew(pr);
                    }
                    bool result = _unitOfWork.Commit();
                    rInfo.IsSuccess = result;
                    rInfo.ErrorInfo = sb.ToString();
                    return(rInfo);
                }
                catch (Exception ex)
                {
                    _unitOfWork.Rollback();
                    sb.Append(ex.Message);
                    rInfo.IsSuccess = false;
                    rInfo.ErrorInfo = sb.ToString();
                    return(rInfo);
                }
            }
            else
            {
                rInfo.IsSuccess = false;
                rInfo.ErrorInfo = sb.ToString();
                return(rInfo);
            }
        }
Ejemplo n.º 32
0
 /// <summary>
 /// 验证
 /// </summary>
 /// <param name="returnInfo">返回信息</param>
 /// <param name="workflow">工作流</param>
 protected virtual void Vali(ReturnInfo <bool> returnInfo, WorkflowInfo workflow)
 {
 }
Ejemplo n.º 33
0
 /// <summary>
 /// 验证流程输入
 /// </summary>
 /// <param name="returnInfo">返回信息</param>
 /// <param name="flowIn">流程输入</param>
 /// <param name="workflow">工作流</param>
 /// <param name="connectionId">连接ID</param>
 /// <param name="currUser">当前用户</param>
 /// <returns>工作流定义</returns>
 protected abstract WorkflowDefineInfo ValiFlowIn(ReturnInfo <bool> returnInfo, FlowInT flowIn, out WorkflowInfo workflow, string connectionId = null, BasicUserInfo <int> currUser = null);
Ejemplo n.º 34
0
        internal void ReturnAsync(IChargingForm charging_form,
            // bool bLost,
            string strAction,
            string strReaderBarcode,
            string strItemBarcode,
            string strConfirmItemRecPath,
            string strReaderSummary,
            string strItemXml,
            ReturnInfo return_info,
            DateTime start_time,
            DateTime end_time)
        {
#if !USE_THREAD

            Delegate_Return d = new Delegate_Return(Return);
            this.MainForm.BeginInvoke(d, new object[] {charging_form,
            bLost,
            strReaderBarcode,
            strItemBarcode,
            strConfirmItemRecPath,
            strReaderSummary,
            strItemXml,
            return_info,
            start_time,
            end_time});
#else
            OneCall call = new OneCall();
            call.name = "return";
            call.func = new Delegate_Return(Return);
            call.parameters = new object[] { charging_form,
            // bLost,
            strAction,
            strReaderBarcode,
            strItemBarcode,
            strConfirmItemRecPath,
            strReaderSummary,
            strItemXml,
            return_info,
            start_time,
            end_time};

            AddCall(call);
#endif
        }
Ejemplo n.º 35
0
 /// <summary>
 /// 执行核心
 /// </summary>
 /// <param name="returnInfo">返回信息</param>
 /// <param name="flowIn">流程输入</param>
 /// <param name="findFlowCensorshipOut">查找流程关卡输出</param>
 /// <param name="connectionId">连接ID</param>
 /// <param name="currUser">当前用户</param>
 protected abstract void ExecCore(ReturnInfo <bool> returnInfo, FlowInT flowIn, FlowCensorshipOutInfo findFlowCensorshipOut, string connectionId = null, BasicUserInfo <int> currUser = null);
Ejemplo n.º 36
0
        /// <summary>
        /// 执行返回函数且带有连接ID
        /// </summary>
        /// <typeparam name="OutT">输出类型</typeparam>
        /// <param name="func">函数</param>
        /// <param name="returnInfo">返回信息</param>
        /// <param name="connectionId">连接ID</param>
        /// <param name="accessMode">访问模式</param>
        /// <returns>返回信息</returns>
        protected ReturnInfo <OutT> ExecReturnFuncAndConnectionId <OutT>(Func <ReturnInfo <OutT>, string, OutT> func, ReturnInfo <OutT> returnInfo = null, string connectionId = null, AccessMode accessMode = AccessMode.MASTER)
        {
            return(ExecReturnFunc <OutT>((reInfo) =>
            {
                OutT result = default(OutT);
                ExecProcConnectionId((connId) =>
                {
                    result = func(reInfo, connId);
                }, connectionId, accessMode);

                return result;
            }, returnInfo));
        }
        /// <summary>
        /// 提交按钮处理事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void SubmitBtn_Click(object sender, EventArgs e)
        {
            try
            {
                //提交动作
                string strActionName = ((Button)sender).Text.Trim();
                base.SubAction = strActionName;

                string strErrMsg = string.Empty;
                string strMessage = string.Empty;
                string strErrMessage = string.Empty;

                #region 传阅
                if (strActionName == ProcessConstString.SubmitAction.ProgramFile.ACTION_CIRCULATE)
                {
                    if (string.IsNullOrEmpty(hfCirculateUserID.Value) && string.IsNullOrEmpty(hfCirculateDeptID.Value))
                    {
                        JScript.Alert(ConstString.PromptInfo.ACTION_CHECK_CIRCULATE, true);
                        return;
                    }
                    try
                    {
                        base.Circulate(hfCirculateDeptID.Value, "0", string.Empty, hfCirculateUserID.Value, "1", true, string.Empty, false);

                        string strDay = OAConfig.GetConfig("传阅有效期", "天数");
                        int day = string.IsNullOrEmpty(strDay) ? -1 : int.Parse(strDay);
                        wfCirculateDate.Text = DateTime.Now.AddDays(day).ToString();
                        if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_QG)
                        {
                            QualityCheck();
                        }//质保审查
                        else if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_AUDIT)
                        {
                            AuditCheck();
                        }//审核
                        JScript.Alert(ConstString.PromptInfo.ACTION_CIRCULATE_SUC, true);
                        return;
                    }
                    catch (Exception ex)
                    {
                        JScript.Alert(ex.ToString(), true);
                        return;
                    }
                }
                #endregion

                #region 添加多条意见
                //添加意见按钮事件
                if (strActionName == ProcessConstString.SubmitAction.ProgramFile.ACTION_ADD_COMMENT)
                {
                    this.pnlComment.Visible = true;
                    this.btnCancel.Visible = true;
                    this.btnConfirm.Visible = true;
                    this.btnAdd.Visible = false;
                    return;
                }
                //确定按钮事件
                if (strActionName == ProcessConstString.SubmitAction.ProgramFile.ACTION_CONFIRM)
                {
                    if (string.IsNullOrEmpty(txtInfo2.Text.Trim()))
                    {
                        JScript.Alert(ConstString.PromptInfo.ACTION_CHECK_ADD_COMMENT, true);
                        return;
                    }
                    if (txtInfo2.Text.Trim().Length > 500)
                    {
                        JScript.Alert(ConstString.PromptInfo.ACTION_CHECK_CONTENT_LEN500, true);
                        return;
                    }
                    if (string.IsNullOrEmpty(hfEditIndex.Value))
                    {
                        CYiJian objYj = new CYiJian();

                        objYj.Content = SysString.InputText(txtInfo2.Text.Trim());
                        objYj.FinishTime = DateTime.Now.ToString();
                        objYj.ID = base.IdentityID.ToString();
                        objYj.ViewName = base.StepName;

                        /*开始    流程代理         */
                        if (OAConfig.GetConfig(ConstString.Config.Section.Start_WORKFLOW_AGENT, ConstString.Config.Key.IS_START) == "1" && wfReceiveUserID.Text != CurrentUserInfo.UserName)
                        {
                            objYj.UserName = wfReceiveUserName.Text;
                            objYj.UserID = wfReceiveUserID.Text;
                        }
                        else
                        {
                            objYj.UserName = CurrentUserInfo.DisplayName;
                            objYj.UserID = CurrentUserInfo.UserName;
                        }
                        /*结束              */
                        objYj.DeptID = base.StepName == ProcessConstString.StepName.ProgramFile.STEP_DEPTSIGN ? B_PF.GetDeptIDByUserID(ucBuMenHuiQian.UCGetHQList(), objYj.UserID) : string.Empty;

                        YiJianInfoList.Add(objYj);
                        txtInfo2.Text = string.Empty;
                        trYiJianHead.Visible = YiJianInfoList.Count > 0 ? true : false; ;

                        rptComment.DataSource = YiJianInfoList;
                        rptComment.DataBind();
                    }//添加意见
                    else
                    {
                        int index = int.Parse(hfEditIndex.Value);
                        Label lblContent = rptComment.Items[index].FindControl("lblContent") as Label;
                        lblContent.Text = SysString.InputText(txtInfo2.Text);
                        YiJianInfoList[index].Content = lblContent.Text;

                        this.pnlComment.Visible = false;
                        this.btnCancel.Visible = false;
                        btnConfirm.Visible = false;
                        this.btnAdd.Visible = true;
                        txtInfo2.Text = string.Empty;
                        hfEditIndex.Value = string.Empty;
                    }//修改意见
                    return;
                }
                //取消按钮事件
                if (strActionName == ProcessConstString.SubmitAction.ProgramFile.ACTION_CANCLE)
                {
                    this.pnlComment.Visible = false;
                    this.btnCancel.Visible = false;
                    this.btnConfirm.Visible = false;
                    this.btnAdd.Visible = true;
                    txtInfo2.Text = string.Empty;
                    hfEditIndex.Value = string.Empty;
                    return;
                }
                #endregion

                #region 处理落实情况
                //编写节点 处理 质保、部门会签、领导会签、批准意见
                if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_WRITE && pnlDealSign.Visible == true)
                {
                    B_PF bllProFile = new B_PF();

                    List<M_ProgramFile.DeptSign> deptSignList = B_PF.GetDeptSignList(rptDept, ucBuMenHuiQian.UCGetHQList());//部门会签意见
                    List<M_ProgramFile.LeaderSign> leaderSignList = B_PF.GetLeaderSignList(rptLeader, ucLDHuiQian.UCGetHQList());//领导会签
                    List<M_ProgramFile.QualityCheck> qualityCheckList = B_PF.GetQualityCheckList(rptQG);//质保审查
                    List<M_ProgramFile.PiZhun> piZhunList = B_PF.GetPiZhunList(rptPiZhun);//批准意见
                    List<B_PF> entityList = B_PF.GetpfEntityList(deptSignList, leaderSignList, qualityCheckList, piZhunList);
                    if (!bllProFile.EnTransSave(entityList))
                    {
                        JScript.Alert(ConstString.PromptInfo.ACTION_SUBMIT_DEAL_FAIL, true);
                        return;
                    }//更新当前提交的意见落实情况

                }
                //质保审查节点 处理批准意见
                if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_QG)
                {
                    List<M_ProgramFile.PiZhun> piZhunList = B_PF.GetPiZhunList(rptPiZhun);//批准意见
                    if (piZhunList.Count > 0)
                    {
                        B_PF.UpdateApproveDealCondition(piZhunList);
                    }
                }

                #endregion

                //保存
                if (strActionName == ProcessConstString.SubmitAction.ACTION_SAVE_DRAFT)
                {
                    B_PF bllProFile = ControlToEntity(true) as B_PF;

                    //用于提示信息
                    bllProFile.IsFormSave = true;

                    bllProFile.SubmitAction = strActionName;
                    if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_ASSIST_SIGN)
                    {
                        ReturnInfo l_objReturnInfo = FormSubmitForProFile(true, strActionName, string.Empty, FSWFStatus.Assigned.ToString(), bllProFile as EntityBase);
                        if (!l_objReturnInfo.IsSucess)
                        {
                            return;
                        }
                        JScript.Alert(ConstString.PromptInfo.ACTION_SAVE_SUC, true);
                    }
                    else
                    {
                        base.FormSubmit(true, strActionName, null, bllProFile as EntityBase);
                    }
                }
                else
                {
                    B_PF bllProFile = ControlToEntity(false) as B_PF;
                    bllProFile.IsFormSave = false;
                    bllProFile.SubmitAction = strActionName;
                    //撤销
                    if (strActionName == ProcessConstString.SubmitAction.ACTION_CANCEL)
                    {
                        base.FormCancel(bllProFile as EntityBase);
                    }
                    else
                    {
                        //验证及提示
                        bllProFile.GetSubmitMessage(base.StepName, strActionName, bllProFile, ref strErrMessage, ref strMessage);
                        if (!string.IsNullOrEmpty(strErrMessage))
                        {
                            JScript.Alert(strErrMessage, true);
                            return;
                        }

                        //表单验证
                        strErrMsg = bllProFile.SeverCheck(StepName, bllProFile);

                        if (!string.IsNullOrEmpty(strErrMsg))
                        {
                            JScript.Alert(strErrMsg, true);
                            return;
                        }
                        else
                        {
                            #region 分发节点 点击分发完成按钮 执行分发
                            if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_SEND &&
                                base.SubAction == ProcessConstString.SubmitAction.ProgramFile.ACTION_SEND_COMPLETE)
                            {
                                if (string.IsNullOrEmpty(hfSendDeptID.Value) && string.IsNullOrEmpty(hfSendUserID.Value))
                                {
                                    JScript.Alert(ConstString.PromptInfo.ACTION_CHECK_SEND, true);
                                    return;
                                }
                                try
                                {
                                    base.Circulate(hfSendDeptID.Value, "0", string.Empty, hfSendUserID.Value, "1", true, string.Empty, false);
                                }
                                catch (Exception ex)
                                {
                                    JScript.Alert(ex.ToString(), true);
                                    return;
                                }
                            }
                            #endregion

                            #region 分发节点 点击归档按钮 执行归档
                            if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_SEND &&
                               base.SubAction == ProcessConstString.SubmitAction.ProgramFile.ACTION_ARCHIVE)
                            {
                                bllProFile.ProgramType1 = B_ProgramFileInfo.GetProTypeName(bllProFile.ProgramFileID);
                                bllProFile.ProgramType2 = B_ProgramFileInfo.GetProSubTypeName(bllProFile.ProgramFileID);
                                string strDeptName = OADept.GetDeptByDeptID(bllProFile.SendDeptID).Name;
                                string strRes = string.Empty;
                                try//renjinquan改
                                {
                                    string strArchiveResult = Devolve(bllProFile, strDeptName, CurrentUserInfo.DisplayName, out strRes);
                                    base.Devolved(base.ProcessID, base.TemplateName);
                                    JScript.Alert("归档成功!\\n流水号:" + strRes, true);
                                }
                                catch (Exception ex)
                                {
                                    base.WriteLog(ex.Message);
                                    JScript.Alert("归档失败!请查看配置是否正确!", true);
                                }
                                //Regex.IsMatch(strArchiveResult, @"^\d+$") ? ConstString.PromptInfo.ACTION_ARCHIVE_SUC : strArchiveResult, true);
                                return;
                            }
                            #endregion

                            #region 程序发起、分发节点 更新程序文件信息
                            if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_WRITE)
                            {
                                ReturnInfo retInfo = B_ProgramFileInfo.GetUpdateMsg(bllProFile, ConstString.ProgramFile.PROGRAM_UNFINISHED);
                                if (retInfo.IsSucess == false)
                                {
                                    JScript.Alert(retInfo.ErrMessage, true);
                                    return;
                                }

                            }
                            if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_SEND &&
                                base.SubAction == ProcessConstString.SubmitAction.ProgramFile.ACTION_SEND_COMPLETE)
                            {
                                ReturnInfo retInfo = new ReturnInfo();
                                if (bllProFile.ApplyStyle == ConstString.ProgramFile.PROGRAM_DELETE)
                                {
                                    B_ProgramFileInfo bllFileInfo = new B_ProgramFileInfo();
                                    retInfo = bllFileInfo.IsLogout(bllProFile, ConstString.ProgramFile.PROGRAM_LOGOUT);
                                }//已注销
                                else
                                {
                                    retInfo = B_ProgramFileInfo.GetUpdateMsg(bllProFile, ConstString.ProgramFile.PROGRAM_ARCHIVED);
                                }//已归档
                                if (retInfo.IsSucess == false)
                                {
                                    JScript.Alert(retInfo.ErrMessage, true);
                                    return;
                                }
                            }

                            #endregion

                            Hashtable nValues = new Hashtable();

                            #region 协助会签
                            if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_DEPTSIGN)
                            {
                                if (strActionName == ProcessConstString.SubmitAction.ProgramFile.ACTION_ASSIGN)
                                {
                                    nValues = bllProFile.GetProcNameValue(base.StepName, strActionName, bllProFile);
                                    string strSubProcInstID = GetCreateSubProcessID(ProcessConstString.TemplateName.PROGRAM_FILE_ASSIGN_SIGN, nValues);
                                    bllProFile.ChildProcessID = strSubProcInstID;
                                    ReturnInfo l_objReturnInfo = FormSubmitForProFile(false, strActionName, string.Empty, FSWFStatus.Assigned.ToString(), bllProFile as EntityBase);
                                    if (!l_objReturnInfo.IsSucess)
                                    {
                                        return;
                                    }
                                    this.ShowMsgBox(this.Page, MsgType.VbInformation, strMessage, base.EntryAction);
                                    return;
                                }//交办
                                if (!string.IsNullOrEmpty(bllProFile.ChildProcessID) && strActionName == ProcessConstString.SubmitAction.ACTION_SUBMIT)
                                {
                                    AgilePointWF ag = new AgilePointWF();
                                    WorkflowService api = ag.GetAPI();
                                    WFEvent wfEvnet = api.CancelProcInst(bllProFile.ChildProcessID);
                                    if (wfEvnet.Error != null)
                                    {
                                        JScript.Alert(wfEvnet.Error, true);
                                        return;
                                    }
                                    bllProFile.ChildProcessID = string.Empty;
                                }//存在交办子流程 继续提交 撤销子流程
                            }
                            if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_ASSIST_SIGN)
                            {
                                if (strActionName == ProcessConstString.SubmitAction.ACTION_COMPLETE)
                                {
                                    ReturnInfo l_objReturnInfo = FormSubmitForProFile(false, strActionName, bllProFile.ParentTBID, FSWFStatus.Completed.ToString(), bllProFile as EntityBase);
                                    if (!l_objReturnInfo.IsSucess)
                                    {
                                        return;
                                    }
                                }
                                this.ShowMsgBox(this.Page, MsgType.VbInformation, strMessage, base.EntryAction);
                                return;
                            }

                            #endregion

                            //调用工作流
                            nValues = bllProFile.GetProcNameValue(base.StepName, strActionName, bllProFile);
                            base.FormSubmit(false, strActionName, nValues, bllProFile as EntityBase);
                        }
                    }
                }

                //流程节点结束提示
                if (!string.IsNullOrEmpty(strMessage))
                {
                    JScript.Alert(strMessage, true);
                }
            }
            catch (Exception ex)
            {
                JScript.Alert(ex.Message, true);
            }
        }