package cn.szqhyf.qhyffs.app.fs.ctl import club.newepoch.ijfinal.http.paras.Parameter import club.newepoch.ijfinal.kit.buildReturn import club.newepoch.utils.JsonUtils import cn.szqhyf.qhyffs.app.fs.iservice.BizAbsProfitInfoService import cn.szqhyf.qhyffs.app.fs.pojo.po.AddOrRevisionIncomePoJo import cn.szqhyf.qhyffs.app.fs.pojo.po.BizAbsProfitInfo import cn.szqhyf.qhyffs.app.fs.pojo.po.ModificationFinancialPoJo import com.jfinal.core.ActionKey import com.jfinal.core.action.Rest import com.jfinal.core.pojo.RestMethod import com.jfinal.ext.render.Return /** *金融部ABS收益表Controller * */ open class BizAbsProfitInfoController : QhyffsController() { /** * ABS收益表画面一览 (所属大期)的获得方法 */ @Rest(method = RestMethod.GET) @ActionKey(value = "/api/finance/biz/abs/profit/periods") fun periods(): Return { var r = this.initService<BizAbsProfitInfoService>().periods(iwebReq = getIwebRequest()) return this.buildReturn(data = r) } /** * ABS收益表画面一览(带分页查询) * @param coreEnterpriseId * 核心企业 * @param financialInstitutionId * 计划管理人ID * @param periods * 期数 * @param bigPeriodsId * 所属大区ID */ @Rest(method = RestMethod.GET) @ActionKey(value = "/api/finance/biz/abs/profit/info") fun index( @Parameter("核心企业ID") coreEnterpriseId: String? =null, @Parameter("计划管理人ID") financialInstitutionsId: String? =null, @Parameter("期数") periods: String? =null, @Parameter("所属大区") bigPeriodsId: String? =null): Return { var r = this.initService<BizAbsProfitInfoService>().pages(iwebReq = getIwebRequest(), pageInfo = this.pageInfo,coreEnterpriseId = coreEnterpriseId, financialInstitutionsId = financialInstitutionsId, periods = periods , bigPeriodsId = bigPeriodsId) return this.buildReturn(data = r) } /** * 添加收益信息表画面 中 (查询按钮的实现) * @param coreEnterpriseId * 核心企业(不允许为空) * @param financialInstitutionId * 计划管理人ID(不允许为空) * @param periodsId * 期数id(不允许为空) */ @Rest(method = RestMethod.GET) @ActionKey(value = "/api/finance/biz/abs/profit/subject/info") fun getQuery( @Parameter("核心企业ID", optional = false) coreEnterpriseId: String, @Parameter("计划管理人ID", optional = false) financialInstitutionsId: String, @Parameter("期数", optional = false) periods: String ) : Return { var r = this.initService<BizAbsProfitInfoService>().getQuery(iwebReq = getIwebRequest(), coreEnterpriseId = coreEnterpriseId, financialInstitutionsId = financialInstitutionsId , periods =periods) return this.buildReturn(data = r) } /** * 添加收益信息表画面 中 (判断是否跳期的判断依准) * @param coreEnterpriseId * 核心企业(不允许为空) * @param financialInstitutionId * 计划管理人ID(不允许为空) * @param periodsId * 期数id(不允许为空) */ @Rest(method = RestMethod.GET) @ActionKey(value = "/api/finance/biz/abs/profit/periods/check") fun isjumpPeriods( @Parameter("核心企业ID") coreEnterpriseId: String, @Parameter("计划管理人ID") financialInstitutionsId: String, @Parameter("期数") periods: String ) : Return { var r = this.initService<BizAbsProfitInfoService>().isjumpPeriods(iwebReq = getIwebRequest(), coreEnterpriseId = coreEnterpriseId, financialInstitutionsId = financialInstitutionsId , periods =periods) return this.buildReturn(data = r) } /** * 添加收益信息表画面 中 (保存按钮的实现) * @param coreEnterpriseId * 核心企业(不允许为空) * @param financialInstitutionId * 计划管理人ID(不允许为空) * @param periodsId * 期数id(不允许为空) * @param information * 信息(费用名称,备注,金额) * @param financeOpinion * 意见 * @param releaseDate * 发行日期 */ @Rest(method = RestMethod.POST) @ActionKey(value = "/api/finance/biz/abs/profit/save/subject/info") fun saveWays( @Parameter("核心企业ID" ,optional = false) coreEnterpriseId: String, @Parameter("计划管理人ID",optional = false) financialInstitutionsId: String, @Parameter("期数",optional = false) periods: String, @Parameter("费用金额备注", optional = false) subjectlist: MutableList<String> , @Parameter("意见",optional = false) financeOpinion: String? =null , @Parameter("发行日期",optional = false) releaseDate :String? =null ): Return { val subjectlists:MutableList<AddOrRevisionIncomePoJo> = mutableListOf() for (subject in subjectlist!!.listIterator() ){ // 解析字符窜转对象 var obj= JsonUtils.parseJson2T(subject,AddOrRevisionIncomePoJo::class.java) subjectlists.add(obj) } var r = this.initService<BizAbsProfitInfoService>().saveWays(iwebReq = getIwebRequest(), subjectlist = subjectlists, financeOpinion = financeOpinion ,releaseDate = releaseDate , coreEnterpriseId = coreEnterpriseId , financialInstitutionsId = financialInstitutionsId , periods = periods) return this.buildReturn(data = r) } /** * 根据发行日判断是否超过提交期限 * @param releaseDate * 发行日(不能为空) */ @Rest(method = RestMethod.GET) @ActionKey(value = "/api/finance/biz/abs/profit/releasedate/check") fun isPassDeadline( @Parameter("发行日") releaseDate: String ) : Return { var r = this.initService<BizAbsProfitInfoService>().isPassDeadline(iwebReq = getIwebRequest(), releaseDate = releaseDate) return this.buildReturn(data = r) } /** * 添加收益信息表画面 中 (提交按钮的实现) * @param coreEnterpriseId * 核心企业(不允许为空) * @param financialInstitutionId * 计划管理人ID(不允许为空) * @param periodsId * 期数id(不允许为空) * @param information * 信息(费用名称,备注,金额) * @param financeOpinion * 意见 * @param releaseDate * 发行日期 List<AddOrRevisionIncomePoJo> */ @Rest(method = RestMethod.POST) @ActionKey(value = "/api/finance/biz/abs/profit/submit/subject/info") fun getSubmit( @Parameter("核心企业ID") coreEnterpriseId: String, @Parameter("计划管理人ID") financialInstitutionsId: String, @Parameter("期数") periods: String, @Parameter("费用金额备注", optional = false) subjectlist: MutableList<String> , @Parameter("意见") financeOpinion: String , @Parameter("发行日期") releaseDate :String ) : Return { val subjectlists:MutableList<AddOrRevisionIncomePoJo> = mutableListOf() for (subject in subjectlist!!.listIterator() ){ // 解析字符窜转对象 var obj= JsonUtils.parseJson2T(subject,AddOrRevisionIncomePoJo::class.java) subjectlists.add(obj) } var r = this.initService<BizAbsProfitInfoService>().getSubmit(iwebReq = getIwebRequest(), subjectlist = subjectlists, financeOpinion = financeOpinion ,releaseDate =releaseDate , coreEnterpriseId = coreEnterpriseId , financialInstitutionsId =financialInstitutionsId , periods = periods ) return this.buildReturn(data = r) } /** * 修改收益信息表画面中(获取表单的单个信息) * 根据ABS收益信息表id获取收益共通信息 * @param absProfitId * 表单的id(ABS收益ID) * */ @Rest(method = RestMethod.GET) @ActionKey(value = "/api/finance/biz/abs/profit/modify/profit/info") fun getFormEarningsInformation( @Parameter("ABS收益ID", optional = false) absProfitId: Long ): Return { var r = this.initService<BizAbsProfitInfoService>().getFormEarningsInformation(iwebReq = getIwebRequest(), absProfitId = absProfitId) return this.buildReturn(data = r) } /** * 修改收益信息表画面中(获取表单的单个信息) * 根据ABS收益ID获取对应科目信息 * @param absProfitId * 表单的id(ABS收益ID) * */ @Rest(method = RestMethod.GET) @ActionKey(value = "/api/finance/biz/abs/profit/modify/subject/info") fun getFormSubjectInformation( @Parameter("ABS收益ID", optional = false) absProfitId: Long ): Return { var r = this.initService<BizAbsProfitInfoService>().getFormSubjectInformation(iwebReq = getIwebRequest(), absProfitId = absProfitId) return this.buildReturn(data = r) } /** * 修改收益信息表画面中 * 保存金融部收益信息 * @param absProfitId * 表单的id(ABS收益ID) *@param releaseDate * 发行日期 *@param financeOpinion * 金融意见 *@param subjectlist List<ModificationFinancialPoJo> * 科目ID(基础费用科目ID),收益明细ID,收益金额,备注 */ @Rest(method = RestMethod.POST) @ActionKey(value = "/api/finance/biz/abs/profit/modifysave/subject/info") fun saveFinance( @Parameter("ABS收益ID", optional = true) absProfitId: Long, @Parameter("发行日期", optional = true) releaseDate: String?, @Parameter("金融部意见", optional = true) financeOpinion: String?, @Parameter("科目的信息", optional = false) subjectlist: MutableList<String>?, @Parameter("form表单数据", optional = false) form: String? ): Return { var subjectlists= mutableListOf<ModificationFinancialPoJo>() for (subject in subjectlist!!.iterator()){ var obj= JsonUtils.parseJson2T(subject,ModificationFinancialPoJo::class.java) subjectlists.add(obj) } var bizAbsProfitInfo=JsonUtils.parseJson2T(form, BizAbsProfitInfo::class.java) var r = this.initService<BizAbsProfitInfoService>().saveFinance(iwebReq = getIwebRequest(), absProfitId = absProfitId , releaseDate = releaseDate, financeOpinion = financeOpinion , subjectlist = subjectlists,bizAbsProfit=bizAbsProfitInfo) return this.buildReturn(data = r) } /** * 修改收益信息表画面中 * 提交金融部收益信息 * @param absProfitId * 表单的id(ABS收益ID) *@param releaseDate * 发行日期 *@param financeOpinion * 金融意见 *@param subjectlist MutableList<String>? * 科目ID(基础费用科目ID),收益明细ID,收益金额,备注 */ @Rest(method = RestMethod.POST) @ActionKey(value = "/api/finance/biz/abs/profit/modifysubmit/subject/info") fun submitFinance( @Parameter("ABS收益ID", optional = true) absProfitId: Long , @Parameter("发行日期", optional = true) releaseDate: String? , @Parameter("金融部意见", optional = true) financeOpinion: String? , @Parameter("科目的信息", optional = false) subjectlist: MutableList<String>?, @Parameter("form表单数据", optional = false) form: String? ): Return { //遍历 val subjectlists:MutableList<ModificationFinancialPoJo> = mutableListOf() for (subject in subjectlist!!.listIterator() ){ // 解析字符窜转对象 var obj=JsonUtils.parseJson2T(subject,ModificationFinancialPoJo::class.java) subjectlists.add(obj) } var bizAbsProfit=JsonUtils.parseJson2T(form, BizAbsProfitInfo::class.java) var r = this.initService<BizAbsProfitInfoService>().submitFinance(iwebReq = getIwebRequest(), absProfitId = absProfitId , releaseDate = releaseDate, financeOpinion = financeOpinion , subjectlist = subjectlists , bizAbsProfit = bizAbsProfit) return this.buildReturn(data = r) } /** * 修改收益信息表画面中 * 验证上一期的金融部的所有费用金额与财务部费用是否存在差异 * 未做完 */ // @Rest(method = RestMethod.GET) // @ActionKey(value = "/api/finance/biz/abs/profit/releasedate/check33333333333333333") // fun differenceMoney( // @Parameter("ABS收益ID", optional = false) absProfitId: Long , // @Parameter("发行日期", optional = false) releaseDate: String? , // @Parameter("金融部意见", optional = false) financeOpinion: String? , // @Parameter("科目的信息", optional = false) subjectlist: List<ModificationFinancialPoJo>? // ): Return { //// var r = this.initService<BizAbsProfitInfoService>().submitFinance(iwebReq = getIwebRequest(), absProfitId = absProfitId , releaseDate = releaseDate, //// financeOpinion = financeOpinion , subjectlist = null) // // return this.buildReturn(data = r) // } }
package cn.szqhyf.qhyffs.app.fs.iservice import club.newepoch.iweb.ext.IwebReq import club.newepoch.persistent.db.common.Model import club.newepoch.persistent.db.common.Page import club.newepoch.persistent.db.pojo.Record import club.newepoch.utils.AssertUtils import cn.szqhyf.qhyffs.app.fs.idal.BizAbsProfitInfoServiceDal import cn.szqhyf.qhyffs.app.fs.pojo.po.* import com.jfinal.aop.Before import com.jfinal.core.PageInfo import com.jfinal.plugin.activerecord.tx.Tx import org.apache.poi.ss.formula.functions.T import java.sql.Timestamp import java.text.SimpleDateFormat import java.util.* /** * ABS收益明细信息表服务类 * */ open class BizAbsProfitInfoService : QhyffsService() { /** * ABS收益表管理一览画面 * @param core_enterprise_id * 核心企业 * @param financial_institutions_id * 金融机构 * @param periods * 期数 * @param bigPeriodsId * 所属大区ID */ fun pages(iwebReq: IwebReq, pageInfo: PageInfo, coreEnterpriseId:String ?, financialInstitutionsId:String?, periods: String?, bigPeriodsId:String? ): Page<Record>? { return this.intDal<BizAbsProfitInfoServiceDal>().pages(iwebReq = iwebReq, pageInfo = pageInfo, coreEnterpriseId = coreEnterpriseId, financialInstitutionsId = financialInstitutionsId, periods = periods , bigPeriodsId = bigPeriodsId) } /** * ABS收益表画面一览 (所属大期)的获得方法 */ fun periods(iwebReq: IwebReq ): List<Record>? { return this.intDal<BizAbsProfitInfoServiceDal>().periods(iwebReq= iwebReq) } /** * 添加收益信息表画面 中 (查询按钮的实现) * @param coreEnterpriseId * 核心企业 * @param financialInstitutionId * 计划管理人ID * @param periodsId * 期数ID */ fun getQuery(iwebReq: IwebReq, coreEnterpriseId:String , financialInstitutionsId:String ,periods: String ): List<Record>? { if (coreEnterpriseId == null){ AssertUtils.isTrue(false,"核心企业不能为空!") } if (financialInstitutionsId == null) { AssertUtils.isTrue(false, " 计划管理人不能为空") } if (periods == null) { AssertUtils.isTrue(false, " 期数不能为空") } var result= this.intDal<BizAbsProfitInfoServiceDal>().getQuery(iwebReq = iwebReq, coreEnterpriseId = coreEnterpriseId, financialInstitutionsId = financialInstitutionsId,periods =periods) return result } /** * 添加收益信息表画面 中 (判断是否跳期的判断依准) * @param coreEnterpriseId * 核心企业(不允许为空) * @param financialInstitutionId * 计划管理人ID(不允许为空) * @param periodsId * 期数ID(不允许为空) */ fun isjumpPeriods(iwebReq: IwebReq, coreEnterpriseId:String , financialInstitutionsId:String ,periods: String ): Boolean { if (coreEnterpriseId == null){ AssertUtils.isTrue(false,"核心企业不能为空!") } if (financialInstitutionsId == null) { AssertUtils.isTrue(false, " 计划管理人不能为空") } if (periods == null) { AssertUtils.isTrue(false, " 期数不能为空") } // true:不存在跳期,false:存在跳期 var periodsCheck = false var list = this.intDal<BizAbsProfitInfoServiceDal>().isjumpPeriods(iwebReq = iwebReq, coreEnterpriseId = coreEnterpriseId, financialInstitutionsId = financialInstitutionsId,periods =periods) //如果查询的东西,不为空,不存在跳期 if (list==null){ periodsCheck = true } return periodsCheck } /** * 根据发行日判断是否超过提交期限 * @param releaseDate * 发行日(不能为空) */ fun isPassDeadline(iwebReq: IwebReq, releaseDate:String ): Boolean { if (releaseDate == null){ AssertUtils.isTrue(false,"发行日不能为空!") } // true:期限验证通过,false:期限验证不通过 var releaseDateCheck = true // 定义发行到期日 发行日+1个月 var checkDate = this.subMonth(releaseDate) //定义工作日 var workDateCount = 0 //循环15次,总会有3次是工作日 for (i in 1..15 step 1) { if (workDateCount == 3){ break } //判断"checkDate"的日期是否在配置的法定日期配置表中: var isExist=this.intDal<BizAbsProfitInfoServiceDal>().isPassDeadline(iwebReq = iwebReq, releaseDate =releaseDate) //查询结果为空 if (!isExist ){ var format1 = SimpleDateFormat("yyyy-mm-dd") var bdate = format1.parse(checkDate) var cal = Calendar.getInstance() cal.setTime(bdate); // 判断是否是周六或周日 if(cal.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY && cal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY){ // 说明是工作日 workDateCount++ } //加一天 checkDate =addOneDay(checkDate) }else{ if("w".equals(isExist)){ //是工作日 workDateCount++ } //加一天 checkDate =addOneDay(checkDate) } } //string 转data var sdf = SimpleDateFormat("yyyy-MM-dd"); if (Date().time > sdf.parse(this.subDay(checkDate)).time){ //说明超过时限 releaseDateCheck = false } return releaseDateCheck } /**** * 传入具体日期 ,返回具体日期增加一个月。 * @param date 日期(2017-04-13) * @return 2017-05-13 */ fun subMonth(date:String) :String{ var sdf = SimpleDateFormat("yyyy-MM-dd"); var dt = sdf.parse(date) var rightNow = Calendar.getInstance() rightNow.setTime(dt) rightNow.add(Calendar.MONTH, 1) var dt1 = rightNow.getTime() var reStr = sdf.format(dt1) return reStr } /**** * 传入具体日期 ,返回具体日期减少一天 * @param date 日期(2017-04-13) * @return 2017-04-12 * @throws ParseException */ fun subDay(date:String ):String { var sdf = SimpleDateFormat("yyyy-MM-dd"); var dt = sdf.parse(date); var rightNow = Calendar.getInstance(); rightNow.setTime(dt); rightNow.add(Calendar.DAY_OF_MONTH, -1); var dt1 = rightNow.getTime(); var reStr = sdf.format(dt1); return reStr; } /**** * 传入具体日期 ,返回具体日期减少一天 * @param date 日期(2017-04-13) * @return 2017-04-12 * @throws ParseException */ fun addOneDay(date:String ):String { var sdf = SimpleDateFormat("yyyy-MM-dd"); var dt = sdf.parse(date); var rightNow = Calendar.getInstance(); rightNow.setTime(dt); rightNow.add(Calendar.DAY_OF_MONTH, 1); var dt1 = rightNow.getTime(); var reStr = sdf.format(dt1); return reStr; } /** * 添加收益信息表画面 中 (提交按钮的实现) * @param coreEnterpriseId * 核心企业(不允许为空) * @param financialInstitutionId * 计划管理人ID(不允许为空) * @param periodsId * 期数id(不允许为空) * @param information * 信息(费用名称,备注,金额) * @param financeOpinion * 意见(不允许为空) * @param releaseDate * 发行日期(不允许为空) */ fun getSubmit(iwebReq: IwebReq, subjectlist:List<AddOrRevisionIncomePoJo> , financeOpinion:String, releaseDate :String , coreEnterpriseId : String , financialInstitutionsId : String , periods : String ): Boolean { //判断数据保存到表是否成功 var isok=false if (coreEnterpriseId == null){ AssertUtils.isTrue(false,"核心企业不能为空!") } if (financialInstitutionsId == null) { AssertUtils.isTrue(false, "计划管理人不能为空") } if (periods == null) { AssertUtils.isTrue(false, "期数不能为空") } if (financeOpinion == null) { AssertUtils.isTrue(false, "意见不能为空") } if (releaseDate == null) { AssertUtils.isTrue(false, "发行日期不能为空") } //判断当前保存的数据在数据库中是否存在 var list =this.intDal<BizAbsProfitInfoServiceDal>().isExist(iwebReq = iwebReq, coreEnterpriseId =coreEnterpriseId , financialInstitutionsId = financialInstitutionsId , periods =periods) //遍历financeOpinion //存在数据 if (list != null){ AssertUtils.isTrue(false, "当前添加的核心企业、金融机构、期数所对应的ABS收益信息已存在!") }else{ //创造ABS收益信息表的实体对象 var bizAbsProfitInfo = BizAbsProfitInfo() //设置核心企业id bizAbsProfitInfo.coreEnterpriseId = coreEnterpriseId //设置金融机构id bizAbsProfitInfo.financialInstitutionsId = financialInstitutionsId //设置期数 bizAbsProfitInfo.periods = Integer.valueOf(periods) //设置金融部意见 bizAbsProfitInfo.financeOpinion=financeOpinion // 发行日 release_date val format = SimpleDateFormat("yyyy-MM-dd") bizAbsProfitInfo.releaseDate=format.parse(releaseDate) //设置当前登录的用户 bizAbsProfitInfo.addUserId= "123" // AdminService().getUserInfo(iwebReq)!!.getStr("id") //设置当前时间 var date = Date() var sdf = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") //获取当前时间 bizAbsProfitInfo.addTime= Timestamp.valueOf(sdf.format(date)) //设置状态00(没有提交审批) bizAbsProfitInfo.status="03" this.save(iwebReq = iwebReq, d = bizAbsProfitInfo) isok = true } if (isok){ //再次查询获取刚保存的id var lists=this.intDal<BizAbsProfitInfoServiceDal>().isExist(iwebReq = iwebReq, coreEnterpriseId =coreEnterpriseId , financialInstitutionsId = financialInstitutionsId , periods =periods) // 获取其中的id var id =lists?.getStr("id") for (content in subjectlist!!){ //创造ABS收益明细表的实体对象 var bizAbsProfitDetail = BizAbsProfitDetail() //获取费用名称,并设置进去 bizAbsProfitDetail.subjectId= content.subjectId //获取金额 bizAbsProfitDetail.profit=content.profit //获取备注 bizAbsProfitDetail.memo=content.memo //设置获取的id bizAbsProfitDetail.absProfitId= id // isTrue=dbp.merge("biz_abs_profit_detail",bizAbsProfitDetail) this.save(iwebReq = iwebReq, d = bizAbsProfitDetail) isok =true } } return isok } /** * 添加收益信息表画面 中 (保存按钮的实现) * @param coreEnterpriseId * 核心企业(不允许为空) * @param financialInstitutionId * 计划管理人ID(不允许为空) * @param periodsId * 期数id(不允许为空) * @param information * 信息(费用名称,备注,金额) * @param financeOpinion * 意见 * @param releaseDate * 发行日期 */ fun saveWays(iwebReq: IwebReq, subjectlist:List<AddOrRevisionIncomePoJo> ?, financeOpinion:String? , releaseDate :String? , coreEnterpriseId : String , financialInstitutionsId : String , periods : String ): Boolean { if (coreEnterpriseId == null){ AssertUtils.isTrue(false,"核心企业不能为空!") } if (financialInstitutionsId == null) { AssertUtils.isTrue(false, " 计划管理人不能为空") } if (periods == null) { AssertUtils.isTrue(false, " 期数不能为空") } //判断数据保存到表是否成功 var isok = false var list= this.intDal<BizAbsProfitInfoServiceDal>().isExist(iwebReq = iwebReq, coreEnterpriseId =coreEnterpriseId , financialInstitutionsId = financialInstitutionsId , periods = periods) //存在数据 if (list != null){ AssertUtils.isTrue(false, "当前添加的核心企业、金融机构、期数所对应的ABS收益信息已存在!") }else{ //创造ABS收益信息表的实体对象 var bizAbsProfitInfo = BizAbsProfitInfo() //设置核心企业id bizAbsProfitInfo.coreEnterpriseId = coreEnterpriseId //设置金融机构id bizAbsProfitInfo.financialInstitutionsId = financialInstitutionsId //设置期数 bizAbsProfitInfo.periods = Integer.valueOf(periods) //设置金融部意见 bizAbsProfitInfo.financeOpinion = financeOpinion // 发行日 release_date val format = SimpleDateFormat("yyyy-MM-dd") bizAbsProfitInfo.releaseDate = format.parse(releaseDate) //设置当前登录的用户 bizAbsProfitInfo.addUserId = iwebReq.userId.toString() // AdminService().getUserInfo(iwebReq)!!.getStr("id") //获取当前时间 bizAbsProfitInfo.addTime = Date() //设置状态00(没有提交审批) bizAbsProfitInfo.status = "00" this.save(iwebReq = iwebReq,d = bizAbsProfitInfo) isok = true } if (isok){ //再次查询获取刚保存的id var lists= this.intDal<BizAbsProfitInfoServiceDal>().isExist(iwebReq = iwebReq, coreEnterpriseId = coreEnterpriseId , financialInstitutionsId = financialInstitutionsId , periods =periods) // 获取其中的id var id =lists?.getStr("id") //遍历financeOpinion for (content in subjectlist!!){ //创造ABS收益明细表的实体对象 var bizAbsProfitDetail = BizAbsProfitDetail() //获取费用名称,并设置进去 bizAbsProfitDetail.subjectId = content.subjectId //获取金额 bizAbsProfitDetail.profit = content.profit //获取备注 bizAbsProfitDetail.memo = content.memo //设置获取的id bizAbsProfitDetail.absProfitId = id this.save(iwebReq = iwebReq, d = bizAbsProfitDetail) // isTrue=dbp.merge("biz_abs_profit_detail",bizAbsProfitDetail) isok = true } } return isok } /** * 依据表单ID获取表单项信息 * 根据ABS收益信息表id获取收益共通信息 * @param id * 表单id(ABS收益ID) * @return 表单项信息 */ fun getFormEarningsInformation(iwebReq: IwebReq, absProfitId: Long): Record{ if (absProfitId == null){ AssertUtils.isTrue(false,"ABS收益ID不能为空!") } //返回一个对象给前端 var record= this.intDal<BizAbsProfitInfoServiceDal>().getFormEarningsInformation(iwebReq = iwebReq, absProfitId = absProfitId) return record } /** * 依据表单ID获取表单项信息 * 根据ABS收益ID获取对应科目信息 * @param id * 表单id(ABS收益ID) * @return 表单项信息 */ fun getFormSubjectInformation(iwebReq: IwebReq, absProfitId: Long): List<Record> { if (absProfitId == null){ AssertUtils.isTrue(false,"ABS收益ID不能为空!") } //返回一个集合 var list : List<Record> = this.intDal<BizAbsProfitInfoServiceDal>().getFormSubjectInformation(iwebReq = iwebReq, absProfitId = absProfitId) //获取期数 var per =list.get(0).getStr("periods") var periods =Integer.parseInt(per) -1 //获取金融机构 var financialInstitutionsId=list.get(0).getStr("financialInstitutionsId") //获取核心企业 var coreEnterpriseId= list.get(0).getStr("coreEnterpriseId") //遍历集合 for (li in list){ //获取科目的id var subjectId=li.getStr("subjectId") //查询上一期对应的金额 var record : Record? = this.intDal<BizAbsProfitInfoServiceDal>().beforeMoney(iwebReq = iwebReq, periods = periods , financialInstitutionsId = financialInstitutionsId , coreEnterpriseId = coreEnterpriseId ,subjectId =subjectId) //获取上一期的金额 var profit= record?.getStr("profit") if (profit == null ){ li.set("lastProfit","") }else{ li.set("lastProfit",profit) } } return list } /** * 修改收益信息表画面中 * 保存金融部收益信息 * @param absProfitId * 表单的id(ABS收益ID) *@param releaseDate * 发行日期 *@param financeOpinion * 金融意见 *@param subjectlist * 科目ID(基础费用科目ID),收益明细ID,收益金额,备注 */ fun saveFinance(iwebReq: IwebReq, absProfitId: Long,releaseDate:String ? ,financeOpinion :String? , subjectlist :List<ModificationFinancialPoJo>? , bizAbsProfit:BizAbsProfitInfo):Boolean{ if (absProfitId == null){ AssertUtils.isTrue(false,"ABS收益ID不能为空!") } //创造ABS收益信息表的实体对象 var bizAbsProfitInfo = BizAbsProfitInfo() //保存表单的id bizAbsProfitInfo.id = absProfitId //保存发行日期 string 转data val formatter = SimpleDateFormat("yyyy-MM-dd") // var releaseDate= bizAbsProfitInfo.releaseDate = formatter.parse(releaseDate) //保存金融部意见 bizAbsProfitInfo.financeOpinion = financeOpinion //保存核心企业 bizAbsProfitInfo.coreEnterpriseId = bizAbsProfit.coreEnterpriseId //保存金融机构 bizAbsProfitInfo.financialInstitutionsId = bizAbsProfit.financialInstitutionsId //保存状态 bizAbsProfitInfo.status = bizAbsProfit.status //保存用户id bizAbsProfitInfo.addUserId = iwebReq.userId.toString() // this.merge(iwebReq = iwebReq, models = Model<BizAbsProfitInfo>()) this.merge4T(iwebReq = iwebReq, tableName= "biz_abs_profit_info",datas =bizAbsProfitInfo) var isOk = false //遍历 subjectlist for(subject in subjectlist !!){ var profitDetailId= subject.profitDetailId if (profitDetailId == null){ //创造ABS收益明细表的实体对象 var bizAbsProfitDetail = BizAbsProfitDetail() //新增数据 bizAbsProfitDetail.subjectId = subject.subjectId bizAbsProfitDetail.profit = subject.profit bizAbsProfitDetail.memo = subject.memo bizAbsProfitDetail.absProfitId = absProfitId.toString() this.merge4T(iwebReq = iwebReq, tableName= "biz_abs_profit_detail",datas =bizAbsProfitDetail) isOk = true }else{ //创造ABS收益明细表的实体对象 var bizAbsProfitDetail = BizAbsProfitDetail() //更新数据 bizAbsProfitDetail.subjectId = subject.subjectId bizAbsProfitDetail.profit = subject.profit bizAbsProfitDetail.memo = subject.memo bizAbsProfitDetail.id = subject.profitDetailId!!.toLong() bizAbsProfitDetail.absProfitId = absProfitId.toString() // this.merge(iwebReq = iwebReq, models = bizAbsProfitDetail as Model<*> ) this.merge4T(iwebReq = iwebReq, tableName= "biz_abs_profit_detail",datas =bizAbsProfitDetail) isOk = true } } //调用新增的履历,逻辑的方法 if (isOk){ addSavaLogic(iwebReq,absProfitId,subjectlist , "0") } return isOk } /** * 修改收益信息表画面中 * 提交金融部收益信息 * @param absProfitId * 表单的id(ABS收益ID) *@param releaseDate * 发行日期 *@param financeOpinion * 金融意见 *@param subjectlist * 科目ID(基础费用科目ID),收益明细ID,收益金额,备注 */ fun submitFinance(iwebReq: IwebReq, absProfitId: Long,releaseDate:String ? ,financeOpinion :String? , subjectlist :MutableList<ModificationFinancialPoJo>?,bizAbsProfit :BizAbsProfitInfo):Boolean{ if (absProfitId == null){ AssertUtils.isTrue(false,"ABS收益ID不能为空!") } //创造ABS收益信息表的实体对象 var bizAbsProfitInfo = BizAbsProfitInfo() //保存表单的id bizAbsProfitInfo.id = absProfitId //保存发行日期 string 转data val formatter = SimpleDateFormat("yyyy-MM-dd") var releaseDa=formatter.parse(releaseDate.toString()) // (Date)formatter.parseObject(releaseDate) bizAbsProfitInfo.releaseDate = releaseDa //保存金融部意见 bizAbsProfitInfo.financeOpinion = financeOpinion //保存核心企业 bizAbsProfitInfo.coreEnterpriseId = bizAbsProfit.coreEnterpriseId //保存金融机构 bizAbsProfitInfo.financialInstitutionsId = bizAbsProfit.financialInstitutionsId //保存状态 bizAbsProfitInfo.status = bizAbsProfit.status //保存用户id bizAbsProfitInfo.addUserId = iwebReq.userId.toString() //状态设置为03(等待审批) bizAbsProfitInfo.status = "03" this.merge4T(iwebReq = iwebReq, tableName= "biz_abs_profit_info",datas =bizAbsProfitInfo) var isOk = false //遍历 subjectlist for(subject in subjectlist !!){ var profitDetailId= subject.profitDetailId if (profitDetailId == null){ //创造ABS收益明细表的实体对象 var bizAbsProfitDetail = BizAbsProfitDetail() //新增数据 bizAbsProfitDetail.subjectId = subject.subjectId bizAbsProfitDetail.profit = subject.profit bizAbsProfitDetail.memo = subject.memo bizAbsProfitDetail.absProfitId = absProfitId.toString() // this.save(iwebReq = iwebReq, d = bizAbsProfitDetail) this.merge4T(iwebReq = iwebReq, tableName= "biz_abs_profit_detail",datas =bizAbsProfitDetail) isOk = true }else{ //创造ABS收益明细表的实体对象 var bizAbsProfitDetail = BizAbsProfitDetail() //更新数据 bizAbsProfitDetail.subjectId = subject.subjectId bizAbsProfitDetail.profit = subject.profit bizAbsProfitDetail.memo = subject.memo bizAbsProfitDetail.id = subject.profitDetailId!!.toLong() bizAbsProfitDetail.absProfitId = absProfitId.toString() // this.save(iwebReq = iwebReq, d = bizAbsProfitDetail) this.merge4T(iwebReq = iwebReq, tableName= "biz_abs_profit_detail",datas =bizAbsProfitDetail) isOk = true } } //调用新增的履历,逻辑的方法 if (isOk){ addSavaLogic(iwebReq,absProfitId,subjectlist , "1") } return isOk } /** *修改页面的保存时候,增加的逻辑 */ @Before(Tx::class) fun addSavaLogic(iwebReq: IwebReq,absProfitId: Long,subjectlist :List<ModificationFinancialPoJo>?,submitState:String){ //利用abs_profit_id 获取ABS收益审核结果表的审核数据 var isOk=this.intDal<BizAbsProfitInfoServiceDal>().addSavaLogic(iwebReq,absProfitId) //等于true时,证明存在审核数据 if (isOk){ // 若存在审核数据: //a、判断对应的 最大的履历编号对应的履历数据的提交状态:利用abs_profit_id 来查 var recordHistory=this.intDal<BizAbsProfitInfoServiceDal>().bigNumberState(iwebReq,absProfitId) //若不存在履历 或者 提交状态是已提交,则新增对应的科目修改履历数据; if (recordHistory == null || recordHistory.getStr("submitState").equals("1")){ //遍历 for(subject in subjectlist !!){ // 科目ID var subjectId = subject.subjectId // 修改后的收益金额 var profit = subject.profit // 判断金额是否有修改,有修改时保存履历, 为true,有修改数据 if( this.intDal<BizAbsProfitInfoServiceDal>().profitModifyState(iwebReq,absProfitId,subjectId,profit)){ //创建ABS收益明细修改履历表实力对象 var bizAbsProfitModifyHistory= BizAbsProfitModifyHistory() //新增保存 //保存 履历编号 if (recordHistory == null ){ bizAbsProfitModifyHistory.historyNo = 1 }else{ bizAbsProfitModifyHistory.historyNo = recordHistory.getStr("historyNo").toInt()+1 } //保存abs收益ID bizAbsProfitModifyHistory.absProfitId = absProfitId!!.toInt() //保存科目id bizAbsProfitModifyHistory.subjectId = subject.subjectId //保存收益 bizAbsProfitModifyHistory.profit = subject.profit //保存提交状态 bizAbsProfitModifyHistory.submitState = submitState.toInt() //保存备注 bizAbsProfitModifyHistory.memo = subject.memo this.save(iwebReq = iwebReq, d = bizAbsProfitModifyHistory) } } } // b、若存在履历 且 提交状态是未提交: else if (recordHistory != null && recordHistory.getStr("submitState").equals("0")){ //遍历 for(subject in subjectlist !!){ // 科目ID var subjectId = subject.subjectId // 修改后的收益金额 var profit = subject.profit // 判断金额是否有修改,有修改时保存履历, 为true,有修改数据 if( this.intDal<BizAbsProfitInfoServiceDal>().profitModifyState(iwebReq,absProfitId,subjectId,profit)) { //查询该履历编号、ABS收益ID 下是否有该科目的履历 var isExist= this.intDal<BizAbsProfitInfoServiceDal>().isExistResume(iwebReq, recordHistory.getStr("historyNo").toInt(),absProfitId!!.toInt()) //如果存在 if (isExist != null ){ //创建ABS收益明细修改履历表实力对象 var bizAbsProfitModifyHistory= BizAbsProfitModifyHistory() // 修改保存 ,需要id //保存 履历编号 bizAbsProfitModifyHistory.historyNo = recordHistory.getStr("historyNo").toInt() //保存abs收益ID bizAbsProfitModifyHistory.absProfitId = absProfitId.toInt() //保存科目id bizAbsProfitModifyHistory.subjectId = subject.subjectId //保存收益 bizAbsProfitModifyHistory.profit = subject.profit //保存提交状态 bizAbsProfitModifyHistory.submitState = submitState.toInt() //保存备注 bizAbsProfitModifyHistory.memo = subject.memo //保存id(代表是修改) bizAbsProfitModifyHistory.id = isExist.getStr("id").toLong() this.save(iwebReq = iwebReq, d = bizAbsProfitModifyHistory) }else{ //创建ABS收益明细修改履历表实力对象 var bizAbsProfitModifyHistory= BizAbsProfitModifyHistory() // 新增保存 ,不需要id //保存 履历编号 bizAbsProfitModifyHistory.historyNo = recordHistory.getStr("historyNo").toInt() //保存abs收益ID bizAbsProfitModifyHistory.absProfitId = absProfitId!!.toInt() //保存科目id bizAbsProfitModifyHistory.subjectId = subject.subjectId //保存收益 bizAbsProfitModifyHistory.profit = subject.profit //保存提交状态 bizAbsProfitModifyHistory.submitState = submitState.toInt() //保存备注 bizAbsProfitModifyHistory.memo = subject.memo this.save(iwebReq = iwebReq, d = bizAbsProfitModifyHistory) } } } } //如果是提交,继续走下面这个逻辑 if (submitState.equals("1")){ //4、修改画面提交时,将对应的最大编号的履历数据,的提交状态都改成已提交; //获取对应的最大编号的履历数据中的id var historyNo=recordHistory.getStr("historyNo") var recordList =this.intDal<BizAbsProfitInfoServiceDal>().getBigNumberResumeData(iwebReq,historyNo,absProfitId) //遍历 for ( record in recordList ){ //获取每次的id var id = record.getStr("id") //创建ABS收益明细修改履历表实例对象 var bizAbsProfitModifyHistory= BizAbsProfitModifyHistory() bizAbsProfitModifyHistory.id= id.toLong() bizAbsProfitModifyHistory.submitState = 1 bizAbsProfitModifyHistory.memo = record.getStr("memo") this.save(iwebReq = iwebReq, d = bizAbsProfitModifyHistory) } } }else{ //等于false,证明没有数据,则不用保存履历 return } } }
package cn.szqhyf.qhyffs.app.fs.idal import club.newepoch.admin.app.sys.service.AdminService import club.newepoch.iweb.IwebConstant import club.newepoch.iweb.ext.IwebReq import club.newepoch.persistent.db.common.DbPro import club.newepoch.persistent.db.common.Page import club.newepoch.persistent.db.pojo.Record import club.newepoch.utils.AssertUtils import club.newepoch.utils.StringUtils import cn.szqhyf.qhyffs.app.fs.pojo.po.AddOrRevisionIncomePoJo import cn.szqhyf.qhyffs.app.fs.pojo.po.BizAbsProfitDetail import cn.szqhyf.qhyffs.app.fs.pojo.po.BizAbsProfitInfo import com.alibaba.fastjson.JSONObject import com.jfinal.core.PageInfo import org.json.JSONArray import java.sql.Timestamp import java.util.* import java.text.SimpleDateFormat /** *ABS收益表ServiceDal */ open class BizAbsProfitInfoServiceDal : QhyffsDal(){ /** * ABS收益表管理一览画面 * @param coreEnterpriseId * 核心企业 * @param financialInstitutionId * 计划管理人 * @param periods * 期数 * @param bigPeriodsId * 所属大区ID */ fun pages(iwebReq: IwebReq, pageInfo: PageInfo, coreEnterpriseId:String ?, financialInstitutionsId:String?, periods:String? , bigPeriodsId :String? ): Page<Record>? { var dbp = DbPro.use(iwebReq.dsName) var pageIndex = pageInfo?.pageIndex ?: 1 var pageSize = pageInfo?.pageSize ?: IwebConstant.DEFAULT_PAGE_SIZE var select= """ SELECT a.id as abs_profit_id , a.core_enterprise_id, a.financial_institutions_id, a.periods, a.status , c.id """ var from=""" FROM biz_abs_profit_info a, biz_big_periods_info c, biz_periods_mapping_info b WHERE a.sys_status = 1 AND a.core_enterprise_id = c.core_enterprise_id AND a.financial_institutions_id = c.financial_institutions_id AND c.sys_status = 1 AND a.periods = b.periods AND b.sys_status = 1 AND c.id = b.big_periods_id """ var paras = mutableListOf<Any>() //核心企业 if(StringUtils.notBlank(coreEnterpriseId) ){ from += " AND a.core_enterprise_id = ? " var coreEnterpriseId="${coreEnterpriseId?.trim()}" paras.add(coreEnterpriseId) } //金融机构 if(StringUtils.notBlank(financialInstitutionsId) ){ from += " AND a.financial_institutions_id = ? " var financialInstitutionsId="${financialInstitutionsId?.trim()}" paras.add(financialInstitutionsId) } //期数 if(StringUtils.notBlank(periods) ){ from += " AND a.periods = ? " var periods = "${periods?.trim()}" paras.add(periods.trim()) } //所属大区 if (StringUtils.notBlank(bigPeriodsId)){ from += " AND c.id = ? " var BelongsToRegional = "${bigPeriodsId?.trim()}" paras.add(BelongsToRegional) } // 设置所属大期 var pageList=dbp.paginate(pageIndex,pageSize,select,from,*paras.toTypedArray<Any>()) for (page in pageList.list){ //获取大期id var bigPeriodsId = page.getStr("id") //调用获取所属大期的方法 var record = this.getPeriods(iwebReq,bigPeriodsId) page.set("bigPeriods",record!!.getStr("bigPeriods")) } return pageList } /** * 所属大期 */ fun getPeriods(iwebReq: IwebReq,bigPeriodsId :String ): Record? { var dbp = DbPro.use(iwebReq.dsName) var sql= """ SELECT b.big_periods_id, concat( MIN(b.periods), '~', MAX(b.periods) ) AS big_periods FROM biz_big_periods_info a LEFT JOIN biz_periods_mapping_info b ON a.id = b.big_periods_id WHERE a.sys_status = 1 AND b.sys_status = 1 and b.big_periods_id = ? GROUP BY b.big_periods_id """ var list = dbp.findFirst(sql ,bigPeriodsId) return list } /** * ABS收益表画面一览 (所属大期)的获得方法 */ fun periods(iwebReq: IwebReq): List<Record>? { var dbp = DbPro.use(iwebReq.dsName) var sql= """ SELECT b.big_periods_id, concat( MIN(b.periods), '~', MAX(b.periods) ) AS big_periods FROM biz_big_periods_info a LEFT JOIN biz_periods_mapping_info b ON a.id = b.big_periods_id WHERE a.sys_status = 1 AND b.sys_status = 1 GROUP BY b.big_periods_id """ var list = dbp.find(sql) /* val json = JSONArray() for ( li in list ){ val jo = JSONObject() jo.put("bigPeriods",li.getStr("bigPeriods")) json.put(jo) }*/ return list } /** * 添加收益信息表画面 中 (查询按钮) * @param coreEnterpriseId * 核心企业(不允许为空) * @param financialInstitutionId * 计划管理人ID (不允许为空) * @param periodsId * 期数 (不允许为空) */ fun getQuery(iwebReq: IwebReq, coreEnterpriseId:String , financialInstitutionsId:String , periods:String ): List<Record>? { var dbp = DbPro.use(iwebReq.dsName) var sql= """ SELECT c.subject_id, d.name FROM biz_big_periods_info a, biz_periods_mapping_info b, biz_fs_abs_relation c, biz_financial_subjects d, biz_financial_subjects_source e WHERE a.id = b.big_periods_id AND a.id = c.abs_id AND c.subject_id = d.id AND d.source_id = e.id AND a.core_enterprise_id = trim(?) AND a.financial_institutions_id = trim(?) AND b.periods = trim(?) AND e.type in(3,4) AND a.sys_status = 1 AND b.sys_status= 1 AND c.sys_status=1 AND d.sys_status=1 AND e.sys_status=1 """ var list = dbp.find(sql,coreEnterpriseId,financialInstitutionsId,periods) return list } /** * 添加收益信息表画面中 (判断是否跳期的判断依准) * @param coreEnterpriseId * 核心企业(不允许为空) * @param financialInstitutionId * 计划管理人ID (不允许为空) * @param periodsId * 期数 (不允许为空) */ fun isjumpPeriods(iwebReq: IwebReq, coreEnterpriseId:String , financialInstitutionsId:String , periods:String ): List<Record>? { var dbp = DbPro.use(iwebReq.dsName) if (Integer.valueOf(periods) - 1 > 0){ var jumpSql= """ SELECT a.id FROM biz_abs_profit_info a WHERE a.core_enterprise_id = ? AND a.financial_institutions_id = ? AND a.periods = (? - 1) AND a.sys_status = 1 """ var record= dbp.find(jumpSql,coreEnterpriseId,financialInstitutionsId,periods) return record }else{ return null } } /** * 根据发行日判断是否超过提交期限 * @param releaseDate * 发行日(不能为空) */ fun isPassDeadline(iwebReq: IwebReq,releaseDate: String ): Boolean { var isOk= true var dbp = DbPro.use(iwebReq.dsName) var sql=""" SELECT a.date_type FROM biz_legal_date_configure a WHERE a.legal_date = ? AND a.sys_status = 1 """ var release=dbp.findFirst(sql,releaseDate) if(release == null){ isOk=false } return isOk } /** * 添加收益信息表画面 中 (判断当前保存的数据在数据库中是否存在) * @param coreEnterpriseId * 核心企业(不允许为空) * @param financialInstitutionId * 计划管理人ID(不允许为空) * @param periodsId * 期数id(不允许为空) */ fun isExist(iwebReq: IwebReq, coreEnterpriseId : String , financialInstitutionsId : String , periods :String ): Record? { var dbp = DbPro.use(iwebReq.dsName) //判断当前保存的数据在数据库中是否存在 var sql= """ SELECT a.id FROM biz_abs_profit_info a WHERE a.core_enterprise_id = ? AND a.financial_institutions_id = ? AND a.periods = ? AND a.sys_status = 1 """ var list= dbp.findFirst(sql,coreEnterpriseId , financialInstitutionsId ,periods) return list } /** * 依据表单ID获取表单项信息(修改页面) * 根据ABS收益信息表id获取收益共通信息 * @param absProfitId * 表单的id(ABS收益ID) * @return 表单项信息 */ fun getFormEarningsInformation(iwebReq: IwebReq, absProfitId: Long?): Record{ var dbp = DbPro.use(iwebReq.dsName) var sql=""" SELECT core_enterprise_id, financial_institutions_id, periods, finance_opinion, release_date FROM biz_abs_profit_info WHERE id = ? AND sys_status =1 """ var record= dbp.findFirst(sql,absProfitId) var releaseDate =record.getDate("releaseDate").toString() record.set("releaseDate",releaseDate) return record } /** * 依据表单ID获取表单项信息(修改页面) * 根据ABS收益ID获取对应科目信息 * @param absProfitId * 表单的id(ABS收益ID) * @return 表单项信息 */ fun getFormSubjectInformation(iwebReq: IwebReq, absProfitId: Long): List<Record>{ var dbp = DbPro.use(iwebReq.dsName) var sql=""" SELECT c.subject_id, d.name, g.id AS profit_detail_id, g.profit, g.memo, f.periods, f.core_enterprise_id, f.financial_institutions_id FROM biz_big_periods_info a, biz_periods_mapping_info b, biz_financial_subjects d, biz_financial_subjects_source e, biz_abs_profit_info f, biz_fs_abs_relation c LEFT JOIN biz_abs_profit_detail g ON g.abs_profit_id = ? AND g.sys_status = 1 AND c.subject_id = g.subject_id WHERE a.id = b.big_periods_id AND a.id = c.abs_id AND c.subject_id = d.id AND d.source_id = e.id AND a.core_enterprise_id = f.core_enterprise_id AND a.financial_institutions_id = f.financial_institutions_id AND b.periods = f.periods AND f.id = ? AND e.type IN (3, 4) AND a.sys_status = 1 AND b.sys_status = 1 AND c.sys_status = 1 AND d.sys_status = 1 AND e.sys_status = 1 AND f.sys_status = 1 """ var list=dbp.find(sql,absProfitId,absProfitId) return list } /** * 获取上一期对应的金额 */ fun beforeMoney(iwebReq: IwebReq, coreEnterpriseId: String , financialInstitutionsId : String , periods: Int , subjectId : String): Record?{ var dbp = DbPro.use(iwebReq.dsName) var sql = """ SELECT b.profit FROM biz_abs_profit_info a, biz_abs_profit_detail b WHERE a.id = b.abs_profit_id AND a.sys_status = 1 AND b.sys_status = 1 AND a.core_enterprise_id = ? AND a.financial_institutions_id = ? AND a.periods = ? AND b.subject_id = ? """ var record= dbp.findFirst(sql,coreEnterpriseId,financialInstitutionsId , periods , subjectId) return record } /** * 根据abs_profit_id获取ABS收益审核结果表的审核数据 */ fun addSavaLogic(iwebReq: IwebReq, absProfitId: Long?): Boolean{ //判断是否数据 var isOk = false var dbp = DbPro.use(iwebReq.dsName) var sql = """ SELECT id FROM biz_abs_profit_approve_result WHERE abs_profit_id = ? AND sys_status = 1 """ var record= dbp.find(sql,absProfitId) //等于true,有数据,等于false,没有数据 if(record.size > 0){ isOk = true } return isOk } /** * 判断对应的 最大的履历编号对应的履历数据的提交状态:利用abs_profit_id 来查 */ fun bigNumberState(iwebReq: IwebReq, absProfitId: Long?): Record{ //判断是否数据 var isOk = false var dbp = DbPro.use(iwebReq.dsName) var sql = """ SELECT id, history_no, submit_state FROM biz_abs_profit_modify_history WHERE abs_profit_id = ? AND sys_status = 1 ORDER BY history_no DESC """ var record= dbp.findFirst(sql,absProfitId) return record } /** * 根据abs_profit_id、科目ID判断是否修改了金额 */ fun profitModifyState(iwebReq: IwebReq, absProfitId: Long?, subjectId: Int?, profit: Double?): Boolean{ //判断是否修改数据 var isOk = true var dbp = DbPro.use(iwebReq.dsName) var sql = """ SELECT id,profit FROM biz_abs_profit_detail WHERE abs_profit_id = ? and subject_id = ? and sys_status = 1 """ var record= dbp.findFirst(sql,absProfitId, subjectId) // 等于true,有修改数据,等于false, 没有修改数据 if(record !=null && record.getStr("profit").equals(profit)){ isOk = false } return isOk } /** * 查询该履历编号、ABS收益ID 下是否有该科目的履历 */ fun isExistResume(iwebReq: IwebReq, historyNo: Int, absProfitId: Int):Record{ var dbp = DbPro.use(iwebReq.dsName) var sql = """ SELECT id FROM biz_abs_profit_modify_history WHERE abs_profit_id = ? and history_no = ? and sys_status = 1 """ var record= dbp.findFirst(sql,absProfitId, historyNo) return record } /** * 获取对应的最大编号的履历数据 */ fun getBigNumberResumeData (iwebReq: IwebReq,historyNo: String,absProfitId:Long ):List<Record>{ var dbp = DbPro.use(iwebReq.dsName) //利用最大的履历编号,查询对应的id var idSql =""" SELECT id, memo FROM biz_abs_profit_modify_history WHERE history_no = ? and abs_profit_id = ? and submit_state = 0 and sys_status = 1 """ var recordList = dbp.find(idSql,historyNo,absProfitId) return recordList } }