Exemplo n.º 1
0
        private async void RefreshData()
        {
            Info = true;
            await Task.Run(() =>
            {
                lock (SqlDataBase)
                {
                    TransactionData    = null;
                    TransactionData    = SqlDataBase.GetTable(CurrentPurchase);
                    EmployeeData       = SqlDataBase.GetTable("Employee");
                    SaleData           = SqlDataBase.GetTable("ClientSale");
                    SeekerData         = SqlDataBase.GetTable("ClientSeeker");
                    OfficeData         = SqlDataBase.GetTable("Office");
                    OfficeEmployeeData = SqlDataBase.GetTable("OfficeEmployee");

                    TransactionData.RowChanged    += TransactionData_RowChanged;
                    EmployeeData.RowChanged       += EmployeeData_RowChanged;
                    SaleData.RowChanged           += SaleData_RowChanged;
                    SeekerData.RowChanged         += SeekerData_RowChanged;
                    OfficeData.RowChanged         += OfficeData_RowChanged;
                    OfficeEmployeeData.RowChanged += OfficeEmployee_RowChanged;
                }
            });

            Info = false;
        }
Exemplo n.º 2
0
        /// <summary>
        /// 得到所有提案信息
        /// </summary>
        /// <param name="term"></param>
        /// <returns></returns>
        public JsonResult GetTextSelectUrlProposalInfo(string term)
        {
            string SystemID = Request["SystemID"] == null ?"-1": Request["SystemID"].ToString();

            System.Data.DataTable dtContent = new System.Data.DataTable();
            // DataTable dtUser = GPMS.Interface.DataLibrary.GetUserDataByFuzzy(term.Trim(), 10);
            SqlDataBase dd     = new SqlDataBase();
            string      str    = "select top(10) a.ProposalID,a.ProposalName from[IPP].[dbo].[ipp_Proposal] a where a.BillType <> 10 and a.SystemInfo =" + SystemID + " and ( a.ProposalName like '%" + term + "%' or a.ProposalID like '%" + term + "%') ";
            DataTable   dtUser = dd.GetTable(str);

            dtContent.Columns.Add("value"); //这几个就是传到视图的值
            dtContent.Columns.Add("label"); //这里估计就是得到输入值后控件下方显示的文本格式,也是点击后显示在控件的值
            dtContent.Columns.Add("desc");  //排序
            dtContent.Columns.Add("icon");
            foreach (DataRow drUser in dtUser.Rows)
            {
                //if (i.ToString().IndexOf(term) == -1)
                //{//模拟查询
                //    continue;
                //}
                DataRow dr = dtContent.NewRow();
                dr[0] = drUser["ProposalID"].ToString();
                dr[1] = drUser["ProposalName"].ToString();
                dr[2] = drUser["ProposalID"].ToString();
                dr[3] = drUser["ProposalID"].ToString();
                dtContent.Rows.Add(dr);
            }
            //select a as value,b as label,c as desc ,d as icon from table where title='term'
            Donlim.Library.Entitys.EntityBase entityBase = new Donlim.Library.Entitys.EntityBase();//向上转型以使用父类的方法
            entityBase.Dt = dtContent;
            JsonResult jsonResult = entityBase.ToJsonOnlyData();

            return(jsonResult);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 查询开发工程师
        /// </summary>
        /// <param name="term"></param>
        /// <returns></returns>
        public JsonResult GetTextSelectUrlDevUser(string term)
        {
            System.Data.DataTable dtContent = new System.Data.DataTable();
            // DataTable dtUser = GPMS.Interface.DataLibrary.GetUserDataByFuzzy(term.Trim(), 10);
            SqlDataBase dd     = new SqlDataBase();
            string      str    = "select top(10) a.UserCode,a.UserName from [IPP].[dbo].[V_Developer] a where (a.UserCode like '%" + term + "%' or a.UserName like '%" + term + "%')";
            DataTable   dtUser = dd.GetTable(str);

            dtContent.Columns.Add("value"); //这几个就是传到视图的值
            dtContent.Columns.Add("label"); //这里估计就是得到输入值后控件下方显示的文本格式,也是点击后显示在控件的值
            dtContent.Columns.Add("desc");  //排序
            dtContent.Columns.Add("icon");
            foreach (DataRow drUser in dtUser.Rows)
            {
                //if (i.ToString().IndexOf(term) == -1)
                //{//模拟查询
                //    continue;
                //}
                DataRow dr = dtContent.NewRow();
                dr[0] = drUser["UserCode"].ToString();
                dr[1] = drUser["UserName"].ToString();
                dr[2] = drUser["UserCode"].ToString();
                dr[3] = drUser["UserCode"].ToString();
                dtContent.Rows.Add(dr);
            }
            //select a as value,b as label,c as desc ,d as icon from table where title='term'
            Donlim.Library.Entitys.EntityBase entityBase = new Donlim.Library.Entitys.EntityBase();//向上转型以使用父类的方法
            entityBase.Dt = dtContent;
            JsonResult jsonResult = entityBase.ToJsonOnlyData();

            return(jsonResult);
        }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            SqlDataBase cnx = new SqlDataBase(
                @"Data Source=(localdb)\MSSQLLocalDB;
                      Initial Catalog=Shop;Integrated Security=True;");

            DataTable table = cnx.Select("Products");

            foreach (DataRow row in table.Rows)
            {
                Console.Write($"ID = {row[0]}");
                Console.WriteLine($" - Label = {row["Label"]}");
            }
            Console.ReadKey();
        }
Exemplo n.º 5
0
        //初始化试卷,从数据库中将试题取出
        protected void InitData()
        {
            //Response.Write(Session["PaperID"].ToString());
            //Response.End();

            IDataParameter[] Params1 = new IDataParameter[2];
            SqlDataBase      DB      = new SqlDataBase();
            int paperID = int.Parse(Session["PaperID"].ToString());

            Params1[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID);            //试卷编号
            Params1[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "单选题");            //题目类型
            DataSet ds1 = DB.GetDataSet("Proc_PaperDetail", Params1);

            GridView1.DataSource = ds1;
            GridView1.DataBind();

            ((Label)GridView1.HeaderRow.FindControl("Label27")).Text = ((Label)GridView1.Rows[0].FindControl("Label4")).Text;

            IDataParameter[] Params2 = new IDataParameter[2];
            Params2[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID);            //试卷编号
            Params2[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "多选题");            //题目类型
            DataSet ds2 = DB.GetDataSet("Proc_PaperDetail", Params2);

            GridView2.DataSource = ds2;
            GridView2.DataBind();
            ((Label)GridView2.HeaderRow.FindControl("Label28")).Text = ((Label)GridView2.Rows[0].FindControl("Label8")).Text;

            IDataParameter[] Params3 = new IDataParameter[2];

            Params3[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID);            //试卷编号
            Params3[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "判断题");            //题目类型
            DataSet ds3 = DB.GetDataSet("Proc_PaperDetail", Params3);

            GridView3.DataSource = ds3;
            GridView3.DataBind();
            ((Label)GridView3.HeaderRow.FindControl("Label29")).Text = ((Label)GridView3.Rows[0].FindControl("Label12")).Text;

            IDataParameter[] Params4 = new IDataParameter[2];

            Params4[0] = DB.MakeInParam("@PaperID", SqlDbType.Int, 4, paperID);            //试卷编号
            Params4[1] = DB.MakeInParam("@Type", SqlDbType.VarChar, 10, "填空题");            //题目类型
            DataSet ds4 = DB.GetDataSet("Proc_PaperDetail", Params4);

            GridView4.DataSource = ds4;
            GridView4.DataBind();
            ((Label)GridView4.HeaderRow.FindControl("Label30")).Text = ((Label)GridView4.Rows[0].FindControl("Label17")).Text;
        }
Exemplo n.º 6
0
        private async void TRefreshData()
        {
            Info = true;
            await Task.Run(() =>
            {
                lock (SqlDataBase)
                {
                    TransactionData             = null;
                    TransactionData             = SqlDataBase.GetTable(CurrentPurchase);
                    TransactionData.RowChanged += TransactionData_RowChanged;
                }
            });

            if (TransactionData != null)
            {
                Info = false;
            }
        }
Exemplo n.º 7
0
        public JsonResult BackTo(string txtIppNo, string txtIppName)
        {
            SqlDataBase db = new SqlDataBase();
            DataTable   dt = db.GetTable(string.Format(@"SELECT B.WorkflowID FROM dbo.ipp_Proposal A INNER JOIN wf_WorkflowBill B ON A.ProposalID=B.ModelBillID
 WHERE A.ProposalID='{0}' AND A.ProposalName='{1}'", txtIppNo, txtIppName));

            if (dt.Rows.Count == 0)
            {
                return(base.GetJsonResult("没有找到该提案单据", false, null));
            }
            else
            {
                SqlParameter[] parms = new SqlParameter[2];
                parms[0] = new SqlParameter("@ProposalID", SqlDbType.VarChar, 20);
                parms[1] = new SqlParameter("@ProposalName", SqlDbType.NVarChar, 100);

                parms[0].Value = txtIppNo;
                parms[1].Value = txtIppName;
                db.RunProc("P_BackToOneKey", parms);
                return(base.GetJsonResult("退回成功!", true, null));
            }
        }
Exemplo n.º 8
0
 public CreateID()
 {
     db = new SqlDataBase();
 }
Exemplo n.º 9
0
 protected void Page_Load(object sender, EventArgs e)
 {
     SqlDataBase db = new SqlDataBase();
 }
Exemplo n.º 10
0
 public SqlClose()
 {
     db = new SqlDataBase();
 }
Exemplo n.º 11
0
 public SqlInterimRt()
 {
     db = new SqlDataBase();
 }
Exemplo n.º 12
0
 public SqlPrjSubmit()
 {
     db = new SqlDataBase();
 }
Exemplo n.º 13
0
 public SqlUser()
 {
     db   = new SqlDataBase();
     user = new UserBean();
 }
Exemplo n.º 14
0
        /// <summary>
        /// 作废单据
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public JsonResult RunFail(string TableName, string KeyField, string KeyValue)
        {
            SqlDataBase sql        = new SqlDataBase();
            DataTable   TM         = null;
            string      BillState  = null;
            bool        Faill      = false;
            string      Account    = "";
            string      instanceId = "";
            string      ErrMsg     = "作废失败";
            string      Where      = KeyField + "= '" + KeyValue + "'";
            string      Where_wf   = "";

            TM = sql.GetTable("select BillState,CreateMan,WorkflowID from  " + TableName + " where " + Where + "");
            if (TM.Rows.Count > 0)
            {
                BillState  = TM.Rows[0]["BillState"].ToString();
                Account    = TM.Rows[0]["CreateMan"].ToString();
                instanceId = TM.Rows[0]["WorkflowID"].ToString();
                Where_wf   = "InstanceID= '" + instanceId + "'";
            }

            bool flag = false;
            //检查审批,是否是退审的
            SqlDataBase sql_developmentform = new SqlDataBase();

            sql_developmentform.SqlConnectionString = ConfigurationManager.ConnectionStrings["DevelopPlatForm"].ToString();
            DataTable dtFlow = sql_developmentform.GetTable(string.Format(@"SELECT C.StepSN
  FROM [wf_Instance] A
  INNER JOIN wf_InstanceStep B ON A.InstanceID=B.InstanceID
  INNER JOIN wf_ProjectStep C ON B.StepID=C.StepID
    where B.IsActive='true' and A.BillID='{0}' AND A.BillIDTableName='{1}'", KeyValue, TableName));

            if (dtFlow.Rows.Count > 0)
            {
                if (dtFlow.Rows[0]["StepSN"].ToString() == "0")
                {
                    flag = true;
                }
            }
            if (BillState == "0" || flag == true)
            {
                if (UserEntity.Account == Account)//制单人才可以作废
                {
                    sql.RunSql("update " + TableName + " set BillState=3 where " + Where + "");
                    sql_developmentform.RunSql("update wf_InstanceStep set IsActive=0 where " + Where_wf + "");
                    sql_developmentform.RunSql("update wf_InstanceStepPersonLiable set IsActive=0 where " + Where_wf + "");
                    sql_developmentform.RunSql("update wf_Instance set IsActive=0 where " + Where_wf + "");
                    ErrMsg = "作废成功";
                    Faill  = true;
                }
            }
            else if (BillState == "3")
            {
                ErrMsg = "单据已作废\r\n不能进行重复操作";
                Faill  = false;
            }
            else
            {
                ErrMsg = "单据已提交\r\n不能进行作废操作";
                Faill  = false;
            }

            return(GetJsonResult(ErrMsg, Faill, null));
        }
Exemplo n.º 15
0
 public SqlNews()
 {
     db   = new SqlDataBase();
     news = new NewsBean();
 }
Exemplo n.º 16
0
 public SqlMoney()
 {
     db    = new SqlDataBase();
     money = new UserMoneyBean();
 }
Exemplo n.º 17
0
        /// <summary>
        /// 用于获取评审人评分数据
        /// </summary>
        /// <param name="FrameReviewID">框架评审单号</param>
        /// <param name="Reviewer">评审人工号</param>
        public FrameReviewBLL(string FrameReviewID, string Reviewer)
        {
            string flagReviewer = null;

            flagReviewer = Reviewer;

            FrameReviewEntity1 = new V_FrameReviewEntity();
            FrameReviewEntity1.ResetForSearch();
            FrameReviewEntity1.FrameReviewID = FrameReviewID;
            FrameReviewEntity1.GetTable(true);

            FrameReviewerShowEntity = new FrameReviewerEntity();
            FrameReviewerShowEntity.ResetForSearch();
            FrameReviewerShowEntity.FrameReviewID = FrameReviewID;
            FrameReviewerShowEntity.Reviewer      = Reviewer;
            FrameReviewerShowEntity.GetTable(true);


            FrameReviewScoreEntity          = new V_FrameReviewScoreShowEntity();
            FrameReviewScoreEntity.PageSize = 0;//设置返回数据,即集合变量的大小,为0则放回全部数据
            FrameReviewScoreEntity.ResetForSearch();

            FrameReviewScoreEntity.FrameReviewID = FrameReviewID;
            FrameReviewScoreEntity.OrderFields   = "StandardType,SequenceID";

            FrameReviewScoreList = FrameReviewScoreEntity.ToList <V_FrameReviewScoreShowEntity>();
            foreach (var s in FrameReviewScoreList)
            {
                if (string.IsNullOrEmpty(s.Reviewer))
                {
                    Isexist = 0;//插入
                    break;
                }
                else if (s.Reviewer == flagReviewer)
                {
                    Reviewer = flagReviewer;
                    Isexist  = 1;//更新
                    break;
                }
                else
                {
                    Reviewer = s.Reviewer;
                    Isexist  = 2;//插入,评委第一次评分
                }
            }

            //其实这里可以用一个foreach来遍历标准表,依次插数据到实体类中然后插入
            if (Isexist != 0)
            {
                FrameReviewScoreEntity          = new V_FrameReviewScoreShowEntity();
                FrameReviewScoreEntity.PageSize = 0;
                FrameReviewScoreEntity.ResetForSearch();
                if (string.IsNullOrEmpty(FrameReviewID) || string.IsNullOrEmpty(Reviewer))
                {
                    FrameReviewID = "-1";
                    Reviewer      = "-1";
                }
                FrameReviewScoreEntity.FrameReviewID = FrameReviewID;
                FrameReviewScoreEntity.Reviewer      = Reviewer;

                FrameReviewScoreList = FrameReviewScoreEntity.ToList <V_FrameReviewScoreShowEntity>();
                if (Isexist == 2 && Reviewer != flagReviewer)
                {
                    if (FrameReviewEntity1.FrameReviewers.Contains(flagReviewer))
                    {
                        foreach (var i in FrameReviewScoreList)//第一次评分时消除历史数据
                        {
                            i.reviewerReview = null;
                        }
                    }
                    else
                    { //其他人员查看
                        V_FrameReviewEntity FrameReviewEntity = new V_FrameReviewEntity();
                        FrameReviewEntity.ResetForSearch();
                        FrameReviewEntity.FrameReviewID = FrameReviewID;
                        FrameReviewEntity.GetTable(true);
                        decimal?devDay   = FrameReviewEntity.DevelopDays;
                        decimal?passRate = FrameReviewEntity.PassingRate;

                        SqlDataBase db = new SqlDataBase();
                        //妙,这里取最小值作为分数,避免了相加的麻烦,good for you
                        DataTable dt = db.GetTable(" SELECT A.Reviewerreview FROM(SELECT StandardType,SequenceID,MIN(reviewerReview) reviewerReview FROM dbo.V_FrameReviewScore " +
                                                   " WHERE ISNULL(Reviewer, '') <> '' AND FrameReviewID = '" + FrameReviewID + "' GROUP BY StandardType, SequenceID) A ORDER BY A.StandardType,A.SequenceID");
                        int flag = 0;
                        foreach (var i in FrameReviewScoreList)//替换数据为综合数据
                        {
                            i.reviewerReview = (int)dt.Rows[flag]["reviewerReview"];
                            flag++;
                        }
                    }
                }
            }
        }
Exemplo n.º 18
0
 public SqlResult()
 {
     db = new SqlDataBase();
 }
Exemplo n.º 19
0
        public TechnicalReviewBLL(string TechnicalReviewID, string Reviewer)
        {
            if (string.IsNullOrEmpty(TechnicalReviewID))
            {
                TechnicalReviewID = "-1";//这样取出的就是一个空的视图
            }

            this.Reviewer = Reviewer;
            this.Isexist  = 0;
            string flagReviewer = Reviewer;

            //技术评审主表实体
            TechnicalReviewPrimaryEntity = new V_TechnicalReviewPrimaryEntity();
            TechnicalReviewPrimaryEntity.ResetForSearch();
            TechnicalReviewPrimaryEntity.TechnicalReviewID = TechnicalReviewID;
            TechnicalReviewPrimaryEntity.GetTable(true);

            //月度计划表实体实体
            TechnicalReviewProgressEntity          = new TechnicalReviewProgressEntity();
            TechnicalReviewProgressEntity.PageSize = 0;
            TechnicalReviewProgressEntity.ResetForSearch();
            TechnicalReviewProgressEntity.TechnicalReviewID = TechnicalReviewID;
            TechnicalReviewProgressEntity.OrderFields       = "ID";
            TechnicalReviewProgressEntityList = TechnicalReviewProgressEntity.ToList <TechnicalReviewProgressEntity>();
            //评分明细实体
            TechnicalReviewScoreDetailsEntity          = new V_TechnicalReviewScoreDetailsEntity();
            TechnicalReviewScoreDetailsEntity.PageSize = 0;//设置返回数据,即集合变量的大小,为0则放回全部数据
            TechnicalReviewScoreDetailsEntity.ResetForSearch();
            TechnicalReviewScoreDetailsEntity.TechnicalReviewID = TechnicalReviewID;
            TechnicalReviewScoreDetailsEntity.OrderFields       = "StandardType,SequenceID";
            TechnicalReviewScoreDetailsList = TechnicalReviewScoreDetailsEntity.ToList <V_TechnicalReviewScoreDetailsEntity>();

            TechnicalReviewerScoreEntity = new V_TechnicalReviewerScoreEntity();
            TechnicalReviewerScoreEntity.ResetForSearch();
            TechnicalReviewerScoreEntity.TechnicalReviewID = TechnicalReviewID;
            TechnicalReviewerScoreEntity.Reviewer          = Reviewer;
            TechnicalReviewerScoreEntity.GetTable(true);

            TReviewProposalSingle          = new TReviewProposalEntity();
            TReviewProposalSingle.PageSize = 0;
            TReviewProposalSingle.ResetForSearch();
            TReviewProposalSingle.TechnicalReviewID = TechnicalReviewID;
            TReviewProposalSingleList = TReviewProposalSingle.ToList <TReviewProposalEntity>();
            foreach (var s in TechnicalReviewScoreDetailsList)
            {
                if (string.IsNullOrEmpty(s.ReviewerCode))
                {
                    Isexist = 0;//插入
                    break;
                }
                else if (s.ReviewerCode == flagReviewer)
                {
                    Reviewer = flagReviewer;
                    Isexist  = 1;//更新
                    break;
                }
                else
                {
                    Reviewer = s.ReviewerCode;
                    Isexist  = 2;//插入。评委第一次评分,旁观者啥也不做
                    //更新时根据标识判断更新还是插入
                }
            }
            if (Isexist == 0)
            {
            }
            else
            {
                TechnicalReviewScoreDetailsEntity = new V_TechnicalReviewScoreDetailsEntity();
                try
                {
                    TechnicalReviewScoreDetailsEntity.PageSize = 0;//设置返回数据,即集合变量的大小,为0则放回全部数据
                    TechnicalReviewScoreDetailsEntity.ResetForSearch();
                }
                catch { }
                TechnicalReviewScoreDetailsEntity.TechnicalReviewID = TechnicalReviewID;
                TechnicalReviewScoreDetailsEntity.ReviewerCode      = Reviewer;
                TechnicalReviewScoreDetailsEntity.OrderFields       = "StandardType,SequenceID";
                TechnicalReviewScoreDetailsList = TechnicalReviewScoreDetailsEntity.ToList <V_TechnicalReviewScoreDetailsEntity>();
                if (Isexist == 2 && Reviewer != flagReviewer)
                {
                    if (TechnicalReviewPrimaryEntity.ReviewerList.Contains(flagReviewer))
                    {
                        foreach (var i in TechnicalReviewScoreDetailsList)
                        {//第一次评分时消除历史数据
                            i.CheckQuantity     = null;
                            i.QualifiedQuantity = null;
                            i.ReviewerScore     = null;
                        }
                    }
                    else
                    {
                        //其他人员查看


                        int         flag = 0;
                        SqlDataBase db   = new SqlDataBase();
                        DataTable   dt   = db.GetTable("SELECT * FROM (SELECT SequenceID,ISNULL(SUM(CheckQuantity),-1) CheckQuantity " +
                                                       ",ISNULL(SUM(QualifiedQuantity),-1) QualifiedQuantity,ISNULL(CAST(CONVERT(DECIMAL,SUM(QualifiedQuantity))*100/SUM(CheckQuantity)AS numeric(5,2)),100) ReviewerScore" +
                                                       " FROM dbo.V_TechnicalReviewScoreDetails WHERE TechnicalReviewID = '" + TechnicalReviewID + "' GROUP BY SequenceID) A ORDER BY A.SequenceID");
                        int?checkQuantity     = null;
                        int?qualifiedQuantity = null;
                        foreach (var i in TechnicalReviewScoreDetailsList)
                        {
                            checkQuantity     = (int)dt.Rows[flag]["CheckQuantity"];
                            qualifiedQuantity = (int)dt.Rows[flag]["QualifiedQuantity"];
                            if (checkQuantity == -1)
                            {
                                i.CheckQuantity = null;
                            }
                            else
                            {
                                i.CheckQuantity = checkQuantity;
                            }
                            if (qualifiedQuantity == -1)
                            {
                                i.QualifiedQuantity = null;
                            }
                            else
                            {
                                i.QualifiedQuantity = qualifiedQuantity;
                            }

                            i.ReviewerScore = (decimal)dt.Rows[flag]["ReviewerScore"];
                            flag++;
                        }
                    }
                }
                else if (Isexist == 2 && Reviewer == flagReviewer)//废弃
                {
                }
            }
        }
Exemplo n.º 20
0
        /// <summary>
        /// 代办审核
        /// </summary>
        /// <param name="BillID">表单ID</param>
        /// <param name="billFlag"></param>
        /// <param name="TabId"></param>
        /// <param name="parentTabId"></param>
        /// <param name="TurnAccount"></param>
        /// <returns></returns>
        public ActionResult BacklogBillItem(int?BillID, string billFlag, string TabId, string parentTabId, string TurnAccount)
        {
            BacklogBLL bll       = new BacklogBLL(BillID);
            string     projectID = "P20180516001";//工作流ID,请修改这个值
            string     tableName = "dbo.BacklogInfo";
            string     msg       = string.Empty;
            bool       result    = false;
            int        stepSN    = 0;

            if (BillID == null)
            {
                bll.BacklogInfoEntity = new V_BacklogInfoEntity();
                bll.BacklogInfoEntity.ResetForSearch();
                bll.BacklogInfoEntity.CreateDate    = DateTime.Now;
                bll.BacklogInfoEntity.CreateMan     = UserEntity.Account;
                bll.BacklogInfoEntity.CreateManName = UserEntity.UserName;


                ViewData["WFStep"]        = 0;//表示草稿状态
                ViewData["CurrentWFStep"] = 0;
            }



            if (IsPostBack)
            {
                bll.BacklogInfoEntity.GenerateObjectFromRequest("");
                if (BillID == null)
                {
                    using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()))
                    {
                        con.Open();
                        string     sqlstr = string.Format(@"INSERT INTO [IPP].[dbo].[BacklogInfo]
           ([ProposeDate]
           ,[SystemID]
           ,[DevelopmentEngineer]
           ,[BillStateDate]
           ,[CreateDate]
           ,[CreateMan]
           ,[CreateManName]
           ,[Backlog]
          ,[BillState]
)
OUTPUT INSERTED.ID
     VALUES('{0}',{1},'{2}','{3}','{4}','{5}','{6}','{7}',{8})", bll.BacklogInfoEntity.ProposeDate, bll.BacklogInfoEntity.SystemID, bll.BacklogInfoEntity.DevelopmentEngineer, DateTime.Now.ToString(), DateTime.Now.ToString(), UserEntity.UserCode, UserEntity.UserName, bll.BacklogInfoEntity.Backlog, 1);
                        SqlCommand com    = new SqlCommand(sqlstr, con);
                        try
                        {
                            BillID = (int)com.ExecuteScalar();
                            bll    = new BacklogBLL(BillID);
                        }
                        catch
                        {
                            return(base.GetJsonResult("信息缺失", false, ""));
                        }
                    }
                }
            }



            ViewBag.BillState = bll.BacklogInfoEntity.BillState;


            if (BillID != null)
            {
                #region 工作流读取
                //表单的 数据记录集合,用于判断条件
                DataSet dsBill = new DataSet();
                dsBill.Tables.Add(bll.BacklogInfoEntity.ToDataTable());
                //获取到工作流实例,工作流名称:产品名称+表单名称
                base.InstanceFlow("评审待办-" + bll.BacklogInfoEntity.EngineerName, projectID, BillID.ToString(), tableName, "", dsBill);
                //错误信息,为null则说明无错误
                string errMsg = base.FlowInstance.ErrorMsg;
                //获取当前步骤的序号,等于-1则说明当前用户不能操作当前流程
                stepSN = base.FlowInstance.StepSN;

                ViewData["CurrentWFStep"] = stepSN;
                #endregion
            }


            if (bll.BacklogInfoEntity.BillState == 2)
            {
                stepSN = -1;
            }

            ViewData["WFStep"] = stepSN;
            //第一次新建时除了BillID,其他初始字段都赋值了
            if (IsPostBack)
            {//保存,提交数据时调用该控制器动作执行这个语句
                bll.BacklogInfoEntity.BillStateDate = DateTime.Now;

                result = bll.Update();// bll.RequireMentEntity.DocumentID = bll.RequireMentEntity.GetMaxRow();//!!!在这里为表单号赋值了,我有两个主键怎么办呢
                string url = string.Format("/Review/WorkFlow/BacklogBillItem?billID={0}&TabId={1}&parentTabId={2}", bll.BacklogInfoEntity.ID, Request.QueryString["TabId"], Request.QueryString["parentTabId"]);

                if (result)
                {
                    msg = "保存数据成功!";
                    bll = new BacklogBLL(BillID);
                    DataSet dsBill = new DataSet();
                    dsBill.Tables.Add(bll.BacklogInfoEntity.ToDataTable());
                    //获取到工作流实例,工作流名称:产品名称+表单名称
                    try
                    {
                        base.InstanceFlow("评审待办-" + bll.BacklogInfoEntity.EngineerName, projectID, BillID.ToString(), tableName, "", dsBill);
                    }
                    catch (Exception ex) {
                        return(base.GetJsonResult("提交失败!" + ex.ToString(), false, url));
                    }
                }
                else
                {
                    msg = "保存数据失败!";
                }

                if (stepSN == 1 && bll.BacklogInfoEntity.IsComplete == 0)
                {
                    return(base.GetJsonResult("代办未结案无法提交!", false, ""));
                }
                if (stepSN == 1 && (bll.BacklogInfoEntity.ToDoExplain ?? "").ToUpper().IndexOf("IMG") < 0)
                {
                    return(base.GetJsonResult("必须上传截图对修复情况进行描述!", false, ""));
                }

                if (result && bll.BacklogInfoEntity.BillState == 1 && base.FlowInstance.WfInstance.IsActive.GetValueOrDefault() == true)
                {
                    #region 工作流审核
                    if (base.FlowInstance != null)
                    {
                        //退回到指定的步骤实例ID,目前为空值
                        string stepInstanceID = "";
                        //发起或审批流程
                        //签核意见
                        string      aduitComment = "审批意见!";
                        string      nextAccount  = "";
                        SqlDataBase db           = new SqlDataBase();
                        WorkFlow.Instance.SignResult signResult = (WorkFlow.Instance.SignResult)Enum.Parse(typeof(WorkFlow.Instance.SignResult), billFlag);


                        try
                        {
                            result = base.ExamineStep(signResult, UserEntity.Account, aduitComment, "", true, stepInstanceID, nextAccount);
                        }
                        catch (Exception ex) {
                            return(base.GetJsonResult("提交失败!" + ex.ToString(), false, url));
                        }

                        if (result == true)
                        {
                            msg = "审批成功";
                            if (stepSN == 0)
                            {//第一次提交数据,应该是提示“提交成功”
                                msg = "提交成功";
                            }
                            else if (stepSN == -1)
                            {
                                msg = "保存成功";
                            }
                            else
                            {
                                msg = "审批成功";
                            }
                        }
                        else
                        {
                            msg = "审批失败";
                        }
                        //更新主表表单状态
                        bll.BacklogInfoEntity.WorkflowID = this.FlowInstance.WfInstance.InstanceID;
                        bll.BacklogInfoEntity.BillState  = base.FlowInstance.WfInstance.IsActive.GetValueOrDefault(true) == false ? 2 : bll.BacklogInfoEntity.BillState;
                        #region 回写签核人、签核时间
                        bll.BacklogInfoEntity.StepSN = stepSN;
                        if (stepSN == 1)
                        {
                            bll.BacklogInfoEntity.ConfirmDate = DateTime.Now;
                            bll.BacklogInfoEntity.AuditDate   = null;
                            bll.BacklogInfoEntity.AuditName   = null;
                            bll.BacklogInfoEntity.AuditCode   = null;
                        }
                        else if (stepSN == 2)
                        {
                            bll.BacklogInfoEntity.AuditCode = UserEntity.UserCode;
                            bll.BacklogInfoEntity.AuditDate = DateTime.Now;
                            bll.BacklogInfoEntity.AuditName = UserEntity.UserName;
                            if (!signResult.Equals(SignResult.意))
                            {
                                bll.BacklogInfoEntity.StepSN = 1;
                            }
                            if (bll.BacklogInfoEntity.BillState == 2)
                            {
                                bll.BacklogInfoEntity.StepSN = 2;
                            }
                        }

                        //更新主表签核栏位
                        bll.BacklogInfoEntity.IsGenerateObject = true;
                        bll.BacklogInfoEntity.Update();
                        #endregion
                        return(base.GetJsonResult(msg, result, url));
                    }
                    #endregion
                }
                return(base.GetJsonResult(msg, result, url));
            }
            return(View(bll));
        }