/// <summary>
        /// 服务执行
        /// </summary>
        /// <param name="requestEntity">请求数据</param>
        /// <param name="responseEntity">返回数据</param>
        protected override void DoExecute(RequestEntity requestEntity, ResponseEntity responseEntity)
        {
            IDictionary <string, string> paraDict = requestEntity.Parameters;
            SearchBusinessListFilter     filter   = ServiceUtility.ConvertToFilterFromDict <SearchBusinessListFilter>(paraDict);

            // 检索数据
            Singleton <BusinessDetailBLL> .Instance.SearchData(filter, responseEntity);
        }
        /// <summary>
        /// 服务执行
        /// </summary>
        /// <param name="requestEntity">请求数据</param>
        /// <param name="responseEntity">返回数据</param>
        protected override void DoExecute(RequestEntity requestEntity, ResponseEntity responseEntity)
        {
            // 定义接收客户端参数的变量
            SearchBusinessListFilter filter
                = ServiceUtility.ConvertToFilterFromDict <SearchBusinessListFilter>(requestEntity.Parameters);

            filter.UserId = responseEntity.UserId;

            // 订单更新
            Singleton <BusinessRectionBLL> .Instance.RectionData(filter, responseEntity);
        }
Exemple #3
0
        /// <summary>
        /// 检索数据
        /// </summary>
        /// <param name="baseFilter"></param>
        /// <param name="responseEntity"></param>
        public void GetLatestCloseTime(SearchBusinessListFilter baseFilter, ResponseEntity responseEntity)
        {
            if (baseFilter == null)
            {
                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.RequestCommandError);
                return;
            }

            var viewData = new LatestCloseTimeViewData();

            // 银行账户
            var bankAccounts = Singleton <RedisEnumOperatorBLL>
                               .Instance.GetEnumRedisDataEntitys <BankAccountRedisEntity>();

            if (bankAccounts == null || bankAccounts.Count == 0)
            {
                viewData.LatestTime = DateTime.MinValue;
                SetResult(viewData, responseEntity);
                return;
            }

            var bankAccount = bankAccounts.FirstOrDefault(p => p.BankAccountID == baseFilter.BankAccountID);

            if (bankAccount == null)
            {
                viewData.LatestTime = DateTime.MinValue;
                SetResult(viewData, responseEntity);
                return;
            }

            // 关帐日
            var closeBillDays = Singleton <RedisEnumOperatorBLL>
                                .Instance.GetEnumRedisDataEntitys <CloseBillDayRedisEntity>();

            if (closeBillDays == null || closeBillDays.Count == 0)
            {
                viewData.LatestTime = DateTime.MinValue;
                SetResult(viewData, responseEntity);
                return;
            }

            var closeBillDay = closeBillDays.FirstOrDefault(p => p.CompanyKey == bankAccount.CompanyKey);

            if (closeBillDay == null)
            {
                viewData.LatestTime = DateTime.MinValue;
            }
            else
            {
                viewData.LatestTime = closeBillDay.LatestTime;
            }

            SetResult(viewData, responseEntity);
        }
        protected override void DoExecute(RequestEntity requestEntity, ResponseEntity responseEntity)
        {
            IDictionary <string, string> paraDict          = requestEntity.Parameters;
            SearchBusinessListFilter     filter            = LogicUtility.ConvertToFilterFromDict <SearchBusinessListFilter>(paraDict);
            List <MongoBusiness>         mongoBusinessList = Singleton <BusinessInfo> .Instance.GetBusinessList(filter);

            ResponseListResult <MongoBusiness> result = new ResponseListResult <MongoBusiness>();

            result.TotalCount             = (int)filter.RecordCount;
            result.LstResult              = mongoBusinessList;
            responseEntity.ResponseStatus = (int)EnumResponseState.Success;
            responseEntity.Results        = result;
        }
