// 获取补充费率协议的文件的uuid
List<Record> documentUuids = Db.find(sql);
// 判断是否有补充费率协议文件的标志位
boolean isExistDocument = false;
// 定义一个临时保存DB中补充费率协议的文件集合
List<Record> documentList =new ArrayList<>();
// 遍历文件集合
for (Record facRecDetTemp: facRecDetTempList){
// 取得本次文件的全套资料文件id
String documentId = facRecDetTemp.get("documentId");
// 遍历补充费率协议的文件
for (Record documentRecord:documentUuids){
// 获取DB中补充费率协议的文件uuid
String fileId=documentRecord.get("configuDate");
if (documentId.equals(fileId)){
isExistDocument=true;
documentList.add(facRecDetTemp);
}
}
}
// 如果2个集合不一致
if (!isEquals(documentList,facRecDetTempList)){
// 2、发起保理业务线下审核流程
this.startBpmProcessInstance(ctl.getCurrentUser(),this.getEnv().getFactoringBusinessAuditProcess(),
this.buildBpmSource(sourceMap), objToString(receptionInfos.get("receptionUuid")), isHaveDoOfflineDoc ? "1" : "0");
}
// 如果标志位true,发起保理补充费率协议线下审核流程
if (isExistDocument){
this.startBpmProcessInstance(ctl.getCurrentUser(),"保理补充费率协议线下审核流程",
this.buildBpmSource(sourceMap), objToString(receptionInfos.get("receptionUuid")), isHaveDoOfflineDoc ? "1" : "0");
}
/**
* 比较2个list对象是否一致
* @param documentList1
* @param documentList2
* @return true/false 一致/不一致
*/
public static boolean isEquals(List<Record> documentList1, List<Record> documentList2) {
// 情况1:2个对象一样,则一致
if (documentList1 == documentList2)
return true;
// 情况2:2个对象长度不一样,则不一致
if (documentList1.size() != documentList2.size())
return false;
// 情况3:循环对象1的长度
int n = documentList1.size();
int i = 0;
while (n-- != 0) {
// 如果有一个,不等于则说明2个集合不一致
if (!documentList1.get(i).equals(documentList2.get(i)))
return false;
i++;
}
return true;
}