Exemplo n.º 1
0
 static void Main(string[] args)
 {
     using (SMT_FB_EFModelContext context = new SMT_FB_EFModelContext())
     {
         Console.ReadLine();
     }
 }
Exemplo n.º 2
0
        private void StarCheck()
{
    try { 
            Tracer.Debug("结算开始");
            using (SMT_FB_EFModelContext context = new SMT_FB_EFModelContext())
            {
                DateTime thisYear = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                SetLog("开始获取总账数据,请稍等......");
                List<T_FB_BUDGETACCOUNT> allItem = new List<T_FB_BUDGETACCOUNT>();
                var q = from ent in context.T_FB_BUDGETACCOUNT.Include("T_FB_SUBJECT")
                         where ent.BUDGETYEAR>=DateTime.Now.Year
                         && ent.T_FB_SUBJECT.SUBJECTNAME!="活动经费"
                         && ent.T_FB_SUBJECT.SUBJECTNAME != "部门经费"
                        orderby ent.OWNERCOMPANYID, ent.OWNERDEPARTMENTID, ent.OWNERPOSTID
                        select ent;
                allItem=q.ToList();

                SetLog("获取总账数据完毕,开始获取年度预算");
                //年度预算
                List<T_FB_COMPANYBUDGETAPPLYMASTER> T_FB_COMPANYBUDGETAPPLYMASTERList = 
                    (from ent in context.T_FB_COMPANYBUDGETAPPLYMASTER
                        where ent.BUDGETYEAR>=DateTime.Now.Year
                        && ent.CHECKSTATES==2
                        && ent.EDITSTATES==1
                        select ent).ToList();
                List<T_FB_COMPANYBUDGETAPPLYDETAIL> T_FB_COMPANYBUDGETAPPLYDETAILList =
                    (from ent in context.T_FB_COMPANYBUDGETAPPLYDETAIL.Include("T_FB_COMPANYBUDGETAPPLYMASTER").Include("T_FB_SUBJECT")
                        where ent.T_FB_COMPANYBUDGETAPPLYMASTER.BUDGETYEAR>=DateTime.Now.Year
                        && ent.T_FB_COMPANYBUDGETAPPLYMASTER.CHECKSTATES==2
                        && ent.T_FB_COMPANYBUDGETAPPLYMASTER.EDITSTATES==1
                        select ent).ToList();
                SetLog("获取年度预算完毕,开始获取年底增补");
                //年度增补
                List<T_FB_COMPANYBUDGETMODMASTER> T_FB_COMPANYBUDGETMODMASTERList =
                    (from ent in context.T_FB_COMPANYBUDGETMODMASTER
                     where ent.BUDGETYEAR >= DateTime.Now.Year
                     && ent.CHECKSTATES==2
                     select ent).ToList();
                List<T_FB_COMPANYBUDGETMODDETAIL> T_FB_COMPANYBUDGETMODDETAILList =
                    (from ent in context.T_FB_COMPANYBUDGETMODDETAIL.Include("T_FB_COMPANYBUDGETMODMASTER").Include("T_FB_SUBJECT")
                        where ent.T_FB_COMPANYBUDGETMODMASTER.BUDGETYEAR>= DateTime.Now.Year
                        && ent.T_FB_COMPANYBUDGETMODMASTER.CHECKSTATES==2
                     select ent).ToList();
                SetLog("获取年度增补数据完毕,开始获取月度预算");
                //月度预算
                List<T_FB_DEPTBUDGETAPPLYMASTER> T_FB_DEPTBUDGETAPPLYMASTERList =
                    (from ent in context.T_FB_DEPTBUDGETAPPLYMASTER
                     where ent.BUDGETARYMONTH >= thisYear
                     && ent.CHECKSTATES==2
                     && ent.EDITSTATES==1
                     select ent).ToList();
                List<T_FB_DEPTBUDGETAPPLYDETAIL> T_FB_DEPTBUDGETAPPLYDETAILList =
                    (from ent in context.T_FB_DEPTBUDGETAPPLYDETAIL.Include("T_FB_DEPTBUDGETAPPLYMASTER").Include("T_FB_SUBJECT")
                     where ent.T_FB_DEPTBUDGETAPPLYMASTER.BUDGETARYMONTH >= thisYear
                     && ent.T_FB_DEPTBUDGETAPPLYMASTER.CHECKSTATES==2
                     && ent.T_FB_DEPTBUDGETAPPLYMASTER.EDITSTATES==1
                     select ent).ToList();
                SetLog("获取月度预算完毕,开始获取月度增补");
                //月度增补
                List<T_FB_DEPTBUDGETADDMASTER> T_FB_DEPTBUDGETADDMASTERList =
                    (from ent in context.T_FB_DEPTBUDGETADDMASTER
                     where ent.BUDGETARYMONTH >= thisYear
                     && ent.CHECKSTATES==2
                     select ent).ToList();
                List<T_FB_DEPTBUDGETADDDETAIL> T_FB_DEPTBUDGETADDDETAILList 
                    = (from ent in context.T_FB_DEPTBUDGETADDDETAIL.Include("T_FB_DEPTBUDGETADDMASTER").Include("T_FB_SUBJECT")
                       where ent.T_FB_DEPTBUDGETADDMASTER.BUDGETARYMONTH >= thisYear
                       && ent.T_FB_DEPTBUDGETADDMASTER.CHECKSTATES==2
                     select ent).ToList();
                SetLog("获取月度增补完毕,开始获取个人预算申请及增补");
                List<T_FB_PERSONBUDGETAPPLYDETAIL> T_FB_PERSONBUDGETAPPLYDETAILList =
                    (from ent in context.T_FB_PERSONBUDGETAPPLYDETAIL.Include("T_FB_DEPTBUDGETAPPLYDETAIL").Include("T_FB_SUBJECT")
                     where ent.T_FB_DEPTBUDGETAPPLYDETAIL.T_FB_DEPTBUDGETAPPLYMASTER.BUDGETARYMONTH >= thisYear
                     && ent.T_FB_DEPTBUDGETAPPLYDETAIL.T_FB_DEPTBUDGETAPPLYMASTER.CHECKSTATES==2
                     && ent.T_FB_DEPTBUDGETAPPLYDETAIL.T_FB_DEPTBUDGETAPPLYMASTER.EDITSTATES==1
                     select ent).ToList();
                List<T_FB_PERSONBUDGETADDDETAIL> T_FB_PERSONBUDGETADDDETAILList =
                    (from ent in context.T_FB_PERSONBUDGETADDDETAIL.Include("T_FB_DEPTBUDGETADDDETAIL").Include("T_FB_SUBJECT")
                     where ent.T_FB_DEPTBUDGETADDDETAIL.T_FB_DEPTBUDGETADDMASTER.BUDGETARYMONTH >= thisYear
                     && ent.T_FB_DEPTBUDGETADDDETAIL.T_FB_DEPTBUDGETADDMASTER.CHECKSTATES==2
                     select ent).ToList();
                SetLog("获取个人预算申请及增补完毕,开始获取费用报销");
                //个人费用报销
                List<T_FB_CHARGEAPPLYMASTER> T_FB_CHARGEAPPLYMASTERList = 
                    (from ent in context.T_FB_CHARGEAPPLYMASTER
                     where ent.BUDGETARYMONTH >= thisYear
                     && ent.CHECKSTATES==2
                     select ent).ToList();
                List<T_FB_CHARGEAPPLYDETAIL> T_FB_CHARGEAPPLYDETAILList = 
                    (from ent in context.T_FB_CHARGEAPPLYDETAIL.Include("T_FB_CHARGEAPPLYMASTER").Include("T_FB_SUBJECT")
                     where ent.T_FB_CHARGEAPPLYMASTER.BUDGETARYMONTH >= thisYear
                     && ent.T_FB_CHARGEAPPLYMASTER.CHECKSTATES==2
                     select ent).ToList();
                SetLog("获取费用报销完毕,开始处理......");
                int allCount = allItem.Count;
                int i = 0;
                foreach (var item in allItem)
                {
                    i++;
                    if (item.T_FB_SUBJECT.SUBJECTID=="08c1d9c6-2396-43c3-99f9-227e4a7eb417")// == "部门经费")
                    {
                        continue;
                    }
                    if (item.T_FB_SUBJECT.SUBJECTID == "d5134466-c207-44f2-8a36-cf7b96d5851f")//活动经费
                    {
                        continue;
                    }

                    if (item.OWNERDEPARTMENTID == "7f663615-56a0-46ed-96a3-0e9a79d2cb51"
                        && item.T_FB_SUBJECT.SUBJECTID == "00161652-e3bf-4e9f-9a57-a9e1ff8cef74")
                    {

                    }
                    string id=   item.T_FB_SUBJECT.SUBJECTID;
                    decimal A=0;//年度预算
                    decimal B=0;//年度增补
                    decimal C=0;//部门月度预算=公共+个人
                    decimal D=0;//部门月度增补=公共+个人
                    decimal C1 = 0;//月度预算-部门公共
                    decimal D1 = 0;//月度增补-部门公共
                    decimal C2 = 0;//月度预算-个人
                    decimal D2 = 0;//月度增补-个人
                    decimal E = 0;//个人费用报销已终审-部门公共
                    decimal F = 0;//个人费用报销审核中-部门公共
                    decimal G = 0;//个人费用报销已终审-个人
                    decimal H = 0;//个人费用报销审核中-个人
                    GetABCD(T_FB_COMPANYBUDGETAPPLYMASTERList,
                        T_FB_COMPANYBUDGETAPPLYDETAILList,
                        T_FB_COMPANYBUDGETMODMASTERList,
                        T_FB_COMPANYBUDGETMODDETAILList,
                        T_FB_DEPTBUDGETAPPLYMASTERList,
                        T_FB_DEPTBUDGETAPPLYDETAILList,
                        T_FB_DEPTBUDGETADDMASTERList,
                        T_FB_DEPTBUDGETADDDETAILList,
                        T_FB_CHARGEAPPLYMASTERList,
                        T_FB_CHARGEAPPLYDETAILList,
                        T_FB_PERSONBUDGETAPPLYDETAILList,
                        T_FB_PERSONBUDGETADDDETAILList,
                        item, 
                        ref A, ref B, ref C, 
                        ref C1, ref D1,
                        ref C2, ref D2, 
                        ref D, ref E, 
                        ref F, ref G, 
                        ref H);
                    decimal BUDGETMONEY = item.BUDGETMONEY.Value;
                    decimal USABLEMONEY = item.USABLEMONEY.Value;
                    decimal ACTUALMONEY = item.ACTUALMONEY.Value;
                    decimal PAIEDMONEY = item.PAIEDMONEY.Value;
                    switch(item.ACCOUNTOBJECTTYPE.Value.ToString())
                    {
                        case "1"://部门年度预算
                            item.BUDGETMONEY = A+B;//预算金额
                            item.USABLEMONEY = A+B-C-D;//可用额度
                            item.ACTUALMONEY = A+B-C-D;//实际额度
                            item.PAIEDMONEY = C+D;//已用额度
                            break;
                        case "2"://部门月度预算--公共科目
                            item.BUDGETMONEY = C1+D1;//预算金额
                            item.USABLEMONEY = C1+D1-E-F;//可用额度
                            item.ACTUALMONEY = C1+D1-E;//实际额度
                            item.PAIEDMONEY = E;//已用额度
                            break;
                        case "3"://部门月度预算--个人月度预算
                            item.BUDGETMONEY = C2+D2;//预算金额
                            item.USABLEMONEY = C2+D2-G-H;//可用额度
                            item.ACTUALMONEY = C2+D2-G;//实际额度
                            item.PAIEDMONEY = G;//已用额度
                            break;
                    }
                    string msg = string.Empty;
                    msg = "总 " + allCount + " 第 " + i + " 条:";
                    if (BUDGETMONEY != item.BUDGETMONEY.Value)
                    {
                         msg += " BUDGETMONEY 不对,公司:" + item.OWNERCOMPANYID
                            //+ " 部门:" + item.OWNERDEPARTMENTID
                            //+ " 岗位:" + item.OWNERPOSTID
                            //+ " 科目id:" + item.T_FB_SUBJECT.SUBJECTID
                            +" 总账id"+item.BUDGETACCOUNTID
                            + " 预算类型:" + item.ACCOUNTOBJECTTYPE.Value.ToString()
                            + " 科目:" + item.T_FB_SUBJECT.SUBJECTNAME
                            + " 修改前 BUDGETMONEY:" + BUDGETMONEY
                            + " 修改后 BUDGETMONEY    ->    " + item.BUDGETMONEY.Value
                            + " A:" + A
                            + " B:" + B
                            + " C:" + C
                            + " D:" + D
                            + " C1:" + C1
                            + " D1:" + D1
                            + " C2:" + C2
                            + " D2:" + D2
                            + " E:" + E
                            + " F:" + F
                            + " G:" + G
                            + " H:" + H;
                    }
                    if (USABLEMONEY != item.USABLEMONEY.Value)
                    {
                        msg += " USABLEMONEY 不对,公司:" + item.OWNERCOMPANYID
                              //+ " 部门:" + item.OWNERDEPARTMENTID
                              //+ " 岗位:" + item.OWNERPOSTID
                              //+ " 科目id:" + item.T_FB_SUBJECT.SUBJECTID
                              + " 总账id" + item.BUDGETACCOUNTID
                              + " 预算类型:" + item.ACCOUNTOBJECTTYPE.Value.ToString()
                              + " 科目:" + item.T_FB_SUBJECT.SUBJECTNAME
                              + " 修改前 USABLEMONEY:" + USABLEMONEY
                              + " 修改后 USABLEMONEY    ->    " + item.USABLEMONEY.Value
                              + " A:" + A
                            + " B:" + B
                            + " C:" + C
                            + " D:" + D
                            + " C1:" + C1
                            + " D1:" + D1
                            + " C2:" + C2
                            + " D2:" + D2
                            + " E:" + E
                            + " F:" + F
                            + " G:" + G
                            + " H:" + H;
                    }
                    if (ACTUALMONEY != item.ACTUALMONEY.Value)
                    {
                        msg += " ACTUALMONEY 不对,公司:" + item.OWNERCOMPANYID
                              //+ " 部门:" + item.OWNERDEPARTMENTID
                              //+ " 岗位:" + item.OWNERPOSTID
                              //+ " 科目id:" + item.T_FB_SUBJECT.SUBJECTID
                              + " 总账id" + item.BUDGETACCOUNTID
                              + " 预算类型:" + item.ACCOUNTOBJECTTYPE.Value.ToString()
                              + " 科目:" + item.T_FB_SUBJECT.SUBJECTNAME
                              + " 修改前 ACTUALMONEY:" + ACTUALMONEY
                              + " 修改后 ACTUALMONEY    ->    " + item.ACTUALMONEY.Value
                               + " A:" + A
                            + " B:" + B
                            + " C:" + C
                            + " D:" + D
                            + " C1:" + C1
                            + " D1:" + D1
                            + " C2:" + C2
                            + " D2:" + D2
                            + " E:" + E
                            + " F:" + F
                            + " G:" + G
                            + " H:" + H;
                    }
                    if (PAIEDMONEY != item.PAIEDMONEY.Value)
                    {
                       msg +=" PAIEDMONEY 不对,公司:" + item.OWNERCOMPANYID
                                //+ " 部门id:" + item.OWNERDEPARTMENTID
                                //+ " 岗位id:" + item.OWNERPOSTID
                                //+ " 科目id:"+item.T_FB_SUBJECT.SUBJECTID
                                + " 总账id" + item.BUDGETACCOUNTID
                                + " 预算类型:" + item.ACCOUNTOBJECTTYPE.Value.ToString()
                                + " 科目:" + item.T_FB_SUBJECT.SUBJECTNAME
                                + " 修改前 PAIEDMONEY:" + PAIEDMONEY
                                + " 修改后 PAIEDMONEY    ->    " + item.PAIEDMONEY.Value
                                 + " A:" + A
                            + " B:" + B
                            + " C:" + C
                            + " D:" + D
                            + " C1:" + C1
                            + " D1:" + D1
                            + " C2:" + C2
                            + " D2:" + D2
                            + " E:" + E
                            + " F:" + F
                            + " G:" + G
                            + " H:" + H;
                    }
                    SetLog(msg);
                }

                MessageBoxButtons messButton = MessageBoxButtons.OKCancel;
                DialogResult dr = MessageBox.Show("确定要更新异常的数据吗?", "确认", messButton);
                if (dr == DialogResult.OK)//如果点击“确定”按钮
                {
                    int j = context.SaveChanges();
                    MessageBox.Show("处理完毕,共处理了: " + j + " 条数据");
                }
                i = 0;
            }
        
            MessageBox.Show("处理完毕!");
        
    }catch(Exception ex)
    {
        MessageBox.Show("异常:"+ex.ToString());
        SetLog(ex.ToString());
    }
}
Exemplo n.º 3
0
        /// <summary>
        /// 检查活动经费流水,调整额度
        /// </summary>
        private void starChechHDJF()
        {
            try
            {
                Tracer.Debug("结算开始");
                using (SMT_FB_EFModelContext context = new SMT_FB_EFModelContext())
                {
                    DateTime thisYear = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                    SetLog("开始获取总账数据,请稍等......");
                    List<T_FB_BUDGETACCOUNT> allItem = new List<T_FB_BUDGETACCOUNT>();
                    List<T_FB_PERSONMONEYASSIGNMASTER> T_FB_PERSONMONEYASSIGNMASTERList = new List<T_FB_PERSONMONEYASSIGNMASTER>();
                    List<T_FB_PERSONMONEYASSIGNDETAIL> T_FB_PERSONMONEYASSIGNDETAILList = new List<T_FB_PERSONMONEYASSIGNDETAIL>();
                    List<T_FB_CHARGEAPPLYMASTER> T_FB_CHARGEAPPLYMASTERList = new List<T_FB_CHARGEAPPLYMASTER>();
                    List<T_FB_CHARGEAPPLYDETAIL> T_FB_CHARGEAPPLYDETAILList = new List<T_FB_CHARGEAPPLYDETAIL>();
                    if (allItem.Count < 1)
                    {

                        List<string> employeeALl = (from ent in context.T_FB_BUDGETACCOUNT.Include("T_FB_SUBJECT")
                                                    where ent.T_FB_SUBJECT.SUBJECTID == "d5134466-c207-44f2-8a36-cf7b96d5851f"//活动经费
                                                    && ent.ACCOUNTOBJECTTYPE == 3
                                                    select ent.OWNERID).Distinct().ToList();

                        if (!string.IsNullOrEmpty(txtEmployee.Text))
                        {
                            employeeALl.Clear();
                            employeeALl.Add(txtEmployee.Text);

                        }
                        int allCount = employeeALl.Count;
                        int i = 0;
                        string msg = string.Empty;

                        //经费下拨额度
                        T_FB_PERSONMONEYASSIGNMASTERList
                            = (from ent in context.T_FB_PERSONMONEYASSIGNMASTER.Include("T_FB_PERSONMONEYASSIGNDETAIL")
                               where ent.CHECKSTATES == 2
                               select ent).ToList();

                        foreach (var employeeid in employeeALl)
                        {
                            i++;
                            var q = from ent in context.T_FB_BUDGETACCOUNT.Include("T_FB_SUBJECT")
                                    where ent.T_FB_SUBJECT.SUBJECTID == "d5134466-c207-44f2-8a36-cf7b96d5851f"//活动经费
                                    && ent.ACCOUNTOBJECTTYPE == 3
                                    && ent.OWNERID == employeeid
                                    select ent;
                            allItem = q.ToList();
                            if (allItem.Count > 1)
                            {
                                //MessageBox.Show("活动经费总账大于1,请手动处理,可能是异动导致");
                                foreach (var itm in allItem)
                                {
                                    SetLog("活动经费总账多条:id:" + itm.BUDGETACCOUNTID+" ownerid="+itm.OWNERID+" ownerPostId="+itm.OWNERPOSTID);
                                }
                                continue;
                            }
                            SetLog("获取总账数据完毕,开始获取下拨经费");
                            T_FB_PERSONMONEYASSIGNDETAILList
                                = (from ent in context.T_FB_PERSONMONEYASSIGNDETAIL.Include("T_FB_PERSONMONEYASSIGNMASTER").Include("T_FB_SUBJECT")
                                   where ent.T_FB_PERSONMONEYASSIGNMASTER.CHECKSTATES == 2
                                   && ent.OWNERID == employeeid
                                   select ent).ToList();
                            SetLog("获取个人预算申请及增补完毕,开始获取费用报销");
                            //个人费用报销
                            T_FB_CHARGEAPPLYMASTERList =
                                (from ent in context.T_FB_CHARGEAPPLYMASTER
                                 join b in context.T_FB_CHARGEAPPLYDETAIL on ent.CHARGEAPPLYMASTERID equals b.T_FB_CHARGEAPPLYMASTER.CHARGEAPPLYMASTERID
                                 where ent.CHECKSTATES == 2 && b.T_FB_SUBJECT.SUBJECTID == "d5134466-c207-44f2-8a36-cf7b96d5851f"
                                 && ent.OWNERID == employeeid
                                 select ent).ToList();
                            T_FB_CHARGEAPPLYDETAILList =
                                (from ent in context.T_FB_CHARGEAPPLYDETAIL.Include("T_FB_CHARGEAPPLYMASTER").Include("T_FB_SUBJECT")
                                 join b in context.T_FB_CHARGEAPPLYMASTER on ent.T_FB_CHARGEAPPLYMASTER.CHARGEAPPLYMASTERID equals b.CHARGEAPPLYMASTERID
                                 where ent.T_FB_SUBJECT.SUBJECTID == "d5134466-c207-44f2-8a36-cf7b96d5851f" && b.CHECKSTATES == 2
                                 && ent.T_FB_CHARGEAPPLYMASTER.OWNERID == employeeid
                                 select ent).ToList();

                            SetLog("获取费用报销完毕,开始处理......");
                           var item = allItem.FirstOrDefault();
                            
                                string id = item.T_FB_SUBJECT.SUBJECTID;
                                decimal A = 0;//年度预算
                                decimal B = 0;//年度增补
                                decimal C = 0;//部门月度预算=公共+个人
                                decimal D = 0;//部门月度增补=公共+个人
                                decimal C1 = 0;//月度预算-部门公共
                                decimal D1 = 0;//月度增补-部门公共
                                decimal C2 = 0;//月度预算-个人
                                decimal D2 = 0;//月度增补-个人
                                decimal E = 0;//个人费用报销已终审-部门公共
                                decimal F = 0;//个人费用报销审核中-部门公共
                                decimal G = 0;//个人费用报销已终审-个人
                                decimal H = 0;//个人费用报销审核中-个人
                                string ownerName = string.Empty;
                                GetJFABCD(T_FB_PERSONMONEYASSIGNMASTERList,
                                    T_FB_PERSONMONEYASSIGNDETAILList,
                                    T_FB_CHARGEAPPLYMASTERList,
                                    T_FB_CHARGEAPPLYDETAILList,
                                    item,
                                    ref A, ref B, ref C,
                                    ref C1, ref D1,
                                    ref C2, ref D2,
                                    ref D, ref E,
                                    ref F, ref G,
                                    ref H,
                                    ref ownerName);
                                msg = "总 " + allCount + " 第 " + i + " 条:";

                                decimal USABLEMONEY = 0;
                                if (item.USABLEMONEY != null)
                                {
                                    USABLEMONEY = item.USABLEMONEY.Value;
                                }
                                decimal ACTUALMONEY = 0;
                                if (item.ACTUALMONEY != null)
                                {
                                    ACTUALMONEY = item.ACTUALMONEY.Value;
                                }
                                //decimal PAIEDMONEY = item.PAIEDMONEY.Value;
                                switch (item.ACCOUNTOBJECTTYPE.Value.ToString())
                                {
                                    case "3"://部门月度预算--个人月度预算
                                        //item.BUDGETMONEY = C2 + D2;//预算金额
                                        item.USABLEMONEY = C2 - E - F;//可用额度
                                        item.ACTUALMONEY = C2 - E;//实际额度
                                        //item.PAIEDMONEY = G;//已用额度
                                        break;
                                }


                                if (item.USABLEMONEY == null
                                    || USABLEMONEY != item.USABLEMONEY.Value)
                                {
                                    if (item.USABLEMONEY == null)
                                    {
                                        msg += " 总账id" + item.BUDGETACCOUNTID + " USABLEMONEY==Null";
                                    }
                                    if (USABLEMONEY != item.USABLEMONEY.Value)
                                    {
                                        
                                        msg += " 总账id" + item.BUDGETACCOUNTID + " USABLEMONEY 不对,员工:" + ownerName
                                              + " 科目:" + item.T_FB_SUBJECT.SUBJECTNAME
                                              + " 修改前 USABLEMONEY:" + USABLEMONEY
                                              + " 修改后 USABLEMONEY    ->    " + item.USABLEMONEY.Value
                                            + " C2:" + C2
                                            + " E:" + E
                                            + " F:" + F;
                                        if (USABLEMONEY > item.USABLEMONEY.Value)
                                        {
                                            msg +=System.Environment.NewLine+ "总账金额大于实际金额,可能导致报超,请重点关注---------------------------------->";
                                        }

                                    }
                                }
                                //if (item.ACTUALMONEY==null || ACTUALMONEY != item.ACTUALMONEY.Value)
                                //{
                                //    if (item.ACTUALMONEY == null)
                                //    {
                                //        msg += " 总账id" + item.BUDGETACCOUNTID + " ACTUALMONEY==Null";
                                //    }
                                //    if (ACTUALMONEY != item.ACTUALMONEY.Value)
                                //    {
                                //        msg += " 总账id" + item.BUDGETACCOUNTID +" ACTUALMONEY 不对,员工:" + ownerName
                                //              + " 预算类型:" + item.ACCOUNTOBJECTTYPE.Value.ToString()
                                //              + " 科目:" + item.T_FB_SUBJECT.SUBJECTNAME
                                //              + " 修改前 ACTUALMONEY:" + ACTUALMONEY
                                //              + " 修改后 ACTUALMONEY    ->    " + item.ACTUALMONEY.Value
                                //            + " C2:" + C2
                                //            + " E:" + E
                                //            + " F:" + F;
                                //    }
                                //}   
                                SetLog(msg); 
                        }
                        i = 0;
                        if (msg.Contains("不对"))
                        {
                            MessageBoxButtons messButton = MessageBoxButtons.OKCancel;
                            DialogResult dr = MessageBox.Show("确定要更新异常的数据吗?", "确认", messButton);
                            if (dr == DialogResult.OK)//如果点击“确定”按钮
                            {
                                int j = context.SaveChanges();
                                MessageBox.Show("处理完毕,共处理了: " + j + " 条数据");
                            }
                        }
                        SetLog("处理完毕!");
                    }
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show("异常:" + ex.ToString());
                SetLog(ex.ToString());
            }
        }
Exemplo n.º 4
0
        //static DBContext()
        //{
        //    contenxtCache = new Dictionary<string, SMT_FB_EFModelContext>();
        //    dictionaryThread = new Dictionary<string, List<object>>();
        //    dictionaryThread_Te = new Dictionary<object, string>();
        //    transactionList = new List<string>();
        //}
        ////public static Dictionary<string, SMT_FB_EFModelContext> contenxtCache;
        //public static Dictionary<string, List<object>> dictionaryThread;
        //public static Dictionary<object, string> dictionaryThread_Te;
        //public static List<string> transactionList;
        //private static object lockObj = new object();

        //public static SMT_FB_EFModelContext CreateObjectContext()
        //{
        //    return new SMT_FB_EFModelContext();
        //}
        //public static SMT_FB_EFModelContext GetObjectContext(object obj)
        //{
        //    SMT_FB_EFModelContext dbinstance = new SMT_FB_EFModelContext();
        //    //string threadName = Thread.CurrentThread.Name;
        //    //if (threadName!= null &&  contenxtCache.ContainsKey(threadName))
        //    //{
        //    //    dbinstance = contenxtCache[threadName];
        //    //}
        //    //else
        //    //{
        //    //    if (threadName == null)
        //    //    {
        //    //        threadName = Guid.NewGuid().ToString();
        //    //        Thread.CurrentThread.Name = threadName;
        //    //    }
        //    //    dbinstance = new SMT_FB_EFModelContext();
        //    //    dbinstance.CommandTimeout = 180;
        //    //    //db.Log = Console.Out;
        //    //    //dbinstance.Log = Console.Out;
        //    //    //dbinstance.ObjectTrackingEnabled = false;
        //    //    contenxtCache.Add(threadName, dbinstance);
                
        //    //}
        //    //RegisterObj(obj);
        //    return dbinstance;
        //}

        //public static SMT_FB_EFModelContext GetObjectContext()
        //{
        //    //string threadName = Thread.CurrentThread.Name;
        //    //if (threadName != null)
        //    //{
        //    //    return contenxtCache[threadName];
        //    //}
        //    //else
        //    //{
        //        return new SMT_FB_EFModelContext();
        //    //}
        //}

        //private static void RegisterObj(object obj)
        //{
        //    string threadName = Thread.CurrentThread.Name;
        //    List<object> list = null;
        //    if (dictionaryThread.ContainsKey(threadName))
        //    {
        //        list = dictionaryThread[threadName];
        //    }
        //    else
        //    {
        //        list = new List<object>();
        //        dictionaryThread.Add(threadName, list);
        //    }
        //    list.Add(obj);
        //}

        //public static void UnregisterObj(object obj)
        //{
        //   //  SMT.Foundation.Log.Tracer.Warn(System.DateTime.Now.ToString("yyyy-MM-dd") + " : " + "释放ObjectContext");
        //    string threadName = Thread.CurrentThread.Name;
        //    if (threadName == null || !dictionaryThread.ContainsKey(threadName))
        //    {
        //        return;
        //    }

        //    List<object> list = dictionaryThread[threadName];
        //    list.Remove(obj);
        //    if (list.Count == 0)
        //    {
        //        dictionaryThread.Remove(threadName);
        //        SMT_FB_EFModelContext tempDC = contenxtCache[threadName];
        //        tempDC.Dispose();
        //        GC.SuppressFinalize(tempDC);
        //        tempDC = null;
        //        contenxtCache.Remove(threadName);
        //        Thread.CurrentThread.Name = null;
        //        SMT.Foundation.Log.Tracer.Warn("UnregisterObj, 释放:" + threadName);
        //    }

        //}

        //public static string ManualRegister()
        //{
        //    lock (lockObj)
        //    {
        //        string threadName = Thread.CurrentThread.Name;
        //        if (string.IsNullOrEmpty(threadName))
        //        {
        //            threadName = Guid.NewGuid().ToString();
        //            Thread.CurrentThread.Name = threadName;
        //        }

        //        if (!contenxtCache.ContainsKey(threadName))
        //        {
        //            SMT_FB_EFModelContext dbinstance = new SMT_FB_EFModelContext();
        //            dbinstance.CommandTimeout = 180;
        //            contenxtCache.Add(threadName, dbinstance);
        //        }
        //        return threadName;
        //    }
            
        //}

        //public static void ManualUnRegister(string threadName)
        //{
        //    lock (lockObj)
        //    {
        //        if (contenxtCache.ContainsKey(threadName))
        //        {
        //            SMT_FB_EFModelContext tempDC = contenxtCache[threadName];
        //            //if (tempDC.Connection.State == System.Data.ConnectionState.Open)
        //            //{
        //            //    tempDC.Connection.Close();
        //            //}
                    
        //            contenxtCache.Remove(threadName);
        //            GC.SuppressFinalize(tempDC);
                    
        //        }
        //    }
        //}

        #region 事务中不嵌套事务
        public static DbTransaction BeginTransaction(SMT_FB_EFModelContext mc)
        {
            //string threadName = Thread.CurrentThread.Name;
            //if (transactionList.Contains(threadName))
            //{
            //    return null;
            //}
            //transactionList.Add(threadName);
            if (mc.Connection.State == System.Data.ConnectionState.Closed)
            {
                mc.Connection.Open();
            }
            DbTransaction dbt = mc.Connection.BeginTransaction();
            return dbt;
        }