Exemple #5
0
        /// <summary>
        /// 服务执行
        /// </summary>
        /// <param name="requestEntity">请求数据</param>
        /// <param name="responseEntity">返回数据</param>
        protected override void DoExecute(RequestEntity requestEntity, ResponseEntity responseEntity)
        {
            // 定义接收客户端参数的变量
            SearchBusinessListFilter filter
                = ServiceUtility.ConvertToFilterFromDict <SearchBusinessListFilter>(requestEntity.Parameters);

            filter.UserId = responseEntity.UserId;

            List <string> companys = Singleton <RedisEnumOperatorBLL> .Instance.GetUserOwnCompanyKeys(responseEntity.UserId);

            filter.BranchKey = string.Join("','", companys.ToArray());

            // 订单更新
            Singleton <BaseUpdateBLL <BusinessUpdateInfoDAL> > .Instance.UpdateData(filter, responseEntity);
        }
Exemple #6
0
        /// <summary>
        /// 获取更新数据库存储过程的参数
        /// </summary>
        /// <param name="baseFilter"></param>
        /// <returns></returns>
        protected override IDictionary <string, object> GetUpdateSpInParams(BaseFilter baseFilter)
        {
            SearchBusinessListFilter filter = baseFilter as SearchBusinessListFilter;

            if (filter == null)
            {
                return(null);
            }

            IDictionary <string, object> inPutParam = new Dictionary <string, object>();

            inPutParam.Add("@BusinessNo", filter.BusinessID);
            inPutParam.Add("@ContractNo", filter.ContractNo);
            inPutParam.Add("@BranchKey", filter.BranchKey);

            return(inPutParam);
        }
        /// <summary>
        /// 检索数据
        /// </summary>
        /// <param name="baseFilter"></param>
        /// <param name="responseEntity"></param>
        public void RectionData(SearchBusinessListFilter baseFilter, ResponseEntity responseEntity)
        {
            if (baseFilter == null)
            {
                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.RequestCommandError);
                return;
            }

            // 获取订单信息
            Business business = BusinessHelper.GetBusinessInfo(baseFilter);

            if (business == null || business.Bills.Count == 0)
            {
                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.NoResult, "无账单处理!");
                m_Logger.Info("无账单处理!");
                return;
            }

            List <long> lstBillItemIDs = new List <long>();
            // 获取实收信息
            var lstReceiveds = GetReceivedInfo(business, baseFilter.RecTime, responseEntity.UserId, ref lstBillItemIDs);

            if (lstReceiveds == null || lstReceiveds.Count == 0)
            {
                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.NoResult, "无实收信息处理!");
                m_Logger.Info("无实收信息处理!");
                return;
            }

            string guid        = Guid.NewGuid().ToString();
            string billItemIds = string.Join(",", lstBillItemIDs.ToArray());

            baseFilter.BillItemIds = billItemIds;
            baseFilter.Guid        = guid;
            // 保存实收信息到数据库
            BusinessHelper.SaveReceivedTempDataBase(guid, lstReceiveds);

            // 订单更新
            Singleton <BaseUpdateBLL <BusinessRectionDAL> > .Instance.UpdateData(baseFilter, responseEntity);

            ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.Success);
        }
        /// <summary>
        /// 服务执行
        /// </summary>
        /// <param name="requestEntity">请求数据</param>
        /// <param name="responseEntity">返回数据</param>
        protected override void DoExecute(RequestEntity requestEntity, ResponseEntity responseEntity)
        {
            IDictionary <string, string> paraDict             = requestEntity.Parameters;
            SearchBusinessListFilter     filter               = ServiceUtility.ConvertToFilterFromDict <SearchBusinessListFilter>(paraDict);
            List <BusinessViewData>      businessViewDataList = Singleton <BusinessDAL> .Instance.GetViewData(filter);

            if (filter.RecordCount <= 0)
            {
                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.NoResult);
                m_Logger.Info("未查询到数据。");
                return;
            }
            else
            {
                ResponseListResult <BusinessViewData> result = new ResponseListResult <BusinessViewData>();

                result.TotalCount             = (int)filter.RecordCount;
                result.LstResult              = businessViewDataList;
                responseEntity.ResponseStatus = (int)EnumResponseState.Success;
                responseEntity.Results        = result;
            }
        }
        /// <summary>
        /// 检索数据
        /// </summary>
        /// <param name="baseFilter"></param>
        /// <param name="responseEntity"></param>
        public void SearchData(SearchBusinessListFilter baseFilter, ResponseEntity responseEntity)
        {
            if (baseFilter == null)
            {
                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.RequestCommandError);
                return;
            }

            List <string> companys = Singleton <RedisEnumOperatorBLL> .Instance.GetUserOwnCompanyKeys(responseEntity.UserId);

            baseFilter.BranchKey = string.Join("','", companys.ToArray());

            var businessDetail
                = Singleton <BusinessDetailDAL <BusinessDetailViewData> > .Instance.SearchData(baseFilter);

            if (businessDetail == null || businessDetail.Count == 0)
            {
                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.NoResult);
                m_Logger.Info("未查询到数据!。");
            }
            else
            {
                foreach (var business in businessDetail)
                {
                    business.LoanKindName = Singleton <RedisEnumOperatorBLL> .Instance.GetRedisData(
                        RedisEnumOperatorBLL.HashId_LoanKind_6, business.LoanKind).Name;

                    business.RegionName = Singleton <RedisEnumOperatorBLL> .Instance.GetRedisData(
                        RedisEnumOperatorBLL.HashId_Region_9, business.Region).Name;
                }

                var responseResult = new ResponseListResult <BusinessDetailViewData>();
                responseResult.TotalCount = businessDetail.Count;
                responseResult.LstResult  = businessDetail;

                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.Success);
                responseEntity.Results = responseResult;
            }
        }
        /// <summary>
        /// 获取业务信息
        /// </summary>
        /// <param name="baseFilter"></param>
        /// <returns></returns>
        public static Business GetBusinessInfo(SearchBusinessListFilter filter)
        {
            List <string> companys = Singleton <RedisEnumOperatorBLL> .Instance.GetUserOwnCompanyKeys(filter.UserId);

            filter.BranchKey = string.Join("','", companys.ToArray());

            var lstBusinessDetail = Singleton <BusinessDetailDAL <BusinessDetailViewData> > .Instance.SearchData(filter);

            var detail = new BusinessDetailViewData();

            if (lstBusinessDetail == null || lstBusinessDetail.Count == 0)
            {
                return(null);
            }

            detail            = lstBusinessDetail[0];
            filter.BusinessID = detail.BusinessID;

            var lstBillDetails = Singleton <BillDetailDAL <BillDetailViewData> > .Instance.SearchData(filter);

            var lstBillItemDetails = Singleton <BillItemDetailDAL <BillItemDetailViewData> > .Instance.SearchData(filter);

            return(ConvertToBusiness(detail, lstBillDetails, lstBillItemDetails));
        }
