/// <summary> /// 程序执行主入口 /// </summary> /// <param name="requestEntity"></param> /// <param name="responseEntity"></param> protected override void DoExecute(RequestEntity requestEntity, ResponseEntity responseEntity) { // 定义接收客户端参数的变量 BusinessGuaranteeSaveFilter filter = ServiceUtility.ConvertToFilterFromDict <BusinessGuaranteeSaveFilter>(requestEntity.Parameters); filter.UserId = requestEntity.UserId; // 担保和诉讼设置编辑保存 Singleton <GuarLitigationSaveBLL> .Instance.Update(filter, responseEntity); }
/// <summary> /// 创建担保诉讼账单 /// </summary> /// <param name="business"></param> /// <param name="subj"></param> /// <returns></returns> private Bill CreateBill(BusinessGuaranteeSaveFilter filter, EnumBillKind subj) { return(new Bill { CreateTime = DateTime.Now, BillMonth = DateTime.Now.ToBillMonthString(), BeginTime = DateTime.Now, BillType = (byte)subj, BillStatus = (byte)EnumBillStatus.NoPay, EndTime = DateTime.Now.AddMonths(1).Date.AddSeconds(-1), LimitTime = DateTime.Now.SetDay(21), }); }
/// <summary> /// 未出账金款项列表 /// </summary> /// <param name="filter"></param> /// <returns></returns> private List <BillItem> NoCreateBillItem(BusinessGuaranteeSaveFilter filter) { List <BillItem> billitems = new List <BillItem>(); int num = filter.LoanPeriod - Singleton <GuarLitigationSaveDAL> .Instance.GetNormalBillsCount(filter.BusinessID); //本金 decimal bj = filter.LoanCapital - Singleton <GuarLitigationSaveDAL> .Instance.GetBillItemsAmount(filter.BusinessID); if (bj > 0) { billitems.Add(CreateBillItem(EnumCostSubject.Capital, bj, filter.UserId)); } //利息 decimal lx = SubjectFormula.CalculatInterest(filter.LoanCapital, filter.InterestRate) * num; if (lx > 0) { billitems.Add(CreateBillItem(EnumCostSubject.Interest, lx, filter.UserId)); } //服务费\担保费 decimal dbfwf = SubjectFormula.CalculatServiceFee(filter.LoanCapital, filter.ServiceRate, true) * num; if (dbfwf > 0) { if (string.IsNullOrEmpty(filter.GuaranteeSideKey)) { billitems.Add(CreateBillItem(EnumCostSubject.ServiceFee, dbfwf * 2, filter.UserId)); } else { billitems.Add(CreateBillItem(EnumCostSubject.ServiceFee, dbfwf, filter.UserId)); billitems.Add(CreateBillItem(EnumCostSubject.GuaranteeFee, dbfwf, filter.UserId)); } } //服务费扣失 decimal fwfks = SubjectFormula.CalculatBuckleFail(filter.ContractNo) * num;; if (fwfks > 0) { billitems.Add(CreateBillItem(EnumCostSubject.ServiceBuckleFail, fwfks, filter.UserId));//服务费扣失 } return(billitems); }
/// <summary> /// 更新订单信息 /// </summary> /// <param name="filter"></param> /// <returns></returns> public int UpdateBusiness(string guid, BusinessGuaranteeSaveFilter filter) { IDictionary <string, object> inParams = new Dictionary <string, object>(); inParams.Add("@Guid", guid); inParams.Add("@BusinessID", filter.BusinessID); inParams.Add("@CustomerID", filter.CustomerID); inParams.Add("@BusinessStatus", filter.BusinessStatus); inParams.Add("@LawsuitStatus", filter.LawsuitStatus); inParams.Add("@LawsuitCode", filter.LawsuitCode); inParams.Add("@IsAddNewBill", filter.IsAddNewBill); inParams.Add("@UserId", filter.UserId); if (!string.IsNullOrEmpty(filter.ToLitigationTime)) { inParams.Add("@ToLitigationTime", filter.ToLitigationTime); } // 获取更新的件数 return(Execute("proc_BillDun_BusinessGuaranteeSave", inParams, GetConnectKey(), CommandType.StoredProcedure)); }
/// <summary> /// 获取更新存贮过程的入参 /// </summary> /// <param name="baseFilter"></param> /// <returns></returns> protected override IDictionary <string, object> GetUpdateSpInParams(BaseFilter baseFilter) { BusinessGuaranteeSaveFilter filter = baseFilter as BusinessGuaranteeSaveFilter; if (filter == null) { return(null); } IDictionary <string, object> inPutParam = new Dictionary <string, object>(); inPutParam.Add("@BusinessID", filter.BusinessID); inPutParam.Add("@GuaranteeNo", filter.GuaranteeNo); inPutParam.Add("@GuaranteeTime", filter.GuaranteeTime); inPutParam.Add("@CapitalHasBeen", filter.CapitalHasBeen); inPutParam.Add("@CapitalNotBeen", filter.CapitalNotBeen); inPutParam.Add("@CapitalLost", filter.CapitalLost); inPutParam.Add("@Interest", filter.Interest); inPutParam.Add("@InterestNotBeen", filter.InterestNotBeen); inPutParam.Add("@PenaltyInt", filter.PenaltyInt); return(inPutParam); }
/// <summary> /// 保存修改信息 /// </summary> /// <param name="filter"></param> /// <param name="responseEntity"></param> public virtual void Update(BusinessGuaranteeSaveFilter filter , ResponseEntity responseEntity) { string guid = ""; if (filter.IsAddNewBill) { guid = Guid.NewGuid().ToString(); Bill bill = CreateBill(filter, EnumBillKind.Litigation); bill.BillItems = new List <BillItem>(); // 诉讼费 bill.BillItems.Add(CreateBillItem(EnumCostSubject.Litigation, filter.LegalCost.ToDecimal(), filter.UserId)); // 诉讼违约金 bill.BillItems.Add(CreateBillItem(EnumCostSubject.LitigationLateFee, filter.LegalPenalty.ToDecimal(), filter.UserId)); //未出账款项列表 bill.BillItems.AddRange(NoCreateBillItem(filter)); // 保存账单信息到数据库 SaveBillToDataBase(guid, bill); // 保存账单明细到数据库 SaveBillItemToDataBase(guid, bill.BillItems); } int count = Singleton <GuarLitigationSaveDAL> .Instance.UpdateBusiness(guid, filter); if (count <= 0) { ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.Others, "更新失败。"); m_Logger.Info("更新失败。"); } else { var responseResult = new ResponseListResult <BusinessViewData>(); ServiceUtility.SetResponseStatus(responseEntity, EnumResponseState.Success); responseEntity.Results = responseResult; } }