public ActionResult GetAllBillNo(string No)
        {
            List <Models.FeeBillModelRef> ModelList = new List <Models.FeeBillModelRef>();

            List <Models.FeeBillModel> list1 = new Marisfrolg.Fee.BLL.FeeBill().GetBillModelByNo(No);

            foreach (var item in list1)
            {
                Models.FeeBillModelRef temp = new Models.FeeBillModelRef()
                {
                    BillNo = item.BillNo, PersonInfo = new Models.PersonInfo {
                        Brand = item.PersonInfo.Brand, IsHeadOffice = item.PersonInfo.IsHeadOffice, ShopCode = item.PersonInfo.ShopCode
                    }, Owner = item.Owner, TotalMoney = item.TotalMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, PageName = "费用报销单", Remark = item.Remark, CreateTime = item.CreateTime, PrintedCount = item.PrintedCount, Items = item.Items, CopyCount = item.CopyCount, RecycleBin = item.RecycleBin, Status = item.Status
                };
                ModelList.Add(temp);
            }
            List <Models.NoticeBillModel> list2 = new Marisfrolg.Fee.BLL.NoticeBill().GetBillModelByNo(No);

            foreach (var item in list2)
            {
                Models.FeeBillModelRef temp = new Models.FeeBillModelRef()
                {
                    BillNo = item.BillNo, PersonInfo = new Models.PersonInfo {
                        Brand = item.PersonInfo.Brand, IsHeadOffice = item.PersonInfo.IsHeadOffice, ShopCode = item.PersonInfo.ShopCode
                    }, Owner = item.Owner, TotalMoney = item.TotalMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, PageName = "付款通知书", Remark = item.Remark, CreateTime = item.CreateTime, ProviderName = item.ProviderInfo.ProviderName, PrintedCount = item.PrintedCount, Items = item.Items, CopyCount = item.CopyCount, RecycleBin = item.RecycleBin, Status = item.Status, MissBill = item.MissBill
                };
                ModelList.Add(temp);
            }
            List <Models.BorrowBillModel> list3 = new Marisfrolg.Fee.BLL.BorrowBill().GetBillModelByNo(No);

            foreach (var item in list3)
            {
                Models.FeeBillModelRef temp = new Models.FeeBillModelRef()
                {
                    BillNo = item.BillNo, PersonInfo = new Models.PersonInfo {
                        Brand = item.PersonInfo.Brand, IsHeadOffice = item.PersonInfo.IsHeadOffice, ShopCode = item.PersonInfo.ShopCode
                    }, Owner = item.Owner, TotalMoney = item.TotalMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, PageName = "借款单", Remark = item.Remark, CreateTime = item.CreateTime, PrintedCount = item.PrintedCount, Items = item.Items, CopyCount = item.CopyCount, RecycleBin = item.RecycleBin, Status = item.Status, SurplusMoney = item.SurplusMoney
                };
                ModelList.Add(temp);
            }
            List <Models.RefundBillModel> list4 = new Marisfrolg.Fee.BLL.RefundBill().GetBillModelByNo(No);

            foreach (var item in list4)
            {
                Models.FeeBillModelRef temp = new Models.FeeBillModelRef()
                {
                    BillNo = item.BillNo, PersonInfo = new Models.PersonInfo {
                        Brand = item.PersonInfo.Brand, IsHeadOffice = item.PersonInfo.IsHeadOffice, ShopCode = item.PersonInfo.ShopCode
                    }, Owner = item.Owner, TotalMoney = item.RealRefundMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, PageName = "还款单", Remark = item.Remark, CreateTime = item.CreateTime, PrintedCount = item.PrintedCount, Items = item.Items, CopyCount = item.CopyCount, RecycleBin = item.RecycleBin, Status = item.Status
                };
                ModelList.Add(temp);
            }
            ModelList = ModelList.OrderByDescending(c => c.CreateTime).ToList();

            return(Json(ModelList, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        ///  根据单号获取实体对象
        /// </summary>
        /// <param name="BillNo">单号</param>
        /// <param name="type">单据类型</param>
        /// <returns></returns>
        public string GetDataFromBillNo(string BillNo, int Type)
        {
            try
            {
                switch (Type)
                {
                //费用报销单
                case 1:
                    Models.FeeBillModel    FeeModel    = new Marisfrolg.Fee.BLL.FeeBill().GetBillModel(BillNo);
                    Models.FeeBillModelRef FeeRefModel = new Models.FeeBillModelRef();
                    FeeRefModel            = FeeModel.MapTo <Models.FeeBillModel, Models.FeeBillModelRef>();
                    FeeRefModel.StringTime = FeeRefModel.CreateTime.ToString("yyyy-MM-dd");
                    FeeRefModel.PageName   = "FeeBill";
                    return(FeeRefModel == null ? "" : Public.JsonSerializeHelper.SerializeToJson(FeeRefModel));

                //付款通知书
                case 2:
                    Models.NoticeBillModel    NoticeModel    = new Marisfrolg.Fee.BLL.NoticeBill().GetBillModel(BillNo);
                    Models.NoticeBillModelRef NoticeRefModel = new Models.NoticeBillModelRef();
                    NoticeRefModel            = NoticeModel.MapTo <Models.NoticeBillModel, Models.NoticeBillModelRef>();
                    NoticeRefModel.StringTime = NoticeModel.CreateTime.ToString("yyyy-MM-dd");
                    NoticeRefModel.PageName   = "Notice";
                    return(NoticeRefModel == null ? "" : Public.JsonSerializeHelper.SerializeToJson(NoticeRefModel));

                //借款单
                case 3:
                    Models.BorrowBillModel    BorrowModel    = new Marisfrolg.Fee.BLL.BorrowBill().GetBillModel(BillNo);
                    Models.BorrowBillModelRef BorrowRefModel = new Models.BorrowBillModelRef();
                    BorrowRefModel            = BorrowModel.MapTo <Models.BorrowBillModel, Models.BorrowBillModelRef>();
                    BorrowRefModel.StringTime = BorrowModel.CreateTime.ToString("yyyy-MM-dd");
                    BorrowRefModel.PageName   = "BorrowBill";
                    return(BorrowRefModel == null ? "" : Public.JsonSerializeHelper.SerializeToJson(BorrowRefModel));

                //还款单
                case 4:
                    Models.RefundBillModel    RefundModel    = new Marisfrolg.Fee.BLL.RefundBill().GetBillModel(BillNo);
                    Models.RefundBillModelRef RefundRefModel = new Models.RefundBillModelRef();
                    RefundRefModel            = RefundModel.MapTo <Models.RefundBillModel, Models.RefundBillModelRef>();
                    RefundRefModel.StringTime = RefundModel.CreateTime.ToString("yyyy-MM-dd");
                    RefundRefModel.PageName   = "RefundBill";
                    RefundRefModel.TotalMoney = RefundModel.RealRefundMoney;
                    return(RefundRefModel == null ? "" : Public.JsonSerializeHelper.SerializeToJson(RefundRefModel));

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                Logger.Write("获取列表数据失败:" + ex.ToString() + "," + System.Reflection.MethodBase.GetCurrentMethod().Name);
            }
            return("");
        }
        /// <summary>
        /// 获取数据列表
        /// </summary>
        /// <param name="Type">单据类型</param>
        /// <param name="Time">时间</param>
        /// <param name="WFType">单据状态</param>
        /// <param name="CreateTimeParameters1">开始时间</param>
        /// <param name="CreateTimeParameters2">结束时间</param>
        /// <returns></returns>
        public string GetMyBillList(int Type, int BillBelong, string CreateTimeParameters1 = "", string CreateTimeParameters2 = "", string DepartmentCode = "", string CheckStatus = "", string PrintStatus = "", string IsExport = "", string FeeSortList = "", string OverTimeParameters1 = "", string OverTimeParameters2 = "", string ShopCodeList = "", string BillStatus = "")
        {
            List <string> DepartmentList = new List <string>();

            if (!string.IsNullOrEmpty(DepartmentCode))
            {
                DepartmentList = DepartmentCode.Split(',').ToList();
                DepartmentList.Remove("");
            }
            try
            {
                List <Models.FeeBillModelRef> ModelList = new List <Models.FeeBillModelRef>();
                //时间区间控制
                DateTime startTime = new DateTime(1999, 1, 1);
                DateTime endTime   = new DateTime(2999, 1, 1);
                if (!string.IsNullOrEmpty(CreateTimeParameters1))
                {
                    startTime = Convert.ToDateTime(CreateTimeParameters1);
                }
                if (!string.IsNullOrEmpty(CreateTimeParameters2))
                {
                    endTime = Convert.ToDateTime(CreateTimeParameters2);
                    endTime = endTime.AddDays(1).AddSeconds(-1);
                }

                //根据不同的单据类型调用不同的方法取值
                switch (Type)
                {
                //全部
                case 0:
                    List <Models.FeeBillModel> list1 = new Marisfrolg.Fee.BLL.FeeBill().GetBillForPrint(startTime, endTime, BillBelong, DepartmentList, CheckStatus, PrintStatus);
                    foreach (var item in list1)
                    {
                        Models.FeeBillModelRef temp = new Models.FeeBillModelRef()
                        {
                            BillNo = item.BillNo, PersonInfo = new Models.PersonInfo {
                                Brand = item.PersonInfo.Brand, IsHeadOffice = item.PersonInfo.IsHeadOffice, ShopCode = item.PersonInfo.ShopCode
                            }, Owner = item.Owner, TotalMoney = item.TotalMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, PageName = "FeeBill", Remark = item.Remark, CreateTime = item.CreateTime, PrintedCount = item.PrintedCount, Items = item.Items, CopyCount = item.CopyCount, RecycleBin = item.RecycleBin
                        };
                        ModelList.Add(temp);
                    }
                    List <Models.NoticeBillModel> list2 = new Marisfrolg.Fee.BLL.NoticeBill().GetBillForPrint(startTime, endTime, BillBelong, DepartmentList, CheckStatus, PrintStatus);
                    foreach (var item in list2)
                    {
                        Models.FeeBillModelRef temp = new Models.FeeBillModelRef()
                        {
                            BillNo = item.BillNo, PersonInfo = new Models.PersonInfo {
                                Brand = item.PersonInfo.Brand, IsHeadOffice = item.PersonInfo.IsHeadOffice, ShopCode = item.PersonInfo.ShopCode
                            }, Owner = item.Owner, TotalMoney = item.TotalMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, PageName = "NoticeBill", Remark = item.Remark, CreateTime = item.CreateTime, ProviderName = item.ProviderInfo.ProviderName, PrintedCount = item.PrintedCount, Items = item.Items, CopyCount = item.CopyCount, RecycleBin = item.RecycleBin, MissBill = item.MissBill
                        };
                        ModelList.Add(temp);
                    }
                    List <Models.BorrowBillModel> list3 = new Marisfrolg.Fee.BLL.BorrowBill().GetMyBillList(startTime, endTime, BillBelong, DepartmentList, CheckStatus, PrintStatus);
                    foreach (var item in list3)
                    {
                        Models.FeeBillModelRef temp = new Models.FeeBillModelRef()
                        {
                            BillNo = item.BillNo, PersonInfo = new Models.PersonInfo {
                                Brand = item.PersonInfo.Brand, IsHeadOffice = item.PersonInfo.IsHeadOffice, ShopCode = item.PersonInfo.ShopCode
                            }, Owner = item.Owner, TotalMoney = item.TotalMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, PageName = "BorrowBill", Remark = item.Remark, CreateTime = item.CreateTime, PrintedCount = item.PrintedCount, Items = item.Items, CopyCount = item.CopyCount, RecycleBin = item.RecycleBin
                        };
                        ModelList.Add(temp);
                    }
                    List <Models.RefundBillModel> list4 = new Marisfrolg.Fee.BLL.RefundBill().GetBillForPrint(startTime, endTime, BillBelong, DepartmentList, CheckStatus, PrintStatus);
                    foreach (var item in list4)
                    {
                        Models.FeeBillModelRef temp = new Models.FeeBillModelRef()
                        {
                            BillNo = item.BillNo, PersonInfo = new Models.PersonInfo {
                                Brand = item.PersonInfo.Brand, IsHeadOffice = item.PersonInfo.IsHeadOffice, ShopCode = item.PersonInfo.ShopCode
                            }, Owner = item.Owner, TotalMoney = item.RealRefundMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, PageName = "RefundBill", Remark = item.Remark, CreateTime = item.CreateTime, PrintedCount = item.PrintedCount, Items = item.Items, CopyCount = item.CopyCount, RecycleBin = item.RecycleBin
                        };
                        ModelList.Add(temp);
                    }
                    ModelList = ModelList.OrderByDescending(c => c.CreateTime).ToList();
                    break;

                //费用报销单
                case 1:
                    List <Models.FeeBillModel>    FeeBill     = new Marisfrolg.Fee.BLL.FeeBill().GetBillForPrint(startTime, endTime, BillBelong, DepartmentList, CheckStatus, PrintStatus);
                    List <Models.FeeBillModelRef> FeeBillList = new List <Models.FeeBillModelRef>();
                    foreach (var item in FeeBill)
                    {
                        Models.FeeBillModelRef FeeModel = new Models.FeeBillModelRef();
                        FeeModel            = item.MapTo <Models.FeeBillModel, Models.FeeBillModelRef>();
                        FeeModel.StringTime = item.CreateTime.ToString("yyyy-MM-dd");
                        FeeModel.PageName   = "FeeBill";
                        FeeBillList.Add(FeeModel);
                    }
                    ModelList = FeeBillList.OrderByDescending(c => c.CreateTime).ToList();
                    break;

                //付款通知书
                case 2:
                    List <Models.NoticeBillModel> NoticeBill     = new Marisfrolg.Fee.BLL.NoticeBill().GetBillForPrint(startTime, endTime, BillBelong, DepartmentList, CheckStatus, PrintStatus);
                    List <Models.FeeBillModelRef> NoticeBillList = new List <Models.FeeBillModelRef>();
                    foreach (var item in NoticeBill)
                    {
                        Models.FeeBillModelRef temp = new Models.FeeBillModelRef()
                        {
                            BillNo = item.BillNo, PersonInfo = new Models.PersonInfo {
                                Brand = item.PersonInfo.Brand, IsHeadOffice = item.PersonInfo.IsHeadOffice
                            }, Owner = item.Owner, TotalMoney = item.TotalMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, PageName = "NoticeBill", Remark = item.Remark, CreateTime = item.CreateTime, ProviderName = item.ProviderInfo.ProviderName, PrintedCount = item.PrintedCount, Items = item.Items, CopyCount = item.CopyCount, RecycleBin = item.RecycleBin, MissBill = item.MissBill
                        };
                        NoticeBillList.Add(temp);
                    }
                    ModelList = NoticeBillList.OrderByDescending(c => c.CreateTime).ToList();
                    break;

                //借款单(所有的借款记录,不论是否还清)
                case 3:
                    List <Models.BorrowBillModel> BorrowBill     = new Marisfrolg.Fee.BLL.BorrowBill().GetMyBillList(startTime, endTime, BillBelong, DepartmentList, CheckStatus, PrintStatus);
                    List <Models.FeeBillModelRef> BorrowBillList = new List <Models.FeeBillModelRef>();
                    foreach (var item in BorrowBill)
                    {
                        Models.FeeBillModelRef temp = new Models.FeeBillModelRef()
                        {
                            BillNo = item.BillNo, PersonInfo = new Models.PersonInfo {
                                Brand = item.PersonInfo.Brand, IsHeadOffice = item.PersonInfo.IsHeadOffice
                            }, Owner = item.Owner, TotalMoney = item.TotalMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, PageName = "BorrowBill", Remark = item.Remark, CreateTime = item.CreateTime, PrintedCount = item.PrintedCount, Items = item.Items, CopyCount = item.CopyCount, RecycleBin = item.RecycleBin
                        };
                        BorrowBillList.Add(temp);
                    }
                    ModelList = BorrowBillList.OrderByDescending(c => c.CreateTime).ToList();
                    break;

                //还款单(加载还款记录)
                case 4:
                    List <Models.RefundBillModel> RefundBill     = new Marisfrolg.Fee.BLL.RefundBill().GetBillForPrint(startTime, endTime, BillBelong, DepartmentList, CheckStatus, PrintStatus);
                    List <Models.FeeBillModelRef> RefundBillList = new List <Models.FeeBillModelRef>();
                    foreach (var item in RefundBill)
                    {
                        Models.FeeBillModelRef temp = new Models.FeeBillModelRef()
                        {
                            BillNo = item.BillNo, PersonInfo = new Models.PersonInfo {
                                Brand = item.PersonInfo.Brand, IsHeadOffice = item.PersonInfo.IsHeadOffice
                            }, Owner = item.Owner, TotalMoney = item.RealRefundMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, PageName = "RefundBill", Remark = item.Remark, CreateTime = item.CreateTime, PrintedCount = item.PrintedCount, Items = item.Items, CopyCount = item.CopyCount, RecycleBin = item.RecycleBin
                        };
                        RefundBillList.Add(temp);
                    }
                    ModelList = RefundBillList.OrderByDescending(c => c.CreateTime).ToList();
                    break;

                //借款单(返回审核通过的借款单)
                case 5:
                    List <Models.BorrowBillModel> NewBorrowBill = new Marisfrolg.Fee.BLL.BorrowBill().GetMyBillList(startTime, endTime, BillBelong, DepartmentList, CheckStatus, PrintStatus);
                    NewBorrowBill = NewBorrowBill.Where(c => c.ApprovalStatus == 2).ToList();
                    List <Models.BorrowBillModelRef> NewBorrowBillList = new List <Models.BorrowBillModelRef>();
                    foreach (var item in NewBorrowBill)
                    {
                        Models.BorrowBillModelRef BorrowModel = new Models.BorrowBillModelRef();
                        BorrowModel            = item.MapTo <Models.BorrowBillModel, Models.BorrowBillModelRef>();
                        BorrowModel.StringTime = item.CreateTime.ToString("yyyy-MM-dd");
                        NewBorrowBillList.Add(BorrowModel);
                    }
                    return(Public.JsonSerializeHelper.SerializeToJson(NewBorrowBillList.OrderByDescending(c => c.CreateTime)));

                default:
                    break;
                }

                //费用小项的筛选
                if (!string.IsNullOrEmpty(FeeSortList))
                {
                    List <string> FeeList = FeeSortList.Split(',').ToList();
                    FeeList.Remove("");
                    List <decimal> IntList = new List <decimal>();
                    foreach (var item in FeeList)
                    {
                        IntList.Add(Convert.ToDecimal(item));
                    }
                    FeeList = DbContext.FEE_ACCOUNT.Where(c => IntList.Contains(c.ID)).Select(x => x.NAME).ToList();

                    if (ModelList.Count > 0)
                    {
                        List <Models.FeeBillModelRef> DeleteModel = new List <Models.FeeBillModelRef>();

                        foreach (var item in ModelList)
                        {
                            var IsDelete = true;
                            if (item.BillNo.Contains("HK") || item.Items == null || item.Items.Count == 0)
                            {
                                DeleteModel.Add(item);
                            }
                            else
                            {
                                foreach (var Titem in item.Items)
                                {
                                    if (FeeList.Contains(Titem.name))
                                    {
                                        IsDelete = false;
                                        break;
                                    }
                                }
                                if (IsDelete)
                                {
                                    DeleteModel.Add(item);
                                }
                            }
                        }
                        if (DeleteModel.Count > 0)
                        {
                            foreach (var item in DeleteModel)
                            {
                                ModelList.Remove(item);
                            }
                        }
                    }
                }

                if (!string.IsNullOrEmpty(OverTimeParameters1))
                {
                    DateTime time = Convert.ToDateTime(OverTimeParameters1);
                    List <Models.FeeBillModelRef> DeleteModel = new List <Models.FeeBillModelRef>();

                    if (ModelList.Count > 0)
                    {
                        foreach (var item in ModelList)
                        {
                            DateTime apptime = Convert.ToDateTime(item.ApprovalTime);

                            if (time > apptime)
                            {
                                DeleteModel.Add(item);
                            }
                        }
                        if (DeleteModel.Count > 0)
                        {
                            foreach (var item in DeleteModel)
                            {
                                ModelList.Remove(item);
                            }
                        }
                    }
                }

                if (!string.IsNullOrEmpty(OverTimeParameters2))
                {
                    DateTime time = Convert.ToDateTime(OverTimeParameters2);
                    time = time.AddDays(1).AddSeconds(-1);
                    List <Models.FeeBillModelRef> DeleteModel = new List <Models.FeeBillModelRef>();

                    if (ModelList.Count > 0)
                    {
                        foreach (var item in ModelList)
                        {
                            DateTime apptime = Convert.ToDateTime(item.ApprovalTime);

                            if (time < apptime)
                            {
                                DeleteModel.Add(item);
                            }
                        }
                        if (DeleteModel.Count > 0)
                        {
                            foreach (var item in DeleteModel)
                            {
                                ModelList.Remove(item);
                            }
                        }
                    }
                }

                if (!string.IsNullOrEmpty(ShopCodeList))
                {
                    List <string> Newlist = ShopCodeList.Split(',').ToList();
                    Newlist.Remove("");
                    ModelList = ModelList.Where(c => Newlist.Contains(c.PersonInfo.ShopCode)).ToList();
                }


                if (!string.IsNullOrEmpty(BillStatus))
                {
                    int status = Convert.ToInt32(BillStatus);

                    ModelList = ModelList.Where(c => c.PageName == "NoticeBill" && c.MissBill == status).ToList();
                }

                if (IsExport != "1")
                {
                    return(Public.JsonSerializeHelper.SerializeToJson(ModelList));
                }
                else
                {
                    DataTable dt = new DataTable();
                    dt.Columns.Add("单号");
                    dt.Columns.Add("单据类型");
                    dt.Columns.Add("发生品牌");
                    dt.Columns.Add("业务人");
                    dt.Columns.Add("供应商");
                    dt.Columns.Add("发生金额");
                    dt.Columns.Add("创建日期");
                    dt.Columns.Add("办结日期");
                    dt.Columns.Add("审核状态");
                    dt.Columns.Add("备注");

                    if (ModelList.Count > 0)
                    {
                        string ApprovalStatus = "";
                        string BillType       = "";
                        foreach (var item in ModelList)
                        {
                            DataRow row   = dt.NewRow();
                            string  Brand = "";
                            row["单号"] = item.BillNo;
                            if (item.PageName == "FeeBill")
                            {
                                BillType = "费用报销单";
                            }
                            else if (item.PageName == "NoticeBill")
                            {
                                BillType   = "付款通知书";
                                row["供应商"] = item.ProviderName;
                            }
                            else if (item.PageName == "BorrowBill")
                            {
                                BillType = "借款单";
                            }
                            else if (item.PageName == "RefundBill")
                            {
                                BillType = "还款单";
                            }
                            row["单据类型"] = BillType;
                            if (item.PersonInfo.Brand == null || item.PersonInfo.Brand.Count == 0)
                            {
                                Brand = "无记账品牌";
                            }
                            else
                            {
                                foreach (var item1 in item.PersonInfo.Brand)
                                {
                                    Brand += item1 + ",";
                                }
                                Brand = Brand.Remove(Brand.Length - 1);
                            }
                            row["发生品牌"] = Brand;
                            row["业务人"]  = item.Owner;
                            row["发生金额"] = item.TotalMoney;
                            row["创建日期"] = item.CreateTime;
                            row["办结日期"] = item.ApprovalTime == null ? "" : item.ApprovalTime;
                            if (item.ApprovalStatus == 2)
                            {
                                ApprovalStatus = "通过";
                            }
                            else if (item.ApprovalStatus == 3)
                            {
                                ApprovalStatus = "拒绝";
                            }
                            else
                            {
                                ApprovalStatus = item.ApprovalPost + "审核中";
                            }
                            row["审核状态"] = ApprovalStatus;
                            row["备注"]   = item.Remark;
                            dt.Rows.Add(row);
                        }
                    }
                    string Name = ExportExcel(dt, "我的单据");
                    return(Name);
                }
            }
            catch (Exception ex)
            {
                Logger.Write("获取打印列表数据失败:" + ex.ToString() + "," + System.Reflection.MethodBase.GetCurrentMethod().Name);
            }
            return("");
        }
        /// <summary>
        /// 获取打印列表
        /// </summary>
        /// <param name="Type">单据类型</param>
        /// <param name="Time">时间</param>
        /// <param name="Page">页码数</param>
        /// <returns></returns>
        public string GetPrintList(int Type, int Time, int Page = 1)
        {
            try
            {
                InfoList list = new InfoList();
                list.pageSize = 10;
                int    totalNumber = 0;
                object ModelList   = null;
                //时间区间控制
                DateTime startTime = new DateTime(1999, 1, 1);
                DateTime endTime   = new DateTime(2999, 1, 1);
                //创建日期
                switch (Time)
                {
                //全部
                case 1:
                    break;

                //当天
                case 2:
                    startTime = DateTime.Now.Date;
                    break;

                //本周
                case 3:
                    startTime = DateTime.Now.Date.AddDays(1 - Convert.ToInt32(DateTime.Now.Date.DayOfWeek.ToString("d")));
                    endTime   = DateTime.Now.Date.AddDays(1 - Convert.ToInt32(DateTime.Now.Date.DayOfWeek.ToString("d"))).AddDays(7);
                    break;

                //本月
                case 4:
                    startTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                    endTime   = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1);
                    break;

                //上月
                case 5:
                    startTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(-1);
                    endTime   = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                    break;

                default:
                    break;
                }
                //根据不同的单据类型调用不同的方法取值
                switch (Type)
                {
                //费用报销单
                case 1:
                    List <Models.FeeBillModel>    FeeBill     = new Marisfrolg.Fee.BLL.FeeBill().GetBillForPrint(startTime, endTime, Page, list.pageSize, out totalNumber);
                    List <Models.FeeBillModelRef> FeeBillList = new List <Models.FeeBillModelRef>();
                    foreach (var item in FeeBill)
                    {
                        Models.FeeBillModelRef FeeModel = new Models.FeeBillModelRef();
                        FeeModel            = item.MapTo <Models.FeeBillModel, Models.FeeBillModelRef>();
                        FeeModel.StringTime = item.CreateTime.ToString("yyyy-MM-dd");
                        FeeBillList.Add(FeeModel);
                    }
                    ModelList = FeeBillList;
                    break;

                //付款通知书
                case 2:
                    List <Models.NoticeBillModel>    NoticeBill     = new Marisfrolg.Fee.BLL.NoticeBill().GetBillForPrint(startTime, endTime, Page, list.pageSize, out totalNumber);
                    List <Models.NoticeBillModelRef> NoticeBillList = new List <Models.NoticeBillModelRef>();
                    foreach (var item in NoticeBill)
                    {
                        Models.NoticeBillModelRef NoticeModel = new Models.NoticeBillModelRef();
                        NoticeModel            = item.MapTo <Models.NoticeBillModel, Models.NoticeBillModelRef>();
                        NoticeModel.StringTime = item.CreateTime.ToString("yyyy-MM-dd");
                        NoticeBillList.Add(NoticeModel);
                    }
                    ModelList = NoticeBillList;
                    break;

                //借款单(所有的借款记录,不论是否还清)
                case 3:
                    List <Models.BorrowBillModel>    BorrowBill     = new Marisfrolg.Fee.BLL.BorrowBill().GetBillForPrint(startTime, endTime, Page, list.pageSize, out totalNumber);
                    List <Models.BorrowBillModelRef> BorrowBillList = new List <Models.BorrowBillModelRef>();
                    foreach (var item in BorrowBill)
                    {
                        Models.BorrowBillModelRef BorrowModel = new Models.BorrowBillModelRef();
                        BorrowModel            = item.MapTo <Models.BorrowBillModel, Models.BorrowBillModelRef>();
                        BorrowModel.StringTime = item.CreateTime.ToString("yyyy-MM-dd");
                        BorrowBillList.Add(BorrowModel);
                    }
                    ModelList = BorrowBillList;
                    break;

                //还款单(加载还款记录)
                case 4:
                    List <Models.RefundBillModel>    RefundBill     = new Marisfrolg.Fee.BLL.RefundBill().GetBillForPrint(startTime, endTime, Page, list.pageSize, out totalNumber);
                    List <Models.RefundBillModelRef> RefundBillList = new List <Models.RefundBillModelRef>();
                    foreach (var item in RefundBill)
                    {
                        Models.RefundBillModelRef RefundModel = new Models.RefundBillModelRef();
                        RefundModel            = item.MapTo <Models.RefundBillModel, Models.RefundBillModelRef>();
                        RefundModel.StringTime = item.CreateTime.ToString("yyyy-MM-dd");
                        RefundModel.TotalMoney = RefundModel.RealRefundMoney;
                        RefundBillList.Add(RefundModel);
                    }
                    ModelList = RefundBillList;
                    break;

                default:
                    break;
                }

                double value = (double)totalNumber / list.pageSize;
                list.totalPages  = Math.Ceiling(value);
                list.currentPage = Page;
                list.info        = ModelList;
                return(Public.JsonSerializeHelper.SerializeToJson(list));
            }
            catch (Exception ex)
            {
                Logger.Write("获取打印列表数据失败:" + ex.ToString() + "," + System.Reflection.MethodBase.GetCurrentMethod().Name);
            }
            return("");
        }
        /// <summary>
        /// 获取我审批的任务
        /// </summary>
        /// <param name="Type">任务类型</param>
        /// <returns></returns>
        public string GetMyProcess(string Type)
        {
            try
            {
                var employee = Marisfrolg.Public.Common.GetEmployeeInfo();

                WorkFlowProxy.WorkFlowProxy proxy = new WorkFlowProxy.WorkFlowProxy();
                Dictionary <string, WorkFlowEngine.WorkFlowInstance> dic = new Dictionary <string, WorkFlowEngine.WorkFlowInstance>();
                string result = proxy.GetWorkFlowTaskList(employee.EmployeeNo, "", ref dic);
                if (!string.IsNullOrEmpty(result) && dic.Count > 0)
                {
                    List <MongoDB.Bson.ObjectId> Mylist = dic.Select(c => c.Value).Select(c => c._id).ToList();
                    List <string> WorkFlowList          = new List <string>();
                    foreach (var item in Mylist)
                    {
                        WorkFlowList.Add(item.ToString());
                    }

                    switch (Type)
                    {
                    //未审批的费用报销单
                    case "费用报销单":
                        var FeeModel = new Marisfrolg.Fee.BLL.FeeBill().GetMyProcess(employee.EmployeeNo, WorkFlowList);
                        List <Marisfrolg.Fee.Models.FeeBillModelRef> RefList = new List <Models.FeeBillModelRef>();
                        foreach (var item in FeeModel)
                        {
                            Marisfrolg.Fee.Models.FeeBillModelRef RefModel = new Models.FeeBillModelRef();
                            RefModel = item.MapTo <FeeBillModel, FeeBillModelRef>();
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(RefModel.WorkFlowID);
                            RefModel.AssignmentID = dic.Where(c => c.Value._id == id).Select(c => c.Key).FirstOrDefault();
                            RefList.Add(RefModel);
                        }
                        return(RefList.Count == 0 ? "" : Public.JsonSerializeHelper.SerializeToJson(RefList));

                    //未审批的付款通知书
                    case "付款通知书":
                        var NoticeModel = new Marisfrolg.Fee.BLL.NoticeBill().GetMyProcess(employee.EmployeeNo, WorkFlowList);
                        List <Marisfrolg.Fee.Models.NoticeBillModelRef> NoticeRefList = new List <Models.NoticeBillModelRef>();
                        foreach (var item in NoticeModel)
                        {
                            Marisfrolg.Fee.Models.NoticeBillModelRef RefModel = new Models.NoticeBillModelRef();
                            RefModel = item.MapTo <NoticeBillModel, NoticeBillModelRef>();
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(RefModel.WorkFlowID);
                            RefModel.AssignmentID = dic.Where(c => c.Value._id == id).Select(c => c.Key).FirstOrDefault();
                            NoticeRefList.Add(RefModel);
                        }
                        return(NoticeRefList.Count == 0 ? "" : Public.JsonSerializeHelper.SerializeToJson(NoticeRefList));

                    //未审批的借款单
                    case "借款单":
                        var BorrowModel = new Marisfrolg.Fee.BLL.BorrowBill().GetMyProcess(employee.EmployeeNo, WorkFlowList);
                        List <Marisfrolg.Fee.Models.BorrowBillModelRef> BorrowRefList = new List <Models.BorrowBillModelRef>();
                        foreach (var item in BorrowModel)
                        {
                            Marisfrolg.Fee.Models.BorrowBillModelRef RefModel = new Models.BorrowBillModelRef();
                            RefModel = item.MapTo <BorrowBillModel, BorrowBillModelRef>();
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(RefModel.WorkFlowID);
                            RefModel.AssignmentID = dic.Where(c => c.Value._id == id).Select(c => c.Key).FirstOrDefault();
                            BorrowRefList.Add(RefModel);
                        }
                        return(BorrowRefList.Count == 0 ? "" : Public.JsonSerializeHelper.SerializeToJson(BorrowRefList));

                    //未审批的借款单
                    case "还款单":
                        var RefundModel = new Marisfrolg.Fee.BLL.RefundBill().GetMyProcess(employee.EmployeeNo, WorkFlowList);
                        List <Marisfrolg.Fee.Models.RefundBillModelRef> RefundRefList = new List <Models.RefundBillModelRef>();
                        foreach (var item in RefundModel)
                        {
                            Marisfrolg.Fee.Models.RefundBillModelRef RefModel = new Models.RefundBillModelRef();
                            RefModel = item.MapTo <RefundBillModel, RefundBillModelRef>();
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(RefModel.WorkFlowID);
                            RefModel.AssignmentID = dic.Where(c => c.Value._id == id).Select(c => c.Key).FirstOrDefault();
                            RefModel.TotalMoney   = RefModel.RealRefundMoney;
                            RefundRefList.Add(RefModel);
                        }
                        return(RefundRefList.Count == 0 ? "" : Public.JsonSerializeHelper.SerializeToJson(RefundRefList));

                    default:
                        break;
                    }
                }
                return("");
            }
            catch (Exception ex)
            {
                WriteLog.WebGuiInLog("获取我审批的任务" + ex.ToString(), "首页控制器GetMyProcess", "");
            }
            return("");
        }
Exemple #6
0
        /// <summary>
        /// 获取我审批过的单据
        /// </summary>
        /// <param name="Type">单据类型</param>
        /// <param name="Time">时间</param>
        /// <param name="EmployeeNo">工号</param>
        /// <returns></returns>
        public object GetApprovalData(int Type, int Time, string EmployeeNo, string departmentID, string StartTime, string EndTime)
        {
            try
            {
                var TempTime1 = DateTime.Now.Date;
                var TempTime2 = DateTime.Now.Date;
                if (Time == 6)
                {
                    TempTime1 = StartTime == "" ? new DateTime(1999, 1, 1) : Convert.ToDateTime(StartTime);
                    TempTime2 = EndTime == "" ? new DateTime(2999, 1, 1) : Convert.ToDateTime(EndTime);
                }
                WorkFlowProxy.WorkFlowProxy proxy = new WorkFlowProxy.WorkFlowProxy();
                List <WorkFlowInstance>     dic   = new List <WorkFlowInstance>();
                string objectID = proxy.GetWorkFlowListByUserId(EmployeeNo, TempTime1, TempTime2, ref dic);

                if (!string.IsNullOrEmpty(objectID) && dic.Count > 0)
                {
                    List <TempTime> Mylist = new List <TempTime>();
                    foreach (var item in dic)
                    {
                        TempTime Tmp = new TempTime();
                        Tmp.Id = item._id;
                        if (item.Assignments == null)
                        {
                            item.Assignments = new List <Assignment>();
                        }
                        var model = item.Assignments.Where(c => (c.Keyword == 12002 || c.Keyword == 12003 || c.Keyword == 12005) && c.UserCode == EmployeeNo).ToList();
                        if (model != null && model.Count > 0)
                        {
                            Tmp.Time = model.Select(c => c.updatetime).LastOrDefault();
                            Mylist.Add(Tmp);
                        }
                    }
                    List <string> WorkFlowList = new List <string>();
                    foreach (var item in Mylist)
                    {
                        WorkFlowList.Add(item.Id.ToString());
                    }

                    switch (Type)
                    {
                    //获取所有单据(不分类型)
                    case 0:
                        List <FeeBillModelRef> AllModel = new List <FeeBillModelRef>();
                        var Temp1 = new Marisfrolg.Fee.BLL.FeeBill().GetMyProcess(EmployeeNo, WorkFlowList);
                        var Temp2 = new Marisfrolg.Fee.BLL.NoticeBill().GetMyProcess(EmployeeNo, WorkFlowList);
                        var Temp3 = new Marisfrolg.Fee.BLL.BorrowBill().GetMyProcess(EmployeeNo, WorkFlowList);
                        var Temp4 = new Marisfrolg.Fee.BLL.RefundBill().GetMyProcess(EmployeeNo, WorkFlowList);
                        foreach (var item1 in Temp1)
                        {
                            FeeBillModelRef TempModel = new FeeBillModelRef()
                            {
                                BillNo = item1.BillNo, PageName = "费用报销单", Creator = item1.Creator, Owner = item1.Owner, TotalMoney = item1.TotalMoney, StringTime = item1.CreateTime.ToString("yyyy-MM-dd"), CreateTime = item1.CreateTime, PersonInfo = new PersonInfo()
                                {
                                    DepartmentCode = item1.PersonInfo.DepartmentCode, Department = item1.PersonInfo.Department
                                }
                            };
                            var Id = MongoDB.Bson.ObjectId.Parse(item1.WorkFlowID);
                            TempModel.ExamineTime = Mylist.Where(c => c.Id == Id).Select(x => x.Time).FirstOrDefault();
                            AllModel.Add(TempModel);
                        }
                        foreach (var item2 in Temp2)
                        {
                            FeeBillModelRef TempModel = new FeeBillModelRef()
                            {
                                BillNo = item2.BillNo, PageName = "付款通知书", Creator = item2.Creator, Owner = item2.Owner, TotalMoney = item2.TotalMoney, StringTime = item2.CreateTime.ToString("yyyy-MM-dd"), CreateTime = item2.CreateTime, PersonInfo = new PersonInfo()
                                {
                                    DepartmentCode = item2.PersonInfo.DepartmentCode, Department = item2.PersonInfo.Department
                                }
                            };
                            var Id = MongoDB.Bson.ObjectId.Parse(item2.WorkFlowID);
                            TempModel.ExamineTime = Mylist.Where(c => c.Id == Id).Select(x => x.Time).FirstOrDefault();
                            AllModel.Add(TempModel);
                        }
                        foreach (var item3 in Temp3)
                        {
                            FeeBillModelRef TempModel = new FeeBillModelRef()
                            {
                                BillNo = item3.BillNo, PageName = "借款单", Creator = item3.Creator, Owner = item3.Owner, TotalMoney = item3.TotalMoney, StringTime = item3.CreateTime.ToString("yyyy-MM-dd"), CreateTime = item3.CreateTime, PersonInfo = new PersonInfo()
                                {
                                    DepartmentCode = item3.PersonInfo.DepartmentCode, Department = item3.PersonInfo.Department
                                }
                            };
                            var Id = MongoDB.Bson.ObjectId.Parse(item3.WorkFlowID);
                            TempModel.ExamineTime = Mylist.Where(c => c.Id == Id).Select(x => x.Time).FirstOrDefault();
                            AllModel.Add(TempModel);
                        }
                        foreach (var item4 in Temp4)
                        {
                            FeeBillModelRef TempModel = new FeeBillModelRef()
                            {
                                BillNo = item4.BillNo, PageName = item4.RefundType.ToUpper() == "CASH" ? "现金还款" : "费用单还款", Creator = item4.Creator, Owner = item4.Owner, TotalMoney = item4.RealRefundMoney, StringTime = item4.CreateTime.ToString("yyyy-MM-dd"), CreateTime = item4.CreateTime, PersonInfo = new PersonInfo()
                                {
                                    DepartmentCode = item4.PersonInfo.DepartmentCode, Department = item4.PersonInfo.Department
                                }
                            };
                            var Id = MongoDB.Bson.ObjectId.Parse(item4.WorkFlowID);
                            TempModel.ExamineTime = Mylist.Where(c => c.Id == Id).Select(x => x.Time).FirstOrDefault();
                            AllModel.Add(TempModel);
                        }
                        if (departmentID == "0")
                        {
                            AllModel = AllModel.Where(c => c.ExamineTime.Date >= TempTime1 && c.ExamineTime.Date <= TempTime2).ToList();
                        }
                        else
                        {
                            AllModel = AllModel.Where(c => c.ExamineTime.Date >= TempTime1 && c.ExamineTime.Date <= TempTime2 && c.PersonInfo.DepartmentCode == departmentID).ToList();
                        }

                        return(AllModel.OrderByDescending(c => c.ExamineTime).ToList());

                    //未审批的费用报销单
                    case 1:
                        var FeeModel = new Marisfrolg.Fee.BLL.FeeBill().GetMyProcess(EmployeeNo, WorkFlowList);
                        List <Marisfrolg.Fee.Models.FeeBillModelRef> RefList = new List <Models.FeeBillModelRef>();
                        foreach (var item in FeeModel)
                        {
                            Marisfrolg.Fee.Models.FeeBillModelRef RefModel = new Models.FeeBillModelRef();
                            RefModel = item.MapTo <FeeBillModel, FeeBillModelRef>();
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(RefModel.WorkFlowID);
                            RefModel.StringTime  = RefModel.CreateTime.ToString("yyyy-MM-dd");
                            RefModel.PageName    = "费用报销单";
                            RefModel.ExamineTime = Mylist.Where(c => c.Id == id).Select(x => x.Time).FirstOrDefault();
                            RefList.Add(RefModel);
                        }
                        if (departmentID == "0")
                        {
                            RefList = RefList.Where(c => c.ExamineTime.Date >= TempTime1 && c.ExamineTime.Date <= TempTime2).ToList();
                        }
                        else
                        {
                            RefList = RefList.Where(c => c.ExamineTime.Date >= TempTime1 && c.ExamineTime.Date <= TempTime2 && c.PersonInfo.DepartmentCode == departmentID).ToList();
                        }
                        return(RefList.OrderByDescending(c => c.ExamineTime).ToList());

                    //未审批的付款通知书
                    case 2:
                        var NoticeModel = new Marisfrolg.Fee.BLL.NoticeBill().GetMyProcess(EmployeeNo, WorkFlowList);
                        List <Marisfrolg.Fee.Models.NoticeBillModelRef> NoticeRefList = new List <Models.NoticeBillModelRef>();
                        foreach (var item in NoticeModel)
                        {
                            Marisfrolg.Fee.Models.NoticeBillModelRef RefModel = new Models.NoticeBillModelRef();
                            RefModel = item.MapTo <NoticeBillModel, NoticeBillModelRef>();
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(RefModel.WorkFlowID);
                            RefModel.StringTime  = RefModel.CreateTime.ToString("yyyy-MM-dd");
                            RefModel.PageName    = "付款通知书";
                            RefModel.ExamineTime = Mylist.Where(c => c.Id == id).Select(x => x.Time).FirstOrDefault();
                            NoticeRefList.Add(RefModel);
                        }
                        if (departmentID == "0")
                        {
                            NoticeRefList = NoticeRefList.Where(c => c.ExamineTime.Date >= TempTime1 && c.ExamineTime.Date <= TempTime2).ToList();
                        }
                        else
                        {
                            NoticeRefList = NoticeRefList.Where(c => c.ExamineTime.Date >= TempTime1 && c.ExamineTime.Date <= TempTime2 && c.PersonInfo.DepartmentCode == departmentID).ToList();
                        }
                        return(NoticeRefList.OrderByDescending(c => c.ExamineTime).ToList());

                    //未审批的借款单
                    case 3:
                        var BorrowModel = new Marisfrolg.Fee.BLL.BorrowBill().GetMyProcess(EmployeeNo, WorkFlowList);
                        List <Marisfrolg.Fee.Models.BorrowBillModelRef> BorrowRefList = new List <Models.BorrowBillModelRef>();
                        foreach (var item in BorrowModel)
                        {
                            Marisfrolg.Fee.Models.BorrowBillModelRef RefModel = new Models.BorrowBillModelRef();
                            RefModel = item.MapTo <BorrowBillModel, BorrowBillModelRef>();
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(RefModel.WorkFlowID);
                            RefModel.StringTime  = RefModel.CreateTime.ToString("yyyy-MM-dd");
                            RefModel.PageName    = "借款单";
                            RefModel.ExamineTime = Mylist.Where(c => c.Id == id).Select(x => x.Time).FirstOrDefault();
                            BorrowRefList.Add(RefModel);
                        }
                        if (departmentID == "0")
                        {
                            BorrowRefList = BorrowRefList.Where(c => c.ExamineTime.Date >= TempTime1 && c.ExamineTime.Date <= TempTime2).ToList();
                        }
                        else
                        {
                            BorrowRefList = BorrowRefList.Where(c => c.ExamineTime.Date >= TempTime1 && c.ExamineTime.Date <= TempTime2 && c.PersonInfo.DepartmentCode == departmentID).ToList();
                        }
                        return(BorrowRefList.OrderByDescending(c => c.ExamineTime).ToList());

                    //未审批的借款单
                    case 4:
                        var RefundModel = new Marisfrolg.Fee.BLL.RefundBill().GetMyProcess(EmployeeNo, WorkFlowList);
                        List <Marisfrolg.Fee.Models.RefundBillModelRef> RefundRefList = new List <Models.RefundBillModelRef>();
                        foreach (var item in RefundModel)
                        {
                            Marisfrolg.Fee.Models.RefundBillModelRef RefModel = new Models.RefundBillModelRef();
                            RefModel = item.MapTo <RefundBillModel, RefundBillModelRef>();
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(RefModel.WorkFlowID);
                            RefModel.TotalMoney  = RefModel.RealRefundMoney;
                            RefModel.StringTime  = RefModel.CreateTime.ToString("yyyy-MM-dd");
                            RefModel.PageName    = RefModel.RefundType.ToUpper() == "CASH" ? "现金还款" : "费用单还款";
                            RefModel.ExamineTime = Mylist.Where(c => c.Id == id).Select(x => x.Time).FirstOrDefault();
                            RefundRefList.Add(RefModel);
                        }
                        if (departmentID == "0")
                        {
                            RefundRefList = RefundRefList.Where(c => c.ExamineTime.Date >= TempTime1 && c.ExamineTime.Date <= TempTime2).ToList();
                        }
                        else
                        {
                            RefundRefList = RefundRefList.Where(c => c.ExamineTime.Date >= TempTime1 && c.ExamineTime.Date <= TempTime2 && c.PersonInfo.DepartmentCode == departmentID).ToList();
                        }
                        return(RefundRefList.OrderBy(c => c.ExamineTime).ToList());

                    default:
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Write("获取我审批过的单据失败:" + ex.ToString() + "," + System.Reflection.MethodBase.GetCurrentMethod().Name);
            }
            return(null);
        }
Exemple #7
0
        public string GetMyProcess(int Type, int Time, string TimeValue1 = "", string TimeValue2 = "")
        {
            DateTime startTime = new DateTime(1999, 1, 1);
            DateTime endTime   = new DateTime(2999, 1, 1);

            //创建日期
            switch (Time)
            {
            //全部
            case 1:
                break;

            //当天
            case 2:
                startTime = DateTime.Now.Date;
                break;

            //本周
            case 3:
                startTime = DateTime.Now.Date.AddDays(1 - Convert.ToInt32(DateTime.Now.Date.DayOfWeek.ToString("d")));
                endTime   = DateTime.Now.Date.AddDays(1 - Convert.ToInt32(DateTime.Now.Date.DayOfWeek.ToString("d"))).AddDays(7);
                break;

            //本月
            case 4:
                startTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                endTime   = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1);
                break;

            //上月
            case 5:
                startTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(-1);
                endTime   = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                break;

            //自定义
            case 6:
                startTime = TimeValue1 == "" ? startTime : Convert.ToDateTime(TimeValue1);
                endTime   = TimeValue2 == "" ? endTime : Convert.ToDateTime(TimeValue2);
                break;

            default:
                break;
            }
            try
            {
                var employee = Marisfrolg.Public.Common.GetEmployeeInfo();

                WorkFlowProxy.WorkFlowProxy proxy = new WorkFlowProxy.WorkFlowProxy();
                Dictionary <string, WorkFlowEngine.WorkFlowInstance> dic = new Dictionary <string, WorkFlowEngine.WorkFlowInstance>();
                string result = proxy.GetWorkFlowTaskList(employee.EmployeeNo, "", ref dic);
                if (!string.IsNullOrEmpty(result) && dic.Count > 0)
                {
                    List <MongoDB.Bson.ObjectId> Mylist = dic.Select(c => c.Value).Select(c => c._id).ToList();
                    List <string> WorkFlowList          = new List <string>();
                    foreach (var item in Mylist)
                    {
                        WorkFlowList.Add(item.ToString());
                    }

                    switch (Type)
                    {
                    case 0:
                        List <FeeBillModelRef> TempData = new List <FeeBillModelRef>();
                        var list1 = new Marisfrolg.Fee.BLL.FeeBill().GetMyProcess(employee.EmployeeNo, WorkFlowList);
                        foreach (var item in list1)
                        {
                            FeeBillModelRef Temp = new FeeBillModelRef()
                            {
                                PersonInfo = new PersonInfo()
                                {
                                    Department = item.PersonInfo.Department, Brand = item.PersonInfo.Brand, Shop = item.PersonInfo.Shop
                                }, BillNo = item.BillNo, PageName = "FeeBill", Owner = item.Owner, TotalMoney = item.TotalMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, CreateTime = item.CreateTime, Creator = item.Creator, PostString = item.PostString
                            };
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(item.WorkFlowID);
                            Temp.AssignmentID = dic.Where(c => c.Value._id == id).Select(c => c.Key).FirstOrDefault();

                            if (Temp.PostString != null)
                            {
                                Temp.AuditTime = Temp.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault() == null ? Temp.CreateTime : Temp.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault().Time;
                                Temp.CostTime  = Math.Round((DateTime.Now - Temp.AuditTime).TotalDays, 2);
                            }

                            TempData.Add(Temp);
                        }
                        var list2 = new Marisfrolg.Fee.BLL.NoticeBill().GetMyProcess(employee.EmployeeNo, WorkFlowList);
                        foreach (var item in list2)
                        {
                            FeeBillModelRef Temp = new FeeBillModelRef()
                            {
                                PersonInfo = new PersonInfo()
                                {
                                    Department = item.PersonInfo.Department, Brand = item.PersonInfo.Brand, Shop = item.PersonInfo.Shop
                                }, BillNo = item.BillNo, PageName = "NoticeBill", Owner = item.Owner, TotalMoney = item.TotalMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, CreateTime = item.CreateTime, Creator = item.Creator, PostString = item.PostString
                            };
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(item.WorkFlowID);
                            Temp.AssignmentID = dic.Where(c => c.Value._id == id).Select(c => c.Key).FirstOrDefault();

                            if (Temp.PostString != null)
                            {
                                Temp.AuditTime = Temp.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault() == null ? Temp.CreateTime : Temp.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault().Time;
                                Temp.CostTime  = Math.Round((DateTime.Now - Temp.AuditTime).TotalDays, 2);
                            }

                            TempData.Add(Temp);
                        }
                        var list3 = new Marisfrolg.Fee.BLL.BorrowBill().GetMyProcess(employee.EmployeeNo, WorkFlowList);
                        foreach (var item in list3)
                        {
                            FeeBillModelRef Temp = new FeeBillModelRef()
                            {
                                PersonInfo = new PersonInfo()
                                {
                                    Department = item.PersonInfo.Department, Brand = item.PersonInfo.Brand, Shop = item.PersonInfo.Shop
                                }, BillNo = item.BillNo, PageName = "BorrowBill", Owner = item.Owner, TotalMoney = item.TotalMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, CreateTime = item.CreateTime, Creator = item.Creator, PostString = item.PostString
                            };
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(item.WorkFlowID);
                            Temp.AssignmentID = dic.Where(c => c.Value._id == id).Select(c => c.Key).FirstOrDefault();

                            if (Temp.PostString != null)
                            {
                                Temp.AuditTime = Temp.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault() == null ? Temp.CreateTime : Temp.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault().Time;
                                Temp.CostTime  = Math.Round((DateTime.Now - Temp.AuditTime).TotalDays, 2);
                            }

                            TempData.Add(Temp);
                        }
                        var list4 = new Marisfrolg.Fee.BLL.RefundBill().GetMyProcess(employee.EmployeeNo, WorkFlowList);
                        foreach (var item in list4)
                        {
                            FeeBillModelRef Temp = new FeeBillModelRef()
                            {
                                PersonInfo = new PersonInfo()
                                {
                                    Department = item.PersonInfo.Department, Brand = item.PersonInfo.Brand, Shop = item.PersonInfo.Shop
                                }, BillNo = item.BillNo, PageName = "RefundBill", Owner = item.Owner, TotalMoney = item.RealRefundMoney, StringTime = item.CreateTime.ToString("yyyy-MM-dd"), ApprovalTime = item.ApprovalTime, ApprovalPost = item.ApprovalPost, ApprovalStatus = item.ApprovalStatus, CreateTime = item.CreateTime, Creator = item.Creator, PostString = item.PostString
                            };
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(item.WorkFlowID);
                            Temp.AssignmentID = dic.Where(c => c.Value._id == id).Select(c => c.Key).FirstOrDefault();


                            if (Temp.PostString != null)
                            {
                                Temp.AuditTime = Temp.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault() == null ? Temp.CreateTime : Temp.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault().Time;
                                Temp.CostTime  = Math.Round((DateTime.Now - Temp.AuditTime).TotalDays, 2);
                            }

                            TempData.Add(Temp);
                        }
                        TempData = TempData.Where(c => c.CreateTime.Date >= startTime.Date && c.CreateTime.Date <= endTime.Date).OrderByDescending(c => c.CreateTime).ToList();
                        return(Public.JsonSerializeHelper.SerializeToJson(TempData));

                    //未审批的费用报销单
                    case 1:
                        var FeeModel = new Marisfrolg.Fee.BLL.FeeBill().GetMyProcess(employee.EmployeeNo, WorkFlowList);
                        List <Marisfrolg.Fee.Models.FeeBillModelRef> RefList = new List <Models.FeeBillModelRef>();
                        foreach (var item in FeeModel)
                        {
                            Marisfrolg.Fee.Models.FeeBillModelRef RefModel = new Models.FeeBillModelRef();
                            RefModel = item.MapTo <FeeBillModel, FeeBillModelRef>();
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(RefModel.WorkFlowID);
                            RefModel.AssignmentID = dic.Where(c => c.Value._id == id).Select(c => c.Key).FirstOrDefault();
                            RefModel.StringTime   = RefModel.CreateTime.ToString("yyyy-MM-dd");
                            RefModel.PageName     = "FeeBill";


                            if (RefModel.PostString != null)
                            {
                                RefModel.AuditTime = RefModel.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault() == null ? RefModel.CreateTime : RefModel.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault().Time;
                                RefModel.CostTime  = Math.Round((DateTime.Now - RefModel.AuditTime).TotalDays, 2);
                            }

                            RefList.Add(RefModel);
                        }
                        RefList = RefList.Where(c => c.CreateTime.Date >= startTime.Date && c.CreateTime.Date <= endTime.Date).OrderByDescending(c => c.CreateTime).ToList();
                        return(Public.JsonSerializeHelper.SerializeToJson(RefList));

                    //未审批的付款通知书
                    case 2:
                        var NoticeModel = new Marisfrolg.Fee.BLL.NoticeBill().GetMyProcess(employee.EmployeeNo, WorkFlowList);
                        List <Marisfrolg.Fee.Models.NoticeBillModelRef> NoticeRefList = new List <Models.NoticeBillModelRef>();
                        foreach (var item in NoticeModel)
                        {
                            Marisfrolg.Fee.Models.NoticeBillModelRef RefModel = new Models.NoticeBillModelRef();
                            RefModel = item.MapTo <NoticeBillModel, NoticeBillModelRef>();
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(RefModel.WorkFlowID);
                            RefModel.AssignmentID = dic.Where(c => c.Value._id == id).Select(c => c.Key).FirstOrDefault();
                            RefModel.StringTime   = RefModel.CreateTime.ToString("yyyy-MM-dd");
                            RefModel.PageName     = "NoticeBill";

                            if (RefModel.PostString != null)
                            {
                                RefModel.AuditTime = RefModel.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault() == null ? RefModel.CreateTime : RefModel.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault().Time;
                                RefModel.CostTime  = Math.Round((DateTime.Now - RefModel.AuditTime).TotalDays, 2);
                            }

                            NoticeRefList.Add(RefModel);
                        }
                        NoticeRefList = NoticeRefList.Where(c => c.CreateTime >= startTime && c.CreateTime < endTime).OrderByDescending(c => c.CreateTime).ToList();
                        return(Public.JsonSerializeHelper.SerializeToJson(NoticeRefList));

                    //未审批的借款单
                    case 3:
                        var BorrowModel = new Marisfrolg.Fee.BLL.BorrowBill().GetMyProcess(employee.EmployeeNo, WorkFlowList);
                        List <Marisfrolg.Fee.Models.BorrowBillModelRef> BorrowRefList = new List <Models.BorrowBillModelRef>();
                        foreach (var item in BorrowModel)
                        {
                            Marisfrolg.Fee.Models.BorrowBillModelRef RefModel = new Models.BorrowBillModelRef();
                            RefModel = item.MapTo <BorrowBillModel, BorrowBillModelRef>();
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(RefModel.WorkFlowID);
                            RefModel.AssignmentID = dic.Where(c => c.Value._id == id).Select(c => c.Key).FirstOrDefault();
                            RefModel.StringTime   = RefModel.CreateTime.ToString("yyyy-MM-dd");
                            RefModel.PageName     = "BorrowBill";

                            if (RefModel.PostString != null)
                            {
                                RefModel.AuditTime = RefModel.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault() == null ? RefModel.CreateTime : RefModel.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault().Time;
                                RefModel.CostTime  = Math.Round((DateTime.Now - RefModel.AuditTime).TotalDays, 2);
                            }

                            BorrowRefList.Add(RefModel);
                        }
                        BorrowRefList = BorrowRefList.Where(c => c.CreateTime.Date >= startTime.Date && c.CreateTime.Date <= endTime.Date).OrderByDescending(c => c.CreateTime).ToList();
                        return(Public.JsonSerializeHelper.SerializeToJson(BorrowRefList));

                    //未审批的借款单
                    case 4:
                        var RefundModel = new Marisfrolg.Fee.BLL.RefundBill().GetMyProcess(employee.EmployeeNo, WorkFlowList);
                        List <Marisfrolg.Fee.Models.RefundBillModelRef> RefundRefList = new List <Models.RefundBillModelRef>();
                        foreach (var item in RefundModel)
                        {
                            Marisfrolg.Fee.Models.RefundBillModelRef RefModel = new Models.RefundBillModelRef();
                            RefModel = item.MapTo <RefundBillModel, RefundBillModelRef>();
                            MongoDB.Bson.ObjectId id = MongoDB.Bson.ObjectId.Parse(RefModel.WorkFlowID);
                            RefModel.AssignmentID = dic.Where(c => c.Value._id == id).Select(c => c.Key).FirstOrDefault();
                            RefModel.TotalMoney   = RefModel.RealRefundMoney;
                            RefModel.StringTime   = RefModel.CreateTime.ToString("yyyy-MM-dd");
                            RefModel.PageName     = "RefundBill";

                            if (RefModel.PostString != null)
                            {
                                RefModel.AuditTime = RefModel.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault() == null ? RefModel.CreateTime : RefModel.PostString.Where(c => !string.IsNullOrEmpty(c.JobNumber)).LastOrDefault().Time;
                                RefModel.CostTime  = Math.Round((DateTime.Now - RefModel.AuditTime).TotalDays, 2);
                            }

                            RefundRefList.Add(RefModel);
                        }
                        RefundRefList = RefundRefList.Where(c => c.CreateTime.Date >= startTime.Date && c.CreateTime.Date <= endTime.Date).OrderByDescending(c => c.CreateTime).ToList();
                        return(Public.JsonSerializeHelper.SerializeToJson(RefundRefList));

                    default:
                        break;
                    }
                }
                return("[]");
            }
            catch (Exception ex)
            {
                Logger.Write("获取未办结单据列表数据失败:" + ex.ToString() + "," + System.Reflection.MethodBase.GetCurrentMethod().Name);
            }
            return("[]");
        }