Exemple #11
0
 /// <summary>
 /// 查询订单信息
 /// </summary>
 /// <param name="searchBusinessListFilter">查询条件包括分页</param>
 /// <returns>查询数据内容</returns>
 public List <BusinessViewData> GetViewData(SearchBusinessListFilter searchBusinessListFilter)
 {
     return(Singleton <DataAccess.DAL.BusinessDal> .Instance.GetBusinessInfo <BusinessViewData>(searchBusinessListFilter));
 }
        /// <summary>
        /// Target:订单明细页[ReliefAndCorrect]、创建帐单页[CreateBillsTask]
        /// Description:插入新增调整科目
        /// </summary>
        /// <param name="list"></param>
        /// <param name="guid"></param>
        /// <returns></returns>
        public static bool CreateReceivedItem(List <Received> list, string guid)
        {
            List <UpdateItem> lstUpdateItem = new List <UpdateItem>();
            var ints = list.Select(p => p.BillItemID).ToList();
            SearchBusinessListFilter filter = new SearchBusinessListFilter();

            filter.BillItemIds = string.Join(",", ints.ToArray());
            var billItems
                = Singleton <BillItemDetailByIdsDAL <BillItemDetailViewData> > .Instance.SearchData(filter);

            var receiveds
                = Singleton <ReceiveDetailByIdsDAL <ReceiveDetailViewData> > .Instance.SearchData(filter);

            UpdateItem updateItem = null;
            List <ReceiveDetailViewData> lstReceives = null;

            foreach (var item in billItems)
            {
                updateItem    = new UpdateItem();
                updateItem.Id = item.BillItemID;

                var thresholds = (byte)EnumAdjustKind.Thresholds;

                lstReceives = receiveds.Where(x => x.BillItemID == item.BillItemID).ToList();
                if (lstReceives == null)
                {
                    continue;
                }

                var receivedDB  = lstReceives.Where(p => p.ReceivedType > thresholds).Sum(p => p.Amount);
                var receivedNow = list.Where(c => c.ReceivedType > thresholds &&
                                             c.BillItemID == item.BillItemID).Sum(d => d.Amount);

                // 重新计算该应收科目实收总额
                item.ReceivedAmt = receivedDB + receivedNow;

                var dueDB  = lstReceives.Where(p => p.ReceivedType <= thresholds).Sum(p => p.Amount);
                var dueNow = list.Where(p => p.ReceivedType <= thresholds &&
                                        p.BillItemID == item.BillItemID).Sum(p => p.Amount);
                // 重新计算该应收科目应收总额
                item.DueAmt = item.Amount + dueDB + dueNow;

                // 实收大于应收则返回错误
                if (item.ReceivedAmt > item.DueAmt ||
                    item.ReceivedAmt < 0 || item.DueAmt < 0)
                {
                    return(false);
                }

                // 如果实收大于等于应收,则更新全额支付时间
                if (item.ReceivedAmt >= item.DueAmt)
                {
                    item.FullPaidTime = DateTime.Now;
                }

                updateItem.Amount       = item.DueAmt;
                updateItem.ReceivedAmt  = item.ReceivedAmt;
                updateItem.FullPaidTime = item.FullPaidTime;
                updateItem.Type         = 2;

                lstUpdateItem.Add(updateItem);
            }

            BusinessHelper.SaveUpdateItemTempDataBase(guid, lstUpdateItem);
            return(true);
        }
