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 bos = JBOFactory.getBizObjectManager("jbo.image.DOCUMENT_DATA").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 getRecordNoList(String contractSerialNo){ List recordNoList = new ArrayList(); /* //获取申请流水号 String baSerialNo = StringTool.getBASerialNo(StringTool.getBAPSerialNo(contractSerialNo)); //添加申请阶段的影像记录。 recordNoList.add(getRecordNo(baSerialNo, ImageConstant.IMAGE_PHASE_BA)); //添加合同阶段的影像记录。 recordNoList.add(getRecordNo(contractSerialNo, ImageConstant.IMAGE_PHASE_BC)); //获取出账流水号 List bplist = StringTool.getBPSerialNo(contractSerialNo); for (String bpSerialNo : bplist) //添加出账阶段的影像记录。 recordNoList.add(getRecordNo(bpSerialNo, ImageConstant.IMAGE_PHASE_BP));*/ return recordNoList; } /** * 贷后阶段时,查找该本业务所有的影像记录; * 条形码,同一笔业务的所有影像记录对应的唯一标示。 * @param objectNo * @return */ public static List getRecordNoList2(String contractSerialNo){ List recordNoList = new ArrayList(); BizObject bcBiz = JBOHelper.querySingle(BUSINESS_CONTRACT.CLASS_NAME, "SerialNo=:SerialNo", contractSerialNo); String barCode = JBOHelper.getAttribute(bcBiz, "BarCode").toString(); List recordlist = JBOHelper.queryList("jbo.image.DOCUMENT_RECORD", "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("jbo.image.DOCUMENT_RECORD", "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("jbo.image.DOCUMENT_CATALOG", "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("jbo.image.DOCUMENT_CATALOG", "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; } }