检测业务的总结
Posted xiaowoniulx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检测业务的总结相关的知识,希望对你有一定的参考价值。
public boolean contractExtra(List<Record> contractExtraRecordList, String payContractName, String payContractNo) { // 是否在除外信息里,false:不在 boolean isOk = false; // 遍历 for (Record ContractRecord : contractExtraRecordList) { // 获取除外的合同的信息,合同姓名 String ContractDefineName = ContractRecord.getStr("defineName"); // 除外的合同编号 String extraContractNo = null; // 除外的合同名称 String extraContractName = null; // 拆分的数组 String[] ContractDefineNameArray = null; // 获取第一个字符窜 String firstChar = String.valueOf(ContractDefineName.charAt(0)); if (firstChar.equals(";")) { ContractDefineNameArray = ContractDefineName.split(";"); // 除外的合同编号 为空 extraContractNo = ContractDefineNameArray[0]; // 除外的合同名称 extraContractName = ContractDefineNameArray[1]; // a、定义表合同名称不为空,定义表合同编号为空,定义表合同名称与确认书表合同名称相同 if (extraContractName != null && extraContractNo == null && extraContractName.equals(payContractName)) { // 检测无问题 isOk = true; } else { // 检测有问题 isOk = false; } } else { // 反之就是第一个不等于 ; ContractDefineNameArray = ContractDefineName.split(";"); // 除外的合同编号 extraContractNo = ContractDefineNameArray[0]; // 除外的合同名称 extraContractName = ContractDefineNameArray[1]; // b、定义表合同名称为空,定义表合同编号不为空,定义表合同编号与确认书合同编号相同 if (extraContractName.equals(null)) { if (extraContractNo != null && extraContractName.equals(payContractName)) { // 检测无问题 isOk = true; }else { // 检测有问题 isOk = false; } } else { // c、定义表合同名称与编号不为空,定义表合同名称、编号与确认书表合同名称、编号均相同 if (extraContractName.equals(payContractName) && extraContractNo.equals(payContractNo)) { // 检测无问题 isOk = true; } else { // 检测有问题 isOk = false; } } } } return isOk; }
优化后的代码:if...else...... 用的太乱。。。。
public boolean contractExtra(List<Record> contractExtraRecordList, String payContractName, String payContractNo) { // 是否在除外信息里,false:不在 boolean isOk = false; // 遍历 for (Record contractExtraRecord : contractExtraRecordList) { // 获取除外信息 String extraDefineName = contractExtraRecord.getStr("defineName"); // 除外的合同编号 String extraContractNo = null; // 除外的合同名称 String extraContractName = null; // 获取第一个字符串 String firstChar = String.valueOf(extraDefineName.charAt(0)); if (firstChar.equals(";")) { // 第一个字符串为";"时,则除外的合同编号为空,只有合同名称 // 以分号拆分 String[] ContractDefineNameArray = extraDefineName.split(";"); // 获取除外的合同名称 extraContractName = ContractDefineNameArray[1]; // 除外的合同名称与确认书表合同名称相同 if (StringUtils.notBlank(extraContractName) && extraContractName.equals(payContractName)) { // 检测无问题 isOk = true; break; } } else { // 第一个字符串不为";"时,以分号拆分 String[] ContractDefineNameArray = extraDefineName.split(";"); // 除外的合同编号 extraContractNo = ContractDefineNameArray[0]; // 除外的合同名称 extraContractName = ContractDefineNameArray[1]; // 除外合同名称为空时,这说明除外信息只有合同编号 if (StringUtils.isBlank(extraContractName)) { if (StringUtils.notBlank(extraContractNo) && extraContractName.equals(payContractName)) { // 检测无问题 isOk = true; break; } } else { // 除外合同名称不为空时,这说明除外信息既有合同编号也有合同名称 // 除外的合同名称、编号与确认书表合同名称、编号均相同 if (extraContractName.equals(payContractName) && extraContractNo.equals(payContractNo)) { // 检测无问题 isOk = true; break; } } } } return isOk; }
break的使用:
public boolean coreEnterpriseIdCheck(List<Record> extracoreEnterpriseIdRecordList, String payCoreEnterpriseId) { // 是否在除外信息里,false:不在 boolean checkResut = false; // 遍历 for (Record extracoreEnterpriseIdRecord : extracoreEnterpriseIdRecordList) { //获取除外的项目公司 String extracoreEnterpriseId = extracoreEnterpriseIdRecord.getStr("defineName"); //获取付款确认书的项目公司名称 if (extracoreEnterpriseId.equals(payCoreEnterpriseId)) { //检测没问题 checkResut = true; break; } } return checkResut ; }
如果付款确认书的项目公司名称,在除外的项目公司里面,检测没有问题,否则就有问题。
/** 判断项目公司是否除外 * @param extraItemCompanyNameRecordList * 除外的项目公司的集合 * @param payItemCompanyName 付款确认书的项目公司名称 * @return checkResut true/false 除外/没除外 * */ public boolean itemCompanyNameCheck(List<Record> extraItemCompanyNameRecordList, String payItemCompanyName) { // 是否在除外信息里,false:不在 boolean checkResut = false; // 遍历 for (Record extraItemCompanyNameRecord : extraItemCompanyNameRecordList) { //获取除外的项目公司 String extraItemCompanyName = extraItemCompanyNameRecord.getStr("defineName"); //获取付款确认书的项目公司名称 if (payItemCompanyName.equals(extraItemCompanyName)) { //检测没问题 checkResut = true; break; } } return checkResut ; }
StringUtils.isBlank 与 StringUtils.notBlank 的使用:
/** 判断pdf定义合同信息与付款确认书合同信息是否相同 * @param pdfContractNo * pdf定义的合同编号 * @param pdfContractName * pdf的合同名称 * @param payContractNo * 付款确认书的合同编号 * @param payContractName * 付款确认书的合同名称 * @return checkResut true/false 相同/不相同 */ public boolean contractCheck(String pdfContractNo, String pdfContractName, String payContractNo, String payContractName) { boolean checkResut = false; //a、定义表合同名称不为空,定义表合同编号为空,定义表合同名称与确认书表合同名称相同 if ( StringUtils.notBlank(pdfContractName) && StringUtils.isBlank(pdfContractNo) && pdfContractName.equals(payContractName) ) { //检测冲突 checkResut = true ; } //b、定义表合同名称为空,定义表合同编号不为空,定义表合同编号与确认书合同编号相同 else if ( StringUtils.isBlank(pdfContractName) && StringUtils.notBlank(pdfContractNo) && pdfContractNo.equals(payContractNo)) { //检测冲突 checkResut = true ; } //c、定义表合同名称与编号不为空,定义表合同名称、编号与确认书表合同名称、编号均相同 else if (StringUtils.notBlank(pdfContractName) && StringUtils.notBlank(pdfContractNo) && pdfContractName.equals(payContractName) && pdfContractNo.equals(payContractNo) ) { //检测冲突 checkResut = true ; } return checkResut ; }
对时间的比较的方法,数据库为 Data 类型的比较:
/** 判断保理申请日是否在开始日结束日时间段内 * @param startDate * 开始日 * @param endDate * 结束日 * @param transferApplyDate * 保理申请日期 * @param checkResut true/false 是/否 */ public boolean commonDateWays(Date startDate, Date endDate, Date transferApplyDate) { boolean checkResut = false; //a、开始日期不为空,结束日期为空,保理申请日期大于开始日期 if (startDate !=null && endDate == null && transferApplyDate.getTime()> startDate.getTime()){ // 保理申请日在开始日结束日时间段内 checkResut = true ; // b、结束日期不为空,开始日期为空,保理申请日期小于结束日期 }else if (startDate ==null && endDate !=null && transferApplyDate.getTime() < endDate.getTime()){ // 保理申请日在开始日结束日时间段内 checkResut = true ; // c、开始和结束日期均不为空,保理申请日期在开始和结束日期之间 }else if (startDate !=null && endDate !=null && (transferApplyDate.getTime()> startDate.getTime() && transferApplyDate.getTime() <endDate.getTime())) { // 保理申请日在开始日结束日时间段内 checkResut = true ; } return checkResut ; }
利用集合来存东西:注意东西
校验发票号码:
/** * 校验发票号码 * 2018年10月11日13:55:13 * @param pdfRecord 付款确认书对象 * @param invoiceNos 获取pdf定义的发票信息,即发票号 * @param suppliersName 供应商的name */ public boolean checkoutInvoiceNo( String suppliersName,String invoiceNo ,String registerNumber) { //定义一个检测发票成功与否的标志位 boolean checkResut = true; // 将发票号码字符串去掉所有空格 invoiceNo.replace(" ", ""); // pdf定义表数据发票号码不为空 if (StringUtils.notBlank(invoiceNo)) { // 全角字符->半角字符 invoiceNo = BCConvertUtils.qj2bj(invoiceNo); String[] pdfInvoiceArr = invoiceNo.split(","); for (int k = 0; k < pdfInvoiceArr.length; k++) { // 如果invoiceNoArr的保存格式【111-222】,处理要分开 if (pdfInvoiceArr[k].contains("-")) { String[] invoiceNoLine = pdfInvoiceArr[k].split("-"); if (invoiceNoLine.length > 1) { int numberOne = 0; int numberEnd = 0; // 将含有"-"的发票号顺番 // 获取字符串长度 if (!(invoiceNoLine[0].length() == invoiceNoLine[1].length())) { // 数据校验不通过 AssertUtils.isTrue(false, "【" + suppliersName + "】<br>登记编号: " + registerNumber + "<br>的发票号码‘-‘两边的数据长度不相等"); checkResut = false; break; } else { numberOne = Integer.parseInt(invoiceNoLine[0]); numberEnd = Integer.parseInt(invoiceNoLine[1]); if (numberOne > numberEnd) { AssertUtils.isTrue(false, "【" + suppliersName + "】<br>登记编号: " + registerNumber + "<br>的前发票号码不能大于后发票号码"); checkResut = false; } } } } } } return checkResut; }
/** 将发票号码字符串转换成发票号码List * @param invoiceNo pdf发票号码 * @param pdfRecord pdf对象 * @param suppliersName 供应商name */ private List<String> getPdfInvoiceNoWays(String invoiceNo, Record pdfRecord, String suppliersName) { // 将发票号码字符串去掉所有空格 invoiceNo.replace(" ", ""); // 全角字符->半角字符 invoiceNo = BCConvertUtils.qj2bj(invoiceNo); // 先以","来分割字符串 String[] invoiceNoComma = invoiceNo.split(","); // 定义发票号码List List<String> invoiceNoList = Lists.newArrayList(); // 当发票号码格式等条件都正确时, 验证是否存在重复的发票号码 //遍历数组 for (int i = 0; i < invoiceNoComma.length; i++) { //再以"-"来分割字符串 String[] invoiceNoLine = invoiceNoComma[i].split("-"); // 若invoiceNoLine长度大于1,则需要顺番添加 if(invoiceNoLine.length > 1) { //将含有"-"的发票号顺番 // 获取字符串长度 int length = invoiceNoLine[0].length(); // 格式转化 int numberOne = Integer.parseInt(invoiceNoLine[0]); int numberEnd = Integer.parseInt(invoiceNoLine[1]); int number = 0; // 将数字顺序添加进列表 for (int j = 0; j <= numberEnd - numberOne; j++) { if (j > 0) { number = numberOne + j; } else { number = numberOne; } // 在字符串的左边补零 String invoiceNoRepair = String.format("%0" + length + "d", number); // 添加进列表 invoiceNoList.add(invoiceNoRepair); } } else{ invoiceNoList.add(invoiceNoLine[0]); } } // 判断数组中是否存在重复的发票号码 for(int i = 0; i< invoiceNoList.size(); i++){ for(int j = i+1; j<invoiceNoList.size(); j++){ if(invoiceNoList.get(i).equals(invoiceNoList.get(j))){ // 数据校验不通过 AssertUtils.isTrue(false, "【" + suppliersName + "】<br>登记编号: " + pdfRecord.getStr("registerNumber") + "<br>存在重复的发票号码"); break; } } } return invoiceNoList ; }
/** * 检测发票号码 * 2018年10月10日19:34:40 * @param payInfoRecord 付款确认书对象 * @param pdfRecord pdf对象 * @param invoiceNos 获取pdf定义的发票信息,即发票号 * @param suppliersName 供应商的name * @param uuid pdfDefine(定义表的uuid) * @return * @throws ActiveRecordException */ public boolean checkInvoiceWays(Record payInfoRecord ,Record pdfRecord ) throws ActiveRecordException { //获取pdf出让人表的uuid String pdfGrantorPledgorInfosUuid = pdfRecord.getStr("grantorPledgorInfosUuid"); // 获取付款确认书供应商的name String suppliersName=payInfoRecord.getStr("suppliersName"); //获取注册号码 String registerNumber =pdfRecord.getStr("registerNumber"); //获取pdf自定义的发票号码 String pdfDefineInvoiceNo=pdfRecord.getStr("invoiceNo"); //校验发票号码格式是否正确 boolean InvoicecheckResut= this.checkoutInvoiceNo(suppliersName,pdfDefineInvoiceNo,registerNumber); //定义一个检测结果的标志位 boolean checkResut = true; if (InvoicecheckResut) { //获取付款确认书的发票号码 String payInfoNo=payInfoRecord.getStr("invoiceNo"); String[] payInfoNoArr = payInfoNo.split(","); // 定义一个String集合,来存有冲突的发票号码 List<String> clashInvoiceNoList= new ArrayList<String>(); // 将pdf的发票号码字符串转换成发票号码List List<String> pdfInvoiceList = this.getPdfInvoiceNoWays(pdfDefineInvoiceNo,pdfRecord ,suppliersName); // 获取 付款确认书与pdf定义 相同的发票号码 for (int i = 0; i < payInfoNoArr.length; i++) { for (String pdfInvoice : pdfInvoiceList) { //存在相同 if(payInfoNoArr[i].equals(pdfInvoice)){ clashInvoiceNoList.add(payInfoNoArr[i]); } } } // 如果存在冲突的发票号码 if (clashInvoiceNoList !=null && clashInvoiceNoList.size() > 0 ) { // 除外的发票号码的容器 List<String> pdfExtraInvoiceNoList = new ArrayList<String>(); //调用获取除外的信息的方法,获取除外的发票号码 List<Record> pdfDefineExtraInvoiceNoCheck = this.getPdfDefineExtra(pdfGrantorPledgorInfosUuid,"05"); // 发票除外号码不为空 if (pdfDefineExtraInvoiceNoCheck !=null && pdfDefineExtraInvoiceNoCheck.size() > 0) { //遍历它 for (Record pdfDefineExtraRecord : pdfDefineExtraInvoiceNoCheck) { // 获取除外的发票号码 String exceptInvoiceNo = pdfDefineExtraRecord.getStr("defineName"); // 校验发票号码格式是否正确 boolean InvoiceCheck = this.checkoutInvoiceNo(suppliersName,exceptInvoiceNo,registerNumber); //如果通过 if (InvoiceCheck) { // 将除外的发票号码字符串转换成发票号码List List<String> pdfExtraInvoiceList = this.getPdfInvoiceNoWays(exceptInvoiceNo,pdfRecord ,suppliersName); for (String pdfExtraInvoice : pdfExtraInvoiceList) { pdfExtraInvoiceNoList.add(pdfExtraInvoice); } } } // 判断有冲突的发票号码 在除外的发票号码中 是否都存在: for (String clashInvoiceNo : clashInvoiceNoList) {// 有冲突的发票号码 //是否在除外发票中存在的标志位 boolean isok = false; for (String extraInvoiceNo : pdfExtraInvoiceNoList) {// 除外的发票号码 if (extraInvoiceNo.equals(clashInvoiceNo)) { isok = true; // 存在 break; } } // 不存在,检测有问题 if (!isok) { checkResut = false; break; } } } else { // 发票除外信息为空,检测有问题; checkResut = false; } } else { // 不存在相同,则不冲突,检测无问题; checkResut = true; } } return checkResut; }
拼接...................
/** * 付款确认书中登检测 * 2018年10月10日14:11:25 * @param payInfoList 付款确认书 * @throws ActiveRecordException * @throws ParseException */ public void doCheckWays(List<Record> payInfoList) throws ActiveRecordException, ParseException { // 遍历待检测数据 for (Record payInfoRecord : payInfoList) { // 设置有问题的中登pdf定义表UUID String pdfDefineUuid = ""; // 查询付款确认书对应供应商是否有曾用名 List<Record> suppliersNameHistoryList = Db.find("SELECT distinct suppliers_name" +" FROM biz_suppliers_name_history" +" WHERE sys_status = 1" +" AND suppliers_name is not null AND suppliers_name!=‘‘" +" AND suppliers_id =?",payInfoRecord.getStr("suppliersId")); // 如果供应商曾用名不为空 if (suppliersNameHistoryList != null && suppliersNameHistoryList.size() > 0) { for (Record suppliersNameHistory : suppliersNameHistoryList) { // 获取供应商的名称 String suppliersName = suppliersNameHistory.getStr("suppliersName"); // 出让人的pdf中登定义冲突检测,获取有冲突的pdf定义表UUID String checkPdfDefineUuid = suppliersNamePdfDefineCheck(suppliersName, payInfoRecord); if (StringUtils.notBlank(checkPdfDefineUuid)) { pdfDefineUuid = StringUtils.isBlank(pdfDefineUuid) ? (checkPdfDefineUuid) : (pdfDefineUuid + "," + checkPdfDefineUuid); } } } // 若供应商曾用名信息表数据为空,直接以供应商信息表的供应商名称去做检测 else { // 获取供应商信息表的供应商名称 String suppliersName = payInfoRecord.getStr("suppliersName"); // 出让人的pdf中登定义冲突检测,获取有冲突的pdf定义表UUID pdfDefineUuid = suppliersNamePdfDefineCheck(suppliersName, payInfoRecord); } // 定义一个该付款确认书检测是否无问题的标记位 true 没有问题 false 有问题 String result = null; // 若 pdfDefineUuid 为空,则标记该付款确认书检测结果无问题,否则标记为有问题; if (StringUtils.isBlank(pdfDefineUuid)) { // 检测结果:正确 result = CHECK_RESULT_0; } else { // 检测结果:错误 result = CHECK_RESULT_1; } // 存在有疑问的中登资产信息,检测不通过 payInfoRecord.set("checkResult", result); payInfoRecord.set("pdfDefineUuid", pdfDefineUuid); } } /** 出让人pdf定义冲突检测 * @param suppliersName * 供应商的名称 * @param payInfoRecord * 付款确认书的对象 * @throws ActiveRecordException * @throws ParseException */ public String suppliersNamePdfDefineCheck(String suppliersName, Record payInfoRecord) throws ActiveRecordException, ParseException { // 设置有问题的中登信息ID String pdfDefineUuid = ""; // 通过suppliersName 去获取审核通过的pdf定义信息表(pdfRecordList)的数据 List<Record> pdfRecordsList = this.getPdfDefineInfosBysupplier(suppliersName); // 若获取的数据不为空 if (pdfRecordsList !=null && pdfRecordsList.size() >0) { //遍历pdf定义信息表(pdfRecordList)的数据 for (Record pdfRecord : pdfRecordsList) { // 获取pdf定义的发票信息,即发票号 String invoiceNoPdfDefine = pdfRecord.getStr("invoiceNo"); // 获取pdf定义的合同编号、合同名称 String contractNoPdfDefine = pdfRecord.getStr("contractNo"); String contractNamePdfDefine = pdfRecord.getStr("contractName"); // 获取pdf定义的项目公司名称 String pdfItemCompanyName = pdfRecord.getStr("itemCompanyName"); // 获取pdf定义的核心企业名称 String coreEnterpriseId = pdfRecord.getStr("coreEnterpriseId"); // 发票号不为空时 if (StringUtils.notBlank(invoiceNoPdfDefine) && invoiceNoPdfDefine.length() >0 ) { // 检查pdf定义的发票和付款确认书发票是否有问题 boolean checkResutInvoice = this.checkInvoiceWays(payInfoRecord, pdfRecord); // 如果为false, 则检测出有问题 if (!checkResutInvoice) { // 检测不通过,记录有问题的pdf定义表UUID pdfDefineUuid = StringUtils.isBlank(pdfDefineUuid) ? ("‘" + pdfRecord.getStr("uuid") + "‘") : (pdfDefineUuid + ",‘" + pdfRecord.getStr("uuid") + "‘"); continue; }else { // 为true,检测没有问题,直接进行下一次循环 continue; } } // pdf定义的合同编号、合同名称不同时为空时 else if(StringUtils.isBlank(invoiceNoPdfDefine) && (StringUtils.notBlank(contractNoPdfDefine) || StringUtils.notBlank(contractNamePdfDefine))){ // 检查定义的合同编号、名称和付款确认书的合同编号、名称是否有问题 boolean checkResutContract=this.CheckContractWays(payInfoRecord,pdfRecord); // 如果为false, 则检测出有问题 if (!checkResutContract) { // 检测不通过,记录有问题的pdf定义表UUID pdfDefineUuid = StringUtils.isBlank(pdfDefineUuid) ? ("‘" + pdfRecord.getStr("uuid") + "‘") : (pdfDefineUuid + ",‘" + pdfRecord.getStr("uuid") + "‘"); continue; }else { // 为true,检测没有问题,直接进行下一次循环 continue; } } // pdf定义的项目公司不为空时 else if(StringUtils.isBlank(contractNoPdfDefine) && StringUtils.isBlank(contractNamePdfDefine) && StringUtils.notBlank(pdfItemCompanyName)) { // 项目公司检测 boolean checkItemCompany = this.checkItemCompanyWays(payInfoRecord,pdfRecord); // 如果为false, 则检测出有问题 if (!checkItemCompany) { // 检测不通过,记录有问题的pdf定义表UUID pdfDefineUuid = StringUtils.isBlank(pdfDefineUuid) ? ("‘" + pdfRecord.getStr("uuid") + "‘") : (pdfDefineUuid + ",‘" + pdfRecord.getStr("uuid") + "‘"); continue; }else { // 为true,检测没有问题,直接进行下一次循环 continue; } } // pdf定义的核心企业名称不为空时 else if(StringUtils.isBlank(pdfItemCompanyName) && StringUtils.notBlank(coreEnterpriseId)) { //不为空时:检查定义的核心企业名称和付款确认书的核心企业名称是否有冲突 boolean checkCoreEnterprise=this.checkCoreEnterpriseWays(payInfoRecord,pdfRecord); // 如果为false, 则检测出有问题 if ( !checkCoreEnterprise) { // 检测不通过,记录有问题的pdf定义表UUID pdfDefineUuid = StringUtils.isBlank(pdfDefineUuid) ? ("‘" + pdfRecord.getStr("uuid") + "‘") : (pdfDefineUuid + ",‘" + pdfRecord.getStr("uuid") + "‘"); continue; }else { //为true,检测没有问题,直接进行下一次循环 continue; } // pdf定义的开始日、结束日信息 }else { // 获取pdf定义的开始日、结束日信息 Date startDate = pdfRecord.getDate("startDate"); Date endDate = pdfRecord.getDate("endDate"); // 保理申请日期 Date transferApplyDate = payInfoRecord.getDate("transferApplyDate"); // 定义的开始日、结束日不为空时 if (startDate != null && endDate != null ) { // 检查定义的开始日、结束日和付款确认书保理申请日期是否有冲突 boolean checkDate = this.commonDateWays(startDate, endDate, transferApplyDate); // 如果为false, 则检测出有问题 if ( !checkDate) { // 检测不通过,记录有问题的pdf定义表UUID pdfDefineUuid = StringUtils.isBlank(pdfDefineUuid) ? ("‘" + pdfRecord.getStr("uuid") + "‘") : (pdfDefineUuid + ",‘" + pdfRecord.getStr("uuid") + "‘"); continue; }else { //为true,检测没有问题,直接进行下一次循环 continue; } }else { //为空时:进行下一次循环; continue; } } } } return pdfDefineUuid ; }
00000000000000000000000000000000000000000000
/** * 核心企业检测 * * @param pdfRecord 定义表数据 * @param payRecord 确认书表数据 * @return true:检测通过 false:检测不通过 * @throws ParseException * @throws ActiveRecordException */ private boolean checkCoreEnterpriseWays(Record payRecord ,Record pdfRecord) throws ParseException, ActiveRecordException { //定义一个检测发票冲不冲突的标志位 false 冲突 true 不冲突 boolean checkResut = true; //定义一个检测有无问题的标志位 false 有问题 true 没有问题 boolean isOk=true; //获取pdf定义表数据的开始日,结束日 Date startDate = pdfRecord.getDate("startDate"); Date endDate= pdfRecord.getDate("endDate"); //获取保理申请日期 transfer_apply_date Date transferApplyDate=payRecord.getDate("transferApplyDate"); //获取pdf的核心企业id String pdfCoreEnterpriseId = pdfRecord.getStr("coreEnterpriseId"); //获取付款确认书的核心企业id String payCoreEnterpriseId = payRecord.getStr("coreEnterpriseId"); //1、开始日、结束日有不为空的时,下面情况下检测冲突: if (startDate !=null || endDate !=null) { // 保理申请日在开始日结束日时间段内时 if(commonDateWays(startDate,endDate, transferApplyDate)) { // 判断pdf项目公司信息和付款确认书的项目公司信息是否相同 if(pdfCoreEnterpriseId.equals(payCoreEnterpriseId)) { // 相同时检测冲突 checkResut = false; } } }else { // 判断pdf项目公司信息和付款确认书的项目公司信息是否相同 if(pdfCoreEnterpriseId.equals(payCoreEnterpriseId)) { // 相同时检测冲突 checkResut = false; } } //3、第1、2点检测冲突时,查询发票除外信息: if (!checkResut) { // 获取供应商的name String suppliersName=payRecord.getStr("suppliersName"); // 获取pdf转让人表UUID String pdfGrantorPledgorInfosUuid = pdfRecord.getStr("grantorpledgorinfosuuid"); //调用获取除外的信息的方法,获取除外的发票号码 List<Record> pdfDefineExtraInvoiceNoCheck=this.getPdfDefineExtra(suppliersName, pdfGrantorPledgorInfosUuid,"05"); //发票除外信息为空, if (pdfDefineExtraInvoiceNoCheck.size()== 0 ) { // 查询合同除外信息: List<Record> contractExtraRecordList=this.getPdfDefineExtra(suppliersName, pdfGrantorPledgorInfosUuid,"04"); //合同除外信息为空 if(contractExtraRecordList.size()==0){ //查询项目公司除外信息 List<Record> extraItemCompanyNameRecordList = this.getPdfDefineExtra(suppliersName, pdfGrantorPledgorInfosUuid,"02"); // 项目公司除外信息为空,检测有问题; if (extraItemCompanyNameRecordList.size()==0) { //查询核心企业除外信息: List<Record> extraCoreEnterpriseIdRecordList = this.getPdfDefineExtra(suppliersName, pdfGrantorPledgorInfosUuid,"01"); //核心企业除外信息为空,检测有问题; if (extraCoreEnterpriseIdRecordList.size()==0) { //检测有问题; isOk = false ; }else { //核心企业除外信息不为空,且除外的核心企业和付款确认书的核心企业相同,检测没问题; isOk = coreEnterpriseIdCheck(extraCoreEnterpriseIdRecordList,payCoreEnterpriseId); } } // 项目公司除外信息不为空,且除外的项目公司名称和付款确认书的项目公司名称相同,检测没问题; else { //获取付款确认书表数据的项目公司 String payItemCompanyName = payRecord.getStr("itemCompanyName"); isOk = itemCompanyNameCheck(extraItemCompanyNameRecordList,payItemCompanyName); } } // 合同除外信息不为空,除外的合同信息和付款确认书的合同信息相同(判断是否相同的方式同第2点)时,检测无问题;否则检测有问题 else { // TODO 调用合同除外检测共通方法 String payContractNo = payRecord.getStr("contractNo"); String payContractName = payRecord.getStr("contractName"); isOk=this.contractExtra(contractExtraRecordList, payContractName, payContractNo); } } //发票除外信息不为空 else { // 调用检测发票除外的的共通方法 isOk = this.commonExceptInvoiceWays(pdfDefineExtraInvoiceNoCheck, payRecord,pdfRecord); } }else { //4、第1、2点检测不冲突时,则检测无问题; } return isOk; }
以上是关于检测业务的总结的主要内容,如果未能解决你的问题,请参考以下文章