Exemple #13
0
        /// <summary>
        /// 检索数据
        /// </summary>
        /// <param name="filter"></param>
        /// <param name="responseEntity"></param>
        public void SearchData(SearchBusinessListFilter filter, ResponseEntity responseEntity)
        {
            if (filter == null)
            {
                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.RequestCommandError);
                return;
            }

            if (filter.IsFilterServiceSideKey)
            {
                List <string> companys = Singleton <RedisEnumOperatorBLL> .Instance.GetUserOwnCompanyKeys(responseEntity.UserId);

                filter.BranchKey = string.Join("','", companys.ToArray());
            }

            if (filter.IsFilterBranchKeys)
            {
                List <string> stores = Singleton <RedisEnumOperatorBLL> .Instance.GetUserOwnStoreKeys(responseEntity.UserId);

                filter.BranchKeys = string.Join("','", stores.ToArray());
            }

            var businessDetail
                = Singleton <BusinessDetailDAL <BusinessDetailViewData> > .Instance.SearchData(filter);

            if (businessDetail == null || businessDetail.Count == 0)
            {
                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.NoResult);
                m_Logger.Info("未查询到数据!。");
            }
            else
            {
                foreach (var business in businessDetail)
                {
                    business.LoanKindName = Singleton <RedisEnumOperatorBLL> .Instance.GetRedisData(
                        RedisEnumOperatorBLL.HashId_LoanKind_6, business.LoanKind).Name;

                    business.RegionName = Singleton <RedisEnumOperatorBLL> .Instance.GetRedisData(
                        RedisEnumOperatorBLL.HashId_Region_9, business.Region).Name;

                    business.BranchKeyName = Singleton <RedisEnumOperatorBLL> .Instance.GetRedisData(
                        RedisEnumOperatorBLL.HashId_Store_12, business.BranchKey).Name;
                }
                filter.BusinessID = businessDetail[0].BusinessID;

                var lstBills = Singleton <BillDetailDAL <BillDetailViewData> > .Instance.SearchData(filter);

                var lstBillItems = Singleton <BillItemDetailDAL <BillItemDetailViewData> > .Instance.SearchData(filter);

                var lstReceives = Singleton <ReceiveDetailDAL <ReceiveDetailViewData> > .Instance.SearchData(filter);

                var lstReceiveCut = Singleton <ReceiveCutDetailDAL <ReceivedCutViewData> > .Instance.SearchData(filter);

                var lastCloseDay = Singleton <GetLatestCloseTimeBLL> .Instance.GetLatestCloseTimeViewData(businessDetail[0].ServiceSideID);

                businessDetail[0].LatestTime = lastCloseDay.LatestTime;

                List <PenaltyIntViewData> lstPenaltyInt = null;
                // 罚息
                if (filter.IsSearchPenaltyInt)
                {
                    lstPenaltyInt = Singleton <PenaltyIntDetailDAL <PenaltyIntViewData> > .Instance.SearchData(filter);
                }

                // 代偿卡
                List <AdaptationCardDetailData> lstACard = null;
                if (filter.IsSearchAdaptationCard)
                {
                    lstACard = Singleton <AdaptationCardDAL <AdaptationCardDetailData> > .Instance.SearchData(filter);

                    lstACard.ForEach(p =>
                    {
                        p.AdaBankName = Singleton <RedisEnumOperatorBLL> .Instance.GetRedisData(
                            RedisEnumOperatorBLL.HashId_BankList_8, p.AdaBankName).Name;
                    });
                }

                StringBuilder sbHead           = new StringBuilder();
                int           billLength       = 0;
                int           billItemLength   = 0;
                int           receiveLength    = 0;
                int           receiveCutLength = 0;
                int           penaltyIntLength = 0;
                int           aCardLength      = 0;

                if (lstBills != null && lstBills.Count != 0)
                {
                    billLength = lstBills.Count;
                }
                if (lstBillItems != null && lstBillItems.Count != 0)
                {
                    billItemLength = lstBillItems.Count;
                }
                if (lstReceives != null && lstReceives.Count != 0)
                {
                    receiveLength = lstReceives.Count;
                }
                if (lstReceiveCut != null && lstReceiveCut.Count != 0)
                {
                    receiveCutLength = lstReceiveCut.Count;
                }
                if (lstPenaltyInt != null && lstPenaltyInt.Count != 0)
                {
                    penaltyIntLength = lstPenaltyInt.Count;
                }
                if (lstACard != null && lstACard.Count != 0)
                {
                    aCardLength = lstACard.Count;
                }

                sbHead.AppendFormat("{0}{1}{2}{1}{3}{1}{4}{1}{5}{1}{6}{1}{7}"
                                    , 1, WebServiceConst.Separater_Semicolon, billLength, billItemLength
                                    , receiveLength, receiveCutLength, penaltyIntLength, aCardLength);

                StringBuilder sbContent = new StringBuilder();
                sbContent.AppendLine(sbHead.ToString());
                sbContent.AppendLine(businessDetail[0].ToString());
                if (lstBills != null && lstBills.Count != 0)
                {
                    foreach (var bill in lstBills)
                    {
                        sbContent.AppendLine(bill.ToString());
                    }
                }

                if (lstBillItems != null && lstBillItems.Count != 0)
                {
                    foreach (var billItem in lstBillItems)
                    {
                        sbContent.AppendLine(billItem.ToString());
                    }
                }

                if (lstReceives != null && lstReceives.Count != 0)
                {
                    foreach (var receive in lstReceives)
                    {
                        sbContent.AppendLine(receive.ToString());
                    }
                }

                if (lstReceiveCut != null && lstReceiveCut.Count != 0)
                {
                    foreach (var receiveCut in lstReceiveCut)
                    {
                        sbContent.AppendLine(receiveCut.ToString());
                    }
                }
                if (lstPenaltyInt != null && lstPenaltyInt.Count != 0)
                {
                    foreach (var penaltyInt in lstPenaltyInt)
                    {
                        sbContent.AppendLine(penaltyInt.ToString());
                    }
                }
                if (lstACard != null && lstACard.Count != 0)
                {
                    foreach (var aCard in lstACard)
                    {
                        sbContent.AppendLine(aCard.ToString());
                    }
                }

                var responseResult = new ResponseFileResult();
                responseResult.Result = ConvertUtility.CodingToByte(sbContent.ToString(), 2);

                ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.Success);
                responseEntity.Results = responseResult;
            }
        }
        /// <summary>
        /// 得到订单查询列表
        /// </summary>
        /// <param name="filter">过滤条件</param>
        /// <returns>订单信息</returns>
        public List <MongoBusiness> GetBusinessList(SearchBusinessListFilter filter)
        {
            IMongoQuery mongoQuery = DataAccessUtility.GetMongoQueryFromFilter(filter);

            return(Singleton <BaseMongo> .Instance.Query <MongoBusiness>(mongoQuery, "Mongo.Suf_Business", filter));
        }