218 lines
6.7 KiB
Java
218 lines
6.7 KiB
Java
package com.amarsoft.app.als.image;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import jbo.app.BUSINESS_CONTRACT;
|
|
import jbo.image.DOCUMENT_CATALOG;
|
|
import jbo.image.DOCUMENT_DATA;
|
|
import jbo.image.DOCUMENT_RECORD;
|
|
|
|
import com.amarsoft.app.als.image.tool.ImageConstant;
|
|
import com.amarsoft.app.als.sys.tools.JBOHelper;
|
|
import com.amarsoft.app.als.sys.tools.StringTool;
|
|
import com.amarsoft.are.jbo.BizObject;
|
|
import com.amarsoft.are.jbo.JBOException;
|
|
import com.amarsoft.are.jbo.JBOFactory;
|
|
import com.amarsoft.are.lang.StringX;
|
|
import com.amarsoft.dict.als.manage.NameManager;
|
|
import com.amarsoft.web.ui.OHTMLTreeView;
|
|
/**
|
|
* 获取展示影像树图的sql语句
|
|
* @author ghShi
|
|
* @since 2014/04/22
|
|
*
|
|
*/
|
|
public class ImageSevice {
|
|
|
|
public static void initTreeView(OHTMLTreeView tviTemp, String objectType, String objectNo) throws JBOException {
|
|
String jboSql = "select RecordNo, SortNo, DocName, Attribute1, ImageID from O where RecordNo in ("+getSqlFormatOfIn(objectType, objectNo)+") order by SortNo";
|
|
@SuppressWarnings("unchecked")
|
|
List<BizObject> bos = JBOFactory.getBizObjectManager(DOCUMENT_DATA.CLASS_NAME).createQuery(jboSql).getResultList(false);
|
|
for(BizObject bo : bos){
|
|
String sID = bo.getAttribute("SortNo").getString();
|
|
String sParentID = "root";
|
|
String sName = bo.getAttribute("DocName").getString();
|
|
String sValue = bo.getAttribute("ImageID").getString();
|
|
|
|
if(objectType.equals(ImageConstant.IMAGE_PHASE_AF))
|
|
sID = bo.getAttribute("RecordNo").getString() + sID;
|
|
if("1".equals(bo.getAttribute("Attribute1").getString()))
|
|
sName += "(*)";
|
|
tviTemp.insertPage(sID, sParentID, sName, sValue, "", 0, "");
|
|
}
|
|
tviTemp.packUpItems();
|
|
}
|
|
|
|
/**
|
|
* 获取展示影像树图的sql语句
|
|
* @param objectType
|
|
* @param objectNo
|
|
* @return
|
|
*/
|
|
public static String getSqlTreeView(String objectType, String objectNo){
|
|
//如果为批复阶段,则查询申请阶段的影像。
|
|
if (objectType.equals(ImageConstant.IMAGE_PHASE_BAP)){
|
|
objectType = ImageConstant.IMAGE_PHASE_BA;
|
|
objectNo = StringTool.getBASerialNo(objectNo);
|
|
}
|
|
|
|
String getSqlTreeView = "from o where RecordNo in (";
|
|
getSqlTreeView += getSqlFormatOfIn(objectType, objectNo);
|
|
|
|
return getSqlTreeView + " )";
|
|
}
|
|
|
|
/**
|
|
* 把影像记录转化成'a','b','c'格式
|
|
* @param objectType
|
|
* @param objectNo
|
|
* @return
|
|
*/
|
|
public static String getSqlFormatOfIn(String objectType, String objectNo){
|
|
String recordSqlFormatOfIn = "";
|
|
if (objectType.equals(ImageConstant.IMAGE_PHASE_AF)){
|
|
//贷后阶段需要展示申请、合同、和出账阶段的所有影像。
|
|
recordSqlFormatOfIn += StringTool.getSqlFormatOfIn(getRecordNoList(objectNo));
|
|
}else{
|
|
//申请、合同和出账阶段仅展示当前阶段的影像【其中批复阶段查看申请阶段的影像】
|
|
recordSqlFormatOfIn += "'" + getRecordNo(objectNo, objectType) + "'";
|
|
}
|
|
return recordSqlFormatOfIn;
|
|
}
|
|
|
|
/**
|
|
* 贷后阶段时,查找该本业务所有的影像记录;
|
|
* 业务主要在申请,合同和出账时,存在影像记录。
|
|
* @param objectNo
|
|
* @return
|
|
*/
|
|
public static List<String> getRecordNoList(String contractSerialNo){
|
|
List<String> recordNoList = new ArrayList<String>();
|
|
|
|
//获取申请流水号
|
|
String baSerialNo = StringTool.getBASerialNo(StringTool.getBAPSerialNo(contractSerialNo));
|
|
//添加申请阶段的影像记录。
|
|
recordNoList.add(getRecordNo(baSerialNo, ImageConstant.IMAGE_PHASE_BA));
|
|
|
|
//添加合同阶段的影像记录。
|
|
recordNoList.add(getRecordNo(contractSerialNo, ImageConstant.IMAGE_PHASE_BC));
|
|
|
|
//获取出账流水号
|
|
List<String> bplist = StringTool.getBPSerialNo(contractSerialNo);
|
|
for (String bpSerialNo : bplist)
|
|
//添加出账阶段的影像记录。
|
|
recordNoList.add(getRecordNo(bpSerialNo, ImageConstant.IMAGE_PHASE_BP));
|
|
|
|
return recordNoList;
|
|
}
|
|
|
|
/**
|
|
* 贷后阶段时,查找该本业务所有的影像记录;
|
|
* 条形码,同一笔业务的所有影像记录对应的唯一标示。
|
|
* @param objectNo
|
|
* @return
|
|
*/
|
|
public static List<String> getRecordNoList2(String contractSerialNo){
|
|
List<String> recordNoList = new ArrayList<String>();
|
|
|
|
BizObject bcBiz = JBOHelper.querySingle(BUSINESS_CONTRACT.CLASS_NAME, "SerialNo=:SerialNo", contractSerialNo);
|
|
String barCode = JBOHelper.getAttribute(bcBiz, "BarCode").toString();
|
|
|
|
List<BizObject> recordlist = JBOHelper.queryList(DOCUMENT_RECORD.CLASS_NAME,
|
|
"BarCode=:BarCode", barCode);
|
|
for (BizObject record : recordlist)
|
|
recordNoList.add(JBOHelper.getAttribute(record, "SerialNo").toString());
|
|
|
|
return recordNoList;
|
|
}
|
|
|
|
/**
|
|
* 获取某阶段的影像记录。
|
|
* @param objectNos
|
|
* @param objectType
|
|
* @return
|
|
*/
|
|
public static String getRecordNo(String objectNo, String objectType){
|
|
String recordNo = "";
|
|
BizObject record = JBOHelper.querySingle(DOCUMENT_RECORD.CLASS_NAME,
|
|
"ObjectNo=:ObjectNo and ObjectType=:ObjectType", objectNo, objectType);
|
|
|
|
if(record != null) recordNo =JBOHelper.getAttribute(record, "SerialNo").toString();
|
|
if(recordNo == null) recordNo = "";
|
|
|
|
return recordNo;
|
|
}
|
|
|
|
/**
|
|
* 判断当前阶段是否存在影像记录
|
|
* @param objectNo
|
|
* @param objectType
|
|
* @return
|
|
*/
|
|
public static boolean isExistDocRecord(String objectNo, String objectType){
|
|
if (StringX.isEmpty(getRecordNo(objectNo, objectType))){
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 影像配置-判断影像案卷主键是否冲突
|
|
* @param objectNo
|
|
* @param objectType
|
|
* @return
|
|
*/
|
|
public static boolean isExistDocCatalog(String dirNo){
|
|
BizObject catalog = JBOHelper.querySingle(DOCUMENT_CATALOG.CLASS_NAME,
|
|
"DirNo=:DirNo", dirNo);
|
|
if(catalog != null){
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* 影像配置-判断某机构的某中业务品种是否已经存在影像案卷信息
|
|
* @param objectNo
|
|
* @param objectType
|
|
* @return
|
|
*/
|
|
public static boolean isExistDocCatalog(String orgID, String productID, String dirNo){
|
|
BizObject catalog = JBOHelper.querySingle(DOCUMENT_CATALOG.CLASS_NAME,
|
|
"DirNo <> '" + dirNo + "' and IsInUse='1' and SuitProduct like '%," + productID + ",%' and SuitOrg like '%," + orgID + ",%'");
|
|
if(catalog != null){
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* 影像配置-判断某机构的某中业务品种是否已经存在影像案卷信息
|
|
* @param objectNo
|
|
* @param objectType
|
|
* @return
|
|
* @throws Exception
|
|
*/
|
|
public static String checkDocCatalog(String orgIDList, String productIDList, String dirNo, String format) throws Exception{
|
|
String returnString = "";
|
|
String productString = "";
|
|
String orgIDs[] = orgIDList.split(format);
|
|
String productIDs[] = productIDList.split(format);
|
|
for (String orgID : orgIDs){
|
|
if(StringX.isEmpty(orgID)) continue;
|
|
|
|
productString = "";
|
|
for(String productID : productIDs){
|
|
if(StringX.isEmpty(productID)) continue;
|
|
if(isExistDocCatalog(orgID, productID, dirNo))
|
|
productString += "{" +NameManager.getBusinessName(productID) + "}";
|
|
}
|
|
if(!StringX.isEmpty(productString))
|
|
returnString += NameManager.getOrgName(orgID) + "已存在" + productString + "的影像案卷;\n";
|
|
}
|
|
|
|
return returnString;
|
|
}
|
|
}
|